Merged revisions 58095-58132,58136-58148,58151-58197 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r58096 | brett.cannon | 2007-09-10 23:38:27 +0200 (Mon, 10 Sep 2007) | 4 lines
Fix a possible segfault from recursing too deep to get the repr of a list.
Closes issue #1096.
........
r58097 | bill.janssen | 2007-09-10 23:51:02 +0200 (Mon, 10 Sep 2007) | 33 lines
More work on SSL support.
* Much expanded test suite:
All protocols tested against all other protocols.
All protocols tested with all certificate options.
Tests for bad key and bad cert.
Test of STARTTLS functionality.
Test of RAND_* functions.
* Fixes for threading/malloc bug.
* Issue 1065 fixed:
sslsocket class renamed to SSLSocket.
sslerror class renamed to SSLError.
Function "wrap_socket" now used to wrap an existing socket.
* Issue 1583946 finally fixed:
Support for subjectAltName added.
Subject name now returned as proper DN list of RDNs.
* SSLError exported from socket as "sslerror".
* RAND_* functions properly exported from ssl.py.
* Documentation improved:
Example of how to create a self-signed certificate.
Better indexing.
........
r58098 | guido.van.rossum | 2007-09-11 00:02:25 +0200 (Tue, 11 Sep 2007) | 9 lines
Patch # 1140 (my code, approved by Effbot).
Make sure the type of the return value of re.sub(x, y, z) is the type
of y+x (i.e. unicode if either is unicode, str if they are both str)
even if there are no substitutions or if x==z (which triggered various
special cases in join_list()).
Could be backported to 2.5; no need to port to 3.0.
........
r58099 | guido.van.rossum | 2007-09-11 00:36:02 +0200 (Tue, 11 Sep 2007) | 8 lines
Patch # 1026 by Benjamin Aranguren (with Alex Martelli):
Backport abc.py and isinstance/issubclass overloading to 2.6.
I had to backport test_typechecks.py myself, and make one small change
to abc.py to avoid duplicate work when x.__class__ and type(x) are the
same.
........
r58100 | bill.janssen | 2007-09-11 01:41:24 +0200 (Tue, 11 Sep 2007) | 3 lines
A better way of finding an open port to test with.
........
r58101 | bill.janssen | 2007-09-11 03:09:19 +0200 (Tue, 11 Sep 2007) | 4 lines
Make sure test_ssl doesn't reference the ssl module in a
context where it can't be imported.
........
r58102 | bill.janssen | 2007-09-11 04:42:07 +0200 (Tue, 11 Sep 2007) | 3 lines
Fix some documentation bugs.
........
r58103 | nick.coghlan | 2007-09-11 16:01:18 +0200 (Tue, 11 Sep 2007) | 1 line
Always use the -E flag when spawning subprocesses in test_cmd_line (Issue 1056)
........
r58106 | thomas.heller | 2007-09-11 21:17:48 +0200 (Tue, 11 Sep 2007) | 3 lines
Disable some tests that fail on the 'ppc Debian unstable' buildbot to
find out if they cause the segfault on the 'alpha Debian' machine.
........
r58108 | brett.cannon | 2007-09-11 23:02:28 +0200 (Tue, 11 Sep 2007) | 6 lines
Generators had their throw() method allowing string exceptions. That's a
no-no.
Fixes issue #1147. Need to fix 2.5 to raise a proper warning if a string
exception is passed in.
........
r58112 | georg.brandl | 2007-09-12 20:03:51 +0200 (Wed, 12 Sep 2007) | 3 lines
New documentation page for the bdb module.
(This doesn't need to be merged to Py3k.)
........
r58114 | georg.brandl | 2007-09-12 20:05:57 +0200 (Wed, 12 Sep 2007) | 2 lines
Bug #1152: use non-deprecated name in example.
........
r58115 | georg.brandl | 2007-09-12 20:08:33 +0200 (Wed, 12 Sep 2007) | 2 lines
Fix #1122: wrong return type documented for various _Size() functions.
........
r58117 | georg.brandl | 2007-09-12 20:10:56 +0200 (Wed, 12 Sep 2007) | 2 lines
Fix #1139: PyFile_Encoding really is PyFile_SetEncoding.
........
r58119 | georg.brandl | 2007-09-12 20:29:18 +0200 (Wed, 12 Sep 2007) | 2 lines
bug #1154: release memory allocated by "es" PyArg_ParseTuple format specifier.
........
r58121 | bill.janssen | 2007-09-12 20:52:05 +0200 (Wed, 12 Sep 2007) | 1 line
root certificate for https://svn.python.org/, used in test_ssl
........
r58122 | georg.brandl | 2007-09-12 21:00:07 +0200 (Wed, 12 Sep 2007) | 3 lines
Bug #1153: repr.repr() now doesn't require set and dictionary items
to be orderable to properly represent them.
........
r58125 | georg.brandl | 2007-09-12 21:29:28 +0200 (Wed, 12 Sep 2007) | 4 lines
#1120: put explicit version in the shebang lines of pydoc, idle
and smtpd.py scripts that are installed by setup.py. That way, they
work when only "make altinstall" is used.
........
r58139 | mark.summerfield | 2007-09-13 16:54:30 +0200 (Thu, 13 Sep 2007) | 9 lines
Replaced variable o with obj in operator.rst because o is easy to
confuse.
Added a note about Python 3's collections.Mapping etc., above section
that describes isMappingType() etc.
Added xrefs between os, os.path, fileinput, and open().
........
r58143 | facundo.batista | 2007-09-13 20:13:15 +0200 (Thu, 13 Sep 2007) | 7 lines
Merged the decimal-branch (revisions 54886 to 58140). Decimal is now
fully updated to the latests Decimal Specification (v1.66) and the
latests test cases (v2.56).
Thanks to Mark Dickinson for all his help during this process.
........
r58145 | facundo.batista | 2007-09-13 20:42:09 +0200 (Thu, 13 Sep 2007) | 7 lines
Put the parameter watchexp back in (changed watchexp from an int
to a bool). Also second argument to watchexp is now converted
to Decimal, just as with all the other two-argument operations.
Thanks Mark Dickinson.
........
r58147 | andrew.kuchling | 2007-09-14 00:49:34 +0200 (Fri, 14 Sep 2007) | 1 line
Add various items
........
r58148 | andrew.kuchling | 2007-09-14 00:50:10 +0200 (Fri, 14 Sep 2007) | 1 line
Make target unique
........
r58154 | facundo.batista | 2007-09-14 20:58:34 +0200 (Fri, 14 Sep 2007) | 3 lines
Included the new functions, and new descriptions.
........
r58155 | thomas.heller | 2007-09-14 21:40:35 +0200 (Fri, 14 Sep 2007) | 2 lines
ctypes.util.find_library uses dump(1) instead of objdump(1) on Solaris.
Fixes issue #1777530; will backport to release25-maint.
........
r58159 | facundo.batista | 2007-09-14 23:29:52 +0200 (Fri, 14 Sep 2007) | 3 lines
Some additions (examples and a bit on the tutorial).
........
r58160 | georg.brandl | 2007-09-15 18:53:36 +0200 (Sat, 15 Sep 2007) | 2 lines
Remove bdb from the "undocumented modules" list.
........
r58164 | bill.janssen | 2007-09-17 00:06:00 +0200 (Mon, 17 Sep 2007) | 15 lines
Add support for asyncore server-side SSL support. This requires
adding the 'makefile' method to ssl.SSLSocket, and importing the
requisite fakefile class from socket.py, and making the appropriate
changes to it to make it use the SSL connection.
Added sample HTTPS server to test_ssl.py, and test that uses it.
Change SSL tests to use https://svn.python.org/, instead of
www.sf.net and pop.gmail.com.
Added utility function to ssl module, get_server_certificate,
to wrap up the several things to be done to pull a certificate
from a remote server.
........
r58173 | bill.janssen | 2007-09-17 01:16:46 +0200 (Mon, 17 Sep 2007) | 1 line
use binary mode when reading files for testAsyncore to make Windows happy
........
r58175 | raymond.hettinger | 2007-09-17 02:55:00 +0200 (Mon, 17 Sep 2007) | 7 lines
Sync-up named tuples with the latest version of the ASPN recipe.
Allows optional commas in the field-name spec (help when named tuples are used in conjuction with sql queries).
Adds the __fields__ attribute for introspection and to support conversion to dictionary form.
Adds a __replace__() method similar to str.replace() but using a named field as a target.
Clean-up spelling and presentation in doc-strings.
........
r58176 | brett.cannon | 2007-09-17 05:28:34 +0200 (Mon, 17 Sep 2007) | 5 lines
Add a bunch of GIL release/acquire points in tp_print implementations and for
PyObject_Print().
Closes issue #1164.
........
r58177 | sean.reifschneider | 2007-09-17 07:45:04 +0200 (Mon, 17 Sep 2007) | 2 lines
issue1597011: Fix for bz2 module corner-case error due to error checking bug.
........
r58180 | facundo.batista | 2007-09-17 18:26:50 +0200 (Mon, 17 Sep 2007) | 3 lines
Decimal is updated, :)
........
r58181 | facundo.batista | 2007-09-17 19:30:13 +0200 (Mon, 17 Sep 2007) | 5 lines
The methods always return Decimal classes, even if they're
executed through a subclass (thanks Mark Dickinson).
Added a bit of testing for this.
........
r58183 | sean.reifschneider | 2007-09-17 22:53:21 +0200 (Mon, 17 Sep 2007) | 2 lines
issue1082: Fixing platform and system for Vista.
........
r58185 | andrew.kuchling | 2007-09-18 03:36:16 +0200 (Tue, 18 Sep 2007) | 1 line
Add item; sort properly
........
r58186 | raymond.hettinger | 2007-09-18 05:33:19 +0200 (Tue, 18 Sep 2007) | 1 line
Handle corner cased on 0-tuples and 1-tuples. Add verbose option so people can see how it works.
........
r58192 | georg.brandl | 2007-09-18 09:24:40 +0200 (Tue, 18 Sep 2007) | 2 lines
A bit of reordering, also show more subheadings in the lang ref index.
........
r58193 | facundo.batista | 2007-09-18 18:53:18 +0200 (Tue, 18 Sep 2007) | 4 lines
Speed up of the various division operations (remainder, divide,
divideint and divmod). Thanks Mark Dickinson.
........
r58197 | raymond.hettinger | 2007-09-19 00:18:02 +0200 (Wed, 19 Sep 2007) | 1 line
Cleanup docs for NamedTuple.
........
2007-09-19 00:06:30 -03:00
|
|
|
------------------------------------------------------------------------
|
|
|
|
-- 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 --
|
|
|
|
-- mfc@uk.ibm.com --
|
|
|
|
------------------------------------------------------------------------
|
Merged revisions 59107-59186 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
(Note: some conflicts in the PCbuild9 directory reverted. Sorry Christian!)
........
r59120 | christian.heimes | 2007-11-22 03:21:16 -0800 (Thu, 22 Nov 2007) | 3 lines
Backport of the PCbuild9 directory from the py3k branch.
I've finished the last task for the PCbuild9 directory today. I don't think there is much left to do. Now you can all play around with the shiny new VS 2008 and try the PGO builds. I was able to get a speed improvement of about 10% on py3k.
Have fun! :)
........
r59126 | brett.cannon | 2007-11-22 16:06:51 -0800 (Thu, 22 Nov 2007) | 2 lines
Fix a bug in the test for using __loader__.get_data().
........
r59131 | christian.heimes | 2007-11-22 23:05:03 -0800 (Thu, 22 Nov 2007) | 1 line
Backport of PCbuild9 fixes from py3k r59130
........
r59132 | christian.heimes | 2007-11-23 01:10:36 -0800 (Fri, 23 Nov 2007) | 2 lines
Applied patch #1754273 and #1754271 from Thomas Glee
The patches are adding deprecation warnings for back ticks and <>
........
r59133 | christian.heimes | 2007-11-23 04:12:02 -0800 (Fri, 23 Nov 2007) | 2 lines
Fixed problems in the last commit. Filenames and line numbers weren't reported correctly.
Backquotes still don't report the correct file. The AST nodes only contain the line number but not the file name.
........
r59134 | christian.heimes | 2007-11-23 04:16:35 -0800 (Fri, 23 Nov 2007) | 1 line
How did the comment get there?
........
r59135 | christian.heimes | 2007-11-23 05:25:31 -0800 (Fri, 23 Nov 2007) | 1 line
And yet another fix for the patch. Paul Moore has send me a note that I've missed a declaration. The additional code has moved the declaration in the middle of the block.
........
r59136 | andrew.kuchling | 2007-11-23 05:37:39 -0800 (Fri, 23 Nov 2007) | 1 line
Add item
........
r59137 | skip.montanaro | 2007-11-23 09:08:35 -0800 (Fri, 23 Nov 2007) | 2 lines
Make trace and doctest play nice together (issue 1429818). Will backport.
........
r59139 | skip.montanaro | 2007-11-23 09:12:47 -0800 (Fri, 23 Nov 2007) | 1 line
issue 1429818
........
r59144 | facundo.batista | 2007-11-23 09:59:00 -0800 (Fri, 23 Nov 2007) | 10 lines
Major change in the internal structure of the Decimal
number: now it does not store the mantissa as a tuple
of numbers, but as a string.
This avoids a lot of conversions, and achieves a
speedup of 40%. The API remains intact.
Thanks Mark Dickinson.
........
r59146 | facundo.batista | 2007-11-23 10:14:50 -0800 (Fri, 23 Nov 2007) | 3 lines
Test cases from Cowlishaw, v2.57. All are pased cleanly.
........
r59156 | christian.heimes | 2007-11-23 17:36:02 -0800 (Fri, 23 Nov 2007) | 2 lines
Added filename to compiling struct based on Martin's suggestion.
I'm wonder why I was trying to add the filename to the node all the time. The compiling struct is more obvious.
........
r59158 | christian.heimes | 2007-11-23 17:53:59 -0800 (Fri, 23 Nov 2007) | 2 lines
Backport of fixes from py3k branch
svn merge -r59131:HEAD ../../py3k/PCbuild9/ .
........
r59159 | skip.montanaro | 2007-11-23 20:29:08 -0800 (Fri, 23 Nov 2007) | 1 line
revert change that breaks test_doctest (which I forgot to run - sorry)
........
r59162 | skip.montanaro | 2007-11-23 20:31:15 -0800 (Fri, 23 Nov 2007) | 1 line
revert
........
r59164 | georg.brandl | 2007-11-24 03:31:46 -0800 (Sat, 24 Nov 2007) | 3 lines
#1344: document that you need to open std{in,out,err} with PIPE if you want
communicate() to work as described.
........
r59165 | georg.brandl | 2007-11-24 03:39:13 -0800 (Sat, 24 Nov 2007) | 2 lines
#1467: fix documentation for TestResult.add{Error,Failure}.
........
r59166 | georg.brandl | 2007-11-24 03:42:14 -0800 (Sat, 24 Nov 2007) | 2 lines
#1355: remove mention of PyXML from xml.dom docs.
........
r59169 | amaury.forgeotdarc | 2007-11-24 05:20:22 -0800 (Sat, 24 Nov 2007) | 2 lines
Warning "<> not supported in 3.x" should be enabled only when the -3 option is set.
........
r59170 | amaury.forgeotdarc | 2007-11-24 05:44:17 -0800 (Sat, 24 Nov 2007) | 3 lines
Issue #1445: Fix a SystemError when accessing the ``cell_contents``
attribute of an empty cell object. Now a ValueError is raised.
........
r59172 | georg.brandl | 2007-11-24 05:56:09 -0800 (Sat, 24 Nov 2007) | 3 lines
#1735632: add O_NOATIME constant to os module.
Also document a few other O_ constants that were missing from documentation.
........
r59173 | skip.montanaro | 2007-11-24 06:30:47 -0800 (Sat, 24 Nov 2007) | 1 line
back in these go - thanks to Titus Brown for the fix
........
r59176 | martin.v.loewis | 2007-11-24 10:33:40 -0800 (Sat, 24 Nov 2007) | 2 lines
Bug #1494: Document that appendChild removes first.
........
r59186 | guido.van.rossum | 2007-11-26 14:16:49 -0800 (Mon, 26 Nov 2007) | 2 lines
A thread-less variant of brownian.py, submitted by Michele Simoniato.
........
2007-11-26 19:23:18 -04:00
|
|
|
version: 2.57
|
Merged revisions 58095-58132,58136-58148,58151-58197 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r58096 | brett.cannon | 2007-09-10 23:38:27 +0200 (Mon, 10 Sep 2007) | 4 lines
Fix a possible segfault from recursing too deep to get the repr of a list.
Closes issue #1096.
........
r58097 | bill.janssen | 2007-09-10 23:51:02 +0200 (Mon, 10 Sep 2007) | 33 lines
More work on SSL support.
* Much expanded test suite:
All protocols tested against all other protocols.
All protocols tested with all certificate options.
Tests for bad key and bad cert.
Test of STARTTLS functionality.
Test of RAND_* functions.
* Fixes for threading/malloc bug.
* Issue 1065 fixed:
sslsocket class renamed to SSLSocket.
sslerror class renamed to SSLError.
Function "wrap_socket" now used to wrap an existing socket.
* Issue 1583946 finally fixed:
Support for subjectAltName added.
Subject name now returned as proper DN list of RDNs.
* SSLError exported from socket as "sslerror".
* RAND_* functions properly exported from ssl.py.
* Documentation improved:
Example of how to create a self-signed certificate.
Better indexing.
........
r58098 | guido.van.rossum | 2007-09-11 00:02:25 +0200 (Tue, 11 Sep 2007) | 9 lines
Patch # 1140 (my code, approved by Effbot).
Make sure the type of the return value of re.sub(x, y, z) is the type
of y+x (i.e. unicode if either is unicode, str if they are both str)
even if there are no substitutions or if x==z (which triggered various
special cases in join_list()).
Could be backported to 2.5; no need to port to 3.0.
........
r58099 | guido.van.rossum | 2007-09-11 00:36:02 +0200 (Tue, 11 Sep 2007) | 8 lines
Patch # 1026 by Benjamin Aranguren (with Alex Martelli):
Backport abc.py and isinstance/issubclass overloading to 2.6.
I had to backport test_typechecks.py myself, and make one small change
to abc.py to avoid duplicate work when x.__class__ and type(x) are the
same.
........
r58100 | bill.janssen | 2007-09-11 01:41:24 +0200 (Tue, 11 Sep 2007) | 3 lines
A better way of finding an open port to test with.
........
r58101 | bill.janssen | 2007-09-11 03:09:19 +0200 (Tue, 11 Sep 2007) | 4 lines
Make sure test_ssl doesn't reference the ssl module in a
context where it can't be imported.
........
r58102 | bill.janssen | 2007-09-11 04:42:07 +0200 (Tue, 11 Sep 2007) | 3 lines
Fix some documentation bugs.
........
r58103 | nick.coghlan | 2007-09-11 16:01:18 +0200 (Tue, 11 Sep 2007) | 1 line
Always use the -E flag when spawning subprocesses in test_cmd_line (Issue 1056)
........
r58106 | thomas.heller | 2007-09-11 21:17:48 +0200 (Tue, 11 Sep 2007) | 3 lines
Disable some tests that fail on the 'ppc Debian unstable' buildbot to
find out if they cause the segfault on the 'alpha Debian' machine.
........
r58108 | brett.cannon | 2007-09-11 23:02:28 +0200 (Tue, 11 Sep 2007) | 6 lines
Generators had their throw() method allowing string exceptions. That's a
no-no.
Fixes issue #1147. Need to fix 2.5 to raise a proper warning if a string
exception is passed in.
........
r58112 | georg.brandl | 2007-09-12 20:03:51 +0200 (Wed, 12 Sep 2007) | 3 lines
New documentation page for the bdb module.
(This doesn't need to be merged to Py3k.)
........
r58114 | georg.brandl | 2007-09-12 20:05:57 +0200 (Wed, 12 Sep 2007) | 2 lines
Bug #1152: use non-deprecated name in example.
........
r58115 | georg.brandl | 2007-09-12 20:08:33 +0200 (Wed, 12 Sep 2007) | 2 lines
Fix #1122: wrong return type documented for various _Size() functions.
........
r58117 | georg.brandl | 2007-09-12 20:10:56 +0200 (Wed, 12 Sep 2007) | 2 lines
Fix #1139: PyFile_Encoding really is PyFile_SetEncoding.
........
r58119 | georg.brandl | 2007-09-12 20:29:18 +0200 (Wed, 12 Sep 2007) | 2 lines
bug #1154: release memory allocated by "es" PyArg_ParseTuple format specifier.
........
r58121 | bill.janssen | 2007-09-12 20:52:05 +0200 (Wed, 12 Sep 2007) | 1 line
root certificate for https://svn.python.org/, used in test_ssl
........
r58122 | georg.brandl | 2007-09-12 21:00:07 +0200 (Wed, 12 Sep 2007) | 3 lines
Bug #1153: repr.repr() now doesn't require set and dictionary items
to be orderable to properly represent them.
........
r58125 | georg.brandl | 2007-09-12 21:29:28 +0200 (Wed, 12 Sep 2007) | 4 lines
#1120: put explicit version in the shebang lines of pydoc, idle
and smtpd.py scripts that are installed by setup.py. That way, they
work when only "make altinstall" is used.
........
r58139 | mark.summerfield | 2007-09-13 16:54:30 +0200 (Thu, 13 Sep 2007) | 9 lines
Replaced variable o with obj in operator.rst because o is easy to
confuse.
Added a note about Python 3's collections.Mapping etc., above section
that describes isMappingType() etc.
Added xrefs between os, os.path, fileinput, and open().
........
r58143 | facundo.batista | 2007-09-13 20:13:15 +0200 (Thu, 13 Sep 2007) | 7 lines
Merged the decimal-branch (revisions 54886 to 58140). Decimal is now
fully updated to the latests Decimal Specification (v1.66) and the
latests test cases (v2.56).
Thanks to Mark Dickinson for all his help during this process.
........
r58145 | facundo.batista | 2007-09-13 20:42:09 +0200 (Thu, 13 Sep 2007) | 7 lines
Put the parameter watchexp back in (changed watchexp from an int
to a bool). Also second argument to watchexp is now converted
to Decimal, just as with all the other two-argument operations.
Thanks Mark Dickinson.
........
r58147 | andrew.kuchling | 2007-09-14 00:49:34 +0200 (Fri, 14 Sep 2007) | 1 line
Add various items
........
r58148 | andrew.kuchling | 2007-09-14 00:50:10 +0200 (Fri, 14 Sep 2007) | 1 line
Make target unique
........
r58154 | facundo.batista | 2007-09-14 20:58:34 +0200 (Fri, 14 Sep 2007) | 3 lines
Included the new functions, and new descriptions.
........
r58155 | thomas.heller | 2007-09-14 21:40:35 +0200 (Fri, 14 Sep 2007) | 2 lines
ctypes.util.find_library uses dump(1) instead of objdump(1) on Solaris.
Fixes issue #1777530; will backport to release25-maint.
........
r58159 | facundo.batista | 2007-09-14 23:29:52 +0200 (Fri, 14 Sep 2007) | 3 lines
Some additions (examples and a bit on the tutorial).
........
r58160 | georg.brandl | 2007-09-15 18:53:36 +0200 (Sat, 15 Sep 2007) | 2 lines
Remove bdb from the "undocumented modules" list.
........
r58164 | bill.janssen | 2007-09-17 00:06:00 +0200 (Mon, 17 Sep 2007) | 15 lines
Add support for asyncore server-side SSL support. This requires
adding the 'makefile' method to ssl.SSLSocket, and importing the
requisite fakefile class from socket.py, and making the appropriate
changes to it to make it use the SSL connection.
Added sample HTTPS server to test_ssl.py, and test that uses it.
Change SSL tests to use https://svn.python.org/, instead of
www.sf.net and pop.gmail.com.
Added utility function to ssl module, get_server_certificate,
to wrap up the several things to be done to pull a certificate
from a remote server.
........
r58173 | bill.janssen | 2007-09-17 01:16:46 +0200 (Mon, 17 Sep 2007) | 1 line
use binary mode when reading files for testAsyncore to make Windows happy
........
r58175 | raymond.hettinger | 2007-09-17 02:55:00 +0200 (Mon, 17 Sep 2007) | 7 lines
Sync-up named tuples with the latest version of the ASPN recipe.
Allows optional commas in the field-name spec (help when named tuples are used in conjuction with sql queries).
Adds the __fields__ attribute for introspection and to support conversion to dictionary form.
Adds a __replace__() method similar to str.replace() but using a named field as a target.
Clean-up spelling and presentation in doc-strings.
........
r58176 | brett.cannon | 2007-09-17 05:28:34 +0200 (Mon, 17 Sep 2007) | 5 lines
Add a bunch of GIL release/acquire points in tp_print implementations and for
PyObject_Print().
Closes issue #1164.
........
r58177 | sean.reifschneider | 2007-09-17 07:45:04 +0200 (Mon, 17 Sep 2007) | 2 lines
issue1597011: Fix for bz2 module corner-case error due to error checking bug.
........
r58180 | facundo.batista | 2007-09-17 18:26:50 +0200 (Mon, 17 Sep 2007) | 3 lines
Decimal is updated, :)
........
r58181 | facundo.batista | 2007-09-17 19:30:13 +0200 (Mon, 17 Sep 2007) | 5 lines
The methods always return Decimal classes, even if they're
executed through a subclass (thanks Mark Dickinson).
Added a bit of testing for this.
........
r58183 | sean.reifschneider | 2007-09-17 22:53:21 +0200 (Mon, 17 Sep 2007) | 2 lines
issue1082: Fixing platform and system for Vista.
........
r58185 | andrew.kuchling | 2007-09-18 03:36:16 +0200 (Tue, 18 Sep 2007) | 1 line
Add item; sort properly
........
r58186 | raymond.hettinger | 2007-09-18 05:33:19 +0200 (Tue, 18 Sep 2007) | 1 line
Handle corner cased on 0-tuples and 1-tuples. Add verbose option so people can see how it works.
........
r58192 | georg.brandl | 2007-09-18 09:24:40 +0200 (Tue, 18 Sep 2007) | 2 lines
A bit of reordering, also show more subheadings in the lang ref index.
........
r58193 | facundo.batista | 2007-09-18 18:53:18 +0200 (Tue, 18 Sep 2007) | 4 lines
Speed up of the various division operations (remainder, divide,
divideint and divmod). Thanks Mark Dickinson.
........
r58197 | raymond.hettinger | 2007-09-19 00:18:02 +0200 (Wed, 19 Sep 2007) | 1 line
Cleanup docs for NamedTuple.
........
2007-09-19 00:06:30 -03:00
|
|
|
|
|
|
|
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
|