lib-python.2.5.test.decimaltestdata.fma.decTest Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jython Show documentation
Show all versions of jython Show documentation
Jython is an implementation of the high-level, dynamic, object-oriented
language Python written in 100% Pure Java, and seamlessly integrated with
the Java platform. It thus allows you to run Python on any Java platform.
------------------------------------------------------------------------
-- fma.decTest -- decimal fused multiply add --
-- Copyright (c) IBM Corporation, 1981, 2007. All rights reserved. --
------------------------------------------------------------------------
-- Please see the document "General Decimal Arithmetic Testcases" --
-- at http://www2.hursley.ibm.com/decimal for the description of --
-- these testcases. --
-- --
-- These testcases are experimental ('beta' versions), and they --
-- may contain errors. They are offered on an as-is basis. In --
-- particular, achieving the same results as the tests here is not --
-- a guarantee that an implementation complies with any Standard --
-- or specification. The tests are not exhaustive. --
-- --
-- Please send comments, suggestions, and corrections to the author: --
-- Mike Cowlishaw, IBM Fellow --
-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
-- [email protected] --
------------------------------------------------------------------------
version: 2.57
extended: 1
precision: 9
rounding: half_up
maxExponent: 384
minexponent: -383
-- These tests comprese three parts:
-- 1. Sanity checks and other three-operand tests (especially those
-- where the fused operation makes a difference)
-- 2. Multiply tests (third operand is neutral zero [0E+emax])
-- 3. Addition tests (first operand is 1)
-- The multiply and addition tests are extensive because FMA may have
-- its own dedicated multiplication or addition routine(s), and they
-- also inherently check the left-to-right properties.
-- Sanity checks
fmax0001 fma 1 1 1 -> 2
fmax0002 fma 1 1 2 -> 3
fmax0003 fma 2 2 3 -> 7
fmax0004 fma 9 9 9 -> 90
fmax0005 fma -1 1 1 -> 0
fmax0006 fma -1 1 2 -> 1
fmax0007 fma -2 2 3 -> -1
fmax0008 fma -9 9 9 -> -72
fmax0011 fma 1 -1 1 -> 0
fmax0012 fma 1 -1 2 -> 1
fmax0013 fma 2 -2 3 -> -1
fmax0014 fma 9 -9 9 -> -72
fmax0015 fma 1 1 -1 -> 0
fmax0016 fma 1 1 -2 -> -1
fmax0017 fma 2 2 -3 -> 1
fmax0018 fma 9 9 -9 -> 72
fmax0019 fma 3 5 7 -> 22
fmax0029 fma 3 -5 7 -> -8
-- non-integer exacts
fma0100 fma 25.2 63.6 -438 -> 1164.72
fma0101 fma 0.301 0.380 334 -> 334.114380
fma0102 fma 49.2 -4.8 23.3 -> -212.86
fma0103 fma 4.22 0.079 -94.6 -> -94.26662
fma0104 fma 903 0.797 0.887 -> 720.578
fma0105 fma 6.13 -161 65.9 -> -921.03
fma0106 fma 28.2 727 5.45 -> 20506.85
fma0107 fma 4 605 688 -> 3108
fma0108 fma 93.3 0.19 0.226 -> 17.953
fma0109 fma 0.169 -341 5.61 -> -52.019
fma0110 fma -72.2 30 -51.2 -> -2217.2
fma0111 fma -0.409 13 20.4 -> 15.083
fma0112 fma 317 77.0 19.0 -> 24428.0
fma0113 fma 47 6.58 1.62 -> 310.88
fma0114 fma 1.36 0.984 0.493 -> 1.83124
fma0115 fma 72.7 274 1.56 -> 19921.36
fma0116 fma 335 847 83 -> 283828
fma0117 fma 666 0.247 25.4 -> 189.902
fma0118 fma -3.87 3.06 78.0 -> 66.1578
fma0119 fma 0.742 192 35.6 -> 178.064
fma0120 fma -91.6 5.29 0.153 -> -484.411
-- cases where result is different from separate multiply + add; each
-- is preceded by the result of unfused multiply and add
-- [this is about 20% of all similar cases in general]
-- 888565290 1557.96930 -86087.7578 -> 1.38435735E+12
fma0201 fma 888565290 1557.96930 -86087.7578 -> 1.38435736E+12 Inexact Rounded
-- -85519342.9 735155419 42010431 -> -6.28700084E+16
fma0205 fma -85519342.9 735155419 42010431 -> -6.28700083E+16 Inexact Rounded
-- -98025.5 -294603.472 10414348.2 -> 2.88890669E+10
fma0208 fma -98025.5 -294603.472 10414348.2 -> 2.88890670E+10 Inexact Rounded
-- 5967627.39 83526540.6 498494.810 -> 4.98455271E+14
fma0211 fma 5967627.39 83526540.6 498494.810 -> 4.98455272E+14 Inexact Rounded
-- 3456.9433 874.39518 197866.615 -> 3220601.18
fma0216 fma 3456.9433 874.39518 197866.615 -> 3220601.17 Inexact Rounded
-- 62769.8287 2096.98927 48.420317 -> 131627705
fma0218 fma 62769.8287 2096.98927 48.420317 -> 131627706 Inexact Rounded
-- -68.81500 59961113.9 -8988862 -> -4.13521291E+9
fma0219 fma -68.81500 59961113.9 -8988862 -> -4.13521292E+9 Inexact Rounded
-- 2126341.02 63491.5152 302427455 -> 1.35307040E+11
fma0226 fma 2126341.02 63491.5152 302427455 -> 1.35307041E+11 Inexact Rounded
-- Infinite combinations
fmax0800 fma Inf Inf Inf -> Infinity
fmax0801 fma Inf Inf -Inf -> NaN Invalid_operation
fmax0802 fma Inf -Inf Inf -> NaN Invalid_operation
fmax0803 fma Inf -Inf -Inf -> -Infinity
fmax0804 fma -Inf Inf Inf -> NaN Invalid_operation
fmax0805 fma -Inf Inf -Inf -> -Infinity
fmax0806 fma -Inf -Inf Inf -> Infinity
fmax0807 fma -Inf -Inf -Inf -> NaN Invalid_operation
fmax0808 fma -Inf 0 1 -> NaN Invalid_operation
fmax0809 fma -Inf 0 NaN -> NaN Invalid_operation
-- Triple NaN propagation
fmax0900 fma NaN2 NaN3 NaN5 -> NaN2
fmax0901 fma 0 NaN3 NaN5 -> NaN3
fmax0902 fma 0 0 NaN5 -> NaN5
-- first sNaN wins (consider qNaN from earlier sNaN being
-- overridden by an sNaN in third operand)
fmax0903 fma sNaN1 sNaN2 sNaN3 -> NaN1 Invalid_operation
fmax0904 fma 0 sNaN2 sNaN3 -> NaN2 Invalid_operation
fmax0905 fma 0 0 sNaN3 -> NaN3 Invalid_operation
fmax0906 fma sNaN1 sNaN2 sNaN3 -> NaN1 Invalid_operation
fmax0907 fma NaN7 sNaN2 sNaN3 -> NaN2 Invalid_operation
fmax0908 fma NaN7 NaN5 sNaN3 -> NaN3 Invalid_operation
-- MULTIPLICATION TESTS ------------------------------------------------
-- sanity checks (as base, above)
fmax2000 fma 2 2 0E+999999 -> 4
fmax2001 fma 2 3 0E+999999 -> 6
fmax2002 fma 5 1 0E+999999 -> 5
fmax2003 fma 5 2 0E+999999 -> 10
fmax2004 fma 1.20 2 0E+999999 -> 2.40
fmax2005 fma 1.20 0 0E+999999 -> 0.00
fmax2006 fma 1.20 -2 0E+999999 -> -2.40
fmax2007 fma -1.20 2 0E+999999 -> -2.40
fmax2008 fma -1.20 0 0E+999999 -> 0.00
fmax2009 fma -1.20 -2 0E+999999 -> 2.40
fmax2010 fma 5.09 7.1 0E+999999 -> 36.139
fmax2011 fma 2.5 4 0E+999999 -> 10.0
fmax2012 fma 2.50 4 0E+999999 -> 10.00
fmax2013 fma 1.23456789 1.00000000 0E+999999 -> 1.23456789 Rounded
fmax2014 fma 9.999999999 9.999999999 0E+999999 -> 100.000000 Inexact Rounded
fmax2015 fma 2.50 4 0E+999999 -> 10.00
precision: 6
fmax2016 fma 2.50 4 0E+999999 -> 10.00
fmax2017 fma 9.999999 9.999999 0E+999999 -> 100.000 Inexact Rounded
fmax2018 fma 9.999999 -9.999999 0E+999999 -> -100.000 Inexact Rounded
fmax2019 fma -9.999999 9.999999 0E+999999 -> -100.000 Inexact Rounded
fmax2020 fma -9.999999 -9.999999 0E+999999 -> 100.000 Inexact Rounded
-- 1999.12.21: next one is a edge case if intermediate longs are used
precision: 15
fmax2059 fma 999999999999 9765625 0E+999999 -> 9.76562499999023E+18 Inexact Rounded
precision: 30
fmax2160 fma 999999999999 9765625 0E+999999 -> 9765624999990234375
precision: 9
-----
-- zeros, etc.
fmax2021 fma 0 0 0E+999999 -> 0
fmax2022 fma 0 -0 0E+999999 -> 0
fmax2023 fma -0 0 0E+999999 -> 0
fmax2024 fma -0 -0 0E+999999 -> 0
fmax2025 fma -0.0 -0.0 0E+999999 -> 0.00
fmax2026 fma -0.0 -0.0 0E+999999 -> 0.00
fmax2027 fma -0.0 -0.0 0E+999999 -> 0.00
fmax2028 fma -0.0 -0.0 0E+999999 -> 0.00
fmax2030 fma 5.00 1E-3 0E+999999 -> 0.00500
fmax2031 fma 00.00 0.000 0E+999999 -> 0.00000
fmax2032 fma 00.00 0E-3 0E+999999 -> 0.00000 -- rhs is 0
fmax2033 fma 0E-3 00.00 0E+999999 -> 0.00000 -- lhs is 0
fmax2034 fma -5.00 1E-3 0E+999999 -> -0.00500
fmax2035 fma -00.00 0.000 0E+999999 -> 0.00000
fmax2036 fma -00.00 0E-3 0E+999999 -> 0.00000 -- rhs is 0
fmax2037 fma -0E-3 00.00 0E+999999 -> 0.00000 -- lhs is 0
fmax2038 fma 5.00 -1E-3 0E+999999 -> -0.00500
fmax2039 fma 00.00 -0.000 0E+999999 -> 0.00000
fmax2040 fma 00.00 -0E-3 0E+999999 -> 0.00000 -- rhs is 0
fmax2041 fma 0E-3 -00.00 0E+999999 -> 0.00000 -- lhs is 0
fmax2042 fma -5.00 -1E-3 0E+999999 -> 0.00500
fmax2043 fma -00.00 -0.000 0E+999999 -> 0.00000
fmax2044 fma -00.00 -0E-3 0E+999999 -> 0.00000 -- rhs is 0
fmax2045 fma -0E-3 -00.00 0E+999999 -> 0.00000 -- lhs is 0
-- examples from decarith multiply
fmax2050 fma 1.20 3 0E+999999 -> 3.60
fmax2051 fma 7 3 0E+999999 -> 21
fmax2052 fma 0.9 0.8 0E+999999 -> 0.72
fmax2053 fma 0.9 -0 0E+999999 -> 0.0
fmax2054 fma 654321 654321 0E+999999 -> 4.28135971E+11 Inexact Rounded
fmax2060 fma 123.45 1e7 0E+999999 -> 1.2345E+9
fmax2061 fma 123.45 1e8 0E+999999 -> 1.2345E+10
fmax2062 fma 123.45 1e+9 0E+999999 -> 1.2345E+11
fmax2063 fma 123.45 1e10 0E+999999 -> 1.2345E+12
fmax2064 fma 123.45 1e11 0E+999999 -> 1.2345E+13
fmax2065 fma 123.45 1e12 0E+999999 -> 1.2345E+14
fmax2066 fma 123.45 1e13 0E+999999 -> 1.2345E+15
-- test some intermediate lengths
precision: 9
fmax2080 fma 0.1 123456789 0E+999999 -> 12345678.9
fmax2081 fma 0.1 1234567891 0E+999999 -> 123456789 Inexact Rounded
fmax2082 fma 0.1 12345678912 0E+999999 -> 1.23456789E+9 Inexact Rounded
fmax2083 fma 0.1 12345678912345 0E+999999 -> 1.23456789E+12 Inexact Rounded
fmax2084 fma 0.1 123456789 0E+999999 -> 12345678.9
precision: 8
fmax2085 fma 0.1 12345678912 0E+999999 -> 1.2345679E+9 Inexact Rounded
fmax2086 fma 0.1 12345678912345 0E+999999 -> 1.2345679E+12 Inexact Rounded
precision: 7
fmax2087 fma 0.1 12345678912 0E+999999 -> 1.234568E+9 Inexact Rounded
fmax2088 fma 0.1 12345678912345 0E+999999 -> 1.234568E+12 Inexact Rounded
precision: 9
fmax2090 fma 123456789 0.1 0E+999999 -> 12345678.9
fmax2091 fma 1234567891 0.1 0E+999999 -> 123456789 Inexact Rounded
fmax2092 fma 12345678912 0.1 0E+999999 -> 1.23456789E+9 Inexact Rounded
fmax2093 fma 12345678912345 0.1 0E+999999 -> 1.23456789E+12 Inexact Rounded
fmax2094 fma 123456789 0.1 0E+999999 -> 12345678.9
precision: 8
fmax2095 fma 12345678912 0.1 0E+999999 -> 1.2345679E+9 Inexact Rounded
fmax2096 fma 12345678912345 0.1 0E+999999 -> 1.2345679E+12 Inexact Rounded
precision: 7
fmax2097 fma 12345678912 0.1 0E+999999 -> 1.234568E+9 Inexact Rounded
fmax2098 fma 12345678912345 0.1 0E+999999 -> 1.234568E+12 Inexact Rounded
-- test some more edge cases and carries
maxexponent: 9999
minexponent: -9999
precision: 33
fmax2101 fma 9 9 0E+999999 -> 81
fmax2102 fma 9 90 0E+999999 -> 810
fmax2103 fma 9 900 0E+999999 -> 8100
fmax2104 fma 9 9000 0E+999999 -> 81000
fmax2105 fma 9 90000 0E+999999 -> 810000
fmax2106 fma 9 900000 0E+999999 -> 8100000
fmax2107 fma 9 9000000 0E+999999 -> 81000000
fmax2108 fma 9 90000000 0E+999999 -> 810000000
fmax2109 fma 9 900000000 0E+999999 -> 8100000000
fmax2110 fma 9 9000000000 0E+999999 -> 81000000000
fmax2111 fma 9 90000000000 0E+999999 -> 810000000000
fmax2112 fma 9 900000000000 0E+999999 -> 8100000000000
fmax2113 fma 9 9000000000000 0E+999999 -> 81000000000000
fmax2114 fma 9 90000000000000 0E+999999 -> 810000000000000
fmax2115 fma 9 900000000000000 0E+999999 -> 8100000000000000
fmax2116 fma 9 9000000000000000 0E+999999 -> 81000000000000000
fmax2117 fma 9 90000000000000000 0E+999999 -> 810000000000000000
fmax2118 fma 9 900000000000000000 0E+999999 -> 8100000000000000000
fmax2119 fma 9 9000000000000000000 0E+999999 -> 81000000000000000000
fmax2120 fma 9 90000000000000000000 0E+999999 -> 810000000000000000000
fmax2121 fma 9 900000000000000000000 0E+999999 -> 8100000000000000000000
fmax2122 fma 9 9000000000000000000000 0E+999999 -> 81000000000000000000000
fmax2123 fma 9 90000000000000000000000 0E+999999 -> 810000000000000000000000
-- test some more edge cases without carries
fmax2131 fma 3 3 0E+999999 -> 9
fmax2132 fma 3 30 0E+999999 -> 90
fmax2133 fma 3 300 0E+999999 -> 900
fmax2134 fma 3 3000 0E+999999 -> 9000
fmax2135 fma 3 30000 0E+999999 -> 90000
fmax2136 fma 3 300000 0E+999999 -> 900000
fmax2137 fma 3 3000000 0E+999999 -> 9000000
fmax2138 fma 3 30000000 0E+999999 -> 90000000
fmax2139 fma 3 300000000 0E+999999 -> 900000000
fmax2140 fma 3 3000000000 0E+999999 -> 9000000000
fmax2141 fma 3 30000000000 0E+999999 -> 90000000000
fmax2142 fma 3 300000000000 0E+999999 -> 900000000000
fmax2143 fma 3 3000000000000 0E+999999 -> 9000000000000
fmax2144 fma 3 30000000000000 0E+999999 -> 90000000000000
fmax2145 fma 3 300000000000000 0E+999999 -> 900000000000000
fmax2146 fma 3 3000000000000000 0E+999999 -> 9000000000000000
fmax2147 fma 3 30000000000000000 0E+999999 -> 90000000000000000
fmax2148 fma 3 300000000000000000 0E+999999 -> 900000000000000000
fmax2149 fma 3 3000000000000000000 0E+999999 -> 9000000000000000000
fmax2150 fma 3 30000000000000000000 0E+999999 -> 90000000000000000000
fmax2151 fma 3 300000000000000000000 0E+999999 -> 900000000000000000000
fmax2152 fma 3 3000000000000000000000 0E+999999 -> 9000000000000000000000
fmax2153 fma 3 30000000000000000000000 0E+999999 -> 90000000000000000000000
maxexponent: 999999
minexponent: -999999
precision: 9
-- test some cases that are close to exponent overflow/underflow
fmax2170 fma 1 9e999999 0E+999999 -> 9E+999999
fmax2171 fma 1 9.9e999999 0E+999999 -> 9.9E+999999
fmax2172 fma 1 9.99e999999 0E+999999 -> 9.99E+999999
fmax2173 fma 9e999999 1 0E+999999 -> 9E+999999
fmax2174 fma 9.9e999999 1 0E+999999 -> 9.9E+999999
fmax2176 fma 9.99e999999 1 0E+999999 -> 9.99E+999999
fmax2177 fma 1 9.99999e999999 0E+999999 -> 9.99999E+999999
fmax2178 fma 9.99999e999999 1 0E+999999 -> 9.99999E+999999
fmax2180 fma 0.1 9e-999998 0E+999999 -> 9E-999999
fmax2181 fma 0.1 99e-999998 0E+999999 -> 9.9E-999998
fmax2182 fma 0.1 999e-999998 0E+999999 -> 9.99E-999997
fmax2183 fma 0.1 9e-999998 0E+999999 -> 9E-999999
fmax2184 fma 0.1 99e-999998 0E+999999 -> 9.9E-999998
fmax2185 fma 0.1 999e-999998 0E+999999 -> 9.99E-999997
fmax2186 fma 0.1 999e-999997 0E+999999 -> 9.99E-999996
fmax2187 fma 0.1 9999e-999997 0E+999999 -> 9.999E-999995
fmax2188 fma 0.1 99999e-999997 0E+999999 -> 9.9999E-999994
fmax2190 fma 1 9e-999998 0E+999999 -> 9E-999998
fmax2191 fma 1 99e-999998 0E+999999 -> 9.9E-999997
fmax2192 fma 1 999e-999998 0E+999999 -> 9.99E-999996
fmax2193 fma 9e-999998 1 0E+999999 -> 9E-999998
fmax2194 fma 99e-999998 1 0E+999999 -> 9.9E-999997
fmax2195 fma 999e-999998 1 0E+999999 -> 9.99E-999996
-- long operand triangle
precision: 33
fmax2246 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0E+999999 -> 145433.290801193369671916511992830 Inexact Rounded
precision: 32
fmax2247 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0E+999999 -> 145433.29080119336967191651199283 Inexact Rounded
precision: 31
fmax2248 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0E+999999 -> 145433.2908011933696719165119928 Inexact Rounded
precision: 30
fmax2249 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0E+999999 -> 145433.290801193369671916511993 Inexact Rounded
precision: 29
fmax2250 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0E+999999 -> 145433.29080119336967191651199 Inexact Rounded
precision: 28
fmax2251 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0E+999999 -> 145433.2908011933696719165120 Inexact Rounded
precision: 27
fmax2252 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0E+999999 -> 145433.290801193369671916512 Inexact Rounded
precision: 26
fmax2253 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0E+999999 -> 145433.29080119336967191651 Inexact Rounded
precision: 25
fmax2254 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0E+999999 -> 145433.2908011933696719165 Inexact Rounded
precision: 24
fmax2255 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0E+999999 -> 145433.290801193369671917 Inexact Rounded
precision: 23
fmax2256 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0E+999999 -> 145433.29080119336967192 Inexact Rounded
precision: 22
fmax2257 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0E+999999 -> 145433.2908011933696719 Inexact Rounded
precision: 21
fmax2258 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0E+999999 -> 145433.290801193369672 Inexact Rounded
precision: 20
fmax2259 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0E+999999 -> 145433.29080119336967 Inexact Rounded
precision: 19
fmax2260 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0E+999999 -> 145433.2908011933697 Inexact Rounded
precision: 18
fmax2261 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0E+999999 -> 145433.290801193370 Inexact Rounded
precision: 17
fmax2262 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0E+999999 -> 145433.29080119337 Inexact Rounded
precision: 16
fmax2263 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0E+999999 -> 145433.2908011934 Inexact Rounded
precision: 15
fmax2264 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0E+999999 -> 145433.290801193 Inexact Rounded
precision: 14
fmax2265 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0E+999999 -> 145433.29080119 Inexact Rounded
precision: 13
fmax2266 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0E+999999 -> 145433.2908012 Inexact Rounded
precision: 12
fmax2267 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0E+999999 -> 145433.290801 Inexact Rounded
precision: 11
fmax2268 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0E+999999 -> 145433.29080 Inexact Rounded
precision: 10
fmax2269 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0E+999999 -> 145433.2908 Inexact Rounded
precision: 9
fmax2270 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0E+999999 -> 145433.291 Inexact Rounded
precision: 8
fmax2271 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0E+999999 -> 145433.29 Inexact Rounded
precision: 7
fmax2272 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0E+999999 -> 145433.3 Inexact Rounded
precision: 6
fmax2273 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0E+999999 -> 145433 Inexact Rounded
precision: 5
fmax2274 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0E+999999 -> 1.4543E+5 Inexact Rounded
precision: 4
fmax2275 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0E+999999 -> 1.454E+5 Inexact Rounded
precision: 3
fmax2276 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0E+999999 -> 1.45E+5 Inexact Rounded
precision: 2
fmax2277 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0E+999999 -> 1.5E+5 Inexact Rounded
precision: 1
fmax2278 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0E+999999 -> 1E+5 Inexact Rounded
-- test some edge cases with exact rounding
maxexponent: 9999
minexponent: -9999
precision: 9
fmax2301 fma 9 9 0E+999999 -> 81
fmax2302 fma 9 90 0E+999999 -> 810
fmax2303 fma 9 900 0E+999999 -> 8100
fmax2304 fma 9 9000 0E+999999 -> 81000
fmax2305 fma 9 90000 0E+999999 -> 810000
fmax2306 fma 9 900000 0E+999999 -> 8100000
fmax2307 fma 9 9000000 0E+999999 -> 81000000
fmax2308 fma 9 90000000 0E+999999 -> 810000000
fmax2309 fma 9 900000000 0E+999999 -> 8.10000000E+9 Rounded
fmax2310 fma 9 9000000000 0E+999999 -> 8.10000000E+10 Rounded
fmax2311 fma 9 90000000000 0E+999999 -> 8.10000000E+11 Rounded
fmax2312 fma 9 900000000000 0E+999999 -> 8.10000000E+12 Rounded
fmax2313 fma 9 9000000000000 0E+999999 -> 8.10000000E+13 Rounded
fmax2314 fma 9 90000000000000 0E+999999 -> 8.10000000E+14 Rounded
fmax2315 fma 9 900000000000000 0E+999999 -> 8.10000000E+15 Rounded
fmax2316 fma 9 9000000000000000 0E+999999 -> 8.10000000E+16 Rounded
fmax2317 fma 9 90000000000000000 0E+999999 -> 8.10000000E+17 Rounded
fmax2318 fma 9 900000000000000000 0E+999999 -> 8.10000000E+18 Rounded
fmax2319 fma 9 9000000000000000000 0E+999999 -> 8.10000000E+19 Rounded
fmax2320 fma 9 90000000000000000000 0E+999999 -> 8.10000000E+20 Rounded
fmax2321 fma 9 900000000000000000000 0E+999999 -> 8.10000000E+21 Rounded
fmax2322 fma 9 9000000000000000000000 0E+999999 -> 8.10000000E+22 Rounded
fmax2323 fma 9 90000000000000000000000 0E+999999 -> 8.10000000E+23 Rounded
-- fastpath breakers
precision: 29
fmax2330 fma 1.491824697641270317824852952837224 1.105170918075647624811707826490246514675628614562883537345747603 0E+999999 -> 1.6487212707001281468486507878 Inexact Rounded
precision: 55
fmax2331 fma 0.8958341352965282506768545828765117803873717284891040428 0.8958341352965282506768545828765117803873717284891040428 0E+999999 -> 0.8025187979624784829842553829934069955890983696752228299 Inexact Rounded
-- tryzeros cases
precision: 7
rounding: half_up
maxExponent: 92
minexponent: -92
fmax2504 fma 0E-60 1000E-60 0E+999999 -> 0E-98 Clamped
fmax2505 fma 100E+60 0E+60 0E+999999 -> 0E+92 Clamped
-- mixed with zeros
maxexponent: 999999
minexponent: -999999
precision: 9
fmax2541 fma 0 -1 0E+999999 -> 0
fmax2542 fma -0 -1 0E+999999 -> 0
fmax2543 fma 0 1 0E+999999 -> 0
fmax2544 fma -0 1 0E+999999 -> 0
fmax2545 fma -1 0 0E+999999 -> 0
fmax2546 fma -1 -0 0E+999999 -> 0
fmax2547 fma 1 0 0E+999999 -> 0
fmax2548 fma 1 -0 0E+999999 -> 0
fmax2551 fma 0.0 -1 0E+999999 -> 0.0
fmax2552 fma -0.0 -1 0E+999999 -> 0.0
fmax2553 fma 0.0 1 0E+999999 -> 0.0
fmax2554 fma -0.0 1 0E+999999 -> 0.0
fmax2555 fma -1.0 0 0E+999999 -> 0.0
fmax2556 fma -1.0 -0 0E+999999 -> 0.0
fmax2557 fma 1.0 0 0E+999999 -> 0.0
fmax2558 fma 1.0 -0 0E+999999 -> 0.0
fmax2561 fma 0 -1.0 0E+999999 -> 0.0
fmax2562 fma -0 -1.0 0E+999999 -> 0.0
fmax2563 fma 0 1.0 0E+999999 -> 0.0
fmax2564 fma -0 1.0 0E+999999 -> 0.0
fmax2565 fma -1 0.0 0E+999999 -> 0.0
fmax2566 fma -1 -0.0 0E+999999 -> 0.0
fmax2567 fma 1 0.0 0E+999999 -> 0.0
fmax2568 fma 1 -0.0 0E+999999 -> 0.0
fmax2571 fma 0.0 -1.0 0E+999999 -> 0.00
fmax2572 fma -0.0 -1.0 0E+999999 -> 0.00
fmax2573 fma 0.0 1.0 0E+999999 -> 0.00
fmax2574 fma -0.0 1.0 0E+999999 -> 0.00
fmax2575 fma -1.0 0.0 0E+999999 -> 0.00
fmax2576 fma -1.0 -0.0 0E+999999 -> 0.00
fmax2577 fma 1.0 0.0 0E+999999 -> 0.00
fmax2578 fma 1.0 -0.0 0E+999999 -> 0.00
-- Specials
fmax2580 fma Inf -Inf 0E+999999 -> -Infinity
fmax2581 fma Inf -1000 0E+999999 -> -Infinity
fmax2582 fma Inf -1 0E+999999 -> -Infinity
fmax2583 fma Inf -0 0E+999999 -> NaN Invalid_operation
fmax2584 fma Inf 0 0E+999999 -> NaN Invalid_operation
fmax2585 fma Inf 1 0E+999999 -> Infinity
fmax2586 fma Inf 1000 0E+999999 -> Infinity
fmax2587 fma Inf Inf 0E+999999 -> Infinity
fmax2588 fma -1000 Inf 0E+999999 -> -Infinity
fmax2589 fma -Inf Inf 0E+999999 -> -Infinity
fmax2590 fma -1 Inf 0E+999999 -> -Infinity
fmax2591 fma -0 Inf 0E+999999 -> NaN Invalid_operation
fmax2592 fma 0 Inf 0E+999999 -> NaN Invalid_operation
fmax2593 fma 1 Inf 0E+999999 -> Infinity
fmax2594 fma 1000 Inf 0E+999999 -> Infinity
fmax2595 fma Inf Inf 0E+999999 -> Infinity
fmax2600 fma -Inf -Inf 0E+999999 -> Infinity
fmax2601 fma -Inf -1000 0E+999999 -> Infinity
fmax2602 fma -Inf -1 0E+999999 -> Infinity
fmax2603 fma -Inf -0 0E+999999 -> NaN Invalid_operation
fmax2604 fma -Inf 0 0E+999999 -> NaN Invalid_operation
fmax2605 fma -Inf 1 0E+999999 -> -Infinity
fmax2606 fma -Inf 1000 0E+999999 -> -Infinity
fmax2607 fma -Inf Inf 0E+999999 -> -Infinity
fmax2608 fma -1000 Inf 0E+999999 -> -Infinity
fmax2609 fma -Inf -Inf 0E+999999 -> Infinity
fmax2610 fma -1 -Inf 0E+999999 -> Infinity
fmax2611 fma -0 -Inf 0E+999999 -> NaN Invalid_operation
fmax2612 fma 0 -Inf 0E+999999 -> NaN Invalid_operation
fmax2613 fma 1 -Inf 0E+999999 -> -Infinity
fmax2614 fma 1000 -Inf 0E+999999 -> -Infinity
fmax2615 fma Inf -Inf 0E+999999 -> -Infinity
fmax2621 fma NaN -Inf 0E+999999 -> NaN
fmax2622 fma NaN -1000 0E+999999 -> NaN
fmax2623 fma NaN -1 0E+999999 -> NaN
fmax2624 fma NaN -0 0E+999999 -> NaN
fmax2625 fma NaN 0 0E+999999 -> NaN
fmax2626 fma NaN 1 0E+999999 -> NaN
fmax2627 fma NaN 1000 0E+999999 -> NaN
fmax2628 fma NaN Inf 0E+999999 -> NaN
fmax2629 fma NaN NaN 0E+999999 -> NaN
fmax2630 fma -Inf NaN 0E+999999 -> NaN
fmax2631 fma -1000 NaN 0E+999999 -> NaN
fmax2632 fma -1 NaN 0E+999999 -> NaN
fmax2633 fma -0 NaN 0E+999999 -> NaN
fmax2634 fma 0 NaN 0E+999999 -> NaN
fmax2635 fma 1 NaN 0E+999999 -> NaN
fmax2636 fma 1000 NaN 0E+999999 -> NaN
fmax2637 fma Inf NaN 0E+999999 -> NaN
fmax2641 fma sNaN -Inf 0E+999999 -> NaN Invalid_operation
fmax2642 fma sNaN -1000 0E+999999 -> NaN Invalid_operation
fmax2643 fma sNaN -1 0E+999999 -> NaN Invalid_operation
fmax2644 fma sNaN -0 0E+999999 -> NaN Invalid_operation
fmax2645 fma sNaN 0 0E+999999 -> NaN Invalid_operation
fmax2646 fma sNaN 1 0E+999999 -> NaN Invalid_operation
fmax2647 fma sNaN 1000 0E+999999 -> NaN Invalid_operation
fmax2648 fma sNaN NaN 0E+999999 -> NaN Invalid_operation
fmax2649 fma sNaN sNaN 0E+999999 -> NaN Invalid_operation
fmax2650 fma NaN sNaN 0E+999999 -> NaN Invalid_operation
fmax2651 fma -Inf sNaN 0E+999999 -> NaN Invalid_operation
fmax2652 fma -1000 sNaN 0E+999999 -> NaN Invalid_operation
fmax2653 fma -1 sNaN 0E+999999 -> NaN Invalid_operation
fmax2654 fma -0 sNaN 0E+999999 -> NaN Invalid_operation
fmax2655 fma 0 sNaN 0E+999999 -> NaN Invalid_operation
fmax2656 fma 1 sNaN 0E+999999 -> NaN Invalid_operation
fmax2657 fma 1000 sNaN 0E+999999 -> NaN Invalid_operation
fmax2658 fma Inf sNaN 0E+999999 -> NaN Invalid_operation
fmax2659 fma NaN sNaN 0E+999999 -> NaN Invalid_operation
-- propagating NaNs
fmax2661 fma NaN9 -Inf 0E+999999 -> NaN9
fmax2662 fma NaN8 999 0E+999999 -> NaN8
fmax2663 fma NaN71 Inf 0E+999999 -> NaN71
fmax2664 fma NaN6 NaN5 0E+999999 -> NaN6
fmax2665 fma -Inf NaN4 0E+999999 -> NaN4
fmax2666 fma -999 NaN33 0E+999999 -> NaN33
fmax2667 fma Inf NaN2 0E+999999 -> NaN2
fmax2671 fma sNaN99 -Inf 0E+999999 -> NaN99 Invalid_operation
fmax2672 fma sNaN98 -11 0E+999999 -> NaN98 Invalid_operation
fmax2673 fma sNaN97 NaN 0E+999999 -> NaN97 Invalid_operation
fmax2674 fma sNaN16 sNaN94 0E+999999 -> NaN16 Invalid_operation
fmax2675 fma NaN95 sNaN93 0E+999999 -> NaN93 Invalid_operation
fmax2676 fma -Inf sNaN92 0E+999999 -> NaN92 Invalid_operation
fmax2677 fma 088 sNaN91 0E+999999 -> NaN91 Invalid_operation
fmax2678 fma Inf sNaN90 0E+999999 -> NaN90 Invalid_operation
fmax2679 fma NaN sNaN89 0E+999999 -> NaN89 Invalid_operation
fmax2681 fma -NaN9 -Inf 0E+999999 -> -NaN9
fmax2682 fma -NaN8 999 0E+999999 -> -NaN8
fmax2683 fma -NaN71 Inf 0E+999999 -> -NaN71
fmax2684 fma -NaN6 -NaN5 0E+999999 -> -NaN6
fmax2685 fma -Inf -NaN4 0E+999999 -> -NaN4
fmax2686 fma -999 -NaN33 0E+999999 -> -NaN33
fmax2687 fma Inf -NaN2 0E+999999 -> -NaN2
fmax2691 fma -sNaN99 -Inf 0E+999999 -> -NaN99 Invalid_operation
fmax2692 fma -sNaN98 -11 0E+999999 -> -NaN98 Invalid_operation
fmax2693 fma -sNaN97 NaN 0E+999999 -> -NaN97 Invalid_operation
fmax2694 fma -sNaN16 -sNaN94 0E+999999 -> -NaN16 Invalid_operation
fmax2695 fma -NaN95 -sNaN93 0E+999999 -> -NaN93 Invalid_operation
fmax2696 fma -Inf -sNaN92 0E+999999 -> -NaN92 Invalid_operation
fmax2697 fma 088 -sNaN91 0E+999999 -> -NaN91 Invalid_operation
fmax2698 fma Inf -sNaN90 0E+999999 -> -NaN90 Invalid_operation
fmax2699 fma -NaN -sNaN89 0E+999999 -> -NaN89 Invalid_operation
fmax2701 fma -NaN -Inf 0E+999999 -> -NaN
fmax2702 fma -NaN 999 0E+999999 -> -NaN
fmax2703 fma -NaN Inf 0E+999999 -> -NaN
fmax2704 fma -NaN -NaN 0E+999999 -> -NaN
fmax2705 fma -Inf -NaN0 0E+999999 -> -NaN
fmax2706 fma -999 -NaN 0E+999999 -> -NaN
fmax2707 fma Inf -NaN 0E+999999 -> -NaN
fmax2711 fma -sNaN -Inf 0E+999999 -> -NaN Invalid_operation
fmax2712 fma -sNaN -11 0E+999999 -> -NaN Invalid_operation
fmax2713 fma -sNaN00 NaN 0E+999999 -> -NaN Invalid_operation
fmax2714 fma -sNaN -sNaN 0E+999999 -> -NaN Invalid_operation
fmax2715 fma -NaN -sNaN 0E+999999 -> -NaN Invalid_operation
fmax2716 fma -Inf -sNaN 0E+999999 -> -NaN Invalid_operation
fmax2717 fma 088 -sNaN 0E+999999 -> -NaN Invalid_operation
fmax2718 fma Inf -sNaN 0E+999999 -> -NaN Invalid_operation
fmax2719 fma -NaN -sNaN 0E+999999 -> -NaN Invalid_operation
-- overflow and underflow tests .. note subnormal results
maxexponent: 999999
minexponent: -999999
fmax2730 fma +1.23456789012345E-0 9E+999999 0E+999999 -> Infinity Inexact Overflow Rounded
fmax2731 fma 9E+999999 +1.23456789012345E-0 0E+999999 -> Infinity Inexact Overflow Rounded
fmax2732 fma +0.100 9E-999999 0E+999999 -> 9.00E-1000000 Subnormal
fmax2733 fma 9E-999999 +0.100 0E+999999 -> 9.00E-1000000 Subnormal
fmax2735 fma -1.23456789012345E-0 9E+999999 0E+999999 -> -Infinity Inexact Overflow Rounded
fmax2736 fma 9E+999999 -1.23456789012345E-0 0E+999999 -> -Infinity Inexact Overflow Rounded
fmax2737 fma -0.100 9E-999999 0E+999999 -> -9.00E-1000000 Subnormal
fmax2738 fma 9E-999999 -0.100 0E+999999 -> -9.00E-1000000 Subnormal
-- signs
fmax2751 fma 1e+777777 1e+411111 0E+999999 -> Infinity Overflow Inexact Rounded
fmax2752 fma 1e+777777 -1e+411111 0E+999999 -> -Infinity Overflow Inexact Rounded
fmax2753 fma -1e+777777 1e+411111 0E+999999 -> -Infinity Overflow Inexact Rounded
fmax2754 fma -1e+777777 -1e+411111 0E+999999 -> Infinity Overflow Inexact Rounded
fmax2755 fma 1e-777777 1e-411111 0E+999999 -> 0E-1000007 Underflow Subnormal Inexact Rounded Clamped
fmax2756 fma 1e-777777 -1e-411111 0E+999999 -> -0E-1000007 Underflow Subnormal Inexact Rounded Clamped
fmax2757 fma -1e-777777 1e-411111 0E+999999 -> -0E-1000007 Underflow Subnormal Inexact Rounded Clamped
fmax2758 fma -1e-777777 -1e-411111 0E+999999 -> 0E-1000007 Underflow Subnormal Inexact Rounded Clamped
-- 'subnormal' boundary (all hard underflow or overflow in base arithemtic)
precision: 9
fmax2760 fma 1e-600000 1e-400001 0E+999999 -> 1E-1000001 Subnormal
fmax2761 fma 1e-600000 1e-400002 0E+999999 -> 1E-1000002 Subnormal
fmax2762 fma 1e-600000 1e-400003 0E+999999 -> 1E-1000003 Subnormal
fmax2763 fma 1e-600000 1e-400004 0E+999999 -> 1E-1000004 Subnormal
fmax2764 fma 1e-600000 1e-400005 0E+999999 -> 1E-1000005 Subnormal
fmax2765 fma 1e-600000 1e-400006 0E+999999 -> 1E-1000006 Subnormal
fmax2766 fma 1e-600000 1e-400007 0E+999999 -> 1E-1000007 Subnormal
fmax2767 fma 1e-600000 1e-400008 0E+999999 -> 0E-1000007 Underflow Subnormal Inexact Rounded Clamped
fmax2768 fma 1e-600000 1e-400009 0E+999999 -> 0E-1000007 Underflow Subnormal Inexact Rounded Clamped
fmax2769 fma 1e-600000 1e-400010 0E+999999 -> 0E-1000007 Underflow Subnormal Inexact Rounded Clamped
-- [no equivalent of 'subnormal' for overflow]
fmax2770 fma 1e+600000 1e+400001 0E+999999 -> Infinity Overflow Inexact Rounded
fmax2771 fma 1e+600000 1e+400002 0E+999999 -> Infinity Overflow Inexact Rounded
fmax2772 fma 1e+600000 1e+400003 0E+999999 -> Infinity Overflow Inexact Rounded
fmax2773 fma 1e+600000 1e+400004 0E+999999 -> Infinity Overflow Inexact Rounded
fmax2774 fma 1e+600000 1e+400005 0E+999999 -> Infinity Overflow Inexact Rounded
fmax2775 fma 1e+600000 1e+400006 0E+999999 -> Infinity Overflow Inexact Rounded
fmax2776 fma 1e+600000 1e+400007 0E+999999 -> Infinity Overflow Inexact Rounded
fmax2777 fma 1e+600000 1e+400008 0E+999999 -> Infinity Overflow Inexact Rounded
fmax2778 fma 1e+600000 1e+400009 0E+999999 -> Infinity Overflow Inexact Rounded
fmax2779 fma 1e+600000 1e+400010 0E+999999 -> Infinity Overflow Inexact Rounded
-- 'subnormal' test edge condition at higher precisions
precision: 99
fmax2780 fma 1e-600000 1e-400007 0E+999999 -> 1E-1000007 Subnormal
fmax2781 fma 1e-600000 1e-400008 0E+999999 -> 1E-1000008 Subnormal
fmax2782 fma 1e-600000 1e-400097 0E+999999 -> 1E-1000097 Subnormal
fmax2783 fma 1e-600000 1e-400098 0E+999999 -> 0E-1000097 Underflow Subnormal Inexact Rounded Clamped
precision: 999
fmax2784 fma 1e-600000 1e-400997 0E+999999 -> 1E-1000997 Subnormal
fmax2785 fma 1e-600000 1e-400998 0E+999999 -> 0E-1000997 Underflow Subnormal Inexact Rounded Clamped
-- test subnormals rounding
precision: 5
maxExponent: 999
minexponent: -999
rounding: half_even
fmax2801 fma 1.0000E-999 1 0E+999999 -> 1.0000E-999
fmax2802 fma 1.000E-999 1e-1 0E+999999 -> 1.000E-1000 Subnormal
fmax2803 fma 1.00E-999 1e-2 0E+999999 -> 1.00E-1001 Subnormal
fmax2804 fma 1.0E-999 1e-3 0E+999999 -> 1.0E-1002 Subnormal
fmax2805 fma 1.0E-999 1e-4 0E+999999 -> 1E-1003 Subnormal Rounded
fmax2806 fma 1.3E-999 1e-4 0E+999999 -> 1E-1003 Underflow Subnormal Inexact Rounded
fmax2807 fma 1.5E-999 1e-4 0E+999999 -> 2E-1003 Underflow Subnormal Inexact Rounded
fmax2808 fma 1.7E-999 1e-4 0E+999999 -> 2E-1003 Underflow Subnormal Inexact Rounded
fmax2809 fma 2.3E-999 1e-4 0E+999999 -> 2E-1003 Underflow Subnormal Inexact Rounded
fmax2810 fma 2.5E-999 1e-4 0E+999999 -> 2E-1003 Underflow Subnormal Inexact Rounded
fmax2811 fma 2.7E-999 1e-4 0E+999999 -> 3E-1003 Underflow Subnormal Inexact Rounded
fmax2812 fma 1.49E-999 1e-4 0E+999999 -> 1E-1003 Underflow Subnormal Inexact Rounded
fmax2813 fma 1.50E-999 1e-4 0E+999999 -> 2E-1003 Underflow Subnormal Inexact Rounded
fmax2814 fma 1.51E-999 1e-4 0E+999999 -> 2E-1003 Underflow Subnormal Inexact Rounded
fmax2815 fma 2.49E-999 1e-4 0E+999999 -> 2E-1003 Underflow Subnormal Inexact Rounded
fmax2816 fma 2.50E-999 1e-4 0E+999999 -> 2E-1003 Underflow Subnormal Inexact Rounded
fmax2817 fma 2.51E-999 1e-4 0E+999999 -> 3E-1003 Underflow Subnormal Inexact Rounded
fmax2818 fma 1E-999 1e-4 0E+999999 -> 1E-1003 Subnormal
fmax2819 fma 3E-999 1e-5 0E+999999 -> 0E-1003 Underflow Subnormal Inexact Rounded Clamped
fmax2820 fma 5E-999 1e-5 0E+999999 -> 0E-1003 Underflow Subnormal Inexact Rounded Clamped
fmax2821 fma 7E-999 1e-5 0E+999999 -> 1E-1003 Underflow Subnormal Inexact Rounded
fmax2822 fma 9E-999 1e-5 0E+999999 -> 1E-1003 Underflow Subnormal Inexact Rounded
fmax2823 fma 9.9E-999 1e-5 0E+999999 -> 1E-1003 Underflow Subnormal Inexact Rounded
fmax2824 fma 1E-999 -1e-4 0E+999999 -> -1E-1003 Subnormal
fmax2825 fma 3E-999 -1e-5 0E+999999 -> -0E-1003 Underflow Subnormal Inexact Rounded Clamped
fmax2826 fma -5E-999 1e-5 0E+999999 -> -0E-1003 Underflow Subnormal Inexact Rounded Clamped
fmax2827 fma 7E-999 -1e-5 0E+999999 -> -1E-1003 Underflow Subnormal Inexact Rounded
fmax2828 fma -9E-999 1e-5 0E+999999 -> -1E-1003 Underflow Subnormal Inexact Rounded
fmax2829 fma 9.9E-999 -1e-5 0E+999999 -> -1E-1003 Underflow Subnormal Inexact Rounded
fmax2830 fma 3.0E-999 -1e-5 0E+999999 -> -0E-1003 Underflow Subnormal Inexact Rounded Clamped
fmax2831 fma 1.0E-501 1e-501 0E+999999 -> 1.0E-1002 Subnormal
fmax2832 fma 2.0E-501 2e-501 0E+999999 -> 4.0E-1002 Subnormal
fmax2833 fma 4.0E-501 4e-501 0E+999999 -> 1.60E-1001 Subnormal
fmax2834 fma 10.0E-501 10e-501 0E+999999 -> 1.000E-1000 Subnormal
fmax2835 fma 30.0E-501 30e-501 0E+999999 -> 9.000E-1000 Subnormal
fmax2836 fma 40.0E-501 40e-501 0E+999999 -> 1.6000E-999
-- squares
fmax2840 fma 1E-502 1e-502 0E+999999 -> 0E-1003 Underflow Subnormal Inexact Rounded Clamped
fmax2841 fma 1E-501 1e-501 0E+999999 -> 1E-1002 Subnormal
fmax2842 fma 2E-501 2e-501 0E+999999 -> 4E-1002 Subnormal
fmax2843 fma 4E-501 4e-501 0E+999999 -> 1.6E-1001 Subnormal
fmax2844 fma 10E-501 10e-501 0E+999999 -> 1.00E-1000 Subnormal
fmax2845 fma 30E-501 30e-501 0E+999999 -> 9.00E-1000 Subnormal
fmax2846 fma 40E-501 40e-501 0E+999999 -> 1.600E-999
-- cubes
fmax2850 fma 1E-670 1e-335 0E+999999 -> 0E-1003 Underflow Subnormal Inexact Rounded Clamped
fmax2851 fma 1E-668 1e-334 0E+999999 -> 1E-1002 Subnormal
fmax2852 fma 4E-668 2e-334 0E+999999 -> 8E-1002 Subnormal
fmax2853 fma 9E-668 3e-334 0E+999999 -> 2.7E-1001 Subnormal
fmax2854 fma 16E-668 4e-334 0E+999999 -> 6.4E-1001 Subnormal
fmax2855 fma 25E-668 5e-334 0E+999999 -> 1.25E-1000 Subnormal
fmax2856 fma 10E-668 100e-334 0E+999999 -> 1.000E-999
-- test derived from result of 0.099 ** 999 at 15 digits with unlimited exponent
precision: 19
fmax2860 fma 6636851557994578716E-520 6636851557994578716E-520 0E+999999 -> 4.40477986028551E-1003 Underflow Subnormal Inexact Rounded
-- Long operand overflow may be a different path
precision: 3
maxExponent: 999999
minexponent: -999999
fmax2870 fma 1 9.999E+999999 0E+999999 -> Infinity Inexact Overflow Rounded
fmax2871 fma 1 -9.999E+999999 0E+999999 -> -Infinity Inexact Overflow Rounded
fmax2872 fma 9.999E+999999 1 0E+999999 -> Infinity Inexact Overflow Rounded
fmax2873 fma -9.999E+999999 1 0E+999999 -> -Infinity Inexact Overflow Rounded
-- check for double-rounded subnormals
precision: 5
maxexponent: 79
minexponent: -79
fmax2881 fma 1.2347E-40 1.2347E-40 0E+999999 -> 1.524E-80 Inexact Rounded Subnormal Underflow
fmax2882 fma 1.234E-40 1.234E-40 0E+999999 -> 1.523E-80 Inexact Rounded Subnormal Underflow
fmax2883 fma 1.23E-40 1.23E-40 0E+999999 -> 1.513E-80 Inexact Rounded Subnormal Underflow
fmax2884 fma 1.2E-40 1.2E-40 0E+999999 -> 1.44E-80 Subnormal
fmax2885 fma 1.2E-40 1.2E-41 0E+999999 -> 1.44E-81 Subnormal
fmax2886 fma 1.2E-40 1.2E-42 0E+999999 -> 1.4E-82 Subnormal Inexact Rounded Underflow
fmax2887 fma 1.2E-40 1.3E-42 0E+999999 -> 1.6E-82 Subnormal Inexact Rounded Underflow
fmax2888 fma 1.3E-40 1.3E-42 0E+999999 -> 1.7E-82 Subnormal Inexact Rounded Underflow
fmax2889 fma 1.3E-40 1.3E-43 0E+999999 -> 2E-83 Subnormal Inexact Rounded Underflow
fmax2890 fma 1.3E-41 1.3E-43 0E+999999 -> 0E-83 Clamped Subnormal Inexact Rounded Underflow
fmax2891 fma 1.2345E-39 1.234E-40 0E+999999 -> 1.5234E-79 Inexact Rounded
fmax2892 fma 1.23456E-39 1.234E-40 0E+999999 -> 1.5234E-79 Inexact Rounded
fmax2893 fma 1.2345E-40 1.234E-40 0E+999999 -> 1.523E-80 Inexact Rounded Subnormal Underflow
fmax2894 fma 1.23456E-40 1.234E-40 0E+999999 -> 1.523E-80 Inexact Rounded Subnormal Underflow
fmax2895 fma 1.2345E-41 1.234E-40 0E+999999 -> 1.52E-81 Inexact Rounded Subnormal Underflow
fmax2896 fma 1.23456E-41 1.234E-40 0E+999999 -> 1.52E-81 Inexact Rounded Subnormal Underflow
-- Now explore the case where we get a normal result with Underflow
precision: 16
rounding: half_up
maxExponent: 384
minExponent: -383
fmax2900 fma 0.3000000000E-191 0.3000000000E-191 0E+999999 -> 9.00000000000000E-384 Subnormal Rounded
fmax2901 fma 0.3000000001E-191 0.3000000001E-191 0E+999999 -> 9.00000000600000E-384 Underflow Inexact Subnormal Rounded
fmax2902 fma 9.999999999999999E-383 0.0999999999999 0E+999999 -> 9.99999999999000E-384 Underflow Inexact Subnormal Rounded
fmax2903 fma 9.999999999999999E-383 0.09999999999999 0E+999999 -> 9.99999999999900E-384 Underflow Inexact Subnormal Rounded
fmax2904 fma 9.999999999999999E-383 0.099999999999999 0E+999999 -> 9.99999999999990E-384 Underflow Inexact Subnormal Rounded
fmax2905 fma 9.999999999999999E-383 0.0999999999999999 0E+999999 -> 9.99999999999999E-384 Underflow Inexact Subnormal Rounded
-- prove operands are exact
fmax2906 fma 9.999999999999999E-383 1 0E+999999 -> 9.999999999999999E-383
fmax2907 fma 1 0.09999999999999999 0E+999999 -> 0.09999999999999999
-- the next rounds to Nmin
fmax2908 fma 9.999999999999999E-383 0.09999999999999999 0E+999999 -> 1.000000000000000E-383 Underflow Inexact Subnormal Rounded
fmax2909 fma 9.999999999999999E-383 0.099999999999999999 0E+999999 -> 1.000000000000000E-383 Underflow Inexact Subnormal Rounded
fmax2910 fma 9.999999999999999E-383 0.0999999999999999999 0E+999999 -> 1.000000000000000E-383 Underflow Inexact Subnormal Rounded
fmax2911 fma 9.999999999999999E-383 0.09999999999999999999 0E+999999 -> 1.000000000000000E-383 Underflow Inexact Subnormal Rounded
-- Examples from SQL proposal (Krishna Kulkarni)
precision: 34
rounding: half_up
maxExponent: 6144
minExponent: -6143
fmax2921 fma 130E-2 120E-2 0E+999999 -> 1.5600
fmax2922 fma 130E-2 12E-1 0E+999999 -> 1.560
fmax2923 fma 130E-2 1E0 0E+999999 -> 1.30
-- Null tests
fmax2990 fma # 10 0E+999999 -> NaN Invalid_operation
fmax2991 fma 10 # 0E+999999 -> NaN Invalid_operation
-- ADDITION TESTS ------------------------------------------------------
precision: 9
rounding: half_up
maxExponent: 384
minexponent: -383
-- [first group are 'quick confidence check']
fmax3001 fma 1 1 1 -> 2
fmax3002 fma 1 2 3 -> 5
fmax3003 fma 1 '5.75' '3.3' -> 9.05
fmax3004 fma 1 '5' '-3' -> 2
fmax3005 fma 1 '-5' '-3' -> -8
fmax3006 fma 1 '-7' '2.5' -> -4.5
fmax3007 fma 1 '0.7' '0.3' -> 1.0
fmax3008 fma 1 '1.25' '1.25' -> 2.50
fmax3009 fma 1 '1.23456789' '1.00000000' -> '2.23456789'
fmax3010 fma 1 '1.23456789' '1.00000011' -> '2.23456800'
fmax3011 fma 1 '0.4444444444' '0.5555555555' -> '1.00000000' Inexact Rounded
fmax3012 fma 1 '0.4444444440' '0.5555555555' -> '1.00000000' Inexact Rounded
fmax3013 fma 1 '0.4444444444' '0.5555555550' -> '0.999999999' Inexact Rounded
fmax3014 fma 1 '0.44444444449' '0' -> '0.444444444' Inexact Rounded
fmax3015 fma 1 '0.444444444499' '0' -> '0.444444444' Inexact Rounded
fmax3016 fma 1 '0.4444444444999' '0' -> '0.444444444' Inexact Rounded
fmax3017 fma 1 '0.4444444445000' '0' -> '0.444444445' Inexact Rounded
fmax3018 fma 1 '0.4444444445001' '0' -> '0.444444445' Inexact Rounded
fmax3019 fma 1 '0.444444444501' '0' -> '0.444444445' Inexact Rounded
fmax3020 fma 1 '0.44444444451' '0' -> '0.444444445' Inexact Rounded
fmax3021 fma 1 0 1 -> 1
fmax3022 fma 1 1 1 -> 2
fmax3023 fma 1 2 1 -> 3
fmax3024 fma 1 3 1 -> 4
fmax3025 fma 1 4 1 -> 5
fmax3026 fma 1 5 1 -> 6
fmax3027 fma 1 6 1 -> 7
fmax3028 fma 1 7 1 -> 8
fmax3029 fma 1 8 1 -> 9
fmax3030 fma 1 9 1 -> 10
-- some carrying effects
fmax3031 fma 1 '0.9998' '0.0000' -> '0.9998'
fmax3032 fma 1 '0.9998' '0.0001' -> '0.9999'
fmax3033 fma 1 '0.9998' '0.0002' -> '1.0000'
fmax3034 fma 1 '0.9998' '0.0003' -> '1.0001'
fmax3035 fma 1 '70' '10000e+9' -> '1.00000000E+13' Inexact Rounded
fmax3036 fma 1 '700' '10000e+9' -> '1.00000000E+13' Inexact Rounded
fmax3037 fma 1 '7000' '10000e+9' -> '1.00000000E+13' Inexact Rounded
fmax3038 fma 1 '70000' '10000e+9' -> '1.00000001E+13' Inexact Rounded
fmax3039 fma 1 '700000' '10000e+9' -> '1.00000007E+13' Rounded
-- symmetry:
fmax3040 fma 1 '10000e+9' '70' -> '1.00000000E+13' Inexact Rounded
fmax3041 fma 1 '10000e+9' '700' -> '1.00000000E+13' Inexact Rounded
fmax3042 fma 1 '10000e+9' '7000' -> '1.00000000E+13' Inexact Rounded
fmax3044 fma 1 '10000e+9' '70000' -> '1.00000001E+13' Inexact Rounded
fmax3045 fma 1 '10000e+9' '700000' -> '1.00000007E+13' Rounded
-- same, higher precision
precision: 15
fmax3046 fma 1 '10000e+9' '7' -> '10000000000007'
fmax3047 fma 1 '10000e+9' '70' -> '10000000000070'
fmax3048 fma 1 '10000e+9' '700' -> '10000000000700'
fmax3049 fma 1 '10000e+9' '7000' -> '10000000007000'
fmax3050 fma 1 '10000e+9' '70000' -> '10000000070000'
fmax3051 fma 1 '10000e+9' '700000' -> '10000000700000'
fmax3052 fma 1 '10000e+9' '7000000' -> '10000007000000'
-- examples from decarith
fmax3053 fma 1 '12' '7.00' -> '19.00'
fmax3054 fma 1 '1.3' '-1.07' -> '0.23'
fmax3055 fma 1 '1.3' '-1.30' -> '0.00'
fmax3056 fma 1 '1.3' '-2.07' -> '-0.77'
fmax3057 fma 1 '1E+2' '1E+4' -> '1.01E+4'
-- zero preservation
precision: 6
fmax3060 fma 1 '10000e+9' '70000' -> '1.00000E+13' Inexact Rounded
fmax3061 fma 1 1 '0.0001' -> '1.0001'
fmax3062 fma 1 1 '0.00001' -> '1.00001'
fmax3063 fma 1 1 '0.000001' -> '1.00000' Inexact Rounded
fmax3064 fma 1 1 '0.0000001' -> '1.00000' Inexact Rounded
fmax3065 fma 1 1 '0.00000001' -> '1.00000' Inexact Rounded
-- some funny zeros [in case of bad signum]
fmax3070 fma 1 1 0 -> 1
fmax3071 fma 1 1 0. -> 1
fmax3072 fma 1 1 .0 -> 1.0
fmax3073 fma 1 1 0.0 -> 1.0
fmax3074 fma 1 1 0.00 -> 1.00
fmax3075 fma 1 0 1 -> 1
fmax3076 fma 1 0. 1 -> 1
fmax3077 fma 1 .0 1 -> 1.0
fmax3078 fma 1 0.0 1 -> 1.0
fmax3079 fma 1 0.00 1 -> 1.00
precision: 9
-- some carries
fmax3080 fma 1 999999998 1 -> 999999999
fmax3081 fma 1 999999999 1 -> 1.00000000E+9 Rounded
fmax3082 fma 1 99999999 1 -> 100000000
fmax3083 fma 1 9999999 1 -> 10000000
fmax3084 fma 1 999999 1 -> 1000000
fmax3085 fma 1 99999 1 -> 100000
fmax3086 fma 1 9999 1 -> 10000
fmax3087 fma 1 999 1 -> 1000
fmax3088 fma 1 99 1 -> 100
fmax3089 fma 1 9 1 -> 10
-- more LHS swaps
fmax3090 fma 1 '-56267E-10' 0 -> '-0.0000056267'
fmax3091 fma 1 '-56267E-6' 0 -> '-0.056267'
fmax3092 fma 1 '-56267E-5' 0 -> '-0.56267'
fmax3093 fma 1 '-56267E-4' 0 -> '-5.6267'
fmax3094 fma 1 '-56267E-3' 0 -> '-56.267'
fmax3095 fma 1 '-56267E-2' 0 -> '-562.67'
fmax3096 fma 1 '-56267E-1' 0 -> '-5626.7'
fmax3097 fma 1 '-56267E-0' 0 -> '-56267'
fmax3098 fma 1 '-5E-10' 0 -> '-5E-10'
fmax3099 fma 1 '-5E-7' 0 -> '-5E-7'
fmax3100 fma 1 '-5E-6' 0 -> '-0.000005'
fmax3101 fma 1 '-5E-5' 0 -> '-0.00005'
fmax3102 fma 1 '-5E-4' 0 -> '-0.0005'
fmax3103 fma 1 '-5E-1' 0 -> '-0.5'
fmax3104 fma 1 '-5E0' 0 -> '-5'
fmax3105 fma 1 '-5E1' 0 -> '-50'
fmax3106 fma 1 '-5E5' 0 -> '-500000'
fmax3107 fma 1 '-5E8' 0 -> '-500000000'
fmax3108 fma 1 '-5E9' 0 -> '-5.00000000E+9' Rounded
fmax3109 fma 1 '-5E10' 0 -> '-5.00000000E+10' Rounded
fmax3110 fma 1 '-5E11' 0 -> '-5.00000000E+11' Rounded
fmax3111 fma 1 '-5E100' 0 -> '-5.00000000E+100' Rounded
-- more RHS swaps
fmax3113 fma 1 0 '-56267E-10' -> '-0.0000056267'
fmax3114 fma 1 0 '-56267E-6' -> '-0.056267'
fmax3116 fma 1 0 '-56267E-5' -> '-0.56267'
fmax3117 fma 1 0 '-56267E-4' -> '-5.6267'
fmax3119 fma 1 0 '-56267E-3' -> '-56.267'
fmax3120 fma 1 0 '-56267E-2' -> '-562.67'
fmax3121 fma 1 0 '-56267E-1' -> '-5626.7'
fmax3122 fma 1 0 '-56267E-0' -> '-56267'
fmax3123 fma 1 0 '-5E-10' -> '-5E-10'
fmax3124 fma 1 0 '-5E-7' -> '-5E-7'
fmax3125 fma 1 0 '-5E-6' -> '-0.000005'
fmax3126 fma 1 0 '-5E-5' -> '-0.00005'
fmax3127 fma 1 0 '-5E-4' -> '-0.0005'
fmax3128 fma 1 0 '-5E-1' -> '-0.5'
fmax3129 fma 1 0 '-5E0' -> '-5'
fmax3130 fma 1 0 '-5E1' -> '-50'
fmax3131 fma 1 0 '-5E5' -> '-500000'
fmax3132 fma 1 0 '-5E8' -> '-500000000'
fmax3133 fma 1 0 '-5E9' -> '-5.00000000E+9' Rounded
fmax3134 fma 1 0 '-5E10' -> '-5.00000000E+10' Rounded
fmax3135 fma 1 0 '-5E11' -> '-5.00000000E+11' Rounded
fmax3136 fma 1 0 '-5E100' -> '-5.00000000E+100' Rounded
-- related
fmax3137 fma 1 1 '0E-12' -> '1.00000000' Rounded
fmax3138 fma 1 -1 '0E-12' -> '-1.00000000' Rounded
fmax3139 fma 1 '0E-12' 1 -> '1.00000000' Rounded
fmax3140 fma 1 '0E-12' -1 -> '-1.00000000' Rounded
fmax3141 fma 1 1E+4 0.0000 -> '10000.0000'
fmax3142 fma 1 1E+4 0.00000 -> '10000.0000' Rounded
fmax3143 fma 1 0.000 1E+5 -> '100000.000'
fmax3144 fma 1 0.0000 1E+5 -> '100000.000' Rounded
-- [some of the next group are really constructor tests]
fmax3146 fma 1 '00.0' 0 -> '0.0'
fmax3147 fma 1 '0.00' 0 -> '0.00'
fmax3148 fma 1 0 '0.00' -> '0.00'
fmax3149 fma 1 0 '00.0' -> '0.0'
fmax3150 fma 1 '00.0' '0.00' -> '0.00'
fmax3151 fma 1 '0.00' '00.0' -> '0.00'
fmax3152 fma 1 '3' '.3' -> '3.3'
fmax3153 fma 1 '3.' '.3' -> '3.3'
fmax3154 fma 1 '3.0' '.3' -> '3.3'
fmax3155 fma 1 '3.00' '.3' -> '3.30'
fmax3156 fma 1 '3' '3' -> '6'
fmax3157 fma 1 '3' '+3' -> '6'
fmax3158 fma 1 '3' '-3' -> '0'
fmax3159 fma 1 '0.3' '-0.3' -> '0.0'
fmax3160 fma 1 '0.03' '-0.03' -> '0.00'
-- try borderline precision, with carries, etc.
precision: 15
fmax3161 fma 1 '1E+12' '-1' -> '999999999999'
fmax3162 fma 1 '1E+12' '1.11' -> '1000000000001.11'
fmax3163 fma 1 '1.11' '1E+12' -> '1000000000001.11'
fmax3164 fma 1 '-1' '1E+12' -> '999999999999'
fmax3165 fma 1 '7E+12' '-1' -> '6999999999999'
fmax3166 fma 1 '7E+12' '1.11' -> '7000000000001.11'
fmax3167 fma 1 '1.11' '7E+12' -> '7000000000001.11'
fmax3168 fma 1 '-1' '7E+12' -> '6999999999999'
-- 123456789012345 123456789012345 1 23456789012345
fmax3170 fma 1 '0.444444444444444' '0.555555555555563' -> '1.00000000000001' Inexact Rounded
fmax3171 fma 1 '0.444444444444444' '0.555555555555562' -> '1.00000000000001' Inexact Rounded
fmax3172 fma 1 '0.444444444444444' '0.555555555555561' -> '1.00000000000001' Inexact Rounded
fmax3173 fma 1 '0.444444444444444' '0.555555555555560' -> '1.00000000000000' Inexact Rounded
fmax3174 fma 1 '0.444444444444444' '0.555555555555559' -> '1.00000000000000' Inexact Rounded
fmax3175 fma 1 '0.444444444444444' '0.555555555555558' -> '1.00000000000000' Inexact Rounded
fmax3176 fma 1 '0.444444444444444' '0.555555555555557' -> '1.00000000000000' Inexact Rounded
fmax3177 fma 1 '0.444444444444444' '0.555555555555556' -> '1.00000000000000' Rounded
fmax3178 fma 1 '0.444444444444444' '0.555555555555555' -> '0.999999999999999'
fmax3179 fma 1 '0.444444444444444' '0.555555555555554' -> '0.999999999999998'
fmax3180 fma 1 '0.444444444444444' '0.555555555555553' -> '0.999999999999997'
fmax3181 fma 1 '0.444444444444444' '0.555555555555552' -> '0.999999999999996'
fmax3182 fma 1 '0.444444444444444' '0.555555555555551' -> '0.999999999999995'
fmax3183 fma 1 '0.444444444444444' '0.555555555555550' -> '0.999999999999994'
-- and some more, including residue effects and different roundings
precision: 9
rounding: half_up
fmax3200 fma 1 '123456789' 0 -> '123456789'
fmax3201 fma 1 '123456789' 0.000000001 -> '123456789' Inexact Rounded
fmax3202 fma 1 '123456789' 0.000001 -> '123456789' Inexact Rounded
fmax3203 fma 1 '123456789' 0.1 -> '123456789' Inexact Rounded
fmax3204 fma 1 '123456789' 0.4 -> '123456789' Inexact Rounded
fmax3205 fma 1 '123456789' 0.49 -> '123456789' Inexact Rounded
fmax3206 fma 1 '123456789' 0.499999 -> '123456789' Inexact Rounded
fmax3207 fma 1 '123456789' 0.499999999 -> '123456789' Inexact Rounded
fmax3208 fma 1 '123456789' 0.5 -> '123456790' Inexact Rounded
fmax3209 fma 1 '123456789' 0.500000001 -> '123456790' Inexact Rounded
fmax3210 fma 1 '123456789' 0.500001 -> '123456790' Inexact Rounded
fmax3211 fma 1 '123456789' 0.51 -> '123456790' Inexact Rounded
fmax3212 fma 1 '123456789' 0.6 -> '123456790' Inexact Rounded
fmax3213 fma 1 '123456789' 0.9 -> '123456790' Inexact Rounded
fmax3214 fma 1 '123456789' 0.99999 -> '123456790' Inexact Rounded
fmax3215 fma 1 '123456789' 0.999999999 -> '123456790' Inexact Rounded
fmax3216 fma 1 '123456789' 1 -> '123456790'
fmax3217 fma 1 '123456789' 1.000000001 -> '123456790' Inexact Rounded
fmax3218 fma 1 '123456789' 1.00001 -> '123456790' Inexact Rounded
fmax3219 fma 1 '123456789' 1.1 -> '123456790' Inexact Rounded
rounding: half_even
fmax3220 fma 1 '123456789' 0 -> '123456789'
fmax3221 fma 1 '123456789' 0.000000001 -> '123456789' Inexact Rounded
fmax3222 fma 1 '123456789' 0.000001 -> '123456789' Inexact Rounded
fmax3223 fma 1 '123456789' 0.1 -> '123456789' Inexact Rounded
fmax3224 fma 1 '123456789' 0.4 -> '123456789' Inexact Rounded
fmax3225 fma 1 '123456789' 0.49 -> '123456789' Inexact Rounded
fmax3226 fma 1 '123456789' 0.499999 -> '123456789' Inexact Rounded
fmax3227 fma 1 '123456789' 0.499999999 -> '123456789' Inexact Rounded
fmax3228 fma 1 '123456789' 0.5 -> '123456790' Inexact Rounded
fmax3229 fma 1 '123456789' 0.500000001 -> '123456790' Inexact Rounded
fmax3230 fma 1 '123456789' 0.500001 -> '123456790' Inexact Rounded
fmax3231 fma 1 '123456789' 0.51 -> '123456790' Inexact Rounded
fmax3232 fma 1 '123456789' 0.6 -> '123456790' Inexact Rounded
fmax3233 fma 1 '123456789' 0.9 -> '123456790' Inexact Rounded
fmax3234 fma 1 '123456789' 0.99999 -> '123456790' Inexact Rounded
fmax3235 fma 1 '123456789' 0.999999999 -> '123456790' Inexact Rounded
fmax3236 fma 1 '123456789' 1 -> '123456790'
fmax3237 fma 1 '123456789' 1.00000001 -> '123456790' Inexact Rounded
fmax3238 fma 1 '123456789' 1.00001 -> '123456790' Inexact Rounded
fmax3239 fma 1 '123456789' 1.1 -> '123456790' Inexact Rounded
-- critical few with even bottom digit...
fmax3240 fma 1 '123456788' 0.499999999 -> '123456788' Inexact Rounded
fmax3241 fma 1 '123456788' 0.5 -> '123456788' Inexact Rounded
fmax3242 fma 1 '123456788' 0.500000001 -> '123456789' Inexact Rounded
rounding: down
fmax3250 fma 1 '123456789' 0 -> '123456789'
fmax3251 fma 1 '123456789' 0.000000001 -> '123456789' Inexact Rounded
fmax3252 fma 1 '123456789' 0.000001 -> '123456789' Inexact Rounded
fmax3253 fma 1 '123456789' 0.1 -> '123456789' Inexact Rounded
fmax3254 fma 1 '123456789' 0.4 -> '123456789' Inexact Rounded
fmax3255 fma 1 '123456789' 0.49 -> '123456789' Inexact Rounded
fmax3256 fma 1 '123456789' 0.499999 -> '123456789' Inexact Rounded
fmax3257 fma 1 '123456789' 0.499999999 -> '123456789' Inexact Rounded
fmax3258 fma 1 '123456789' 0.5 -> '123456789' Inexact Rounded
fmax3259 fma 1 '123456789' 0.500000001 -> '123456789' Inexact Rounded
fmax3260 fma 1 '123456789' 0.500001 -> '123456789' Inexact Rounded
fmax3261 fma 1 '123456789' 0.51 -> '123456789' Inexact Rounded
fmax3262 fma 1 '123456789' 0.6 -> '123456789' Inexact Rounded
fmax3263 fma 1 '123456789' 0.9 -> '123456789' Inexact Rounded
fmax3264 fma 1 '123456789' 0.99999 -> '123456789' Inexact Rounded
fmax3265 fma 1 '123456789' 0.999999999 -> '123456789' Inexact Rounded
fmax3266 fma 1 '123456789' 1 -> '123456790'
fmax3267 fma 1 '123456789' 1.00000001 -> '123456790' Inexact Rounded
fmax3268 fma 1 '123456789' 1.00001 -> '123456790' Inexact Rounded
fmax3269 fma 1 '123456789' 1.1 -> '123456790' Inexact Rounded
-- input preparation tests (operands should not be rounded)
precision: 3
rounding: half_up
fmax3270 fma 1 '12345678900000' 9999999999999 -> '2.23E+13' Inexact Rounded
fmax3271 fma 1 '9999999999999' 12345678900000 -> '2.23E+13' Inexact Rounded
fmax3272 fma 1 '12E+3' '3444' -> '1.54E+4' Inexact Rounded
fmax3273 fma 1 '12E+3' '3446' -> '1.54E+4' Inexact Rounded
fmax3274 fma 1 '12E+3' '3449.9' -> '1.54E+4' Inexact Rounded
fmax3275 fma 1 '12E+3' '3450.0' -> '1.55E+4' Inexact Rounded
fmax3276 fma 1 '12E+3' '3450.1' -> '1.55E+4' Inexact Rounded
fmax3277 fma 1 '12E+3' '3454' -> '1.55E+4' Inexact Rounded
fmax3278 fma 1 '12E+3' '3456' -> '1.55E+4' Inexact Rounded
fmax3281 fma 1 '3444' '12E+3' -> '1.54E+4' Inexact Rounded
fmax3282 fma 1 '3446' '12E+3' -> '1.54E+4' Inexact Rounded
fmax3283 fma 1 '3449.9' '12E+3' -> '1.54E+4' Inexact Rounded
fmax3284 fma 1 '3450.0' '12E+3' -> '1.55E+4' Inexact Rounded
fmax3285 fma 1 '3450.1' '12E+3' -> '1.55E+4' Inexact Rounded
fmax3286 fma 1 '3454' '12E+3' -> '1.55E+4' Inexact Rounded
fmax3287 fma 1 '3456' '12E+3' -> '1.55E+4' Inexact Rounded
rounding: half_down
fmax3291 fma 1 '3444' '12E+3' -> '1.54E+4' Inexact Rounded
fmax3292 fma 1 '3446' '12E+3' -> '1.54E+4' Inexact Rounded
fmax3293 fma 1 '3449.9' '12E+3' -> '1.54E+4' Inexact Rounded
fmax3294 fma 1 '3450.0' '12E+3' -> '1.54E+4' Inexact Rounded
fmax3295 fma 1 '3450.1' '12E+3' -> '1.55E+4' Inexact Rounded
fmax3296 fma 1 '3454' '12E+3' -> '1.55E+4' Inexact Rounded
fmax3297 fma 1 '3456' '12E+3' -> '1.55E+4' Inexact Rounded
-- 1 in last place tests
rounding: half_up
fmax3301 fma 1 -1 1 -> 0
fmax3302 fma 1 0 1 -> 1
fmax3303 fma 1 1 1 -> 2
fmax3304 fma 1 12 1 -> 13
fmax3305 fma 1 98 1 -> 99
fmax3306 fma 1 99 1 -> 100
fmax3307 fma 1 100 1 -> 101
fmax3308 fma 1 101 1 -> 102
fmax3309 fma 1 -1 -1 -> -2
fmax3310 fma 1 0 -1 -> -1
fmax3311 fma 1 1 -1 -> 0
fmax3312 fma 1 12 -1 -> 11
fmax3313 fma 1 98 -1 -> 97
fmax3314 fma 1 99 -1 -> 98
fmax3315 fma 1 100 -1 -> 99
fmax3316 fma 1 101 -1 -> 100
fmax3321 fma 1 -0.01 0.01 -> 0.00
fmax3322 fma 1 0.00 0.01 -> 0.01
fmax3323 fma 1 0.01 0.01 -> 0.02
fmax3324 fma 1 0.12 0.01 -> 0.13
fmax3325 fma 1 0.98 0.01 -> 0.99
fmax3326 fma 1 0.99 0.01 -> 1.00
fmax3327 fma 1 1.00 0.01 -> 1.01
fmax3328 fma 1 1.01 0.01 -> 1.02
fmax3329 fma 1 -0.01 -0.01 -> -0.02
fmax3330 fma 1 0.00 -0.01 -> -0.01
fmax3331 fma 1 0.01 -0.01 -> 0.00
fmax3332 fma 1 0.12 -0.01 -> 0.11
fmax3333 fma 1 0.98 -0.01 -> 0.97
fmax3334 fma 1 0.99 -0.01 -> 0.98
fmax3335 fma 1 1.00 -0.01 -> 0.99
fmax3336 fma 1 1.01 -0.01 -> 1.00
-- some more cases where fma 1 ing 0 affects the coefficient
precision: 9
fmax3340 fma 1 1E+3 0 -> 1000
fmax3341 fma 1 1E+8 0 -> 100000000
fmax3342 fma 1 1E+9 0 -> 1.00000000E+9 Rounded
fmax3343 fma 1 1E+10 0 -> 1.00000000E+10 Rounded
-- which simply follow from these cases ...
fmax3344 fma 1 1E+3 1 -> 1001
fmax3345 fma 1 1E+8 1 -> 100000001
fmax3346 fma 1 1E+9 1 -> 1.00000000E+9 Inexact Rounded
fmax3347 fma 1 1E+10 1 -> 1.00000000E+10 Inexact Rounded
fmax3348 fma 1 1E+3 7 -> 1007
fmax3349 fma 1 1E+8 7 -> 100000007
fmax3350 fma 1 1E+9 7 -> 1.00000001E+9 Inexact Rounded
fmax3351 fma 1 1E+10 7 -> 1.00000000E+10 Inexact Rounded
-- tryzeros cases
precision: 7
rounding: half_up
maxExponent: 92
minexponent: -92
fmax3361 fma 1 0E+50 10000E+1 -> 1.0000E+5
fmax3362 fma 1 10000E+1 0E-50 -> 100000.0 Rounded
fmax3363 fma 1 10000E+1 10000E-50 -> 100000.0 Rounded Inexact
fmax3364 fma 1 9.999999E+92 -9.999999E+92 -> 0E+86
-- a curiosity from JSR 13 testing
rounding: half_down
precision: 10
fmax3370 fma 1 99999999 81512 -> 100081511
precision: 6
fmax3371 fma 1 99999999 81512 -> 1.00082E+8 Rounded Inexact
rounding: half_up
precision: 10
fmax3372 fma 1 99999999 81512 -> 100081511
precision: 6
fmax3373 fma 1 99999999 81512 -> 1.00082E+8 Rounded Inexact
rounding: half_even
precision: 10
fmax3374 fma 1 99999999 81512 -> 100081511
precision: 6
fmax3375 fma 1 99999999 81512 -> 1.00082E+8 Rounded Inexact
-- ulp replacement tests
precision: 9
maxexponent: 999999
minexponent: -999999
fmax3400 fma 1 1 77e-7 -> 1.0000077
fmax3401 fma 1 1 77e-8 -> 1.00000077
fmax3402 fma 1 1 77e-9 -> 1.00000008 Inexact Rounded
fmax3403 fma 1 1 77e-10 -> 1.00000001 Inexact Rounded
fmax3404 fma 1 1 77e-11 -> 1.00000000 Inexact Rounded
fmax3405 fma 1 1 77e-12 -> 1.00000000 Inexact Rounded
fmax3406 fma 1 1 77e-999 -> 1.00000000 Inexact Rounded
fmax3407 fma 1 1 77e-999999 -> 1.00000000 Inexact Rounded
fmax3410 fma 1 10 77e-7 -> 10.0000077
fmax3411 fma 1 10 77e-8 -> 10.0000008 Inexact Rounded
fmax3412 fma 1 10 77e-9 -> 10.0000001 Inexact Rounded
fmax3413 fma 1 10 77e-10 -> 10.0000000 Inexact Rounded
fmax3414 fma 1 10 77e-11 -> 10.0000000 Inexact Rounded
fmax3415 fma 1 10 77e-12 -> 10.0000000 Inexact Rounded
fmax3416 fma 1 10 77e-999 -> 10.0000000 Inexact Rounded
fmax3417 fma 1 10 77e-999999 -> 10.0000000 Inexact Rounded
fmax3420 fma 1 77e-7 1 -> 1.0000077
fmax3421 fma 1 77e-8 1 -> 1.00000077
fmax3422 fma 1 77e-9 1 -> 1.00000008 Inexact Rounded
fmax3423 fma 1 77e-10 1 -> 1.00000001 Inexact Rounded
fmax3424 fma 1 77e-11 1 -> 1.00000000 Inexact Rounded
fmax3425 fma 1 77e-12 1 -> 1.00000000 Inexact Rounded
fmax3426 fma 1 77e-999 1 -> 1.00000000 Inexact Rounded
fmax3427 fma 1 77e-999999 1 -> 1.00000000 Inexact Rounded
fmax3430 fma 1 77e-7 10 -> 10.0000077
fmax3431 fma 1 77e-8 10 -> 10.0000008 Inexact Rounded
fmax3432 fma 1 77e-9 10 -> 10.0000001 Inexact Rounded
fmax3433 fma 1 77e-10 10 -> 10.0000000 Inexact Rounded
fmax3434 fma 1 77e-11 10 -> 10.0000000 Inexact Rounded
fmax3435 fma 1 77e-12 10 -> 10.0000000 Inexact Rounded
fmax3436 fma 1 77e-999 10 -> 10.0000000 Inexact Rounded
fmax3437 fma 1 77e-999999 10 -> 10.0000000 Inexact Rounded
-- negative ulps
fmax3440 fma 1 1 -77e-7 -> 0.9999923
fmax3441 fma 1 1 -77e-8 -> 0.99999923
fmax3442 fma 1 1 -77e-9 -> 0.999999923
fmax3443 fma 1 1 -77e-10 -> 0.999999992 Inexact Rounded
fmax3444 fma 1 1 -77e-11 -> 0.999999999 Inexact Rounded
fmax3445 fma 1 1 -77e-12 -> 1.00000000 Inexact Rounded
fmax3446 fma 1 1 -77e-999 -> 1.00000000 Inexact Rounded
fmax3447 fma 1 1 -77e-999999 -> 1.00000000 Inexact Rounded
fmax3450 fma 1 10 -77e-7 -> 9.9999923
fmax3451 fma 1 10 -77e-8 -> 9.99999923
fmax3452 fma 1 10 -77e-9 -> 9.99999992 Inexact Rounded
fmax3453 fma 1 10 -77e-10 -> 9.99999999 Inexact Rounded
fmax3454 fma 1 10 -77e-11 -> 10.0000000 Inexact Rounded
fmax3455 fma 1 10 -77e-12 -> 10.0000000 Inexact Rounded
fmax3456 fma 1 10 -77e-999 -> 10.0000000 Inexact Rounded
fmax3457 fma 1 10 -77e-999999 -> 10.0000000 Inexact Rounded
fmax3460 fma 1 -77e-7 1 -> 0.9999923
fmax3461 fma 1 -77e-8 1 -> 0.99999923
fmax3462 fma 1 -77e-9 1 -> 0.999999923
fmax3463 fma 1 -77e-10 1 -> 0.999999992 Inexact Rounded
fmax3464 fma 1 -77e-11 1 -> 0.999999999 Inexact Rounded
fmax3465 fma 1 -77e-12 1 -> 1.00000000 Inexact Rounded
fmax3466 fma 1 -77e-999 1 -> 1.00000000 Inexact Rounded
fmax3467 fma 1 -77e-999999 1 -> 1.00000000 Inexact Rounded
fmax3470 fma 1 -77e-7 10 -> 9.9999923
fmax3471 fma 1 -77e-8 10 -> 9.99999923
fmax3472 fma 1 -77e-9 10 -> 9.99999992 Inexact Rounded
fmax3473 fma 1 -77e-10 10 -> 9.99999999 Inexact Rounded
fmax3474 fma 1 -77e-11 10 -> 10.0000000 Inexact Rounded
fmax3475 fma 1 -77e-12 10 -> 10.0000000 Inexact Rounded
fmax3476 fma 1 -77e-999 10 -> 10.0000000 Inexact Rounded
fmax3477 fma 1 -77e-999999 10 -> 10.0000000 Inexact Rounded
-- negative ulps
fmax3480 fma 1 -1 77e-7 -> -0.9999923
fmax3481 fma 1 -1 77e-8 -> -0.99999923
fmax3482 fma 1 -1 77e-9 -> -0.999999923
fmax3483 fma 1 -1 77e-10 -> -0.999999992 Inexact Rounded
fmax3484 fma 1 -1 77e-11 -> -0.999999999 Inexact Rounded
fmax3485 fma 1 -1 77e-12 -> -1.00000000 Inexact Rounded
fmax3486 fma 1 -1 77e-999 -> -1.00000000 Inexact Rounded
fmax3487 fma 1 -1 77e-999999 -> -1.00000000 Inexact Rounded
fmax3490 fma 1 -10 77e-7 -> -9.9999923
fmax3491 fma 1 -10 77e-8 -> -9.99999923
fmax3492 fma 1 -10 77e-9 -> -9.99999992 Inexact Rounded
fmax3493 fma 1 -10 77e-10 -> -9.99999999 Inexact Rounded
fmax3494 fma 1 -10 77e-11 -> -10.0000000 Inexact Rounded
fmax3495 fma 1 -10 77e-12 -> -10.0000000 Inexact Rounded
fmax3496 fma 1 -10 77e-999 -> -10.0000000 Inexact Rounded
fmax3497 fma 1 -10 77e-999999 -> -10.0000000 Inexact Rounded
fmax3500 fma 1 77e-7 -1 -> -0.9999923
fmax3501 fma 1 77e-8 -1 -> -0.99999923
fmax3502 fma 1 77e-9 -1 -> -0.999999923
fmax3503 fma 1 77e-10 -1 -> -0.999999992 Inexact Rounded
fmax3504 fma 1 77e-11 -1 -> -0.999999999 Inexact Rounded
fmax3505 fma 1 77e-12 -1 -> -1.00000000 Inexact Rounded
fmax3506 fma 1 77e-999 -1 -> -1.00000000 Inexact Rounded
fmax3507 fma 1 77e-999999 -1 -> -1.00000000 Inexact Rounded
fmax3510 fma 1 77e-7 -10 -> -9.9999923
fmax3511 fma 1 77e-8 -10 -> -9.99999923
fmax3512 fma 1 77e-9 -10 -> -9.99999992 Inexact Rounded
fmax3513 fma 1 77e-10 -10 -> -9.99999999 Inexact Rounded
fmax3514 fma 1 77e-11 -10 -> -10.0000000 Inexact Rounded
fmax3515 fma 1 77e-12 -10 -> -10.0000000 Inexact Rounded
fmax3516 fma 1 77e-999 -10 -> -10.0000000 Inexact Rounded
fmax3517 fma 1 77e-999999 -10 -> -10.0000000 Inexact Rounded
-- long operands
maxexponent: 999
minexponent: -999
precision: 9
fmax3521 fma 1 12345678000 0 -> 1.23456780E+10 Rounded
fmax3522 fma 1 0 12345678000 -> 1.23456780E+10 Rounded
fmax3523 fma 1 1234567800 0 -> 1.23456780E+9 Rounded
fmax3524 fma 1 0 1234567800 -> 1.23456780E+9 Rounded
fmax3525 fma 1 1234567890 0 -> 1.23456789E+9 Rounded
fmax3526 fma 1 0 1234567890 -> 1.23456789E+9 Rounded
fmax3527 fma 1 1234567891 0 -> 1.23456789E+9 Inexact Rounded
fmax3528 fma 1 0 1234567891 -> 1.23456789E+9 Inexact Rounded
fmax3529 fma 1 12345678901 0 -> 1.23456789E+10 Inexact Rounded
fmax3530 fma 1 0 12345678901 -> 1.23456789E+10 Inexact Rounded
fmax3531 fma 1 1234567896 0 -> 1.23456790E+9 Inexact Rounded
fmax3532 fma 1 0 1234567896 -> 1.23456790E+9 Inexact Rounded
precision: 15
-- still checking
fmax3541 fma 1 12345678000 0 -> 12345678000
fmax3542 fma 1 0 12345678000 -> 12345678000
fmax3543 fma 1 1234567800 0 -> 1234567800
fmax3544 fma 1 0 1234567800 -> 1234567800
fmax3545 fma 1 1234567890 0 -> 1234567890
fmax3546 fma 1 0 1234567890 -> 1234567890
fmax3547 fma 1 1234567891 0 -> 1234567891
fmax3548 fma 1 0 1234567891 -> 1234567891
fmax3549 fma 1 12345678901 0 -> 12345678901
fmax3550 fma 1 0 12345678901 -> 12345678901
fmax3551 fma 1 1234567896 0 -> 1234567896
fmax3552 fma 1 0 1234567896 -> 1234567896
-- verify a query
precision: 16
maxExponent: +394
minExponent: -393
rounding: down
fmax3561 fma 1 1e-398 9.000000000000000E+384 -> 9.000000000000000E+384 Inexact Rounded
fmax3562 fma 1 0 9.000000000000000E+384 -> 9.000000000000000E+384 Rounded
-- and using decimal64 bounds...
precision: 16
maxExponent: +384
minExponent: -383
rounding: down
fmax3563 fma 1 1e-388 9.000000000000000E+374 -> 9.000000000000000E+374 Inexact Rounded
fmax3564 fma 1 0 9.000000000000000E+374 -> 9.000000000000000E+374 Rounded
-- some more residue effects with extreme rounding
precision: 9
rounding: half_up
fmax3601 fma 1 123456789 0.000001 -> 123456789 Inexact Rounded
rounding: half_even
fmax3602 fma 1 123456789 0.000001 -> 123456789 Inexact Rounded
rounding: half_down
fmax3603 fma 1 123456789 0.000001 -> 123456789 Inexact Rounded
rounding: floor
fmax3604 fma 1 123456789 0.000001 -> 123456789 Inexact Rounded
rounding: ceiling
fmax3605 fma 1 123456789 0.000001 -> 123456790 Inexact Rounded
rounding: up
fmax3606 fma 1 123456789 0.000001 -> 123456790 Inexact Rounded
rounding: down
fmax3607 fma 1 123456789 0.000001 -> 123456789 Inexact Rounded
rounding: half_up
fmax3611 fma 1 123456789 -0.000001 -> 123456789 Inexact Rounded
rounding: half_even
fmax3612 fma 1 123456789 -0.000001 -> 123456789 Inexact Rounded
rounding: half_down
fmax3613 fma 1 123456789 -0.000001 -> 123456789 Inexact Rounded
rounding: floor
fmax3614 fma 1 123456789 -0.000001 -> 123456788 Inexact Rounded
rounding: ceiling
fmax3615 fma 1 123456789 -0.000001 -> 123456789 Inexact Rounded
rounding: up
fmax3616 fma 1 123456789 -0.000001 -> 123456789 Inexact Rounded
rounding: down
fmax3617 fma 1 123456789 -0.000001 -> 123456788 Inexact Rounded
rounding: half_up
fmax3621 fma 1 123456789 0.499999 -> 123456789 Inexact Rounded
rounding: half_even
fmax3622 fma 1 123456789 0.499999 -> 123456789 Inexact Rounded
rounding: half_down
fmax3623 fma 1 123456789 0.499999 -> 123456789 Inexact Rounded
rounding: floor
fmax3624 fma 1 123456789 0.499999 -> 123456789 Inexact Rounded
rounding: ceiling
fmax3625 fma 1 123456789 0.499999 -> 123456790 Inexact Rounded
rounding: up
fmax3626 fma 1 123456789 0.499999 -> 123456790 Inexact Rounded
rounding: down
fmax3627 fma 1 123456789 0.499999 -> 123456789 Inexact Rounded
rounding: half_up
fmax3631 fma 1 123456789 -0.499999 -> 123456789 Inexact Rounded
rounding: half_even
fmax3632 fma 1 123456789 -0.499999 -> 123456789 Inexact Rounded
rounding: half_down
fmax3633 fma 1 123456789 -0.499999 -> 123456789 Inexact Rounded
rounding: floor
fmax3634 fma 1 123456789 -0.499999 -> 123456788 Inexact Rounded
rounding: ceiling
fmax3635 fma 1 123456789 -0.499999 -> 123456789 Inexact Rounded
rounding: up
fmax3636 fma 1 123456789 -0.499999 -> 123456789 Inexact Rounded
rounding: down
fmax3637 fma 1 123456789 -0.499999 -> 123456788 Inexact Rounded
rounding: half_up
fmax3641 fma 1 123456789 0.500001 -> 123456790 Inexact Rounded
rounding: half_even
fmax3642 fma 1 123456789 0.500001 -> 123456790 Inexact Rounded
rounding: half_down
fmax3643 fma 1 123456789 0.500001 -> 123456790 Inexact Rounded
rounding: floor
fmax3644 fma 1 123456789 0.500001 -> 123456789 Inexact Rounded
rounding: ceiling
fmax3645 fma 1 123456789 0.500001 -> 123456790 Inexact Rounded
rounding: up
fmax3646 fma 1 123456789 0.500001 -> 123456790 Inexact Rounded
rounding: down
fmax3647 fma 1 123456789 0.500001 -> 123456789 Inexact Rounded
rounding: half_up
fmax3651 fma 1 123456789 -0.500001 -> 123456788 Inexact Rounded
rounding: half_even
fmax3652 fma 1 123456789 -0.500001 -> 123456788 Inexact Rounded
rounding: half_down
fmax3653 fma 1 123456789 -0.500001 -> 123456788 Inexact Rounded
rounding: floor
fmax3654 fma 1 123456789 -0.500001 -> 123456788 Inexact Rounded
rounding: ceiling
fmax3655 fma 1 123456789 -0.500001 -> 123456789 Inexact Rounded
rounding: up
fmax3656 fma 1 123456789 -0.500001 -> 123456789 Inexact Rounded
rounding: down
fmax3657 fma 1 123456789 -0.500001 -> 123456788 Inexact Rounded
-- long operand triangle
rounding: half_up
precision: 37
fmax3660 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42211023638922337114834538
precision: 36
fmax3661 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4221102363892233711483454 Inexact Rounded
precision: 35
fmax3662 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.422110236389223371148345 Inexact Rounded
precision: 34
fmax3663 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42211023638922337114835 Inexact Rounded
precision: 33
fmax3664 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4221102363892233711483 Inexact Rounded
precision: 32
fmax3665 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.422110236389223371148 Inexact Rounded
precision: 31
fmax3666 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42211023638922337115 Inexact Rounded
precision: 30
fmax3667 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4221102363892233711 Inexact Rounded
precision: 29
fmax3668 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.422110236389223371 Inexact Rounded
precision: 28
fmax3669 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42211023638922337 Inexact Rounded
precision: 27
fmax3670 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4221102363892234 Inexact Rounded
precision: 26
fmax3671 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.422110236389223 Inexact Rounded
precision: 25
fmax3672 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42211023638922 Inexact Rounded
precision: 24
fmax3673 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4221102363892 Inexact Rounded
precision: 23
fmax3674 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.422110236389 Inexact Rounded
precision: 22
fmax3675 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42211023639 Inexact Rounded
precision: 21
fmax3676 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4221102364 Inexact Rounded
precision: 20
fmax3677 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.422110236 Inexact Rounded
precision: 19
fmax3678 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42211024 Inexact Rounded
precision: 18
fmax3679 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4221102 Inexact Rounded
precision: 17
fmax3680 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.422110 Inexact Rounded
precision: 16
fmax3681 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42211 Inexact Rounded
precision: 15
fmax3682 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4221 Inexact Rounded
precision: 14
fmax3683 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.422 Inexact Rounded
precision: 13
fmax3684 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42 Inexact Rounded
precision: 12
fmax3685 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4 Inexact Rounded
precision: 11
fmax3686 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166 Inexact Rounded
precision: 10
fmax3687 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.847117417E+10 Inexact Rounded
precision: 9
fmax3688 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.84711742E+10 Inexact Rounded
precision: 8
fmax3689 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.8471174E+10 Inexact Rounded
precision: 7
fmax3690 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.847117E+10 Inexact Rounded
precision: 6
fmax3691 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.84712E+10 Inexact Rounded
precision: 5
fmax3692 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.8471E+10 Inexact Rounded
precision: 4
fmax3693 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.847E+10 Inexact Rounded
precision: 3
fmax3694 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.85E+10 Inexact Rounded
precision: 2
fmax3695 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.8E+10 Inexact Rounded
precision: 1
fmax3696 fma 1 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 1E+11 Inexact Rounded
-- more zeros, etc.
rounding: half_up
precision: 9
fmax3701 fma 1 5.00 1.00E-3 -> 5.00100
fmax3702 fma 1 00.00 0.000 -> 0.000
fmax3703 fma 1 00.00 0E-3 -> 0.000
fmax3704 fma 1 0E-3 00.00 -> 0.000
fmax3710 fma 1 0E+3 00.00 -> 0.00
fmax3711 fma 1 0E+3 00.0 -> 0.0
fmax3712 fma 1 0E+3 00. -> 0
fmax3713 fma 1 0E+3 00.E+1 -> 0E+1
fmax3714 fma 1 0E+3 00.E+2 -> 0E+2
fmax3715 fma 1 0E+3 00.E+3 -> 0E+3
fmax3716 fma 1 0E+3 00.E+4 -> 0E+3
fmax3717 fma 1 0E+3 00.E+5 -> 0E+3
fmax3718 fma 1 0E+3 -00.0 -> 0.0
fmax3719 fma 1 0E+3 -00. -> 0
fmax3731 fma 1 0E+3 -00.E+1 -> 0E+1
fmax3720 fma 1 00.00 0E+3 -> 0.00
fmax3721 fma 1 00.0 0E+3 -> 0.0
fmax3722 fma 1 00. 0E+3 -> 0
fmax3723 fma 1 00.E+1 0E+3 -> 0E+1
fmax3724 fma 1 00.E+2 0E+3 -> 0E+2
fmax3725 fma 1 00.E+3 0E+3 -> 0E+3
fmax3726 fma 1 00.E+4 0E+3 -> 0E+3
fmax3727 fma 1 00.E+5 0E+3 -> 0E+3
fmax3728 fma 1 -00.00 0E+3 -> 0.00
fmax3729 fma 1 -00.0 0E+3 -> 0.0
fmax3730 fma 1 -00. 0E+3 -> 0
fmax3732 fma 1 0 0 -> 0
fmax3733 fma 1 0 -0 -> 0
fmax3734 fma 1 -0 0 -> 0
fmax3735 fma 1 -0 -0 -> -0 -- IEEE 854 special case
fmax3736 fma 1 1 -1 -> 0
fmax3737 fma 1 -1 -1 -> -2
fmax3738 fma 1 1 1 -> 2
fmax3739 fma 1 -1 1 -> 0
fmax3741 fma 1 0 -1 -> -1
fmax3742 fma 1 -0 -1 -> -1
fmax3743 fma 1 0 1 -> 1
fmax3744 fma 1 -0 1 -> 1
fmax3745 fma 1 -1 0 -> -1
fmax3746 fma 1 -1 -0 -> -1
fmax3747 fma 1 1 0 -> 1
fmax3748 fma 1 1 -0 -> 1
fmax3751 fma 1 0.0 -1 -> -1.0
fmax3752 fma 1 -0.0 -1 -> -1.0
fmax3753 fma 1 0.0 1 -> 1.0
fmax3754 fma 1 -0.0 1 -> 1.0
fmax3755 fma 1 -1.0 0 -> -1.0
fmax3756 fma 1 -1.0 -0 -> -1.0
fmax3757 fma 1 1.0 0 -> 1.0
fmax3758 fma 1 1.0 -0 -> 1.0
fmax3761 fma 1 0 -1.0 -> -1.0
fmax3762 fma 1 -0 -1.0 -> -1.0
fmax3763 fma 1 0 1.0 -> 1.0
fmax3764 fma 1 -0 1.0 -> 1.0
fmax3765 fma 1 -1 0.0 -> -1.0
fmax3766 fma 1 -1 -0.0 -> -1.0
fmax3767 fma 1 1 0.0 -> 1.0
fmax3768 fma 1 1 -0.0 -> 1.0
fmax3771 fma 1 0.0 -1.0 -> -1.0
fmax3772 fma 1 -0.0 -1.0 -> -1.0
fmax3773 fma 1 0.0 1.0 -> 1.0
fmax3774 fma 1 -0.0 1.0 -> 1.0
fmax3775 fma 1 -1.0 0.0 -> -1.0
fmax3776 fma 1 -1.0 -0.0 -> -1.0
fmax3777 fma 1 1.0 0.0 -> 1.0
fmax3778 fma 1 1.0 -0.0 -> 1.0
-- Specials
fmax3780 fma 1 -Inf -Inf -> -Infinity
fmax3781 fma 1 -Inf -1000 -> -Infinity
fmax3782 fma 1 -Inf -1 -> -Infinity
fmax3783 fma 1 -Inf -0 -> -Infinity
fmax3784 fma 1 -Inf 0 -> -Infinity
fmax3785 fma 1 -Inf 1 -> -Infinity
fmax3786 fma 1 -Inf 1000 -> -Infinity
fmax3787 fma 1 -1000 -Inf -> -Infinity
fmax3788 fma 1 -Inf -Inf -> -Infinity
fmax3789 fma 1 -1 -Inf -> -Infinity
fmax3790 fma 1 -0 -Inf -> -Infinity
fmax3791 fma 1 0 -Inf -> -Infinity
fmax3792 fma 1 1 -Inf -> -Infinity
fmax3793 fma 1 1000 -Inf -> -Infinity
fmax3794 fma 1 Inf -Inf -> NaN Invalid_operation
fmax3800 fma 1 Inf -Inf -> NaN Invalid_operation
fmax3801 fma 1 Inf -1000 -> Infinity
fmax3802 fma 1 Inf -1 -> Infinity
fmax3803 fma 1 Inf -0 -> Infinity
fmax3804 fma 1 Inf 0 -> Infinity
fmax3805 fma 1 Inf 1 -> Infinity
fmax3806 fma 1 Inf 1000 -> Infinity
fmax3807 fma 1 Inf Inf -> Infinity
fmax3808 fma 1 -1000 Inf -> Infinity
fmax3809 fma 1 -Inf Inf -> NaN Invalid_operation
fmax3810 fma 1 -1 Inf -> Infinity
fmax3811 fma 1 -0 Inf -> Infinity
fmax3812 fma 1 0 Inf -> Infinity
fmax3813 fma 1 1 Inf -> Infinity
fmax3814 fma 1 1000 Inf -> Infinity
fmax3815 fma 1 Inf Inf -> Infinity
fmax3821 fma 1 NaN -Inf -> NaN
fmax3822 fma 1 NaN -1000 -> NaN
fmax3823 fma 1 NaN -1 -> NaN
fmax3824 fma 1 NaN -0 -> NaN
fmax3825 fma 1 NaN 0 -> NaN
fmax3826 fma 1 NaN 1 -> NaN
fmax3827 fma 1 NaN 1000 -> NaN
fmax3828 fma 1 NaN Inf -> NaN
fmax3829 fma 1 NaN NaN -> NaN
fmax3830 fma 1 -Inf NaN -> NaN
fmax3831 fma 1 -1000 NaN -> NaN
fmax3832 fma 1 -1 NaN -> NaN
fmax3833 fma 1 -0 NaN -> NaN
fmax3834 fma 1 0 NaN -> NaN
fmax3835 fma 1 1 NaN -> NaN
fmax3836 fma 1 1000 NaN -> NaN
fmax3837 fma 1 Inf NaN -> NaN
fmax3841 fma 1 sNaN -Inf -> NaN Invalid_operation
fmax3842 fma 1 sNaN -1000 -> NaN Invalid_operation
fmax3843 fma 1 sNaN -1 -> NaN Invalid_operation
fmax3844 fma 1 sNaN -0 -> NaN Invalid_operation
fmax3845 fma 1 sNaN 0 -> NaN Invalid_operation
fmax3846 fma 1 sNaN 1 -> NaN Invalid_operation
fmax3847 fma 1 sNaN 1000 -> NaN Invalid_operation
fmax3848 fma 1 sNaN NaN -> NaN Invalid_operation
fmax3849 fma 1 sNaN sNaN -> NaN Invalid_operation
fmax3850 fma 1 NaN sNaN -> NaN Invalid_operation
fmax3851 fma 1 -Inf sNaN -> NaN Invalid_operation
fmax3852 fma 1 -1000 sNaN -> NaN Invalid_operation
fmax3853 fma 1 -1 sNaN -> NaN Invalid_operation
fmax3854 fma 1 -0 sNaN -> NaN Invalid_operation
fmax3855 fma 1 0 sNaN -> NaN Invalid_operation
fmax3856 fma 1 1 sNaN -> NaN Invalid_operation
fmax3857 fma 1 1000 sNaN -> NaN Invalid_operation
fmax3858 fma 1 Inf sNaN -> NaN Invalid_operation
fmax3859 fma 1 NaN sNaN -> NaN Invalid_operation
-- propagating NaNs
fmax3861 fma 1 NaN1 -Inf -> NaN1
fmax3862 fma 1 +NaN2 -1000 -> NaN2
fmax3863 fma 1 NaN3 1000 -> NaN3
fmax3864 fma 1 NaN4 Inf -> NaN4
fmax3865 fma 1 NaN5 +NaN6 -> NaN5
fmax3866 fma 1 -Inf NaN7 -> NaN7
fmax3867 fma 1 -1000 NaN8 -> NaN8
fmax3868 fma 1 1000 NaN9 -> NaN9
fmax3869 fma 1 Inf +NaN10 -> NaN10
fmax3871 fma 1 sNaN11 -Inf -> NaN11 Invalid_operation
fmax3872 fma 1 sNaN12 -1000 -> NaN12 Invalid_operation
fmax3873 fma 1 sNaN13 1000 -> NaN13 Invalid_operation
fmax3874 fma 1 sNaN14 NaN17 -> NaN14 Invalid_operation
fmax3875 fma 1 sNaN15 sNaN18 -> NaN15 Invalid_operation
fmax3876 fma 1 NaN16 sNaN19 -> NaN19 Invalid_operation
fmax3877 fma 1 -Inf +sNaN20 -> NaN20 Invalid_operation
fmax3878 fma 1 -1000 sNaN21 -> NaN21 Invalid_operation
fmax3879 fma 1 1000 sNaN22 -> NaN22 Invalid_operation
fmax3880 fma 1 Inf sNaN23 -> NaN23 Invalid_operation
fmax3881 fma 1 +NaN25 +sNaN24 -> NaN24 Invalid_operation
fmax3882 fma 1 -NaN26 NaN28 -> -NaN26
fmax3883 fma 1 -sNaN27 sNaN29 -> -NaN27 Invalid_operation
fmax3884 fma 1 1000 -NaN30 -> -NaN30
fmax3885 fma 1 1000 -sNaN31 -> -NaN31 Invalid_operation
-- overflow, underflow and subnormal tests
maxexponent: 999999
minexponent: -999999
precision: 9
fmax3890 fma 1 1E+999999 9E+999999 -> Infinity Overflow Inexact Rounded
fmax3891 fma 1 9E+999999 1E+999999 -> Infinity Overflow Inexact Rounded
fmax3892 fma 1 -1.1E-999999 1E-999999 -> -1E-1000000 Subnormal
fmax3893 fma 1 1E-999999 -1.1e-999999 -> -1E-1000000 Subnormal
fmax3894 fma 1 -1.0001E-999999 1E-999999 -> -1E-1000003 Subnormal
fmax3895 fma 1 1E-999999 -1.0001e-999999 -> -1E-1000003 Subnormal
fmax3896 fma 1 -1E+999999 -9E+999999 -> -Infinity Overflow Inexact Rounded
fmax3897 fma 1 -9E+999999 -1E+999999 -> -Infinity Overflow Inexact Rounded
fmax3898 fma 1 +1.1E-999999 -1E-999999 -> 1E-1000000 Subnormal
fmax3899 fma 1 -1E-999999 +1.1e-999999 -> 1E-1000000 Subnormal
fmax3900 fma 1 +1.0001E-999999 -1E-999999 -> 1E-1000003 Subnormal
fmax3901 fma 1 -1E-999999 +1.0001e-999999 -> 1E-1000003 Subnormal
fmax3902 fma 1 -1E+999999 +9E+999999 -> 8E+999999
fmax3903 fma 1 -9E+999999 +1E+999999 -> -8E+999999
precision: 3
fmax3904 fma 1 0 -9.999E+999999 -> -Infinity Inexact Overflow Rounded
fmax3905 fma 1 -9.999E+999999 0 -> -Infinity Inexact Overflow Rounded
fmax3906 fma 1 0 9.999E+999999 -> Infinity Inexact Overflow Rounded
fmax3907 fma 1 9.999E+999999 0 -> Infinity Inexact Overflow Rounded
precision: 3
maxexponent: 999
minexponent: -999
fmax3910 fma 1 1.00E-999 0 -> 1.00E-999
fmax3911 fma 1 0.1E-999 0 -> 1E-1000 Subnormal
fmax3912 fma 1 0.10E-999 0 -> 1.0E-1000 Subnormal
fmax3913 fma 1 0.100E-999 0 -> 1.0E-1000 Subnormal Rounded
fmax3914 fma 1 0.01E-999 0 -> 1E-1001 Subnormal
-- next is rounded to Nmin
fmax3915 fma 1 0.999E-999 0 -> 1.00E-999 Inexact Rounded Subnormal Underflow
fmax3916 fma 1 0.099E-999 0 -> 1.0E-1000 Inexact Rounded Subnormal Underflow
fmax3917 fma 1 0.009E-999 0 -> 1E-1001 Inexact Rounded Subnormal Underflow
fmax3918 fma 1 0.001E-999 0 -> 0E-1001 Inexact Rounded Subnormal Underflow Clamped
fmax3919 fma 1 0.0009E-999 0 -> 0E-1001 Inexact Rounded Subnormal Underflow Clamped
fmax3920 fma 1 0.0001E-999 0 -> 0E-1001 Inexact Rounded Subnormal Underflow Clamped
fmax3930 fma 1 -1.00E-999 0 -> -1.00E-999
fmax3931 fma 1 -0.1E-999 0 -> -1E-1000 Subnormal
fmax3932 fma 1 -0.10E-999 0 -> -1.0E-1000 Subnormal
fmax3933 fma 1 -0.100E-999 0 -> -1.0E-1000 Subnormal Rounded
fmax3934 fma 1 -0.01E-999 0 -> -1E-1001 Subnormal
-- next is rounded to Nmin
fmax3935 fma 1 -0.999E-999 0 -> -1.00E-999 Inexact Rounded Subnormal Underflow
fmax3936 fma 1 -0.099E-999 0 -> -1.0E-1000 Inexact Rounded Subnormal Underflow
fmax3937 fma 1 -0.009E-999 0 -> -1E-1001 Inexact Rounded Subnormal Underflow
fmax3938 fma 1 -0.001E-999 0 -> -0E-1001 Inexact Rounded Subnormal Underflow Clamped
fmax3939 fma 1 -0.0009E-999 0 -> -0E-1001 Inexact Rounded Subnormal Underflow Clamped
fmax3940 fma 1 -0.0001E-999 0 -> -0E-1001 Inexact Rounded Subnormal Underflow Clamped
-- some non-zero subnormal fma 1 s
fmax3950 fma 1 1.00E-999 0.1E-999 -> 1.10E-999
fmax3951 fma 1 0.1E-999 0.1E-999 -> 2E-1000 Subnormal
fmax3952 fma 1 0.10E-999 0.1E-999 -> 2.0E-1000 Subnormal
fmax3953 fma 1 0.100E-999 0.1E-999 -> 2.0E-1000 Subnormal Rounded
fmax3954 fma 1 0.01E-999 0.1E-999 -> 1.1E-1000 Subnormal
fmax3955 fma 1 0.999E-999 0.1E-999 -> 1.10E-999 Inexact Rounded
fmax3956 fma 1 0.099E-999 0.1E-999 -> 2.0E-1000 Inexact Rounded Subnormal Underflow
fmax3957 fma 1 0.009E-999 0.1E-999 -> 1.1E-1000 Inexact Rounded Subnormal Underflow
fmax3958 fma 1 0.001E-999 0.1E-999 -> 1.0E-1000 Inexact Rounded Subnormal Underflow
fmax3959 fma 1 0.0009E-999 0.1E-999 -> 1.0E-1000 Inexact Rounded Subnormal Underflow
fmax3960 fma 1 0.0001E-999 0.1E-999 -> 1.0E-1000 Inexact Rounded Subnormal Underflow
-- negatives...
fmax3961 fma 1 1.00E-999 -0.1E-999 -> 9.0E-1000 Subnormal
fmax3962 fma 1 0.1E-999 -0.1E-999 -> 0E-1000
fmax3963 fma 1 0.10E-999 -0.1E-999 -> 0E-1001
fmax3964 fma 1 0.100E-999 -0.1E-999 -> 0E-1001 Clamped
fmax3965 fma 1 0.01E-999 -0.1E-999 -> -9E-1001 Subnormal
fmax3966 fma 1 0.999E-999 -0.1E-999 -> 9.0E-1000 Inexact Rounded Subnormal Underflow
fmax3967 fma 1 0.099E-999 -0.1E-999 -> -0E-1001 Inexact Rounded Subnormal Underflow Clamped
fmax3968 fma 1 0.009E-999 -0.1E-999 -> -9E-1001 Inexact Rounded Subnormal Underflow
fmax3969 fma 1 0.001E-999 -0.1E-999 -> -1.0E-1000 Inexact Rounded Subnormal Underflow
fmax3970 fma 1 0.0009E-999 -0.1E-999 -> -1.0E-1000 Inexact Rounded Subnormal Underflow
fmax3971 fma 1 0.0001E-999 -0.1E-999 -> -1.0E-1000 Inexact Rounded Subnormal Underflow
-- some 'real' numbers
maxExponent: 384
minExponent: -383
precision: 8
fmax3566 fma 1 99999061735E-394 0E-394 -> 9.999906E-384 Inexact Rounded Underflow Subnormal
precision: 7
fmax3567 fma 1 99999061735E-394 0E-394 -> 9.99991E-384 Inexact Rounded Underflow Subnormal
precision: 6
fmax3568 fma 1 99999061735E-394 0E-394 -> 9.9999E-384 Inexact Rounded Underflow Subnormal
-- now the case where we can get underflow but the result is normal
-- [note this can't happen if the operands are also bounded, as we
-- cannot represent 1E-399, for example]
precision: 16
rounding: half_up
maxExponent: 384
minExponent: -383
fmax3571 fma 1 1E-383 0 -> 1E-383
fmax3572 fma 1 1E-384 0 -> 1E-384 Subnormal
fmax3573 fma 1 1E-383 1E-384 -> 1.1E-383
fmax3574 subtract 1E-383 1E-384 -> 9E-384 Subnormal
-- Here we explore the boundary of rounding a subnormal to Nmin
fmax3575 subtract 1E-383 1E-398 -> 9.99999999999999E-384 Subnormal
fmax3576 subtract 1E-383 1E-398 -> 9.99999999999999E-384 Subnormal
fmax3577 subtract 1E-383 1E-399 -> 1.000000000000000E-383 Underflow Inexact Subnormal Rounded
fmax3578 subtract 1E-383 1E-400 -> 1.000000000000000E-383 Underflow Inexact Subnormal Rounded
fmax3579 subtract 1E-383 1E-401 -> 1.000000000000000E-383 Underflow Inexact Subnormal Rounded
fmax3580 subtract 1E-383 1E-402 -> 1.000000000000000E-383 Underflow Inexact Subnormal Rounded
-- check for double-rounded subnormals
precision: 5
maxexponent: 79
minexponent: -79
-- Add: lhs and rhs 0
fmax31001 fma 1 1.52444E-80 0 -> 1.524E-80 Inexact Rounded Subnormal Underflow
fmax31002 fma 1 1.52445E-80 0 -> 1.524E-80 Inexact Rounded Subnormal Underflow
fmax31003 fma 1 1.52446E-80 0 -> 1.524E-80 Inexact Rounded Subnormal Underflow
fmax31004 fma 1 0 1.52444E-80 -> 1.524E-80 Inexact Rounded Subnormal Underflow
fmax31005 fma 1 0 1.52445E-80 -> 1.524E-80 Inexact Rounded Subnormal Underflow
fmax31006 fma 1 0 1.52446E-80 -> 1.524E-80 Inexact Rounded Subnormal Underflow
-- Add: lhs >> rhs and vice versa
fmax31011 fma 1 1.52444E-80 1E-100 -> 1.524E-80 Inexact Rounded Subnormal Underflow
fmax31012 fma 1 1.52445E-80 1E-100 -> 1.524E-80 Inexact Rounded Subnormal Underflow
fmax31013 fma 1 1.52446E-80 1E-100 -> 1.524E-80 Inexact Rounded Subnormal Underflow
fmax31014 fma 1 1E-100 1.52444E-80 -> 1.524E-80 Inexact Rounded Subnormal Underflow
fmax31015 fma 1 1E-100 1.52445E-80 -> 1.524E-80 Inexact Rounded Subnormal Underflow
fmax31016 fma 1 1E-100 1.52446E-80 -> 1.524E-80 Inexact Rounded Subnormal Underflow
-- Add: lhs + rhs fma 1 ition carried out
fmax31021 fma 1 1.52443E-80 1.00001E-80 -> 2.524E-80 Inexact Rounded Subnormal Underflow
fmax31022 fma 1 1.52444E-80 1.00001E-80 -> 2.524E-80 Inexact Rounded Subnormal Underflow
fmax31023 fma 1 1.52445E-80 1.00001E-80 -> 2.524E-80 Inexact Rounded Subnormal Underflow
fmax31024 fma 1 1.00001E-80 1.52443E-80 -> 2.524E-80 Inexact Rounded Subnormal Underflow
fmax31025 fma 1 1.00001E-80 1.52444E-80 -> 2.524E-80 Inexact Rounded Subnormal Underflow
fmax31026 fma 1 1.00001E-80 1.52445E-80 -> 2.524E-80 Inexact Rounded Subnormal Underflow
-- And for round down full and subnormal results
precision: 16
maxExponent: +384
minExponent: -383
rounding: down
fmax31100 fma 1 1e+2 -1e-383 -> 99.99999999999999 Rounded Inexact
fmax31101 fma 1 1e+1 -1e-383 -> 9.999999999999999 Rounded Inexact
fmax31103 fma 1 +1 -1e-383 -> 0.9999999999999999 Rounded Inexact
fmax31104 fma 1 1e-1 -1e-383 -> 0.09999999999999999 Rounded Inexact
fmax31105 fma 1 1e-2 -1e-383 -> 0.009999999999999999 Rounded Inexact
fmax31106 fma 1 1e-3 -1e-383 -> 0.0009999999999999999 Rounded Inexact
fmax31107 fma 1 1e-4 -1e-383 -> 0.00009999999999999999 Rounded Inexact
fmax31108 fma 1 1e-5 -1e-383 -> 0.000009999999999999999 Rounded Inexact
fmax31109 fma 1 1e-6 -1e-383 -> 9.999999999999999E-7 Rounded Inexact
rounding: ceiling
fmax31110 fma 1 -1e+2 +1e-383 -> -99.99999999999999 Rounded Inexact
fmax31111 fma 1 -1e+1 +1e-383 -> -9.999999999999999 Rounded Inexact
fmax31113 fma 1 -1 +1e-383 -> -0.9999999999999999 Rounded Inexact
fmax31114 fma 1 -1e-1 +1e-383 -> -0.09999999999999999 Rounded Inexact
fmax31115 fma 1 -1e-2 +1e-383 -> -0.009999999999999999 Rounded Inexact
fmax31116 fma 1 -1e-3 +1e-383 -> -0.0009999999999999999 Rounded Inexact
fmax31117 fma 1 -1e-4 +1e-383 -> -0.00009999999999999999 Rounded Inexact
fmax31118 fma 1 -1e-5 +1e-383 -> -0.000009999999999999999 Rounded Inexact
fmax31119 fma 1 -1e-6 +1e-383 -> -9.999999999999999E-7 Rounded Inexact
rounding: down
precision: 7
maxExponent: +96
minExponent: -95
fmax31130 fma 1 1 -1e-200 -> 0.9999999 Rounded Inexact
-- subnormal boundary
fmax31131 fma 1 1.000000E-94 -1e-200 -> 9.999999E-95 Rounded Inexact
fmax31132 fma 1 1.000001E-95 -1e-200 -> 1.000000E-95 Rounded Inexact
fmax31133 fma 1 1.000000E-95 -1e-200 -> 9.99999E-96 Rounded Inexact Subnormal Underflow
fmax31134 fma 1 0.999999E-95 -1e-200 -> 9.99998E-96 Rounded Inexact Subnormal Underflow
fmax31135 fma 1 0.001000E-95 -1e-200 -> 9.99E-99 Rounded Inexact Subnormal Underflow
fmax31136 fma 1 0.000999E-95 -1e-200 -> 9.98E-99 Rounded Inexact Subnormal Underflow
fmax31137 fma 1 1.000000E-95 -1e-101 -> 9.99999E-96 Subnormal
fmax31138 fma 1 10000E-101 -1e-200 -> 9.999E-98 Subnormal Inexact Rounded Underflow
fmax31139 fma 1 1000E-101 -1e-200 -> 9.99E-99 Subnormal Inexact Rounded Underflow
fmax31140 fma 1 100E-101 -1e-200 -> 9.9E-100 Subnormal Inexact Rounded Underflow
fmax31141 fma 1 10E-101 -1e-200 -> 9E-101 Subnormal Inexact Rounded Underflow
fmax31142 fma 1 1E-101 -1e-200 -> 0E-101 Subnormal Inexact Rounded Underflow Clamped
fmax31143 fma 1 0E-101 -1e-200 -> -0E-101 Subnormal Inexact Rounded Underflow Clamped
fmax31144 fma 1 1E-102 -1e-200 -> 0E-101 Subnormal Inexact Rounded Underflow Clamped
fmax31151 fma 1 10000E-102 -1e-200 -> 9.99E-99 Subnormal Inexact Rounded Underflow
fmax31152 fma 1 1000E-102 -1e-200 -> 9.9E-100 Subnormal Inexact Rounded Underflow
fmax31153 fma 1 100E-102 -1e-200 -> 9E-101 Subnormal Inexact Rounded Underflow
fmax31154 fma 1 10E-102 -1e-200 -> 0E-101 Subnormal Inexact Rounded Underflow Clamped
fmax31155 fma 1 1E-102 -1e-200 -> 0E-101 Subnormal Inexact Rounded Underflow Clamped
fmax31156 fma 1 0E-102 -1e-200 -> -0E-101 Subnormal Inexact Rounded Underflow Clamped
fmax31157 fma 1 1E-103 -1e-200 -> 0E-101 Subnormal Inexact Rounded Underflow Clamped
fmax31160 fma 1 100E-105 -1e-101 -> -0E-101 Subnormal Inexact Rounded Underflow Clamped
fmax31161 fma 1 100E-105 -1e-201 -> 0E-101 Subnormal Inexact Rounded Underflow Clamped
-- tests based on Gunnar Degnbol's edge case
precision: 15
rounding: half_up
maxExponent: 384
minexponent: -383
fmax31200 fma 1 1E15 -0.5 -> 1.00000000000000E+15 Inexact Rounded
fmax31201 fma 1 1E15 -0.50 -> 1.00000000000000E+15 Inexact Rounded
fmax31210 fma 1 1E15 -0.51 -> 999999999999999 Inexact Rounded
fmax31211 fma 1 1E15 -0.501 -> 999999999999999 Inexact Rounded
fmax31212 fma 1 1E15 -0.5001 -> 999999999999999 Inexact Rounded
fmax31213 fma 1 1E15 -0.50001 -> 999999999999999 Inexact Rounded
fmax31214 fma 1 1E15 -0.500001 -> 999999999999999 Inexact Rounded
fmax31215 fma 1 1E15 -0.5000001 -> 999999999999999 Inexact Rounded
fmax31216 fma 1 1E15 -0.50000001 -> 999999999999999 Inexact Rounded
fmax31217 fma 1 1E15 -0.500000001 -> 999999999999999 Inexact Rounded
fmax31218 fma 1 1E15 -0.5000000001 -> 999999999999999 Inexact Rounded
fmax31219 fma 1 1E15 -0.50000000001 -> 999999999999999 Inexact Rounded
fmax31220 fma 1 1E15 -0.500000000001 -> 999999999999999 Inexact Rounded
fmax31221 fma 1 1E15 -0.5000000000001 -> 999999999999999 Inexact Rounded
fmax31222 fma 1 1E15 -0.50000000000001 -> 999999999999999 Inexact Rounded
fmax31223 fma 1 1E15 -0.500000000000001 -> 999999999999999 Inexact Rounded
fmax31224 fma 1 1E15 -0.5000000000000001 -> 999999999999999 Inexact Rounded
fmax31225 fma 1 1E15 -0.5000000000000000 -> 1.00000000000000E+15 Inexact Rounded
fmax31230 fma 1 1E15 -5000000.000000001 -> 999999995000000 Inexact Rounded
precision: 16
fmax31300 fma 1 1E16 -0.5 -> 1.000000000000000E+16 Inexact Rounded
fmax31310 fma 1 1E16 -0.51 -> 9999999999999999 Inexact Rounded
fmax31311 fma 1 1E16 -0.501 -> 9999999999999999 Inexact Rounded
fmax31312 fma 1 1E16 -0.5001 -> 9999999999999999 Inexact Rounded
fmax31313 fma 1 1E16 -0.50001 -> 9999999999999999 Inexact Rounded
fmax31314 fma 1 1E16 -0.500001 -> 9999999999999999 Inexact Rounded
fmax31315 fma 1 1E16 -0.5000001 -> 9999999999999999 Inexact Rounded
fmax31316 fma 1 1E16 -0.50000001 -> 9999999999999999 Inexact Rounded
fmax31317 fma 1 1E16 -0.500000001 -> 9999999999999999 Inexact Rounded
fmax31318 fma 1 1E16 -0.5000000001 -> 9999999999999999 Inexact Rounded
fmax31319 fma 1 1E16 -0.50000000001 -> 9999999999999999 Inexact Rounded
fmax31320 fma 1 1E16 -0.500000000001 -> 9999999999999999 Inexact Rounded
fmax31321 fma 1 1E16 -0.5000000000001 -> 9999999999999999 Inexact Rounded
fmax31322 fma 1 1E16 -0.50000000000001 -> 9999999999999999 Inexact Rounded
fmax31323 fma 1 1E16 -0.500000000000001 -> 9999999999999999 Inexact Rounded
fmax31324 fma 1 1E16 -0.5000000000000001 -> 9999999999999999 Inexact Rounded
fmax31325 fma 1 1E16 -0.5000000000000000 -> 1.000000000000000E+16 Inexact Rounded
fmax31326 fma 1 1E16 -0.500000000000000 -> 1.000000000000000E+16 Inexact Rounded
fmax31327 fma 1 1E16 -0.50000000000000 -> 1.000000000000000E+16 Inexact Rounded
fmax31328 fma 1 1E16 -0.5000000000000 -> 1.000000000000000E+16 Inexact Rounded
fmax31329 fma 1 1E16 -0.500000000000 -> 1.000000000000000E+16 Inexact Rounded
fmax31330 fma 1 1E16 -0.50000000000 -> 1.000000000000000E+16 Inexact Rounded
fmax31331 fma 1 1E16 -0.5000000000 -> 1.000000000000000E+16 Inexact Rounded
fmax31332 fma 1 1E16 -0.500000000 -> 1.000000000000000E+16 Inexact Rounded
fmax31333 fma 1 1E16 -0.50000000 -> 1.000000000000000E+16 Inexact Rounded
fmax31334 fma 1 1E16 -0.5000000 -> 1.000000000000000E+16 Inexact Rounded
fmax31335 fma 1 1E16 -0.500000 -> 1.000000000000000E+16 Inexact Rounded
fmax31336 fma 1 1E16 -0.50000 -> 1.000000000000000E+16 Inexact Rounded
fmax31337 fma 1 1E16 -0.5000 -> 1.000000000000000E+16 Inexact Rounded
fmax31338 fma 1 1E16 -0.500 -> 1.000000000000000E+16 Inexact Rounded
fmax31339 fma 1 1E16 -0.50 -> 1.000000000000000E+16 Inexact Rounded
fmax31340 fma 1 1E16 -5000000.000010001 -> 9999999995000000 Inexact Rounded
fmax31341 fma 1 1E16 -5000000.000000001 -> 9999999995000000 Inexact Rounded
fmax31349 fma 1 9999999999999999 0.4 -> 9999999999999999 Inexact Rounded
fmax31350 fma 1 9999999999999999 0.49 -> 9999999999999999 Inexact Rounded
fmax31351 fma 1 9999999999999999 0.499 -> 9999999999999999 Inexact Rounded
fmax31352 fma 1 9999999999999999 0.4999 -> 9999999999999999 Inexact Rounded
fmax31353 fma 1 9999999999999999 0.49999 -> 9999999999999999 Inexact Rounded
fmax31354 fma 1 9999999999999999 0.499999 -> 9999999999999999 Inexact Rounded
fmax31355 fma 1 9999999999999999 0.4999999 -> 9999999999999999 Inexact Rounded
fmax31356 fma 1 9999999999999999 0.49999999 -> 9999999999999999 Inexact Rounded
fmax31357 fma 1 9999999999999999 0.499999999 -> 9999999999999999 Inexact Rounded
fmax31358 fma 1 9999999999999999 0.4999999999 -> 9999999999999999 Inexact Rounded
fmax31359 fma 1 9999999999999999 0.49999999999 -> 9999999999999999 Inexact Rounded
fmax31360 fma 1 9999999999999999 0.499999999999 -> 9999999999999999 Inexact Rounded
fmax31361 fma 1 9999999999999999 0.4999999999999 -> 9999999999999999 Inexact Rounded
fmax31362 fma 1 9999999999999999 0.49999999999999 -> 9999999999999999 Inexact Rounded
fmax31363 fma 1 9999999999999999 0.499999999999999 -> 9999999999999999 Inexact Rounded
fmax31364 fma 1 9999999999999999 0.4999999999999999 -> 9999999999999999 Inexact Rounded
fmax31365 fma 1 9999999999999999 0.5000000000000000 -> 1.000000000000000E+16 Inexact Rounded
fmax31367 fma 1 9999999999999999 0.500000000000000 -> 1.000000000000000E+16 Inexact Rounded
fmax31368 fma 1 9999999999999999 0.50000000000000 -> 1.000000000000000E+16 Inexact Rounded
fmax31369 fma 1 9999999999999999 0.5000000000000 -> 1.000000000000000E+16 Inexact Rounded
fmax31370 fma 1 9999999999999999 0.500000000000 -> 1.000000000000000E+16 Inexact Rounded
fmax31371 fma 1 9999999999999999 0.50000000000 -> 1.000000000000000E+16 Inexact Rounded
fmax31372 fma 1 9999999999999999 0.5000000000 -> 1.000000000000000E+16 Inexact Rounded
fmax31373 fma 1 9999999999999999 0.500000000 -> 1.000000000000000E+16 Inexact Rounded
fmax31374 fma 1 9999999999999999 0.50000000 -> 1.000000000000000E+16 Inexact Rounded
fmax31375 fma 1 9999999999999999 0.5000000 -> 1.000000000000000E+16 Inexact Rounded
fmax31376 fma 1 9999999999999999 0.500000 -> 1.000000000000000E+16 Inexact Rounded
fmax31377 fma 1 9999999999999999 0.50000 -> 1.000000000000000E+16 Inexact Rounded
fmax31378 fma 1 9999999999999999 0.5000 -> 1.000000000000000E+16 Inexact Rounded
fmax31379 fma 1 9999999999999999 0.500 -> 1.000000000000000E+16 Inexact Rounded
fmax31380 fma 1 9999999999999999 0.50 -> 1.000000000000000E+16 Inexact Rounded
fmax31381 fma 1 9999999999999999 0.5 -> 1.000000000000000E+16 Inexact Rounded
fmax31382 fma 1 9999999999999999 0.5000000000000001 -> 1.000000000000000E+16 Inexact Rounded
fmax31383 fma 1 9999999999999999 0.500000000000001 -> 1.000000000000000E+16 Inexact Rounded
fmax31384 fma 1 9999999999999999 0.50000000000001 -> 1.000000000000000E+16 Inexact Rounded
fmax31385 fma 1 9999999999999999 0.5000000000001 -> 1.000000000000000E+16 Inexact Rounded
fmax31386 fma 1 9999999999999999 0.500000000001 -> 1.000000000000000E+16 Inexact Rounded
fmax31387 fma 1 9999999999999999 0.50000000001 -> 1.000000000000000E+16 Inexact Rounded
fmax31388 fma 1 9999999999999999 0.5000000001 -> 1.000000000000000E+16 Inexact Rounded
fmax31389 fma 1 9999999999999999 0.500000001 -> 1.000000000000000E+16 Inexact Rounded
fmax31390 fma 1 9999999999999999 0.50000001 -> 1.000000000000000E+16 Inexact Rounded
fmax31391 fma 1 9999999999999999 0.5000001 -> 1.000000000000000E+16 Inexact Rounded
fmax31392 fma 1 9999999999999999 0.500001 -> 1.000000000000000E+16 Inexact Rounded
fmax31393 fma 1 9999999999999999 0.50001 -> 1.000000000000000E+16 Inexact Rounded
fmax31394 fma 1 9999999999999999 0.5001 -> 1.000000000000000E+16 Inexact Rounded
fmax31395 fma 1 9999999999999999 0.501 -> 1.000000000000000E+16 Inexact Rounded
fmax31396 fma 1 9999999999999999 0.51 -> 1.000000000000000E+16 Inexact Rounded
-- More GD edge cases, where difference between the unadjusted
-- exponents is larger than the maximum precision and one side is 0
precision: 15
rounding: half_up
maxExponent: 384
minexponent: -383
fmax31400 fma 1 0 1.23456789012345 -> 1.23456789012345
fmax31401 fma 1 0 1.23456789012345E-1 -> 0.123456789012345
fmax31402 fma 1 0 1.23456789012345E-2 -> 0.0123456789012345
fmax31403 fma 1 0 1.23456789012345E-3 -> 0.00123456789012345
fmax31404 fma 1 0 1.23456789012345E-4 -> 0.000123456789012345
fmax31405 fma 1 0 1.23456789012345E-5 -> 0.0000123456789012345
fmax31406 fma 1 0 1.23456789012345E-6 -> 0.00000123456789012345
fmax31407 fma 1 0 1.23456789012345E-7 -> 1.23456789012345E-7
fmax31408 fma 1 0 1.23456789012345E-8 -> 1.23456789012345E-8
fmax31409 fma 1 0 1.23456789012345E-9 -> 1.23456789012345E-9
fmax31410 fma 1 0 1.23456789012345E-10 -> 1.23456789012345E-10
fmax31411 fma 1 0 1.23456789012345E-11 -> 1.23456789012345E-11
fmax31412 fma 1 0 1.23456789012345E-12 -> 1.23456789012345E-12
fmax31413 fma 1 0 1.23456789012345E-13 -> 1.23456789012345E-13
fmax31414 fma 1 0 1.23456789012345E-14 -> 1.23456789012345E-14
fmax31415 fma 1 0 1.23456789012345E-15 -> 1.23456789012345E-15
fmax31416 fma 1 0 1.23456789012345E-16 -> 1.23456789012345E-16
fmax31417 fma 1 0 1.23456789012345E-17 -> 1.23456789012345E-17
fmax31418 fma 1 0 1.23456789012345E-18 -> 1.23456789012345E-18
fmax31419 fma 1 0 1.23456789012345E-19 -> 1.23456789012345E-19
-- same, precision 16..
precision: 16
fmax31420 fma 1 0 1.123456789012345 -> 1.123456789012345
fmax31421 fma 1 0 1.123456789012345E-1 -> 0.1123456789012345
fmax31422 fma 1 0 1.123456789012345E-2 -> 0.01123456789012345
fmax31423 fma 1 0 1.123456789012345E-3 -> 0.001123456789012345
fmax31424 fma 1 0 1.123456789012345E-4 -> 0.0001123456789012345
fmax31425 fma 1 0 1.123456789012345E-5 -> 0.00001123456789012345
fmax31426 fma 1 0 1.123456789012345E-6 -> 0.000001123456789012345
fmax31427 fma 1 0 1.123456789012345E-7 -> 1.123456789012345E-7
fmax31428 fma 1 0 1.123456789012345E-8 -> 1.123456789012345E-8
fmax31429 fma 1 0 1.123456789012345E-9 -> 1.123456789012345E-9
fmax31430 fma 1 0 1.123456789012345E-10 -> 1.123456789012345E-10
fmax31431 fma 1 0 1.123456789012345E-11 -> 1.123456789012345E-11
fmax31432 fma 1 0 1.123456789012345E-12 -> 1.123456789012345E-12
fmax31433 fma 1 0 1.123456789012345E-13 -> 1.123456789012345E-13
fmax31434 fma 1 0 1.123456789012345E-14 -> 1.123456789012345E-14
fmax31435 fma 1 0 1.123456789012345E-15 -> 1.123456789012345E-15
fmax31436 fma 1 0 1.123456789012345E-16 -> 1.123456789012345E-16
fmax31437 fma 1 0 1.123456789012345E-17 -> 1.123456789012345E-17
fmax31438 fma 1 0 1.123456789012345E-18 -> 1.123456789012345E-18
fmax31439 fma 1 0 1.123456789012345E-19 -> 1.123456789012345E-19
-- same, reversed 0
fmax31440 fma 1 1.123456789012345 0 -> 1.123456789012345
fmax31441 fma 1 1.123456789012345E-1 0 -> 0.1123456789012345
fmax31442 fma 1 1.123456789012345E-2 0 -> 0.01123456789012345
fmax31443 fma 1 1.123456789012345E-3 0 -> 0.001123456789012345
fmax31444 fma 1 1.123456789012345E-4 0 -> 0.0001123456789012345
fmax31445 fma 1 1.123456789012345E-5 0 -> 0.00001123456789012345
fmax31446 fma 1 1.123456789012345E-6 0 -> 0.000001123456789012345
fmax31447 fma 1 1.123456789012345E-7 0 -> 1.123456789012345E-7
fmax31448 fma 1 1.123456789012345E-8 0 -> 1.123456789012345E-8
fmax31449 fma 1 1.123456789012345E-9 0 -> 1.123456789012345E-9
fmax31450 fma 1 1.123456789012345E-10 0 -> 1.123456789012345E-10
fmax31451 fma 1 1.123456789012345E-11 0 -> 1.123456789012345E-11
fmax31452 fma 1 1.123456789012345E-12 0 -> 1.123456789012345E-12
fmax31453 fma 1 1.123456789012345E-13 0 -> 1.123456789012345E-13
fmax31454 fma 1 1.123456789012345E-14 0 -> 1.123456789012345E-14
fmax31455 fma 1 1.123456789012345E-15 0 -> 1.123456789012345E-15
fmax31456 fma 1 1.123456789012345E-16 0 -> 1.123456789012345E-16
fmax31457 fma 1 1.123456789012345E-17 0 -> 1.123456789012345E-17
fmax31458 fma 1 1.123456789012345E-18 0 -> 1.123456789012345E-18
fmax31459 fma 1 1.123456789012345E-19 0 -> 1.123456789012345E-19
-- same, Es on the 0
fmax31460 fma 1 1.123456789012345 0E-0 -> 1.123456789012345
fmax31461 fma 1 1.123456789012345 0E-1 -> 1.123456789012345
fmax31462 fma 1 1.123456789012345 0E-2 -> 1.123456789012345
fmax31463 fma 1 1.123456789012345 0E-3 -> 1.123456789012345
fmax31464 fma 1 1.123456789012345 0E-4 -> 1.123456789012345
fmax31465 fma 1 1.123456789012345 0E-5 -> 1.123456789012345
fmax31466 fma 1 1.123456789012345 0E-6 -> 1.123456789012345
fmax31467 fma 1 1.123456789012345 0E-7 -> 1.123456789012345
fmax31468 fma 1 1.123456789012345 0E-8 -> 1.123456789012345
fmax31469 fma 1 1.123456789012345 0E-9 -> 1.123456789012345
fmax31470 fma 1 1.123456789012345 0E-10 -> 1.123456789012345
fmax31471 fma 1 1.123456789012345 0E-11 -> 1.123456789012345
fmax31472 fma 1 1.123456789012345 0E-12 -> 1.123456789012345
fmax31473 fma 1 1.123456789012345 0E-13 -> 1.123456789012345
fmax31474 fma 1 1.123456789012345 0E-14 -> 1.123456789012345
fmax31475 fma 1 1.123456789012345 0E-15 -> 1.123456789012345
-- next four flag Rounded because the 0 extends the result
fmax31476 fma 1 1.123456789012345 0E-16 -> 1.123456789012345 Rounded
fmax31477 fma 1 1.123456789012345 0E-17 -> 1.123456789012345 Rounded
fmax31478 fma 1 1.123456789012345 0E-18 -> 1.123456789012345 Rounded
fmax31479 fma 1 1.123456789012345 0E-19 -> 1.123456789012345 Rounded
-- sum of two opposite-sign operands is exactly 0 and floor => -0
precision: 16
maxExponent: 384
minexponent: -383
rounding: half_up
-- exact zeros from zeros
fmax31500 fma 1 0 0E-19 -> 0E-19
fmax31501 fma 1 -0 0E-19 -> 0E-19
fmax31502 fma 1 0 -0E-19 -> 0E-19
fmax31503 fma 1 -0 -0E-19 -> -0E-19
fmax31504 fma 1 0E-400 0E-19 -> 0E-398 Clamped
fmax31505 fma 1 -0E-400 0E-19 -> 0E-398 Clamped
fmax31506 fma 1 0E-400 -0E-19 -> 0E-398 Clamped
fmax31507 fma 1 -0E-400 -0E-19 -> -0E-398 Clamped
-- inexact zeros
fmax31511 fma 1 1E-401 1E-400 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31512 fma 1 -1E-401 1E-400 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31513 fma 1 1E-401 -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31514 fma 1 -1E-401 -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
-- some exact zeros from non-zeros
fmax31515 fma 1 1E-401 1E-401 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31516 fma 1 -1E-401 1E-401 -> 0E-398 Clamped
fmax31517 fma 1 1E-401 -1E-401 -> 0E-398 Clamped
fmax31518 fma 1 -1E-401 -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
rounding: half_down
-- exact zeros from zeros
fmax31520 fma 1 0 0E-19 -> 0E-19
fmax31521 fma 1 -0 0E-19 -> 0E-19
fmax31522 fma 1 0 -0E-19 -> 0E-19
fmax31523 fma 1 -0 -0E-19 -> -0E-19
fmax31524 fma 1 0E-400 0E-19 -> 0E-398 Clamped
fmax31525 fma 1 -0E-400 0E-19 -> 0E-398 Clamped
fmax31526 fma 1 0E-400 -0E-19 -> 0E-398 Clamped
fmax31527 fma 1 -0E-400 -0E-19 -> -0E-398 Clamped
-- inexact zeros
fmax31531 fma 1 1E-401 1E-400 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31532 fma 1 -1E-401 1E-400 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31533 fma 1 1E-401 -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31534 fma 1 -1E-401 -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
-- some exact zeros from non-zeros
fmax31535 fma 1 1E-401 1E-401 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31536 fma 1 -1E-401 1E-401 -> 0E-398 Clamped
fmax31537 fma 1 1E-401 -1E-401 -> 0E-398 Clamped
fmax31538 fma 1 -1E-401 -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
rounding: half_even
-- exact zeros from zeros
fmax31540 fma 1 0 0E-19 -> 0E-19
fmax31541 fma 1 -0 0E-19 -> 0E-19
fmax31542 fma 1 0 -0E-19 -> 0E-19
fmax31543 fma 1 -0 -0E-19 -> -0E-19
fmax31544 fma 1 0E-400 0E-19 -> 0E-398 Clamped
fmax31545 fma 1 -0E-400 0E-19 -> 0E-398 Clamped
fmax31546 fma 1 0E-400 -0E-19 -> 0E-398 Clamped
fmax31547 fma 1 -0E-400 -0E-19 -> -0E-398 Clamped
-- inexact zeros
fmax31551 fma 1 1E-401 1E-400 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31552 fma 1 -1E-401 1E-400 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31553 fma 1 1E-401 -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31554 fma 1 -1E-401 -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
-- some exact zeros from non-zeros
fmax31555 fma 1 1E-401 1E-401 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31556 fma 1 -1E-401 1E-401 -> 0E-398 Clamped
fmax31557 fma 1 1E-401 -1E-401 -> 0E-398 Clamped
fmax31558 fma 1 -1E-401 -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
rounding: up
-- exact zeros from zeros
fmax31560 fma 1 0 0E-19 -> 0E-19
fmax31561 fma 1 -0 0E-19 -> 0E-19
fmax31562 fma 1 0 -0E-19 -> 0E-19
fmax31563 fma 1 -0 -0E-19 -> -0E-19
fmax31564 fma 1 0E-400 0E-19 -> 0E-398 Clamped
fmax31565 fma 1 -0E-400 0E-19 -> 0E-398 Clamped
fmax31566 fma 1 0E-400 -0E-19 -> 0E-398 Clamped
fmax31567 fma 1 -0E-400 -0E-19 -> -0E-398 Clamped
-- inexact zeros
fmax31571 fma 1 1E-401 1E-400 -> 1E-398 Subnormal Inexact Rounded Underflow
fmax31572 fma 1 -1E-401 1E-400 -> 1E-398 Subnormal Inexact Rounded Underflow
fmax31573 fma 1 1E-401 -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow
fmax31574 fma 1 -1E-401 -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow
-- some exact zeros from non-zeros
fmax31575 fma 1 1E-401 1E-401 -> 1E-398 Subnormal Inexact Rounded Underflow
fmax31576 fma 1 -1E-401 1E-401 -> 0E-398 Clamped
fmax31577 fma 1 1E-401 -1E-401 -> 0E-398 Clamped
fmax31578 fma 1 -1E-401 -1E-401 -> -1E-398 Subnormal Inexact Rounded Underflow
rounding: down
-- exact zeros from zeros
fmax31580 fma 1 0 0E-19 -> 0E-19
fmax31581 fma 1 -0 0E-19 -> 0E-19
fmax31582 fma 1 0 -0E-19 -> 0E-19
fmax31583 fma 1 -0 -0E-19 -> -0E-19
fmax31584 fma 1 0E-400 0E-19 -> 0E-398 Clamped
fmax31585 fma 1 -0E-400 0E-19 -> 0E-398 Clamped
fmax31586 fma 1 0E-400 -0E-19 -> 0E-398 Clamped
fmax31587 fma 1 -0E-400 -0E-19 -> -0E-398 Clamped
-- inexact zeros
fmax31591 fma 1 1E-401 1E-400 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31592 fma 1 -1E-401 1E-400 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31593 fma 1 1E-401 -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31594 fma 1 -1E-401 -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
-- some exact zeros from non-zeros
fmax31595 fma 1 1E-401 1E-401 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31596 fma 1 -1E-401 1E-401 -> 0E-398 Clamped
fmax31597 fma 1 1E-401 -1E-401 -> 0E-398 Clamped
fmax31598 fma 1 -1E-401 -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
rounding: ceiling
-- exact zeros from zeros
fmax31600 fma 1 0 0E-19 -> 0E-19
fmax31601 fma 1 -0 0E-19 -> 0E-19
fmax31602 fma 1 0 -0E-19 -> 0E-19
fmax31603 fma 1 -0 -0E-19 -> -0E-19
fmax31604 fma 1 0E-400 0E-19 -> 0E-398 Clamped
fmax31605 fma 1 -0E-400 0E-19 -> 0E-398 Clamped
fmax31606 fma 1 0E-400 -0E-19 -> 0E-398 Clamped
fmax31607 fma 1 -0E-400 -0E-19 -> -0E-398 Clamped
-- inexact zeros
fmax31611 fma 1 1E-401 1E-400 -> 1E-398 Subnormal Inexact Rounded Underflow
fmax31612 fma 1 -1E-401 1E-400 -> 1E-398 Subnormal Inexact Rounded Underflow
fmax31613 fma 1 1E-401 -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31614 fma 1 -1E-401 -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
-- some exact zeros from non-zeros
fmax31615 fma 1 1E-401 1E-401 -> 1E-398 Subnormal Inexact Rounded Underflow
fmax31616 fma 1 -1E-401 1E-401 -> 0E-398 Clamped
fmax31617 fma 1 1E-401 -1E-401 -> 0E-398 Clamped
fmax31618 fma 1 -1E-401 -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
-- and the extra-special ugly case; unusual minuses marked by -- *
rounding: floor
-- exact zeros from zeros
fmax31620 fma 1 0 0E-19 -> 0E-19
fmax31621 fma 1 -0 0E-19 -> -0E-19 -- *
fmax31622 fma 1 0 -0E-19 -> -0E-19 -- *
fmax31623 fma 1 -0 -0E-19 -> -0E-19
fmax31624 fma 1 0E-400 0E-19 -> 0E-398 Clamped
fmax31625 fma 1 -0E-400 0E-19 -> -0E-398 Clamped -- *
fmax31626 fma 1 0E-400 -0E-19 -> -0E-398 Clamped -- *
fmax31627 fma 1 -0E-400 -0E-19 -> -0E-398 Clamped
-- inexact zeros
fmax31631 fma 1 1E-401 1E-400 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31632 fma 1 -1E-401 1E-400 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31633 fma 1 1E-401 -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow
fmax31634 fma 1 -1E-401 -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow
-- some exact zeros from non-zeros
fmax31635 fma 1 1E-401 1E-401 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31636 fma 1 -1E-401 1E-401 -> -0E-398 Clamped -- *
fmax31637 fma 1 1E-401 -1E-401 -> -0E-398 Clamped -- *
fmax31638 fma 1 -1E-401 -1E-401 -> -1E-398 Subnormal Inexact Rounded Underflow
-- BigDecimal problem testcases 2006.01.23
precision: 16
maxExponent: 384
minexponent: -383
rounding: down
precision: 7
fmax31651 fma 1 10001E+2 -2E+1 -> 1.00008E+6
precision: 6
fmax31652 fma 1 10001E+2 -2E+1 -> 1.00008E+6
precision: 5
fmax31653 fma 1 10001E+2 -2E+1 -> 1.0000E+6 Inexact Rounded
precision: 4
fmax31654 fma 1 10001E+2 -2E+1 -> 1.000E+6 Inexact Rounded
precision: 3
fmax31655 fma 1 10001E+2 -2E+1 -> 1.00E+6 Inexact Rounded
precision: 2
fmax31656 fma 1 10001E+2 -2E+1 -> 1.0E+6 Inexact Rounded
precision: 1
fmax31657 fma 1 10001E+2 -2E+1 -> 1E+6 Inexact Rounded
rounding: half_even
precision: 7
fmax31661 fma 1 10001E+2 -2E+1 -> 1.00008E+6
precision: 6
fmax31662 fma 1 10001E+2 -2E+1 -> 1.00008E+6
precision: 5
fmax31663 fma 1 10001E+2 -2E+1 -> 1.0001E+6 Inexact Rounded
precision: 4
fmax31664 fma 1 10001E+2 -2E+1 -> 1.000E+6 Inexact Rounded
precision: 3
fmax31665 fma 1 10001E+2 -2E+1 -> 1.00E+6 Inexact Rounded
precision: 2
fmax31666 fma 1 10001E+2 -2E+1 -> 1.0E+6 Inexact Rounded
precision: 1
fmax31667 fma 1 10001E+2 -2E+1 -> 1E+6 Inexact Rounded
rounding: up
precision: 7
fmax31671 fma 1 10001E+2 -2E+1 -> 1.00008E+6
precision: 6
fmax31672 fma 1 10001E+2 -2E+1 -> 1.00008E+6
precision: 5
fmax31673 fma 1 10001E+2 -2E+1 -> 1.0001E+6 Inexact Rounded
precision: 4
fmax31674 fma 1 10001E+2 -2E+1 -> 1.001E+6 Inexact Rounded
precision: 3
fmax31675 fma 1 10001E+2 -2E+1 -> 1.01E+6 Inexact Rounded
precision: 2
fmax31676 fma 1 10001E+2 -2E+1 -> 1.1E+6 Inexact Rounded
precision: 1
fmax31677 fma 1 10001E+2 -2E+1 -> 2E+6 Inexact Rounded
precision: 34
rounding: half_up
maxExponent: 6144
minExponent: -6143
-- Examples from SQL proposal (Krishna Kulkarni)
fmax31701 fma 1 130E-2 120E-2 -> 2.50
fmax31702 fma 1 130E-2 12E-1 -> 2.50
fmax31703 fma 1 130E-2 1E0 -> 2.30
fmax31704 fma 1 1E2 1E4 -> 1.01E+4
fmax31705 subtract 130E-2 120E-2 -> 0.10
fmax31706 subtract 130E-2 12E-1 -> 0.10
fmax31707 subtract 130E-2 1E0 -> 0.30
fmax31708 subtract 1E2 1E4 -> -9.9E+3
------------------------------------------------------------------------
-- Same as above, using decimal64 default parameters --
------------------------------------------------------------------------
precision: 16
rounding: half_even
maxExponent: 384
minexponent: -383
-- [first group are 'quick confidence check']
fmax36001 fma 1 1 1 -> 2
fmax36002 fma 1 2 3 -> 5
fmax36003 fma 1 '5.75' '3.3' -> 9.05
fmax36004 fma 1 '5' '-3' -> 2
fmax36005 fma 1 '-5' '-3' -> -8
fmax36006 fma 1 '-7' '2.5' -> -4.5
fmax36007 fma 1 '0.7' '0.3' -> 1.0
fmax36008 fma 1 '1.25' '1.25' -> 2.50
fmax36009 fma 1 '1.23456789' '1.00000000' -> '2.23456789'
fmax36010 fma 1 '1.23456789' '1.00000011' -> '2.23456800'
fmax36011 fma 1 '0.44444444444444444' '0.55555555555555555' -> '1.000000000000000' Inexact Rounded
fmax36012 fma 1 '0.44444444444444440' '0.55555555555555555' -> '1.000000000000000' Inexact Rounded
fmax36013 fma 1 '0.44444444444444444' '0.55555555555555550' -> '0.9999999999999999' Inexact Rounded
fmax36014 fma 1 '0.444444444444444449' '0' -> '0.4444444444444444' Inexact Rounded
fmax36015 fma 1 '0.4444444444444444499' '0' -> '0.4444444444444444' Inexact Rounded
fmax36016 fma 1 '0.44444444444444444999' '0' -> '0.4444444444444444' Inexact Rounded
fmax36017 fma 1 '0.44444444444444445000' '0' -> '0.4444444444444444' Inexact Rounded
fmax36018 fma 1 '0.44444444444444445001' '0' -> '0.4444444444444445' Inexact Rounded
fmax36019 fma 1 '0.4444444444444444501' '0' -> '0.4444444444444445' Inexact Rounded
fmax36020 fma 1 '0.444444444444444451' '0' -> '0.4444444444444445' Inexact Rounded
fmax36021 fma 1 0 1 -> 1
fmax36022 fma 1 1 1 -> 2
fmax36023 fma 1 2 1 -> 3
fmax36024 fma 1 3 1 -> 4
fmax36025 fma 1 4 1 -> 5
fmax36026 fma 1 5 1 -> 6
fmax36027 fma 1 6 1 -> 7
fmax36028 fma 1 7 1 -> 8
fmax36029 fma 1 8 1 -> 9
fmax36030 fma 1 9 1 -> 10
-- some carrying effects
fmax36031 fma 1 '0.9998' '0.0000' -> '0.9998'
fmax36032 fma 1 '0.9998' '0.0001' -> '0.9999'
fmax36033 fma 1 '0.9998' '0.0002' -> '1.0000'
fmax36034 fma 1 '0.9998' '0.0003' -> '1.0001'
fmax36035 fma 1 '70' '10000e+16' -> '1.000000000000000E+20' Inexact Rounded
fmax36036 fma 1 '700' '10000e+16' -> '1.000000000000000E+20' Inexact Rounded
fmax36037 fma 1 '7000' '10000e+16' -> '1.000000000000000E+20' Inexact Rounded
fmax36038 fma 1 '70000' '10000e+16' -> '1.000000000000001E+20' Inexact Rounded
fmax36039 fma 1 '700000' '10000e+16' -> '1.000000000000007E+20' Rounded
-- symmetry:
fmax36040 fma 1 '10000e+16' '70' -> '1.000000000000000E+20' Inexact Rounded
fmax36041 fma 1 '10000e+16' '700' -> '1.000000000000000E+20' Inexact Rounded
fmax36042 fma 1 '10000e+16' '7000' -> '1.000000000000000E+20' Inexact Rounded
fmax36044 fma 1 '10000e+16' '70000' -> '1.000000000000001E+20' Inexact Rounded
fmax36045 fma 1 '10000e+16' '700000' -> '1.000000000000007E+20' Rounded
fmax36046 fma 1 '10000e+9' '7' -> '10000000000007'
fmax36047 fma 1 '10000e+9' '70' -> '10000000000070'
fmax36048 fma 1 '10000e+9' '700' -> '10000000000700'
fmax36049 fma 1 '10000e+9' '7000' -> '10000000007000'
fmax36050 fma 1 '10000e+9' '70000' -> '10000000070000'
fmax36051 fma 1 '10000e+9' '700000' -> '10000000700000'
-- examples from decarith
fmax36053 fma 1 '12' '7.00' -> '19.00'
fmax36054 fma 1 '1.3' '-1.07' -> '0.23'
fmax36055 fma 1 '1.3' '-1.30' -> '0.00'
fmax36056 fma 1 '1.3' '-2.07' -> '-0.77'
fmax36057 fma 1 '1E+2' '1E+4' -> '1.01E+4'
-- from above
fmax36061 fma 1 1 '0.1' -> '1.1'
fmax36062 fma 1 1 '0.01' -> '1.01'
fmax36063 fma 1 1 '0.001' -> '1.001'
fmax36064 fma 1 1 '0.0001' -> '1.0001'
fmax36065 fma 1 1 '0.00001' -> '1.00001'
fmax36066 fma 1 1 '0.000001' -> '1.000001'
fmax36067 fma 1 1 '0.0000001' -> '1.0000001'
fmax36068 fma 1 1 '0.00000001' -> '1.00000001'
-- some funny zeros [in case of bad signum]
fmax36070 fma 1 1 0 -> 1
fmax36071 fma 1 1 0. -> 1
fmax36072 fma 1 1 .0 -> 1.0
fmax36073 fma 1 1 0.0 -> 1.0
fmax36074 fma 1 1 0.00 -> 1.00
fmax36075 fma 1 0 1 -> 1
fmax36076 fma 1 0. 1 -> 1
fmax36077 fma 1 .0 1 -> 1.0
fmax36078 fma 1 0.0 1 -> 1.0
fmax36079 fma 1 0.00 1 -> 1.00
-- some carries
fmax36080 fma 1 9999999999999998 1 -> 9999999999999999
fmax36081 fma 1 9999999999999999 1 -> 1.000000000000000E+16 Rounded
fmax36082 fma 1 999999999999999 1 -> 1000000000000000
fmax36083 fma 1 9999999999999 1 -> 10000000000000
fmax36084 fma 1 99999999999 1 -> 100000000000
fmax36085 fma 1 999999999 1 -> 1000000000
fmax36086 fma 1 9999999 1 -> 10000000
fmax36087 fma 1 99999 1 -> 100000
fmax36088 fma 1 999 1 -> 1000
fmax36089 fma 1 9 1 -> 10
-- more LHS swaps
fmax36090 fma 1 '-56267E-10' 0 -> '-0.0000056267'
fmax36091 fma 1 '-56267E-6' 0 -> '-0.056267'
fmax36092 fma 1 '-56267E-5' 0 -> '-0.56267'
fmax36093 fma 1 '-56267E-4' 0 -> '-5.6267'
fmax36094 fma 1 '-56267E-3' 0 -> '-56.267'
fmax36095 fma 1 '-56267E-2' 0 -> '-562.67'
fmax36096 fma 1 '-56267E-1' 0 -> '-5626.7'
fmax36097 fma 1 '-56267E-0' 0 -> '-56267'
fmax36098 fma 1 '-5E-10' 0 -> '-5E-10'
fmax36099 fma 1 '-5E-7' 0 -> '-5E-7'
fmax36100 fma 1 '-5E-6' 0 -> '-0.000005'
fmax36101 fma 1 '-5E-5' 0 -> '-0.00005'
fmax36102 fma 1 '-5E-4' 0 -> '-0.0005'
fmax36103 fma 1 '-5E-1' 0 -> '-0.5'
fmax36104 fma 1 '-5E0' 0 -> '-5'
fmax36105 fma 1 '-5E1' 0 -> '-50'
fmax36106 fma 1 '-5E5' 0 -> '-500000'
fmax36107 fma 1 '-5E15' 0 -> '-5000000000000000'
fmax36108 fma 1 '-5E16' 0 -> '-5.000000000000000E+16' Rounded
fmax36109 fma 1 '-5E17' 0 -> '-5.000000000000000E+17' Rounded
fmax36110 fma 1 '-5E18' 0 -> '-5.000000000000000E+18' Rounded
fmax36111 fma 1 '-5E100' 0 -> '-5.000000000000000E+100' Rounded
-- more RHS swaps
fmax36113 fma 1 0 '-56267E-10' -> '-0.0000056267'
fmax36114 fma 1 0 '-56267E-6' -> '-0.056267'
fmax36116 fma 1 0 '-56267E-5' -> '-0.56267'
fmax36117 fma 1 0 '-56267E-4' -> '-5.6267'
fmax36119 fma 1 0 '-56267E-3' -> '-56.267'
fmax36120 fma 1 0 '-56267E-2' -> '-562.67'
fmax36121 fma 1 0 '-56267E-1' -> '-5626.7'
fmax36122 fma 1 0 '-56267E-0' -> '-56267'
fmax36123 fma 1 0 '-5E-10' -> '-5E-10'
fmax36124 fma 1 0 '-5E-7' -> '-5E-7'
fmax36125 fma 1 0 '-5E-6' -> '-0.000005'
fmax36126 fma 1 0 '-5E-5' -> '-0.00005'
fmax36127 fma 1 0 '-5E-4' -> '-0.0005'
fmax36128 fma 1 0 '-5E-1' -> '-0.5'
fmax36129 fma 1 0 '-5E0' -> '-5'
fmax36130 fma 1 0 '-5E1' -> '-50'
fmax36131 fma 1 0 '-5E5' -> '-500000'
fmax36132 fma 1 0 '-5E15' -> '-5000000000000000'
fmax36133 fma 1 0 '-5E16' -> '-5.000000000000000E+16' Rounded
fmax36134 fma 1 0 '-5E17' -> '-5.000000000000000E+17' Rounded
fmax36135 fma 1 0 '-5E18' -> '-5.000000000000000E+18' Rounded
fmax36136 fma 1 0 '-5E100' -> '-5.000000000000000E+100' Rounded
-- related
fmax36137 fma 1 1 '0E-19' -> '1.000000000000000' Rounded
fmax36138 fma 1 -1 '0E-19' -> '-1.000000000000000' Rounded
fmax36139 fma 1 '0E-19' 1 -> '1.000000000000000' Rounded
fmax36140 fma 1 '0E-19' -1 -> '-1.000000000000000' Rounded
fmax36141 fma 1 1E+11 0.0000 -> '100000000000.0000'
fmax36142 fma 1 1E+11 0.00000 -> '100000000000.0000' Rounded
fmax36143 fma 1 0.000 1E+12 -> '1000000000000.000'
fmax36144 fma 1 0.0000 1E+12 -> '1000000000000.000' Rounded
-- [some of the next group are really constructor tests]
fmax36146 fma 1 '00.0' 0 -> '0.0'
fmax36147 fma 1 '0.00' 0 -> '0.00'
fmax36148 fma 1 0 '0.00' -> '0.00'
fmax36149 fma 1 0 '00.0' -> '0.0'
fmax36150 fma 1 '00.0' '0.00' -> '0.00'
fmax36151 fma 1 '0.00' '00.0' -> '0.00'
fmax36152 fma 1 '3' '.3' -> '3.3'
fmax36153 fma 1 '3.' '.3' -> '3.3'
fmax36154 fma 1 '3.0' '.3' -> '3.3'
fmax36155 fma 1 '3.00' '.3' -> '3.30'
fmax36156 fma 1 '3' '3' -> '6'
fmax36157 fma 1 '3' '+3' -> '6'
fmax36158 fma 1 '3' '-3' -> '0'
fmax36159 fma 1 '0.3' '-0.3' -> '0.0'
fmax36160 fma 1 '0.03' '-0.03' -> '0.00'
-- try borderline precision, with carries, etc.
fmax36161 fma 1 '1E+13' '-1' -> '9999999999999'
fmax36162 fma 1 '1E+13' '1.11' -> '10000000000001.11'
fmax36163 fma 1 '1.11' '1E+13' -> '10000000000001.11'
fmax36164 fma 1 '-1' '1E+13' -> '9999999999999'
fmax36165 fma 1 '7E+13' '-1' -> '69999999999999'
fmax36166 fma 1 '7E+13' '1.11' -> '70000000000001.11'
fmax36167 fma 1 '1.11' '7E+13' -> '70000000000001.11'
fmax36168 fma 1 '-1' '7E+13' -> '69999999999999'
-- 1234567890123456 1234567890123456 1 234567890123456
fmax36170 fma 1 '0.4444444444444444' '0.5555555555555563' -> '1.000000000000001' Inexact Rounded
fmax36171 fma 1 '0.4444444444444444' '0.5555555555555562' -> '1.000000000000001' Inexact Rounded
fmax36172 fma 1 '0.4444444444444444' '0.5555555555555561' -> '1.000000000000000' Inexact Rounded
fmax36173 fma 1 '0.4444444444444444' '0.5555555555555560' -> '1.000000000000000' Inexact Rounded
fmax36174 fma 1 '0.4444444444444444' '0.5555555555555559' -> '1.000000000000000' Inexact Rounded
fmax36175 fma 1 '0.4444444444444444' '0.5555555555555558' -> '1.000000000000000' Inexact Rounded
fmax36176 fma 1 '0.4444444444444444' '0.5555555555555557' -> '1.000000000000000' Inexact Rounded
fmax36177 fma 1 '0.4444444444444444' '0.5555555555555556' -> '1.000000000000000' Rounded
fmax36178 fma 1 '0.4444444444444444' '0.5555555555555555' -> '0.9999999999999999'
fmax36179 fma 1 '0.4444444444444444' '0.5555555555555554' -> '0.9999999999999998'
fmax36180 fma 1 '0.4444444444444444' '0.5555555555555553' -> '0.9999999999999997'
fmax36181 fma 1 '0.4444444444444444' '0.5555555555555552' -> '0.9999999999999996'
fmax36182 fma 1 '0.4444444444444444' '0.5555555555555551' -> '0.9999999999999995'
fmax36183 fma 1 '0.4444444444444444' '0.5555555555555550' -> '0.9999999999999994'
-- and some more, including residue effects and different roundings
rounding: half_up
fmax36200 fma 1 '6543210123456789' 0 -> '6543210123456789'
fmax36201 fma 1 '6543210123456789' 0.000000001 -> '6543210123456789' Inexact Rounded
fmax36202 fma 1 '6543210123456789' 0.000001 -> '6543210123456789' Inexact Rounded
fmax36203 fma 1 '6543210123456789' 0.1 -> '6543210123456789' Inexact Rounded
fmax36204 fma 1 '6543210123456789' 0.4 -> '6543210123456789' Inexact Rounded
fmax36205 fma 1 '6543210123456789' 0.49 -> '6543210123456789' Inexact Rounded
fmax36206 fma 1 '6543210123456789' 0.499999 -> '6543210123456789' Inexact Rounded
fmax36207 fma 1 '6543210123456789' 0.499999 -> '6543210123456789' Inexact Rounded
fmax36208 fma 1 '6543210123456789' 0.5 -> '6543210123456790' Inexact Rounded
fmax36209 fma 1 '6543210123456789' 0.500000001 -> '6543210123456790' Inexact Rounded
fmax36210 fma 1 '6543210123456789' 0.500001 -> '6543210123456790' Inexact Rounded
fmax36211 fma 1 '6543210123456789' 0.51 -> '6543210123456790' Inexact Rounded
fmax36212 fma 1 '6543210123456789' 0.6 -> '6543210123456790' Inexact Rounded
fmax36213 fma 1 '6543210123456789' 0.9 -> '6543210123456790' Inexact Rounded
fmax36214 fma 1 '6543210123456789' 0.99999 -> '6543210123456790' Inexact Rounded
fmax36215 fma 1 '6543210123456789' 0.999999 -> '6543210123456790' Inexact Rounded
fmax36216 fma 1 '6543210123456789' 1 -> '6543210123456790'
fmax36217 fma 1 '6543210123456789' 1.000000001 -> '6543210123456790' Inexact Rounded
fmax36218 fma 1 '6543210123456789' 1.00001 -> '6543210123456790' Inexact Rounded
fmax36219 fma 1 '6543210123456789' 1.1 -> '6543210123456790' Inexact Rounded
rounding: half_even
fmax36220 fma 1 '6543210123456789' 0 -> '6543210123456789'
fmax36221 fma 1 '6543210123456789' 0.000000001 -> '6543210123456789' Inexact Rounded
fmax36222 fma 1 '6543210123456789' 0.000001 -> '6543210123456789' Inexact Rounded
fmax36223 fma 1 '6543210123456789' 0.1 -> '6543210123456789' Inexact Rounded
fmax36224 fma 1 '6543210123456789' 0.4 -> '6543210123456789' Inexact Rounded
fmax36225 fma 1 '6543210123456789' 0.49 -> '6543210123456789' Inexact Rounded
fmax36226 fma 1 '6543210123456789' 0.499999 -> '6543210123456789' Inexact Rounded
fmax36227 fma 1 '6543210123456789' 0.499999 -> '6543210123456789' Inexact Rounded
fmax36228 fma 1 '6543210123456789' 0.5 -> '6543210123456790' Inexact Rounded
fmax36229 fma 1 '6543210123456789' 0.500000001 -> '6543210123456790' Inexact Rounded
fmax36230 fma 1 '6543210123456789' 0.500001 -> '6543210123456790' Inexact Rounded
fmax36231 fma 1 '6543210123456789' 0.51 -> '6543210123456790' Inexact Rounded
fmax36232 fma 1 '6543210123456789' 0.6 -> '6543210123456790' Inexact Rounded
fmax36233 fma 1 '6543210123456789' 0.9 -> '6543210123456790' Inexact Rounded
fmax36234 fma 1 '6543210123456789' 0.99999 -> '6543210123456790' Inexact Rounded
fmax36235 fma 1 '6543210123456789' 0.999999 -> '6543210123456790' Inexact Rounded
fmax36236 fma 1 '6543210123456789' 1 -> '6543210123456790'
fmax36237 fma 1 '6543210123456789' 1.00000001 -> '6543210123456790' Inexact Rounded
fmax36238 fma 1 '6543210123456789' 1.00001 -> '6543210123456790' Inexact Rounded
fmax36239 fma 1 '6543210123456789' 1.1 -> '6543210123456790' Inexact Rounded
-- critical few with even bottom digit...
fmax36240 fma 1 '6543210123456788' 0.499999 -> '6543210123456788' Inexact Rounded
fmax36241 fma 1 '6543210123456788' 0.5 -> '6543210123456788' Inexact Rounded
fmax36242 fma 1 '6543210123456788' 0.500000001 -> '6543210123456789' Inexact Rounded
rounding: down
fmax36250 fma 1 '6543210123456789' 0 -> '6543210123456789'
fmax36251 fma 1 '6543210123456789' 0.000000001 -> '6543210123456789' Inexact Rounded
fmax36252 fma 1 '6543210123456789' 0.000001 -> '6543210123456789' Inexact Rounded
fmax36253 fma 1 '6543210123456789' 0.1 -> '6543210123456789' Inexact Rounded
fmax36254 fma 1 '6543210123456789' 0.4 -> '6543210123456789' Inexact Rounded
fmax36255 fma 1 '6543210123456789' 0.49 -> '6543210123456789' Inexact Rounded
fmax36256 fma 1 '6543210123456789' 0.499999 -> '6543210123456789' Inexact Rounded
fmax36257 fma 1 '6543210123456789' 0.499999 -> '6543210123456789' Inexact Rounded
fmax36258 fma 1 '6543210123456789' 0.5 -> '6543210123456789' Inexact Rounded
fmax36259 fma 1 '6543210123456789' 0.500000001 -> '6543210123456789' Inexact Rounded
fmax36260 fma 1 '6543210123456789' 0.500001 -> '6543210123456789' Inexact Rounded
fmax36261 fma 1 '6543210123456789' 0.51 -> '6543210123456789' Inexact Rounded
fmax36262 fma 1 '6543210123456789' 0.6 -> '6543210123456789' Inexact Rounded
fmax36263 fma 1 '6543210123456789' 0.9 -> '6543210123456789' Inexact Rounded
fmax36264 fma 1 '6543210123456789' 0.99999 -> '6543210123456789' Inexact Rounded
fmax36265 fma 1 '6543210123456789' 0.999999 -> '6543210123456789' Inexact Rounded
fmax36266 fma 1 '6543210123456789' 1 -> '6543210123456790'
fmax36267 fma 1 '6543210123456789' 1.00000001 -> '6543210123456790' Inexact Rounded
fmax36268 fma 1 '6543210123456789' 1.00001 -> '6543210123456790' Inexact Rounded
fmax36269 fma 1 '6543210123456789' 1.1 -> '6543210123456790' Inexact Rounded
-- 1 in last place tests
rounding: half_even
fmax36301 fma 1 -1 1 -> 0
fmax36302 fma 1 0 1 -> 1
fmax36303 fma 1 1 1 -> 2
fmax36304 fma 1 12 1 -> 13
fmax36305 fma 1 98 1 -> 99
fmax36306 fma 1 99 1 -> 100
fmax36307 fma 1 100 1 -> 101
fmax36308 fma 1 101 1 -> 102
fmax36309 fma 1 -1 -1 -> -2
fmax36310 fma 1 0 -1 -> -1
fmax36311 fma 1 1 -1 -> 0
fmax36312 fma 1 12 -1 -> 11
fmax36313 fma 1 98 -1 -> 97
fmax36314 fma 1 99 -1 -> 98
fmax36315 fma 1 100 -1 -> 99
fmax36316 fma 1 101 -1 -> 100
fmax36321 fma 1 -0.01 0.01 -> 0.00
fmax36322 fma 1 0.00 0.01 -> 0.01
fmax36323 fma 1 0.01 0.01 -> 0.02
fmax36324 fma 1 0.12 0.01 -> 0.13
fmax36325 fma 1 0.98 0.01 -> 0.99
fmax36326 fma 1 0.99 0.01 -> 1.00
fmax36327 fma 1 1.00 0.01 -> 1.01
fmax36328 fma 1 1.01 0.01 -> 1.02
fmax36329 fma 1 -0.01 -0.01 -> -0.02
fmax36330 fma 1 0.00 -0.01 -> -0.01
fmax36331 fma 1 0.01 -0.01 -> 0.00
fmax36332 fma 1 0.12 -0.01 -> 0.11
fmax36333 fma 1 0.98 -0.01 -> 0.97
fmax36334 fma 1 0.99 -0.01 -> 0.98
fmax36335 fma 1 1.00 -0.01 -> 0.99
fmax36336 fma 1 1.01 -0.01 -> 1.00
-- some more cases where fma 1 ing 0 affects the coefficient
fmax36340 fma 1 1E+3 0 -> 1000
fmax36341 fma 1 1E+15 0 -> 1000000000000000
fmax36342 fma 1 1E+16 0 -> 1.000000000000000E+16 Rounded
fmax36343 fma 1 1E+17 0 -> 1.000000000000000E+17 Rounded
-- which simply follow from these cases ...
fmax36344 fma 1 1E+3 1 -> 1001
fmax36345 fma 1 1E+15 1 -> 1000000000000001
fmax36346 fma 1 1E+16 1 -> 1.000000000000000E+16 Inexact Rounded
fmax36347 fma 1 1E+17 1 -> 1.000000000000000E+17 Inexact Rounded
fmax36348 fma 1 1E+3 7 -> 1007
fmax36349 fma 1 1E+15 7 -> 1000000000000007
fmax36350 fma 1 1E+16 7 -> 1.000000000000001E+16 Inexact Rounded
fmax36351 fma 1 1E+17 7 -> 1.000000000000000E+17 Inexact Rounded
-- tryzeros cases
fmax36361 fma 1 0E+50 10000E+1 -> 1.0000E+5
fmax36362 fma 1 10000E+1 0E-50 -> 100000.0000000000 Rounded
fmax36363 fma 1 10000E+1 10000E-50 -> 100000.0000000000 Rounded Inexact
fmax36364 fma 1 12.34 0e-398 -> 12.34000000000000 Rounded
-- ulp replacement tests
fmax36400 fma 1 1 77e-14 -> 1.00000000000077
fmax36401 fma 1 1 77e-15 -> 1.000000000000077
fmax36402 fma 1 1 77e-16 -> 1.000000000000008 Inexact Rounded
fmax36403 fma 1 1 77e-17 -> 1.000000000000001 Inexact Rounded
fmax36404 fma 1 1 77e-18 -> 1.000000000000000 Inexact Rounded
fmax36405 fma 1 1 77e-19 -> 1.000000000000000 Inexact Rounded
fmax36406 fma 1 1 77e-99 -> 1.000000000000000 Inexact Rounded
fmax36410 fma 1 10 77e-14 -> 10.00000000000077
fmax36411 fma 1 10 77e-15 -> 10.00000000000008 Inexact Rounded
fmax36412 fma 1 10 77e-16 -> 10.00000000000001 Inexact Rounded
fmax36413 fma 1 10 77e-17 -> 10.00000000000000 Inexact Rounded
fmax36414 fma 1 10 77e-18 -> 10.00000000000000 Inexact Rounded
fmax36415 fma 1 10 77e-19 -> 10.00000000000000 Inexact Rounded
fmax36416 fma 1 10 77e-99 -> 10.00000000000000 Inexact Rounded
fmax36420 fma 1 77e-14 1 -> 1.00000000000077
fmax36421 fma 1 77e-15 1 -> 1.000000000000077
fmax36422 fma 1 77e-16 1 -> 1.000000000000008 Inexact Rounded
fmax36423 fma 1 77e-17 1 -> 1.000000000000001 Inexact Rounded
fmax36424 fma 1 77e-18 1 -> 1.000000000000000 Inexact Rounded
fmax36425 fma 1 77e-19 1 -> 1.000000000000000 Inexact Rounded
fmax36426 fma 1 77e-99 1 -> 1.000000000000000 Inexact Rounded
fmax36430 fma 1 77e-14 10 -> 10.00000000000077
fmax36431 fma 1 77e-15 10 -> 10.00000000000008 Inexact Rounded
fmax36432 fma 1 77e-16 10 -> 10.00000000000001 Inexact Rounded
fmax36433 fma 1 77e-17 10 -> 10.00000000000000 Inexact Rounded
fmax36434 fma 1 77e-18 10 -> 10.00000000000000 Inexact Rounded
fmax36435 fma 1 77e-19 10 -> 10.00000000000000 Inexact Rounded
fmax36436 fma 1 77e-99 10 -> 10.00000000000000 Inexact Rounded
-- negative ulps
fmax36440 fma 1 1 -77e-14 -> 0.99999999999923
fmax36441 fma 1 1 -77e-15 -> 0.999999999999923
fmax36442 fma 1 1 -77e-16 -> 0.9999999999999923
fmax36443 fma 1 1 -77e-17 -> 0.9999999999999992 Inexact Rounded
fmax36444 fma 1 1 -77e-18 -> 0.9999999999999999 Inexact Rounded
fmax36445 fma 1 1 -77e-19 -> 1.000000000000000 Inexact Rounded
fmax36446 fma 1 1 -77e-99 -> 1.000000000000000 Inexact Rounded
fmax36450 fma 1 10 -77e-14 -> 9.99999999999923
fmax36451 fma 1 10 -77e-15 -> 9.999999999999923
fmax36452 fma 1 10 -77e-16 -> 9.999999999999992 Inexact Rounded
fmax36453 fma 1 10 -77e-17 -> 9.999999999999999 Inexact Rounded
fmax36454 fma 1 10 -77e-18 -> 10.00000000000000 Inexact Rounded
fmax36455 fma 1 10 -77e-19 -> 10.00000000000000 Inexact Rounded
fmax36456 fma 1 10 -77e-99 -> 10.00000000000000 Inexact Rounded
fmax36460 fma 1 -77e-14 1 -> 0.99999999999923
fmax36461 fma 1 -77e-15 1 -> 0.999999999999923
fmax36462 fma 1 -77e-16 1 -> 0.9999999999999923
fmax36463 fma 1 -77e-17 1 -> 0.9999999999999992 Inexact Rounded
fmax36464 fma 1 -77e-18 1 -> 0.9999999999999999 Inexact Rounded
fmax36465 fma 1 -77e-19 1 -> 1.000000000000000 Inexact Rounded
fmax36466 fma 1 -77e-99 1 -> 1.000000000000000 Inexact Rounded
fmax36470 fma 1 -77e-14 10 -> 9.99999999999923
fmax36471 fma 1 -77e-15 10 -> 9.999999999999923
fmax36472 fma 1 -77e-16 10 -> 9.999999999999992 Inexact Rounded
fmax36473 fma 1 -77e-17 10 -> 9.999999999999999 Inexact Rounded
fmax36474 fma 1 -77e-18 10 -> 10.00000000000000 Inexact Rounded
fmax36475 fma 1 -77e-19 10 -> 10.00000000000000 Inexact Rounded
fmax36476 fma 1 -77e-99 10 -> 10.00000000000000 Inexact Rounded
-- negative ulps
fmax36480 fma 1 -1 77e-14 -> -0.99999999999923
fmax36481 fma 1 -1 77e-15 -> -0.999999999999923
fmax36482 fma 1 -1 77e-16 -> -0.9999999999999923
fmax36483 fma 1 -1 77e-17 -> -0.9999999999999992 Inexact Rounded
fmax36484 fma 1 -1 77e-18 -> -0.9999999999999999 Inexact Rounded
fmax36485 fma 1 -1 77e-19 -> -1.000000000000000 Inexact Rounded
fmax36486 fma 1 -1 77e-99 -> -1.000000000000000 Inexact Rounded
fmax36490 fma 1 -10 77e-14 -> -9.99999999999923
fmax36491 fma 1 -10 77e-15 -> -9.999999999999923
fmax36492 fma 1 -10 77e-16 -> -9.999999999999992 Inexact Rounded
fmax36493 fma 1 -10 77e-17 -> -9.999999999999999 Inexact Rounded
fmax36494 fma 1 -10 77e-18 -> -10.00000000000000 Inexact Rounded
fmax36495 fma 1 -10 77e-19 -> -10.00000000000000 Inexact Rounded
fmax36496 fma 1 -10 77e-99 -> -10.00000000000000 Inexact Rounded
fmax36500 fma 1 77e-14 -1 -> -0.99999999999923
fmax36501 fma 1 77e-15 -1 -> -0.999999999999923
fmax36502 fma 1 77e-16 -1 -> -0.9999999999999923
fmax36503 fma 1 77e-17 -1 -> -0.9999999999999992 Inexact Rounded
fmax36504 fma 1 77e-18 -1 -> -0.9999999999999999 Inexact Rounded
fmax36505 fma 1 77e-19 -1 -> -1.000000000000000 Inexact Rounded
fmax36506 fma 1 77e-99 -1 -> -1.000000000000000 Inexact Rounded
fmax36510 fma 1 77e-14 -10 -> -9.99999999999923
fmax36511 fma 1 77e-15 -10 -> -9.999999999999923
fmax36512 fma 1 77e-16 -10 -> -9.999999999999992 Inexact Rounded
fmax36513 fma 1 77e-17 -10 -> -9.999999999999999 Inexact Rounded
fmax36514 fma 1 77e-18 -10 -> -10.00000000000000 Inexact Rounded
fmax36515 fma 1 77e-19 -10 -> -10.00000000000000 Inexact Rounded
fmax36516 fma 1 77e-99 -10 -> -10.00000000000000 Inexact Rounded
-- long operands
fmax36521 fma 1 101234562345678000 0 -> 1.012345623456780E+17 Rounded
fmax36522 fma 1 0 101234562345678000 -> 1.012345623456780E+17 Rounded
fmax36523 fma 1 10123456234567800 0 -> 1.012345623456780E+16 Rounded
fmax36524 fma 1 0 10123456234567800 -> 1.012345623456780E+16 Rounded
fmax36525 fma 1 10123456234567890 0 -> 1.012345623456789E+16 Rounded
fmax36526 fma 1 0 10123456234567890 -> 1.012345623456789E+16 Rounded
fmax36527 fma 1 10123456234567891 0 -> 1.012345623456789E+16 Inexact Rounded
fmax36528 fma 1 0 10123456234567891 -> 1.012345623456789E+16 Inexact Rounded
fmax36529 fma 1 101234562345678901 0 -> 1.012345623456789E+17 Inexact Rounded
fmax36530 fma 1 0 101234562345678901 -> 1.012345623456789E+17 Inexact Rounded
fmax36531 fma 1 10123456234567896 0 -> 1.012345623456790E+16 Inexact Rounded
fmax36532 fma 1 0 10123456234567896 -> 1.012345623456790E+16 Inexact Rounded
-- verify a query
rounding: down
fmax36561 fma 1 1e-398 9.000000000000000E+384 -> 9.000000000000000E+384 Inexact Rounded
fmax36562 fma 1 0 9.000000000000000E+384 -> 9.000000000000000E+384 Rounded
-- and using decimal64 bounds...
rounding: down
fmax36563 fma 1 1e-388 9.000000000000000E+374 -> 9.000000000000000E+374 Inexact Rounded
fmax36564 fma 1 0 9.000000000000000E+374 -> 9.000000000000000E+374 Rounded
-- more zeros, etc.
rounding: half_even
fmax36701 fma 1 5.00 1.00E-3 -> 5.00100
fmax36702 fma 1 00.00 0.000 -> 0.000
fmax36703 fma 1 00.00 0E-3 -> 0.000
fmax36704 fma 1 0E-3 00.00 -> 0.000
fmax36710 fma 1 0E+3 00.00 -> 0.00
fmax36711 fma 1 0E+3 00.0 -> 0.0
fmax36712 fma 1 0E+3 00. -> 0
fmax36713 fma 1 0E+3 00.E+1 -> 0E+1
fmax36714 fma 1 0E+3 00.E+2 -> 0E+2
fmax36715 fma 1 0E+3 00.E+3 -> 0E+3
fmax36716 fma 1 0E+3 00.E+4 -> 0E+3
fmax36717 fma 1 0E+3 00.E+5 -> 0E+3
fmax36718 fma 1 0E+3 -00.0 -> 0.0
fmax36719 fma 1 0E+3 -00. -> 0
fmax36731 fma 1 0E+3 -00.E+1 -> 0E+1
fmax36720 fma 1 00.00 0E+3 -> 0.00
fmax36721 fma 1 00.0 0E+3 -> 0.0
fmax36722 fma 1 00. 0E+3 -> 0
fmax36723 fma 1 00.E+1 0E+3 -> 0E+1
fmax36724 fma 1 00.E+2 0E+3 -> 0E+2
fmax36725 fma 1 00.E+3 0E+3 -> 0E+3
fmax36726 fma 1 00.E+4 0E+3 -> 0E+3
fmax36727 fma 1 00.E+5 0E+3 -> 0E+3
fmax36728 fma 1 -00.00 0E+3 -> 0.00
fmax36729 fma 1 -00.0 0E+3 -> 0.0
fmax36730 fma 1 -00. 0E+3 -> 0
fmax36732 fma 1 0 0 -> 0
fmax36733 fma 1 0 -0 -> 0
fmax36734 fma 1 -0 0 -> 0
fmax36735 fma 1 -0 -0 -> -0 -- IEEE 854 special case
fmax36736 fma 1 1 -1 -> 0
fmax36737 fma 1 -1 -1 -> -2
fmax36738 fma 1 1 1 -> 2
fmax36739 fma 1 -1 1 -> 0
fmax36741 fma 1 0 -1 -> -1
fmax36742 fma 1 -0 -1 -> -1
fmax36743 fma 1 0 1 -> 1
fmax36744 fma 1 -0 1 -> 1
fmax36745 fma 1 -1 0 -> -1
fmax36746 fma 1 -1 -0 -> -1
fmax36747 fma 1 1 0 -> 1
fmax36748 fma 1 1 -0 -> 1
fmax36751 fma 1 0.0 -1 -> -1.0
fmax36752 fma 1 -0.0 -1 -> -1.0
fmax36753 fma 1 0.0 1 -> 1.0
fmax36754 fma 1 -0.0 1 -> 1.0
fmax36755 fma 1 -1.0 0 -> -1.0
fmax36756 fma 1 -1.0 -0 -> -1.0
fmax36757 fma 1 1.0 0 -> 1.0
fmax36758 fma 1 1.0 -0 -> 1.0
fmax36761 fma 1 0 -1.0 -> -1.0
fmax36762 fma 1 -0 -1.0 -> -1.0
fmax36763 fma 1 0 1.0 -> 1.0
fmax36764 fma 1 -0 1.0 -> 1.0
fmax36765 fma 1 -1 0.0 -> -1.0
fmax36766 fma 1 -1 -0.0 -> -1.0
fmax36767 fma 1 1 0.0 -> 1.0
fmax36768 fma 1 1 -0.0 -> 1.0
fmax36771 fma 1 0.0 -1.0 -> -1.0
fmax36772 fma 1 -0.0 -1.0 -> -1.0
fmax36773 fma 1 0.0 1.0 -> 1.0
fmax36774 fma 1 -0.0 1.0 -> 1.0
fmax36775 fma 1 -1.0 0.0 -> -1.0
fmax36776 fma 1 -1.0 -0.0 -> -1.0
fmax36777 fma 1 1.0 0.0 -> 1.0
fmax36778 fma 1 1.0 -0.0 -> 1.0
-- Specials
fmax36780 fma 1 -Inf -Inf -> -Infinity
fmax36781 fma 1 -Inf -1000 -> -Infinity
fmax36782 fma 1 -Inf -1 -> -Infinity
fmax36783 fma 1 -Inf -0 -> -Infinity
fmax36784 fma 1 -Inf 0 -> -Infinity
fmax36785 fma 1 -Inf 1 -> -Infinity
fmax36786 fma 1 -Inf 1000 -> -Infinity
fmax36787 fma 1 -1000 -Inf -> -Infinity
fmax36788 fma 1 -Inf -Inf -> -Infinity
fmax36789 fma 1 -1 -Inf -> -Infinity
fmax36790 fma 1 -0 -Inf -> -Infinity
fmax36791 fma 1 0 -Inf -> -Infinity
fmax36792 fma 1 1 -Inf -> -Infinity
fmax36793 fma 1 1000 -Inf -> -Infinity
fmax36794 fma 1 Inf -Inf -> NaN Invalid_operation
fmax36800 fma 1 Inf -Inf -> NaN Invalid_operation
fmax36801 fma 1 Inf -1000 -> Infinity
fmax36802 fma 1 Inf -1 -> Infinity
fmax36803 fma 1 Inf -0 -> Infinity
fmax36804 fma 1 Inf 0 -> Infinity
fmax36805 fma 1 Inf 1 -> Infinity
fmax36806 fma 1 Inf 1000 -> Infinity
fmax36807 fma 1 Inf Inf -> Infinity
fmax36808 fma 1 -1000 Inf -> Infinity
fmax36809 fma 1 -Inf Inf -> NaN Invalid_operation
fmax36810 fma 1 -1 Inf -> Infinity
fmax36811 fma 1 -0 Inf -> Infinity
fmax36812 fma 1 0 Inf -> Infinity
fmax36813 fma 1 1 Inf -> Infinity
fmax36814 fma 1 1000 Inf -> Infinity
fmax36815 fma 1 Inf Inf -> Infinity
fmax36821 fma 1 NaN -Inf -> NaN
fmax36822 fma 1 NaN -1000 -> NaN
fmax36823 fma 1 NaN -1 -> NaN
fmax36824 fma 1 NaN -0 -> NaN
fmax36825 fma 1 NaN 0 -> NaN
fmax36826 fma 1 NaN 1 -> NaN
fmax36827 fma 1 NaN 1000 -> NaN
fmax36828 fma 1 NaN Inf -> NaN
fmax36829 fma 1 NaN NaN -> NaN
fmax36830 fma 1 -Inf NaN -> NaN
fmax36831 fma 1 -1000 NaN -> NaN
fmax36832 fma 1 -1 NaN -> NaN
fmax36833 fma 1 -0 NaN -> NaN
fmax36834 fma 1 0 NaN -> NaN
fmax36835 fma 1 1 NaN -> NaN
fmax36836 fma 1 1000 NaN -> NaN
fmax36837 fma 1 Inf NaN -> NaN
fmax36841 fma 1 sNaN -Inf -> NaN Invalid_operation
fmax36842 fma 1 sNaN -1000 -> NaN Invalid_operation
fmax36843 fma 1 sNaN -1 -> NaN Invalid_operation
fmax36844 fma 1 sNaN -0 -> NaN Invalid_operation
fmax36845 fma 1 sNaN 0 -> NaN Invalid_operation
fmax36846 fma 1 sNaN 1 -> NaN Invalid_operation
fmax36847 fma 1 sNaN 1000 -> NaN Invalid_operation
fmax36848 fma 1 sNaN NaN -> NaN Invalid_operation
fmax36849 fma 1 sNaN sNaN -> NaN Invalid_operation
fmax36850 fma 1 NaN sNaN -> NaN Invalid_operation
fmax36851 fma 1 -Inf sNaN -> NaN Invalid_operation
fmax36852 fma 1 -1000 sNaN -> NaN Invalid_operation
fmax36853 fma 1 -1 sNaN -> NaN Invalid_operation
fmax36854 fma 1 -0 sNaN -> NaN Invalid_operation
fmax36855 fma 1 0 sNaN -> NaN Invalid_operation
fmax36856 fma 1 1 sNaN -> NaN Invalid_operation
fmax36857 fma 1 1000 sNaN -> NaN Invalid_operation
fmax36858 fma 1 Inf sNaN -> NaN Invalid_operation
fmax36859 fma 1 NaN sNaN -> NaN Invalid_operation
-- propagating NaNs
fmax36861 fma 1 NaN1 -Inf -> NaN1
fmax36862 fma 1 +NaN2 -1000 -> NaN2
fmax36863 fma 1 NaN3 1000 -> NaN3
fmax36864 fma 1 NaN4 Inf -> NaN4
fmax36865 fma 1 NaN5 +NaN6 -> NaN5
fmax36866 fma 1 -Inf NaN7 -> NaN7
fmax36867 fma 1 -1000 NaN8 -> NaN8
fmax36868 fma 1 1000 NaN9 -> NaN9
fmax36869 fma 1 Inf +NaN10 -> NaN10
fmax36871 fma 1 sNaN11 -Inf -> NaN11 Invalid_operation
fmax36872 fma 1 sNaN12 -1000 -> NaN12 Invalid_operation
fmax36873 fma 1 sNaN13 1000 -> NaN13 Invalid_operation
fmax36874 fma 1 sNaN14 NaN17 -> NaN14 Invalid_operation
fmax36875 fma 1 sNaN15 sNaN18 -> NaN15 Invalid_operation
fmax36876 fma 1 NaN16 sNaN19 -> NaN19 Invalid_operation
fmax36877 fma 1 -Inf +sNaN20 -> NaN20 Invalid_operation
fmax36878 fma 1 -1000 sNaN21 -> NaN21 Invalid_operation
fmax36879 fma 1 1000 sNaN22 -> NaN22 Invalid_operation
fmax36880 fma 1 Inf sNaN23 -> NaN23 Invalid_operation
fmax36881 fma 1 +NaN25 +sNaN24 -> NaN24 Invalid_operation
fmax36882 fma 1 -NaN26 NaN28 -> -NaN26
fmax36883 fma 1 -sNaN27 sNaN29 -> -NaN27 Invalid_operation
fmax36884 fma 1 1000 -NaN30 -> -NaN30
fmax36885 fma 1 1000 -sNaN31 -> -NaN31 Invalid_operation
-- now the case where we can get underflow but the result is normal
-- [note this can't happen if the operands are also bounded, as we
-- cannot represent 1E-399, for example]
fmax36571 fma 1 1E-383 0 -> 1E-383
fmax36572 fma 1 1E-384 0 -> 1E-384 Subnormal
fmax36573 fma 1 1E-383 1E-384 -> 1.1E-383
fmax36574 subtract 1E-383 1E-384 -> 9E-384 Subnormal
-- Here we explore the boundary of rounding a subnormal to Nmin
fmax36575 subtract 1E-383 1E-398 -> 9.99999999999999E-384 Subnormal
fmax36576 subtract 1E-383 1E-398 -> 9.99999999999999E-384 Subnormal
fmax36577 subtract 1E-383 1E-399 -> 1.000000000000000E-383 Underflow Inexact Subnormal Rounded
fmax36578 subtract 1E-383 1E-400 -> 1.000000000000000E-383 Underflow Inexact Subnormal Rounded
fmax36579 subtract 1E-383 1E-401 -> 1.000000000000000E-383 Underflow Inexact Subnormal Rounded
fmax36580 subtract 1E-383 1E-402 -> 1.000000000000000E-383 Underflow Inexact Subnormal Rounded
-- check overflow edge case
-- 1234567890123456
fmax36972 apply 9.999999999999999E+384 -> 9.999999999999999E+384
fmax36973 fma 1 9.999999999999999E+384 1 -> 9.999999999999999E+384 Inexact Rounded
fmax36974 fma 1 9999999999999999E+369 1 -> 9.999999999999999E+384 Inexact Rounded
fmax36975 fma 1 9999999999999999E+369 1E+369 -> Infinity Overflow Inexact Rounded
fmax36976 fma 1 9999999999999999E+369 9E+368 -> Infinity Overflow Inexact Rounded
fmax36977 fma 1 9999999999999999E+369 8E+368 -> Infinity Overflow Inexact Rounded
fmax36978 fma 1 9999999999999999E+369 7E+368 -> Infinity Overflow Inexact Rounded
fmax36979 fma 1 9999999999999999E+369 6E+368 -> Infinity Overflow Inexact Rounded
fmax36980 fma 1 9999999999999999E+369 5E+368 -> Infinity Overflow Inexact Rounded
fmax36981 fma 1 9999999999999999E+369 4E+368 -> 9.999999999999999E+384 Inexact Rounded
fmax36982 fma 1 9999999999999999E+369 3E+368 -> 9.999999999999999E+384 Inexact Rounded
fmax36983 fma 1 9999999999999999E+369 2E+368 -> 9.999999999999999E+384 Inexact Rounded
fmax36984 fma 1 9999999999999999E+369 1E+368 -> 9.999999999999999E+384 Inexact Rounded
fmax36985 apply -9.999999999999999E+384 -> -9.999999999999999E+384
fmax36986 fma 1 -9.999999999999999E+384 -1 -> -9.999999999999999E+384 Inexact Rounded
fmax36987 fma 1 -9999999999999999E+369 -1 -> -9.999999999999999E+384 Inexact Rounded
fmax36988 fma 1 -9999999999999999E+369 -1E+369 -> -Infinity Overflow Inexact Rounded
fmax36989 fma 1 -9999999999999999E+369 -9E+368 -> -Infinity Overflow Inexact Rounded
fmax36990 fma 1 -9999999999999999E+369 -8E+368 -> -Infinity Overflow Inexact Rounded
fmax36991 fma 1 -9999999999999999E+369 -7E+368 -> -Infinity Overflow Inexact Rounded
fmax36992 fma 1 -9999999999999999E+369 -6E+368 -> -Infinity Overflow Inexact Rounded
fmax36993 fma 1 -9999999999999999E+369 -5E+368 -> -Infinity Overflow Inexact Rounded
fmax36994 fma 1 -9999999999999999E+369 -4E+368 -> -9.999999999999999E+384 Inexact Rounded
fmax36995 fma 1 -9999999999999999E+369 -3E+368 -> -9.999999999999999E+384 Inexact Rounded
fmax36996 fma 1 -9999999999999999E+369 -2E+368 -> -9.999999999999999E+384 Inexact Rounded
fmax36997 fma 1 -9999999999999999E+369 -1E+368 -> -9.999999999999999E+384 Inexact Rounded
-- And for round down full and subnormal results
rounding: down
fmax361100 fma 1 1e+2 -1e-383 -> 99.99999999999999 Rounded Inexact
fmax361101 fma 1 1e+1 -1e-383 -> 9.999999999999999 Rounded Inexact
fmax361103 fma 1 +1 -1e-383 -> 0.9999999999999999 Rounded Inexact
fmax361104 fma 1 1e-1 -1e-383 -> 0.09999999999999999 Rounded Inexact
fmax361105 fma 1 1e-2 -1e-383 -> 0.009999999999999999 Rounded Inexact
fmax361106 fma 1 1e-3 -1e-383 -> 0.0009999999999999999 Rounded Inexact
fmax361107 fma 1 1e-4 -1e-383 -> 0.00009999999999999999 Rounded Inexact
fmax361108 fma 1 1e-5 -1e-383 -> 0.000009999999999999999 Rounded Inexact
fmax361109 fma 1 1e-6 -1e-383 -> 9.999999999999999E-7 Rounded Inexact
rounding: ceiling
fmax361110 fma 1 -1e+2 +1e-383 -> -99.99999999999999 Rounded Inexact
fmax361111 fma 1 -1e+1 +1e-383 -> -9.999999999999999 Rounded Inexact
fmax361113 fma 1 -1 +1e-383 -> -0.9999999999999999 Rounded Inexact
fmax361114 fma 1 -1e-1 +1e-383 -> -0.09999999999999999 Rounded Inexact
fmax361115 fma 1 -1e-2 +1e-383 -> -0.009999999999999999 Rounded Inexact
fmax361116 fma 1 -1e-3 +1e-383 -> -0.0009999999999999999 Rounded Inexact
fmax361117 fma 1 -1e-4 +1e-383 -> -0.00009999999999999999 Rounded Inexact
fmax361118 fma 1 -1e-5 +1e-383 -> -0.000009999999999999999 Rounded Inexact
fmax361119 fma 1 -1e-6 +1e-383 -> -9.999999999999999E-7 Rounded Inexact
-- tests based on Gunnar Degnbol's edge case
rounding: half_even
fmax361300 fma 1 1E16 -0.5 -> 1.000000000000000E+16 Inexact Rounded
fmax361310 fma 1 1E16 -0.51 -> 9999999999999999 Inexact Rounded
fmax361311 fma 1 1E16 -0.501 -> 9999999999999999 Inexact Rounded
fmax361312 fma 1 1E16 -0.5001 -> 9999999999999999 Inexact Rounded
fmax361313 fma 1 1E16 -0.50001 -> 9999999999999999 Inexact Rounded
fmax361314 fma 1 1E16 -0.500001 -> 9999999999999999 Inexact Rounded
fmax361315 fma 1 1E16 -0.5000001 -> 9999999999999999 Inexact Rounded
fmax361316 fma 1 1E16 -0.50000001 -> 9999999999999999 Inexact Rounded
fmax361317 fma 1 1E16 -0.500000001 -> 9999999999999999 Inexact Rounded
fmax361318 fma 1 1E16 -0.5000000001 -> 9999999999999999 Inexact Rounded
fmax361319 fma 1 1E16 -0.50000000001 -> 9999999999999999 Inexact Rounded
fmax361320 fma 1 1E16 -0.500000000001 -> 9999999999999999 Inexact Rounded
fmax361321 fma 1 1E16 -0.5000000000001 -> 9999999999999999 Inexact Rounded
fmax361322 fma 1 1E16 -0.50000000000001 -> 9999999999999999 Inexact Rounded
fmax361323 fma 1 1E16 -0.500000000000001 -> 9999999999999999 Inexact Rounded
fmax361324 fma 1 1E16 -0.5000000000000001 -> 9999999999999999 Inexact Rounded
fmax361325 fma 1 1E16 -0.5000000000000000 -> 1.000000000000000E+16 Inexact Rounded
fmax361326 fma 1 1E16 -0.500000000000000 -> 1.000000000000000E+16 Inexact Rounded
fmax361327 fma 1 1E16 -0.50000000000000 -> 1.000000000000000E+16 Inexact Rounded
fmax361328 fma 1 1E16 -0.5000000000000 -> 1.000000000000000E+16 Inexact Rounded
fmax361329 fma 1 1E16 -0.500000000000 -> 1.000000000000000E+16 Inexact Rounded
fmax361330 fma 1 1E16 -0.50000000000 -> 1.000000000000000E+16 Inexact Rounded
fmax361331 fma 1 1E16 -0.5000000000 -> 1.000000000000000E+16 Inexact Rounded
fmax361332 fma 1 1E16 -0.500000000 -> 1.000000000000000E+16 Inexact Rounded
fmax361333 fma 1 1E16 -0.50000000 -> 1.000000000000000E+16 Inexact Rounded
fmax361334 fma 1 1E16 -0.5000000 -> 1.000000000000000E+16 Inexact Rounded
fmax361335 fma 1 1E16 -0.500000 -> 1.000000000000000E+16 Inexact Rounded
fmax361336 fma 1 1E16 -0.50000 -> 1.000000000000000E+16 Inexact Rounded
fmax361337 fma 1 1E16 -0.5000 -> 1.000000000000000E+16 Inexact Rounded
fmax361338 fma 1 1E16 -0.500 -> 1.000000000000000E+16 Inexact Rounded
fmax361339 fma 1 1E16 -0.50 -> 1.000000000000000E+16 Inexact Rounded
fmax361340 fma 1 1E16 -5000000.000010001 -> 9999999995000000 Inexact Rounded
fmax361341 fma 1 1E16 -5000000.000000001 -> 9999999995000000 Inexact Rounded
fmax361349 fma 1 9999999999999999 0.4 -> 9999999999999999 Inexact Rounded
fmax361350 fma 1 9999999999999999 0.49 -> 9999999999999999 Inexact Rounded
fmax361351 fma 1 9999999999999999 0.499 -> 9999999999999999 Inexact Rounded
fmax361352 fma 1 9999999999999999 0.4999 -> 9999999999999999 Inexact Rounded
fmax361353 fma 1 9999999999999999 0.49999 -> 9999999999999999 Inexact Rounded
fmax361354 fma 1 9999999999999999 0.499999 -> 9999999999999999 Inexact Rounded
fmax361355 fma 1 9999999999999999 0.4999999 -> 9999999999999999 Inexact Rounded
fmax361356 fma 1 9999999999999999 0.49999999 -> 9999999999999999 Inexact Rounded
fmax361357 fma 1 9999999999999999 0.499999999 -> 9999999999999999 Inexact Rounded
fmax361358 fma 1 9999999999999999 0.4999999999 -> 9999999999999999 Inexact Rounded
fmax361359 fma 1 9999999999999999 0.49999999999 -> 9999999999999999 Inexact Rounded
fmax361360 fma 1 9999999999999999 0.499999999999 -> 9999999999999999 Inexact Rounded
fmax361361 fma 1 9999999999999999 0.4999999999999 -> 9999999999999999 Inexact Rounded
fmax361362 fma 1 9999999999999999 0.49999999999999 -> 9999999999999999 Inexact Rounded
fmax361363 fma 1 9999999999999999 0.499999999999999 -> 9999999999999999 Inexact Rounded
fmax361364 fma 1 9999999999999999 0.4999999999999999 -> 9999999999999999 Inexact Rounded
fmax361365 fma 1 9999999999999999 0.5000000000000000 -> 1.000000000000000E+16 Inexact Rounded
fmax361367 fma 1 9999999999999999 0.500000000000000 -> 1.000000000000000E+16 Inexact Rounded
fmax361368 fma 1 9999999999999999 0.50000000000000 -> 1.000000000000000E+16 Inexact Rounded
fmax361369 fma 1 9999999999999999 0.5000000000000 -> 1.000000000000000E+16 Inexact Rounded
fmax361370 fma 1 9999999999999999 0.500000000000 -> 1.000000000000000E+16 Inexact Rounded
fmax361371 fma 1 9999999999999999 0.50000000000 -> 1.000000000000000E+16 Inexact Rounded
fmax361372 fma 1 9999999999999999 0.5000000000 -> 1.000000000000000E+16 Inexact Rounded
fmax361373 fma 1 9999999999999999 0.500000000 -> 1.000000000000000E+16 Inexact Rounded
fmax361374 fma 1 9999999999999999 0.50000000 -> 1.000000000000000E+16 Inexact Rounded
fmax361375 fma 1 9999999999999999 0.5000000 -> 1.000000000000000E+16 Inexact Rounded
fmax361376 fma 1 9999999999999999 0.500000 -> 1.000000000000000E+16 Inexact Rounded
fmax361377 fma 1 9999999999999999 0.50000 -> 1.000000000000000E+16 Inexact Rounded
fmax361378 fma 1 9999999999999999 0.5000 -> 1.000000000000000E+16 Inexact Rounded
fmax361379 fma 1 9999999999999999 0.500 -> 1.000000000000000E+16 Inexact Rounded
fmax361380 fma 1 9999999999999999 0.50 -> 1.000000000000000E+16 Inexact Rounded
fmax361381 fma 1 9999999999999999 0.5 -> 1.000000000000000E+16 Inexact Rounded
fmax361382 fma 1 9999999999999999 0.5000000000000001 -> 1.000000000000000E+16 Inexact Rounded
fmax361383 fma 1 9999999999999999 0.500000000000001 -> 1.000000000000000E+16 Inexact Rounded
fmax361384 fma 1 9999999999999999 0.50000000000001 -> 1.000000000000000E+16 Inexact Rounded
fmax361385 fma 1 9999999999999999 0.5000000000001 -> 1.000000000000000E+16 Inexact Rounded
fmax361386 fma 1 9999999999999999 0.500000000001 -> 1.000000000000000E+16 Inexact Rounded
fmax361387 fma 1 9999999999999999 0.50000000001 -> 1.000000000000000E+16 Inexact Rounded
fmax361388 fma 1 9999999999999999 0.5000000001 -> 1.000000000000000E+16 Inexact Rounded
fmax361389 fma 1 9999999999999999 0.500000001 -> 1.000000000000000E+16 Inexact Rounded
fmax361390 fma 1 9999999999999999 0.50000001 -> 1.000000000000000E+16 Inexact Rounded
fmax361391 fma 1 9999999999999999 0.5000001 -> 1.000000000000000E+16 Inexact Rounded
fmax361392 fma 1 9999999999999999 0.500001 -> 1.000000000000000E+16 Inexact Rounded
fmax361393 fma 1 9999999999999999 0.50001 -> 1.000000000000000E+16 Inexact Rounded
fmax361394 fma 1 9999999999999999 0.5001 -> 1.000000000000000E+16 Inexact Rounded
fmax361395 fma 1 9999999999999999 0.501 -> 1.000000000000000E+16 Inexact Rounded
fmax361396 fma 1 9999999999999999 0.51 -> 1.000000000000000E+16 Inexact Rounded
-- More GD edge cases, where difference between the unadjusted
-- exponents is larger than the maximum precision and one side is 0
fmax361420 fma 1 0 1.123456789012345 -> 1.123456789012345
fmax361421 fma 1 0 1.123456789012345E-1 -> 0.1123456789012345
fmax361422 fma 1 0 1.123456789012345E-2 -> 0.01123456789012345
fmax361423 fma 1 0 1.123456789012345E-3 -> 0.001123456789012345
fmax361424 fma 1 0 1.123456789012345E-4 -> 0.0001123456789012345
fmax361425 fma 1 0 1.123456789012345E-5 -> 0.00001123456789012345
fmax361426 fma 1 0 1.123456789012345E-6 -> 0.000001123456789012345
fmax361427 fma 1 0 1.123456789012345E-7 -> 1.123456789012345E-7
fmax361428 fma 1 0 1.123456789012345E-8 -> 1.123456789012345E-8
fmax361429 fma 1 0 1.123456789012345E-9 -> 1.123456789012345E-9
fmax361430 fma 1 0 1.123456789012345E-10 -> 1.123456789012345E-10
fmax361431 fma 1 0 1.123456789012345E-11 -> 1.123456789012345E-11
fmax361432 fma 1 0 1.123456789012345E-12 -> 1.123456789012345E-12
fmax361433 fma 1 0 1.123456789012345E-13 -> 1.123456789012345E-13
fmax361434 fma 1 0 1.123456789012345E-14 -> 1.123456789012345E-14
fmax361435 fma 1 0 1.123456789012345E-15 -> 1.123456789012345E-15
fmax361436 fma 1 0 1.123456789012345E-16 -> 1.123456789012345E-16
fmax361437 fma 1 0 1.123456789012345E-17 -> 1.123456789012345E-17
fmax361438 fma 1 0 1.123456789012345E-18 -> 1.123456789012345E-18
fmax361439 fma 1 0 1.123456789012345E-19 -> 1.123456789012345E-19
-- same, reversed 0
fmax361440 fma 1 1.123456789012345 0 -> 1.123456789012345
fmax361441 fma 1 1.123456789012345E-1 0 -> 0.1123456789012345
fmax361442 fma 1 1.123456789012345E-2 0 -> 0.01123456789012345
fmax361443 fma 1 1.123456789012345E-3 0 -> 0.001123456789012345
fmax361444 fma 1 1.123456789012345E-4 0 -> 0.0001123456789012345
fmax361445 fma 1 1.123456789012345E-5 0 -> 0.00001123456789012345
fmax361446 fma 1 1.123456789012345E-6 0 -> 0.000001123456789012345
fmax361447 fma 1 1.123456789012345E-7 0 -> 1.123456789012345E-7
fmax361448 fma 1 1.123456789012345E-8 0 -> 1.123456789012345E-8
fmax361449 fma 1 1.123456789012345E-9 0 -> 1.123456789012345E-9
fmax361450 fma 1 1.123456789012345E-10 0 -> 1.123456789012345E-10
fmax361451 fma 1 1.123456789012345E-11 0 -> 1.123456789012345E-11
fmax361452 fma 1 1.123456789012345E-12 0 -> 1.123456789012345E-12
fmax361453 fma 1 1.123456789012345E-13 0 -> 1.123456789012345E-13
fmax361454 fma 1 1.123456789012345E-14 0 -> 1.123456789012345E-14
fmax361455 fma 1 1.123456789012345E-15 0 -> 1.123456789012345E-15
fmax361456 fma 1 1.123456789012345E-16 0 -> 1.123456789012345E-16
fmax361457 fma 1 1.123456789012345E-17 0 -> 1.123456789012345E-17
fmax361458 fma 1 1.123456789012345E-18 0 -> 1.123456789012345E-18
fmax361459 fma 1 1.123456789012345E-19 0 -> 1.123456789012345E-19
-- same, Es on the 0
fmax361460 fma 1 1.123456789012345 0E-0 -> 1.123456789012345
fmax361461 fma 1 1.123456789012345 0E-1 -> 1.123456789012345
fmax361462 fma 1 1.123456789012345 0E-2 -> 1.123456789012345
fmax361463 fma 1 1.123456789012345 0E-3 -> 1.123456789012345
fmax361464 fma 1 1.123456789012345 0E-4 -> 1.123456789012345
fmax361465 fma 1 1.123456789012345 0E-5 -> 1.123456789012345
fmax361466 fma 1 1.123456789012345 0E-6 -> 1.123456789012345
fmax361467 fma 1 1.123456789012345 0E-7 -> 1.123456789012345
fmax361468 fma 1 1.123456789012345 0E-8 -> 1.123456789012345
fmax361469 fma 1 1.123456789012345 0E-9 -> 1.123456789012345
fmax361470 fma 1 1.123456789012345 0E-10 -> 1.123456789012345
fmax361471 fma 1 1.123456789012345 0E-11 -> 1.123456789012345
fmax361472 fma 1 1.123456789012345 0E-12 -> 1.123456789012345
fmax361473 fma 1 1.123456789012345 0E-13 -> 1.123456789012345
fmax361474 fma 1 1.123456789012345 0E-14 -> 1.123456789012345
fmax361475 fma 1 1.123456789012345 0E-15 -> 1.123456789012345
-- next four flag Rounded because the 0 extends the result
fmax361476 fma 1 1.123456789012345 0E-16 -> 1.123456789012345 Rounded
fmax361477 fma 1 1.123456789012345 0E-17 -> 1.123456789012345 Rounded
fmax361478 fma 1 1.123456789012345 0E-18 -> 1.123456789012345 Rounded
fmax361479 fma 1 1.123456789012345 0E-19 -> 1.123456789012345 Rounded
-- sum of two opposite-sign operands is exactly 0 and floor => -0
rounding: half_up
-- exact zeros from zeros
fmax361500 fma 1 0 0E-19 -> 0E-19
fmax361501 fma 1 -0 0E-19 -> 0E-19
fmax361502 fma 1 0 -0E-19 -> 0E-19
fmax361503 fma 1 -0 -0E-19 -> -0E-19
fmax361504 fma 1 0E-400 0E-19 -> 0E-398 Clamped
fmax361505 fma 1 -0E-400 0E-19 -> 0E-398 Clamped
fmax361506 fma 1 0E-400 -0E-19 -> 0E-398 Clamped
fmax361507 fma 1 -0E-400 -0E-19 -> -0E-398 Clamped
-- inexact zeros
fmax361511 fma 1 1E-401 1E-400 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361512 fma 1 -1E-401 1E-400 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361513 fma 1 1E-401 -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361514 fma 1 -1E-401 -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
-- some exact zeros from non-zeros
fmax361515 fma 1 1E-401 1E-401 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361516 fma 1 -1E-401 1E-401 -> 0E-398 Clamped
fmax361517 fma 1 1E-401 -1E-401 -> 0E-398 Clamped
fmax361518 fma 1 -1E-401 -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
rounding: half_down
-- exact zeros from zeros
fmax361520 fma 1 0 0E-19 -> 0E-19
fmax361521 fma 1 -0 0E-19 -> 0E-19
fmax361522 fma 1 0 -0E-19 -> 0E-19
fmax361523 fma 1 -0 -0E-19 -> -0E-19
fmax361524 fma 1 0E-400 0E-19 -> 0E-398 Clamped
fmax361525 fma 1 -0E-400 0E-19 -> 0E-398 Clamped
fmax361526 fma 1 0E-400 -0E-19 -> 0E-398 Clamped
fmax361527 fma 1 -0E-400 -0E-19 -> -0E-398 Clamped
-- inexact zeros
fmax361531 fma 1 1E-401 1E-400 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361532 fma 1 -1E-401 1E-400 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361533 fma 1 1E-401 -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361534 fma 1 -1E-401 -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
-- some exact zeros from non-zeros
fmax361535 fma 1 1E-401 1E-401 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361536 fma 1 -1E-401 1E-401 -> 0E-398 Clamped
fmax361537 fma 1 1E-401 -1E-401 -> 0E-398 Clamped
fmax361538 fma 1 -1E-401 -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
rounding: half_even
-- exact zeros from zeros
fmax361540 fma 1 0 0E-19 -> 0E-19
fmax361541 fma 1 -0 0E-19 -> 0E-19
fmax361542 fma 1 0 -0E-19 -> 0E-19
fmax361543 fma 1 -0 -0E-19 -> -0E-19
fmax361544 fma 1 0E-400 0E-19 -> 0E-398 Clamped
fmax361545 fma 1 -0E-400 0E-19 -> 0E-398 Clamped
fmax361546 fma 1 0E-400 -0E-19 -> 0E-398 Clamped
fmax361547 fma 1 -0E-400 -0E-19 -> -0E-398 Clamped
-- inexact zeros
fmax361551 fma 1 1E-401 1E-400 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361552 fma 1 -1E-401 1E-400 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361553 fma 1 1E-401 -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361554 fma 1 -1E-401 -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
-- some exact zeros from non-zeros
fmax361555 fma 1 1E-401 1E-401 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361556 fma 1 -1E-401 1E-401 -> 0E-398 Clamped
fmax361557 fma 1 1E-401 -1E-401 -> 0E-398 Clamped
fmax361558 fma 1 -1E-401 -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
rounding: up
-- exact zeros from zeros
fmax361560 fma 1 0 0E-19 -> 0E-19
fmax361561 fma 1 -0 0E-19 -> 0E-19
fmax361562 fma 1 0 -0E-19 -> 0E-19
fmax361563 fma 1 -0 -0E-19 -> -0E-19
fmax361564 fma 1 0E-400 0E-19 -> 0E-398 Clamped
fmax361565 fma 1 -0E-400 0E-19 -> 0E-398 Clamped
fmax361566 fma 1 0E-400 -0E-19 -> 0E-398 Clamped
fmax361567 fma 1 -0E-400 -0E-19 -> -0E-398 Clamped
-- inexact zeros
fmax361571 fma 1 1E-401 1E-400 -> 1E-398 Subnormal Inexact Rounded Underflow
fmax361572 fma 1 -1E-401 1E-400 -> 1E-398 Subnormal Inexact Rounded Underflow
fmax361573 fma 1 1E-401 -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow
fmax361574 fma 1 -1E-401 -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow
-- some exact zeros from non-zeros
fmax361575 fma 1 1E-401 1E-401 -> 1E-398 Subnormal Inexact Rounded Underflow
fmax361576 fma 1 -1E-401 1E-401 -> 0E-398 Clamped
fmax361577 fma 1 1E-401 -1E-401 -> 0E-398 Clamped
fmax361578 fma 1 -1E-401 -1E-401 -> -1E-398 Subnormal Inexact Rounded Underflow
rounding: down
-- exact zeros from zeros
fmax361580 fma 1 0 0E-19 -> 0E-19
fmax361581 fma 1 -0 0E-19 -> 0E-19
fmax361582 fma 1 0 -0E-19 -> 0E-19
fmax361583 fma 1 -0 -0E-19 -> -0E-19
fmax361584 fma 1 0E-400 0E-19 -> 0E-398 Clamped
fmax361585 fma 1 -0E-400 0E-19 -> 0E-398 Clamped
fmax361586 fma 1 0E-400 -0E-19 -> 0E-398 Clamped
fmax361587 fma 1 -0E-400 -0E-19 -> -0E-398 Clamped
-- inexact zeros
fmax361591 fma 1 1E-401 1E-400 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361592 fma 1 -1E-401 1E-400 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361593 fma 1 1E-401 -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361594 fma 1 -1E-401 -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
-- some exact zeros from non-zeros
fmax361595 fma 1 1E-401 1E-401 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361596 fma 1 -1E-401 1E-401 -> 0E-398 Clamped
fmax361597 fma 1 1E-401 -1E-401 -> 0E-398 Clamped
fmax361598 fma 1 -1E-401 -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
rounding: ceiling
-- exact zeros from zeros
fmax361600 fma 1 0 0E-19 -> 0E-19
fmax361601 fma 1 -0 0E-19 -> 0E-19
fmax361602 fma 1 0 -0E-19 -> 0E-19
fmax361603 fma 1 -0 -0E-19 -> -0E-19
fmax361604 fma 1 0E-400 0E-19 -> 0E-398 Clamped
fmax361605 fma 1 -0E-400 0E-19 -> 0E-398 Clamped
fmax361606 fma 1 0E-400 -0E-19 -> 0E-398 Clamped
fmax361607 fma 1 -0E-400 -0E-19 -> -0E-398 Clamped
-- inexact zeros
fmax361611 fma 1 1E-401 1E-400 -> 1E-398 Subnormal Inexact Rounded Underflow
fmax361612 fma 1 -1E-401 1E-400 -> 1E-398 Subnormal Inexact Rounded Underflow
fmax361613 fma 1 1E-401 -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361614 fma 1 -1E-401 -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
-- some exact zeros from non-zeros
fmax361615 fma 1 1E-401 1E-401 -> 1E-398 Subnormal Inexact Rounded Underflow
fmax361616 fma 1 -1E-401 1E-401 -> 0E-398 Clamped
fmax361617 fma 1 1E-401 -1E-401 -> 0E-398 Clamped
fmax361618 fma 1 -1E-401 -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
-- and the extra-special ugly case; unusual minuses marked by -- *
rounding: floor
-- exact zeros from zeros
fmax361620 fma 1 0 0E-19 -> 0E-19
fmax361621 fma 1 -0 0E-19 -> -0E-19 -- *
fmax361622 fma 1 0 -0E-19 -> -0E-19 -- *
fmax361623 fma 1 -0 -0E-19 -> -0E-19
fmax361624 fma 1 0E-400 0E-19 -> 0E-398 Clamped
fmax361625 fma 1 -0E-400 0E-19 -> -0E-398 Clamped -- *
fmax361626 fma 1 0E-400 -0E-19 -> -0E-398 Clamped -- *
fmax361627 fma 1 -0E-400 -0E-19 -> -0E-398 Clamped
-- inexact zeros
fmax361631 fma 1 1E-401 1E-400 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361632 fma 1 -1E-401 1E-400 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361633 fma 1 1E-401 -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow
fmax361634 fma 1 -1E-401 -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow
-- some exact zeros from non-zeros
fmax361635 fma 1 1E-401 1E-401 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361636 fma 1 -1E-401 1E-401 -> -0E-398 Clamped -- *
fmax361637 fma 1 1E-401 -1E-401 -> -0E-398 Clamped -- *
fmax361638 fma 1 -1E-401 -1E-401 -> -1E-398 Subnormal Inexact Rounded Underflow
-- Examples from SQL proposal (Krishna Kulkarni)
fmax361701 fma 1 130E-2 120E-2 -> 2.50
fmax361702 fma 1 130E-2 12E-1 -> 2.50
fmax361703 fma 1 130E-2 1E0 -> 2.30
fmax361704 fma 1 1E2 1E4 -> 1.01E+4
fmax361705 subtract 130E-2 120E-2 -> 0.10
fmax361706 subtract 130E-2 12E-1 -> 0.10
fmax361707 subtract 130E-2 1E0 -> 0.30
fmax361708 subtract 1E2 1E4 -> -9.9E+3
-- Gappy coefficients; check residue handling even with full coefficient gap
rounding: half_even
fmax362001 fma 1 1234567890123456 1 -> 1234567890123457
fmax362002 fma 1 1234567890123456 0.6 -> 1234567890123457 Inexact Rounded
fmax362003 fma 1 1234567890123456 0.06 -> 1234567890123456 Inexact Rounded
fmax362004 fma 1 1234567890123456 6E-3 -> 1234567890123456 Inexact Rounded
fmax362005 fma 1 1234567890123456 6E-4 -> 1234567890123456 Inexact Rounded
fmax362006 fma 1 1234567890123456 6E-5 -> 1234567890123456 Inexact Rounded
fmax362007 fma 1 1234567890123456 6E-6 -> 1234567890123456 Inexact Rounded
fmax362008 fma 1 1234567890123456 6E-7 -> 1234567890123456 Inexact Rounded
fmax362009 fma 1 1234567890123456 6E-8 -> 1234567890123456 Inexact Rounded
fmax362010 fma 1 1234567890123456 6E-9 -> 1234567890123456 Inexact Rounded
fmax362011 fma 1 1234567890123456 6E-10 -> 1234567890123456 Inexact Rounded
fmax362012 fma 1 1234567890123456 6E-11 -> 1234567890123456 Inexact Rounded
fmax362013 fma 1 1234567890123456 6E-12 -> 1234567890123456 Inexact Rounded
fmax362014 fma 1 1234567890123456 6E-13 -> 1234567890123456 Inexact Rounded
fmax362015 fma 1 1234567890123456 6E-14 -> 1234567890123456 Inexact Rounded
fmax362016 fma 1 1234567890123456 6E-15 -> 1234567890123456 Inexact Rounded
fmax362017 fma 1 1234567890123456 6E-16 -> 1234567890123456 Inexact Rounded
fmax362018 fma 1 1234567890123456 6E-17 -> 1234567890123456 Inexact Rounded
fmax362019 fma 1 1234567890123456 6E-18 -> 1234567890123456 Inexact Rounded
fmax362020 fma 1 1234567890123456 6E-19 -> 1234567890123456 Inexact Rounded
fmax362021 fma 1 1234567890123456 6E-20 -> 1234567890123456 Inexact Rounded
-- widening second argument at gap
fmax362030 fma 1 12345678 1 -> 12345679
fmax362031 fma 1 12345678 0.1 -> 12345678.1
fmax362032 fma 1 12345678 0.12 -> 12345678.12
fmax362033 fma 1 12345678 0.123 -> 12345678.123
fmax362034 fma 1 12345678 0.1234 -> 12345678.1234
fmax362035 fma 1 12345678 0.12345 -> 12345678.12345
fmax362036 fma 1 12345678 0.123456 -> 12345678.123456
fmax362037 fma 1 12345678 0.1234567 -> 12345678.1234567
fmax362038 fma 1 12345678 0.12345678 -> 12345678.12345678
fmax362039 fma 1 12345678 0.123456789 -> 12345678.12345679 Inexact Rounded
fmax362040 fma 1 12345678 0.123456785 -> 12345678.12345678 Inexact Rounded
fmax362041 fma 1 12345678 0.1234567850 -> 12345678.12345678 Inexact Rounded
fmax362042 fma 1 12345678 0.1234567851 -> 12345678.12345679 Inexact Rounded
fmax362043 fma 1 12345678 0.12345678501 -> 12345678.12345679 Inexact Rounded
fmax362044 fma 1 12345678 0.123456785001 -> 12345678.12345679 Inexact Rounded
fmax362045 fma 1 12345678 0.1234567850001 -> 12345678.12345679 Inexact Rounded
fmax362046 fma 1 12345678 0.12345678500001 -> 12345678.12345679 Inexact Rounded
fmax362047 fma 1 12345678 0.123456785000001 -> 12345678.12345679 Inexact Rounded
fmax362048 fma 1 12345678 0.1234567850000001 -> 12345678.12345679 Inexact Rounded
fmax362049 fma 1 12345678 0.1234567850000000 -> 12345678.12345678 Inexact Rounded
-- 90123456
rounding: half_even
fmax362050 fma 1 12345678 0.0234567750000000 -> 12345678.02345678 Inexact Rounded
fmax362051 fma 1 12345678 0.0034567750000000 -> 12345678.00345678 Inexact Rounded
fmax362052 fma 1 12345678 0.0004567750000000 -> 12345678.00045678 Inexact Rounded
fmax362053 fma 1 12345678 0.0000567750000000 -> 12345678.00005678 Inexact Rounded
fmax362054 fma 1 12345678 0.0000067750000000 -> 12345678.00000678 Inexact Rounded
fmax362055 fma 1 12345678 0.0000007750000000 -> 12345678.00000078 Inexact Rounded
fmax362056 fma 1 12345678 0.0000000750000000 -> 12345678.00000008 Inexact Rounded
fmax362057 fma 1 12345678 0.0000000050000000 -> 12345678.00000000 Inexact Rounded
fmax362060 fma 1 12345678 0.0234567750000001 -> 12345678.02345678 Inexact Rounded
fmax362061 fma 1 12345678 0.0034567750000001 -> 12345678.00345678 Inexact Rounded
fmax362062 fma 1 12345678 0.0004567750000001 -> 12345678.00045678 Inexact Rounded
fmax362063 fma 1 12345678 0.0000567750000001 -> 12345678.00005678 Inexact Rounded
fmax362064 fma 1 12345678 0.0000067750000001 -> 12345678.00000678 Inexact Rounded
fmax362065 fma 1 12345678 0.0000007750000001 -> 12345678.00000078 Inexact Rounded
fmax362066 fma 1 12345678 0.0000000750000001 -> 12345678.00000008 Inexact Rounded
fmax362067 fma 1 12345678 0.0000000050000001 -> 12345678.00000001 Inexact Rounded
-- far-out residues (full coefficient gap is 16+15 digits)
rounding: up
fmax362070 fma 1 12345678 1E-8 -> 12345678.00000001
fmax362071 fma 1 12345678 1E-9 -> 12345678.00000001 Inexact Rounded
fmax362072 fma 1 12345678 1E-10 -> 12345678.00000001 Inexact Rounded
fmax362073 fma 1 12345678 1E-11 -> 12345678.00000001 Inexact Rounded
fmax362074 fma 1 12345678 1E-12 -> 12345678.00000001 Inexact Rounded
fmax362075 fma 1 12345678 1E-13 -> 12345678.00000001 Inexact Rounded
fmax362076 fma 1 12345678 1E-14 -> 12345678.00000001 Inexact Rounded
fmax362077 fma 1 12345678 1E-15 -> 12345678.00000001 Inexact Rounded
fmax362078 fma 1 12345678 1E-16 -> 12345678.00000001 Inexact Rounded
fmax362079 fma 1 12345678 1E-17 -> 12345678.00000001 Inexact Rounded
fmax362080 fma 1 12345678 1E-18 -> 12345678.00000001 Inexact Rounded
fmax362081 fma 1 12345678 1E-19 -> 12345678.00000001 Inexact Rounded
fmax362082 fma 1 12345678 1E-20 -> 12345678.00000001 Inexact Rounded
fmax362083 fma 1 12345678 1E-25 -> 12345678.00000001 Inexact Rounded
fmax362084 fma 1 12345678 1E-30 -> 12345678.00000001 Inexact Rounded
fmax362085 fma 1 12345678 1E-31 -> 12345678.00000001 Inexact Rounded
fmax362086 fma 1 12345678 1E-32 -> 12345678.00000001 Inexact Rounded
fmax362087 fma 1 12345678 1E-33 -> 12345678.00000001 Inexact Rounded
fmax362088 fma 1 12345678 1E-34 -> 12345678.00000001 Inexact Rounded
fmax362089 fma 1 12345678 1E-35 -> 12345678.00000001 Inexact Rounded
-- payload decapitate x3
precision: 5
fmax363000 fma 1 1 sNaN1234567890 -> NaN67890 Invalid_operation
fmax363001 fma 1 -sNaN1234512345 1 -> -NaN12345 Invalid_operation
fmax363002 fma sNaN1234554321 1 1 -> NaN54321 Invalid_operation
-- Null tests
fmax39990 fma 1 10 # -> NaN Invalid_operation
fmax39991 fma 1 # 10 -> NaN Invalid_operation