diff options
174 files changed, 58065 insertions, 58062 deletions
@@ -1,16 +1,13 @@ [patterns] -** = native -**.bat = CRLF -**.def = CRLF -**.dsp = CRLF -**.dsw = CRLF -**.mak = CRLF -**.mk = CRLF -**.rc = CRLF -**.sln = CRLF -**.vcproj = CRLF -**.vsprops = CRLF +# Non human-editable files are binary + +**.dsp = BIN +**.dsw = BIN +**.mk = BIN +**.sln = BIN +**.vcproj = BIN +**.vsprops = BIN **.aif = BIN **.au = BIN @@ -31,6 +28,12 @@ Lib/email/test/data/msg_26.txt = BIN Lib/test/sndhdrdata/sndhdr.* = BIN +Lib/test/decimaltestdata/*.decTest = BIN + +# All other files (which presumably are human-editable) are "native". +# This must be the last rule! + +** = native [repository] -native = LF
\ No newline at end of file +native = LF diff --git a/Demo/turtle/tdemo_nim.py b/Demo/turtle/tdemo_nim.py index b0edf44714..8e66d7e831 100644 --- a/Demo/turtle/tdemo_nim.py +++ b/Demo/turtle/tdemo_nim.py @@ -1,227 +1,227 @@ -""" turtle-example-suite:
-
- tdemo_nim.py
-
-Play nim against the computer. The player
-who takes the last stick is the winner.
-
-Implements the model-view-controller
-design pattern.
-"""
-
-
-import turtle
-import random
-import time
-
-SCREENWIDTH = 640
-SCREENHEIGHT = 480
-
-MINSTICKS = 7
-MAXSTICKS = 31
-
-HUNIT = SCREENHEIGHT // 12
-WUNIT = SCREENWIDTH // ((MAXSTICKS // 5) * 11 + (MAXSTICKS % 5) * 2)
-
-SCOLOR = (63, 63, 31)
-HCOLOR = (255, 204, 204)
-COLOR = (204, 204, 255)
-
-def randomrow():
- return random.randint(MINSTICKS, MAXSTICKS)
-
-def computerzug(state):
- xored = state[0] ^ state[1] ^ state[2]
- if xored == 0:
- return randommove(state)
- for z in range(3):
- s = state[z] ^ xored
- if s <= state[z]:
- move = (z, s)
- return move
-
-def randommove(state):
- m = max(state)
- while True:
- z = random.randint(0,2)
- if state[z] > (m > 1):
- break
- rand = random.randint(m > 1, state[z]-1)
- return z, rand
-
-
-class NimModel(object):
- def __init__(self, game):
- self.game = game
-
- def setup(self):
- if self.game.state not in [Nim.CREATED, Nim.OVER]:
- return
- self.sticks = [randomrow(), randomrow(), randomrow()]
- self.player = 0
- self.winner = None
- self.game.view.setup()
- self.game.state = Nim.RUNNING
-
- def move(self, row, col):
- maxspalte = self.sticks[row]
- self.sticks[row] = col
- self.game.view.notify_move(row, col, maxspalte, self.player)
- if self.game_over():
- self.game.state = Nim.OVER
- self.winner = self.player
- self.game.view.notify_over()
- elif self.player == 0:
- self.player = 1
- row, col = computerzug(self.sticks)
- self.move(row, col)
- self.player = 0
-
- def game_over(self):
- return self.sticks == [0, 0, 0]
-
- def notify_move(self, row, col):
- if self.sticks[row] <= col:
- return
- self.move(row, col)
-
-
-class Stick(turtle.Turtle):
- def __init__(self, row, col, game):
- turtle.Turtle.__init__(self, visible=False)
- self.row = row
- self.col = col
- self.game = game
- x, y = self.coords(row, col)
- self.shape("square")
- self.shapesize(HUNIT/10.0, WUNIT/20.0)
- self.speed(0)
- self.pu()
- self.goto(x,y)
- self.color("white")
- self.showturtle()
-
- def coords(self, row, col):
- packet, remainder = divmod(col, 5)
- x = (3 + 11 * packet + 2 * remainder) * WUNIT
- y = (2 + 3 * row) * HUNIT
- return x - SCREENWIDTH // 2 + WUNIT // 2, SCREENHEIGHT // 2 - y - HUNIT // 2
-
- def makemove(self, x, y):
- if self.game.state != Nim.RUNNING:
- return
- self.game.controller.notify_move(self.row, self.col)
-
-
-class NimView(object):
- def __init__(self, game):
- self.game = game
- self.screen = game.screen
- self.model = game.model
- self.screen.colormode(255)
- self.screen.tracer(False)
- self.screen.bgcolor((240, 240, 255))
- self.writer = turtle.Turtle(visible=False)
- self.writer.pu()
- self.writer.speed(0)
- self.sticks = {}
- for row in range(3):
- for col in range(MAXSTICKS):
- self.sticks[(row, col)] = Stick(row, col, game)
- self.display("... a moment please ...")
- self.screen.tracer(True)
-
- def display(self, msg1, msg2=None):
- self.screen.tracer(False)
- self.writer.clear()
- if msg2 is not None:
- self.writer.goto(0, - SCREENHEIGHT // 2 + 48)
- self.writer.pencolor("red")
- self.writer.write(msg2, align="center", font=("Courier",18,"bold"))
- self.writer.goto(0, - SCREENHEIGHT // 2 + 20)
- self.writer.pencolor("black")
- self.writer.write(msg1, align="center", font=("Courier",14,"bold"))
- self.screen.tracer(True)
-
-
- def setup(self):
- self.screen.tracer(False)
- for row in range(3):
- for col in range(self.model.sticks[row]):
- self.sticks[(row, col)].color(SCOLOR)
- for row in range(3):
- for col in range(self.model.sticks[row], MAXSTICKS):
- self.sticks[(row, col)].color("white")
- self.display("Your turn! Click leftmost stick to remove.")
- self.screen.tracer(True)
-
- def notify_move(self, row, col, maxspalte, player):
- if player == 0:
- farbe = HCOLOR
- for s in range(col, maxspalte):
- self.sticks[(row, s)].color(farbe)
- else:
- self.display(" ... thinking ... ")
- time.sleep(0.5)
- self.display(" ... thinking ... aaah ...")
- farbe = COLOR
- for s in range(maxspalte-1, col-1, -1):
- time.sleep(0.2)
- self.sticks[(row, s)].color(farbe)
- self.display("Your turn! Click leftmost stick to remove.")
-
- def notify_over(self):
- if self.game.model.winner == 0:
- msg2 = "Congrats. You're the winner!!!"
- else:
- msg2 = "Sorry, the computer is the winner."
- self.display("To play again press space bar. To leave press ESC.", msg2)
-
- def clear(self):
- if self.game.state == Nim.OVER:
- self.screen.clear()
-
-class NimController(object):
-
- def __init__(self, game):
- self.game = game
- self.sticks = game.view.sticks
- self.BUSY = False
- for stick in self.sticks.values():
- stick.onclick(stick.makemove)
- self.game.screen.onkey(self.game.model.setup, "space")
- self.game.screen.onkey(self.game.view.clear, "Escape")
- self.game.view.display("Press space bar to start game")
- self.game.screen.listen()
-
- def notify_move(self, row, col):
- if self.BUSY:
- return
- self.BUSY = True
- self.game.model.notify_move(row, col)
- self.BUSY = False
-
-class Nim(object):
- CREATED = 0
- RUNNING = 1
- OVER = 2
- def __init__(self, screen):
- self.state = Nim.CREATED
- self.screen = screen
- self.model = NimModel(self)
- self.view = NimView(self)
- self.controller = NimController(self)
-
-
-mainscreen = turtle.Screen()
-mainscreen.mode("standard")
-mainscreen.setup(SCREENWIDTH, SCREENHEIGHT)
-
-def main():
- nim = Nim(mainscreen)
- return "EVENTLOOP!"
-
-if __name__ == "__main__":
- main()
- turtle.mainloop()
-
+""" turtle-example-suite: + + tdemo_nim.py + +Play nim against the computer. The player +who takes the last stick is the winner. + +Implements the model-view-controller +design pattern. +""" + + +import turtle +import random +import time + +SCREENWIDTH = 640 +SCREENHEIGHT = 480 + +MINSTICKS = 7 +MAXSTICKS = 31 + +HUNIT = SCREENHEIGHT // 12 +WUNIT = SCREENWIDTH // ((MAXSTICKS // 5) * 11 + (MAXSTICKS % 5) * 2) + +SCOLOR = (63, 63, 31) +HCOLOR = (255, 204, 204) +COLOR = (204, 204, 255) + +def randomrow(): + return random.randint(MINSTICKS, MAXSTICKS) + +def computerzug(state): + xored = state[0] ^ state[1] ^ state[2] + if xored == 0: + return randommove(state) + for z in range(3): + s = state[z] ^ xored + if s <= state[z]: + move = (z, s) + return move + +def randommove(state): + m = max(state) + while True: + z = random.randint(0,2) + if state[z] > (m > 1): + break + rand = random.randint(m > 1, state[z]-1) + return z, rand + + +class NimModel(object): + def __init__(self, game): + self.game = game + + def setup(self): + if self.game.state not in [Nim.CREATED, Nim.OVER]: + return + self.sticks = [randomrow(), randomrow(), randomrow()] + self.player = 0 + self.winner = None + self.game.view.setup() + self.game.state = Nim.RUNNING + + def move(self, row, col): + maxspalte = self.sticks[row] + self.sticks[row] = col + self.game.view.notify_move(row, col, maxspalte, self.player) + if self.game_over(): + self.game.state = Nim.OVER + self.winner = self.player + self.game.view.notify_over() + elif self.player == 0: + self.player = 1 + row, col = computerzug(self.sticks) + self.move(row, col) + self.player = 0 + + def game_over(self): + return self.sticks == [0, 0, 0] + + def notify_move(self, row, col): + if self.sticks[row] <= col: + return + self.move(row, col) + + +class Stick(turtle.Turtle): + def __init__(self, row, col, game): + turtle.Turtle.__init__(self, visible=False) + self.row = row + self.col = col + self.game = game + x, y = self.coords(row, col) + self.shape("square") + self.shapesize(HUNIT/10.0, WUNIT/20.0) + self.speed(0) + self.pu() + self.goto(x,y) + self.color("white") + self.showturtle() + + def coords(self, row, col): + packet, remainder = divmod(col, 5) + x = (3 + 11 * packet + 2 * remainder) * WUNIT + y = (2 + 3 * row) * HUNIT + return x - SCREENWIDTH // 2 + WUNIT // 2, SCREENHEIGHT // 2 - y - HUNIT // 2 + + def makemove(self, x, y): + if self.game.state != Nim.RUNNING: + return + self.game.controller.notify_move(self.row, self.col) + + +class NimView(object): + def __init__(self, game): + self.game = game + self.screen = game.screen + self.model = game.model + self.screen.colormode(255) + self.screen.tracer(False) + self.screen.bgcolor((240, 240, 255)) + self.writer = turtle.Turtle(visible=False) + self.writer.pu() + self.writer.speed(0) + self.sticks = {} + for row in range(3): + for col in range(MAXSTICKS): + self.sticks[(row, col)] = Stick(row, col, game) + self.display("... a moment please ...") + self.screen.tracer(True) + + def display(self, msg1, msg2=None): + self.screen.tracer(False) + self.writer.clear() + if msg2 is not None: + self.writer.goto(0, - SCREENHEIGHT // 2 + 48) + self.writer.pencolor("red") + self.writer.write(msg2, align="center", font=("Courier",18,"bold")) + self.writer.goto(0, - SCREENHEIGHT // 2 + 20) + self.writer.pencolor("black") + self.writer.write(msg1, align="center", font=("Courier",14,"bold")) + self.screen.tracer(True) + + + def setup(self): + self.screen.tracer(False) + for row in range(3): + for col in range(self.model.sticks[row]): + self.sticks[(row, col)].color(SCOLOR) + for row in range(3): + for col in range(self.model.sticks[row], MAXSTICKS): + self.sticks[(row, col)].color("white") + self.display("Your turn! Click leftmost stick to remove.") + self.screen.tracer(True) + + def notify_move(self, row, col, maxspalte, player): + if player == 0: + farbe = HCOLOR + for s in range(col, maxspalte): + self.sticks[(row, s)].color(farbe) + else: + self.display(" ... thinking ... ") + time.sleep(0.5) + self.display(" ... thinking ... aaah ...") + farbe = COLOR + for s in range(maxspalte-1, col-1, -1): + time.sleep(0.2) + self.sticks[(row, s)].color(farbe) + self.display("Your turn! Click leftmost stick to remove.") + + def notify_over(self): + if self.game.model.winner == 0: + msg2 = "Congrats. You're the winner!!!" + else: + msg2 = "Sorry, the computer is the winner." + self.display("To play again press space bar. To leave press ESC.", msg2) + + def clear(self): + if self.game.state == Nim.OVER: + self.screen.clear() + +class NimController(object): + + def __init__(self, game): + self.game = game + self.sticks = game.view.sticks + self.BUSY = False + for stick in self.sticks.values(): + stick.onclick(stick.makemove) + self.game.screen.onkey(self.game.model.setup, "space") + self.game.screen.onkey(self.game.view.clear, "Escape") + self.game.view.display("Press space bar to start game") + self.game.screen.listen() + + def notify_move(self, row, col): + if self.BUSY: + return + self.BUSY = True + self.game.model.notify_move(row, col) + self.BUSY = False + +class Nim(object): + CREATED = 0 + RUNNING = 1 + OVER = 2 + def __init__(self, screen): + self.state = Nim.CREATED + self.screen = screen + self.model = NimModel(self) + self.view = NimView(self) + self.controller = NimController(self) + + +mainscreen = turtle.Screen() +mainscreen.mode("standard") +mainscreen.setup(SCREENWIDTH, SCREENHEIGHT) + +def main(): + nim = Nim(mainscreen) + return "EVENTLOOP!" + +if __name__ == "__main__": + main() + turtle.mainloop() + diff --git a/Doc/make.bat b/Doc/make.bat index fbae42cefc..d234e77c37 100644 --- a/Doc/make.bat +++ b/Doc/make.bat @@ -1,58 +1,58 @@ -@@echo off
-setlocal
-
-set SVNROOT=http://svn.python.org/projects
-if "%PYTHON%" EQU "" set PYTHON=..\pcbuild\python
-if "%HTMLHELP%" EQU "" set HTMLHELP=%ProgramFiles%\HTML Help Workshop\hhc.exe
-if "%DISTVERSION%" EQU "" for /f "usebackq" %%v in (`%PYTHON% tools/sphinxext/patchlevel.py`) do set DISTVERSION=%%v
-
-if "%1" EQU "" goto help
-if "%1" EQU "html" goto build
-if "%1" EQU "htmlhelp" goto build
-if "%1" EQU "latex" goto build
-if "%1" EQU "text" goto build
-if "%1" EQU "suspicious" goto build
-if "%1" EQU "linkcheck" goto build
-if "%1" EQU "changes" goto build
-if "%1" EQU "checkout" goto checkout
-if "%1" EQU "update" goto update
-
-:help
-set this=%~n0
-echo HELP
-echo.
-echo %this% checkout
-echo %this% update
-echo %this% html
-echo %this% htmlhelp
-echo %this% latex
-echo %this% text
-echo %this% suspicious
-echo %this% linkcheck
-echo %this% changes
-echo.
-goto end
-
-:checkout
-svn co %SVNROOT%/external/Sphinx-0.6.7/sphinx tools/sphinx
-svn co %SVNROOT%/external/docutils-0.6/docutils tools/docutils
-svn co %SVNROOT%/external/Jinja-2.3.1/jinja2 tools/jinja2
-svn co %SVNROOT%/external/Pygments-1.3.1/pygments tools/pygments
-goto end
-
-:update
-svn update tools/sphinx
-svn update tools/docutils
-svn update tools/jinja2
-svn update tools/pygments
-goto end
-
-:build
-if not exist build mkdir build
-if not exist build\%1 mkdir build\%1
-if not exist build\doctrees mkdir build\doctrees
-cmd /C %PYTHON% tools\sphinx-build.py -b%1 -dbuild\doctrees . build\%*
-if "%1" EQU "htmlhelp" "%HTMLHELP%" build\htmlhelp\python%DISTVERSION:.=%.hhp
-goto end
-
-:end
+@@echo off +setlocal + +set SVNROOT=http://svn.python.org/projects +if "%PYTHON%" EQU "" set PYTHON=..\pcbuild\python +if "%HTMLHELP%" EQU "" set HTMLHELP=%ProgramFiles%\HTML Help Workshop\hhc.exe +if "%DISTVERSION%" EQU "" for /f "usebackq" %%v in (`%PYTHON% tools/sphinxext/patchlevel.py`) do set DISTVERSION=%%v + +if "%1" EQU "" goto help +if "%1" EQU "html" goto build +if "%1" EQU "htmlhelp" goto build +if "%1" EQU "latex" goto build +if "%1" EQU "text" goto build +if "%1" EQU "suspicious" goto build +if "%1" EQU "linkcheck" goto build +if "%1" EQU "changes" goto build +if "%1" EQU "checkout" goto checkout +if "%1" EQU "update" goto update + +:help +set this=%~n0 +echo HELP +echo. +echo %this% checkout +echo %this% update +echo %this% html +echo %this% htmlhelp +echo %this% latex +echo %this% text +echo %this% suspicious +echo %this% linkcheck +echo %this% changes +echo. +goto end + +:checkout +svn co %SVNROOT%/external/Sphinx-0.6.7/sphinx tools/sphinx +svn co %SVNROOT%/external/docutils-0.6/docutils tools/docutils +svn co %SVNROOT%/external/Jinja-2.3.1/jinja2 tools/jinja2 +svn co %SVNROOT%/external/Pygments-1.3.1/pygments tools/pygments +goto end + +:update +svn update tools/sphinx +svn update tools/docutils +svn update tools/jinja2 +svn update tools/pygments +goto end + +:build +if not exist build mkdir build +if not exist build\%1 mkdir build\%1 +if not exist build\doctrees mkdir build\doctrees +cmd /C %PYTHON% tools\sphinx-build.py -b%1 -dbuild\doctrees . build\%* +if "%1" EQU "htmlhelp" "%HTMLHELP%" build\htmlhelp\python%DISTVERSION:.=%.hhp +goto end + +:end diff --git a/Lib/email/test/data/msg_26.txt b/Lib/email/test/data/msg_26.txt index 6c71bced9a..292197b3fa 100644 --- a/Lib/email/test/data/msg_26.txt +++ b/Lib/email/test/data/msg_26.txt @@ -1,45 +1,45 @@ -Received: from xcar [192.168.0.2] by jeeves.wooster.local
- (SMTPD32-7.07 EVAL) id AFF92F0214; Sun, 12 May 2002 08:55:37 +0100
-Date: Sun, 12 May 2002 08:56:15 +0100
-From: Father Time <father.time@xcar.wooster.local>
-To: timbo@jeeves.wooster.local
-Subject: IMAP file test
-Message-ID: <6df65d354b.father.time@rpc.wooster.local>
-X-Organization: Home
-User-Agent: Messenger-Pro/2.50a (MsgServe/1.50) (RISC-OS/4.02) POPstar/2.03
-MIME-Version: 1.0
-Content-Type: multipart/mixed; boundary="1618492860--2051301190--113853680"
-Status: R
-X-UIDL: 319998302
-
-This message is in MIME format which your mailer apparently does not support.
-You either require a newer version of your software which supports MIME, or
-a separate MIME decoding utility. Alternatively, ask the sender of this
-message to resend it in a different format.
-
---1618492860--2051301190--113853680
-Content-Type: text/plain; charset=us-ascii
-
-Simple email with attachment.
-
-
---1618492860--2051301190--113853680
-Content-Type: application/riscos; name="clock.bmp,69c"; type=BMP; load=&fff69c4b; exec=&355dd4d1; access=&03
-Content-Disposition: attachment; filename="clock.bmp"
-Content-Transfer-Encoding: base64
-
-Qk12AgAAAAAAAHYAAAAoAAAAIAAAACAAAAABAAQAAAAAAAAAAADXDQAA1w0AAAAAAAAA
-AAAAAAAAAAAAiAAAiAAAAIiIAIgAAACIAIgAiIgAALu7uwCIiIgAERHdACLuIgAz//8A
-zAAAAN0R3QDu7iIA////AAAAAAAAAAAAAAAAAAAAAAAAAAi3AAAAAAAAADeAAAAAAAAA
-C3ADMzMzMANwAAAAAAAAAAAHMAAAAANwAAAAAAAAAACAMAd3zPfwAwgAAAAAAAAIAwd/
-f8x/f3AwgAAAAAAAgDB0x/f3//zPAwgAAAAAAAcHfM9////8z/AwAAAAAAiwd/f3////
-////A4AAAAAAcEx/f///////zAMAAAAAiwfM9////3///8zwOAAAAAcHf3////B/////
-8DAAAAALB/f3///wd3d3//AwAAAABwTPf//wCQAAD/zAMAAAAAsEx/f///B////8wDAA
-AAAHB39////wf/////AwAAAACwf39///8H/////wMAAAAIcHfM9///B////M8DgAAAAA
-sHTH///wf///xAMAAAAACHB3f3//8H////cDgAAAAAALB3zH//D//M9wMAAAAAAAgLB0
-z39///xHAwgAAAAAAAgLB3d3RHd3cDCAAAAAAAAAgLAHd0R3cAMIAAAAAAAAgAgLcAAA
-AAMwgAgAAAAACDAAAAu7t7cwAAgDgAAAAABzcIAAAAAAAAgDMwAAAAAAN7uwgAAAAAgH
-MzMAAAAACH97tzAAAAALu3c3gAAAAAAL+7tzDABAu7f7cAAAAAAACA+3MA7EQAv/sIAA
-AAAAAAAIAAAAAAAAAIAAAAAA
-
---1618492860--2051301190--113853680--
+Received: from xcar [192.168.0.2] by jeeves.wooster.local + (SMTPD32-7.07 EVAL) id AFF92F0214; Sun, 12 May 2002 08:55:37 +0100 +Date: Sun, 12 May 2002 08:56:15 +0100 +From: Father Time <father.time@xcar.wooster.local> +To: timbo@jeeves.wooster.local +Subject: IMAP file test +Message-ID: <6df65d354b.father.time@rpc.wooster.local> +X-Organization: Home +User-Agent: Messenger-Pro/2.50a (MsgServe/1.50) (RISC-OS/4.02) POPstar/2.03 +MIME-Version: 1.0 +Content-Type: multipart/mixed; boundary="1618492860--2051301190--113853680" +Status: R +X-UIDL: 319998302 + +This message is in MIME format which your mailer apparently does not support. +You either require a newer version of your software which supports MIME, or +a separate MIME decoding utility. Alternatively, ask the sender of this +message to resend it in a different format. + +--1618492860--2051301190--113853680 +Content-Type: text/plain; charset=us-ascii + +Simple email with attachment. + + +--1618492860--2051301190--113853680 +Content-Type: application/riscos; name="clock.bmp,69c"; type=BMP; load=&fff69c4b; exec=&355dd4d1; access=&03 +Content-Disposition: attachment; filename="clock.bmp" +Content-Transfer-Encoding: base64 + +Qk12AgAAAAAAAHYAAAAoAAAAIAAAACAAAAABAAQAAAAAAAAAAADXDQAA1w0AAAAAAAAA +AAAAAAAAAAAAiAAAiAAAAIiIAIgAAACIAIgAiIgAALu7uwCIiIgAERHdACLuIgAz//8A +zAAAAN0R3QDu7iIA////AAAAAAAAAAAAAAAAAAAAAAAAAAi3AAAAAAAAADeAAAAAAAAA +C3ADMzMzMANwAAAAAAAAAAAHMAAAAANwAAAAAAAAAACAMAd3zPfwAwgAAAAAAAAIAwd/ +f8x/f3AwgAAAAAAAgDB0x/f3//zPAwgAAAAAAAcHfM9////8z/AwAAAAAAiwd/f3//// +////A4AAAAAAcEx/f///////zAMAAAAAiwfM9////3///8zwOAAAAAcHf3////B///// +8DAAAAALB/f3///wd3d3//AwAAAABwTPf//wCQAAD/zAMAAAAAsEx/f///B////8wDAA +AAAHB39////wf/////AwAAAACwf39///8H/////wMAAAAIcHfM9///B////M8DgAAAAA +sHTH///wf///xAMAAAAACHB3f3//8H////cDgAAAAAALB3zH//D//M9wMAAAAAAAgLB0 +z39///xHAwgAAAAAAAgLB3d3RHd3cDCAAAAAAAAAgLAHd0R3cAMIAAAAAAAAgAgLcAAA +AAMwgAgAAAAACDAAAAu7t7cwAAgDgAAAAABzcIAAAAAAAAgDMwAAAAAAN7uwgAAAAAgH +MzMAAAAACH97tzAAAAALu3c3gAAAAAAL+7tzDABAu7f7cAAAAAAACA+3MA7EQAv/sIAA +AAAAAAAIAAAAAAAAAIAAAAAA + +--1618492860--2051301190--113853680-- diff --git a/Lib/test/decimaltestdata/and.decTest b/Lib/test/decimaltestdata/and.decTest index e912394877..a0cc786516 100644 --- a/Lib/test/decimaltestdata/and.decTest +++ b/Lib/test/decimaltestdata/and.decTest @@ -1,338 +1,338 @@ -------------------------------------------------------------------------
--- and.decTest -- digitwise logical AND --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-extended: 1
-precision: 9
-rounding: half_up
-maxExponent: 999
-minExponent: -999
-
--- Sanity check (truth table)
-andx001 and 0 0 -> 0
-andx002 and 0 1 -> 0
-andx003 and 1 0 -> 0
-andx004 and 1 1 -> 1
-andx005 and 1100 1010 -> 1000
-andx006 and 1111 10 -> 10
-andx007 and 1111 1010 -> 1010
-
--- and at msd and msd-1
-andx010 and 000000000 000000000 -> 0
-andx011 and 000000000 100000000 -> 0
-andx012 and 100000000 000000000 -> 0
-andx013 and 100000000 100000000 -> 100000000
-andx014 and 000000000 000000000 -> 0
-andx015 and 000000000 010000000 -> 0
-andx016 and 010000000 000000000 -> 0
-andx017 and 010000000 010000000 -> 10000000
-
--- Various lengths
--- 123456789 123456789 123456789
-andx021 and 111111111 111111111 -> 111111111
-andx022 and 111111111111 111111111 -> 111111111
-andx023 and 111111111111 11111111 -> 11111111
-andx024 and 111111111 11111111 -> 11111111
-andx025 and 111111111 1111111 -> 1111111
-andx026 and 111111111111 111111 -> 111111
-andx027 and 111111111111 11111 -> 11111
-andx028 and 111111111111 1111 -> 1111
-andx029 and 111111111111 111 -> 111
-andx031 and 111111111111 11 -> 11
-andx032 and 111111111111 1 -> 1
-andx033 and 111111111111 1111111111 -> 111111111
-andx034 and 11111111111 11111111111 -> 111111111
-andx035 and 1111111111 111111111111 -> 111111111
-andx036 and 111111111 1111111111111 -> 111111111
-
-andx040 and 111111111 111111111111 -> 111111111
-andx041 and 11111111 111111111111 -> 11111111
-andx042 and 11111111 111111111 -> 11111111
-andx043 and 1111111 111111111 -> 1111111
-andx044 and 111111 111111111 -> 111111
-andx045 and 11111 111111111 -> 11111
-andx046 and 1111 111111111 -> 1111
-andx047 and 111 111111111 -> 111
-andx048 and 11 111111111 -> 11
-andx049 and 1 111111111 -> 1
-
-andx050 and 1111111111 1 -> 1
-andx051 and 111111111 1 -> 1
-andx052 and 11111111 1 -> 1
-andx053 and 1111111 1 -> 1
-andx054 and 111111 1 -> 1
-andx055 and 11111 1 -> 1
-andx056 and 1111 1 -> 1
-andx057 and 111 1 -> 1
-andx058 and 11 1 -> 1
-andx059 and 1 1 -> 1
-
-andx060 and 1111111111 0 -> 0
-andx061 and 111111111 0 -> 0
-andx062 and 11111111 0 -> 0
-andx063 and 1111111 0 -> 0
-andx064 and 111111 0 -> 0
-andx065 and 11111 0 -> 0
-andx066 and 1111 0 -> 0
-andx067 and 111 0 -> 0
-andx068 and 11 0 -> 0
-andx069 and 1 0 -> 0
-
-andx070 and 1 1111111111 -> 1
-andx071 and 1 111111111 -> 1
-andx072 and 1 11111111 -> 1
-andx073 and 1 1111111 -> 1
-andx074 and 1 111111 -> 1
-andx075 and 1 11111 -> 1
-andx076 and 1 1111 -> 1
-andx077 and 1 111 -> 1
-andx078 and 1 11 -> 1
-andx079 and 1 1 -> 1
-
-andx080 and 0 1111111111 -> 0
-andx081 and 0 111111111 -> 0
-andx082 and 0 11111111 -> 0
-andx083 and 0 1111111 -> 0
-andx084 and 0 111111 -> 0
-andx085 and 0 11111 -> 0
-andx086 and 0 1111 -> 0
-andx087 and 0 111 -> 0
-andx088 and 0 11 -> 0
-andx089 and 0 1 -> 0
-
-andx090 and 011111111 111111111 -> 11111111
-andx091 and 101111111 111111111 -> 101111111
-andx092 and 110111111 111111111 -> 110111111
-andx093 and 111011111 111111111 -> 111011111
-andx094 and 111101111 111111111 -> 111101111
-andx095 and 111110111 111111111 -> 111110111
-andx096 and 111111011 111111111 -> 111111011
-andx097 and 111111101 111111111 -> 111111101
-andx098 and 111111110 111111111 -> 111111110
-
-andx100 and 111111111 011111111 -> 11111111
-andx101 and 111111111 101111111 -> 101111111
-andx102 and 111111111 110111111 -> 110111111
-andx103 and 111111111 111011111 -> 111011111
-andx104 and 111111111 111101111 -> 111101111
-andx105 and 111111111 111110111 -> 111110111
-andx106 and 111111111 111111011 -> 111111011
-andx107 and 111111111 111111101 -> 111111101
-andx108 and 111111111 111111110 -> 111111110
-
--- non-0/1 should not be accepted, nor should signs
-andx220 and 111111112 111111111 -> NaN Invalid_operation
-andx221 and 333333333 333333333 -> NaN Invalid_operation
-andx222 and 555555555 555555555 -> NaN Invalid_operation
-andx223 and 777777777 777777777 -> NaN Invalid_operation
-andx224 and 999999999 999999999 -> NaN Invalid_operation
-andx225 and 222222222 999999999 -> NaN Invalid_operation
-andx226 and 444444444 999999999 -> NaN Invalid_operation
-andx227 and 666666666 999999999 -> NaN Invalid_operation
-andx228 and 888888888 999999999 -> NaN Invalid_operation
-andx229 and 999999999 222222222 -> NaN Invalid_operation
-andx230 and 999999999 444444444 -> NaN Invalid_operation
-andx231 and 999999999 666666666 -> NaN Invalid_operation
-andx232 and 999999999 888888888 -> NaN Invalid_operation
--- a few randoms
-andx240 and 567468689 -934981942 -> NaN Invalid_operation
-andx241 and 567367689 934981942 -> NaN Invalid_operation
-andx242 and -631917772 -706014634 -> NaN Invalid_operation
-andx243 and -756253257 138579234 -> NaN Invalid_operation
-andx244 and 835590149 567435400 -> NaN Invalid_operation
--- test MSD
-andx250 and 200000000 100000000 -> NaN Invalid_operation
-andx251 and 700000000 100000000 -> NaN Invalid_operation
-andx252 and 800000000 100000000 -> NaN Invalid_operation
-andx253 and 900000000 100000000 -> NaN Invalid_operation
-andx254 and 200000000 000000000 -> NaN Invalid_operation
-andx255 and 700000000 000000000 -> NaN Invalid_operation
-andx256 and 800000000 000000000 -> NaN Invalid_operation
-andx257 and 900000000 000000000 -> NaN Invalid_operation
-andx258 and 100000000 200000000 -> NaN Invalid_operation
-andx259 and 100000000 700000000 -> NaN Invalid_operation
-andx260 and 100000000 800000000 -> NaN Invalid_operation
-andx261 and 100000000 900000000 -> NaN Invalid_operation
-andx262 and 000000000 200000000 -> NaN Invalid_operation
-andx263 and 000000000 700000000 -> NaN Invalid_operation
-andx264 and 000000000 800000000 -> NaN Invalid_operation
-andx265 and 000000000 900000000 -> NaN Invalid_operation
--- test MSD-1
-andx270 and 020000000 100000000 -> NaN Invalid_operation
-andx271 and 070100000 100000000 -> NaN Invalid_operation
-andx272 and 080010000 100000001 -> NaN Invalid_operation
-andx273 and 090001000 100000010 -> NaN Invalid_operation
-andx274 and 100000100 020010100 -> NaN Invalid_operation
-andx275 and 100000000 070001000 -> NaN Invalid_operation
-andx276 and 100000010 080010100 -> NaN Invalid_operation
-andx277 and 100000000 090000010 -> NaN Invalid_operation
--- test LSD
-andx280 and 001000002 100000000 -> NaN Invalid_operation
-andx281 and 000000007 100000000 -> NaN Invalid_operation
-andx282 and 000000008 100000000 -> NaN Invalid_operation
-andx283 and 000000009 100000000 -> NaN Invalid_operation
-andx284 and 100000000 000100002 -> NaN Invalid_operation
-andx285 and 100100000 001000007 -> NaN Invalid_operation
-andx286 and 100010000 010000008 -> NaN Invalid_operation
-andx287 and 100001000 100000009 -> NaN Invalid_operation
--- test Middie
-andx288 and 001020000 100000000 -> NaN Invalid_operation
-andx289 and 000070001 100000000 -> NaN Invalid_operation
-andx290 and 000080000 100010000 -> NaN Invalid_operation
-andx291 and 000090000 100001000 -> NaN Invalid_operation
-andx292 and 100000010 000020100 -> NaN Invalid_operation
-andx293 and 100100000 000070010 -> NaN Invalid_operation
-andx294 and 100010100 000080001 -> NaN Invalid_operation
-andx295 and 100001000 000090000 -> NaN Invalid_operation
--- signs
-andx296 and -100001000 -000000000 -> NaN Invalid_operation
-andx297 and -100001000 000010000 -> NaN Invalid_operation
-andx298 and 100001000 -000000000 -> NaN Invalid_operation
-andx299 and 100001000 000011000 -> 1000
-
--- Nmax, Nmin, Ntiny
-andx331 and 2 9.99999999E+999 -> NaN Invalid_operation
-andx332 and 3 1E-999 -> NaN Invalid_operation
-andx333 and 4 1.00000000E-999 -> NaN Invalid_operation
-andx334 and 5 1E-1007 -> NaN Invalid_operation
-andx335 and 6 -1E-1007 -> NaN Invalid_operation
-andx336 and 7 -1.00000000E-999 -> NaN Invalid_operation
-andx337 and 8 -1E-999 -> NaN Invalid_operation
-andx338 and 9 -9.99999999E+999 -> NaN Invalid_operation
-andx341 and 9.99999999E+999 -18 -> NaN Invalid_operation
-andx342 and 1E-999 01 -> NaN Invalid_operation
-andx343 and 1.00000000E-999 -18 -> NaN Invalid_operation
-andx344 and 1E-1007 18 -> NaN Invalid_operation
-andx345 and -1E-1007 -10 -> NaN Invalid_operation
-andx346 and -1.00000000E-999 18 -> NaN Invalid_operation
-andx347 and -1E-999 10 -> NaN Invalid_operation
-andx348 and -9.99999999E+999 -18 -> NaN Invalid_operation
-
--- A few other non-integers
-andx361 and 1.0 1 -> NaN Invalid_operation
-andx362 and 1E+1 1 -> NaN Invalid_operation
-andx363 and 0.0 1 -> NaN Invalid_operation
-andx364 and 0E+1 1 -> NaN Invalid_operation
-andx365 and 9.9 1 -> NaN Invalid_operation
-andx366 and 9E+1 1 -> NaN Invalid_operation
-andx371 and 0 1.0 -> NaN Invalid_operation
-andx372 and 0 1E+1 -> NaN Invalid_operation
-andx373 and 0 0.0 -> NaN Invalid_operation
-andx374 and 0 0E+1 -> NaN Invalid_operation
-andx375 and 0 9.9 -> NaN Invalid_operation
-andx376 and 0 9E+1 -> NaN Invalid_operation
-
--- All Specials are in error
-andx780 and -Inf -Inf -> NaN Invalid_operation
-andx781 and -Inf -1000 -> NaN Invalid_operation
-andx782 and -Inf -1 -> NaN Invalid_operation
-andx783 and -Inf -0 -> NaN Invalid_operation
-andx784 and -Inf 0 -> NaN Invalid_operation
-andx785 and -Inf 1 -> NaN Invalid_operation
-andx786 and -Inf 1000 -> NaN Invalid_operation
-andx787 and -1000 -Inf -> NaN Invalid_operation
-andx788 and -Inf -Inf -> NaN Invalid_operation
-andx789 and -1 -Inf -> NaN Invalid_operation
-andx790 and -0 -Inf -> NaN Invalid_operation
-andx791 and 0 -Inf -> NaN Invalid_operation
-andx792 and 1 -Inf -> NaN Invalid_operation
-andx793 and 1000 -Inf -> NaN Invalid_operation
-andx794 and Inf -Inf -> NaN Invalid_operation
-
-andx800 and Inf -Inf -> NaN Invalid_operation
-andx801 and Inf -1000 -> NaN Invalid_operation
-andx802 and Inf -1 -> NaN Invalid_operation
-andx803 and Inf -0 -> NaN Invalid_operation
-andx804 and Inf 0 -> NaN Invalid_operation
-andx805 and Inf 1 -> NaN Invalid_operation
-andx806 and Inf 1000 -> NaN Invalid_operation
-andx807 and Inf Inf -> NaN Invalid_operation
-andx808 and -1000 Inf -> NaN Invalid_operation
-andx809 and -Inf Inf -> NaN Invalid_operation
-andx810 and -1 Inf -> NaN Invalid_operation
-andx811 and -0 Inf -> NaN Invalid_operation
-andx812 and 0 Inf -> NaN Invalid_operation
-andx813 and 1 Inf -> NaN Invalid_operation
-andx814 and 1000 Inf -> NaN Invalid_operation
-andx815 and Inf Inf -> NaN Invalid_operation
-
-andx821 and NaN -Inf -> NaN Invalid_operation
-andx822 and NaN -1000 -> NaN Invalid_operation
-andx823 and NaN -1 -> NaN Invalid_operation
-andx824 and NaN -0 -> NaN Invalid_operation
-andx825 and NaN 0 -> NaN Invalid_operation
-andx826 and NaN 1 -> NaN Invalid_operation
-andx827 and NaN 1000 -> NaN Invalid_operation
-andx828 and NaN Inf -> NaN Invalid_operation
-andx829 and NaN NaN -> NaN Invalid_operation
-andx830 and -Inf NaN -> NaN Invalid_operation
-andx831 and -1000 NaN -> NaN Invalid_operation
-andx832 and -1 NaN -> NaN Invalid_operation
-andx833 and -0 NaN -> NaN Invalid_operation
-andx834 and 0 NaN -> NaN Invalid_operation
-andx835 and 1 NaN -> NaN Invalid_operation
-andx836 and 1000 NaN -> NaN Invalid_operation
-andx837 and Inf NaN -> NaN Invalid_operation
-
-andx841 and sNaN -Inf -> NaN Invalid_operation
-andx842 and sNaN -1000 -> NaN Invalid_operation
-andx843 and sNaN -1 -> NaN Invalid_operation
-andx844 and sNaN -0 -> NaN Invalid_operation
-andx845 and sNaN 0 -> NaN Invalid_operation
-andx846 and sNaN 1 -> NaN Invalid_operation
-andx847 and sNaN 1000 -> NaN Invalid_operation
-andx848 and sNaN NaN -> NaN Invalid_operation
-andx849 and sNaN sNaN -> NaN Invalid_operation
-andx850 and NaN sNaN -> NaN Invalid_operation
-andx851 and -Inf sNaN -> NaN Invalid_operation
-andx852 and -1000 sNaN -> NaN Invalid_operation
-andx853 and -1 sNaN -> NaN Invalid_operation
-andx854 and -0 sNaN -> NaN Invalid_operation
-andx855 and 0 sNaN -> NaN Invalid_operation
-andx856 and 1 sNaN -> NaN Invalid_operation
-andx857 and 1000 sNaN -> NaN Invalid_operation
-andx858 and Inf sNaN -> NaN Invalid_operation
-andx859 and NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-andx861 and NaN1 -Inf -> NaN Invalid_operation
-andx862 and +NaN2 -1000 -> NaN Invalid_operation
-andx863 and NaN3 1000 -> NaN Invalid_operation
-andx864 and NaN4 Inf -> NaN Invalid_operation
-andx865 and NaN5 +NaN6 -> NaN Invalid_operation
-andx866 and -Inf NaN7 -> NaN Invalid_operation
-andx867 and -1000 NaN8 -> NaN Invalid_operation
-andx868 and 1000 NaN9 -> NaN Invalid_operation
-andx869 and Inf +NaN10 -> NaN Invalid_operation
-andx871 and sNaN11 -Inf -> NaN Invalid_operation
-andx872 and sNaN12 -1000 -> NaN Invalid_operation
-andx873 and sNaN13 1000 -> NaN Invalid_operation
-andx874 and sNaN14 NaN17 -> NaN Invalid_operation
-andx875 and sNaN15 sNaN18 -> NaN Invalid_operation
-andx876 and NaN16 sNaN19 -> NaN Invalid_operation
-andx877 and -Inf +sNaN20 -> NaN Invalid_operation
-andx878 and -1000 sNaN21 -> NaN Invalid_operation
-andx879 and 1000 sNaN22 -> NaN Invalid_operation
-andx880 and Inf sNaN23 -> NaN Invalid_operation
-andx881 and +NaN25 +sNaN24 -> NaN Invalid_operation
-andx882 and -NaN26 NaN28 -> NaN Invalid_operation
-andx883 and -sNaN27 sNaN29 -> NaN Invalid_operation
-andx884 and 1000 -NaN30 -> NaN Invalid_operation
-andx885 and 1000 -sNaN31 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- and.decTest -- digitwise logical AND -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +extended: 1 +precision: 9 +rounding: half_up +maxExponent: 999 +minExponent: -999 + +-- Sanity check (truth table) +andx001 and 0 0 -> 0 +andx002 and 0 1 -> 0 +andx003 and 1 0 -> 0 +andx004 and 1 1 -> 1 +andx005 and 1100 1010 -> 1000 +andx006 and 1111 10 -> 10 +andx007 and 1111 1010 -> 1010 + +-- and at msd and msd-1 +andx010 and 000000000 000000000 -> 0 +andx011 and 000000000 100000000 -> 0 +andx012 and 100000000 000000000 -> 0 +andx013 and 100000000 100000000 -> 100000000 +andx014 and 000000000 000000000 -> 0 +andx015 and 000000000 010000000 -> 0 +andx016 and 010000000 000000000 -> 0 +andx017 and 010000000 010000000 -> 10000000 + +-- Various lengths +-- 123456789 123456789 123456789 +andx021 and 111111111 111111111 -> 111111111 +andx022 and 111111111111 111111111 -> 111111111 +andx023 and 111111111111 11111111 -> 11111111 +andx024 and 111111111 11111111 -> 11111111 +andx025 and 111111111 1111111 -> 1111111 +andx026 and 111111111111 111111 -> 111111 +andx027 and 111111111111 11111 -> 11111 +andx028 and 111111111111 1111 -> 1111 +andx029 and 111111111111 111 -> 111 +andx031 and 111111111111 11 -> 11 +andx032 and 111111111111 1 -> 1 +andx033 and 111111111111 1111111111 -> 111111111 +andx034 and 11111111111 11111111111 -> 111111111 +andx035 and 1111111111 111111111111 -> 111111111 +andx036 and 111111111 1111111111111 -> 111111111 + +andx040 and 111111111 111111111111 -> 111111111 +andx041 and 11111111 111111111111 -> 11111111 +andx042 and 11111111 111111111 -> 11111111 +andx043 and 1111111 111111111 -> 1111111 +andx044 and 111111 111111111 -> 111111 +andx045 and 11111 111111111 -> 11111 +andx046 and 1111 111111111 -> 1111 +andx047 and 111 111111111 -> 111 +andx048 and 11 111111111 -> 11 +andx049 and 1 111111111 -> 1 + +andx050 and 1111111111 1 -> 1 +andx051 and 111111111 1 -> 1 +andx052 and 11111111 1 -> 1 +andx053 and 1111111 1 -> 1 +andx054 and 111111 1 -> 1 +andx055 and 11111 1 -> 1 +andx056 and 1111 1 -> 1 +andx057 and 111 1 -> 1 +andx058 and 11 1 -> 1 +andx059 and 1 1 -> 1 + +andx060 and 1111111111 0 -> 0 +andx061 and 111111111 0 -> 0 +andx062 and 11111111 0 -> 0 +andx063 and 1111111 0 -> 0 +andx064 and 111111 0 -> 0 +andx065 and 11111 0 -> 0 +andx066 and 1111 0 -> 0 +andx067 and 111 0 -> 0 +andx068 and 11 0 -> 0 +andx069 and 1 0 -> 0 + +andx070 and 1 1111111111 -> 1 +andx071 and 1 111111111 -> 1 +andx072 and 1 11111111 -> 1 +andx073 and 1 1111111 -> 1 +andx074 and 1 111111 -> 1 +andx075 and 1 11111 -> 1 +andx076 and 1 1111 -> 1 +andx077 and 1 111 -> 1 +andx078 and 1 11 -> 1 +andx079 and 1 1 -> 1 + +andx080 and 0 1111111111 -> 0 +andx081 and 0 111111111 -> 0 +andx082 and 0 11111111 -> 0 +andx083 and 0 1111111 -> 0 +andx084 and 0 111111 -> 0 +andx085 and 0 11111 -> 0 +andx086 and 0 1111 -> 0 +andx087 and 0 111 -> 0 +andx088 and 0 11 -> 0 +andx089 and 0 1 -> 0 + +andx090 and 011111111 111111111 -> 11111111 +andx091 and 101111111 111111111 -> 101111111 +andx092 and 110111111 111111111 -> 110111111 +andx093 and 111011111 111111111 -> 111011111 +andx094 and 111101111 111111111 -> 111101111 +andx095 and 111110111 111111111 -> 111110111 +andx096 and 111111011 111111111 -> 111111011 +andx097 and 111111101 111111111 -> 111111101 +andx098 and 111111110 111111111 -> 111111110 + +andx100 and 111111111 011111111 -> 11111111 +andx101 and 111111111 101111111 -> 101111111 +andx102 and 111111111 110111111 -> 110111111 +andx103 and 111111111 111011111 -> 111011111 +andx104 and 111111111 111101111 -> 111101111 +andx105 and 111111111 111110111 -> 111110111 +andx106 and 111111111 111111011 -> 111111011 +andx107 and 111111111 111111101 -> 111111101 +andx108 and 111111111 111111110 -> 111111110 + +-- non-0/1 should not be accepted, nor should signs +andx220 and 111111112 111111111 -> NaN Invalid_operation +andx221 and 333333333 333333333 -> NaN Invalid_operation +andx222 and 555555555 555555555 -> NaN Invalid_operation +andx223 and 777777777 777777777 -> NaN Invalid_operation +andx224 and 999999999 999999999 -> NaN Invalid_operation +andx225 and 222222222 999999999 -> NaN Invalid_operation +andx226 and 444444444 999999999 -> NaN Invalid_operation +andx227 and 666666666 999999999 -> NaN Invalid_operation +andx228 and 888888888 999999999 -> NaN Invalid_operation +andx229 and 999999999 222222222 -> NaN Invalid_operation +andx230 and 999999999 444444444 -> NaN Invalid_operation +andx231 and 999999999 666666666 -> NaN Invalid_operation +andx232 and 999999999 888888888 -> NaN Invalid_operation +-- a few randoms +andx240 and 567468689 -934981942 -> NaN Invalid_operation +andx241 and 567367689 934981942 -> NaN Invalid_operation +andx242 and -631917772 -706014634 -> NaN Invalid_operation +andx243 and -756253257 138579234 -> NaN Invalid_operation +andx244 and 835590149 567435400 -> NaN Invalid_operation +-- test MSD +andx250 and 200000000 100000000 -> NaN Invalid_operation +andx251 and 700000000 100000000 -> NaN Invalid_operation +andx252 and 800000000 100000000 -> NaN Invalid_operation +andx253 and 900000000 100000000 -> NaN Invalid_operation +andx254 and 200000000 000000000 -> NaN Invalid_operation +andx255 and 700000000 000000000 -> NaN Invalid_operation +andx256 and 800000000 000000000 -> NaN Invalid_operation +andx257 and 900000000 000000000 -> NaN Invalid_operation +andx258 and 100000000 200000000 -> NaN Invalid_operation +andx259 and 100000000 700000000 -> NaN Invalid_operation +andx260 and 100000000 800000000 -> NaN Invalid_operation +andx261 and 100000000 900000000 -> NaN Invalid_operation +andx262 and 000000000 200000000 -> NaN Invalid_operation +andx263 and 000000000 700000000 -> NaN Invalid_operation +andx264 and 000000000 800000000 -> NaN Invalid_operation +andx265 and 000000000 900000000 -> NaN Invalid_operation +-- test MSD-1 +andx270 and 020000000 100000000 -> NaN Invalid_operation +andx271 and 070100000 100000000 -> NaN Invalid_operation +andx272 and 080010000 100000001 -> NaN Invalid_operation +andx273 and 090001000 100000010 -> NaN Invalid_operation +andx274 and 100000100 020010100 -> NaN Invalid_operation +andx275 and 100000000 070001000 -> NaN Invalid_operation +andx276 and 100000010 080010100 -> NaN Invalid_operation +andx277 and 100000000 090000010 -> NaN Invalid_operation +-- test LSD +andx280 and 001000002 100000000 -> NaN Invalid_operation +andx281 and 000000007 100000000 -> NaN Invalid_operation +andx282 and 000000008 100000000 -> NaN Invalid_operation +andx283 and 000000009 100000000 -> NaN Invalid_operation +andx284 and 100000000 000100002 -> NaN Invalid_operation +andx285 and 100100000 001000007 -> NaN Invalid_operation +andx286 and 100010000 010000008 -> NaN Invalid_operation +andx287 and 100001000 100000009 -> NaN Invalid_operation +-- test Middie +andx288 and 001020000 100000000 -> NaN Invalid_operation +andx289 and 000070001 100000000 -> NaN Invalid_operation +andx290 and 000080000 100010000 -> NaN Invalid_operation +andx291 and 000090000 100001000 -> NaN Invalid_operation +andx292 and 100000010 000020100 -> NaN Invalid_operation +andx293 and 100100000 000070010 -> NaN Invalid_operation +andx294 and 100010100 000080001 -> NaN Invalid_operation +andx295 and 100001000 000090000 -> NaN Invalid_operation +-- signs +andx296 and -100001000 -000000000 -> NaN Invalid_operation +andx297 and -100001000 000010000 -> NaN Invalid_operation +andx298 and 100001000 -000000000 -> NaN Invalid_operation +andx299 and 100001000 000011000 -> 1000 + +-- Nmax, Nmin, Ntiny +andx331 and 2 9.99999999E+999 -> NaN Invalid_operation +andx332 and 3 1E-999 -> NaN Invalid_operation +andx333 and 4 1.00000000E-999 -> NaN Invalid_operation +andx334 and 5 1E-1007 -> NaN Invalid_operation +andx335 and 6 -1E-1007 -> NaN Invalid_operation +andx336 and 7 -1.00000000E-999 -> NaN Invalid_operation +andx337 and 8 -1E-999 -> NaN Invalid_operation +andx338 and 9 -9.99999999E+999 -> NaN Invalid_operation +andx341 and 9.99999999E+999 -18 -> NaN Invalid_operation +andx342 and 1E-999 01 -> NaN Invalid_operation +andx343 and 1.00000000E-999 -18 -> NaN Invalid_operation +andx344 and 1E-1007 18 -> NaN Invalid_operation +andx345 and -1E-1007 -10 -> NaN Invalid_operation +andx346 and -1.00000000E-999 18 -> NaN Invalid_operation +andx347 and -1E-999 10 -> NaN Invalid_operation +andx348 and -9.99999999E+999 -18 -> NaN Invalid_operation + +-- A few other non-integers +andx361 and 1.0 1 -> NaN Invalid_operation +andx362 and 1E+1 1 -> NaN Invalid_operation +andx363 and 0.0 1 -> NaN Invalid_operation +andx364 and 0E+1 1 -> NaN Invalid_operation +andx365 and 9.9 1 -> NaN Invalid_operation +andx366 and 9E+1 1 -> NaN Invalid_operation +andx371 and 0 1.0 -> NaN Invalid_operation +andx372 and 0 1E+1 -> NaN Invalid_operation +andx373 and 0 0.0 -> NaN Invalid_operation +andx374 and 0 0E+1 -> NaN Invalid_operation +andx375 and 0 9.9 -> NaN Invalid_operation +andx376 and 0 9E+1 -> NaN Invalid_operation + +-- All Specials are in error +andx780 and -Inf -Inf -> NaN Invalid_operation +andx781 and -Inf -1000 -> NaN Invalid_operation +andx782 and -Inf -1 -> NaN Invalid_operation +andx783 and -Inf -0 -> NaN Invalid_operation +andx784 and -Inf 0 -> NaN Invalid_operation +andx785 and -Inf 1 -> NaN Invalid_operation +andx786 and -Inf 1000 -> NaN Invalid_operation +andx787 and -1000 -Inf -> NaN Invalid_operation +andx788 and -Inf -Inf -> NaN Invalid_operation +andx789 and -1 -Inf -> NaN Invalid_operation +andx790 and -0 -Inf -> NaN Invalid_operation +andx791 and 0 -Inf -> NaN Invalid_operation +andx792 and 1 -Inf -> NaN Invalid_operation +andx793 and 1000 -Inf -> NaN Invalid_operation +andx794 and Inf -Inf -> NaN Invalid_operation + +andx800 and Inf -Inf -> NaN Invalid_operation +andx801 and Inf -1000 -> NaN Invalid_operation +andx802 and Inf -1 -> NaN Invalid_operation +andx803 and Inf -0 -> NaN Invalid_operation +andx804 and Inf 0 -> NaN Invalid_operation +andx805 and Inf 1 -> NaN Invalid_operation +andx806 and Inf 1000 -> NaN Invalid_operation +andx807 and Inf Inf -> NaN Invalid_operation +andx808 and -1000 Inf -> NaN Invalid_operation +andx809 and -Inf Inf -> NaN Invalid_operation +andx810 and -1 Inf -> NaN Invalid_operation +andx811 and -0 Inf -> NaN Invalid_operation +andx812 and 0 Inf -> NaN Invalid_operation +andx813 and 1 Inf -> NaN Invalid_operation +andx814 and 1000 Inf -> NaN Invalid_operation +andx815 and Inf Inf -> NaN Invalid_operation + +andx821 and NaN -Inf -> NaN Invalid_operation +andx822 and NaN -1000 -> NaN Invalid_operation +andx823 and NaN -1 -> NaN Invalid_operation +andx824 and NaN -0 -> NaN Invalid_operation +andx825 and NaN 0 -> NaN Invalid_operation +andx826 and NaN 1 -> NaN Invalid_operation +andx827 and NaN 1000 -> NaN Invalid_operation +andx828 and NaN Inf -> NaN Invalid_operation +andx829 and NaN NaN -> NaN Invalid_operation +andx830 and -Inf NaN -> NaN Invalid_operation +andx831 and -1000 NaN -> NaN Invalid_operation +andx832 and -1 NaN -> NaN Invalid_operation +andx833 and -0 NaN -> NaN Invalid_operation +andx834 and 0 NaN -> NaN Invalid_operation +andx835 and 1 NaN -> NaN Invalid_operation +andx836 and 1000 NaN -> NaN Invalid_operation +andx837 and Inf NaN -> NaN Invalid_operation + +andx841 and sNaN -Inf -> NaN Invalid_operation +andx842 and sNaN -1000 -> NaN Invalid_operation +andx843 and sNaN -1 -> NaN Invalid_operation +andx844 and sNaN -0 -> NaN Invalid_operation +andx845 and sNaN 0 -> NaN Invalid_operation +andx846 and sNaN 1 -> NaN Invalid_operation +andx847 and sNaN 1000 -> NaN Invalid_operation +andx848 and sNaN NaN -> NaN Invalid_operation +andx849 and sNaN sNaN -> NaN Invalid_operation +andx850 and NaN sNaN -> NaN Invalid_operation +andx851 and -Inf sNaN -> NaN Invalid_operation +andx852 and -1000 sNaN -> NaN Invalid_operation +andx853 and -1 sNaN -> NaN Invalid_operation +andx854 and -0 sNaN -> NaN Invalid_operation +andx855 and 0 sNaN -> NaN Invalid_operation +andx856 and 1 sNaN -> NaN Invalid_operation +andx857 and 1000 sNaN -> NaN Invalid_operation +andx858 and Inf sNaN -> NaN Invalid_operation +andx859 and NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +andx861 and NaN1 -Inf -> NaN Invalid_operation +andx862 and +NaN2 -1000 -> NaN Invalid_operation +andx863 and NaN3 1000 -> NaN Invalid_operation +andx864 and NaN4 Inf -> NaN Invalid_operation +andx865 and NaN5 +NaN6 -> NaN Invalid_operation +andx866 and -Inf NaN7 -> NaN Invalid_operation +andx867 and -1000 NaN8 -> NaN Invalid_operation +andx868 and 1000 NaN9 -> NaN Invalid_operation +andx869 and Inf +NaN10 -> NaN Invalid_operation +andx871 and sNaN11 -Inf -> NaN Invalid_operation +andx872 and sNaN12 -1000 -> NaN Invalid_operation +andx873 and sNaN13 1000 -> NaN Invalid_operation +andx874 and sNaN14 NaN17 -> NaN Invalid_operation +andx875 and sNaN15 sNaN18 -> NaN Invalid_operation +andx876 and NaN16 sNaN19 -> NaN Invalid_operation +andx877 and -Inf +sNaN20 -> NaN Invalid_operation +andx878 and -1000 sNaN21 -> NaN Invalid_operation +andx879 and 1000 sNaN22 -> NaN Invalid_operation +andx880 and Inf sNaN23 -> NaN Invalid_operation +andx881 and +NaN25 +sNaN24 -> NaN Invalid_operation +andx882 and -NaN26 NaN28 -> NaN Invalid_operation +andx883 and -sNaN27 sNaN29 -> NaN Invalid_operation +andx884 and 1000 -NaN30 -> NaN Invalid_operation +andx885 and 1000 -sNaN31 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/class.decTest b/Lib/test/decimaltestdata/class.decTest index 62d2fa472f..fa5bc3a12f 100644 --- a/Lib/test/decimaltestdata/class.decTest +++ b/Lib/test/decimaltestdata/class.decTest @@ -1,131 +1,131 @@ -------------------------------------------------------------------------
--- class.decTest -- Class operations --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- [New 2006.11.27]
-
-precision: 9
-maxExponent: 999
-minExponent: -999
-extended: 1
-clamp: 1
-rounding: half_even
-
-clasx001 class 0 -> +Zero
-clasx002 class 0.00 -> +Zero
-clasx003 class 0E+5 -> +Zero
-clasx004 class 1E-1007 -> +Subnormal
-clasx005 class 0.1E-999 -> +Subnormal
-clasx006 class 0.99999999E-999 -> +Subnormal
-clasx007 class 1.00000000E-999 -> +Normal
-clasx008 class 1E-999 -> +Normal
-clasx009 class 1E-100 -> +Normal
-clasx010 class 1E-10 -> +Normal
-clasx012 class 1E-1 -> +Normal
-clasx013 class 1 -> +Normal
-clasx014 class 2.50 -> +Normal
-clasx015 class 100.100 -> +Normal
-clasx016 class 1E+30 -> +Normal
-clasx017 class 1E+999 -> +Normal
-clasx018 class 9.99999999E+999 -> +Normal
-clasx019 class Inf -> +Infinity
-
-clasx021 class -0 -> -Zero
-clasx022 class -0.00 -> -Zero
-clasx023 class -0E+5 -> -Zero
-clasx024 class -1E-1007 -> -Subnormal
-clasx025 class -0.1E-999 -> -Subnormal
-clasx026 class -0.99999999E-999 -> -Subnormal
-clasx027 class -1.00000000E-999 -> -Normal
-clasx028 class -1E-999 -> -Normal
-clasx029 class -1E-100 -> -Normal
-clasx030 class -1E-10 -> -Normal
-clasx032 class -1E-1 -> -Normal
-clasx033 class -1 -> -Normal
-clasx034 class -2.50 -> -Normal
-clasx035 class -100.100 -> -Normal
-clasx036 class -1E+30 -> -Normal
-clasx037 class -1E+999 -> -Normal
-clasx038 class -9.99999999E+999 -> -Normal
-clasx039 class -Inf -> -Infinity
-
-clasx041 class NaN -> NaN
-clasx042 class -NaN -> NaN
-clasx043 class +NaN12345 -> NaN
-clasx044 class sNaN -> sNaN
-clasx045 class -sNaN -> sNaN
-clasx046 class +sNaN12345 -> sNaN
-
-
--- decimal64 bounds
-
-precision: 16
-maxExponent: 384
-minExponent: -383
-clamp: 1
-rounding: half_even
-
-clasx201 class 0 -> +Zero
-clasx202 class 0.00 -> +Zero
-clasx203 class 0E+5 -> +Zero
-clasx204 class 1E-396 -> +Subnormal
-clasx205 class 0.1E-383 -> +Subnormal
-clasx206 class 0.999999999999999E-383 -> +Subnormal
-clasx207 class 1.000000000000000E-383 -> +Normal
-clasx208 class 1E-383 -> +Normal
-clasx209 class 1E-100 -> +Normal
-clasx210 class 1E-10 -> +Normal
-clasx212 class 1E-1 -> +Normal
-clasx213 class 1 -> +Normal
-clasx214 class 2.50 -> +Normal
-clasx215 class 100.100 -> +Normal
-clasx216 class 1E+30 -> +Normal
-clasx217 class 1E+384 -> +Normal
-clasx218 class 9.999999999999999E+384 -> +Normal
-clasx219 class Inf -> +Infinity
-
-clasx221 class -0 -> -Zero
-clasx222 class -0.00 -> -Zero
-clasx223 class -0E+5 -> -Zero
-clasx224 class -1E-396 -> -Subnormal
-clasx225 class -0.1E-383 -> -Subnormal
-clasx226 class -0.999999999999999E-383 -> -Subnormal
-clasx227 class -1.000000000000000E-383 -> -Normal
-clasx228 class -1E-383 -> -Normal
-clasx229 class -1E-100 -> -Normal
-clasx230 class -1E-10 -> -Normal
-clasx232 class -1E-1 -> -Normal
-clasx233 class -1 -> -Normal
-clasx234 class -2.50 -> -Normal
-clasx235 class -100.100 -> -Normal
-clasx236 class -1E+30 -> -Normal
-clasx237 class -1E+384 -> -Normal
-clasx238 class -9.999999999999999E+384 -> -Normal
-clasx239 class -Inf -> -Infinity
-
-clasx241 class NaN -> NaN
-clasx242 class -NaN -> NaN
-clasx243 class +NaN12345 -> NaN
-clasx244 class sNaN -> sNaN
-clasx245 class -sNaN -> sNaN
-clasx246 class +sNaN12345 -> sNaN
-
-
-
+------------------------------------------------------------------------ +-- class.decTest -- Class operations -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- [New 2006.11.27] + +precision: 9 +maxExponent: 999 +minExponent: -999 +extended: 1 +clamp: 1 +rounding: half_even + +clasx001 class 0 -> +Zero +clasx002 class 0.00 -> +Zero +clasx003 class 0E+5 -> +Zero +clasx004 class 1E-1007 -> +Subnormal +clasx005 class 0.1E-999 -> +Subnormal +clasx006 class 0.99999999E-999 -> +Subnormal +clasx007 class 1.00000000E-999 -> +Normal +clasx008 class 1E-999 -> +Normal +clasx009 class 1E-100 -> +Normal +clasx010 class 1E-10 -> +Normal +clasx012 class 1E-1 -> +Normal +clasx013 class 1 -> +Normal +clasx014 class 2.50 -> +Normal +clasx015 class 100.100 -> +Normal +clasx016 class 1E+30 -> +Normal +clasx017 class 1E+999 -> +Normal +clasx018 class 9.99999999E+999 -> +Normal +clasx019 class Inf -> +Infinity + +clasx021 class -0 -> -Zero +clasx022 class -0.00 -> -Zero +clasx023 class -0E+5 -> -Zero +clasx024 class -1E-1007 -> -Subnormal +clasx025 class -0.1E-999 -> -Subnormal +clasx026 class -0.99999999E-999 -> -Subnormal +clasx027 class -1.00000000E-999 -> -Normal +clasx028 class -1E-999 -> -Normal +clasx029 class -1E-100 -> -Normal +clasx030 class -1E-10 -> -Normal +clasx032 class -1E-1 -> -Normal +clasx033 class -1 -> -Normal +clasx034 class -2.50 -> -Normal +clasx035 class -100.100 -> -Normal +clasx036 class -1E+30 -> -Normal +clasx037 class -1E+999 -> -Normal +clasx038 class -9.99999999E+999 -> -Normal +clasx039 class -Inf -> -Infinity + +clasx041 class NaN -> NaN +clasx042 class -NaN -> NaN +clasx043 class +NaN12345 -> NaN +clasx044 class sNaN -> sNaN +clasx045 class -sNaN -> sNaN +clasx046 class +sNaN12345 -> sNaN + + +-- decimal64 bounds + +precision: 16 +maxExponent: 384 +minExponent: -383 +clamp: 1 +rounding: half_even + +clasx201 class 0 -> +Zero +clasx202 class 0.00 -> +Zero +clasx203 class 0E+5 -> +Zero +clasx204 class 1E-396 -> +Subnormal +clasx205 class 0.1E-383 -> +Subnormal +clasx206 class 0.999999999999999E-383 -> +Subnormal +clasx207 class 1.000000000000000E-383 -> +Normal +clasx208 class 1E-383 -> +Normal +clasx209 class 1E-100 -> +Normal +clasx210 class 1E-10 -> +Normal +clasx212 class 1E-1 -> +Normal +clasx213 class 1 -> +Normal +clasx214 class 2.50 -> +Normal +clasx215 class 100.100 -> +Normal +clasx216 class 1E+30 -> +Normal +clasx217 class 1E+384 -> +Normal +clasx218 class 9.999999999999999E+384 -> +Normal +clasx219 class Inf -> +Infinity + +clasx221 class -0 -> -Zero +clasx222 class -0.00 -> -Zero +clasx223 class -0E+5 -> -Zero +clasx224 class -1E-396 -> -Subnormal +clasx225 class -0.1E-383 -> -Subnormal +clasx226 class -0.999999999999999E-383 -> -Subnormal +clasx227 class -1.000000000000000E-383 -> -Normal +clasx228 class -1E-383 -> -Normal +clasx229 class -1E-100 -> -Normal +clasx230 class -1E-10 -> -Normal +clasx232 class -1E-1 -> -Normal +clasx233 class -1 -> -Normal +clasx234 class -2.50 -> -Normal +clasx235 class -100.100 -> -Normal +clasx236 class -1E+30 -> -Normal +clasx237 class -1E+384 -> -Normal +clasx238 class -9.999999999999999E+384 -> -Normal +clasx239 class -Inf -> -Infinity + +clasx241 class NaN -> NaN +clasx242 class -NaN -> NaN +clasx243 class +NaN12345 -> NaN +clasx244 class sNaN -> sNaN +clasx245 class -sNaN -> sNaN +clasx246 class +sNaN12345 -> sNaN + + + diff --git a/Lib/test/decimaltestdata/comparetotal.decTest b/Lib/test/decimaltestdata/comparetotal.decTest index ad87b4ce29..252c49fb61 100644 --- a/Lib/test/decimaltestdata/comparetotal.decTest +++ b/Lib/test/decimaltestdata/comparetotal.decTest @@ -1,798 +1,798 @@ -------------------------------------------------------------------------
--- comparetotal.decTest -- decimal comparison using total ordering --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- Note that we cannot assume add/subtract tests cover paths adequately,
--- here, because the code might be quite different (comparison cannot
--- overflow or underflow, so actual subtractions are not necessary).
--- Similarly, comparetotal will have some radically different paths
--- than compare.
-
-extended: 1
-precision: 16
-rounding: half_up
-maxExponent: 384
-minExponent: -383
-
--- sanity checks
-cotx001 comparetotal -2 -2 -> 0
-cotx002 comparetotal -2 -1 -> -1
-cotx003 comparetotal -2 0 -> -1
-cotx004 comparetotal -2 1 -> -1
-cotx005 comparetotal -2 2 -> -1
-cotx006 comparetotal -1 -2 -> 1
-cotx007 comparetotal -1 -1 -> 0
-cotx008 comparetotal -1 0 -> -1
-cotx009 comparetotal -1 1 -> -1
-cotx010 comparetotal -1 2 -> -1
-cotx011 comparetotal 0 -2 -> 1
-cotx012 comparetotal 0 -1 -> 1
-cotx013 comparetotal 0 0 -> 0
-cotx014 comparetotal 0 1 -> -1
-cotx015 comparetotal 0 2 -> -1
-cotx016 comparetotal 1 -2 -> 1
-cotx017 comparetotal 1 -1 -> 1
-cotx018 comparetotal 1 0 -> 1
-cotx019 comparetotal 1 1 -> 0
-cotx020 comparetotal 1 2 -> -1
-cotx021 comparetotal 2 -2 -> 1
-cotx022 comparetotal 2 -1 -> 1
-cotx023 comparetotal 2 0 -> 1
-cotx025 comparetotal 2 1 -> 1
-cotx026 comparetotal 2 2 -> 0
-
-cotx031 comparetotal -20 -20 -> 0
-cotx032 comparetotal -20 -10 -> -1
-cotx033 comparetotal -20 00 -> -1
-cotx034 comparetotal -20 10 -> -1
-cotx035 comparetotal -20 20 -> -1
-cotx036 comparetotal -10 -20 -> 1
-cotx037 comparetotal -10 -10 -> 0
-cotx038 comparetotal -10 00 -> -1
-cotx039 comparetotal -10 10 -> -1
-cotx040 comparetotal -10 20 -> -1
-cotx041 comparetotal 00 -20 -> 1
-cotx042 comparetotal 00 -10 -> 1
-cotx043 comparetotal 00 00 -> 0
-cotx044 comparetotal 00 10 -> -1
-cotx045 comparetotal 00 20 -> -1
-cotx046 comparetotal 10 -20 -> 1
-cotx047 comparetotal 10 -10 -> 1
-cotx048 comparetotal 10 00 -> 1
-cotx049 comparetotal 10 10 -> 0
-cotx050 comparetotal 10 20 -> -1
-cotx051 comparetotal 20 -20 -> 1
-cotx052 comparetotal 20 -10 -> 1
-cotx053 comparetotal 20 00 -> 1
-cotx055 comparetotal 20 10 -> 1
-cotx056 comparetotal 20 20 -> 0
-
-cotx061 comparetotal -2.0 -2.0 -> 0
-cotx062 comparetotal -2.0 -1.0 -> -1
-cotx063 comparetotal -2.0 0.0 -> -1
-cotx064 comparetotal -2.0 1.0 -> -1
-cotx065 comparetotal -2.0 2.0 -> -1
-cotx066 comparetotal -1.0 -2.0 -> 1
-cotx067 comparetotal -1.0 -1.0 -> 0
-cotx068 comparetotal -1.0 0.0 -> -1
-cotx069 comparetotal -1.0 1.0 -> -1
-cotx070 comparetotal -1.0 2.0 -> -1
-cotx071 comparetotal 0.0 -2.0 -> 1
-cotx072 comparetotal 0.0 -1.0 -> 1
-cotx073 comparetotal 0.0 0.0 -> 0
-cotx074 comparetotal 0.0 1.0 -> -1
-cotx075 comparetotal 0.0 2.0 -> -1
-cotx076 comparetotal 1.0 -2.0 -> 1
-cotx077 comparetotal 1.0 -1.0 -> 1
-cotx078 comparetotal 1.0 0.0 -> 1
-cotx079 comparetotal 1.0 1.0 -> 0
-cotx080 comparetotal 1.0 2.0 -> -1
-cotx081 comparetotal 2.0 -2.0 -> 1
-cotx082 comparetotal 2.0 -1.0 -> 1
-cotx083 comparetotal 2.0 0.0 -> 1
-cotx085 comparetotal 2.0 1.0 -> 1
-cotx086 comparetotal 2.0 2.0 -> 0
-
--- now some cases which might overflow if subtract were used
-maxexponent: 999999999
-minexponent: -999999999
-cotx090 comparetotal 9.99999999E+999999999 9.99999999E+999999999 -> 0
-cotx091 comparetotal -9.99999999E+999999999 9.99999999E+999999999 -> -1
-cotx092 comparetotal 9.99999999E+999999999 -9.99999999E+999999999 -> 1
-cotx093 comparetotal -9.99999999E+999999999 -9.99999999E+999999999 -> 0
-
--- Examples
-cotx094 comparetotal 12.73 127.9 -> -1
-cotx095 comparetotal -127 12 -> -1
-cotx096 comparetotal 12.30 12.3 -> -1
-cotx097 comparetotal 12.30 12.30 -> 0
-cotx098 comparetotal 12.3 12.300 -> 1
-cotx099 comparetotal 12.3 NaN -> -1
-
--- some differing length/exponent cases
--- in this first group, compare would compare all equal
-cotx100 comparetotal 7.0 7.0 -> 0
-cotx101 comparetotal 7.0 7 -> -1
-cotx102 comparetotal 7 7.0 -> 1
-cotx103 comparetotal 7E+0 7.0 -> 1
-cotx104 comparetotal 70E-1 7.0 -> 0
-cotx105 comparetotal 0.7E+1 7 -> 0
-cotx106 comparetotal 70E-1 7 -> -1
-cotx107 comparetotal 7.0 7E+0 -> -1
-cotx108 comparetotal 7.0 70E-1 -> 0
-cotx109 comparetotal 7 0.7E+1 -> 0
-cotx110 comparetotal 7 70E-1 -> 1
-
-cotx120 comparetotal 8.0 7.0 -> 1
-cotx121 comparetotal 8.0 7 -> 1
-cotx122 comparetotal 8 7.0 -> 1
-cotx123 comparetotal 8E+0 7.0 -> 1
-cotx124 comparetotal 80E-1 7.0 -> 1
-cotx125 comparetotal 0.8E+1 7 -> 1
-cotx126 comparetotal 80E-1 7 -> 1
-cotx127 comparetotal 8.0 7E+0 -> 1
-cotx128 comparetotal 8.0 70E-1 -> 1
-cotx129 comparetotal 8 0.7E+1 -> 1
-cotx130 comparetotal 8 70E-1 -> 1
-
-cotx140 comparetotal 8.0 9.0 -> -1
-cotx141 comparetotal 8.0 9 -> -1
-cotx142 comparetotal 8 9.0 -> -1
-cotx143 comparetotal 8E+0 9.0 -> -1
-cotx144 comparetotal 80E-1 9.0 -> -1
-cotx145 comparetotal 0.8E+1 9 -> -1
-cotx146 comparetotal 80E-1 9 -> -1
-cotx147 comparetotal 8.0 9E+0 -> -1
-cotx148 comparetotal 8.0 90E-1 -> -1
-cotx149 comparetotal 8 0.9E+1 -> -1
-cotx150 comparetotal 8 90E-1 -> -1
-
--- and again, with sign changes -+ ..
-cotx200 comparetotal -7.0 7.0 -> -1
-cotx201 comparetotal -7.0 7 -> -1
-cotx202 comparetotal -7 7.0 -> -1
-cotx203 comparetotal -7E+0 7.0 -> -1
-cotx204 comparetotal -70E-1 7.0 -> -1
-cotx205 comparetotal -0.7E+1 7 -> -1
-cotx206 comparetotal -70E-1 7 -> -1
-cotx207 comparetotal -7.0 7E+0 -> -1
-cotx208 comparetotal -7.0 70E-1 -> -1
-cotx209 comparetotal -7 0.7E+1 -> -1
-cotx210 comparetotal -7 70E-1 -> -1
-
-cotx220 comparetotal -8.0 7.0 -> -1
-cotx221 comparetotal -8.0 7 -> -1
-cotx222 comparetotal -8 7.0 -> -1
-cotx223 comparetotal -8E+0 7.0 -> -1
-cotx224 comparetotal -80E-1 7.0 -> -1
-cotx225 comparetotal -0.8E+1 7 -> -1
-cotx226 comparetotal -80E-1 7 -> -1
-cotx227 comparetotal -8.0 7E+0 -> -1
-cotx228 comparetotal -8.0 70E-1 -> -1
-cotx229 comparetotal -8 0.7E+1 -> -1
-cotx230 comparetotal -8 70E-1 -> -1
-
-cotx240 comparetotal -8.0 9.0 -> -1
-cotx241 comparetotal -8.0 9 -> -1
-cotx242 comparetotal -8 9.0 -> -1
-cotx243 comparetotal -8E+0 9.0 -> -1
-cotx244 comparetotal -80E-1 9.0 -> -1
-cotx245 comparetotal -0.8E+1 9 -> -1
-cotx246 comparetotal -80E-1 9 -> -1
-cotx247 comparetotal -8.0 9E+0 -> -1
-cotx248 comparetotal -8.0 90E-1 -> -1
-cotx249 comparetotal -8 0.9E+1 -> -1
-cotx250 comparetotal -8 90E-1 -> -1
-
--- and again, with sign changes +- ..
-cotx300 comparetotal 7.0 -7.0 -> 1
-cotx301 comparetotal 7.0 -7 -> 1
-cotx302 comparetotal 7 -7.0 -> 1
-cotx303 comparetotal 7E+0 -7.0 -> 1
-cotx304 comparetotal 70E-1 -7.0 -> 1
-cotx305 comparetotal .7E+1 -7 -> 1
-cotx306 comparetotal 70E-1 -7 -> 1
-cotx307 comparetotal 7.0 -7E+0 -> 1
-cotx308 comparetotal 7.0 -70E-1 -> 1
-cotx309 comparetotal 7 -.7E+1 -> 1
-cotx310 comparetotal 7 -70E-1 -> 1
-
-cotx320 comparetotal 8.0 -7.0 -> 1
-cotx321 comparetotal 8.0 -7 -> 1
-cotx322 comparetotal 8 -7.0 -> 1
-cotx323 comparetotal 8E+0 -7.0 -> 1
-cotx324 comparetotal 80E-1 -7.0 -> 1
-cotx325 comparetotal .8E+1 -7 -> 1
-cotx326 comparetotal 80E-1 -7 -> 1
-cotx327 comparetotal 8.0 -7E+0 -> 1
-cotx328 comparetotal 8.0 -70E-1 -> 1
-cotx329 comparetotal 8 -.7E+1 -> 1
-cotx330 comparetotal 8 -70E-1 -> 1
-
-cotx340 comparetotal 8.0 -9.0 -> 1
-cotx341 comparetotal 8.0 -9 -> 1
-cotx342 comparetotal 8 -9.0 -> 1
-cotx343 comparetotal 8E+0 -9.0 -> 1
-cotx344 comparetotal 80E-1 -9.0 -> 1
-cotx345 comparetotal .8E+1 -9 -> 1
-cotx346 comparetotal 80E-1 -9 -> 1
-cotx347 comparetotal 8.0 -9E+0 -> 1
-cotx348 comparetotal 8.0 -90E-1 -> 1
-cotx349 comparetotal 8 -.9E+1 -> 1
-cotx350 comparetotal 8 -90E-1 -> 1
-
--- and again, with sign changes -- ..
-cotx400 comparetotal -7.0 -7.0 -> 0
-cotx401 comparetotal -7.0 -7 -> 1
-cotx402 comparetotal -7 -7.0 -> -1
-cotx403 comparetotal -7E+0 -7.0 -> -1
-cotx404 comparetotal -70E-1 -7.0 -> 0
-cotx405 comparetotal -.7E+1 -7 -> 0
-cotx406 comparetotal -70E-1 -7 -> 1
-cotx407 comparetotal -7.0 -7E+0 -> 1
-cotx408 comparetotal -7.0 -70E-1 -> 0
-cotx409 comparetotal -7 -.7E+1 -> 0
-cotx410 comparetotal -7 -70E-1 -> -1
-
-cotx420 comparetotal -8.0 -7.0 -> -1
-cotx421 comparetotal -8.0 -7 -> -1
-cotx422 comparetotal -8 -7.0 -> -1
-cotx423 comparetotal -8E+0 -7.0 -> -1
-cotx424 comparetotal -80E-1 -7.0 -> -1
-cotx425 comparetotal -.8E+1 -7 -> -1
-cotx426 comparetotal -80E-1 -7 -> -1
-cotx427 comparetotal -8.0 -7E+0 -> -1
-cotx428 comparetotal -8.0 -70E-1 -> -1
-cotx429 comparetotal -8 -.7E+1 -> -1
-cotx430 comparetotal -8 -70E-1 -> -1
-
-cotx440 comparetotal -8.0 -9.0 -> 1
-cotx441 comparetotal -8.0 -9 -> 1
-cotx442 comparetotal -8 -9.0 -> 1
-cotx443 comparetotal -8E+0 -9.0 -> 1
-cotx444 comparetotal -80E-1 -9.0 -> 1
-cotx445 comparetotal -.8E+1 -9 -> 1
-cotx446 comparetotal -80E-1 -9 -> 1
-cotx447 comparetotal -8.0 -9E+0 -> 1
-cotx448 comparetotal -8.0 -90E-1 -> 1
-cotx449 comparetotal -8 -.9E+1 -> 1
-cotx450 comparetotal -8 -90E-1 -> 1
-
-
--- testcases that subtract to lots of zeros at boundaries [pgr]
-precision: 40
-cotx470 comparetotal 123.4560000000000000E789 123.456E789 -> -1
-cotx471 comparetotal 123.456000000000000E-89 123.456E-89 -> -1
-cotx472 comparetotal 123.45600000000000E789 123.456E789 -> -1
-cotx473 comparetotal 123.4560000000000E-89 123.456E-89 -> -1
-cotx474 comparetotal 123.456000000000E789 123.456E789 -> -1
-cotx475 comparetotal 123.45600000000E-89 123.456E-89 -> -1
-cotx476 comparetotal 123.4560000000E789 123.456E789 -> -1
-cotx477 comparetotal 123.456000000E-89 123.456E-89 -> -1
-cotx478 comparetotal 123.45600000E789 123.456E789 -> -1
-cotx479 comparetotal 123.4560000E-89 123.456E-89 -> -1
-cotx480 comparetotal 123.456000E789 123.456E789 -> -1
-cotx481 comparetotal 123.45600E-89 123.456E-89 -> -1
-cotx482 comparetotal 123.4560E789 123.456E789 -> -1
-cotx483 comparetotal 123.456E-89 123.456E-89 -> 0
-cotx484 comparetotal 123.456E-89 123.4560000000000000E-89 -> 1
-cotx485 comparetotal 123.456E789 123.456000000000000E789 -> 1
-cotx486 comparetotal 123.456E-89 123.45600000000000E-89 -> 1
-cotx487 comparetotal 123.456E789 123.4560000000000E789 -> 1
-cotx488 comparetotal 123.456E-89 123.456000000000E-89 -> 1
-cotx489 comparetotal 123.456E789 123.45600000000E789 -> 1
-cotx490 comparetotal 123.456E-89 123.4560000000E-89 -> 1
-cotx491 comparetotal 123.456E789 123.456000000E789 -> 1
-cotx492 comparetotal 123.456E-89 123.45600000E-89 -> 1
-cotx493 comparetotal 123.456E789 123.4560000E789 -> 1
-cotx494 comparetotal 123.456E-89 123.456000E-89 -> 1
-cotx495 comparetotal 123.456E789 123.45600E789 -> 1
-cotx496 comparetotal 123.456E-89 123.4560E-89 -> 1
-cotx497 comparetotal 123.456E789 123.456E789 -> 0
-
--- wide-ranging, around precision; signs equal
-precision: 9
-cotx500 comparetotal 1 1E-15 -> 1
-cotx501 comparetotal 1 1E-14 -> 1
-cotx502 comparetotal 1 1E-13 -> 1
-cotx503 comparetotal 1 1E-12 -> 1
-cotx504 comparetotal 1 1E-11 -> 1
-cotx505 comparetotal 1 1E-10 -> 1
-cotx506 comparetotal 1 1E-9 -> 1
-cotx507 comparetotal 1 1E-8 -> 1
-cotx508 comparetotal 1 1E-7 -> 1
-cotx509 comparetotal 1 1E-6 -> 1
-cotx510 comparetotal 1 1E-5 -> 1
-cotx511 comparetotal 1 1E-4 -> 1
-cotx512 comparetotal 1 1E-3 -> 1
-cotx513 comparetotal 1 1E-2 -> 1
-cotx514 comparetotal 1 1E-1 -> 1
-cotx515 comparetotal 1 1E-0 -> 0
-cotx516 comparetotal 1 1E+1 -> -1
-cotx517 comparetotal 1 1E+2 -> -1
-cotx518 comparetotal 1 1E+3 -> -1
-cotx519 comparetotal 1 1E+4 -> -1
-cotx521 comparetotal 1 1E+5 -> -1
-cotx522 comparetotal 1 1E+6 -> -1
-cotx523 comparetotal 1 1E+7 -> -1
-cotx524 comparetotal 1 1E+8 -> -1
-cotx525 comparetotal 1 1E+9 -> -1
-cotx526 comparetotal 1 1E+10 -> -1
-cotx527 comparetotal 1 1E+11 -> -1
-cotx528 comparetotal 1 1E+12 -> -1
-cotx529 comparetotal 1 1E+13 -> -1
-cotx530 comparetotal 1 1E+14 -> -1
-cotx531 comparetotal 1 1E+15 -> -1
--- LR swap
-cotx540 comparetotal 1E-15 1 -> -1
-cotx541 comparetotal 1E-14 1 -> -1
-cotx542 comparetotal 1E-13 1 -> -1
-cotx543 comparetotal 1E-12 1 -> -1
-cotx544 comparetotal 1E-11 1 -> -1
-cotx545 comparetotal 1E-10 1 -> -1
-cotx546 comparetotal 1E-9 1 -> -1
-cotx547 comparetotal 1E-8 1 -> -1
-cotx548 comparetotal 1E-7 1 -> -1
-cotx549 comparetotal 1E-6 1 -> -1
-cotx550 comparetotal 1E-5 1 -> -1
-cotx551 comparetotal 1E-4 1 -> -1
-cotx552 comparetotal 1E-3 1 -> -1
-cotx553 comparetotal 1E-2 1 -> -1
-cotx554 comparetotal 1E-1 1 -> -1
-cotx555 comparetotal 1E-0 1 -> 0
-cotx556 comparetotal 1E+1 1 -> 1
-cotx557 comparetotal 1E+2 1 -> 1
-cotx558 comparetotal 1E+3 1 -> 1
-cotx559 comparetotal 1E+4 1 -> 1
-cotx561 comparetotal 1E+5 1 -> 1
-cotx562 comparetotal 1E+6 1 -> 1
-cotx563 comparetotal 1E+7 1 -> 1
-cotx564 comparetotal 1E+8 1 -> 1
-cotx565 comparetotal 1E+9 1 -> 1
-cotx566 comparetotal 1E+10 1 -> 1
-cotx567 comparetotal 1E+11 1 -> 1
-cotx568 comparetotal 1E+12 1 -> 1
-cotx569 comparetotal 1E+13 1 -> 1
-cotx570 comparetotal 1E+14 1 -> 1
-cotx571 comparetotal 1E+15 1 -> 1
--- similar with an useful coefficient, one side only
-cotx580 comparetotal 0.000000987654321 1E-15 -> 1
-cotx581 comparetotal 0.000000987654321 1E-14 -> 1
-cotx582 comparetotal 0.000000987654321 1E-13 -> 1
-cotx583 comparetotal 0.000000987654321 1E-12 -> 1
-cotx584 comparetotal 0.000000987654321 1E-11 -> 1
-cotx585 comparetotal 0.000000987654321 1E-10 -> 1
-cotx586 comparetotal 0.000000987654321 1E-9 -> 1
-cotx587 comparetotal 0.000000987654321 1E-8 -> 1
-cotx588 comparetotal 0.000000987654321 1E-7 -> 1
-cotx589 comparetotal 0.000000987654321 1E-6 -> -1
-cotx590 comparetotal 0.000000987654321 1E-5 -> -1
-cotx591 comparetotal 0.000000987654321 1E-4 -> -1
-cotx592 comparetotal 0.000000987654321 1E-3 -> -1
-cotx593 comparetotal 0.000000987654321 1E-2 -> -1
-cotx594 comparetotal 0.000000987654321 1E-1 -> -1
-cotx595 comparetotal 0.000000987654321 1E-0 -> -1
-cotx596 comparetotal 0.000000987654321 1E+1 -> -1
-cotx597 comparetotal 0.000000987654321 1E+2 -> -1
-cotx598 comparetotal 0.000000987654321 1E+3 -> -1
-cotx599 comparetotal 0.000000987654321 1E+4 -> -1
-
--- check some unit-y traps
-precision: 20
-cotx600 comparetotal 12 12.2345 -> -1
-cotx601 comparetotal 12.0 12.2345 -> -1
-cotx602 comparetotal 12.00 12.2345 -> -1
-cotx603 comparetotal 12.000 12.2345 -> -1
-cotx604 comparetotal 12.0000 12.2345 -> -1
-cotx605 comparetotal 12.00000 12.2345 -> -1
-cotx606 comparetotal 12.000000 12.2345 -> -1
-cotx607 comparetotal 12.0000000 12.2345 -> -1
-cotx608 comparetotal 12.00000000 12.2345 -> -1
-cotx609 comparetotal 12.000000000 12.2345 -> -1
-cotx610 comparetotal 12.1234 12 -> 1
-cotx611 comparetotal 12.1234 12.0 -> 1
-cotx612 comparetotal 12.1234 12.00 -> 1
-cotx613 comparetotal 12.1234 12.000 -> 1
-cotx614 comparetotal 12.1234 12.0000 -> 1
-cotx615 comparetotal 12.1234 12.00000 -> 1
-cotx616 comparetotal 12.1234 12.000000 -> 1
-cotx617 comparetotal 12.1234 12.0000000 -> 1
-cotx618 comparetotal 12.1234 12.00000000 -> 1
-cotx619 comparetotal 12.1234 12.000000000 -> 1
-cotx620 comparetotal -12 -12.2345 -> 1
-cotx621 comparetotal -12.0 -12.2345 -> 1
-cotx622 comparetotal -12.00 -12.2345 -> 1
-cotx623 comparetotal -12.000 -12.2345 -> 1
-cotx624 comparetotal -12.0000 -12.2345 -> 1
-cotx625 comparetotal -12.00000 -12.2345 -> 1
-cotx626 comparetotal -12.000000 -12.2345 -> 1
-cotx627 comparetotal -12.0000000 -12.2345 -> 1
-cotx628 comparetotal -12.00000000 -12.2345 -> 1
-cotx629 comparetotal -12.000000000 -12.2345 -> 1
-cotx630 comparetotal -12.1234 -12 -> -1
-cotx631 comparetotal -12.1234 -12.0 -> -1
-cotx632 comparetotal -12.1234 -12.00 -> -1
-cotx633 comparetotal -12.1234 -12.000 -> -1
-cotx634 comparetotal -12.1234 -12.0000 -> -1
-cotx635 comparetotal -12.1234 -12.00000 -> -1
-cotx636 comparetotal -12.1234 -12.000000 -> -1
-cotx637 comparetotal -12.1234 -12.0000000 -> -1
-cotx638 comparetotal -12.1234 -12.00000000 -> -1
-cotx639 comparetotal -12.1234 -12.000000000 -> -1
-precision: 9
-
--- extended zeros
-cotx640 comparetotal 0 0 -> 0
-cotx641 comparetotal 0 -0 -> 1
-cotx642 comparetotal 0 -0.0 -> 1
-cotx643 comparetotal 0 0.0 -> 1
-cotx644 comparetotal -0 0 -> -1
-cotx645 comparetotal -0 -0 -> 0
-cotx646 comparetotal -0 -0.0 -> -1
-cotx647 comparetotal -0 0.0 -> -1
-cotx648 comparetotal 0.0 0 -> -1
-cotx649 comparetotal 0.0 -0 -> 1
-cotx650 comparetotal 0.0 -0.0 -> 1
-cotx651 comparetotal 0.0 0.0 -> 0
-cotx652 comparetotal -0.0 0 -> -1
-cotx653 comparetotal -0.0 -0 -> 1
-cotx654 comparetotal -0.0 -0.0 -> 0
-cotx655 comparetotal -0.0 0.0 -> -1
-
-cotx656 comparetotal -0E1 0.0 -> -1
-cotx657 comparetotal -0E2 0.0 -> -1
-cotx658 comparetotal 0E1 0.0 -> 1
-cotx659 comparetotal 0E2 0.0 -> 1
-cotx660 comparetotal -0E1 0 -> -1
-cotx661 comparetotal -0E2 0 -> -1
-cotx662 comparetotal 0E1 0 -> 1
-cotx663 comparetotal 0E2 0 -> 1
-cotx664 comparetotal -0E1 -0E1 -> 0
-cotx665 comparetotal -0E2 -0E1 -> -1
-cotx666 comparetotal 0E1 -0E1 -> 1
-cotx667 comparetotal 0E2 -0E1 -> 1
-cotx668 comparetotal -0E1 -0E2 -> 1
-cotx669 comparetotal -0E2 -0E2 -> 0
-cotx670 comparetotal 0E1 -0E2 -> 1
-cotx671 comparetotal 0E2 -0E2 -> 1
-cotx672 comparetotal -0E1 0E1 -> -1
-cotx673 comparetotal -0E2 0E1 -> -1
-cotx674 comparetotal 0E1 0E1 -> 0
-cotx675 comparetotal 0E2 0E1 -> 1
-cotx676 comparetotal -0E1 0E2 -> -1
-cotx677 comparetotal -0E2 0E2 -> -1
-cotx678 comparetotal 0E1 0E2 -> -1
-cotx679 comparetotal 0E2 0E2 -> 0
-
--- trailing zeros; unit-y
-precision: 20
-cotx680 comparetotal 12 12 -> 0
-cotx681 comparetotal 12 12.0 -> 1
-cotx682 comparetotal 12 12.00 -> 1
-cotx683 comparetotal 12 12.000 -> 1
-cotx684 comparetotal 12 12.0000 -> 1
-cotx685 comparetotal 12 12.00000 -> 1
-cotx686 comparetotal 12 12.000000 -> 1
-cotx687 comparetotal 12 12.0000000 -> 1
-cotx688 comparetotal 12 12.00000000 -> 1
-cotx689 comparetotal 12 12.000000000 -> 1
-cotx690 comparetotal 12 12 -> 0
-cotx691 comparetotal 12.0 12 -> -1
-cotx692 comparetotal 12.00 12 -> -1
-cotx693 comparetotal 12.000 12 -> -1
-cotx694 comparetotal 12.0000 12 -> -1
-cotx695 comparetotal 12.00000 12 -> -1
-cotx696 comparetotal 12.000000 12 -> -1
-cotx697 comparetotal 12.0000000 12 -> -1
-cotx698 comparetotal 12.00000000 12 -> -1
-cotx699 comparetotal 12.000000000 12 -> -1
-
--- long operand checks
-maxexponent: 999
-minexponent: -999
-precision: 9
-cotx701 comparetotal 12345678000 1 -> 1
-cotx702 comparetotal 1 12345678000 -> -1
-cotx703 comparetotal 1234567800 1 -> 1
-cotx704 comparetotal 1 1234567800 -> -1
-cotx705 comparetotal 1234567890 1 -> 1
-cotx706 comparetotal 1 1234567890 -> -1
-cotx707 comparetotal 1234567891 1 -> 1
-cotx708 comparetotal 1 1234567891 -> -1
-cotx709 comparetotal 12345678901 1 -> 1
-cotx710 comparetotal 1 12345678901 -> -1
-cotx711 comparetotal 1234567896 1 -> 1
-cotx712 comparetotal 1 1234567896 -> -1
-cotx713 comparetotal -1234567891 1 -> -1
-cotx714 comparetotal 1 -1234567891 -> 1
-cotx715 comparetotal -12345678901 1 -> -1
-cotx716 comparetotal 1 -12345678901 -> 1
-cotx717 comparetotal -1234567896 1 -> -1
-cotx718 comparetotal 1 -1234567896 -> 1
-
-precision: 15
--- same with plenty of precision
-cotx721 comparetotal 12345678000 1 -> 1
-cotx722 comparetotal 1 12345678000 -> -1
-cotx723 comparetotal 1234567800 1 -> 1
-cotx724 comparetotal 1 1234567800 -> -1
-cotx725 comparetotal 1234567890 1 -> 1
-cotx726 comparetotal 1 1234567890 -> -1
-cotx727 comparetotal 1234567891 1 -> 1
-cotx728 comparetotal 1 1234567891 -> -1
-cotx729 comparetotal 12345678901 1 -> 1
-cotx730 comparetotal 1 12345678901 -> -1
-cotx731 comparetotal 1234567896 1 -> 1
-cotx732 comparetotal 1 1234567896 -> -1
-
--- residue cases
-precision: 5
-cotx740 comparetotal 1 0.9999999 -> 1
-cotx741 comparetotal 1 0.999999 -> 1
-cotx742 comparetotal 1 0.99999 -> 1
-cotx743 comparetotal 1 1.0000 -> 1
-cotx744 comparetotal 1 1.00001 -> -1
-cotx745 comparetotal 1 1.000001 -> -1
-cotx746 comparetotal 1 1.0000001 -> -1
-cotx750 comparetotal 0.9999999 1 -> -1
-cotx751 comparetotal 0.999999 1 -> -1
-cotx752 comparetotal 0.99999 1 -> -1
-cotx753 comparetotal 1.0000 1 -> -1
-cotx754 comparetotal 1.00001 1 -> 1
-cotx755 comparetotal 1.000001 1 -> 1
-cotx756 comparetotal 1.0000001 1 -> 1
-
--- a selection of longies
-cotx760 comparetotal -36852134.84194296250843579428931 -5830629.8347085025808756560357940 -> -1
-cotx761 comparetotal -36852134.84194296250843579428931 -36852134.84194296250843579428931 -> 0
-cotx762 comparetotal -36852134.94194296250843579428931 -36852134.84194296250843579428931 -> -1
-cotx763 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1
--- precisions above or below the difference should have no effect
-precision: 11
-cotx764 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1
-precision: 10
-cotx765 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1
-precision: 9
-cotx766 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1
-precision: 8
-cotx767 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1
-precision: 7
-cotx768 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1
-precision: 6
-cotx769 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1
-precision: 5
-cotx770 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1
-precision: 4
-cotx771 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1
-precision: 3
-cotx772 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1
-precision: 2
-cotx773 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1
-precision: 1
-cotx774 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1
-
--- Specials
-precision: 9
-cotx780 comparetotal Inf -Inf -> 1
-cotx781 comparetotal Inf -1000 -> 1
-cotx782 comparetotal Inf -1 -> 1
-cotx783 comparetotal Inf -0 -> 1
-cotx784 comparetotal Inf 0 -> 1
-cotx785 comparetotal Inf 1 -> 1
-cotx786 comparetotal Inf 1000 -> 1
-cotx787 comparetotal Inf Inf -> 0
-cotx788 comparetotal -1000 Inf -> -1
-cotx789 comparetotal -Inf Inf -> -1
-cotx790 comparetotal -1 Inf -> -1
-cotx791 comparetotal -0 Inf -> -1
-cotx792 comparetotal 0 Inf -> -1
-cotx793 comparetotal 1 Inf -> -1
-cotx794 comparetotal 1000 Inf -> -1
-cotx795 comparetotal Inf Inf -> 0
-
-cotx800 comparetotal -Inf -Inf -> 0
-cotx801 comparetotal -Inf -1000 -> -1
-cotx802 comparetotal -Inf -1 -> -1
-cotx803 comparetotal -Inf -0 -> -1
-cotx804 comparetotal -Inf 0 -> -1
-cotx805 comparetotal -Inf 1 -> -1
-cotx806 comparetotal -Inf 1000 -> -1
-cotx807 comparetotal -Inf Inf -> -1
-cotx808 comparetotal -Inf -Inf -> 0
-cotx809 comparetotal -1000 -Inf -> 1
-cotx810 comparetotal -1 -Inf -> 1
-cotx811 comparetotal -0 -Inf -> 1
-cotx812 comparetotal 0 -Inf -> 1
-cotx813 comparetotal 1 -Inf -> 1
-cotx814 comparetotal 1000 -Inf -> 1
-cotx815 comparetotal Inf -Inf -> 1
-
-cotx821 comparetotal NaN -Inf -> 1
-cotx822 comparetotal NaN -1000 -> 1
-cotx823 comparetotal NaN -1 -> 1
-cotx824 comparetotal NaN -0 -> 1
-cotx825 comparetotal NaN 0 -> 1
-cotx826 comparetotal NaN 1 -> 1
-cotx827 comparetotal NaN 1000 -> 1
-cotx828 comparetotal NaN Inf -> 1
-cotx829 comparetotal NaN NaN -> 0
-cotx830 comparetotal -Inf NaN -> -1
-cotx831 comparetotal -1000 NaN -> -1
-cotx832 comparetotal -1 NaN -> -1
-cotx833 comparetotal -0 NaN -> -1
-cotx834 comparetotal 0 NaN -> -1
-cotx835 comparetotal 1 NaN -> -1
-cotx836 comparetotal 1000 NaN -> -1
-cotx837 comparetotal Inf NaN -> -1
-cotx838 comparetotal -NaN -NaN -> 0
-cotx839 comparetotal +NaN -NaN -> 1
-cotx840 comparetotal -NaN +NaN -> -1
-
-cotx841 comparetotal sNaN -sNaN -> 1
-cotx842 comparetotal sNaN -NaN -> 1
-cotx843 comparetotal sNaN -Inf -> 1
-cotx844 comparetotal sNaN -1000 -> 1
-cotx845 comparetotal sNaN -1 -> 1
-cotx846 comparetotal sNaN -0 -> 1
-cotx847 comparetotal sNaN 0 -> 1
-cotx848 comparetotal sNaN 1 -> 1
-cotx849 comparetotal sNaN 1000 -> 1
-cotx850 comparetotal sNaN NaN -> -1
-cotx851 comparetotal sNaN sNaN -> 0
-
-cotx852 comparetotal -sNaN sNaN -> -1
-cotx853 comparetotal -NaN sNaN -> -1
-cotx854 comparetotal -Inf sNaN -> -1
-cotx855 comparetotal -1000 sNaN -> -1
-cotx856 comparetotal -1 sNaN -> -1
-cotx857 comparetotal -0 sNaN -> -1
-cotx858 comparetotal 0 sNaN -> -1
-cotx859 comparetotal 1 sNaN -> -1
-cotx860 comparetotal 1000 sNaN -> -1
-cotx861 comparetotal Inf sNaN -> -1
-cotx862 comparetotal NaN sNaN -> 1
-cotx863 comparetotal sNaN sNaN -> 0
-
-cotx871 comparetotal -sNaN -sNaN -> 0
-cotx872 comparetotal -sNaN -NaN -> 1
-cotx873 comparetotal -sNaN -Inf -> -1
-cotx874 comparetotal -sNaN -1000 -> -1
-cotx875 comparetotal -sNaN -1 -> -1
-cotx876 comparetotal -sNaN -0 -> -1
-cotx877 comparetotal -sNaN 0 -> -1
-cotx878 comparetotal -sNaN 1 -> -1
-cotx879 comparetotal -sNaN 1000 -> -1
-cotx880 comparetotal -sNaN NaN -> -1
-cotx881 comparetotal -sNaN sNaN -> -1
-
-cotx882 comparetotal -sNaN -sNaN -> 0
-cotx883 comparetotal -NaN -sNaN -> -1
-cotx884 comparetotal -Inf -sNaN -> 1
-cotx885 comparetotal -1000 -sNaN -> 1
-cotx886 comparetotal -1 -sNaN -> 1
-cotx887 comparetotal -0 -sNaN -> 1
-cotx888 comparetotal 0 -sNaN -> 1
-cotx889 comparetotal 1 -sNaN -> 1
-cotx890 comparetotal 1000 -sNaN -> 1
-cotx891 comparetotal Inf -sNaN -> 1
-cotx892 comparetotal NaN -sNaN -> 1
-cotx893 comparetotal sNaN -sNaN -> 1
-
--- NaNs with payload
-cotx960 comparetotal NaN9 -Inf -> 1
-cotx961 comparetotal NaN8 999 -> 1
-cotx962 comparetotal NaN77 Inf -> 1
-cotx963 comparetotal -NaN67 NaN5 -> -1
-cotx964 comparetotal -Inf -NaN4 -> 1
-cotx965 comparetotal -999 -NaN33 -> 1
-cotx966 comparetotal Inf NaN2 -> -1
-
-cotx970 comparetotal -NaN41 -NaN42 -> 1
-cotx971 comparetotal +NaN41 -NaN42 -> 1
-cotx972 comparetotal -NaN41 +NaN42 -> -1
-cotx973 comparetotal +NaN41 +NaN42 -> -1
-cotx974 comparetotal -NaN42 -NaN01 -> -1
-cotx975 comparetotal +NaN42 -NaN01 -> 1
-cotx976 comparetotal -NaN42 +NaN01 -> -1
-cotx977 comparetotal +NaN42 +NaN01 -> 1
-
-cotx980 comparetotal -sNaN771 -sNaN772 -> 1
-cotx981 comparetotal +sNaN771 -sNaN772 -> 1
-cotx982 comparetotal -sNaN771 +sNaN772 -> -1
-cotx983 comparetotal +sNaN771 +sNaN772 -> -1
-cotx984 comparetotal -sNaN772 -sNaN771 -> -1
-cotx985 comparetotal +sNaN772 -sNaN771 -> 1
-cotx986 comparetotal -sNaN772 +sNaN771 -> -1
-cotx987 comparetotal +sNaN772 +sNaN771 -> 1
-
-cotx991 comparetotal -sNaN99 -Inf -> -1
-cotx992 comparetotal sNaN98 -11 -> 1
-cotx993 comparetotal sNaN97 NaN -> -1
-cotx994 comparetotal sNaN16 sNaN94 -> -1
-cotx995 comparetotal NaN85 sNaN83 -> 1
-cotx996 comparetotal -Inf sNaN92 -> -1
-cotx997 comparetotal 088 sNaN81 -> -1
-cotx998 comparetotal Inf sNaN90 -> -1
-cotx999 comparetotal NaN -sNaN89 -> 1
-
--- overflow and underflow tests .. subnormal results now allowed
-maxExponent: 999999999
-minexponent: -999999999
-cotx1080 comparetotal +1.23456789012345E-0 9E+999999999 -> -1
-cotx1081 comparetotal 9E+999999999 +1.23456789012345E-0 -> 1
-cotx1082 comparetotal +0.100 9E-999999999 -> 1
-cotx1083 comparetotal 9E-999999999 +0.100 -> -1
-cotx1085 comparetotal -1.23456789012345E-0 9E+999999999 -> -1
-cotx1086 comparetotal 9E+999999999 -1.23456789012345E-0 -> 1
-cotx1087 comparetotal -0.100 9E-999999999 -> -1
-cotx1088 comparetotal 9E-999999999 -0.100 -> 1
-
-cotx1089 comparetotal 1e-599999999 1e-400000001 -> -1
-cotx1090 comparetotal 1e-599999999 1e-400000000 -> -1
-cotx1091 comparetotal 1e-600000000 1e-400000000 -> -1
-cotx1092 comparetotal 9e-999999998 0.01 -> -1
-cotx1093 comparetotal 9e-999999998 0.1 -> -1
-cotx1094 comparetotal 0.01 9e-999999998 -> 1
-cotx1095 comparetotal 1e599999999 1e400000001 -> 1
-cotx1096 comparetotal 1e599999999 1e400000000 -> 1
-cotx1097 comparetotal 1e600000000 1e400000000 -> 1
-cotx1098 comparetotal 9e999999998 100 -> 1
-cotx1099 comparetotal 9e999999998 10 -> 1
-cotx1100 comparetotal 100 9e999999998 -> -1
--- signs
-cotx1101 comparetotal 1e+777777777 1e+411111111 -> 1
-cotx1102 comparetotal 1e+777777777 -1e+411111111 -> 1
-cotx1103 comparetotal -1e+777777777 1e+411111111 -> -1
-cotx1104 comparetotal -1e+777777777 -1e+411111111 -> -1
-cotx1105 comparetotal 1e-777777777 1e-411111111 -> -1
-cotx1106 comparetotal 1e-777777777 -1e-411111111 -> 1
-cotx1107 comparetotal -1e-777777777 1e-411111111 -> -1
-cotx1108 comparetotal -1e-777777777 -1e-411111111 -> 1
-
--- spread zeros
-cotx1110 comparetotal 0E-383 0 -> -1
-cotx1111 comparetotal 0E-383 -0 -> 1
-cotx1112 comparetotal -0E-383 0 -> -1
-cotx1113 comparetotal -0E-383 -0 -> 1
-cotx1114 comparetotal 0E-383 0E+384 -> -1
-cotx1115 comparetotal 0E-383 -0E+384 -> 1
-cotx1116 comparetotal -0E-383 0E+384 -> -1
-cotx1117 comparetotal -0E-383 -0E+384 -> 1
-cotx1118 comparetotal 0 0E+384 -> -1
-cotx1119 comparetotal 0 -0E+384 -> 1
-cotx1120 comparetotal -0 0E+384 -> -1
-cotx1121 comparetotal -0 -0E+384 -> 1
-
-cotx1130 comparetotal 0E+384 0 -> 1
-cotx1131 comparetotal 0E+384 -0 -> 1
-cotx1132 comparetotal -0E+384 0 -> -1
-cotx1133 comparetotal -0E+384 -0 -> -1
-cotx1134 comparetotal 0E+384 0E-383 -> 1
-cotx1135 comparetotal 0E+384 -0E-383 -> 1
-cotx1136 comparetotal -0E+384 0E-383 -> -1
-cotx1137 comparetotal -0E+384 -0E-383 -> -1
-cotx1138 comparetotal 0 0E-383 -> 1
-cotx1139 comparetotal 0 -0E-383 -> 1
-cotx1140 comparetotal -0 0E-383 -> -1
-cotx1141 comparetotal -0 -0E-383 -> -1
-
--- Null tests
-cotx9990 comparetotal 10 # -> NaN Invalid_operation
-cotx9991 comparetotal # 10 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- comparetotal.decTest -- decimal comparison using total ordering -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- Note that we cannot assume add/subtract tests cover paths adequately, +-- here, because the code might be quite different (comparison cannot +-- overflow or underflow, so actual subtractions are not necessary). +-- Similarly, comparetotal will have some radically different paths +-- than compare. + +extended: 1 +precision: 16 +rounding: half_up +maxExponent: 384 +minExponent: -383 + +-- sanity checks +cotx001 comparetotal -2 -2 -> 0 +cotx002 comparetotal -2 -1 -> -1 +cotx003 comparetotal -2 0 -> -1 +cotx004 comparetotal -2 1 -> -1 +cotx005 comparetotal -2 2 -> -1 +cotx006 comparetotal -1 -2 -> 1 +cotx007 comparetotal -1 -1 -> 0 +cotx008 comparetotal -1 0 -> -1 +cotx009 comparetotal -1 1 -> -1 +cotx010 comparetotal -1 2 -> -1 +cotx011 comparetotal 0 -2 -> 1 +cotx012 comparetotal 0 -1 -> 1 +cotx013 comparetotal 0 0 -> 0 +cotx014 comparetotal 0 1 -> -1 +cotx015 comparetotal 0 2 -> -1 +cotx016 comparetotal 1 -2 -> 1 +cotx017 comparetotal 1 -1 -> 1 +cotx018 comparetotal 1 0 -> 1 +cotx019 comparetotal 1 1 -> 0 +cotx020 comparetotal 1 2 -> -1 +cotx021 comparetotal 2 -2 -> 1 +cotx022 comparetotal 2 -1 -> 1 +cotx023 comparetotal 2 0 -> 1 +cotx025 comparetotal 2 1 -> 1 +cotx026 comparetotal 2 2 -> 0 + +cotx031 comparetotal -20 -20 -> 0 +cotx032 comparetotal -20 -10 -> -1 +cotx033 comparetotal -20 00 -> -1 +cotx034 comparetotal -20 10 -> -1 +cotx035 comparetotal -20 20 -> -1 +cotx036 comparetotal -10 -20 -> 1 +cotx037 comparetotal -10 -10 -> 0 +cotx038 comparetotal -10 00 -> -1 +cotx039 comparetotal -10 10 -> -1 +cotx040 comparetotal -10 20 -> -1 +cotx041 comparetotal 00 -20 -> 1 +cotx042 comparetotal 00 -10 -> 1 +cotx043 comparetotal 00 00 -> 0 +cotx044 comparetotal 00 10 -> -1 +cotx045 comparetotal 00 20 -> -1 +cotx046 comparetotal 10 -20 -> 1 +cotx047 comparetotal 10 -10 -> 1 +cotx048 comparetotal 10 00 -> 1 +cotx049 comparetotal 10 10 -> 0 +cotx050 comparetotal 10 20 -> -1 +cotx051 comparetotal 20 -20 -> 1 +cotx052 comparetotal 20 -10 -> 1 +cotx053 comparetotal 20 00 -> 1 +cotx055 comparetotal 20 10 -> 1 +cotx056 comparetotal 20 20 -> 0 + +cotx061 comparetotal -2.0 -2.0 -> 0 +cotx062 comparetotal -2.0 -1.0 -> -1 +cotx063 comparetotal -2.0 0.0 -> -1 +cotx064 comparetotal -2.0 1.0 -> -1 +cotx065 comparetotal -2.0 2.0 -> -1 +cotx066 comparetotal -1.0 -2.0 -> 1 +cotx067 comparetotal -1.0 -1.0 -> 0 +cotx068 comparetotal -1.0 0.0 -> -1 +cotx069 comparetotal -1.0 1.0 -> -1 +cotx070 comparetotal -1.0 2.0 -> -1 +cotx071 comparetotal 0.0 -2.0 -> 1 +cotx072 comparetotal 0.0 -1.0 -> 1 +cotx073 comparetotal 0.0 0.0 -> 0 +cotx074 comparetotal 0.0 1.0 -> -1 +cotx075 comparetotal 0.0 2.0 -> -1 +cotx076 comparetotal 1.0 -2.0 -> 1 +cotx077 comparetotal 1.0 -1.0 -> 1 +cotx078 comparetotal 1.0 0.0 -> 1 +cotx079 comparetotal 1.0 1.0 -> 0 +cotx080 comparetotal 1.0 2.0 -> -1 +cotx081 comparetotal 2.0 -2.0 -> 1 +cotx082 comparetotal 2.0 -1.0 -> 1 +cotx083 comparetotal 2.0 0.0 -> 1 +cotx085 comparetotal 2.0 1.0 -> 1 +cotx086 comparetotal 2.0 2.0 -> 0 + +-- now some cases which might overflow if subtract were used +maxexponent: 999999999 +minexponent: -999999999 +cotx090 comparetotal 9.99999999E+999999999 9.99999999E+999999999 -> 0 +cotx091 comparetotal -9.99999999E+999999999 9.99999999E+999999999 -> -1 +cotx092 comparetotal 9.99999999E+999999999 -9.99999999E+999999999 -> 1 +cotx093 comparetotal -9.99999999E+999999999 -9.99999999E+999999999 -> 0 + +-- Examples +cotx094 comparetotal 12.73 127.9 -> -1 +cotx095 comparetotal -127 12 -> -1 +cotx096 comparetotal 12.30 12.3 -> -1 +cotx097 comparetotal 12.30 12.30 -> 0 +cotx098 comparetotal 12.3 12.300 -> 1 +cotx099 comparetotal 12.3 NaN -> -1 + +-- some differing length/exponent cases +-- in this first group, compare would compare all equal +cotx100 comparetotal 7.0 7.0 -> 0 +cotx101 comparetotal 7.0 7 -> -1 +cotx102 comparetotal 7 7.0 -> 1 +cotx103 comparetotal 7E+0 7.0 -> 1 +cotx104 comparetotal 70E-1 7.0 -> 0 +cotx105 comparetotal 0.7E+1 7 -> 0 +cotx106 comparetotal 70E-1 7 -> -1 +cotx107 comparetotal 7.0 7E+0 -> -1 +cotx108 comparetotal 7.0 70E-1 -> 0 +cotx109 comparetotal 7 0.7E+1 -> 0 +cotx110 comparetotal 7 70E-1 -> 1 + +cotx120 comparetotal 8.0 7.0 -> 1 +cotx121 comparetotal 8.0 7 -> 1 +cotx122 comparetotal 8 7.0 -> 1 +cotx123 comparetotal 8E+0 7.0 -> 1 +cotx124 comparetotal 80E-1 7.0 -> 1 +cotx125 comparetotal 0.8E+1 7 -> 1 +cotx126 comparetotal 80E-1 7 -> 1 +cotx127 comparetotal 8.0 7E+0 -> 1 +cotx128 comparetotal 8.0 70E-1 -> 1 +cotx129 comparetotal 8 0.7E+1 -> 1 +cotx130 comparetotal 8 70E-1 -> 1 + +cotx140 comparetotal 8.0 9.0 -> -1 +cotx141 comparetotal 8.0 9 -> -1 +cotx142 comparetotal 8 9.0 -> -1 +cotx143 comparetotal 8E+0 9.0 -> -1 +cotx144 comparetotal 80E-1 9.0 -> -1 +cotx145 comparetotal 0.8E+1 9 -> -1 +cotx146 comparetotal 80E-1 9 -> -1 +cotx147 comparetotal 8.0 9E+0 -> -1 +cotx148 comparetotal 8.0 90E-1 -> -1 +cotx149 comparetotal 8 0.9E+1 -> -1 +cotx150 comparetotal 8 90E-1 -> -1 + +-- and again, with sign changes -+ .. +cotx200 comparetotal -7.0 7.0 -> -1 +cotx201 comparetotal -7.0 7 -> -1 +cotx202 comparetotal -7 7.0 -> -1 +cotx203 comparetotal -7E+0 7.0 -> -1 +cotx204 comparetotal -70E-1 7.0 -> -1 +cotx205 comparetotal -0.7E+1 7 -> -1 +cotx206 comparetotal -70E-1 7 -> -1 +cotx207 comparetotal -7.0 7E+0 -> -1 +cotx208 comparetotal -7.0 70E-1 -> -1 +cotx209 comparetotal -7 0.7E+1 -> -1 +cotx210 comparetotal -7 70E-1 -> -1 + +cotx220 comparetotal -8.0 7.0 -> -1 +cotx221 comparetotal -8.0 7 -> -1 +cotx222 comparetotal -8 7.0 -> -1 +cotx223 comparetotal -8E+0 7.0 -> -1 +cotx224 comparetotal -80E-1 7.0 -> -1 +cotx225 comparetotal -0.8E+1 7 -> -1 +cotx226 comparetotal -80E-1 7 -> -1 +cotx227 comparetotal -8.0 7E+0 -> -1 +cotx228 comparetotal -8.0 70E-1 -> -1 +cotx229 comparetotal -8 0.7E+1 -> -1 +cotx230 comparetotal -8 70E-1 -> -1 + +cotx240 comparetotal -8.0 9.0 -> -1 +cotx241 comparetotal -8.0 9 -> -1 +cotx242 comparetotal -8 9.0 -> -1 +cotx243 comparetotal -8E+0 9.0 -> -1 +cotx244 comparetotal -80E-1 9.0 -> -1 +cotx245 comparetotal -0.8E+1 9 -> -1 +cotx246 comparetotal -80E-1 9 -> -1 +cotx247 comparetotal -8.0 9E+0 -> -1 +cotx248 comparetotal -8.0 90E-1 -> -1 +cotx249 comparetotal -8 0.9E+1 -> -1 +cotx250 comparetotal -8 90E-1 -> -1 + +-- and again, with sign changes +- .. +cotx300 comparetotal 7.0 -7.0 -> 1 +cotx301 comparetotal 7.0 -7 -> 1 +cotx302 comparetotal 7 -7.0 -> 1 +cotx303 comparetotal 7E+0 -7.0 -> 1 +cotx304 comparetotal 70E-1 -7.0 -> 1 +cotx305 comparetotal .7E+1 -7 -> 1 +cotx306 comparetotal 70E-1 -7 -> 1 +cotx307 comparetotal 7.0 -7E+0 -> 1 +cotx308 comparetotal 7.0 -70E-1 -> 1 +cotx309 comparetotal 7 -.7E+1 -> 1 +cotx310 comparetotal 7 -70E-1 -> 1 + +cotx320 comparetotal 8.0 -7.0 -> 1 +cotx321 comparetotal 8.0 -7 -> 1 +cotx322 comparetotal 8 -7.0 -> 1 +cotx323 comparetotal 8E+0 -7.0 -> 1 +cotx324 comparetotal 80E-1 -7.0 -> 1 +cotx325 comparetotal .8E+1 -7 -> 1 +cotx326 comparetotal 80E-1 -7 -> 1 +cotx327 comparetotal 8.0 -7E+0 -> 1 +cotx328 comparetotal 8.0 -70E-1 -> 1 +cotx329 comparetotal 8 -.7E+1 -> 1 +cotx330 comparetotal 8 -70E-1 -> 1 + +cotx340 comparetotal 8.0 -9.0 -> 1 +cotx341 comparetotal 8.0 -9 -> 1 +cotx342 comparetotal 8 -9.0 -> 1 +cotx343 comparetotal 8E+0 -9.0 -> 1 +cotx344 comparetotal 80E-1 -9.0 -> 1 +cotx345 comparetotal .8E+1 -9 -> 1 +cotx346 comparetotal 80E-1 -9 -> 1 +cotx347 comparetotal 8.0 -9E+0 -> 1 +cotx348 comparetotal 8.0 -90E-1 -> 1 +cotx349 comparetotal 8 -.9E+1 -> 1 +cotx350 comparetotal 8 -90E-1 -> 1 + +-- and again, with sign changes -- .. +cotx400 comparetotal -7.0 -7.0 -> 0 +cotx401 comparetotal -7.0 -7 -> 1 +cotx402 comparetotal -7 -7.0 -> -1 +cotx403 comparetotal -7E+0 -7.0 -> -1 +cotx404 comparetotal -70E-1 -7.0 -> 0 +cotx405 comparetotal -.7E+1 -7 -> 0 +cotx406 comparetotal -70E-1 -7 -> 1 +cotx407 comparetotal -7.0 -7E+0 -> 1 +cotx408 comparetotal -7.0 -70E-1 -> 0 +cotx409 comparetotal -7 -.7E+1 -> 0 +cotx410 comparetotal -7 -70E-1 -> -1 + +cotx420 comparetotal -8.0 -7.0 -> -1 +cotx421 comparetotal -8.0 -7 -> -1 +cotx422 comparetotal -8 -7.0 -> -1 +cotx423 comparetotal -8E+0 -7.0 -> -1 +cotx424 comparetotal -80E-1 -7.0 -> -1 +cotx425 comparetotal -.8E+1 -7 -> -1 +cotx426 comparetotal -80E-1 -7 -> -1 +cotx427 comparetotal -8.0 -7E+0 -> -1 +cotx428 comparetotal -8.0 -70E-1 -> -1 +cotx429 comparetotal -8 -.7E+1 -> -1 +cotx430 comparetotal -8 -70E-1 -> -1 + +cotx440 comparetotal -8.0 -9.0 -> 1 +cotx441 comparetotal -8.0 -9 -> 1 +cotx442 comparetotal -8 -9.0 -> 1 +cotx443 comparetotal -8E+0 -9.0 -> 1 +cotx444 comparetotal -80E-1 -9.0 -> 1 +cotx445 comparetotal -.8E+1 -9 -> 1 +cotx446 comparetotal -80E-1 -9 -> 1 +cotx447 comparetotal -8.0 -9E+0 -> 1 +cotx448 comparetotal -8.0 -90E-1 -> 1 +cotx449 comparetotal -8 -.9E+1 -> 1 +cotx450 comparetotal -8 -90E-1 -> 1 + + +-- testcases that subtract to lots of zeros at boundaries [pgr] +precision: 40 +cotx470 comparetotal 123.4560000000000000E789 123.456E789 -> -1 +cotx471 comparetotal 123.456000000000000E-89 123.456E-89 -> -1 +cotx472 comparetotal 123.45600000000000E789 123.456E789 -> -1 +cotx473 comparetotal 123.4560000000000E-89 123.456E-89 -> -1 +cotx474 comparetotal 123.456000000000E789 123.456E789 -> -1 +cotx475 comparetotal 123.45600000000E-89 123.456E-89 -> -1 +cotx476 comparetotal 123.4560000000E789 123.456E789 -> -1 +cotx477 comparetotal 123.456000000E-89 123.456E-89 -> -1 +cotx478 comparetotal 123.45600000E789 123.456E789 -> -1 +cotx479 comparetotal 123.4560000E-89 123.456E-89 -> -1 +cotx480 comparetotal 123.456000E789 123.456E789 -> -1 +cotx481 comparetotal 123.45600E-89 123.456E-89 -> -1 +cotx482 comparetotal 123.4560E789 123.456E789 -> -1 +cotx483 comparetotal 123.456E-89 123.456E-89 -> 0 +cotx484 comparetotal 123.456E-89 123.4560000000000000E-89 -> 1 +cotx485 comparetotal 123.456E789 123.456000000000000E789 -> 1 +cotx486 comparetotal 123.456E-89 123.45600000000000E-89 -> 1 +cotx487 comparetotal 123.456E789 123.4560000000000E789 -> 1 +cotx488 comparetotal 123.456E-89 123.456000000000E-89 -> 1 +cotx489 comparetotal 123.456E789 123.45600000000E789 -> 1 +cotx490 comparetotal 123.456E-89 123.4560000000E-89 -> 1 +cotx491 comparetotal 123.456E789 123.456000000E789 -> 1 +cotx492 comparetotal 123.456E-89 123.45600000E-89 -> 1 +cotx493 comparetotal 123.456E789 123.4560000E789 -> 1 +cotx494 comparetotal 123.456E-89 123.456000E-89 -> 1 +cotx495 comparetotal 123.456E789 123.45600E789 -> 1 +cotx496 comparetotal 123.456E-89 123.4560E-89 -> 1 +cotx497 comparetotal 123.456E789 123.456E789 -> 0 + +-- wide-ranging, around precision; signs equal +precision: 9 +cotx500 comparetotal 1 1E-15 -> 1 +cotx501 comparetotal 1 1E-14 -> 1 +cotx502 comparetotal 1 1E-13 -> 1 +cotx503 comparetotal 1 1E-12 -> 1 +cotx504 comparetotal 1 1E-11 -> 1 +cotx505 comparetotal 1 1E-10 -> 1 +cotx506 comparetotal 1 1E-9 -> 1 +cotx507 comparetotal 1 1E-8 -> 1 +cotx508 comparetotal 1 1E-7 -> 1 +cotx509 comparetotal 1 1E-6 -> 1 +cotx510 comparetotal 1 1E-5 -> 1 +cotx511 comparetotal 1 1E-4 -> 1 +cotx512 comparetotal 1 1E-3 -> 1 +cotx513 comparetotal 1 1E-2 -> 1 +cotx514 comparetotal 1 1E-1 -> 1 +cotx515 comparetotal 1 1E-0 -> 0 +cotx516 comparetotal 1 1E+1 -> -1 +cotx517 comparetotal 1 1E+2 -> -1 +cotx518 comparetotal 1 1E+3 -> -1 +cotx519 comparetotal 1 1E+4 -> -1 +cotx521 comparetotal 1 1E+5 -> -1 +cotx522 comparetotal 1 1E+6 -> -1 +cotx523 comparetotal 1 1E+7 -> -1 +cotx524 comparetotal 1 1E+8 -> -1 +cotx525 comparetotal 1 1E+9 -> -1 +cotx526 comparetotal 1 1E+10 -> -1 +cotx527 comparetotal 1 1E+11 -> -1 +cotx528 comparetotal 1 1E+12 -> -1 +cotx529 comparetotal 1 1E+13 -> -1 +cotx530 comparetotal 1 1E+14 -> -1 +cotx531 comparetotal 1 1E+15 -> -1 +-- LR swap +cotx540 comparetotal 1E-15 1 -> -1 +cotx541 comparetotal 1E-14 1 -> -1 +cotx542 comparetotal 1E-13 1 -> -1 +cotx543 comparetotal 1E-12 1 -> -1 +cotx544 comparetotal 1E-11 1 -> -1 +cotx545 comparetotal 1E-10 1 -> -1 +cotx546 comparetotal 1E-9 1 -> -1 +cotx547 comparetotal 1E-8 1 -> -1 +cotx548 comparetotal 1E-7 1 -> -1 +cotx549 comparetotal 1E-6 1 -> -1 +cotx550 comparetotal 1E-5 1 -> -1 +cotx551 comparetotal 1E-4 1 -> -1 +cotx552 comparetotal 1E-3 1 -> -1 +cotx553 comparetotal 1E-2 1 -> -1 +cotx554 comparetotal 1E-1 1 -> -1 +cotx555 comparetotal 1E-0 1 -> 0 +cotx556 comparetotal 1E+1 1 -> 1 +cotx557 comparetotal 1E+2 1 -> 1 +cotx558 comparetotal 1E+3 1 -> 1 +cotx559 comparetotal 1E+4 1 -> 1 +cotx561 comparetotal 1E+5 1 -> 1 +cotx562 comparetotal 1E+6 1 -> 1 +cotx563 comparetotal 1E+7 1 -> 1 +cotx564 comparetotal 1E+8 1 -> 1 +cotx565 comparetotal 1E+9 1 -> 1 +cotx566 comparetotal 1E+10 1 -> 1 +cotx567 comparetotal 1E+11 1 -> 1 +cotx568 comparetotal 1E+12 1 -> 1 +cotx569 comparetotal 1E+13 1 -> 1 +cotx570 comparetotal 1E+14 1 -> 1 +cotx571 comparetotal 1E+15 1 -> 1 +-- similar with an useful coefficient, one side only +cotx580 comparetotal 0.000000987654321 1E-15 -> 1 +cotx581 comparetotal 0.000000987654321 1E-14 -> 1 +cotx582 comparetotal 0.000000987654321 1E-13 -> 1 +cotx583 comparetotal 0.000000987654321 1E-12 -> 1 +cotx584 comparetotal 0.000000987654321 1E-11 -> 1 +cotx585 comparetotal 0.000000987654321 1E-10 -> 1 +cotx586 comparetotal 0.000000987654321 1E-9 -> 1 +cotx587 comparetotal 0.000000987654321 1E-8 -> 1 +cotx588 comparetotal 0.000000987654321 1E-7 -> 1 +cotx589 comparetotal 0.000000987654321 1E-6 -> -1 +cotx590 comparetotal 0.000000987654321 1E-5 -> -1 +cotx591 comparetotal 0.000000987654321 1E-4 -> -1 +cotx592 comparetotal 0.000000987654321 1E-3 -> -1 +cotx593 comparetotal 0.000000987654321 1E-2 -> -1 +cotx594 comparetotal 0.000000987654321 1E-1 -> -1 +cotx595 comparetotal 0.000000987654321 1E-0 -> -1 +cotx596 comparetotal 0.000000987654321 1E+1 -> -1 +cotx597 comparetotal 0.000000987654321 1E+2 -> -1 +cotx598 comparetotal 0.000000987654321 1E+3 -> -1 +cotx599 comparetotal 0.000000987654321 1E+4 -> -1 + +-- check some unit-y traps +precision: 20 +cotx600 comparetotal 12 12.2345 -> -1 +cotx601 comparetotal 12.0 12.2345 -> -1 +cotx602 comparetotal 12.00 12.2345 -> -1 +cotx603 comparetotal 12.000 12.2345 -> -1 +cotx604 comparetotal 12.0000 12.2345 -> -1 +cotx605 comparetotal 12.00000 12.2345 -> -1 +cotx606 comparetotal 12.000000 12.2345 -> -1 +cotx607 comparetotal 12.0000000 12.2345 -> -1 +cotx608 comparetotal 12.00000000 12.2345 -> -1 +cotx609 comparetotal 12.000000000 12.2345 -> -1 +cotx610 comparetotal 12.1234 12 -> 1 +cotx611 comparetotal 12.1234 12.0 -> 1 +cotx612 comparetotal 12.1234 12.00 -> 1 +cotx613 comparetotal 12.1234 12.000 -> 1 +cotx614 comparetotal 12.1234 12.0000 -> 1 +cotx615 comparetotal 12.1234 12.00000 -> 1 +cotx616 comparetotal 12.1234 12.000000 -> 1 +cotx617 comparetotal 12.1234 12.0000000 -> 1 +cotx618 comparetotal 12.1234 12.00000000 -> 1 +cotx619 comparetotal 12.1234 12.000000000 -> 1 +cotx620 comparetotal -12 -12.2345 -> 1 +cotx621 comparetotal -12.0 -12.2345 -> 1 +cotx622 comparetotal -12.00 -12.2345 -> 1 +cotx623 comparetotal -12.000 -12.2345 -> 1 +cotx624 comparetotal -12.0000 -12.2345 -> 1 +cotx625 comparetotal -12.00000 -12.2345 -> 1 +cotx626 comparetotal -12.000000 -12.2345 -> 1 +cotx627 comparetotal -12.0000000 -12.2345 -> 1 +cotx628 comparetotal -12.00000000 -12.2345 -> 1 +cotx629 comparetotal -12.000000000 -12.2345 -> 1 +cotx630 comparetotal -12.1234 -12 -> -1 +cotx631 comparetotal -12.1234 -12.0 -> -1 +cotx632 comparetotal -12.1234 -12.00 -> -1 +cotx633 comparetotal -12.1234 -12.000 -> -1 +cotx634 comparetotal -12.1234 -12.0000 -> -1 +cotx635 comparetotal -12.1234 -12.00000 -> -1 +cotx636 comparetotal -12.1234 -12.000000 -> -1 +cotx637 comparetotal -12.1234 -12.0000000 -> -1 +cotx638 comparetotal -12.1234 -12.00000000 -> -1 +cotx639 comparetotal -12.1234 -12.000000000 -> -1 +precision: 9 + +-- extended zeros +cotx640 comparetotal 0 0 -> 0 +cotx641 comparetotal 0 -0 -> 1 +cotx642 comparetotal 0 -0.0 -> 1 +cotx643 comparetotal 0 0.0 -> 1 +cotx644 comparetotal -0 0 -> -1 +cotx645 comparetotal -0 -0 -> 0 +cotx646 comparetotal -0 -0.0 -> -1 +cotx647 comparetotal -0 0.0 -> -1 +cotx648 comparetotal 0.0 0 -> -1 +cotx649 comparetotal 0.0 -0 -> 1 +cotx650 comparetotal 0.0 -0.0 -> 1 +cotx651 comparetotal 0.0 0.0 -> 0 +cotx652 comparetotal -0.0 0 -> -1 +cotx653 comparetotal -0.0 -0 -> 1 +cotx654 comparetotal -0.0 -0.0 -> 0 +cotx655 comparetotal -0.0 0.0 -> -1 + +cotx656 comparetotal -0E1 0.0 -> -1 +cotx657 comparetotal -0E2 0.0 -> -1 +cotx658 comparetotal 0E1 0.0 -> 1 +cotx659 comparetotal 0E2 0.0 -> 1 +cotx660 comparetotal -0E1 0 -> -1 +cotx661 comparetotal -0E2 0 -> -1 +cotx662 comparetotal 0E1 0 -> 1 +cotx663 comparetotal 0E2 0 -> 1 +cotx664 comparetotal -0E1 -0E1 -> 0 +cotx665 comparetotal -0E2 -0E1 -> -1 +cotx666 comparetotal 0E1 -0E1 -> 1 +cotx667 comparetotal 0E2 -0E1 -> 1 +cotx668 comparetotal -0E1 -0E2 -> 1 +cotx669 comparetotal -0E2 -0E2 -> 0 +cotx670 comparetotal 0E1 -0E2 -> 1 +cotx671 comparetotal 0E2 -0E2 -> 1 +cotx672 comparetotal -0E1 0E1 -> -1 +cotx673 comparetotal -0E2 0E1 -> -1 +cotx674 comparetotal 0E1 0E1 -> 0 +cotx675 comparetotal 0E2 0E1 -> 1 +cotx676 comparetotal -0E1 0E2 -> -1 +cotx677 comparetotal -0E2 0E2 -> -1 +cotx678 comparetotal 0E1 0E2 -> -1 +cotx679 comparetotal 0E2 0E2 -> 0 + +-- trailing zeros; unit-y +precision: 20 +cotx680 comparetotal 12 12 -> 0 +cotx681 comparetotal 12 12.0 -> 1 +cotx682 comparetotal 12 12.00 -> 1 +cotx683 comparetotal 12 12.000 -> 1 +cotx684 comparetotal 12 12.0000 -> 1 +cotx685 comparetotal 12 12.00000 -> 1 +cotx686 comparetotal 12 12.000000 -> 1 +cotx687 comparetotal 12 12.0000000 -> 1 +cotx688 comparetotal 12 12.00000000 -> 1 +cotx689 comparetotal 12 12.000000000 -> 1 +cotx690 comparetotal 12 12 -> 0 +cotx691 comparetotal 12.0 12 -> -1 +cotx692 comparetotal 12.00 12 -> -1 +cotx693 comparetotal 12.000 12 -> -1 +cotx694 comparetotal 12.0000 12 -> -1 +cotx695 comparetotal 12.00000 12 -> -1 +cotx696 comparetotal 12.000000 12 -> -1 +cotx697 comparetotal 12.0000000 12 -> -1 +cotx698 comparetotal 12.00000000 12 -> -1 +cotx699 comparetotal 12.000000000 12 -> -1 + +-- long operand checks +maxexponent: 999 +minexponent: -999 +precision: 9 +cotx701 comparetotal 12345678000 1 -> 1 +cotx702 comparetotal 1 12345678000 -> -1 +cotx703 comparetotal 1234567800 1 -> 1 +cotx704 comparetotal 1 1234567800 -> -1 +cotx705 comparetotal 1234567890 1 -> 1 +cotx706 comparetotal 1 1234567890 -> -1 +cotx707 comparetotal 1234567891 1 -> 1 +cotx708 comparetotal 1 1234567891 -> -1 +cotx709 comparetotal 12345678901 1 -> 1 +cotx710 comparetotal 1 12345678901 -> -1 +cotx711 comparetotal 1234567896 1 -> 1 +cotx712 comparetotal 1 1234567896 -> -1 +cotx713 comparetotal -1234567891 1 -> -1 +cotx714 comparetotal 1 -1234567891 -> 1 +cotx715 comparetotal -12345678901 1 -> -1 +cotx716 comparetotal 1 -12345678901 -> 1 +cotx717 comparetotal -1234567896 1 -> -1 +cotx718 comparetotal 1 -1234567896 -> 1 + +precision: 15 +-- same with plenty of precision +cotx721 comparetotal 12345678000 1 -> 1 +cotx722 comparetotal 1 12345678000 -> -1 +cotx723 comparetotal 1234567800 1 -> 1 +cotx724 comparetotal 1 1234567800 -> -1 +cotx725 comparetotal 1234567890 1 -> 1 +cotx726 comparetotal 1 1234567890 -> -1 +cotx727 comparetotal 1234567891 1 -> 1 +cotx728 comparetotal 1 1234567891 -> -1 +cotx729 comparetotal 12345678901 1 -> 1 +cotx730 comparetotal 1 12345678901 -> -1 +cotx731 comparetotal 1234567896 1 -> 1 +cotx732 comparetotal 1 1234567896 -> -1 + +-- residue cases +precision: 5 +cotx740 comparetotal 1 0.9999999 -> 1 +cotx741 comparetotal 1 0.999999 -> 1 +cotx742 comparetotal 1 0.99999 -> 1 +cotx743 comparetotal 1 1.0000 -> 1 +cotx744 comparetotal 1 1.00001 -> -1 +cotx745 comparetotal 1 1.000001 -> -1 +cotx746 comparetotal 1 1.0000001 -> -1 +cotx750 comparetotal 0.9999999 1 -> -1 +cotx751 comparetotal 0.999999 1 -> -1 +cotx752 comparetotal 0.99999 1 -> -1 +cotx753 comparetotal 1.0000 1 -> -1 +cotx754 comparetotal 1.00001 1 -> 1 +cotx755 comparetotal 1.000001 1 -> 1 +cotx756 comparetotal 1.0000001 1 -> 1 + +-- a selection of longies +cotx760 comparetotal -36852134.84194296250843579428931 -5830629.8347085025808756560357940 -> -1 +cotx761 comparetotal -36852134.84194296250843579428931 -36852134.84194296250843579428931 -> 0 +cotx762 comparetotal -36852134.94194296250843579428931 -36852134.84194296250843579428931 -> -1 +cotx763 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1 +-- precisions above or below the difference should have no effect +precision: 11 +cotx764 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1 +precision: 10 +cotx765 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1 +precision: 9 +cotx766 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1 +precision: 8 +cotx767 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1 +precision: 7 +cotx768 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1 +precision: 6 +cotx769 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1 +precision: 5 +cotx770 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1 +precision: 4 +cotx771 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1 +precision: 3 +cotx772 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1 +precision: 2 +cotx773 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1 +precision: 1 +cotx774 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1 + +-- Specials +precision: 9 +cotx780 comparetotal Inf -Inf -> 1 +cotx781 comparetotal Inf -1000 -> 1 +cotx782 comparetotal Inf -1 -> 1 +cotx783 comparetotal Inf -0 -> 1 +cotx784 comparetotal Inf 0 -> 1 +cotx785 comparetotal Inf 1 -> 1 +cotx786 comparetotal Inf 1000 -> 1 +cotx787 comparetotal Inf Inf -> 0 +cotx788 comparetotal -1000 Inf -> -1 +cotx789 comparetotal -Inf Inf -> -1 +cotx790 comparetotal -1 Inf -> -1 +cotx791 comparetotal -0 Inf -> -1 +cotx792 comparetotal 0 Inf -> -1 +cotx793 comparetotal 1 Inf -> -1 +cotx794 comparetotal 1000 Inf -> -1 +cotx795 comparetotal Inf Inf -> 0 + +cotx800 comparetotal -Inf -Inf -> 0 +cotx801 comparetotal -Inf -1000 -> -1 +cotx802 comparetotal -Inf -1 -> -1 +cotx803 comparetotal -Inf -0 -> -1 +cotx804 comparetotal -Inf 0 -> -1 +cotx805 comparetotal -Inf 1 -> -1 +cotx806 comparetotal -Inf 1000 -> -1 +cotx807 comparetotal -Inf Inf -> -1 +cotx808 comparetotal -Inf -Inf -> 0 +cotx809 comparetotal -1000 -Inf -> 1 +cotx810 comparetotal -1 -Inf -> 1 +cotx811 comparetotal -0 -Inf -> 1 +cotx812 comparetotal 0 -Inf -> 1 +cotx813 comparetotal 1 -Inf -> 1 +cotx814 comparetotal 1000 -Inf -> 1 +cotx815 comparetotal Inf -Inf -> 1 + +cotx821 comparetotal NaN -Inf -> 1 +cotx822 comparetotal NaN -1000 -> 1 +cotx823 comparetotal NaN -1 -> 1 +cotx824 comparetotal NaN -0 -> 1 +cotx825 comparetotal NaN 0 -> 1 +cotx826 comparetotal NaN 1 -> 1 +cotx827 comparetotal NaN 1000 -> 1 +cotx828 comparetotal NaN Inf -> 1 +cotx829 comparetotal NaN NaN -> 0 +cotx830 comparetotal -Inf NaN -> -1 +cotx831 comparetotal -1000 NaN -> -1 +cotx832 comparetotal -1 NaN -> -1 +cotx833 comparetotal -0 NaN -> -1 +cotx834 comparetotal 0 NaN -> -1 +cotx835 comparetotal 1 NaN -> -1 +cotx836 comparetotal 1000 NaN -> -1 +cotx837 comparetotal Inf NaN -> -1 +cotx838 comparetotal -NaN -NaN -> 0 +cotx839 comparetotal +NaN -NaN -> 1 +cotx840 comparetotal -NaN +NaN -> -1 + +cotx841 comparetotal sNaN -sNaN -> 1 +cotx842 comparetotal sNaN -NaN -> 1 +cotx843 comparetotal sNaN -Inf -> 1 +cotx844 comparetotal sNaN -1000 -> 1 +cotx845 comparetotal sNaN -1 -> 1 +cotx846 comparetotal sNaN -0 -> 1 +cotx847 comparetotal sNaN 0 -> 1 +cotx848 comparetotal sNaN 1 -> 1 +cotx849 comparetotal sNaN 1000 -> 1 +cotx850 comparetotal sNaN NaN -> -1 +cotx851 comparetotal sNaN sNaN -> 0 + +cotx852 comparetotal -sNaN sNaN -> -1 +cotx853 comparetotal -NaN sNaN -> -1 +cotx854 comparetotal -Inf sNaN -> -1 +cotx855 comparetotal -1000 sNaN -> -1 +cotx856 comparetotal -1 sNaN -> -1 +cotx857 comparetotal -0 sNaN -> -1 +cotx858 comparetotal 0 sNaN -> -1 +cotx859 comparetotal 1 sNaN -> -1 +cotx860 comparetotal 1000 sNaN -> -1 +cotx861 comparetotal Inf sNaN -> -1 +cotx862 comparetotal NaN sNaN -> 1 +cotx863 comparetotal sNaN sNaN -> 0 + +cotx871 comparetotal -sNaN -sNaN -> 0 +cotx872 comparetotal -sNaN -NaN -> 1 +cotx873 comparetotal -sNaN -Inf -> -1 +cotx874 comparetotal -sNaN -1000 -> -1 +cotx875 comparetotal -sNaN -1 -> -1 +cotx876 comparetotal -sNaN -0 -> -1 +cotx877 comparetotal -sNaN 0 -> -1 +cotx878 comparetotal -sNaN 1 -> -1 +cotx879 comparetotal -sNaN 1000 -> -1 +cotx880 comparetotal -sNaN NaN -> -1 +cotx881 comparetotal -sNaN sNaN -> -1 + +cotx882 comparetotal -sNaN -sNaN -> 0 +cotx883 comparetotal -NaN -sNaN -> -1 +cotx884 comparetotal -Inf -sNaN -> 1 +cotx885 comparetotal -1000 -sNaN -> 1 +cotx886 comparetotal -1 -sNaN -> 1 +cotx887 comparetotal -0 -sNaN -> 1 +cotx888 comparetotal 0 -sNaN -> 1 +cotx889 comparetotal 1 -sNaN -> 1 +cotx890 comparetotal 1000 -sNaN -> 1 +cotx891 comparetotal Inf -sNaN -> 1 +cotx892 comparetotal NaN -sNaN -> 1 +cotx893 comparetotal sNaN -sNaN -> 1 + +-- NaNs with payload +cotx960 comparetotal NaN9 -Inf -> 1 +cotx961 comparetotal NaN8 999 -> 1 +cotx962 comparetotal NaN77 Inf -> 1 +cotx963 comparetotal -NaN67 NaN5 -> -1 +cotx964 comparetotal -Inf -NaN4 -> 1 +cotx965 comparetotal -999 -NaN33 -> 1 +cotx966 comparetotal Inf NaN2 -> -1 + +cotx970 comparetotal -NaN41 -NaN42 -> 1 +cotx971 comparetotal +NaN41 -NaN42 -> 1 +cotx972 comparetotal -NaN41 +NaN42 -> -1 +cotx973 comparetotal +NaN41 +NaN42 -> -1 +cotx974 comparetotal -NaN42 -NaN01 -> -1 +cotx975 comparetotal +NaN42 -NaN01 -> 1 +cotx976 comparetotal -NaN42 +NaN01 -> -1 +cotx977 comparetotal +NaN42 +NaN01 -> 1 + +cotx980 comparetotal -sNaN771 -sNaN772 -> 1 +cotx981 comparetotal +sNaN771 -sNaN772 -> 1 +cotx982 comparetotal -sNaN771 +sNaN772 -> -1 +cotx983 comparetotal +sNaN771 +sNaN772 -> -1 +cotx984 comparetotal -sNaN772 -sNaN771 -> -1 +cotx985 comparetotal +sNaN772 -sNaN771 -> 1 +cotx986 comparetotal -sNaN772 +sNaN771 -> -1 +cotx987 comparetotal +sNaN772 +sNaN771 -> 1 + +cotx991 comparetotal -sNaN99 -Inf -> -1 +cotx992 comparetotal sNaN98 -11 -> 1 +cotx993 comparetotal sNaN97 NaN -> -1 +cotx994 comparetotal sNaN16 sNaN94 -> -1 +cotx995 comparetotal NaN85 sNaN83 -> 1 +cotx996 comparetotal -Inf sNaN92 -> -1 +cotx997 comparetotal 088 sNaN81 -> -1 +cotx998 comparetotal Inf sNaN90 -> -1 +cotx999 comparetotal NaN -sNaN89 -> 1 + +-- overflow and underflow tests .. subnormal results now allowed +maxExponent: 999999999 +minexponent: -999999999 +cotx1080 comparetotal +1.23456789012345E-0 9E+999999999 -> -1 +cotx1081 comparetotal 9E+999999999 +1.23456789012345E-0 -> 1 +cotx1082 comparetotal +0.100 9E-999999999 -> 1 +cotx1083 comparetotal 9E-999999999 +0.100 -> -1 +cotx1085 comparetotal -1.23456789012345E-0 9E+999999999 -> -1 +cotx1086 comparetotal 9E+999999999 -1.23456789012345E-0 -> 1 +cotx1087 comparetotal -0.100 9E-999999999 -> -1 +cotx1088 comparetotal 9E-999999999 -0.100 -> 1 + +cotx1089 comparetotal 1e-599999999 1e-400000001 -> -1 +cotx1090 comparetotal 1e-599999999 1e-400000000 -> -1 +cotx1091 comparetotal 1e-600000000 1e-400000000 -> -1 +cotx1092 comparetotal 9e-999999998 0.01 -> -1 +cotx1093 comparetotal 9e-999999998 0.1 -> -1 +cotx1094 comparetotal 0.01 9e-999999998 -> 1 +cotx1095 comparetotal 1e599999999 1e400000001 -> 1 +cotx1096 comparetotal 1e599999999 1e400000000 -> 1 +cotx1097 comparetotal 1e600000000 1e400000000 -> 1 +cotx1098 comparetotal 9e999999998 100 -> 1 +cotx1099 comparetotal 9e999999998 10 -> 1 +cotx1100 comparetotal 100 9e999999998 -> -1 +-- signs +cotx1101 comparetotal 1e+777777777 1e+411111111 -> 1 +cotx1102 comparetotal 1e+777777777 -1e+411111111 -> 1 +cotx1103 comparetotal -1e+777777777 1e+411111111 -> -1 +cotx1104 comparetotal -1e+777777777 -1e+411111111 -> -1 +cotx1105 comparetotal 1e-777777777 1e-411111111 -> -1 +cotx1106 comparetotal 1e-777777777 -1e-411111111 -> 1 +cotx1107 comparetotal -1e-777777777 1e-411111111 -> -1 +cotx1108 comparetotal -1e-777777777 -1e-411111111 -> 1 + +-- spread zeros +cotx1110 comparetotal 0E-383 0 -> -1 +cotx1111 comparetotal 0E-383 -0 -> 1 +cotx1112 comparetotal -0E-383 0 -> -1 +cotx1113 comparetotal -0E-383 -0 -> 1 +cotx1114 comparetotal 0E-383 0E+384 -> -1 +cotx1115 comparetotal 0E-383 -0E+384 -> 1 +cotx1116 comparetotal -0E-383 0E+384 -> -1 +cotx1117 comparetotal -0E-383 -0E+384 -> 1 +cotx1118 comparetotal 0 0E+384 -> -1 +cotx1119 comparetotal 0 -0E+384 -> 1 +cotx1120 comparetotal -0 0E+384 -> -1 +cotx1121 comparetotal -0 -0E+384 -> 1 + +cotx1130 comparetotal 0E+384 0 -> 1 +cotx1131 comparetotal 0E+384 -0 -> 1 +cotx1132 comparetotal -0E+384 0 -> -1 +cotx1133 comparetotal -0E+384 -0 -> -1 +cotx1134 comparetotal 0E+384 0E-383 -> 1 +cotx1135 comparetotal 0E+384 -0E-383 -> 1 +cotx1136 comparetotal -0E+384 0E-383 -> -1 +cotx1137 comparetotal -0E+384 -0E-383 -> -1 +cotx1138 comparetotal 0 0E-383 -> 1 +cotx1139 comparetotal 0 -0E-383 -> 1 +cotx1140 comparetotal -0 0E-383 -> -1 +cotx1141 comparetotal -0 -0E-383 -> -1 + +-- Null tests +cotx9990 comparetotal 10 # -> NaN Invalid_operation +cotx9991 comparetotal # 10 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/comparetotmag.decTest b/Lib/test/decimaltestdata/comparetotmag.decTest index e87c9f2dbf..cedfdf8843 100644 --- a/Lib/test/decimaltestdata/comparetotmag.decTest +++ b/Lib/test/decimaltestdata/comparetotmag.decTest @@ -1,790 +1,790 @@ -------------------------------------------------------------------------
--- comparetotmag.decTest -- decimal comparison, abs. total ordering --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- Note that it cannot be assumed that add/subtract tests cover paths
--- for this operation adequately, here, because the code might be
--- quite different (comparison cannot overflow or underflow, so
--- actual subtractions are not necessary). Similarly, comparetotal
--- will have some radically different paths than compare.
-
-extended: 1
-precision: 16
-rounding: half_up
-maxExponent: 384
-minExponent: -383
-
--- sanity checks
-ctmx001 comparetotmag -2 -2 -> 0
-ctmx002 comparetotmag -2 -1 -> 1
-ctmx003 comparetotmag -2 0 -> 1
-ctmx004 comparetotmag -2 1 -> 1
-ctmx005 comparetotmag -2 2 -> 0
-ctmx006 comparetotmag -1 -2 -> -1
-ctmx007 comparetotmag -1 -1 -> 0
-ctmx008 comparetotmag -1 0 -> 1
-ctmx009 comparetotmag -1 1 -> 0
-ctmx010 comparetotmag -1 2 -> -1
-ctmx011 comparetotmag 0 -2 -> -1
-ctmx012 comparetotmag 0 -1 -> -1
-ctmx013 comparetotmag 0 0 -> 0
-ctmx014 comparetotmag 0 1 -> -1
-ctmx015 comparetotmag 0 2 -> -1
-ctmx016 comparetotmag 1 -2 -> -1
-ctmx017 comparetotmag 1 -1 -> 0
-ctmx018 comparetotmag 1 0 -> 1
-ctmx019 comparetotmag 1 1 -> 0
-ctmx020 comparetotmag 1 2 -> -1
-ctmx021 comparetotmag 2 -2 -> 0
-ctmx022 comparetotmag 2 -1 -> 1
-ctmx023 comparetotmag 2 0 -> 1
-ctmx025 comparetotmag 2 1 -> 1
-ctmx026 comparetotmag 2 2 -> 0
-
-ctmx031 comparetotmag -20 -20 -> 0
-ctmx032 comparetotmag -20 -10 -> 1
-ctmx033 comparetotmag -20 00 -> 1
-ctmx034 comparetotmag -20 10 -> 1
-ctmx035 comparetotmag -20 20 -> 0
-ctmx036 comparetotmag -10 -20 -> -1
-ctmx037 comparetotmag -10 -10 -> 0
-ctmx038 comparetotmag -10 00 -> 1
-ctmx039 comparetotmag -10 10 -> 0
-ctmx040 comparetotmag -10 20 -> -1
-ctmx041 comparetotmag 00 -20 -> -1
-ctmx042 comparetotmag 00 -10 -> -1
-ctmx043 comparetotmag 00 00 -> 0
-ctmx044 comparetotmag 00 10 -> -1
-ctmx045 comparetotmag 00 20 -> -1
-ctmx046 comparetotmag 10 -20 -> -1
-ctmx047 comparetotmag 10 -10 -> 0
-ctmx048 comparetotmag 10 00 -> 1
-ctmx049 comparetotmag 10 10 -> 0
-ctmx050 comparetotmag 10 20 -> -1
-ctmx051 comparetotmag 20 -20 -> 0
-ctmx052 comparetotmag 20 -10 -> 1
-ctmx053 comparetotmag 20 00 -> 1
-ctmx055 comparetotmag 20 10 -> 1
-ctmx056 comparetotmag 20 20 -> 0
-
-ctmx061 comparetotmag -2.0 -2.0 -> 0
-ctmx062 comparetotmag -2.0 -1.0 -> 1
-ctmx063 comparetotmag -2.0 0.0 -> 1
-ctmx064 comparetotmag -2.0 1.0 -> 1
-ctmx065 comparetotmag -2.0 2.0 -> 0
-ctmx066 comparetotmag -1.0 -2.0 -> -1
-ctmx067 comparetotmag -1.0 -1.0 -> 0
-ctmx068 comparetotmag -1.0 0.0 -> 1
-ctmx069 comparetotmag -1.0 1.0 -> 0
-ctmx070 comparetotmag -1.0 2.0 -> -1
-ctmx071 comparetotmag 0.0 -2.0 -> -1
-ctmx072 comparetotmag 0.0 -1.0 -> -1
-ctmx073 comparetotmag 0.0 0.0 -> 0
-ctmx074 comparetotmag 0.0 1.0 -> -1
-ctmx075 comparetotmag 0.0 2.0 -> -1
-ctmx076 comparetotmag 1.0 -2.0 -> -1
-ctmx077 comparetotmag 1.0 -1.0 -> 0
-ctmx078 comparetotmag 1.0 0.0 -> 1
-ctmx079 comparetotmag 1.0 1.0 -> 0
-ctmx080 comparetotmag 1.0 2.0 -> -1
-ctmx081 comparetotmag 2.0 -2.0 -> 0
-ctmx082 comparetotmag 2.0 -1.0 -> 1
-ctmx083 comparetotmag 2.0 0.0 -> 1
-ctmx085 comparetotmag 2.0 1.0 -> 1
-ctmx086 comparetotmag 2.0 2.0 -> 0
-
--- now some cases which might overflow if subtract were used
-maxexponent: 999999999
-minexponent: -999999999
-ctmx090 comparetotmag 9.99999999E+999999999 9.99999999E+999999999 -> 0
-ctmx091 comparetotmag -9.99999999E+999999999 9.99999999E+999999999 -> 0
-ctmx092 comparetotmag 9.99999999E+999999999 -9.99999999E+999999999 -> 0
-ctmx093 comparetotmag -9.99999999E+999999999 -9.99999999E+999999999 -> 0
-
--- some differing length/exponent cases
--- in this first group, compare would compare all equal
-ctmx100 comparetotmag 7.0 7.0 -> 0
-ctmx101 comparetotmag 7.0 7 -> -1
-ctmx102 comparetotmag 7 7.0 -> 1
-ctmx103 comparetotmag 7E+0 7.0 -> 1
-ctmx104 comparetotmag 70E-1 7.0 -> 0
-ctmx105 comparetotmag 0.7E+1 7 -> 0
-ctmx106 comparetotmag 70E-1 7 -> -1
-ctmx107 comparetotmag 7.0 7E+0 -> -1
-ctmx108 comparetotmag 7.0 70E-1 -> 0
-ctmx109 comparetotmag 7 0.7E+1 -> 0
-ctmx110 comparetotmag 7 70E-1 -> 1
-
-ctmx120 comparetotmag 8.0 7.0 -> 1
-ctmx121 comparetotmag 8.0 7 -> 1
-ctmx122 comparetotmag 8 7.0 -> 1
-ctmx123 comparetotmag 8E+0 7.0 -> 1
-ctmx124 comparetotmag 80E-1 7.0 -> 1
-ctmx125 comparetotmag 0.8E+1 7 -> 1
-ctmx126 comparetotmag 80E-1 7 -> 1
-ctmx127 comparetotmag 8.0 7E+0 -> 1
-ctmx128 comparetotmag 8.0 70E-1 -> 1
-ctmx129 comparetotmag 8 0.7E+1 -> 1
-ctmx130 comparetotmag 8 70E-1 -> 1
-
-ctmx140 comparetotmag 8.0 9.0 -> -1
-ctmx141 comparetotmag 8.0 9 -> -1
-ctmx142 comparetotmag 8 9.0 -> -1
-ctmx143 comparetotmag 8E+0 9.0 -> -1
-ctmx144 comparetotmag 80E-1 9.0 -> -1
-ctmx145 comparetotmag 0.8E+1 9 -> -1
-ctmx146 comparetotmag 80E-1 9 -> -1
-ctmx147 comparetotmag 8.0 9E+0 -> -1
-ctmx148 comparetotmag 8.0 90E-1 -> -1
-ctmx149 comparetotmag 8 0.9E+1 -> -1
-ctmx150 comparetotmag 8 90E-1 -> -1
-
--- and again, with sign changes -+ ..
-ctmx200 comparetotmag -7.0 7.0 -> 0
-ctmx201 comparetotmag -7.0 7 -> -1
-ctmx202 comparetotmag -7 7.0 -> 1
-ctmx203 comparetotmag -7E+0 7.0 -> 1
-ctmx204 comparetotmag -70E-1 7.0 -> 0
-ctmx205 comparetotmag -0.7E+1 7 -> 0
-ctmx206 comparetotmag -70E-1 7 -> -1
-ctmx207 comparetotmag -7.0 7E+0 -> -1
-ctmx208 comparetotmag -7.0 70E-1 -> 0
-ctmx209 comparetotmag -7 0.7E+1 -> 0
-ctmx210 comparetotmag -7 70E-1 -> 1
-
-ctmx220 comparetotmag -8.0 7.0 -> 1
-ctmx221 comparetotmag -8.0 7 -> 1
-ctmx222 comparetotmag -8 7.0 -> 1
-ctmx223 comparetotmag -8E+0 7.0 -> 1
-ctmx224 comparetotmag -80E-1 7.0 -> 1
-ctmx225 comparetotmag -0.8E+1 7 -> 1
-ctmx226 comparetotmag -80E-1 7 -> 1
-ctmx227 comparetotmag -8.0 7E+0 -> 1
-ctmx228 comparetotmag -8.0 70E-1 -> 1
-ctmx229 comparetotmag -8 0.7E+1 -> 1
-ctmx230 comparetotmag -8 70E-1 -> 1
-
-ctmx240 comparetotmag -8.0 9.0 -> -1
-ctmx241 comparetotmag -8.0 9 -> -1
-ctmx242 comparetotmag -8 9.0 -> -1
-ctmx243 comparetotmag -8E+0 9.0 -> -1
-ctmx244 comparetotmag -80E-1 9.0 -> -1
-ctmx245 comparetotmag -0.8E+1 9 -> -1
-ctmx246 comparetotmag -80E-1 9 -> -1
-ctmx247 comparetotmag -8.0 9E+0 -> -1
-ctmx248 comparetotmag -8.0 90E-1 -> -1
-ctmx249 comparetotmag -8 0.9E+1 -> -1
-ctmx250 comparetotmag -8 90E-1 -> -1
-
--- and again, with sign changes +- ..
-ctmx300 comparetotmag 7.0 -7.0 -> 0
-ctmx301 comparetotmag 7.0 -7 -> -1
-ctmx302 comparetotmag 7 -7.0 -> 1
-ctmx303 comparetotmag 7E+0 -7.0 -> 1
-ctmx304 comparetotmag 70E-1 -7.0 -> 0
-ctmx305 comparetotmag .7E+1 -7 -> 0
-ctmx306 comparetotmag 70E-1 -7 -> -1
-ctmx307 comparetotmag 7.0 -7E+0 -> -1
-ctmx308 comparetotmag 7.0 -70E-1 -> 0
-ctmx309 comparetotmag 7 -.7E+1 -> 0
-ctmx310 comparetotmag 7 -70E-1 -> 1
-
-ctmx320 comparetotmag 8.0 -7.0 -> 1
-ctmx321 comparetotmag 8.0 -7 -> 1
-ctmx322 comparetotmag 8 -7.0 -> 1
-ctmx323 comparetotmag 8E+0 -7.0 -> 1
-ctmx324 comparetotmag 80E-1 -7.0 -> 1
-ctmx325 comparetotmag .8E+1 -7 -> 1
-ctmx326 comparetotmag 80E-1 -7 -> 1
-ctmx327 comparetotmag 8.0 -7E+0 -> 1
-ctmx328 comparetotmag 8.0 -70E-1 -> 1
-ctmx329 comparetotmag 8 -.7E+1 -> 1
-ctmx330 comparetotmag 8 -70E-1 -> 1
-
-ctmx340 comparetotmag 8.0 -9.0 -> -1
-ctmx341 comparetotmag 8.0 -9 -> -1
-ctmx342 comparetotmag 8 -9.0 -> -1
-ctmx343 comparetotmag 8E+0 -9.0 -> -1
-ctmx344 comparetotmag 80E-1 -9.0 -> -1
-ctmx345 comparetotmag .8E+1 -9 -> -1
-ctmx346 comparetotmag 80E-1 -9 -> -1
-ctmx347 comparetotmag 8.0 -9E+0 -> -1
-ctmx348 comparetotmag 8.0 -90E-1 -> -1
-ctmx349 comparetotmag 8 -.9E+1 -> -1
-ctmx350 comparetotmag 8 -90E-1 -> -1
-
--- and again, with sign changes -- ..
-ctmx400 comparetotmag -7.0 -7.0 -> 0
-ctmx401 comparetotmag -7.0 -7 -> -1
-ctmx402 comparetotmag -7 -7.0 -> 1
-ctmx403 comparetotmag -7E+0 -7.0 -> 1
-ctmx404 comparetotmag -70E-1 -7.0 -> 0
-ctmx405 comparetotmag -.7E+1 -7 -> 0
-ctmx406 comparetotmag -70E-1 -7 -> -1
-ctmx407 comparetotmag -7.0 -7E+0 -> -1
-ctmx408 comparetotmag -7.0 -70E-1 -> 0
-ctmx409 comparetotmag -7 -.7E+1 -> 0
-ctmx410 comparetotmag -7 -70E-1 -> 1
-
-ctmx420 comparetotmag -8.0 -7.0 -> 1
-ctmx421 comparetotmag -8.0 -7 -> 1
-ctmx422 comparetotmag -8 -7.0 -> 1
-ctmx423 comparetotmag -8E+0 -7.0 -> 1
-ctmx424 comparetotmag -80E-1 -7.0 -> 1
-ctmx425 comparetotmag -.8E+1 -7 -> 1
-ctmx426 comparetotmag -80E-1 -7 -> 1
-ctmx427 comparetotmag -8.0 -7E+0 -> 1
-ctmx428 comparetotmag -8.0 -70E-1 -> 1
-ctmx429 comparetotmag -8 -.7E+1 -> 1
-ctmx430 comparetotmag -8 -70E-1 -> 1
-
-ctmx440 comparetotmag -8.0 -9.0 -> -1
-ctmx441 comparetotmag -8.0 -9 -> -1
-ctmx442 comparetotmag -8 -9.0 -> -1
-ctmx443 comparetotmag -8E+0 -9.0 -> -1
-ctmx444 comparetotmag -80E-1 -9.0 -> -1
-ctmx445 comparetotmag -.8E+1 -9 -> -1
-ctmx446 comparetotmag -80E-1 -9 -> -1
-ctmx447 comparetotmag -8.0 -9E+0 -> -1
-ctmx448 comparetotmag -8.0 -90E-1 -> -1
-ctmx449 comparetotmag -8 -.9E+1 -> -1
-ctmx450 comparetotmag -8 -90E-1 -> -1
-
-
--- testcases that subtract to lots of zeros at boundaries [pgr]
-precision: 40
-ctmx470 comparetotmag 123.4560000000000000E789 123.456E789 -> -1
-ctmx471 comparetotmag 123.456000000000000E-89 123.456E-89 -> -1
-ctmx472 comparetotmag 123.45600000000000E789 123.456E789 -> -1
-ctmx473 comparetotmag 123.4560000000000E-89 123.456E-89 -> -1
-ctmx474 comparetotmag 123.456000000000E789 123.456E789 -> -1
-ctmx475 comparetotmag 123.45600000000E-89 123.456E-89 -> -1
-ctmx476 comparetotmag 123.4560000000E789 123.456E789 -> -1
-ctmx477 comparetotmag 123.456000000E-89 123.456E-89 -> -1
-ctmx478 comparetotmag 123.45600000E789 123.456E789 -> -1
-ctmx479 comparetotmag 123.4560000E-89 123.456E-89 -> -1
-ctmx480 comparetotmag 123.456000E789 123.456E789 -> -1
-ctmx481 comparetotmag 123.45600E-89 123.456E-89 -> -1
-ctmx482 comparetotmag 123.4560E789 123.456E789 -> -1
-ctmx483 comparetotmag 123.456E-89 123.456E-89 -> 0
-ctmx484 comparetotmag 123.456E-89 123.4560000000000000E-89 -> 1
-ctmx485 comparetotmag 123.456E789 123.456000000000000E789 -> 1
-ctmx486 comparetotmag 123.456E-89 123.45600000000000E-89 -> 1
-ctmx487 comparetotmag 123.456E789 123.4560000000000E789 -> 1
-ctmx488 comparetotmag 123.456E-89 123.456000000000E-89 -> 1
-ctmx489 comparetotmag 123.456E789 123.45600000000E789 -> 1
-ctmx490 comparetotmag 123.456E-89 123.4560000000E-89 -> 1
-ctmx491 comparetotmag 123.456E789 123.456000000E789 -> 1
-ctmx492 comparetotmag 123.456E-89 123.45600000E-89 -> 1
-ctmx493 comparetotmag 123.456E789 123.4560000E789 -> 1
-ctmx494 comparetotmag 123.456E-89 123.456000E-89 -> 1
-ctmx495 comparetotmag 123.456E789 123.45600E789 -> 1
-ctmx496 comparetotmag 123.456E-89 123.4560E-89 -> 1
-ctmx497 comparetotmag 123.456E789 123.456E789 -> 0
-
--- wide-ranging, around precision; signs equal
-precision: 9
-ctmx500 comparetotmag 1 1E-15 -> 1
-ctmx501 comparetotmag 1 1E-14 -> 1
-ctmx502 comparetotmag 1 1E-13 -> 1
-ctmx503 comparetotmag 1 1E-12 -> 1
-ctmx504 comparetotmag 1 1E-11 -> 1
-ctmx505 comparetotmag 1 1E-10 -> 1
-ctmx506 comparetotmag 1 1E-9 -> 1
-ctmx507 comparetotmag 1 1E-8 -> 1
-ctmx508 comparetotmag 1 1E-7 -> 1
-ctmx509 comparetotmag 1 1E-6 -> 1
-ctmx510 comparetotmag 1 1E-5 -> 1
-ctmx511 comparetotmag 1 1E-4 -> 1
-ctmx512 comparetotmag 1 1E-3 -> 1
-ctmx513 comparetotmag 1 1E-2 -> 1
-ctmx514 comparetotmag 1 1E-1 -> 1
-ctmx515 comparetotmag 1 1E-0 -> 0
-ctmx516 comparetotmag 1 1E+1 -> -1
-ctmx517 comparetotmag 1 1E+2 -> -1
-ctmx518 comparetotmag 1 1E+3 -> -1
-ctmx519 comparetotmag 1 1E+4 -> -1
-ctmx521 comparetotmag 1 1E+5 -> -1
-ctmx522 comparetotmag 1 1E+6 -> -1
-ctmx523 comparetotmag 1 1E+7 -> -1
-ctmx524 comparetotmag 1 1E+8 -> -1
-ctmx525 comparetotmag 1 1E+9 -> -1
-ctmx526 comparetotmag 1 1E+10 -> -1
-ctmx527 comparetotmag 1 1E+11 -> -1
-ctmx528 comparetotmag 1 1E+12 -> -1
-ctmx529 comparetotmag 1 1E+13 -> -1
-ctmx530 comparetotmag 1 1E+14 -> -1
-ctmx531 comparetotmag 1 1E+15 -> -1
--- LR swap
-ctmx540 comparetotmag 1E-15 1 -> -1
-ctmx541 comparetotmag 1E-14 1 -> -1
-ctmx542 comparetotmag 1E-13 1 -> -1
-ctmx543 comparetotmag 1E-12 1 -> -1
-ctmx544 comparetotmag 1E-11 1 -> -1
-ctmx545 comparetotmag 1E-10 1 -> -1
-ctmx546 comparetotmag 1E-9 1 -> -1
-ctmx547 comparetotmag 1E-8 1 -> -1
-ctmx548 comparetotmag 1E-7 1 -> -1
-ctmx549 comparetotmag 1E-6 1 -> -1
-ctmx550 comparetotmag 1E-5 1 -> -1
-ctmx551 comparetotmag 1E-4 1 -> -1
-ctmx552 comparetotmag 1E-3 1 -> -1
-ctmx553 comparetotmag 1E-2 1 -> -1
-ctmx554 comparetotmag 1E-1 1 -> -1
-ctmx555 comparetotmag 1E-0 1 -> 0
-ctmx556 comparetotmag 1E+1 1 -> 1
-ctmx557 comparetotmag 1E+2 1 -> 1
-ctmx558 comparetotmag 1E+3 1 -> 1
-ctmx559 comparetotmag 1E+4 1 -> 1
-ctmx561 comparetotmag 1E+5 1 -> 1
-ctmx562 comparetotmag 1E+6 1 -> 1
-ctmx563 comparetotmag 1E+7 1 -> 1
-ctmx564 comparetotmag 1E+8 1 -> 1
-ctmx565 comparetotmag 1E+9 1 -> 1
-ctmx566 comparetotmag 1E+10 1 -> 1
-ctmx567 comparetotmag 1E+11 1 -> 1
-ctmx568 comparetotmag 1E+12 1 -> 1
-ctmx569 comparetotmag 1E+13 1 -> 1
-ctmx570 comparetotmag 1E+14 1 -> 1
-ctmx571 comparetotmag 1E+15 1 -> 1
--- similar with an useful coefficient, one side only
-ctmx580 comparetotmag 0.000000987654321 1E-15 -> 1
-ctmx581 comparetotmag 0.000000987654321 1E-14 -> 1
-ctmx582 comparetotmag 0.000000987654321 1E-13 -> 1
-ctmx583 comparetotmag 0.000000987654321 1E-12 -> 1
-ctmx584 comparetotmag 0.000000987654321 1E-11 -> 1
-ctmx585 comparetotmag 0.000000987654321 1E-10 -> 1
-ctmx586 comparetotmag 0.000000987654321 1E-9 -> 1
-ctmx587 comparetotmag 0.000000987654321 1E-8 -> 1
-ctmx588 comparetotmag 0.000000987654321 1E-7 -> 1
-ctmx589 comparetotmag 0.000000987654321 1E-6 -> -1
-ctmx590 comparetotmag 0.000000987654321 1E-5 -> -1
-ctmx591 comparetotmag 0.000000987654321 1E-4 -> -1
-ctmx592 comparetotmag 0.000000987654321 1E-3 -> -1
-ctmx593 comparetotmag 0.000000987654321 1E-2 -> -1
-ctmx594 comparetotmag 0.000000987654321 1E-1 -> -1
-ctmx595 comparetotmag 0.000000987654321 1E-0 -> -1
-ctmx596 comparetotmag 0.000000987654321 1E+1 -> -1
-ctmx597 comparetotmag 0.000000987654321 1E+2 -> -1
-ctmx598 comparetotmag 0.000000987654321 1E+3 -> -1
-ctmx599 comparetotmag 0.000000987654321 1E+4 -> -1
-
--- check some unit-y traps
-precision: 20
-ctmx600 comparetotmag 12 12.2345 -> -1
-ctmx601 comparetotmag 12.0 12.2345 -> -1
-ctmx602 comparetotmag 12.00 12.2345 -> -1
-ctmx603 comparetotmag 12.000 12.2345 -> -1
-ctmx604 comparetotmag 12.0000 12.2345 -> -1
-ctmx605 comparetotmag 12.00000 12.2345 -> -1
-ctmx606 comparetotmag 12.000000 12.2345 -> -1
-ctmx607 comparetotmag 12.0000000 12.2345 -> -1
-ctmx608 comparetotmag 12.00000000 12.2345 -> -1
-ctmx609 comparetotmag 12.000000000 12.2345 -> -1
-ctmx610 comparetotmag 12.1234 12 -> 1
-ctmx611 comparetotmag 12.1234 12.0 -> 1
-ctmx612 comparetotmag 12.1234 12.00 -> 1
-ctmx613 comparetotmag 12.1234 12.000 -> 1
-ctmx614 comparetotmag 12.1234 12.0000 -> 1
-ctmx615 comparetotmag 12.1234 12.00000 -> 1
-ctmx616 comparetotmag 12.1234 12.000000 -> 1
-ctmx617 comparetotmag 12.1234 12.0000000 -> 1
-ctmx618 comparetotmag 12.1234 12.00000000 -> 1
-ctmx619 comparetotmag 12.1234 12.000000000 -> 1
-ctmx620 comparetotmag -12 -12.2345 -> -1
-ctmx621 comparetotmag -12.0 -12.2345 -> -1
-ctmx622 comparetotmag -12.00 -12.2345 -> -1
-ctmx623 comparetotmag -12.000 -12.2345 -> -1
-ctmx624 comparetotmag -12.0000 -12.2345 -> -1
-ctmx625 comparetotmag -12.00000 -12.2345 -> -1
-ctmx626 comparetotmag -12.000000 -12.2345 -> -1
-ctmx627 comparetotmag -12.0000000 -12.2345 -> -1
-ctmx628 comparetotmag -12.00000000 -12.2345 -> -1
-ctmx629 comparetotmag -12.000000000 -12.2345 -> -1
-ctmx630 comparetotmag -12.1234 -12 -> 1
-ctmx631 comparetotmag -12.1234 -12.0 -> 1
-ctmx632 comparetotmag -12.1234 -12.00 -> 1
-ctmx633 comparetotmag -12.1234 -12.000 -> 1
-ctmx634 comparetotmag -12.1234 -12.0000 -> 1
-ctmx635 comparetotmag -12.1234 -12.00000 -> 1
-ctmx636 comparetotmag -12.1234 -12.000000 -> 1
-ctmx637 comparetotmag -12.1234 -12.0000000 -> 1
-ctmx638 comparetotmag -12.1234 -12.00000000 -> 1
-ctmx639 comparetotmag -12.1234 -12.000000000 -> 1
-precision: 9
-
--- extended zeros
-ctmx640 comparetotmag 0 0 -> 0
-ctmx641 comparetotmag 0 -0 -> 0
-ctmx642 comparetotmag 0 -0.0 -> 1
-ctmx643 comparetotmag 0 0.0 -> 1
-ctmx644 comparetotmag -0 0 -> 0
-ctmx645 comparetotmag -0 -0 -> 0
-ctmx646 comparetotmag -0 -0.0 -> 1
-ctmx647 comparetotmag -0 0.0 -> 1
-ctmx648 comparetotmag 0.0 0 -> -1
-ctmx649 comparetotmag 0.0 -0 -> -1
-ctmx650 comparetotmag 0.0 -0.0 -> 0
-ctmx651 comparetotmag 0.0 0.0 -> 0
-ctmx652 comparetotmag -0.0 0 -> -1
-ctmx653 comparetotmag -0.0 -0 -> -1
-ctmx654 comparetotmag -0.0 -0.0 -> 0
-ctmx655 comparetotmag -0.0 0.0 -> 0
-
-ctmx656 comparetotmag -0E1 0.0 -> 1
-ctmx657 comparetotmag -0E2 0.0 -> 1
-ctmx658 comparetotmag 0E1 0.0 -> 1
-ctmx659 comparetotmag 0E2 0.0 -> 1
-ctmx660 comparetotmag -0E1 0 -> 1
-ctmx661 comparetotmag -0E2 0 -> 1
-ctmx662 comparetotmag 0E1 0 -> 1
-ctmx663 comparetotmag 0E2 0 -> 1
-ctmx664 comparetotmag -0E1 -0E1 -> 0
-ctmx665 comparetotmag -0E2 -0E1 -> 1
-ctmx666 comparetotmag 0E1 -0E1 -> 0
-ctmx667 comparetotmag 0E2 -0E1 -> 1
-ctmx668 comparetotmag -0E1 -0E2 -> -1
-ctmx669 comparetotmag -0E2 -0E2 -> 0
-ctmx670 comparetotmag 0E1 -0E2 -> -1
-ctmx671 comparetotmag 0E2 -0E2 -> 0
-ctmx672 comparetotmag -0E1 0E1 -> 0
-ctmx673 comparetotmag -0E2 0E1 -> 1
-ctmx674 comparetotmag 0E1 0E1 -> 0
-ctmx675 comparetotmag 0E2 0E1 -> 1
-ctmx676 comparetotmag -0E1 0E2 -> -1
-ctmx677 comparetotmag -0E2 0E2 -> 0
-ctmx678 comparetotmag 0E1 0E2 -> -1
-ctmx679 comparetotmag 0E2 0E2 -> 0
-
--- trailing zeros; unit-y
-precision: 20
-ctmx680 comparetotmag 12 12 -> 0
-ctmx681 comparetotmag 12 12.0 -> 1
-ctmx682 comparetotmag 12 12.00 -> 1
-ctmx683 comparetotmag 12 12.000 -> 1
-ctmx684 comparetotmag 12 12.0000 -> 1
-ctmx685 comparetotmag 12 12.00000 -> 1
-ctmx686 comparetotmag 12 12.000000 -> 1
-ctmx687 comparetotmag 12 12.0000000 -> 1
-ctmx688 comparetotmag 12 12.00000000 -> 1
-ctmx689 comparetotmag 12 12.000000000 -> 1
-ctmx690 comparetotmag 12 12 -> 0
-ctmx691 comparetotmag 12.0 12 -> -1
-ctmx692 comparetotmag 12.00 12 -> -1
-ctmx693 comparetotmag 12.000 12 -> -1
-ctmx694 comparetotmag 12.0000 12 -> -1
-ctmx695 comparetotmag 12.00000 12 -> -1
-ctmx696 comparetotmag 12.000000 12 -> -1
-ctmx697 comparetotmag 12.0000000 12 -> -1
-ctmx698 comparetotmag 12.00000000 12 -> -1
-ctmx699 comparetotmag 12.000000000 12 -> -1
-
--- long operand checks
-maxexponent: 999
-minexponent: -999
-precision: 9
-ctmx701 comparetotmag 12345678000 1 -> 1
-ctmx702 comparetotmag 1 12345678000 -> -1
-ctmx703 comparetotmag 1234567800 1 -> 1
-ctmx704 comparetotmag 1 1234567800 -> -1
-ctmx705 comparetotmag 1234567890 1 -> 1
-ctmx706 comparetotmag 1 1234567890 -> -1
-ctmx707 comparetotmag 1234567891 1 -> 1
-ctmx708 comparetotmag 1 1234567891 -> -1
-ctmx709 comparetotmag 12345678901 1 -> 1
-ctmx710 comparetotmag 1 12345678901 -> -1
-ctmx711 comparetotmag 1234567896 1 -> 1
-ctmx712 comparetotmag 1 1234567896 -> -1
-ctmx713 comparetotmag -1234567891 1 -> 1
-ctmx714 comparetotmag 1 -1234567891 -> -1
-ctmx715 comparetotmag -12345678901 1 -> 1
-ctmx716 comparetotmag 1 -12345678901 -> -1
-ctmx717 comparetotmag -1234567896 1 -> 1
-ctmx718 comparetotmag 1 -1234567896 -> -1
-
-precision: 15
--- same with plenty of precision
-ctmx721 comparetotmag 12345678000 1 -> 1
-ctmx722 comparetotmag 1 12345678000 -> -1
-ctmx723 comparetotmag 1234567800 1 -> 1
-ctmx724 comparetotmag 1 1234567800 -> -1
-ctmx725 comparetotmag 1234567890 1 -> 1
-ctmx726 comparetotmag 1 1234567890 -> -1
-ctmx727 comparetotmag 1234567891 1 -> 1
-ctmx728 comparetotmag 1 1234567891 -> -1
-ctmx729 comparetotmag 12345678901 1 -> 1
-ctmx730 comparetotmag 1 12345678901 -> -1
-ctmx731 comparetotmag 1234567896 1 -> 1
-ctmx732 comparetotmag 1 1234567896 -> -1
-
--- residue cases
-precision: 5
-ctmx740 comparetotmag 1 0.9999999 -> 1
-ctmx741 comparetotmag 1 0.999999 -> 1
-ctmx742 comparetotmag 1 0.99999 -> 1
-ctmx743 comparetotmag 1 1.0000 -> 1
-ctmx744 comparetotmag 1 1.00001 -> -1
-ctmx745 comparetotmag 1 1.000001 -> -1
-ctmx746 comparetotmag 1 1.0000001 -> -1
-ctmx750 comparetotmag 0.9999999 1 -> -1
-ctmx751 comparetotmag 0.999999 1 -> -1
-ctmx752 comparetotmag 0.99999 1 -> -1
-ctmx753 comparetotmag 1.0000 1 -> -1
-ctmx754 comparetotmag 1.00001 1 -> 1
-ctmx755 comparetotmag 1.000001 1 -> 1
-ctmx756 comparetotmag 1.0000001 1 -> 1
-
--- a selection of longies
-ctmx760 comparetotmag -36852134.84194296250843579428931 -5830629.8347085025808756560357940 -> 1
-ctmx761 comparetotmag -36852134.84194296250843579428931 -36852134.84194296250843579428931 -> 0
-ctmx762 comparetotmag -36852134.94194296250843579428931 -36852134.84194296250843579428931 -> 1
-ctmx763 comparetotmag -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> -1
--- precisions above or below the difference should have no effect
-precision: 11
-ctmx764 comparetotmag -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> -1
-precision: 10
-ctmx765 comparetotmag -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> -1
-precision: 9
-ctmx766 comparetotmag -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> -1
-precision: 8
-ctmx767 comparetotmag -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> -1
-precision: 7
-ctmx768 comparetotmag -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> -1
-precision: 6
-ctmx769 comparetotmag -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> -1
-precision: 5
-ctmx770 comparetotmag -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> -1
-precision: 4
-ctmx771 comparetotmag -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> -1
-precision: 3
-ctmx772 comparetotmag -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> -1
-precision: 2
-ctmx773 comparetotmag -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> -1
-precision: 1
-ctmx774 comparetotmag -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> -1
-
--- Specials
-precision: 9
-ctmx780 comparetotmag Inf -Inf -> 0
-ctmx781 comparetotmag Inf -1000 -> 1
-ctmx782 comparetotmag Inf -1 -> 1
-ctmx783 comparetotmag Inf -0 -> 1
-ctmx784 comparetotmag Inf 0 -> 1
-ctmx785 comparetotmag Inf 1 -> 1
-ctmx786 comparetotmag Inf 1000 -> 1
-ctmx787 comparetotmag Inf Inf -> 0
-ctmx788 comparetotmag -1000 Inf -> -1
-ctmx789 comparetotmag -Inf Inf -> 0
-ctmx790 comparetotmag -1 Inf -> -1
-ctmx791 comparetotmag -0 Inf -> -1
-ctmx792 comparetotmag 0 Inf -> -1
-ctmx793 comparetotmag 1 Inf -> -1
-ctmx794 comparetotmag 1000 Inf -> -1
-ctmx795 comparetotmag Inf Inf -> 0
-
-ctmx800 comparetotmag -Inf -Inf -> 0
-ctmx801 comparetotmag -Inf -1000 -> 1
-ctmx802 comparetotmag -Inf -1 -> 1
-ctmx803 comparetotmag -Inf -0 -> 1
-ctmx804 comparetotmag -Inf 0 -> 1
-ctmx805 comparetotmag -Inf 1 -> 1
-ctmx806 comparetotmag -Inf 1000 -> 1
-ctmx807 comparetotmag -Inf Inf -> 0
-ctmx808 comparetotmag -Inf -Inf -> 0
-ctmx809 comparetotmag -1000 -Inf -> -1
-ctmx810 comparetotmag -1 -Inf -> -1
-ctmx811 comparetotmag -0 -Inf -> -1
-ctmx812 comparetotmag 0 -Inf -> -1
-ctmx813 comparetotmag 1 -Inf -> -1
-ctmx814 comparetotmag 1000 -Inf -> -1
-ctmx815 comparetotmag Inf -Inf -> 0
-
-ctmx821 comparetotmag NaN -Inf -> 1
-ctmx822 comparetotmag NaN -1000 -> 1
-ctmx823 comparetotmag NaN -1 -> 1
-ctmx824 comparetotmag NaN -0 -> 1
-ctmx825 comparetotmag NaN 0 -> 1
-ctmx826 comparetotmag NaN 1 -> 1
-ctmx827 comparetotmag NaN 1000 -> 1
-ctmx828 comparetotmag NaN Inf -> 1
-ctmx829 comparetotmag NaN NaN -> 0
-ctmx830 comparetotmag -Inf NaN -> -1
-ctmx831 comparetotmag -1000 NaN -> -1
-ctmx832 comparetotmag -1 NaN -> -1
-ctmx833 comparetotmag -0 NaN -> -1
-ctmx834 comparetotmag 0 NaN -> -1
-ctmx835 comparetotmag 1 NaN -> -1
-ctmx836 comparetotmag 1000 NaN -> -1
-ctmx837 comparetotmag Inf NaN -> -1
-ctmx838 comparetotmag -NaN -NaN -> 0
-ctmx839 comparetotmag +NaN -NaN -> 0
-ctmx840 comparetotmag -NaN +NaN -> 0
-
-ctmx841 comparetotmag sNaN -sNaN -> 0
-ctmx842 comparetotmag sNaN -NaN -> -1
-ctmx843 comparetotmag sNaN -Inf -> 1
-ctmx844 comparetotmag sNaN -1000 -> 1
-ctmx845 comparetotmag sNaN -1 -> 1
-ctmx846 comparetotmag sNaN -0 -> 1
-ctmx847 comparetotmag sNaN 0 -> 1
-ctmx848 comparetotmag sNaN 1 -> 1
-ctmx849 comparetotmag sNaN 1000 -> 1
-ctmx850 comparetotmag sNaN NaN -> -1
-ctmx851 comparetotmag sNaN sNaN -> 0
-
-ctmx852 comparetotmag -sNaN sNaN -> 0
-ctmx853 comparetotmag -NaN sNaN -> 1
-ctmx854 comparetotmag -Inf sNaN -> -1
-ctmx855 comparetotmag -1000 sNaN -> -1
-ctmx856 comparetotmag -1 sNaN -> -1
-ctmx857 comparetotmag -0 sNaN -> -1
-ctmx858 comparetotmag 0 sNaN -> -1
-ctmx859 comparetotmag 1 sNaN -> -1
-ctmx860 comparetotmag 1000 sNaN -> -1
-ctmx861 comparetotmag Inf sNaN -> -1
-ctmx862 comparetotmag NaN sNaN -> 1
-ctmx863 comparetotmag sNaN sNaN -> 0
-
-ctmx871 comparetotmag -sNaN -sNaN -> 0
-ctmx872 comparetotmag -sNaN -NaN -> -1
-ctmx873 comparetotmag -sNaN -Inf -> 1
-ctmx874 comparetotmag -sNaN -1000 -> 1
-ctmx875 comparetotmag -sNaN -1 -> 1
-ctmx876 comparetotmag -sNaN -0 -> 1
-ctmx877 comparetotmag -sNaN 0 -> 1
-ctmx878 comparetotmag -sNaN 1 -> 1
-ctmx879 comparetotmag -sNaN 1000 -> 1
-ctmx880 comparetotmag -sNaN NaN -> -1
-ctmx881 comparetotmag -sNaN sNaN -> 0
-
-ctmx882 comparetotmag -sNaN -sNaN -> 0
-ctmx883 comparetotmag -NaN -sNaN -> 1
-ctmx884 comparetotmag -Inf -sNaN -> -1
-ctmx885 comparetotmag -1000 -sNaN -> -1
-ctmx886 comparetotmag -1 -sNaN -> -1
-ctmx887 comparetotmag -0 -sNaN -> -1
-ctmx888 comparetotmag 0 -sNaN -> -1
-ctmx889 comparetotmag 1 -sNaN -> -1
-ctmx890 comparetotmag 1000 -sNaN -> -1
-ctmx891 comparetotmag Inf -sNaN -> -1
-ctmx892 comparetotmag NaN -sNaN -> 1
-ctmx893 comparetotmag sNaN -sNaN -> 0
-
--- NaNs with payload
-ctmx960 comparetotmag NaN9 -Inf -> 1
-ctmx961 comparetotmag NaN8 999 -> 1
-ctmx962 comparetotmag NaN77 Inf -> 1
-ctmx963 comparetotmag -NaN67 NaN5 -> 1
-ctmx964 comparetotmag -Inf -NaN4 -> -1
-ctmx965 comparetotmag -999 -NaN33 -> -1
-ctmx966 comparetotmag Inf NaN2 -> -1
-
-ctmx970 comparetotmag -NaN41 -NaN42 -> -1
-ctmx971 comparetotmag +NaN41 -NaN42 -> -1
-ctmx972 comparetotmag -NaN41 +NaN42 -> -1
-ctmx973 comparetotmag +NaN41 +NaN42 -> -1
-ctmx974 comparetotmag -NaN42 -NaN01 -> 1
-ctmx975 comparetotmag +NaN42 -NaN01 -> 1
-ctmx976 comparetotmag -NaN42 +NaN01 -> 1
-ctmx977 comparetotmag +NaN42 +NaN01 -> 1
-
-ctmx980 comparetotmag -sNaN771 -sNaN772 -> -1
-ctmx981 comparetotmag +sNaN771 -sNaN772 -> -1
-ctmx982 comparetotmag -sNaN771 +sNaN772 -> -1
-ctmx983 comparetotmag +sNaN771 +sNaN772 -> -1
-ctmx984 comparetotmag -sNaN772 -sNaN771 -> 1
-ctmx985 comparetotmag +sNaN772 -sNaN771 -> 1
-ctmx986 comparetotmag -sNaN772 +sNaN771 -> 1
-ctmx987 comparetotmag +sNaN772 +sNaN771 -> 1
-
-ctmx991 comparetotmag -sNaN99 -Inf -> 1
-ctmx992 comparetotmag sNaN98 -11 -> 1
-ctmx993 comparetotmag sNaN97 NaN -> -1
-ctmx994 comparetotmag sNaN16 sNaN94 -> -1
-ctmx995 comparetotmag NaN85 sNaN83 -> 1
-ctmx996 comparetotmag -Inf sNaN92 -> -1
-ctmx997 comparetotmag 088 sNaN81 -> -1
-ctmx998 comparetotmag Inf sNaN90 -> -1
-ctmx999 comparetotmag NaN -sNaN89 -> 1
-
--- overflow and underflow tests .. subnormal results now allowed
-maxExponent: 999999999
-minexponent: -999999999
-ctmx1080 comparetotmag +1.23456789012345E-0 9E+999999999 -> -1
-ctmx1081 comparetotmag 9E+999999999 +1.23456789012345E-0 -> 1
-ctmx1082 comparetotmag +0.100 9E-999999999 -> 1
-ctmx1083 comparetotmag 9E-999999999 +0.100 -> -1
-ctmx1085 comparetotmag -1.23456789012345E-0 9E+999999999 -> -1
-ctmx1086 comparetotmag 9E+999999999 -1.23456789012345E-0 -> 1
-ctmx1087 comparetotmag -0.100 9E-999999999 -> 1
-ctmx1088 comparetotmag 9E-999999999 -0.100 -> -1
-
-ctmx1089 comparetotmag 1e-599999999 1e-400000001 -> -1
-ctmx1090 comparetotmag 1e-599999999 1e-400000000 -> -1
-ctmx1091 comparetotmag 1e-600000000 1e-400000000 -> -1
-ctmx1092 comparetotmag 9e-999999998 0.01 -> -1
-ctmx1093 comparetotmag 9e-999999998 0.1 -> -1
-ctmx1094 comparetotmag 0.01 9e-999999998 -> 1
-ctmx1095 comparetotmag 1e599999999 1e400000001 -> 1
-ctmx1096 comparetotmag 1e599999999 1e400000000 -> 1
-ctmx1097 comparetotmag 1e600000000 1e400000000 -> 1
-ctmx1098 comparetotmag 9e999999998 100 -> 1
-ctmx1099 comparetotmag 9e999999998 10 -> 1
-ctmx1100 comparetotmag 100 9e999999998 -> -1
--- signs
-ctmx1101 comparetotmag 1e+777777777 1e+411111111 -> 1
-ctmx1102 comparetotmag 1e+777777777 -1e+411111111 -> 1
-ctmx1103 comparetotmag -1e+777777777 1e+411111111 -> 1
-ctmx1104 comparetotmag -1e+777777777 -1e+411111111 -> 1
-ctmx1105 comparetotmag 1e-777777777 1e-411111111 -> -1
-ctmx1106 comparetotmag 1e-777777777 -1e-411111111 -> -1
-ctmx1107 comparetotmag -1e-777777777 1e-411111111 -> -1
-ctmx1108 comparetotmag -1e-777777777 -1e-411111111 -> -1
-
--- spread zeros
-ctmx1110 comparetotmag 0E-383 0 -> -1
-ctmx1111 comparetotmag 0E-383 -0 -> -1
-ctmx1112 comparetotmag -0E-383 0 -> -1
-ctmx1113 comparetotmag -0E-383 -0 -> -1
-ctmx1114 comparetotmag 0E-383 0E+384 -> -1
-ctmx1115 comparetotmag 0E-383 -0E+384 -> -1
-ctmx1116 comparetotmag -0E-383 0E+384 -> -1
-ctmx1117 comparetotmag -0E-383 -0E+384 -> -1
-ctmx1118 comparetotmag 0 0E+384 -> -1
-ctmx1119 comparetotmag 0 -0E+384 -> -1
-ctmx1120 comparetotmag -0 0E+384 -> -1
-ctmx1121 comparetotmag -0 -0E+384 -> -1
-
-ctmx1130 comparetotmag 0E+384 0 -> 1
-ctmx1131 comparetotmag 0E+384 -0 -> 1
-ctmx1132 comparetotmag -0E+384 0 -> 1
-ctmx1133 comparetotmag -0E+384 -0 -> 1
-ctmx1134 comparetotmag 0E+384 0E-383 -> 1
-ctmx1135 comparetotmag 0E+384 -0E-383 -> 1
-ctmx1136 comparetotmag -0E+384 0E-383 -> 1
-ctmx1137 comparetotmag -0E+384 -0E-383 -> 1
-ctmx1138 comparetotmag 0 0E-383 -> 1
-ctmx1139 comparetotmag 0 -0E-383 -> 1
-ctmx1140 comparetotmag -0 0E-383 -> 1
-ctmx1141 comparetotmag -0 -0E-383 -> 1
-
--- Null tests
-ctmx9990 comparetotmag 10 # -> NaN Invalid_operation
-ctmx9991 comparetotmag # 10 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- comparetotmag.decTest -- decimal comparison, abs. total ordering -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- Note that it cannot be assumed that add/subtract tests cover paths +-- for this operation adequately, here, because the code might be +-- quite different (comparison cannot overflow or underflow, so +-- actual subtractions are not necessary). Similarly, comparetotal +-- will have some radically different paths than compare. + +extended: 1 +precision: 16 +rounding: half_up +maxExponent: 384 +minExponent: -383 + +-- sanity checks +ctmx001 comparetotmag -2 -2 -> 0 +ctmx002 comparetotmag -2 -1 -> 1 +ctmx003 comparetotmag -2 0 -> 1 +ctmx004 comparetotmag -2 1 -> 1 +ctmx005 comparetotmag -2 2 -> 0 +ctmx006 comparetotmag -1 -2 -> -1 +ctmx007 comparetotmag -1 -1 -> 0 +ctmx008 comparetotmag -1 0 -> 1 +ctmx009 comparetotmag -1 1 -> 0 +ctmx010 comparetotmag -1 2 -> -1 +ctmx011 comparetotmag 0 -2 -> -1 +ctmx012 comparetotmag 0 -1 -> -1 +ctmx013 comparetotmag 0 0 -> 0 +ctmx014 comparetotmag 0 1 -> -1 +ctmx015 comparetotmag 0 2 -> -1 +ctmx016 comparetotmag 1 -2 -> -1 +ctmx017 comparetotmag 1 -1 -> 0 +ctmx018 comparetotmag 1 0 -> 1 +ctmx019 comparetotmag 1 1 -> 0 +ctmx020 comparetotmag 1 2 -> -1 +ctmx021 comparetotmag 2 -2 -> 0 +ctmx022 comparetotmag 2 -1 -> 1 +ctmx023 comparetotmag 2 0 -> 1 +ctmx025 comparetotmag 2 1 -> 1 +ctmx026 comparetotmag 2 2 -> 0 + +ctmx031 comparetotmag -20 -20 -> 0 +ctmx032 comparetotmag -20 -10 -> 1 +ctmx033 comparetotmag -20 00 -> 1 +ctmx034 comparetotmag -20 10 -> 1 +ctmx035 comparetotmag -20 20 -> 0 +ctmx036 comparetotmag -10 -20 -> -1 +ctmx037 comparetotmag -10 -10 -> 0 +ctmx038 comparetotmag -10 00 -> 1 +ctmx039 comparetotmag -10 10 -> 0 +ctmx040 comparetotmag -10 20 -> -1 +ctmx041 comparetotmag 00 -20 -> -1 +ctmx042 comparetotmag 00 -10 -> -1 +ctmx043 comparetotmag 00 00 -> 0 +ctmx044 comparetotmag 00 10 -> -1 +ctmx045 comparetotmag 00 20 -> -1 +ctmx046 comparetotmag 10 -20 -> -1 +ctmx047 comparetotmag 10 -10 -> 0 +ctmx048 comparetotmag 10 00 -> 1 +ctmx049 comparetotmag 10 10 -> 0 +ctmx050 comparetotmag 10 20 -> -1 +ctmx051 comparetotmag 20 -20 -> 0 +ctmx052 comparetotmag 20 -10 -> 1 +ctmx053 comparetotmag 20 00 -> 1 +ctmx055 comparetotmag 20 10 -> 1 +ctmx056 comparetotmag 20 20 -> 0 + +ctmx061 comparetotmag -2.0 -2.0 -> 0 +ctmx062 comparetotmag -2.0 -1.0 -> 1 +ctmx063 comparetotmag -2.0 0.0 -> 1 +ctmx064 comparetotmag -2.0 1.0 -> 1 +ctmx065 comparetotmag -2.0 2.0 -> 0 +ctmx066 comparetotmag -1.0 -2.0 -> -1 +ctmx067 comparetotmag -1.0 -1.0 -> 0 +ctmx068 comparetotmag -1.0 0.0 -> 1 +ctmx069 comparetotmag -1.0 1.0 -> 0 +ctmx070 comparetotmag -1.0 2.0 -> -1 +ctmx071 comparetotmag 0.0 -2.0 -> -1 +ctmx072 comparetotmag 0.0 -1.0 -> -1 +ctmx073 comparetotmag 0.0 0.0 -> 0 +ctmx074 comparetotmag 0.0 1.0 -> -1 +ctmx075 comparetotmag 0.0 2.0 -> -1 +ctmx076 comparetotmag 1.0 -2.0 -> -1 +ctmx077 comparetotmag 1.0 -1.0 -> 0 +ctmx078 comparetotmag 1.0 0.0 -> 1 +ctmx079 comparetotmag 1.0 1.0 -> 0 +ctmx080 comparetotmag 1.0 2.0 -> -1 +ctmx081 comparetotmag 2.0 -2.0 -> 0 +ctmx082 comparetotmag 2.0 -1.0 -> 1 +ctmx083 comparetotmag 2.0 0.0 -> 1 +ctmx085 comparetotmag 2.0 1.0 -> 1 +ctmx086 comparetotmag 2.0 2.0 -> 0 + +-- now some cases which might overflow if subtract were used +maxexponent: 999999999 +minexponent: -999999999 +ctmx090 comparetotmag 9.99999999E+999999999 9.99999999E+999999999 -> 0 +ctmx091 comparetotmag -9.99999999E+999999999 9.99999999E+999999999 -> 0 +ctmx092 comparetotmag 9.99999999E+999999999 -9.99999999E+999999999 -> 0 +ctmx093 comparetotmag -9.99999999E+999999999 -9.99999999E+999999999 -> 0 + +-- some differing length/exponent cases +-- in this first group, compare would compare all equal +ctmx100 comparetotmag 7.0 7.0 -> 0 +ctmx101 comparetotmag 7.0 7 -> -1 +ctmx102 comparetotmag 7 7.0 -> 1 +ctmx103 comparetotmag 7E+0 7.0 -> 1 +ctmx104 comparetotmag 70E-1 7.0 -> 0 +ctmx105 comparetotmag 0.7E+1 7 -> 0 +ctmx106 comparetotmag 70E-1 7 -> -1 +ctmx107 comparetotmag 7.0 7E+0 -> -1 +ctmx108 comparetotmag 7.0 70E-1 -> 0 +ctmx109 comparetotmag 7 0.7E+1 -> 0 +ctmx110 comparetotmag 7 70E-1 -> 1 + +ctmx120 comparetotmag 8.0 7.0 -> 1 +ctmx121 comparetotmag 8.0 7 -> 1 +ctmx122 comparetotmag 8 7.0 -> 1 +ctmx123 comparetotmag 8E+0 7.0 -> 1 +ctmx124 comparetotmag 80E-1 7.0 -> 1 +ctmx125 comparetotmag 0.8E+1 7 -> 1 +ctmx126 comparetotmag 80E-1 7 -> 1 +ctmx127 comparetotmag 8.0 7E+0 -> 1 +ctmx128 comparetotmag 8.0 70E-1 -> 1 +ctmx129 comparetotmag 8 0.7E+1 -> 1 +ctmx130 comparetotmag 8 70E-1 -> 1 + +ctmx140 comparetotmag 8.0 9.0 -> -1 +ctmx141 comparetotmag 8.0 9 -> -1 +ctmx142 comparetotmag 8 9.0 -> -1 +ctmx143 comparetotmag 8E+0 9.0 -> -1 +ctmx144 comparetotmag 80E-1 9.0 -> -1 +ctmx145 comparetotmag 0.8E+1 9 -> -1 +ctmx146 comparetotmag 80E-1 9 -> -1 +ctmx147 comparetotmag 8.0 9E+0 -> -1 +ctmx148 comparetotmag 8.0 90E-1 -> -1 +ctmx149 comparetotmag 8 0.9E+1 -> -1 +ctmx150 comparetotmag 8 90E-1 -> -1 + +-- and again, with sign changes -+ .. +ctmx200 comparetotmag -7.0 7.0 -> 0 +ctmx201 comparetotmag -7.0 7 -> -1 +ctmx202 comparetotmag -7 7.0 -> 1 +ctmx203 comparetotmag -7E+0 7.0 -> 1 +ctmx204 comparetotmag -70E-1 7.0 -> 0 +ctmx205 comparetotmag -0.7E+1 7 -> 0 +ctmx206 comparetotmag -70E-1 7 -> -1 +ctmx207 comparetotmag -7.0 7E+0 -> -1 +ctmx208 comparetotmag -7.0 70E-1 -> 0 +ctmx209 comparetotmag -7 0.7E+1 -> 0 +ctmx210 comparetotmag -7 70E-1 -> 1 + +ctmx220 comparetotmag -8.0 7.0 -> 1 +ctmx221 comparetotmag -8.0 7 -> 1 +ctmx222 comparetotmag -8 7.0 -> 1 +ctmx223 comparetotmag -8E+0 7.0 -> 1 +ctmx224 comparetotmag -80E-1 7.0 -> 1 +ctmx225 comparetotmag -0.8E+1 7 -> 1 +ctmx226 comparetotmag -80E-1 7 -> 1 +ctmx227 comparetotmag -8.0 7E+0 -> 1 +ctmx228 comparetotmag -8.0 70E-1 -> 1 +ctmx229 comparetotmag -8 0.7E+1 -> 1 +ctmx230 comparetotmag -8 70E-1 -> 1 + +ctmx240 comparetotmag -8.0 9.0 -> -1 +ctmx241 comparetotmag -8.0 9 -> -1 +ctmx242 comparetotmag -8 9.0 -> -1 +ctmx243 comparetotmag -8E+0 9.0 -> -1 +ctmx244 comparetotmag -80E-1 9.0 -> -1 +ctmx245 comparetotmag -0.8E+1 9 -> -1 +ctmx246 comparetotmag -80E-1 9 -> -1 +ctmx247 comparetotmag -8.0 9E+0 -> -1 +ctmx248 comparetotmag -8.0 90E-1 -> -1 +ctmx249 comparetotmag -8 0.9E+1 -> -1 +ctmx250 comparetotmag -8 90E-1 -> -1 + +-- and again, with sign changes +- .. +ctmx300 comparetotmag 7.0 -7.0 -> 0 +ctmx301 comparetotmag 7.0 -7 -> -1 +ctmx302 comparetotmag 7 -7.0 -> 1 +ctmx303 comparetotmag 7E+0 -7.0 -> 1 +ctmx304 comparetotmag 70E-1 -7.0 -> 0 +ctmx305 comparetotmag .7E+1 -7 -> 0 +ctmx306 comparetotmag 70E-1 -7 -> -1 +ctmx307 comparetotmag 7.0 -7E+0 -> -1 +ctmx308 comparetotmag 7.0 -70E-1 -> 0 +ctmx309 comparetotmag 7 -.7E+1 -> 0 +ctmx310 comparetotmag 7 -70E-1 -> 1 + +ctmx320 comparetotmag 8.0 -7.0 -> 1 +ctmx321 comparetotmag 8.0 -7 -> 1 +ctmx322 comparetotmag 8 -7.0 -> 1 +ctmx323 comparetotmag 8E+0 -7.0 -> 1 +ctmx324 comparetotmag 80E-1 -7.0 -> 1 +ctmx325 comparetotmag .8E+1 -7 -> 1 +ctmx326 comparetotmag 80E-1 -7 -> 1 +ctmx327 comparetotmag 8.0 -7E+0 -> 1 +ctmx328 comparetotmag 8.0 -70E-1 -> 1 +ctmx329 comparetotmag 8 -.7E+1 -> 1 +ctmx330 comparetotmag 8 -70E-1 -> 1 + +ctmx340 comparetotmag 8.0 -9.0 -> -1 +ctmx341 comparetotmag 8.0 -9 -> -1 +ctmx342 comparetotmag 8 -9.0 -> -1 +ctmx343 comparetotmag 8E+0 -9.0 -> -1 +ctmx344 comparetotmag 80E-1 -9.0 -> -1 +ctmx345 comparetotmag .8E+1 -9 -> -1 +ctmx346 comparetotmag 80E-1 -9 -> -1 +ctmx347 comparetotmag 8.0 -9E+0 -> -1 +ctmx348 comparetotmag 8.0 -90E-1 -> -1 +ctmx349 comparetotmag 8 -.9E+1 -> -1 +ctmx350 comparetotmag 8 -90E-1 -> -1 + +-- and again, with sign changes -- .. +ctmx400 comparetotmag -7.0 -7.0 -> 0 +ctmx401 comparetotmag -7.0 -7 -> -1 +ctmx402 comparetotmag -7 -7.0 -> 1 +ctmx403 comparetotmag -7E+0 -7.0 -> 1 +ctmx404 comparetotmag -70E-1 -7.0 -> 0 +ctmx405 comparetotmag -.7E+1 -7 -> 0 +ctmx406 comparetotmag -70E-1 -7 -> -1 +ctmx407 comparetotmag -7.0 -7E+0 -> -1 +ctmx408 comparetotmag -7.0 -70E-1 -> 0 +ctmx409 comparetotmag -7 -.7E+1 -> 0 +ctmx410 comparetotmag -7 -70E-1 -> 1 + +ctmx420 comparetotmag -8.0 -7.0 -> 1 +ctmx421 comparetotmag -8.0 -7 -> 1 +ctmx422 comparetotmag -8 -7.0 -> 1 +ctmx423 comparetotmag -8E+0 -7.0 -> 1 +ctmx424 comparetotmag -80E-1 -7.0 -> 1 +ctmx425 comparetotmag -.8E+1 -7 -> 1 +ctmx426 comparetotmag -80E-1 -7 -> 1 +ctmx427 comparetotmag -8.0 -7E+0 -> 1 +ctmx428 comparetotmag -8.0 -70E-1 -> 1 +ctmx429 comparetotmag -8 -.7E+1 -> 1 +ctmx430 comparetotmag -8 -70E-1 -> 1 + +ctmx440 comparetotmag -8.0 -9.0 -> -1 +ctmx441 comparetotmag -8.0 -9 -> -1 +ctmx442 comparetotmag -8 -9.0 -> -1 +ctmx443 comparetotmag -8E+0 -9.0 -> -1 +ctmx444 comparetotmag -80E-1 -9.0 -> -1 +ctmx445 comparetotmag -.8E+1 -9 -> -1 +ctmx446 comparetotmag -80E-1 -9 -> -1 +ctmx447 comparetotmag -8.0 -9E+0 -> -1 +ctmx448 comparetotmag -8.0 -90E-1 -> -1 +ctmx449 comparetotmag -8 -.9E+1 -> -1 +ctmx450 comparetotmag -8 -90E-1 -> -1 + + +-- testcases that subtract to lots of zeros at boundaries [pgr] +precision: 40 +ctmx470 comparetotmag 123.4560000000000000E789 123.456E789 -> -1 +ctmx471 comparetotmag 123.456000000000000E-89 123.456E-89 -> -1 +ctmx472 comparetotmag 123.45600000000000E789 123.456E789 -> -1 +ctmx473 comparetotmag 123.4560000000000E-89 123.456E-89 -> -1 +ctmx474 comparetotmag 123.456000000000E789 123.456E789 -> -1 +ctmx475 comparetotmag 123.45600000000E-89 123.456E-89 -> -1 +ctmx476 comparetotmag 123.4560000000E789 123.456E789 -> -1 +ctmx477 comparetotmag 123.456000000E-89 123.456E-89 -> -1 +ctmx478 comparetotmag 123.45600000E789 123.456E789 -> -1 +ctmx479 comparetotmag 123.4560000E-89 123.456E-89 -> -1 +ctmx480 comparetotmag 123.456000E789 123.456E789 -> -1 +ctmx481 comparetotmag 123.45600E-89 123.456E-89 -> -1 +ctmx482 comparetotmag 123.4560E789 123.456E789 -> -1 +ctmx483 comparetotmag 123.456E-89 123.456E-89 -> 0 +ctmx484 comparetotmag 123.456E-89 123.4560000000000000E-89 -> 1 +ctmx485 comparetotmag 123.456E789 123.456000000000000E789 -> 1 +ctmx486 comparetotmag 123.456E-89 123.45600000000000E-89 -> 1 +ctmx487 comparetotmag 123.456E789 123.4560000000000E789 -> 1 +ctmx488 comparetotmag 123.456E-89 123.456000000000E-89 -> 1 +ctmx489 comparetotmag 123.456E789 123.45600000000E789 -> 1 +ctmx490 comparetotmag 123.456E-89 123.4560000000E-89 -> 1 +ctmx491 comparetotmag 123.456E789 123.456000000E789 -> 1 +ctmx492 comparetotmag 123.456E-89 123.45600000E-89 -> 1 +ctmx493 comparetotmag 123.456E789 123.4560000E789 -> 1 +ctmx494 comparetotmag 123.456E-89 123.456000E-89 -> 1 +ctmx495 comparetotmag 123.456E789 123.45600E789 -> 1 +ctmx496 comparetotmag 123.456E-89 123.4560E-89 -> 1 +ctmx497 comparetotmag 123.456E789 123.456E789 -> 0 + +-- wide-ranging, around precision; signs equal +precision: 9 +ctmx500 comparetotmag 1 1E-15 -> 1 +ctmx501 comparetotmag 1 1E-14 -> 1 +ctmx502 comparetotmag 1 1E-13 -> 1 +ctmx503 comparetotmag 1 1E-12 -> 1 +ctmx504 comparetotmag 1 1E-11 -> 1 +ctmx505 comparetotmag 1 1E-10 -> 1 +ctmx506 comparetotmag 1 1E-9 -> 1 +ctmx507 comparetotmag 1 1E-8 -> 1 +ctmx508 comparetotmag 1 1E-7 -> 1 +ctmx509 comparetotmag 1 1E-6 -> 1 +ctmx510 comparetotmag 1 1E-5 -> 1 +ctmx511 comparetotmag 1 1E-4 -> 1 +ctmx512 comparetotmag 1 1E-3 -> 1 +ctmx513 comparetotmag 1 1E-2 -> 1 +ctmx514 comparetotmag 1 1E-1 -> 1 +ctmx515 comparetotmag 1 1E-0 -> 0 +ctmx516 comparetotmag 1 1E+1 -> -1 +ctmx517 comparetotmag 1 1E+2 -> -1 +ctmx518 comparetotmag 1 1E+3 -> -1 +ctmx519 comparetotmag 1 1E+4 -> -1 +ctmx521 comparetotmag 1 1E+5 -> -1 +ctmx522 comparetotmag 1 1E+6 -> -1 +ctmx523 comparetotmag 1 1E+7 -> -1 +ctmx524 comparetotmag 1 1E+8 -> -1 +ctmx525 comparetotmag 1 1E+9 -> -1 +ctmx526 comparetotmag 1 1E+10 -> -1 +ctmx527 comparetotmag 1 1E+11 -> -1 +ctmx528 comparetotmag 1 1E+12 -> -1 +ctmx529 comparetotmag 1 1E+13 -> -1 +ctmx530 comparetotmag 1 1E+14 -> -1 +ctmx531 comparetotmag 1 1E+15 -> -1 +-- LR swap +ctmx540 comparetotmag 1E-15 1 -> -1 +ctmx541 comparetotmag 1E-14 1 -> -1 +ctmx542 comparetotmag 1E-13 1 -> -1 +ctmx543 comparetotmag 1E-12 1 -> -1 +ctmx544 comparetotmag 1E-11 1 -> -1 +ctmx545 comparetotmag 1E-10 1 -> -1 +ctmx546 comparetotmag 1E-9 1 -> -1 +ctmx547 comparetotmag 1E-8 1 -> -1 +ctmx548 comparetotmag 1E-7 1 -> -1 +ctmx549 comparetotmag 1E-6 1 -> -1 +ctmx550 comparetotmag 1E-5 1 -> -1 +ctmx551 comparetotmag 1E-4 1 -> -1 +ctmx552 comparetotmag 1E-3 1 -> -1 +ctmx553 comparetotmag 1E-2 1 -> -1 +ctmx554 comparetotmag 1E-1 1 -> -1 +ctmx555 comparetotmag 1E-0 1 -> 0 +ctmx556 comparetotmag 1E+1 1 -> 1 +ctmx557 comparetotmag 1E+2 1 -> 1 +ctmx558 comparetotmag 1E+3 1 -> 1 +ctmx559 comparetotmag 1E+4 1 -> 1 +ctmx561 comparetotmag 1E+5 1 -> 1 +ctmx562 comparetotmag 1E+6 1 -> 1 +ctmx563 comparetotmag 1E+7 1 -> 1 +ctmx564 comparetotmag 1E+8 1 -> 1 +ctmx565 comparetotmag 1E+9 1 -> 1 +ctmx566 comparetotmag 1E+10 1 -> 1 +ctmx567 comparetotmag 1E+11 1 -> 1 +ctmx568 comparetotmag 1E+12 1 -> 1 +ctmx569 comparetotmag 1E+13 1 -> 1 +ctmx570 comparetotmag 1E+14 1 -> 1 +ctmx571 comparetotmag 1E+15 1 -> 1 +-- similar with an useful coefficient, one side only +ctmx580 comparetotmag 0.000000987654321 1E-15 -> 1 +ctmx581 comparetotmag 0.000000987654321 1E-14 -> 1 +ctmx582 comparetotmag 0.000000987654321 1E-13 -> 1 +ctmx583 comparetotmag 0.000000987654321 1E-12 -> 1 +ctmx584 comparetotmag 0.000000987654321 1E-11 -> 1 +ctmx585 comparetotmag 0.000000987654321 1E-10 -> 1 +ctmx586 comparetotmag 0.000000987654321 1E-9 -> 1 +ctmx587 comparetotmag 0.000000987654321 1E-8 -> 1 +ctmx588 comparetotmag 0.000000987654321 1E-7 -> 1 +ctmx589 comparetotmag 0.000000987654321 1E-6 -> -1 +ctmx590 comparetotmag 0.000000987654321 1E-5 -> -1 +ctmx591 comparetotmag 0.000000987654321 1E-4 -> -1 +ctmx592 comparetotmag 0.000000987654321 1E-3 -> -1 +ctmx593 comparetotmag 0.000000987654321 1E-2 -> -1 +ctmx594 comparetotmag 0.000000987654321 1E-1 -> -1 +ctmx595 comparetotmag 0.000000987654321 1E-0 -> -1 +ctmx596 comparetotmag 0.000000987654321 1E+1 -> -1 +ctmx597 comparetotmag 0.000000987654321 1E+2 -> -1 +ctmx598 comparetotmag 0.000000987654321 1E+3 -> -1 +ctmx599 comparetotmag 0.000000987654321 1E+4 -> -1 + +-- check some unit-y traps +precision: 20 +ctmx600 comparetotmag 12 12.2345 -> -1 +ctmx601 comparetotmag 12.0 12.2345 -> -1 +ctmx602 comparetotmag 12.00 12.2345 -> -1 +ctmx603 comparetotmag 12.000 12.2345 -> -1 +ctmx604 comparetotmag 12.0000 12.2345 -> -1 +ctmx605 comparetotmag 12.00000 12.2345 -> -1 +ctmx606 comparetotmag 12.000000 12.2345 -> -1 +ctmx607 comparetotmag 12.0000000 12.2345 -> -1 +ctmx608 comparetotmag 12.00000000 12.2345 -> -1 +ctmx609 comparetotmag 12.000000000 12.2345 -> -1 +ctmx610 comparetotmag 12.1234 12 -> 1 +ctmx611 comparetotmag 12.1234 12.0 -> 1 +ctmx612 comparetotmag 12.1234 12.00 -> 1 +ctmx613 comparetotmag 12.1234 12.000 -> 1 +ctmx614 comparetotmag 12.1234 12.0000 -> 1 +ctmx615 comparetotmag 12.1234 12.00000 -> 1 +ctmx616 comparetotmag 12.1234 12.000000 -> 1 +ctmx617 comparetotmag 12.1234 12.0000000 -> 1 +ctmx618 comparetotmag 12.1234 12.00000000 -> 1 +ctmx619 comparetotmag 12.1234 12.000000000 -> 1 +ctmx620 comparetotmag -12 -12.2345 -> -1 +ctmx621 comparetotmag -12.0 -12.2345 -> -1 +ctmx622 comparetotmag -12.00 -12.2345 -> -1 +ctmx623 comparetotmag -12.000 -12.2345 -> -1 +ctmx624 comparetotmag -12.0000 -12.2345 -> -1 +ctmx625 comparetotmag -12.00000 -12.2345 -> -1 +ctmx626 comparetotmag -12.000000 -12.2345 -> -1 +ctmx627 comparetotmag -12.0000000 -12.2345 -> -1 +ctmx628 comparetotmag -12.00000000 -12.2345 -> -1 +ctmx629 comparetotmag -12.000000000 -12.2345 -> -1 +ctmx630 comparetotmag -12.1234 -12 -> 1 +ctmx631 comparetotmag -12.1234 -12.0 -> 1 +ctmx632 comparetotmag -12.1234 -12.00 -> 1 +ctmx633 comparetotmag -12.1234 -12.000 -> 1 +ctmx634 comparetotmag -12.1234 -12.0000 -> 1 +ctmx635 comparetotmag -12.1234 -12.00000 -> 1 +ctmx636 comparetotmag -12.1234 -12.000000 -> 1 +ctmx637 comparetotmag -12.1234 -12.0000000 -> 1 +ctmx638 comparetotmag -12.1234 -12.00000000 -> 1 +ctmx639 comparetotmag -12.1234 -12.000000000 -> 1 +precision: 9 + +-- extended zeros +ctmx640 comparetotmag 0 0 -> 0 +ctmx641 comparetotmag 0 -0 -> 0 +ctmx642 comparetotmag 0 -0.0 -> 1 +ctmx643 comparetotmag 0 0.0 -> 1 +ctmx644 comparetotmag -0 0 -> 0 +ctmx645 comparetotmag -0 -0 -> 0 +ctmx646 comparetotmag -0 -0.0 -> 1 +ctmx647 comparetotmag -0 0.0 -> 1 +ctmx648 comparetotmag 0.0 0 -> -1 +ctmx649 comparetotmag 0.0 -0 -> -1 +ctmx650 comparetotmag 0.0 -0.0 -> 0 +ctmx651 comparetotmag 0.0 0.0 -> 0 +ctmx652 comparetotmag -0.0 0 -> -1 +ctmx653 comparetotmag -0.0 -0 -> -1 +ctmx654 comparetotmag -0.0 -0.0 -> 0 +ctmx655 comparetotmag -0.0 0.0 -> 0 + +ctmx656 comparetotmag -0E1 0.0 -> 1 +ctmx657 comparetotmag -0E2 0.0 -> 1 +ctmx658 comparetotmag 0E1 0.0 -> 1 +ctmx659 comparetotmag 0E2 0.0 -> 1 +ctmx660 comparetotmag -0E1 0 -> 1 +ctmx661 comparetotmag -0E2 0 -> 1 +ctmx662 comparetotmag 0E1 0 -> 1 +ctmx663 comparetotmag 0E2 0 -> 1 +ctmx664 comparetotmag -0E1 -0E1 -> 0 +ctmx665 comparetotmag -0E2 -0E1 -> 1 +ctmx666 comparetotmag 0E1 -0E1 -> 0 +ctmx667 comparetotmag 0E2 -0E1 -> 1 +ctmx668 comparetotmag -0E1 -0E2 -> -1 +ctmx669 comparetotmag -0E2 -0E2 -> 0 +ctmx670 comparetotmag 0E1 -0E2 -> -1 +ctmx671 comparetotmag 0E2 -0E2 -> 0 +ctmx672 comparetotmag -0E1 0E1 -> 0 +ctmx673 comparetotmag -0E2 0E1 -> 1 +ctmx674 comparetotmag 0E1 0E1 -> 0 +ctmx675 comparetotmag 0E2 0E1 -> 1 +ctmx676 comparetotmag -0E1 0E2 -> -1 +ctmx677 comparetotmag -0E2 0E2 -> 0 +ctmx678 comparetotmag 0E1 0E2 -> -1 +ctmx679 comparetotmag 0E2 0E2 -> 0 + +-- trailing zeros; unit-y +precision: 20 +ctmx680 comparetotmag 12 12 -> 0 +ctmx681 comparetotmag 12 12.0 -> 1 +ctmx682 comparetotmag 12 12.00 -> 1 +ctmx683 comparetotmag 12 12.000 -> 1 +ctmx684 comparetotmag 12 12.0000 -> 1 +ctmx685 comparetotmag 12 12.00000 -> 1 +ctmx686 comparetotmag 12 12.000000 -> 1 +ctmx687 comparetotmag 12 12.0000000 -> 1 +ctmx688 comparetotmag 12 12.00000000 -> 1 +ctmx689 comparetotmag 12 12.000000000 -> 1 +ctmx690 comparetotmag 12 12 -> 0 +ctmx691 comparetotmag 12.0 12 -> -1 +ctmx692 comparetotmag 12.00 12 -> -1 +ctmx693 comparetotmag 12.000 12 -> -1 +ctmx694 comparetotmag 12.0000 12 -> -1 +ctmx695 comparetotmag 12.00000 12 -> -1 +ctmx696 comparetotmag 12.000000 12 -> -1 +ctmx697 comparetotmag 12.0000000 12 -> -1 +ctmx698 comparetotmag 12.00000000 12 -> -1 +ctmx699 comparetotmag 12.000000000 12 -> -1 + +-- long operand checks +maxexponent: 999 +minexponent: -999 +precision: 9 +ctmx701 comparetotmag 12345678000 1 -> 1 +ctmx702 comparetotmag 1 12345678000 -> -1 +ctmx703 comparetotmag 1234567800 1 -> 1 +ctmx704 comparetotmag 1 1234567800 -> -1 +ctmx705 comparetotmag 1234567890 1 -> 1 +ctmx706 comparetotmag 1 1234567890 -> -1 +ctmx707 comparetotmag 1234567891 1 -> 1 +ctmx708 comparetotmag 1 1234567891 -> -1 +ctmx709 comparetotmag 12345678901 1 -> 1 +ctmx710 comparetotmag 1 12345678901 -> -1 +ctmx711 comparetotmag 1234567896 1 -> 1 +ctmx712 comparetotmag 1 1234567896 -> -1 +ctmx713 comparetotmag -1234567891 1 -> 1 +ctmx714 comparetotmag 1 -1234567891 -> -1 +ctmx715 comparetotmag -12345678901 1 -> 1 +ctmx716 comparetotmag 1 -12345678901 -> -1 +ctmx717 comparetotmag -1234567896 1 -> 1 +ctmx718 comparetotmag 1 -1234567896 -> -1 + +precision: 15 +-- same with plenty of precision +ctmx721 comparetotmag 12345678000 1 -> 1 +ctmx722 comparetotmag 1 12345678000 -> -1 +ctmx723 comparetotmag 1234567800 1 -> 1 +ctmx724 comparetotmag 1 1234567800 -> -1 +ctmx725 comparetotmag 1234567890 1 -> 1 +ctmx726 comparetotmag 1 1234567890 -> -1 +ctmx727 comparetotmag 1234567891 1 -> 1 +ctmx728 comparetotmag 1 1234567891 -> -1 +ctmx729 comparetotmag 12345678901 1 -> 1 +ctmx730 comparetotmag 1 12345678901 -> -1 +ctmx731 comparetotmag 1234567896 1 -> 1 +ctmx732 comparetotmag 1 1234567896 -> -1 + +-- residue cases +precision: 5 +ctmx740 comparetotmag 1 0.9999999 -> 1 +ctmx741 comparetotmag 1 0.999999 -> 1 +ctmx742 comparetotmag 1 0.99999 -> 1 +ctmx743 comparetotmag 1 1.0000 -> 1 +ctmx744 comparetotmag 1 1.00001 -> -1 +ctmx745 comparetotmag 1 1.000001 -> -1 +ctmx746 comparetotmag 1 1.0000001 -> -1 +ctmx750 comparetotmag 0.9999999 1 -> -1 +ctmx751 comparetotmag 0.999999 1 -> -1 +ctmx752 comparetotmag 0.99999 1 -> -1 +ctmx753 comparetotmag 1.0000 1 -> -1 +ctmx754 comparetotmag 1.00001 1 -> 1 +ctmx755 comparetotmag 1.000001 1 -> 1 +ctmx756 comparetotmag 1.0000001 1 -> 1 + +-- a selection of longies +ctmx760 comparetotmag -36852134.84194296250843579428931 -5830629.8347085025808756560357940 -> 1 +ctmx761 comparetotmag -36852134.84194296250843579428931 -36852134.84194296250843579428931 -> 0 +ctmx762 comparetotmag -36852134.94194296250843579428931 -36852134.84194296250843579428931 -> 1 +ctmx763 comparetotmag -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> -1 +-- precisions above or below the difference should have no effect +precision: 11 +ctmx764 comparetotmag -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> -1 +precision: 10 +ctmx765 comparetotmag -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> -1 +precision: 9 +ctmx766 comparetotmag -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> -1 +precision: 8 +ctmx767 comparetotmag -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> -1 +precision: 7 +ctmx768 comparetotmag -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> -1 +precision: 6 +ctmx769 comparetotmag -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> -1 +precision: 5 +ctmx770 comparetotmag -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> -1 +precision: 4 +ctmx771 comparetotmag -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> -1 +precision: 3 +ctmx772 comparetotmag -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> -1 +precision: 2 +ctmx773 comparetotmag -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> -1 +precision: 1 +ctmx774 comparetotmag -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> -1 + +-- Specials +precision: 9 +ctmx780 comparetotmag Inf -Inf -> 0 +ctmx781 comparetotmag Inf -1000 -> 1 +ctmx782 comparetotmag Inf -1 -> 1 +ctmx783 comparetotmag Inf -0 -> 1 +ctmx784 comparetotmag Inf 0 -> 1 +ctmx785 comparetotmag Inf 1 -> 1 +ctmx786 comparetotmag Inf 1000 -> 1 +ctmx787 comparetotmag Inf Inf -> 0 +ctmx788 comparetotmag -1000 Inf -> -1 +ctmx789 comparetotmag -Inf Inf -> 0 +ctmx790 comparetotmag -1 Inf -> -1 +ctmx791 comparetotmag -0 Inf -> -1 +ctmx792 comparetotmag 0 Inf -> -1 +ctmx793 comparetotmag 1 Inf -> -1 +ctmx794 comparetotmag 1000 Inf -> -1 +ctmx795 comparetotmag Inf Inf -> 0 + +ctmx800 comparetotmag -Inf -Inf -> 0 +ctmx801 comparetotmag -Inf -1000 -> 1 +ctmx802 comparetotmag -Inf -1 -> 1 +ctmx803 comparetotmag -Inf -0 -> 1 +ctmx804 comparetotmag -Inf 0 -> 1 +ctmx805 comparetotmag -Inf 1 -> 1 +ctmx806 comparetotmag -Inf 1000 -> 1 +ctmx807 comparetotmag -Inf Inf -> 0 +ctmx808 comparetotmag -Inf -Inf -> 0 +ctmx809 comparetotmag -1000 -Inf -> -1 +ctmx810 comparetotmag -1 -Inf -> -1 +ctmx811 comparetotmag -0 -Inf -> -1 +ctmx812 comparetotmag 0 -Inf -> -1 +ctmx813 comparetotmag 1 -Inf -> -1 +ctmx814 comparetotmag 1000 -Inf -> -1 +ctmx815 comparetotmag Inf -Inf -> 0 + +ctmx821 comparetotmag NaN -Inf -> 1 +ctmx822 comparetotmag NaN -1000 -> 1 +ctmx823 comparetotmag NaN -1 -> 1 +ctmx824 comparetotmag NaN -0 -> 1 +ctmx825 comparetotmag NaN 0 -> 1 +ctmx826 comparetotmag NaN 1 -> 1 +ctmx827 comparetotmag NaN 1000 -> 1 +ctmx828 comparetotmag NaN Inf -> 1 +ctmx829 comparetotmag NaN NaN -> 0 +ctmx830 comparetotmag -Inf NaN -> -1 +ctmx831 comparetotmag -1000 NaN -> -1 +ctmx832 comparetotmag -1 NaN -> -1 +ctmx833 comparetotmag -0 NaN -> -1 +ctmx834 comparetotmag 0 NaN -> -1 +ctmx835 comparetotmag 1 NaN -> -1 +ctmx836 comparetotmag 1000 NaN -> -1 +ctmx837 comparetotmag Inf NaN -> -1 +ctmx838 comparetotmag -NaN -NaN -> 0 +ctmx839 comparetotmag +NaN -NaN -> 0 +ctmx840 comparetotmag -NaN +NaN -> 0 + +ctmx841 comparetotmag sNaN -sNaN -> 0 +ctmx842 comparetotmag sNaN -NaN -> -1 +ctmx843 comparetotmag sNaN -Inf -> 1 +ctmx844 comparetotmag sNaN -1000 -> 1 +ctmx845 comparetotmag sNaN -1 -> 1 +ctmx846 comparetotmag sNaN -0 -> 1 +ctmx847 comparetotmag sNaN 0 -> 1 +ctmx848 comparetotmag sNaN 1 -> 1 +ctmx849 comparetotmag sNaN 1000 -> 1 +ctmx850 comparetotmag sNaN NaN -> -1 +ctmx851 comparetotmag sNaN sNaN -> 0 + +ctmx852 comparetotmag -sNaN sNaN -> 0 +ctmx853 comparetotmag -NaN sNaN -> 1 +ctmx854 comparetotmag -Inf sNaN -> -1 +ctmx855 comparetotmag -1000 sNaN -> -1 +ctmx856 comparetotmag -1 sNaN -> -1 +ctmx857 comparetotmag -0 sNaN -> -1 +ctmx858 comparetotmag 0 sNaN -> -1 +ctmx859 comparetotmag 1 sNaN -> -1 +ctmx860 comparetotmag 1000 sNaN -> -1 +ctmx861 comparetotmag Inf sNaN -> -1 +ctmx862 comparetotmag NaN sNaN -> 1 +ctmx863 comparetotmag sNaN sNaN -> 0 + +ctmx871 comparetotmag -sNaN -sNaN -> 0 +ctmx872 comparetotmag -sNaN -NaN -> -1 +ctmx873 comparetotmag -sNaN -Inf -> 1 +ctmx874 comparetotmag -sNaN -1000 -> 1 +ctmx875 comparetotmag -sNaN -1 -> 1 +ctmx876 comparetotmag -sNaN -0 -> 1 +ctmx877 comparetotmag -sNaN 0 -> 1 +ctmx878 comparetotmag -sNaN 1 -> 1 +ctmx879 comparetotmag -sNaN 1000 -> 1 +ctmx880 comparetotmag -sNaN NaN -> -1 +ctmx881 comparetotmag -sNaN sNaN -> 0 + +ctmx882 comparetotmag -sNaN -sNaN -> 0 +ctmx883 comparetotmag -NaN -sNaN -> 1 +ctmx884 comparetotmag -Inf -sNaN -> -1 +ctmx885 comparetotmag -1000 -sNaN -> -1 +ctmx886 comparetotmag -1 -sNaN -> -1 +ctmx887 comparetotmag -0 -sNaN -> -1 +ctmx888 comparetotmag 0 -sNaN -> -1 +ctmx889 comparetotmag 1 -sNaN -> -1 +ctmx890 comparetotmag 1000 -sNaN -> -1 +ctmx891 comparetotmag Inf -sNaN -> -1 +ctmx892 comparetotmag NaN -sNaN -> 1 +ctmx893 comparetotmag sNaN -sNaN -> 0 + +-- NaNs with payload +ctmx960 comparetotmag NaN9 -Inf -> 1 +ctmx961 comparetotmag NaN8 999 -> 1 +ctmx962 comparetotmag NaN77 Inf -> 1 +ctmx963 comparetotmag -NaN67 NaN5 -> 1 +ctmx964 comparetotmag -Inf -NaN4 -> -1 +ctmx965 comparetotmag -999 -NaN33 -> -1 +ctmx966 comparetotmag Inf NaN2 -> -1 + +ctmx970 comparetotmag -NaN41 -NaN42 -> -1 +ctmx971 comparetotmag +NaN41 -NaN42 -> -1 +ctmx972 comparetotmag -NaN41 +NaN42 -> -1 +ctmx973 comparetotmag +NaN41 +NaN42 -> -1 +ctmx974 comparetotmag -NaN42 -NaN01 -> 1 +ctmx975 comparetotmag +NaN42 -NaN01 -> 1 +ctmx976 comparetotmag -NaN42 +NaN01 -> 1 +ctmx977 comparetotmag +NaN42 +NaN01 -> 1 + +ctmx980 comparetotmag -sNaN771 -sNaN772 -> -1 +ctmx981 comparetotmag +sNaN771 -sNaN772 -> -1 +ctmx982 comparetotmag -sNaN771 +sNaN772 -> -1 +ctmx983 comparetotmag +sNaN771 +sNaN772 -> -1 +ctmx984 comparetotmag -sNaN772 -sNaN771 -> 1 +ctmx985 comparetotmag +sNaN772 -sNaN771 -> 1 +ctmx986 comparetotmag -sNaN772 +sNaN771 -> 1 +ctmx987 comparetotmag +sNaN772 +sNaN771 -> 1 + +ctmx991 comparetotmag -sNaN99 -Inf -> 1 +ctmx992 comparetotmag sNaN98 -11 -> 1 +ctmx993 comparetotmag sNaN97 NaN -> -1 +ctmx994 comparetotmag sNaN16 sNaN94 -> -1 +ctmx995 comparetotmag NaN85 sNaN83 -> 1 +ctmx996 comparetotmag -Inf sNaN92 -> -1 +ctmx997 comparetotmag 088 sNaN81 -> -1 +ctmx998 comparetotmag Inf sNaN90 -> -1 +ctmx999 comparetotmag NaN -sNaN89 -> 1 + +-- overflow and underflow tests .. subnormal results now allowed +maxExponent: 999999999 +minexponent: -999999999 +ctmx1080 comparetotmag +1.23456789012345E-0 9E+999999999 -> -1 +ctmx1081 comparetotmag 9E+999999999 +1.23456789012345E-0 -> 1 +ctmx1082 comparetotmag +0.100 9E-999999999 -> 1 +ctmx1083 comparetotmag 9E-999999999 +0.100 -> -1 +ctmx1085 comparetotmag -1.23456789012345E-0 9E+999999999 -> -1 +ctmx1086 comparetotmag 9E+999999999 -1.23456789012345E-0 -> 1 +ctmx1087 comparetotmag -0.100 9E-999999999 -> 1 +ctmx1088 comparetotmag 9E-999999999 -0.100 -> -1 + +ctmx1089 comparetotmag 1e-599999999 1e-400000001 -> -1 +ctmx1090 comparetotmag 1e-599999999 1e-400000000 -> -1 +ctmx1091 comparetotmag 1e-600000000 1e-400000000 -> -1 +ctmx1092 comparetotmag 9e-999999998 0.01 -> -1 +ctmx1093 comparetotmag 9e-999999998 0.1 -> -1 +ctmx1094 comparetotmag 0.01 9e-999999998 -> 1 +ctmx1095 comparetotmag 1e599999999 1e400000001 -> 1 +ctmx1096 comparetotmag 1e599999999 1e400000000 -> 1 +ctmx1097 comparetotmag 1e600000000 1e400000000 -> 1 +ctmx1098 comparetotmag 9e999999998 100 -> 1 +ctmx1099 comparetotmag 9e999999998 10 -> 1 +ctmx1100 comparetotmag 100 9e999999998 -> -1 +-- signs +ctmx1101 comparetotmag 1e+777777777 1e+411111111 -> 1 +ctmx1102 comparetotmag 1e+777777777 -1e+411111111 -> 1 +ctmx1103 comparetotmag -1e+777777777 1e+411111111 -> 1 +ctmx1104 comparetotmag -1e+777777777 -1e+411111111 -> 1 +ctmx1105 comparetotmag 1e-777777777 1e-411111111 -> -1 +ctmx1106 comparetotmag 1e-777777777 -1e-411111111 -> -1 +ctmx1107 comparetotmag -1e-777777777 1e-411111111 -> -1 +ctmx1108 comparetotmag -1e-777777777 -1e-411111111 -> -1 + +-- spread zeros +ctmx1110 comparetotmag 0E-383 0 -> -1 +ctmx1111 comparetotmag 0E-383 -0 -> -1 +ctmx1112 comparetotmag -0E-383 0 -> -1 +ctmx1113 comparetotmag -0E-383 -0 -> -1 +ctmx1114 comparetotmag 0E-383 0E+384 -> -1 +ctmx1115 comparetotmag 0E-383 -0E+384 -> -1 +ctmx1116 comparetotmag -0E-383 0E+384 -> -1 +ctmx1117 comparetotmag -0E-383 -0E+384 -> -1 +ctmx1118 comparetotmag 0 0E+384 -> -1 +ctmx1119 comparetotmag 0 -0E+384 -> -1 +ctmx1120 comparetotmag -0 0E+384 -> -1 +ctmx1121 comparetotmag -0 -0E+384 -> -1 + +ctmx1130 comparetotmag 0E+384 0 -> 1 +ctmx1131 comparetotmag 0E+384 -0 -> 1 +ctmx1132 comparetotmag -0E+384 0 -> 1 +ctmx1133 comparetotmag -0E+384 -0 -> 1 +ctmx1134 comparetotmag 0E+384 0E-383 -> 1 +ctmx1135 comparetotmag 0E+384 -0E-383 -> 1 +ctmx1136 comparetotmag -0E+384 0E-383 -> 1 +ctmx1137 comparetotmag -0E+384 -0E-383 -> 1 +ctmx1138 comparetotmag 0 0E-383 -> 1 +ctmx1139 comparetotmag 0 -0E-383 -> 1 +ctmx1140 comparetotmag -0 0E-383 -> 1 +ctmx1141 comparetotmag -0 -0E-383 -> 1 + +-- Null tests +ctmx9990 comparetotmag 10 # -> NaN Invalid_operation +ctmx9991 comparetotmag # 10 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/copy.decTest b/Lib/test/decimaltestdata/copy.decTest index b47e499a7b..d9f299e227 100644 --- a/Lib/test/decimaltestdata/copy.decTest +++ b/Lib/test/decimaltestdata/copy.decTest @@ -1,86 +1,86 @@ -------------------------------------------------------------------------
--- copy.decTest -- quiet copy --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-extended: 1
-precision: 9
-rounding: half_up
-maxExponent: 999
-minExponent: -999
-
--- Sanity check
-cpyx001 copy +7.50 -> 7.50
-
--- Infinities
-cpyx011 copy Infinity -> Infinity
-cpyx012 copy -Infinity -> -Infinity
-
--- NaNs, 0 payload
-cpyx021 copy NaN -> NaN
-cpyx022 copy -NaN -> -NaN
-cpyx023 copy sNaN -> sNaN
-cpyx024 copy -sNaN -> -sNaN
-
--- NaNs, non-0 payload
-cpyx031 copy NaN10 -> NaN10
-cpyx032 copy -NaN10 -> -NaN10
-cpyx033 copy sNaN10 -> sNaN10
-cpyx034 copy -sNaN10 -> -sNaN10
-cpyx035 copy NaN7 -> NaN7
-cpyx036 copy -NaN7 -> -NaN7
-cpyx037 copy sNaN101 -> sNaN101
-cpyx038 copy -sNaN101 -> -sNaN101
-
--- finites
-cpyx101 copy 7 -> 7
-cpyx102 copy -7 -> -7
-cpyx103 copy 75 -> 75
-cpyx104 copy -75 -> -75
-cpyx105 copy 7.50 -> 7.50
-cpyx106 copy -7.50 -> -7.50
-cpyx107 copy 7.500 -> 7.500
-cpyx108 copy -7.500 -> -7.500
-
--- zeros
-cpyx111 copy 0 -> 0
-cpyx112 copy -0 -> -0
-cpyx113 copy 0E+4 -> 0E+4
-cpyx114 copy -0E+4 -> -0E+4
-cpyx115 copy 0.0000 -> 0.0000
-cpyx116 copy -0.0000 -> -0.0000
-cpyx117 copy 0E-141 -> 0E-141
-cpyx118 copy -0E-141 -> -0E-141
-
--- full coefficients, alternating bits
-cpyx121 copy 268268268 -> 268268268
-cpyx122 copy -268268268 -> -268268268
-cpyx123 copy 134134134 -> 134134134
-cpyx124 copy -134134134 -> -134134134
-
--- Nmax, Nmin, Ntiny
-cpyx131 copy 9.99999999E+999 -> 9.99999999E+999
-cpyx132 copy 1E-999 -> 1E-999
-cpyx133 copy 1.00000000E-999 -> 1.00000000E-999
-cpyx134 copy 1E-1007 -> 1E-1007
-
-cpyx135 copy -1E-1007 -> -1E-1007
-cpyx136 copy -1.00000000E-999 -> -1.00000000E-999
-cpyx137 copy -1E-999 -> -1E-999
-cpyx138 copy -9.99999999E+999 -> -9.99999999E+999
+------------------------------------------------------------------------ +-- copy.decTest -- quiet copy -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +extended: 1 +precision: 9 +rounding: half_up +maxExponent: 999 +minExponent: -999 + +-- Sanity check +cpyx001 copy +7.50 -> 7.50 + +-- Infinities +cpyx011 copy Infinity -> Infinity +cpyx012 copy -Infinity -> -Infinity + +-- NaNs, 0 payload +cpyx021 copy NaN -> NaN +cpyx022 copy -NaN -> -NaN +cpyx023 copy sNaN -> sNaN +cpyx024 copy -sNaN -> -sNaN + +-- NaNs, non-0 payload +cpyx031 copy NaN10 -> NaN10 +cpyx032 copy -NaN10 -> -NaN10 +cpyx033 copy sNaN10 -> sNaN10 +cpyx034 copy -sNaN10 -> -sNaN10 +cpyx035 copy NaN7 -> NaN7 +cpyx036 copy -NaN7 -> -NaN7 +cpyx037 copy sNaN101 -> sNaN101 +cpyx038 copy -sNaN101 -> -sNaN101 + +-- finites +cpyx101 copy 7 -> 7 +cpyx102 copy -7 -> -7 +cpyx103 copy 75 -> 75 +cpyx104 copy -75 -> -75 +cpyx105 copy 7.50 -> 7.50 +cpyx106 copy -7.50 -> -7.50 +cpyx107 copy 7.500 -> 7.500 +cpyx108 copy -7.500 -> -7.500 + +-- zeros +cpyx111 copy 0 -> 0 +cpyx112 copy -0 -> -0 +cpyx113 copy 0E+4 -> 0E+4 +cpyx114 copy -0E+4 -> -0E+4 +cpyx115 copy 0.0000 -> 0.0000 +cpyx116 copy -0.0000 -> -0.0000 +cpyx117 copy 0E-141 -> 0E-141 +cpyx118 copy -0E-141 -> -0E-141 + +-- full coefficients, alternating bits +cpyx121 copy 268268268 -> 268268268 +cpyx122 copy -268268268 -> -268268268 +cpyx123 copy 134134134 -> 134134134 +cpyx124 copy -134134134 -> -134134134 + +-- Nmax, Nmin, Ntiny +cpyx131 copy 9.99999999E+999 -> 9.99999999E+999 +cpyx132 copy 1E-999 -> 1E-999 +cpyx133 copy 1.00000000E-999 -> 1.00000000E-999 +cpyx134 copy 1E-1007 -> 1E-1007 + +cpyx135 copy -1E-1007 -> -1E-1007 +cpyx136 copy -1.00000000E-999 -> -1.00000000E-999 +cpyx137 copy -1E-999 -> -1E-999 +cpyx138 copy -9.99999999E+999 -> -9.99999999E+999 diff --git a/Lib/test/decimaltestdata/copyabs.decTest b/Lib/test/decimaltestdata/copyabs.decTest index f7d0f86458..52002dc431 100644 --- a/Lib/test/decimaltestdata/copyabs.decTest +++ b/Lib/test/decimaltestdata/copyabs.decTest @@ -1,86 +1,86 @@ -------------------------------------------------------------------------
--- copyAbs.decTest -- quiet copy and set sign to zero --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-extended: 1
-precision: 9
-rounding: half_up
-maxExponent: 999
-minExponent: -999
-
--- Sanity check
-cpax001 copyabs +7.50 -> 7.50
-
--- Infinities
-cpax011 copyabs Infinity -> Infinity
-cpax012 copyabs -Infinity -> Infinity
-
--- NaNs, 0 payload
-cpax021 copyabs NaN -> NaN
-cpax022 copyabs -NaN -> NaN
-cpax023 copyabs sNaN -> sNaN
-cpax024 copyabs -sNaN -> sNaN
-
--- NaNs, non-0 payload
-cpax031 copyabs NaN10 -> NaN10
-cpax032 copyabs -NaN15 -> NaN15
-cpax033 copyabs sNaN15 -> sNaN15
-cpax034 copyabs -sNaN10 -> sNaN10
-cpax035 copyabs NaN7 -> NaN7
-cpax036 copyabs -NaN7 -> NaN7
-cpax037 copyabs sNaN101 -> sNaN101
-cpax038 copyabs -sNaN101 -> sNaN101
-
--- finites
-cpax101 copyabs 7 -> 7
-cpax102 copyabs -7 -> 7
-cpax103 copyabs 75 -> 75
-cpax104 copyabs -75 -> 75
-cpax105 copyabs 7.10 -> 7.10
-cpax106 copyabs -7.10 -> 7.10
-cpax107 copyabs 7.500 -> 7.500
-cpax108 copyabs -7.500 -> 7.500
-
--- zeros
-cpax111 copyabs 0 -> 0
-cpax112 copyabs -0 -> 0
-cpax113 copyabs 0E+6 -> 0E+6
-cpax114 copyabs -0E+6 -> 0E+6
-cpax115 copyabs 0.0000 -> 0.0000
-cpax116 copyabs -0.0000 -> 0.0000
-cpax117 copyabs 0E-141 -> 0E-141
-cpax118 copyabs -0E-141 -> 0E-141
-
--- full coefficients, alternating bits
-cpax121 copyabs 268268268 -> 268268268
-cpax122 copyabs -268268268 -> 268268268
-cpax123 copyabs 134134134 -> 134134134
-cpax124 copyabs -134134134 -> 134134134
-
--- Nmax, Nmin, Ntiny
-cpax131 copyabs 9.99999999E+999 -> 9.99999999E+999
-cpax132 copyabs 1E-999 -> 1E-999
-cpax133 copyabs 1.00000000E-999 -> 1.00000000E-999
-cpax134 copyabs 1E-1007 -> 1E-1007
-
-cpax135 copyabs -1E-1007 -> 1E-1007
-cpax136 copyabs -1.00000000E-999 -> 1.00000000E-999
-cpax137 copyabs -1E-999 -> 1E-999
-cpax199 copyabs -9.99999999E+999 -> 9.99999999E+999
+------------------------------------------------------------------------ +-- copyAbs.decTest -- quiet copy and set sign to zero -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +extended: 1 +precision: 9 +rounding: half_up +maxExponent: 999 +minExponent: -999 + +-- Sanity check +cpax001 copyabs +7.50 -> 7.50 + +-- Infinities +cpax011 copyabs Infinity -> Infinity +cpax012 copyabs -Infinity -> Infinity + +-- NaNs, 0 payload +cpax021 copyabs NaN -> NaN +cpax022 copyabs -NaN -> NaN +cpax023 copyabs sNaN -> sNaN +cpax024 copyabs -sNaN -> sNaN + +-- NaNs, non-0 payload +cpax031 copyabs NaN10 -> NaN10 +cpax032 copyabs -NaN15 -> NaN15 +cpax033 copyabs sNaN15 -> sNaN15 +cpax034 copyabs -sNaN10 -> sNaN10 +cpax035 copyabs NaN7 -> NaN7 +cpax036 copyabs -NaN7 -> NaN7 +cpax037 copyabs sNaN101 -> sNaN101 +cpax038 copyabs -sNaN101 -> sNaN101 + +-- finites +cpax101 copyabs 7 -> 7 +cpax102 copyabs -7 -> 7 +cpax103 copyabs 75 -> 75 +cpax104 copyabs -75 -> 75 +cpax105 copyabs 7.10 -> 7.10 +cpax106 copyabs -7.10 -> 7.10 +cpax107 copyabs 7.500 -> 7.500 +cpax108 copyabs -7.500 -> 7.500 + +-- zeros +cpax111 copyabs 0 -> 0 +cpax112 copyabs -0 -> 0 +cpax113 copyabs 0E+6 -> 0E+6 +cpax114 copyabs -0E+6 -> 0E+6 +cpax115 copyabs 0.0000 -> 0.0000 +cpax116 copyabs -0.0000 -> 0.0000 +cpax117 copyabs 0E-141 -> 0E-141 +cpax118 copyabs -0E-141 -> 0E-141 + +-- full coefficients, alternating bits +cpax121 copyabs 268268268 -> 268268268 +cpax122 copyabs -268268268 -> 268268268 +cpax123 copyabs 134134134 -> 134134134 +cpax124 copyabs -134134134 -> 134134134 + +-- Nmax, Nmin, Ntiny +cpax131 copyabs 9.99999999E+999 -> 9.99999999E+999 +cpax132 copyabs 1E-999 -> 1E-999 +cpax133 copyabs 1.00000000E-999 -> 1.00000000E-999 +cpax134 copyabs 1E-1007 -> 1E-1007 + +cpax135 copyabs -1E-1007 -> 1E-1007 +cpax136 copyabs -1.00000000E-999 -> 1.00000000E-999 +cpax137 copyabs -1E-999 -> 1E-999 +cpax199 copyabs -9.99999999E+999 -> 9.99999999E+999 diff --git a/Lib/test/decimaltestdata/copynegate.decTest b/Lib/test/decimaltestdata/copynegate.decTest index 38235b60f9..7f8de9d932 100644 --- a/Lib/test/decimaltestdata/copynegate.decTest +++ b/Lib/test/decimaltestdata/copynegate.decTest @@ -1,86 +1,86 @@ -------------------------------------------------------------------------
--- copyNegate.decTest -- quiet copy and negate --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-extended: 1
-precision: 9
-rounding: half_up
-maxExponent: 999
-minExponent: -999
-
--- Sanity check
-cpnx001 copynegate +7.50 -> -7.50
-
--- Infinities
-cpnx011 copynegate Infinity -> -Infinity
-cpnx012 copynegate -Infinity -> Infinity
-
--- NaNs, 0 payload
-cpnx021 copynegate NaN -> -NaN
-cpnx022 copynegate -NaN -> NaN
-cpnx023 copynegate sNaN -> -sNaN
-cpnx024 copynegate -sNaN -> sNaN
-
--- NaNs, non-0 payload
-cpnx031 copynegate NaN13 -> -NaN13
-cpnx032 copynegate -NaN13 -> NaN13
-cpnx033 copynegate sNaN13 -> -sNaN13
-cpnx034 copynegate -sNaN13 -> sNaN13
-cpnx035 copynegate NaN70 -> -NaN70
-cpnx036 copynegate -NaN70 -> NaN70
-cpnx037 copynegate sNaN101 -> -sNaN101
-cpnx038 copynegate -sNaN101 -> sNaN101
-
--- finites
-cpnx101 copynegate 7 -> -7
-cpnx102 copynegate -7 -> 7
-cpnx103 copynegate 75 -> -75
-cpnx104 copynegate -75 -> 75
-cpnx105 copynegate 7.50 -> -7.50
-cpnx106 copynegate -7.50 -> 7.50
-cpnx107 copynegate 7.500 -> -7.500
-cpnx108 copynegate -7.500 -> 7.500
-
--- zeros
-cpnx111 copynegate 0 -> -0
-cpnx112 copynegate -0 -> 0
-cpnx113 copynegate 0E+4 -> -0E+4
-cpnx114 copynegate -0E+4 -> 0E+4
-cpnx115 copynegate 0.0000 -> -0.0000
-cpnx116 copynegate -0.0000 -> 0.0000
-cpnx117 copynegate 0E-141 -> -0E-141
-cpnx118 copynegate -0E-141 -> 0E-141
-
--- full coefficients, alternating bits
-cpnx121 copynegate 268268268 -> -268268268
-cpnx122 copynegate -268268268 -> 268268268
-cpnx123 copynegate 134134134 -> -134134134
-cpnx124 copynegate -134134134 -> 134134134
-
--- Nmax, Nmin, Ntiny
-cpnx131 copynegate 9.99999999E+999 -> -9.99999999E+999
-cpnx132 copynegate 1E-999 -> -1E-999
-cpnx133 copynegate 1.00000000E-999 -> -1.00000000E-999
-cpnx134 copynegate 1E-1007 -> -1E-1007
-
-cpnx135 copynegate -1E-1007 -> 1E-1007
-cpnx136 copynegate -1.00000000E-999 -> 1.00000000E-999
-cpnx137 copynegate -1E-999 -> 1E-999
-cpnx138 copynegate -9.99999999E+999 -> 9.99999999E+999
+------------------------------------------------------------------------ +-- copyNegate.decTest -- quiet copy and negate -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +extended: 1 +precision: 9 +rounding: half_up +maxExponent: 999 +minExponent: -999 + +-- Sanity check +cpnx001 copynegate +7.50 -> -7.50 + +-- Infinities +cpnx011 copynegate Infinity -> -Infinity +cpnx012 copynegate -Infinity -> Infinity + +-- NaNs, 0 payload +cpnx021 copynegate NaN -> -NaN +cpnx022 copynegate -NaN -> NaN +cpnx023 copynegate sNaN -> -sNaN +cpnx024 copynegate -sNaN -> sNaN + +-- NaNs, non-0 payload +cpnx031 copynegate NaN13 -> -NaN13 +cpnx032 copynegate -NaN13 -> NaN13 +cpnx033 copynegate sNaN13 -> -sNaN13 +cpnx034 copynegate -sNaN13 -> sNaN13 +cpnx035 copynegate NaN70 -> -NaN70 +cpnx036 copynegate -NaN70 -> NaN70 +cpnx037 copynegate sNaN101 -> -sNaN101 +cpnx038 copynegate -sNaN101 -> sNaN101 + +-- finites +cpnx101 copynegate 7 -> -7 +cpnx102 copynegate -7 -> 7 +cpnx103 copynegate 75 -> -75 +cpnx104 copynegate -75 -> 75 +cpnx105 copynegate 7.50 -> -7.50 +cpnx106 copynegate -7.50 -> 7.50 +cpnx107 copynegate 7.500 -> -7.500 +cpnx108 copynegate -7.500 -> 7.500 + +-- zeros +cpnx111 copynegate 0 -> -0 +cpnx112 copynegate -0 -> 0 +cpnx113 copynegate 0E+4 -> -0E+4 +cpnx114 copynegate -0E+4 -> 0E+4 +cpnx115 copynegate 0.0000 -> -0.0000 +cpnx116 copynegate -0.0000 -> 0.0000 +cpnx117 copynegate 0E-141 -> -0E-141 +cpnx118 copynegate -0E-141 -> 0E-141 + +-- full coefficients, alternating bits +cpnx121 copynegate 268268268 -> -268268268 +cpnx122 copynegate -268268268 -> 268268268 +cpnx123 copynegate 134134134 -> -134134134 +cpnx124 copynegate -134134134 -> 134134134 + +-- Nmax, Nmin, Ntiny +cpnx131 copynegate 9.99999999E+999 -> -9.99999999E+999 +cpnx132 copynegate 1E-999 -> -1E-999 +cpnx133 copynegate 1.00000000E-999 -> -1.00000000E-999 +cpnx134 copynegate 1E-1007 -> -1E-1007 + +cpnx135 copynegate -1E-1007 -> 1E-1007 +cpnx136 copynegate -1.00000000E-999 -> 1.00000000E-999 +cpnx137 copynegate -1E-999 -> 1E-999 +cpnx138 copynegate -9.99999999E+999 -> 9.99999999E+999 diff --git a/Lib/test/decimaltestdata/copysign.decTest b/Lib/test/decimaltestdata/copysign.decTest index 8061a4219c..afdd670d3c 100644 --- a/Lib/test/decimaltestdata/copysign.decTest +++ b/Lib/test/decimaltestdata/copysign.decTest @@ -1,177 +1,177 @@ -------------------------------------------------------------------------
--- copysign.decTest -- quiet copy with sign from rhs --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-extended: 1
-precision: 9
-rounding: half_up
-maxExponent: 999
-minExponent: -999
-
--- Sanity check, and examples from decArith
-cpsx001 copysign +7.50 11 -> 7.50
-cpsx002 copysign '1.50' '7.33' -> 1.50
-cpsx003 copysign '-1.50' '7.33' -> 1.50
-cpsx004 copysign '1.50' '-7.33' -> -1.50
-cpsx005 copysign '-1.50' '-7.33' -> -1.50
-
--- Infinities
-cpsx011 copysign Infinity 11 -> Infinity
-cpsx012 copysign -Infinity 11 -> Infinity
-
--- NaNs, 0 payload
-cpsx021 copysign NaN 11 -> NaN
-cpsx022 copysign -NaN 11 -> NaN
-cpsx023 copysign sNaN 11 -> sNaN
-cpsx024 copysign -sNaN 11 -> sNaN
-
--- NaNs, non-0 payload
-cpsx031 copysign NaN10 11 -> NaN10
-cpsx032 copysign -NaN10 11 -> NaN10
-cpsx033 copysign sNaN10 11 -> sNaN10
-cpsx034 copysign -sNaN10 11 -> sNaN10
-cpsx035 copysign NaN7 11 -> NaN7
-cpsx036 copysign -NaN7 11 -> NaN7
-cpsx037 copysign sNaN101 11 -> sNaN101
-cpsx038 copysign -sNaN101 11 -> sNaN101
-
--- finites
-cpsx101 copysign 7 11 -> 7
-cpsx102 copysign -7 11 -> 7
-cpsx103 copysign 75 11 -> 75
-cpsx104 copysign -75 11 -> 75
-cpsx105 copysign 7.50 11 -> 7.50
-cpsx106 copysign -7.50 11 -> 7.50
-cpsx107 copysign 7.500 11 -> 7.500
-cpsx108 copysign -7.500 11 -> 7.500
-
--- zeros
-cpsx111 copysign 0 11 -> 0
-cpsx112 copysign -0 11 -> 0
-cpsx113 copysign 0E+4 11 -> 0E+4
-cpsx114 copysign -0E+4 11 -> 0E+4
-cpsx115 copysign 0.0000 11 -> 0.0000
-cpsx116 copysign -0.0000 11 -> 0.0000
-cpsx117 copysign 0E-141 11 -> 0E-141
-cpsx118 copysign -0E-141 11 -> 0E-141
-
--- full coefficients, alternating bits
-cpsx121 copysign 268268268 11 -> 268268268
-cpsx122 copysign -268268268 11 -> 268268268
-cpsx123 copysign 134134134 11 -> 134134134
-cpsx124 copysign -134134134 11 -> 134134134
-
--- Nmax, Nmin, Ntiny
-cpsx131 copysign 9.99999999E+999 11 -> 9.99999999E+999
-cpsx132 copysign 1E-999 11 -> 1E-999
-cpsx133 copysign 1.00000000E-999 11 -> 1.00000000E-999
-cpsx134 copysign 1E-1007 11 -> 1E-1007
-
-cpsx135 copysign -1E-1007 11 -> 1E-1007
-cpsx136 copysign -1.00000000E-999 11 -> 1.00000000E-999
-cpsx137 copysign -1E-999 11 -> 1E-999
-cpsx138 copysign -9.99999999E+999 11 -> 9.99999999E+999
-
--- repeat with negative RHS
-
--- Infinities
-cpsx211 copysign Infinity -34 -> -Infinity
-cpsx212 copysign -Infinity -34 -> -Infinity
-
--- NaNs, 0 payload
-cpsx221 copysign NaN -34 -> -NaN
-cpsx222 copysign -NaN -34 -> -NaN
-cpsx223 copysign sNaN -34 -> -sNaN
-cpsx224 copysign -sNaN -34 -> -sNaN
-
--- NaNs, non-0 payload
-cpsx231 copysign NaN10 -34 -> -NaN10
-cpsx232 copysign -NaN10 -34 -> -NaN10
-cpsx233 copysign sNaN10 -34 -> -sNaN10
-cpsx234 copysign -sNaN10 -34 -> -sNaN10
-cpsx235 copysign NaN7 -34 -> -NaN7
-cpsx236 copysign -NaN7 -34 -> -NaN7
-cpsx237 copysign sNaN101 -34 -> -sNaN101
-cpsx238 copysign -sNaN101 -34 -> -sNaN101
-
--- finites
-cpsx301 copysign 7 -34 -> -7
-cpsx302 copysign -7 -34 -> -7
-cpsx303 copysign 75 -34 -> -75
-cpsx304 copysign -75 -34 -> -75
-cpsx305 copysign 7.50 -34 -> -7.50
-cpsx306 copysign -7.50 -34 -> -7.50
-cpsx307 copysign 7.500 -34 -> -7.500
-cpsx308 copysign -7.500 -34 -> -7.500
-
--- zeros
-cpsx311 copysign 0 -34 -> -0
-cpsx312 copysign -0 -34 -> -0
-cpsx313 copysign 0E+4 -34 -> -0E+4
-cpsx314 copysign -0E+4 -34 -> -0E+4
-cpsx315 copysign 0.0000 -34 -> -0.0000
-cpsx316 copysign -0.0000 -34 -> -0.0000
-cpsx317 copysign 0E-141 -34 -> -0E-141
-cpsx318 copysign -0E-141 -34 -> -0E-141
-
--- full coefficients, alternating bits
-cpsx321 copysign 268268268 -18 -> -268268268
-cpsx322 copysign -268268268 -18 -> -268268268
-cpsx323 copysign 134134134 -18 -> -134134134
-cpsx324 copysign -134134134 -18 -> -134134134
-
--- Nmax, Nmin, Ntiny
-cpsx331 copysign 9.99999999E+999 -18 -> -9.99999999E+999
-cpsx332 copysign 1E-999 -18 -> -1E-999
-cpsx333 copysign 1.00000000E-999 -18 -> -1.00000000E-999
-cpsx334 copysign 1E-1007 -18 -> -1E-1007
-
-cpsx335 copysign -1E-1007 -18 -> -1E-1007
-cpsx336 copysign -1.00000000E-999 -18 -> -1.00000000E-999
-cpsx337 copysign -1E-999 -18 -> -1E-999
-cpsx338 copysign -9.99999999E+999 -18 -> -9.99999999E+999
-
--- Other kinds of RHS
-cpsx401 copysign 701 -34 -> -701
-cpsx402 copysign -720 -34 -> -720
-cpsx403 copysign 701 -0 -> -701
-cpsx404 copysign -720 -0 -> -720
-cpsx405 copysign 701 +0 -> 701
-cpsx406 copysign -720 +0 -> 720
-cpsx407 copysign 701 +34 -> 701
-cpsx408 copysign -720 +34 -> 720
-
-cpsx413 copysign 701 -Inf -> -701
-cpsx414 copysign -720 -Inf -> -720
-cpsx415 copysign 701 +Inf -> 701
-cpsx416 copysign -720 +Inf -> 720
-
-cpsx420 copysign 701 -NaN -> -701
-cpsx421 copysign -720 -NaN -> -720
-cpsx422 copysign 701 +NaN -> 701
-cpsx423 copysign -720 +NaN -> 720
-cpsx425 copysign -720 +NaN8 -> 720
-
-cpsx426 copysign 701 -sNaN -> -701
-cpsx427 copysign -720 -sNaN -> -720
-cpsx428 copysign 701 +sNaN -> 701
-cpsx429 copysign -720 +sNaN -> 720
-cpsx430 copysign -720 +sNaN3 -> 720
-
+------------------------------------------------------------------------ +-- copysign.decTest -- quiet copy with sign from rhs -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +extended: 1 +precision: 9 +rounding: half_up +maxExponent: 999 +minExponent: -999 + +-- Sanity check, and examples from decArith +cpsx001 copysign +7.50 11 -> 7.50 +cpsx002 copysign '1.50' '7.33' -> 1.50 +cpsx003 copysign '-1.50' '7.33' -> 1.50 +cpsx004 copysign '1.50' '-7.33' -> -1.50 +cpsx005 copysign '-1.50' '-7.33' -> -1.50 + +-- Infinities +cpsx011 copysign Infinity 11 -> Infinity +cpsx012 copysign -Infinity 11 -> Infinity + +-- NaNs, 0 payload +cpsx021 copysign NaN 11 -> NaN +cpsx022 copysign -NaN 11 -> NaN +cpsx023 copysign sNaN 11 -> sNaN +cpsx024 copysign -sNaN 11 -> sNaN + +-- NaNs, non-0 payload +cpsx031 copysign NaN10 11 -> NaN10 +cpsx032 copysign -NaN10 11 -> NaN10 +cpsx033 copysign sNaN10 11 -> sNaN10 +cpsx034 copysign -sNaN10 11 -> sNaN10 +cpsx035 copysign NaN7 11 -> NaN7 +cpsx036 copysign -NaN7 11 -> NaN7 +cpsx037 copysign sNaN101 11 -> sNaN101 +cpsx038 copysign -sNaN101 11 -> sNaN101 + +-- finites +cpsx101 copysign 7 11 -> 7 +cpsx102 copysign -7 11 -> 7 +cpsx103 copysign 75 11 -> 75 +cpsx104 copysign -75 11 -> 75 +cpsx105 copysign 7.50 11 -> 7.50 +cpsx106 copysign -7.50 11 -> 7.50 +cpsx107 copysign 7.500 11 -> 7.500 +cpsx108 copysign -7.500 11 -> 7.500 + +-- zeros +cpsx111 copysign 0 11 -> 0 +cpsx112 copysign -0 11 -> 0 +cpsx113 copysign 0E+4 11 -> 0E+4 +cpsx114 copysign -0E+4 11 -> 0E+4 +cpsx115 copysign 0.0000 11 -> 0.0000 +cpsx116 copysign -0.0000 11 -> 0.0000 +cpsx117 copysign 0E-141 11 -> 0E-141 +cpsx118 copysign -0E-141 11 -> 0E-141 + +-- full coefficients, alternating bits +cpsx121 copysign 268268268 11 -> 268268268 +cpsx122 copysign -268268268 11 -> 268268268 +cpsx123 copysign 134134134 11 -> 134134134 +cpsx124 copysign -134134134 11 -> 134134134 + +-- Nmax, Nmin, Ntiny +cpsx131 copysign 9.99999999E+999 11 -> 9.99999999E+999 +cpsx132 copysign 1E-999 11 -> 1E-999 +cpsx133 copysign 1.00000000E-999 11 -> 1.00000000E-999 +cpsx134 copysign 1E-1007 11 -> 1E-1007 + +cpsx135 copysign -1E-1007 11 -> 1E-1007 +cpsx136 copysign -1.00000000E-999 11 -> 1.00000000E-999 +cpsx137 copysign -1E-999 11 -> 1E-999 +cpsx138 copysign -9.99999999E+999 11 -> 9.99999999E+999 + +-- repeat with negative RHS + +-- Infinities +cpsx211 copysign Infinity -34 -> -Infinity +cpsx212 copysign -Infinity -34 -> -Infinity + +-- NaNs, 0 payload +cpsx221 copysign NaN -34 -> -NaN +cpsx222 copysign -NaN -34 -> -NaN +cpsx223 copysign sNaN -34 -> -sNaN +cpsx224 copysign -sNaN -34 -> -sNaN + +-- NaNs, non-0 payload +cpsx231 copysign NaN10 -34 -> -NaN10 +cpsx232 copysign -NaN10 -34 -> -NaN10 +cpsx233 copysign sNaN10 -34 -> -sNaN10 +cpsx234 copysign -sNaN10 -34 -> -sNaN10 +cpsx235 copysign NaN7 -34 -> -NaN7 +cpsx236 copysign -NaN7 -34 -> -NaN7 +cpsx237 copysign sNaN101 -34 -> -sNaN101 +cpsx238 copysign -sNaN101 -34 -> -sNaN101 + +-- finites +cpsx301 copysign 7 -34 -> -7 +cpsx302 copysign -7 -34 -> -7 +cpsx303 copysign 75 -34 -> -75 +cpsx304 copysign -75 -34 -> -75 +cpsx305 copysign 7.50 -34 -> -7.50 +cpsx306 copysign -7.50 -34 -> -7.50 +cpsx307 copysign 7.500 -34 -> -7.500 +cpsx308 copysign -7.500 -34 -> -7.500 + +-- zeros +cpsx311 copysign 0 -34 -> -0 +cpsx312 copysign -0 -34 -> -0 +cpsx313 copysign 0E+4 -34 -> -0E+4 +cpsx314 copysign -0E+4 -34 -> -0E+4 +cpsx315 copysign 0.0000 -34 -> -0.0000 +cpsx316 copysign -0.0000 -34 -> -0.0000 +cpsx317 copysign 0E-141 -34 -> -0E-141 +cpsx318 copysign -0E-141 -34 -> -0E-141 + +-- full coefficients, alternating bits +cpsx321 copysign 268268268 -18 -> -268268268 +cpsx322 copysign -268268268 -18 -> -268268268 +cpsx323 copysign 134134134 -18 -> -134134134 +cpsx324 copysign -134134134 -18 -> -134134134 + +-- Nmax, Nmin, Ntiny +cpsx331 copysign 9.99999999E+999 -18 -> -9.99999999E+999 +cpsx332 copysign 1E-999 -18 -> -1E-999 +cpsx333 copysign 1.00000000E-999 -18 -> -1.00000000E-999 +cpsx334 copysign 1E-1007 -18 -> -1E-1007 + +cpsx335 copysign -1E-1007 -18 -> -1E-1007 +cpsx336 copysign -1.00000000E-999 -18 -> -1.00000000E-999 +cpsx337 copysign -1E-999 -18 -> -1E-999 +cpsx338 copysign -9.99999999E+999 -18 -> -9.99999999E+999 + +-- Other kinds of RHS +cpsx401 copysign 701 -34 -> -701 +cpsx402 copysign -720 -34 -> -720 +cpsx403 copysign 701 -0 -> -701 +cpsx404 copysign -720 -0 -> -720 +cpsx405 copysign 701 +0 -> 701 +cpsx406 copysign -720 +0 -> 720 +cpsx407 copysign 701 +34 -> 701 +cpsx408 copysign -720 +34 -> 720 + +cpsx413 copysign 701 -Inf -> -701 +cpsx414 copysign -720 -Inf -> -720 +cpsx415 copysign 701 +Inf -> 701 +cpsx416 copysign -720 +Inf -> 720 + +cpsx420 copysign 701 -NaN -> -701 +cpsx421 copysign -720 -NaN -> -720 +cpsx422 copysign 701 +NaN -> 701 +cpsx423 copysign -720 +NaN -> 720 +cpsx425 copysign -720 +NaN8 -> 720 + +cpsx426 copysign 701 -sNaN -> -701 +cpsx427 copysign -720 -sNaN -> -720 +cpsx428 copysign 701 +sNaN -> 701 +cpsx429 copysign -720 +sNaN -> 720 +cpsx430 copysign -720 +sNaN3 -> 720 + diff --git a/Lib/test/decimaltestdata/ddAbs.decTest b/Lib/test/decimaltestdata/ddAbs.decTest index c6f5a7cda3..b98d64a11a 100644 --- a/Lib/test/decimaltestdata/ddAbs.decTest +++ b/Lib/test/decimaltestdata/ddAbs.decTest @@ -1,126 +1,126 @@ -------------------------------------------------------------------------
--- ddAbs.decTest -- decDouble absolute value, heeding sNaN --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
-ddabs001 abs '1' -> '1'
-ddabs002 abs '-1' -> '1'
-ddabs003 abs '1.00' -> '1.00'
-ddabs004 abs '-1.00' -> '1.00'
-ddabs005 abs '0' -> '0'
-ddabs006 abs '0.00' -> '0.00'
-ddabs007 abs '00.0' -> '0.0'
-ddabs008 abs '00.00' -> '0.00'
-ddabs009 abs '00' -> '0'
-
-ddabs010 abs '-2' -> '2'
-ddabs011 abs '2' -> '2'
-ddabs012 abs '-2.00' -> '2.00'
-ddabs013 abs '2.00' -> '2.00'
-ddabs014 abs '-0' -> '0'
-ddabs015 abs '-0.00' -> '0.00'
-ddabs016 abs '-00.0' -> '0.0'
-ddabs017 abs '-00.00' -> '0.00'
-ddabs018 abs '-00' -> '0'
-
-ddabs020 abs '-2000000' -> '2000000'
-ddabs021 abs '2000000' -> '2000000'
-
-ddabs030 abs '+0.1' -> '0.1'
-ddabs031 abs '-0.1' -> '0.1'
-ddabs032 abs '+0.01' -> '0.01'
-ddabs033 abs '-0.01' -> '0.01'
-ddabs034 abs '+0.001' -> '0.001'
-ddabs035 abs '-0.001' -> '0.001'
-ddabs036 abs '+0.000001' -> '0.000001'
-ddabs037 abs '-0.000001' -> '0.000001'
-ddabs038 abs '+0.000000000001' -> '1E-12'
-ddabs039 abs '-0.000000000001' -> '1E-12'
-
--- examples from decArith
-ddabs040 abs '2.1' -> '2.1'
-ddabs041 abs '-100' -> '100'
-ddabs042 abs '101.5' -> '101.5'
-ddabs043 abs '-101.5' -> '101.5'
-
--- more fixed, potential LHS swaps/overlays if done by subtract 0
-ddabs060 abs '-56267E-10' -> '0.0000056267'
-ddabs061 abs '-56267E-5' -> '0.56267'
-ddabs062 abs '-56267E-2' -> '562.67'
-ddabs063 abs '-56267E-1' -> '5626.7'
-ddabs065 abs '-56267E-0' -> '56267'
-
--- subnormals and underflow
-
--- long operand tests
-ddabs321 abs 1234567890123456 -> 1234567890123456
-ddabs322 abs 12345678000 -> 12345678000
-ddabs323 abs 1234567800 -> 1234567800
-ddabs324 abs 1234567890 -> 1234567890
-ddabs325 abs 1234567891 -> 1234567891
-ddabs326 abs 12345678901 -> 12345678901
-ddabs327 abs 1234567896 -> 1234567896
-
--- zeros
-ddabs111 abs 0 -> 0
-ddabs112 abs -0 -> 0
-ddabs113 abs 0E+6 -> 0E+6
-ddabs114 abs -0E+6 -> 0E+6
-ddabs115 abs 0.0000 -> 0.0000
-ddabs116 abs -0.0000 -> 0.0000
-ddabs117 abs 0E-141 -> 0E-141
-ddabs118 abs -0E-141 -> 0E-141
-
--- full coefficients, alternating bits
-ddabs121 abs 2682682682682682 -> 2682682682682682
-ddabs122 abs -2682682682682682 -> 2682682682682682
-ddabs123 abs 1341341341341341 -> 1341341341341341
-ddabs124 abs -1341341341341341 -> 1341341341341341
-
--- Nmax, Nmin, Ntiny
-ddabs131 abs 9.999999999999999E+384 -> 9.999999999999999E+384
-ddabs132 abs 1E-383 -> 1E-383
-ddabs133 abs 1.000000000000000E-383 -> 1.000000000000000E-383
-ddabs134 abs 1E-398 -> 1E-398 Subnormal
-
-ddabs135 abs -1E-398 -> 1E-398 Subnormal
-ddabs136 abs -1.000000000000000E-383 -> 1.000000000000000E-383
-ddabs137 abs -1E-383 -> 1E-383
-ddabs138 abs -9.999999999999999E+384 -> 9.999999999999999E+384
-
--- specials
-ddabs520 abs 'Inf' -> 'Infinity'
-ddabs521 abs '-Inf' -> 'Infinity'
-ddabs522 abs NaN -> NaN
-ddabs523 abs sNaN -> NaN Invalid_operation
-ddabs524 abs NaN22 -> NaN22
-ddabs525 abs sNaN33 -> NaN33 Invalid_operation
-ddabs526 abs -NaN22 -> -NaN22
-ddabs527 abs -sNaN33 -> -NaN33 Invalid_operation
-
--- Null tests
-ddabs900 abs # -> NaN Invalid_operation
-
+------------------------------------------------------------------------ +-- ddAbs.decTest -- decDouble absolute value, heeding sNaN -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +ddabs001 abs '1' -> '1' +ddabs002 abs '-1' -> '1' +ddabs003 abs '1.00' -> '1.00' +ddabs004 abs '-1.00' -> '1.00' +ddabs005 abs '0' -> '0' +ddabs006 abs '0.00' -> '0.00' +ddabs007 abs '00.0' -> '0.0' +ddabs008 abs '00.00' -> '0.00' +ddabs009 abs '00' -> '0' + +ddabs010 abs '-2' -> '2' +ddabs011 abs '2' -> '2' +ddabs012 abs '-2.00' -> '2.00' +ddabs013 abs '2.00' -> '2.00' +ddabs014 abs '-0' -> '0' +ddabs015 abs '-0.00' -> '0.00' +ddabs016 abs '-00.0' -> '0.0' +ddabs017 abs '-00.00' -> '0.00' +ddabs018 abs '-00' -> '0' + +ddabs020 abs '-2000000' -> '2000000' +ddabs021 abs '2000000' -> '2000000' + +ddabs030 abs '+0.1' -> '0.1' +ddabs031 abs '-0.1' -> '0.1' +ddabs032 abs '+0.01' -> '0.01' +ddabs033 abs '-0.01' -> '0.01' +ddabs034 abs '+0.001' -> '0.001' +ddabs035 abs '-0.001' -> '0.001' +ddabs036 abs '+0.000001' -> '0.000001' +ddabs037 abs '-0.000001' -> '0.000001' +ddabs038 abs '+0.000000000001' -> '1E-12' +ddabs039 abs '-0.000000000001' -> '1E-12' + +-- examples from decArith +ddabs040 abs '2.1' -> '2.1' +ddabs041 abs '-100' -> '100' +ddabs042 abs '101.5' -> '101.5' +ddabs043 abs '-101.5' -> '101.5' + +-- more fixed, potential LHS swaps/overlays if done by subtract 0 +ddabs060 abs '-56267E-10' -> '0.0000056267' +ddabs061 abs '-56267E-5' -> '0.56267' +ddabs062 abs '-56267E-2' -> '562.67' +ddabs063 abs '-56267E-1' -> '5626.7' +ddabs065 abs '-56267E-0' -> '56267' + +-- subnormals and underflow + +-- long operand tests +ddabs321 abs 1234567890123456 -> 1234567890123456 +ddabs322 abs 12345678000 -> 12345678000 +ddabs323 abs 1234567800 -> 1234567800 +ddabs324 abs 1234567890 -> 1234567890 +ddabs325 abs 1234567891 -> 1234567891 +ddabs326 abs 12345678901 -> 12345678901 +ddabs327 abs 1234567896 -> 1234567896 + +-- zeros +ddabs111 abs 0 -> 0 +ddabs112 abs -0 -> 0 +ddabs113 abs 0E+6 -> 0E+6 +ddabs114 abs -0E+6 -> 0E+6 +ddabs115 abs 0.0000 -> 0.0000 +ddabs116 abs -0.0000 -> 0.0000 +ddabs117 abs 0E-141 -> 0E-141 +ddabs118 abs -0E-141 -> 0E-141 + +-- full coefficients, alternating bits +ddabs121 abs 2682682682682682 -> 2682682682682682 +ddabs122 abs -2682682682682682 -> 2682682682682682 +ddabs123 abs 1341341341341341 -> 1341341341341341 +ddabs124 abs -1341341341341341 -> 1341341341341341 + +-- Nmax, Nmin, Ntiny +ddabs131 abs 9.999999999999999E+384 -> 9.999999999999999E+384 +ddabs132 abs 1E-383 -> 1E-383 +ddabs133 abs 1.000000000000000E-383 -> 1.000000000000000E-383 +ddabs134 abs 1E-398 -> 1E-398 Subnormal + +ddabs135 abs -1E-398 -> 1E-398 Subnormal +ddabs136 abs -1.000000000000000E-383 -> 1.000000000000000E-383 +ddabs137 abs -1E-383 -> 1E-383 +ddabs138 abs -9.999999999999999E+384 -> 9.999999999999999E+384 + +-- specials +ddabs520 abs 'Inf' -> 'Infinity' +ddabs521 abs '-Inf' -> 'Infinity' +ddabs522 abs NaN -> NaN +ddabs523 abs sNaN -> NaN Invalid_operation +ddabs524 abs NaN22 -> NaN22 +ddabs525 abs sNaN33 -> NaN33 Invalid_operation +ddabs526 abs -NaN22 -> -NaN22 +ddabs527 abs -sNaN33 -> -NaN33 Invalid_operation + +-- Null tests +ddabs900 abs # -> NaN Invalid_operation + diff --git a/Lib/test/decimaltestdata/ddAdd.decTest b/Lib/test/decimaltestdata/ddAdd.decTest index c0a25b3413..0f12ce4445 100644 --- a/Lib/test/decimaltestdata/ddAdd.decTest +++ b/Lib/test/decimaltestdata/ddAdd.decTest @@ -1,1328 +1,1328 @@ -------------------------------------------------------------------------
--- ddAdd.decTest -- decDouble addition --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- This set of tests are for decDoubles only; all arguments are
--- representable in a decDouble
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
--- [first group are 'quick confidence check']
-ddadd001 add 1 1 -> 2
-ddadd002 add 2 3 -> 5
-ddadd003 add '5.75' '3.3' -> 9.05
-ddadd004 add '5' '-3' -> 2
-ddadd005 add '-5' '-3' -> -8
-ddadd006 add '-7' '2.5' -> -4.5
-ddadd007 add '0.7' '0.3' -> 1.0
-ddadd008 add '1.25' '1.25' -> 2.50
-ddadd009 add '1.23456789' '1.00000000' -> '2.23456789'
-ddadd010 add '1.23456789' '1.00000011' -> '2.23456800'
-
--- 1234567890123456 1234567890123456
-ddadd011 add '0.4444444444444446' '0.5555555555555555' -> '1.000000000000000' Inexact Rounded
-ddadd012 add '0.4444444444444445' '0.5555555555555555' -> '1.000000000000000' Rounded
-ddadd013 add '0.4444444444444444' '0.5555555555555555' -> '0.9999999999999999'
-ddadd014 add '4444444444444444' '0.49' -> '4444444444444444' Inexact Rounded
-ddadd015 add '4444444444444444' '0.499' -> '4444444444444444' Inexact Rounded
-ddadd016 add '4444444444444444' '0.4999' -> '4444444444444444' Inexact Rounded
-ddadd017 add '4444444444444444' '0.5000' -> '4444444444444444' Inexact Rounded
-ddadd018 add '4444444444444444' '0.5001' -> '4444444444444445' Inexact Rounded
-ddadd019 add '4444444444444444' '0.501' -> '4444444444444445' Inexact Rounded
-ddadd020 add '4444444444444444' '0.51' -> '4444444444444445' Inexact Rounded
-
-ddadd021 add 0 1 -> 1
-ddadd022 add 1 1 -> 2
-ddadd023 add 2 1 -> 3
-ddadd024 add 3 1 -> 4
-ddadd025 add 4 1 -> 5
-ddadd026 add 5 1 -> 6
-ddadd027 add 6 1 -> 7
-ddadd028 add 7 1 -> 8
-ddadd029 add 8 1 -> 9
-ddadd030 add 9 1 -> 10
-
--- some carrying effects
-ddadd031 add '0.9998' '0.0000' -> '0.9998'
-ddadd032 add '0.9998' '0.0001' -> '0.9999'
-ddadd033 add '0.9998' '0.0002' -> '1.0000'
-ddadd034 add '0.9998' '0.0003' -> '1.0001'
-
-ddadd035 add '70' '10000e+16' -> '1.000000000000000E+20' Inexact Rounded
-ddadd036 add '700' '10000e+16' -> '1.000000000000000E+20' Inexact Rounded
-ddadd037 add '7000' '10000e+16' -> '1.000000000000000E+20' Inexact Rounded
-ddadd038 add '70000' '10000e+16' -> '1.000000000000001E+20' Inexact Rounded
-ddadd039 add '700000' '10000e+16' -> '1.000000000000007E+20' Rounded
-
--- symmetry:
-ddadd040 add '10000e+16' '70' -> '1.000000000000000E+20' Inexact Rounded
-ddadd041 add '10000e+16' '700' -> '1.000000000000000E+20' Inexact Rounded
-ddadd042 add '10000e+16' '7000' -> '1.000000000000000E+20' Inexact Rounded
-ddadd044 add '10000e+16' '70000' -> '1.000000000000001E+20' Inexact Rounded
-ddadd045 add '10000e+16' '700000' -> '1.000000000000007E+20' Rounded
-
--- same, without rounding
-ddadd046 add '10000e+9' '7' -> '10000000000007'
-ddadd047 add '10000e+9' '70' -> '10000000000070'
-ddadd048 add '10000e+9' '700' -> '10000000000700'
-ddadd049 add '10000e+9' '7000' -> '10000000007000'
-ddadd050 add '10000e+9' '70000' -> '10000000070000'
-ddadd051 add '10000e+9' '700000' -> '10000000700000'
-ddadd052 add '10000e+9' '7000000' -> '10000007000000'
-
--- examples from decarith
-ddadd053 add '12' '7.00' -> '19.00'
-ddadd054 add '1.3' '-1.07' -> '0.23'
-ddadd055 add '1.3' '-1.30' -> '0.00'
-ddadd056 add '1.3' '-2.07' -> '-0.77'
-ddadd057 add '1E+2' '1E+4' -> '1.01E+4'
-
--- leading zero preservation
-ddadd061 add 1 '0.0001' -> '1.0001'
-ddadd062 add 1 '0.00001' -> '1.00001'
-ddadd063 add 1 '0.000001' -> '1.000001'
-ddadd064 add 1 '0.0000001' -> '1.0000001'
-ddadd065 add 1 '0.00000001' -> '1.00000001'
-
--- some funny zeros [in case of bad signum]
-ddadd070 add 1 0 -> 1
-ddadd071 add 1 0. -> 1
-ddadd072 add 1 .0 -> 1.0
-ddadd073 add 1 0.0 -> 1.0
-ddadd074 add 1 0.00 -> 1.00
-ddadd075 add 0 1 -> 1
-ddadd076 add 0. 1 -> 1
-ddadd077 add .0 1 -> 1.0
-ddadd078 add 0.0 1 -> 1.0
-ddadd079 add 0.00 1 -> 1.00
-
--- some carries
-ddadd080 add 999999998 1 -> 999999999
-ddadd081 add 999999999 1 -> 1000000000
-ddadd082 add 99999999 1 -> 100000000
-ddadd083 add 9999999 1 -> 10000000
-ddadd084 add 999999 1 -> 1000000
-ddadd085 add 99999 1 -> 100000
-ddadd086 add 9999 1 -> 10000
-ddadd087 add 999 1 -> 1000
-ddadd088 add 99 1 -> 100
-ddadd089 add 9 1 -> 10
-
-
--- more LHS swaps
-ddadd090 add '-56267E-10' 0 -> '-0.0000056267'
-ddadd091 add '-56267E-6' 0 -> '-0.056267'
-ddadd092 add '-56267E-5' 0 -> '-0.56267'
-ddadd093 add '-56267E-4' 0 -> '-5.6267'
-ddadd094 add '-56267E-3' 0 -> '-56.267'
-ddadd095 add '-56267E-2' 0 -> '-562.67'
-ddadd096 add '-56267E-1' 0 -> '-5626.7'
-ddadd097 add '-56267E-0' 0 -> '-56267'
-ddadd098 add '-5E-10' 0 -> '-5E-10'
-ddadd099 add '-5E-7' 0 -> '-5E-7'
-ddadd100 add '-5E-6' 0 -> '-0.000005'
-ddadd101 add '-5E-5' 0 -> '-0.00005'
-ddadd102 add '-5E-4' 0 -> '-0.0005'
-ddadd103 add '-5E-1' 0 -> '-0.5'
-ddadd104 add '-5E0' 0 -> '-5'
-ddadd105 add '-5E1' 0 -> '-50'
-ddadd106 add '-5E5' 0 -> '-500000'
-ddadd107 add '-5E15' 0 -> '-5000000000000000'
-ddadd108 add '-5E16' 0 -> '-5.000000000000000E+16' Rounded
-ddadd109 add '-5E17' 0 -> '-5.000000000000000E+17' Rounded
-ddadd110 add '-5E18' 0 -> '-5.000000000000000E+18' Rounded
-ddadd111 add '-5E100' 0 -> '-5.000000000000000E+100' Rounded
-
--- more RHS swaps
-ddadd113 add 0 '-56267E-10' -> '-0.0000056267'
-ddadd114 add 0 '-56267E-6' -> '-0.056267'
-ddadd116 add 0 '-56267E-5' -> '-0.56267'
-ddadd117 add 0 '-56267E-4' -> '-5.6267'
-ddadd119 add 0 '-56267E-3' -> '-56.267'
-ddadd120 add 0 '-56267E-2' -> '-562.67'
-ddadd121 add 0 '-56267E-1' -> '-5626.7'
-ddadd122 add 0 '-56267E-0' -> '-56267'
-ddadd123 add 0 '-5E-10' -> '-5E-10'
-ddadd124 add 0 '-5E-7' -> '-5E-7'
-ddadd125 add 0 '-5E-6' -> '-0.000005'
-ddadd126 add 0 '-5E-5' -> '-0.00005'
-ddadd127 add 0 '-5E-4' -> '-0.0005'
-ddadd128 add 0 '-5E-1' -> '-0.5'
-ddadd129 add 0 '-5E0' -> '-5'
-ddadd130 add 0 '-5E1' -> '-50'
-ddadd131 add 0 '-5E5' -> '-500000'
-ddadd132 add 0 '-5E15' -> '-5000000000000000'
-ddadd133 add 0 '-5E16' -> '-5.000000000000000E+16' Rounded
-ddadd134 add 0 '-5E17' -> '-5.000000000000000E+17' Rounded
-ddadd135 add 0 '-5E18' -> '-5.000000000000000E+18' Rounded
-ddadd136 add 0 '-5E100' -> '-5.000000000000000E+100' Rounded
-
--- related
-ddadd137 add 1 '0E-19' -> '1.000000000000000' Rounded
-ddadd138 add -1 '0E-19' -> '-1.000000000000000' Rounded
-ddadd139 add '0E-19' 1 -> '1.000000000000000' Rounded
-ddadd140 add '0E-19' -1 -> '-1.000000000000000' Rounded
-ddadd141 add 1E+11 0.0000 -> '100000000000.0000'
-ddadd142 add 1E+11 0.00000 -> '100000000000.0000' Rounded
-ddadd143 add 0.000 1E+12 -> '1000000000000.000'
-ddadd144 add 0.0000 1E+12 -> '1000000000000.000' Rounded
-
--- [some of the next group are really constructor tests]
-ddadd146 add '00.0' 0 -> '0.0'
-ddadd147 add '0.00' 0 -> '0.00'
-ddadd148 add 0 '0.00' -> '0.00'
-ddadd149 add 0 '00.0' -> '0.0'
-ddadd150 add '00.0' '0.00' -> '0.00'
-ddadd151 add '0.00' '00.0' -> '0.00'
-ddadd152 add '3' '.3' -> '3.3'
-ddadd153 add '3.' '.3' -> '3.3'
-ddadd154 add '3.0' '.3' -> '3.3'
-ddadd155 add '3.00' '.3' -> '3.30'
-ddadd156 add '3' '3' -> '6'
-ddadd157 add '3' '+3' -> '6'
-ddadd158 add '3' '-3' -> '0'
-ddadd159 add '0.3' '-0.3' -> '0.0'
-ddadd160 add '0.03' '-0.03' -> '0.00'
-
--- try borderline precision, with carries, etc.
-ddadd161 add '1E+12' '-1' -> '999999999999'
-ddadd162 add '1E+12' '1.11' -> '1000000000001.11'
-ddadd163 add '1.11' '1E+12' -> '1000000000001.11'
-ddadd164 add '-1' '1E+12' -> '999999999999'
-ddadd165 add '7E+12' '-1' -> '6999999999999'
-ddadd166 add '7E+12' '1.11' -> '7000000000001.11'
-ddadd167 add '1.11' '7E+12' -> '7000000000001.11'
-ddadd168 add '-1' '7E+12' -> '6999999999999'
-
-rounding: half_up
--- 1.234567890123456 1234567890123456 1 234567890123456
-ddadd170 add '4.444444444444444' '0.5555555555555567' -> '5.000000000000001' Inexact Rounded
-ddadd171 add '4.444444444444444' '0.5555555555555566' -> '5.000000000000001' Inexact Rounded
-ddadd172 add '4.444444444444444' '0.5555555555555565' -> '5.000000000000001' Inexact Rounded
-ddadd173 add '4.444444444444444' '0.5555555555555564' -> '5.000000000000000' Inexact Rounded
-ddadd174 add '4.444444444444444' '0.5555555555555553' -> '4.999999999999999' Inexact Rounded
-ddadd175 add '4.444444444444444' '0.5555555555555552' -> '4.999999999999999' Inexact Rounded
-ddadd176 add '4.444444444444444' '0.5555555555555551' -> '4.999999999999999' Inexact Rounded
-ddadd177 add '4.444444444444444' '0.5555555555555550' -> '4.999999999999999' Rounded
-ddadd178 add '4.444444444444444' '0.5555555555555545' -> '4.999999999999999' Inexact Rounded
-ddadd179 add '4.444444444444444' '0.5555555555555544' -> '4.999999999999998' Inexact Rounded
-ddadd180 add '4.444444444444444' '0.5555555555555543' -> '4.999999999999998' Inexact Rounded
-ddadd181 add '4.444444444444444' '0.5555555555555542' -> '4.999999999999998' Inexact Rounded
-ddadd182 add '4.444444444444444' '0.5555555555555541' -> '4.999999999999998' Inexact Rounded
-ddadd183 add '4.444444444444444' '0.5555555555555540' -> '4.999999999999998' Rounded
-
--- and some more, including residue effects and different roundings
-rounding: half_up
-ddadd200 add '1234560123456789' 0 -> '1234560123456789'
-ddadd201 add '1234560123456789' 0.000000001 -> '1234560123456789' Inexact Rounded
-ddadd202 add '1234560123456789' 0.000001 -> '1234560123456789' Inexact Rounded
-ddadd203 add '1234560123456789' 0.1 -> '1234560123456789' Inexact Rounded
-ddadd204 add '1234560123456789' 0.4 -> '1234560123456789' Inexact Rounded
-ddadd205 add '1234560123456789' 0.49 -> '1234560123456789' Inexact Rounded
-ddadd206 add '1234560123456789' 0.499999 -> '1234560123456789' Inexact Rounded
-ddadd207 add '1234560123456789' 0.499999999 -> '1234560123456789' Inexact Rounded
-ddadd208 add '1234560123456789' 0.5 -> '1234560123456790' Inexact Rounded
-ddadd209 add '1234560123456789' 0.500000001 -> '1234560123456790' Inexact Rounded
-ddadd210 add '1234560123456789' 0.500001 -> '1234560123456790' Inexact Rounded
-ddadd211 add '1234560123456789' 0.51 -> '1234560123456790' Inexact Rounded
-ddadd212 add '1234560123456789' 0.6 -> '1234560123456790' Inexact Rounded
-ddadd213 add '1234560123456789' 0.9 -> '1234560123456790' Inexact Rounded
-ddadd214 add '1234560123456789' 0.99999 -> '1234560123456790' Inexact Rounded
-ddadd215 add '1234560123456789' 0.999999999 -> '1234560123456790' Inexact Rounded
-ddadd216 add '1234560123456789' 1 -> '1234560123456790'
-ddadd217 add '1234560123456789' 1.000000001 -> '1234560123456790' Inexact Rounded
-ddadd218 add '1234560123456789' 1.00001 -> '1234560123456790' Inexact Rounded
-ddadd219 add '1234560123456789' 1.1 -> '1234560123456790' Inexact Rounded
-
-rounding: half_even
-ddadd220 add '1234560123456789' 0 -> '1234560123456789'
-ddadd221 add '1234560123456789' 0.000000001 -> '1234560123456789' Inexact Rounded
-ddadd222 add '1234560123456789' 0.000001 -> '1234560123456789' Inexact Rounded
-ddadd223 add '1234560123456789' 0.1 -> '1234560123456789' Inexact Rounded
-ddadd224 add '1234560123456789' 0.4 -> '1234560123456789' Inexact Rounded
-ddadd225 add '1234560123456789' 0.49 -> '1234560123456789' Inexact Rounded
-ddadd226 add '1234560123456789' 0.499999 -> '1234560123456789' Inexact Rounded
-ddadd227 add '1234560123456789' 0.499999999 -> '1234560123456789' Inexact Rounded
-ddadd228 add '1234560123456789' 0.5 -> '1234560123456790' Inexact Rounded
-ddadd229 add '1234560123456789' 0.500000001 -> '1234560123456790' Inexact Rounded
-ddadd230 add '1234560123456789' 0.500001 -> '1234560123456790' Inexact Rounded
-ddadd231 add '1234560123456789' 0.51 -> '1234560123456790' Inexact Rounded
-ddadd232 add '1234560123456789' 0.6 -> '1234560123456790' Inexact Rounded
-ddadd233 add '1234560123456789' 0.9 -> '1234560123456790' Inexact Rounded
-ddadd234 add '1234560123456789' 0.99999 -> '1234560123456790' Inexact Rounded
-ddadd235 add '1234560123456789' 0.999999999 -> '1234560123456790' Inexact Rounded
-ddadd236 add '1234560123456789' 1 -> '1234560123456790'
-ddadd237 add '1234560123456789' 1.00000001 -> '1234560123456790' Inexact Rounded
-ddadd238 add '1234560123456789' 1.00001 -> '1234560123456790' Inexact Rounded
-ddadd239 add '1234560123456789' 1.1 -> '1234560123456790' Inexact Rounded
--- critical few with even bottom digit...
-ddadd240 add '1234560123456788' 0.499999999 -> '1234560123456788' Inexact Rounded
-ddadd241 add '1234560123456788' 0.5 -> '1234560123456788' Inexact Rounded
-ddadd242 add '1234560123456788' 0.500000001 -> '1234560123456789' Inexact Rounded
-
-rounding: down
-ddadd250 add '1234560123456789' 0 -> '1234560123456789'
-ddadd251 add '1234560123456789' 0.000000001 -> '1234560123456789' Inexact Rounded
-ddadd252 add '1234560123456789' 0.000001 -> '1234560123456789' Inexact Rounded
-ddadd253 add '1234560123456789' 0.1 -> '1234560123456789' Inexact Rounded
-ddadd254 add '1234560123456789' 0.4 -> '1234560123456789' Inexact Rounded
-ddadd255 add '1234560123456789' 0.49 -> '1234560123456789' Inexact Rounded
-ddadd256 add '1234560123456789' 0.499999 -> '1234560123456789' Inexact Rounded
-ddadd257 add '1234560123456789' 0.499999999 -> '1234560123456789' Inexact Rounded
-ddadd258 add '1234560123456789' 0.5 -> '1234560123456789' Inexact Rounded
-ddadd259 add '1234560123456789' 0.500000001 -> '1234560123456789' Inexact Rounded
-ddadd260 add '1234560123456789' 0.500001 -> '1234560123456789' Inexact Rounded
-ddadd261 add '1234560123456789' 0.51 -> '1234560123456789' Inexact Rounded
-ddadd262 add '1234560123456789' 0.6 -> '1234560123456789' Inexact Rounded
-ddadd263 add '1234560123456789' 0.9 -> '1234560123456789' Inexact Rounded
-ddadd264 add '1234560123456789' 0.99999 -> '1234560123456789' Inexact Rounded
-ddadd265 add '1234560123456789' 0.999999999 -> '1234560123456789' Inexact Rounded
-ddadd266 add '1234560123456789' 1 -> '1234560123456790'
-ddadd267 add '1234560123456789' 1.00000001 -> '1234560123456790' Inexact Rounded
-ddadd268 add '1234560123456789' 1.00001 -> '1234560123456790' Inexact Rounded
-ddadd269 add '1234560123456789' 1.1 -> '1234560123456790' Inexact Rounded
-
--- 1 in last place tests
-rounding: half_up
-ddadd301 add -1 1 -> 0
-ddadd302 add 0 1 -> 1
-ddadd303 add 1 1 -> 2
-ddadd304 add 12 1 -> 13
-ddadd305 add 98 1 -> 99
-ddadd306 add 99 1 -> 100
-ddadd307 add 100 1 -> 101
-ddadd308 add 101 1 -> 102
-ddadd309 add -1 -1 -> -2
-ddadd310 add 0 -1 -> -1
-ddadd311 add 1 -1 -> 0
-ddadd312 add 12 -1 -> 11
-ddadd313 add 98 -1 -> 97
-ddadd314 add 99 -1 -> 98
-ddadd315 add 100 -1 -> 99
-ddadd316 add 101 -1 -> 100
-
-ddadd321 add -0.01 0.01 -> 0.00
-ddadd322 add 0.00 0.01 -> 0.01
-ddadd323 add 0.01 0.01 -> 0.02
-ddadd324 add 0.12 0.01 -> 0.13
-ddadd325 add 0.98 0.01 -> 0.99
-ddadd326 add 0.99 0.01 -> 1.00
-ddadd327 add 1.00 0.01 -> 1.01
-ddadd328 add 1.01 0.01 -> 1.02
-ddadd329 add -0.01 -0.01 -> -0.02
-ddadd330 add 0.00 -0.01 -> -0.01
-ddadd331 add 0.01 -0.01 -> 0.00
-ddadd332 add 0.12 -0.01 -> 0.11
-ddadd333 add 0.98 -0.01 -> 0.97
-ddadd334 add 0.99 -0.01 -> 0.98
-ddadd335 add 1.00 -0.01 -> 0.99
-ddadd336 add 1.01 -0.01 -> 1.00
-
--- some more cases where adding 0 affects the coefficient
-ddadd340 add 1E+3 0 -> 1000
-ddadd341 add 1E+15 0 -> 1000000000000000
-ddadd342 add 1E+16 0 -> 1.000000000000000E+16 Rounded
-ddadd343 add 1E+20 0 -> 1.000000000000000E+20 Rounded
--- which simply follow from these cases ...
-ddadd344 add 1E+3 1 -> 1001
-ddadd345 add 1E+15 1 -> 1000000000000001
-ddadd346 add 1E+16 1 -> 1.000000000000000E+16 Inexact Rounded
-ddadd347 add 1E+20 1 -> 1.000000000000000E+20 Inexact Rounded
-ddadd348 add 1E+3 7 -> 1007
-ddadd349 add 1E+15 7 -> 1000000000000007
-ddadd350 add 1E+16 7 -> 1.000000000000001E+16 Inexact Rounded
-ddadd351 add 1E+20 7 -> 1.000000000000000E+20 Inexact Rounded
-
--- tryzeros cases
-rounding: half_up
-ddadd360 add 0E+50 10000E+1 -> 1.0000E+5
-ddadd361 add 0E-50 10000E+1 -> 100000.0000000000 Rounded
-ddadd362 add 10000E+1 0E-50 -> 100000.0000000000 Rounded
-ddadd363 add 10000E+1 10000E-50 -> 100000.0000000000 Rounded Inexact
-ddadd364 add 9.999999999999999E+384 -9.999999999999999E+384 -> 0E+369
-
--- a curiosity from JSR 13 testing
-rounding: half_down
-ddadd370 add 999999999999999 815 -> 1000000000000814
-ddadd371 add 9999999999999999 815 -> 1.000000000000081E+16 Rounded Inexact
-rounding: half_up
-ddadd372 add 999999999999999 815 -> 1000000000000814
-ddadd373 add 9999999999999999 815 -> 1.000000000000081E+16 Rounded Inexact
-rounding: half_even
-ddadd374 add 999999999999999 815 -> 1000000000000814
-ddadd375 add 9999999999999999 815 -> 1.000000000000081E+16 Rounded Inexact
-
--- operands folded
-ddadd380 add 1E+384 1E+384 -> 2.000000000000000E+384 Clamped
-ddadd381 add 1E+380 1E+380 -> 2.00000000000E+380 Clamped
-ddadd382 add 1E+376 1E+376 -> 2.0000000E+376 Clamped
-ddadd383 add 1E+372 1E+372 -> 2.000E+372 Clamped
-ddadd384 add 1E+370 1E+370 -> 2.0E+370 Clamped
-ddadd385 add 1E+369 1E+369 -> 2E+369
-ddadd386 add 1E+368 1E+368 -> 2E+368
-
--- ulp replacement tests
-ddadd400 add 1 77e-14 -> 1.00000000000077
-ddadd401 add 1 77e-15 -> 1.000000000000077
-ddadd402 add 1 77e-16 -> 1.000000000000008 Inexact Rounded
-ddadd403 add 1 77e-17 -> 1.000000000000001 Inexact Rounded
-ddadd404 add 1 77e-18 -> 1.000000000000000 Inexact Rounded
-ddadd405 add 1 77e-19 -> 1.000000000000000 Inexact Rounded
-ddadd406 add 1 77e-299 -> 1.000000000000000 Inexact Rounded
-
-ddadd410 add 10 77e-14 -> 10.00000000000077
-ddadd411 add 10 77e-15 -> 10.00000000000008 Inexact Rounded
-ddadd412 add 10 77e-16 -> 10.00000000000001 Inexact Rounded
-ddadd413 add 10 77e-17 -> 10.00000000000000 Inexact Rounded
-ddadd414 add 10 77e-18 -> 10.00000000000000 Inexact Rounded
-ddadd415 add 10 77e-19 -> 10.00000000000000 Inexact Rounded
-ddadd416 add 10 77e-299 -> 10.00000000000000 Inexact Rounded
-
-ddadd420 add 77e-14 1 -> 1.00000000000077
-ddadd421 add 77e-15 1 -> 1.000000000000077
-ddadd422 add 77e-16 1 -> 1.000000000000008 Inexact Rounded
-ddadd423 add 77e-17 1 -> 1.000000000000001 Inexact Rounded
-ddadd424 add 77e-18 1 -> 1.000000000000000 Inexact Rounded
-ddadd425 add 77e-19 1 -> 1.000000000000000 Inexact Rounded
-ddadd426 add 77e-299 1 -> 1.000000000000000 Inexact Rounded
-
-ddadd430 add 77e-14 10 -> 10.00000000000077
-ddadd431 add 77e-15 10 -> 10.00000000000008 Inexact Rounded
-ddadd432 add 77e-16 10 -> 10.00000000000001 Inexact Rounded
-ddadd433 add 77e-17 10 -> 10.00000000000000 Inexact Rounded
-ddadd434 add 77e-18 10 -> 10.00000000000000 Inexact Rounded
-ddadd435 add 77e-19 10 -> 10.00000000000000 Inexact Rounded
-ddadd436 add 77e-299 10 -> 10.00000000000000 Inexact Rounded
-
--- fastpath boundary (more in dqadd)
--- 1234567890123456
-ddadd539 add '4444444444444444' '3333333333333333' -> '7777777777777777'
-ddadd540 add '4444444444444444' '4444444444444444' -> '8888888888888888'
-ddadd541 add '4444444444444444' '5555555555555555' -> '9999999999999999'
-ddadd542 add '3333333333333333' '4444444444444444' -> '7777777777777777'
-ddadd543 add '4444444444444444' '4444444444444444' -> '8888888888888888'
-ddadd544 add '5555555555555555' '4444444444444444' -> '9999999999999999'
-ddadd545 add '3000004000000000' '3000000000000040' -> '6000004000000040'
-ddadd546 add '3000000400000000' '4000000000000400' -> '7000000400000400'
-ddadd547 add '3000000040000000' '5000000000004000' -> '8000000040004000'
-ddadd548 add '4000000004000000' '3000000000040000' -> '7000000004040000'
-ddadd549 add '4000000000400000' '4000000000400000' -> '8000000000800000'
-ddadd550 add '4000000000040000' '5000000004000000' -> '9000000004040000'
-ddadd551 add '5000000000004000' '3000000040000000' -> '8000000040004000'
-ddadd552 add '5000000000000400' '4000000400000000' -> '9000000400000400'
-ddadd553 add '5000000000000040' '5000004000000000' -> 1.000000400000004E+16 Rounded
--- check propagation
-ddadd554 add '8999999999999999' '0000000000000001' -> 9000000000000000
-ddadd555 add '0000000000000001' '8999999999999999' -> 9000000000000000
-ddadd556 add '0999999999999999' '0000000000000001' -> 1000000000000000
-ddadd557 add '0000000000000001' '0999999999999999' -> 1000000000000000
-ddadd558 add '4444444444444444' '4555555555555556' -> 9000000000000000
-ddadd559 add '4555555555555556' '4444444444444444' -> 9000000000000000
-
--- negative ulps
-ddadd6440 add 1 -77e-14 -> 0.99999999999923
-ddadd6441 add 1 -77e-15 -> 0.999999999999923
-ddadd6442 add 1 -77e-16 -> 0.9999999999999923
-ddadd6443 add 1 -77e-17 -> 0.9999999999999992 Inexact Rounded
-ddadd6444 add 1 -77e-18 -> 0.9999999999999999 Inexact Rounded
-ddadd6445 add 1 -77e-19 -> 1.000000000000000 Inexact Rounded
-ddadd6446 add 1 -77e-99 -> 1.000000000000000 Inexact Rounded
-
-ddadd6450 add 10 -77e-14 -> 9.99999999999923
-ddadd6451 add 10 -77e-15 -> 9.999999999999923
-ddadd6452 add 10 -77e-16 -> 9.999999999999992 Inexact Rounded
-ddadd6453 add 10 -77e-17 -> 9.999999999999999 Inexact Rounded
-ddadd6454 add 10 -77e-18 -> 10.00000000000000 Inexact Rounded
-ddadd6455 add 10 -77e-19 -> 10.00000000000000 Inexact Rounded
-ddadd6456 add 10 -77e-99 -> 10.00000000000000 Inexact Rounded
-
-ddadd6460 add -77e-14 1 -> 0.99999999999923
-ddadd6461 add -77e-15 1 -> 0.999999999999923
-ddadd6462 add -77e-16 1 -> 0.9999999999999923
-ddadd6463 add -77e-17 1 -> 0.9999999999999992 Inexact Rounded
-ddadd6464 add -77e-18 1 -> 0.9999999999999999 Inexact Rounded
-ddadd6465 add -77e-19 1 -> 1.000000000000000 Inexact Rounded
-ddadd6466 add -77e-99 1 -> 1.000000000000000 Inexact Rounded
-
-ddadd6470 add -77e-14 10 -> 9.99999999999923
-ddadd6471 add -77e-15 10 -> 9.999999999999923
-ddadd6472 add -77e-16 10 -> 9.999999999999992 Inexact Rounded
-ddadd6473 add -77e-17 10 -> 9.999999999999999 Inexact Rounded
-ddadd6474 add -77e-18 10 -> 10.00000000000000 Inexact Rounded
-ddadd6475 add -77e-19 10 -> 10.00000000000000 Inexact Rounded
-ddadd6476 add -77e-99 10 -> 10.00000000000000 Inexact Rounded
-
--- negative ulps
-ddadd6480 add -1 77e-14 -> -0.99999999999923
-ddadd6481 add -1 77e-15 -> -0.999999999999923
-ddadd6482 add -1 77e-16 -> -0.9999999999999923
-ddadd6483 add -1 77e-17 -> -0.9999999999999992 Inexact Rounded
-ddadd6484 add -1 77e-18 -> -0.9999999999999999 Inexact Rounded
-ddadd6485 add -1 77e-19 -> -1.000000000000000 Inexact Rounded
-ddadd6486 add -1 77e-99 -> -1.000000000000000 Inexact Rounded
-
-ddadd6490 add -10 77e-14 -> -9.99999999999923
-ddadd6491 add -10 77e-15 -> -9.999999999999923
-ddadd6492 add -10 77e-16 -> -9.999999999999992 Inexact Rounded
-ddadd6493 add -10 77e-17 -> -9.999999999999999 Inexact Rounded
-ddadd6494 add -10 77e-18 -> -10.00000000000000 Inexact Rounded
-ddadd6495 add -10 77e-19 -> -10.00000000000000 Inexact Rounded
-ddadd6496 add -10 77e-99 -> -10.00000000000000 Inexact Rounded
-
-ddadd6500 add 77e-14 -1 -> -0.99999999999923
-ddadd6501 add 77e-15 -1 -> -0.999999999999923
-ddadd6502 add 77e-16 -1 -> -0.9999999999999923
-ddadd6503 add 77e-17 -1 -> -0.9999999999999992 Inexact Rounded
-ddadd6504 add 77e-18 -1 -> -0.9999999999999999 Inexact Rounded
-ddadd6505 add 77e-19 -1 -> -1.000000000000000 Inexact Rounded
-ddadd6506 add 77e-99 -1 -> -1.000000000000000 Inexact Rounded
-
-ddadd6510 add 77e-14 -10 -> -9.99999999999923
-ddadd6511 add 77e-15 -10 -> -9.999999999999923
-ddadd6512 add 77e-16 -10 -> -9.999999999999992 Inexact Rounded
-ddadd6513 add 77e-17 -10 -> -9.999999999999999 Inexact Rounded
-ddadd6514 add 77e-18 -10 -> -10.00000000000000 Inexact Rounded
-ddadd6515 add 77e-19 -10 -> -10.00000000000000 Inexact Rounded
-ddadd6516 add 77e-99 -10 -> -10.00000000000000 Inexact Rounded
-
--- and some more residue effects and different roundings
-rounding: half_up
-ddadd6540 add '6543210123456789' 0 -> '6543210123456789'
-ddadd6541 add '6543210123456789' 0.000000001 -> '6543210123456789' Inexact Rounded
-ddadd6542 add '6543210123456789' 0.000001 -> '6543210123456789' Inexact Rounded
-ddadd6543 add '6543210123456789' 0.1 -> '6543210123456789' Inexact Rounded
-ddadd6544 add '6543210123456789' 0.4 -> '6543210123456789' Inexact Rounded
-ddadd6545 add '6543210123456789' 0.49 -> '6543210123456789' Inexact Rounded
-ddadd6546 add '6543210123456789' 0.499999 -> '6543210123456789' Inexact Rounded
-ddadd6547 add '6543210123456789' 0.499999999 -> '6543210123456789' Inexact Rounded
-ddadd6548 add '6543210123456789' 0.5 -> '6543210123456790' Inexact Rounded
-ddadd6549 add '6543210123456789' 0.500000001 -> '6543210123456790' Inexact Rounded
-ddadd6550 add '6543210123456789' 0.500001 -> '6543210123456790' Inexact Rounded
-ddadd6551 add '6543210123456789' 0.51 -> '6543210123456790' Inexact Rounded
-ddadd6552 add '6543210123456789' 0.6 -> '6543210123456790' Inexact Rounded
-ddadd6553 add '6543210123456789' 0.9 -> '6543210123456790' Inexact Rounded
-ddadd6554 add '6543210123456789' 0.99999 -> '6543210123456790' Inexact Rounded
-ddadd6555 add '6543210123456789' 0.999999999 -> '6543210123456790' Inexact Rounded
-ddadd6556 add '6543210123456789' 1 -> '6543210123456790'
-ddadd6557 add '6543210123456789' 1.000000001 -> '6543210123456790' Inexact Rounded
-ddadd6558 add '6543210123456789' 1.00001 -> '6543210123456790' Inexact Rounded
-ddadd6559 add '6543210123456789' 1.1 -> '6543210123456790' Inexact Rounded
-
-rounding: half_even
-ddadd6560 add '6543210123456789' 0 -> '6543210123456789'
-ddadd6561 add '6543210123456789' 0.000000001 -> '6543210123456789' Inexact Rounded
-ddadd6562 add '6543210123456789' 0.000001 -> '6543210123456789' Inexact Rounded
-ddadd6563 add '6543210123456789' 0.1 -> '6543210123456789' Inexact Rounded
-ddadd6564 add '6543210123456789' 0.4 -> '6543210123456789' Inexact Rounded
-ddadd6565 add '6543210123456789' 0.49 -> '6543210123456789' Inexact Rounded
-ddadd6566 add '6543210123456789' 0.499999 -> '6543210123456789' Inexact Rounded
-ddadd6567 add '6543210123456789' 0.499999999 -> '6543210123456789' Inexact Rounded
-ddadd6568 add '6543210123456789' 0.5 -> '6543210123456790' Inexact Rounded
-ddadd6569 add '6543210123456789' 0.500000001 -> '6543210123456790' Inexact Rounded
-ddadd6570 add '6543210123456789' 0.500001 -> '6543210123456790' Inexact Rounded
-ddadd6571 add '6543210123456789' 0.51 -> '6543210123456790' Inexact Rounded
-ddadd6572 add '6543210123456789' 0.6 -> '6543210123456790' Inexact Rounded
-ddadd6573 add '6543210123456789' 0.9 -> '6543210123456790' Inexact Rounded
-ddadd6574 add '6543210123456789' 0.99999 -> '6543210123456790' Inexact Rounded
-ddadd6575 add '6543210123456789' 0.999999999 -> '6543210123456790' Inexact Rounded
-ddadd6576 add '6543210123456789' 1 -> '6543210123456790'
-ddadd6577 add '6543210123456789' 1.00000001 -> '6543210123456790' Inexact Rounded
-ddadd6578 add '6543210123456789' 1.00001 -> '6543210123456790' Inexact Rounded
-ddadd6579 add '6543210123456789' 1.1 -> '6543210123456790' Inexact Rounded
-
--- critical few with even bottom digit...
-ddadd7540 add '6543210123456788' 0.499999999 -> '6543210123456788' Inexact Rounded
-ddadd7541 add '6543210123456788' 0.5 -> '6543210123456788' Inexact Rounded
-ddadd7542 add '6543210123456788' 0.500000001 -> '6543210123456789' Inexact Rounded
-
-rounding: down
-ddadd7550 add '6543210123456789' 0 -> '6543210123456789'
-ddadd7551 add '6543210123456789' 0.000000001 -> '6543210123456789' Inexact Rounded
-ddadd7552 add '6543210123456789' 0.000001 -> '6543210123456789' Inexact Rounded
-ddadd7553 add '6543210123456789' 0.1 -> '6543210123456789' Inexact Rounded
-ddadd7554 add '6543210123456789' 0.4 -> '6543210123456789' Inexact Rounded
-ddadd7555 add '6543210123456789' 0.49 -> '6543210123456789' Inexact Rounded
-ddadd7556 add '6543210123456789' 0.499999 -> '6543210123456789' Inexact Rounded
-ddadd7557 add '6543210123456789' 0.499999999 -> '6543210123456789' Inexact Rounded
-ddadd7558 add '6543210123456789' 0.5 -> '6543210123456789' Inexact Rounded
-ddadd7559 add '6543210123456789' 0.500000001 -> '6543210123456789' Inexact Rounded
-ddadd7560 add '6543210123456789' 0.500001 -> '6543210123456789' Inexact Rounded
-ddadd7561 add '6543210123456789' 0.51 -> '6543210123456789' Inexact Rounded
-ddadd7562 add '6543210123456789' 0.6 -> '6543210123456789' Inexact Rounded
-ddadd7563 add '6543210123456789' 0.9 -> '6543210123456789' Inexact Rounded
-ddadd7564 add '6543210123456789' 0.99999 -> '6543210123456789' Inexact Rounded
-ddadd7565 add '6543210123456789' 0.999999999 -> '6543210123456789' Inexact Rounded
-ddadd7566 add '6543210123456789' 1 -> '6543210123456790'
-ddadd7567 add '6543210123456789' 1.00000001 -> '6543210123456790' Inexact Rounded
-ddadd7568 add '6543210123456789' 1.00001 -> '6543210123456790' Inexact Rounded
-ddadd7569 add '6543210123456789' 1.1 -> '6543210123456790' Inexact Rounded
-
--- verify a query
-rounding: down
-ddadd7661 add 1e-398 9.000000000000000E+384 -> 9.000000000000000E+384 Inexact Rounded
-ddadd7662 add 0 9.000000000000000E+384 -> 9.000000000000000E+384 Rounded
-ddadd7663 add 1e-388 9.000000000000000E+374 -> 9.000000000000000E+374 Inexact Rounded
-ddadd7664 add 0 9.000000000000000E+374 -> 9.000000000000000E+374 Rounded
-
--- more zeros, etc.
-rounding: half_even
-
-ddadd7701 add 5.00 1.00E-3 -> 5.00100
-ddadd7702 add 00.00 0.000 -> 0.000
-ddadd7703 add 00.00 0E-3 -> 0.000
-ddadd7704 add 0E-3 00.00 -> 0.000
-
-ddadd7710 add 0E+3 00.00 -> 0.00
-ddadd7711 add 0E+3 00.0 -> 0.0
-ddadd7712 add 0E+3 00. -> 0
-ddadd7713 add 0E+3 00.E+1 -> 0E+1
-ddadd7714 add 0E+3 00.E+2 -> 0E+2
-ddadd7715 add 0E+3 00.E+3 -> 0E+3
-ddadd7716 add 0E+3 00.E+4 -> 0E+3
-ddadd7717 add 0E+3 00.E+5 -> 0E+3
-ddadd7718 add 0E+3 -00.0 -> 0.0
-ddadd7719 add 0E+3 -00. -> 0
-ddadd7731 add 0E+3 -00.E+1 -> 0E+1
-
-ddadd7720 add 00.00 0E+3 -> 0.00
-ddadd7721 add 00.0 0E+3 -> 0.0
-ddadd7722 add 00. 0E+3 -> 0
-ddadd7723 add 00.E+1 0E+3 -> 0E+1
-ddadd7724 add 00.E+2 0E+3 -> 0E+2
-ddadd7725 add 00.E+3 0E+3 -> 0E+3
-ddadd7726 add 00.E+4 0E+3 -> 0E+3
-ddadd7727 add 00.E+5 0E+3 -> 0E+3
-ddadd7728 add -00.00 0E+3 -> 0.00
-ddadd7729 add -00.0 0E+3 -> 0.0
-ddadd7730 add -00. 0E+3 -> 0
-
-ddadd7732 add 0 0 -> 0
-ddadd7733 add 0 -0 -> 0
-ddadd7734 add -0 0 -> 0
-ddadd7735 add -0 -0 -> -0 -- IEEE 854 special case
-
-ddadd7736 add 1 -1 -> 0
-ddadd7737 add -1 -1 -> -2
-ddadd7738 add 1 1 -> 2
-ddadd7739 add -1 1 -> 0
-
-ddadd7741 add 0 -1 -> -1
-ddadd7742 add -0 -1 -> -1
-ddadd7743 add 0 1 -> 1
-ddadd7744 add -0 1 -> 1
-ddadd7745 add -1 0 -> -1
-ddadd7746 add -1 -0 -> -1
-ddadd7747 add 1 0 -> 1
-ddadd7748 add 1 -0 -> 1
-
-ddadd7751 add 0.0 -1 -> -1.0
-ddadd7752 add -0.0 -1 -> -1.0
-ddadd7753 add 0.0 1 -> 1.0
-ddadd7754 add -0.0 1 -> 1.0
-ddadd7755 add -1.0 0 -> -1.0
-ddadd7756 add -1.0 -0 -> -1.0
-ddadd7757 add 1.0 0 -> 1.0
-ddadd7758 add 1.0 -0 -> 1.0
-
-ddadd7761 add 0 -1.0 -> -1.0
-ddadd7762 add -0 -1.0 -> -1.0
-ddadd7763 add 0 1.0 -> 1.0
-ddadd7764 add -0 1.0 -> 1.0
-ddadd7765 add -1 0.0 -> -1.0
-ddadd7766 add -1 -0.0 -> -1.0
-ddadd7767 add 1 0.0 -> 1.0
-ddadd7768 add 1 -0.0 -> 1.0
-
-ddadd7771 add 0.0 -1.0 -> -1.0
-ddadd7772 add -0.0 -1.0 -> -1.0
-ddadd7773 add 0.0 1.0 -> 1.0
-ddadd7774 add -0.0 1.0 -> 1.0
-ddadd7775 add -1.0 0.0 -> -1.0
-ddadd7776 add -1.0 -0.0 -> -1.0
-ddadd7777 add 1.0 0.0 -> 1.0
-ddadd7778 add 1.0 -0.0 -> 1.0
-
--- Specials
-ddadd7780 add -Inf -Inf -> -Infinity
-ddadd7781 add -Inf -1000 -> -Infinity
-ddadd7782 add -Inf -1 -> -Infinity
-ddadd7783 add -Inf -0 -> -Infinity
-ddadd7784 add -Inf 0 -> -Infinity
-ddadd7785 add -Inf 1 -> -Infinity
-ddadd7786 add -Inf 1000 -> -Infinity
-ddadd7787 add -1000 -Inf -> -Infinity
-ddadd7788 add -Inf -Inf -> -Infinity
-ddadd7789 add -1 -Inf -> -Infinity
-ddadd7790 add -0 -Inf -> -Infinity
-ddadd7791 add 0 -Inf -> -Infinity
-ddadd7792 add 1 -Inf -> -Infinity
-ddadd7793 add 1000 -Inf -> -Infinity
-ddadd7794 add Inf -Inf -> NaN Invalid_operation
-
-ddadd7800 add Inf -Inf -> NaN Invalid_operation
-ddadd7801 add Inf -1000 -> Infinity
-ddadd7802 add Inf -1 -> Infinity
-ddadd7803 add Inf -0 -> Infinity
-ddadd7804 add Inf 0 -> Infinity
-ddadd7805 add Inf 1 -> Infinity
-ddadd7806 add Inf 1000 -> Infinity
-ddadd7807 add Inf Inf -> Infinity
-ddadd7808 add -1000 Inf -> Infinity
-ddadd7809 add -Inf Inf -> NaN Invalid_operation
-ddadd7810 add -1 Inf -> Infinity
-ddadd7811 add -0 Inf -> Infinity
-ddadd7812 add 0 Inf -> Infinity
-ddadd7813 add 1 Inf -> Infinity
-ddadd7814 add 1000 Inf -> Infinity
-ddadd7815 add Inf Inf -> Infinity
-
-ddadd7821 add NaN -Inf -> NaN
-ddadd7822 add NaN -1000 -> NaN
-ddadd7823 add NaN -1 -> NaN
-ddadd7824 add NaN -0 -> NaN
-ddadd7825 add NaN 0 -> NaN
-ddadd7826 add NaN 1 -> NaN
-ddadd7827 add NaN 1000 -> NaN
-ddadd7828 add NaN Inf -> NaN
-ddadd7829 add NaN NaN -> NaN
-ddadd7830 add -Inf NaN -> NaN
-ddadd7831 add -1000 NaN -> NaN
-ddadd7832 add -1 NaN -> NaN
-ddadd7833 add -0 NaN -> NaN
-ddadd7834 add 0 NaN -> NaN
-ddadd7835 add 1 NaN -> NaN
-ddadd7836 add 1000 NaN -> NaN
-ddadd7837 add Inf NaN -> NaN
-
-ddadd7841 add sNaN -Inf -> NaN Invalid_operation
-ddadd7842 add sNaN -1000 -> NaN Invalid_operation
-ddadd7843 add sNaN -1 -> NaN Invalid_operation
-ddadd7844 add sNaN -0 -> NaN Invalid_operation
-ddadd7845 add sNaN 0 -> NaN Invalid_operation
-ddadd7846 add sNaN 1 -> NaN Invalid_operation
-ddadd7847 add sNaN 1000 -> NaN Invalid_operation
-ddadd7848 add sNaN NaN -> NaN Invalid_operation
-ddadd7849 add sNaN sNaN -> NaN Invalid_operation
-ddadd7850 add NaN sNaN -> NaN Invalid_operation
-ddadd7851 add -Inf sNaN -> NaN Invalid_operation
-ddadd7852 add -1000 sNaN -> NaN Invalid_operation
-ddadd7853 add -1 sNaN -> NaN Invalid_operation
-ddadd7854 add -0 sNaN -> NaN Invalid_operation
-ddadd7855 add 0 sNaN -> NaN Invalid_operation
-ddadd7856 add 1 sNaN -> NaN Invalid_operation
-ddadd7857 add 1000 sNaN -> NaN Invalid_operation
-ddadd7858 add Inf sNaN -> NaN Invalid_operation
-ddadd7859 add NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-ddadd7861 add NaN1 -Inf -> NaN1
-ddadd7862 add +NaN2 -1000 -> NaN2
-ddadd7863 add NaN3 1000 -> NaN3
-ddadd7864 add NaN4 Inf -> NaN4
-ddadd7865 add NaN5 +NaN6 -> NaN5
-ddadd7866 add -Inf NaN7 -> NaN7
-ddadd7867 add -1000 NaN8 -> NaN8
-ddadd7868 add 1000 NaN9 -> NaN9
-ddadd7869 add Inf +NaN10 -> NaN10
-ddadd7871 add sNaN11 -Inf -> NaN11 Invalid_operation
-ddadd7872 add sNaN12 -1000 -> NaN12 Invalid_operation
-ddadd7873 add sNaN13 1000 -> NaN13 Invalid_operation
-ddadd7874 add sNaN14 NaN17 -> NaN14 Invalid_operation
-ddadd7875 add sNaN15 sNaN18 -> NaN15 Invalid_operation
-ddadd7876 add NaN16 sNaN19 -> NaN19 Invalid_operation
-ddadd7877 add -Inf +sNaN20 -> NaN20 Invalid_operation
-ddadd7878 add -1000 sNaN21 -> NaN21 Invalid_operation
-ddadd7879 add 1000 sNaN22 -> NaN22 Invalid_operation
-ddadd7880 add Inf sNaN23 -> NaN23 Invalid_operation
-ddadd7881 add +NaN25 +sNaN24 -> NaN24 Invalid_operation
-ddadd7882 add -NaN26 NaN28 -> -NaN26
-ddadd7883 add -sNaN27 sNaN29 -> -NaN27 Invalid_operation
-ddadd7884 add 1000 -NaN30 -> -NaN30
-ddadd7885 add 1000 -sNaN31 -> -NaN31 Invalid_operation
-
--- Here we explore near the boundary of rounding a subnormal to Nmin
-ddadd7575 add 1E-383 -1E-398 -> 9.99999999999999E-384 Subnormal
-ddadd7576 add -1E-383 +1E-398 -> -9.99999999999999E-384 Subnormal
-
--- and another curious case
-ddadd7577 add 7.000000000000E-385 -1.00000E-391 -> 6.999999000000E-385 Subnormal
-
--- check overflow edge case
--- 1234567890123456
-ddadd7972 apply 9.999999999999999E+384 -> 9.999999999999999E+384
-ddadd7973 add 9.999999999999999E+384 1 -> 9.999999999999999E+384 Inexact Rounded
-ddadd7974 add 9999999999999999E+369 1 -> 9.999999999999999E+384 Inexact Rounded
-ddadd7975 add 9999999999999999E+369 1E+369 -> Infinity Overflow Inexact Rounded
-ddadd7976 add 9999999999999999E+369 9E+368 -> Infinity Overflow Inexact Rounded
-ddadd7977 add 9999999999999999E+369 8E+368 -> Infinity Overflow Inexact Rounded
-ddadd7978 add 9999999999999999E+369 7E+368 -> Infinity Overflow Inexact Rounded
-ddadd7979 add 9999999999999999E+369 6E+368 -> Infinity Overflow Inexact Rounded
-ddadd7980 add 9999999999999999E+369 5E+368 -> Infinity Overflow Inexact Rounded
-ddadd7981 add 9999999999999999E+369 4E+368 -> 9.999999999999999E+384 Inexact Rounded
-ddadd7982 add 9999999999999999E+369 3E+368 -> 9.999999999999999E+384 Inexact Rounded
-ddadd7983 add 9999999999999999E+369 2E+368 -> 9.999999999999999E+384 Inexact Rounded
-ddadd7984 add 9999999999999999E+369 1E+368 -> 9.999999999999999E+384 Inexact Rounded
-
-ddadd7985 apply -9.999999999999999E+384 -> -9.999999999999999E+384
-ddadd7986 add -9.999999999999999E+384 -1 -> -9.999999999999999E+384 Inexact Rounded
-ddadd7987 add -9999999999999999E+369 -1 -> -9.999999999999999E+384 Inexact Rounded
-ddadd7988 add -9999999999999999E+369 -1E+369 -> -Infinity Overflow Inexact Rounded
-ddadd7989 add -9999999999999999E+369 -9E+368 -> -Infinity Overflow Inexact Rounded
-ddadd7990 add -9999999999999999E+369 -8E+368 -> -Infinity Overflow Inexact Rounded
-ddadd7991 add -9999999999999999E+369 -7E+368 -> -Infinity Overflow Inexact Rounded
-ddadd7992 add -9999999999999999E+369 -6E+368 -> -Infinity Overflow Inexact Rounded
-ddadd7993 add -9999999999999999E+369 -5E+368 -> -Infinity Overflow Inexact Rounded
-ddadd7994 add -9999999999999999E+369 -4E+368 -> -9.999999999999999E+384 Inexact Rounded
-ddadd7995 add -9999999999999999E+369 -3E+368 -> -9.999999999999999E+384 Inexact Rounded
-ddadd7996 add -9999999999999999E+369 -2E+368 -> -9.999999999999999E+384 Inexact Rounded
-ddadd7997 add -9999999999999999E+369 -1E+368 -> -9.999999999999999E+384 Inexact Rounded
-
--- And for round down full and subnormal results
-rounding: down
-ddadd71100 add 1e+2 -1e-383 -> 99.99999999999999 Rounded Inexact
-ddadd71101 add 1e+1 -1e-383 -> 9.999999999999999 Rounded Inexact
-ddadd71103 add +1 -1e-383 -> 0.9999999999999999 Rounded Inexact
-ddadd71104 add 1e-1 -1e-383 -> 0.09999999999999999 Rounded Inexact
-ddadd71105 add 1e-2 -1e-383 -> 0.009999999999999999 Rounded Inexact
-ddadd71106 add 1e-3 -1e-383 -> 0.0009999999999999999 Rounded Inexact
-ddadd71107 add 1e-4 -1e-383 -> 0.00009999999999999999 Rounded Inexact
-ddadd71108 add 1e-5 -1e-383 -> 0.000009999999999999999 Rounded Inexact
-ddadd71109 add 1e-6 -1e-383 -> 9.999999999999999E-7 Rounded Inexact
-
-rounding: ceiling
-ddadd71110 add -1e+2 +1e-383 -> -99.99999999999999 Rounded Inexact
-ddadd71111 add -1e+1 +1e-383 -> -9.999999999999999 Rounded Inexact
-ddadd71113 add -1 +1e-383 -> -0.9999999999999999 Rounded Inexact
-ddadd71114 add -1e-1 +1e-383 -> -0.09999999999999999 Rounded Inexact
-ddadd71115 add -1e-2 +1e-383 -> -0.009999999999999999 Rounded Inexact
-ddadd71116 add -1e-3 +1e-383 -> -0.0009999999999999999 Rounded Inexact
-ddadd71117 add -1e-4 +1e-383 -> -0.00009999999999999999 Rounded Inexact
-ddadd71118 add -1e-5 +1e-383 -> -0.000009999999999999999 Rounded Inexact
-ddadd71119 add -1e-6 +1e-383 -> -9.999999999999999E-7 Rounded Inexact
-
--- tests based on Gunnar Degnbol's edge case
-rounding: half_even
-
-ddadd71300 add 1E16 -0.5 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71310 add 1E16 -0.51 -> 9999999999999999 Inexact Rounded
-ddadd71311 add 1E16 -0.501 -> 9999999999999999 Inexact Rounded
-ddadd71312 add 1E16 -0.5001 -> 9999999999999999 Inexact Rounded
-ddadd71313 add 1E16 -0.50001 -> 9999999999999999 Inexact Rounded
-ddadd71314 add 1E16 -0.500001 -> 9999999999999999 Inexact Rounded
-ddadd71315 add 1E16 -0.5000001 -> 9999999999999999 Inexact Rounded
-ddadd71316 add 1E16 -0.50000001 -> 9999999999999999 Inexact Rounded
-ddadd71317 add 1E16 -0.500000001 -> 9999999999999999 Inexact Rounded
-ddadd71318 add 1E16 -0.5000000001 -> 9999999999999999 Inexact Rounded
-ddadd71319 add 1E16 -0.50000000001 -> 9999999999999999 Inexact Rounded
-ddadd71320 add 1E16 -0.500000000001 -> 9999999999999999 Inexact Rounded
-ddadd71321 add 1E16 -0.5000000000001 -> 9999999999999999 Inexact Rounded
-ddadd71322 add 1E16 -0.50000000000001 -> 9999999999999999 Inexact Rounded
-ddadd71323 add 1E16 -0.500000000000001 -> 9999999999999999 Inexact Rounded
-ddadd71324 add 1E16 -0.5000000000000001 -> 9999999999999999 Inexact Rounded
-ddadd71325 add 1E16 -0.5000000000000000 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71326 add 1E16 -0.500000000000000 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71327 add 1E16 -0.50000000000000 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71328 add 1E16 -0.5000000000000 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71329 add 1E16 -0.500000000000 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71330 add 1E16 -0.50000000000 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71331 add 1E16 -0.5000000000 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71332 add 1E16 -0.500000000 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71333 add 1E16 -0.50000000 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71334 add 1E16 -0.5000000 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71335 add 1E16 -0.500000 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71336 add 1E16 -0.50000 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71337 add 1E16 -0.5000 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71338 add 1E16 -0.500 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71339 add 1E16 -0.50 -> 1.000000000000000E+16 Inexact Rounded
-
-ddadd71340 add 1E16 -5000000.000010001 -> 9999999995000000 Inexact Rounded
-ddadd71341 add 1E16 -5000000.000000001 -> 9999999995000000 Inexact Rounded
-
-ddadd71349 add 9999999999999999 0.4 -> 9999999999999999 Inexact Rounded
-ddadd71350 add 9999999999999999 0.49 -> 9999999999999999 Inexact Rounded
-ddadd71351 add 9999999999999999 0.499 -> 9999999999999999 Inexact Rounded
-ddadd71352 add 9999999999999999 0.4999 -> 9999999999999999 Inexact Rounded
-ddadd71353 add 9999999999999999 0.49999 -> 9999999999999999 Inexact Rounded
-ddadd71354 add 9999999999999999 0.499999 -> 9999999999999999 Inexact Rounded
-ddadd71355 add 9999999999999999 0.4999999 -> 9999999999999999 Inexact Rounded
-ddadd71356 add 9999999999999999 0.49999999 -> 9999999999999999 Inexact Rounded
-ddadd71357 add 9999999999999999 0.499999999 -> 9999999999999999 Inexact Rounded
-ddadd71358 add 9999999999999999 0.4999999999 -> 9999999999999999 Inexact Rounded
-ddadd71359 add 9999999999999999 0.49999999999 -> 9999999999999999 Inexact Rounded
-ddadd71360 add 9999999999999999 0.499999999999 -> 9999999999999999 Inexact Rounded
-ddadd71361 add 9999999999999999 0.4999999999999 -> 9999999999999999 Inexact Rounded
-ddadd71362 add 9999999999999999 0.49999999999999 -> 9999999999999999 Inexact Rounded
-ddadd71363 add 9999999999999999 0.499999999999999 -> 9999999999999999 Inexact Rounded
-ddadd71364 add 9999999999999999 0.4999999999999999 -> 9999999999999999 Inexact Rounded
-ddadd71365 add 9999999999999999 0.5000000000000000 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71367 add 9999999999999999 0.500000000000000 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71368 add 9999999999999999 0.50000000000000 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71369 add 9999999999999999 0.5000000000000 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71370 add 9999999999999999 0.500000000000 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71371 add 9999999999999999 0.50000000000 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71372 add 9999999999999999 0.5000000000 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71373 add 9999999999999999 0.500000000 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71374 add 9999999999999999 0.50000000 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71375 add 9999999999999999 0.5000000 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71376 add 9999999999999999 0.500000 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71377 add 9999999999999999 0.50000 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71378 add 9999999999999999 0.5000 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71379 add 9999999999999999 0.500 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71380 add 9999999999999999 0.50 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71381 add 9999999999999999 0.5 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71382 add 9999999999999999 0.5000000000000001 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71383 add 9999999999999999 0.500000000000001 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71384 add 9999999999999999 0.50000000000001 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71385 add 9999999999999999 0.5000000000001 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71386 add 9999999999999999 0.500000000001 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71387 add 9999999999999999 0.50000000001 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71388 add 9999999999999999 0.5000000001 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71389 add 9999999999999999 0.500000001 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71390 add 9999999999999999 0.50000001 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71391 add 9999999999999999 0.5000001 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71392 add 9999999999999999 0.500001 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71393 add 9999999999999999 0.50001 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71394 add 9999999999999999 0.5001 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71395 add 9999999999999999 0.501 -> 1.000000000000000E+16 Inexact Rounded
-ddadd71396 add 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
-ddadd71420 add 0 1.123456789012345 -> 1.123456789012345
-ddadd71421 add 0 1.123456789012345E-1 -> 0.1123456789012345
-ddadd71422 add 0 1.123456789012345E-2 -> 0.01123456789012345
-ddadd71423 add 0 1.123456789012345E-3 -> 0.001123456789012345
-ddadd71424 add 0 1.123456789012345E-4 -> 0.0001123456789012345
-ddadd71425 add 0 1.123456789012345E-5 -> 0.00001123456789012345
-ddadd71426 add 0 1.123456789012345E-6 -> 0.000001123456789012345
-ddadd71427 add 0 1.123456789012345E-7 -> 1.123456789012345E-7
-ddadd71428 add 0 1.123456789012345E-8 -> 1.123456789012345E-8
-ddadd71429 add 0 1.123456789012345E-9 -> 1.123456789012345E-9
-ddadd71430 add 0 1.123456789012345E-10 -> 1.123456789012345E-10
-ddadd71431 add 0 1.123456789012345E-11 -> 1.123456789012345E-11
-ddadd71432 add 0 1.123456789012345E-12 -> 1.123456789012345E-12
-ddadd71433 add 0 1.123456789012345E-13 -> 1.123456789012345E-13
-ddadd71434 add 0 1.123456789012345E-14 -> 1.123456789012345E-14
-ddadd71435 add 0 1.123456789012345E-15 -> 1.123456789012345E-15
-ddadd71436 add 0 1.123456789012345E-16 -> 1.123456789012345E-16
-ddadd71437 add 0 1.123456789012345E-17 -> 1.123456789012345E-17
-ddadd71438 add 0 1.123456789012345E-18 -> 1.123456789012345E-18
-ddadd71439 add 0 1.123456789012345E-19 -> 1.123456789012345E-19
-
--- same, reversed 0
-ddadd71440 add 1.123456789012345 0 -> 1.123456789012345
-ddadd71441 add 1.123456789012345E-1 0 -> 0.1123456789012345
-ddadd71442 add 1.123456789012345E-2 0 -> 0.01123456789012345
-ddadd71443 add 1.123456789012345E-3 0 -> 0.001123456789012345
-ddadd71444 add 1.123456789012345E-4 0 -> 0.0001123456789012345
-ddadd71445 add 1.123456789012345E-5 0 -> 0.00001123456789012345
-ddadd71446 add 1.123456789012345E-6 0 -> 0.000001123456789012345
-ddadd71447 add 1.123456789012345E-7 0 -> 1.123456789012345E-7
-ddadd71448 add 1.123456789012345E-8 0 -> 1.123456789012345E-8
-ddadd71449 add 1.123456789012345E-9 0 -> 1.123456789012345E-9
-ddadd71450 add 1.123456789012345E-10 0 -> 1.123456789012345E-10
-ddadd71451 add 1.123456789012345E-11 0 -> 1.123456789012345E-11
-ddadd71452 add 1.123456789012345E-12 0 -> 1.123456789012345E-12
-ddadd71453 add 1.123456789012345E-13 0 -> 1.123456789012345E-13
-ddadd71454 add 1.123456789012345E-14 0 -> 1.123456789012345E-14
-ddadd71455 add 1.123456789012345E-15 0 -> 1.123456789012345E-15
-ddadd71456 add 1.123456789012345E-16 0 -> 1.123456789012345E-16
-ddadd71457 add 1.123456789012345E-17 0 -> 1.123456789012345E-17
-ddadd71458 add 1.123456789012345E-18 0 -> 1.123456789012345E-18
-ddadd71459 add 1.123456789012345E-19 0 -> 1.123456789012345E-19
-
--- same, Es on the 0
-ddadd71460 add 1.123456789012345 0E-0 -> 1.123456789012345
-ddadd71461 add 1.123456789012345 0E-1 -> 1.123456789012345
-ddadd71462 add 1.123456789012345 0E-2 -> 1.123456789012345
-ddadd71463 add 1.123456789012345 0E-3 -> 1.123456789012345
-ddadd71464 add 1.123456789012345 0E-4 -> 1.123456789012345
-ddadd71465 add 1.123456789012345 0E-5 -> 1.123456789012345
-ddadd71466 add 1.123456789012345 0E-6 -> 1.123456789012345
-ddadd71467 add 1.123456789012345 0E-7 -> 1.123456789012345
-ddadd71468 add 1.123456789012345 0E-8 -> 1.123456789012345
-ddadd71469 add 1.123456789012345 0E-9 -> 1.123456789012345
-ddadd71470 add 1.123456789012345 0E-10 -> 1.123456789012345
-ddadd71471 add 1.123456789012345 0E-11 -> 1.123456789012345
-ddadd71472 add 1.123456789012345 0E-12 -> 1.123456789012345
-ddadd71473 add 1.123456789012345 0E-13 -> 1.123456789012345
-ddadd71474 add 1.123456789012345 0E-14 -> 1.123456789012345
-ddadd71475 add 1.123456789012345 0E-15 -> 1.123456789012345
--- next four flag Rounded because the 0 extends the result
-ddadd71476 add 1.123456789012345 0E-16 -> 1.123456789012345 Rounded
-ddadd71477 add 1.123456789012345 0E-17 -> 1.123456789012345 Rounded
-ddadd71478 add 1.123456789012345 0E-18 -> 1.123456789012345 Rounded
-ddadd71479 add 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
-ddadd71500 add 0 0E-19 -> 0E-19
-ddadd71501 add -0 0E-19 -> 0E-19
-ddadd71502 add 0 -0E-19 -> 0E-19
-ddadd71503 add -0 -0E-19 -> -0E-19
--- exact zeros from non-zeros
-ddadd71511 add -11 11 -> 0
-ddadd71512 add 11 -11 -> 0
-
-rounding: half_down
--- exact zeros from zeros
-ddadd71520 add 0 0E-19 -> 0E-19
-ddadd71521 add -0 0E-19 -> 0E-19
-ddadd71522 add 0 -0E-19 -> 0E-19
-ddadd71523 add -0 -0E-19 -> -0E-19
--- exact zeros from non-zeros
-ddadd71531 add -11 11 -> 0
-ddadd71532 add 11 -11 -> 0
-
-rounding: half_even
--- exact zeros from zeros
-ddadd71540 add 0 0E-19 -> 0E-19
-ddadd71541 add -0 0E-19 -> 0E-19
-ddadd71542 add 0 -0E-19 -> 0E-19
-ddadd71543 add -0 -0E-19 -> -0E-19
--- exact zeros from non-zeros
-ddadd71551 add -11 11 -> 0
-ddadd71552 add 11 -11 -> 0
-
-rounding: up
--- exact zeros from zeros
-ddadd71560 add 0 0E-19 -> 0E-19
-ddadd71561 add -0 0E-19 -> 0E-19
-ddadd71562 add 0 -0E-19 -> 0E-19
-ddadd71563 add -0 -0E-19 -> -0E-19
--- exact zeros from non-zeros
-ddadd71571 add -11 11 -> 0
-ddadd71572 add 11 -11 -> 0
-
-rounding: down
--- exact zeros from zeros
-ddadd71580 add 0 0E-19 -> 0E-19
-ddadd71581 add -0 0E-19 -> 0E-19
-ddadd71582 add 0 -0E-19 -> 0E-19
-ddadd71583 add -0 -0E-19 -> -0E-19
--- exact zeros from non-zeros
-ddadd71591 add -11 11 -> 0
-ddadd71592 add 11 -11 -> 0
-
-rounding: ceiling
--- exact zeros from zeros
-ddadd71600 add 0 0E-19 -> 0E-19
-ddadd71601 add -0 0E-19 -> 0E-19
-ddadd71602 add 0 -0E-19 -> 0E-19
-ddadd71603 add -0 -0E-19 -> -0E-19
--- exact zeros from non-zeros
-ddadd71611 add -11 11 -> 0
-ddadd71612 add 11 -11 -> 0
-
--- and the extra-special ugly case; unusual minuses marked by -- *
-rounding: floor
--- exact zeros from zeros
-ddadd71620 add 0 0E-19 -> 0E-19
-ddadd71621 add -0 0E-19 -> -0E-19 -- *
-ddadd71622 add 0 -0E-19 -> -0E-19 -- *
-ddadd71623 add -0 -0E-19 -> -0E-19
--- exact zeros from non-zeros
-ddadd71631 add -11 11 -> -0 -- *
-ddadd71632 add 11 -11 -> -0 -- *
-
--- Examples from SQL proposal (Krishna Kulkarni)
-ddadd71701 add 130E-2 120E-2 -> 2.50
-ddadd71702 add 130E-2 12E-1 -> 2.50
-ddadd71703 add 130E-2 1E0 -> 2.30
-ddadd71704 add 1E2 1E4 -> 1.01E+4
-ddadd71705 add 130E-2 -120E-2 -> 0.10
-ddadd71706 add 130E-2 -12E-1 -> 0.10
-ddadd71707 add 130E-2 -1E0 -> 0.30
-ddadd71708 add 1E2 -1E4 -> -9.9E+3
-
--- query from Vincent Kulandaisamy
-rounding: ceiling
-ddadd71801 add 7.8822773805862E+277 -5.1757503820663E-21 -> 7.882277380586200E+277 Inexact Rounded
-ddadd71802 add 7.882277380586200E+277 12.341 -> 7.882277380586201E+277 Inexact Rounded
-ddadd71803 add 7.882277380586201E+277 2.7270545046613E-31 -> 7.882277380586202E+277 Inexact Rounded
-
-ddadd71811 add 12.341 -5.1757503820663E-21 -> 12.34100000000000 Inexact Rounded
-ddadd71812 add 12.34100000000000 2.7270545046613E-31 -> 12.34100000000001 Inexact Rounded
-ddadd71813 add 12.34100000000001 7.8822773805862E+277 -> 7.882277380586201E+277 Inexact Rounded
-
--- Gappy coefficients; check residue handling even with full coefficient gap
-rounding: half_even
-
-ddadd75001 add 1234567890123456 1 -> 1234567890123457
-ddadd75002 add 1234567890123456 0.6 -> 1234567890123457 Inexact Rounded
-ddadd75003 add 1234567890123456 0.06 -> 1234567890123456 Inexact Rounded
-ddadd75004 add 1234567890123456 6E-3 -> 1234567890123456 Inexact Rounded
-ddadd75005 add 1234567890123456 6E-4 -> 1234567890123456 Inexact Rounded
-ddadd75006 add 1234567890123456 6E-5 -> 1234567890123456 Inexact Rounded
-ddadd75007 add 1234567890123456 6E-6 -> 1234567890123456 Inexact Rounded
-ddadd75008 add 1234567890123456 6E-7 -> 1234567890123456 Inexact Rounded
-ddadd75009 add 1234567890123456 6E-8 -> 1234567890123456 Inexact Rounded
-ddadd75010 add 1234567890123456 6E-9 -> 1234567890123456 Inexact Rounded
-ddadd75011 add 1234567890123456 6E-10 -> 1234567890123456 Inexact Rounded
-ddadd75012 add 1234567890123456 6E-11 -> 1234567890123456 Inexact Rounded
-ddadd75013 add 1234567890123456 6E-12 -> 1234567890123456 Inexact Rounded
-ddadd75014 add 1234567890123456 6E-13 -> 1234567890123456 Inexact Rounded
-ddadd75015 add 1234567890123456 6E-14 -> 1234567890123456 Inexact Rounded
-ddadd75016 add 1234567890123456 6E-15 -> 1234567890123456 Inexact Rounded
-ddadd75017 add 1234567890123456 6E-16 -> 1234567890123456 Inexact Rounded
-ddadd75018 add 1234567890123456 6E-17 -> 1234567890123456 Inexact Rounded
-ddadd75019 add 1234567890123456 6E-18 -> 1234567890123456 Inexact Rounded
-ddadd75020 add 1234567890123456 6E-19 -> 1234567890123456 Inexact Rounded
-ddadd75021 add 1234567890123456 6E-20 -> 1234567890123456 Inexact Rounded
-
--- widening second argument at gap
-ddadd75030 add 12345678 1 -> 12345679
-ddadd75031 add 12345678 0.1 -> 12345678.1
-ddadd75032 add 12345678 0.12 -> 12345678.12
-ddadd75033 add 12345678 0.123 -> 12345678.123
-ddadd75034 add 12345678 0.1234 -> 12345678.1234
-ddadd75035 add 12345678 0.12345 -> 12345678.12345
-ddadd75036 add 12345678 0.123456 -> 12345678.123456
-ddadd75037 add 12345678 0.1234567 -> 12345678.1234567
-ddadd75038 add 12345678 0.12345678 -> 12345678.12345678
-ddadd75039 add 12345678 0.123456789 -> 12345678.12345679 Inexact Rounded
-ddadd75040 add 12345678 0.123456785 -> 12345678.12345678 Inexact Rounded
-ddadd75041 add 12345678 0.1234567850 -> 12345678.12345678 Inexact Rounded
-ddadd75042 add 12345678 0.1234567851 -> 12345678.12345679 Inexact Rounded
-ddadd75043 add 12345678 0.12345678501 -> 12345678.12345679 Inexact Rounded
-ddadd75044 add 12345678 0.123456785001 -> 12345678.12345679 Inexact Rounded
-ddadd75045 add 12345678 0.1234567850001 -> 12345678.12345679 Inexact Rounded
-ddadd75046 add 12345678 0.12345678500001 -> 12345678.12345679 Inexact Rounded
-ddadd75047 add 12345678 0.123456785000001 -> 12345678.12345679 Inexact Rounded
-ddadd75048 add 12345678 0.1234567850000001 -> 12345678.12345679 Inexact Rounded
-ddadd75049 add 12345678 0.1234567850000000 -> 12345678.12345678 Inexact Rounded
--- 90123456
-rounding: half_even
-ddadd75050 add 12345678 0.0234567750000000 -> 12345678.02345678 Inexact Rounded
-ddadd75051 add 12345678 0.0034567750000000 -> 12345678.00345678 Inexact Rounded
-ddadd75052 add 12345678 0.0004567750000000 -> 12345678.00045678 Inexact Rounded
-ddadd75053 add 12345678 0.0000567750000000 -> 12345678.00005678 Inexact Rounded
-ddadd75054 add 12345678 0.0000067750000000 -> 12345678.00000678 Inexact Rounded
-ddadd75055 add 12345678 0.0000007750000000 -> 12345678.00000078 Inexact Rounded
-ddadd75056 add 12345678 0.0000000750000000 -> 12345678.00000008 Inexact Rounded
-ddadd75057 add 12345678 0.0000000050000000 -> 12345678.00000000 Inexact Rounded
-ddadd75060 add 12345678 0.0234567750000001 -> 12345678.02345678 Inexact Rounded
-ddadd75061 add 12345678 0.0034567750000001 -> 12345678.00345678 Inexact Rounded
-ddadd75062 add 12345678 0.0004567750000001 -> 12345678.00045678 Inexact Rounded
-ddadd75063 add 12345678 0.0000567750000001 -> 12345678.00005678 Inexact Rounded
-ddadd75064 add 12345678 0.0000067750000001 -> 12345678.00000678 Inexact Rounded
-ddadd75065 add 12345678 0.0000007750000001 -> 12345678.00000078 Inexact Rounded
-ddadd75066 add 12345678 0.0000000750000001 -> 12345678.00000008 Inexact Rounded
-ddadd75067 add 12345678 0.0000000050000001 -> 12345678.00000001 Inexact Rounded
--- far-out residues (full coefficient gap is 16+15 digits)
-rounding: up
-ddadd75070 add 12345678 1E-8 -> 12345678.00000001
-ddadd75071 add 12345678 1E-9 -> 12345678.00000001 Inexact Rounded
-ddadd75072 add 12345678 1E-10 -> 12345678.00000001 Inexact Rounded
-ddadd75073 add 12345678 1E-11 -> 12345678.00000001 Inexact Rounded
-ddadd75074 add 12345678 1E-12 -> 12345678.00000001 Inexact Rounded
-ddadd75075 add 12345678 1E-13 -> 12345678.00000001 Inexact Rounded
-ddadd75076 add 12345678 1E-14 -> 12345678.00000001 Inexact Rounded
-ddadd75077 add 12345678 1E-15 -> 12345678.00000001 Inexact Rounded
-ddadd75078 add 12345678 1E-16 -> 12345678.00000001 Inexact Rounded
-ddadd75079 add 12345678 1E-17 -> 12345678.00000001 Inexact Rounded
-ddadd75080 add 12345678 1E-18 -> 12345678.00000001 Inexact Rounded
-ddadd75081 add 12345678 1E-19 -> 12345678.00000001 Inexact Rounded
-ddadd75082 add 12345678 1E-20 -> 12345678.00000001 Inexact Rounded
-ddadd75083 add 12345678 1E-25 -> 12345678.00000001 Inexact Rounded
-ddadd75084 add 12345678 1E-30 -> 12345678.00000001 Inexact Rounded
-ddadd75085 add 12345678 1E-31 -> 12345678.00000001 Inexact Rounded
-ddadd75086 add 12345678 1E-32 -> 12345678.00000001 Inexact Rounded
-ddadd75087 add 12345678 1E-33 -> 12345678.00000001 Inexact Rounded
-ddadd75088 add 12345678 1E-34 -> 12345678.00000001 Inexact Rounded
-ddadd75089 add 12345678 1E-35 -> 12345678.00000001 Inexact Rounded
-
--- Punit's
-ddadd75100 add 1.000 -200.000 -> -199.000
-
--- Rounding swathe
-rounding: half_even
-ddadd81100 add .2300 12345678901234.00 -> 12345678901234.23 Rounded
-ddadd81101 add .2301 12345678901234.00 -> 12345678901234.23 Inexact Rounded
-ddadd81102 add .2310 12345678901234.00 -> 12345678901234.23 Inexact Rounded
-ddadd81103 add .2350 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd81104 add .2351 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd81105 add .2450 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd81106 add .2451 12345678901234.00 -> 12345678901234.25 Inexact Rounded
-ddadd81107 add .2360 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd81108 add .2370 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd81109 add .2399 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd81120 add 9999999999999999E+369 9E+369 -> Infinity Overflow Inexact Rounded
-ddadd81121 add -9999999999999999E+369 -9E+369 -> -Infinity Overflow Inexact Rounded
-
-rounding: half_up
-ddadd81200 add .2300 12345678901234.00 -> 12345678901234.23 Rounded
-ddadd81201 add .2301 12345678901234.00 -> 12345678901234.23 Inexact Rounded
-ddadd81202 add .2310 12345678901234.00 -> 12345678901234.23 Inexact Rounded
-ddadd81203 add .2350 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd81204 add .2351 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd81205 add .2450 12345678901234.00 -> 12345678901234.25 Inexact Rounded
-ddadd81206 add .2451 12345678901234.00 -> 12345678901234.25 Inexact Rounded
-ddadd81207 add .2360 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd81208 add .2370 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd81209 add .2399 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd81220 add 9999999999999999E+369 9E+369 -> Infinity Overflow Inexact Rounded
-ddadd81221 add -9999999999999999E+369 -9E+369 -> -Infinity Overflow Inexact Rounded
-
-rounding: half_down
-ddadd81300 add .2300 12345678901234.00 -> 12345678901234.23 Rounded
-ddadd81301 add .2301 12345678901234.00 -> 12345678901234.23 Inexact Rounded
-ddadd81302 add .2310 12345678901234.00 -> 12345678901234.23 Inexact Rounded
-ddadd81303 add .2350 12345678901234.00 -> 12345678901234.23 Inexact Rounded
-ddadd81304 add .2351 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd81305 add .2450 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd81306 add .2451 12345678901234.00 -> 12345678901234.25 Inexact Rounded
-ddadd81307 add .2360 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd81308 add .2370 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd81309 add .2399 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd81320 add 9999999999999999E+369 9E+369 -> Infinity Overflow Inexact Rounded
-ddadd81321 add -9999999999999999E+369 -9E+369 -> -Infinity Overflow Inexact Rounded
-
-rounding: up
-ddadd81400 add .2300 12345678901234.00 -> 12345678901234.23 Rounded
-ddadd81401 add .2301 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd81402 add .2310 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd81403 add .2350 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd81404 add .2351 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd81405 add .2450 12345678901234.00 -> 12345678901234.25 Inexact Rounded
-ddadd81406 add .2451 12345678901234.00 -> 12345678901234.25 Inexact Rounded
-ddadd81407 add .2360 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd81408 add .2370 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd81409 add .2399 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd81411 add -.2399 -12345678901234.00 -> -12345678901234.24 Inexact Rounded
-ddadd81420 add 9999999999999999E+369 9E+369 -> Infinity Overflow Inexact Rounded
-ddadd81421 add -9999999999999999E+369 -9E+369 -> -Infinity Overflow Inexact Rounded
-
-rounding: down
-ddadd81500 add .2300 12345678901234.00 -> 12345678901234.23 Rounded
-ddadd81501 add .2301 12345678901234.00 -> 12345678901234.23 Inexact Rounded
-ddadd81502 add .2310 12345678901234.00 -> 12345678901234.23 Inexact Rounded
-ddadd81503 add .2350 12345678901234.00 -> 12345678901234.23 Inexact Rounded
-ddadd81504 add .2351 12345678901234.00 -> 12345678901234.23 Inexact Rounded
-ddadd81505 add .2450 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd81506 add .2451 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd81507 add .2360 12345678901234.00 -> 12345678901234.23 Inexact Rounded
-ddadd81508 add .2370 12345678901234.00 -> 12345678901234.23 Inexact Rounded
-ddadd81509 add .2399 12345678901234.00 -> 12345678901234.23 Inexact Rounded
-ddadd81511 add -.2399 -12345678901234.00 -> -12345678901234.23 Inexact Rounded
-ddadd81520 add 9999999999999999E+369 9E+369 -> 9.999999999999999E+384 Overflow Inexact Rounded
-ddadd81521 add -9999999999999999E+369 -9E+369 -> -9.999999999999999E+384 Overflow Inexact Rounded
-
-rounding: ceiling
-ddadd81600 add .2300 12345678901234.00 -> 12345678901234.23 Rounded
-ddadd81601 add .2301 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd81602 add .2310 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd81603 add .2350 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd81604 add .2351 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd81605 add .2450 12345678901234.00 -> 12345678901234.25 Inexact Rounded
-ddadd81606 add .2451 12345678901234.00 -> 12345678901234.25 Inexact Rounded
-ddadd81607 add .2360 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd81608 add .2370 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd81609 add .2399 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd81611 add -.2399 -12345678901234.00 -> -12345678901234.23 Inexact Rounded
-ddadd81620 add 9999999999999999E+369 9E+369 -> Infinity Overflow Inexact Rounded
-ddadd81621 add -9999999999999999E+369 -9E+369 -> -9.999999999999999E+384 Overflow Inexact Rounded
-
-rounding: floor
-ddadd81700 add .2300 12345678901234.00 -> 12345678901234.23 Rounded
-ddadd81701 add .2301 12345678901234.00 -> 12345678901234.23 Inexact Rounded
-ddadd81702 add .2310 12345678901234.00 -> 12345678901234.23 Inexact Rounded
-ddadd81703 add .2350 12345678901234.00 -> 12345678901234.23 Inexact Rounded
-ddadd81704 add .2351 12345678901234.00 -> 12345678901234.23 Inexact Rounded
-ddadd81705 add .2450 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd81706 add .2451 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd81707 add .2360 12345678901234.00 -> 12345678901234.23 Inexact Rounded
-ddadd81708 add .2370 12345678901234.00 -> 12345678901234.23 Inexact Rounded
-ddadd81709 add .2399 12345678901234.00 -> 12345678901234.23 Inexact Rounded
-ddadd81711 add -.2399 -12345678901234.00 -> -12345678901234.24 Inexact Rounded
-ddadd81720 add 9999999999999999E+369 9E+369 -> 9.999999999999999E+384 Overflow Inexact Rounded
-ddadd81721 add -9999999999999999E+369 -9E+369 -> -Infinity Overflow Inexact Rounded
-
-rounding: 05up
-ddadd81800 add .2000 12345678901234.00 -> 12345678901234.20 Rounded
-ddadd81801 add .2001 12345678901234.00 -> 12345678901234.21 Inexact Rounded
-ddadd81802 add .2010 12345678901234.00 -> 12345678901234.21 Inexact Rounded
-ddadd81803 add .2050 12345678901234.00 -> 12345678901234.21 Inexact Rounded
-ddadd81804 add .2051 12345678901234.00 -> 12345678901234.21 Inexact Rounded
-ddadd81807 add .2060 12345678901234.00 -> 12345678901234.21 Inexact Rounded
-ddadd81808 add .2070 12345678901234.00 -> 12345678901234.21 Inexact Rounded
-ddadd81809 add .2099 12345678901234.00 -> 12345678901234.21 Inexact Rounded
-ddadd81811 add -.2099 -12345678901234.00 -> -12345678901234.21 Inexact Rounded
-ddadd81820 add 9999999999999999E+369 9E+369 -> 9.999999999999999E+384 Overflow Inexact Rounded
-ddadd81821 add -9999999999999999E+369 -9E+369 -> -9.999999999999999E+384 Overflow Inexact Rounded
-
-ddadd81900 add .2100 12345678901234.00 -> 12345678901234.21 Rounded
-ddadd81901 add .2101 12345678901234.00 -> 12345678901234.21 Inexact Rounded
-ddadd81902 add .2110 12345678901234.00 -> 12345678901234.21 Inexact Rounded
-ddadd81903 add .2150 12345678901234.00 -> 12345678901234.21 Inexact Rounded
-ddadd81904 add .2151 12345678901234.00 -> 12345678901234.21 Inexact Rounded
-ddadd81907 add .2160 12345678901234.00 -> 12345678901234.21 Inexact Rounded
-ddadd81908 add .2170 12345678901234.00 -> 12345678901234.21 Inexact Rounded
-ddadd81909 add .2199 12345678901234.00 -> 12345678901234.21 Inexact Rounded
-ddadd81911 add -.2199 -12345678901234.00 -> -12345678901234.21 Inexact Rounded
-
-ddadd82000 add .2400 12345678901234.00 -> 12345678901234.24 Rounded
-ddadd82001 add .2401 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd82002 add .2410 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd82003 add .2450 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd82004 add .2451 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd82007 add .2460 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd82008 add .2470 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd82009 add .2499 12345678901234.00 -> 12345678901234.24 Inexact Rounded
-ddadd82011 add -.2499 -12345678901234.00 -> -12345678901234.24 Inexact Rounded
-
-ddadd82100 add .2500 12345678901234.00 -> 12345678901234.25 Rounded
-ddadd82101 add .2501 12345678901234.00 -> 12345678901234.26 Inexact Rounded
-ddadd82102 add .2510 12345678901234.00 -> 12345678901234.26 Inexact Rounded
-ddadd82103 add .2550 12345678901234.00 -> 12345678901234.26 Inexact Rounded
-ddadd82104 add .2551 12345678901234.00 -> 12345678901234.26 Inexact Rounded
-ddadd82107 add .2560 12345678901234.00 -> 12345678901234.26 Inexact Rounded
-ddadd82108 add .2570 12345678901234.00 -> 12345678901234.26 Inexact Rounded
-ddadd82109 add .2599 12345678901234.00 -> 12345678901234.26 Inexact Rounded
-ddadd82111 add -.2599 -12345678901234.00 -> -12345678901234.26 Inexact Rounded
-
-ddadd82200 add .2600 12345678901234.00 -> 12345678901234.26 Rounded
-ddadd82201 add .2601 12345678901234.00 -> 12345678901234.26 Inexact Rounded
-ddadd82202 add .2610 12345678901234.00 -> 12345678901234.26 Inexact Rounded
-ddadd82203 add .2650 12345678901234.00 -> 12345678901234.26 Inexact Rounded
-ddadd82204 add .2651 12345678901234.00 -> 12345678901234.26 Inexact Rounded
-ddadd82207 add .2660 12345678901234.00 -> 12345678901234.26 Inexact Rounded
-ddadd82208 add .2670 12345678901234.00 -> 12345678901234.26 Inexact Rounded
-ddadd82209 add .2699 12345678901234.00 -> 12345678901234.26 Inexact Rounded
-ddadd82211 add -.2699 -12345678901234.00 -> -12345678901234.26 Inexact Rounded
-
-ddadd82300 add .2900 12345678901234.00 -> 12345678901234.29 Rounded
-ddadd82301 add .2901 12345678901234.00 -> 12345678901234.29 Inexact Rounded
-ddadd82302 add .2910 12345678901234.00 -> 12345678901234.29 Inexact Rounded
-ddadd82303 add .2950 12345678901234.00 -> 12345678901234.29 Inexact Rounded
-ddadd82304 add .2951 12345678901234.00 -> 12345678901234.29 Inexact Rounded
-ddadd82307 add .2960 12345678901234.00 -> 12345678901234.29 Inexact Rounded
-ddadd82308 add .2970 12345678901234.00 -> 12345678901234.29 Inexact Rounded
-ddadd82309 add .2999 12345678901234.00 -> 12345678901234.29 Inexact Rounded
-ddadd82311 add -.2999 -12345678901234.00 -> -12345678901234.29 Inexact Rounded
-
--- Null tests
-ddadd9990 add 10 # -> NaN Invalid_operation
-ddadd9991 add # 10 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- ddAdd.decTest -- decDouble addition -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- This set of tests are for decDoubles only; all arguments are +-- representable in a decDouble +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +-- [first group are 'quick confidence check'] +ddadd001 add 1 1 -> 2 +ddadd002 add 2 3 -> 5 +ddadd003 add '5.75' '3.3' -> 9.05 +ddadd004 add '5' '-3' -> 2 +ddadd005 add '-5' '-3' -> -8 +ddadd006 add '-7' '2.5' -> -4.5 +ddadd007 add '0.7' '0.3' -> 1.0 +ddadd008 add '1.25' '1.25' -> 2.50 +ddadd009 add '1.23456789' '1.00000000' -> '2.23456789' +ddadd010 add '1.23456789' '1.00000011' -> '2.23456800' + +-- 1234567890123456 1234567890123456 +ddadd011 add '0.4444444444444446' '0.5555555555555555' -> '1.000000000000000' Inexact Rounded +ddadd012 add '0.4444444444444445' '0.5555555555555555' -> '1.000000000000000' Rounded +ddadd013 add '0.4444444444444444' '0.5555555555555555' -> '0.9999999999999999' +ddadd014 add '4444444444444444' '0.49' -> '4444444444444444' Inexact Rounded +ddadd015 add '4444444444444444' '0.499' -> '4444444444444444' Inexact Rounded +ddadd016 add '4444444444444444' '0.4999' -> '4444444444444444' Inexact Rounded +ddadd017 add '4444444444444444' '0.5000' -> '4444444444444444' Inexact Rounded +ddadd018 add '4444444444444444' '0.5001' -> '4444444444444445' Inexact Rounded +ddadd019 add '4444444444444444' '0.501' -> '4444444444444445' Inexact Rounded +ddadd020 add '4444444444444444' '0.51' -> '4444444444444445' Inexact Rounded + +ddadd021 add 0 1 -> 1 +ddadd022 add 1 1 -> 2 +ddadd023 add 2 1 -> 3 +ddadd024 add 3 1 -> 4 +ddadd025 add 4 1 -> 5 +ddadd026 add 5 1 -> 6 +ddadd027 add 6 1 -> 7 +ddadd028 add 7 1 -> 8 +ddadd029 add 8 1 -> 9 +ddadd030 add 9 1 -> 10 + +-- some carrying effects +ddadd031 add '0.9998' '0.0000' -> '0.9998' +ddadd032 add '0.9998' '0.0001' -> '0.9999' +ddadd033 add '0.9998' '0.0002' -> '1.0000' +ddadd034 add '0.9998' '0.0003' -> '1.0001' + +ddadd035 add '70' '10000e+16' -> '1.000000000000000E+20' Inexact Rounded +ddadd036 add '700' '10000e+16' -> '1.000000000000000E+20' Inexact Rounded +ddadd037 add '7000' '10000e+16' -> '1.000000000000000E+20' Inexact Rounded +ddadd038 add '70000' '10000e+16' -> '1.000000000000001E+20' Inexact Rounded +ddadd039 add '700000' '10000e+16' -> '1.000000000000007E+20' Rounded + +-- symmetry: +ddadd040 add '10000e+16' '70' -> '1.000000000000000E+20' Inexact Rounded +ddadd041 add '10000e+16' '700' -> '1.000000000000000E+20' Inexact Rounded +ddadd042 add '10000e+16' '7000' -> '1.000000000000000E+20' Inexact Rounded +ddadd044 add '10000e+16' '70000' -> '1.000000000000001E+20' Inexact Rounded +ddadd045 add '10000e+16' '700000' -> '1.000000000000007E+20' Rounded + +-- same, without rounding +ddadd046 add '10000e+9' '7' -> '10000000000007' +ddadd047 add '10000e+9' '70' -> '10000000000070' +ddadd048 add '10000e+9' '700' -> '10000000000700' +ddadd049 add '10000e+9' '7000' -> '10000000007000' +ddadd050 add '10000e+9' '70000' -> '10000000070000' +ddadd051 add '10000e+9' '700000' -> '10000000700000' +ddadd052 add '10000e+9' '7000000' -> '10000007000000' + +-- examples from decarith +ddadd053 add '12' '7.00' -> '19.00' +ddadd054 add '1.3' '-1.07' -> '0.23' +ddadd055 add '1.3' '-1.30' -> '0.00' +ddadd056 add '1.3' '-2.07' -> '-0.77' +ddadd057 add '1E+2' '1E+4' -> '1.01E+4' + +-- leading zero preservation +ddadd061 add 1 '0.0001' -> '1.0001' +ddadd062 add 1 '0.00001' -> '1.00001' +ddadd063 add 1 '0.000001' -> '1.000001' +ddadd064 add 1 '0.0000001' -> '1.0000001' +ddadd065 add 1 '0.00000001' -> '1.00000001' + +-- some funny zeros [in case of bad signum] +ddadd070 add 1 0 -> 1 +ddadd071 add 1 0. -> 1 +ddadd072 add 1 .0 -> 1.0 +ddadd073 add 1 0.0 -> 1.0 +ddadd074 add 1 0.00 -> 1.00 +ddadd075 add 0 1 -> 1 +ddadd076 add 0. 1 -> 1 +ddadd077 add .0 1 -> 1.0 +ddadd078 add 0.0 1 -> 1.0 +ddadd079 add 0.00 1 -> 1.00 + +-- some carries +ddadd080 add 999999998 1 -> 999999999 +ddadd081 add 999999999 1 -> 1000000000 +ddadd082 add 99999999 1 -> 100000000 +ddadd083 add 9999999 1 -> 10000000 +ddadd084 add 999999 1 -> 1000000 +ddadd085 add 99999 1 -> 100000 +ddadd086 add 9999 1 -> 10000 +ddadd087 add 999 1 -> 1000 +ddadd088 add 99 1 -> 100 +ddadd089 add 9 1 -> 10 + + +-- more LHS swaps +ddadd090 add '-56267E-10' 0 -> '-0.0000056267' +ddadd091 add '-56267E-6' 0 -> '-0.056267' +ddadd092 add '-56267E-5' 0 -> '-0.56267' +ddadd093 add '-56267E-4' 0 -> '-5.6267' +ddadd094 add '-56267E-3' 0 -> '-56.267' +ddadd095 add '-56267E-2' 0 -> '-562.67' +ddadd096 add '-56267E-1' 0 -> '-5626.7' +ddadd097 add '-56267E-0' 0 -> '-56267' +ddadd098 add '-5E-10' 0 -> '-5E-10' +ddadd099 add '-5E-7' 0 -> '-5E-7' +ddadd100 add '-5E-6' 0 -> '-0.000005' +ddadd101 add '-5E-5' 0 -> '-0.00005' +ddadd102 add '-5E-4' 0 -> '-0.0005' +ddadd103 add '-5E-1' 0 -> '-0.5' +ddadd104 add '-5E0' 0 -> '-5' +ddadd105 add '-5E1' 0 -> '-50' +ddadd106 add '-5E5' 0 -> '-500000' +ddadd107 add '-5E15' 0 -> '-5000000000000000' +ddadd108 add '-5E16' 0 -> '-5.000000000000000E+16' Rounded +ddadd109 add '-5E17' 0 -> '-5.000000000000000E+17' Rounded +ddadd110 add '-5E18' 0 -> '-5.000000000000000E+18' Rounded +ddadd111 add '-5E100' 0 -> '-5.000000000000000E+100' Rounded + +-- more RHS swaps +ddadd113 add 0 '-56267E-10' -> '-0.0000056267' +ddadd114 add 0 '-56267E-6' -> '-0.056267' +ddadd116 add 0 '-56267E-5' -> '-0.56267' +ddadd117 add 0 '-56267E-4' -> '-5.6267' +ddadd119 add 0 '-56267E-3' -> '-56.267' +ddadd120 add 0 '-56267E-2' -> '-562.67' +ddadd121 add 0 '-56267E-1' -> '-5626.7' +ddadd122 add 0 '-56267E-0' -> '-56267' +ddadd123 add 0 '-5E-10' -> '-5E-10' +ddadd124 add 0 '-5E-7' -> '-5E-7' +ddadd125 add 0 '-5E-6' -> '-0.000005' +ddadd126 add 0 '-5E-5' -> '-0.00005' +ddadd127 add 0 '-5E-4' -> '-0.0005' +ddadd128 add 0 '-5E-1' -> '-0.5' +ddadd129 add 0 '-5E0' -> '-5' +ddadd130 add 0 '-5E1' -> '-50' +ddadd131 add 0 '-5E5' -> '-500000' +ddadd132 add 0 '-5E15' -> '-5000000000000000' +ddadd133 add 0 '-5E16' -> '-5.000000000000000E+16' Rounded +ddadd134 add 0 '-5E17' -> '-5.000000000000000E+17' Rounded +ddadd135 add 0 '-5E18' -> '-5.000000000000000E+18' Rounded +ddadd136 add 0 '-5E100' -> '-5.000000000000000E+100' Rounded + +-- related +ddadd137 add 1 '0E-19' -> '1.000000000000000' Rounded +ddadd138 add -1 '0E-19' -> '-1.000000000000000' Rounded +ddadd139 add '0E-19' 1 -> '1.000000000000000' Rounded +ddadd140 add '0E-19' -1 -> '-1.000000000000000' Rounded +ddadd141 add 1E+11 0.0000 -> '100000000000.0000' +ddadd142 add 1E+11 0.00000 -> '100000000000.0000' Rounded +ddadd143 add 0.000 1E+12 -> '1000000000000.000' +ddadd144 add 0.0000 1E+12 -> '1000000000000.000' Rounded + +-- [some of the next group are really constructor tests] +ddadd146 add '00.0' 0 -> '0.0' +ddadd147 add '0.00' 0 -> '0.00' +ddadd148 add 0 '0.00' -> '0.00' +ddadd149 add 0 '00.0' -> '0.0' +ddadd150 add '00.0' '0.00' -> '0.00' +ddadd151 add '0.00' '00.0' -> '0.00' +ddadd152 add '3' '.3' -> '3.3' +ddadd153 add '3.' '.3' -> '3.3' +ddadd154 add '3.0' '.3' -> '3.3' +ddadd155 add '3.00' '.3' -> '3.30' +ddadd156 add '3' '3' -> '6' +ddadd157 add '3' '+3' -> '6' +ddadd158 add '3' '-3' -> '0' +ddadd159 add '0.3' '-0.3' -> '0.0' +ddadd160 add '0.03' '-0.03' -> '0.00' + +-- try borderline precision, with carries, etc. +ddadd161 add '1E+12' '-1' -> '999999999999' +ddadd162 add '1E+12' '1.11' -> '1000000000001.11' +ddadd163 add '1.11' '1E+12' -> '1000000000001.11' +ddadd164 add '-1' '1E+12' -> '999999999999' +ddadd165 add '7E+12' '-1' -> '6999999999999' +ddadd166 add '7E+12' '1.11' -> '7000000000001.11' +ddadd167 add '1.11' '7E+12' -> '7000000000001.11' +ddadd168 add '-1' '7E+12' -> '6999999999999' + +rounding: half_up +-- 1.234567890123456 1234567890123456 1 234567890123456 +ddadd170 add '4.444444444444444' '0.5555555555555567' -> '5.000000000000001' Inexact Rounded +ddadd171 add '4.444444444444444' '0.5555555555555566' -> '5.000000000000001' Inexact Rounded +ddadd172 add '4.444444444444444' '0.5555555555555565' -> '5.000000000000001' Inexact Rounded +ddadd173 add '4.444444444444444' '0.5555555555555564' -> '5.000000000000000' Inexact Rounded +ddadd174 add '4.444444444444444' '0.5555555555555553' -> '4.999999999999999' Inexact Rounded +ddadd175 add '4.444444444444444' '0.5555555555555552' -> '4.999999999999999' Inexact Rounded +ddadd176 add '4.444444444444444' '0.5555555555555551' -> '4.999999999999999' Inexact Rounded +ddadd177 add '4.444444444444444' '0.5555555555555550' -> '4.999999999999999' Rounded +ddadd178 add '4.444444444444444' '0.5555555555555545' -> '4.999999999999999' Inexact Rounded +ddadd179 add '4.444444444444444' '0.5555555555555544' -> '4.999999999999998' Inexact Rounded +ddadd180 add '4.444444444444444' '0.5555555555555543' -> '4.999999999999998' Inexact Rounded +ddadd181 add '4.444444444444444' '0.5555555555555542' -> '4.999999999999998' Inexact Rounded +ddadd182 add '4.444444444444444' '0.5555555555555541' -> '4.999999999999998' Inexact Rounded +ddadd183 add '4.444444444444444' '0.5555555555555540' -> '4.999999999999998' Rounded + +-- and some more, including residue effects and different roundings +rounding: half_up +ddadd200 add '1234560123456789' 0 -> '1234560123456789' +ddadd201 add '1234560123456789' 0.000000001 -> '1234560123456789' Inexact Rounded +ddadd202 add '1234560123456789' 0.000001 -> '1234560123456789' Inexact Rounded +ddadd203 add '1234560123456789' 0.1 -> '1234560123456789' Inexact Rounded +ddadd204 add '1234560123456789' 0.4 -> '1234560123456789' Inexact Rounded +ddadd205 add '1234560123456789' 0.49 -> '1234560123456789' Inexact Rounded +ddadd206 add '1234560123456789' 0.499999 -> '1234560123456789' Inexact Rounded +ddadd207 add '1234560123456789' 0.499999999 -> '1234560123456789' Inexact Rounded +ddadd208 add '1234560123456789' 0.5 -> '1234560123456790' Inexact Rounded +ddadd209 add '1234560123456789' 0.500000001 -> '1234560123456790' Inexact Rounded +ddadd210 add '1234560123456789' 0.500001 -> '1234560123456790' Inexact Rounded +ddadd211 add '1234560123456789' 0.51 -> '1234560123456790' Inexact Rounded +ddadd212 add '1234560123456789' 0.6 -> '1234560123456790' Inexact Rounded +ddadd213 add '1234560123456789' 0.9 -> '1234560123456790' Inexact Rounded +ddadd214 add '1234560123456789' 0.99999 -> '1234560123456790' Inexact Rounded +ddadd215 add '1234560123456789' 0.999999999 -> '1234560123456790' Inexact Rounded +ddadd216 add '1234560123456789' 1 -> '1234560123456790' +ddadd217 add '1234560123456789' 1.000000001 -> '1234560123456790' Inexact Rounded +ddadd218 add '1234560123456789' 1.00001 -> '1234560123456790' Inexact Rounded +ddadd219 add '1234560123456789' 1.1 -> '1234560123456790' Inexact Rounded + +rounding: half_even +ddadd220 add '1234560123456789' 0 -> '1234560123456789' +ddadd221 add '1234560123456789' 0.000000001 -> '1234560123456789' Inexact Rounded +ddadd222 add '1234560123456789' 0.000001 -> '1234560123456789' Inexact Rounded +ddadd223 add '1234560123456789' 0.1 -> '1234560123456789' Inexact Rounded +ddadd224 add '1234560123456789' 0.4 -> '1234560123456789' Inexact Rounded +ddadd225 add '1234560123456789' 0.49 -> '1234560123456789' Inexact Rounded +ddadd226 add '1234560123456789' 0.499999 -> '1234560123456789' Inexact Rounded +ddadd227 add '1234560123456789' 0.499999999 -> '1234560123456789' Inexact Rounded +ddadd228 add '1234560123456789' 0.5 -> '1234560123456790' Inexact Rounded +ddadd229 add '1234560123456789' 0.500000001 -> '1234560123456790' Inexact Rounded +ddadd230 add '1234560123456789' 0.500001 -> '1234560123456790' Inexact Rounded +ddadd231 add '1234560123456789' 0.51 -> '1234560123456790' Inexact Rounded +ddadd232 add '1234560123456789' 0.6 -> '1234560123456790' Inexact Rounded +ddadd233 add '1234560123456789' 0.9 -> '1234560123456790' Inexact Rounded +ddadd234 add '1234560123456789' 0.99999 -> '1234560123456790' Inexact Rounded +ddadd235 add '1234560123456789' 0.999999999 -> '1234560123456790' Inexact Rounded +ddadd236 add '1234560123456789' 1 -> '1234560123456790' +ddadd237 add '1234560123456789' 1.00000001 -> '1234560123456790' Inexact Rounded +ddadd238 add '1234560123456789' 1.00001 -> '1234560123456790' Inexact Rounded +ddadd239 add '1234560123456789' 1.1 -> '1234560123456790' Inexact Rounded +-- critical few with even bottom digit... +ddadd240 add '1234560123456788' 0.499999999 -> '1234560123456788' Inexact Rounded +ddadd241 add '1234560123456788' 0.5 -> '1234560123456788' Inexact Rounded +ddadd242 add '1234560123456788' 0.500000001 -> '1234560123456789' Inexact Rounded + +rounding: down +ddadd250 add '1234560123456789' 0 -> '1234560123456789' +ddadd251 add '1234560123456789' 0.000000001 -> '1234560123456789' Inexact Rounded +ddadd252 add '1234560123456789' 0.000001 -> '1234560123456789' Inexact Rounded +ddadd253 add '1234560123456789' 0.1 -> '1234560123456789' Inexact Rounded +ddadd254 add '1234560123456789' 0.4 -> '1234560123456789' Inexact Rounded +ddadd255 add '1234560123456789' 0.49 -> '1234560123456789' Inexact Rounded +ddadd256 add '1234560123456789' 0.499999 -> '1234560123456789' Inexact Rounded +ddadd257 add '1234560123456789' 0.499999999 -> '1234560123456789' Inexact Rounded +ddadd258 add '1234560123456789' 0.5 -> '1234560123456789' Inexact Rounded +ddadd259 add '1234560123456789' 0.500000001 -> '1234560123456789' Inexact Rounded +ddadd260 add '1234560123456789' 0.500001 -> '1234560123456789' Inexact Rounded +ddadd261 add '1234560123456789' 0.51 -> '1234560123456789' Inexact Rounded +ddadd262 add '1234560123456789' 0.6 -> '1234560123456789' Inexact Rounded +ddadd263 add '1234560123456789' 0.9 -> '1234560123456789' Inexact Rounded +ddadd264 add '1234560123456789' 0.99999 -> '1234560123456789' Inexact Rounded +ddadd265 add '1234560123456789' 0.999999999 -> '1234560123456789' Inexact Rounded +ddadd266 add '1234560123456789' 1 -> '1234560123456790' +ddadd267 add '1234560123456789' 1.00000001 -> '1234560123456790' Inexact Rounded +ddadd268 add '1234560123456789' 1.00001 -> '1234560123456790' Inexact Rounded +ddadd269 add '1234560123456789' 1.1 -> '1234560123456790' Inexact Rounded + +-- 1 in last place tests +rounding: half_up +ddadd301 add -1 1 -> 0 +ddadd302 add 0 1 -> 1 +ddadd303 add 1 1 -> 2 +ddadd304 add 12 1 -> 13 +ddadd305 add 98 1 -> 99 +ddadd306 add 99 1 -> 100 +ddadd307 add 100 1 -> 101 +ddadd308 add 101 1 -> 102 +ddadd309 add -1 -1 -> -2 +ddadd310 add 0 -1 -> -1 +ddadd311 add 1 -1 -> 0 +ddadd312 add 12 -1 -> 11 +ddadd313 add 98 -1 -> 97 +ddadd314 add 99 -1 -> 98 +ddadd315 add 100 -1 -> 99 +ddadd316 add 101 -1 -> 100 + +ddadd321 add -0.01 0.01 -> 0.00 +ddadd322 add 0.00 0.01 -> 0.01 +ddadd323 add 0.01 0.01 -> 0.02 +ddadd324 add 0.12 0.01 -> 0.13 +ddadd325 add 0.98 0.01 -> 0.99 +ddadd326 add 0.99 0.01 -> 1.00 +ddadd327 add 1.00 0.01 -> 1.01 +ddadd328 add 1.01 0.01 -> 1.02 +ddadd329 add -0.01 -0.01 -> -0.02 +ddadd330 add 0.00 -0.01 -> -0.01 +ddadd331 add 0.01 -0.01 -> 0.00 +ddadd332 add 0.12 -0.01 -> 0.11 +ddadd333 add 0.98 -0.01 -> 0.97 +ddadd334 add 0.99 -0.01 -> 0.98 +ddadd335 add 1.00 -0.01 -> 0.99 +ddadd336 add 1.01 -0.01 -> 1.00 + +-- some more cases where adding 0 affects the coefficient +ddadd340 add 1E+3 0 -> 1000 +ddadd341 add 1E+15 0 -> 1000000000000000 +ddadd342 add 1E+16 0 -> 1.000000000000000E+16 Rounded +ddadd343 add 1E+20 0 -> 1.000000000000000E+20 Rounded +-- which simply follow from these cases ... +ddadd344 add 1E+3 1 -> 1001 +ddadd345 add 1E+15 1 -> 1000000000000001 +ddadd346 add 1E+16 1 -> 1.000000000000000E+16 Inexact Rounded +ddadd347 add 1E+20 1 -> 1.000000000000000E+20 Inexact Rounded +ddadd348 add 1E+3 7 -> 1007 +ddadd349 add 1E+15 7 -> 1000000000000007 +ddadd350 add 1E+16 7 -> 1.000000000000001E+16 Inexact Rounded +ddadd351 add 1E+20 7 -> 1.000000000000000E+20 Inexact Rounded + +-- tryzeros cases +rounding: half_up +ddadd360 add 0E+50 10000E+1 -> 1.0000E+5 +ddadd361 add 0E-50 10000E+1 -> 100000.0000000000 Rounded +ddadd362 add 10000E+1 0E-50 -> 100000.0000000000 Rounded +ddadd363 add 10000E+1 10000E-50 -> 100000.0000000000 Rounded Inexact +ddadd364 add 9.999999999999999E+384 -9.999999999999999E+384 -> 0E+369 + +-- a curiosity from JSR 13 testing +rounding: half_down +ddadd370 add 999999999999999 815 -> 1000000000000814 +ddadd371 add 9999999999999999 815 -> 1.000000000000081E+16 Rounded Inexact +rounding: half_up +ddadd372 add 999999999999999 815 -> 1000000000000814 +ddadd373 add 9999999999999999 815 -> 1.000000000000081E+16 Rounded Inexact +rounding: half_even +ddadd374 add 999999999999999 815 -> 1000000000000814 +ddadd375 add 9999999999999999 815 -> 1.000000000000081E+16 Rounded Inexact + +-- operands folded +ddadd380 add 1E+384 1E+384 -> 2.000000000000000E+384 Clamped +ddadd381 add 1E+380 1E+380 -> 2.00000000000E+380 Clamped +ddadd382 add 1E+376 1E+376 -> 2.0000000E+376 Clamped +ddadd383 add 1E+372 1E+372 -> 2.000E+372 Clamped +ddadd384 add 1E+370 1E+370 -> 2.0E+370 Clamped +ddadd385 add 1E+369 1E+369 -> 2E+369 +ddadd386 add 1E+368 1E+368 -> 2E+368 + +-- ulp replacement tests +ddadd400 add 1 77e-14 -> 1.00000000000077 +ddadd401 add 1 77e-15 -> 1.000000000000077 +ddadd402 add 1 77e-16 -> 1.000000000000008 Inexact Rounded +ddadd403 add 1 77e-17 -> 1.000000000000001 Inexact Rounded +ddadd404 add 1 77e-18 -> 1.000000000000000 Inexact Rounded +ddadd405 add 1 77e-19 -> 1.000000000000000 Inexact Rounded +ddadd406 add 1 77e-299 -> 1.000000000000000 Inexact Rounded + +ddadd410 add 10 77e-14 -> 10.00000000000077 +ddadd411 add 10 77e-15 -> 10.00000000000008 Inexact Rounded +ddadd412 add 10 77e-16 -> 10.00000000000001 Inexact Rounded +ddadd413 add 10 77e-17 -> 10.00000000000000 Inexact Rounded +ddadd414 add 10 77e-18 -> 10.00000000000000 Inexact Rounded +ddadd415 add 10 77e-19 -> 10.00000000000000 Inexact Rounded +ddadd416 add 10 77e-299 -> 10.00000000000000 Inexact Rounded + +ddadd420 add 77e-14 1 -> 1.00000000000077 +ddadd421 add 77e-15 1 -> 1.000000000000077 +ddadd422 add 77e-16 1 -> 1.000000000000008 Inexact Rounded +ddadd423 add 77e-17 1 -> 1.000000000000001 Inexact Rounded +ddadd424 add 77e-18 1 -> 1.000000000000000 Inexact Rounded +ddadd425 add 77e-19 1 -> 1.000000000000000 Inexact Rounded +ddadd426 add 77e-299 1 -> 1.000000000000000 Inexact Rounded + +ddadd430 add 77e-14 10 -> 10.00000000000077 +ddadd431 add 77e-15 10 -> 10.00000000000008 Inexact Rounded +ddadd432 add 77e-16 10 -> 10.00000000000001 Inexact Rounded +ddadd433 add 77e-17 10 -> 10.00000000000000 Inexact Rounded +ddadd434 add 77e-18 10 -> 10.00000000000000 Inexact Rounded +ddadd435 add 77e-19 10 -> 10.00000000000000 Inexact Rounded +ddadd436 add 77e-299 10 -> 10.00000000000000 Inexact Rounded + +-- fastpath boundary (more in dqadd) +-- 1234567890123456 +ddadd539 add '4444444444444444' '3333333333333333' -> '7777777777777777' +ddadd540 add '4444444444444444' '4444444444444444' -> '8888888888888888' +ddadd541 add '4444444444444444' '5555555555555555' -> '9999999999999999' +ddadd542 add '3333333333333333' '4444444444444444' -> '7777777777777777' +ddadd543 add '4444444444444444' '4444444444444444' -> '8888888888888888' +ddadd544 add '5555555555555555' '4444444444444444' -> '9999999999999999' +ddadd545 add '3000004000000000' '3000000000000040' -> '6000004000000040' +ddadd546 add '3000000400000000' '4000000000000400' -> '7000000400000400' +ddadd547 add '3000000040000000' '5000000000004000' -> '8000000040004000' +ddadd548 add '4000000004000000' '3000000000040000' -> '7000000004040000' +ddadd549 add '4000000000400000' '4000000000400000' -> '8000000000800000' +ddadd550 add '4000000000040000' '5000000004000000' -> '9000000004040000' +ddadd551 add '5000000000004000' '3000000040000000' -> '8000000040004000' +ddadd552 add '5000000000000400' '4000000400000000' -> '9000000400000400' +ddadd553 add '5000000000000040' '5000004000000000' -> 1.000000400000004E+16 Rounded +-- check propagation +ddadd554 add '8999999999999999' '0000000000000001' -> 9000000000000000 +ddadd555 add '0000000000000001' '8999999999999999' -> 9000000000000000 +ddadd556 add '0999999999999999' '0000000000000001' -> 1000000000000000 +ddadd557 add '0000000000000001' '0999999999999999' -> 1000000000000000 +ddadd558 add '4444444444444444' '4555555555555556' -> 9000000000000000 +ddadd559 add '4555555555555556' '4444444444444444' -> 9000000000000000 + +-- negative ulps +ddadd6440 add 1 -77e-14 -> 0.99999999999923 +ddadd6441 add 1 -77e-15 -> 0.999999999999923 +ddadd6442 add 1 -77e-16 -> 0.9999999999999923 +ddadd6443 add 1 -77e-17 -> 0.9999999999999992 Inexact Rounded +ddadd6444 add 1 -77e-18 -> 0.9999999999999999 Inexact Rounded +ddadd6445 add 1 -77e-19 -> 1.000000000000000 Inexact Rounded +ddadd6446 add 1 -77e-99 -> 1.000000000000000 Inexact Rounded + +ddadd6450 add 10 -77e-14 -> 9.99999999999923 +ddadd6451 add 10 -77e-15 -> 9.999999999999923 +ddadd6452 add 10 -77e-16 -> 9.999999999999992 Inexact Rounded +ddadd6453 add 10 -77e-17 -> 9.999999999999999 Inexact Rounded +ddadd6454 add 10 -77e-18 -> 10.00000000000000 Inexact Rounded +ddadd6455 add 10 -77e-19 -> 10.00000000000000 Inexact Rounded +ddadd6456 add 10 -77e-99 -> 10.00000000000000 Inexact Rounded + +ddadd6460 add -77e-14 1 -> 0.99999999999923 +ddadd6461 add -77e-15 1 -> 0.999999999999923 +ddadd6462 add -77e-16 1 -> 0.9999999999999923 +ddadd6463 add -77e-17 1 -> 0.9999999999999992 Inexact Rounded +ddadd6464 add -77e-18 1 -> 0.9999999999999999 Inexact Rounded +ddadd6465 add -77e-19 1 -> 1.000000000000000 Inexact Rounded +ddadd6466 add -77e-99 1 -> 1.000000000000000 Inexact Rounded + +ddadd6470 add -77e-14 10 -> 9.99999999999923 +ddadd6471 add -77e-15 10 -> 9.999999999999923 +ddadd6472 add -77e-16 10 -> 9.999999999999992 Inexact Rounded +ddadd6473 add -77e-17 10 -> 9.999999999999999 Inexact Rounded +ddadd6474 add -77e-18 10 -> 10.00000000000000 Inexact Rounded +ddadd6475 add -77e-19 10 -> 10.00000000000000 Inexact Rounded +ddadd6476 add -77e-99 10 -> 10.00000000000000 Inexact Rounded + +-- negative ulps +ddadd6480 add -1 77e-14 -> -0.99999999999923 +ddadd6481 add -1 77e-15 -> -0.999999999999923 +ddadd6482 add -1 77e-16 -> -0.9999999999999923 +ddadd6483 add -1 77e-17 -> -0.9999999999999992 Inexact Rounded +ddadd6484 add -1 77e-18 -> -0.9999999999999999 Inexact Rounded +ddadd6485 add -1 77e-19 -> -1.000000000000000 Inexact Rounded +ddadd6486 add -1 77e-99 -> -1.000000000000000 Inexact Rounded + +ddadd6490 add -10 77e-14 -> -9.99999999999923 +ddadd6491 add -10 77e-15 -> -9.999999999999923 +ddadd6492 add -10 77e-16 -> -9.999999999999992 Inexact Rounded +ddadd6493 add -10 77e-17 -> -9.999999999999999 Inexact Rounded +ddadd6494 add -10 77e-18 -> -10.00000000000000 Inexact Rounded +ddadd6495 add -10 77e-19 -> -10.00000000000000 Inexact Rounded +ddadd6496 add -10 77e-99 -> -10.00000000000000 Inexact Rounded + +ddadd6500 add 77e-14 -1 -> -0.99999999999923 +ddadd6501 add 77e-15 -1 -> -0.999999999999923 +ddadd6502 add 77e-16 -1 -> -0.9999999999999923 +ddadd6503 add 77e-17 -1 -> -0.9999999999999992 Inexact Rounded +ddadd6504 add 77e-18 -1 -> -0.9999999999999999 Inexact Rounded +ddadd6505 add 77e-19 -1 -> -1.000000000000000 Inexact Rounded +ddadd6506 add 77e-99 -1 -> -1.000000000000000 Inexact Rounded + +ddadd6510 add 77e-14 -10 -> -9.99999999999923 +ddadd6511 add 77e-15 -10 -> -9.999999999999923 +ddadd6512 add 77e-16 -10 -> -9.999999999999992 Inexact Rounded +ddadd6513 add 77e-17 -10 -> -9.999999999999999 Inexact Rounded +ddadd6514 add 77e-18 -10 -> -10.00000000000000 Inexact Rounded +ddadd6515 add 77e-19 -10 -> -10.00000000000000 Inexact Rounded +ddadd6516 add 77e-99 -10 -> -10.00000000000000 Inexact Rounded + +-- and some more residue effects and different roundings +rounding: half_up +ddadd6540 add '6543210123456789' 0 -> '6543210123456789' +ddadd6541 add '6543210123456789' 0.000000001 -> '6543210123456789' Inexact Rounded +ddadd6542 add '6543210123456789' 0.000001 -> '6543210123456789' Inexact Rounded +ddadd6543 add '6543210123456789' 0.1 -> '6543210123456789' Inexact Rounded +ddadd6544 add '6543210123456789' 0.4 -> '6543210123456789' Inexact Rounded +ddadd6545 add '6543210123456789' 0.49 -> '6543210123456789' Inexact Rounded +ddadd6546 add '6543210123456789' 0.499999 -> '6543210123456789' Inexact Rounded +ddadd6547 add '6543210123456789' 0.499999999 -> '6543210123456789' Inexact Rounded +ddadd6548 add '6543210123456789' 0.5 -> '6543210123456790' Inexact Rounded +ddadd6549 add '6543210123456789' 0.500000001 -> '6543210123456790' Inexact Rounded +ddadd6550 add '6543210123456789' 0.500001 -> '6543210123456790' Inexact Rounded +ddadd6551 add '6543210123456789' 0.51 -> '6543210123456790' Inexact Rounded +ddadd6552 add '6543210123456789' 0.6 -> '6543210123456790' Inexact Rounded +ddadd6553 add '6543210123456789' 0.9 -> '6543210123456790' Inexact Rounded +ddadd6554 add '6543210123456789' 0.99999 -> '6543210123456790' Inexact Rounded +ddadd6555 add '6543210123456789' 0.999999999 -> '6543210123456790' Inexact Rounded +ddadd6556 add '6543210123456789' 1 -> '6543210123456790' +ddadd6557 add '6543210123456789' 1.000000001 -> '6543210123456790' Inexact Rounded +ddadd6558 add '6543210123456789' 1.00001 -> '6543210123456790' Inexact Rounded +ddadd6559 add '6543210123456789' 1.1 -> '6543210123456790' Inexact Rounded + +rounding: half_even +ddadd6560 add '6543210123456789' 0 -> '6543210123456789' +ddadd6561 add '6543210123456789' 0.000000001 -> '6543210123456789' Inexact Rounded +ddadd6562 add '6543210123456789' 0.000001 -> '6543210123456789' Inexact Rounded +ddadd6563 add '6543210123456789' 0.1 -> '6543210123456789' Inexact Rounded +ddadd6564 add '6543210123456789' 0.4 -> '6543210123456789' Inexact Rounded +ddadd6565 add '6543210123456789' 0.49 -> '6543210123456789' Inexact Rounded +ddadd6566 add '6543210123456789' 0.499999 -> '6543210123456789' Inexact Rounded +ddadd6567 add '6543210123456789' 0.499999999 -> '6543210123456789' Inexact Rounded +ddadd6568 add '6543210123456789' 0.5 -> '6543210123456790' Inexact Rounded +ddadd6569 add '6543210123456789' 0.500000001 -> '6543210123456790' Inexact Rounded +ddadd6570 add '6543210123456789' 0.500001 -> '6543210123456790' Inexact Rounded +ddadd6571 add '6543210123456789' 0.51 -> '6543210123456790' Inexact Rounded +ddadd6572 add '6543210123456789' 0.6 -> '6543210123456790' Inexact Rounded +ddadd6573 add '6543210123456789' 0.9 -> '6543210123456790' Inexact Rounded +ddadd6574 add '6543210123456789' 0.99999 -> '6543210123456790' Inexact Rounded +ddadd6575 add '6543210123456789' 0.999999999 -> '6543210123456790' Inexact Rounded +ddadd6576 add '6543210123456789' 1 -> '6543210123456790' +ddadd6577 add '6543210123456789' 1.00000001 -> '6543210123456790' Inexact Rounded +ddadd6578 add '6543210123456789' 1.00001 -> '6543210123456790' Inexact Rounded +ddadd6579 add '6543210123456789' 1.1 -> '6543210123456790' Inexact Rounded + +-- critical few with even bottom digit... +ddadd7540 add '6543210123456788' 0.499999999 -> '6543210123456788' Inexact Rounded +ddadd7541 add '6543210123456788' 0.5 -> '6543210123456788' Inexact Rounded +ddadd7542 add '6543210123456788' 0.500000001 -> '6543210123456789' Inexact Rounded + +rounding: down +ddadd7550 add '6543210123456789' 0 -> '6543210123456789' +ddadd7551 add '6543210123456789' 0.000000001 -> '6543210123456789' Inexact Rounded +ddadd7552 add '6543210123456789' 0.000001 -> '6543210123456789' Inexact Rounded +ddadd7553 add '6543210123456789' 0.1 -> '6543210123456789' Inexact Rounded +ddadd7554 add '6543210123456789' 0.4 -> '6543210123456789' Inexact Rounded +ddadd7555 add '6543210123456789' 0.49 -> '6543210123456789' Inexact Rounded +ddadd7556 add '6543210123456789' 0.499999 -> '6543210123456789' Inexact Rounded +ddadd7557 add '6543210123456789' 0.499999999 -> '6543210123456789' Inexact Rounded +ddadd7558 add '6543210123456789' 0.5 -> '6543210123456789' Inexact Rounded +ddadd7559 add '6543210123456789' 0.500000001 -> '6543210123456789' Inexact Rounded +ddadd7560 add '6543210123456789' 0.500001 -> '6543210123456789' Inexact Rounded +ddadd7561 add '6543210123456789' 0.51 -> '6543210123456789' Inexact Rounded +ddadd7562 add '6543210123456789' 0.6 -> '6543210123456789' Inexact Rounded +ddadd7563 add '6543210123456789' 0.9 -> '6543210123456789' Inexact Rounded +ddadd7564 add '6543210123456789' 0.99999 -> '6543210123456789' Inexact Rounded +ddadd7565 add '6543210123456789' 0.999999999 -> '6543210123456789' Inexact Rounded +ddadd7566 add '6543210123456789' 1 -> '6543210123456790' +ddadd7567 add '6543210123456789' 1.00000001 -> '6543210123456790' Inexact Rounded +ddadd7568 add '6543210123456789' 1.00001 -> '6543210123456790' Inexact Rounded +ddadd7569 add '6543210123456789' 1.1 -> '6543210123456790' Inexact Rounded + +-- verify a query +rounding: down +ddadd7661 add 1e-398 9.000000000000000E+384 -> 9.000000000000000E+384 Inexact Rounded +ddadd7662 add 0 9.000000000000000E+384 -> 9.000000000000000E+384 Rounded +ddadd7663 add 1e-388 9.000000000000000E+374 -> 9.000000000000000E+374 Inexact Rounded +ddadd7664 add 0 9.000000000000000E+374 -> 9.000000000000000E+374 Rounded + +-- more zeros, etc. +rounding: half_even + +ddadd7701 add 5.00 1.00E-3 -> 5.00100 +ddadd7702 add 00.00 0.000 -> 0.000 +ddadd7703 add 00.00 0E-3 -> 0.000 +ddadd7704 add 0E-3 00.00 -> 0.000 + +ddadd7710 add 0E+3 00.00 -> 0.00 +ddadd7711 add 0E+3 00.0 -> 0.0 +ddadd7712 add 0E+3 00. -> 0 +ddadd7713 add 0E+3 00.E+1 -> 0E+1 +ddadd7714 add 0E+3 00.E+2 -> 0E+2 +ddadd7715 add 0E+3 00.E+3 -> 0E+3 +ddadd7716 add 0E+3 00.E+4 -> 0E+3 +ddadd7717 add 0E+3 00.E+5 -> 0E+3 +ddadd7718 add 0E+3 -00.0 -> 0.0 +ddadd7719 add 0E+3 -00. -> 0 +ddadd7731 add 0E+3 -00.E+1 -> 0E+1 + +ddadd7720 add 00.00 0E+3 -> 0.00 +ddadd7721 add 00.0 0E+3 -> 0.0 +ddadd7722 add 00. 0E+3 -> 0 +ddadd7723 add 00.E+1 0E+3 -> 0E+1 +ddadd7724 add 00.E+2 0E+3 -> 0E+2 +ddadd7725 add 00.E+3 0E+3 -> 0E+3 +ddadd7726 add 00.E+4 0E+3 -> 0E+3 +ddadd7727 add 00.E+5 0E+3 -> 0E+3 +ddadd7728 add -00.00 0E+3 -> 0.00 +ddadd7729 add -00.0 0E+3 -> 0.0 +ddadd7730 add -00. 0E+3 -> 0 + +ddadd7732 add 0 0 -> 0 +ddadd7733 add 0 -0 -> 0 +ddadd7734 add -0 0 -> 0 +ddadd7735 add -0 -0 -> -0 -- IEEE 854 special case + +ddadd7736 add 1 -1 -> 0 +ddadd7737 add -1 -1 -> -2 +ddadd7738 add 1 1 -> 2 +ddadd7739 add -1 1 -> 0 + +ddadd7741 add 0 -1 -> -1 +ddadd7742 add -0 -1 -> -1 +ddadd7743 add 0 1 -> 1 +ddadd7744 add -0 1 -> 1 +ddadd7745 add -1 0 -> -1 +ddadd7746 add -1 -0 -> -1 +ddadd7747 add 1 0 -> 1 +ddadd7748 add 1 -0 -> 1 + +ddadd7751 add 0.0 -1 -> -1.0 +ddadd7752 add -0.0 -1 -> -1.0 +ddadd7753 add 0.0 1 -> 1.0 +ddadd7754 add -0.0 1 -> 1.0 +ddadd7755 add -1.0 0 -> -1.0 +ddadd7756 add -1.0 -0 -> -1.0 +ddadd7757 add 1.0 0 -> 1.0 +ddadd7758 add 1.0 -0 -> 1.0 + +ddadd7761 add 0 -1.0 -> -1.0 +ddadd7762 add -0 -1.0 -> -1.0 +ddadd7763 add 0 1.0 -> 1.0 +ddadd7764 add -0 1.0 -> 1.0 +ddadd7765 add -1 0.0 -> -1.0 +ddadd7766 add -1 -0.0 -> -1.0 +ddadd7767 add 1 0.0 -> 1.0 +ddadd7768 add 1 -0.0 -> 1.0 + +ddadd7771 add 0.0 -1.0 -> -1.0 +ddadd7772 add -0.0 -1.0 -> -1.0 +ddadd7773 add 0.0 1.0 -> 1.0 +ddadd7774 add -0.0 1.0 -> 1.0 +ddadd7775 add -1.0 0.0 -> -1.0 +ddadd7776 add -1.0 -0.0 -> -1.0 +ddadd7777 add 1.0 0.0 -> 1.0 +ddadd7778 add 1.0 -0.0 -> 1.0 + +-- Specials +ddadd7780 add -Inf -Inf -> -Infinity +ddadd7781 add -Inf -1000 -> -Infinity +ddadd7782 add -Inf -1 -> -Infinity +ddadd7783 add -Inf -0 -> -Infinity +ddadd7784 add -Inf 0 -> -Infinity +ddadd7785 add -Inf 1 -> -Infinity +ddadd7786 add -Inf 1000 -> -Infinity +ddadd7787 add -1000 -Inf -> -Infinity +ddadd7788 add -Inf -Inf -> -Infinity +ddadd7789 add -1 -Inf -> -Infinity +ddadd7790 add -0 -Inf -> -Infinity +ddadd7791 add 0 -Inf -> -Infinity +ddadd7792 add 1 -Inf -> -Infinity +ddadd7793 add 1000 -Inf -> -Infinity +ddadd7794 add Inf -Inf -> NaN Invalid_operation + +ddadd7800 add Inf -Inf -> NaN Invalid_operation +ddadd7801 add Inf -1000 -> Infinity +ddadd7802 add Inf -1 -> Infinity +ddadd7803 add Inf -0 -> Infinity +ddadd7804 add Inf 0 -> Infinity +ddadd7805 add Inf 1 -> Infinity +ddadd7806 add Inf 1000 -> Infinity +ddadd7807 add Inf Inf -> Infinity +ddadd7808 add -1000 Inf -> Infinity +ddadd7809 add -Inf Inf -> NaN Invalid_operation +ddadd7810 add -1 Inf -> Infinity +ddadd7811 add -0 Inf -> Infinity +ddadd7812 add 0 Inf -> Infinity +ddadd7813 add 1 Inf -> Infinity +ddadd7814 add 1000 Inf -> Infinity +ddadd7815 add Inf Inf -> Infinity + +ddadd7821 add NaN -Inf -> NaN +ddadd7822 add NaN -1000 -> NaN +ddadd7823 add NaN -1 -> NaN +ddadd7824 add NaN -0 -> NaN +ddadd7825 add NaN 0 -> NaN +ddadd7826 add NaN 1 -> NaN +ddadd7827 add NaN 1000 -> NaN +ddadd7828 add NaN Inf -> NaN +ddadd7829 add NaN NaN -> NaN +ddadd7830 add -Inf NaN -> NaN +ddadd7831 add -1000 NaN -> NaN +ddadd7832 add -1 NaN -> NaN +ddadd7833 add -0 NaN -> NaN +ddadd7834 add 0 NaN -> NaN +ddadd7835 add 1 NaN -> NaN +ddadd7836 add 1000 NaN -> NaN +ddadd7837 add Inf NaN -> NaN + +ddadd7841 add sNaN -Inf -> NaN Invalid_operation +ddadd7842 add sNaN -1000 -> NaN Invalid_operation +ddadd7843 add sNaN -1 -> NaN Invalid_operation +ddadd7844 add sNaN -0 -> NaN Invalid_operation +ddadd7845 add sNaN 0 -> NaN Invalid_operation +ddadd7846 add sNaN 1 -> NaN Invalid_operation +ddadd7847 add sNaN 1000 -> NaN Invalid_operation +ddadd7848 add sNaN NaN -> NaN Invalid_operation +ddadd7849 add sNaN sNaN -> NaN Invalid_operation +ddadd7850 add NaN sNaN -> NaN Invalid_operation +ddadd7851 add -Inf sNaN -> NaN Invalid_operation +ddadd7852 add -1000 sNaN -> NaN Invalid_operation +ddadd7853 add -1 sNaN -> NaN Invalid_operation +ddadd7854 add -0 sNaN -> NaN Invalid_operation +ddadd7855 add 0 sNaN -> NaN Invalid_operation +ddadd7856 add 1 sNaN -> NaN Invalid_operation +ddadd7857 add 1000 sNaN -> NaN Invalid_operation +ddadd7858 add Inf sNaN -> NaN Invalid_operation +ddadd7859 add NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +ddadd7861 add NaN1 -Inf -> NaN1 +ddadd7862 add +NaN2 -1000 -> NaN2 +ddadd7863 add NaN3 1000 -> NaN3 +ddadd7864 add NaN4 Inf -> NaN4 +ddadd7865 add NaN5 +NaN6 -> NaN5 +ddadd7866 add -Inf NaN7 -> NaN7 +ddadd7867 add -1000 NaN8 -> NaN8 +ddadd7868 add 1000 NaN9 -> NaN9 +ddadd7869 add Inf +NaN10 -> NaN10 +ddadd7871 add sNaN11 -Inf -> NaN11 Invalid_operation +ddadd7872 add sNaN12 -1000 -> NaN12 Invalid_operation +ddadd7873 add sNaN13 1000 -> NaN13 Invalid_operation +ddadd7874 add sNaN14 NaN17 -> NaN14 Invalid_operation +ddadd7875 add sNaN15 sNaN18 -> NaN15 Invalid_operation +ddadd7876 add NaN16 sNaN19 -> NaN19 Invalid_operation +ddadd7877 add -Inf +sNaN20 -> NaN20 Invalid_operation +ddadd7878 add -1000 sNaN21 -> NaN21 Invalid_operation +ddadd7879 add 1000 sNaN22 -> NaN22 Invalid_operation +ddadd7880 add Inf sNaN23 -> NaN23 Invalid_operation +ddadd7881 add +NaN25 +sNaN24 -> NaN24 Invalid_operation +ddadd7882 add -NaN26 NaN28 -> -NaN26 +ddadd7883 add -sNaN27 sNaN29 -> -NaN27 Invalid_operation +ddadd7884 add 1000 -NaN30 -> -NaN30 +ddadd7885 add 1000 -sNaN31 -> -NaN31 Invalid_operation + +-- Here we explore near the boundary of rounding a subnormal to Nmin +ddadd7575 add 1E-383 -1E-398 -> 9.99999999999999E-384 Subnormal +ddadd7576 add -1E-383 +1E-398 -> -9.99999999999999E-384 Subnormal + +-- and another curious case +ddadd7577 add 7.000000000000E-385 -1.00000E-391 -> 6.999999000000E-385 Subnormal + +-- check overflow edge case +-- 1234567890123456 +ddadd7972 apply 9.999999999999999E+384 -> 9.999999999999999E+384 +ddadd7973 add 9.999999999999999E+384 1 -> 9.999999999999999E+384 Inexact Rounded +ddadd7974 add 9999999999999999E+369 1 -> 9.999999999999999E+384 Inexact Rounded +ddadd7975 add 9999999999999999E+369 1E+369 -> Infinity Overflow Inexact Rounded +ddadd7976 add 9999999999999999E+369 9E+368 -> Infinity Overflow Inexact Rounded +ddadd7977 add 9999999999999999E+369 8E+368 -> Infinity Overflow Inexact Rounded +ddadd7978 add 9999999999999999E+369 7E+368 -> Infinity Overflow Inexact Rounded +ddadd7979 add 9999999999999999E+369 6E+368 -> Infinity Overflow Inexact Rounded +ddadd7980 add 9999999999999999E+369 5E+368 -> Infinity Overflow Inexact Rounded +ddadd7981 add 9999999999999999E+369 4E+368 -> 9.999999999999999E+384 Inexact Rounded +ddadd7982 add 9999999999999999E+369 3E+368 -> 9.999999999999999E+384 Inexact Rounded +ddadd7983 add 9999999999999999E+369 2E+368 -> 9.999999999999999E+384 Inexact Rounded +ddadd7984 add 9999999999999999E+369 1E+368 -> 9.999999999999999E+384 Inexact Rounded + +ddadd7985 apply -9.999999999999999E+384 -> -9.999999999999999E+384 +ddadd7986 add -9.999999999999999E+384 -1 -> -9.999999999999999E+384 Inexact Rounded +ddadd7987 add -9999999999999999E+369 -1 -> -9.999999999999999E+384 Inexact Rounded +ddadd7988 add -9999999999999999E+369 -1E+369 -> -Infinity Overflow Inexact Rounded +ddadd7989 add -9999999999999999E+369 -9E+368 -> -Infinity Overflow Inexact Rounded +ddadd7990 add -9999999999999999E+369 -8E+368 -> -Infinity Overflow Inexact Rounded +ddadd7991 add -9999999999999999E+369 -7E+368 -> -Infinity Overflow Inexact Rounded +ddadd7992 add -9999999999999999E+369 -6E+368 -> -Infinity Overflow Inexact Rounded +ddadd7993 add -9999999999999999E+369 -5E+368 -> -Infinity Overflow Inexact Rounded +ddadd7994 add -9999999999999999E+369 -4E+368 -> -9.999999999999999E+384 Inexact Rounded +ddadd7995 add -9999999999999999E+369 -3E+368 -> -9.999999999999999E+384 Inexact Rounded +ddadd7996 add -9999999999999999E+369 -2E+368 -> -9.999999999999999E+384 Inexact Rounded +ddadd7997 add -9999999999999999E+369 -1E+368 -> -9.999999999999999E+384 Inexact Rounded + +-- And for round down full and subnormal results +rounding: down +ddadd71100 add 1e+2 -1e-383 -> 99.99999999999999 Rounded Inexact +ddadd71101 add 1e+1 -1e-383 -> 9.999999999999999 Rounded Inexact +ddadd71103 add +1 -1e-383 -> 0.9999999999999999 Rounded Inexact +ddadd71104 add 1e-1 -1e-383 -> 0.09999999999999999 Rounded Inexact +ddadd71105 add 1e-2 -1e-383 -> 0.009999999999999999 Rounded Inexact +ddadd71106 add 1e-3 -1e-383 -> 0.0009999999999999999 Rounded Inexact +ddadd71107 add 1e-4 -1e-383 -> 0.00009999999999999999 Rounded Inexact +ddadd71108 add 1e-5 -1e-383 -> 0.000009999999999999999 Rounded Inexact +ddadd71109 add 1e-6 -1e-383 -> 9.999999999999999E-7 Rounded Inexact + +rounding: ceiling +ddadd71110 add -1e+2 +1e-383 -> -99.99999999999999 Rounded Inexact +ddadd71111 add -1e+1 +1e-383 -> -9.999999999999999 Rounded Inexact +ddadd71113 add -1 +1e-383 -> -0.9999999999999999 Rounded Inexact +ddadd71114 add -1e-1 +1e-383 -> -0.09999999999999999 Rounded Inexact +ddadd71115 add -1e-2 +1e-383 -> -0.009999999999999999 Rounded Inexact +ddadd71116 add -1e-3 +1e-383 -> -0.0009999999999999999 Rounded Inexact +ddadd71117 add -1e-4 +1e-383 -> -0.00009999999999999999 Rounded Inexact +ddadd71118 add -1e-5 +1e-383 -> -0.000009999999999999999 Rounded Inexact +ddadd71119 add -1e-6 +1e-383 -> -9.999999999999999E-7 Rounded Inexact + +-- tests based on Gunnar Degnbol's edge case +rounding: half_even + +ddadd71300 add 1E16 -0.5 -> 1.000000000000000E+16 Inexact Rounded +ddadd71310 add 1E16 -0.51 -> 9999999999999999 Inexact Rounded +ddadd71311 add 1E16 -0.501 -> 9999999999999999 Inexact Rounded +ddadd71312 add 1E16 -0.5001 -> 9999999999999999 Inexact Rounded +ddadd71313 add 1E16 -0.50001 -> 9999999999999999 Inexact Rounded +ddadd71314 add 1E16 -0.500001 -> 9999999999999999 Inexact Rounded +ddadd71315 add 1E16 -0.5000001 -> 9999999999999999 Inexact Rounded +ddadd71316 add 1E16 -0.50000001 -> 9999999999999999 Inexact Rounded +ddadd71317 add 1E16 -0.500000001 -> 9999999999999999 Inexact Rounded +ddadd71318 add 1E16 -0.5000000001 -> 9999999999999999 Inexact Rounded +ddadd71319 add 1E16 -0.50000000001 -> 9999999999999999 Inexact Rounded +ddadd71320 add 1E16 -0.500000000001 -> 9999999999999999 Inexact Rounded +ddadd71321 add 1E16 -0.5000000000001 -> 9999999999999999 Inexact Rounded +ddadd71322 add 1E16 -0.50000000000001 -> 9999999999999999 Inexact Rounded +ddadd71323 add 1E16 -0.500000000000001 -> 9999999999999999 Inexact Rounded +ddadd71324 add 1E16 -0.5000000000000001 -> 9999999999999999 Inexact Rounded +ddadd71325 add 1E16 -0.5000000000000000 -> 1.000000000000000E+16 Inexact Rounded +ddadd71326 add 1E16 -0.500000000000000 -> 1.000000000000000E+16 Inexact Rounded +ddadd71327 add 1E16 -0.50000000000000 -> 1.000000000000000E+16 Inexact Rounded +ddadd71328 add 1E16 -0.5000000000000 -> 1.000000000000000E+16 Inexact Rounded +ddadd71329 add 1E16 -0.500000000000 -> 1.000000000000000E+16 Inexact Rounded +ddadd71330 add 1E16 -0.50000000000 -> 1.000000000000000E+16 Inexact Rounded +ddadd71331 add 1E16 -0.5000000000 -> 1.000000000000000E+16 Inexact Rounded +ddadd71332 add 1E16 -0.500000000 -> 1.000000000000000E+16 Inexact Rounded +ddadd71333 add 1E16 -0.50000000 -> 1.000000000000000E+16 Inexact Rounded +ddadd71334 add 1E16 -0.5000000 -> 1.000000000000000E+16 Inexact Rounded +ddadd71335 add 1E16 -0.500000 -> 1.000000000000000E+16 Inexact Rounded +ddadd71336 add 1E16 -0.50000 -> 1.000000000000000E+16 Inexact Rounded +ddadd71337 add 1E16 -0.5000 -> 1.000000000000000E+16 Inexact Rounded +ddadd71338 add 1E16 -0.500 -> 1.000000000000000E+16 Inexact Rounded +ddadd71339 add 1E16 -0.50 -> 1.000000000000000E+16 Inexact Rounded + +ddadd71340 add 1E16 -5000000.000010001 -> 9999999995000000 Inexact Rounded +ddadd71341 add 1E16 -5000000.000000001 -> 9999999995000000 Inexact Rounded + +ddadd71349 add 9999999999999999 0.4 -> 9999999999999999 Inexact Rounded +ddadd71350 add 9999999999999999 0.49 -> 9999999999999999 Inexact Rounded +ddadd71351 add 9999999999999999 0.499 -> 9999999999999999 Inexact Rounded +ddadd71352 add 9999999999999999 0.4999 -> 9999999999999999 Inexact Rounded +ddadd71353 add 9999999999999999 0.49999 -> 9999999999999999 Inexact Rounded +ddadd71354 add 9999999999999999 0.499999 -> 9999999999999999 Inexact Rounded +ddadd71355 add 9999999999999999 0.4999999 -> 9999999999999999 Inexact Rounded +ddadd71356 add 9999999999999999 0.49999999 -> 9999999999999999 Inexact Rounded +ddadd71357 add 9999999999999999 0.499999999 -> 9999999999999999 Inexact Rounded +ddadd71358 add 9999999999999999 0.4999999999 -> 9999999999999999 Inexact Rounded +ddadd71359 add 9999999999999999 0.49999999999 -> 9999999999999999 Inexact Rounded +ddadd71360 add 9999999999999999 0.499999999999 -> 9999999999999999 Inexact Rounded +ddadd71361 add 9999999999999999 0.4999999999999 -> 9999999999999999 Inexact Rounded +ddadd71362 add 9999999999999999 0.49999999999999 -> 9999999999999999 Inexact Rounded +ddadd71363 add 9999999999999999 0.499999999999999 -> 9999999999999999 Inexact Rounded +ddadd71364 add 9999999999999999 0.4999999999999999 -> 9999999999999999 Inexact Rounded +ddadd71365 add 9999999999999999 0.5000000000000000 -> 1.000000000000000E+16 Inexact Rounded +ddadd71367 add 9999999999999999 0.500000000000000 -> 1.000000000000000E+16 Inexact Rounded +ddadd71368 add 9999999999999999 0.50000000000000 -> 1.000000000000000E+16 Inexact Rounded +ddadd71369 add 9999999999999999 0.5000000000000 -> 1.000000000000000E+16 Inexact Rounded +ddadd71370 add 9999999999999999 0.500000000000 -> 1.000000000000000E+16 Inexact Rounded +ddadd71371 add 9999999999999999 0.50000000000 -> 1.000000000000000E+16 Inexact Rounded +ddadd71372 add 9999999999999999 0.5000000000 -> 1.000000000000000E+16 Inexact Rounded +ddadd71373 add 9999999999999999 0.500000000 -> 1.000000000000000E+16 Inexact Rounded +ddadd71374 add 9999999999999999 0.50000000 -> 1.000000000000000E+16 Inexact Rounded +ddadd71375 add 9999999999999999 0.5000000 -> 1.000000000000000E+16 Inexact Rounded +ddadd71376 add 9999999999999999 0.500000 -> 1.000000000000000E+16 Inexact Rounded +ddadd71377 add 9999999999999999 0.50000 -> 1.000000000000000E+16 Inexact Rounded +ddadd71378 add 9999999999999999 0.5000 -> 1.000000000000000E+16 Inexact Rounded +ddadd71379 add 9999999999999999 0.500 -> 1.000000000000000E+16 Inexact Rounded +ddadd71380 add 9999999999999999 0.50 -> 1.000000000000000E+16 Inexact Rounded +ddadd71381 add 9999999999999999 0.5 -> 1.000000000000000E+16 Inexact Rounded +ddadd71382 add 9999999999999999 0.5000000000000001 -> 1.000000000000000E+16 Inexact Rounded +ddadd71383 add 9999999999999999 0.500000000000001 -> 1.000000000000000E+16 Inexact Rounded +ddadd71384 add 9999999999999999 0.50000000000001 -> 1.000000000000000E+16 Inexact Rounded +ddadd71385 add 9999999999999999 0.5000000000001 -> 1.000000000000000E+16 Inexact Rounded +ddadd71386 add 9999999999999999 0.500000000001 -> 1.000000000000000E+16 Inexact Rounded +ddadd71387 add 9999999999999999 0.50000000001 -> 1.000000000000000E+16 Inexact Rounded +ddadd71388 add 9999999999999999 0.5000000001 -> 1.000000000000000E+16 Inexact Rounded +ddadd71389 add 9999999999999999 0.500000001 -> 1.000000000000000E+16 Inexact Rounded +ddadd71390 add 9999999999999999 0.50000001 -> 1.000000000000000E+16 Inexact Rounded +ddadd71391 add 9999999999999999 0.5000001 -> 1.000000000000000E+16 Inexact Rounded +ddadd71392 add 9999999999999999 0.500001 -> 1.000000000000000E+16 Inexact Rounded +ddadd71393 add 9999999999999999 0.50001 -> 1.000000000000000E+16 Inexact Rounded +ddadd71394 add 9999999999999999 0.5001 -> 1.000000000000000E+16 Inexact Rounded +ddadd71395 add 9999999999999999 0.501 -> 1.000000000000000E+16 Inexact Rounded +ddadd71396 add 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 +ddadd71420 add 0 1.123456789012345 -> 1.123456789012345 +ddadd71421 add 0 1.123456789012345E-1 -> 0.1123456789012345 +ddadd71422 add 0 1.123456789012345E-2 -> 0.01123456789012345 +ddadd71423 add 0 1.123456789012345E-3 -> 0.001123456789012345 +ddadd71424 add 0 1.123456789012345E-4 -> 0.0001123456789012345 +ddadd71425 add 0 1.123456789012345E-5 -> 0.00001123456789012345 +ddadd71426 add 0 1.123456789012345E-6 -> 0.000001123456789012345 +ddadd71427 add 0 1.123456789012345E-7 -> 1.123456789012345E-7 +ddadd71428 add 0 1.123456789012345E-8 -> 1.123456789012345E-8 +ddadd71429 add 0 1.123456789012345E-9 -> 1.123456789012345E-9 +ddadd71430 add 0 1.123456789012345E-10 -> 1.123456789012345E-10 +ddadd71431 add 0 1.123456789012345E-11 -> 1.123456789012345E-11 +ddadd71432 add 0 1.123456789012345E-12 -> 1.123456789012345E-12 +ddadd71433 add 0 1.123456789012345E-13 -> 1.123456789012345E-13 +ddadd71434 add 0 1.123456789012345E-14 -> 1.123456789012345E-14 +ddadd71435 add 0 1.123456789012345E-15 -> 1.123456789012345E-15 +ddadd71436 add 0 1.123456789012345E-16 -> 1.123456789012345E-16 +ddadd71437 add 0 1.123456789012345E-17 -> 1.123456789012345E-17 +ddadd71438 add 0 1.123456789012345E-18 -> 1.123456789012345E-18 +ddadd71439 add 0 1.123456789012345E-19 -> 1.123456789012345E-19 + +-- same, reversed 0 +ddadd71440 add 1.123456789012345 0 -> 1.123456789012345 +ddadd71441 add 1.123456789012345E-1 0 -> 0.1123456789012345 +ddadd71442 add 1.123456789012345E-2 0 -> 0.01123456789012345 +ddadd71443 add 1.123456789012345E-3 0 -> 0.001123456789012345 +ddadd71444 add 1.123456789012345E-4 0 -> 0.0001123456789012345 +ddadd71445 add 1.123456789012345E-5 0 -> 0.00001123456789012345 +ddadd71446 add 1.123456789012345E-6 0 -> 0.000001123456789012345 +ddadd71447 add 1.123456789012345E-7 0 -> 1.123456789012345E-7 +ddadd71448 add 1.123456789012345E-8 0 -> 1.123456789012345E-8 +ddadd71449 add 1.123456789012345E-9 0 -> 1.123456789012345E-9 +ddadd71450 add 1.123456789012345E-10 0 -> 1.123456789012345E-10 +ddadd71451 add 1.123456789012345E-11 0 -> 1.123456789012345E-11 +ddadd71452 add 1.123456789012345E-12 0 -> 1.123456789012345E-12 +ddadd71453 add 1.123456789012345E-13 0 -> 1.123456789012345E-13 +ddadd71454 add 1.123456789012345E-14 0 -> 1.123456789012345E-14 +ddadd71455 add 1.123456789012345E-15 0 -> 1.123456789012345E-15 +ddadd71456 add 1.123456789012345E-16 0 -> 1.123456789012345E-16 +ddadd71457 add 1.123456789012345E-17 0 -> 1.123456789012345E-17 +ddadd71458 add 1.123456789012345E-18 0 -> 1.123456789012345E-18 +ddadd71459 add 1.123456789012345E-19 0 -> 1.123456789012345E-19 + +-- same, Es on the 0 +ddadd71460 add 1.123456789012345 0E-0 -> 1.123456789012345 +ddadd71461 add 1.123456789012345 0E-1 -> 1.123456789012345 +ddadd71462 add 1.123456789012345 0E-2 -> 1.123456789012345 +ddadd71463 add 1.123456789012345 0E-3 -> 1.123456789012345 +ddadd71464 add 1.123456789012345 0E-4 -> 1.123456789012345 +ddadd71465 add 1.123456789012345 0E-5 -> 1.123456789012345 +ddadd71466 add 1.123456789012345 0E-6 -> 1.123456789012345 +ddadd71467 add 1.123456789012345 0E-7 -> 1.123456789012345 +ddadd71468 add 1.123456789012345 0E-8 -> 1.123456789012345 +ddadd71469 add 1.123456789012345 0E-9 -> 1.123456789012345 +ddadd71470 add 1.123456789012345 0E-10 -> 1.123456789012345 +ddadd71471 add 1.123456789012345 0E-11 -> 1.123456789012345 +ddadd71472 add 1.123456789012345 0E-12 -> 1.123456789012345 +ddadd71473 add 1.123456789012345 0E-13 -> 1.123456789012345 +ddadd71474 add 1.123456789012345 0E-14 -> 1.123456789012345 +ddadd71475 add 1.123456789012345 0E-15 -> 1.123456789012345 +-- next four flag Rounded because the 0 extends the result +ddadd71476 add 1.123456789012345 0E-16 -> 1.123456789012345 Rounded +ddadd71477 add 1.123456789012345 0E-17 -> 1.123456789012345 Rounded +ddadd71478 add 1.123456789012345 0E-18 -> 1.123456789012345 Rounded +ddadd71479 add 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 +ddadd71500 add 0 0E-19 -> 0E-19 +ddadd71501 add -0 0E-19 -> 0E-19 +ddadd71502 add 0 -0E-19 -> 0E-19 +ddadd71503 add -0 -0E-19 -> -0E-19 +-- exact zeros from non-zeros +ddadd71511 add -11 11 -> 0 +ddadd71512 add 11 -11 -> 0 + +rounding: half_down +-- exact zeros from zeros +ddadd71520 add 0 0E-19 -> 0E-19 +ddadd71521 add -0 0E-19 -> 0E-19 +ddadd71522 add 0 -0E-19 -> 0E-19 +ddadd71523 add -0 -0E-19 -> -0E-19 +-- exact zeros from non-zeros +ddadd71531 add -11 11 -> 0 +ddadd71532 add 11 -11 -> 0 + +rounding: half_even +-- exact zeros from zeros +ddadd71540 add 0 0E-19 -> 0E-19 +ddadd71541 add -0 0E-19 -> 0E-19 +ddadd71542 add 0 -0E-19 -> 0E-19 +ddadd71543 add -0 -0E-19 -> -0E-19 +-- exact zeros from non-zeros +ddadd71551 add -11 11 -> 0 +ddadd71552 add 11 -11 -> 0 + +rounding: up +-- exact zeros from zeros +ddadd71560 add 0 0E-19 -> 0E-19 +ddadd71561 add -0 0E-19 -> 0E-19 +ddadd71562 add 0 -0E-19 -> 0E-19 +ddadd71563 add -0 -0E-19 -> -0E-19 +-- exact zeros from non-zeros +ddadd71571 add -11 11 -> 0 +ddadd71572 add 11 -11 -> 0 + +rounding: down +-- exact zeros from zeros +ddadd71580 add 0 0E-19 -> 0E-19 +ddadd71581 add -0 0E-19 -> 0E-19 +ddadd71582 add 0 -0E-19 -> 0E-19 +ddadd71583 add -0 -0E-19 -> -0E-19 +-- exact zeros from non-zeros +ddadd71591 add -11 11 -> 0 +ddadd71592 add 11 -11 -> 0 + +rounding: ceiling +-- exact zeros from zeros +ddadd71600 add 0 0E-19 -> 0E-19 +ddadd71601 add -0 0E-19 -> 0E-19 +ddadd71602 add 0 -0E-19 -> 0E-19 +ddadd71603 add -0 -0E-19 -> -0E-19 +-- exact zeros from non-zeros +ddadd71611 add -11 11 -> 0 +ddadd71612 add 11 -11 -> 0 + +-- and the extra-special ugly case; unusual minuses marked by -- * +rounding: floor +-- exact zeros from zeros +ddadd71620 add 0 0E-19 -> 0E-19 +ddadd71621 add -0 0E-19 -> -0E-19 -- * +ddadd71622 add 0 -0E-19 -> -0E-19 -- * +ddadd71623 add -0 -0E-19 -> -0E-19 +-- exact zeros from non-zeros +ddadd71631 add -11 11 -> -0 -- * +ddadd71632 add 11 -11 -> -0 -- * + +-- Examples from SQL proposal (Krishna Kulkarni) +ddadd71701 add 130E-2 120E-2 -> 2.50 +ddadd71702 add 130E-2 12E-1 -> 2.50 +ddadd71703 add 130E-2 1E0 -> 2.30 +ddadd71704 add 1E2 1E4 -> 1.01E+4 +ddadd71705 add 130E-2 -120E-2 -> 0.10 +ddadd71706 add 130E-2 -12E-1 -> 0.10 +ddadd71707 add 130E-2 -1E0 -> 0.30 +ddadd71708 add 1E2 -1E4 -> -9.9E+3 + +-- query from Vincent Kulandaisamy +rounding: ceiling +ddadd71801 add 7.8822773805862E+277 -5.1757503820663E-21 -> 7.882277380586200E+277 Inexact Rounded +ddadd71802 add 7.882277380586200E+277 12.341 -> 7.882277380586201E+277 Inexact Rounded +ddadd71803 add 7.882277380586201E+277 2.7270545046613E-31 -> 7.882277380586202E+277 Inexact Rounded + +ddadd71811 add 12.341 -5.1757503820663E-21 -> 12.34100000000000 Inexact Rounded +ddadd71812 add 12.34100000000000 2.7270545046613E-31 -> 12.34100000000001 Inexact Rounded +ddadd71813 add 12.34100000000001 7.8822773805862E+277 -> 7.882277380586201E+277 Inexact Rounded + +-- Gappy coefficients; check residue handling even with full coefficient gap +rounding: half_even + +ddadd75001 add 1234567890123456 1 -> 1234567890123457 +ddadd75002 add 1234567890123456 0.6 -> 1234567890123457 Inexact Rounded +ddadd75003 add 1234567890123456 0.06 -> 1234567890123456 Inexact Rounded +ddadd75004 add 1234567890123456 6E-3 -> 1234567890123456 Inexact Rounded +ddadd75005 add 1234567890123456 6E-4 -> 1234567890123456 Inexact Rounded +ddadd75006 add 1234567890123456 6E-5 -> 1234567890123456 Inexact Rounded +ddadd75007 add 1234567890123456 6E-6 -> 1234567890123456 Inexact Rounded +ddadd75008 add 1234567890123456 6E-7 -> 1234567890123456 Inexact Rounded +ddadd75009 add 1234567890123456 6E-8 -> 1234567890123456 Inexact Rounded +ddadd75010 add 1234567890123456 6E-9 -> 1234567890123456 Inexact Rounded +ddadd75011 add 1234567890123456 6E-10 -> 1234567890123456 Inexact Rounded +ddadd75012 add 1234567890123456 6E-11 -> 1234567890123456 Inexact Rounded +ddadd75013 add 1234567890123456 6E-12 -> 1234567890123456 Inexact Rounded +ddadd75014 add 1234567890123456 6E-13 -> 1234567890123456 Inexact Rounded +ddadd75015 add 1234567890123456 6E-14 -> 1234567890123456 Inexact Rounded +ddadd75016 add 1234567890123456 6E-15 -> 1234567890123456 Inexact Rounded +ddadd75017 add 1234567890123456 6E-16 -> 1234567890123456 Inexact Rounded +ddadd75018 add 1234567890123456 6E-17 -> 1234567890123456 Inexact Rounded +ddadd75019 add 1234567890123456 6E-18 -> 1234567890123456 Inexact Rounded +ddadd75020 add 1234567890123456 6E-19 -> 1234567890123456 Inexact Rounded +ddadd75021 add 1234567890123456 6E-20 -> 1234567890123456 Inexact Rounded + +-- widening second argument at gap +ddadd75030 add 12345678 1 -> 12345679 +ddadd75031 add 12345678 0.1 -> 12345678.1 +ddadd75032 add 12345678 0.12 -> 12345678.12 +ddadd75033 add 12345678 0.123 -> 12345678.123 +ddadd75034 add 12345678 0.1234 -> 12345678.1234 +ddadd75035 add 12345678 0.12345 -> 12345678.12345 +ddadd75036 add 12345678 0.123456 -> 12345678.123456 +ddadd75037 add 12345678 0.1234567 -> 12345678.1234567 +ddadd75038 add 12345678 0.12345678 -> 12345678.12345678 +ddadd75039 add 12345678 0.123456789 -> 12345678.12345679 Inexact Rounded +ddadd75040 add 12345678 0.123456785 -> 12345678.12345678 Inexact Rounded +ddadd75041 add 12345678 0.1234567850 -> 12345678.12345678 Inexact Rounded +ddadd75042 add 12345678 0.1234567851 -> 12345678.12345679 Inexact Rounded +ddadd75043 add 12345678 0.12345678501 -> 12345678.12345679 Inexact Rounded +ddadd75044 add 12345678 0.123456785001 -> 12345678.12345679 Inexact Rounded +ddadd75045 add 12345678 0.1234567850001 -> 12345678.12345679 Inexact Rounded +ddadd75046 add 12345678 0.12345678500001 -> 12345678.12345679 Inexact Rounded +ddadd75047 add 12345678 0.123456785000001 -> 12345678.12345679 Inexact Rounded +ddadd75048 add 12345678 0.1234567850000001 -> 12345678.12345679 Inexact Rounded +ddadd75049 add 12345678 0.1234567850000000 -> 12345678.12345678 Inexact Rounded +-- 90123456 +rounding: half_even +ddadd75050 add 12345678 0.0234567750000000 -> 12345678.02345678 Inexact Rounded +ddadd75051 add 12345678 0.0034567750000000 -> 12345678.00345678 Inexact Rounded +ddadd75052 add 12345678 0.0004567750000000 -> 12345678.00045678 Inexact Rounded +ddadd75053 add 12345678 0.0000567750000000 -> 12345678.00005678 Inexact Rounded +ddadd75054 add 12345678 0.0000067750000000 -> 12345678.00000678 Inexact Rounded +ddadd75055 add 12345678 0.0000007750000000 -> 12345678.00000078 Inexact Rounded +ddadd75056 add 12345678 0.0000000750000000 -> 12345678.00000008 Inexact Rounded +ddadd75057 add 12345678 0.0000000050000000 -> 12345678.00000000 Inexact Rounded +ddadd75060 add 12345678 0.0234567750000001 -> 12345678.02345678 Inexact Rounded +ddadd75061 add 12345678 0.0034567750000001 -> 12345678.00345678 Inexact Rounded +ddadd75062 add 12345678 0.0004567750000001 -> 12345678.00045678 Inexact Rounded +ddadd75063 add 12345678 0.0000567750000001 -> 12345678.00005678 Inexact Rounded +ddadd75064 add 12345678 0.0000067750000001 -> 12345678.00000678 Inexact Rounded +ddadd75065 add 12345678 0.0000007750000001 -> 12345678.00000078 Inexact Rounded +ddadd75066 add 12345678 0.0000000750000001 -> 12345678.00000008 Inexact Rounded +ddadd75067 add 12345678 0.0000000050000001 -> 12345678.00000001 Inexact Rounded +-- far-out residues (full coefficient gap is 16+15 digits) +rounding: up +ddadd75070 add 12345678 1E-8 -> 12345678.00000001 +ddadd75071 add 12345678 1E-9 -> 12345678.00000001 Inexact Rounded +ddadd75072 add 12345678 1E-10 -> 12345678.00000001 Inexact Rounded +ddadd75073 add 12345678 1E-11 -> 12345678.00000001 Inexact Rounded +ddadd75074 add 12345678 1E-12 -> 12345678.00000001 Inexact Rounded +ddadd75075 add 12345678 1E-13 -> 12345678.00000001 Inexact Rounded +ddadd75076 add 12345678 1E-14 -> 12345678.00000001 Inexact Rounded +ddadd75077 add 12345678 1E-15 -> 12345678.00000001 Inexact Rounded +ddadd75078 add 12345678 1E-16 -> 12345678.00000001 Inexact Rounded +ddadd75079 add 12345678 1E-17 -> 12345678.00000001 Inexact Rounded +ddadd75080 add 12345678 1E-18 -> 12345678.00000001 Inexact Rounded +ddadd75081 add 12345678 1E-19 -> 12345678.00000001 Inexact Rounded +ddadd75082 add 12345678 1E-20 -> 12345678.00000001 Inexact Rounded +ddadd75083 add 12345678 1E-25 -> 12345678.00000001 Inexact Rounded +ddadd75084 add 12345678 1E-30 -> 12345678.00000001 Inexact Rounded +ddadd75085 add 12345678 1E-31 -> 12345678.00000001 Inexact Rounded +ddadd75086 add 12345678 1E-32 -> 12345678.00000001 Inexact Rounded +ddadd75087 add 12345678 1E-33 -> 12345678.00000001 Inexact Rounded +ddadd75088 add 12345678 1E-34 -> 12345678.00000001 Inexact Rounded +ddadd75089 add 12345678 1E-35 -> 12345678.00000001 Inexact Rounded + +-- Punit's +ddadd75100 add 1.000 -200.000 -> -199.000 + +-- Rounding swathe +rounding: half_even +ddadd81100 add .2300 12345678901234.00 -> 12345678901234.23 Rounded +ddadd81101 add .2301 12345678901234.00 -> 12345678901234.23 Inexact Rounded +ddadd81102 add .2310 12345678901234.00 -> 12345678901234.23 Inexact Rounded +ddadd81103 add .2350 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd81104 add .2351 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd81105 add .2450 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd81106 add .2451 12345678901234.00 -> 12345678901234.25 Inexact Rounded +ddadd81107 add .2360 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd81108 add .2370 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd81109 add .2399 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd81120 add 9999999999999999E+369 9E+369 -> Infinity Overflow Inexact Rounded +ddadd81121 add -9999999999999999E+369 -9E+369 -> -Infinity Overflow Inexact Rounded + +rounding: half_up +ddadd81200 add .2300 12345678901234.00 -> 12345678901234.23 Rounded +ddadd81201 add .2301 12345678901234.00 -> 12345678901234.23 Inexact Rounded +ddadd81202 add .2310 12345678901234.00 -> 12345678901234.23 Inexact Rounded +ddadd81203 add .2350 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd81204 add .2351 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd81205 add .2450 12345678901234.00 -> 12345678901234.25 Inexact Rounded +ddadd81206 add .2451 12345678901234.00 -> 12345678901234.25 Inexact Rounded +ddadd81207 add .2360 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd81208 add .2370 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd81209 add .2399 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd81220 add 9999999999999999E+369 9E+369 -> Infinity Overflow Inexact Rounded +ddadd81221 add -9999999999999999E+369 -9E+369 -> -Infinity Overflow Inexact Rounded + +rounding: half_down +ddadd81300 add .2300 12345678901234.00 -> 12345678901234.23 Rounded +ddadd81301 add .2301 12345678901234.00 -> 12345678901234.23 Inexact Rounded +ddadd81302 add .2310 12345678901234.00 -> 12345678901234.23 Inexact Rounded +ddadd81303 add .2350 12345678901234.00 -> 12345678901234.23 Inexact Rounded +ddadd81304 add .2351 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd81305 add .2450 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd81306 add .2451 12345678901234.00 -> 12345678901234.25 Inexact Rounded +ddadd81307 add .2360 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd81308 add .2370 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd81309 add .2399 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd81320 add 9999999999999999E+369 9E+369 -> Infinity Overflow Inexact Rounded +ddadd81321 add -9999999999999999E+369 -9E+369 -> -Infinity Overflow Inexact Rounded + +rounding: up +ddadd81400 add .2300 12345678901234.00 -> 12345678901234.23 Rounded +ddadd81401 add .2301 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd81402 add .2310 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd81403 add .2350 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd81404 add .2351 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd81405 add .2450 12345678901234.00 -> 12345678901234.25 Inexact Rounded +ddadd81406 add .2451 12345678901234.00 -> 12345678901234.25 Inexact Rounded +ddadd81407 add .2360 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd81408 add .2370 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd81409 add .2399 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd81411 add -.2399 -12345678901234.00 -> -12345678901234.24 Inexact Rounded +ddadd81420 add 9999999999999999E+369 9E+369 -> Infinity Overflow Inexact Rounded +ddadd81421 add -9999999999999999E+369 -9E+369 -> -Infinity Overflow Inexact Rounded + +rounding: down +ddadd81500 add .2300 12345678901234.00 -> 12345678901234.23 Rounded +ddadd81501 add .2301 12345678901234.00 -> 12345678901234.23 Inexact Rounded +ddadd81502 add .2310 12345678901234.00 -> 12345678901234.23 Inexact Rounded +ddadd81503 add .2350 12345678901234.00 -> 12345678901234.23 Inexact Rounded +ddadd81504 add .2351 12345678901234.00 -> 12345678901234.23 Inexact Rounded +ddadd81505 add .2450 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd81506 add .2451 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd81507 add .2360 12345678901234.00 -> 12345678901234.23 Inexact Rounded +ddadd81508 add .2370 12345678901234.00 -> 12345678901234.23 Inexact Rounded +ddadd81509 add .2399 12345678901234.00 -> 12345678901234.23 Inexact Rounded +ddadd81511 add -.2399 -12345678901234.00 -> -12345678901234.23 Inexact Rounded +ddadd81520 add 9999999999999999E+369 9E+369 -> 9.999999999999999E+384 Overflow Inexact Rounded +ddadd81521 add -9999999999999999E+369 -9E+369 -> -9.999999999999999E+384 Overflow Inexact Rounded + +rounding: ceiling +ddadd81600 add .2300 12345678901234.00 -> 12345678901234.23 Rounded +ddadd81601 add .2301 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd81602 add .2310 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd81603 add .2350 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd81604 add .2351 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd81605 add .2450 12345678901234.00 -> 12345678901234.25 Inexact Rounded +ddadd81606 add .2451 12345678901234.00 -> 12345678901234.25 Inexact Rounded +ddadd81607 add .2360 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd81608 add .2370 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd81609 add .2399 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd81611 add -.2399 -12345678901234.00 -> -12345678901234.23 Inexact Rounded +ddadd81620 add 9999999999999999E+369 9E+369 -> Infinity Overflow Inexact Rounded +ddadd81621 add -9999999999999999E+369 -9E+369 -> -9.999999999999999E+384 Overflow Inexact Rounded + +rounding: floor +ddadd81700 add .2300 12345678901234.00 -> 12345678901234.23 Rounded +ddadd81701 add .2301 12345678901234.00 -> 12345678901234.23 Inexact Rounded +ddadd81702 add .2310 12345678901234.00 -> 12345678901234.23 Inexact Rounded +ddadd81703 add .2350 12345678901234.00 -> 12345678901234.23 Inexact Rounded +ddadd81704 add .2351 12345678901234.00 -> 12345678901234.23 Inexact Rounded +ddadd81705 add .2450 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd81706 add .2451 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd81707 add .2360 12345678901234.00 -> 12345678901234.23 Inexact Rounded +ddadd81708 add .2370 12345678901234.00 -> 12345678901234.23 Inexact Rounded +ddadd81709 add .2399 12345678901234.00 -> 12345678901234.23 Inexact Rounded +ddadd81711 add -.2399 -12345678901234.00 -> -12345678901234.24 Inexact Rounded +ddadd81720 add 9999999999999999E+369 9E+369 -> 9.999999999999999E+384 Overflow Inexact Rounded +ddadd81721 add -9999999999999999E+369 -9E+369 -> -Infinity Overflow Inexact Rounded + +rounding: 05up +ddadd81800 add .2000 12345678901234.00 -> 12345678901234.20 Rounded +ddadd81801 add .2001 12345678901234.00 -> 12345678901234.21 Inexact Rounded +ddadd81802 add .2010 12345678901234.00 -> 12345678901234.21 Inexact Rounded +ddadd81803 add .2050 12345678901234.00 -> 12345678901234.21 Inexact Rounded +ddadd81804 add .2051 12345678901234.00 -> 12345678901234.21 Inexact Rounded +ddadd81807 add .2060 12345678901234.00 -> 12345678901234.21 Inexact Rounded +ddadd81808 add .2070 12345678901234.00 -> 12345678901234.21 Inexact Rounded +ddadd81809 add .2099 12345678901234.00 -> 12345678901234.21 Inexact Rounded +ddadd81811 add -.2099 -12345678901234.00 -> -12345678901234.21 Inexact Rounded +ddadd81820 add 9999999999999999E+369 9E+369 -> 9.999999999999999E+384 Overflow Inexact Rounded +ddadd81821 add -9999999999999999E+369 -9E+369 -> -9.999999999999999E+384 Overflow Inexact Rounded + +ddadd81900 add .2100 12345678901234.00 -> 12345678901234.21 Rounded +ddadd81901 add .2101 12345678901234.00 -> 12345678901234.21 Inexact Rounded +ddadd81902 add .2110 12345678901234.00 -> 12345678901234.21 Inexact Rounded +ddadd81903 add .2150 12345678901234.00 -> 12345678901234.21 Inexact Rounded +ddadd81904 add .2151 12345678901234.00 -> 12345678901234.21 Inexact Rounded +ddadd81907 add .2160 12345678901234.00 -> 12345678901234.21 Inexact Rounded +ddadd81908 add .2170 12345678901234.00 -> 12345678901234.21 Inexact Rounded +ddadd81909 add .2199 12345678901234.00 -> 12345678901234.21 Inexact Rounded +ddadd81911 add -.2199 -12345678901234.00 -> -12345678901234.21 Inexact Rounded + +ddadd82000 add .2400 12345678901234.00 -> 12345678901234.24 Rounded +ddadd82001 add .2401 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd82002 add .2410 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd82003 add .2450 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd82004 add .2451 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd82007 add .2460 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd82008 add .2470 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd82009 add .2499 12345678901234.00 -> 12345678901234.24 Inexact Rounded +ddadd82011 add -.2499 -12345678901234.00 -> -12345678901234.24 Inexact Rounded + +ddadd82100 add .2500 12345678901234.00 -> 12345678901234.25 Rounded +ddadd82101 add .2501 12345678901234.00 -> 12345678901234.26 Inexact Rounded +ddadd82102 add .2510 12345678901234.00 -> 12345678901234.26 Inexact Rounded +ddadd82103 add .2550 12345678901234.00 -> 12345678901234.26 Inexact Rounded +ddadd82104 add .2551 12345678901234.00 -> 12345678901234.26 Inexact Rounded +ddadd82107 add .2560 12345678901234.00 -> 12345678901234.26 Inexact Rounded +ddadd82108 add .2570 12345678901234.00 -> 12345678901234.26 Inexact Rounded +ddadd82109 add .2599 12345678901234.00 -> 12345678901234.26 Inexact Rounded +ddadd82111 add -.2599 -12345678901234.00 -> -12345678901234.26 Inexact Rounded + +ddadd82200 add .2600 12345678901234.00 -> 12345678901234.26 Rounded +ddadd82201 add .2601 12345678901234.00 -> 12345678901234.26 Inexact Rounded +ddadd82202 add .2610 12345678901234.00 -> 12345678901234.26 Inexact Rounded +ddadd82203 add .2650 12345678901234.00 -> 12345678901234.26 Inexact Rounded +ddadd82204 add .2651 12345678901234.00 -> 12345678901234.26 Inexact Rounded +ddadd82207 add .2660 12345678901234.00 -> 12345678901234.26 Inexact Rounded +ddadd82208 add .2670 12345678901234.00 -> 12345678901234.26 Inexact Rounded +ddadd82209 add .2699 12345678901234.00 -> 12345678901234.26 Inexact Rounded +ddadd82211 add -.2699 -12345678901234.00 -> -12345678901234.26 Inexact Rounded + +ddadd82300 add .2900 12345678901234.00 -> 12345678901234.29 Rounded +ddadd82301 add .2901 12345678901234.00 -> 12345678901234.29 Inexact Rounded +ddadd82302 add .2910 12345678901234.00 -> 12345678901234.29 Inexact Rounded +ddadd82303 add .2950 12345678901234.00 -> 12345678901234.29 Inexact Rounded +ddadd82304 add .2951 12345678901234.00 -> 12345678901234.29 Inexact Rounded +ddadd82307 add .2960 12345678901234.00 -> 12345678901234.29 Inexact Rounded +ddadd82308 add .2970 12345678901234.00 -> 12345678901234.29 Inexact Rounded +ddadd82309 add .2999 12345678901234.00 -> 12345678901234.29 Inexact Rounded +ddadd82311 add -.2999 -12345678901234.00 -> -12345678901234.29 Inexact Rounded + +-- Null tests +ddadd9990 add 10 # -> NaN Invalid_operation +ddadd9991 add # 10 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/ddAnd.decTest b/Lib/test/decimaltestdata/ddAnd.decTest index 676517548c..64a9f92df9 100644 --- a/Lib/test/decimaltestdata/ddAnd.decTest +++ b/Lib/test/decimaltestdata/ddAnd.decTest @@ -1,347 +1,347 @@ -------------------------------------------------------------------------
--- ddAnd.decTest -- digitwise logical AND for decDoubles --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
--- Sanity check (truth table)
-ddand001 and 0 0 -> 0
-ddand002 and 0 1 -> 0
-ddand003 and 1 0 -> 0
-ddand004 and 1 1 -> 1
-ddand005 and 1100 1010 -> 1000
--- and at msd and msd-1
--- 1234567890123456 1234567890123456 1234567890123456
-ddand006 and 0000000000000000 0000000000000000 -> 0
-ddand007 and 0000000000000000 1000000000000000 -> 0
-ddand008 and 1000000000000000 0000000000000000 -> 0
-ddand009 and 1000000000000000 1000000000000000 -> 1000000000000000
-ddand010 and 0000000000000000 0000000000000000 -> 0
-ddand011 and 0000000000000000 0100000000000000 -> 0
-ddand012 and 0100000000000000 0000000000000000 -> 0
-ddand013 and 0100000000000000 0100000000000000 -> 100000000000000
-
--- Various lengths
--- 1234567890123456 1234567890123456 1234567890123456
-ddand021 and 1111111111111111 1111111111111111 -> 1111111111111111
-ddand024 and 1111111111111111 111111111111111 -> 111111111111111
-ddand025 and 1111111111111111 11111111111111 -> 11111111111111
-ddand026 and 1111111111111111 1111111111111 -> 1111111111111
-ddand027 and 1111111111111111 111111111111 -> 111111111111
-ddand028 and 1111111111111111 11111111111 -> 11111111111
-ddand029 and 1111111111111111 1111111111 -> 1111111111
-ddand030 and 1111111111111111 111111111 -> 111111111
-ddand031 and 1111111111111111 11111111 -> 11111111
-ddand032 and 1111111111111111 1111111 -> 1111111
-ddand033 and 1111111111111111 111111 -> 111111
-ddand034 and 1111111111111111 11111 -> 11111
-ddand035 and 1111111111111111 1111 -> 1111
-ddand036 and 1111111111111111 111 -> 111
-ddand037 and 1111111111111111 11 -> 11
-ddand038 and 1111111111111111 1 -> 1
-ddand039 and 1111111111111111 0 -> 0
-
-ddand040 and 1111111111111111 1111111111111111 -> 1111111111111111
-ddand041 and 111111111111111 1111111111111111 -> 111111111111111
-ddand042 and 111111111111111 1111111111111111 -> 111111111111111
-ddand043 and 11111111111111 1111111111111111 -> 11111111111111
-ddand044 and 1111111111111 1111111111111111 -> 1111111111111
-ddand045 and 111111111111 1111111111111111 -> 111111111111
-ddand046 and 11111111111 1111111111111111 -> 11111111111
-ddand047 and 1111111111 1111111111111111 -> 1111111111
-ddand048 and 111111111 1111111111111111 -> 111111111
-ddand049 and 11111111 1111111111111111 -> 11111111
-ddand050 and 1111111 1111111111111111 -> 1111111
-ddand051 and 111111 1111111111111111 -> 111111
-ddand052 and 11111 1111111111111111 -> 11111
-ddand053 and 1111 1111111111111111 -> 1111
-ddand054 and 111 1111111111111111 -> 111
-ddand055 and 11 1111111111111111 -> 11
-ddand056 and 1 1111111111111111 -> 1
-ddand057 and 0 1111111111111111 -> 0
-
-ddand150 and 1111111111 1 -> 1
-ddand151 and 111111111 1 -> 1
-ddand152 and 11111111 1 -> 1
-ddand153 and 1111111 1 -> 1
-ddand154 and 111111 1 -> 1
-ddand155 and 11111 1 -> 1
-ddand156 and 1111 1 -> 1
-ddand157 and 111 1 -> 1
-ddand158 and 11 1 -> 1
-ddand159 and 1 1 -> 1
-
-ddand160 and 1111111111 0 -> 0
-ddand161 and 111111111 0 -> 0
-ddand162 and 11111111 0 -> 0
-ddand163 and 1111111 0 -> 0
-ddand164 and 111111 0 -> 0
-ddand165 and 11111 0 -> 0
-ddand166 and 1111 0 -> 0
-ddand167 and 111 0 -> 0
-ddand168 and 11 0 -> 0
-ddand169 and 1 0 -> 0
-
-ddand170 and 1 1111111111 -> 1
-ddand171 and 1 111111111 -> 1
-ddand172 and 1 11111111 -> 1
-ddand173 and 1 1111111 -> 1
-ddand174 and 1 111111 -> 1
-ddand175 and 1 11111 -> 1
-ddand176 and 1 1111 -> 1
-ddand177 and 1 111 -> 1
-ddand178 and 1 11 -> 1
-ddand179 and 1 1 -> 1
-
-ddand180 and 0 1111111111 -> 0
-ddand181 and 0 111111111 -> 0
-ddand182 and 0 11111111 -> 0
-ddand183 and 0 1111111 -> 0
-ddand184 and 0 111111 -> 0
-ddand185 and 0 11111 -> 0
-ddand186 and 0 1111 -> 0
-ddand187 and 0 111 -> 0
-ddand188 and 0 11 -> 0
-ddand189 and 0 1 -> 0
-
-ddand090 and 011111111 111111111 -> 11111111
-ddand091 and 101111111 111111111 -> 101111111
-ddand092 and 110111111 111111111 -> 110111111
-ddand093 and 111011111 111111111 -> 111011111
-ddand094 and 111101111 111111111 -> 111101111
-ddand095 and 111110111 111111111 -> 111110111
-ddand096 and 111111011 111111111 -> 111111011
-ddand097 and 111111101 111111111 -> 111111101
-ddand098 and 111111110 111111111 -> 111111110
-
-ddand100 and 111111111 011111111 -> 11111111
-ddand101 and 111111111 101111111 -> 101111111
-ddand102 and 111111111 110111111 -> 110111111
-ddand103 and 111111111 111011111 -> 111011111
-ddand104 and 111111111 111101111 -> 111101111
-ddand105 and 111111111 111110111 -> 111110111
-ddand106 and 111111111 111111011 -> 111111011
-ddand107 and 111111111 111111101 -> 111111101
-ddand108 and 111111111 111111110 -> 111111110
-
--- non-0/1 should not be accepted, nor should signs
-ddand220 and 111111112 111111111 -> NaN Invalid_operation
-ddand221 and 333333333 333333333 -> NaN Invalid_operation
-ddand222 and 555555555 555555555 -> NaN Invalid_operation
-ddand223 and 777777777 777777777 -> NaN Invalid_operation
-ddand224 and 999999999 999999999 -> NaN Invalid_operation
-ddand225 and 222222222 999999999 -> NaN Invalid_operation
-ddand226 and 444444444 999999999 -> NaN Invalid_operation
-ddand227 and 666666666 999999999 -> NaN Invalid_operation
-ddand228 and 888888888 999999999 -> NaN Invalid_operation
-ddand229 and 999999999 222222222 -> NaN Invalid_operation
-ddand230 and 999999999 444444444 -> NaN Invalid_operation
-ddand231 and 999999999 666666666 -> NaN Invalid_operation
-ddand232 and 999999999 888888888 -> NaN Invalid_operation
--- a few randoms
-ddand240 and 567468689 -934981942 -> NaN Invalid_operation
-ddand241 and 567367689 934981942 -> NaN Invalid_operation
-ddand242 and -631917772 -706014634 -> NaN Invalid_operation
-ddand243 and -756253257 138579234 -> NaN Invalid_operation
-ddand244 and 835590149 567435400 -> NaN Invalid_operation
--- test MSD
-ddand250 and 2000000000000000 1000000000000000 -> NaN Invalid_operation
-ddand251 and 7000000000000000 1000000000000000 -> NaN Invalid_operation
-ddand252 and 8000000000000000 1000000000000000 -> NaN Invalid_operation
-ddand253 and 9000000000000000 1000000000000000 -> NaN Invalid_operation
-ddand254 and 2000000000000000 0000000000000000 -> NaN Invalid_operation
-ddand255 and 7000000000000000 0000000000000000 -> NaN Invalid_operation
-ddand256 and 8000000000000000 0000000000000000 -> NaN Invalid_operation
-ddand257 and 9000000000000000 0000000000000000 -> NaN Invalid_operation
-ddand258 and 1000000000000000 2000000000000000 -> NaN Invalid_operation
-ddand259 and 1000000000000000 7000000000000000 -> NaN Invalid_operation
-ddand260 and 1000000000000000 8000000000000000 -> NaN Invalid_operation
-ddand261 and 1000000000000000 9000000000000000 -> NaN Invalid_operation
-ddand262 and 0000000000000000 2000000000000000 -> NaN Invalid_operation
-ddand263 and 0000000000000000 7000000000000000 -> NaN Invalid_operation
-ddand264 and 0000000000000000 8000000000000000 -> NaN Invalid_operation
-ddand265 and 0000000000000000 9000000000000000 -> NaN Invalid_operation
--- test MSD-1
-ddand270 and 0200001000000000 1000100000000010 -> NaN Invalid_operation
-ddand271 and 0700000100000000 1000010000000100 -> NaN Invalid_operation
-ddand272 and 0800000010000000 1000001000001000 -> NaN Invalid_operation
-ddand273 and 0900000001000000 1000000100010000 -> NaN Invalid_operation
-ddand274 and 1000000000100000 0200000010100000 -> NaN Invalid_operation
-ddand275 and 1000000000010000 0700000001000000 -> NaN Invalid_operation
-ddand276 and 1000000000001000 0800000010100000 -> NaN Invalid_operation
-ddand277 and 1000000000000100 0900000000010000 -> NaN Invalid_operation
--- test LSD
-ddand280 and 0010000000000002 1000000100000001 -> NaN Invalid_operation
-ddand281 and 0001000000000007 1000001000000011 -> NaN Invalid_operation
-ddand282 and 0000100000000008 1000010000000001 -> NaN Invalid_operation
-ddand283 and 0000010000000009 1000100000000001 -> NaN Invalid_operation
-ddand284 and 1000001000000000 0001000000000002 -> NaN Invalid_operation
-ddand285 and 1000000100000000 0010000000000007 -> NaN Invalid_operation
-ddand286 and 1000000010000000 0100000000000008 -> NaN Invalid_operation
-ddand287 and 1000000001000000 1000000000000009 -> NaN Invalid_operation
--- test Middie
-ddand288 and 0010000020000000 1000001000000000 -> NaN Invalid_operation
-ddand289 and 0001000070000001 1000000100000000 -> NaN Invalid_operation
-ddand290 and 0000100080000010 1000000010000000 -> NaN Invalid_operation
-ddand291 and 0000010090000100 1000000001000000 -> NaN Invalid_operation
-ddand292 and 1000001000001000 0000000020100000 -> NaN Invalid_operation
-ddand293 and 1000000100010000 0000000070010000 -> NaN Invalid_operation
-ddand294 and 1000000010100000 0000000080001000 -> NaN Invalid_operation
-ddand295 and 1000000001000000 0000000090000100 -> NaN Invalid_operation
--- signs
-ddand296 and -1000000001000000 -0000010000000100 -> NaN Invalid_operation
-ddand297 and -1000000001000000 0000000010000100 -> NaN Invalid_operation
-ddand298 and 1000000001000000 -0000001000000100 -> NaN Invalid_operation
-ddand299 and 1000000001000000 0000000011000100 -> 1000000
-
--- Nmax, Nmin, Ntiny-like
-ddand331 and 2 9.99999999E+199 -> NaN Invalid_operation
-ddand332 and 3 1E-199 -> NaN Invalid_operation
-ddand333 and 4 1.00000000E-199 -> NaN Invalid_operation
-ddand334 and 5 1E-100 -> NaN Invalid_operation
-ddand335 and 6 -1E-100 -> NaN Invalid_operation
-ddand336 and 7 -1.00000000E-199 -> NaN Invalid_operation
-ddand337 and 8 -1E-199 -> NaN Invalid_operation
-ddand338 and 9 -9.99999999E+199 -> NaN Invalid_operation
-ddand341 and 9.99999999E+199 -18 -> NaN Invalid_operation
-ddand342 and 1E-199 01 -> NaN Invalid_operation
-ddand343 and 1.00000000E-199 -18 -> NaN Invalid_operation
-ddand344 and 1E-100 18 -> NaN Invalid_operation
-ddand345 and -1E-100 -10 -> NaN Invalid_operation
-ddand346 and -1.00000000E-199 18 -> NaN Invalid_operation
-ddand347 and -1E-199 10 -> NaN Invalid_operation
-ddand348 and -9.99999999E+199 -18 -> NaN Invalid_operation
-
--- A few other non-integers
-ddand361 and 1.0 1 -> NaN Invalid_operation
-ddand362 and 1E+1 1 -> NaN Invalid_operation
-ddand363 and 0.0 1 -> NaN Invalid_operation
-ddand364 and 0E+1 1 -> NaN Invalid_operation
-ddand365 and 9.9 1 -> NaN Invalid_operation
-ddand366 and 9E+1 1 -> NaN Invalid_operation
-ddand371 and 0 1.0 -> NaN Invalid_operation
-ddand372 and 0 1E+1 -> NaN Invalid_operation
-ddand373 and 0 0.0 -> NaN Invalid_operation
-ddand374 and 0 0E+1 -> NaN Invalid_operation
-ddand375 and 0 9.9 -> NaN Invalid_operation
-ddand376 and 0 9E+1 -> NaN Invalid_operation
-
--- All Specials are in error
-ddand780 and -Inf -Inf -> NaN Invalid_operation
-ddand781 and -Inf -1000 -> NaN Invalid_operation
-ddand782 and -Inf -1 -> NaN Invalid_operation
-ddand783 and -Inf -0 -> NaN Invalid_operation
-ddand784 and -Inf 0 -> NaN Invalid_operation
-ddand785 and -Inf 1 -> NaN Invalid_operation
-ddand786 and -Inf 1000 -> NaN Invalid_operation
-ddand787 and -1000 -Inf -> NaN Invalid_operation
-ddand788 and -Inf -Inf -> NaN Invalid_operation
-ddand789 and -1 -Inf -> NaN Invalid_operation
-ddand790 and -0 -Inf -> NaN Invalid_operation
-ddand791 and 0 -Inf -> NaN Invalid_operation
-ddand792 and 1 -Inf -> NaN Invalid_operation
-ddand793 and 1000 -Inf -> NaN Invalid_operation
-ddand794 and Inf -Inf -> NaN Invalid_operation
-
-ddand800 and Inf -Inf -> NaN Invalid_operation
-ddand801 and Inf -1000 -> NaN Invalid_operation
-ddand802 and Inf -1 -> NaN Invalid_operation
-ddand803 and Inf -0 -> NaN Invalid_operation
-ddand804 and Inf 0 -> NaN Invalid_operation
-ddand805 and Inf 1 -> NaN Invalid_operation
-ddand806 and Inf 1000 -> NaN Invalid_operation
-ddand807 and Inf Inf -> NaN Invalid_operation
-ddand808 and -1000 Inf -> NaN Invalid_operation
-ddand809 and -Inf Inf -> NaN Invalid_operation
-ddand810 and -1 Inf -> NaN Invalid_operation
-ddand811 and -0 Inf -> NaN Invalid_operation
-ddand812 and 0 Inf -> NaN Invalid_operation
-ddand813 and 1 Inf -> NaN Invalid_operation
-ddand814 and 1000 Inf -> NaN Invalid_operation
-ddand815 and Inf Inf -> NaN Invalid_operation
-
-ddand821 and NaN -Inf -> NaN Invalid_operation
-ddand822 and NaN -1000 -> NaN Invalid_operation
-ddand823 and NaN -1 -> NaN Invalid_operation
-ddand824 and NaN -0 -> NaN Invalid_operation
-ddand825 and NaN 0 -> NaN Invalid_operation
-ddand826 and NaN 1 -> NaN Invalid_operation
-ddand827 and NaN 1000 -> NaN Invalid_operation
-ddand828 and NaN Inf -> NaN Invalid_operation
-ddand829 and NaN NaN -> NaN Invalid_operation
-ddand830 and -Inf NaN -> NaN Invalid_operation
-ddand831 and -1000 NaN -> NaN Invalid_operation
-ddand832 and -1 NaN -> NaN Invalid_operation
-ddand833 and -0 NaN -> NaN Invalid_operation
-ddand834 and 0 NaN -> NaN Invalid_operation
-ddand835 and 1 NaN -> NaN Invalid_operation
-ddand836 and 1000 NaN -> NaN Invalid_operation
-ddand837 and Inf NaN -> NaN Invalid_operation
-
-ddand841 and sNaN -Inf -> NaN Invalid_operation
-ddand842 and sNaN -1000 -> NaN Invalid_operation
-ddand843 and sNaN -1 -> NaN Invalid_operation
-ddand844 and sNaN -0 -> NaN Invalid_operation
-ddand845 and sNaN 0 -> NaN Invalid_operation
-ddand846 and sNaN 1 -> NaN Invalid_operation
-ddand847 and sNaN 1000 -> NaN Invalid_operation
-ddand848 and sNaN NaN -> NaN Invalid_operation
-ddand849 and sNaN sNaN -> NaN Invalid_operation
-ddand850 and NaN sNaN -> NaN Invalid_operation
-ddand851 and -Inf sNaN -> NaN Invalid_operation
-ddand852 and -1000 sNaN -> NaN Invalid_operation
-ddand853 and -1 sNaN -> NaN Invalid_operation
-ddand854 and -0 sNaN -> NaN Invalid_operation
-ddand855 and 0 sNaN -> NaN Invalid_operation
-ddand856 and 1 sNaN -> NaN Invalid_operation
-ddand857 and 1000 sNaN -> NaN Invalid_operation
-ddand858 and Inf sNaN -> NaN Invalid_operation
-ddand859 and NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-ddand861 and NaN1 -Inf -> NaN Invalid_operation
-ddand862 and +NaN2 -1000 -> NaN Invalid_operation
-ddand863 and NaN3 1000 -> NaN Invalid_operation
-ddand864 and NaN4 Inf -> NaN Invalid_operation
-ddand865 and NaN5 +NaN6 -> NaN Invalid_operation
-ddand866 and -Inf NaN7 -> NaN Invalid_operation
-ddand867 and -1000 NaN8 -> NaN Invalid_operation
-ddand868 and 1000 NaN9 -> NaN Invalid_operation
-ddand869 and Inf +NaN10 -> NaN Invalid_operation
-ddand871 and sNaN11 -Inf -> NaN Invalid_operation
-ddand872 and sNaN12 -1000 -> NaN Invalid_operation
-ddand873 and sNaN13 1000 -> NaN Invalid_operation
-ddand874 and sNaN14 NaN17 -> NaN Invalid_operation
-ddand875 and sNaN15 sNaN18 -> NaN Invalid_operation
-ddand876 and NaN16 sNaN19 -> NaN Invalid_operation
-ddand877 and -Inf +sNaN20 -> NaN Invalid_operation
-ddand878 and -1000 sNaN21 -> NaN Invalid_operation
-ddand879 and 1000 sNaN22 -> NaN Invalid_operation
-ddand880 and Inf sNaN23 -> NaN Invalid_operation
-ddand881 and +NaN25 +sNaN24 -> NaN Invalid_operation
-ddand882 and -NaN26 NaN28 -> NaN Invalid_operation
-ddand883 and -sNaN27 sNaN29 -> NaN Invalid_operation
-ddand884 and 1000 -NaN30 -> NaN Invalid_operation
-ddand885 and 1000 -sNaN31 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- ddAnd.decTest -- digitwise logical AND for decDoubles -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +-- Sanity check (truth table) +ddand001 and 0 0 -> 0 +ddand002 and 0 1 -> 0 +ddand003 and 1 0 -> 0 +ddand004 and 1 1 -> 1 +ddand005 and 1100 1010 -> 1000 +-- and at msd and msd-1 +-- 1234567890123456 1234567890123456 1234567890123456 +ddand006 and 0000000000000000 0000000000000000 -> 0 +ddand007 and 0000000000000000 1000000000000000 -> 0 +ddand008 and 1000000000000000 0000000000000000 -> 0 +ddand009 and 1000000000000000 1000000000000000 -> 1000000000000000 +ddand010 and 0000000000000000 0000000000000000 -> 0 +ddand011 and 0000000000000000 0100000000000000 -> 0 +ddand012 and 0100000000000000 0000000000000000 -> 0 +ddand013 and 0100000000000000 0100000000000000 -> 100000000000000 + +-- Various lengths +-- 1234567890123456 1234567890123456 1234567890123456 +ddand021 and 1111111111111111 1111111111111111 -> 1111111111111111 +ddand024 and 1111111111111111 111111111111111 -> 111111111111111 +ddand025 and 1111111111111111 11111111111111 -> 11111111111111 +ddand026 and 1111111111111111 1111111111111 -> 1111111111111 +ddand027 and 1111111111111111 111111111111 -> 111111111111 +ddand028 and 1111111111111111 11111111111 -> 11111111111 +ddand029 and 1111111111111111 1111111111 -> 1111111111 +ddand030 and 1111111111111111 111111111 -> 111111111 +ddand031 and 1111111111111111 11111111 -> 11111111 +ddand032 and 1111111111111111 1111111 -> 1111111 +ddand033 and 1111111111111111 111111 -> 111111 +ddand034 and 1111111111111111 11111 -> 11111 +ddand035 and 1111111111111111 1111 -> 1111 +ddand036 and 1111111111111111 111 -> 111 +ddand037 and 1111111111111111 11 -> 11 +ddand038 and 1111111111111111 1 -> 1 +ddand039 and 1111111111111111 0 -> 0 + +ddand040 and 1111111111111111 1111111111111111 -> 1111111111111111 +ddand041 and 111111111111111 1111111111111111 -> 111111111111111 +ddand042 and 111111111111111 1111111111111111 -> 111111111111111 +ddand043 and 11111111111111 1111111111111111 -> 11111111111111 +ddand044 and 1111111111111 1111111111111111 -> 1111111111111 +ddand045 and 111111111111 1111111111111111 -> 111111111111 +ddand046 and 11111111111 1111111111111111 -> 11111111111 +ddand047 and 1111111111 1111111111111111 -> 1111111111 +ddand048 and 111111111 1111111111111111 -> 111111111 +ddand049 and 11111111 1111111111111111 -> 11111111 +ddand050 and 1111111 1111111111111111 -> 1111111 +ddand051 and 111111 1111111111111111 -> 111111 +ddand052 and 11111 1111111111111111 -> 11111 +ddand053 and 1111 1111111111111111 -> 1111 +ddand054 and 111 1111111111111111 -> 111 +ddand055 and 11 1111111111111111 -> 11 +ddand056 and 1 1111111111111111 -> 1 +ddand057 and 0 1111111111111111 -> 0 + +ddand150 and 1111111111 1 -> 1 +ddand151 and 111111111 1 -> 1 +ddand152 and 11111111 1 -> 1 +ddand153 and 1111111 1 -> 1 +ddand154 and 111111 1 -> 1 +ddand155 and 11111 1 -> 1 +ddand156 and 1111 1 -> 1 +ddand157 and 111 1 -> 1 +ddand158 and 11 1 -> 1 +ddand159 and 1 1 -> 1 + +ddand160 and 1111111111 0 -> 0 +ddand161 and 111111111 0 -> 0 +ddand162 and 11111111 0 -> 0 +ddand163 and 1111111 0 -> 0 +ddand164 and 111111 0 -> 0 +ddand165 and 11111 0 -> 0 +ddand166 and 1111 0 -> 0 +ddand167 and 111 0 -> 0 +ddand168 and 11 0 -> 0 +ddand169 and 1 0 -> 0 + +ddand170 and 1 1111111111 -> 1 +ddand171 and 1 111111111 -> 1 +ddand172 and 1 11111111 -> 1 +ddand173 and 1 1111111 -> 1 +ddand174 and 1 111111 -> 1 +ddand175 and 1 11111 -> 1 +ddand176 and 1 1111 -> 1 +ddand177 and 1 111 -> 1 +ddand178 and 1 11 -> 1 +ddand179 and 1 1 -> 1 + +ddand180 and 0 1111111111 -> 0 +ddand181 and 0 111111111 -> 0 +ddand182 and 0 11111111 -> 0 +ddand183 and 0 1111111 -> 0 +ddand184 and 0 111111 -> 0 +ddand185 and 0 11111 -> 0 +ddand186 and 0 1111 -> 0 +ddand187 and 0 111 -> 0 +ddand188 and 0 11 -> 0 +ddand189 and 0 1 -> 0 + +ddand090 and 011111111 111111111 -> 11111111 +ddand091 and 101111111 111111111 -> 101111111 +ddand092 and 110111111 111111111 -> 110111111 +ddand093 and 111011111 111111111 -> 111011111 +ddand094 and 111101111 111111111 -> 111101111 +ddand095 and 111110111 111111111 -> 111110111 +ddand096 and 111111011 111111111 -> 111111011 +ddand097 and 111111101 111111111 -> 111111101 +ddand098 and 111111110 111111111 -> 111111110 + +ddand100 and 111111111 011111111 -> 11111111 +ddand101 and 111111111 101111111 -> 101111111 +ddand102 and 111111111 110111111 -> 110111111 +ddand103 and 111111111 111011111 -> 111011111 +ddand104 and 111111111 111101111 -> 111101111 +ddand105 and 111111111 111110111 -> 111110111 +ddand106 and 111111111 111111011 -> 111111011 +ddand107 and 111111111 111111101 -> 111111101 +ddand108 and 111111111 111111110 -> 111111110 + +-- non-0/1 should not be accepted, nor should signs +ddand220 and 111111112 111111111 -> NaN Invalid_operation +ddand221 and 333333333 333333333 -> NaN Invalid_operation +ddand222 and 555555555 555555555 -> NaN Invalid_operation +ddand223 and 777777777 777777777 -> NaN Invalid_operation +ddand224 and 999999999 999999999 -> NaN Invalid_operation +ddand225 and 222222222 999999999 -> NaN Invalid_operation +ddand226 and 444444444 999999999 -> NaN Invalid_operation +ddand227 and 666666666 999999999 -> NaN Invalid_operation +ddand228 and 888888888 999999999 -> NaN Invalid_operation +ddand229 and 999999999 222222222 -> NaN Invalid_operation +ddand230 and 999999999 444444444 -> NaN Invalid_operation +ddand231 and 999999999 666666666 -> NaN Invalid_operation +ddand232 and 999999999 888888888 -> NaN Invalid_operation +-- a few randoms +ddand240 and 567468689 -934981942 -> NaN Invalid_operation +ddand241 and 567367689 934981942 -> NaN Invalid_operation +ddand242 and -631917772 -706014634 -> NaN Invalid_operation +ddand243 and -756253257 138579234 -> NaN Invalid_operation +ddand244 and 835590149 567435400 -> NaN Invalid_operation +-- test MSD +ddand250 and 2000000000000000 1000000000000000 -> NaN Invalid_operation +ddand251 and 7000000000000000 1000000000000000 -> NaN Invalid_operation +ddand252 and 8000000000000000 1000000000000000 -> NaN Invalid_operation +ddand253 and 9000000000000000 1000000000000000 -> NaN Invalid_operation +ddand254 and 2000000000000000 0000000000000000 -> NaN Invalid_operation +ddand255 and 7000000000000000 0000000000000000 -> NaN Invalid_operation +ddand256 and 8000000000000000 0000000000000000 -> NaN Invalid_operation +ddand257 and 9000000000000000 0000000000000000 -> NaN Invalid_operation +ddand258 and 1000000000000000 2000000000000000 -> NaN Invalid_operation +ddand259 and 1000000000000000 7000000000000000 -> NaN Invalid_operation +ddand260 and 1000000000000000 8000000000000000 -> NaN Invalid_operation +ddand261 and 1000000000000000 9000000000000000 -> NaN Invalid_operation +ddand262 and 0000000000000000 2000000000000000 -> NaN Invalid_operation +ddand263 and 0000000000000000 7000000000000000 -> NaN Invalid_operation +ddand264 and 0000000000000000 8000000000000000 -> NaN Invalid_operation +ddand265 and 0000000000000000 9000000000000000 -> NaN Invalid_operation +-- test MSD-1 +ddand270 and 0200001000000000 1000100000000010 -> NaN Invalid_operation +ddand271 and 0700000100000000 1000010000000100 -> NaN Invalid_operation +ddand272 and 0800000010000000 1000001000001000 -> NaN Invalid_operation +ddand273 and 0900000001000000 1000000100010000 -> NaN Invalid_operation +ddand274 and 1000000000100000 0200000010100000 -> NaN Invalid_operation +ddand275 and 1000000000010000 0700000001000000 -> NaN Invalid_operation +ddand276 and 1000000000001000 0800000010100000 -> NaN Invalid_operation +ddand277 and 1000000000000100 0900000000010000 -> NaN Invalid_operation +-- test LSD +ddand280 and 0010000000000002 1000000100000001 -> NaN Invalid_operation +ddand281 and 0001000000000007 1000001000000011 -> NaN Invalid_operation +ddand282 and 0000100000000008 1000010000000001 -> NaN Invalid_operation +ddand283 and 0000010000000009 1000100000000001 -> NaN Invalid_operation +ddand284 and 1000001000000000 0001000000000002 -> NaN Invalid_operation +ddand285 and 1000000100000000 0010000000000007 -> NaN Invalid_operation +ddand286 and 1000000010000000 0100000000000008 -> NaN Invalid_operation +ddand287 and 1000000001000000 1000000000000009 -> NaN Invalid_operation +-- test Middie +ddand288 and 0010000020000000 1000001000000000 -> NaN Invalid_operation +ddand289 and 0001000070000001 1000000100000000 -> NaN Invalid_operation +ddand290 and 0000100080000010 1000000010000000 -> NaN Invalid_operation +ddand291 and 0000010090000100 1000000001000000 -> NaN Invalid_operation +ddand292 and 1000001000001000 0000000020100000 -> NaN Invalid_operation +ddand293 and 1000000100010000 0000000070010000 -> NaN Invalid_operation +ddand294 and 1000000010100000 0000000080001000 -> NaN Invalid_operation +ddand295 and 1000000001000000 0000000090000100 -> NaN Invalid_operation +-- signs +ddand296 and -1000000001000000 -0000010000000100 -> NaN Invalid_operation +ddand297 and -1000000001000000 0000000010000100 -> NaN Invalid_operation +ddand298 and 1000000001000000 -0000001000000100 -> NaN Invalid_operation +ddand299 and 1000000001000000 0000000011000100 -> 1000000 + +-- Nmax, Nmin, Ntiny-like +ddand331 and 2 9.99999999E+199 -> NaN Invalid_operation +ddand332 and 3 1E-199 -> NaN Invalid_operation +ddand333 and 4 1.00000000E-199 -> NaN Invalid_operation +ddand334 and 5 1E-100 -> NaN Invalid_operation +ddand335 and 6 -1E-100 -> NaN Invalid_operation +ddand336 and 7 -1.00000000E-199 -> NaN Invalid_operation +ddand337 and 8 -1E-199 -> NaN Invalid_operation +ddand338 and 9 -9.99999999E+199 -> NaN Invalid_operation +ddand341 and 9.99999999E+199 -18 -> NaN Invalid_operation +ddand342 and 1E-199 01 -> NaN Invalid_operation +ddand343 and 1.00000000E-199 -18 -> NaN Invalid_operation +ddand344 and 1E-100 18 -> NaN Invalid_operation +ddand345 and -1E-100 -10 -> NaN Invalid_operation +ddand346 and -1.00000000E-199 18 -> NaN Invalid_operation +ddand347 and -1E-199 10 -> NaN Invalid_operation +ddand348 and -9.99999999E+199 -18 -> NaN Invalid_operation + +-- A few other non-integers +ddand361 and 1.0 1 -> NaN Invalid_operation +ddand362 and 1E+1 1 -> NaN Invalid_operation +ddand363 and 0.0 1 -> NaN Invalid_operation +ddand364 and 0E+1 1 -> NaN Invalid_operation +ddand365 and 9.9 1 -> NaN Invalid_operation +ddand366 and 9E+1 1 -> NaN Invalid_operation +ddand371 and 0 1.0 -> NaN Invalid_operation +ddand372 and 0 1E+1 -> NaN Invalid_operation +ddand373 and 0 0.0 -> NaN Invalid_operation +ddand374 and 0 0E+1 -> NaN Invalid_operation +ddand375 and 0 9.9 -> NaN Invalid_operation +ddand376 and 0 9E+1 -> NaN Invalid_operation + +-- All Specials are in error +ddand780 and -Inf -Inf -> NaN Invalid_operation +ddand781 and -Inf -1000 -> NaN Invalid_operation +ddand782 and -Inf -1 -> NaN Invalid_operation +ddand783 and -Inf -0 -> NaN Invalid_operation +ddand784 and -Inf 0 -> NaN Invalid_operation +ddand785 and -Inf 1 -> NaN Invalid_operation +ddand786 and -Inf 1000 -> NaN Invalid_operation +ddand787 and -1000 -Inf -> NaN Invalid_operation +ddand788 and -Inf -Inf -> NaN Invalid_operation +ddand789 and -1 -Inf -> NaN Invalid_operation +ddand790 and -0 -Inf -> NaN Invalid_operation +ddand791 and 0 -Inf -> NaN Invalid_operation +ddand792 and 1 -Inf -> NaN Invalid_operation +ddand793 and 1000 -Inf -> NaN Invalid_operation +ddand794 and Inf -Inf -> NaN Invalid_operation + +ddand800 and Inf -Inf -> NaN Invalid_operation +ddand801 and Inf -1000 -> NaN Invalid_operation +ddand802 and Inf -1 -> NaN Invalid_operation +ddand803 and Inf -0 -> NaN Invalid_operation +ddand804 and Inf 0 -> NaN Invalid_operation +ddand805 and Inf 1 -> NaN Invalid_operation +ddand806 and Inf 1000 -> NaN Invalid_operation +ddand807 and Inf Inf -> NaN Invalid_operation +ddand808 and -1000 Inf -> NaN Invalid_operation +ddand809 and -Inf Inf -> NaN Invalid_operation +ddand810 and -1 Inf -> NaN Invalid_operation +ddand811 and -0 Inf -> NaN Invalid_operation +ddand812 and 0 Inf -> NaN Invalid_operation +ddand813 and 1 Inf -> NaN Invalid_operation +ddand814 and 1000 Inf -> NaN Invalid_operation +ddand815 and Inf Inf -> NaN Invalid_operation + +ddand821 and NaN -Inf -> NaN Invalid_operation +ddand822 and NaN -1000 -> NaN Invalid_operation +ddand823 and NaN -1 -> NaN Invalid_operation +ddand824 and NaN -0 -> NaN Invalid_operation +ddand825 and NaN 0 -> NaN Invalid_operation +ddand826 and NaN 1 -> NaN Invalid_operation +ddand827 and NaN 1000 -> NaN Invalid_operation +ddand828 and NaN Inf -> NaN Invalid_operation +ddand829 and NaN NaN -> NaN Invalid_operation +ddand830 and -Inf NaN -> NaN Invalid_operation +ddand831 and -1000 NaN -> NaN Invalid_operation +ddand832 and -1 NaN -> NaN Invalid_operation +ddand833 and -0 NaN -> NaN Invalid_operation +ddand834 and 0 NaN -> NaN Invalid_operation +ddand835 and 1 NaN -> NaN Invalid_operation +ddand836 and 1000 NaN -> NaN Invalid_operation +ddand837 and Inf NaN -> NaN Invalid_operation + +ddand841 and sNaN -Inf -> NaN Invalid_operation +ddand842 and sNaN -1000 -> NaN Invalid_operation +ddand843 and sNaN -1 -> NaN Invalid_operation +ddand844 and sNaN -0 -> NaN Invalid_operation +ddand845 and sNaN 0 -> NaN Invalid_operation +ddand846 and sNaN 1 -> NaN Invalid_operation +ddand847 and sNaN 1000 -> NaN Invalid_operation +ddand848 and sNaN NaN -> NaN Invalid_operation +ddand849 and sNaN sNaN -> NaN Invalid_operation +ddand850 and NaN sNaN -> NaN Invalid_operation +ddand851 and -Inf sNaN -> NaN Invalid_operation +ddand852 and -1000 sNaN -> NaN Invalid_operation +ddand853 and -1 sNaN -> NaN Invalid_operation +ddand854 and -0 sNaN -> NaN Invalid_operation +ddand855 and 0 sNaN -> NaN Invalid_operation +ddand856 and 1 sNaN -> NaN Invalid_operation +ddand857 and 1000 sNaN -> NaN Invalid_operation +ddand858 and Inf sNaN -> NaN Invalid_operation +ddand859 and NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +ddand861 and NaN1 -Inf -> NaN Invalid_operation +ddand862 and +NaN2 -1000 -> NaN Invalid_operation +ddand863 and NaN3 1000 -> NaN Invalid_operation +ddand864 and NaN4 Inf -> NaN Invalid_operation +ddand865 and NaN5 +NaN6 -> NaN Invalid_operation +ddand866 and -Inf NaN7 -> NaN Invalid_operation +ddand867 and -1000 NaN8 -> NaN Invalid_operation +ddand868 and 1000 NaN9 -> NaN Invalid_operation +ddand869 and Inf +NaN10 -> NaN Invalid_operation +ddand871 and sNaN11 -Inf -> NaN Invalid_operation +ddand872 and sNaN12 -1000 -> NaN Invalid_operation +ddand873 and sNaN13 1000 -> NaN Invalid_operation +ddand874 and sNaN14 NaN17 -> NaN Invalid_operation +ddand875 and sNaN15 sNaN18 -> NaN Invalid_operation +ddand876 and NaN16 sNaN19 -> NaN Invalid_operation +ddand877 and -Inf +sNaN20 -> NaN Invalid_operation +ddand878 and -1000 sNaN21 -> NaN Invalid_operation +ddand879 and 1000 sNaN22 -> NaN Invalid_operation +ddand880 and Inf sNaN23 -> NaN Invalid_operation +ddand881 and +NaN25 +sNaN24 -> NaN Invalid_operation +ddand882 and -NaN26 NaN28 -> NaN Invalid_operation +ddand883 and -sNaN27 sNaN29 -> NaN Invalid_operation +ddand884 and 1000 -NaN30 -> NaN Invalid_operation +ddand885 and 1000 -sNaN31 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/ddBase.decTest b/Lib/test/decimaltestdata/ddBase.decTest index fbd6ccd94d..40febf86c5 100644 --- a/Lib/test/decimaltestdata/ddBase.decTest +++ b/Lib/test/decimaltestdata/ddBase.decTest @@ -1,1104 +1,1104 @@ -------------------------------------------------------------------------
--- ddBase.decTest -- base decDouble <--> string conversions --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- This file tests base conversions from string to a decimal number
--- and back to a string (in Scientific form)
-
--- Note that unlike other operations the operand is subject to rounding
--- to conform to emax and precision settings (that is, numbers will
--- conform to rules and exponent will be in permitted range). The
--- 'left hand side', therefore, may have numbers that cannot be
--- represented in a decDouble. Some testcases go to the limit of the
--- next-wider format, and hence these testcases may also be used to
--- test narrowing and widening operations.
-
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
-ddbas001 toSci 0 -> 0
-ddbas002 toSci 1 -> 1
-ddbas003 toSci 1.0 -> 1.0
-ddbas004 toSci 1.00 -> 1.00
-ddbas005 toSci 10 -> 10
-ddbas006 toSci 1000 -> 1000
-ddbas007 toSci 10.0 -> 10.0
-ddbas008 toSci 10.1 -> 10.1
-ddbas009 toSci 10.4 -> 10.4
-ddbas010 toSci 10.5 -> 10.5
-ddbas011 toSci 10.6 -> 10.6
-ddbas012 toSci 10.9 -> 10.9
-ddbas013 toSci 11.0 -> 11.0
-ddbas014 toSci 1.234 -> 1.234
-ddbas015 toSci 0.123 -> 0.123
-ddbas016 toSci 0.012 -> 0.012
-ddbas017 toSci -0 -> -0
-ddbas018 toSci -0.0 -> -0.0
-ddbas019 toSci -00.00 -> -0.00
-
-ddbas021 toSci -1 -> -1
-ddbas022 toSci -1.0 -> -1.0
-ddbas023 toSci -0.1 -> -0.1
-ddbas024 toSci -9.1 -> -9.1
-ddbas025 toSci -9.11 -> -9.11
-ddbas026 toSci -9.119 -> -9.119
-ddbas027 toSci -9.999 -> -9.999
-
-ddbas030 toSci '123456789.123456' -> '123456789.123456'
-ddbas031 toSci '123456789.000000' -> '123456789.000000'
-ddbas032 toSci '123456789123456' -> '123456789123456'
-ddbas033 toSci '0.0000123456789' -> '0.0000123456789'
-ddbas034 toSci '0.00000123456789' -> '0.00000123456789'
-ddbas035 toSci '0.000000123456789' -> '1.23456789E-7'
-ddbas036 toSci '0.0000000123456789' -> '1.23456789E-8'
-
-ddbas037 toSci '0.123456789012344' -> '0.123456789012344'
-ddbas038 toSci '0.123456789012345' -> '0.123456789012345'
-
--- test finite bounds (Negs of, then 0, Ntiny, Nmin, other, Nmax)
-ddbsn001 toSci -9.999999999999999E+384 -> -9.999999999999999E+384
-ddbsn002 toSci -1E-383 -> -1E-383
-ddbsn003 toSci -1E-398 -> -1E-398 Subnormal
-ddbsn004 toSci -0 -> -0
-ddbsn005 toSci +0 -> 0
-ddbsn006 toSci +1E-398 -> 1E-398 Subnormal
-ddbsn007 toSci +1E-383 -> 1E-383
-ddbsn008 toSci +9.999999999999999E+384 -> 9.999999999999999E+384
-
--- String [many more examples are implicitly tested elsewhere]
--- strings without E cannot generate E in result
-ddbas040 toSci "12" -> '12'
-ddbas041 toSci "-76" -> '-76'
-ddbas042 toSci "12.76" -> '12.76'
-ddbas043 toSci "+12.76" -> '12.76'
-ddbas044 toSci "012.76" -> '12.76'
-ddbas045 toSci "+0.003" -> '0.003'
-ddbas046 toSci "17." -> '17'
-ddbas047 toSci ".5" -> '0.5'
-ddbas048 toSci "044" -> '44'
-ddbas049 toSci "0044" -> '44'
-ddbas050 toSci "0.0005" -> '0.0005'
-ddbas051 toSci "00.00005" -> '0.00005'
-ddbas052 toSci "0.000005" -> '0.000005'
-ddbas053 toSci "0.0000050" -> '0.0000050'
-ddbas054 toSci "0.0000005" -> '5E-7'
-ddbas055 toSci "0.00000005" -> '5E-8'
-ddbas056 toSci "12345678.543210" -> '12345678.543210'
-ddbas057 toSci "2345678.543210" -> '2345678.543210'
-ddbas058 toSci "345678.543210" -> '345678.543210'
-ddbas059 toSci "0345678.54321" -> '345678.54321'
-ddbas060 toSci "345678.5432" -> '345678.5432'
-ddbas061 toSci "+345678.5432" -> '345678.5432'
-ddbas062 toSci "+0345678.5432" -> '345678.5432'
-ddbas063 toSci "+00345678.5432" -> '345678.5432'
-ddbas064 toSci "-345678.5432" -> '-345678.5432'
-ddbas065 toSci "-0345678.5432" -> '-345678.5432'
-ddbas066 toSci "-00345678.5432" -> '-345678.5432'
--- examples
-ddbas067 toSci "5E-6" -> '0.000005'
-ddbas068 toSci "50E-7" -> '0.0000050'
-ddbas069 toSci "5E-7" -> '5E-7'
-
--- [No exotics as no Unicode]
-
--- rounded with dots in all (including edge) places
-ddbas071 toSci .1234567890123456123 -> 0.1234567890123456 Inexact Rounded
-ddbas072 toSci 1.234567890123456123 -> 1.234567890123456 Inexact Rounded
-ddbas073 toSci 12.34567890123456123 -> 12.34567890123456 Inexact Rounded
-ddbas074 toSci 123.4567890123456123 -> 123.4567890123456 Inexact Rounded
-ddbas075 toSci 1234.567890123456123 -> 1234.567890123456 Inexact Rounded
-ddbas076 toSci 12345.67890123456123 -> 12345.67890123456 Inexact Rounded
-ddbas077 toSci 123456.7890123456123 -> 123456.7890123456 Inexact Rounded
-ddbas078 toSci 1234567.890123456123 -> 1234567.890123456 Inexact Rounded
-ddbas079 toSci 12345678.90123456123 -> 12345678.90123456 Inexact Rounded
-ddbas080 toSci 123456789.0123456123 -> 123456789.0123456 Inexact Rounded
-ddbas081 toSci 1234567890.123456123 -> 1234567890.123456 Inexact Rounded
-ddbas082 toSci 12345678901.23456123 -> 12345678901.23456 Inexact Rounded
-ddbas083 toSci 123456789012.3456123 -> 123456789012.3456 Inexact Rounded
-ddbas084 toSci 1234567890123.456123 -> 1234567890123.456 Inexact Rounded
-ddbas085 toSci 12345678901234.56123 -> 12345678901234.56 Inexact Rounded
-ddbas086 toSci 123456789012345.6123 -> 123456789012345.6 Inexact Rounded
-ddbas087 toSci 1234567890123456.123 -> 1234567890123456 Inexact Rounded
-ddbas088 toSci 12345678901234561.23 -> 1.234567890123456E+16 Inexact Rounded
-ddbas089 toSci 123456789012345612.3 -> 1.234567890123456E+17 Inexact Rounded
-ddbas090 toSci 1234567890123456123. -> 1.234567890123456E+18 Inexact Rounded
-
-
--- Numbers with E
-ddbas130 toSci "0.000E-1" -> '0.0000'
-ddbas131 toSci "0.000E-2" -> '0.00000'
-ddbas132 toSci "0.000E-3" -> '0.000000'
-ddbas133 toSci "0.000E-4" -> '0E-7'
-ddbas134 toSci "0.00E-2" -> '0.0000'
-ddbas135 toSci "0.00E-3" -> '0.00000'
-ddbas136 toSci "0.00E-4" -> '0.000000'
-ddbas137 toSci "0.00E-5" -> '0E-7'
-ddbas138 toSci "+0E+9" -> '0E+9'
-ddbas139 toSci "-0E+9" -> '-0E+9'
-ddbas140 toSci "1E+9" -> '1E+9'
-ddbas141 toSci "1e+09" -> '1E+9'
-ddbas142 toSci "1E+90" -> '1E+90'
-ddbas143 toSci "+1E+009" -> '1E+9'
-ddbas144 toSci "0E+9" -> '0E+9'
-ddbas145 toSci "1E+9" -> '1E+9'
-ddbas146 toSci "1E+09" -> '1E+9'
-ddbas147 toSci "1e+90" -> '1E+90'
-ddbas148 toSci "1E+009" -> '1E+9'
-ddbas149 toSci "000E+9" -> '0E+9'
-ddbas150 toSci "1E9" -> '1E+9'
-ddbas151 toSci "1e09" -> '1E+9'
-ddbas152 toSci "1E90" -> '1E+90'
-ddbas153 toSci "1E009" -> '1E+9'
-ddbas154 toSci "0E9" -> '0E+9'
-ddbas155 toSci "0.000e+0" -> '0.000'
-ddbas156 toSci "0.000E-1" -> '0.0000'
-ddbas157 toSci "4E+9" -> '4E+9'
-ddbas158 toSci "44E+9" -> '4.4E+10'
-ddbas159 toSci "0.73e-7" -> '7.3E-8'
-ddbas160 toSci "00E+9" -> '0E+9'
-ddbas161 toSci "00E-9" -> '0E-9'
-ddbas162 toSci "10E+9" -> '1.0E+10'
-ddbas163 toSci "10E+09" -> '1.0E+10'
-ddbas164 toSci "10e+90" -> '1.0E+91'
-ddbas165 toSci "10E+009" -> '1.0E+10'
-ddbas166 toSci "100e+9" -> '1.00E+11'
-ddbas167 toSci "100e+09" -> '1.00E+11'
-ddbas168 toSci "100E+90" -> '1.00E+92'
-ddbas169 toSci "100e+009" -> '1.00E+11'
-
-ddbas170 toSci "1.265" -> '1.265'
-ddbas171 toSci "1.265E-20" -> '1.265E-20'
-ddbas172 toSci "1.265E-8" -> '1.265E-8'
-ddbas173 toSci "1.265E-4" -> '0.0001265'
-ddbas174 toSci "1.265E-3" -> '0.001265'
-ddbas175 toSci "1.265E-2" -> '0.01265'
-ddbas176 toSci "1.265E-1" -> '0.1265'
-ddbas177 toSci "1.265E-0" -> '1.265'
-ddbas178 toSci "1.265E+1" -> '12.65'
-ddbas179 toSci "1.265E+2" -> '126.5'
-ddbas180 toSci "1.265E+3" -> '1265'
-ddbas181 toSci "1.265E+4" -> '1.265E+4'
-ddbas182 toSci "1.265E+8" -> '1.265E+8'
-ddbas183 toSci "1.265E+20" -> '1.265E+20'
-
-ddbas190 toSci "12.65" -> '12.65'
-ddbas191 toSci "12.65E-20" -> '1.265E-19'
-ddbas192 toSci "12.65E-8" -> '1.265E-7'
-ddbas193 toSci "12.65E-4" -> '0.001265'
-ddbas194 toSci "12.65E-3" -> '0.01265'
-ddbas195 toSci "12.65E-2" -> '0.1265'
-ddbas196 toSci "12.65E-1" -> '1.265'
-ddbas197 toSci "12.65E-0" -> '12.65'
-ddbas198 toSci "12.65E+1" -> '126.5'
-ddbas199 toSci "12.65E+2" -> '1265'
-ddbas200 toSci "12.65E+3" -> '1.265E+4'
-ddbas201 toSci "12.65E+4" -> '1.265E+5'
-ddbas202 toSci "12.65E+8" -> '1.265E+9'
-ddbas203 toSci "12.65E+20" -> '1.265E+21'
-
-ddbas210 toSci "126.5" -> '126.5'
-ddbas211 toSci "126.5E-20" -> '1.265E-18'
-ddbas212 toSci "126.5E-8" -> '0.000001265'
-ddbas213 toSci "126.5E-4" -> '0.01265'
-ddbas214 toSci "126.5E-3" -> '0.1265'
-ddbas215 toSci "126.5E-2" -> '1.265'
-ddbas216 toSci "126.5E-1" -> '12.65'
-ddbas217 toSci "126.5E-0" -> '126.5'
-ddbas218 toSci "126.5E+1" -> '1265'
-ddbas219 toSci "126.5E+2" -> '1.265E+4'
-ddbas220 toSci "126.5E+3" -> '1.265E+5'
-ddbas221 toSci "126.5E+4" -> '1.265E+6'
-ddbas222 toSci "126.5E+8" -> '1.265E+10'
-ddbas223 toSci "126.5E+20" -> '1.265E+22'
-
-ddbas230 toSci "1265" -> '1265'
-ddbas231 toSci "1265E-20" -> '1.265E-17'
-ddbas232 toSci "1265E-8" -> '0.00001265'
-ddbas233 toSci "1265E-4" -> '0.1265'
-ddbas234 toSci "1265E-3" -> '1.265'
-ddbas235 toSci "1265E-2" -> '12.65'
-ddbas236 toSci "1265E-1" -> '126.5'
-ddbas237 toSci "1265E-0" -> '1265'
-ddbas238 toSci "1265E+1" -> '1.265E+4'
-ddbas239 toSci "1265E+2" -> '1.265E+5'
-ddbas240 toSci "1265E+3" -> '1.265E+6'
-ddbas241 toSci "1265E+4" -> '1.265E+7'
-ddbas242 toSci "1265E+8" -> '1.265E+11'
-ddbas243 toSci "1265E+20" -> '1.265E+23'
-ddbas244 toSci "1265E-9" -> '0.000001265'
-ddbas245 toSci "1265E-10" -> '1.265E-7'
-ddbas246 toSci "1265E-11" -> '1.265E-8'
-ddbas247 toSci "1265E-12" -> '1.265E-9'
-
-ddbas250 toSci "0.1265" -> '0.1265'
-ddbas251 toSci "0.1265E-20" -> '1.265E-21'
-ddbas252 toSci "0.1265E-8" -> '1.265E-9'
-ddbas253 toSci "0.1265E-4" -> '0.00001265'
-ddbas254 toSci "0.1265E-3" -> '0.0001265'
-ddbas255 toSci "0.1265E-2" -> '0.001265'
-ddbas256 toSci "0.1265E-1" -> '0.01265'
-ddbas257 toSci "0.1265E-0" -> '0.1265'
-ddbas258 toSci "0.1265E+1" -> '1.265'
-ddbas259 toSci "0.1265E+2" -> '12.65'
-ddbas260 toSci "0.1265E+3" -> '126.5'
-ddbas261 toSci "0.1265E+4" -> '1265'
-ddbas262 toSci "0.1265E+8" -> '1.265E+7'
-ddbas263 toSci "0.1265E+20" -> '1.265E+19'
-
--- some more negative zeros [systematic tests below]
-ddbas290 toSci "-0.000E-1" -> '-0.0000'
-ddbas291 toSci "-0.000E-2" -> '-0.00000'
-ddbas292 toSci "-0.000E-3" -> '-0.000000'
-ddbas293 toSci "-0.000E-4" -> '-0E-7'
-ddbas294 toSci "-0.00E-2" -> '-0.0000'
-ddbas295 toSci "-0.00E-3" -> '-0.00000'
-ddbas296 toSci "-0.0E-2" -> '-0.000'
-ddbas297 toSci "-0.0E-3" -> '-0.0000'
-ddbas298 toSci "-0E-2" -> '-0.00'
-ddbas299 toSci "-0E-3" -> '-0.000'
-
--- Engineering notation tests
-ddbas301 toSci 10e12 -> 1.0E+13
-ddbas302 toEng 10e12 -> 10E+12
-ddbas303 toSci 10e11 -> 1.0E+12
-ddbas304 toEng 10e11 -> 1.0E+12
-ddbas305 toSci 10e10 -> 1.0E+11
-ddbas306 toEng 10e10 -> 100E+9
-ddbas307 toSci 10e9 -> 1.0E+10
-ddbas308 toEng 10e9 -> 10E+9
-ddbas309 toSci 10e8 -> 1.0E+9
-ddbas310 toEng 10e8 -> 1.0E+9
-ddbas311 toSci 10e7 -> 1.0E+8
-ddbas312 toEng 10e7 -> 100E+6
-ddbas313 toSci 10e6 -> 1.0E+7
-ddbas314 toEng 10e6 -> 10E+6
-ddbas315 toSci 10e5 -> 1.0E+6
-ddbas316 toEng 10e5 -> 1.0E+6
-ddbas317 toSci 10e4 -> 1.0E+5
-ddbas318 toEng 10e4 -> 100E+3
-ddbas319 toSci 10e3 -> 1.0E+4
-ddbas320 toEng 10e3 -> 10E+3
-ddbas321 toSci 10e2 -> 1.0E+3
-ddbas322 toEng 10e2 -> 1.0E+3
-ddbas323 toSci 10e1 -> 1.0E+2
-ddbas324 toEng 10e1 -> 100
-ddbas325 toSci 10e0 -> 10
-ddbas326 toEng 10e0 -> 10
-ddbas327 toSci 10e-1 -> 1.0
-ddbas328 toEng 10e-1 -> 1.0
-ddbas329 toSci 10e-2 -> 0.10
-ddbas330 toEng 10e-2 -> 0.10
-ddbas331 toSci 10e-3 -> 0.010
-ddbas332 toEng 10e-3 -> 0.010
-ddbas333 toSci 10e-4 -> 0.0010
-ddbas334 toEng 10e-4 -> 0.0010
-ddbas335 toSci 10e-5 -> 0.00010
-ddbas336 toEng 10e-5 -> 0.00010
-ddbas337 toSci 10e-6 -> 0.000010
-ddbas338 toEng 10e-6 -> 0.000010
-ddbas339 toSci 10e-7 -> 0.0000010
-ddbas340 toEng 10e-7 -> 0.0000010
-ddbas341 toSci 10e-8 -> 1.0E-7
-ddbas342 toEng 10e-8 -> 100E-9
-ddbas343 toSci 10e-9 -> 1.0E-8
-ddbas344 toEng 10e-9 -> 10E-9
-ddbas345 toSci 10e-10 -> 1.0E-9
-ddbas346 toEng 10e-10 -> 1.0E-9
-ddbas347 toSci 10e-11 -> 1.0E-10
-ddbas348 toEng 10e-11 -> 100E-12
-ddbas349 toSci 10e-12 -> 1.0E-11
-ddbas350 toEng 10e-12 -> 10E-12
-ddbas351 toSci 10e-13 -> 1.0E-12
-ddbas352 toEng 10e-13 -> 1.0E-12
-
-ddbas361 toSci 7E12 -> 7E+12
-ddbas362 toEng 7E12 -> 7E+12
-ddbas363 toSci 7E11 -> 7E+11
-ddbas364 toEng 7E11 -> 700E+9
-ddbas365 toSci 7E10 -> 7E+10
-ddbas366 toEng 7E10 -> 70E+9
-ddbas367 toSci 7E9 -> 7E+9
-ddbas368 toEng 7E9 -> 7E+9
-ddbas369 toSci 7E8 -> 7E+8
-ddbas370 toEng 7E8 -> 700E+6
-ddbas371 toSci 7E7 -> 7E+7
-ddbas372 toEng 7E7 -> 70E+6
-ddbas373 toSci 7E6 -> 7E+6
-ddbas374 toEng 7E6 -> 7E+6
-ddbas375 toSci 7E5 -> 7E+5
-ddbas376 toEng 7E5 -> 700E+3
-ddbas377 toSci 7E4 -> 7E+4
-ddbas378 toEng 7E4 -> 70E+3
-ddbas379 toSci 7E3 -> 7E+3
-ddbas380 toEng 7E3 -> 7E+3
-ddbas381 toSci 7E2 -> 7E+2
-ddbas382 toEng 7E2 -> 700
-ddbas383 toSci 7E1 -> 7E+1
-ddbas384 toEng 7E1 -> 70
-ddbas385 toSci 7E0 -> 7
-ddbas386 toEng 7E0 -> 7
-ddbas387 toSci 7E-1 -> 0.7
-ddbas388 toEng 7E-1 -> 0.7
-ddbas389 toSci 7E-2 -> 0.07
-ddbas390 toEng 7E-2 -> 0.07
-ddbas391 toSci 7E-3 -> 0.007
-ddbas392 toEng 7E-3 -> 0.007
-ddbas393 toSci 7E-4 -> 0.0007
-ddbas394 toEng 7E-4 -> 0.0007
-ddbas395 toSci 7E-5 -> 0.00007
-ddbas396 toEng 7E-5 -> 0.00007
-ddbas397 toSci 7E-6 -> 0.000007
-ddbas398 toEng 7E-6 -> 0.000007
-ddbas399 toSci 7E-7 -> 7E-7
-ddbas400 toEng 7E-7 -> 700E-9
-ddbas401 toSci 7E-8 -> 7E-8
-ddbas402 toEng 7E-8 -> 70E-9
-ddbas403 toSci 7E-9 -> 7E-9
-ddbas404 toEng 7E-9 -> 7E-9
-ddbas405 toSci 7E-10 -> 7E-10
-ddbas406 toEng 7E-10 -> 700E-12
-ddbas407 toSci 7E-11 -> 7E-11
-ddbas408 toEng 7E-11 -> 70E-12
-ddbas409 toSci 7E-12 -> 7E-12
-ddbas410 toEng 7E-12 -> 7E-12
-ddbas411 toSci 7E-13 -> 7E-13
-ddbas412 toEng 7E-13 -> 700E-15
-
--- Exacts remain exact up to precision ..
-rounding: half_up
-ddbas420 toSci 100 -> 100
-ddbas421 toEng 100 -> 100
-ddbas422 toSci 1000 -> 1000
-ddbas423 toEng 1000 -> 1000
-ddbas424 toSci 999.9 -> 999.9
-ddbas425 toEng 999.9 -> 999.9
-ddbas426 toSci 1000.0 -> 1000.0
-ddbas427 toEng 1000.0 -> 1000.0
-ddbas428 toSci 1000.1 -> 1000.1
-ddbas429 toEng 1000.1 -> 1000.1
-ddbas430 toSci 10000 -> 10000
-ddbas431 toEng 10000 -> 10000
-ddbas432 toSci 100000 -> 100000
-ddbas433 toEng 100000 -> 100000
-ddbas434 toSci 1000000 -> 1000000
-ddbas435 toEng 1000000 -> 1000000
-ddbas436 toSci 10000000 -> 10000000
-ddbas437 toEng 10000000 -> 10000000
-ddbas438 toSci 100000000 -> 100000000
-ddbas439 toEng 1000000000000000 -> 1000000000000000
-ddbas440 toSci 10000000000000000 -> 1.000000000000000E+16 Rounded
-ddbas441 toEng 10000000000000000 -> 10.00000000000000E+15 Rounded
-ddbas442 toSci 10000000000000001 -> 1.000000000000000E+16 Rounded Inexact
-ddbas443 toEng 10000000000000001 -> 10.00000000000000E+15 Rounded Inexact
-ddbas444 toSci 10000000000000003 -> 1.000000000000000E+16 Rounded Inexact
-ddbas445 toEng 10000000000000003 -> 10.00000000000000E+15 Rounded Inexact
-ddbas446 toSci 10000000000000005 -> 1.000000000000001E+16 Rounded Inexact
-ddbas447 toEng 10000000000000005 -> 10.00000000000001E+15 Rounded Inexact
-ddbas448 toSci 100000000000000050 -> 1.000000000000001E+17 Rounded Inexact
-ddbas449 toEng 100000000000000050 -> 100.0000000000001E+15 Rounded Inexact
-ddbas450 toSci 10000000000000009 -> 1.000000000000001E+16 Rounded Inexact
-ddbas451 toEng 10000000000000009 -> 10.00000000000001E+15 Rounded Inexact
-ddbas452 toSci 100000000000000000 -> 1.000000000000000E+17 Rounded
-ddbas453 toEng 100000000000000000 -> 100.0000000000000E+15 Rounded
-ddbas454 toSci 100000000000000003 -> 1.000000000000000E+17 Rounded Inexact
-ddbas455 toEng 100000000000000003 -> 100.0000000000000E+15 Rounded Inexact
-ddbas456 toSci 100000000000000005 -> 1.000000000000000E+17 Rounded Inexact
-ddbas457 toEng 100000000000000005 -> 100.0000000000000E+15 Rounded Inexact
-ddbas458 toSci 100000000000000009 -> 1.000000000000000E+17 Rounded Inexact
-ddbas459 toEng 100000000000000009 -> 100.0000000000000E+15 Rounded Inexact
-ddbas460 toSci 1000000000000000000 -> 1.000000000000000E+18 Rounded
-ddbas461 toEng 1000000000000000000 -> 1.000000000000000E+18 Rounded
-ddbas462 toSci 1000000000000000300 -> 1.000000000000000E+18 Rounded Inexact
-ddbas463 toEng 1000000000000000300 -> 1.000000000000000E+18 Rounded Inexact
-ddbas464 toSci 1000000000000000500 -> 1.000000000000001E+18 Rounded Inexact
-ddbas465 toEng 1000000000000000500 -> 1.000000000000001E+18 Rounded Inexact
-ddbas466 toSci 1000000000000000900 -> 1.000000000000001E+18 Rounded Inexact
-ddbas467 toEng 1000000000000000900 -> 1.000000000000001E+18 Rounded Inexact
-ddbas468 toSci 10000000000000000000 -> 1.000000000000000E+19 Rounded
-ddbas469 toEng 10000000000000000000 -> 10.00000000000000E+18 Rounded
-ddbas470 toSci 10000000000000003000 -> 1.000000000000000E+19 Rounded Inexact
-ddbas471 toEng 10000000000000003000 -> 10.00000000000000E+18 Rounded Inexact
-ddbas472 toSci 10000000000000005000 -> 1.000000000000001E+19 Rounded Inexact
-ddbas473 toEng 10000000000000005000 -> 10.00000000000001E+18 Rounded Inexact
-ddbas474 toSci 10000000000000009000 -> 1.000000000000001E+19 Rounded Inexact
-ddbas475 toEng 10000000000000009000 -> 10.00000000000001E+18 Rounded Inexact
-
--- check rounding modes heeded
-rounding: ceiling
-ddbsr401 toSci 1.1111111111123450 -> 1.111111111112345 Rounded
-ddbsr402 toSci 1.11111111111234549 -> 1.111111111112346 Rounded Inexact
-ddbsr403 toSci 1.11111111111234550 -> 1.111111111112346 Rounded Inexact
-ddbsr404 toSci 1.11111111111234551 -> 1.111111111112346 Rounded Inexact
-rounding: up
-ddbsr405 toSci 1.1111111111123450 -> 1.111111111112345 Rounded
-ddbsr406 toSci 1.11111111111234549 -> 1.111111111112346 Rounded Inexact
-ddbsr407 toSci 1.11111111111234550 -> 1.111111111112346 Rounded Inexact
-ddbsr408 toSci 1.11111111111234551 -> 1.111111111112346 Rounded Inexact
-rounding: floor
-ddbsr410 toSci 1.1111111111123450 -> 1.111111111112345 Rounded
-ddbsr411 toSci 1.11111111111234549 -> 1.111111111112345 Rounded Inexact
-ddbsr412 toSci 1.11111111111234550 -> 1.111111111112345 Rounded Inexact
-ddbsr413 toSci 1.11111111111234551 -> 1.111111111112345 Rounded Inexact
-rounding: half_down
-ddbsr415 toSci 1.1111111111123450 -> 1.111111111112345 Rounded
-ddbsr416 toSci 1.11111111111234549 -> 1.111111111112345 Rounded Inexact
-ddbsr417 toSci 1.11111111111234550 -> 1.111111111112345 Rounded Inexact
-ddbsr418 toSci 1.11111111111234650 -> 1.111111111112346 Rounded Inexact
-ddbsr419 toSci 1.11111111111234551 -> 1.111111111112346 Rounded Inexact
-rounding: half_even
-ddbsr421 toSci 1.1111111111123450 -> 1.111111111112345 Rounded
-ddbsr422 toSci 1.11111111111234549 -> 1.111111111112345 Rounded Inexact
-ddbsr423 toSci 1.11111111111234550 -> 1.111111111112346 Rounded Inexact
-ddbsr424 toSci 1.11111111111234650 -> 1.111111111112346 Rounded Inexact
-ddbsr425 toSci 1.11111111111234551 -> 1.111111111112346 Rounded Inexact
-rounding: down
-ddbsr426 toSci 1.1111111111123450 -> 1.111111111112345 Rounded
-ddbsr427 toSci 1.11111111111234549 -> 1.111111111112345 Rounded Inexact
-ddbsr428 toSci 1.11111111111234550 -> 1.111111111112345 Rounded Inexact
-ddbsr429 toSci 1.11111111111234551 -> 1.111111111112345 Rounded Inexact
-rounding: half_up
-ddbsr431 toSci 1.1111111111123450 -> 1.111111111112345 Rounded
-ddbsr432 toSci 1.11111111111234549 -> 1.111111111112345 Rounded Inexact
-ddbsr433 toSci 1.11111111111234550 -> 1.111111111112346 Rounded Inexact
-ddbsr434 toSci 1.11111111111234650 -> 1.111111111112347 Rounded Inexact
-ddbsr435 toSci 1.11111111111234551 -> 1.111111111112346 Rounded Inexact
--- negatives
-rounding: ceiling
-ddbsr501 toSci -1.1111111111123450 -> -1.111111111112345 Rounded
-ddbsr502 toSci -1.11111111111234549 -> -1.111111111112345 Rounded Inexact
-ddbsr503 toSci -1.11111111111234550 -> -1.111111111112345 Rounded Inexact
-ddbsr504 toSci -1.11111111111234551 -> -1.111111111112345 Rounded Inexact
-rounding: up
-ddbsr505 toSci -1.1111111111123450 -> -1.111111111112345 Rounded
-ddbsr506 toSci -1.11111111111234549 -> -1.111111111112346 Rounded Inexact
-ddbsr507 toSci -1.11111111111234550 -> -1.111111111112346 Rounded Inexact
-ddbsr508 toSci -1.11111111111234551 -> -1.111111111112346 Rounded Inexact
-rounding: floor
-ddbsr510 toSci -1.1111111111123450 -> -1.111111111112345 Rounded
-ddbsr511 toSci -1.11111111111234549 -> -1.111111111112346 Rounded Inexact
-ddbsr512 toSci -1.11111111111234550 -> -1.111111111112346 Rounded Inexact
-ddbsr513 toSci -1.11111111111234551 -> -1.111111111112346 Rounded Inexact
-rounding: half_down
-ddbsr515 toSci -1.1111111111123450 -> -1.111111111112345 Rounded
-ddbsr516 toSci -1.11111111111234549 -> -1.111111111112345 Rounded Inexact
-ddbsr517 toSci -1.11111111111234550 -> -1.111111111112345 Rounded Inexact
-ddbsr518 toSci -1.11111111111234650 -> -1.111111111112346 Rounded Inexact
-ddbsr519 toSci -1.11111111111234551 -> -1.111111111112346 Rounded Inexact
-rounding: half_even
-ddbsr521 toSci -1.1111111111123450 -> -1.111111111112345 Rounded
-ddbsr522 toSci -1.11111111111234549 -> -1.111111111112345 Rounded Inexact
-ddbsr523 toSci -1.11111111111234550 -> -1.111111111112346 Rounded Inexact
-ddbsr524 toSci -1.11111111111234650 -> -1.111111111112346 Rounded Inexact
-ddbsr525 toSci -1.11111111111234551 -> -1.111111111112346 Rounded Inexact
-rounding: down
-ddbsr526 toSci -1.1111111111123450 -> -1.111111111112345 Rounded
-ddbsr527 toSci -1.11111111111234549 -> -1.111111111112345 Rounded Inexact
-ddbsr528 toSci -1.11111111111234550 -> -1.111111111112345 Rounded Inexact
-ddbsr529 toSci -1.11111111111234551 -> -1.111111111112345 Rounded Inexact
-rounding: half_up
-ddbsr531 toSci -1.1111111111123450 -> -1.111111111112345 Rounded
-ddbsr532 toSci -1.11111111111234549 -> -1.111111111112345 Rounded Inexact
-ddbsr533 toSci -1.11111111111234550 -> -1.111111111112346 Rounded Inexact
-ddbsr534 toSci -1.11111111111234650 -> -1.111111111112347 Rounded Inexact
-ddbsr535 toSci -1.11111111111234551 -> -1.111111111112346 Rounded Inexact
-
-rounding: half_even
-
--- The 'baddies' tests from DiagBigDecimal, plus some new ones
-ddbas500 toSci '1..2' -> NaN Conversion_syntax
-ddbas501 toSci '.' -> NaN Conversion_syntax
-ddbas502 toSci '..' -> NaN Conversion_syntax
-ddbas503 toSci '++1' -> NaN Conversion_syntax
-ddbas504 toSci '--1' -> NaN Conversion_syntax
-ddbas505 toSci '-+1' -> NaN Conversion_syntax
-ddbas506 toSci '+-1' -> NaN Conversion_syntax
-ddbas507 toSci '12e' -> NaN Conversion_syntax
-ddbas508 toSci '12e++' -> NaN Conversion_syntax
-ddbas509 toSci '12f4' -> NaN Conversion_syntax
-ddbas510 toSci ' +1' -> NaN Conversion_syntax
-ddbas511 toSci '+ 1' -> NaN Conversion_syntax
-ddbas512 toSci '12 ' -> NaN Conversion_syntax
-ddbas513 toSci ' + 1' -> NaN Conversion_syntax
-ddbas514 toSci ' - 1 ' -> NaN Conversion_syntax
-ddbas515 toSci 'x' -> NaN Conversion_syntax
-ddbas516 toSci '-1-' -> NaN Conversion_syntax
-ddbas517 toSci '12-' -> NaN Conversion_syntax
-ddbas518 toSci '3+' -> NaN Conversion_syntax
-ddbas519 toSci '' -> NaN Conversion_syntax
-ddbas520 toSci '1e-' -> NaN Conversion_syntax
-ddbas521 toSci '7e99999a' -> NaN Conversion_syntax
-ddbas522 toSci '7e123567890x' -> NaN Conversion_syntax
-ddbas523 toSci '7e12356789012x' -> NaN Conversion_syntax
-ddbas524 toSci '' -> NaN Conversion_syntax
-ddbas525 toSci 'e100' -> NaN Conversion_syntax
-ddbas526 toSci '\u0e5a' -> NaN Conversion_syntax
-ddbas527 toSci '\u0b65' -> NaN Conversion_syntax
-ddbas528 toSci '123,65' -> NaN Conversion_syntax
-ddbas529 toSci '1.34.5' -> NaN Conversion_syntax
-ddbas530 toSci '.123.5' -> NaN Conversion_syntax
-ddbas531 toSci '01.35.' -> NaN Conversion_syntax
-ddbas532 toSci '01.35-' -> NaN Conversion_syntax
-ddbas533 toSci '0000..' -> NaN Conversion_syntax
-ddbas534 toSci '.0000.' -> NaN Conversion_syntax
-ddbas535 toSci '00..00' -> NaN Conversion_syntax
-ddbas536 toSci '111e*123' -> NaN Conversion_syntax
-ddbas537 toSci '111e123-' -> NaN Conversion_syntax
-ddbas538 toSci '111e+12+' -> NaN Conversion_syntax
-ddbas539 toSci '111e1-3-' -> NaN Conversion_syntax
-ddbas540 toSci '111e1*23' -> NaN Conversion_syntax
-ddbas541 toSci '111e1e+3' -> NaN Conversion_syntax
-ddbas542 toSci '1e1.0' -> NaN Conversion_syntax
-ddbas543 toSci '1e123e' -> NaN Conversion_syntax
-ddbas544 toSci 'ten' -> NaN Conversion_syntax
-ddbas545 toSci 'ONE' -> NaN Conversion_syntax
-ddbas546 toSci '1e.1' -> NaN Conversion_syntax
-ddbas547 toSci '1e1.' -> NaN Conversion_syntax
-ddbas548 toSci '1ee' -> NaN Conversion_syntax
-ddbas549 toSci 'e+1' -> NaN Conversion_syntax
-ddbas550 toSci '1.23.4' -> NaN Conversion_syntax
-ddbas551 toSci '1.2.1' -> NaN Conversion_syntax
-ddbas552 toSci '1E+1.2' -> NaN Conversion_syntax
-ddbas553 toSci '1E+1.2.3' -> NaN Conversion_syntax
-ddbas554 toSci '1E++1' -> NaN Conversion_syntax
-ddbas555 toSci '1E--1' -> NaN Conversion_syntax
-ddbas556 toSci '1E+-1' -> NaN Conversion_syntax
-ddbas557 toSci '1E-+1' -> NaN Conversion_syntax
-ddbas558 toSci '1E''1' -> NaN Conversion_syntax
-ddbas559 toSci "1E""1" -> NaN Conversion_syntax
-ddbas560 toSci "1E""""" -> NaN Conversion_syntax
--- Near-specials
-ddbas561 toSci "qNaN" -> NaN Conversion_syntax
-ddbas562 toSci "NaNq" -> NaN Conversion_syntax
-ddbas563 toSci "NaNs" -> NaN Conversion_syntax
-ddbas564 toSci "Infi" -> NaN Conversion_syntax
-ddbas565 toSci "Infin" -> NaN Conversion_syntax
-ddbas566 toSci "Infini" -> NaN Conversion_syntax
-ddbas567 toSci "Infinit" -> NaN Conversion_syntax
-ddbas568 toSci "-Infinit" -> NaN Conversion_syntax
-ddbas569 toSci "0Inf" -> NaN Conversion_syntax
-ddbas570 toSci "9Inf" -> NaN Conversion_syntax
-ddbas571 toSci "-0Inf" -> NaN Conversion_syntax
-ddbas572 toSci "-9Inf" -> NaN Conversion_syntax
-ddbas573 toSci "-sNa" -> NaN Conversion_syntax
-ddbas574 toSci "xNaN" -> NaN Conversion_syntax
-ddbas575 toSci "0sNaN" -> NaN Conversion_syntax
-
--- some baddies with dots and Es and dots and specials
-ddbas576 toSci 'e+1' -> NaN Conversion_syntax
-ddbas577 toSci '.e+1' -> NaN Conversion_syntax
-ddbas578 toSci '+.e+1' -> NaN Conversion_syntax
-ddbas579 toSci '-.e+' -> NaN Conversion_syntax
-ddbas580 toSci '-.e' -> NaN Conversion_syntax
-ddbas581 toSci 'E+1' -> NaN Conversion_syntax
-ddbas582 toSci '.E+1' -> NaN Conversion_syntax
-ddbas583 toSci '+.E+1' -> NaN Conversion_syntax
-ddbas584 toSci '-.E+' -> NaN Conversion_syntax
-ddbas585 toSci '-.E' -> NaN Conversion_syntax
-
-ddbas586 toSci '.NaN' -> NaN Conversion_syntax
-ddbas587 toSci '-.NaN' -> NaN Conversion_syntax
-ddbas588 toSci '+.sNaN' -> NaN Conversion_syntax
-ddbas589 toSci '+.Inf' -> NaN Conversion_syntax
-ddbas590 toSci '.Infinity' -> NaN Conversion_syntax
-
--- Zeros
-ddbas601 toSci 0.000000000 -> 0E-9
-ddbas602 toSci 0.00000000 -> 0E-8
-ddbas603 toSci 0.0000000 -> 0E-7
-ddbas604 toSci 0.000000 -> 0.000000
-ddbas605 toSci 0.00000 -> 0.00000
-ddbas606 toSci 0.0000 -> 0.0000
-ddbas607 toSci 0.000 -> 0.000
-ddbas608 toSci 0.00 -> 0.00
-ddbas609 toSci 0.0 -> 0.0
-ddbas610 toSci .0 -> 0.0
-ddbas611 toSci 0. -> 0
-ddbas612 toSci -.0 -> -0.0
-ddbas613 toSci -0. -> -0
-ddbas614 toSci -0.0 -> -0.0
-ddbas615 toSci -0.00 -> -0.00
-ddbas616 toSci -0.000 -> -0.000
-ddbas617 toSci -0.0000 -> -0.0000
-ddbas618 toSci -0.00000 -> -0.00000
-ddbas619 toSci -0.000000 -> -0.000000
-ddbas620 toSci -0.0000000 -> -0E-7
-ddbas621 toSci -0.00000000 -> -0E-8
-ddbas622 toSci -0.000000000 -> -0E-9
-
-ddbas630 toSci 0.00E+0 -> 0.00
-ddbas631 toSci 0.00E+1 -> 0.0
-ddbas632 toSci 0.00E+2 -> 0
-ddbas633 toSci 0.00E+3 -> 0E+1
-ddbas634 toSci 0.00E+4 -> 0E+2
-ddbas635 toSci 0.00E+5 -> 0E+3
-ddbas636 toSci 0.00E+6 -> 0E+4
-ddbas637 toSci 0.00E+7 -> 0E+5
-ddbas638 toSci 0.00E+8 -> 0E+6
-ddbas639 toSci 0.00E+9 -> 0E+7
-
-ddbas640 toSci 0.0E+0 -> 0.0
-ddbas641 toSci 0.0E+1 -> 0
-ddbas642 toSci 0.0E+2 -> 0E+1
-ddbas643 toSci 0.0E+3 -> 0E+2
-ddbas644 toSci 0.0E+4 -> 0E+3
-ddbas645 toSci 0.0E+5 -> 0E+4
-ddbas646 toSci 0.0E+6 -> 0E+5
-ddbas647 toSci 0.0E+7 -> 0E+6
-ddbas648 toSci 0.0E+8 -> 0E+7
-ddbas649 toSci 0.0E+9 -> 0E+8
-
-ddbas650 toSci 0E+0 -> 0
-ddbas651 toSci 0E+1 -> 0E+1
-ddbas652 toSci 0E+2 -> 0E+2
-ddbas653 toSci 0E+3 -> 0E+3
-ddbas654 toSci 0E+4 -> 0E+4
-ddbas655 toSci 0E+5 -> 0E+5
-ddbas656 toSci 0E+6 -> 0E+6
-ddbas657 toSci 0E+7 -> 0E+7
-ddbas658 toSci 0E+8 -> 0E+8
-ddbas659 toSci 0E+9 -> 0E+9
-
-ddbas660 toSci 0.0E-0 -> 0.0
-ddbas661 toSci 0.0E-1 -> 0.00
-ddbas662 toSci 0.0E-2 -> 0.000
-ddbas663 toSci 0.0E-3 -> 0.0000
-ddbas664 toSci 0.0E-4 -> 0.00000
-ddbas665 toSci 0.0E-5 -> 0.000000
-ddbas666 toSci 0.0E-6 -> 0E-7
-ddbas667 toSci 0.0E-7 -> 0E-8
-ddbas668 toSci 0.0E-8 -> 0E-9
-ddbas669 toSci 0.0E-9 -> 0E-10
-
-ddbas670 toSci 0.00E-0 -> 0.00
-ddbas671 toSci 0.00E-1 -> 0.000
-ddbas672 toSci 0.00E-2 -> 0.0000
-ddbas673 toSci 0.00E-3 -> 0.00000
-ddbas674 toSci 0.00E-4 -> 0.000000
-ddbas675 toSci 0.00E-5 -> 0E-7
-ddbas676 toSci 0.00E-6 -> 0E-8
-ddbas677 toSci 0.00E-7 -> 0E-9
-ddbas678 toSci 0.00E-8 -> 0E-10
-ddbas679 toSci 0.00E-9 -> 0E-11
-
-ddbas680 toSci 000000. -> 0
-ddbas681 toSci 00000. -> 0
-ddbas682 toSci 0000. -> 0
-ddbas683 toSci 000. -> 0
-ddbas684 toSci 00. -> 0
-ddbas685 toSci 0. -> 0
-ddbas686 toSci +00000. -> 0
-ddbas687 toSci -00000. -> -0
-ddbas688 toSci +0. -> 0
-ddbas689 toSci -0. -> -0
-
--- Specials
-ddbas700 toSci "NaN" -> NaN
-ddbas701 toSci "nan" -> NaN
-ddbas702 toSci "nAn" -> NaN
-ddbas703 toSci "NAN" -> NaN
-ddbas704 toSci "+NaN" -> NaN
-ddbas705 toSci "+nan" -> NaN
-ddbas706 toSci "+nAn" -> NaN
-ddbas707 toSci "+NAN" -> NaN
-ddbas708 toSci "-NaN" -> -NaN
-ddbas709 toSci "-nan" -> -NaN
-ddbas710 toSci "-nAn" -> -NaN
-ddbas711 toSci "-NAN" -> -NaN
-ddbas712 toSci 'NaN0' -> NaN
-ddbas713 toSci 'NaN1' -> NaN1
-ddbas714 toSci 'NaN12' -> NaN12
-ddbas715 toSci 'NaN123' -> NaN123
-ddbas716 toSci 'NaN1234' -> NaN1234
-ddbas717 toSci 'NaN01' -> NaN1
-ddbas718 toSci 'NaN012' -> NaN12
-ddbas719 toSci 'NaN0123' -> NaN123
-ddbas720 toSci 'NaN01234' -> NaN1234
-ddbas721 toSci 'NaN001' -> NaN1
-ddbas722 toSci 'NaN0012' -> NaN12
-ddbas723 toSci 'NaN00123' -> NaN123
-ddbas724 toSci 'NaN001234' -> NaN1234
-ddbas725 toSci 'NaN1234567890123456' -> NaN Conversion_syntax
-ddbas726 toSci 'NaN123e+1' -> NaN Conversion_syntax
-ddbas727 toSci 'NaN12.45' -> NaN Conversion_syntax
-ddbas728 toSci 'NaN-12' -> NaN Conversion_syntax
-ddbas729 toSci 'NaN+12' -> NaN Conversion_syntax
-
-ddbas730 toSci "sNaN" -> sNaN
-ddbas731 toSci "snan" -> sNaN
-ddbas732 toSci "SnAn" -> sNaN
-ddbas733 toSci "SNAN" -> sNaN
-ddbas734 toSci "+sNaN" -> sNaN
-ddbas735 toSci "+snan" -> sNaN
-ddbas736 toSci "+SnAn" -> sNaN
-ddbas737 toSci "+SNAN" -> sNaN
-ddbas738 toSci "-sNaN" -> -sNaN
-ddbas739 toSci "-snan" -> -sNaN
-ddbas740 toSci "-SnAn" -> -sNaN
-ddbas741 toSci "-SNAN" -> -sNaN
-ddbas742 toSci 'sNaN0000' -> sNaN
-ddbas743 toSci 'sNaN7' -> sNaN7
-ddbas744 toSci 'sNaN007234' -> sNaN7234
-ddbas745 toSci 'sNaN7234561234567890' -> NaN Conversion_syntax
-ddbas746 toSci 'sNaN72.45' -> NaN Conversion_syntax
-ddbas747 toSci 'sNaN-72' -> NaN Conversion_syntax
-
-ddbas748 toSci "Inf" -> Infinity
-ddbas749 toSci "inf" -> Infinity
-ddbas750 toSci "iNf" -> Infinity
-ddbas751 toSci "INF" -> Infinity
-ddbas752 toSci "+Inf" -> Infinity
-ddbas753 toSci "+inf" -> Infinity
-ddbas754 toSci "+iNf" -> Infinity
-ddbas755 toSci "+INF" -> Infinity
-ddbas756 toSci "-Inf" -> -Infinity
-ddbas757 toSci "-inf" -> -Infinity
-ddbas758 toSci "-iNf" -> -Infinity
-ddbas759 toSci "-INF" -> -Infinity
-
-ddbas760 toSci "Infinity" -> Infinity
-ddbas761 toSci "infinity" -> Infinity
-ddbas762 toSci "iNfInItY" -> Infinity
-ddbas763 toSci "INFINITY" -> Infinity
-ddbas764 toSci "+Infinity" -> Infinity
-ddbas765 toSci "+infinity" -> Infinity
-ddbas766 toSci "+iNfInItY" -> Infinity
-ddbas767 toSci "+INFINITY" -> Infinity
-ddbas768 toSci "-Infinity" -> -Infinity
-ddbas769 toSci "-infinity" -> -Infinity
-ddbas770 toSci "-iNfInItY" -> -Infinity
-ddbas771 toSci "-INFINITY" -> -Infinity
-
--- Specials and zeros for toEng
-ddbast772 toEng "NaN" -> NaN
-ddbast773 toEng "-Infinity" -> -Infinity
-ddbast774 toEng "-sNaN" -> -sNaN
-ddbast775 toEng "-NaN" -> -NaN
-ddbast776 toEng "+Infinity" -> Infinity
-ddbast778 toEng "+sNaN" -> sNaN
-ddbast779 toEng "+NaN" -> NaN
-ddbast780 toEng "INFINITY" -> Infinity
-ddbast781 toEng "SNAN" -> sNaN
-ddbast782 toEng "NAN" -> NaN
-ddbast783 toEng "infinity" -> Infinity
-ddbast784 toEng "snan" -> sNaN
-ddbast785 toEng "nan" -> NaN
-ddbast786 toEng "InFINITY" -> Infinity
-ddbast787 toEng "SnAN" -> sNaN
-ddbast788 toEng "nAN" -> NaN
-ddbast789 toEng "iNfinity" -> Infinity
-ddbast790 toEng "sNan" -> sNaN
-ddbast791 toEng "Nan" -> NaN
-ddbast792 toEng "Infinity" -> Infinity
-ddbast793 toEng "sNaN" -> sNaN
-
--- Zero toEng, etc.
-ddbast800 toEng 0e+1 -> "0.00E+3" -- doc example
-
-ddbast801 toEng 0.000000000 -> 0E-9
-ddbast802 toEng 0.00000000 -> 0.00E-6
-ddbast803 toEng 0.0000000 -> 0.0E-6
-ddbast804 toEng 0.000000 -> 0.000000
-ddbast805 toEng 0.00000 -> 0.00000
-ddbast806 toEng 0.0000 -> 0.0000
-ddbast807 toEng 0.000 -> 0.000
-ddbast808 toEng 0.00 -> 0.00
-ddbast809 toEng 0.0 -> 0.0
-ddbast810 toEng .0 -> 0.0
-ddbast811 toEng 0. -> 0
-ddbast812 toEng -.0 -> -0.0
-ddbast813 toEng -0. -> -0
-ddbast814 toEng -0.0 -> -0.0
-ddbast815 toEng -0.00 -> -0.00
-ddbast816 toEng -0.000 -> -0.000
-ddbast817 toEng -0.0000 -> -0.0000
-ddbast818 toEng -0.00000 -> -0.00000
-ddbast819 toEng -0.000000 -> -0.000000
-ddbast820 toEng -0.0000000 -> -0.0E-6
-ddbast821 toEng -0.00000000 -> -0.00E-6
-ddbast822 toEng -0.000000000 -> -0E-9
-
-ddbast830 toEng 0.00E+0 -> 0.00
-ddbast831 toEng 0.00E+1 -> 0.0
-ddbast832 toEng 0.00E+2 -> 0
-ddbast833 toEng 0.00E+3 -> 0.00E+3
-ddbast834 toEng 0.00E+4 -> 0.0E+3
-ddbast835 toEng 0.00E+5 -> 0E+3
-ddbast836 toEng 0.00E+6 -> 0.00E+6
-ddbast837 toEng 0.00E+7 -> 0.0E+6
-ddbast838 toEng 0.00E+8 -> 0E+6
-ddbast839 toEng 0.00E+9 -> 0.00E+9
-
-ddbast840 toEng 0.0E+0 -> 0.0
-ddbast841 toEng 0.0E+1 -> 0
-ddbast842 toEng 0.0E+2 -> 0.00E+3
-ddbast843 toEng 0.0E+3 -> 0.0E+3
-ddbast844 toEng 0.0E+4 -> 0E+3
-ddbast845 toEng 0.0E+5 -> 0.00E+6
-ddbast846 toEng 0.0E+6 -> 0.0E+6
-ddbast847 toEng 0.0E+7 -> 0E+6
-ddbast848 toEng 0.0E+8 -> 0.00E+9
-ddbast849 toEng 0.0E+9 -> 0.0E+9
-
-ddbast850 toEng 0E+0 -> 0
-ddbast851 toEng 0E+1 -> 0.00E+3
-ddbast852 toEng 0E+2 -> 0.0E+3
-ddbast853 toEng 0E+3 -> 0E+3
-ddbast854 toEng 0E+4 -> 0.00E+6
-ddbast855 toEng 0E+5 -> 0.0E+6
-ddbast856 toEng 0E+6 -> 0E+6
-ddbast857 toEng 0E+7 -> 0.00E+9
-ddbast858 toEng 0E+8 -> 0.0E+9
-ddbast859 toEng 0E+9 -> 0E+9
-
-ddbast860 toEng 0.0E-0 -> 0.0
-ddbast861 toEng 0.0E-1 -> 0.00
-ddbast862 toEng 0.0E-2 -> 0.000
-ddbast863 toEng 0.0E-3 -> 0.0000
-ddbast864 toEng 0.0E-4 -> 0.00000
-ddbast865 toEng 0.0E-5 -> 0.000000
-ddbast866 toEng 0.0E-6 -> 0.0E-6
-ddbast867 toEng 0.0E-7 -> 0.00E-6
-ddbast868 toEng 0.0E-8 -> 0E-9
-ddbast869 toEng 0.0E-9 -> 0.0E-9
-
-ddbast870 toEng 0.00E-0 -> 0.00
-ddbast871 toEng 0.00E-1 -> 0.000
-ddbast872 toEng 0.00E-2 -> 0.0000
-ddbast873 toEng 0.00E-3 -> 0.00000
-ddbast874 toEng 0.00E-4 -> 0.000000
-ddbast875 toEng 0.00E-5 -> 0.0E-6
-ddbast876 toEng 0.00E-6 -> 0.00E-6
-ddbast877 toEng 0.00E-7 -> 0E-9
-ddbast878 toEng 0.00E-8 -> 0.0E-9
-ddbast879 toEng 0.00E-9 -> 0.00E-9
-
--- long input strings
-ddbas801 tosci '01234567890123456' -> 1234567890123456
-ddbas802 tosci '001234567890123456' -> 1234567890123456
-ddbas803 tosci '0001234567890123456' -> 1234567890123456
-ddbas804 tosci '00001234567890123456' -> 1234567890123456
-ddbas805 tosci '000001234567890123456' -> 1234567890123456
-ddbas806 tosci '0000001234567890123456' -> 1234567890123456
-ddbas807 tosci '00000001234567890123456' -> 1234567890123456
-ddbas808 tosci '000000001234567890123456' -> 1234567890123456
-ddbas809 tosci '0000000001234567890123456' -> 1234567890123456
-ddbas810 tosci '00000000001234567890123456' -> 1234567890123456
-
-ddbas811 tosci '0.1234567890123456' -> 0.1234567890123456
-ddbas812 tosci '0.01234567890123456' -> 0.01234567890123456
-ddbas813 tosci '0.001234567890123456' -> 0.001234567890123456
-ddbas814 tosci '0.0001234567890123456' -> 0.0001234567890123456
-ddbas815 tosci '0.00001234567890123456' -> 0.00001234567890123456
-ddbas816 tosci '0.000001234567890123456' -> 0.000001234567890123456
-ddbas817 tosci '0.0000001234567890123456' -> 1.234567890123456E-7
-ddbas818 tosci '0.00000001234567890123456' -> 1.234567890123456E-8
-ddbas819 tosci '0.000000001234567890123456' -> 1.234567890123456E-9
-ddbas820 tosci '0.0000000001234567890123456' -> 1.234567890123456E-10
-
-ddbas821 tosci '12345678901234567890' -> 1.234567890123457E+19 Inexact Rounded
-ddbas822 tosci '123456789012345678901' -> 1.234567890123457E+20 Inexact Rounded
-ddbas823 tosci '1234567890123456789012' -> 1.234567890123457E+21 Inexact Rounded
-ddbas824 tosci '12345678901234567890123' -> 1.234567890123457E+22 Inexact Rounded
-ddbas825 tosci '123456789012345678901234' -> 1.234567890123457E+23 Inexact Rounded
-ddbas826 tosci '1234567890123456789012345' -> 1.234567890123457E+24 Inexact Rounded
-ddbas827 tosci '12345678901234567890123456' -> 1.234567890123457E+25 Inexact Rounded
-ddbas828 tosci '123456789012345678901234567' -> 1.234567890123457E+26 Inexact Rounded
-ddbas829 tosci '1234567890123456789012345678' -> 1.234567890123457E+27 Inexact Rounded
-
--- subnormals and overflows
-ddbas906 toSci '99e999999999' -> Infinity Overflow Inexact Rounded
-ddbas907 toSci '999e999999999' -> Infinity Overflow Inexact Rounded
-ddbas908 toSci '0.9e-999999999' -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddbas909 toSci '0.09e-999999999' -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddbas910 toSci '0.1e1000000000' -> Infinity Overflow Inexact Rounded
-ddbas911 toSci '10e-1000000000' -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddbas912 toSci '0.9e9999999999' -> Infinity Overflow Inexact Rounded
-ddbas913 toSci '99e-9999999999' -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddbas914 toSci '111e9999999999' -> Infinity Overflow Inexact Rounded
-ddbas915 toSci '1111e-9999999999' -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddbas916 toSci '1111e-99999999999' -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddbas917 toSci '7e1000000000' -> Infinity Overflow Inexact Rounded
--- negatives the same
-ddbas918 toSci '-99e999999999' -> -Infinity Overflow Inexact Rounded
-ddbas919 toSci '-999e999999999' -> -Infinity Overflow Inexact Rounded
-ddbas920 toSci '-0.9e-999999999' -> -0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddbas921 toSci '-0.09e-999999999' -> -0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddbas922 toSci '-0.1e1000000000' -> -Infinity Overflow Inexact Rounded
-ddbas923 toSci '-10e-1000000000' -> -0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddbas924 toSci '-0.9e9999999999' -> -Infinity Overflow Inexact Rounded
-ddbas925 toSci '-99e-9999999999' -> -0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddbas926 toSci '-111e9999999999' -> -Infinity Overflow Inexact Rounded
-ddbas927 toSci '-1111e-9999999999' -> -0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddbas928 toSci '-1111e-99999999999' -> -0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddbas929 toSci '-7e1000000000' -> -Infinity Overflow Inexact Rounded
-
--- overflow results at different rounding modes
-rounding: ceiling
-ddbas930 toSci '7e10000' -> Infinity Overflow Inexact Rounded
-ddbas931 toSci '-7e10000' -> -9.999999999999999E+384 Overflow Inexact Rounded
-rounding: up
-ddbas932 toSci '7e10000' -> Infinity Overflow Inexact Rounded
-ddbas933 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded
-rounding: down
-ddbas934 toSci '7e10000' -> 9.999999999999999E+384 Overflow Inexact Rounded
-ddbas935 toSci '-7e10000' -> -9.999999999999999E+384 Overflow Inexact Rounded
-rounding: floor
-ddbas936 toSci '7e10000' -> 9.999999999999999E+384 Overflow Inexact Rounded
-ddbas937 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded
-
-rounding: half_up
-ddbas938 toSci '7e10000' -> Infinity Overflow Inexact Rounded
-ddbas939 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded
-rounding: half_even
-ddbas940 toSci '7e10000' -> Infinity Overflow Inexact Rounded
-ddbas941 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded
-rounding: half_down
-ddbas942 toSci '7e10000' -> Infinity Overflow Inexact Rounded
-ddbas943 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded
-
-rounding: half_even
-
--- Now check 854/754r some subnormals and underflow to 0
-ddbem400 toSci 1.0000E-383 -> 1.0000E-383
-ddbem401 toSci 0.1E-394 -> 1E-395 Subnormal
-ddbem402 toSci 0.1000E-394 -> 1.000E-395 Subnormal
-ddbem403 toSci 0.0100E-394 -> 1.00E-396 Subnormal
-ddbem404 toSci 0.0010E-394 -> 1.0E-397 Subnormal
-ddbem405 toSci 0.0001E-394 -> 1E-398 Subnormal
-ddbem406 toSci 0.00010E-394 -> 1E-398 Subnormal Rounded
-ddbem407 toSci 0.00013E-394 -> 1E-398 Underflow Subnormal Inexact Rounded
-ddbem408 toSci 0.00015E-394 -> 2E-398 Underflow Subnormal Inexact Rounded
-ddbem409 toSci 0.00017E-394 -> 2E-398 Underflow Subnormal Inexact Rounded
-ddbem410 toSci 0.00023E-394 -> 2E-398 Underflow Subnormal Inexact Rounded
-ddbem411 toSci 0.00025E-394 -> 2E-398 Underflow Subnormal Inexact Rounded
-ddbem412 toSci 0.00027E-394 -> 3E-398 Underflow Subnormal Inexact Rounded
-ddbem413 toSci 0.000149E-394 -> 1E-398 Underflow Subnormal Inexact Rounded
-ddbem414 toSci 0.000150E-394 -> 2E-398 Underflow Subnormal Inexact Rounded
-ddbem415 toSci 0.000151E-394 -> 2E-398 Underflow Subnormal Inexact Rounded
-ddbem416 toSci 0.000249E-394 -> 2E-398 Underflow Subnormal Inexact Rounded
-ddbem417 toSci 0.000250E-394 -> 2E-398 Underflow Subnormal Inexact Rounded
-ddbem418 toSci 0.000251E-394 -> 3E-398 Underflow Subnormal Inexact Rounded
-ddbem419 toSci 0.00009E-394 -> 1E-398 Underflow Subnormal Inexact Rounded
-ddbem420 toSci 0.00005E-394 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddbem421 toSci 0.00003E-394 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddbem422 toSci 0.000009E-394 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddbem423 toSci 0.000005E-394 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddbem424 toSci 0.000003E-394 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-
-ddbem425 toSci 0.001049E-394 -> 1.0E-397 Underflow Subnormal Inexact Rounded
-ddbem426 toSci 0.001050E-394 -> 1.0E-397 Underflow Subnormal Inexact Rounded
-ddbem427 toSci 0.001051E-394 -> 1.1E-397 Underflow Subnormal Inexact Rounded
-ddbem428 toSci 0.001149E-394 -> 1.1E-397 Underflow Subnormal Inexact Rounded
-ddbem429 toSci 0.001150E-394 -> 1.2E-397 Underflow Subnormal Inexact Rounded
-ddbem430 toSci 0.001151E-394 -> 1.2E-397 Underflow Subnormal Inexact Rounded
-
-ddbem432 toSci 0.010049E-394 -> 1.00E-396 Underflow Subnormal Inexact Rounded
-ddbem433 toSci 0.010050E-394 -> 1.00E-396 Underflow Subnormal Inexact Rounded
-ddbem434 toSci 0.010051E-394 -> 1.01E-396 Underflow Subnormal Inexact Rounded
-ddbem435 toSci 0.010149E-394 -> 1.01E-396 Underflow Subnormal Inexact Rounded
-ddbem436 toSci 0.010150E-394 -> 1.02E-396 Underflow Subnormal Inexact Rounded
-ddbem437 toSci 0.010151E-394 -> 1.02E-396 Underflow Subnormal Inexact Rounded
-
-ddbem440 toSci 0.10103E-394 -> 1.010E-395 Underflow Subnormal Inexact Rounded
-ddbem441 toSci 0.10105E-394 -> 1.010E-395 Underflow Subnormal Inexact Rounded
-ddbem442 toSci 0.10107E-394 -> 1.011E-395 Underflow Subnormal Inexact Rounded
-ddbem443 toSci 0.10113E-394 -> 1.011E-395 Underflow Subnormal Inexact Rounded
-ddbem444 toSci 0.10115E-394 -> 1.012E-395 Underflow Subnormal Inexact Rounded
-ddbem445 toSci 0.10117E-394 -> 1.012E-395 Underflow Subnormal Inexact Rounded
-
-ddbem450 toSci 1.10730E-395 -> 1.107E-395 Underflow Subnormal Inexact Rounded
-ddbem451 toSci 1.10750E-395 -> 1.108E-395 Underflow Subnormal Inexact Rounded
-ddbem452 toSci 1.10770E-395 -> 1.108E-395 Underflow Subnormal Inexact Rounded
-ddbem453 toSci 1.10830E-395 -> 1.108E-395 Underflow Subnormal Inexact Rounded
-ddbem454 toSci 1.10850E-395 -> 1.108E-395 Underflow Subnormal Inexact Rounded
-ddbem455 toSci 1.10870E-395 -> 1.109E-395 Underflow Subnormal Inexact Rounded
-
--- make sure sign OK
-ddbem456 toSci -0.10103E-394 -> -1.010E-395 Underflow Subnormal Inexact Rounded
-ddbem457 toSci -0.10105E-394 -> -1.010E-395 Underflow Subnormal Inexact Rounded
-ddbem458 toSci -0.10107E-394 -> -1.011E-395 Underflow Subnormal Inexact Rounded
-ddbem459 toSci -0.10113E-394 -> -1.011E-395 Underflow Subnormal Inexact Rounded
-ddbem460 toSci -0.10115E-394 -> -1.012E-395 Underflow Subnormal Inexact Rounded
-ddbem461 toSci -0.10117E-394 -> -1.012E-395 Underflow Subnormal Inexact Rounded
-
--- '999s' cases
-ddbem464 toSci 999999E-395 -> 9.99999E-390 Subnormal
-ddbem465 toSci 99999.0E-394 -> 9.99990E-390 Subnormal
-ddbem466 toSci 99999.E-394 -> 9.9999E-390 Subnormal
-ddbem467 toSci 9999.9E-394 -> 9.9999E-391 Subnormal
-ddbem468 toSci 999.99E-394 -> 9.9999E-392 Subnormal
-ddbem469 toSci 99.999E-394 -> 9.9999E-393 Subnormal
-ddbem470 toSci 9.9999E-394 -> 9.9999E-394 Subnormal
-ddbem471 toSci 0.99999E-394 -> 1.0000E-394 Underflow Subnormal Inexact Rounded
-ddbem472 toSci 0.099999E-394 -> 1.000E-395 Underflow Subnormal Inexact Rounded
-ddbem473 toSci 0.0099999E-394 -> 1.00E-396 Underflow Subnormal Inexact Rounded
-ddbem474 toSci 0.00099999E-394 -> 1.0E-397 Underflow Subnormal Inexact Rounded
-ddbem475 toSci 0.000099999E-394 -> 1E-398 Underflow Subnormal Inexact Rounded
-ddbem476 toSci 0.0000099999E-394 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddbem477 toSci 0.00000099999E-394 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddbem478 toSci 0.000000099999E-394 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-
--- Exponents with insignificant leading zeros
-ddbas1001 toSci 1e999999999 -> Infinity Overflow Inexact Rounded
-ddbas1002 toSci 1e0999999999 -> Infinity Overflow Inexact Rounded
-ddbas1003 toSci 1e00999999999 -> Infinity Overflow Inexact Rounded
-ddbas1004 toSci 1e000999999999 -> Infinity Overflow Inexact Rounded
-ddbas1005 toSci 1e000000000000999999999 -> Infinity Overflow Inexact Rounded
-ddbas1006 toSci 1e000000000001000000007 -> Infinity Overflow Inexact Rounded
-ddbas1007 toSci 1e-999999999 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddbas1008 toSci 1e-0999999999 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddbas1009 toSci 1e-00999999999 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddbas1010 toSci 1e-000999999999 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddbas1011 toSci 1e-000000000000999999999 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddbas1012 toSci 1e-000000000001000000007 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-
--- check for double-rounded subnormals
-ddbas1041 toSci 1.1111111111152444E-384 -> 1.11111111111524E-384 Inexact Rounded Subnormal Underflow
-ddbas1042 toSci 1.1111111111152445E-384 -> 1.11111111111524E-384 Inexact Rounded Subnormal Underflow
-ddbas1043 toSci 1.1111111111152446E-384 -> 1.11111111111524E-384 Inexact Rounded Subnormal Underflow
-
--- clamped large normals
-ddbas1070 toSci 1E+369 -> 1E+369
-ddbas1071 toSci 1E+370 -> 1.0E+370 Clamped
-ddbas1072 toSci 1E+378 -> 1.000000000E+378 Clamped
-ddbas1073 toSci 1E+384 -> 1.000000000000000E+384 Clamped
-ddbas1074 toSci 1E+385 -> Infinity Overflow Inexact Rounded
-
-
--- clamped zeros [see also clamp.decTest]
-ddbas1075 toSci 0e+10000 -> 0E+369 Clamped
-ddbas1076 toSci 0e-10000 -> 0E-398 Clamped
-ddbas1077 toSci -0e+10000 -> -0E+369 Clamped
-ddbas1078 toSci -0e-10000 -> -0E-398 Clamped
-
--- extreme values from next-wider
-ddbas1101 toSci -9.99999999999999999999999999999999E+6144 -> -Infinity Overflow Inexact Rounded
-ddbas1102 toSci -1E-6143 -> -0E-398 Inexact Rounded Subnormal Underflow Clamped
-ddbas1103 toSci -1E-6176 -> -0E-398 Inexact Rounded Subnormal Underflow Clamped
-ddbas1104 toSci -0 -> -0
-ddbas1105 toSci +0 -> 0
-ddbas1106 toSci +1E-6176 -> 0E-398 Inexact Rounded Subnormal Underflow Clamped
-ddbas1107 toSci +1E-6173 -> 0E-398 Inexact Rounded Subnormal Underflow Clamped
-ddbas1108 toSci +9.99999999999999999999999999999999E+6144 -> Infinity Overflow Inexact Rounded
-
+------------------------------------------------------------------------ +-- ddBase.decTest -- base decDouble <--> string conversions -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- This file tests base conversions from string to a decimal number +-- and back to a string (in Scientific form) + +-- Note that unlike other operations the operand is subject to rounding +-- to conform to emax and precision settings (that is, numbers will +-- conform to rules and exponent will be in permitted range). The +-- 'left hand side', therefore, may have numbers that cannot be +-- represented in a decDouble. Some testcases go to the limit of the +-- next-wider format, and hence these testcases may also be used to +-- test narrowing and widening operations. + +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +ddbas001 toSci 0 -> 0 +ddbas002 toSci 1 -> 1 +ddbas003 toSci 1.0 -> 1.0 +ddbas004 toSci 1.00 -> 1.00 +ddbas005 toSci 10 -> 10 +ddbas006 toSci 1000 -> 1000 +ddbas007 toSci 10.0 -> 10.0 +ddbas008 toSci 10.1 -> 10.1 +ddbas009 toSci 10.4 -> 10.4 +ddbas010 toSci 10.5 -> 10.5 +ddbas011 toSci 10.6 -> 10.6 +ddbas012 toSci 10.9 -> 10.9 +ddbas013 toSci 11.0 -> 11.0 +ddbas014 toSci 1.234 -> 1.234 +ddbas015 toSci 0.123 -> 0.123 +ddbas016 toSci 0.012 -> 0.012 +ddbas017 toSci -0 -> -0 +ddbas018 toSci -0.0 -> -0.0 +ddbas019 toSci -00.00 -> -0.00 + +ddbas021 toSci -1 -> -1 +ddbas022 toSci -1.0 -> -1.0 +ddbas023 toSci -0.1 -> -0.1 +ddbas024 toSci -9.1 -> -9.1 +ddbas025 toSci -9.11 -> -9.11 +ddbas026 toSci -9.119 -> -9.119 +ddbas027 toSci -9.999 -> -9.999 + +ddbas030 toSci '123456789.123456' -> '123456789.123456' +ddbas031 toSci '123456789.000000' -> '123456789.000000' +ddbas032 toSci '123456789123456' -> '123456789123456' +ddbas033 toSci '0.0000123456789' -> '0.0000123456789' +ddbas034 toSci '0.00000123456789' -> '0.00000123456789' +ddbas035 toSci '0.000000123456789' -> '1.23456789E-7' +ddbas036 toSci '0.0000000123456789' -> '1.23456789E-8' + +ddbas037 toSci '0.123456789012344' -> '0.123456789012344' +ddbas038 toSci '0.123456789012345' -> '0.123456789012345' + +-- test finite bounds (Negs of, then 0, Ntiny, Nmin, other, Nmax) +ddbsn001 toSci -9.999999999999999E+384 -> -9.999999999999999E+384 +ddbsn002 toSci -1E-383 -> -1E-383 +ddbsn003 toSci -1E-398 -> -1E-398 Subnormal +ddbsn004 toSci -0 -> -0 +ddbsn005 toSci +0 -> 0 +ddbsn006 toSci +1E-398 -> 1E-398 Subnormal +ddbsn007 toSci +1E-383 -> 1E-383 +ddbsn008 toSci +9.999999999999999E+384 -> 9.999999999999999E+384 + +-- String [many more examples are implicitly tested elsewhere] +-- strings without E cannot generate E in result +ddbas040 toSci "12" -> '12' +ddbas041 toSci "-76" -> '-76' +ddbas042 toSci "12.76" -> '12.76' +ddbas043 toSci "+12.76" -> '12.76' +ddbas044 toSci "012.76" -> '12.76' +ddbas045 toSci "+0.003" -> '0.003' +ddbas046 toSci "17." -> '17' +ddbas047 toSci ".5" -> '0.5' +ddbas048 toSci "044" -> '44' +ddbas049 toSci "0044" -> '44' +ddbas050 toSci "0.0005" -> '0.0005' +ddbas051 toSci "00.00005" -> '0.00005' +ddbas052 toSci "0.000005" -> '0.000005' +ddbas053 toSci "0.0000050" -> '0.0000050' +ddbas054 toSci "0.0000005" -> '5E-7' +ddbas055 toSci "0.00000005" -> '5E-8' +ddbas056 toSci "12345678.543210" -> '12345678.543210' +ddbas057 toSci "2345678.543210" -> '2345678.543210' +ddbas058 toSci "345678.543210" -> '345678.543210' +ddbas059 toSci "0345678.54321" -> '345678.54321' +ddbas060 toSci "345678.5432" -> '345678.5432' +ddbas061 toSci "+345678.5432" -> '345678.5432' +ddbas062 toSci "+0345678.5432" -> '345678.5432' +ddbas063 toSci "+00345678.5432" -> '345678.5432' +ddbas064 toSci "-345678.5432" -> '-345678.5432' +ddbas065 toSci "-0345678.5432" -> '-345678.5432' +ddbas066 toSci "-00345678.5432" -> '-345678.5432' +-- examples +ddbas067 toSci "5E-6" -> '0.000005' +ddbas068 toSci "50E-7" -> '0.0000050' +ddbas069 toSci "5E-7" -> '5E-7' + +-- [No exotics as no Unicode] + +-- rounded with dots in all (including edge) places +ddbas071 toSci .1234567890123456123 -> 0.1234567890123456 Inexact Rounded +ddbas072 toSci 1.234567890123456123 -> 1.234567890123456 Inexact Rounded +ddbas073 toSci 12.34567890123456123 -> 12.34567890123456 Inexact Rounded +ddbas074 toSci 123.4567890123456123 -> 123.4567890123456 Inexact Rounded +ddbas075 toSci 1234.567890123456123 -> 1234.567890123456 Inexact Rounded +ddbas076 toSci 12345.67890123456123 -> 12345.67890123456 Inexact Rounded +ddbas077 toSci 123456.7890123456123 -> 123456.7890123456 Inexact Rounded +ddbas078 toSci 1234567.890123456123 -> 1234567.890123456 Inexact Rounded +ddbas079 toSci 12345678.90123456123 -> 12345678.90123456 Inexact Rounded +ddbas080 toSci 123456789.0123456123 -> 123456789.0123456 Inexact Rounded +ddbas081 toSci 1234567890.123456123 -> 1234567890.123456 Inexact Rounded +ddbas082 toSci 12345678901.23456123 -> 12345678901.23456 Inexact Rounded +ddbas083 toSci 123456789012.3456123 -> 123456789012.3456 Inexact Rounded +ddbas084 toSci 1234567890123.456123 -> 1234567890123.456 Inexact Rounded +ddbas085 toSci 12345678901234.56123 -> 12345678901234.56 Inexact Rounded +ddbas086 toSci 123456789012345.6123 -> 123456789012345.6 Inexact Rounded +ddbas087 toSci 1234567890123456.123 -> 1234567890123456 Inexact Rounded +ddbas088 toSci 12345678901234561.23 -> 1.234567890123456E+16 Inexact Rounded +ddbas089 toSci 123456789012345612.3 -> 1.234567890123456E+17 Inexact Rounded +ddbas090 toSci 1234567890123456123. -> 1.234567890123456E+18 Inexact Rounded + + +-- Numbers with E +ddbas130 toSci "0.000E-1" -> '0.0000' +ddbas131 toSci "0.000E-2" -> '0.00000' +ddbas132 toSci "0.000E-3" -> '0.000000' +ddbas133 toSci "0.000E-4" -> '0E-7' +ddbas134 toSci "0.00E-2" -> '0.0000' +ddbas135 toSci "0.00E-3" -> '0.00000' +ddbas136 toSci "0.00E-4" -> '0.000000' +ddbas137 toSci "0.00E-5" -> '0E-7' +ddbas138 toSci "+0E+9" -> '0E+9' +ddbas139 toSci "-0E+9" -> '-0E+9' +ddbas140 toSci "1E+9" -> '1E+9' +ddbas141 toSci "1e+09" -> '1E+9' +ddbas142 toSci "1E+90" -> '1E+90' +ddbas143 toSci "+1E+009" -> '1E+9' +ddbas144 toSci "0E+9" -> '0E+9' +ddbas145 toSci "1E+9" -> '1E+9' +ddbas146 toSci "1E+09" -> '1E+9' +ddbas147 toSci "1e+90" -> '1E+90' +ddbas148 toSci "1E+009" -> '1E+9' +ddbas149 toSci "000E+9" -> '0E+9' +ddbas150 toSci "1E9" -> '1E+9' +ddbas151 toSci "1e09" -> '1E+9' +ddbas152 toSci "1E90" -> '1E+90' +ddbas153 toSci "1E009" -> '1E+9' +ddbas154 toSci "0E9" -> '0E+9' +ddbas155 toSci "0.000e+0" -> '0.000' +ddbas156 toSci "0.000E-1" -> '0.0000' +ddbas157 toSci "4E+9" -> '4E+9' +ddbas158 toSci "44E+9" -> '4.4E+10' +ddbas159 toSci "0.73e-7" -> '7.3E-8' +ddbas160 toSci "00E+9" -> '0E+9' +ddbas161 toSci "00E-9" -> '0E-9' +ddbas162 toSci "10E+9" -> '1.0E+10' +ddbas163 toSci "10E+09" -> '1.0E+10' +ddbas164 toSci "10e+90" -> '1.0E+91' +ddbas165 toSci "10E+009" -> '1.0E+10' +ddbas166 toSci "100e+9" -> '1.00E+11' +ddbas167 toSci "100e+09" -> '1.00E+11' +ddbas168 toSci "100E+90" -> '1.00E+92' +ddbas169 toSci "100e+009" -> '1.00E+11' + +ddbas170 toSci "1.265" -> '1.265' +ddbas171 toSci "1.265E-20" -> '1.265E-20' +ddbas172 toSci "1.265E-8" -> '1.265E-8' +ddbas173 toSci "1.265E-4" -> '0.0001265' +ddbas174 toSci "1.265E-3" -> '0.001265' +ddbas175 toSci "1.265E-2" -> '0.01265' +ddbas176 toSci "1.265E-1" -> '0.1265' +ddbas177 toSci "1.265E-0" -> '1.265' +ddbas178 toSci "1.265E+1" -> '12.65' +ddbas179 toSci "1.265E+2" -> '126.5' +ddbas180 toSci "1.265E+3" -> '1265' +ddbas181 toSci "1.265E+4" -> '1.265E+4' +ddbas182 toSci "1.265E+8" -> '1.265E+8' +ddbas183 toSci "1.265E+20" -> '1.265E+20' + +ddbas190 toSci "12.65" -> '12.65' +ddbas191 toSci "12.65E-20" -> '1.265E-19' +ddbas192 toSci "12.65E-8" -> '1.265E-7' +ddbas193 toSci "12.65E-4" -> '0.001265' +ddbas194 toSci "12.65E-3" -> '0.01265' +ddbas195 toSci "12.65E-2" -> '0.1265' +ddbas196 toSci "12.65E-1" -> '1.265' +ddbas197 toSci "12.65E-0" -> '12.65' +ddbas198 toSci "12.65E+1" -> '126.5' +ddbas199 toSci "12.65E+2" -> '1265' +ddbas200 toSci "12.65E+3" -> '1.265E+4' +ddbas201 toSci "12.65E+4" -> '1.265E+5' +ddbas202 toSci "12.65E+8" -> '1.265E+9' +ddbas203 toSci "12.65E+20" -> '1.265E+21' + +ddbas210 toSci "126.5" -> '126.5' +ddbas211 toSci "126.5E-20" -> '1.265E-18' +ddbas212 toSci "126.5E-8" -> '0.000001265' +ddbas213 toSci "126.5E-4" -> '0.01265' +ddbas214 toSci "126.5E-3" -> '0.1265' +ddbas215 toSci "126.5E-2" -> '1.265' +ddbas216 toSci "126.5E-1" -> '12.65' +ddbas217 toSci "126.5E-0" -> '126.5' +ddbas218 toSci "126.5E+1" -> '1265' +ddbas219 toSci "126.5E+2" -> '1.265E+4' +ddbas220 toSci "126.5E+3" -> '1.265E+5' +ddbas221 toSci "126.5E+4" -> '1.265E+6' +ddbas222 toSci "126.5E+8" -> '1.265E+10' +ddbas223 toSci "126.5E+20" -> '1.265E+22' + +ddbas230 toSci "1265" -> '1265' +ddbas231 toSci "1265E-20" -> '1.265E-17' +ddbas232 toSci "1265E-8" -> '0.00001265' +ddbas233 toSci "1265E-4" -> '0.1265' +ddbas234 toSci "1265E-3" -> '1.265' +ddbas235 toSci "1265E-2" -> '12.65' +ddbas236 toSci "1265E-1" -> '126.5' +ddbas237 toSci "1265E-0" -> '1265' +ddbas238 toSci "1265E+1" -> '1.265E+4' +ddbas239 toSci "1265E+2" -> '1.265E+5' +ddbas240 toSci "1265E+3" -> '1.265E+6' +ddbas241 toSci "1265E+4" -> '1.265E+7' +ddbas242 toSci "1265E+8" -> '1.265E+11' +ddbas243 toSci "1265E+20" -> '1.265E+23' +ddbas244 toSci "1265E-9" -> '0.000001265' +ddbas245 toSci "1265E-10" -> '1.265E-7' +ddbas246 toSci "1265E-11" -> '1.265E-8' +ddbas247 toSci "1265E-12" -> '1.265E-9' + +ddbas250 toSci "0.1265" -> '0.1265' +ddbas251 toSci "0.1265E-20" -> '1.265E-21' +ddbas252 toSci "0.1265E-8" -> '1.265E-9' +ddbas253 toSci "0.1265E-4" -> '0.00001265' +ddbas254 toSci "0.1265E-3" -> '0.0001265' +ddbas255 toSci "0.1265E-2" -> '0.001265' +ddbas256 toSci "0.1265E-1" -> '0.01265' +ddbas257 toSci "0.1265E-0" -> '0.1265' +ddbas258 toSci "0.1265E+1" -> '1.265' +ddbas259 toSci "0.1265E+2" -> '12.65' +ddbas260 toSci "0.1265E+3" -> '126.5' +ddbas261 toSci "0.1265E+4" -> '1265' +ddbas262 toSci "0.1265E+8" -> '1.265E+7' +ddbas263 toSci "0.1265E+20" -> '1.265E+19' + +-- some more negative zeros [systematic tests below] +ddbas290 toSci "-0.000E-1" -> '-0.0000' +ddbas291 toSci "-0.000E-2" -> '-0.00000' +ddbas292 toSci "-0.000E-3" -> '-0.000000' +ddbas293 toSci "-0.000E-4" -> '-0E-7' +ddbas294 toSci "-0.00E-2" -> '-0.0000' +ddbas295 toSci "-0.00E-3" -> '-0.00000' +ddbas296 toSci "-0.0E-2" -> '-0.000' +ddbas297 toSci "-0.0E-3" -> '-0.0000' +ddbas298 toSci "-0E-2" -> '-0.00' +ddbas299 toSci "-0E-3" -> '-0.000' + +-- Engineering notation tests +ddbas301 toSci 10e12 -> 1.0E+13 +ddbas302 toEng 10e12 -> 10E+12 +ddbas303 toSci 10e11 -> 1.0E+12 +ddbas304 toEng 10e11 -> 1.0E+12 +ddbas305 toSci 10e10 -> 1.0E+11 +ddbas306 toEng 10e10 -> 100E+9 +ddbas307 toSci 10e9 -> 1.0E+10 +ddbas308 toEng 10e9 -> 10E+9 +ddbas309 toSci 10e8 -> 1.0E+9 +ddbas310 toEng 10e8 -> 1.0E+9 +ddbas311 toSci 10e7 -> 1.0E+8 +ddbas312 toEng 10e7 -> 100E+6 +ddbas313 toSci 10e6 -> 1.0E+7 +ddbas314 toEng 10e6 -> 10E+6 +ddbas315 toSci 10e5 -> 1.0E+6 +ddbas316 toEng 10e5 -> 1.0E+6 +ddbas317 toSci 10e4 -> 1.0E+5 +ddbas318 toEng 10e4 -> 100E+3 +ddbas319 toSci 10e3 -> 1.0E+4 +ddbas320 toEng 10e3 -> 10E+3 +ddbas321 toSci 10e2 -> 1.0E+3 +ddbas322 toEng 10e2 -> 1.0E+3 +ddbas323 toSci 10e1 -> 1.0E+2 +ddbas324 toEng 10e1 -> 100 +ddbas325 toSci 10e0 -> 10 +ddbas326 toEng 10e0 -> 10 +ddbas327 toSci 10e-1 -> 1.0 +ddbas328 toEng 10e-1 -> 1.0 +ddbas329 toSci 10e-2 -> 0.10 +ddbas330 toEng 10e-2 -> 0.10 +ddbas331 toSci 10e-3 -> 0.010 +ddbas332 toEng 10e-3 -> 0.010 +ddbas333 toSci 10e-4 -> 0.0010 +ddbas334 toEng 10e-4 -> 0.0010 +ddbas335 toSci 10e-5 -> 0.00010 +ddbas336 toEng 10e-5 -> 0.00010 +ddbas337 toSci 10e-6 -> 0.000010 +ddbas338 toEng 10e-6 -> 0.000010 +ddbas339 toSci 10e-7 -> 0.0000010 +ddbas340 toEng 10e-7 -> 0.0000010 +ddbas341 toSci 10e-8 -> 1.0E-7 +ddbas342 toEng 10e-8 -> 100E-9 +ddbas343 toSci 10e-9 -> 1.0E-8 +ddbas344 toEng 10e-9 -> 10E-9 +ddbas345 toSci 10e-10 -> 1.0E-9 +ddbas346 toEng 10e-10 -> 1.0E-9 +ddbas347 toSci 10e-11 -> 1.0E-10 +ddbas348 toEng 10e-11 -> 100E-12 +ddbas349 toSci 10e-12 -> 1.0E-11 +ddbas350 toEng 10e-12 -> 10E-12 +ddbas351 toSci 10e-13 -> 1.0E-12 +ddbas352 toEng 10e-13 -> 1.0E-12 + +ddbas361 toSci 7E12 -> 7E+12 +ddbas362 toEng 7E12 -> 7E+12 +ddbas363 toSci 7E11 -> 7E+11 +ddbas364 toEng 7E11 -> 700E+9 +ddbas365 toSci 7E10 -> 7E+10 +ddbas366 toEng 7E10 -> 70E+9 +ddbas367 toSci 7E9 -> 7E+9 +ddbas368 toEng 7E9 -> 7E+9 +ddbas369 toSci 7E8 -> 7E+8 +ddbas370 toEng 7E8 -> 700E+6 +ddbas371 toSci 7E7 -> 7E+7 +ddbas372 toEng 7E7 -> 70E+6 +ddbas373 toSci 7E6 -> 7E+6 +ddbas374 toEng 7E6 -> 7E+6 +ddbas375 toSci 7E5 -> 7E+5 +ddbas376 toEng 7E5 -> 700E+3 +ddbas377 toSci 7E4 -> 7E+4 +ddbas378 toEng 7E4 -> 70E+3 +ddbas379 toSci 7E3 -> 7E+3 +ddbas380 toEng 7E3 -> 7E+3 +ddbas381 toSci 7E2 -> 7E+2 +ddbas382 toEng 7E2 -> 700 +ddbas383 toSci 7E1 -> 7E+1 +ddbas384 toEng 7E1 -> 70 +ddbas385 toSci 7E0 -> 7 +ddbas386 toEng 7E0 -> 7 +ddbas387 toSci 7E-1 -> 0.7 +ddbas388 toEng 7E-1 -> 0.7 +ddbas389 toSci 7E-2 -> 0.07 +ddbas390 toEng 7E-2 -> 0.07 +ddbas391 toSci 7E-3 -> 0.007 +ddbas392 toEng 7E-3 -> 0.007 +ddbas393 toSci 7E-4 -> 0.0007 +ddbas394 toEng 7E-4 -> 0.0007 +ddbas395 toSci 7E-5 -> 0.00007 +ddbas396 toEng 7E-5 -> 0.00007 +ddbas397 toSci 7E-6 -> 0.000007 +ddbas398 toEng 7E-6 -> 0.000007 +ddbas399 toSci 7E-7 -> 7E-7 +ddbas400 toEng 7E-7 -> 700E-9 +ddbas401 toSci 7E-8 -> 7E-8 +ddbas402 toEng 7E-8 -> 70E-9 +ddbas403 toSci 7E-9 -> 7E-9 +ddbas404 toEng 7E-9 -> 7E-9 +ddbas405 toSci 7E-10 -> 7E-10 +ddbas406 toEng 7E-10 -> 700E-12 +ddbas407 toSci 7E-11 -> 7E-11 +ddbas408 toEng 7E-11 -> 70E-12 +ddbas409 toSci 7E-12 -> 7E-12 +ddbas410 toEng 7E-12 -> 7E-12 +ddbas411 toSci 7E-13 -> 7E-13 +ddbas412 toEng 7E-13 -> 700E-15 + +-- Exacts remain exact up to precision .. +rounding: half_up +ddbas420 toSci 100 -> 100 +ddbas421 toEng 100 -> 100 +ddbas422 toSci 1000 -> 1000 +ddbas423 toEng 1000 -> 1000 +ddbas424 toSci 999.9 -> 999.9 +ddbas425 toEng 999.9 -> 999.9 +ddbas426 toSci 1000.0 -> 1000.0 +ddbas427 toEng 1000.0 -> 1000.0 +ddbas428 toSci 1000.1 -> 1000.1 +ddbas429 toEng 1000.1 -> 1000.1 +ddbas430 toSci 10000 -> 10000 +ddbas431 toEng 10000 -> 10000 +ddbas432 toSci 100000 -> 100000 +ddbas433 toEng 100000 -> 100000 +ddbas434 toSci 1000000 -> 1000000 +ddbas435 toEng 1000000 -> 1000000 +ddbas436 toSci 10000000 -> 10000000 +ddbas437 toEng 10000000 -> 10000000 +ddbas438 toSci 100000000 -> 100000000 +ddbas439 toEng 1000000000000000 -> 1000000000000000 +ddbas440 toSci 10000000000000000 -> 1.000000000000000E+16 Rounded +ddbas441 toEng 10000000000000000 -> 10.00000000000000E+15 Rounded +ddbas442 toSci 10000000000000001 -> 1.000000000000000E+16 Rounded Inexact +ddbas443 toEng 10000000000000001 -> 10.00000000000000E+15 Rounded Inexact +ddbas444 toSci 10000000000000003 -> 1.000000000000000E+16 Rounded Inexact +ddbas445 toEng 10000000000000003 -> 10.00000000000000E+15 Rounded Inexact +ddbas446 toSci 10000000000000005 -> 1.000000000000001E+16 Rounded Inexact +ddbas447 toEng 10000000000000005 -> 10.00000000000001E+15 Rounded Inexact +ddbas448 toSci 100000000000000050 -> 1.000000000000001E+17 Rounded Inexact +ddbas449 toEng 100000000000000050 -> 100.0000000000001E+15 Rounded Inexact +ddbas450 toSci 10000000000000009 -> 1.000000000000001E+16 Rounded Inexact +ddbas451 toEng 10000000000000009 -> 10.00000000000001E+15 Rounded Inexact +ddbas452 toSci 100000000000000000 -> 1.000000000000000E+17 Rounded +ddbas453 toEng 100000000000000000 -> 100.0000000000000E+15 Rounded +ddbas454 toSci 100000000000000003 -> 1.000000000000000E+17 Rounded Inexact +ddbas455 toEng 100000000000000003 -> 100.0000000000000E+15 Rounded Inexact +ddbas456 toSci 100000000000000005 -> 1.000000000000000E+17 Rounded Inexact +ddbas457 toEng 100000000000000005 -> 100.0000000000000E+15 Rounded Inexact +ddbas458 toSci 100000000000000009 -> 1.000000000000000E+17 Rounded Inexact +ddbas459 toEng 100000000000000009 -> 100.0000000000000E+15 Rounded Inexact +ddbas460 toSci 1000000000000000000 -> 1.000000000000000E+18 Rounded +ddbas461 toEng 1000000000000000000 -> 1.000000000000000E+18 Rounded +ddbas462 toSci 1000000000000000300 -> 1.000000000000000E+18 Rounded Inexact +ddbas463 toEng 1000000000000000300 -> 1.000000000000000E+18 Rounded Inexact +ddbas464 toSci 1000000000000000500 -> 1.000000000000001E+18 Rounded Inexact +ddbas465 toEng 1000000000000000500 -> 1.000000000000001E+18 Rounded Inexact +ddbas466 toSci 1000000000000000900 -> 1.000000000000001E+18 Rounded Inexact +ddbas467 toEng 1000000000000000900 -> 1.000000000000001E+18 Rounded Inexact +ddbas468 toSci 10000000000000000000 -> 1.000000000000000E+19 Rounded +ddbas469 toEng 10000000000000000000 -> 10.00000000000000E+18 Rounded +ddbas470 toSci 10000000000000003000 -> 1.000000000000000E+19 Rounded Inexact +ddbas471 toEng 10000000000000003000 -> 10.00000000000000E+18 Rounded Inexact +ddbas472 toSci 10000000000000005000 -> 1.000000000000001E+19 Rounded Inexact +ddbas473 toEng 10000000000000005000 -> 10.00000000000001E+18 Rounded Inexact +ddbas474 toSci 10000000000000009000 -> 1.000000000000001E+19 Rounded Inexact +ddbas475 toEng 10000000000000009000 -> 10.00000000000001E+18 Rounded Inexact + +-- check rounding modes heeded +rounding: ceiling +ddbsr401 toSci 1.1111111111123450 -> 1.111111111112345 Rounded +ddbsr402 toSci 1.11111111111234549 -> 1.111111111112346 Rounded Inexact +ddbsr403 toSci 1.11111111111234550 -> 1.111111111112346 Rounded Inexact +ddbsr404 toSci 1.11111111111234551 -> 1.111111111112346 Rounded Inexact +rounding: up +ddbsr405 toSci 1.1111111111123450 -> 1.111111111112345 Rounded +ddbsr406 toSci 1.11111111111234549 -> 1.111111111112346 Rounded Inexact +ddbsr407 toSci 1.11111111111234550 -> 1.111111111112346 Rounded Inexact +ddbsr408 toSci 1.11111111111234551 -> 1.111111111112346 Rounded Inexact +rounding: floor +ddbsr410 toSci 1.1111111111123450 -> 1.111111111112345 Rounded +ddbsr411 toSci 1.11111111111234549 -> 1.111111111112345 Rounded Inexact +ddbsr412 toSci 1.11111111111234550 -> 1.111111111112345 Rounded Inexact +ddbsr413 toSci 1.11111111111234551 -> 1.111111111112345 Rounded Inexact +rounding: half_down +ddbsr415 toSci 1.1111111111123450 -> 1.111111111112345 Rounded +ddbsr416 toSci 1.11111111111234549 -> 1.111111111112345 Rounded Inexact +ddbsr417 toSci 1.11111111111234550 -> 1.111111111112345 Rounded Inexact +ddbsr418 toSci 1.11111111111234650 -> 1.111111111112346 Rounded Inexact +ddbsr419 toSci 1.11111111111234551 -> 1.111111111112346 Rounded Inexact +rounding: half_even +ddbsr421 toSci 1.1111111111123450 -> 1.111111111112345 Rounded +ddbsr422 toSci 1.11111111111234549 -> 1.111111111112345 Rounded Inexact +ddbsr423 toSci 1.11111111111234550 -> 1.111111111112346 Rounded Inexact +ddbsr424 toSci 1.11111111111234650 -> 1.111111111112346 Rounded Inexact +ddbsr425 toSci 1.11111111111234551 -> 1.111111111112346 Rounded Inexact +rounding: down +ddbsr426 toSci 1.1111111111123450 -> 1.111111111112345 Rounded +ddbsr427 toSci 1.11111111111234549 -> 1.111111111112345 Rounded Inexact +ddbsr428 toSci 1.11111111111234550 -> 1.111111111112345 Rounded Inexact +ddbsr429 toSci 1.11111111111234551 -> 1.111111111112345 Rounded Inexact +rounding: half_up +ddbsr431 toSci 1.1111111111123450 -> 1.111111111112345 Rounded +ddbsr432 toSci 1.11111111111234549 -> 1.111111111112345 Rounded Inexact +ddbsr433 toSci 1.11111111111234550 -> 1.111111111112346 Rounded Inexact +ddbsr434 toSci 1.11111111111234650 -> 1.111111111112347 Rounded Inexact +ddbsr435 toSci 1.11111111111234551 -> 1.111111111112346 Rounded Inexact +-- negatives +rounding: ceiling +ddbsr501 toSci -1.1111111111123450 -> -1.111111111112345 Rounded +ddbsr502 toSci -1.11111111111234549 -> -1.111111111112345 Rounded Inexact +ddbsr503 toSci -1.11111111111234550 -> -1.111111111112345 Rounded Inexact +ddbsr504 toSci -1.11111111111234551 -> -1.111111111112345 Rounded Inexact +rounding: up +ddbsr505 toSci -1.1111111111123450 -> -1.111111111112345 Rounded +ddbsr506 toSci -1.11111111111234549 -> -1.111111111112346 Rounded Inexact +ddbsr507 toSci -1.11111111111234550 -> -1.111111111112346 Rounded Inexact +ddbsr508 toSci -1.11111111111234551 -> -1.111111111112346 Rounded Inexact +rounding: floor +ddbsr510 toSci -1.1111111111123450 -> -1.111111111112345 Rounded +ddbsr511 toSci -1.11111111111234549 -> -1.111111111112346 Rounded Inexact +ddbsr512 toSci -1.11111111111234550 -> -1.111111111112346 Rounded Inexact +ddbsr513 toSci -1.11111111111234551 -> -1.111111111112346 Rounded Inexact +rounding: half_down +ddbsr515 toSci -1.1111111111123450 -> -1.111111111112345 Rounded +ddbsr516 toSci -1.11111111111234549 -> -1.111111111112345 Rounded Inexact +ddbsr517 toSci -1.11111111111234550 -> -1.111111111112345 Rounded Inexact +ddbsr518 toSci -1.11111111111234650 -> -1.111111111112346 Rounded Inexact +ddbsr519 toSci -1.11111111111234551 -> -1.111111111112346 Rounded Inexact +rounding: half_even +ddbsr521 toSci -1.1111111111123450 -> -1.111111111112345 Rounded +ddbsr522 toSci -1.11111111111234549 -> -1.111111111112345 Rounded Inexact +ddbsr523 toSci -1.11111111111234550 -> -1.111111111112346 Rounded Inexact +ddbsr524 toSci -1.11111111111234650 -> -1.111111111112346 Rounded Inexact +ddbsr525 toSci -1.11111111111234551 -> -1.111111111112346 Rounded Inexact +rounding: down +ddbsr526 toSci -1.1111111111123450 -> -1.111111111112345 Rounded +ddbsr527 toSci -1.11111111111234549 -> -1.111111111112345 Rounded Inexact +ddbsr528 toSci -1.11111111111234550 -> -1.111111111112345 Rounded Inexact +ddbsr529 toSci -1.11111111111234551 -> -1.111111111112345 Rounded Inexact +rounding: half_up +ddbsr531 toSci -1.1111111111123450 -> -1.111111111112345 Rounded +ddbsr532 toSci -1.11111111111234549 -> -1.111111111112345 Rounded Inexact +ddbsr533 toSci -1.11111111111234550 -> -1.111111111112346 Rounded Inexact +ddbsr534 toSci -1.11111111111234650 -> -1.111111111112347 Rounded Inexact +ddbsr535 toSci -1.11111111111234551 -> -1.111111111112346 Rounded Inexact + +rounding: half_even + +-- The 'baddies' tests from DiagBigDecimal, plus some new ones +ddbas500 toSci '1..2' -> NaN Conversion_syntax +ddbas501 toSci '.' -> NaN Conversion_syntax +ddbas502 toSci '..' -> NaN Conversion_syntax +ddbas503 toSci '++1' -> NaN Conversion_syntax +ddbas504 toSci '--1' -> NaN Conversion_syntax +ddbas505 toSci '-+1' -> NaN Conversion_syntax +ddbas506 toSci '+-1' -> NaN Conversion_syntax +ddbas507 toSci '12e' -> NaN Conversion_syntax +ddbas508 toSci '12e++' -> NaN Conversion_syntax +ddbas509 toSci '12f4' -> NaN Conversion_syntax +ddbas510 toSci ' +1' -> NaN Conversion_syntax +ddbas511 toSci '+ 1' -> NaN Conversion_syntax +ddbas512 toSci '12 ' -> NaN Conversion_syntax +ddbas513 toSci ' + 1' -> NaN Conversion_syntax +ddbas514 toSci ' - 1 ' -> NaN Conversion_syntax +ddbas515 toSci 'x' -> NaN Conversion_syntax +ddbas516 toSci '-1-' -> NaN Conversion_syntax +ddbas517 toSci '12-' -> NaN Conversion_syntax +ddbas518 toSci '3+' -> NaN Conversion_syntax +ddbas519 toSci '' -> NaN Conversion_syntax +ddbas520 toSci '1e-' -> NaN Conversion_syntax +ddbas521 toSci '7e99999a' -> NaN Conversion_syntax +ddbas522 toSci '7e123567890x' -> NaN Conversion_syntax +ddbas523 toSci '7e12356789012x' -> NaN Conversion_syntax +ddbas524 toSci '' -> NaN Conversion_syntax +ddbas525 toSci 'e100' -> NaN Conversion_syntax +ddbas526 toSci '\u0e5a' -> NaN Conversion_syntax +ddbas527 toSci '\u0b65' -> NaN Conversion_syntax +ddbas528 toSci '123,65' -> NaN Conversion_syntax +ddbas529 toSci '1.34.5' -> NaN Conversion_syntax +ddbas530 toSci '.123.5' -> NaN Conversion_syntax +ddbas531 toSci '01.35.' -> NaN Conversion_syntax +ddbas532 toSci '01.35-' -> NaN Conversion_syntax +ddbas533 toSci '0000..' -> NaN Conversion_syntax +ddbas534 toSci '.0000.' -> NaN Conversion_syntax +ddbas535 toSci '00..00' -> NaN Conversion_syntax +ddbas536 toSci '111e*123' -> NaN Conversion_syntax +ddbas537 toSci '111e123-' -> NaN Conversion_syntax +ddbas538 toSci '111e+12+' -> NaN Conversion_syntax +ddbas539 toSci '111e1-3-' -> NaN Conversion_syntax +ddbas540 toSci '111e1*23' -> NaN Conversion_syntax +ddbas541 toSci '111e1e+3' -> NaN Conversion_syntax +ddbas542 toSci '1e1.0' -> NaN Conversion_syntax +ddbas543 toSci '1e123e' -> NaN Conversion_syntax +ddbas544 toSci 'ten' -> NaN Conversion_syntax +ddbas545 toSci 'ONE' -> NaN Conversion_syntax +ddbas546 toSci '1e.1' -> NaN Conversion_syntax +ddbas547 toSci '1e1.' -> NaN Conversion_syntax +ddbas548 toSci '1ee' -> NaN Conversion_syntax +ddbas549 toSci 'e+1' -> NaN Conversion_syntax +ddbas550 toSci '1.23.4' -> NaN Conversion_syntax +ddbas551 toSci '1.2.1' -> NaN Conversion_syntax +ddbas552 toSci '1E+1.2' -> NaN Conversion_syntax +ddbas553 toSci '1E+1.2.3' -> NaN Conversion_syntax +ddbas554 toSci '1E++1' -> NaN Conversion_syntax +ddbas555 toSci '1E--1' -> NaN Conversion_syntax +ddbas556 toSci '1E+-1' -> NaN Conversion_syntax +ddbas557 toSci '1E-+1' -> NaN Conversion_syntax +ddbas558 toSci '1E''1' -> NaN Conversion_syntax +ddbas559 toSci "1E""1" -> NaN Conversion_syntax +ddbas560 toSci "1E""""" -> NaN Conversion_syntax +-- Near-specials +ddbas561 toSci "qNaN" -> NaN Conversion_syntax +ddbas562 toSci "NaNq" -> NaN Conversion_syntax +ddbas563 toSci "NaNs" -> NaN Conversion_syntax +ddbas564 toSci "Infi" -> NaN Conversion_syntax +ddbas565 toSci "Infin" -> NaN Conversion_syntax +ddbas566 toSci "Infini" -> NaN Conversion_syntax +ddbas567 toSci "Infinit" -> NaN Conversion_syntax +ddbas568 toSci "-Infinit" -> NaN Conversion_syntax +ddbas569 toSci "0Inf" -> NaN Conversion_syntax +ddbas570 toSci "9Inf" -> NaN Conversion_syntax +ddbas571 toSci "-0Inf" -> NaN Conversion_syntax +ddbas572 toSci "-9Inf" -> NaN Conversion_syntax +ddbas573 toSci "-sNa" -> NaN Conversion_syntax +ddbas574 toSci "xNaN" -> NaN Conversion_syntax +ddbas575 toSci "0sNaN" -> NaN Conversion_syntax + +-- some baddies with dots and Es and dots and specials +ddbas576 toSci 'e+1' -> NaN Conversion_syntax +ddbas577 toSci '.e+1' -> NaN Conversion_syntax +ddbas578 toSci '+.e+1' -> NaN Conversion_syntax +ddbas579 toSci '-.e+' -> NaN Conversion_syntax +ddbas580 toSci '-.e' -> NaN Conversion_syntax +ddbas581 toSci 'E+1' -> NaN Conversion_syntax +ddbas582 toSci '.E+1' -> NaN Conversion_syntax +ddbas583 toSci '+.E+1' -> NaN Conversion_syntax +ddbas584 toSci '-.E+' -> NaN Conversion_syntax +ddbas585 toSci '-.E' -> NaN Conversion_syntax + +ddbas586 toSci '.NaN' -> NaN Conversion_syntax +ddbas587 toSci '-.NaN' -> NaN Conversion_syntax +ddbas588 toSci '+.sNaN' -> NaN Conversion_syntax +ddbas589 toSci '+.Inf' -> NaN Conversion_syntax +ddbas590 toSci '.Infinity' -> NaN Conversion_syntax + +-- Zeros +ddbas601 toSci 0.000000000 -> 0E-9 +ddbas602 toSci 0.00000000 -> 0E-8 +ddbas603 toSci 0.0000000 -> 0E-7 +ddbas604 toSci 0.000000 -> 0.000000 +ddbas605 toSci 0.00000 -> 0.00000 +ddbas606 toSci 0.0000 -> 0.0000 +ddbas607 toSci 0.000 -> 0.000 +ddbas608 toSci 0.00 -> 0.00 +ddbas609 toSci 0.0 -> 0.0 +ddbas610 toSci .0 -> 0.0 +ddbas611 toSci 0. -> 0 +ddbas612 toSci -.0 -> -0.0 +ddbas613 toSci -0. -> -0 +ddbas614 toSci -0.0 -> -0.0 +ddbas615 toSci -0.00 -> -0.00 +ddbas616 toSci -0.000 -> -0.000 +ddbas617 toSci -0.0000 -> -0.0000 +ddbas618 toSci -0.00000 -> -0.00000 +ddbas619 toSci -0.000000 -> -0.000000 +ddbas620 toSci -0.0000000 -> -0E-7 +ddbas621 toSci -0.00000000 -> -0E-8 +ddbas622 toSci -0.000000000 -> -0E-9 + +ddbas630 toSci 0.00E+0 -> 0.00 +ddbas631 toSci 0.00E+1 -> 0.0 +ddbas632 toSci 0.00E+2 -> 0 +ddbas633 toSci 0.00E+3 -> 0E+1 +ddbas634 toSci 0.00E+4 -> 0E+2 +ddbas635 toSci 0.00E+5 -> 0E+3 +ddbas636 toSci 0.00E+6 -> 0E+4 +ddbas637 toSci 0.00E+7 -> 0E+5 +ddbas638 toSci 0.00E+8 -> 0E+6 +ddbas639 toSci 0.00E+9 -> 0E+7 + +ddbas640 toSci 0.0E+0 -> 0.0 +ddbas641 toSci 0.0E+1 -> 0 +ddbas642 toSci 0.0E+2 -> 0E+1 +ddbas643 toSci 0.0E+3 -> 0E+2 +ddbas644 toSci 0.0E+4 -> 0E+3 +ddbas645 toSci 0.0E+5 -> 0E+4 +ddbas646 toSci 0.0E+6 -> 0E+5 +ddbas647 toSci 0.0E+7 -> 0E+6 +ddbas648 toSci 0.0E+8 -> 0E+7 +ddbas649 toSci 0.0E+9 -> 0E+8 + +ddbas650 toSci 0E+0 -> 0 +ddbas651 toSci 0E+1 -> 0E+1 +ddbas652 toSci 0E+2 -> 0E+2 +ddbas653 toSci 0E+3 -> 0E+3 +ddbas654 toSci 0E+4 -> 0E+4 +ddbas655 toSci 0E+5 -> 0E+5 +ddbas656 toSci 0E+6 -> 0E+6 +ddbas657 toSci 0E+7 -> 0E+7 +ddbas658 toSci 0E+8 -> 0E+8 +ddbas659 toSci 0E+9 -> 0E+9 + +ddbas660 toSci 0.0E-0 -> 0.0 +ddbas661 toSci 0.0E-1 -> 0.00 +ddbas662 toSci 0.0E-2 -> 0.000 +ddbas663 toSci 0.0E-3 -> 0.0000 +ddbas664 toSci 0.0E-4 -> 0.00000 +ddbas665 toSci 0.0E-5 -> 0.000000 +ddbas666 toSci 0.0E-6 -> 0E-7 +ddbas667 toSci 0.0E-7 -> 0E-8 +ddbas668 toSci 0.0E-8 -> 0E-9 +ddbas669 toSci 0.0E-9 -> 0E-10 + +ddbas670 toSci 0.00E-0 -> 0.00 +ddbas671 toSci 0.00E-1 -> 0.000 +ddbas672 toSci 0.00E-2 -> 0.0000 +ddbas673 toSci 0.00E-3 -> 0.00000 +ddbas674 toSci 0.00E-4 -> 0.000000 +ddbas675 toSci 0.00E-5 -> 0E-7 +ddbas676 toSci 0.00E-6 -> 0E-8 +ddbas677 toSci 0.00E-7 -> 0E-9 +ddbas678 toSci 0.00E-8 -> 0E-10 +ddbas679 toSci 0.00E-9 -> 0E-11 + +ddbas680 toSci 000000. -> 0 +ddbas681 toSci 00000. -> 0 +ddbas682 toSci 0000. -> 0 +ddbas683 toSci 000. -> 0 +ddbas684 toSci 00. -> 0 +ddbas685 toSci 0. -> 0 +ddbas686 toSci +00000. -> 0 +ddbas687 toSci -00000. -> -0 +ddbas688 toSci +0. -> 0 +ddbas689 toSci -0. -> -0 + +-- Specials +ddbas700 toSci "NaN" -> NaN +ddbas701 toSci "nan" -> NaN +ddbas702 toSci "nAn" -> NaN +ddbas703 toSci "NAN" -> NaN +ddbas704 toSci "+NaN" -> NaN +ddbas705 toSci "+nan" -> NaN +ddbas706 toSci "+nAn" -> NaN +ddbas707 toSci "+NAN" -> NaN +ddbas708 toSci "-NaN" -> -NaN +ddbas709 toSci "-nan" -> -NaN +ddbas710 toSci "-nAn" -> -NaN +ddbas711 toSci "-NAN" -> -NaN +ddbas712 toSci 'NaN0' -> NaN +ddbas713 toSci 'NaN1' -> NaN1 +ddbas714 toSci 'NaN12' -> NaN12 +ddbas715 toSci 'NaN123' -> NaN123 +ddbas716 toSci 'NaN1234' -> NaN1234 +ddbas717 toSci 'NaN01' -> NaN1 +ddbas718 toSci 'NaN012' -> NaN12 +ddbas719 toSci 'NaN0123' -> NaN123 +ddbas720 toSci 'NaN01234' -> NaN1234 +ddbas721 toSci 'NaN001' -> NaN1 +ddbas722 toSci 'NaN0012' -> NaN12 +ddbas723 toSci 'NaN00123' -> NaN123 +ddbas724 toSci 'NaN001234' -> NaN1234 +ddbas725 toSci 'NaN1234567890123456' -> NaN Conversion_syntax +ddbas726 toSci 'NaN123e+1' -> NaN Conversion_syntax +ddbas727 toSci 'NaN12.45' -> NaN Conversion_syntax +ddbas728 toSci 'NaN-12' -> NaN Conversion_syntax +ddbas729 toSci 'NaN+12' -> NaN Conversion_syntax + +ddbas730 toSci "sNaN" -> sNaN +ddbas731 toSci "snan" -> sNaN +ddbas732 toSci "SnAn" -> sNaN +ddbas733 toSci "SNAN" -> sNaN +ddbas734 toSci "+sNaN" -> sNaN +ddbas735 toSci "+snan" -> sNaN +ddbas736 toSci "+SnAn" -> sNaN +ddbas737 toSci "+SNAN" -> sNaN +ddbas738 toSci "-sNaN" -> -sNaN +ddbas739 toSci "-snan" -> -sNaN +ddbas740 toSci "-SnAn" -> -sNaN +ddbas741 toSci "-SNAN" -> -sNaN +ddbas742 toSci 'sNaN0000' -> sNaN +ddbas743 toSci 'sNaN7' -> sNaN7 +ddbas744 toSci 'sNaN007234' -> sNaN7234 +ddbas745 toSci 'sNaN7234561234567890' -> NaN Conversion_syntax +ddbas746 toSci 'sNaN72.45' -> NaN Conversion_syntax +ddbas747 toSci 'sNaN-72' -> NaN Conversion_syntax + +ddbas748 toSci "Inf" -> Infinity +ddbas749 toSci "inf" -> Infinity +ddbas750 toSci "iNf" -> Infinity +ddbas751 toSci "INF" -> Infinity +ddbas752 toSci "+Inf" -> Infinity +ddbas753 toSci "+inf" -> Infinity +ddbas754 toSci "+iNf" -> Infinity +ddbas755 toSci "+INF" -> Infinity +ddbas756 toSci "-Inf" -> -Infinity +ddbas757 toSci "-inf" -> -Infinity +ddbas758 toSci "-iNf" -> -Infinity +ddbas759 toSci "-INF" -> -Infinity + +ddbas760 toSci "Infinity" -> Infinity +ddbas761 toSci "infinity" -> Infinity +ddbas762 toSci "iNfInItY" -> Infinity +ddbas763 toSci "INFINITY" -> Infinity +ddbas764 toSci "+Infinity" -> Infinity +ddbas765 toSci "+infinity" -> Infinity +ddbas766 toSci "+iNfInItY" -> Infinity +ddbas767 toSci "+INFINITY" -> Infinity +ddbas768 toSci "-Infinity" -> -Infinity +ddbas769 toSci "-infinity" -> -Infinity +ddbas770 toSci "-iNfInItY" -> -Infinity +ddbas771 toSci "-INFINITY" -> -Infinity + +-- Specials and zeros for toEng +ddbast772 toEng "NaN" -> NaN +ddbast773 toEng "-Infinity" -> -Infinity +ddbast774 toEng "-sNaN" -> -sNaN +ddbast775 toEng "-NaN" -> -NaN +ddbast776 toEng "+Infinity" -> Infinity +ddbast778 toEng "+sNaN" -> sNaN +ddbast779 toEng "+NaN" -> NaN +ddbast780 toEng "INFINITY" -> Infinity +ddbast781 toEng "SNAN" -> sNaN +ddbast782 toEng "NAN" -> NaN +ddbast783 toEng "infinity" -> Infinity +ddbast784 toEng "snan" -> sNaN +ddbast785 toEng "nan" -> NaN +ddbast786 toEng "InFINITY" -> Infinity +ddbast787 toEng "SnAN" -> sNaN +ddbast788 toEng "nAN" -> NaN +ddbast789 toEng "iNfinity" -> Infinity +ddbast790 toEng "sNan" -> sNaN +ddbast791 toEng "Nan" -> NaN +ddbast792 toEng "Infinity" -> Infinity +ddbast793 toEng "sNaN" -> sNaN + +-- Zero toEng, etc. +ddbast800 toEng 0e+1 -> "0.00E+3" -- doc example + +ddbast801 toEng 0.000000000 -> 0E-9 +ddbast802 toEng 0.00000000 -> 0.00E-6 +ddbast803 toEng 0.0000000 -> 0.0E-6 +ddbast804 toEng 0.000000 -> 0.000000 +ddbast805 toEng 0.00000 -> 0.00000 +ddbast806 toEng 0.0000 -> 0.0000 +ddbast807 toEng 0.000 -> 0.000 +ddbast808 toEng 0.00 -> 0.00 +ddbast809 toEng 0.0 -> 0.0 +ddbast810 toEng .0 -> 0.0 +ddbast811 toEng 0. -> 0 +ddbast812 toEng -.0 -> -0.0 +ddbast813 toEng -0. -> -0 +ddbast814 toEng -0.0 -> -0.0 +ddbast815 toEng -0.00 -> -0.00 +ddbast816 toEng -0.000 -> -0.000 +ddbast817 toEng -0.0000 -> -0.0000 +ddbast818 toEng -0.00000 -> -0.00000 +ddbast819 toEng -0.000000 -> -0.000000 +ddbast820 toEng -0.0000000 -> -0.0E-6 +ddbast821 toEng -0.00000000 -> -0.00E-6 +ddbast822 toEng -0.000000000 -> -0E-9 + +ddbast830 toEng 0.00E+0 -> 0.00 +ddbast831 toEng 0.00E+1 -> 0.0 +ddbast832 toEng 0.00E+2 -> 0 +ddbast833 toEng 0.00E+3 -> 0.00E+3 +ddbast834 toEng 0.00E+4 -> 0.0E+3 +ddbast835 toEng 0.00E+5 -> 0E+3 +ddbast836 toEng 0.00E+6 -> 0.00E+6 +ddbast837 toEng 0.00E+7 -> 0.0E+6 +ddbast838 toEng 0.00E+8 -> 0E+6 +ddbast839 toEng 0.00E+9 -> 0.00E+9 + +ddbast840 toEng 0.0E+0 -> 0.0 +ddbast841 toEng 0.0E+1 -> 0 +ddbast842 toEng 0.0E+2 -> 0.00E+3 +ddbast843 toEng 0.0E+3 -> 0.0E+3 +ddbast844 toEng 0.0E+4 -> 0E+3 +ddbast845 toEng 0.0E+5 -> 0.00E+6 +ddbast846 toEng 0.0E+6 -> 0.0E+6 +ddbast847 toEng 0.0E+7 -> 0E+6 +ddbast848 toEng 0.0E+8 -> 0.00E+9 +ddbast849 toEng 0.0E+9 -> 0.0E+9 + +ddbast850 toEng 0E+0 -> 0 +ddbast851 toEng 0E+1 -> 0.00E+3 +ddbast852 toEng 0E+2 -> 0.0E+3 +ddbast853 toEng 0E+3 -> 0E+3 +ddbast854 toEng 0E+4 -> 0.00E+6 +ddbast855 toEng 0E+5 -> 0.0E+6 +ddbast856 toEng 0E+6 -> 0E+6 +ddbast857 toEng 0E+7 -> 0.00E+9 +ddbast858 toEng 0E+8 -> 0.0E+9 +ddbast859 toEng 0E+9 -> 0E+9 + +ddbast860 toEng 0.0E-0 -> 0.0 +ddbast861 toEng 0.0E-1 -> 0.00 +ddbast862 toEng 0.0E-2 -> 0.000 +ddbast863 toEng 0.0E-3 -> 0.0000 +ddbast864 toEng 0.0E-4 -> 0.00000 +ddbast865 toEng 0.0E-5 -> 0.000000 +ddbast866 toEng 0.0E-6 -> 0.0E-6 +ddbast867 toEng 0.0E-7 -> 0.00E-6 +ddbast868 toEng 0.0E-8 -> 0E-9 +ddbast869 toEng 0.0E-9 -> 0.0E-9 + +ddbast870 toEng 0.00E-0 -> 0.00 +ddbast871 toEng 0.00E-1 -> 0.000 +ddbast872 toEng 0.00E-2 -> 0.0000 +ddbast873 toEng 0.00E-3 -> 0.00000 +ddbast874 toEng 0.00E-4 -> 0.000000 +ddbast875 toEng 0.00E-5 -> 0.0E-6 +ddbast876 toEng 0.00E-6 -> 0.00E-6 +ddbast877 toEng 0.00E-7 -> 0E-9 +ddbast878 toEng 0.00E-8 -> 0.0E-9 +ddbast879 toEng 0.00E-9 -> 0.00E-9 + +-- long input strings +ddbas801 tosci '01234567890123456' -> 1234567890123456 +ddbas802 tosci '001234567890123456' -> 1234567890123456 +ddbas803 tosci '0001234567890123456' -> 1234567890123456 +ddbas804 tosci '00001234567890123456' -> 1234567890123456 +ddbas805 tosci '000001234567890123456' -> 1234567890123456 +ddbas806 tosci '0000001234567890123456' -> 1234567890123456 +ddbas807 tosci '00000001234567890123456' -> 1234567890123456 +ddbas808 tosci '000000001234567890123456' -> 1234567890123456 +ddbas809 tosci '0000000001234567890123456' -> 1234567890123456 +ddbas810 tosci '00000000001234567890123456' -> 1234567890123456 + +ddbas811 tosci '0.1234567890123456' -> 0.1234567890123456 +ddbas812 tosci '0.01234567890123456' -> 0.01234567890123456 +ddbas813 tosci '0.001234567890123456' -> 0.001234567890123456 +ddbas814 tosci '0.0001234567890123456' -> 0.0001234567890123456 +ddbas815 tosci '0.00001234567890123456' -> 0.00001234567890123456 +ddbas816 tosci '0.000001234567890123456' -> 0.000001234567890123456 +ddbas817 tosci '0.0000001234567890123456' -> 1.234567890123456E-7 +ddbas818 tosci '0.00000001234567890123456' -> 1.234567890123456E-8 +ddbas819 tosci '0.000000001234567890123456' -> 1.234567890123456E-9 +ddbas820 tosci '0.0000000001234567890123456' -> 1.234567890123456E-10 + +ddbas821 tosci '12345678901234567890' -> 1.234567890123457E+19 Inexact Rounded +ddbas822 tosci '123456789012345678901' -> 1.234567890123457E+20 Inexact Rounded +ddbas823 tosci '1234567890123456789012' -> 1.234567890123457E+21 Inexact Rounded +ddbas824 tosci '12345678901234567890123' -> 1.234567890123457E+22 Inexact Rounded +ddbas825 tosci '123456789012345678901234' -> 1.234567890123457E+23 Inexact Rounded +ddbas826 tosci '1234567890123456789012345' -> 1.234567890123457E+24 Inexact Rounded +ddbas827 tosci '12345678901234567890123456' -> 1.234567890123457E+25 Inexact Rounded +ddbas828 tosci '123456789012345678901234567' -> 1.234567890123457E+26 Inexact Rounded +ddbas829 tosci '1234567890123456789012345678' -> 1.234567890123457E+27 Inexact Rounded + +-- subnormals and overflows +ddbas906 toSci '99e999999999' -> Infinity Overflow Inexact Rounded +ddbas907 toSci '999e999999999' -> Infinity Overflow Inexact Rounded +ddbas908 toSci '0.9e-999999999' -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +ddbas909 toSci '0.09e-999999999' -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +ddbas910 toSci '0.1e1000000000' -> Infinity Overflow Inexact Rounded +ddbas911 toSci '10e-1000000000' -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +ddbas912 toSci '0.9e9999999999' -> Infinity Overflow Inexact Rounded +ddbas913 toSci '99e-9999999999' -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +ddbas914 toSci '111e9999999999' -> Infinity Overflow Inexact Rounded +ddbas915 toSci '1111e-9999999999' -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +ddbas916 toSci '1111e-99999999999' -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +ddbas917 toSci '7e1000000000' -> Infinity Overflow Inexact Rounded +-- negatives the same +ddbas918 toSci '-99e999999999' -> -Infinity Overflow Inexact Rounded +ddbas919 toSci '-999e999999999' -> -Infinity Overflow Inexact Rounded +ddbas920 toSci '-0.9e-999999999' -> -0E-398 Underflow Subnormal Inexact Rounded Clamped +ddbas921 toSci '-0.09e-999999999' -> -0E-398 Underflow Subnormal Inexact Rounded Clamped +ddbas922 toSci '-0.1e1000000000' -> -Infinity Overflow Inexact Rounded +ddbas923 toSci '-10e-1000000000' -> -0E-398 Underflow Subnormal Inexact Rounded Clamped +ddbas924 toSci '-0.9e9999999999' -> -Infinity Overflow Inexact Rounded +ddbas925 toSci '-99e-9999999999' -> -0E-398 Underflow Subnormal Inexact Rounded Clamped +ddbas926 toSci '-111e9999999999' -> -Infinity Overflow Inexact Rounded +ddbas927 toSci '-1111e-9999999999' -> -0E-398 Underflow Subnormal Inexact Rounded Clamped +ddbas928 toSci '-1111e-99999999999' -> -0E-398 Underflow Subnormal Inexact Rounded Clamped +ddbas929 toSci '-7e1000000000' -> -Infinity Overflow Inexact Rounded + +-- overflow results at different rounding modes +rounding: ceiling +ddbas930 toSci '7e10000' -> Infinity Overflow Inexact Rounded +ddbas931 toSci '-7e10000' -> -9.999999999999999E+384 Overflow Inexact Rounded +rounding: up +ddbas932 toSci '7e10000' -> Infinity Overflow Inexact Rounded +ddbas933 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded +rounding: down +ddbas934 toSci '7e10000' -> 9.999999999999999E+384 Overflow Inexact Rounded +ddbas935 toSci '-7e10000' -> -9.999999999999999E+384 Overflow Inexact Rounded +rounding: floor +ddbas936 toSci '7e10000' -> 9.999999999999999E+384 Overflow Inexact Rounded +ddbas937 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded + +rounding: half_up +ddbas938 toSci '7e10000' -> Infinity Overflow Inexact Rounded +ddbas939 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded +rounding: half_even +ddbas940 toSci '7e10000' -> Infinity Overflow Inexact Rounded +ddbas941 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded +rounding: half_down +ddbas942 toSci '7e10000' -> Infinity Overflow Inexact Rounded +ddbas943 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded + +rounding: half_even + +-- Now check 854/754r some subnormals and underflow to 0 +ddbem400 toSci 1.0000E-383 -> 1.0000E-383 +ddbem401 toSci 0.1E-394 -> 1E-395 Subnormal +ddbem402 toSci 0.1000E-394 -> 1.000E-395 Subnormal +ddbem403 toSci 0.0100E-394 -> 1.00E-396 Subnormal +ddbem404 toSci 0.0010E-394 -> 1.0E-397 Subnormal +ddbem405 toSci 0.0001E-394 -> 1E-398 Subnormal +ddbem406 toSci 0.00010E-394 -> 1E-398 Subnormal Rounded +ddbem407 toSci 0.00013E-394 -> 1E-398 Underflow Subnormal Inexact Rounded +ddbem408 toSci 0.00015E-394 -> 2E-398 Underflow Subnormal Inexact Rounded +ddbem409 toSci 0.00017E-394 -> 2E-398 Underflow Subnormal Inexact Rounded +ddbem410 toSci 0.00023E-394 -> 2E-398 Underflow Subnormal Inexact Rounded +ddbem411 toSci 0.00025E-394 -> 2E-398 Underflow Subnormal Inexact Rounded +ddbem412 toSci 0.00027E-394 -> 3E-398 Underflow Subnormal Inexact Rounded +ddbem413 toSci 0.000149E-394 -> 1E-398 Underflow Subnormal Inexact Rounded +ddbem414 toSci 0.000150E-394 -> 2E-398 Underflow Subnormal Inexact Rounded +ddbem415 toSci 0.000151E-394 -> 2E-398 Underflow Subnormal Inexact Rounded +ddbem416 toSci 0.000249E-394 -> 2E-398 Underflow Subnormal Inexact Rounded +ddbem417 toSci 0.000250E-394 -> 2E-398 Underflow Subnormal Inexact Rounded +ddbem418 toSci 0.000251E-394 -> 3E-398 Underflow Subnormal Inexact Rounded +ddbem419 toSci 0.00009E-394 -> 1E-398 Underflow Subnormal Inexact Rounded +ddbem420 toSci 0.00005E-394 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +ddbem421 toSci 0.00003E-394 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +ddbem422 toSci 0.000009E-394 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +ddbem423 toSci 0.000005E-394 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +ddbem424 toSci 0.000003E-394 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped + +ddbem425 toSci 0.001049E-394 -> 1.0E-397 Underflow Subnormal Inexact Rounded +ddbem426 toSci 0.001050E-394 -> 1.0E-397 Underflow Subnormal Inexact Rounded +ddbem427 toSci 0.001051E-394 -> 1.1E-397 Underflow Subnormal Inexact Rounded +ddbem428 toSci 0.001149E-394 -> 1.1E-397 Underflow Subnormal Inexact Rounded +ddbem429 toSci 0.001150E-394 -> 1.2E-397 Underflow Subnormal Inexact Rounded +ddbem430 toSci 0.001151E-394 -> 1.2E-397 Underflow Subnormal Inexact Rounded + +ddbem432 toSci 0.010049E-394 -> 1.00E-396 Underflow Subnormal Inexact Rounded +ddbem433 toSci 0.010050E-394 -> 1.00E-396 Underflow Subnormal Inexact Rounded +ddbem434 toSci 0.010051E-394 -> 1.01E-396 Underflow Subnormal Inexact Rounded +ddbem435 toSci 0.010149E-394 -> 1.01E-396 Underflow Subnormal Inexact Rounded +ddbem436 toSci 0.010150E-394 -> 1.02E-396 Underflow Subnormal Inexact Rounded +ddbem437 toSci 0.010151E-394 -> 1.02E-396 Underflow Subnormal Inexact Rounded + +ddbem440 toSci 0.10103E-394 -> 1.010E-395 Underflow Subnormal Inexact Rounded +ddbem441 toSci 0.10105E-394 -> 1.010E-395 Underflow Subnormal Inexact Rounded +ddbem442 toSci 0.10107E-394 -> 1.011E-395 Underflow Subnormal Inexact Rounded +ddbem443 toSci 0.10113E-394 -> 1.011E-395 Underflow Subnormal Inexact Rounded +ddbem444 toSci 0.10115E-394 -> 1.012E-395 Underflow Subnormal Inexact Rounded +ddbem445 toSci 0.10117E-394 -> 1.012E-395 Underflow Subnormal Inexact Rounded + +ddbem450 toSci 1.10730E-395 -> 1.107E-395 Underflow Subnormal Inexact Rounded +ddbem451 toSci 1.10750E-395 -> 1.108E-395 Underflow Subnormal Inexact Rounded +ddbem452 toSci 1.10770E-395 -> 1.108E-395 Underflow Subnormal Inexact Rounded +ddbem453 toSci 1.10830E-395 -> 1.108E-395 Underflow Subnormal Inexact Rounded +ddbem454 toSci 1.10850E-395 -> 1.108E-395 Underflow Subnormal Inexact Rounded +ddbem455 toSci 1.10870E-395 -> 1.109E-395 Underflow Subnormal Inexact Rounded + +-- make sure sign OK +ddbem456 toSci -0.10103E-394 -> -1.010E-395 Underflow Subnormal Inexact Rounded +ddbem457 toSci -0.10105E-394 -> -1.010E-395 Underflow Subnormal Inexact Rounded +ddbem458 toSci -0.10107E-394 -> -1.011E-395 Underflow Subnormal Inexact Rounded +ddbem459 toSci -0.10113E-394 -> -1.011E-395 Underflow Subnormal Inexact Rounded +ddbem460 toSci -0.10115E-394 -> -1.012E-395 Underflow Subnormal Inexact Rounded +ddbem461 toSci -0.10117E-394 -> -1.012E-395 Underflow Subnormal Inexact Rounded + +-- '999s' cases +ddbem464 toSci 999999E-395 -> 9.99999E-390 Subnormal +ddbem465 toSci 99999.0E-394 -> 9.99990E-390 Subnormal +ddbem466 toSci 99999.E-394 -> 9.9999E-390 Subnormal +ddbem467 toSci 9999.9E-394 -> 9.9999E-391 Subnormal +ddbem468 toSci 999.99E-394 -> 9.9999E-392 Subnormal +ddbem469 toSci 99.999E-394 -> 9.9999E-393 Subnormal +ddbem470 toSci 9.9999E-394 -> 9.9999E-394 Subnormal +ddbem471 toSci 0.99999E-394 -> 1.0000E-394 Underflow Subnormal Inexact Rounded +ddbem472 toSci 0.099999E-394 -> 1.000E-395 Underflow Subnormal Inexact Rounded +ddbem473 toSci 0.0099999E-394 -> 1.00E-396 Underflow Subnormal Inexact Rounded +ddbem474 toSci 0.00099999E-394 -> 1.0E-397 Underflow Subnormal Inexact Rounded +ddbem475 toSci 0.000099999E-394 -> 1E-398 Underflow Subnormal Inexact Rounded +ddbem476 toSci 0.0000099999E-394 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +ddbem477 toSci 0.00000099999E-394 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +ddbem478 toSci 0.000000099999E-394 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped + +-- Exponents with insignificant leading zeros +ddbas1001 toSci 1e999999999 -> Infinity Overflow Inexact Rounded +ddbas1002 toSci 1e0999999999 -> Infinity Overflow Inexact Rounded +ddbas1003 toSci 1e00999999999 -> Infinity Overflow Inexact Rounded +ddbas1004 toSci 1e000999999999 -> Infinity Overflow Inexact Rounded +ddbas1005 toSci 1e000000000000999999999 -> Infinity Overflow Inexact Rounded +ddbas1006 toSci 1e000000000001000000007 -> Infinity Overflow Inexact Rounded +ddbas1007 toSci 1e-999999999 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +ddbas1008 toSci 1e-0999999999 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +ddbas1009 toSci 1e-00999999999 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +ddbas1010 toSci 1e-000999999999 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +ddbas1011 toSci 1e-000000000000999999999 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +ddbas1012 toSci 1e-000000000001000000007 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped + +-- check for double-rounded subnormals +ddbas1041 toSci 1.1111111111152444E-384 -> 1.11111111111524E-384 Inexact Rounded Subnormal Underflow +ddbas1042 toSci 1.1111111111152445E-384 -> 1.11111111111524E-384 Inexact Rounded Subnormal Underflow +ddbas1043 toSci 1.1111111111152446E-384 -> 1.11111111111524E-384 Inexact Rounded Subnormal Underflow + +-- clamped large normals +ddbas1070 toSci 1E+369 -> 1E+369 +ddbas1071 toSci 1E+370 -> 1.0E+370 Clamped +ddbas1072 toSci 1E+378 -> 1.000000000E+378 Clamped +ddbas1073 toSci 1E+384 -> 1.000000000000000E+384 Clamped +ddbas1074 toSci 1E+385 -> Infinity Overflow Inexact Rounded + + +-- clamped zeros [see also clamp.decTest] +ddbas1075 toSci 0e+10000 -> 0E+369 Clamped +ddbas1076 toSci 0e-10000 -> 0E-398 Clamped +ddbas1077 toSci -0e+10000 -> -0E+369 Clamped +ddbas1078 toSci -0e-10000 -> -0E-398 Clamped + +-- extreme values from next-wider +ddbas1101 toSci -9.99999999999999999999999999999999E+6144 -> -Infinity Overflow Inexact Rounded +ddbas1102 toSci -1E-6143 -> -0E-398 Inexact Rounded Subnormal Underflow Clamped +ddbas1103 toSci -1E-6176 -> -0E-398 Inexact Rounded Subnormal Underflow Clamped +ddbas1104 toSci -0 -> -0 +ddbas1105 toSci +0 -> 0 +ddbas1106 toSci +1E-6176 -> 0E-398 Inexact Rounded Subnormal Underflow Clamped +ddbas1107 toSci +1E-6173 -> 0E-398 Inexact Rounded Subnormal Underflow Clamped +ddbas1108 toSci +9.99999999999999999999999999999999E+6144 -> Infinity Overflow Inexact Rounded + diff --git a/Lib/test/decimaltestdata/ddCanonical.decTest b/Lib/test/decimaltestdata/ddCanonical.decTest index 824de83aba..b4f9e32c98 100644 --- a/Lib/test/decimaltestdata/ddCanonical.decTest +++ b/Lib/test/decimaltestdata/ddCanonical.decTest @@ -1,357 +1,357 @@ -------------------------------------------------------------------------
--- ddCanonical.decTest -- test decDouble canonical results --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- This file tests that copy operations leave uncanonical operands
--- unchanged, and vice versa
--- All operands and results are decDoubles.
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
--- Uncanonical declets are: abc, where:
--- a=1,2,3
--- b=6,7,e,f
--- c=e,f
-
--- assert some standard (canonical) values; this tests that FromString
--- produces canonical results (many more in decimalNN)
-ddcan001 apply 9.999999999999999E+384 -> #77fcff3fcff3fcff
-ddcan002 apply 0 -> #2238000000000000
-ddcan003 apply 1 -> #2238000000000001
-ddcan004 apply -1 -> #a238000000000001
-ddcan005 apply Infinity -> #7800000000000000
-ddcan006 apply -Infinity -> #f800000000000000
-ddcan007 apply -NaN -> #fc00000000000000
-ddcan008 apply -sNaN -> #fe00000000000000
-ddcan009 apply NaN999999999999999 -> #7c00ff3fcff3fcff
-ddcan010 apply sNaN999999999999999 -> #7e00ff3fcff3fcff
-decan011 apply 9999999999999999 -> #6e38ff3fcff3fcff
-ddcan012 apply 7.50 -> #22300000000003d0
-ddcan013 apply 9.99 -> #22300000000000ff
-
--- Base tests for canonical encodings (individual operator
--- propagation is tested later)
-
--- Finites: declets in coefficient
-ddcan021 canonical #77fcff3fcff3fcff -> #77fcff3fcff3fcff
-ddcan022 canonical #77fcff3fcff3fcff -> #77fcff3fcff3fcff
-ddcan023 canonical #77ffff3fcff3fcff -> #77fcff3fcff3fcff
-ddcan024 canonical #77ffff3fcff3fcff -> #77fcff3fcff3fcff
-ddcan025 canonical #77fcffffcff3fcff -> #77fcff3fcff3fcff
-ddcan026 canonical #77fcffffcff3fcff -> #77fcff3fcff3fcff
-ddcan027 canonical #77fcff3ffff3fcff -> #77fcff3fcff3fcff
-ddcan028 canonical #77fcff3ffff3fcff -> #77fcff3fcff3fcff
-ddcan030 canonical #77fcff3fcffffcff -> #77fcff3fcff3fcff
-ddcan031 canonical #77fcff3fcffffcff -> #77fcff3fcff3fcff
-ddcan032 canonical #77fcff3fcff3ffff -> #77fcff3fcff3fcff
-ddcan033 canonical #77fcff3fcff3ffff -> #77fcff3fcff3fcff
-ddcan035 canonical #77fcff3fdff3fcff -> #77fcff3fcff3fcff
-ddcan036 canonical #77fcff3feff3fcff -> #77fcff3fcff3fcff
-
--- NaN: declets in payload
-ddcan100 canonical NaN999999999999999 -> #7c00ff3fcff3fcff
-ddcan101 canonical #7c00ff3fcff3fcff -> #7c00ff3fcff3fcff
-ddcan102 canonical #7c03ff3fcff3fcff -> #7c00ff3fcff3fcff
-ddcan103 canonical #7c00ffffcff3fcff -> #7c00ff3fcff3fcff
-ddcan104 canonical #7c00ff3ffff3fcff -> #7c00ff3fcff3fcff
-ddcan105 canonical #7c00ff3fcffffcff -> #7c00ff3fcff3fcff
-ddcan106 canonical #7c00ff3fcff3ffff -> #7c00ff3fcff3fcff
-ddcan107 canonical #7c00ff3fcff3ffff -> #7c00ff3fcff3fcff
--- NaN: exponent continuation bits [excluding sNaN selector]
-ddcan110 canonical #7c00ff3fcff3fcff -> #7c00ff3fcff3fcff
-ddcan112 canonical #7d00ff3fcff3fcff -> #7c00ff3fcff3fcff
-ddcan113 canonical #7c80ff3fcff3fcff -> #7c00ff3fcff3fcff
-ddcan114 canonical #7c40ff3fcff3fcff -> #7c00ff3fcff3fcff
-ddcan115 canonical #7c20ff3fcff3fcff -> #7c00ff3fcff3fcff
-ddcan116 canonical #7c10ff3fcff3fcff -> #7c00ff3fcff3fcff
-ddcan117 canonical #7c08ff3fcff3fcff -> #7c00ff3fcff3fcff
-ddcan118 canonical #7c04ff3fcff3fcff -> #7c00ff3fcff3fcff
-
--- sNaN: declets in payload
-ddcan120 canonical sNaN999999999999999 -> #7e00ff3fcff3fcff
-ddcan121 canonical #7e00ff3fcff3fcff -> #7e00ff3fcff3fcff
-ddcan122 canonical #7e03ff3fcff3fcff -> #7e00ff3fcff3fcff
-ddcan123 canonical #7e00ffffcff3fcff -> #7e00ff3fcff3fcff
-ddcan124 canonical #7e00ff3ffff3fcff -> #7e00ff3fcff3fcff
-ddcan125 canonical #7e00ff3fcffffcff -> #7e00ff3fcff3fcff
-ddcan126 canonical #7e00ff3fcff3ffff -> #7e00ff3fcff3fcff
-ddcan127 canonical #7e00ff3fcff3ffff -> #7e00ff3fcff3fcff
--- sNaN: exponent continuation bits [excluding sNaN selector]
-ddcan130 canonical #7e00ff3fcff3fcff -> #7e00ff3fcff3fcff
-ddcan132 canonical #7f00ff3fcff3fcff -> #7e00ff3fcff3fcff
-ddcan133 canonical #7e80ff3fcff3fcff -> #7e00ff3fcff3fcff
-ddcan134 canonical #7e40ff3fcff3fcff -> #7e00ff3fcff3fcff
-ddcan135 canonical #7e20ff3fcff3fcff -> #7e00ff3fcff3fcff
-ddcan136 canonical #7e10ff3fcff3fcff -> #7e00ff3fcff3fcff
-ddcan137 canonical #7e08ff3fcff3fcff -> #7e00ff3fcff3fcff
-ddcan138 canonical #7e04ff3fcff3fcff -> #7e00ff3fcff3fcff
-
--- Inf: exponent continuation bits
-ddcan140 canonical #7800000000000000 -> #7800000000000000
-ddcan141 canonical #7900000000000000 -> #7800000000000000
-ddcan142 canonical #7a00000000000000 -> #7800000000000000
-ddcan143 canonical #7880000000000000 -> #7800000000000000
-ddcan144 canonical #7840000000000000 -> #7800000000000000
-ddcan145 canonical #7820000000000000 -> #7800000000000000
-ddcan146 canonical #7810000000000000 -> #7800000000000000
-ddcan147 canonical #7808000000000000 -> #7800000000000000
-ddcan148 canonical #7804000000000000 -> #7800000000000000
-
--- Inf: coefficient continuation bits (first, last, and a few others)
-ddcan150 canonical #7800000000000000 -> #7800000000000000
-ddcan151 canonical #7802000000000000 -> #7800000000000000
-ddcan152 canonical #7800000000000001 -> #7800000000000000
-ddcan153 canonical #7801000000000000 -> #7800000000000000
-ddcan154 canonical #7800200000000000 -> #7800000000000000
-ddcan155 canonical #7800080000000000 -> #7800000000000000
-ddcan156 canonical #7800002000000000 -> #7800000000000000
-ddcan157 canonical #7800000400000000 -> #7800000000000000
-ddcan158 canonical #7800000040000000 -> #7800000000000000
-ddcan159 canonical #7800000008000000 -> #7800000000000000
-ddcan160 canonical #7800000000400000 -> #7800000000000000
-ddcan161 canonical #7800000000020000 -> #7800000000000000
-ddcan162 canonical #7800000000008000 -> #7800000000000000
-ddcan163 canonical #7800000000000200 -> #7800000000000000
-ddcan164 canonical #7800000000000040 -> #7800000000000000
-ddcan165 canonical #7800000000000008 -> #7800000000000000
-
-
--- Now the operators -- trying to check paths that might fail to
--- canonicalize propagated operands
-
------ Add:
--- Finites: neutral 0
-ddcan202 add 0E+384 #77ffff3fcff3fcff -> #77fcff3fcff3fcff
-ddcan203 add #77fcffffcff3fcff 0E+384 -> #77fcff3fcff3fcff
--- tiny zero
-ddcan204 add 0E-398 #77ffff3fcff3fcff -> #77fcff3fcff3fcff Rounded
-ddcan205 add #77fcffffcff3fcff 0E-398 -> #77fcff3fcff3fcff Rounded
--- tiny non zero
-ddcan206 add -1E-398 #77ffff3fcff3fcff -> #77fcff3fcff3fcff Inexact Rounded
-ddcan207 add #77ffff3fcff3fcff -1E-398 -> #77fcff3fcff3fcff Inexact Rounded
--- NaN: declets in payload
-ddcan211 add 0 #7c03ff3fcff3fcff -> #7c00ff3fcff3fcff
-ddcan212 add #7c03ff3fcff3fcff 0 -> #7c00ff3fcff3fcff
--- NaN: exponent continuation bits [excluding sNaN selector]
-ddcan213 add 0 #7c40ff3fcff3fcff -> #7c00ff3fcff3fcff
-ddcan214 add #7c40ff3fcff3fcff 0 -> #7c00ff3fcff3fcff
--- sNaN: declets in payload
-ddcan215 add 0 #7e00ffffcff3fcff -> #7c00ff3fcff3fcff Invalid_operation
-ddcan216 add #7e00ffffcff3fcff 0 -> #7c00ff3fcff3fcff Invalid_operation
--- sNaN: exponent continuation bits [excluding sNaN selector]
-ddcan217 add 0 #7e80ff3fcff3fcff -> #7c00ff3fcff3fcff Invalid_operation
-ddcan218 add #7e80ff3fcff3fcff 0 -> #7c00ff3fcff3fcff Invalid_operation
--- Inf: exponent continuation bits
-ddcan220 add 0 #7880000000000000 -> #7800000000000000
-ddcan221 add #7880000000000000 0 -> #7800000000000000
--- Inf: coefficient continuation bits
-ddcan222 add 0 #7802000000000000 -> #7800000000000000
-ddcan223 add #7802000000000000 0 -> #7800000000000000
-ddcan224 add 0 #7800000000000001 -> #7800000000000000
-ddcan225 add #7800000000000001 0 -> #7800000000000000
-ddcan226 add 0 #7800002000000000 -> #7800000000000000
-ddcan227 add #7800002000000000 0 -> #7800000000000000
-
------ Class: [does not return encoded]
-
------ Compare:
-ddcan231 compare -Inf 1 -> #a238000000000001
-ddcan232 compare -Inf -Inf -> #2238000000000000
-ddcan233 compare 1 -Inf -> #2238000000000001
-ddcan234 compare #7c00ff3ffff3fcff -1000 -> #7c00ff3fcff3fcff
-ddcan235 compare #7e00ff3ffff3fcff -1000 -> #7c00ff3fcff3fcff Invalid_operation
-
------ CompareSig:
-ddcan241 comparesig -Inf 1 -> #a238000000000001
-ddcan242 comparesig -Inf -Inf -> #2238000000000000
-ddcan243 comparesig 1 -Inf -> #2238000000000001
-ddcan244 comparesig #7c00ff3ffff3fcff -1000 -> #7c00ff3fcff3fcff Invalid_operation
-ddcan245 comparesig #7e00ff3ffff3fcff -1000 -> #7c00ff3fcff3fcff Invalid_operation
-
------ Copy: [does not usually canonicalize]
--- finites
-ddcan250 copy #77ffff3fcff3fcff -> #77ffff3fcff3fcff
-ddcan251 copy #77fcff3fdff3fcff -> #77fcff3fdff3fcff
--- NaNs
-ddcan252 copy #7c03ff3fcff3fcff -> #7c03ff3fcff3fcff
-ddcan253 copy #7c00ff3fcff3ffff -> #7c00ff3fcff3ffff
-ddcan254 copy #7d00ff3fcff3fcff -> #7d00ff3fcff3fcff
-ddcan255 copy #7c04ff3fcff3fcff -> #7c04ff3fcff3fcff
--- sNaN
-ddcan256 copy #7e00ff3fcffffcff -> #7e00ff3fcffffcff
-ddcan257 copy #7e40ff3fcff3fcff -> #7e40ff3fcff3fcff
--- Inf
-ddcan258 copy #7a00000000000000 -> #7a00000000000000
-ddcan259 copy #7800200000000000 -> #7800200000000000
-
------ CopyAbs: [does not usually canonicalize]
--- finites
-ddcan260 copyabs #f7ffff3fcff3fcff -> #77ffff3fcff3fcff
-ddcan261 copyabs #f7fcff3fdff3fcff -> #77fcff3fdff3fcff
--- NaNs
-ddcan262 copyabs #fc03ff3fcff3fcff -> #7c03ff3fcff3fcff
-ddcan263 copyabs #fc00ff3fcff3ffff -> #7c00ff3fcff3ffff
-ddcan264 copyabs #fd00ff3fcff3fcff -> #7d00ff3fcff3fcff
-ddcan265 copyabs #fc04ff3fcff3fcff -> #7c04ff3fcff3fcff
--- sNaN
-ddcan266 copyabs #fe00ff3fcffffcff -> #7e00ff3fcffffcff
-ddcan267 copyabs #fe40ff3fcff3fcff -> #7e40ff3fcff3fcff
--- Inf
-ddcan268 copyabs #fa00000000000000 -> #7a00000000000000
-ddcan269 copyabs #f800200000000000 -> #7800200000000000
-
------ CopyNegate: [does not usually canonicalize]
--- finites
-ddcan270 copynegate #77ffff3fcff3fcff -> #f7ffff3fcff3fcff
-ddcan271 copynegate #77fcff3fdff3fcff -> #f7fcff3fdff3fcff
--- NaNs
-ddcan272 copynegate #7c03ff3fcff3fcff -> #fc03ff3fcff3fcff
-ddcan273 copynegate #7c00ff3fcff3ffff -> #fc00ff3fcff3ffff
-ddcan274 copynegate #7d00ff3fcff3fcff -> #fd00ff3fcff3fcff
-ddcan275 copynegate #7c04ff3fcff3fcff -> #fc04ff3fcff3fcff
--- sNaN
-ddcan276 copynegate #7e00ff3fcffffcff -> #fe00ff3fcffffcff
-ddcan277 copynegate #7e40ff3fcff3fcff -> #fe40ff3fcff3fcff
--- Inf
-ddcan278 copynegate #7a00000000000000 -> #fa00000000000000
-ddcan279 copynegate #7800200000000000 -> #f800200000000000
-
------ CopySign: [does not usually canonicalize]
--- finites
-ddcan280 copysign #77ffff3fcff3fcff -1 -> #f7ffff3fcff3fcff
-ddcan281 copysign #77fcff3fdff3fcff 1 -> #77fcff3fdff3fcff
--- NaNs
-ddcan282 copysign #7c03ff3fcff3fcff -1 -> #fc03ff3fcff3fcff
-ddcan283 copysign #7c00ff3fcff3ffff 1 -> #7c00ff3fcff3ffff
-ddcan284 copysign #7d00ff3fcff3fcff -1 -> #fd00ff3fcff3fcff
-ddcan285 copysign #7c04ff3fcff3fcff 1 -> #7c04ff3fcff3fcff
--- sNaN
-ddcan286 copysign #7e00ff3fcffffcff -1 -> #fe00ff3fcffffcff
-ddcan287 copysign #7e40ff3fcff3fcff 1 -> #7e40ff3fcff3fcff
--- Inf
-ddcan288 copysign #7a00000000000000 -1 -> #fa00000000000000
-ddcan289 copysign #7800200000000000 1 -> #7800200000000000
-
------ Multiply:
--- Finites: neutral 0
-ddcan302 multiply 1 #77ffff3fcff3fcff -> #77fcff3fcff3fcff
-ddcan303 multiply #77fcffffcff3fcff 1 -> #77fcff3fcff3fcff
--- negative
-ddcan306 multiply -1 #77ffff3fcff3fcff -> #f7fcff3fcff3fcff
-ddcan307 multiply #77fcffffcff3fcff -1 -> #f7fcff3fcff3fcff
--- NaN: declets in payload
-ddcan311 multiply 1 #7c03ff3fcff3fcff -> #7c00ff3fcff3fcff
-ddcan312 multiply #7c03ff3fcff3fcff 1 -> #7c00ff3fcff3fcff
--- NaN: exponent continuation bits [excluding sNaN selector]
-ddcan313 multiply 1 #7c40ff3fcff3fcff -> #7c00ff3fcff3fcff
-ddcan314 multiply #7c40ff3fcff3fcff 1 -> #7c00ff3fcff3fcff
--- sNaN: declets in payload
-ddcan315 multiply 1 #7e00ffffcff3fcff -> #7c00ff3fcff3fcff Invalid_operation
-ddcan316 multiply #7e00ffffcff3fcff 1 -> #7c00ff3fcff3fcff Invalid_operation
--- sNaN: exponent continuation bits [excluding sNaN selector]
-ddcan317 multiply 1 #7e80ff3fcff3fcff -> #7c00ff3fcff3fcff Invalid_operation
-ddcan318 multiply #7e80ff3fcff3fcff 1 -> #7c00ff3fcff3fcff Invalid_operation
--- Inf: exponent continuation bits
-ddcan320 multiply 1 #7880000000000000 -> #7800000000000000
-ddcan321 multiply #7880000000000000 1 -> #7800000000000000
--- Inf: coefficient continuation bits
-ddcan322 multiply 1 #7802000000000000 -> #7800000000000000
-ddcan323 multiply #7802000000000000 1 -> #7800000000000000
-ddcan324 multiply 1 #7800000000000001 -> #7800000000000000
-ddcan325 multiply #7800000000000001 1 -> #7800000000000000
-ddcan326 multiply 1 #7800002000000000 -> #7800000000000000
-ddcan327 multiply #7800002000000000 1 -> #7800000000000000
-
------ Quantize:
-ddcan401 quantize #6e38ff3ffff3fcff 1 -> #6e38ff3fcff3fcff
-ddcan402 quantize #6e38ff3fcff3fdff 0 -> #6e38ff3fcff3fcff
-ddcan403 quantize #7880000000000000 Inf -> #7800000000000000
-ddcan404 quantize #7802000000000000 -Inf -> #7800000000000000
-ddcan410 quantize #7c03ff3fcff3fcff 1 -> #7c00ff3fcff3fcff
-ddcan411 quantize #7c03ff3fcff3fcff 1 -> #7c00ff3fcff3fcff
-ddcan412 quantize #7c40ff3fcff3fcff 1 -> #7c00ff3fcff3fcff
-ddcan413 quantize #7c40ff3fcff3fcff 1 -> #7c00ff3fcff3fcff
-ddcan414 quantize #7e00ffffcff3fcff 1 -> #7c00ff3fcff3fcff Invalid_operation
-ddcan415 quantize #7e00ffffcff3fcff 1 -> #7c00ff3fcff3fcff Invalid_operation
-ddcan416 quantize #7e80ff3fcff3fcff 1 -> #7c00ff3fcff3fcff Invalid_operation
-ddcan417 quantize #7e80ff3fcff3fcff 1 -> #7c00ff3fcff3fcff Invalid_operation
-
------ Subtract:
--- Finites: neutral 0
-ddcan502 subtract 0E+384 #77ffff3fcff3fcff -> #f7fcff3fcff3fcff
-ddcan503 subtract #77fcffffcff3fcff 0E+384 -> #77fcff3fcff3fcff
--- tiny zero
-ddcan504 subtract 0E-398 #77ffff3fcff3fcff -> #f7fcff3fcff3fcff Rounded
-ddcan505 subtract #77fcffffcff3fcff 0E-398 -> #77fcff3fcff3fcff Rounded
--- tiny non zero
-ddcan506 subtract -1E-398 #77ffff3fcff3fcff -> #f7fcff3fcff3fcff Inexact Rounded
-ddcan507 subtract #77ffff3fcff3fcff -1E-398 -> #77fcff3fcff3fcff Inexact Rounded
--- NaN: declets in payload
-ddcan511 subtract 0 #7c03ff3fcff3fcff -> #7c00ff3fcff3fcff
-ddcan512 subtract #7c03ff3fcff3fcff 0 -> #7c00ff3fcff3fcff
--- NaN: exponent continuation bits [excluding sNaN selector]
-ddcan513 subtract 0 #7c40ff3fcff3fcff -> #7c00ff3fcff3fcff
-ddcan514 subtract #7c40ff3fcff3fcff 0 -> #7c00ff3fcff3fcff
--- sNaN: declets in payload
-ddcan515 subtract 0 #7e00ffffcff3fcff -> #7c00ff3fcff3fcff Invalid_operation
-ddcan516 subtract #7e00ffffcff3fcff 0 -> #7c00ff3fcff3fcff Invalid_operation
--- sNaN: exponent continuation bits [excluding sNaN selector]
-ddcan517 subtract 0 #7e80ff3fcff3fcff -> #7c00ff3fcff3fcff Invalid_operation
-ddcan518 subtract #7e80ff3fcff3fcff 0 -> #7c00ff3fcff3fcff Invalid_operation
--- Inf: exponent continuation bits
-ddcan520 subtract 0 #7880000000000000 -> #f800000000000000
-ddcan521 subtract #7880000000000000 0 -> #7800000000000000
--- Inf: coefficient continuation bits
-ddcan522 subtract 0 #7802000000000000 -> #f800000000000000
-ddcan523 subtract #7802000000000000 0 -> #7800000000000000
-ddcan524 subtract 0 #7800000000000001 -> #f800000000000000
-ddcan525 subtract #7800000000000001 0 -> #7800000000000000
-ddcan526 subtract 0 #7800002000000000 -> #f800000000000000
-ddcan527 subtract #7800002000000000 0 -> #7800000000000000
-
------ ToIntegral:
-ddcan601 tointegralx #6e38ff3ffff3fcff -> #6e38ff3fcff3fcff
-ddcan602 tointegralx #6e38ff3fcff3fdff -> #6e38ff3fcff3fcff
-ddcan603 tointegralx #7880000000000000 -> #7800000000000000
-ddcan604 tointegralx #7802000000000000 -> #7800000000000000
-ddcan610 tointegralx #7c03ff3fcff3fcff -> #7c00ff3fcff3fcff
-ddcan611 tointegralx #7c03ff3fcff3fcff -> #7c00ff3fcff3fcff
-ddcan612 tointegralx #7c40ff3fcff3fcff -> #7c00ff3fcff3fcff
-ddcan613 tointegralx #7c40ff3fcff3fcff -> #7c00ff3fcff3fcff
-ddcan614 tointegralx #7e00ffffcff3fcff -> #7c00ff3fcff3fcff Invalid_operation
-ddcan615 tointegralx #7e00ffffcff3fcff -> #7c00ff3fcff3fcff Invalid_operation
-ddcan616 tointegralx #7e80ff3fcff3fcff -> #7c00ff3fcff3fcff Invalid_operation
-ddcan617 tointegralx #7e80ff3fcff3fcff -> #7c00ff3fcff3fcff Invalid_operation
--- uncanonical 3999, 39.99, 3.99, 0.399, and negatives
-ddcan618 tointegralx #2238000000000fff -> #2238000000000cff
-ddcan619 tointegralx #2230000000000fff -> #2238000000000040 Inexact Rounded
-ddcan620 tointegralx #222c000000000fff -> #2238000000000004 Inexact Rounded
-ddcan621 tointegralx #2228000000000fff -> #2238000000000000 Inexact Rounded
-ddcan622 tointegralx #a238000000000fff -> #a238000000000cff
-ddcan623 tointegralx #a230000000000fff -> #a238000000000040 Inexact Rounded
-ddcan624 tointegralx #a22c000000000fff -> #a238000000000004 Inexact Rounded
-ddcan625 tointegralx #a228000000000fff -> #a238000000000000 Inexact Rounded
-
-
-
+------------------------------------------------------------------------ +-- ddCanonical.decTest -- test decDouble canonical results -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- This file tests that copy operations leave uncanonical operands +-- unchanged, and vice versa +-- All operands and results are decDoubles. +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +-- Uncanonical declets are: abc, where: +-- a=1,2,3 +-- b=6,7,e,f +-- c=e,f + +-- assert some standard (canonical) values; this tests that FromString +-- produces canonical results (many more in decimalNN) +ddcan001 apply 9.999999999999999E+384 -> #77fcff3fcff3fcff +ddcan002 apply 0 -> #2238000000000000 +ddcan003 apply 1 -> #2238000000000001 +ddcan004 apply -1 -> #a238000000000001 +ddcan005 apply Infinity -> #7800000000000000 +ddcan006 apply -Infinity -> #f800000000000000 +ddcan007 apply -NaN -> #fc00000000000000 +ddcan008 apply -sNaN -> #fe00000000000000 +ddcan009 apply NaN999999999999999 -> #7c00ff3fcff3fcff +ddcan010 apply sNaN999999999999999 -> #7e00ff3fcff3fcff +decan011 apply 9999999999999999 -> #6e38ff3fcff3fcff +ddcan012 apply 7.50 -> #22300000000003d0 +ddcan013 apply 9.99 -> #22300000000000ff + +-- Base tests for canonical encodings (individual operator +-- propagation is tested later) + +-- Finites: declets in coefficient +ddcan021 canonical #77fcff3fcff3fcff -> #77fcff3fcff3fcff +ddcan022 canonical #77fcff3fcff3fcff -> #77fcff3fcff3fcff +ddcan023 canonical #77ffff3fcff3fcff -> #77fcff3fcff3fcff +ddcan024 canonical #77ffff3fcff3fcff -> #77fcff3fcff3fcff +ddcan025 canonical #77fcffffcff3fcff -> #77fcff3fcff3fcff +ddcan026 canonical #77fcffffcff3fcff -> #77fcff3fcff3fcff +ddcan027 canonical #77fcff3ffff3fcff -> #77fcff3fcff3fcff +ddcan028 canonical #77fcff3ffff3fcff -> #77fcff3fcff3fcff +ddcan030 canonical #77fcff3fcffffcff -> #77fcff3fcff3fcff +ddcan031 canonical #77fcff3fcffffcff -> #77fcff3fcff3fcff +ddcan032 canonical #77fcff3fcff3ffff -> #77fcff3fcff3fcff +ddcan033 canonical #77fcff3fcff3ffff -> #77fcff3fcff3fcff +ddcan035 canonical #77fcff3fdff3fcff -> #77fcff3fcff3fcff +ddcan036 canonical #77fcff3feff3fcff -> #77fcff3fcff3fcff + +-- NaN: declets in payload +ddcan100 canonical NaN999999999999999 -> #7c00ff3fcff3fcff +ddcan101 canonical #7c00ff3fcff3fcff -> #7c00ff3fcff3fcff +ddcan102 canonical #7c03ff3fcff3fcff -> #7c00ff3fcff3fcff +ddcan103 canonical #7c00ffffcff3fcff -> #7c00ff3fcff3fcff +ddcan104 canonical #7c00ff3ffff3fcff -> #7c00ff3fcff3fcff +ddcan105 canonical #7c00ff3fcffffcff -> #7c00ff3fcff3fcff +ddcan106 canonical #7c00ff3fcff3ffff -> #7c00ff3fcff3fcff +ddcan107 canonical #7c00ff3fcff3ffff -> #7c00ff3fcff3fcff +-- NaN: exponent continuation bits [excluding sNaN selector] +ddcan110 canonical #7c00ff3fcff3fcff -> #7c00ff3fcff3fcff +ddcan112 canonical #7d00ff3fcff3fcff -> #7c00ff3fcff3fcff +ddcan113 canonical #7c80ff3fcff3fcff -> #7c00ff3fcff3fcff +ddcan114 canonical #7c40ff3fcff3fcff -> #7c00ff3fcff3fcff +ddcan115 canonical #7c20ff3fcff3fcff -> #7c00ff3fcff3fcff +ddcan116 canonical #7c10ff3fcff3fcff -> #7c00ff3fcff3fcff +ddcan117 canonical #7c08ff3fcff3fcff -> #7c00ff3fcff3fcff +ddcan118 canonical #7c04ff3fcff3fcff -> #7c00ff3fcff3fcff + +-- sNaN: declets in payload +ddcan120 canonical sNaN999999999999999 -> #7e00ff3fcff3fcff +ddcan121 canonical #7e00ff3fcff3fcff -> #7e00ff3fcff3fcff +ddcan122 canonical #7e03ff3fcff3fcff -> #7e00ff3fcff3fcff +ddcan123 canonical #7e00ffffcff3fcff -> #7e00ff3fcff3fcff +ddcan124 canonical #7e00ff3ffff3fcff -> #7e00ff3fcff3fcff +ddcan125 canonical #7e00ff3fcffffcff -> #7e00ff3fcff3fcff +ddcan126 canonical #7e00ff3fcff3ffff -> #7e00ff3fcff3fcff +ddcan127 canonical #7e00ff3fcff3ffff -> #7e00ff3fcff3fcff +-- sNaN: exponent continuation bits [excluding sNaN selector] +ddcan130 canonical #7e00ff3fcff3fcff -> #7e00ff3fcff3fcff +ddcan132 canonical #7f00ff3fcff3fcff -> #7e00ff3fcff3fcff +ddcan133 canonical #7e80ff3fcff3fcff -> #7e00ff3fcff3fcff +ddcan134 canonical #7e40ff3fcff3fcff -> #7e00ff3fcff3fcff +ddcan135 canonical #7e20ff3fcff3fcff -> #7e00ff3fcff3fcff +ddcan136 canonical #7e10ff3fcff3fcff -> #7e00ff3fcff3fcff +ddcan137 canonical #7e08ff3fcff3fcff -> #7e00ff3fcff3fcff +ddcan138 canonical #7e04ff3fcff3fcff -> #7e00ff3fcff3fcff + +-- Inf: exponent continuation bits +ddcan140 canonical #7800000000000000 -> #7800000000000000 +ddcan141 canonical #7900000000000000 -> #7800000000000000 +ddcan142 canonical #7a00000000000000 -> #7800000000000000 +ddcan143 canonical #7880000000000000 -> #7800000000000000 +ddcan144 canonical #7840000000000000 -> #7800000000000000 +ddcan145 canonical #7820000000000000 -> #7800000000000000 +ddcan146 canonical #7810000000000000 -> #7800000000000000 +ddcan147 canonical #7808000000000000 -> #7800000000000000 +ddcan148 canonical #7804000000000000 -> #7800000000000000 + +-- Inf: coefficient continuation bits (first, last, and a few others) +ddcan150 canonical #7800000000000000 -> #7800000000000000 +ddcan151 canonical #7802000000000000 -> #7800000000000000 +ddcan152 canonical #7800000000000001 -> #7800000000000000 +ddcan153 canonical #7801000000000000 -> #7800000000000000 +ddcan154 canonical #7800200000000000 -> #7800000000000000 +ddcan155 canonical #7800080000000000 -> #7800000000000000 +ddcan156 canonical #7800002000000000 -> #7800000000000000 +ddcan157 canonical #7800000400000000 -> #7800000000000000 +ddcan158 canonical #7800000040000000 -> #7800000000000000 +ddcan159 canonical #7800000008000000 -> #7800000000000000 +ddcan160 canonical #7800000000400000 -> #7800000000000000 +ddcan161 canonical #7800000000020000 -> #7800000000000000 +ddcan162 canonical #7800000000008000 -> #7800000000000000 +ddcan163 canonical #7800000000000200 -> #7800000000000000 +ddcan164 canonical #7800000000000040 -> #7800000000000000 +ddcan165 canonical #7800000000000008 -> #7800000000000000 + + +-- Now the operators -- trying to check paths that might fail to +-- canonicalize propagated operands + +----- Add: +-- Finites: neutral 0 +ddcan202 add 0E+384 #77ffff3fcff3fcff -> #77fcff3fcff3fcff +ddcan203 add #77fcffffcff3fcff 0E+384 -> #77fcff3fcff3fcff +-- tiny zero +ddcan204 add 0E-398 #77ffff3fcff3fcff -> #77fcff3fcff3fcff Rounded +ddcan205 add #77fcffffcff3fcff 0E-398 -> #77fcff3fcff3fcff Rounded +-- tiny non zero +ddcan206 add -1E-398 #77ffff3fcff3fcff -> #77fcff3fcff3fcff Inexact Rounded +ddcan207 add #77ffff3fcff3fcff -1E-398 -> #77fcff3fcff3fcff Inexact Rounded +-- NaN: declets in payload +ddcan211 add 0 #7c03ff3fcff3fcff -> #7c00ff3fcff3fcff +ddcan212 add #7c03ff3fcff3fcff 0 -> #7c00ff3fcff3fcff +-- NaN: exponent continuation bits [excluding sNaN selector] +ddcan213 add 0 #7c40ff3fcff3fcff -> #7c00ff3fcff3fcff +ddcan214 add #7c40ff3fcff3fcff 0 -> #7c00ff3fcff3fcff +-- sNaN: declets in payload +ddcan215 add 0 #7e00ffffcff3fcff -> #7c00ff3fcff3fcff Invalid_operation +ddcan216 add #7e00ffffcff3fcff 0 -> #7c00ff3fcff3fcff Invalid_operation +-- sNaN: exponent continuation bits [excluding sNaN selector] +ddcan217 add 0 #7e80ff3fcff3fcff -> #7c00ff3fcff3fcff Invalid_operation +ddcan218 add #7e80ff3fcff3fcff 0 -> #7c00ff3fcff3fcff Invalid_operation +-- Inf: exponent continuation bits +ddcan220 add 0 #7880000000000000 -> #7800000000000000 +ddcan221 add #7880000000000000 0 -> #7800000000000000 +-- Inf: coefficient continuation bits +ddcan222 add 0 #7802000000000000 -> #7800000000000000 +ddcan223 add #7802000000000000 0 -> #7800000000000000 +ddcan224 add 0 #7800000000000001 -> #7800000000000000 +ddcan225 add #7800000000000001 0 -> #7800000000000000 +ddcan226 add 0 #7800002000000000 -> #7800000000000000 +ddcan227 add #7800002000000000 0 -> #7800000000000000 + +----- Class: [does not return encoded] + +----- Compare: +ddcan231 compare -Inf 1 -> #a238000000000001 +ddcan232 compare -Inf -Inf -> #2238000000000000 +ddcan233 compare 1 -Inf -> #2238000000000001 +ddcan234 compare #7c00ff3ffff3fcff -1000 -> #7c00ff3fcff3fcff +ddcan235 compare #7e00ff3ffff3fcff -1000 -> #7c00ff3fcff3fcff Invalid_operation + +----- CompareSig: +ddcan241 comparesig -Inf 1 -> #a238000000000001 +ddcan242 comparesig -Inf -Inf -> #2238000000000000 +ddcan243 comparesig 1 -Inf -> #2238000000000001 +ddcan244 comparesig #7c00ff3ffff3fcff -1000 -> #7c00ff3fcff3fcff Invalid_operation +ddcan245 comparesig #7e00ff3ffff3fcff -1000 -> #7c00ff3fcff3fcff Invalid_operation + +----- Copy: [does not usually canonicalize] +-- finites +ddcan250 copy #77ffff3fcff3fcff -> #77ffff3fcff3fcff +ddcan251 copy #77fcff3fdff3fcff -> #77fcff3fdff3fcff +-- NaNs +ddcan252 copy #7c03ff3fcff3fcff -> #7c03ff3fcff3fcff +ddcan253 copy #7c00ff3fcff3ffff -> #7c00ff3fcff3ffff +ddcan254 copy #7d00ff3fcff3fcff -> #7d00ff3fcff3fcff +ddcan255 copy #7c04ff3fcff3fcff -> #7c04ff3fcff3fcff +-- sNaN +ddcan256 copy #7e00ff3fcffffcff -> #7e00ff3fcffffcff +ddcan257 copy #7e40ff3fcff3fcff -> #7e40ff3fcff3fcff +-- Inf +ddcan258 copy #7a00000000000000 -> #7a00000000000000 +ddcan259 copy #7800200000000000 -> #7800200000000000 + +----- CopyAbs: [does not usually canonicalize] +-- finites +ddcan260 copyabs #f7ffff3fcff3fcff -> #77ffff3fcff3fcff +ddcan261 copyabs #f7fcff3fdff3fcff -> #77fcff3fdff3fcff +-- NaNs +ddcan262 copyabs #fc03ff3fcff3fcff -> #7c03ff3fcff3fcff +ddcan263 copyabs #fc00ff3fcff3ffff -> #7c00ff3fcff3ffff +ddcan264 copyabs #fd00ff3fcff3fcff -> #7d00ff3fcff3fcff +ddcan265 copyabs #fc04ff3fcff3fcff -> #7c04ff3fcff3fcff +-- sNaN +ddcan266 copyabs #fe00ff3fcffffcff -> #7e00ff3fcffffcff +ddcan267 copyabs #fe40ff3fcff3fcff -> #7e40ff3fcff3fcff +-- Inf +ddcan268 copyabs #fa00000000000000 -> #7a00000000000000 +ddcan269 copyabs #f800200000000000 -> #7800200000000000 + +----- CopyNegate: [does not usually canonicalize] +-- finites +ddcan270 copynegate #77ffff3fcff3fcff -> #f7ffff3fcff3fcff +ddcan271 copynegate #77fcff3fdff3fcff -> #f7fcff3fdff3fcff +-- NaNs +ddcan272 copynegate #7c03ff3fcff3fcff -> #fc03ff3fcff3fcff +ddcan273 copynegate #7c00ff3fcff3ffff -> #fc00ff3fcff3ffff +ddcan274 copynegate #7d00ff3fcff3fcff -> #fd00ff3fcff3fcff +ddcan275 copynegate #7c04ff3fcff3fcff -> #fc04ff3fcff3fcff +-- sNaN +ddcan276 copynegate #7e00ff3fcffffcff -> #fe00ff3fcffffcff +ddcan277 copynegate #7e40ff3fcff3fcff -> #fe40ff3fcff3fcff +-- Inf +ddcan278 copynegate #7a00000000000000 -> #fa00000000000000 +ddcan279 copynegate #7800200000000000 -> #f800200000000000 + +----- CopySign: [does not usually canonicalize] +-- finites +ddcan280 copysign #77ffff3fcff3fcff -1 -> #f7ffff3fcff3fcff +ddcan281 copysign #77fcff3fdff3fcff 1 -> #77fcff3fdff3fcff +-- NaNs +ddcan282 copysign #7c03ff3fcff3fcff -1 -> #fc03ff3fcff3fcff +ddcan283 copysign #7c00ff3fcff3ffff 1 -> #7c00ff3fcff3ffff +ddcan284 copysign #7d00ff3fcff3fcff -1 -> #fd00ff3fcff3fcff +ddcan285 copysign #7c04ff3fcff3fcff 1 -> #7c04ff3fcff3fcff +-- sNaN +ddcan286 copysign #7e00ff3fcffffcff -1 -> #fe00ff3fcffffcff +ddcan287 copysign #7e40ff3fcff3fcff 1 -> #7e40ff3fcff3fcff +-- Inf +ddcan288 copysign #7a00000000000000 -1 -> #fa00000000000000 +ddcan289 copysign #7800200000000000 1 -> #7800200000000000 + +----- Multiply: +-- Finites: neutral 0 +ddcan302 multiply 1 #77ffff3fcff3fcff -> #77fcff3fcff3fcff +ddcan303 multiply #77fcffffcff3fcff 1 -> #77fcff3fcff3fcff +-- negative +ddcan306 multiply -1 #77ffff3fcff3fcff -> #f7fcff3fcff3fcff +ddcan307 multiply #77fcffffcff3fcff -1 -> #f7fcff3fcff3fcff +-- NaN: declets in payload +ddcan311 multiply 1 #7c03ff3fcff3fcff -> #7c00ff3fcff3fcff +ddcan312 multiply #7c03ff3fcff3fcff 1 -> #7c00ff3fcff3fcff +-- NaN: exponent continuation bits [excluding sNaN selector] +ddcan313 multiply 1 #7c40ff3fcff3fcff -> #7c00ff3fcff3fcff +ddcan314 multiply #7c40ff3fcff3fcff 1 -> #7c00ff3fcff3fcff +-- sNaN: declets in payload +ddcan315 multiply 1 #7e00ffffcff3fcff -> #7c00ff3fcff3fcff Invalid_operation +ddcan316 multiply #7e00ffffcff3fcff 1 -> #7c00ff3fcff3fcff Invalid_operation +-- sNaN: exponent continuation bits [excluding sNaN selector] +ddcan317 multiply 1 #7e80ff3fcff3fcff -> #7c00ff3fcff3fcff Invalid_operation +ddcan318 multiply #7e80ff3fcff3fcff 1 -> #7c00ff3fcff3fcff Invalid_operation +-- Inf: exponent continuation bits +ddcan320 multiply 1 #7880000000000000 -> #7800000000000000 +ddcan321 multiply #7880000000000000 1 -> #7800000000000000 +-- Inf: coefficient continuation bits +ddcan322 multiply 1 #7802000000000000 -> #7800000000000000 +ddcan323 multiply #7802000000000000 1 -> #7800000000000000 +ddcan324 multiply 1 #7800000000000001 -> #7800000000000000 +ddcan325 multiply #7800000000000001 1 -> #7800000000000000 +ddcan326 multiply 1 #7800002000000000 -> #7800000000000000 +ddcan327 multiply #7800002000000000 1 -> #7800000000000000 + +----- Quantize: +ddcan401 quantize #6e38ff3ffff3fcff 1 -> #6e38ff3fcff3fcff +ddcan402 quantize #6e38ff3fcff3fdff 0 -> #6e38ff3fcff3fcff +ddcan403 quantize #7880000000000000 Inf -> #7800000000000000 +ddcan404 quantize #7802000000000000 -Inf -> #7800000000000000 +ddcan410 quantize #7c03ff3fcff3fcff 1 -> #7c00ff3fcff3fcff +ddcan411 quantize #7c03ff3fcff3fcff 1 -> #7c00ff3fcff3fcff +ddcan412 quantize #7c40ff3fcff3fcff 1 -> #7c00ff3fcff3fcff +ddcan413 quantize #7c40ff3fcff3fcff 1 -> #7c00ff3fcff3fcff +ddcan414 quantize #7e00ffffcff3fcff 1 -> #7c00ff3fcff3fcff Invalid_operation +ddcan415 quantize #7e00ffffcff3fcff 1 -> #7c00ff3fcff3fcff Invalid_operation +ddcan416 quantize #7e80ff3fcff3fcff 1 -> #7c00ff3fcff3fcff Invalid_operation +ddcan417 quantize #7e80ff3fcff3fcff 1 -> #7c00ff3fcff3fcff Invalid_operation + +----- Subtract: +-- Finites: neutral 0 +ddcan502 subtract 0E+384 #77ffff3fcff3fcff -> #f7fcff3fcff3fcff +ddcan503 subtract #77fcffffcff3fcff 0E+384 -> #77fcff3fcff3fcff +-- tiny zero +ddcan504 subtract 0E-398 #77ffff3fcff3fcff -> #f7fcff3fcff3fcff Rounded +ddcan505 subtract #77fcffffcff3fcff 0E-398 -> #77fcff3fcff3fcff Rounded +-- tiny non zero +ddcan506 subtract -1E-398 #77ffff3fcff3fcff -> #f7fcff3fcff3fcff Inexact Rounded +ddcan507 subtract #77ffff3fcff3fcff -1E-398 -> #77fcff3fcff3fcff Inexact Rounded +-- NaN: declets in payload +ddcan511 subtract 0 #7c03ff3fcff3fcff -> #7c00ff3fcff3fcff +ddcan512 subtract #7c03ff3fcff3fcff 0 -> #7c00ff3fcff3fcff +-- NaN: exponent continuation bits [excluding sNaN selector] +ddcan513 subtract 0 #7c40ff3fcff3fcff -> #7c00ff3fcff3fcff +ddcan514 subtract #7c40ff3fcff3fcff 0 -> #7c00ff3fcff3fcff +-- sNaN: declets in payload +ddcan515 subtract 0 #7e00ffffcff3fcff -> #7c00ff3fcff3fcff Invalid_operation +ddcan516 subtract #7e00ffffcff3fcff 0 -> #7c00ff3fcff3fcff Invalid_operation +-- sNaN: exponent continuation bits [excluding sNaN selector] +ddcan517 subtract 0 #7e80ff3fcff3fcff -> #7c00ff3fcff3fcff Invalid_operation +ddcan518 subtract #7e80ff3fcff3fcff 0 -> #7c00ff3fcff3fcff Invalid_operation +-- Inf: exponent continuation bits +ddcan520 subtract 0 #7880000000000000 -> #f800000000000000 +ddcan521 subtract #7880000000000000 0 -> #7800000000000000 +-- Inf: coefficient continuation bits +ddcan522 subtract 0 #7802000000000000 -> #f800000000000000 +ddcan523 subtract #7802000000000000 0 -> #7800000000000000 +ddcan524 subtract 0 #7800000000000001 -> #f800000000000000 +ddcan525 subtract #7800000000000001 0 -> #7800000000000000 +ddcan526 subtract 0 #7800002000000000 -> #f800000000000000 +ddcan527 subtract #7800002000000000 0 -> #7800000000000000 + +----- ToIntegral: +ddcan601 tointegralx #6e38ff3ffff3fcff -> #6e38ff3fcff3fcff +ddcan602 tointegralx #6e38ff3fcff3fdff -> #6e38ff3fcff3fcff +ddcan603 tointegralx #7880000000000000 -> #7800000000000000 +ddcan604 tointegralx #7802000000000000 -> #7800000000000000 +ddcan610 tointegralx #7c03ff3fcff3fcff -> #7c00ff3fcff3fcff +ddcan611 tointegralx #7c03ff3fcff3fcff -> #7c00ff3fcff3fcff +ddcan612 tointegralx #7c40ff3fcff3fcff -> #7c00ff3fcff3fcff +ddcan613 tointegralx #7c40ff3fcff3fcff -> #7c00ff3fcff3fcff +ddcan614 tointegralx #7e00ffffcff3fcff -> #7c00ff3fcff3fcff Invalid_operation +ddcan615 tointegralx #7e00ffffcff3fcff -> #7c00ff3fcff3fcff Invalid_operation +ddcan616 tointegralx #7e80ff3fcff3fcff -> #7c00ff3fcff3fcff Invalid_operation +ddcan617 tointegralx #7e80ff3fcff3fcff -> #7c00ff3fcff3fcff Invalid_operation +-- uncanonical 3999, 39.99, 3.99, 0.399, and negatives +ddcan618 tointegralx #2238000000000fff -> #2238000000000cff +ddcan619 tointegralx #2230000000000fff -> #2238000000000040 Inexact Rounded +ddcan620 tointegralx #222c000000000fff -> #2238000000000004 Inexact Rounded +ddcan621 tointegralx #2228000000000fff -> #2238000000000000 Inexact Rounded +ddcan622 tointegralx #a238000000000fff -> #a238000000000cff +ddcan623 tointegralx #a230000000000fff -> #a238000000000040 Inexact Rounded +ddcan624 tointegralx #a22c000000000fff -> #a238000000000004 Inexact Rounded +ddcan625 tointegralx #a228000000000fff -> #a238000000000000 Inexact Rounded + + + diff --git a/Lib/test/decimaltestdata/ddClass.decTest b/Lib/test/decimaltestdata/ddClass.decTest index a1d233b86d..bb34c42d4a 100644 --- a/Lib/test/decimaltestdata/ddClass.decTest +++ b/Lib/test/decimaltestdata/ddClass.decTest @@ -1,76 +1,76 @@ -------------------------------------------------------------------------
--- ddClass.decTest -- decDouble Class operations --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- [New 2006.11.27]
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
-ddcla001 class 0 -> +Zero
-ddcla002 class 0.00 -> +Zero
-ddcla003 class 0E+5 -> +Zero
-ddcla004 class 1E-396 -> +Subnormal
-ddcla005 class 0.1E-383 -> +Subnormal
-ddcla006 class 0.999999999999999E-383 -> +Subnormal
-ddcla007 class 1.000000000000000E-383 -> +Normal
-ddcla008 class 1E-383 -> +Normal
-ddcla009 class 1E-100 -> +Normal
-ddcla010 class 1E-10 -> +Normal
-ddcla012 class 1E-1 -> +Normal
-ddcla013 class 1 -> +Normal
-ddcla014 class 2.50 -> +Normal
-ddcla015 class 100.100 -> +Normal
-ddcla016 class 1E+30 -> +Normal
-ddcla017 class 1E+384 -> +Normal
-ddcla018 class 9.999999999999999E+384 -> +Normal
-ddcla019 class Inf -> +Infinity
-
-ddcla021 class -0 -> -Zero
-ddcla022 class -0.00 -> -Zero
-ddcla023 class -0E+5 -> -Zero
-ddcla024 class -1E-396 -> -Subnormal
-ddcla025 class -0.1E-383 -> -Subnormal
-ddcla026 class -0.999999999999999E-383 -> -Subnormal
-ddcla027 class -1.000000000000000E-383 -> -Normal
-ddcla028 class -1E-383 -> -Normal
-ddcla029 class -1E-100 -> -Normal
-ddcla030 class -1E-10 -> -Normal
-ddcla032 class -1E-1 -> -Normal
-ddcla033 class -1 -> -Normal
-ddcla034 class -2.50 -> -Normal
-ddcla035 class -100.100 -> -Normal
-ddcla036 class -1E+30 -> -Normal
-ddcla037 class -1E+384 -> -Normal
-ddcla038 class -9.999999999999999E+384 -> -Normal
-ddcla039 class -Inf -> -Infinity
-
-ddcla041 class NaN -> NaN
-ddcla042 class -NaN -> NaN
-ddcla043 class +NaN12345 -> NaN
-ddcla044 class sNaN -> sNaN
-ddcla045 class -sNaN -> sNaN
-ddcla046 class +sNaN12345 -> sNaN
-
-
-
+------------------------------------------------------------------------ +-- ddClass.decTest -- decDouble Class operations -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- [New 2006.11.27] +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +ddcla001 class 0 -> +Zero +ddcla002 class 0.00 -> +Zero +ddcla003 class 0E+5 -> +Zero +ddcla004 class 1E-396 -> +Subnormal +ddcla005 class 0.1E-383 -> +Subnormal +ddcla006 class 0.999999999999999E-383 -> +Subnormal +ddcla007 class 1.000000000000000E-383 -> +Normal +ddcla008 class 1E-383 -> +Normal +ddcla009 class 1E-100 -> +Normal +ddcla010 class 1E-10 -> +Normal +ddcla012 class 1E-1 -> +Normal +ddcla013 class 1 -> +Normal +ddcla014 class 2.50 -> +Normal +ddcla015 class 100.100 -> +Normal +ddcla016 class 1E+30 -> +Normal +ddcla017 class 1E+384 -> +Normal +ddcla018 class 9.999999999999999E+384 -> +Normal +ddcla019 class Inf -> +Infinity + +ddcla021 class -0 -> -Zero +ddcla022 class -0.00 -> -Zero +ddcla023 class -0E+5 -> -Zero +ddcla024 class -1E-396 -> -Subnormal +ddcla025 class -0.1E-383 -> -Subnormal +ddcla026 class -0.999999999999999E-383 -> -Subnormal +ddcla027 class -1.000000000000000E-383 -> -Normal +ddcla028 class -1E-383 -> -Normal +ddcla029 class -1E-100 -> -Normal +ddcla030 class -1E-10 -> -Normal +ddcla032 class -1E-1 -> -Normal +ddcla033 class -1 -> -Normal +ddcla034 class -2.50 -> -Normal +ddcla035 class -100.100 -> -Normal +ddcla036 class -1E+30 -> -Normal +ddcla037 class -1E+384 -> -Normal +ddcla038 class -9.999999999999999E+384 -> -Normal +ddcla039 class -Inf -> -Infinity + +ddcla041 class NaN -> NaN +ddcla042 class -NaN -> NaN +ddcla043 class +NaN12345 -> NaN +ddcla044 class sNaN -> sNaN +ddcla045 class -sNaN -> sNaN +ddcla046 class +sNaN12345 -> sNaN + + + diff --git a/Lib/test/decimaltestdata/ddCompare.decTest b/Lib/test/decimaltestdata/ddCompare.decTest index a20ae210cc..6debfc7a13 100644 --- a/Lib/test/decimaltestdata/ddCompare.decTest +++ b/Lib/test/decimaltestdata/ddCompare.decTest @@ -1,744 +1,744 @@ -------------------------------------------------------------------------
--- ddCompare.decTest -- decDouble comparison that allows quiet NaNs --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- Note that we cannot assume add/subtract tests cover paths adequately,
--- here, because the code might be quite different (comparison cannot
--- overflow or underflow, so actual subtractions are not necessary).
-
--- All operands and results are decDoubles.
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
--- sanity checks
-ddcom001 compare -2 -2 -> 0
-ddcom002 compare -2 -1 -> -1
-ddcom003 compare -2 0 -> -1
-ddcom004 compare -2 1 -> -1
-ddcom005 compare -2 2 -> -1
-ddcom006 compare -1 -2 -> 1
-ddcom007 compare -1 -1 -> 0
-ddcom008 compare -1 0 -> -1
-ddcom009 compare -1 1 -> -1
-ddcom010 compare -1 2 -> -1
-ddcom011 compare 0 -2 -> 1
-ddcom012 compare 0 -1 -> 1
-ddcom013 compare 0 0 -> 0
-ddcom014 compare 0 1 -> -1
-ddcom015 compare 0 2 -> -1
-ddcom016 compare 1 -2 -> 1
-ddcom017 compare 1 -1 -> 1
-ddcom018 compare 1 0 -> 1
-ddcom019 compare 1 1 -> 0
-ddcom020 compare 1 2 -> -1
-ddcom021 compare 2 -2 -> 1
-ddcom022 compare 2 -1 -> 1
-ddcom023 compare 2 0 -> 1
-ddcom025 compare 2 1 -> 1
-ddcom026 compare 2 2 -> 0
-
-ddcom031 compare -20 -20 -> 0
-ddcom032 compare -20 -10 -> -1
-ddcom033 compare -20 00 -> -1
-ddcom034 compare -20 10 -> -1
-ddcom035 compare -20 20 -> -1
-ddcom036 compare -10 -20 -> 1
-ddcom037 compare -10 -10 -> 0
-ddcom038 compare -10 00 -> -1
-ddcom039 compare -10 10 -> -1
-ddcom040 compare -10 20 -> -1
-ddcom041 compare 00 -20 -> 1
-ddcom042 compare 00 -10 -> 1
-ddcom043 compare 00 00 -> 0
-ddcom044 compare 00 10 -> -1
-ddcom045 compare 00 20 -> -1
-ddcom046 compare 10 -20 -> 1
-ddcom047 compare 10 -10 -> 1
-ddcom048 compare 10 00 -> 1
-ddcom049 compare 10 10 -> 0
-ddcom050 compare 10 20 -> -1
-ddcom051 compare 20 -20 -> 1
-ddcom052 compare 20 -10 -> 1
-ddcom053 compare 20 00 -> 1
-ddcom055 compare 20 10 -> 1
-ddcom056 compare 20 20 -> 0
-
-ddcom061 compare -2.0 -2.0 -> 0
-ddcom062 compare -2.0 -1.0 -> -1
-ddcom063 compare -2.0 0.0 -> -1
-ddcom064 compare -2.0 1.0 -> -1
-ddcom065 compare -2.0 2.0 -> -1
-ddcom066 compare -1.0 -2.0 -> 1
-ddcom067 compare -1.0 -1.0 -> 0
-ddcom068 compare -1.0 0.0 -> -1
-ddcom069 compare -1.0 1.0 -> -1
-ddcom070 compare -1.0 2.0 -> -1
-ddcom071 compare 0.0 -2.0 -> 1
-ddcom072 compare 0.0 -1.0 -> 1
-ddcom073 compare 0.0 0.0 -> 0
-ddcom074 compare 0.0 1.0 -> -1
-ddcom075 compare 0.0 2.0 -> -1
-ddcom076 compare 1.0 -2.0 -> 1
-ddcom077 compare 1.0 -1.0 -> 1
-ddcom078 compare 1.0 0.0 -> 1
-ddcom079 compare 1.0 1.0 -> 0
-ddcom080 compare 1.0 2.0 -> -1
-ddcom081 compare 2.0 -2.0 -> 1
-ddcom082 compare 2.0 -1.0 -> 1
-ddcom083 compare 2.0 0.0 -> 1
-ddcom085 compare 2.0 1.0 -> 1
-ddcom086 compare 2.0 2.0 -> 0
-ddcom087 compare 1.0 0.1 -> 1
-ddcom088 compare 0.1 1.0 -> -1
-
--- now some cases which might overflow if subtract were used
-ddcom095 compare 9.999999999999999E+384 9.999999999999999E+384 -> 0
-ddcom096 compare -9.999999999999999E+384 9.999999999999999E+384 -> -1
-ddcom097 compare 9.999999999999999E+384 -9.999999999999999E+384 -> 1
-ddcom098 compare -9.999999999999999E+384 -9.999999999999999E+384 -> 0
-
--- some differing length/exponent cases
-ddcom100 compare 7.0 7.0 -> 0
-ddcom101 compare 7.0 7 -> 0
-ddcom102 compare 7 7.0 -> 0
-ddcom103 compare 7E+0 7.0 -> 0
-ddcom104 compare 70E-1 7.0 -> 0
-ddcom105 compare 0.7E+1 7 -> 0
-ddcom106 compare 70E-1 7 -> 0
-ddcom107 compare 7.0 7E+0 -> 0
-ddcom108 compare 7.0 70E-1 -> 0
-ddcom109 compare 7 0.7E+1 -> 0
-ddcom110 compare 7 70E-1 -> 0
-
-ddcom120 compare 8.0 7.0 -> 1
-ddcom121 compare 8.0 7 -> 1
-ddcom122 compare 8 7.0 -> 1
-ddcom123 compare 8E+0 7.0 -> 1
-ddcom124 compare 80E-1 7.0 -> 1
-ddcom125 compare 0.8E+1 7 -> 1
-ddcom126 compare 80E-1 7 -> 1
-ddcom127 compare 8.0 7E+0 -> 1
-ddcom128 compare 8.0 70E-1 -> 1
-ddcom129 compare 8 0.7E+1 -> 1
-ddcom130 compare 8 70E-1 -> 1
-
-ddcom140 compare 8.0 9.0 -> -1
-ddcom141 compare 8.0 9 -> -1
-ddcom142 compare 8 9.0 -> -1
-ddcom143 compare 8E+0 9.0 -> -1
-ddcom144 compare 80E-1 9.0 -> -1
-ddcom145 compare 0.8E+1 9 -> -1
-ddcom146 compare 80E-1 9 -> -1
-ddcom147 compare 8.0 9E+0 -> -1
-ddcom148 compare 8.0 90E-1 -> -1
-ddcom149 compare 8 0.9E+1 -> -1
-ddcom150 compare 8 90E-1 -> -1
-
--- and again, with sign changes -+ ..
-ddcom200 compare -7.0 7.0 -> -1
-ddcom201 compare -7.0 7 -> -1
-ddcom202 compare -7 7.0 -> -1
-ddcom203 compare -7E+0 7.0 -> -1
-ddcom204 compare -70E-1 7.0 -> -1
-ddcom205 compare -0.7E+1 7 -> -1
-ddcom206 compare -70E-1 7 -> -1
-ddcom207 compare -7.0 7E+0 -> -1
-ddcom208 compare -7.0 70E-1 -> -1
-ddcom209 compare -7 0.7E+1 -> -1
-ddcom210 compare -7 70E-1 -> -1
-
-ddcom220 compare -8.0 7.0 -> -1
-ddcom221 compare -8.0 7 -> -1
-ddcom222 compare -8 7.0 -> -1
-ddcom223 compare -8E+0 7.0 -> -1
-ddcom224 compare -80E-1 7.0 -> -1
-ddcom225 compare -0.8E+1 7 -> -1
-ddcom226 compare -80E-1 7 -> -1
-ddcom227 compare -8.0 7E+0 -> -1
-ddcom228 compare -8.0 70E-1 -> -1
-ddcom229 compare -8 0.7E+1 -> -1
-ddcom230 compare -8 70E-1 -> -1
-
-ddcom240 compare -8.0 9.0 -> -1
-ddcom241 compare -8.0 9 -> -1
-ddcom242 compare -8 9.0 -> -1
-ddcom243 compare -8E+0 9.0 -> -1
-ddcom244 compare -80E-1 9.0 -> -1
-ddcom245 compare -0.8E+1 9 -> -1
-ddcom246 compare -80E-1 9 -> -1
-ddcom247 compare -8.0 9E+0 -> -1
-ddcom248 compare -8.0 90E-1 -> -1
-ddcom249 compare -8 0.9E+1 -> -1
-ddcom250 compare -8 90E-1 -> -1
-
--- and again, with sign changes +- ..
-ddcom300 compare 7.0 -7.0 -> 1
-ddcom301 compare 7.0 -7 -> 1
-ddcom302 compare 7 -7.0 -> 1
-ddcom303 compare 7E+0 -7.0 -> 1
-ddcom304 compare 70E-1 -7.0 -> 1
-ddcom305 compare .7E+1 -7 -> 1
-ddcom306 compare 70E-1 -7 -> 1
-ddcom307 compare 7.0 -7E+0 -> 1
-ddcom308 compare 7.0 -70E-1 -> 1
-ddcom309 compare 7 -.7E+1 -> 1
-ddcom310 compare 7 -70E-1 -> 1
-
-ddcom320 compare 8.0 -7.0 -> 1
-ddcom321 compare 8.0 -7 -> 1
-ddcom322 compare 8 -7.0 -> 1
-ddcom323 compare 8E+0 -7.0 -> 1
-ddcom324 compare 80E-1 -7.0 -> 1
-ddcom325 compare .8E+1 -7 -> 1
-ddcom326 compare 80E-1 -7 -> 1
-ddcom327 compare 8.0 -7E+0 -> 1
-ddcom328 compare 8.0 -70E-1 -> 1
-ddcom329 compare 8 -.7E+1 -> 1
-ddcom330 compare 8 -70E-1 -> 1
-
-ddcom340 compare 8.0 -9.0 -> 1
-ddcom341 compare 8.0 -9 -> 1
-ddcom342 compare 8 -9.0 -> 1
-ddcom343 compare 8E+0 -9.0 -> 1
-ddcom344 compare 80E-1 -9.0 -> 1
-ddcom345 compare .8E+1 -9 -> 1
-ddcom346 compare 80E-1 -9 -> 1
-ddcom347 compare 8.0 -9E+0 -> 1
-ddcom348 compare 8.0 -90E-1 -> 1
-ddcom349 compare 8 -.9E+1 -> 1
-ddcom350 compare 8 -90E-1 -> 1
-
--- and again, with sign changes -- ..
-ddcom400 compare -7.0 -7.0 -> 0
-ddcom401 compare -7.0 -7 -> 0
-ddcom402 compare -7 -7.0 -> 0
-ddcom403 compare -7E+0 -7.0 -> 0
-ddcom404 compare -70E-1 -7.0 -> 0
-ddcom405 compare -.7E+1 -7 -> 0
-ddcom406 compare -70E-1 -7 -> 0
-ddcom407 compare -7.0 -7E+0 -> 0
-ddcom408 compare -7.0 -70E-1 -> 0
-ddcom409 compare -7 -.7E+1 -> 0
-ddcom410 compare -7 -70E-1 -> 0
-
-ddcom420 compare -8.0 -7.0 -> -1
-ddcom421 compare -8.0 -7 -> -1
-ddcom422 compare -8 -7.0 -> -1
-ddcom423 compare -8E+0 -7.0 -> -1
-ddcom424 compare -80E-1 -7.0 -> -1
-ddcom425 compare -.8E+1 -7 -> -1
-ddcom426 compare -80E-1 -7 -> -1
-ddcom427 compare -8.0 -7E+0 -> -1
-ddcom428 compare -8.0 -70E-1 -> -1
-ddcom429 compare -8 -.7E+1 -> -1
-ddcom430 compare -8 -70E-1 -> -1
-
-ddcom440 compare -8.0 -9.0 -> 1
-ddcom441 compare -8.0 -9 -> 1
-ddcom442 compare -8 -9.0 -> 1
-ddcom443 compare -8E+0 -9.0 -> 1
-ddcom444 compare -80E-1 -9.0 -> 1
-ddcom445 compare -.8E+1 -9 -> 1
-ddcom446 compare -80E-1 -9 -> 1
-ddcom447 compare -8.0 -9E+0 -> 1
-ddcom448 compare -8.0 -90E-1 -> 1
-ddcom449 compare -8 -.9E+1 -> 1
-ddcom450 compare -8 -90E-1 -> 1
-
--- misalignment traps for little-endian
-ddcom451 compare 1.0 0.1 -> 1
-ddcom452 compare 0.1 1.0 -> -1
-ddcom453 compare 10.0 0.1 -> 1
-ddcom454 compare 0.1 10.0 -> -1
-ddcom455 compare 100 1.0 -> 1
-ddcom456 compare 1.0 100 -> -1
-ddcom457 compare 1000 10.0 -> 1
-ddcom458 compare 10.0 1000 -> -1
-ddcom459 compare 10000 100.0 -> 1
-ddcom460 compare 100.0 10000 -> -1
-ddcom461 compare 100000 1000.0 -> 1
-ddcom462 compare 1000.0 100000 -> -1
-ddcom463 compare 1000000 10000.0 -> 1
-ddcom464 compare 10000.0 1000000 -> -1
-
--- testcases that subtract to lots of zeros at boundaries [pgr]
-ddcom473 compare 123.4560000000000E-89 123.456E-89 -> 0
-ddcom474 compare 123.456000000000E+89 123.456E+89 -> 0
-ddcom475 compare 123.45600000000E-89 123.456E-89 -> 0
-ddcom476 compare 123.4560000000E+89 123.456E+89 -> 0
-ddcom477 compare 123.456000000E-89 123.456E-89 -> 0
-ddcom478 compare 123.45600000E+89 123.456E+89 -> 0
-ddcom479 compare 123.4560000E-89 123.456E-89 -> 0
-ddcom480 compare 123.456000E+89 123.456E+89 -> 0
-ddcom481 compare 123.45600E-89 123.456E-89 -> 0
-ddcom482 compare 123.4560E+89 123.456E+89 -> 0
-ddcom483 compare 123.456E-89 123.456E-89 -> 0
-ddcom487 compare 123.456E+89 123.4560000000000E+89 -> 0
-ddcom488 compare 123.456E-89 123.456000000000E-89 -> 0
-ddcom489 compare 123.456E+89 123.45600000000E+89 -> 0
-ddcom490 compare 123.456E-89 123.4560000000E-89 -> 0
-ddcom491 compare 123.456E+89 123.456000000E+89 -> 0
-ddcom492 compare 123.456E-89 123.45600000E-89 -> 0
-ddcom493 compare 123.456E+89 123.4560000E+89 -> 0
-ddcom494 compare 123.456E-89 123.456000E-89 -> 0
-ddcom495 compare 123.456E+89 123.45600E+89 -> 0
-ddcom496 compare 123.456E-89 123.4560E-89 -> 0
-ddcom497 compare 123.456E+89 123.456E+89 -> 0
-
--- wide-ranging, around precision; signs equal
-ddcom500 compare 1 1E-15 -> 1
-ddcom501 compare 1 1E-14 -> 1
-ddcom502 compare 1 1E-13 -> 1
-ddcom503 compare 1 1E-12 -> 1
-ddcom504 compare 1 1E-11 -> 1
-ddcom505 compare 1 1E-10 -> 1
-ddcom506 compare 1 1E-9 -> 1
-ddcom507 compare 1 1E-8 -> 1
-ddcom508 compare 1 1E-7 -> 1
-ddcom509 compare 1 1E-6 -> 1
-ddcom510 compare 1 1E-5 -> 1
-ddcom511 compare 1 1E-4 -> 1
-ddcom512 compare 1 1E-3 -> 1
-ddcom513 compare 1 1E-2 -> 1
-ddcom514 compare 1 1E-1 -> 1
-ddcom515 compare 1 1E-0 -> 0
-ddcom516 compare 1 1E+1 -> -1
-ddcom517 compare 1 1E+2 -> -1
-ddcom518 compare 1 1E+3 -> -1
-ddcom519 compare 1 1E+4 -> -1
-ddcom521 compare 1 1E+5 -> -1
-ddcom522 compare 1 1E+6 -> -1
-ddcom523 compare 1 1E+7 -> -1
-ddcom524 compare 1 1E+8 -> -1
-ddcom525 compare 1 1E+9 -> -1
-ddcom526 compare 1 1E+10 -> -1
-ddcom527 compare 1 1E+11 -> -1
-ddcom528 compare 1 1E+12 -> -1
-ddcom529 compare 1 1E+13 -> -1
-ddcom530 compare 1 1E+14 -> -1
-ddcom531 compare 1 1E+15 -> -1
--- LR swap
-ddcom540 compare 1E-15 1 -> -1
-ddcom541 compare 1E-14 1 -> -1
-ddcom542 compare 1E-13 1 -> -1
-ddcom543 compare 1E-12 1 -> -1
-ddcom544 compare 1E-11 1 -> -1
-ddcom545 compare 1E-10 1 -> -1
-ddcom546 compare 1E-9 1 -> -1
-ddcom547 compare 1E-8 1 -> -1
-ddcom548 compare 1E-7 1 -> -1
-ddcom549 compare 1E-6 1 -> -1
-ddcom550 compare 1E-5 1 -> -1
-ddcom551 compare 1E-4 1 -> -1
-ddcom552 compare 1E-3 1 -> -1
-ddcom553 compare 1E-2 1 -> -1
-ddcom554 compare 1E-1 1 -> -1
-ddcom555 compare 1E-0 1 -> 0
-ddcom556 compare 1E+1 1 -> 1
-ddcom557 compare 1E+2 1 -> 1
-ddcom558 compare 1E+3 1 -> 1
-ddcom559 compare 1E+4 1 -> 1
-ddcom561 compare 1E+5 1 -> 1
-ddcom562 compare 1E+6 1 -> 1
-ddcom563 compare 1E+7 1 -> 1
-ddcom564 compare 1E+8 1 -> 1
-ddcom565 compare 1E+9 1 -> 1
-ddcom566 compare 1E+10 1 -> 1
-ddcom567 compare 1E+11 1 -> 1
-ddcom568 compare 1E+12 1 -> 1
-ddcom569 compare 1E+13 1 -> 1
-ddcom570 compare 1E+14 1 -> 1
-ddcom571 compare 1E+15 1 -> 1
--- similar with a useful coefficient, one side only
-ddcom580 compare 0.000000987654321 1E-15 -> 1
-ddcom581 compare 0.000000987654321 1E-14 -> 1
-ddcom582 compare 0.000000987654321 1E-13 -> 1
-ddcom583 compare 0.000000987654321 1E-12 -> 1
-ddcom584 compare 0.000000987654321 1E-11 -> 1
-ddcom585 compare 0.000000987654321 1E-10 -> 1
-ddcom586 compare 0.000000987654321 1E-9 -> 1
-ddcom587 compare 0.000000987654321 1E-8 -> 1
-ddcom588 compare 0.000000987654321 1E-7 -> 1
-ddcom589 compare 0.000000987654321 1E-6 -> -1
-ddcom590 compare 0.000000987654321 1E-5 -> -1
-ddcom591 compare 0.000000987654321 1E-4 -> -1
-ddcom592 compare 0.000000987654321 1E-3 -> -1
-ddcom593 compare 0.000000987654321 1E-2 -> -1
-ddcom594 compare 0.000000987654321 1E-1 -> -1
-ddcom595 compare 0.000000987654321 1E-0 -> -1
-ddcom596 compare 0.000000987654321 1E+1 -> -1
-ddcom597 compare 0.000000987654321 1E+2 -> -1
-ddcom598 compare 0.000000987654321 1E+3 -> -1
-ddcom599 compare 0.000000987654321 1E+4 -> -1
-
--- check some unit-y traps
-ddcom600 compare 12 12.2345 -> -1
-ddcom601 compare 12.0 12.2345 -> -1
-ddcom602 compare 12.00 12.2345 -> -1
-ddcom603 compare 12.000 12.2345 -> -1
-ddcom604 compare 12.0000 12.2345 -> -1
-ddcom605 compare 12.00000 12.2345 -> -1
-ddcom606 compare 12.000000 12.2345 -> -1
-ddcom607 compare 12.0000000 12.2345 -> -1
-ddcom608 compare 12.00000000 12.2345 -> -1
-ddcom609 compare 12.000000000 12.2345 -> -1
-ddcom610 compare 12.1234 12 -> 1
-ddcom611 compare 12.1234 12.0 -> 1
-ddcom612 compare 12.1234 12.00 -> 1
-ddcom613 compare 12.1234 12.000 -> 1
-ddcom614 compare 12.1234 12.0000 -> 1
-ddcom615 compare 12.1234 12.00000 -> 1
-ddcom616 compare 12.1234 12.000000 -> 1
-ddcom617 compare 12.1234 12.0000000 -> 1
-ddcom618 compare 12.1234 12.00000000 -> 1
-ddcom619 compare 12.1234 12.000000000 -> 1
-ddcom620 compare -12 -12.2345 -> 1
-ddcom621 compare -12.0 -12.2345 -> 1
-ddcom622 compare -12.00 -12.2345 -> 1
-ddcom623 compare -12.000 -12.2345 -> 1
-ddcom624 compare -12.0000 -12.2345 -> 1
-ddcom625 compare -12.00000 -12.2345 -> 1
-ddcom626 compare -12.000000 -12.2345 -> 1
-ddcom627 compare -12.0000000 -12.2345 -> 1
-ddcom628 compare -12.00000000 -12.2345 -> 1
-ddcom629 compare -12.000000000 -12.2345 -> 1
-ddcom630 compare -12.1234 -12 -> -1
-ddcom631 compare -12.1234 -12.0 -> -1
-ddcom632 compare -12.1234 -12.00 -> -1
-ddcom633 compare -12.1234 -12.000 -> -1
-ddcom634 compare -12.1234 -12.0000 -> -1
-ddcom635 compare -12.1234 -12.00000 -> -1
-ddcom636 compare -12.1234 -12.000000 -> -1
-ddcom637 compare -12.1234 -12.0000000 -> -1
-ddcom638 compare -12.1234 -12.00000000 -> -1
-ddcom639 compare -12.1234 -12.000000000 -> -1
-
--- extended zeros
-ddcom640 compare 0 0 -> 0
-ddcom641 compare 0 -0 -> 0
-ddcom642 compare 0 -0.0 -> 0
-ddcom643 compare 0 0.0 -> 0
-ddcom644 compare -0 0 -> 0
-ddcom645 compare -0 -0 -> 0
-ddcom646 compare -0 -0.0 -> 0
-ddcom647 compare -0 0.0 -> 0
-ddcom648 compare 0.0 0 -> 0
-ddcom649 compare 0.0 -0 -> 0
-ddcom650 compare 0.0 -0.0 -> 0
-ddcom651 compare 0.0 0.0 -> 0
-ddcom652 compare -0.0 0 -> 0
-ddcom653 compare -0.0 -0 -> 0
-ddcom654 compare -0.0 -0.0 -> 0
-ddcom655 compare -0.0 0.0 -> 0
-
-ddcom656 compare -0E1 0.0 -> 0
-ddcom657 compare -0E2 0.0 -> 0
-ddcom658 compare 0E1 0.0 -> 0
-ddcom659 compare 0E2 0.0 -> 0
-ddcom660 compare -0E1 0 -> 0
-ddcom661 compare -0E2 0 -> 0
-ddcom662 compare 0E1 0 -> 0
-ddcom663 compare 0E2 0 -> 0
-ddcom664 compare -0E1 -0E1 -> 0
-ddcom665 compare -0E2 -0E1 -> 0
-ddcom666 compare 0E1 -0E1 -> 0
-ddcom667 compare 0E2 -0E1 -> 0
-ddcom668 compare -0E1 -0E2 -> 0
-ddcom669 compare -0E2 -0E2 -> 0
-ddcom670 compare 0E1 -0E2 -> 0
-ddcom671 compare 0E2 -0E2 -> 0
-ddcom672 compare -0E1 0E1 -> 0
-ddcom673 compare -0E2 0E1 -> 0
-ddcom674 compare 0E1 0E1 -> 0
-ddcom675 compare 0E2 0E1 -> 0
-ddcom676 compare -0E1 0E2 -> 0
-ddcom677 compare -0E2 0E2 -> 0
-ddcom678 compare 0E1 0E2 -> 0
-ddcom679 compare 0E2 0E2 -> 0
-
--- trailing zeros; unit-y
-ddcom680 compare 12 12 -> 0
-ddcom681 compare 12 12.0 -> 0
-ddcom682 compare 12 12.00 -> 0
-ddcom683 compare 12 12.000 -> 0
-ddcom684 compare 12 12.0000 -> 0
-ddcom685 compare 12 12.00000 -> 0
-ddcom686 compare 12 12.000000 -> 0
-ddcom687 compare 12 12.0000000 -> 0
-ddcom688 compare 12 12.00000000 -> 0
-ddcom689 compare 12 12.000000000 -> 0
-ddcom690 compare 12 12 -> 0
-ddcom691 compare 12.0 12 -> 0
-ddcom692 compare 12.00 12 -> 0
-ddcom693 compare 12.000 12 -> 0
-ddcom694 compare 12.0000 12 -> 0
-ddcom695 compare 12.00000 12 -> 0
-ddcom696 compare 12.000000 12 -> 0
-ddcom697 compare 12.0000000 12 -> 0
-ddcom698 compare 12.00000000 12 -> 0
-ddcom699 compare 12.000000000 12 -> 0
-
--- first, second, & last digit
-ddcom700 compare 1234567890123456 1234567890123455 -> 1
-ddcom701 compare 1234567890123456 1234567890123456 -> 0
-ddcom702 compare 1234567890123456 1234567890123457 -> -1
-ddcom703 compare 1234567890123456 0234567890123456 -> 1
-ddcom704 compare 1234567890123456 1234567890123456 -> 0
-ddcom705 compare 1234567890123456 2234567890123456 -> -1
-ddcom706 compare 1134567890123456 1034567890123456 -> 1
-ddcom707 compare 1134567890123456 1134567890123456 -> 0
-ddcom708 compare 1134567890123456 1234567890123456 -> -1
-
--- miscellaneous
-ddcom721 compare 12345678000 1 -> 1
-ddcom722 compare 1 12345678000 -> -1
-ddcom723 compare 1234567800 1 -> 1
-ddcom724 compare 1 1234567800 -> -1
-ddcom725 compare 1234567890 1 -> 1
-ddcom726 compare 1 1234567890 -> -1
-ddcom727 compare 1234567891 1 -> 1
-ddcom728 compare 1 1234567891 -> -1
-ddcom729 compare 12345678901 1 -> 1
-ddcom730 compare 1 12345678901 -> -1
-ddcom731 compare 1234567896 1 -> 1
-ddcom732 compare 1 1234567896 -> -1
-
--- residue cases at lower precision
-ddcom740 compare 1 0.9999999 -> 1
-ddcom741 compare 1 0.999999 -> 1
-ddcom742 compare 1 0.99999 -> 1
-ddcom743 compare 1 1.0000 -> 0
-ddcom744 compare 1 1.00001 -> -1
-ddcom745 compare 1 1.000001 -> -1
-ddcom746 compare 1 1.0000001 -> -1
-ddcom750 compare 0.9999999 1 -> -1
-ddcom751 compare 0.999999 1 -> -1
-ddcom752 compare 0.99999 1 -> -1
-ddcom753 compare 1.0000 1 -> 0
-ddcom754 compare 1.00001 1 -> 1
-ddcom755 compare 1.000001 1 -> 1
-ddcom756 compare 1.0000001 1 -> 1
-
--- Specials
-ddcom780 compare Inf -Inf -> 1
-ddcom781 compare Inf -1000 -> 1
-ddcom782 compare Inf -1 -> 1
-ddcom783 compare Inf -0 -> 1
-ddcom784 compare Inf 0 -> 1
-ddcom785 compare Inf 1 -> 1
-ddcom786 compare Inf 1000 -> 1
-ddcom787 compare Inf Inf -> 0
-ddcom788 compare -1000 Inf -> -1
-ddcom789 compare -Inf Inf -> -1
-ddcom790 compare -1 Inf -> -1
-ddcom791 compare -0 Inf -> -1
-ddcom792 compare 0 Inf -> -1
-ddcom793 compare 1 Inf -> -1
-ddcom794 compare 1000 Inf -> -1
-ddcom795 compare Inf Inf -> 0
-
-ddcom800 compare -Inf -Inf -> 0
-ddcom801 compare -Inf -1000 -> -1
-ddcom802 compare -Inf -1 -> -1
-ddcom803 compare -Inf -0 -> -1
-ddcom804 compare -Inf 0 -> -1
-ddcom805 compare -Inf 1 -> -1
-ddcom806 compare -Inf 1000 -> -1
-ddcom807 compare -Inf Inf -> -1
-ddcom808 compare -Inf -Inf -> 0
-ddcom809 compare -1000 -Inf -> 1
-ddcom810 compare -1 -Inf -> 1
-ddcom811 compare -0 -Inf -> 1
-ddcom812 compare 0 -Inf -> 1
-ddcom813 compare 1 -Inf -> 1
-ddcom814 compare 1000 -Inf -> 1
-ddcom815 compare Inf -Inf -> 1
-
-ddcom821 compare NaN -Inf -> NaN
-ddcom822 compare NaN -1000 -> NaN
-ddcom823 compare NaN -1 -> NaN
-ddcom824 compare NaN -0 -> NaN
-ddcom825 compare NaN 0 -> NaN
-ddcom826 compare NaN 1 -> NaN
-ddcom827 compare NaN 1000 -> NaN
-ddcom828 compare NaN Inf -> NaN
-ddcom829 compare NaN NaN -> NaN
-ddcom830 compare -Inf NaN -> NaN
-ddcom831 compare -1000 NaN -> NaN
-ddcom832 compare -1 NaN -> NaN
-ddcom833 compare -0 NaN -> NaN
-ddcom834 compare 0 NaN -> NaN
-ddcom835 compare 1 NaN -> NaN
-ddcom836 compare 1000 NaN -> NaN
-ddcom837 compare Inf NaN -> NaN
-ddcom838 compare -NaN -NaN -> -NaN
-ddcom839 compare +NaN -NaN -> NaN
-ddcom840 compare -NaN +NaN -> -NaN
-
-ddcom841 compare sNaN -Inf -> NaN Invalid_operation
-ddcom842 compare sNaN -1000 -> NaN Invalid_operation
-ddcom843 compare sNaN -1 -> NaN Invalid_operation
-ddcom844 compare sNaN -0 -> NaN Invalid_operation
-ddcom845 compare sNaN 0 -> NaN Invalid_operation
-ddcom846 compare sNaN 1 -> NaN Invalid_operation
-ddcom847 compare sNaN 1000 -> NaN Invalid_operation
-ddcom848 compare sNaN NaN -> NaN Invalid_operation
-ddcom849 compare sNaN sNaN -> NaN Invalid_operation
-ddcom850 compare NaN sNaN -> NaN Invalid_operation
-ddcom851 compare -Inf sNaN -> NaN Invalid_operation
-ddcom852 compare -1000 sNaN -> NaN Invalid_operation
-ddcom853 compare -1 sNaN -> NaN Invalid_operation
-ddcom854 compare -0 sNaN -> NaN Invalid_operation
-ddcom855 compare 0 sNaN -> NaN Invalid_operation
-ddcom856 compare 1 sNaN -> NaN Invalid_operation
-ddcom857 compare 1000 sNaN -> NaN Invalid_operation
-ddcom858 compare Inf sNaN -> NaN Invalid_operation
-ddcom859 compare NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-ddcom860 compare NaN9 -Inf -> NaN9
-ddcom861 compare NaN8 999 -> NaN8
-ddcom862 compare NaN77 Inf -> NaN77
-ddcom863 compare -NaN67 NaN5 -> -NaN67
-ddcom864 compare -Inf -NaN4 -> -NaN4
-ddcom865 compare -999 -NaN33 -> -NaN33
-ddcom866 compare Inf NaN2 -> NaN2
-ddcom867 compare -NaN41 -NaN42 -> -NaN41
-ddcom868 compare +NaN41 -NaN42 -> NaN41
-ddcom869 compare -NaN41 +NaN42 -> -NaN41
-ddcom870 compare +NaN41 +NaN42 -> NaN41
-
-ddcom871 compare -sNaN99 -Inf -> -NaN99 Invalid_operation
-ddcom872 compare sNaN98 -11 -> NaN98 Invalid_operation
-ddcom873 compare sNaN97 NaN -> NaN97 Invalid_operation
-ddcom874 compare sNaN16 sNaN94 -> NaN16 Invalid_operation
-ddcom875 compare NaN85 sNaN83 -> NaN83 Invalid_operation
-ddcom876 compare -Inf sNaN92 -> NaN92 Invalid_operation
-ddcom877 compare 088 sNaN81 -> NaN81 Invalid_operation
-ddcom878 compare Inf sNaN90 -> NaN90 Invalid_operation
-ddcom879 compare NaN -sNaN89 -> -NaN89 Invalid_operation
-
--- wide range
-ddcom880 compare +1.23456789012345E-0 9E+384 -> -1
-ddcom881 compare 9E+384 +1.23456789012345E-0 -> 1
-ddcom882 compare +0.100 9E-383 -> 1
-ddcom883 compare 9E-383 +0.100 -> -1
-ddcom885 compare -1.23456789012345E-0 9E+384 -> -1
-ddcom886 compare 9E+384 -1.23456789012345E-0 -> 1
-ddcom887 compare -0.100 9E-383 -> -1
-ddcom888 compare 9E-383 -0.100 -> 1
-
--- spread zeros
-ddcom900 compare 0E-383 0 -> 0
-ddcom901 compare 0E-383 -0 -> 0
-ddcom902 compare -0E-383 0 -> 0
-ddcom903 compare -0E-383 -0 -> 0
-ddcom904 compare 0E-383 0E+384 -> 0
-ddcom905 compare 0E-383 -0E+384 -> 0
-ddcom906 compare -0E-383 0E+384 -> 0
-ddcom907 compare -0E-383 -0E+384 -> 0
-ddcom908 compare 0 0E+384 -> 0
-ddcom909 compare 0 -0E+384 -> 0
-ddcom910 compare -0 0E+384 -> 0
-ddcom911 compare -0 -0E+384 -> 0
-ddcom930 compare 0E+384 0 -> 0
-ddcom931 compare 0E+384 -0 -> 0
-ddcom932 compare -0E+384 0 -> 0
-ddcom933 compare -0E+384 -0 -> 0
-ddcom934 compare 0E+384 0E-383 -> 0
-ddcom935 compare 0E+384 -0E-383 -> 0
-ddcom936 compare -0E+384 0E-383 -> 0
-ddcom937 compare -0E+384 -0E-383 -> 0
-ddcom938 compare 0 0E-383 -> 0
-ddcom939 compare 0 -0E-383 -> 0
-ddcom940 compare -0 0E-383 -> 0
-ddcom941 compare -0 -0E-383 -> 0
-
--- signs
-ddcom961 compare 1e+77 1e+11 -> 1
-ddcom962 compare 1e+77 -1e+11 -> 1
-ddcom963 compare -1e+77 1e+11 -> -1
-ddcom964 compare -1e+77 -1e+11 -> -1
-ddcom965 compare 1e-77 1e-11 -> -1
-ddcom966 compare 1e-77 -1e-11 -> 1
-ddcom967 compare -1e-77 1e-11 -> -1
-ddcom968 compare -1e-77 -1e-11 -> 1
-
--- full alignment range, both ways
-ddcomp1001 compare 1 1.000000000000000 -> 0
-ddcomp1002 compare 1 1.00000000000000 -> 0
-ddcomp1003 compare 1 1.0000000000000 -> 0
-ddcomp1004 compare 1 1.000000000000 -> 0
-ddcomp1005 compare 1 1.00000000000 -> 0
-ddcomp1006 compare 1 1.0000000000 -> 0
-ddcomp1007 compare 1 1.000000000 -> 0
-ddcomp1008 compare 1 1.00000000 -> 0
-ddcomp1009 compare 1 1.0000000 -> 0
-ddcomp1010 compare 1 1.000000 -> 0
-ddcomp1011 compare 1 1.00000 -> 0
-ddcomp1012 compare 1 1.0000 -> 0
-ddcomp1013 compare 1 1.000 -> 0
-ddcomp1014 compare 1 1.00 -> 0
-ddcomp1015 compare 1 1.0 -> 0
-ddcomp1021 compare 1.000000000000000 1 -> 0
-ddcomp1022 compare 1.00000000000000 1 -> 0
-ddcomp1023 compare 1.0000000000000 1 -> 0
-ddcomp1024 compare 1.000000000000 1 -> 0
-ddcomp1025 compare 1.00000000000 1 -> 0
-ddcomp1026 compare 1.0000000000 1 -> 0
-ddcomp1027 compare 1.000000000 1 -> 0
-ddcomp1028 compare 1.00000000 1 -> 0
-ddcomp1029 compare 1.0000000 1 -> 0
-ddcomp1030 compare 1.000000 1 -> 0
-ddcomp1031 compare 1.00000 1 -> 0
-ddcomp1032 compare 1.0000 1 -> 0
-ddcomp1033 compare 1.000 1 -> 0
-ddcomp1034 compare 1.00 1 -> 0
-ddcomp1035 compare 1.0 1 -> 0
-
--- check MSD always detected non-zero
-ddcomp1040 compare 0 0.000000000000000 -> 0
-ddcomp1041 compare 0 1.000000000000000 -> -1
-ddcomp1042 compare 0 2.000000000000000 -> -1
-ddcomp1043 compare 0 3.000000000000000 -> -1
-ddcomp1044 compare 0 4.000000000000000 -> -1
-ddcomp1045 compare 0 5.000000000000000 -> -1
-ddcomp1046 compare 0 6.000000000000000 -> -1
-ddcomp1047 compare 0 7.000000000000000 -> -1
-ddcomp1048 compare 0 8.000000000000000 -> -1
-ddcomp1049 compare 0 9.000000000000000 -> -1
-ddcomp1050 compare 0.000000000000000 0 -> 0
-ddcomp1051 compare 1.000000000000000 0 -> 1
-ddcomp1052 compare 2.000000000000000 0 -> 1
-ddcomp1053 compare 3.000000000000000 0 -> 1
-ddcomp1054 compare 4.000000000000000 0 -> 1
-ddcomp1055 compare 5.000000000000000 0 -> 1
-ddcomp1056 compare 6.000000000000000 0 -> 1
-ddcomp1057 compare 7.000000000000000 0 -> 1
-ddcomp1058 compare 8.000000000000000 0 -> 1
-ddcomp1059 compare 9.000000000000000 0 -> 1
-
--- Null tests
-ddcom9990 compare 10 # -> NaN Invalid_operation
-ddcom9991 compare # 10 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- ddCompare.decTest -- decDouble comparison that allows quiet NaNs -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- Note that we cannot assume add/subtract tests cover paths adequately, +-- here, because the code might be quite different (comparison cannot +-- overflow or underflow, so actual subtractions are not necessary). + +-- All operands and results are decDoubles. +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +-- sanity checks +ddcom001 compare -2 -2 -> 0 +ddcom002 compare -2 -1 -> -1 +ddcom003 compare -2 0 -> -1 +ddcom004 compare -2 1 -> -1 +ddcom005 compare -2 2 -> -1 +ddcom006 compare -1 -2 -> 1 +ddcom007 compare -1 -1 -> 0 +ddcom008 compare -1 0 -> -1 +ddcom009 compare -1 1 -> -1 +ddcom010 compare -1 2 -> -1 +ddcom011 compare 0 -2 -> 1 +ddcom012 compare 0 -1 -> 1 +ddcom013 compare 0 0 -> 0 +ddcom014 compare 0 1 -> -1 +ddcom015 compare 0 2 -> -1 +ddcom016 compare 1 -2 -> 1 +ddcom017 compare 1 -1 -> 1 +ddcom018 compare 1 0 -> 1 +ddcom019 compare 1 1 -> 0 +ddcom020 compare 1 2 -> -1 +ddcom021 compare 2 -2 -> 1 +ddcom022 compare 2 -1 -> 1 +ddcom023 compare 2 0 -> 1 +ddcom025 compare 2 1 -> 1 +ddcom026 compare 2 2 -> 0 + +ddcom031 compare -20 -20 -> 0 +ddcom032 compare -20 -10 -> -1 +ddcom033 compare -20 00 -> -1 +ddcom034 compare -20 10 -> -1 +ddcom035 compare -20 20 -> -1 +ddcom036 compare -10 -20 -> 1 +ddcom037 compare -10 -10 -> 0 +ddcom038 compare -10 00 -> -1 +ddcom039 compare -10 10 -> -1 +ddcom040 compare -10 20 -> -1 +ddcom041 compare 00 -20 -> 1 +ddcom042 compare 00 -10 -> 1 +ddcom043 compare 00 00 -> 0 +ddcom044 compare 00 10 -> -1 +ddcom045 compare 00 20 -> -1 +ddcom046 compare 10 -20 -> 1 +ddcom047 compare 10 -10 -> 1 +ddcom048 compare 10 00 -> 1 +ddcom049 compare 10 10 -> 0 +ddcom050 compare 10 20 -> -1 +ddcom051 compare 20 -20 -> 1 +ddcom052 compare 20 -10 -> 1 +ddcom053 compare 20 00 -> 1 +ddcom055 compare 20 10 -> 1 +ddcom056 compare 20 20 -> 0 + +ddcom061 compare -2.0 -2.0 -> 0 +ddcom062 compare -2.0 -1.0 -> -1 +ddcom063 compare -2.0 0.0 -> -1 +ddcom064 compare -2.0 1.0 -> -1 +ddcom065 compare -2.0 2.0 -> -1 +ddcom066 compare -1.0 -2.0 -> 1 +ddcom067 compare -1.0 -1.0 -> 0 +ddcom068 compare -1.0 0.0 -> -1 +ddcom069 compare -1.0 1.0 -> -1 +ddcom070 compare -1.0 2.0 -> -1 +ddcom071 compare 0.0 -2.0 -> 1 +ddcom072 compare 0.0 -1.0 -> 1 +ddcom073 compare 0.0 0.0 -> 0 +ddcom074 compare 0.0 1.0 -> -1 +ddcom075 compare 0.0 2.0 -> -1 +ddcom076 compare 1.0 -2.0 -> 1 +ddcom077 compare 1.0 -1.0 -> 1 +ddcom078 compare 1.0 0.0 -> 1 +ddcom079 compare 1.0 1.0 -> 0 +ddcom080 compare 1.0 2.0 -> -1 +ddcom081 compare 2.0 -2.0 -> 1 +ddcom082 compare 2.0 -1.0 -> 1 +ddcom083 compare 2.0 0.0 -> 1 +ddcom085 compare 2.0 1.0 -> 1 +ddcom086 compare 2.0 2.0 -> 0 +ddcom087 compare 1.0 0.1 -> 1 +ddcom088 compare 0.1 1.0 -> -1 + +-- now some cases which might overflow if subtract were used +ddcom095 compare 9.999999999999999E+384 9.999999999999999E+384 -> 0 +ddcom096 compare -9.999999999999999E+384 9.999999999999999E+384 -> -1 +ddcom097 compare 9.999999999999999E+384 -9.999999999999999E+384 -> 1 +ddcom098 compare -9.999999999999999E+384 -9.999999999999999E+384 -> 0 + +-- some differing length/exponent cases +ddcom100 compare 7.0 7.0 -> 0 +ddcom101 compare 7.0 7 -> 0 +ddcom102 compare 7 7.0 -> 0 +ddcom103 compare 7E+0 7.0 -> 0 +ddcom104 compare 70E-1 7.0 -> 0 +ddcom105 compare 0.7E+1 7 -> 0 +ddcom106 compare 70E-1 7 -> 0 +ddcom107 compare 7.0 7E+0 -> 0 +ddcom108 compare 7.0 70E-1 -> 0 +ddcom109 compare 7 0.7E+1 -> 0 +ddcom110 compare 7 70E-1 -> 0 + +ddcom120 compare 8.0 7.0 -> 1 +ddcom121 compare 8.0 7 -> 1 +ddcom122 compare 8 7.0 -> 1 +ddcom123 compare 8E+0 7.0 -> 1 +ddcom124 compare 80E-1 7.0 -> 1 +ddcom125 compare 0.8E+1 7 -> 1 +ddcom126 compare 80E-1 7 -> 1 +ddcom127 compare 8.0 7E+0 -> 1 +ddcom128 compare 8.0 70E-1 -> 1 +ddcom129 compare 8 0.7E+1 -> 1 +ddcom130 compare 8 70E-1 -> 1 + +ddcom140 compare 8.0 9.0 -> -1 +ddcom141 compare 8.0 9 -> -1 +ddcom142 compare 8 9.0 -> -1 +ddcom143 compare 8E+0 9.0 -> -1 +ddcom144 compare 80E-1 9.0 -> -1 +ddcom145 compare 0.8E+1 9 -> -1 +ddcom146 compare 80E-1 9 -> -1 +ddcom147 compare 8.0 9E+0 -> -1 +ddcom148 compare 8.0 90E-1 -> -1 +ddcom149 compare 8 0.9E+1 -> -1 +ddcom150 compare 8 90E-1 -> -1 + +-- and again, with sign changes -+ .. +ddcom200 compare -7.0 7.0 -> -1 +ddcom201 compare -7.0 7 -> -1 +ddcom202 compare -7 7.0 -> -1 +ddcom203 compare -7E+0 7.0 -> -1 +ddcom204 compare -70E-1 7.0 -> -1 +ddcom205 compare -0.7E+1 7 -> -1 +ddcom206 compare -70E-1 7 -> -1 +ddcom207 compare -7.0 7E+0 -> -1 +ddcom208 compare -7.0 70E-1 -> -1 +ddcom209 compare -7 0.7E+1 -> -1 +ddcom210 compare -7 70E-1 -> -1 + +ddcom220 compare -8.0 7.0 -> -1 +ddcom221 compare -8.0 7 -> -1 +ddcom222 compare -8 7.0 -> -1 +ddcom223 compare -8E+0 7.0 -> -1 +ddcom224 compare -80E-1 7.0 -> -1 +ddcom225 compare -0.8E+1 7 -> -1 +ddcom226 compare -80E-1 7 -> -1 +ddcom227 compare -8.0 7E+0 -> -1 +ddcom228 compare -8.0 70E-1 -> -1 +ddcom229 compare -8 0.7E+1 -> -1 +ddcom230 compare -8 70E-1 -> -1 + +ddcom240 compare -8.0 9.0 -> -1 +ddcom241 compare -8.0 9 -> -1 +ddcom242 compare -8 9.0 -> -1 +ddcom243 compare -8E+0 9.0 -> -1 +ddcom244 compare -80E-1 9.0 -> -1 +ddcom245 compare -0.8E+1 9 -> -1 +ddcom246 compare -80E-1 9 -> -1 +ddcom247 compare -8.0 9E+0 -> -1 +ddcom248 compare -8.0 90E-1 -> -1 +ddcom249 compare -8 0.9E+1 -> -1 +ddcom250 compare -8 90E-1 -> -1 + +-- and again, with sign changes +- .. +ddcom300 compare 7.0 -7.0 -> 1 +ddcom301 compare 7.0 -7 -> 1 +ddcom302 compare 7 -7.0 -> 1 +ddcom303 compare 7E+0 -7.0 -> 1 +ddcom304 compare 70E-1 -7.0 -> 1 +ddcom305 compare .7E+1 -7 -> 1 +ddcom306 compare 70E-1 -7 -> 1 +ddcom307 compare 7.0 -7E+0 -> 1 +ddcom308 compare 7.0 -70E-1 -> 1 +ddcom309 compare 7 -.7E+1 -> 1 +ddcom310 compare 7 -70E-1 -> 1 + +ddcom320 compare 8.0 -7.0 -> 1 +ddcom321 compare 8.0 -7 -> 1 +ddcom322 compare 8 -7.0 -> 1 +ddcom323 compare 8E+0 -7.0 -> 1 +ddcom324 compare 80E-1 -7.0 -> 1 +ddcom325 compare .8E+1 -7 -> 1 +ddcom326 compare 80E-1 -7 -> 1 +ddcom327 compare 8.0 -7E+0 -> 1 +ddcom328 compare 8.0 -70E-1 -> 1 +ddcom329 compare 8 -.7E+1 -> 1 +ddcom330 compare 8 -70E-1 -> 1 + +ddcom340 compare 8.0 -9.0 -> 1 +ddcom341 compare 8.0 -9 -> 1 +ddcom342 compare 8 -9.0 -> 1 +ddcom343 compare 8E+0 -9.0 -> 1 +ddcom344 compare 80E-1 -9.0 -> 1 +ddcom345 compare .8E+1 -9 -> 1 +ddcom346 compare 80E-1 -9 -> 1 +ddcom347 compare 8.0 -9E+0 -> 1 +ddcom348 compare 8.0 -90E-1 -> 1 +ddcom349 compare 8 -.9E+1 -> 1 +ddcom350 compare 8 -90E-1 -> 1 + +-- and again, with sign changes -- .. +ddcom400 compare -7.0 -7.0 -> 0 +ddcom401 compare -7.0 -7 -> 0 +ddcom402 compare -7 -7.0 -> 0 +ddcom403 compare -7E+0 -7.0 -> 0 +ddcom404 compare -70E-1 -7.0 -> 0 +ddcom405 compare -.7E+1 -7 -> 0 +ddcom406 compare -70E-1 -7 -> 0 +ddcom407 compare -7.0 -7E+0 -> 0 +ddcom408 compare -7.0 -70E-1 -> 0 +ddcom409 compare -7 -.7E+1 -> 0 +ddcom410 compare -7 -70E-1 -> 0 + +ddcom420 compare -8.0 -7.0 -> -1 +ddcom421 compare -8.0 -7 -> -1 +ddcom422 compare -8 -7.0 -> -1 +ddcom423 compare -8E+0 -7.0 -> -1 +ddcom424 compare -80E-1 -7.0 -> -1 +ddcom425 compare -.8E+1 -7 -> -1 +ddcom426 compare -80E-1 -7 -> -1 +ddcom427 compare -8.0 -7E+0 -> -1 +ddcom428 compare -8.0 -70E-1 -> -1 +ddcom429 compare -8 -.7E+1 -> -1 +ddcom430 compare -8 -70E-1 -> -1 + +ddcom440 compare -8.0 -9.0 -> 1 +ddcom441 compare -8.0 -9 -> 1 +ddcom442 compare -8 -9.0 -> 1 +ddcom443 compare -8E+0 -9.0 -> 1 +ddcom444 compare -80E-1 -9.0 -> 1 +ddcom445 compare -.8E+1 -9 -> 1 +ddcom446 compare -80E-1 -9 -> 1 +ddcom447 compare -8.0 -9E+0 -> 1 +ddcom448 compare -8.0 -90E-1 -> 1 +ddcom449 compare -8 -.9E+1 -> 1 +ddcom450 compare -8 -90E-1 -> 1 + +-- misalignment traps for little-endian +ddcom451 compare 1.0 0.1 -> 1 +ddcom452 compare 0.1 1.0 -> -1 +ddcom453 compare 10.0 0.1 -> 1 +ddcom454 compare 0.1 10.0 -> -1 +ddcom455 compare 100 1.0 -> 1 +ddcom456 compare 1.0 100 -> -1 +ddcom457 compare 1000 10.0 -> 1 +ddcom458 compare 10.0 1000 -> -1 +ddcom459 compare 10000 100.0 -> 1 +ddcom460 compare 100.0 10000 -> -1 +ddcom461 compare 100000 1000.0 -> 1 +ddcom462 compare 1000.0 100000 -> -1 +ddcom463 compare 1000000 10000.0 -> 1 +ddcom464 compare 10000.0 1000000 -> -1 + +-- testcases that subtract to lots of zeros at boundaries [pgr] +ddcom473 compare 123.4560000000000E-89 123.456E-89 -> 0 +ddcom474 compare 123.456000000000E+89 123.456E+89 -> 0 +ddcom475 compare 123.45600000000E-89 123.456E-89 -> 0 +ddcom476 compare 123.4560000000E+89 123.456E+89 -> 0 +ddcom477 compare 123.456000000E-89 123.456E-89 -> 0 +ddcom478 compare 123.45600000E+89 123.456E+89 -> 0 +ddcom479 compare 123.4560000E-89 123.456E-89 -> 0 +ddcom480 compare 123.456000E+89 123.456E+89 -> 0 +ddcom481 compare 123.45600E-89 123.456E-89 -> 0 +ddcom482 compare 123.4560E+89 123.456E+89 -> 0 +ddcom483 compare 123.456E-89 123.456E-89 -> 0 +ddcom487 compare 123.456E+89 123.4560000000000E+89 -> 0 +ddcom488 compare 123.456E-89 123.456000000000E-89 -> 0 +ddcom489 compare 123.456E+89 123.45600000000E+89 -> 0 +ddcom490 compare 123.456E-89 123.4560000000E-89 -> 0 +ddcom491 compare 123.456E+89 123.456000000E+89 -> 0 +ddcom492 compare 123.456E-89 123.45600000E-89 -> 0 +ddcom493 compare 123.456E+89 123.4560000E+89 -> 0 +ddcom494 compare 123.456E-89 123.456000E-89 -> 0 +ddcom495 compare 123.456E+89 123.45600E+89 -> 0 +ddcom496 compare 123.456E-89 123.4560E-89 -> 0 +ddcom497 compare 123.456E+89 123.456E+89 -> 0 + +-- wide-ranging, around precision; signs equal +ddcom500 compare 1 1E-15 -> 1 +ddcom501 compare 1 1E-14 -> 1 +ddcom502 compare 1 1E-13 -> 1 +ddcom503 compare 1 1E-12 -> 1 +ddcom504 compare 1 1E-11 -> 1 +ddcom505 compare 1 1E-10 -> 1 +ddcom506 compare 1 1E-9 -> 1 +ddcom507 compare 1 1E-8 -> 1 +ddcom508 compare 1 1E-7 -> 1 +ddcom509 compare 1 1E-6 -> 1 +ddcom510 compare 1 1E-5 -> 1 +ddcom511 compare 1 1E-4 -> 1 +ddcom512 compare 1 1E-3 -> 1 +ddcom513 compare 1 1E-2 -> 1 +ddcom514 compare 1 1E-1 -> 1 +ddcom515 compare 1 1E-0 -> 0 +ddcom516 compare 1 1E+1 -> -1 +ddcom517 compare 1 1E+2 -> -1 +ddcom518 compare 1 1E+3 -> -1 +ddcom519 compare 1 1E+4 -> -1 +ddcom521 compare 1 1E+5 -> -1 +ddcom522 compare 1 1E+6 -> -1 +ddcom523 compare 1 1E+7 -> -1 +ddcom524 compare 1 1E+8 -> -1 +ddcom525 compare 1 1E+9 -> -1 +ddcom526 compare 1 1E+10 -> -1 +ddcom527 compare 1 1E+11 -> -1 +ddcom528 compare 1 1E+12 -> -1 +ddcom529 compare 1 1E+13 -> -1 +ddcom530 compare 1 1E+14 -> -1 +ddcom531 compare 1 1E+15 -> -1 +-- LR swap +ddcom540 compare 1E-15 1 -> -1 +ddcom541 compare 1E-14 1 -> -1 +ddcom542 compare 1E-13 1 -> -1 +ddcom543 compare 1E-12 1 -> -1 +ddcom544 compare 1E-11 1 -> -1 +ddcom545 compare 1E-10 1 -> -1 +ddcom546 compare 1E-9 1 -> -1 +ddcom547 compare 1E-8 1 -> -1 +ddcom548 compare 1E-7 1 -> -1 +ddcom549 compare 1E-6 1 -> -1 +ddcom550 compare 1E-5 1 -> -1 +ddcom551 compare 1E-4 1 -> -1 +ddcom552 compare 1E-3 1 -> -1 +ddcom553 compare 1E-2 1 -> -1 +ddcom554 compare 1E-1 1 -> -1 +ddcom555 compare 1E-0 1 -> 0 +ddcom556 compare 1E+1 1 -> 1 +ddcom557 compare 1E+2 1 -> 1 +ddcom558 compare 1E+3 1 -> 1 +ddcom559 compare 1E+4 1 -> 1 +ddcom561 compare 1E+5 1 -> 1 +ddcom562 compare 1E+6 1 -> 1 +ddcom563 compare 1E+7 1 -> 1 +ddcom564 compare 1E+8 1 -> 1 +ddcom565 compare 1E+9 1 -> 1 +ddcom566 compare 1E+10 1 -> 1 +ddcom567 compare 1E+11 1 -> 1 +ddcom568 compare 1E+12 1 -> 1 +ddcom569 compare 1E+13 1 -> 1 +ddcom570 compare 1E+14 1 -> 1 +ddcom571 compare 1E+15 1 -> 1 +-- similar with a useful coefficient, one side only +ddcom580 compare 0.000000987654321 1E-15 -> 1 +ddcom581 compare 0.000000987654321 1E-14 -> 1 +ddcom582 compare 0.000000987654321 1E-13 -> 1 +ddcom583 compare 0.000000987654321 1E-12 -> 1 +ddcom584 compare 0.000000987654321 1E-11 -> 1 +ddcom585 compare 0.000000987654321 1E-10 -> 1 +ddcom586 compare 0.000000987654321 1E-9 -> 1 +ddcom587 compare 0.000000987654321 1E-8 -> 1 +ddcom588 compare 0.000000987654321 1E-7 -> 1 +ddcom589 compare 0.000000987654321 1E-6 -> -1 +ddcom590 compare 0.000000987654321 1E-5 -> -1 +ddcom591 compare 0.000000987654321 1E-4 -> -1 +ddcom592 compare 0.000000987654321 1E-3 -> -1 +ddcom593 compare 0.000000987654321 1E-2 -> -1 +ddcom594 compare 0.000000987654321 1E-1 -> -1 +ddcom595 compare 0.000000987654321 1E-0 -> -1 +ddcom596 compare 0.000000987654321 1E+1 -> -1 +ddcom597 compare 0.000000987654321 1E+2 -> -1 +ddcom598 compare 0.000000987654321 1E+3 -> -1 +ddcom599 compare 0.000000987654321 1E+4 -> -1 + +-- check some unit-y traps +ddcom600 compare 12 12.2345 -> -1 +ddcom601 compare 12.0 12.2345 -> -1 +ddcom602 compare 12.00 12.2345 -> -1 +ddcom603 compare 12.000 12.2345 -> -1 +ddcom604 compare 12.0000 12.2345 -> -1 +ddcom605 compare 12.00000 12.2345 -> -1 +ddcom606 compare 12.000000 12.2345 -> -1 +ddcom607 compare 12.0000000 12.2345 -> -1 +ddcom608 compare 12.00000000 12.2345 -> -1 +ddcom609 compare 12.000000000 12.2345 -> -1 +ddcom610 compare 12.1234 12 -> 1 +ddcom611 compare 12.1234 12.0 -> 1 +ddcom612 compare 12.1234 12.00 -> 1 +ddcom613 compare 12.1234 12.000 -> 1 +ddcom614 compare 12.1234 12.0000 -> 1 +ddcom615 compare 12.1234 12.00000 -> 1 +ddcom616 compare 12.1234 12.000000 -> 1 +ddcom617 compare 12.1234 12.0000000 -> 1 +ddcom618 compare 12.1234 12.00000000 -> 1 +ddcom619 compare 12.1234 12.000000000 -> 1 +ddcom620 compare -12 -12.2345 -> 1 +ddcom621 compare -12.0 -12.2345 -> 1 +ddcom622 compare -12.00 -12.2345 -> 1 +ddcom623 compare -12.000 -12.2345 -> 1 +ddcom624 compare -12.0000 -12.2345 -> 1 +ddcom625 compare -12.00000 -12.2345 -> 1 +ddcom626 compare -12.000000 -12.2345 -> 1 +ddcom627 compare -12.0000000 -12.2345 -> 1 +ddcom628 compare -12.00000000 -12.2345 -> 1 +ddcom629 compare -12.000000000 -12.2345 -> 1 +ddcom630 compare -12.1234 -12 -> -1 +ddcom631 compare -12.1234 -12.0 -> -1 +ddcom632 compare -12.1234 -12.00 -> -1 +ddcom633 compare -12.1234 -12.000 -> -1 +ddcom634 compare -12.1234 -12.0000 -> -1 +ddcom635 compare -12.1234 -12.00000 -> -1 +ddcom636 compare -12.1234 -12.000000 -> -1 +ddcom637 compare -12.1234 -12.0000000 -> -1 +ddcom638 compare -12.1234 -12.00000000 -> -1 +ddcom639 compare -12.1234 -12.000000000 -> -1 + +-- extended zeros +ddcom640 compare 0 0 -> 0 +ddcom641 compare 0 -0 -> 0 +ddcom642 compare 0 -0.0 -> 0 +ddcom643 compare 0 0.0 -> 0 +ddcom644 compare -0 0 -> 0 +ddcom645 compare -0 -0 -> 0 +ddcom646 compare -0 -0.0 -> 0 +ddcom647 compare -0 0.0 -> 0 +ddcom648 compare 0.0 0 -> 0 +ddcom649 compare 0.0 -0 -> 0 +ddcom650 compare 0.0 -0.0 -> 0 +ddcom651 compare 0.0 0.0 -> 0 +ddcom652 compare -0.0 0 -> 0 +ddcom653 compare -0.0 -0 -> 0 +ddcom654 compare -0.0 -0.0 -> 0 +ddcom655 compare -0.0 0.0 -> 0 + +ddcom656 compare -0E1 0.0 -> 0 +ddcom657 compare -0E2 0.0 -> 0 +ddcom658 compare 0E1 0.0 -> 0 +ddcom659 compare 0E2 0.0 -> 0 +ddcom660 compare -0E1 0 -> 0 +ddcom661 compare -0E2 0 -> 0 +ddcom662 compare 0E1 0 -> 0 +ddcom663 compare 0E2 0 -> 0 +ddcom664 compare -0E1 -0E1 -> 0 +ddcom665 compare -0E2 -0E1 -> 0 +ddcom666 compare 0E1 -0E1 -> 0 +ddcom667 compare 0E2 -0E1 -> 0 +ddcom668 compare -0E1 -0E2 -> 0 +ddcom669 compare -0E2 -0E2 -> 0 +ddcom670 compare 0E1 -0E2 -> 0 +ddcom671 compare 0E2 -0E2 -> 0 +ddcom672 compare -0E1 0E1 -> 0 +ddcom673 compare -0E2 0E1 -> 0 +ddcom674 compare 0E1 0E1 -> 0 +ddcom675 compare 0E2 0E1 -> 0 +ddcom676 compare -0E1 0E2 -> 0 +ddcom677 compare -0E2 0E2 -> 0 +ddcom678 compare 0E1 0E2 -> 0 +ddcom679 compare 0E2 0E2 -> 0 + +-- trailing zeros; unit-y +ddcom680 compare 12 12 -> 0 +ddcom681 compare 12 12.0 -> 0 +ddcom682 compare 12 12.00 -> 0 +ddcom683 compare 12 12.000 -> 0 +ddcom684 compare 12 12.0000 -> 0 +ddcom685 compare 12 12.00000 -> 0 +ddcom686 compare 12 12.000000 -> 0 +ddcom687 compare 12 12.0000000 -> 0 +ddcom688 compare 12 12.00000000 -> 0 +ddcom689 compare 12 12.000000000 -> 0 +ddcom690 compare 12 12 -> 0 +ddcom691 compare 12.0 12 -> 0 +ddcom692 compare 12.00 12 -> 0 +ddcom693 compare 12.000 12 -> 0 +ddcom694 compare 12.0000 12 -> 0 +ddcom695 compare 12.00000 12 -> 0 +ddcom696 compare 12.000000 12 -> 0 +ddcom697 compare 12.0000000 12 -> 0 +ddcom698 compare 12.00000000 12 -> 0 +ddcom699 compare 12.000000000 12 -> 0 + +-- first, second, & last digit +ddcom700 compare 1234567890123456 1234567890123455 -> 1 +ddcom701 compare 1234567890123456 1234567890123456 -> 0 +ddcom702 compare 1234567890123456 1234567890123457 -> -1 +ddcom703 compare 1234567890123456 0234567890123456 -> 1 +ddcom704 compare 1234567890123456 1234567890123456 -> 0 +ddcom705 compare 1234567890123456 2234567890123456 -> -1 +ddcom706 compare 1134567890123456 1034567890123456 -> 1 +ddcom707 compare 1134567890123456 1134567890123456 -> 0 +ddcom708 compare 1134567890123456 1234567890123456 -> -1 + +-- miscellaneous +ddcom721 compare 12345678000 1 -> 1 +ddcom722 compare 1 12345678000 -> -1 +ddcom723 compare 1234567800 1 -> 1 +ddcom724 compare 1 1234567800 -> -1 +ddcom725 compare 1234567890 1 -> 1 +ddcom726 compare 1 1234567890 -> -1 +ddcom727 compare 1234567891 1 -> 1 +ddcom728 compare 1 1234567891 -> -1 +ddcom729 compare 12345678901 1 -> 1 +ddcom730 compare 1 12345678901 -> -1 +ddcom731 compare 1234567896 1 -> 1 +ddcom732 compare 1 1234567896 -> -1 + +-- residue cases at lower precision +ddcom740 compare 1 0.9999999 -> 1 +ddcom741 compare 1 0.999999 -> 1 +ddcom742 compare 1 0.99999 -> 1 +ddcom743 compare 1 1.0000 -> 0 +ddcom744 compare 1 1.00001 -> -1 +ddcom745 compare 1 1.000001 -> -1 +ddcom746 compare 1 1.0000001 -> -1 +ddcom750 compare 0.9999999 1 -> -1 +ddcom751 compare 0.999999 1 -> -1 +ddcom752 compare 0.99999 1 -> -1 +ddcom753 compare 1.0000 1 -> 0 +ddcom754 compare 1.00001 1 -> 1 +ddcom755 compare 1.000001 1 -> 1 +ddcom756 compare 1.0000001 1 -> 1 + +-- Specials +ddcom780 compare Inf -Inf -> 1 +ddcom781 compare Inf -1000 -> 1 +ddcom782 compare Inf -1 -> 1 +ddcom783 compare Inf -0 -> 1 +ddcom784 compare Inf 0 -> 1 +ddcom785 compare Inf 1 -> 1 +ddcom786 compare Inf 1000 -> 1 +ddcom787 compare Inf Inf -> 0 +ddcom788 compare -1000 Inf -> -1 +ddcom789 compare -Inf Inf -> -1 +ddcom790 compare -1 Inf -> -1 +ddcom791 compare -0 Inf -> -1 +ddcom792 compare 0 Inf -> -1 +ddcom793 compare 1 Inf -> -1 +ddcom794 compare 1000 Inf -> -1 +ddcom795 compare Inf Inf -> 0 + +ddcom800 compare -Inf -Inf -> 0 +ddcom801 compare -Inf -1000 -> -1 +ddcom802 compare -Inf -1 -> -1 +ddcom803 compare -Inf -0 -> -1 +ddcom804 compare -Inf 0 -> -1 +ddcom805 compare -Inf 1 -> -1 +ddcom806 compare -Inf 1000 -> -1 +ddcom807 compare -Inf Inf -> -1 +ddcom808 compare -Inf -Inf -> 0 +ddcom809 compare -1000 -Inf -> 1 +ddcom810 compare -1 -Inf -> 1 +ddcom811 compare -0 -Inf -> 1 +ddcom812 compare 0 -Inf -> 1 +ddcom813 compare 1 -Inf -> 1 +ddcom814 compare 1000 -Inf -> 1 +ddcom815 compare Inf -Inf -> 1 + +ddcom821 compare NaN -Inf -> NaN +ddcom822 compare NaN -1000 -> NaN +ddcom823 compare NaN -1 -> NaN +ddcom824 compare NaN -0 -> NaN +ddcom825 compare NaN 0 -> NaN +ddcom826 compare NaN 1 -> NaN +ddcom827 compare NaN 1000 -> NaN +ddcom828 compare NaN Inf -> NaN +ddcom829 compare NaN NaN -> NaN +ddcom830 compare -Inf NaN -> NaN +ddcom831 compare -1000 NaN -> NaN +ddcom832 compare -1 NaN -> NaN +ddcom833 compare -0 NaN -> NaN +ddcom834 compare 0 NaN -> NaN +ddcom835 compare 1 NaN -> NaN +ddcom836 compare 1000 NaN -> NaN +ddcom837 compare Inf NaN -> NaN +ddcom838 compare -NaN -NaN -> -NaN +ddcom839 compare +NaN -NaN -> NaN +ddcom840 compare -NaN +NaN -> -NaN + +ddcom841 compare sNaN -Inf -> NaN Invalid_operation +ddcom842 compare sNaN -1000 -> NaN Invalid_operation +ddcom843 compare sNaN -1 -> NaN Invalid_operation +ddcom844 compare sNaN -0 -> NaN Invalid_operation +ddcom845 compare sNaN 0 -> NaN Invalid_operation +ddcom846 compare sNaN 1 -> NaN Invalid_operation +ddcom847 compare sNaN 1000 -> NaN Invalid_operation +ddcom848 compare sNaN NaN -> NaN Invalid_operation +ddcom849 compare sNaN sNaN -> NaN Invalid_operation +ddcom850 compare NaN sNaN -> NaN Invalid_operation +ddcom851 compare -Inf sNaN -> NaN Invalid_operation +ddcom852 compare -1000 sNaN -> NaN Invalid_operation +ddcom853 compare -1 sNaN -> NaN Invalid_operation +ddcom854 compare -0 sNaN -> NaN Invalid_operation +ddcom855 compare 0 sNaN -> NaN Invalid_operation +ddcom856 compare 1 sNaN -> NaN Invalid_operation +ddcom857 compare 1000 sNaN -> NaN Invalid_operation +ddcom858 compare Inf sNaN -> NaN Invalid_operation +ddcom859 compare NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +ddcom860 compare NaN9 -Inf -> NaN9 +ddcom861 compare NaN8 999 -> NaN8 +ddcom862 compare NaN77 Inf -> NaN77 +ddcom863 compare -NaN67 NaN5 -> -NaN67 +ddcom864 compare -Inf -NaN4 -> -NaN4 +ddcom865 compare -999 -NaN33 -> -NaN33 +ddcom866 compare Inf NaN2 -> NaN2 +ddcom867 compare -NaN41 -NaN42 -> -NaN41 +ddcom868 compare +NaN41 -NaN42 -> NaN41 +ddcom869 compare -NaN41 +NaN42 -> -NaN41 +ddcom870 compare +NaN41 +NaN42 -> NaN41 + +ddcom871 compare -sNaN99 -Inf -> -NaN99 Invalid_operation +ddcom872 compare sNaN98 -11 -> NaN98 Invalid_operation +ddcom873 compare sNaN97 NaN -> NaN97 Invalid_operation +ddcom874 compare sNaN16 sNaN94 -> NaN16 Invalid_operation +ddcom875 compare NaN85 sNaN83 -> NaN83 Invalid_operation +ddcom876 compare -Inf sNaN92 -> NaN92 Invalid_operation +ddcom877 compare 088 sNaN81 -> NaN81 Invalid_operation +ddcom878 compare Inf sNaN90 -> NaN90 Invalid_operation +ddcom879 compare NaN -sNaN89 -> -NaN89 Invalid_operation + +-- wide range +ddcom880 compare +1.23456789012345E-0 9E+384 -> -1 +ddcom881 compare 9E+384 +1.23456789012345E-0 -> 1 +ddcom882 compare +0.100 9E-383 -> 1 +ddcom883 compare 9E-383 +0.100 -> -1 +ddcom885 compare -1.23456789012345E-0 9E+384 -> -1 +ddcom886 compare 9E+384 -1.23456789012345E-0 -> 1 +ddcom887 compare -0.100 9E-383 -> -1 +ddcom888 compare 9E-383 -0.100 -> 1 + +-- spread zeros +ddcom900 compare 0E-383 0 -> 0 +ddcom901 compare 0E-383 -0 -> 0 +ddcom902 compare -0E-383 0 -> 0 +ddcom903 compare -0E-383 -0 -> 0 +ddcom904 compare 0E-383 0E+384 -> 0 +ddcom905 compare 0E-383 -0E+384 -> 0 +ddcom906 compare -0E-383 0E+384 -> 0 +ddcom907 compare -0E-383 -0E+384 -> 0 +ddcom908 compare 0 0E+384 -> 0 +ddcom909 compare 0 -0E+384 -> 0 +ddcom910 compare -0 0E+384 -> 0 +ddcom911 compare -0 -0E+384 -> 0 +ddcom930 compare 0E+384 0 -> 0 +ddcom931 compare 0E+384 -0 -> 0 +ddcom932 compare -0E+384 0 -> 0 +ddcom933 compare -0E+384 -0 -> 0 +ddcom934 compare 0E+384 0E-383 -> 0 +ddcom935 compare 0E+384 -0E-383 -> 0 +ddcom936 compare -0E+384 0E-383 -> 0 +ddcom937 compare -0E+384 -0E-383 -> 0 +ddcom938 compare 0 0E-383 -> 0 +ddcom939 compare 0 -0E-383 -> 0 +ddcom940 compare -0 0E-383 -> 0 +ddcom941 compare -0 -0E-383 -> 0 + +-- signs +ddcom961 compare 1e+77 1e+11 -> 1 +ddcom962 compare 1e+77 -1e+11 -> 1 +ddcom963 compare -1e+77 1e+11 -> -1 +ddcom964 compare -1e+77 -1e+11 -> -1 +ddcom965 compare 1e-77 1e-11 -> -1 +ddcom966 compare 1e-77 -1e-11 -> 1 +ddcom967 compare -1e-77 1e-11 -> -1 +ddcom968 compare -1e-77 -1e-11 -> 1 + +-- full alignment range, both ways +ddcomp1001 compare 1 1.000000000000000 -> 0 +ddcomp1002 compare 1 1.00000000000000 -> 0 +ddcomp1003 compare 1 1.0000000000000 -> 0 +ddcomp1004 compare 1 1.000000000000 -> 0 +ddcomp1005 compare 1 1.00000000000 -> 0 +ddcomp1006 compare 1 1.0000000000 -> 0 +ddcomp1007 compare 1 1.000000000 -> 0 +ddcomp1008 compare 1 1.00000000 -> 0 +ddcomp1009 compare 1 1.0000000 -> 0 +ddcomp1010 compare 1 1.000000 -> 0 +ddcomp1011 compare 1 1.00000 -> 0 +ddcomp1012 compare 1 1.0000 -> 0 +ddcomp1013 compare 1 1.000 -> 0 +ddcomp1014 compare 1 1.00 -> 0 +ddcomp1015 compare 1 1.0 -> 0 +ddcomp1021 compare 1.000000000000000 1 -> 0 +ddcomp1022 compare 1.00000000000000 1 -> 0 +ddcomp1023 compare 1.0000000000000 1 -> 0 +ddcomp1024 compare 1.000000000000 1 -> 0 +ddcomp1025 compare 1.00000000000 1 -> 0 +ddcomp1026 compare 1.0000000000 1 -> 0 +ddcomp1027 compare 1.000000000 1 -> 0 +ddcomp1028 compare 1.00000000 1 -> 0 +ddcomp1029 compare 1.0000000 1 -> 0 +ddcomp1030 compare 1.000000 1 -> 0 +ddcomp1031 compare 1.00000 1 -> 0 +ddcomp1032 compare 1.0000 1 -> 0 +ddcomp1033 compare 1.000 1 -> 0 +ddcomp1034 compare 1.00 1 -> 0 +ddcomp1035 compare 1.0 1 -> 0 + +-- check MSD always detected non-zero +ddcomp1040 compare 0 0.000000000000000 -> 0 +ddcomp1041 compare 0 1.000000000000000 -> -1 +ddcomp1042 compare 0 2.000000000000000 -> -1 +ddcomp1043 compare 0 3.000000000000000 -> -1 +ddcomp1044 compare 0 4.000000000000000 -> -1 +ddcomp1045 compare 0 5.000000000000000 -> -1 +ddcomp1046 compare 0 6.000000000000000 -> -1 +ddcomp1047 compare 0 7.000000000000000 -> -1 +ddcomp1048 compare 0 8.000000000000000 -> -1 +ddcomp1049 compare 0 9.000000000000000 -> -1 +ddcomp1050 compare 0.000000000000000 0 -> 0 +ddcomp1051 compare 1.000000000000000 0 -> 1 +ddcomp1052 compare 2.000000000000000 0 -> 1 +ddcomp1053 compare 3.000000000000000 0 -> 1 +ddcomp1054 compare 4.000000000000000 0 -> 1 +ddcomp1055 compare 5.000000000000000 0 -> 1 +ddcomp1056 compare 6.000000000000000 0 -> 1 +ddcomp1057 compare 7.000000000000000 0 -> 1 +ddcomp1058 compare 8.000000000000000 0 -> 1 +ddcomp1059 compare 9.000000000000000 0 -> 1 + +-- Null tests +ddcom9990 compare 10 # -> NaN Invalid_operation +ddcom9991 compare # 10 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/ddCompareSig.decTest b/Lib/test/decimaltestdata/ddCompareSig.decTest index 8d3fce08c7..c82ec45517 100644 --- a/Lib/test/decimaltestdata/ddCompareSig.decTest +++ b/Lib/test/decimaltestdata/ddCompareSig.decTest @@ -1,647 +1,647 @@ -------------------------------------------------------------------------
--- ddCompareSig.decTest -- decDouble comparison; all NaNs signal --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- Note that we cannot assume add/subtract tests cover paths adequately,
--- here, because the code might be quite different (comparison cannot
--- overflow or underflow, so actual subtractions are not necessary).
-
--- All operands and results are decDoubles.
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
--- sanity checks
-ddcms001 comparesig -2 -2 -> 0
-ddcms002 comparesig -2 -1 -> -1
-ddcms003 comparesig -2 0 -> -1
-ddcms004 comparesig -2 1 -> -1
-ddcms005 comparesig -2 2 -> -1
-ddcms006 comparesig -1 -2 -> 1
-ddcms007 comparesig -1 -1 -> 0
-ddcms008 comparesig -1 0 -> -1
-ddcms009 comparesig -1 1 -> -1
-ddcms010 comparesig -1 2 -> -1
-ddcms011 comparesig 0 -2 -> 1
-ddcms012 comparesig 0 -1 -> 1
-ddcms013 comparesig 0 0 -> 0
-ddcms014 comparesig 0 1 -> -1
-ddcms015 comparesig 0 2 -> -1
-ddcms016 comparesig 1 -2 -> 1
-ddcms017 comparesig 1 -1 -> 1
-ddcms018 comparesig 1 0 -> 1
-ddcms019 comparesig 1 1 -> 0
-ddcms020 comparesig 1 2 -> -1
-ddcms021 comparesig 2 -2 -> 1
-ddcms022 comparesig 2 -1 -> 1
-ddcms023 comparesig 2 0 -> 1
-ddcms025 comparesig 2 1 -> 1
-ddcms026 comparesig 2 2 -> 0
-
-ddcms031 comparesig -20 -20 -> 0
-ddcms032 comparesig -20 -10 -> -1
-ddcms033 comparesig -20 00 -> -1
-ddcms034 comparesig -20 10 -> -1
-ddcms035 comparesig -20 20 -> -1
-ddcms036 comparesig -10 -20 -> 1
-ddcms037 comparesig -10 -10 -> 0
-ddcms038 comparesig -10 00 -> -1
-ddcms039 comparesig -10 10 -> -1
-ddcms040 comparesig -10 20 -> -1
-ddcms041 comparesig 00 -20 -> 1
-ddcms042 comparesig 00 -10 -> 1
-ddcms043 comparesig 00 00 -> 0
-ddcms044 comparesig 00 10 -> -1
-ddcms045 comparesig 00 20 -> -1
-ddcms046 comparesig 10 -20 -> 1
-ddcms047 comparesig 10 -10 -> 1
-ddcms048 comparesig 10 00 -> 1
-ddcms049 comparesig 10 10 -> 0
-ddcms050 comparesig 10 20 -> -1
-ddcms051 comparesig 20 -20 -> 1
-ddcms052 comparesig 20 -10 -> 1
-ddcms053 comparesig 20 00 -> 1
-ddcms055 comparesig 20 10 -> 1
-ddcms056 comparesig 20 20 -> 0
-
-ddcms061 comparesig -2.0 -2.0 -> 0
-ddcms062 comparesig -2.0 -1.0 -> -1
-ddcms063 comparesig -2.0 0.0 -> -1
-ddcms064 comparesig -2.0 1.0 -> -1
-ddcms065 comparesig -2.0 2.0 -> -1
-ddcms066 comparesig -1.0 -2.0 -> 1
-ddcms067 comparesig -1.0 -1.0 -> 0
-ddcms068 comparesig -1.0 0.0 -> -1
-ddcms069 comparesig -1.0 1.0 -> -1
-ddcms070 comparesig -1.0 2.0 -> -1
-ddcms071 comparesig 0.0 -2.0 -> 1
-ddcms072 comparesig 0.0 -1.0 -> 1
-ddcms073 comparesig 0.0 0.0 -> 0
-ddcms074 comparesig 0.0 1.0 -> -1
-ddcms075 comparesig 0.0 2.0 -> -1
-ddcms076 comparesig 1.0 -2.0 -> 1
-ddcms077 comparesig 1.0 -1.0 -> 1
-ddcms078 comparesig 1.0 0.0 -> 1
-ddcms079 comparesig 1.0 1.0 -> 0
-ddcms080 comparesig 1.0 2.0 -> -1
-ddcms081 comparesig 2.0 -2.0 -> 1
-ddcms082 comparesig 2.0 -1.0 -> 1
-ddcms083 comparesig 2.0 0.0 -> 1
-ddcms085 comparesig 2.0 1.0 -> 1
-ddcms086 comparesig 2.0 2.0 -> 0
-
--- now some cases which might overflow if subtract were used
-ddcms090 comparesig 9.999999999999999E+384 9.999999999999999E+384 -> 0
-ddcms091 comparesig -9.999999999999999E+384 9.999999999999999E+384 -> -1
-ddcms092 comparesig 9.999999999999999E+384 -9.999999999999999E+384 -> 1
-ddcms093 comparesig -9.999999999999999E+384 -9.999999999999999E+384 -> 0
-
--- some differing length/exponent cases
-ddcms100 comparesig 7.0 7.0 -> 0
-ddcms101 comparesig 7.0 7 -> 0
-ddcms102 comparesig 7 7.0 -> 0
-ddcms103 comparesig 7E+0 7.0 -> 0
-ddcms104 comparesig 70E-1 7.0 -> 0
-ddcms105 comparesig 0.7E+1 7 -> 0
-ddcms106 comparesig 70E-1 7 -> 0
-ddcms107 comparesig 7.0 7E+0 -> 0
-ddcms108 comparesig 7.0 70E-1 -> 0
-ddcms109 comparesig 7 0.7E+1 -> 0
-ddcms110 comparesig 7 70E-1 -> 0
-
-ddcms120 comparesig 8.0 7.0 -> 1
-ddcms121 comparesig 8.0 7 -> 1
-ddcms122 comparesig 8 7.0 -> 1
-ddcms123 comparesig 8E+0 7.0 -> 1
-ddcms124 comparesig 80E-1 7.0 -> 1
-ddcms125 comparesig 0.8E+1 7 -> 1
-ddcms126 comparesig 80E-1 7 -> 1
-ddcms127 comparesig 8.0 7E+0 -> 1
-ddcms128 comparesig 8.0 70E-1 -> 1
-ddcms129 comparesig 8 0.7E+1 -> 1
-ddcms130 comparesig 8 70E-1 -> 1
-
-ddcms140 comparesig 8.0 9.0 -> -1
-ddcms141 comparesig 8.0 9 -> -1
-ddcms142 comparesig 8 9.0 -> -1
-ddcms143 comparesig 8E+0 9.0 -> -1
-ddcms144 comparesig 80E-1 9.0 -> -1
-ddcms145 comparesig 0.8E+1 9 -> -1
-ddcms146 comparesig 80E-1 9 -> -1
-ddcms147 comparesig 8.0 9E+0 -> -1
-ddcms148 comparesig 8.0 90E-1 -> -1
-ddcms149 comparesig 8 0.9E+1 -> -1
-ddcms150 comparesig 8 90E-1 -> -1
-
--- and again, with sign changes -+ ..
-ddcms200 comparesig -7.0 7.0 -> -1
-ddcms201 comparesig -7.0 7 -> -1
-ddcms202 comparesig -7 7.0 -> -1
-ddcms203 comparesig -7E+0 7.0 -> -1
-ddcms204 comparesig -70E-1 7.0 -> -1
-ddcms205 comparesig -0.7E+1 7 -> -1
-ddcms206 comparesig -70E-1 7 -> -1
-ddcms207 comparesig -7.0 7E+0 -> -1
-ddcms208 comparesig -7.0 70E-1 -> -1
-ddcms209 comparesig -7 0.7E+1 -> -1
-ddcms210 comparesig -7 70E-1 -> -1
-
-ddcms220 comparesig -8.0 7.0 -> -1
-ddcms221 comparesig -8.0 7 -> -1
-ddcms222 comparesig -8 7.0 -> -1
-ddcms223 comparesig -8E+0 7.0 -> -1
-ddcms224 comparesig -80E-1 7.0 -> -1
-ddcms225 comparesig -0.8E+1 7 -> -1
-ddcms226 comparesig -80E-1 7 -> -1
-ddcms227 comparesig -8.0 7E+0 -> -1
-ddcms228 comparesig -8.0 70E-1 -> -1
-ddcms229 comparesig -8 0.7E+1 -> -1
-ddcms230 comparesig -8 70E-1 -> -1
-
-ddcms240 comparesig -8.0 9.0 -> -1
-ddcms241 comparesig -8.0 9 -> -1
-ddcms242 comparesig -8 9.0 -> -1
-ddcms243 comparesig -8E+0 9.0 -> -1
-ddcms244 comparesig -80E-1 9.0 -> -1
-ddcms245 comparesig -0.8E+1 9 -> -1
-ddcms246 comparesig -80E-1 9 -> -1
-ddcms247 comparesig -8.0 9E+0 -> -1
-ddcms248 comparesig -8.0 90E-1 -> -1
-ddcms249 comparesig -8 0.9E+1 -> -1
-ddcms250 comparesig -8 90E-1 -> -1
-
--- and again, with sign changes +- ..
-ddcms300 comparesig 7.0 -7.0 -> 1
-ddcms301 comparesig 7.0 -7 -> 1
-ddcms302 comparesig 7 -7.0 -> 1
-ddcms303 comparesig 7E+0 -7.0 -> 1
-ddcms304 comparesig 70E-1 -7.0 -> 1
-ddcms305 comparesig .7E+1 -7 -> 1
-ddcms306 comparesig 70E-1 -7 -> 1
-ddcms307 comparesig 7.0 -7E+0 -> 1
-ddcms308 comparesig 7.0 -70E-1 -> 1
-ddcms309 comparesig 7 -.7E+1 -> 1
-ddcms310 comparesig 7 -70E-1 -> 1
-
-ddcms320 comparesig 8.0 -7.0 -> 1
-ddcms321 comparesig 8.0 -7 -> 1
-ddcms322 comparesig 8 -7.0 -> 1
-ddcms323 comparesig 8E+0 -7.0 -> 1
-ddcms324 comparesig 80E-1 -7.0 -> 1
-ddcms325 comparesig .8E+1 -7 -> 1
-ddcms326 comparesig 80E-1 -7 -> 1
-ddcms327 comparesig 8.0 -7E+0 -> 1
-ddcms328 comparesig 8.0 -70E-1 -> 1
-ddcms329 comparesig 8 -.7E+1 -> 1
-ddcms330 comparesig 8 -70E-1 -> 1
-
-ddcms340 comparesig 8.0 -9.0 -> 1
-ddcms341 comparesig 8.0 -9 -> 1
-ddcms342 comparesig 8 -9.0 -> 1
-ddcms343 comparesig 8E+0 -9.0 -> 1
-ddcms344 comparesig 80E-1 -9.0 -> 1
-ddcms345 comparesig .8E+1 -9 -> 1
-ddcms346 comparesig 80E-1 -9 -> 1
-ddcms347 comparesig 8.0 -9E+0 -> 1
-ddcms348 comparesig 8.0 -90E-1 -> 1
-ddcms349 comparesig 8 -.9E+1 -> 1
-ddcms350 comparesig 8 -90E-1 -> 1
-
--- and again, with sign changes -- ..
-ddcms400 comparesig -7.0 -7.0 -> 0
-ddcms401 comparesig -7.0 -7 -> 0
-ddcms402 comparesig -7 -7.0 -> 0
-ddcms403 comparesig -7E+0 -7.0 -> 0
-ddcms404 comparesig -70E-1 -7.0 -> 0
-ddcms405 comparesig -.7E+1 -7 -> 0
-ddcms406 comparesig -70E-1 -7 -> 0
-ddcms407 comparesig -7.0 -7E+0 -> 0
-ddcms408 comparesig -7.0 -70E-1 -> 0
-ddcms409 comparesig -7 -.7E+1 -> 0
-ddcms410 comparesig -7 -70E-1 -> 0
-
-ddcms420 comparesig -8.0 -7.0 -> -1
-ddcms421 comparesig -8.0 -7 -> -1
-ddcms422 comparesig -8 -7.0 -> -1
-ddcms423 comparesig -8E+0 -7.0 -> -1
-ddcms424 comparesig -80E-1 -7.0 -> -1
-ddcms425 comparesig -.8E+1 -7 -> -1
-ddcms426 comparesig -80E-1 -7 -> -1
-ddcms427 comparesig -8.0 -7E+0 -> -1
-ddcms428 comparesig -8.0 -70E-1 -> -1
-ddcms429 comparesig -8 -.7E+1 -> -1
-ddcms430 comparesig -8 -70E-1 -> -1
-
-ddcms440 comparesig -8.0 -9.0 -> 1
-ddcms441 comparesig -8.0 -9 -> 1
-ddcms442 comparesig -8 -9.0 -> 1
-ddcms443 comparesig -8E+0 -9.0 -> 1
-ddcms444 comparesig -80E-1 -9.0 -> 1
-ddcms445 comparesig -.8E+1 -9 -> 1
-ddcms446 comparesig -80E-1 -9 -> 1
-ddcms447 comparesig -8.0 -9E+0 -> 1
-ddcms448 comparesig -8.0 -90E-1 -> 1
-ddcms449 comparesig -8 -.9E+1 -> 1
-ddcms450 comparesig -8 -90E-1 -> 1
-
-
--- testcases that subtract to lots of zeros at boundaries [pgr]
-ddcms473 comparesig 123.4560000000000E-89 123.456E-89 -> 0
-ddcms474 comparesig 123.456000000000E+89 123.456E+89 -> 0
-ddcms475 comparesig 123.45600000000E-89 123.456E-89 -> 0
-ddcms476 comparesig 123.4560000000E+89 123.456E+89 -> 0
-ddcms477 comparesig 123.456000000E-89 123.456E-89 -> 0
-ddcms478 comparesig 123.45600000E+89 123.456E+89 -> 0
-ddcms479 comparesig 123.4560000E-89 123.456E-89 -> 0
-ddcms480 comparesig 123.456000E+89 123.456E+89 -> 0
-ddcms481 comparesig 123.45600E-89 123.456E-89 -> 0
-ddcms482 comparesig 123.4560E+89 123.456E+89 -> 0
-ddcms483 comparesig 123.456E-89 123.456E-89 -> 0
-ddcms487 comparesig 123.456E+89 123.4560000000000E+89 -> 0
-ddcms488 comparesig 123.456E-89 123.456000000000E-89 -> 0
-ddcms489 comparesig 123.456E+89 123.45600000000E+89 -> 0
-ddcms490 comparesig 123.456E-89 123.4560000000E-89 -> 0
-ddcms491 comparesig 123.456E+89 123.456000000E+89 -> 0
-ddcms492 comparesig 123.456E-89 123.45600000E-89 -> 0
-ddcms493 comparesig 123.456E+89 123.4560000E+89 -> 0
-ddcms494 comparesig 123.456E-89 123.456000E-89 -> 0
-ddcms495 comparesig 123.456E+89 123.45600E+89 -> 0
-ddcms496 comparesig 123.456E-89 123.4560E-89 -> 0
-ddcms497 comparesig 123.456E+89 123.456E+89 -> 0
-
--- wide-ranging, around precision; signs equal
-ddcms500 comparesig 1 1E-15 -> 1
-ddcms501 comparesig 1 1E-14 -> 1
-ddcms502 comparesig 1 1E-13 -> 1
-ddcms503 comparesig 1 1E-12 -> 1
-ddcms504 comparesig 1 1E-11 -> 1
-ddcms505 comparesig 1 1E-10 -> 1
-ddcms506 comparesig 1 1E-9 -> 1
-ddcms507 comparesig 1 1E-8 -> 1
-ddcms508 comparesig 1 1E-7 -> 1
-ddcms509 comparesig 1 1E-6 -> 1
-ddcms510 comparesig 1 1E-5 -> 1
-ddcms511 comparesig 1 1E-4 -> 1
-ddcms512 comparesig 1 1E-3 -> 1
-ddcms513 comparesig 1 1E-2 -> 1
-ddcms514 comparesig 1 1E-1 -> 1
-ddcms515 comparesig 1 1E-0 -> 0
-ddcms516 comparesig 1 1E+1 -> -1
-ddcms517 comparesig 1 1E+2 -> -1
-ddcms518 comparesig 1 1E+3 -> -1
-ddcms519 comparesig 1 1E+4 -> -1
-ddcms521 comparesig 1 1E+5 -> -1
-ddcms522 comparesig 1 1E+6 -> -1
-ddcms523 comparesig 1 1E+7 -> -1
-ddcms524 comparesig 1 1E+8 -> -1
-ddcms525 comparesig 1 1E+9 -> -1
-ddcms526 comparesig 1 1E+10 -> -1
-ddcms527 comparesig 1 1E+11 -> -1
-ddcms528 comparesig 1 1E+12 -> -1
-ddcms529 comparesig 1 1E+13 -> -1
-ddcms530 comparesig 1 1E+14 -> -1
-ddcms531 comparesig 1 1E+15 -> -1
--- LR swap
-ddcms540 comparesig 1E-15 1 -> -1
-ddcms541 comparesig 1E-14 1 -> -1
-ddcms542 comparesig 1E-13 1 -> -1
-ddcms543 comparesig 1E-12 1 -> -1
-ddcms544 comparesig 1E-11 1 -> -1
-ddcms545 comparesig 1E-10 1 -> -1
-ddcms546 comparesig 1E-9 1 -> -1
-ddcms547 comparesig 1E-8 1 -> -1
-ddcms548 comparesig 1E-7 1 -> -1
-ddcms549 comparesig 1E-6 1 -> -1
-ddcms550 comparesig 1E-5 1 -> -1
-ddcms551 comparesig 1E-4 1 -> -1
-ddcms552 comparesig 1E-3 1 -> -1
-ddcms553 comparesig 1E-2 1 -> -1
-ddcms554 comparesig 1E-1 1 -> -1
-ddcms555 comparesig 1E-0 1 -> 0
-ddcms556 comparesig 1E+1 1 -> 1
-ddcms557 comparesig 1E+2 1 -> 1
-ddcms558 comparesig 1E+3 1 -> 1
-ddcms559 comparesig 1E+4 1 -> 1
-ddcms561 comparesig 1E+5 1 -> 1
-ddcms562 comparesig 1E+6 1 -> 1
-ddcms563 comparesig 1E+7 1 -> 1
-ddcms564 comparesig 1E+8 1 -> 1
-ddcms565 comparesig 1E+9 1 -> 1
-ddcms566 comparesig 1E+10 1 -> 1
-ddcms567 comparesig 1E+11 1 -> 1
-ddcms568 comparesig 1E+12 1 -> 1
-ddcms569 comparesig 1E+13 1 -> 1
-ddcms570 comparesig 1E+14 1 -> 1
-ddcms571 comparesig 1E+15 1 -> 1
--- similar with a useful coefficient, one side only
-ddcms580 comparesig 0.000000987654321 1E-15 -> 1
-ddcms581 comparesig 0.000000987654321 1E-14 -> 1
-ddcms582 comparesig 0.000000987654321 1E-13 -> 1
-ddcms583 comparesig 0.000000987654321 1E-12 -> 1
-ddcms584 comparesig 0.000000987654321 1E-11 -> 1
-ddcms585 comparesig 0.000000987654321 1E-10 -> 1
-ddcms586 comparesig 0.000000987654321 1E-9 -> 1
-ddcms587 comparesig 0.000000987654321 1E-8 -> 1
-ddcms588 comparesig 0.000000987654321 1E-7 -> 1
-ddcms589 comparesig 0.000000987654321 1E-6 -> -1
-ddcms590 comparesig 0.000000987654321 1E-5 -> -1
-ddcms591 comparesig 0.000000987654321 1E-4 -> -1
-ddcms592 comparesig 0.000000987654321 1E-3 -> -1
-ddcms593 comparesig 0.000000987654321 1E-2 -> -1
-ddcms594 comparesig 0.000000987654321 1E-1 -> -1
-ddcms595 comparesig 0.000000987654321 1E-0 -> -1
-ddcms596 comparesig 0.000000987654321 1E+1 -> -1
-ddcms597 comparesig 0.000000987654321 1E+2 -> -1
-ddcms598 comparesig 0.000000987654321 1E+3 -> -1
-ddcms599 comparesig 0.000000987654321 1E+4 -> -1
-
--- check some unit-y traps
-ddcms600 comparesig 12 12.2345 -> -1
-ddcms601 comparesig 12.0 12.2345 -> -1
-ddcms602 comparesig 12.00 12.2345 -> -1
-ddcms603 comparesig 12.000 12.2345 -> -1
-ddcms604 comparesig 12.0000 12.2345 -> -1
-ddcms605 comparesig 12.00000 12.2345 -> -1
-ddcms606 comparesig 12.000000 12.2345 -> -1
-ddcms607 comparesig 12.0000000 12.2345 -> -1
-ddcms608 comparesig 12.00000000 12.2345 -> -1
-ddcms609 comparesig 12.000000000 12.2345 -> -1
-ddcms610 comparesig 12.1234 12 -> 1
-ddcms611 comparesig 12.1234 12.0 -> 1
-ddcms612 comparesig 12.1234 12.00 -> 1
-ddcms613 comparesig 12.1234 12.000 -> 1
-ddcms614 comparesig 12.1234 12.0000 -> 1
-ddcms615 comparesig 12.1234 12.00000 -> 1
-ddcms616 comparesig 12.1234 12.000000 -> 1
-ddcms617 comparesig 12.1234 12.0000000 -> 1
-ddcms618 comparesig 12.1234 12.00000000 -> 1
-ddcms619 comparesig 12.1234 12.000000000 -> 1
-ddcms620 comparesig -12 -12.2345 -> 1
-ddcms621 comparesig -12.0 -12.2345 -> 1
-ddcms622 comparesig -12.00 -12.2345 -> 1
-ddcms623 comparesig -12.000 -12.2345 -> 1
-ddcms624 comparesig -12.0000 -12.2345 -> 1
-ddcms625 comparesig -12.00000 -12.2345 -> 1
-ddcms626 comparesig -12.000000 -12.2345 -> 1
-ddcms627 comparesig -12.0000000 -12.2345 -> 1
-ddcms628 comparesig -12.00000000 -12.2345 -> 1
-ddcms629 comparesig -12.000000000 -12.2345 -> 1
-ddcms630 comparesig -12.1234 -12 -> -1
-ddcms631 comparesig -12.1234 -12.0 -> -1
-ddcms632 comparesig -12.1234 -12.00 -> -1
-ddcms633 comparesig -12.1234 -12.000 -> -1
-ddcms634 comparesig -12.1234 -12.0000 -> -1
-ddcms635 comparesig -12.1234 -12.00000 -> -1
-ddcms636 comparesig -12.1234 -12.000000 -> -1
-ddcms637 comparesig -12.1234 -12.0000000 -> -1
-ddcms638 comparesig -12.1234 -12.00000000 -> -1
-ddcms639 comparesig -12.1234 -12.000000000 -> -1
-
--- extended zeros
-ddcms640 comparesig 0 0 -> 0
-ddcms641 comparesig 0 -0 -> 0
-ddcms642 comparesig 0 -0.0 -> 0
-ddcms643 comparesig 0 0.0 -> 0
-ddcms644 comparesig -0 0 -> 0
-ddcms645 comparesig -0 -0 -> 0
-ddcms646 comparesig -0 -0.0 -> 0
-ddcms647 comparesig -0 0.0 -> 0
-ddcms648 comparesig 0.0 0 -> 0
-ddcms649 comparesig 0.0 -0 -> 0
-ddcms650 comparesig 0.0 -0.0 -> 0
-ddcms651 comparesig 0.0 0.0 -> 0
-ddcms652 comparesig -0.0 0 -> 0
-ddcms653 comparesig -0.0 -0 -> 0
-ddcms654 comparesig -0.0 -0.0 -> 0
-ddcms655 comparesig -0.0 0.0 -> 0
-
-ddcms656 comparesig -0E1 0.0 -> 0
-ddcms657 comparesig -0E2 0.0 -> 0
-ddcms658 comparesig 0E1 0.0 -> 0
-ddcms659 comparesig 0E2 0.0 -> 0
-ddcms660 comparesig -0E1 0 -> 0
-ddcms661 comparesig -0E2 0 -> 0
-ddcms662 comparesig 0E1 0 -> 0
-ddcms663 comparesig 0E2 0 -> 0
-ddcms664 comparesig -0E1 -0E1 -> 0
-ddcms665 comparesig -0E2 -0E1 -> 0
-ddcms666 comparesig 0E1 -0E1 -> 0
-ddcms667 comparesig 0E2 -0E1 -> 0
-ddcms668 comparesig -0E1 -0E2 -> 0
-ddcms669 comparesig -0E2 -0E2 -> 0
-ddcms670 comparesig 0E1 -0E2 -> 0
-ddcms671 comparesig 0E2 -0E2 -> 0
-ddcms672 comparesig -0E1 0E1 -> 0
-ddcms673 comparesig -0E2 0E1 -> 0
-ddcms674 comparesig 0E1 0E1 -> 0
-ddcms675 comparesig 0E2 0E1 -> 0
-ddcms676 comparesig -0E1 0E2 -> 0
-ddcms677 comparesig -0E2 0E2 -> 0
-ddcms678 comparesig 0E1 0E2 -> 0
-ddcms679 comparesig 0E2 0E2 -> 0
-
--- trailing zeros; unit-y
-ddcms680 comparesig 12 12 -> 0
-ddcms681 comparesig 12 12.0 -> 0
-ddcms682 comparesig 12 12.00 -> 0
-ddcms683 comparesig 12 12.000 -> 0
-ddcms684 comparesig 12 12.0000 -> 0
-ddcms685 comparesig 12 12.00000 -> 0
-ddcms686 comparesig 12 12.000000 -> 0
-ddcms687 comparesig 12 12.0000000 -> 0
-ddcms688 comparesig 12 12.00000000 -> 0
-ddcms689 comparesig 12 12.000000000 -> 0
-ddcms690 comparesig 12 12 -> 0
-ddcms691 comparesig 12.0 12 -> 0
-ddcms692 comparesig 12.00 12 -> 0
-ddcms693 comparesig 12.000 12 -> 0
-ddcms694 comparesig 12.0000 12 -> 0
-ddcms695 comparesig 12.00000 12 -> 0
-ddcms696 comparesig 12.000000 12 -> 0
-ddcms697 comparesig 12.0000000 12 -> 0
-ddcms698 comparesig 12.00000000 12 -> 0
-ddcms699 comparesig 12.000000000 12 -> 0
-
--- first, second, & last digit
-ddcms700 comparesig 1234567890123456 1234567890123455 -> 1
-ddcms701 comparesig 1234567890123456 1234567890123456 -> 0
-ddcms702 comparesig 1234567890123456 1234567890123457 -> -1
-ddcms703 comparesig 1234567890123456 0234567890123456 -> 1
-ddcms704 comparesig 1234567890123456 1234567890123456 -> 0
-ddcms705 comparesig 1234567890123456 2234567890123456 -> -1
-ddcms706 comparesig 1134567890123456 1034567890123456 -> 1
-ddcms707 comparesig 1134567890123456 1134567890123456 -> 0
-ddcms708 comparesig 1134567890123456 1234567890123456 -> -1
-
--- miscellaneous
-ddcms721 comparesig 12345678000 1 -> 1
-ddcms722 comparesig 1 12345678000 -> -1
-ddcms723 comparesig 1234567800 1 -> 1
-ddcms724 comparesig 1 1234567800 -> -1
-ddcms725 comparesig 1234567890 1 -> 1
-ddcms726 comparesig 1 1234567890 -> -1
-ddcms727 comparesig 1234567891 1 -> 1
-ddcms728 comparesig 1 1234567891 -> -1
-ddcms729 comparesig 12345678901 1 -> 1
-ddcms730 comparesig 1 12345678901 -> -1
-ddcms731 comparesig 1234567896 1 -> 1
-ddcms732 comparesig 1 1234567896 -> -1
-
--- residue cases at lower precision
-ddcms740 comparesig 1 0.9999999 -> 1
-ddcms741 comparesig 1 0.999999 -> 1
-ddcms742 comparesig 1 0.99999 -> 1
-ddcms743 comparesig 1 1.0000 -> 0
-ddcms744 comparesig 1 1.00001 -> -1
-ddcms745 comparesig 1 1.000001 -> -1
-ddcms746 comparesig 1 1.0000001 -> -1
-ddcms750 comparesig 0.9999999 1 -> -1
-ddcms751 comparesig 0.999999 1 -> -1
-ddcms752 comparesig 0.99999 1 -> -1
-ddcms753 comparesig 1.0000 1 -> 0
-ddcms754 comparesig 1.00001 1 -> 1
-ddcms755 comparesig 1.000001 1 -> 1
-ddcms756 comparesig 1.0000001 1 -> 1
-
--- Specials
-ddcms780 comparesig Inf -Inf -> 1
-ddcms781 comparesig Inf -1000 -> 1
-ddcms782 comparesig Inf -1 -> 1
-ddcms783 comparesig Inf -0 -> 1
-ddcms784 comparesig Inf 0 -> 1
-ddcms785 comparesig Inf 1 -> 1
-ddcms786 comparesig Inf 1000 -> 1
-ddcms787 comparesig Inf Inf -> 0
-ddcms788 comparesig -1000 Inf -> -1
-ddcms789 comparesig -Inf Inf -> -1
-ddcms790 comparesig -1 Inf -> -1
-ddcms791 comparesig -0 Inf -> -1
-ddcms792 comparesig 0 Inf -> -1
-ddcms793 comparesig 1 Inf -> -1
-ddcms794 comparesig 1000 Inf -> -1
-ddcms795 comparesig Inf Inf -> 0
-
-ddcms800 comparesig -Inf -Inf -> 0
-ddcms801 comparesig -Inf -1000 -> -1
-ddcms802 comparesig -Inf -1 -> -1
-ddcms803 comparesig -Inf -0 -> -1
-ddcms804 comparesig -Inf 0 -> -1
-ddcms805 comparesig -Inf 1 -> -1
-ddcms806 comparesig -Inf 1000 -> -1
-ddcms807 comparesig -Inf Inf -> -1
-ddcms808 comparesig -Inf -Inf -> 0
-ddcms809 comparesig -1000 -Inf -> 1
-ddcms810 comparesig -1 -Inf -> 1
-ddcms811 comparesig -0 -Inf -> 1
-ddcms812 comparesig 0 -Inf -> 1
-ddcms813 comparesig 1 -Inf -> 1
-ddcms814 comparesig 1000 -Inf -> 1
-ddcms815 comparesig Inf -Inf -> 1
-
-ddcms821 comparesig NaN -Inf -> NaN Invalid_operation
-ddcms822 comparesig NaN -1000 -> NaN Invalid_operation
-ddcms823 comparesig NaN -1 -> NaN Invalid_operation
-ddcms824 comparesig NaN -0 -> NaN Invalid_operation
-ddcms825 comparesig NaN 0 -> NaN Invalid_operation
-ddcms826 comparesig NaN 1 -> NaN Invalid_operation
-ddcms827 comparesig NaN 1000 -> NaN Invalid_operation
-ddcms828 comparesig NaN Inf -> NaN Invalid_operation
-ddcms829 comparesig NaN NaN -> NaN Invalid_operation
-ddcms830 comparesig -Inf NaN -> NaN Invalid_operation
-ddcms831 comparesig -1000 NaN -> NaN Invalid_operation
-ddcms832 comparesig -1 NaN -> NaN Invalid_operation
-ddcms833 comparesig -0 NaN -> NaN Invalid_operation
-ddcms834 comparesig 0 NaN -> NaN Invalid_operation
-ddcms835 comparesig 1 NaN -> NaN Invalid_operation
-ddcms836 comparesig 1000 NaN -> NaN Invalid_operation
-ddcms837 comparesig Inf NaN -> NaN Invalid_operation
-ddcms838 comparesig -NaN -NaN -> -NaN Invalid_operation
-ddcms839 comparesig +NaN -NaN -> NaN Invalid_operation
-ddcms840 comparesig -NaN +NaN -> -NaN Invalid_operation
-
-ddcms841 comparesig sNaN -Inf -> NaN Invalid_operation
-ddcms842 comparesig sNaN -1000 -> NaN Invalid_operation
-ddcms843 comparesig sNaN -1 -> NaN Invalid_operation
-ddcms844 comparesig sNaN -0 -> NaN Invalid_operation
-ddcms845 comparesig sNaN 0 -> NaN Invalid_operation
-ddcms846 comparesig sNaN 1 -> NaN Invalid_operation
-ddcms847 comparesig sNaN 1000 -> NaN Invalid_operation
-ddcms848 comparesig sNaN NaN -> NaN Invalid_operation
-ddcms849 comparesig sNaN sNaN -> NaN Invalid_operation
-ddcms850 comparesig NaN sNaN -> NaN Invalid_operation
-ddcms851 comparesig -Inf sNaN -> NaN Invalid_operation
-ddcms852 comparesig -1000 sNaN -> NaN Invalid_operation
-ddcms853 comparesig -1 sNaN -> NaN Invalid_operation
-ddcms854 comparesig -0 sNaN -> NaN Invalid_operation
-ddcms855 comparesig 0 sNaN -> NaN Invalid_operation
-ddcms856 comparesig 1 sNaN -> NaN Invalid_operation
-ddcms857 comparesig 1000 sNaN -> NaN Invalid_operation
-ddcms858 comparesig Inf sNaN -> NaN Invalid_operation
-ddcms859 comparesig NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-ddcms860 comparesig NaN9 -Inf -> NaN9 Invalid_operation
-ddcms861 comparesig NaN8 999 -> NaN8 Invalid_operation
-ddcms862 comparesig NaN77 Inf -> NaN77 Invalid_operation
-ddcms863 comparesig -NaN67 NaN5 -> -NaN67 Invalid_operation
-ddcms864 comparesig -Inf -NaN4 -> -NaN4 Invalid_operation
-ddcms865 comparesig -999 -NaN33 -> -NaN33 Invalid_operation
-ddcms866 comparesig Inf NaN2 -> NaN2 Invalid_operation
-ddcms867 comparesig -NaN41 -NaN42 -> -NaN41 Invalid_operation
-ddcms868 comparesig +NaN41 -NaN42 -> NaN41 Invalid_operation
-ddcms869 comparesig -NaN41 +NaN42 -> -NaN41 Invalid_operation
-ddcms870 comparesig +NaN41 +NaN42 -> NaN41 Invalid_operation
-
-ddcms871 comparesig -sNaN99 -Inf -> -NaN99 Invalid_operation
-ddcms872 comparesig sNaN98 -11 -> NaN98 Invalid_operation
-ddcms873 comparesig sNaN97 NaN -> NaN97 Invalid_operation
-ddcms874 comparesig sNaN16 sNaN94 -> NaN16 Invalid_operation
-ddcms875 comparesig NaN85 sNaN83 -> NaN83 Invalid_operation
-ddcms876 comparesig -Inf sNaN92 -> NaN92 Invalid_operation
-ddcms877 comparesig 088 sNaN81 -> NaN81 Invalid_operation
-ddcms878 comparesig Inf sNaN90 -> NaN90 Invalid_operation
-ddcms879 comparesig NaN -sNaN89 -> -NaN89 Invalid_operation
-
--- wide range
-ddcms880 comparesig +1.23456789012345E-0 9E+384 -> -1
-ddcms881 comparesig 9E+384 +1.23456789012345E-0 -> 1
-ddcms882 comparesig +0.100 9E-383 -> 1
-ddcms883 comparesig 9E-383 +0.100 -> -1
-ddcms885 comparesig -1.23456789012345E-0 9E+384 -> -1
-ddcms886 comparesig 9E+384 -1.23456789012345E-0 -> 1
-ddcms887 comparesig -0.100 9E-383 -> -1
-ddcms888 comparesig 9E-383 -0.100 -> 1
-
--- signs
-ddcms901 comparesig 1e+77 1e+11 -> 1
-ddcms902 comparesig 1e+77 -1e+11 -> 1
-ddcms903 comparesig -1e+77 1e+11 -> -1
-ddcms904 comparesig -1e+77 -1e+11 -> -1
-ddcms905 comparesig 1e-77 1e-11 -> -1
-ddcms906 comparesig 1e-77 -1e-11 -> 1
-ddcms907 comparesig -1e-77 1e-11 -> -1
-ddcms908 comparesig -1e-77 -1e-11 -> 1
-
--- Null tests
-ddcms990 comparesig 10 # -> NaN Invalid_operation
-ddcms991 comparesig # 10 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- ddCompareSig.decTest -- decDouble comparison; all NaNs signal -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- Note that we cannot assume add/subtract tests cover paths adequately, +-- here, because the code might be quite different (comparison cannot +-- overflow or underflow, so actual subtractions are not necessary). + +-- All operands and results are decDoubles. +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +-- sanity checks +ddcms001 comparesig -2 -2 -> 0 +ddcms002 comparesig -2 -1 -> -1 +ddcms003 comparesig -2 0 -> -1 +ddcms004 comparesig -2 1 -> -1 +ddcms005 comparesig -2 2 -> -1 +ddcms006 comparesig -1 -2 -> 1 +ddcms007 comparesig -1 -1 -> 0 +ddcms008 comparesig -1 0 -> -1 +ddcms009 comparesig -1 1 -> -1 +ddcms010 comparesig -1 2 -> -1 +ddcms011 comparesig 0 -2 -> 1 +ddcms012 comparesig 0 -1 -> 1 +ddcms013 comparesig 0 0 -> 0 +ddcms014 comparesig 0 1 -> -1 +ddcms015 comparesig 0 2 -> -1 +ddcms016 comparesig 1 -2 -> 1 +ddcms017 comparesig 1 -1 -> 1 +ddcms018 comparesig 1 0 -> 1 +ddcms019 comparesig 1 1 -> 0 +ddcms020 comparesig 1 2 -> -1 +ddcms021 comparesig 2 -2 -> 1 +ddcms022 comparesig 2 -1 -> 1 +ddcms023 comparesig 2 0 -> 1 +ddcms025 comparesig 2 1 -> 1 +ddcms026 comparesig 2 2 -> 0 + +ddcms031 comparesig -20 -20 -> 0 +ddcms032 comparesig -20 -10 -> -1 +ddcms033 comparesig -20 00 -> -1 +ddcms034 comparesig -20 10 -> -1 +ddcms035 comparesig -20 20 -> -1 +ddcms036 comparesig -10 -20 -> 1 +ddcms037 comparesig -10 -10 -> 0 +ddcms038 comparesig -10 00 -> -1 +ddcms039 comparesig -10 10 -> -1 +ddcms040 comparesig -10 20 -> -1 +ddcms041 comparesig 00 -20 -> 1 +ddcms042 comparesig 00 -10 -> 1 +ddcms043 comparesig 00 00 -> 0 +ddcms044 comparesig 00 10 -> -1 +ddcms045 comparesig 00 20 -> -1 +ddcms046 comparesig 10 -20 -> 1 +ddcms047 comparesig 10 -10 -> 1 +ddcms048 comparesig 10 00 -> 1 +ddcms049 comparesig 10 10 -> 0 +ddcms050 comparesig 10 20 -> -1 +ddcms051 comparesig 20 -20 -> 1 +ddcms052 comparesig 20 -10 -> 1 +ddcms053 comparesig 20 00 -> 1 +ddcms055 comparesig 20 10 -> 1 +ddcms056 comparesig 20 20 -> 0 + +ddcms061 comparesig -2.0 -2.0 -> 0 +ddcms062 comparesig -2.0 -1.0 -> -1 +ddcms063 comparesig -2.0 0.0 -> -1 +ddcms064 comparesig -2.0 1.0 -> -1 +ddcms065 comparesig -2.0 2.0 -> -1 +ddcms066 comparesig -1.0 -2.0 -> 1 +ddcms067 comparesig -1.0 -1.0 -> 0 +ddcms068 comparesig -1.0 0.0 -> -1 +ddcms069 comparesig -1.0 1.0 -> -1 +ddcms070 comparesig -1.0 2.0 -> -1 +ddcms071 comparesig 0.0 -2.0 -> 1 +ddcms072 comparesig 0.0 -1.0 -> 1 +ddcms073 comparesig 0.0 0.0 -> 0 +ddcms074 comparesig 0.0 1.0 -> -1 +ddcms075 comparesig 0.0 2.0 -> -1 +ddcms076 comparesig 1.0 -2.0 -> 1 +ddcms077 comparesig 1.0 -1.0 -> 1 +ddcms078 comparesig 1.0 0.0 -> 1 +ddcms079 comparesig 1.0 1.0 -> 0 +ddcms080 comparesig 1.0 2.0 -> -1 +ddcms081 comparesig 2.0 -2.0 -> 1 +ddcms082 comparesig 2.0 -1.0 -> 1 +ddcms083 comparesig 2.0 0.0 -> 1 +ddcms085 comparesig 2.0 1.0 -> 1 +ddcms086 comparesig 2.0 2.0 -> 0 + +-- now some cases which might overflow if subtract were used +ddcms090 comparesig 9.999999999999999E+384 9.999999999999999E+384 -> 0 +ddcms091 comparesig -9.999999999999999E+384 9.999999999999999E+384 -> -1 +ddcms092 comparesig 9.999999999999999E+384 -9.999999999999999E+384 -> 1 +ddcms093 comparesig -9.999999999999999E+384 -9.999999999999999E+384 -> 0 + +-- some differing length/exponent cases +ddcms100 comparesig 7.0 7.0 -> 0 +ddcms101 comparesig 7.0 7 -> 0 +ddcms102 comparesig 7 7.0 -> 0 +ddcms103 comparesig 7E+0 7.0 -> 0 +ddcms104 comparesig 70E-1 7.0 -> 0 +ddcms105 comparesig 0.7E+1 7 -> 0 +ddcms106 comparesig 70E-1 7 -> 0 +ddcms107 comparesig 7.0 7E+0 -> 0 +ddcms108 comparesig 7.0 70E-1 -> 0 +ddcms109 comparesig 7 0.7E+1 -> 0 +ddcms110 comparesig 7 70E-1 -> 0 + +ddcms120 comparesig 8.0 7.0 -> 1 +ddcms121 comparesig 8.0 7 -> 1 +ddcms122 comparesig 8 7.0 -> 1 +ddcms123 comparesig 8E+0 7.0 -> 1 +ddcms124 comparesig 80E-1 7.0 -> 1 +ddcms125 comparesig 0.8E+1 7 -> 1 +ddcms126 comparesig 80E-1 7 -> 1 +ddcms127 comparesig 8.0 7E+0 -> 1 +ddcms128 comparesig 8.0 70E-1 -> 1 +ddcms129 comparesig 8 0.7E+1 -> 1 +ddcms130 comparesig 8 70E-1 -> 1 + +ddcms140 comparesig 8.0 9.0 -> -1 +ddcms141 comparesig 8.0 9 -> -1 +ddcms142 comparesig 8 9.0 -> -1 +ddcms143 comparesig 8E+0 9.0 -> -1 +ddcms144 comparesig 80E-1 9.0 -> -1 +ddcms145 comparesig 0.8E+1 9 -> -1 +ddcms146 comparesig 80E-1 9 -> -1 +ddcms147 comparesig 8.0 9E+0 -> -1 +ddcms148 comparesig 8.0 90E-1 -> -1 +ddcms149 comparesig 8 0.9E+1 -> -1 +ddcms150 comparesig 8 90E-1 -> -1 + +-- and again, with sign changes -+ .. +ddcms200 comparesig -7.0 7.0 -> -1 +ddcms201 comparesig -7.0 7 -> -1 +ddcms202 comparesig -7 7.0 -> -1 +ddcms203 comparesig -7E+0 7.0 -> -1 +ddcms204 comparesig -70E-1 7.0 -> -1 +ddcms205 comparesig -0.7E+1 7 -> -1 +ddcms206 comparesig -70E-1 7 -> -1 +ddcms207 comparesig -7.0 7E+0 -> -1 +ddcms208 comparesig -7.0 70E-1 -> -1 +ddcms209 comparesig -7 0.7E+1 -> -1 +ddcms210 comparesig -7 70E-1 -> -1 + +ddcms220 comparesig -8.0 7.0 -> -1 +ddcms221 comparesig -8.0 7 -> -1 +ddcms222 comparesig -8 7.0 -> -1 +ddcms223 comparesig -8E+0 7.0 -> -1 +ddcms224 comparesig -80E-1 7.0 -> -1 +ddcms225 comparesig -0.8E+1 7 -> -1 +ddcms226 comparesig -80E-1 7 -> -1 +ddcms227 comparesig -8.0 7E+0 -> -1 +ddcms228 comparesig -8.0 70E-1 -> -1 +ddcms229 comparesig -8 0.7E+1 -> -1 +ddcms230 comparesig -8 70E-1 -> -1 + +ddcms240 comparesig -8.0 9.0 -> -1 +ddcms241 comparesig -8.0 9 -> -1 +ddcms242 comparesig -8 9.0 -> -1 +ddcms243 comparesig -8E+0 9.0 -> -1 +ddcms244 comparesig -80E-1 9.0 -> -1 +ddcms245 comparesig -0.8E+1 9 -> -1 +ddcms246 comparesig -80E-1 9 -> -1 +ddcms247 comparesig -8.0 9E+0 -> -1 +ddcms248 comparesig -8.0 90E-1 -> -1 +ddcms249 comparesig -8 0.9E+1 -> -1 +ddcms250 comparesig -8 90E-1 -> -1 + +-- and again, with sign changes +- .. +ddcms300 comparesig 7.0 -7.0 -> 1 +ddcms301 comparesig 7.0 -7 -> 1 +ddcms302 comparesig 7 -7.0 -> 1 +ddcms303 comparesig 7E+0 -7.0 -> 1 +ddcms304 comparesig 70E-1 -7.0 -> 1 +ddcms305 comparesig .7E+1 -7 -> 1 +ddcms306 comparesig 70E-1 -7 -> 1 +ddcms307 comparesig 7.0 -7E+0 -> 1 +ddcms308 comparesig 7.0 -70E-1 -> 1 +ddcms309 comparesig 7 -.7E+1 -> 1 +ddcms310 comparesig 7 -70E-1 -> 1 + +ddcms320 comparesig 8.0 -7.0 -> 1 +ddcms321 comparesig 8.0 -7 -> 1 +ddcms322 comparesig 8 -7.0 -> 1 +ddcms323 comparesig 8E+0 -7.0 -> 1 +ddcms324 comparesig 80E-1 -7.0 -> 1 +ddcms325 comparesig .8E+1 -7 -> 1 +ddcms326 comparesig 80E-1 -7 -> 1 +ddcms327 comparesig 8.0 -7E+0 -> 1 +ddcms328 comparesig 8.0 -70E-1 -> 1 +ddcms329 comparesig 8 -.7E+1 -> 1 +ddcms330 comparesig 8 -70E-1 -> 1 + +ddcms340 comparesig 8.0 -9.0 -> 1 +ddcms341 comparesig 8.0 -9 -> 1 +ddcms342 comparesig 8 -9.0 -> 1 +ddcms343 comparesig 8E+0 -9.0 -> 1 +ddcms344 comparesig 80E-1 -9.0 -> 1 +ddcms345 comparesig .8E+1 -9 -> 1 +ddcms346 comparesig 80E-1 -9 -> 1 +ddcms347 comparesig 8.0 -9E+0 -> 1 +ddcms348 comparesig 8.0 -90E-1 -> 1 +ddcms349 comparesig 8 -.9E+1 -> 1 +ddcms350 comparesig 8 -90E-1 -> 1 + +-- and again, with sign changes -- .. +ddcms400 comparesig -7.0 -7.0 -> 0 +ddcms401 comparesig -7.0 -7 -> 0 +ddcms402 comparesig -7 -7.0 -> 0 +ddcms403 comparesig -7E+0 -7.0 -> 0 +ddcms404 comparesig -70E-1 -7.0 -> 0 +ddcms405 comparesig -.7E+1 -7 -> 0 +ddcms406 comparesig -70E-1 -7 -> 0 +ddcms407 comparesig -7.0 -7E+0 -> 0 +ddcms408 comparesig -7.0 -70E-1 -> 0 +ddcms409 comparesig -7 -.7E+1 -> 0 +ddcms410 comparesig -7 -70E-1 -> 0 + +ddcms420 comparesig -8.0 -7.0 -> -1 +ddcms421 comparesig -8.0 -7 -> -1 +ddcms422 comparesig -8 -7.0 -> -1 +ddcms423 comparesig -8E+0 -7.0 -> -1 +ddcms424 comparesig -80E-1 -7.0 -> -1 +ddcms425 comparesig -.8E+1 -7 -> -1 +ddcms426 comparesig -80E-1 -7 -> -1 +ddcms427 comparesig -8.0 -7E+0 -> -1 +ddcms428 comparesig -8.0 -70E-1 -> -1 +ddcms429 comparesig -8 -.7E+1 -> -1 +ddcms430 comparesig -8 -70E-1 -> -1 + +ddcms440 comparesig -8.0 -9.0 -> 1 +ddcms441 comparesig -8.0 -9 -> 1 +ddcms442 comparesig -8 -9.0 -> 1 +ddcms443 comparesig -8E+0 -9.0 -> 1 +ddcms444 comparesig -80E-1 -9.0 -> 1 +ddcms445 comparesig -.8E+1 -9 -> 1 +ddcms446 comparesig -80E-1 -9 -> 1 +ddcms447 comparesig -8.0 -9E+0 -> 1 +ddcms448 comparesig -8.0 -90E-1 -> 1 +ddcms449 comparesig -8 -.9E+1 -> 1 +ddcms450 comparesig -8 -90E-1 -> 1 + + +-- testcases that subtract to lots of zeros at boundaries [pgr] +ddcms473 comparesig 123.4560000000000E-89 123.456E-89 -> 0 +ddcms474 comparesig 123.456000000000E+89 123.456E+89 -> 0 +ddcms475 comparesig 123.45600000000E-89 123.456E-89 -> 0 +ddcms476 comparesig 123.4560000000E+89 123.456E+89 -> 0 +ddcms477 comparesig 123.456000000E-89 123.456E-89 -> 0 +ddcms478 comparesig 123.45600000E+89 123.456E+89 -> 0 +ddcms479 comparesig 123.4560000E-89 123.456E-89 -> 0 +ddcms480 comparesig 123.456000E+89 123.456E+89 -> 0 +ddcms481 comparesig 123.45600E-89 123.456E-89 -> 0 +ddcms482 comparesig 123.4560E+89 123.456E+89 -> 0 +ddcms483 comparesig 123.456E-89 123.456E-89 -> 0 +ddcms487 comparesig 123.456E+89 123.4560000000000E+89 -> 0 +ddcms488 comparesig 123.456E-89 123.456000000000E-89 -> 0 +ddcms489 comparesig 123.456E+89 123.45600000000E+89 -> 0 +ddcms490 comparesig 123.456E-89 123.4560000000E-89 -> 0 +ddcms491 comparesig 123.456E+89 123.456000000E+89 -> 0 +ddcms492 comparesig 123.456E-89 123.45600000E-89 -> 0 +ddcms493 comparesig 123.456E+89 123.4560000E+89 -> 0 +ddcms494 comparesig 123.456E-89 123.456000E-89 -> 0 +ddcms495 comparesig 123.456E+89 123.45600E+89 -> 0 +ddcms496 comparesig 123.456E-89 123.4560E-89 -> 0 +ddcms497 comparesig 123.456E+89 123.456E+89 -> 0 + +-- wide-ranging, around precision; signs equal +ddcms500 comparesig 1 1E-15 -> 1 +ddcms501 comparesig 1 1E-14 -> 1 +ddcms502 comparesig 1 1E-13 -> 1 +ddcms503 comparesig 1 1E-12 -> 1 +ddcms504 comparesig 1 1E-11 -> 1 +ddcms505 comparesig 1 1E-10 -> 1 +ddcms506 comparesig 1 1E-9 -> 1 +ddcms507 comparesig 1 1E-8 -> 1 +ddcms508 comparesig 1 1E-7 -> 1 +ddcms509 comparesig 1 1E-6 -> 1 +ddcms510 comparesig 1 1E-5 -> 1 +ddcms511 comparesig 1 1E-4 -> 1 +ddcms512 comparesig 1 1E-3 -> 1 +ddcms513 comparesig 1 1E-2 -> 1 +ddcms514 comparesig 1 1E-1 -> 1 +ddcms515 comparesig 1 1E-0 -> 0 +ddcms516 comparesig 1 1E+1 -> -1 +ddcms517 comparesig 1 1E+2 -> -1 +ddcms518 comparesig 1 1E+3 -> -1 +ddcms519 comparesig 1 1E+4 -> -1 +ddcms521 comparesig 1 1E+5 -> -1 +ddcms522 comparesig 1 1E+6 -> -1 +ddcms523 comparesig 1 1E+7 -> -1 +ddcms524 comparesig 1 1E+8 -> -1 +ddcms525 comparesig 1 1E+9 -> -1 +ddcms526 comparesig 1 1E+10 -> -1 +ddcms527 comparesig 1 1E+11 -> -1 +ddcms528 comparesig 1 1E+12 -> -1 +ddcms529 comparesig 1 1E+13 -> -1 +ddcms530 comparesig 1 1E+14 -> -1 +ddcms531 comparesig 1 1E+15 -> -1 +-- LR swap +ddcms540 comparesig 1E-15 1 -> -1 +ddcms541 comparesig 1E-14 1 -> -1 +ddcms542 comparesig 1E-13 1 -> -1 +ddcms543 comparesig 1E-12 1 -> -1 +ddcms544 comparesig 1E-11 1 -> -1 +ddcms545 comparesig 1E-10 1 -> -1 +ddcms546 comparesig 1E-9 1 -> -1 +ddcms547 comparesig 1E-8 1 -> -1 +ddcms548 comparesig 1E-7 1 -> -1 +ddcms549 comparesig 1E-6 1 -> -1 +ddcms550 comparesig 1E-5 1 -> -1 +ddcms551 comparesig 1E-4 1 -> -1 +ddcms552 comparesig 1E-3 1 -> -1 +ddcms553 comparesig 1E-2 1 -> -1 +ddcms554 comparesig 1E-1 1 -> -1 +ddcms555 comparesig 1E-0 1 -> 0 +ddcms556 comparesig 1E+1 1 -> 1 +ddcms557 comparesig 1E+2 1 -> 1 +ddcms558 comparesig 1E+3 1 -> 1 +ddcms559 comparesig 1E+4 1 -> 1 +ddcms561 comparesig 1E+5 1 -> 1 +ddcms562 comparesig 1E+6 1 -> 1 +ddcms563 comparesig 1E+7 1 -> 1 +ddcms564 comparesig 1E+8 1 -> 1 +ddcms565 comparesig 1E+9 1 -> 1 +ddcms566 comparesig 1E+10 1 -> 1 +ddcms567 comparesig 1E+11 1 -> 1 +ddcms568 comparesig 1E+12 1 -> 1 +ddcms569 comparesig 1E+13 1 -> 1 +ddcms570 comparesig 1E+14 1 -> 1 +ddcms571 comparesig 1E+15 1 -> 1 +-- similar with a useful coefficient, one side only +ddcms580 comparesig 0.000000987654321 1E-15 -> 1 +ddcms581 comparesig 0.000000987654321 1E-14 -> 1 +ddcms582 comparesig 0.000000987654321 1E-13 -> 1 +ddcms583 comparesig 0.000000987654321 1E-12 -> 1 +ddcms584 comparesig 0.000000987654321 1E-11 -> 1 +ddcms585 comparesig 0.000000987654321 1E-10 -> 1 +ddcms586 comparesig 0.000000987654321 1E-9 -> 1 +ddcms587 comparesig 0.000000987654321 1E-8 -> 1 +ddcms588 comparesig 0.000000987654321 1E-7 -> 1 +ddcms589 comparesig 0.000000987654321 1E-6 -> -1 +ddcms590 comparesig 0.000000987654321 1E-5 -> -1 +ddcms591 comparesig 0.000000987654321 1E-4 -> -1 +ddcms592 comparesig 0.000000987654321 1E-3 -> -1 +ddcms593 comparesig 0.000000987654321 1E-2 -> -1 +ddcms594 comparesig 0.000000987654321 1E-1 -> -1 +ddcms595 comparesig 0.000000987654321 1E-0 -> -1 +ddcms596 comparesig 0.000000987654321 1E+1 -> -1 +ddcms597 comparesig 0.000000987654321 1E+2 -> -1 +ddcms598 comparesig 0.000000987654321 1E+3 -> -1 +ddcms599 comparesig 0.000000987654321 1E+4 -> -1 + +-- check some unit-y traps +ddcms600 comparesig 12 12.2345 -> -1 +ddcms601 comparesig 12.0 12.2345 -> -1 +ddcms602 comparesig 12.00 12.2345 -> -1 +ddcms603 comparesig 12.000 12.2345 -> -1 +ddcms604 comparesig 12.0000 12.2345 -> -1 +ddcms605 comparesig 12.00000 12.2345 -> -1 +ddcms606 comparesig 12.000000 12.2345 -> -1 +ddcms607 comparesig 12.0000000 12.2345 -> -1 +ddcms608 comparesig 12.00000000 12.2345 -> -1 +ddcms609 comparesig 12.000000000 12.2345 -> -1 +ddcms610 comparesig 12.1234 12 -> 1 +ddcms611 comparesig 12.1234 12.0 -> 1 +ddcms612 comparesig 12.1234 12.00 -> 1 +ddcms613 comparesig 12.1234 12.000 -> 1 +ddcms614 comparesig 12.1234 12.0000 -> 1 +ddcms615 comparesig 12.1234 12.00000 -> 1 +ddcms616 comparesig 12.1234 12.000000 -> 1 +ddcms617 comparesig 12.1234 12.0000000 -> 1 +ddcms618 comparesig 12.1234 12.00000000 -> 1 +ddcms619 comparesig 12.1234 12.000000000 -> 1 +ddcms620 comparesig -12 -12.2345 -> 1 +ddcms621 comparesig -12.0 -12.2345 -> 1 +ddcms622 comparesig -12.00 -12.2345 -> 1 +ddcms623 comparesig -12.000 -12.2345 -> 1 +ddcms624 comparesig -12.0000 -12.2345 -> 1 +ddcms625 comparesig -12.00000 -12.2345 -> 1 +ddcms626 comparesig -12.000000 -12.2345 -> 1 +ddcms627 comparesig -12.0000000 -12.2345 -> 1 +ddcms628 comparesig -12.00000000 -12.2345 -> 1 +ddcms629 comparesig -12.000000000 -12.2345 -> 1 +ddcms630 comparesig -12.1234 -12 -> -1 +ddcms631 comparesig -12.1234 -12.0 -> -1 +ddcms632 comparesig -12.1234 -12.00 -> -1 +ddcms633 comparesig -12.1234 -12.000 -> -1 +ddcms634 comparesig -12.1234 -12.0000 -> -1 +ddcms635 comparesig -12.1234 -12.00000 -> -1 +ddcms636 comparesig -12.1234 -12.000000 -> -1 +ddcms637 comparesig -12.1234 -12.0000000 -> -1 +ddcms638 comparesig -12.1234 -12.00000000 -> -1 +ddcms639 comparesig -12.1234 -12.000000000 -> -1 + +-- extended zeros +ddcms640 comparesig 0 0 -> 0 +ddcms641 comparesig 0 -0 -> 0 +ddcms642 comparesig 0 -0.0 -> 0 +ddcms643 comparesig 0 0.0 -> 0 +ddcms644 comparesig -0 0 -> 0 +ddcms645 comparesig -0 -0 -> 0 +ddcms646 comparesig -0 -0.0 -> 0 +ddcms647 comparesig -0 0.0 -> 0 +ddcms648 comparesig 0.0 0 -> 0 +ddcms649 comparesig 0.0 -0 -> 0 +ddcms650 comparesig 0.0 -0.0 -> 0 +ddcms651 comparesig 0.0 0.0 -> 0 +ddcms652 comparesig -0.0 0 -> 0 +ddcms653 comparesig -0.0 -0 -> 0 +ddcms654 comparesig -0.0 -0.0 -> 0 +ddcms655 comparesig -0.0 0.0 -> 0 + +ddcms656 comparesig -0E1 0.0 -> 0 +ddcms657 comparesig -0E2 0.0 -> 0 +ddcms658 comparesig 0E1 0.0 -> 0 +ddcms659 comparesig 0E2 0.0 -> 0 +ddcms660 comparesig -0E1 0 -> 0 +ddcms661 comparesig -0E2 0 -> 0 +ddcms662 comparesig 0E1 0 -> 0 +ddcms663 comparesig 0E2 0 -> 0 +ddcms664 comparesig -0E1 -0E1 -> 0 +ddcms665 comparesig -0E2 -0E1 -> 0 +ddcms666 comparesig 0E1 -0E1 -> 0 +ddcms667 comparesig 0E2 -0E1 -> 0 +ddcms668 comparesig -0E1 -0E2 -> 0 +ddcms669 comparesig -0E2 -0E2 -> 0 +ddcms670 comparesig 0E1 -0E2 -> 0 +ddcms671 comparesig 0E2 -0E2 -> 0 +ddcms672 comparesig -0E1 0E1 -> 0 +ddcms673 comparesig -0E2 0E1 -> 0 +ddcms674 comparesig 0E1 0E1 -> 0 +ddcms675 comparesig 0E2 0E1 -> 0 +ddcms676 comparesig -0E1 0E2 -> 0 +ddcms677 comparesig -0E2 0E2 -> 0 +ddcms678 comparesig 0E1 0E2 -> 0 +ddcms679 comparesig 0E2 0E2 -> 0 + +-- trailing zeros; unit-y +ddcms680 comparesig 12 12 -> 0 +ddcms681 comparesig 12 12.0 -> 0 +ddcms682 comparesig 12 12.00 -> 0 +ddcms683 comparesig 12 12.000 -> 0 +ddcms684 comparesig 12 12.0000 -> 0 +ddcms685 comparesig 12 12.00000 -> 0 +ddcms686 comparesig 12 12.000000 -> 0 +ddcms687 comparesig 12 12.0000000 -> 0 +ddcms688 comparesig 12 12.00000000 -> 0 +ddcms689 comparesig 12 12.000000000 -> 0 +ddcms690 comparesig 12 12 -> 0 +ddcms691 comparesig 12.0 12 -> 0 +ddcms692 comparesig 12.00 12 -> 0 +ddcms693 comparesig 12.000 12 -> 0 +ddcms694 comparesig 12.0000 12 -> 0 +ddcms695 comparesig 12.00000 12 -> 0 +ddcms696 comparesig 12.000000 12 -> 0 +ddcms697 comparesig 12.0000000 12 -> 0 +ddcms698 comparesig 12.00000000 12 -> 0 +ddcms699 comparesig 12.000000000 12 -> 0 + +-- first, second, & last digit +ddcms700 comparesig 1234567890123456 1234567890123455 -> 1 +ddcms701 comparesig 1234567890123456 1234567890123456 -> 0 +ddcms702 comparesig 1234567890123456 1234567890123457 -> -1 +ddcms703 comparesig 1234567890123456 0234567890123456 -> 1 +ddcms704 comparesig 1234567890123456 1234567890123456 -> 0 +ddcms705 comparesig 1234567890123456 2234567890123456 -> -1 +ddcms706 comparesig 1134567890123456 1034567890123456 -> 1 +ddcms707 comparesig 1134567890123456 1134567890123456 -> 0 +ddcms708 comparesig 1134567890123456 1234567890123456 -> -1 + +-- miscellaneous +ddcms721 comparesig 12345678000 1 -> 1 +ddcms722 comparesig 1 12345678000 -> -1 +ddcms723 comparesig 1234567800 1 -> 1 +ddcms724 comparesig 1 1234567800 -> -1 +ddcms725 comparesig 1234567890 1 -> 1 +ddcms726 comparesig 1 1234567890 -> -1 +ddcms727 comparesig 1234567891 1 -> 1 +ddcms728 comparesig 1 1234567891 -> -1 +ddcms729 comparesig 12345678901 1 -> 1 +ddcms730 comparesig 1 12345678901 -> -1 +ddcms731 comparesig 1234567896 1 -> 1 +ddcms732 comparesig 1 1234567896 -> -1 + +-- residue cases at lower precision +ddcms740 comparesig 1 0.9999999 -> 1 +ddcms741 comparesig 1 0.999999 -> 1 +ddcms742 comparesig 1 0.99999 -> 1 +ddcms743 comparesig 1 1.0000 -> 0 +ddcms744 comparesig 1 1.00001 -> -1 +ddcms745 comparesig 1 1.000001 -> -1 +ddcms746 comparesig 1 1.0000001 -> -1 +ddcms750 comparesig 0.9999999 1 -> -1 +ddcms751 comparesig 0.999999 1 -> -1 +ddcms752 comparesig 0.99999 1 -> -1 +ddcms753 comparesig 1.0000 1 -> 0 +ddcms754 comparesig 1.00001 1 -> 1 +ddcms755 comparesig 1.000001 1 -> 1 +ddcms756 comparesig 1.0000001 1 -> 1 + +-- Specials +ddcms780 comparesig Inf -Inf -> 1 +ddcms781 comparesig Inf -1000 -> 1 +ddcms782 comparesig Inf -1 -> 1 +ddcms783 comparesig Inf -0 -> 1 +ddcms784 comparesig Inf 0 -> 1 +ddcms785 comparesig Inf 1 -> 1 +ddcms786 comparesig Inf 1000 -> 1 +ddcms787 comparesig Inf Inf -> 0 +ddcms788 comparesig -1000 Inf -> -1 +ddcms789 comparesig -Inf Inf -> -1 +ddcms790 comparesig -1 Inf -> -1 +ddcms791 comparesig -0 Inf -> -1 +ddcms792 comparesig 0 Inf -> -1 +ddcms793 comparesig 1 Inf -> -1 +ddcms794 comparesig 1000 Inf -> -1 +ddcms795 comparesig Inf Inf -> 0 + +ddcms800 comparesig -Inf -Inf -> 0 +ddcms801 comparesig -Inf -1000 -> -1 +ddcms802 comparesig -Inf -1 -> -1 +ddcms803 comparesig -Inf -0 -> -1 +ddcms804 comparesig -Inf 0 -> -1 +ddcms805 comparesig -Inf 1 -> -1 +ddcms806 comparesig -Inf 1000 -> -1 +ddcms807 comparesig -Inf Inf -> -1 +ddcms808 comparesig -Inf -Inf -> 0 +ddcms809 comparesig -1000 -Inf -> 1 +ddcms810 comparesig -1 -Inf -> 1 +ddcms811 comparesig -0 -Inf -> 1 +ddcms812 comparesig 0 -Inf -> 1 +ddcms813 comparesig 1 -Inf -> 1 +ddcms814 comparesig 1000 -Inf -> 1 +ddcms815 comparesig Inf -Inf -> 1 + +ddcms821 comparesig NaN -Inf -> NaN Invalid_operation +ddcms822 comparesig NaN -1000 -> NaN Invalid_operation +ddcms823 comparesig NaN -1 -> NaN Invalid_operation +ddcms824 comparesig NaN -0 -> NaN Invalid_operation +ddcms825 comparesig NaN 0 -> NaN Invalid_operation +ddcms826 comparesig NaN 1 -> NaN Invalid_operation +ddcms827 comparesig NaN 1000 -> NaN Invalid_operation +ddcms828 comparesig NaN Inf -> NaN Invalid_operation +ddcms829 comparesig NaN NaN -> NaN Invalid_operation +ddcms830 comparesig -Inf NaN -> NaN Invalid_operation +ddcms831 comparesig -1000 NaN -> NaN Invalid_operation +ddcms832 comparesig -1 NaN -> NaN Invalid_operation +ddcms833 comparesig -0 NaN -> NaN Invalid_operation +ddcms834 comparesig 0 NaN -> NaN Invalid_operation +ddcms835 comparesig 1 NaN -> NaN Invalid_operation +ddcms836 comparesig 1000 NaN -> NaN Invalid_operation +ddcms837 comparesig Inf NaN -> NaN Invalid_operation +ddcms838 comparesig -NaN -NaN -> -NaN Invalid_operation +ddcms839 comparesig +NaN -NaN -> NaN Invalid_operation +ddcms840 comparesig -NaN +NaN -> -NaN Invalid_operation + +ddcms841 comparesig sNaN -Inf -> NaN Invalid_operation +ddcms842 comparesig sNaN -1000 -> NaN Invalid_operation +ddcms843 comparesig sNaN -1 -> NaN Invalid_operation +ddcms844 comparesig sNaN -0 -> NaN Invalid_operation +ddcms845 comparesig sNaN 0 -> NaN Invalid_operation +ddcms846 comparesig sNaN 1 -> NaN Invalid_operation +ddcms847 comparesig sNaN 1000 -> NaN Invalid_operation +ddcms848 comparesig sNaN NaN -> NaN Invalid_operation +ddcms849 comparesig sNaN sNaN -> NaN Invalid_operation +ddcms850 comparesig NaN sNaN -> NaN Invalid_operation +ddcms851 comparesig -Inf sNaN -> NaN Invalid_operation +ddcms852 comparesig -1000 sNaN -> NaN Invalid_operation +ddcms853 comparesig -1 sNaN -> NaN Invalid_operation +ddcms854 comparesig -0 sNaN -> NaN Invalid_operation +ddcms855 comparesig 0 sNaN -> NaN Invalid_operation +ddcms856 comparesig 1 sNaN -> NaN Invalid_operation +ddcms857 comparesig 1000 sNaN -> NaN Invalid_operation +ddcms858 comparesig Inf sNaN -> NaN Invalid_operation +ddcms859 comparesig NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +ddcms860 comparesig NaN9 -Inf -> NaN9 Invalid_operation +ddcms861 comparesig NaN8 999 -> NaN8 Invalid_operation +ddcms862 comparesig NaN77 Inf -> NaN77 Invalid_operation +ddcms863 comparesig -NaN67 NaN5 -> -NaN67 Invalid_operation +ddcms864 comparesig -Inf -NaN4 -> -NaN4 Invalid_operation +ddcms865 comparesig -999 -NaN33 -> -NaN33 Invalid_operation +ddcms866 comparesig Inf NaN2 -> NaN2 Invalid_operation +ddcms867 comparesig -NaN41 -NaN42 -> -NaN41 Invalid_operation +ddcms868 comparesig +NaN41 -NaN42 -> NaN41 Invalid_operation +ddcms869 comparesig -NaN41 +NaN42 -> -NaN41 Invalid_operation +ddcms870 comparesig +NaN41 +NaN42 -> NaN41 Invalid_operation + +ddcms871 comparesig -sNaN99 -Inf -> -NaN99 Invalid_operation +ddcms872 comparesig sNaN98 -11 -> NaN98 Invalid_operation +ddcms873 comparesig sNaN97 NaN -> NaN97 Invalid_operation +ddcms874 comparesig sNaN16 sNaN94 -> NaN16 Invalid_operation +ddcms875 comparesig NaN85 sNaN83 -> NaN83 Invalid_operation +ddcms876 comparesig -Inf sNaN92 -> NaN92 Invalid_operation +ddcms877 comparesig 088 sNaN81 -> NaN81 Invalid_operation +ddcms878 comparesig Inf sNaN90 -> NaN90 Invalid_operation +ddcms879 comparesig NaN -sNaN89 -> -NaN89 Invalid_operation + +-- wide range +ddcms880 comparesig +1.23456789012345E-0 9E+384 -> -1 +ddcms881 comparesig 9E+384 +1.23456789012345E-0 -> 1 +ddcms882 comparesig +0.100 9E-383 -> 1 +ddcms883 comparesig 9E-383 +0.100 -> -1 +ddcms885 comparesig -1.23456789012345E-0 9E+384 -> -1 +ddcms886 comparesig 9E+384 -1.23456789012345E-0 -> 1 +ddcms887 comparesig -0.100 9E-383 -> -1 +ddcms888 comparesig 9E-383 -0.100 -> 1 + +-- signs +ddcms901 comparesig 1e+77 1e+11 -> 1 +ddcms902 comparesig 1e+77 -1e+11 -> 1 +ddcms903 comparesig -1e+77 1e+11 -> -1 +ddcms904 comparesig -1e+77 -1e+11 -> -1 +ddcms905 comparesig 1e-77 1e-11 -> -1 +ddcms906 comparesig 1e-77 -1e-11 -> 1 +ddcms907 comparesig -1e-77 1e-11 -> -1 +ddcms908 comparesig -1e-77 -1e-11 -> 1 + +-- Null tests +ddcms990 comparesig 10 # -> NaN Invalid_operation +ddcms991 comparesig # 10 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/ddCompareTotal.decTest b/Lib/test/decimaltestdata/ddCompareTotal.decTest index 76beed5681..10c984c7ff 100644 --- a/Lib/test/decimaltestdata/ddCompareTotal.decTest +++ b/Lib/test/decimaltestdata/ddCompareTotal.decTest @@ -1,706 +1,706 @@ -------------------------------------------------------------------------
--- ddCompareTotal.decTest -- decDouble comparison using total ordering--
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- Note that we cannot assume add/subtract tests cover paths adequately,
--- here, because the code might be quite different (comparison cannot
--- overflow or underflow, so actual subtractions are not necessary).
--- Similarly, comparetotal will have some radically different paths
--- than compare.
-
--- All operands and results are decDoubles.
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
--- sanity checks
-ddcot001 comparetotal -2 -2 -> 0
-ddcot002 comparetotal -2 -1 -> -1
-ddcot003 comparetotal -2 0 -> -1
-ddcot004 comparetotal -2 1 -> -1
-ddcot005 comparetotal -2 2 -> -1
-ddcot006 comparetotal -1 -2 -> 1
-ddcot007 comparetotal -1 -1 -> 0
-ddcot008 comparetotal -1 0 -> -1
-ddcot009 comparetotal -1 1 -> -1
-ddcot010 comparetotal -1 2 -> -1
-ddcot011 comparetotal 0 -2 -> 1
-ddcot012 comparetotal 0 -1 -> 1
-ddcot013 comparetotal 0 0 -> 0
-ddcot014 comparetotal 0 1 -> -1
-ddcot015 comparetotal 0 2 -> -1
-ddcot016 comparetotal 1 -2 -> 1
-ddcot017 comparetotal 1 -1 -> 1
-ddcot018 comparetotal 1 0 -> 1
-ddcot019 comparetotal 1 1 -> 0
-ddcot020 comparetotal 1 2 -> -1
-ddcot021 comparetotal 2 -2 -> 1
-ddcot022 comparetotal 2 -1 -> 1
-ddcot023 comparetotal 2 0 -> 1
-ddcot025 comparetotal 2 1 -> 1
-ddcot026 comparetotal 2 2 -> 0
-
-ddcot031 comparetotal -20 -20 -> 0
-ddcot032 comparetotal -20 -10 -> -1
-ddcot033 comparetotal -20 00 -> -1
-ddcot034 comparetotal -20 10 -> -1
-ddcot035 comparetotal -20 20 -> -1
-ddcot036 comparetotal -10 -20 -> 1
-ddcot037 comparetotal -10 -10 -> 0
-ddcot038 comparetotal -10 00 -> -1
-ddcot039 comparetotal -10 10 -> -1
-ddcot040 comparetotal -10 20 -> -1
-ddcot041 comparetotal 00 -20 -> 1
-ddcot042 comparetotal 00 -10 -> 1
-ddcot043 comparetotal 00 00 -> 0
-ddcot044 comparetotal 00 10 -> -1
-ddcot045 comparetotal 00 20 -> -1
-ddcot046 comparetotal 10 -20 -> 1
-ddcot047 comparetotal 10 -10 -> 1
-ddcot048 comparetotal 10 00 -> 1
-ddcot049 comparetotal 10 10 -> 0
-ddcot050 comparetotal 10 20 -> -1
-ddcot051 comparetotal 20 -20 -> 1
-ddcot052 comparetotal 20 -10 -> 1
-ddcot053 comparetotal 20 00 -> 1
-ddcot055 comparetotal 20 10 -> 1
-ddcot056 comparetotal 20 20 -> 0
-
-ddcot061 comparetotal -2.0 -2.0 -> 0
-ddcot062 comparetotal -2.0 -1.0 -> -1
-ddcot063 comparetotal -2.0 0.0 -> -1
-ddcot064 comparetotal -2.0 1.0 -> -1
-ddcot065 comparetotal -2.0 2.0 -> -1
-ddcot066 comparetotal -1.0 -2.0 -> 1
-ddcot067 comparetotal -1.0 -1.0 -> 0
-ddcot068 comparetotal -1.0 0.0 -> -1
-ddcot069 comparetotal -1.0 1.0 -> -1
-ddcot070 comparetotal -1.0 2.0 -> -1
-ddcot071 comparetotal 0.0 -2.0 -> 1
-ddcot072 comparetotal 0.0 -1.0 -> 1
-ddcot073 comparetotal 0.0 0.0 -> 0
-ddcot074 comparetotal 0.0 1.0 -> -1
-ddcot075 comparetotal 0.0 2.0 -> -1
-ddcot076 comparetotal 1.0 -2.0 -> 1
-ddcot077 comparetotal 1.0 -1.0 -> 1
-ddcot078 comparetotal 1.0 0.0 -> 1
-ddcot079 comparetotal 1.0 1.0 -> 0
-ddcot080 comparetotal 1.0 2.0 -> -1
-ddcot081 comparetotal 2.0 -2.0 -> 1
-ddcot082 comparetotal 2.0 -1.0 -> 1
-ddcot083 comparetotal 2.0 0.0 -> 1
-ddcot085 comparetotal 2.0 1.0 -> 1
-ddcot086 comparetotal 2.0 2.0 -> 0
-
--- now some cases which might overflow if subtract were used
-ddcot090 comparetotal 9.99999999E+384 9.99999999E+384 -> 0
-ddcot091 comparetotal -9.99999999E+384 9.99999999E+384 -> -1
-ddcot092 comparetotal 9.99999999E+384 -9.99999999E+384 -> 1
-ddcot093 comparetotal -9.99999999E+384 -9.99999999E+384 -> 0
-
--- some differing length/exponent cases
--- in this first group, compare would compare all equal
-ddcot100 comparetotal 7.0 7.0 -> 0
-ddcot101 comparetotal 7.0 7 -> -1
-ddcot102 comparetotal 7 7.0 -> 1
-ddcot103 comparetotal 7E+0 7.0 -> 1
-ddcot104 comparetotal 70E-1 7.0 -> 0
-ddcot105 comparetotal 0.7E+1 7 -> 0
-ddcot106 comparetotal 70E-1 7 -> -1
-ddcot107 comparetotal 7.0 7E+0 -> -1
-ddcot108 comparetotal 7.0 70E-1 -> 0
-ddcot109 comparetotal 7 0.7E+1 -> 0
-ddcot110 comparetotal 7 70E-1 -> 1
-
-ddcot120 comparetotal 8.0 7.0 -> 1
-ddcot121 comparetotal 8.0 7 -> 1
-ddcot122 comparetotal 8 7.0 -> 1
-ddcot123 comparetotal 8E+0 7.0 -> 1
-ddcot124 comparetotal 80E-1 7.0 -> 1
-ddcot125 comparetotal 0.8E+1 7 -> 1
-ddcot126 comparetotal 80E-1 7 -> 1
-ddcot127 comparetotal 8.0 7E+0 -> 1
-ddcot128 comparetotal 8.0 70E-1 -> 1
-ddcot129 comparetotal 8 0.7E+1 -> 1
-ddcot130 comparetotal 8 70E-1 -> 1
-
-ddcot140 comparetotal 8.0 9.0 -> -1
-ddcot141 comparetotal 8.0 9 -> -1
-ddcot142 comparetotal 8 9.0 -> -1
-ddcot143 comparetotal 8E+0 9.0 -> -1
-ddcot144 comparetotal 80E-1 9.0 -> -1
-ddcot145 comparetotal 0.8E+1 9 -> -1
-ddcot146 comparetotal 80E-1 9 -> -1
-ddcot147 comparetotal 8.0 9E+0 -> -1
-ddcot148 comparetotal 8.0 90E-1 -> -1
-ddcot149 comparetotal 8 0.9E+1 -> -1
-ddcot150 comparetotal 8 90E-1 -> -1
-
--- and again, with sign changes -+ ..
-ddcot200 comparetotal -7.0 7.0 -> -1
-ddcot201 comparetotal -7.0 7 -> -1
-ddcot202 comparetotal -7 7.0 -> -1
-ddcot203 comparetotal -7E+0 7.0 -> -1
-ddcot204 comparetotal -70E-1 7.0 -> -1
-ddcot205 comparetotal -0.7E+1 7 -> -1
-ddcot206 comparetotal -70E-1 7 -> -1
-ddcot207 comparetotal -7.0 7E+0 -> -1
-ddcot208 comparetotal -7.0 70E-1 -> -1
-ddcot209 comparetotal -7 0.7E+1 -> -1
-ddcot210 comparetotal -7 70E-1 -> -1
-
-ddcot220 comparetotal -8.0 7.0 -> -1
-ddcot221 comparetotal -8.0 7 -> -1
-ddcot222 comparetotal -8 7.0 -> -1
-ddcot223 comparetotal -8E+0 7.0 -> -1
-ddcot224 comparetotal -80E-1 7.0 -> -1
-ddcot225 comparetotal -0.8E+1 7 -> -1
-ddcot226 comparetotal -80E-1 7 -> -1
-ddcot227 comparetotal -8.0 7E+0 -> -1
-ddcot228 comparetotal -8.0 70E-1 -> -1
-ddcot229 comparetotal -8 0.7E+1 -> -1
-ddcot230 comparetotal -8 70E-1 -> -1
-
-ddcot240 comparetotal -8.0 9.0 -> -1
-ddcot241 comparetotal -8.0 9 -> -1
-ddcot242 comparetotal -8 9.0 -> -1
-ddcot243 comparetotal -8E+0 9.0 -> -1
-ddcot244 comparetotal -80E-1 9.0 -> -1
-ddcot245 comparetotal -0.8E+1 9 -> -1
-ddcot246 comparetotal -80E-1 9 -> -1
-ddcot247 comparetotal -8.0 9E+0 -> -1
-ddcot248 comparetotal -8.0 90E-1 -> -1
-ddcot249 comparetotal -8 0.9E+1 -> -1
-ddcot250 comparetotal -8 90E-1 -> -1
-
--- and again, with sign changes +- ..
-ddcot300 comparetotal 7.0 -7.0 -> 1
-ddcot301 comparetotal 7.0 -7 -> 1
-ddcot302 comparetotal 7 -7.0 -> 1
-ddcot303 comparetotal 7E+0 -7.0 -> 1
-ddcot304 comparetotal 70E-1 -7.0 -> 1
-ddcot305 comparetotal .7E+1 -7 -> 1
-ddcot306 comparetotal 70E-1 -7 -> 1
-ddcot307 comparetotal 7.0 -7E+0 -> 1
-ddcot308 comparetotal 7.0 -70E-1 -> 1
-ddcot309 comparetotal 7 -.7E+1 -> 1
-ddcot310 comparetotal 7 -70E-1 -> 1
-
-ddcot320 comparetotal 8.0 -7.0 -> 1
-ddcot321 comparetotal 8.0 -7 -> 1
-ddcot322 comparetotal 8 -7.0 -> 1
-ddcot323 comparetotal 8E+0 -7.0 -> 1
-ddcot324 comparetotal 80E-1 -7.0 -> 1
-ddcot325 comparetotal .8E+1 -7 -> 1
-ddcot326 comparetotal 80E-1 -7 -> 1
-ddcot327 comparetotal 8.0 -7E+0 -> 1
-ddcot328 comparetotal 8.0 -70E-1 -> 1
-ddcot329 comparetotal 8 -.7E+1 -> 1
-ddcot330 comparetotal 8 -70E-1 -> 1
-
-ddcot340 comparetotal 8.0 -9.0 -> 1
-ddcot341 comparetotal 8.0 -9 -> 1
-ddcot342 comparetotal 8 -9.0 -> 1
-ddcot343 comparetotal 8E+0 -9.0 -> 1
-ddcot344 comparetotal 80E-1 -9.0 -> 1
-ddcot345 comparetotal .8E+1 -9 -> 1
-ddcot346 comparetotal 80E-1 -9 -> 1
-ddcot347 comparetotal 8.0 -9E+0 -> 1
-ddcot348 comparetotal 8.0 -90E-1 -> 1
-ddcot349 comparetotal 8 -.9E+1 -> 1
-ddcot350 comparetotal 8 -90E-1 -> 1
-
--- and again, with sign changes -- ..
-ddcot400 comparetotal -7.0 -7.0 -> 0
-ddcot401 comparetotal -7.0 -7 -> 1
-ddcot402 comparetotal -7 -7.0 -> -1
-ddcot403 comparetotal -7E+0 -7.0 -> -1
-ddcot404 comparetotal -70E-1 -7.0 -> 0
-ddcot405 comparetotal -.7E+1 -7 -> 0
-ddcot406 comparetotal -70E-1 -7 -> 1
-ddcot407 comparetotal -7.0 -7E+0 -> 1
-ddcot408 comparetotal -7.0 -70E-1 -> 0
-ddcot409 comparetotal -7 -.7E+1 -> 0
-ddcot410 comparetotal -7 -70E-1 -> -1
-
-ddcot420 comparetotal -8.0 -7.0 -> -1
-ddcot421 comparetotal -8.0 -7 -> -1
-ddcot422 comparetotal -8 -7.0 -> -1
-ddcot423 comparetotal -8E+0 -7.0 -> -1
-ddcot424 comparetotal -80E-1 -7.0 -> -1
-ddcot425 comparetotal -.8E+1 -7 -> -1
-ddcot426 comparetotal -80E-1 -7 -> -1
-ddcot427 comparetotal -8.0 -7E+0 -> -1
-ddcot428 comparetotal -8.0 -70E-1 -> -1
-ddcot429 comparetotal -8 -.7E+1 -> -1
-ddcot430 comparetotal -8 -70E-1 -> -1
-
-ddcot440 comparetotal -8.0 -9.0 -> 1
-ddcot441 comparetotal -8.0 -9 -> 1
-ddcot442 comparetotal -8 -9.0 -> 1
-ddcot443 comparetotal -8E+0 -9.0 -> 1
-ddcot444 comparetotal -80E-1 -9.0 -> 1
-ddcot445 comparetotal -.8E+1 -9 -> 1
-ddcot446 comparetotal -80E-1 -9 -> 1
-ddcot447 comparetotal -8.0 -9E+0 -> 1
-ddcot448 comparetotal -8.0 -90E-1 -> 1
-ddcot449 comparetotal -8 -.9E+1 -> 1
-ddcot450 comparetotal -8 -90E-1 -> 1
-
-
--- testcases that subtract to lots of zeros at boundaries [pgr]
-ddcot473 comparetotal 123.4560000000000E-89 123.456E-89 -> -1
-ddcot474 comparetotal 123.456000000000E+89 123.456E+89 -> -1
-ddcot475 comparetotal 123.45600000000E-89 123.456E-89 -> -1
-ddcot476 comparetotal 123.4560000000E+89 123.456E+89 -> -1
-ddcot477 comparetotal 123.456000000E-89 123.456E-89 -> -1
-ddcot478 comparetotal 123.45600000E+89 123.456E+89 -> -1
-ddcot479 comparetotal 123.4560000E-89 123.456E-89 -> -1
-ddcot480 comparetotal 123.456000E+89 123.456E+89 -> -1
-ddcot481 comparetotal 123.45600E-89 123.456E-89 -> -1
-ddcot482 comparetotal 123.4560E+89 123.456E+89 -> -1
-ddcot483 comparetotal 123.456E-89 123.456E-89 -> 0
-ddcot487 comparetotal 123.456E+89 123.4560000000000E+89 -> 1
-ddcot488 comparetotal 123.456E-89 123.456000000000E-89 -> 1
-ddcot489 comparetotal 123.456E+89 123.45600000000E+89 -> 1
-ddcot490 comparetotal 123.456E-89 123.4560000000E-89 -> 1
-ddcot491 comparetotal 123.456E+89 123.456000000E+89 -> 1
-ddcot492 comparetotal 123.456E-89 123.45600000E-89 -> 1
-ddcot493 comparetotal 123.456E+89 123.4560000E+89 -> 1
-ddcot494 comparetotal 123.456E-89 123.456000E-89 -> 1
-ddcot495 comparetotal 123.456E+89 123.45600E+89 -> 1
-ddcot496 comparetotal 123.456E-89 123.4560E-89 -> 1
-ddcot497 comparetotal 123.456E+89 123.456E+89 -> 0
-
--- wide-ranging, around precision; signs equal
-ddcot498 comparetotal 1 1E-17 -> 1
-ddcot499 comparetotal 1 1E-16 -> 1
-ddcot500 comparetotal 1 1E-15 -> 1
-ddcot501 comparetotal 1 1E-14 -> 1
-ddcot502 comparetotal 1 1E-13 -> 1
-ddcot503 comparetotal 1 1E-12 -> 1
-ddcot504 comparetotal 1 1E-11 -> 1
-ddcot505 comparetotal 1 1E-10 -> 1
-ddcot506 comparetotal 1 1E-9 -> 1
-ddcot507 comparetotal 1 1E-8 -> 1
-ddcot508 comparetotal 1 1E-7 -> 1
-ddcot509 comparetotal 1 1E-6 -> 1
-ddcot510 comparetotal 1 1E-5 -> 1
-ddcot511 comparetotal 1 1E-4 -> 1
-ddcot512 comparetotal 1 1E-3 -> 1
-ddcot513 comparetotal 1 1E-2 -> 1
-ddcot514 comparetotal 1 1E-1 -> 1
-ddcot515 comparetotal 1 1E-0 -> 0
-ddcot516 comparetotal 1 1E+1 -> -1
-ddcot517 comparetotal 1 1E+2 -> -1
-ddcot518 comparetotal 1 1E+3 -> -1
-ddcot519 comparetotal 1 1E+4 -> -1
-ddcot521 comparetotal 1 1E+5 -> -1
-ddcot522 comparetotal 1 1E+6 -> -1
-ddcot523 comparetotal 1 1E+7 -> -1
-ddcot524 comparetotal 1 1E+8 -> -1
-ddcot525 comparetotal 1 1E+9 -> -1
-ddcot526 comparetotal 1 1E+10 -> -1
-ddcot527 comparetotal 1 1E+11 -> -1
-ddcot528 comparetotal 1 1E+12 -> -1
-ddcot529 comparetotal 1 1E+13 -> -1
-ddcot530 comparetotal 1 1E+14 -> -1
-ddcot531 comparetotal 1 1E+15 -> -1
-ddcot532 comparetotal 1 1E+16 -> -1
-ddcot533 comparetotal 1 1E+17 -> -1
--- LR swap
-ddcot538 comparetotal 1E-17 1 -> -1
-ddcot539 comparetotal 1E-16 1 -> -1
-ddcot540 comparetotal 1E-15 1 -> -1
-ddcot541 comparetotal 1E-14 1 -> -1
-ddcot542 comparetotal 1E-13 1 -> -1
-ddcot543 comparetotal 1E-12 1 -> -1
-ddcot544 comparetotal 1E-11 1 -> -1
-ddcot545 comparetotal 1E-10 1 -> -1
-ddcot546 comparetotal 1E-9 1 -> -1
-ddcot547 comparetotal 1E-8 1 -> -1
-ddcot548 comparetotal 1E-7 1 -> -1
-ddcot549 comparetotal 1E-6 1 -> -1
-ddcot550 comparetotal 1E-5 1 -> -1
-ddcot551 comparetotal 1E-4 1 -> -1
-ddcot552 comparetotal 1E-3 1 -> -1
-ddcot553 comparetotal 1E-2 1 -> -1
-ddcot554 comparetotal 1E-1 1 -> -1
-ddcot555 comparetotal 1E-0 1 -> 0
-ddcot556 comparetotal 1E+1 1 -> 1
-ddcot557 comparetotal 1E+2 1 -> 1
-ddcot558 comparetotal 1E+3 1 -> 1
-ddcot559 comparetotal 1E+4 1 -> 1
-ddcot561 comparetotal 1E+5 1 -> 1
-ddcot562 comparetotal 1E+6 1 -> 1
-ddcot563 comparetotal 1E+7 1 -> 1
-ddcot564 comparetotal 1E+8 1 -> 1
-ddcot565 comparetotal 1E+9 1 -> 1
-ddcot566 comparetotal 1E+10 1 -> 1
-ddcot567 comparetotal 1E+11 1 -> 1
-ddcot568 comparetotal 1E+12 1 -> 1
-ddcot569 comparetotal 1E+13 1 -> 1
-ddcot570 comparetotal 1E+14 1 -> 1
-ddcot571 comparetotal 1E+15 1 -> 1
-ddcot572 comparetotal 1E+16 1 -> 1
-ddcot573 comparetotal 1E+17 1 -> 1
--- similar with a useful coefficient, one side only
-ddcot578 comparetotal 0.000000987654321 1E-17 -> 1
-ddcot579 comparetotal 0.000000987654321 1E-16 -> 1
-ddcot580 comparetotal 0.000000987654321 1E-15 -> 1
-ddcot581 comparetotal 0.000000987654321 1E-14 -> 1
-ddcot582 comparetotal 0.000000987654321 1E-13 -> 1
-ddcot583 comparetotal 0.000000987654321 1E-12 -> 1
-ddcot584 comparetotal 0.000000987654321 1E-11 -> 1
-ddcot585 comparetotal 0.000000987654321 1E-10 -> 1
-ddcot586 comparetotal 0.000000987654321 1E-9 -> 1
-ddcot587 comparetotal 0.000000987654321 1E-8 -> 1
-ddcot588 comparetotal 0.000000987654321 1E-7 -> 1
-ddcot589 comparetotal 0.000000987654321 1E-6 -> -1
-ddcot590 comparetotal 0.000000987654321 1E-5 -> -1
-ddcot591 comparetotal 0.000000987654321 1E-4 -> -1
-ddcot592 comparetotal 0.000000987654321 1E-3 -> -1
-ddcot593 comparetotal 0.000000987654321 1E-2 -> -1
-ddcot594 comparetotal 0.000000987654321 1E-1 -> -1
-ddcot595 comparetotal 0.000000987654321 1E-0 -> -1
-ddcot596 comparetotal 0.000000987654321 1E+1 -> -1
-ddcot597 comparetotal 0.000000987654321 1E+2 -> -1
-ddcot598 comparetotal 0.000000987654321 1E+3 -> -1
-ddcot599 comparetotal 0.000000987654321 1E+4 -> -1
-
--- check some unit-y traps
-ddcot600 comparetotal 12 12.2345 -> -1
-ddcot601 comparetotal 12.0 12.2345 -> -1
-ddcot602 comparetotal 12.00 12.2345 -> -1
-ddcot603 comparetotal 12.000 12.2345 -> -1
-ddcot604 comparetotal 12.0000 12.2345 -> -1
-ddcot605 comparetotal 12.00000 12.2345 -> -1
-ddcot606 comparetotal 12.000000 12.2345 -> -1
-ddcot607 comparetotal 12.0000000 12.2345 -> -1
-ddcot608 comparetotal 12.00000000 12.2345 -> -1
-ddcot609 comparetotal 12.000000000 12.2345 -> -1
-ddcot610 comparetotal 12.1234 12 -> 1
-ddcot611 comparetotal 12.1234 12.0 -> 1
-ddcot612 comparetotal 12.1234 12.00 -> 1
-ddcot613 comparetotal 12.1234 12.000 -> 1
-ddcot614 comparetotal 12.1234 12.0000 -> 1
-ddcot615 comparetotal 12.1234 12.00000 -> 1
-ddcot616 comparetotal 12.1234 12.000000 -> 1
-ddcot617 comparetotal 12.1234 12.0000000 -> 1
-ddcot618 comparetotal 12.1234 12.00000000 -> 1
-ddcot619 comparetotal 12.1234 12.000000000 -> 1
-ddcot620 comparetotal -12 -12.2345 -> 1
-ddcot621 comparetotal -12.0 -12.2345 -> 1
-ddcot622 comparetotal -12.00 -12.2345 -> 1
-ddcot623 comparetotal -12.000 -12.2345 -> 1
-ddcot624 comparetotal -12.0000 -12.2345 -> 1
-ddcot625 comparetotal -12.00000 -12.2345 -> 1
-ddcot626 comparetotal -12.000000 -12.2345 -> 1
-ddcot627 comparetotal -12.0000000 -12.2345 -> 1
-ddcot628 comparetotal -12.00000000 -12.2345 -> 1
-ddcot629 comparetotal -12.000000000 -12.2345 -> 1
-ddcot630 comparetotal -12.1234 -12 -> -1
-ddcot631 comparetotal -12.1234 -12.0 -> -1
-ddcot632 comparetotal -12.1234 -12.00 -> -1
-ddcot633 comparetotal -12.1234 -12.000 -> -1
-ddcot634 comparetotal -12.1234 -12.0000 -> -1
-ddcot635 comparetotal -12.1234 -12.00000 -> -1
-ddcot636 comparetotal -12.1234 -12.000000 -> -1
-ddcot637 comparetotal -12.1234 -12.0000000 -> -1
-ddcot638 comparetotal -12.1234 -12.00000000 -> -1
-ddcot639 comparetotal -12.1234 -12.000000000 -> -1
-
--- extended zeros
-ddcot640 comparetotal 0 0 -> 0
-ddcot641 comparetotal 0 -0 -> 1
-ddcot642 comparetotal 0 -0.0 -> 1
-ddcot643 comparetotal 0 0.0 -> 1
-ddcot644 comparetotal -0 0 -> -1
-ddcot645 comparetotal -0 -0 -> 0
-ddcot646 comparetotal -0 -0.0 -> -1
-ddcot647 comparetotal -0 0.0 -> -1
-ddcot648 comparetotal 0.0 0 -> -1
-ddcot649 comparetotal 0.0 -0 -> 1
-ddcot650 comparetotal 0.0 -0.0 -> 1
-ddcot651 comparetotal 0.0 0.0 -> 0
-ddcot652 comparetotal -0.0 0 -> -1
-ddcot653 comparetotal -0.0 -0 -> 1
-ddcot654 comparetotal -0.0 -0.0 -> 0
-ddcot655 comparetotal -0.0 0.0 -> -1
-
-ddcot656 comparetotal -0E1 0.0 -> -1
-ddcot657 comparetotal -0E2 0.0 -> -1
-ddcot658 comparetotal 0E1 0.0 -> 1
-ddcot659 comparetotal 0E2 0.0 -> 1
-ddcot660 comparetotal -0E1 0 -> -1
-ddcot661 comparetotal -0E2 0 -> -1
-ddcot662 comparetotal 0E1 0 -> 1
-ddcot663 comparetotal 0E2 0 -> 1
-ddcot664 comparetotal -0E1 -0E1 -> 0
-ddcot665 comparetotal -0E2 -0E1 -> -1
-ddcot666 comparetotal 0E1 -0E1 -> 1
-ddcot667 comparetotal 0E2 -0E1 -> 1
-ddcot668 comparetotal -0E1 -0E2 -> 1
-ddcot669 comparetotal -0E2 -0E2 -> 0
-ddcot670 comparetotal 0E1 -0E2 -> 1
-ddcot671 comparetotal 0E2 -0E2 -> 1
-ddcot672 comparetotal -0E1 0E1 -> -1
-ddcot673 comparetotal -0E2 0E1 -> -1
-ddcot674 comparetotal 0E1 0E1 -> 0
-ddcot675 comparetotal 0E2 0E1 -> 1
-ddcot676 comparetotal -0E1 0E2 -> -1
-ddcot677 comparetotal -0E2 0E2 -> -1
-ddcot678 comparetotal 0E1 0E2 -> -1
-ddcot679 comparetotal 0E2 0E2 -> 0
-
--- trailing zeros; unit-y
-ddcot680 comparetotal 12 12 -> 0
-ddcot681 comparetotal 12 12.0 -> 1
-ddcot682 comparetotal 12 12.00 -> 1
-ddcot683 comparetotal 12 12.000 -> 1
-ddcot684 comparetotal 12 12.0000 -> 1
-ddcot685 comparetotal 12 12.00000 -> 1
-ddcot686 comparetotal 12 12.000000 -> 1
-ddcot687 comparetotal 12 12.0000000 -> 1
-ddcot688 comparetotal 12 12.00000000 -> 1
-ddcot689 comparetotal 12 12.000000000 -> 1
-ddcot690 comparetotal 12 12 -> 0
-ddcot691 comparetotal 12.0 12 -> -1
-ddcot692 comparetotal 12.00 12 -> -1
-ddcot693 comparetotal 12.000 12 -> -1
-ddcot694 comparetotal 12.0000 12 -> -1
-ddcot695 comparetotal 12.00000 12 -> -1
-ddcot696 comparetotal 12.000000 12 -> -1
-ddcot697 comparetotal 12.0000000 12 -> -1
-ddcot698 comparetotal 12.00000000 12 -> -1
-ddcot699 comparetotal 12.000000000 12 -> -1
-
--- old long operand checks
-ddcot701 comparetotal 12345678000 1 -> 1
-ddcot702 comparetotal 1 12345678000 -> -1
-ddcot703 comparetotal 1234567800 1 -> 1
-ddcot704 comparetotal 1 1234567800 -> -1
-ddcot705 comparetotal 1234567890 1 -> 1
-ddcot706 comparetotal 1 1234567890 -> -1
-ddcot707 comparetotal 1234567891 1 -> 1
-ddcot708 comparetotal 1 1234567891 -> -1
-ddcot709 comparetotal 12345678901 1 -> 1
-ddcot710 comparetotal 1 12345678901 -> -1
-ddcot711 comparetotal 1234567896 1 -> 1
-ddcot712 comparetotal 1 1234567896 -> -1
-ddcot713 comparetotal -1234567891 1 -> -1
-ddcot714 comparetotal 1 -1234567891 -> 1
-ddcot715 comparetotal -12345678901 1 -> -1
-ddcot716 comparetotal 1 -12345678901 -> 1
-ddcot717 comparetotal -1234567896 1 -> -1
-ddcot718 comparetotal 1 -1234567896 -> 1
-
--- old residue cases
-ddcot740 comparetotal 1 0.9999999 -> 1
-ddcot741 comparetotal 1 0.999999 -> 1
-ddcot742 comparetotal 1 0.99999 -> 1
-ddcot743 comparetotal 1 1.0000 -> 1
-ddcot744 comparetotal 1 1.00001 -> -1
-ddcot745 comparetotal 1 1.000001 -> -1
-ddcot746 comparetotal 1 1.0000001 -> -1
-ddcot750 comparetotal 0.9999999 1 -> -1
-ddcot751 comparetotal 0.999999 1 -> -1
-ddcot752 comparetotal 0.99999 1 -> -1
-ddcot753 comparetotal 1.0000 1 -> -1
-ddcot754 comparetotal 1.00001 1 -> 1
-ddcot755 comparetotal 1.000001 1 -> 1
-ddcot756 comparetotal 1.0000001 1 -> 1
-
--- Specials
-ddcot780 comparetotal Inf -Inf -> 1
-ddcot781 comparetotal Inf -1000 -> 1
-ddcot782 comparetotal Inf -1 -> 1
-ddcot783 comparetotal Inf -0 -> 1
-ddcot784 comparetotal Inf 0 -> 1
-ddcot785 comparetotal Inf 1 -> 1
-ddcot786 comparetotal Inf 1000 -> 1
-ddcot787 comparetotal Inf Inf -> 0
-ddcot788 comparetotal -1000 Inf -> -1
-ddcot789 comparetotal -Inf Inf -> -1
-ddcot790 comparetotal -1 Inf -> -1
-ddcot791 comparetotal -0 Inf -> -1
-ddcot792 comparetotal 0 Inf -> -1
-ddcot793 comparetotal 1 Inf -> -1
-ddcot794 comparetotal 1000 Inf -> -1
-ddcot795 comparetotal Inf Inf -> 0
-
-ddcot800 comparetotal -Inf -Inf -> 0
-ddcot801 comparetotal -Inf -1000 -> -1
-ddcot802 comparetotal -Inf -1 -> -1
-ddcot803 comparetotal -Inf -0 -> -1
-ddcot804 comparetotal -Inf 0 -> -1
-ddcot805 comparetotal -Inf 1 -> -1
-ddcot806 comparetotal -Inf 1000 -> -1
-ddcot807 comparetotal -Inf Inf -> -1
-ddcot808 comparetotal -Inf -Inf -> 0
-ddcot809 comparetotal -1000 -Inf -> 1
-ddcot810 comparetotal -1 -Inf -> 1
-ddcot811 comparetotal -0 -Inf -> 1
-ddcot812 comparetotal 0 -Inf -> 1
-ddcot813 comparetotal 1 -Inf -> 1
-ddcot814 comparetotal 1000 -Inf -> 1
-ddcot815 comparetotal Inf -Inf -> 1
-
-ddcot821 comparetotal NaN -Inf -> 1
-ddcot822 comparetotal NaN -1000 -> 1
-ddcot823 comparetotal NaN -1 -> 1
-ddcot824 comparetotal NaN -0 -> 1
-ddcot825 comparetotal NaN 0 -> 1
-ddcot826 comparetotal NaN 1 -> 1
-ddcot827 comparetotal NaN 1000 -> 1
-ddcot828 comparetotal NaN Inf -> 1
-ddcot829 comparetotal NaN NaN -> 0
-ddcot830 comparetotal -Inf NaN -> -1
-ddcot831 comparetotal -1000 NaN -> -1
-ddcot832 comparetotal -1 NaN -> -1
-ddcot833 comparetotal -0 NaN -> -1
-ddcot834 comparetotal 0 NaN -> -1
-ddcot835 comparetotal 1 NaN -> -1
-ddcot836 comparetotal 1000 NaN -> -1
-ddcot837 comparetotal Inf NaN -> -1
-ddcot838 comparetotal -NaN -NaN -> 0
-ddcot839 comparetotal +NaN -NaN -> 1
-ddcot840 comparetotal -NaN +NaN -> -1
-
-ddcot841 comparetotal sNaN -sNaN -> 1
-ddcot842 comparetotal sNaN -NaN -> 1
-ddcot843 comparetotal sNaN -Inf -> 1
-ddcot844 comparetotal sNaN -1000 -> 1
-ddcot845 comparetotal sNaN -1 -> 1
-ddcot846 comparetotal sNaN -0 -> 1
-ddcot847 comparetotal sNaN 0 -> 1
-ddcot848 comparetotal sNaN 1 -> 1
-ddcot849 comparetotal sNaN 1000 -> 1
-ddcot850 comparetotal sNaN NaN -> -1
-ddcot851 comparetotal sNaN sNaN -> 0
-
-ddcot852 comparetotal -sNaN sNaN -> -1
-ddcot853 comparetotal -NaN sNaN -> -1
-ddcot854 comparetotal -Inf sNaN -> -1
-ddcot855 comparetotal -1000 sNaN -> -1
-ddcot856 comparetotal -1 sNaN -> -1
-ddcot857 comparetotal -0 sNaN -> -1
-ddcot858 comparetotal 0 sNaN -> -1
-ddcot859 comparetotal 1 sNaN -> -1
-ddcot860 comparetotal 1000 sNaN -> -1
-ddcot861 comparetotal Inf sNaN -> -1
-ddcot862 comparetotal NaN sNaN -> 1
-ddcot863 comparetotal sNaN sNaN -> 0
-
-ddcot871 comparetotal -sNaN -sNaN -> 0
-ddcot872 comparetotal -sNaN -NaN -> 1
-ddcot873 comparetotal -sNaN -Inf -> -1
-ddcot874 comparetotal -sNaN -1000 -> -1
-ddcot875 comparetotal -sNaN -1 -> -1
-ddcot876 comparetotal -sNaN -0 -> -1
-ddcot877 comparetotal -sNaN 0 -> -1
-ddcot878 comparetotal -sNaN 1 -> -1
-ddcot879 comparetotal -sNaN 1000 -> -1
-ddcot880 comparetotal -sNaN NaN -> -1
-ddcot881 comparetotal -sNaN sNaN -> -1
-
-ddcot882 comparetotal -sNaN -sNaN -> 0
-ddcot883 comparetotal -NaN -sNaN -> -1
-ddcot884 comparetotal -Inf -sNaN -> 1
-ddcot885 comparetotal -1000 -sNaN -> 1
-ddcot886 comparetotal -1 -sNaN -> 1
-ddcot887 comparetotal -0 -sNaN -> 1
-ddcot888 comparetotal 0 -sNaN -> 1
-ddcot889 comparetotal 1 -sNaN -> 1
-ddcot890 comparetotal 1000 -sNaN -> 1
-ddcot891 comparetotal Inf -sNaN -> 1
-ddcot892 comparetotal NaN -sNaN -> 1
-ddcot893 comparetotal sNaN -sNaN -> 1
-
--- NaNs with payload
-ddcot960 comparetotal NaN9 -Inf -> 1
-ddcot961 comparetotal NaN8 999 -> 1
-ddcot962 comparetotal NaN77 Inf -> 1
-ddcot963 comparetotal -NaN67 NaN5 -> -1
-ddcot964 comparetotal -Inf -NaN4 -> 1
-ddcot965 comparetotal -999 -NaN33 -> 1
-ddcot966 comparetotal Inf NaN2 -> -1
-
-ddcot970 comparetotal -NaN41 -NaN42 -> 1
-ddcot971 comparetotal +NaN41 -NaN42 -> 1
-ddcot972 comparetotal -NaN41 +NaN42 -> -1
-ddcot973 comparetotal +NaN41 +NaN42 -> -1
-ddcot974 comparetotal -NaN42 -NaN01 -> -1
-ddcot975 comparetotal +NaN42 -NaN01 -> 1
-ddcot976 comparetotal -NaN42 +NaN01 -> -1
-ddcot977 comparetotal +NaN42 +NaN01 -> 1
-
-ddcot980 comparetotal -sNaN771 -sNaN772 -> 1
-ddcot981 comparetotal +sNaN771 -sNaN772 -> 1
-ddcot982 comparetotal -sNaN771 +sNaN772 -> -1
-ddcot983 comparetotal +sNaN771 +sNaN772 -> -1
-ddcot984 comparetotal -sNaN772 -sNaN771 -> -1
-ddcot985 comparetotal +sNaN772 -sNaN771 -> 1
-ddcot986 comparetotal -sNaN772 +sNaN771 -> -1
-ddcot987 comparetotal +sNaN772 +sNaN771 -> 1
-
-ddcot991 comparetotal -sNaN99 -Inf -> -1
-ddcot992 comparetotal sNaN98 -11 -> 1
-ddcot993 comparetotal sNaN97 NaN -> -1
-ddcot994 comparetotal sNaN16 sNaN94 -> -1
-ddcot995 comparetotal NaN85 sNaN83 -> 1
-ddcot996 comparetotal -Inf sNaN92 -> -1
-ddcot997 comparetotal 088 sNaN81 -> -1
-ddcot998 comparetotal Inf sNaN90 -> -1
-ddcot999 comparetotal NaN -sNaN89 -> 1
-
--- spread zeros
-ddcot1110 comparetotal 0E-383 0 -> -1
-ddcot1111 comparetotal 0E-383 -0 -> 1
-ddcot1112 comparetotal -0E-383 0 -> -1
-ddcot1113 comparetotal -0E-383 -0 -> 1
-ddcot1114 comparetotal 0E-383 0E+384 -> -1
-ddcot1115 comparetotal 0E-383 -0E+384 -> 1
-ddcot1116 comparetotal -0E-383 0E+384 -> -1
-ddcot1117 comparetotal -0E-383 -0E+384 -> 1
-ddcot1118 comparetotal 0 0E+384 -> -1
-ddcot1119 comparetotal 0 -0E+384 -> 1
-ddcot1120 comparetotal -0 0E+384 -> -1
-ddcot1121 comparetotal -0 -0E+384 -> 1
-
-ddcot1130 comparetotal 0E+384 0 -> 1
-ddcot1131 comparetotal 0E+384 -0 -> 1
-ddcot1132 comparetotal -0E+384 0 -> -1
-ddcot1133 comparetotal -0E+384 -0 -> -1
-ddcot1134 comparetotal 0E+384 0E-383 -> 1
-ddcot1135 comparetotal 0E+384 -0E-383 -> 1
-ddcot1136 comparetotal -0E+384 0E-383 -> -1
-ddcot1137 comparetotal -0E+384 -0E-383 -> -1
-ddcot1138 comparetotal 0 0E-383 -> 1
-ddcot1139 comparetotal 0 -0E-383 -> 1
-ddcot1140 comparetotal -0 0E-383 -> -1
-ddcot1141 comparetotal -0 -0E-383 -> -1
-
--- Null tests
-ddcot9990 comparetotal 10 # -> NaN Invalid_operation
-ddcot9991 comparetotal # 10 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- ddCompareTotal.decTest -- decDouble comparison using total ordering-- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- Note that we cannot assume add/subtract tests cover paths adequately, +-- here, because the code might be quite different (comparison cannot +-- overflow or underflow, so actual subtractions are not necessary). +-- Similarly, comparetotal will have some radically different paths +-- than compare. + +-- All operands and results are decDoubles. +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +-- sanity checks +ddcot001 comparetotal -2 -2 -> 0 +ddcot002 comparetotal -2 -1 -> -1 +ddcot003 comparetotal -2 0 -> -1 +ddcot004 comparetotal -2 1 -> -1 +ddcot005 comparetotal -2 2 -> -1 +ddcot006 comparetotal -1 -2 -> 1 +ddcot007 comparetotal -1 -1 -> 0 +ddcot008 comparetotal -1 0 -> -1 +ddcot009 comparetotal -1 1 -> -1 +ddcot010 comparetotal -1 2 -> -1 +ddcot011 comparetotal 0 -2 -> 1 +ddcot012 comparetotal 0 -1 -> 1 +ddcot013 comparetotal 0 0 -> 0 +ddcot014 comparetotal 0 1 -> -1 +ddcot015 comparetotal 0 2 -> -1 +ddcot016 comparetotal 1 -2 -> 1 +ddcot017 comparetotal 1 -1 -> 1 +ddcot018 comparetotal 1 0 -> 1 +ddcot019 comparetotal 1 1 -> 0 +ddcot020 comparetotal 1 2 -> -1 +ddcot021 comparetotal 2 -2 -> 1 +ddcot022 comparetotal 2 -1 -> 1 +ddcot023 comparetotal 2 0 -> 1 +ddcot025 comparetotal 2 1 -> 1 +ddcot026 comparetotal 2 2 -> 0 + +ddcot031 comparetotal -20 -20 -> 0 +ddcot032 comparetotal -20 -10 -> -1 +ddcot033 comparetotal -20 00 -> -1 +ddcot034 comparetotal -20 10 -> -1 +ddcot035 comparetotal -20 20 -> -1 +ddcot036 comparetotal -10 -20 -> 1 +ddcot037 comparetotal -10 -10 -> 0 +ddcot038 comparetotal -10 00 -> -1 +ddcot039 comparetotal -10 10 -> -1 +ddcot040 comparetotal -10 20 -> -1 +ddcot041 comparetotal 00 -20 -> 1 +ddcot042 comparetotal 00 -10 -> 1 +ddcot043 comparetotal 00 00 -> 0 +ddcot044 comparetotal 00 10 -> -1 +ddcot045 comparetotal 00 20 -> -1 +ddcot046 comparetotal 10 -20 -> 1 +ddcot047 comparetotal 10 -10 -> 1 +ddcot048 comparetotal 10 00 -> 1 +ddcot049 comparetotal 10 10 -> 0 +ddcot050 comparetotal 10 20 -> -1 +ddcot051 comparetotal 20 -20 -> 1 +ddcot052 comparetotal 20 -10 -> 1 +ddcot053 comparetotal 20 00 -> 1 +ddcot055 comparetotal 20 10 -> 1 +ddcot056 comparetotal 20 20 -> 0 + +ddcot061 comparetotal -2.0 -2.0 -> 0 +ddcot062 comparetotal -2.0 -1.0 -> -1 +ddcot063 comparetotal -2.0 0.0 -> -1 +ddcot064 comparetotal -2.0 1.0 -> -1 +ddcot065 comparetotal -2.0 2.0 -> -1 +ddcot066 comparetotal -1.0 -2.0 -> 1 +ddcot067 comparetotal -1.0 -1.0 -> 0 +ddcot068 comparetotal -1.0 0.0 -> -1 +ddcot069 comparetotal -1.0 1.0 -> -1 +ddcot070 comparetotal -1.0 2.0 -> -1 +ddcot071 comparetotal 0.0 -2.0 -> 1 +ddcot072 comparetotal 0.0 -1.0 -> 1 +ddcot073 comparetotal 0.0 0.0 -> 0 +ddcot074 comparetotal 0.0 1.0 -> -1 +ddcot075 comparetotal 0.0 2.0 -> -1 +ddcot076 comparetotal 1.0 -2.0 -> 1 +ddcot077 comparetotal 1.0 -1.0 -> 1 +ddcot078 comparetotal 1.0 0.0 -> 1 +ddcot079 comparetotal 1.0 1.0 -> 0 +ddcot080 comparetotal 1.0 2.0 -> -1 +ddcot081 comparetotal 2.0 -2.0 -> 1 +ddcot082 comparetotal 2.0 -1.0 -> 1 +ddcot083 comparetotal 2.0 0.0 -> 1 +ddcot085 comparetotal 2.0 1.0 -> 1 +ddcot086 comparetotal 2.0 2.0 -> 0 + +-- now some cases which might overflow if subtract were used +ddcot090 comparetotal 9.99999999E+384 9.99999999E+384 -> 0 +ddcot091 comparetotal -9.99999999E+384 9.99999999E+384 -> -1 +ddcot092 comparetotal 9.99999999E+384 -9.99999999E+384 -> 1 +ddcot093 comparetotal -9.99999999E+384 -9.99999999E+384 -> 0 + +-- some differing length/exponent cases +-- in this first group, compare would compare all equal +ddcot100 comparetotal 7.0 7.0 -> 0 +ddcot101 comparetotal 7.0 7 -> -1 +ddcot102 comparetotal 7 7.0 -> 1 +ddcot103 comparetotal 7E+0 7.0 -> 1 +ddcot104 comparetotal 70E-1 7.0 -> 0 +ddcot105 comparetotal 0.7E+1 7 -> 0 +ddcot106 comparetotal 70E-1 7 -> -1 +ddcot107 comparetotal 7.0 7E+0 -> -1 +ddcot108 comparetotal 7.0 70E-1 -> 0 +ddcot109 comparetotal 7 0.7E+1 -> 0 +ddcot110 comparetotal 7 70E-1 -> 1 + +ddcot120 comparetotal 8.0 7.0 -> 1 +ddcot121 comparetotal 8.0 7 -> 1 +ddcot122 comparetotal 8 7.0 -> 1 +ddcot123 comparetotal 8E+0 7.0 -> 1 +ddcot124 comparetotal 80E-1 7.0 -> 1 +ddcot125 comparetotal 0.8E+1 7 -> 1 +ddcot126 comparetotal 80E-1 7 -> 1 +ddcot127 comparetotal 8.0 7E+0 -> 1 +ddcot128 comparetotal 8.0 70E-1 -> 1 +ddcot129 comparetotal 8 0.7E+1 -> 1 +ddcot130 comparetotal 8 70E-1 -> 1 + +ddcot140 comparetotal 8.0 9.0 -> -1 +ddcot141 comparetotal 8.0 9 -> -1 +ddcot142 comparetotal 8 9.0 -> -1 +ddcot143 comparetotal 8E+0 9.0 -> -1 +ddcot144 comparetotal 80E-1 9.0 -> -1 +ddcot145 comparetotal 0.8E+1 9 -> -1 +ddcot146 comparetotal 80E-1 9 -> -1 +ddcot147 comparetotal 8.0 9E+0 -> -1 +ddcot148 comparetotal 8.0 90E-1 -> -1 +ddcot149 comparetotal 8 0.9E+1 -> -1 +ddcot150 comparetotal 8 90E-1 -> -1 + +-- and again, with sign changes -+ .. +ddcot200 comparetotal -7.0 7.0 -> -1 +ddcot201 comparetotal -7.0 7 -> -1 +ddcot202 comparetotal -7 7.0 -> -1 +ddcot203 comparetotal -7E+0 7.0 -> -1 +ddcot204 comparetotal -70E-1 7.0 -> -1 +ddcot205 comparetotal -0.7E+1 7 -> -1 +ddcot206 comparetotal -70E-1 7 -> -1 +ddcot207 comparetotal -7.0 7E+0 -> -1 +ddcot208 comparetotal -7.0 70E-1 -> -1 +ddcot209 comparetotal -7 0.7E+1 -> -1 +ddcot210 comparetotal -7 70E-1 -> -1 + +ddcot220 comparetotal -8.0 7.0 -> -1 +ddcot221 comparetotal -8.0 7 -> -1 +ddcot222 comparetotal -8 7.0 -> -1 +ddcot223 comparetotal -8E+0 7.0 -> -1 +ddcot224 comparetotal -80E-1 7.0 -> -1 +ddcot225 comparetotal -0.8E+1 7 -> -1 +ddcot226 comparetotal -80E-1 7 -> -1 +ddcot227 comparetotal -8.0 7E+0 -> -1 +ddcot228 comparetotal -8.0 70E-1 -> -1 +ddcot229 comparetotal -8 0.7E+1 -> -1 +ddcot230 comparetotal -8 70E-1 -> -1 + +ddcot240 comparetotal -8.0 9.0 -> -1 +ddcot241 comparetotal -8.0 9 -> -1 +ddcot242 comparetotal -8 9.0 -> -1 +ddcot243 comparetotal -8E+0 9.0 -> -1 +ddcot244 comparetotal -80E-1 9.0 -> -1 +ddcot245 comparetotal -0.8E+1 9 -> -1 +ddcot246 comparetotal -80E-1 9 -> -1 +ddcot247 comparetotal -8.0 9E+0 -> -1 +ddcot248 comparetotal -8.0 90E-1 -> -1 +ddcot249 comparetotal -8 0.9E+1 -> -1 +ddcot250 comparetotal -8 90E-1 -> -1 + +-- and again, with sign changes +- .. +ddcot300 comparetotal 7.0 -7.0 -> 1 +ddcot301 comparetotal 7.0 -7 -> 1 +ddcot302 comparetotal 7 -7.0 -> 1 +ddcot303 comparetotal 7E+0 -7.0 -> 1 +ddcot304 comparetotal 70E-1 -7.0 -> 1 +ddcot305 comparetotal .7E+1 -7 -> 1 +ddcot306 comparetotal 70E-1 -7 -> 1 +ddcot307 comparetotal 7.0 -7E+0 -> 1 +ddcot308 comparetotal 7.0 -70E-1 -> 1 +ddcot309 comparetotal 7 -.7E+1 -> 1 +ddcot310 comparetotal 7 -70E-1 -> 1 + +ddcot320 comparetotal 8.0 -7.0 -> 1 +ddcot321 comparetotal 8.0 -7 -> 1 +ddcot322 comparetotal 8 -7.0 -> 1 +ddcot323 comparetotal 8E+0 -7.0 -> 1 +ddcot324 comparetotal 80E-1 -7.0 -> 1 +ddcot325 comparetotal .8E+1 -7 -> 1 +ddcot326 comparetotal 80E-1 -7 -> 1 +ddcot327 comparetotal 8.0 -7E+0 -> 1 +ddcot328 comparetotal 8.0 -70E-1 -> 1 +ddcot329 comparetotal 8 -.7E+1 -> 1 +ddcot330 comparetotal 8 -70E-1 -> 1 + +ddcot340 comparetotal 8.0 -9.0 -> 1 +ddcot341 comparetotal 8.0 -9 -> 1 +ddcot342 comparetotal 8 -9.0 -> 1 +ddcot343 comparetotal 8E+0 -9.0 -> 1 +ddcot344 comparetotal 80E-1 -9.0 -> 1 +ddcot345 comparetotal .8E+1 -9 -> 1 +ddcot346 comparetotal 80E-1 -9 -> 1 +ddcot347 comparetotal 8.0 -9E+0 -> 1 +ddcot348 comparetotal 8.0 -90E-1 -> 1 +ddcot349 comparetotal 8 -.9E+1 -> 1 +ddcot350 comparetotal 8 -90E-1 -> 1 + +-- and again, with sign changes -- .. +ddcot400 comparetotal -7.0 -7.0 -> 0 +ddcot401 comparetotal -7.0 -7 -> 1 +ddcot402 comparetotal -7 -7.0 -> -1 +ddcot403 comparetotal -7E+0 -7.0 -> -1 +ddcot404 comparetotal -70E-1 -7.0 -> 0 +ddcot405 comparetotal -.7E+1 -7 -> 0 +ddcot406 comparetotal -70E-1 -7 -> 1 +ddcot407 comparetotal -7.0 -7E+0 -> 1 +ddcot408 comparetotal -7.0 -70E-1 -> 0 +ddcot409 comparetotal -7 -.7E+1 -> 0 +ddcot410 comparetotal -7 -70E-1 -> -1 + +ddcot420 comparetotal -8.0 -7.0 -> -1 +ddcot421 comparetotal -8.0 -7 -> -1 +ddcot422 comparetotal -8 -7.0 -> -1 +ddcot423 comparetotal -8E+0 -7.0 -> -1 +ddcot424 comparetotal -80E-1 -7.0 -> -1 +ddcot425 comparetotal -.8E+1 -7 -> -1 +ddcot426 comparetotal -80E-1 -7 -> -1 +ddcot427 comparetotal -8.0 -7E+0 -> -1 +ddcot428 comparetotal -8.0 -70E-1 -> -1 +ddcot429 comparetotal -8 -.7E+1 -> -1 +ddcot430 comparetotal -8 -70E-1 -> -1 + +ddcot440 comparetotal -8.0 -9.0 -> 1 +ddcot441 comparetotal -8.0 -9 -> 1 +ddcot442 comparetotal -8 -9.0 -> 1 +ddcot443 comparetotal -8E+0 -9.0 -> 1 +ddcot444 comparetotal -80E-1 -9.0 -> 1 +ddcot445 comparetotal -.8E+1 -9 -> 1 +ddcot446 comparetotal -80E-1 -9 -> 1 +ddcot447 comparetotal -8.0 -9E+0 -> 1 +ddcot448 comparetotal -8.0 -90E-1 -> 1 +ddcot449 comparetotal -8 -.9E+1 -> 1 +ddcot450 comparetotal -8 -90E-1 -> 1 + + +-- testcases that subtract to lots of zeros at boundaries [pgr] +ddcot473 comparetotal 123.4560000000000E-89 123.456E-89 -> -1 +ddcot474 comparetotal 123.456000000000E+89 123.456E+89 -> -1 +ddcot475 comparetotal 123.45600000000E-89 123.456E-89 -> -1 +ddcot476 comparetotal 123.4560000000E+89 123.456E+89 -> -1 +ddcot477 comparetotal 123.456000000E-89 123.456E-89 -> -1 +ddcot478 comparetotal 123.45600000E+89 123.456E+89 -> -1 +ddcot479 comparetotal 123.4560000E-89 123.456E-89 -> -1 +ddcot480 comparetotal 123.456000E+89 123.456E+89 -> -1 +ddcot481 comparetotal 123.45600E-89 123.456E-89 -> -1 +ddcot482 comparetotal 123.4560E+89 123.456E+89 -> -1 +ddcot483 comparetotal 123.456E-89 123.456E-89 -> 0 +ddcot487 comparetotal 123.456E+89 123.4560000000000E+89 -> 1 +ddcot488 comparetotal 123.456E-89 123.456000000000E-89 -> 1 +ddcot489 comparetotal 123.456E+89 123.45600000000E+89 -> 1 +ddcot490 comparetotal 123.456E-89 123.4560000000E-89 -> 1 +ddcot491 comparetotal 123.456E+89 123.456000000E+89 -> 1 +ddcot492 comparetotal 123.456E-89 123.45600000E-89 -> 1 +ddcot493 comparetotal 123.456E+89 123.4560000E+89 -> 1 +ddcot494 comparetotal 123.456E-89 123.456000E-89 -> 1 +ddcot495 comparetotal 123.456E+89 123.45600E+89 -> 1 +ddcot496 comparetotal 123.456E-89 123.4560E-89 -> 1 +ddcot497 comparetotal 123.456E+89 123.456E+89 -> 0 + +-- wide-ranging, around precision; signs equal +ddcot498 comparetotal 1 1E-17 -> 1 +ddcot499 comparetotal 1 1E-16 -> 1 +ddcot500 comparetotal 1 1E-15 -> 1 +ddcot501 comparetotal 1 1E-14 -> 1 +ddcot502 comparetotal 1 1E-13 -> 1 +ddcot503 comparetotal 1 1E-12 -> 1 +ddcot504 comparetotal 1 1E-11 -> 1 +ddcot505 comparetotal 1 1E-10 -> 1 +ddcot506 comparetotal 1 1E-9 -> 1 +ddcot507 comparetotal 1 1E-8 -> 1 +ddcot508 comparetotal 1 1E-7 -> 1 +ddcot509 comparetotal 1 1E-6 -> 1 +ddcot510 comparetotal 1 1E-5 -> 1 +ddcot511 comparetotal 1 1E-4 -> 1 +ddcot512 comparetotal 1 1E-3 -> 1 +ddcot513 comparetotal 1 1E-2 -> 1 +ddcot514 comparetotal 1 1E-1 -> 1 +ddcot515 comparetotal 1 1E-0 -> 0 +ddcot516 comparetotal 1 1E+1 -> -1 +ddcot517 comparetotal 1 1E+2 -> -1 +ddcot518 comparetotal 1 1E+3 -> -1 +ddcot519 comparetotal 1 1E+4 -> -1 +ddcot521 comparetotal 1 1E+5 -> -1 +ddcot522 comparetotal 1 1E+6 -> -1 +ddcot523 comparetotal 1 1E+7 -> -1 +ddcot524 comparetotal 1 1E+8 -> -1 +ddcot525 comparetotal 1 1E+9 -> -1 +ddcot526 comparetotal 1 1E+10 -> -1 +ddcot527 comparetotal 1 1E+11 -> -1 +ddcot528 comparetotal 1 1E+12 -> -1 +ddcot529 comparetotal 1 1E+13 -> -1 +ddcot530 comparetotal 1 1E+14 -> -1 +ddcot531 comparetotal 1 1E+15 -> -1 +ddcot532 comparetotal 1 1E+16 -> -1 +ddcot533 comparetotal 1 1E+17 -> -1 +-- LR swap +ddcot538 comparetotal 1E-17 1 -> -1 +ddcot539 comparetotal 1E-16 1 -> -1 +ddcot540 comparetotal 1E-15 1 -> -1 +ddcot541 comparetotal 1E-14 1 -> -1 +ddcot542 comparetotal 1E-13 1 -> -1 +ddcot543 comparetotal 1E-12 1 -> -1 +ddcot544 comparetotal 1E-11 1 -> -1 +ddcot545 comparetotal 1E-10 1 -> -1 +ddcot546 comparetotal 1E-9 1 -> -1 +ddcot547 comparetotal 1E-8 1 -> -1 +ddcot548 comparetotal 1E-7 1 -> -1 +ddcot549 comparetotal 1E-6 1 -> -1 +ddcot550 comparetotal 1E-5 1 -> -1 +ddcot551 comparetotal 1E-4 1 -> -1 +ddcot552 comparetotal 1E-3 1 -> -1 +ddcot553 comparetotal 1E-2 1 -> -1 +ddcot554 comparetotal 1E-1 1 -> -1 +ddcot555 comparetotal 1E-0 1 -> 0 +ddcot556 comparetotal 1E+1 1 -> 1 +ddcot557 comparetotal 1E+2 1 -> 1 +ddcot558 comparetotal 1E+3 1 -> 1 +ddcot559 comparetotal 1E+4 1 -> 1 +ddcot561 comparetotal 1E+5 1 -> 1 +ddcot562 comparetotal 1E+6 1 -> 1 +ddcot563 comparetotal 1E+7 1 -> 1 +ddcot564 comparetotal 1E+8 1 -> 1 +ddcot565 comparetotal 1E+9 1 -> 1 +ddcot566 comparetotal 1E+10 1 -> 1 +ddcot567 comparetotal 1E+11 1 -> 1 +ddcot568 comparetotal 1E+12 1 -> 1 +ddcot569 comparetotal 1E+13 1 -> 1 +ddcot570 comparetotal 1E+14 1 -> 1 +ddcot571 comparetotal 1E+15 1 -> 1 +ddcot572 comparetotal 1E+16 1 -> 1 +ddcot573 comparetotal 1E+17 1 -> 1 +-- similar with a useful coefficient, one side only +ddcot578 comparetotal 0.000000987654321 1E-17 -> 1 +ddcot579 comparetotal 0.000000987654321 1E-16 -> 1 +ddcot580 comparetotal 0.000000987654321 1E-15 -> 1 +ddcot581 comparetotal 0.000000987654321 1E-14 -> 1 +ddcot582 comparetotal 0.000000987654321 1E-13 -> 1 +ddcot583 comparetotal 0.000000987654321 1E-12 -> 1 +ddcot584 comparetotal 0.000000987654321 1E-11 -> 1 +ddcot585 comparetotal 0.000000987654321 1E-10 -> 1 +ddcot586 comparetotal 0.000000987654321 1E-9 -> 1 +ddcot587 comparetotal 0.000000987654321 1E-8 -> 1 +ddcot588 comparetotal 0.000000987654321 1E-7 -> 1 +ddcot589 comparetotal 0.000000987654321 1E-6 -> -1 +ddcot590 comparetotal 0.000000987654321 1E-5 -> -1 +ddcot591 comparetotal 0.000000987654321 1E-4 -> -1 +ddcot592 comparetotal 0.000000987654321 1E-3 -> -1 +ddcot593 comparetotal 0.000000987654321 1E-2 -> -1 +ddcot594 comparetotal 0.000000987654321 1E-1 -> -1 +ddcot595 comparetotal 0.000000987654321 1E-0 -> -1 +ddcot596 comparetotal 0.000000987654321 1E+1 -> -1 +ddcot597 comparetotal 0.000000987654321 1E+2 -> -1 +ddcot598 comparetotal 0.000000987654321 1E+3 -> -1 +ddcot599 comparetotal 0.000000987654321 1E+4 -> -1 + +-- check some unit-y traps +ddcot600 comparetotal 12 12.2345 -> -1 +ddcot601 comparetotal 12.0 12.2345 -> -1 +ddcot602 comparetotal 12.00 12.2345 -> -1 +ddcot603 comparetotal 12.000 12.2345 -> -1 +ddcot604 comparetotal 12.0000 12.2345 -> -1 +ddcot605 comparetotal 12.00000 12.2345 -> -1 +ddcot606 comparetotal 12.000000 12.2345 -> -1 +ddcot607 comparetotal 12.0000000 12.2345 -> -1 +ddcot608 comparetotal 12.00000000 12.2345 -> -1 +ddcot609 comparetotal 12.000000000 12.2345 -> -1 +ddcot610 comparetotal 12.1234 12 -> 1 +ddcot611 comparetotal 12.1234 12.0 -> 1 +ddcot612 comparetotal 12.1234 12.00 -> 1 +ddcot613 comparetotal 12.1234 12.000 -> 1 +ddcot614 comparetotal 12.1234 12.0000 -> 1 +ddcot615 comparetotal 12.1234 12.00000 -> 1 +ddcot616 comparetotal 12.1234 12.000000 -> 1 +ddcot617 comparetotal 12.1234 12.0000000 -> 1 +ddcot618 comparetotal 12.1234 12.00000000 -> 1 +ddcot619 comparetotal 12.1234 12.000000000 -> 1 +ddcot620 comparetotal -12 -12.2345 -> 1 +ddcot621 comparetotal -12.0 -12.2345 -> 1 +ddcot622 comparetotal -12.00 -12.2345 -> 1 +ddcot623 comparetotal -12.000 -12.2345 -> 1 +ddcot624 comparetotal -12.0000 -12.2345 -> 1 +ddcot625 comparetotal -12.00000 -12.2345 -> 1 +ddcot626 comparetotal -12.000000 -12.2345 -> 1 +ddcot627 comparetotal -12.0000000 -12.2345 -> 1 +ddcot628 comparetotal -12.00000000 -12.2345 -> 1 +ddcot629 comparetotal -12.000000000 -12.2345 -> 1 +ddcot630 comparetotal -12.1234 -12 -> -1 +ddcot631 comparetotal -12.1234 -12.0 -> -1 +ddcot632 comparetotal -12.1234 -12.00 -> -1 +ddcot633 comparetotal -12.1234 -12.000 -> -1 +ddcot634 comparetotal -12.1234 -12.0000 -> -1 +ddcot635 comparetotal -12.1234 -12.00000 -> -1 +ddcot636 comparetotal -12.1234 -12.000000 -> -1 +ddcot637 comparetotal -12.1234 -12.0000000 -> -1 +ddcot638 comparetotal -12.1234 -12.00000000 -> -1 +ddcot639 comparetotal -12.1234 -12.000000000 -> -1 + +-- extended zeros +ddcot640 comparetotal 0 0 -> 0 +ddcot641 comparetotal 0 -0 -> 1 +ddcot642 comparetotal 0 -0.0 -> 1 +ddcot643 comparetotal 0 0.0 -> 1 +ddcot644 comparetotal -0 0 -> -1 +ddcot645 comparetotal -0 -0 -> 0 +ddcot646 comparetotal -0 -0.0 -> -1 +ddcot647 comparetotal -0 0.0 -> -1 +ddcot648 comparetotal 0.0 0 -> -1 +ddcot649 comparetotal 0.0 -0 -> 1 +ddcot650 comparetotal 0.0 -0.0 -> 1 +ddcot651 comparetotal 0.0 0.0 -> 0 +ddcot652 comparetotal -0.0 0 -> -1 +ddcot653 comparetotal -0.0 -0 -> 1 +ddcot654 comparetotal -0.0 -0.0 -> 0 +ddcot655 comparetotal -0.0 0.0 -> -1 + +ddcot656 comparetotal -0E1 0.0 -> -1 +ddcot657 comparetotal -0E2 0.0 -> -1 +ddcot658 comparetotal 0E1 0.0 -> 1 +ddcot659 comparetotal 0E2 0.0 -> 1 +ddcot660 comparetotal -0E1 0 -> -1 +ddcot661 comparetotal -0E2 0 -> -1 +ddcot662 comparetotal 0E1 0 -> 1 +ddcot663 comparetotal 0E2 0 -> 1 +ddcot664 comparetotal -0E1 -0E1 -> 0 +ddcot665 comparetotal -0E2 -0E1 -> -1 +ddcot666 comparetotal 0E1 -0E1 -> 1 +ddcot667 comparetotal 0E2 -0E1 -> 1 +ddcot668 comparetotal -0E1 -0E2 -> 1 +ddcot669 comparetotal -0E2 -0E2 -> 0 +ddcot670 comparetotal 0E1 -0E2 -> 1 +ddcot671 comparetotal 0E2 -0E2 -> 1 +ddcot672 comparetotal -0E1 0E1 -> -1 +ddcot673 comparetotal -0E2 0E1 -> -1 +ddcot674 comparetotal 0E1 0E1 -> 0 +ddcot675 comparetotal 0E2 0E1 -> 1 +ddcot676 comparetotal -0E1 0E2 -> -1 +ddcot677 comparetotal -0E2 0E2 -> -1 +ddcot678 comparetotal 0E1 0E2 -> -1 +ddcot679 comparetotal 0E2 0E2 -> 0 + +-- trailing zeros; unit-y +ddcot680 comparetotal 12 12 -> 0 +ddcot681 comparetotal 12 12.0 -> 1 +ddcot682 comparetotal 12 12.00 -> 1 +ddcot683 comparetotal 12 12.000 -> 1 +ddcot684 comparetotal 12 12.0000 -> 1 +ddcot685 comparetotal 12 12.00000 -> 1 +ddcot686 comparetotal 12 12.000000 -> 1 +ddcot687 comparetotal 12 12.0000000 -> 1 +ddcot688 comparetotal 12 12.00000000 -> 1 +ddcot689 comparetotal 12 12.000000000 -> 1 +ddcot690 comparetotal 12 12 -> 0 +ddcot691 comparetotal 12.0 12 -> -1 +ddcot692 comparetotal 12.00 12 -> -1 +ddcot693 comparetotal 12.000 12 -> -1 +ddcot694 comparetotal 12.0000 12 -> -1 +ddcot695 comparetotal 12.00000 12 -> -1 +ddcot696 comparetotal 12.000000 12 -> -1 +ddcot697 comparetotal 12.0000000 12 -> -1 +ddcot698 comparetotal 12.00000000 12 -> -1 +ddcot699 comparetotal 12.000000000 12 -> -1 + +-- old long operand checks +ddcot701 comparetotal 12345678000 1 -> 1 +ddcot702 comparetotal 1 12345678000 -> -1 +ddcot703 comparetotal 1234567800 1 -> 1 +ddcot704 comparetotal 1 1234567800 -> -1 +ddcot705 comparetotal 1234567890 1 -> 1 +ddcot706 comparetotal 1 1234567890 -> -1 +ddcot707 comparetotal 1234567891 1 -> 1 +ddcot708 comparetotal 1 1234567891 -> -1 +ddcot709 comparetotal 12345678901 1 -> 1 +ddcot710 comparetotal 1 12345678901 -> -1 +ddcot711 comparetotal 1234567896 1 -> 1 +ddcot712 comparetotal 1 1234567896 -> -1 +ddcot713 comparetotal -1234567891 1 -> -1 +ddcot714 comparetotal 1 -1234567891 -> 1 +ddcot715 comparetotal -12345678901 1 -> -1 +ddcot716 comparetotal 1 -12345678901 -> 1 +ddcot717 comparetotal -1234567896 1 -> -1 +ddcot718 comparetotal 1 -1234567896 -> 1 + +-- old residue cases +ddcot740 comparetotal 1 0.9999999 -> 1 +ddcot741 comparetotal 1 0.999999 -> 1 +ddcot742 comparetotal 1 0.99999 -> 1 +ddcot743 comparetotal 1 1.0000 -> 1 +ddcot744 comparetotal 1 1.00001 -> -1 +ddcot745 comparetotal 1 1.000001 -> -1 +ddcot746 comparetotal 1 1.0000001 -> -1 +ddcot750 comparetotal 0.9999999 1 -> -1 +ddcot751 comparetotal 0.999999 1 -> -1 +ddcot752 comparetotal 0.99999 1 -> -1 +ddcot753 comparetotal 1.0000 1 -> -1 +ddcot754 comparetotal 1.00001 1 -> 1 +ddcot755 comparetotal 1.000001 1 -> 1 +ddcot756 comparetotal 1.0000001 1 -> 1 + +-- Specials +ddcot780 comparetotal Inf -Inf -> 1 +ddcot781 comparetotal Inf -1000 -> 1 +ddcot782 comparetotal Inf -1 -> 1 +ddcot783 comparetotal Inf -0 -> 1 +ddcot784 comparetotal Inf 0 -> 1 +ddcot785 comparetotal Inf 1 -> 1 +ddcot786 comparetotal Inf 1000 -> 1 +ddcot787 comparetotal Inf Inf -> 0 +ddcot788 comparetotal -1000 Inf -> -1 +ddcot789 comparetotal -Inf Inf -> -1 +ddcot790 comparetotal -1 Inf -> -1 +ddcot791 comparetotal -0 Inf -> -1 +ddcot792 comparetotal 0 Inf -> -1 +ddcot793 comparetotal 1 Inf -> -1 +ddcot794 comparetotal 1000 Inf -> -1 +ddcot795 comparetotal Inf Inf -> 0 + +ddcot800 comparetotal -Inf -Inf -> 0 +ddcot801 comparetotal -Inf -1000 -> -1 +ddcot802 comparetotal -Inf -1 -> -1 +ddcot803 comparetotal -Inf -0 -> -1 +ddcot804 comparetotal -Inf 0 -> -1 +ddcot805 comparetotal -Inf 1 -> -1 +ddcot806 comparetotal -Inf 1000 -> -1 +ddcot807 comparetotal -Inf Inf -> -1 +ddcot808 comparetotal -Inf -Inf -> 0 +ddcot809 comparetotal -1000 -Inf -> 1 +ddcot810 comparetotal -1 -Inf -> 1 +ddcot811 comparetotal -0 -Inf -> 1 +ddcot812 comparetotal 0 -Inf -> 1 +ddcot813 comparetotal 1 -Inf -> 1 +ddcot814 comparetotal 1000 -Inf -> 1 +ddcot815 comparetotal Inf -Inf -> 1 + +ddcot821 comparetotal NaN -Inf -> 1 +ddcot822 comparetotal NaN -1000 -> 1 +ddcot823 comparetotal NaN -1 -> 1 +ddcot824 comparetotal NaN -0 -> 1 +ddcot825 comparetotal NaN 0 -> 1 +ddcot826 comparetotal NaN 1 -> 1 +ddcot827 comparetotal NaN 1000 -> 1 +ddcot828 comparetotal NaN Inf -> 1 +ddcot829 comparetotal NaN NaN -> 0 +ddcot830 comparetotal -Inf NaN -> -1 +ddcot831 comparetotal -1000 NaN -> -1 +ddcot832 comparetotal -1 NaN -> -1 +ddcot833 comparetotal -0 NaN -> -1 +ddcot834 comparetotal 0 NaN -> -1 +ddcot835 comparetotal 1 NaN -> -1 +ddcot836 comparetotal 1000 NaN -> -1 +ddcot837 comparetotal Inf NaN -> -1 +ddcot838 comparetotal -NaN -NaN -> 0 +ddcot839 comparetotal +NaN -NaN -> 1 +ddcot840 comparetotal -NaN +NaN -> -1 + +ddcot841 comparetotal sNaN -sNaN -> 1 +ddcot842 comparetotal sNaN -NaN -> 1 +ddcot843 comparetotal sNaN -Inf -> 1 +ddcot844 comparetotal sNaN -1000 -> 1 +ddcot845 comparetotal sNaN -1 -> 1 +ddcot846 comparetotal sNaN -0 -> 1 +ddcot847 comparetotal sNaN 0 -> 1 +ddcot848 comparetotal sNaN 1 -> 1 +ddcot849 comparetotal sNaN 1000 -> 1 +ddcot850 comparetotal sNaN NaN -> -1 +ddcot851 comparetotal sNaN sNaN -> 0 + +ddcot852 comparetotal -sNaN sNaN -> -1 +ddcot853 comparetotal -NaN sNaN -> -1 +ddcot854 comparetotal -Inf sNaN -> -1 +ddcot855 comparetotal -1000 sNaN -> -1 +ddcot856 comparetotal -1 sNaN -> -1 +ddcot857 comparetotal -0 sNaN -> -1 +ddcot858 comparetotal 0 sNaN -> -1 +ddcot859 comparetotal 1 sNaN -> -1 +ddcot860 comparetotal 1000 sNaN -> -1 +ddcot861 comparetotal Inf sNaN -> -1 +ddcot862 comparetotal NaN sNaN -> 1 +ddcot863 comparetotal sNaN sNaN -> 0 + +ddcot871 comparetotal -sNaN -sNaN -> 0 +ddcot872 comparetotal -sNaN -NaN -> 1 +ddcot873 comparetotal -sNaN -Inf -> -1 +ddcot874 comparetotal -sNaN -1000 -> -1 +ddcot875 comparetotal -sNaN -1 -> -1 +ddcot876 comparetotal -sNaN -0 -> -1 +ddcot877 comparetotal -sNaN 0 -> -1 +ddcot878 comparetotal -sNaN 1 -> -1 +ddcot879 comparetotal -sNaN 1000 -> -1 +ddcot880 comparetotal -sNaN NaN -> -1 +ddcot881 comparetotal -sNaN sNaN -> -1 + +ddcot882 comparetotal -sNaN -sNaN -> 0 +ddcot883 comparetotal -NaN -sNaN -> -1 +ddcot884 comparetotal -Inf -sNaN -> 1 +ddcot885 comparetotal -1000 -sNaN -> 1 +ddcot886 comparetotal -1 -sNaN -> 1 +ddcot887 comparetotal -0 -sNaN -> 1 +ddcot888 comparetotal 0 -sNaN -> 1 +ddcot889 comparetotal 1 -sNaN -> 1 +ddcot890 comparetotal 1000 -sNaN -> 1 +ddcot891 comparetotal Inf -sNaN -> 1 +ddcot892 comparetotal NaN -sNaN -> 1 +ddcot893 comparetotal sNaN -sNaN -> 1 + +-- NaNs with payload +ddcot960 comparetotal NaN9 -Inf -> 1 +ddcot961 comparetotal NaN8 999 -> 1 +ddcot962 comparetotal NaN77 Inf -> 1 +ddcot963 comparetotal -NaN67 NaN5 -> -1 +ddcot964 comparetotal -Inf -NaN4 -> 1 +ddcot965 comparetotal -999 -NaN33 -> 1 +ddcot966 comparetotal Inf NaN2 -> -1 + +ddcot970 comparetotal -NaN41 -NaN42 -> 1 +ddcot971 comparetotal +NaN41 -NaN42 -> 1 +ddcot972 comparetotal -NaN41 +NaN42 -> -1 +ddcot973 comparetotal +NaN41 +NaN42 -> -1 +ddcot974 comparetotal -NaN42 -NaN01 -> -1 +ddcot975 comparetotal +NaN42 -NaN01 -> 1 +ddcot976 comparetotal -NaN42 +NaN01 -> -1 +ddcot977 comparetotal +NaN42 +NaN01 -> 1 + +ddcot980 comparetotal -sNaN771 -sNaN772 -> 1 +ddcot981 comparetotal +sNaN771 -sNaN772 -> 1 +ddcot982 comparetotal -sNaN771 +sNaN772 -> -1 +ddcot983 comparetotal +sNaN771 +sNaN772 -> -1 +ddcot984 comparetotal -sNaN772 -sNaN771 -> -1 +ddcot985 comparetotal +sNaN772 -sNaN771 -> 1 +ddcot986 comparetotal -sNaN772 +sNaN771 -> -1 +ddcot987 comparetotal +sNaN772 +sNaN771 -> 1 + +ddcot991 comparetotal -sNaN99 -Inf -> -1 +ddcot992 comparetotal sNaN98 -11 -> 1 +ddcot993 comparetotal sNaN97 NaN -> -1 +ddcot994 comparetotal sNaN16 sNaN94 -> -1 +ddcot995 comparetotal NaN85 sNaN83 -> 1 +ddcot996 comparetotal -Inf sNaN92 -> -1 +ddcot997 comparetotal 088 sNaN81 -> -1 +ddcot998 comparetotal Inf sNaN90 -> -1 +ddcot999 comparetotal NaN -sNaN89 -> 1 + +-- spread zeros +ddcot1110 comparetotal 0E-383 0 -> -1 +ddcot1111 comparetotal 0E-383 -0 -> 1 +ddcot1112 comparetotal -0E-383 0 -> -1 +ddcot1113 comparetotal -0E-383 -0 -> 1 +ddcot1114 comparetotal 0E-383 0E+384 -> -1 +ddcot1115 comparetotal 0E-383 -0E+384 -> 1 +ddcot1116 comparetotal -0E-383 0E+384 -> -1 +ddcot1117 comparetotal -0E-383 -0E+384 -> 1 +ddcot1118 comparetotal 0 0E+384 -> -1 +ddcot1119 comparetotal 0 -0E+384 -> 1 +ddcot1120 comparetotal -0 0E+384 -> -1 +ddcot1121 comparetotal -0 -0E+384 -> 1 + +ddcot1130 comparetotal 0E+384 0 -> 1 +ddcot1131 comparetotal 0E+384 -0 -> 1 +ddcot1132 comparetotal -0E+384 0 -> -1 +ddcot1133 comparetotal -0E+384 -0 -> -1 +ddcot1134 comparetotal 0E+384 0E-383 -> 1 +ddcot1135 comparetotal 0E+384 -0E-383 -> 1 +ddcot1136 comparetotal -0E+384 0E-383 -> -1 +ddcot1137 comparetotal -0E+384 -0E-383 -> -1 +ddcot1138 comparetotal 0 0E-383 -> 1 +ddcot1139 comparetotal 0 -0E-383 -> 1 +ddcot1140 comparetotal -0 0E-383 -> -1 +ddcot1141 comparetotal -0 -0E-383 -> -1 + +-- Null tests +ddcot9990 comparetotal 10 # -> NaN Invalid_operation +ddcot9991 comparetotal # 10 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/ddCompareTotalMag.decTest b/Lib/test/decimaltestdata/ddCompareTotalMag.decTest index f16537a35d..087a092f0b 100644 --- a/Lib/test/decimaltestdata/ddCompareTotalMag.decTest +++ b/Lib/test/decimaltestdata/ddCompareTotalMag.decTest @@ -1,706 +1,706 @@ -------------------------------------------------------------------------
--- ddCompareTotalMag.decTest -- decDouble comparison; abs. total order--
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- Note that we cannot assume add/subtract tests cover paths adequately,
--- here, because the code might be quite different (comparison cannot
--- overflow or underflow, so actual subtractions are not necessary).
--- Similarly, comparetotal will have some radically different paths
--- than compare.
-
--- All operands and results are decDoubles.
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
--- sanity checks
-ddctm001 comparetotmag -2 -2 -> 0
-ddctm002 comparetotmag -2 -1 -> 1
-ddctm003 comparetotmag -2 0 -> 1
-ddctm004 comparetotmag -2 1 -> 1
-ddctm005 comparetotmag -2 2 -> 0
-ddctm006 comparetotmag -1 -2 -> -1
-ddctm007 comparetotmag -1 -1 -> 0
-ddctm008 comparetotmag -1 0 -> 1
-ddctm009 comparetotmag -1 1 -> 0
-ddctm010 comparetotmag -1 2 -> -1
-ddctm011 comparetotmag 0 -2 -> -1
-ddctm012 comparetotmag 0 -1 -> -1
-ddctm013 comparetotmag 0 0 -> 0
-ddctm014 comparetotmag 0 1 -> -1
-ddctm015 comparetotmag 0 2 -> -1
-ddctm016 comparetotmag 1 -2 -> -1
-ddctm017 comparetotmag 1 -1 -> 0
-ddctm018 comparetotmag 1 0 -> 1
-ddctm019 comparetotmag 1 1 -> 0
-ddctm020 comparetotmag 1 2 -> -1
-ddctm021 comparetotmag 2 -2 -> 0
-ddctm022 comparetotmag 2 -1 -> 1
-ddctm023 comparetotmag 2 0 -> 1
-ddctm025 comparetotmag 2 1 -> 1
-ddctm026 comparetotmag 2 2 -> 0
-
-ddctm031 comparetotmag -20 -20 -> 0
-ddctm032 comparetotmag -20 -10 -> 1
-ddctm033 comparetotmag -20 00 -> 1
-ddctm034 comparetotmag -20 10 -> 1
-ddctm035 comparetotmag -20 20 -> 0
-ddctm036 comparetotmag -10 -20 -> -1
-ddctm037 comparetotmag -10 -10 -> 0
-ddctm038 comparetotmag -10 00 -> 1
-ddctm039 comparetotmag -10 10 -> 0
-ddctm040 comparetotmag -10 20 -> -1
-ddctm041 comparetotmag 00 -20 -> -1
-ddctm042 comparetotmag 00 -10 -> -1
-ddctm043 comparetotmag 00 00 -> 0
-ddctm044 comparetotmag 00 10 -> -1
-ddctm045 comparetotmag 00 20 -> -1
-ddctm046 comparetotmag 10 -20 -> -1
-ddctm047 comparetotmag 10 -10 -> 0
-ddctm048 comparetotmag 10 00 -> 1
-ddctm049 comparetotmag 10 10 -> 0
-ddctm050 comparetotmag 10 20 -> -1
-ddctm051 comparetotmag 20 -20 -> 0
-ddctm052 comparetotmag 20 -10 -> 1
-ddctm053 comparetotmag 20 00 -> 1
-ddctm055 comparetotmag 20 10 -> 1
-ddctm056 comparetotmag 20 20 -> 0
-
-ddctm061 comparetotmag -2.0 -2.0 -> 0
-ddctm062 comparetotmag -2.0 -1.0 -> 1
-ddctm063 comparetotmag -2.0 0.0 -> 1
-ddctm064 comparetotmag -2.0 1.0 -> 1
-ddctm065 comparetotmag -2.0 2.0 -> 0
-ddctm066 comparetotmag -1.0 -2.0 -> -1
-ddctm067 comparetotmag -1.0 -1.0 -> 0
-ddctm068 comparetotmag -1.0 0.0 -> 1
-ddctm069 comparetotmag -1.0 1.0 -> 0
-ddctm070 comparetotmag -1.0 2.0 -> -1
-ddctm071 comparetotmag 0.0 -2.0 -> -1
-ddctm072 comparetotmag 0.0 -1.0 -> -1
-ddctm073 comparetotmag 0.0 0.0 -> 0
-ddctm074 comparetotmag 0.0 1.0 -> -1
-ddctm075 comparetotmag 0.0 2.0 -> -1
-ddctm076 comparetotmag 1.0 -2.0 -> -1
-ddctm077 comparetotmag 1.0 -1.0 -> 0
-ddctm078 comparetotmag 1.0 0.0 -> 1
-ddctm079 comparetotmag 1.0 1.0 -> 0
-ddctm080 comparetotmag 1.0 2.0 -> -1
-ddctm081 comparetotmag 2.0 -2.0 -> 0
-ddctm082 comparetotmag 2.0 -1.0 -> 1
-ddctm083 comparetotmag 2.0 0.0 -> 1
-ddctm085 comparetotmag 2.0 1.0 -> 1
-ddctm086 comparetotmag 2.0 2.0 -> 0
-
--- now some cases which might overflow if subtract were used
-ddctm090 comparetotmag 9.99999999E+384 9.99999999E+384 -> 0
-ddctm091 comparetotmag -9.99999999E+384 9.99999999E+384 -> 0
-ddctm092 comparetotmag 9.99999999E+384 -9.99999999E+384 -> 0
-ddctm093 comparetotmag -9.99999999E+384 -9.99999999E+384 -> 0
-
--- some differing length/exponent cases
--- in this first group, compare would compare all equal
-ddctm100 comparetotmag 7.0 7.0 -> 0
-ddctm101 comparetotmag 7.0 7 -> -1
-ddctm102 comparetotmag 7 7.0 -> 1
-ddctm103 comparetotmag 7E+0 7.0 -> 1
-ddctm104 comparetotmag 70E-1 7.0 -> 0
-ddctm105 comparetotmag 0.7E+1 7 -> 0
-ddctm106 comparetotmag 70E-1 7 -> -1
-ddctm107 comparetotmag 7.0 7E+0 -> -1
-ddctm108 comparetotmag 7.0 70E-1 -> 0
-ddctm109 comparetotmag 7 0.7E+1 -> 0
-ddctm110 comparetotmag 7 70E-1 -> 1
-
-ddctm120 comparetotmag 8.0 7.0 -> 1
-ddctm121 comparetotmag 8.0 7 -> 1
-ddctm122 comparetotmag 8 7.0 -> 1
-ddctm123 comparetotmag 8E+0 7.0 -> 1
-ddctm124 comparetotmag 80E-1 7.0 -> 1
-ddctm125 comparetotmag 0.8E+1 7 -> 1
-ddctm126 comparetotmag 80E-1 7 -> 1
-ddctm127 comparetotmag 8.0 7E+0 -> 1
-ddctm128 comparetotmag 8.0 70E-1 -> 1
-ddctm129 comparetotmag 8 0.7E+1 -> 1
-ddctm130 comparetotmag 8 70E-1 -> 1
-
-ddctm140 comparetotmag 8.0 9.0 -> -1
-ddctm141 comparetotmag 8.0 9 -> -1
-ddctm142 comparetotmag 8 9.0 -> -1
-ddctm143 comparetotmag 8E+0 9.0 -> -1
-ddctm144 comparetotmag 80E-1 9.0 -> -1
-ddctm145 comparetotmag 0.8E+1 9 -> -1
-ddctm146 comparetotmag 80E-1 9 -> -1
-ddctm147 comparetotmag 8.0 9E+0 -> -1
-ddctm148 comparetotmag 8.0 90E-1 -> -1
-ddctm149 comparetotmag 8 0.9E+1 -> -1
-ddctm150 comparetotmag 8 90E-1 -> -1
-
--- and again, with sign changes -+ ..
-ddctm200 comparetotmag -7.0 7.0 -> 0
-ddctm201 comparetotmag -7.0 7 -> -1
-ddctm202 comparetotmag -7 7.0 -> 1
-ddctm203 comparetotmag -7E+0 7.0 -> 1
-ddctm204 comparetotmag -70E-1 7.0 -> 0
-ddctm205 comparetotmag -0.7E+1 7 -> 0
-ddctm206 comparetotmag -70E-1 7 -> -1
-ddctm207 comparetotmag -7.0 7E+0 -> -1
-ddctm208 comparetotmag -7.0 70E-1 -> 0
-ddctm209 comparetotmag -7 0.7E+1 -> 0
-ddctm210 comparetotmag -7 70E-1 -> 1
-
-ddctm220 comparetotmag -8.0 7.0 -> 1
-ddctm221 comparetotmag -8.0 7 -> 1
-ddctm222 comparetotmag -8 7.0 -> 1
-ddctm223 comparetotmag -8E+0 7.0 -> 1
-ddctm224 comparetotmag -80E-1 7.0 -> 1
-ddctm225 comparetotmag -0.8E+1 7 -> 1
-ddctm226 comparetotmag -80E-1 7 -> 1
-ddctm227 comparetotmag -8.0 7E+0 -> 1
-ddctm228 comparetotmag -8.0 70E-1 -> 1
-ddctm229 comparetotmag -8 0.7E+1 -> 1
-ddctm230 comparetotmag -8 70E-1 -> 1
-
-ddctm240 comparetotmag -8.0 9.0 -> -1
-ddctm241 comparetotmag -8.0 9 -> -1
-ddctm242 comparetotmag -8 9.0 -> -1
-ddctm243 comparetotmag -8E+0 9.0 -> -1
-ddctm244 comparetotmag -80E-1 9.0 -> -1
-ddctm245 comparetotmag -0.8E+1 9 -> -1
-ddctm246 comparetotmag -80E-1 9 -> -1
-ddctm247 comparetotmag -8.0 9E+0 -> -1
-ddctm248 comparetotmag -8.0 90E-1 -> -1
-ddctm249 comparetotmag -8 0.9E+1 -> -1
-ddctm250 comparetotmag -8 90E-1 -> -1
-
--- and again, with sign changes +- ..
-ddctm300 comparetotmag 7.0 -7.0 -> 0
-ddctm301 comparetotmag 7.0 -7 -> -1
-ddctm302 comparetotmag 7 -7.0 -> 1
-ddctm303 comparetotmag 7E+0 -7.0 -> 1
-ddctm304 comparetotmag 70E-1 -7.0 -> 0
-ddctm305 comparetotmag .7E+1 -7 -> 0
-ddctm306 comparetotmag 70E-1 -7 -> -1
-ddctm307 comparetotmag 7.0 -7E+0 -> -1
-ddctm308 comparetotmag 7.0 -70E-1 -> 0
-ddctm309 comparetotmag 7 -.7E+1 -> 0
-ddctm310 comparetotmag 7 -70E-1 -> 1
-
-ddctm320 comparetotmag 8.0 -7.0 -> 1
-ddctm321 comparetotmag 8.0 -7 -> 1
-ddctm322 comparetotmag 8 -7.0 -> 1
-ddctm323 comparetotmag 8E+0 -7.0 -> 1
-ddctm324 comparetotmag 80E-1 -7.0 -> 1
-ddctm325 comparetotmag .8E+1 -7 -> 1
-ddctm326 comparetotmag 80E-1 -7 -> 1
-ddctm327 comparetotmag 8.0 -7E+0 -> 1
-ddctm328 comparetotmag 8.0 -70E-1 -> 1
-ddctm329 comparetotmag 8 -.7E+1 -> 1
-ddctm330 comparetotmag 8 -70E-1 -> 1
-
-ddctm340 comparetotmag 8.0 -9.0 -> -1
-ddctm341 comparetotmag 8.0 -9 -> -1
-ddctm342 comparetotmag 8 -9.0 -> -1
-ddctm343 comparetotmag 8E+0 -9.0 -> -1
-ddctm344 comparetotmag 80E-1 -9.0 -> -1
-ddctm345 comparetotmag .8E+1 -9 -> -1
-ddctm346 comparetotmag 80E-1 -9 -> -1
-ddctm347 comparetotmag 8.0 -9E+0 -> -1
-ddctm348 comparetotmag 8.0 -90E-1 -> -1
-ddctm349 comparetotmag 8 -.9E+1 -> -1
-ddctm350 comparetotmag 8 -90E-1 -> -1
-
--- and again, with sign changes -- ..
-ddctm400 comparetotmag -7.0 -7.0 -> 0
-ddctm401 comparetotmag -7.0 -7 -> -1
-ddctm402 comparetotmag -7 -7.0 -> 1
-ddctm403 comparetotmag -7E+0 -7.0 -> 1
-ddctm404 comparetotmag -70E-1 -7.0 -> 0
-ddctm405 comparetotmag -.7E+1 -7 -> 0
-ddctm406 comparetotmag -70E-1 -7 -> -1
-ddctm407 comparetotmag -7.0 -7E+0 -> -1
-ddctm408 comparetotmag -7.0 -70E-1 -> 0
-ddctm409 comparetotmag -7 -.7E+1 -> 0
-ddctm410 comparetotmag -7 -70E-1 -> 1
-
-ddctm420 comparetotmag -8.0 -7.0 -> 1
-ddctm421 comparetotmag -8.0 -7 -> 1
-ddctm422 comparetotmag -8 -7.0 -> 1
-ddctm423 comparetotmag -8E+0 -7.0 -> 1
-ddctm424 comparetotmag -80E-1 -7.0 -> 1
-ddctm425 comparetotmag -.8E+1 -7 -> 1
-ddctm426 comparetotmag -80E-1 -7 -> 1
-ddctm427 comparetotmag -8.0 -7E+0 -> 1
-ddctm428 comparetotmag -8.0 -70E-1 -> 1
-ddctm429 comparetotmag -8 -.7E+1 -> 1
-ddctm430 comparetotmag -8 -70E-1 -> 1
-
-ddctm440 comparetotmag -8.0 -9.0 -> -1
-ddctm441 comparetotmag -8.0 -9 -> -1
-ddctm442 comparetotmag -8 -9.0 -> -1
-ddctm443 comparetotmag -8E+0 -9.0 -> -1
-ddctm444 comparetotmag -80E-1 -9.0 -> -1
-ddctm445 comparetotmag -.8E+1 -9 -> -1
-ddctm446 comparetotmag -80E-1 -9 -> -1
-ddctm447 comparetotmag -8.0 -9E+0 -> -1
-ddctm448 comparetotmag -8.0 -90E-1 -> -1
-ddctm449 comparetotmag -8 -.9E+1 -> -1
-ddctm450 comparetotmag -8 -90E-1 -> -1
-
-
--- testcases that subtract to lots of zeros at boundaries [pgr]
-ddctm473 comparetotmag 123.4560000000000E-89 123.456E-89 -> -1
-ddctm474 comparetotmag 123.456000000000E+89 123.456E+89 -> -1
-ddctm475 comparetotmag 123.45600000000E-89 123.456E-89 -> -1
-ddctm476 comparetotmag 123.4560000000E+89 123.456E+89 -> -1
-ddctm477 comparetotmag 123.456000000E-89 123.456E-89 -> -1
-ddctm478 comparetotmag 123.45600000E+89 123.456E+89 -> -1
-ddctm479 comparetotmag 123.4560000E-89 123.456E-89 -> -1
-ddctm480 comparetotmag 123.456000E+89 123.456E+89 -> -1
-ddctm481 comparetotmag 123.45600E-89 123.456E-89 -> -1
-ddctm482 comparetotmag 123.4560E+89 123.456E+89 -> -1
-ddctm483 comparetotmag 123.456E-89 123.456E-89 -> 0
-ddctm487 comparetotmag 123.456E+89 123.4560000000000E+89 -> 1
-ddctm488 comparetotmag 123.456E-89 123.456000000000E-89 -> 1
-ddctm489 comparetotmag 123.456E+89 123.45600000000E+89 -> 1
-ddctm490 comparetotmag 123.456E-89 123.4560000000E-89 -> 1
-ddctm491 comparetotmag 123.456E+89 123.456000000E+89 -> 1
-ddctm492 comparetotmag 123.456E-89 123.45600000E-89 -> 1
-ddctm493 comparetotmag 123.456E+89 123.4560000E+89 -> 1
-ddctm494 comparetotmag 123.456E-89 123.456000E-89 -> 1
-ddctm495 comparetotmag 123.456E+89 123.45600E+89 -> 1
-ddctm496 comparetotmag 123.456E-89 123.4560E-89 -> 1
-ddctm497 comparetotmag 123.456E+89 123.456E+89 -> 0
-
--- wide-ranging, around precision; signs equal
-ddctm498 comparetotmag 1 1E-17 -> 1
-ddctm499 comparetotmag 1 1E-16 -> 1
-ddctm500 comparetotmag 1 1E-15 -> 1
-ddctm501 comparetotmag 1 1E-14 -> 1
-ddctm502 comparetotmag 1 1E-13 -> 1
-ddctm503 comparetotmag 1 1E-12 -> 1
-ddctm504 comparetotmag 1 1E-11 -> 1
-ddctm505 comparetotmag 1 1E-10 -> 1
-ddctm506 comparetotmag 1 1E-9 -> 1
-ddctm507 comparetotmag 1 1E-8 -> 1
-ddctm508 comparetotmag 1 1E-7 -> 1
-ddctm509 comparetotmag 1 1E-6 -> 1
-ddctm510 comparetotmag 1 1E-5 -> 1
-ddctm511 comparetotmag 1 1E-4 -> 1
-ddctm512 comparetotmag 1 1E-3 -> 1
-ddctm513 comparetotmag 1 1E-2 -> 1
-ddctm514 comparetotmag 1 1E-1 -> 1
-ddctm515 comparetotmag 1 1E-0 -> 0
-ddctm516 comparetotmag 1 1E+1 -> -1
-ddctm517 comparetotmag 1 1E+2 -> -1
-ddctm518 comparetotmag 1 1E+3 -> -1
-ddctm519 comparetotmag 1 1E+4 -> -1
-ddctm521 comparetotmag 1 1E+5 -> -1
-ddctm522 comparetotmag 1 1E+6 -> -1
-ddctm523 comparetotmag 1 1E+7 -> -1
-ddctm524 comparetotmag 1 1E+8 -> -1
-ddctm525 comparetotmag 1 1E+9 -> -1
-ddctm526 comparetotmag 1 1E+10 -> -1
-ddctm527 comparetotmag 1 1E+11 -> -1
-ddctm528 comparetotmag 1 1E+12 -> -1
-ddctm529 comparetotmag 1 1E+13 -> -1
-ddctm530 comparetotmag 1 1E+14 -> -1
-ddctm531 comparetotmag 1 1E+15 -> -1
-ddctm532 comparetotmag 1 1E+16 -> -1
-ddctm533 comparetotmag 1 1E+17 -> -1
--- LR swap
-ddctm538 comparetotmag 1E-17 1 -> -1
-ddctm539 comparetotmag 1E-16 1 -> -1
-ddctm540 comparetotmag 1E-15 1 -> -1
-ddctm541 comparetotmag 1E-14 1 -> -1
-ddctm542 comparetotmag 1E-13 1 -> -1
-ddctm543 comparetotmag 1E-12 1 -> -1
-ddctm544 comparetotmag 1E-11 1 -> -1
-ddctm545 comparetotmag 1E-10 1 -> -1
-ddctm546 comparetotmag 1E-9 1 -> -1
-ddctm547 comparetotmag 1E-8 1 -> -1
-ddctm548 comparetotmag 1E-7 1 -> -1
-ddctm549 comparetotmag 1E-6 1 -> -1
-ddctm550 comparetotmag 1E-5 1 -> -1
-ddctm551 comparetotmag 1E-4 1 -> -1
-ddctm552 comparetotmag 1E-3 1 -> -1
-ddctm553 comparetotmag 1E-2 1 -> -1
-ddctm554 comparetotmag 1E-1 1 -> -1
-ddctm555 comparetotmag 1E-0 1 -> 0
-ddctm556 comparetotmag 1E+1 1 -> 1
-ddctm557 comparetotmag 1E+2 1 -> 1
-ddctm558 comparetotmag 1E+3 1 -> 1
-ddctm559 comparetotmag 1E+4 1 -> 1
-ddctm561 comparetotmag 1E+5 1 -> 1
-ddctm562 comparetotmag 1E+6 1 -> 1
-ddctm563 comparetotmag 1E+7 1 -> 1
-ddctm564 comparetotmag 1E+8 1 -> 1
-ddctm565 comparetotmag 1E+9 1 -> 1
-ddctm566 comparetotmag 1E+10 1 -> 1
-ddctm567 comparetotmag 1E+11 1 -> 1
-ddctm568 comparetotmag 1E+12 1 -> 1
-ddctm569 comparetotmag 1E+13 1 -> 1
-ddctm570 comparetotmag 1E+14 1 -> 1
-ddctm571 comparetotmag 1E+15 1 -> 1
-ddctm572 comparetotmag 1E+16 1 -> 1
-ddctm573 comparetotmag 1E+17 1 -> 1
--- similar with a useful coefficient, one side only
-ddctm578 comparetotmag 0.000000987654321 1E-17 -> 1
-ddctm579 comparetotmag 0.000000987654321 1E-16 -> 1
-ddctm580 comparetotmag 0.000000987654321 1E-15 -> 1
-ddctm581 comparetotmag 0.000000987654321 1E-14 -> 1
-ddctm582 comparetotmag 0.000000987654321 1E-13 -> 1
-ddctm583 comparetotmag 0.000000987654321 1E-12 -> 1
-ddctm584 comparetotmag 0.000000987654321 1E-11 -> 1
-ddctm585 comparetotmag 0.000000987654321 1E-10 -> 1
-ddctm586 comparetotmag 0.000000987654321 1E-9 -> 1
-ddctm587 comparetotmag 0.000000987654321 1E-8 -> 1
-ddctm588 comparetotmag 0.000000987654321 1E-7 -> 1
-ddctm589 comparetotmag 0.000000987654321 1E-6 -> -1
-ddctm590 comparetotmag 0.000000987654321 1E-5 -> -1
-ddctm591 comparetotmag 0.000000987654321 1E-4 -> -1
-ddctm592 comparetotmag 0.000000987654321 1E-3 -> -1
-ddctm593 comparetotmag 0.000000987654321 1E-2 -> -1
-ddctm594 comparetotmag 0.000000987654321 1E-1 -> -1
-ddctm595 comparetotmag 0.000000987654321 1E-0 -> -1
-ddctm596 comparetotmag 0.000000987654321 1E+1 -> -1
-ddctm597 comparetotmag 0.000000987654321 1E+2 -> -1
-ddctm598 comparetotmag 0.000000987654321 1E+3 -> -1
-ddctm599 comparetotmag 0.000000987654321 1E+4 -> -1
-
--- check some unit-y traps
-ddctm600 comparetotmag 12 12.2345 -> -1
-ddctm601 comparetotmag 12.0 12.2345 -> -1
-ddctm602 comparetotmag 12.00 12.2345 -> -1
-ddctm603 comparetotmag 12.000 12.2345 -> -1
-ddctm604 comparetotmag 12.0000 12.2345 -> -1
-ddctm605 comparetotmag 12.00000 12.2345 -> -1
-ddctm606 comparetotmag 12.000000 12.2345 -> -1
-ddctm607 comparetotmag 12.0000000 12.2345 -> -1
-ddctm608 comparetotmag 12.00000000 12.2345 -> -1
-ddctm609 comparetotmag 12.000000000 12.2345 -> -1
-ddctm610 comparetotmag 12.1234 12 -> 1
-ddctm611 comparetotmag 12.1234 12.0 -> 1
-ddctm612 comparetotmag 12.1234 12.00 -> 1
-ddctm613 comparetotmag 12.1234 12.000 -> 1
-ddctm614 comparetotmag 12.1234 12.0000 -> 1
-ddctm615 comparetotmag 12.1234 12.00000 -> 1
-ddctm616 comparetotmag 12.1234 12.000000 -> 1
-ddctm617 comparetotmag 12.1234 12.0000000 -> 1
-ddctm618 comparetotmag 12.1234 12.00000000 -> 1
-ddctm619 comparetotmag 12.1234 12.000000000 -> 1
-ddctm620 comparetotmag -12 -12.2345 -> -1
-ddctm621 comparetotmag -12.0 -12.2345 -> -1
-ddctm622 comparetotmag -12.00 -12.2345 -> -1
-ddctm623 comparetotmag -12.000 -12.2345 -> -1
-ddctm624 comparetotmag -12.0000 -12.2345 -> -1
-ddctm625 comparetotmag -12.00000 -12.2345 -> -1
-ddctm626 comparetotmag -12.000000 -12.2345 -> -1
-ddctm627 comparetotmag -12.0000000 -12.2345 -> -1
-ddctm628 comparetotmag -12.00000000 -12.2345 -> -1
-ddctm629 comparetotmag -12.000000000 -12.2345 -> -1
-ddctm630 comparetotmag -12.1234 -12 -> 1
-ddctm631 comparetotmag -12.1234 -12.0 -> 1
-ddctm632 comparetotmag -12.1234 -12.00 -> 1
-ddctm633 comparetotmag -12.1234 -12.000 -> 1
-ddctm634 comparetotmag -12.1234 -12.0000 -> 1
-ddctm635 comparetotmag -12.1234 -12.00000 -> 1
-ddctm636 comparetotmag -12.1234 -12.000000 -> 1
-ddctm637 comparetotmag -12.1234 -12.0000000 -> 1
-ddctm638 comparetotmag -12.1234 -12.00000000 -> 1
-ddctm639 comparetotmag -12.1234 -12.000000000 -> 1
-
--- extended zeros
-ddctm640 comparetotmag 0 0 -> 0
-ddctm641 comparetotmag 0 -0 -> 0
-ddctm642 comparetotmag 0 -0.0 -> 1
-ddctm643 comparetotmag 0 0.0 -> 1
-ddctm644 comparetotmag -0 0 -> 0
-ddctm645 comparetotmag -0 -0 -> 0
-ddctm646 comparetotmag -0 -0.0 -> 1
-ddctm647 comparetotmag -0 0.0 -> 1
-ddctm648 comparetotmag 0.0 0 -> -1
-ddctm649 comparetotmag 0.0 -0 -> -1
-ddctm650 comparetotmag 0.0 -0.0 -> 0
-ddctm651 comparetotmag 0.0 0.0 -> 0
-ddctm652 comparetotmag -0.0 0 -> -1
-ddctm653 comparetotmag -0.0 -0 -> -1
-ddctm654 comparetotmag -0.0 -0.0 -> 0
-ddctm655 comparetotmag -0.0 0.0 -> 0
-
-ddctm656 comparetotmag -0E1 0.0 -> 1
-ddctm657 comparetotmag -0E2 0.0 -> 1
-ddctm658 comparetotmag 0E1 0.0 -> 1
-ddctm659 comparetotmag 0E2 0.0 -> 1
-ddctm660 comparetotmag -0E1 0 -> 1
-ddctm661 comparetotmag -0E2 0 -> 1
-ddctm662 comparetotmag 0E1 0 -> 1
-ddctm663 comparetotmag 0E2 0 -> 1
-ddctm664 comparetotmag -0E1 -0E1 -> 0
-ddctm665 comparetotmag -0E2 -0E1 -> 1
-ddctm666 comparetotmag 0E1 -0E1 -> 0
-ddctm667 comparetotmag 0E2 -0E1 -> 1
-ddctm668 comparetotmag -0E1 -0E2 -> -1
-ddctm669 comparetotmag -0E2 -0E2 -> 0
-ddctm670 comparetotmag 0E1 -0E2 -> -1
-ddctm671 comparetotmag 0E2 -0E2 -> 0
-ddctm672 comparetotmag -0E1 0E1 -> 0
-ddctm673 comparetotmag -0E2 0E1 -> 1
-ddctm674 comparetotmag 0E1 0E1 -> 0
-ddctm675 comparetotmag 0E2 0E1 -> 1
-ddctm676 comparetotmag -0E1 0E2 -> -1
-ddctm677 comparetotmag -0E2 0E2 -> 0
-ddctm678 comparetotmag 0E1 0E2 -> -1
-ddctm679 comparetotmag 0E2 0E2 -> 0
-
--- trailing zeros; unit-y
-ddctm680 comparetotmag 12 12 -> 0
-ddctm681 comparetotmag 12 12.0 -> 1
-ddctm682 comparetotmag 12 12.00 -> 1
-ddctm683 comparetotmag 12 12.000 -> 1
-ddctm684 comparetotmag 12 12.0000 -> 1
-ddctm685 comparetotmag 12 12.00000 -> 1
-ddctm686 comparetotmag 12 12.000000 -> 1
-ddctm687 comparetotmag 12 12.0000000 -> 1
-ddctm688 comparetotmag 12 12.00000000 -> 1
-ddctm689 comparetotmag 12 12.000000000 -> 1
-ddctm690 comparetotmag 12 12 -> 0
-ddctm691 comparetotmag 12.0 12 -> -1
-ddctm692 comparetotmag 12.00 12 -> -1
-ddctm693 comparetotmag 12.000 12 -> -1
-ddctm694 comparetotmag 12.0000 12 -> -1
-ddctm695 comparetotmag 12.00000 12 -> -1
-ddctm696 comparetotmag 12.000000 12 -> -1
-ddctm697 comparetotmag 12.0000000 12 -> -1
-ddctm698 comparetotmag 12.00000000 12 -> -1
-ddctm699 comparetotmag 12.000000000 12 -> -1
-
--- old long operand checks
-ddctm701 comparetotmag 12345678000 1 -> 1
-ddctm702 comparetotmag 1 12345678000 -> -1
-ddctm703 comparetotmag 1234567800 1 -> 1
-ddctm704 comparetotmag 1 1234567800 -> -1
-ddctm705 comparetotmag 1234567890 1 -> 1
-ddctm706 comparetotmag 1 1234567890 -> -1
-ddctm707 comparetotmag 1234567891 1 -> 1
-ddctm708 comparetotmag 1 1234567891 -> -1
-ddctm709 comparetotmag 12345678901 1 -> 1
-ddctm710 comparetotmag 1 12345678901 -> -1
-ddctm711 comparetotmag 1234567896 1 -> 1
-ddctm712 comparetotmag 1 1234567896 -> -1
-ddctm713 comparetotmag -1234567891 1 -> 1
-ddctm714 comparetotmag 1 -1234567891 -> -1
-ddctm715 comparetotmag -12345678901 1 -> 1
-ddctm716 comparetotmag 1 -12345678901 -> -1
-ddctm717 comparetotmag -1234567896 1 -> 1
-ddctm718 comparetotmag 1 -1234567896 -> -1
-
--- old residue cases
-ddctm740 comparetotmag 1 0.9999999 -> 1
-ddctm741 comparetotmag 1 0.999999 -> 1
-ddctm742 comparetotmag 1 0.99999 -> 1
-ddctm743 comparetotmag 1 1.0000 -> 1
-ddctm744 comparetotmag 1 1.00001 -> -1
-ddctm745 comparetotmag 1 1.000001 -> -1
-ddctm746 comparetotmag 1 1.0000001 -> -1
-ddctm750 comparetotmag 0.9999999 1 -> -1
-ddctm751 comparetotmag 0.999999 1 -> -1
-ddctm752 comparetotmag 0.99999 1 -> -1
-ddctm753 comparetotmag 1.0000 1 -> -1
-ddctm754 comparetotmag 1.00001 1 -> 1
-ddctm755 comparetotmag 1.000001 1 -> 1
-ddctm756 comparetotmag 1.0000001 1 -> 1
-
--- Specials
-ddctm780 comparetotmag Inf -Inf -> 0
-ddctm781 comparetotmag Inf -1000 -> 1
-ddctm782 comparetotmag Inf -1 -> 1
-ddctm783 comparetotmag Inf -0 -> 1
-ddctm784 comparetotmag Inf 0 -> 1
-ddctm785 comparetotmag Inf 1 -> 1
-ddctm786 comparetotmag Inf 1000 -> 1
-ddctm787 comparetotmag Inf Inf -> 0
-ddctm788 comparetotmag -1000 Inf -> -1
-ddctm789 comparetotmag -Inf Inf -> 0
-ddctm790 comparetotmag -1 Inf -> -1
-ddctm791 comparetotmag -0 Inf -> -1
-ddctm792 comparetotmag 0 Inf -> -1
-ddctm793 comparetotmag 1 Inf -> -1
-ddctm794 comparetotmag 1000 Inf -> -1
-ddctm795 comparetotmag Inf Inf -> 0
-
-ddctm800 comparetotmag -Inf -Inf -> 0
-ddctm801 comparetotmag -Inf -1000 -> 1
-ddctm802 comparetotmag -Inf -1 -> 1
-ddctm803 comparetotmag -Inf -0 -> 1
-ddctm804 comparetotmag -Inf 0 -> 1
-ddctm805 comparetotmag -Inf 1 -> 1
-ddctm806 comparetotmag -Inf 1000 -> 1
-ddctm807 comparetotmag -Inf Inf -> 0
-ddctm808 comparetotmag -Inf -Inf -> 0
-ddctm809 comparetotmag -1000 -Inf -> -1
-ddctm810 comparetotmag -1 -Inf -> -1
-ddctm811 comparetotmag -0 -Inf -> -1
-ddctm812 comparetotmag 0 -Inf -> -1
-ddctm813 comparetotmag 1 -Inf -> -1
-ddctm814 comparetotmag 1000 -Inf -> -1
-ddctm815 comparetotmag Inf -Inf -> 0
-
-ddctm821 comparetotmag NaN -Inf -> 1
-ddctm822 comparetotmag NaN -1000 -> 1
-ddctm823 comparetotmag NaN -1 -> 1
-ddctm824 comparetotmag NaN -0 -> 1
-ddctm825 comparetotmag NaN 0 -> 1
-ddctm826 comparetotmag NaN 1 -> 1
-ddctm827 comparetotmag NaN 1000 -> 1
-ddctm828 comparetotmag NaN Inf -> 1
-ddctm829 comparetotmag NaN NaN -> 0
-ddctm830 comparetotmag -Inf NaN -> -1
-ddctm831 comparetotmag -1000 NaN -> -1
-ddctm832 comparetotmag -1 NaN -> -1
-ddctm833 comparetotmag -0 NaN -> -1
-ddctm834 comparetotmag 0 NaN -> -1
-ddctm835 comparetotmag 1 NaN -> -1
-ddctm836 comparetotmag 1000 NaN -> -1
-ddctm837 comparetotmag Inf NaN -> -1
-ddctm838 comparetotmag -NaN -NaN -> 0
-ddctm839 comparetotmag +NaN -NaN -> 0
-ddctm840 comparetotmag -NaN +NaN -> 0
-
-ddctm841 comparetotmag sNaN -sNaN -> 0
-ddctm842 comparetotmag sNaN -NaN -> -1
-ddctm843 comparetotmag sNaN -Inf -> 1
-ddctm844 comparetotmag sNaN -1000 -> 1
-ddctm845 comparetotmag sNaN -1 -> 1
-ddctm846 comparetotmag sNaN -0 -> 1
-ddctm847 comparetotmag sNaN 0 -> 1
-ddctm848 comparetotmag sNaN 1 -> 1
-ddctm849 comparetotmag sNaN 1000 -> 1
-ddctm850 comparetotmag sNaN NaN -> -1
-ddctm851 comparetotmag sNaN sNaN -> 0
-
-ddctm852 comparetotmag -sNaN sNaN -> 0
-ddctm853 comparetotmag -NaN sNaN -> 1
-ddctm854 comparetotmag -Inf sNaN -> -1
-ddctm855 comparetotmag -1000 sNaN -> -1
-ddctm856 comparetotmag -1 sNaN -> -1
-ddctm857 comparetotmag -0 sNaN -> -1
-ddctm858 comparetotmag 0 sNaN -> -1
-ddctm859 comparetotmag 1 sNaN -> -1
-ddctm860 comparetotmag 1000 sNaN -> -1
-ddctm861 comparetotmag Inf sNaN -> -1
-ddctm862 comparetotmag NaN sNaN -> 1
-ddctm863 comparetotmag sNaN sNaN -> 0
-
-ddctm871 comparetotmag -sNaN -sNaN -> 0
-ddctm872 comparetotmag -sNaN -NaN -> -1
-ddctm873 comparetotmag -sNaN -Inf -> 1
-ddctm874 comparetotmag -sNaN -1000 -> 1
-ddctm875 comparetotmag -sNaN -1 -> 1
-ddctm876 comparetotmag -sNaN -0 -> 1
-ddctm877 comparetotmag -sNaN 0 -> 1
-ddctm878 comparetotmag -sNaN 1 -> 1
-ddctm879 comparetotmag -sNaN 1000 -> 1
-ddctm880 comparetotmag -sNaN NaN -> -1
-ddctm881 comparetotmag -sNaN sNaN -> 0
-
-ddctm882 comparetotmag -sNaN -sNaN -> 0
-ddctm883 comparetotmag -NaN -sNaN -> 1
-ddctm884 comparetotmag -Inf -sNaN -> -1
-ddctm885 comparetotmag -1000 -sNaN -> -1
-ddctm886 comparetotmag -1 -sNaN -> -1
-ddctm887 comparetotmag -0 -sNaN -> -1
-ddctm888 comparetotmag 0 -sNaN -> -1
-ddctm889 comparetotmag 1 -sNaN -> -1
-ddctm890 comparetotmag 1000 -sNaN -> -1
-ddctm891 comparetotmag Inf -sNaN -> -1
-ddctm892 comparetotmag NaN -sNaN -> 1
-ddctm893 comparetotmag sNaN -sNaN -> 0
-
--- NaNs with payload
-ddctm960 comparetotmag NaN9 -Inf -> 1
-ddctm961 comparetotmag NaN8 999 -> 1
-ddctm962 comparetotmag NaN77 Inf -> 1
-ddctm963 comparetotmag -NaN67 NaN5 -> 1
-ddctm964 comparetotmag -Inf -NaN4 -> -1
-ddctm965 comparetotmag -999 -NaN33 -> -1
-ddctm966 comparetotmag Inf NaN2 -> -1
-
-ddctm970 comparetotmag -NaN41 -NaN42 -> -1
-ddctm971 comparetotmag +NaN41 -NaN42 -> -1
-ddctm972 comparetotmag -NaN41 +NaN42 -> -1
-ddctm973 comparetotmag +NaN41 +NaN42 -> -1
-ddctm974 comparetotmag -NaN42 -NaN01 -> 1
-ddctm975 comparetotmag +NaN42 -NaN01 -> 1
-ddctm976 comparetotmag -NaN42 +NaN01 -> 1
-ddctm977 comparetotmag +NaN42 +NaN01 -> 1
-
-ddctm980 comparetotmag -sNaN771 -sNaN772 -> -1
-ddctm981 comparetotmag +sNaN771 -sNaN772 -> -1
-ddctm982 comparetotmag -sNaN771 +sNaN772 -> -1
-ddctm983 comparetotmag +sNaN771 +sNaN772 -> -1
-ddctm984 comparetotmag -sNaN772 -sNaN771 -> 1
-ddctm985 comparetotmag +sNaN772 -sNaN771 -> 1
-ddctm986 comparetotmag -sNaN772 +sNaN771 -> 1
-ddctm987 comparetotmag +sNaN772 +sNaN771 -> 1
-
-ddctm991 comparetotmag -sNaN99 -Inf -> 1
-ddctm992 comparetotmag sNaN98 -11 -> 1
-ddctm993 comparetotmag sNaN97 NaN -> -1
-ddctm994 comparetotmag sNaN16 sNaN94 -> -1
-ddctm995 comparetotmag NaN85 sNaN83 -> 1
-ddctm996 comparetotmag -Inf sNaN92 -> -1
-ddctm997 comparetotmag 088 sNaN81 -> -1
-ddctm998 comparetotmag Inf sNaN90 -> -1
-ddctm999 comparetotmag NaN -sNaN89 -> 1
-
--- spread zeros
-ddctm1110 comparetotmag 0E-383 0 -> -1
-ddctm1111 comparetotmag 0E-383 -0 -> -1
-ddctm1112 comparetotmag -0E-383 0 -> -1
-ddctm1113 comparetotmag -0E-383 -0 -> -1
-ddctm1114 comparetotmag 0E-383 0E+384 -> -1
-ddctm1115 comparetotmag 0E-383 -0E+384 -> -1
-ddctm1116 comparetotmag -0E-383 0E+384 -> -1
-ddctm1117 comparetotmag -0E-383 -0E+384 -> -1
-ddctm1118 comparetotmag 0 0E+384 -> -1
-ddctm1119 comparetotmag 0 -0E+384 -> -1
-ddctm1120 comparetotmag -0 0E+384 -> -1
-ddctm1121 comparetotmag -0 -0E+384 -> -1
-
-ddctm1130 comparetotmag 0E+384 0 -> 1
-ddctm1131 comparetotmag 0E+384 -0 -> 1
-ddctm1132 comparetotmag -0E+384 0 -> 1
-ddctm1133 comparetotmag -0E+384 -0 -> 1
-ddctm1134 comparetotmag 0E+384 0E-383 -> 1
-ddctm1135 comparetotmag 0E+384 -0E-383 -> 1
-ddctm1136 comparetotmag -0E+384 0E-383 -> 1
-ddctm1137 comparetotmag -0E+384 -0E-383 -> 1
-ddctm1138 comparetotmag 0 0E-383 -> 1
-ddctm1139 comparetotmag 0 -0E-383 -> 1
-ddctm1140 comparetotmag -0 0E-383 -> 1
-ddctm1141 comparetotmag -0 -0E-383 -> 1
-
--- Null tests
-ddctm9990 comparetotmag 10 # -> NaN Invalid_operation
-ddctm9991 comparetotmag # 10 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- ddCompareTotalMag.decTest -- decDouble comparison; abs. total order-- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- Note that we cannot assume add/subtract tests cover paths adequately, +-- here, because the code might be quite different (comparison cannot +-- overflow or underflow, so actual subtractions are not necessary). +-- Similarly, comparetotal will have some radically different paths +-- than compare. + +-- All operands and results are decDoubles. +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +-- sanity checks +ddctm001 comparetotmag -2 -2 -> 0 +ddctm002 comparetotmag -2 -1 -> 1 +ddctm003 comparetotmag -2 0 -> 1 +ddctm004 comparetotmag -2 1 -> 1 +ddctm005 comparetotmag -2 2 -> 0 +ddctm006 comparetotmag -1 -2 -> -1 +ddctm007 comparetotmag -1 -1 -> 0 +ddctm008 comparetotmag -1 0 -> 1 +ddctm009 comparetotmag -1 1 -> 0 +ddctm010 comparetotmag -1 2 -> -1 +ddctm011 comparetotmag 0 -2 -> -1 +ddctm012 comparetotmag 0 -1 -> -1 +ddctm013 comparetotmag 0 0 -> 0 +ddctm014 comparetotmag 0 1 -> -1 +ddctm015 comparetotmag 0 2 -> -1 +ddctm016 comparetotmag 1 -2 -> -1 +ddctm017 comparetotmag 1 -1 -> 0 +ddctm018 comparetotmag 1 0 -> 1 +ddctm019 comparetotmag 1 1 -> 0 +ddctm020 comparetotmag 1 2 -> -1 +ddctm021 comparetotmag 2 -2 -> 0 +ddctm022 comparetotmag 2 -1 -> 1 +ddctm023 comparetotmag 2 0 -> 1 +ddctm025 comparetotmag 2 1 -> 1 +ddctm026 comparetotmag 2 2 -> 0 + +ddctm031 comparetotmag -20 -20 -> 0 +ddctm032 comparetotmag -20 -10 -> 1 +ddctm033 comparetotmag -20 00 -> 1 +ddctm034 comparetotmag -20 10 -> 1 +ddctm035 comparetotmag -20 20 -> 0 +ddctm036 comparetotmag -10 -20 -> -1 +ddctm037 comparetotmag -10 -10 -> 0 +ddctm038 comparetotmag -10 00 -> 1 +ddctm039 comparetotmag -10 10 -> 0 +ddctm040 comparetotmag -10 20 -> -1 +ddctm041 comparetotmag 00 -20 -> -1 +ddctm042 comparetotmag 00 -10 -> -1 +ddctm043 comparetotmag 00 00 -> 0 +ddctm044 comparetotmag 00 10 -> -1 +ddctm045 comparetotmag 00 20 -> -1 +ddctm046 comparetotmag 10 -20 -> -1 +ddctm047 comparetotmag 10 -10 -> 0 +ddctm048 comparetotmag 10 00 -> 1 +ddctm049 comparetotmag 10 10 -> 0 +ddctm050 comparetotmag 10 20 -> -1 +ddctm051 comparetotmag 20 -20 -> 0 +ddctm052 comparetotmag 20 -10 -> 1 +ddctm053 comparetotmag 20 00 -> 1 +ddctm055 comparetotmag 20 10 -> 1 +ddctm056 comparetotmag 20 20 -> 0 + +ddctm061 comparetotmag -2.0 -2.0 -> 0 +ddctm062 comparetotmag -2.0 -1.0 -> 1 +ddctm063 comparetotmag -2.0 0.0 -> 1 +ddctm064 comparetotmag -2.0 1.0 -> 1 +ddctm065 comparetotmag -2.0 2.0 -> 0 +ddctm066 comparetotmag -1.0 -2.0 -> -1 +ddctm067 comparetotmag -1.0 -1.0 -> 0 +ddctm068 comparetotmag -1.0 0.0 -> 1 +ddctm069 comparetotmag -1.0 1.0 -> 0 +ddctm070 comparetotmag -1.0 2.0 -> -1 +ddctm071 comparetotmag 0.0 -2.0 -> -1 +ddctm072 comparetotmag 0.0 -1.0 -> -1 +ddctm073 comparetotmag 0.0 0.0 -> 0 +ddctm074 comparetotmag 0.0 1.0 -> -1 +ddctm075 comparetotmag 0.0 2.0 -> -1 +ddctm076 comparetotmag 1.0 -2.0 -> -1 +ddctm077 comparetotmag 1.0 -1.0 -> 0 +ddctm078 comparetotmag 1.0 0.0 -> 1 +ddctm079 comparetotmag 1.0 1.0 -> 0 +ddctm080 comparetotmag 1.0 2.0 -> -1 +ddctm081 comparetotmag 2.0 -2.0 -> 0 +ddctm082 comparetotmag 2.0 -1.0 -> 1 +ddctm083 comparetotmag 2.0 0.0 -> 1 +ddctm085 comparetotmag 2.0 1.0 -> 1 +ddctm086 comparetotmag 2.0 2.0 -> 0 + +-- now some cases which might overflow if subtract were used +ddctm090 comparetotmag 9.99999999E+384 9.99999999E+384 -> 0 +ddctm091 comparetotmag -9.99999999E+384 9.99999999E+384 -> 0 +ddctm092 comparetotmag 9.99999999E+384 -9.99999999E+384 -> 0 +ddctm093 comparetotmag -9.99999999E+384 -9.99999999E+384 -> 0 + +-- some differing length/exponent cases +-- in this first group, compare would compare all equal +ddctm100 comparetotmag 7.0 7.0 -> 0 +ddctm101 comparetotmag 7.0 7 -> -1 +ddctm102 comparetotmag 7 7.0 -> 1 +ddctm103 comparetotmag 7E+0 7.0 -> 1 +ddctm104 comparetotmag 70E-1 7.0 -> 0 +ddctm105 comparetotmag 0.7E+1 7 -> 0 +ddctm106 comparetotmag 70E-1 7 -> -1 +ddctm107 comparetotmag 7.0 7E+0 -> -1 +ddctm108 comparetotmag 7.0 70E-1 -> 0 +ddctm109 comparetotmag 7 0.7E+1 -> 0 +ddctm110 comparetotmag 7 70E-1 -> 1 + +ddctm120 comparetotmag 8.0 7.0 -> 1 +ddctm121 comparetotmag 8.0 7 -> 1 +ddctm122 comparetotmag 8 7.0 -> 1 +ddctm123 comparetotmag 8E+0 7.0 -> 1 +ddctm124 comparetotmag 80E-1 7.0 -> 1 +ddctm125 comparetotmag 0.8E+1 7 -> 1 +ddctm126 comparetotmag 80E-1 7 -> 1 +ddctm127 comparetotmag 8.0 7E+0 -> 1 +ddctm128 comparetotmag 8.0 70E-1 -> 1 +ddctm129 comparetotmag 8 0.7E+1 -> 1 +ddctm130 comparetotmag 8 70E-1 -> 1 + +ddctm140 comparetotmag 8.0 9.0 -> -1 +ddctm141 comparetotmag 8.0 9 -> -1 +ddctm142 comparetotmag 8 9.0 -> -1 +ddctm143 comparetotmag 8E+0 9.0 -> -1 +ddctm144 comparetotmag 80E-1 9.0 -> -1 +ddctm145 comparetotmag 0.8E+1 9 -> -1 +ddctm146 comparetotmag 80E-1 9 -> -1 +ddctm147 comparetotmag 8.0 9E+0 -> -1 +ddctm148 comparetotmag 8.0 90E-1 -> -1 +ddctm149 comparetotmag 8 0.9E+1 -> -1 +ddctm150 comparetotmag 8 90E-1 -> -1 + +-- and again, with sign changes -+ .. +ddctm200 comparetotmag -7.0 7.0 -> 0 +ddctm201 comparetotmag -7.0 7 -> -1 +ddctm202 comparetotmag -7 7.0 -> 1 +ddctm203 comparetotmag -7E+0 7.0 -> 1 +ddctm204 comparetotmag -70E-1 7.0 -> 0 +ddctm205 comparetotmag -0.7E+1 7 -> 0 +ddctm206 comparetotmag -70E-1 7 -> -1 +ddctm207 comparetotmag -7.0 7E+0 -> -1 +ddctm208 comparetotmag -7.0 70E-1 -> 0 +ddctm209 comparetotmag -7 0.7E+1 -> 0 +ddctm210 comparetotmag -7 70E-1 -> 1 + +ddctm220 comparetotmag -8.0 7.0 -> 1 +ddctm221 comparetotmag -8.0 7 -> 1 +ddctm222 comparetotmag -8 7.0 -> 1 +ddctm223 comparetotmag -8E+0 7.0 -> 1 +ddctm224 comparetotmag -80E-1 7.0 -> 1 +ddctm225 comparetotmag -0.8E+1 7 -> 1 +ddctm226 comparetotmag -80E-1 7 -> 1 +ddctm227 comparetotmag -8.0 7E+0 -> 1 +ddctm228 comparetotmag -8.0 70E-1 -> 1 +ddctm229 comparetotmag -8 0.7E+1 -> 1 +ddctm230 comparetotmag -8 70E-1 -> 1 + +ddctm240 comparetotmag -8.0 9.0 -> -1 +ddctm241 comparetotmag -8.0 9 -> -1 +ddctm242 comparetotmag -8 9.0 -> -1 +ddctm243 comparetotmag -8E+0 9.0 -> -1 +ddctm244 comparetotmag -80E-1 9.0 -> -1 +ddctm245 comparetotmag -0.8E+1 9 -> -1 +ddctm246 comparetotmag -80E-1 9 -> -1 +ddctm247 comparetotmag -8.0 9E+0 -> -1 +ddctm248 comparetotmag -8.0 90E-1 -> -1 +ddctm249 comparetotmag -8 0.9E+1 -> -1 +ddctm250 comparetotmag -8 90E-1 -> -1 + +-- and again, with sign changes +- .. +ddctm300 comparetotmag 7.0 -7.0 -> 0 +ddctm301 comparetotmag 7.0 -7 -> -1 +ddctm302 comparetotmag 7 -7.0 -> 1 +ddctm303 comparetotmag 7E+0 -7.0 -> 1 +ddctm304 comparetotmag 70E-1 -7.0 -> 0 +ddctm305 comparetotmag .7E+1 -7 -> 0 +ddctm306 comparetotmag 70E-1 -7 -> -1 +ddctm307 comparetotmag 7.0 -7E+0 -> -1 +ddctm308 comparetotmag 7.0 -70E-1 -> 0 +ddctm309 comparetotmag 7 -.7E+1 -> 0 +ddctm310 comparetotmag 7 -70E-1 -> 1 + +ddctm320 comparetotmag 8.0 -7.0 -> 1 +ddctm321 comparetotmag 8.0 -7 -> 1 +ddctm322 comparetotmag 8 -7.0 -> 1 +ddctm323 comparetotmag 8E+0 -7.0 -> 1 +ddctm324 comparetotmag 80E-1 -7.0 -> 1 +ddctm325 comparetotmag .8E+1 -7 -> 1 +ddctm326 comparetotmag 80E-1 -7 -> 1 +ddctm327 comparetotmag 8.0 -7E+0 -> 1 +ddctm328 comparetotmag 8.0 -70E-1 -> 1 +ddctm329 comparetotmag 8 -.7E+1 -> 1 +ddctm330 comparetotmag 8 -70E-1 -> 1 + +ddctm340 comparetotmag 8.0 -9.0 -> -1 +ddctm341 comparetotmag 8.0 -9 -> -1 +ddctm342 comparetotmag 8 -9.0 -> -1 +ddctm343 comparetotmag 8E+0 -9.0 -> -1 +ddctm344 comparetotmag 80E-1 -9.0 -> -1 +ddctm345 comparetotmag .8E+1 -9 -> -1 +ddctm346 comparetotmag 80E-1 -9 -> -1 +ddctm347 comparetotmag 8.0 -9E+0 -> -1 +ddctm348 comparetotmag 8.0 -90E-1 -> -1 +ddctm349 comparetotmag 8 -.9E+1 -> -1 +ddctm350 comparetotmag 8 -90E-1 -> -1 + +-- and again, with sign changes -- .. +ddctm400 comparetotmag -7.0 -7.0 -> 0 +ddctm401 comparetotmag -7.0 -7 -> -1 +ddctm402 comparetotmag -7 -7.0 -> 1 +ddctm403 comparetotmag -7E+0 -7.0 -> 1 +ddctm404 comparetotmag -70E-1 -7.0 -> 0 +ddctm405 comparetotmag -.7E+1 -7 -> 0 +ddctm406 comparetotmag -70E-1 -7 -> -1 +ddctm407 comparetotmag -7.0 -7E+0 -> -1 +ddctm408 comparetotmag -7.0 -70E-1 -> 0 +ddctm409 comparetotmag -7 -.7E+1 -> 0 +ddctm410 comparetotmag -7 -70E-1 -> 1 + +ddctm420 comparetotmag -8.0 -7.0 -> 1 +ddctm421 comparetotmag -8.0 -7 -> 1 +ddctm422 comparetotmag -8 -7.0 -> 1 +ddctm423 comparetotmag -8E+0 -7.0 -> 1 +ddctm424 comparetotmag -80E-1 -7.0 -> 1 +ddctm425 comparetotmag -.8E+1 -7 -> 1 +ddctm426 comparetotmag -80E-1 -7 -> 1 +ddctm427 comparetotmag -8.0 -7E+0 -> 1 +ddctm428 comparetotmag -8.0 -70E-1 -> 1 +ddctm429 comparetotmag -8 -.7E+1 -> 1 +ddctm430 comparetotmag -8 -70E-1 -> 1 + +ddctm440 comparetotmag -8.0 -9.0 -> -1 +ddctm441 comparetotmag -8.0 -9 -> -1 +ddctm442 comparetotmag -8 -9.0 -> -1 +ddctm443 comparetotmag -8E+0 -9.0 -> -1 +ddctm444 comparetotmag -80E-1 -9.0 -> -1 +ddctm445 comparetotmag -.8E+1 -9 -> -1 +ddctm446 comparetotmag -80E-1 -9 -> -1 +ddctm447 comparetotmag -8.0 -9E+0 -> -1 +ddctm448 comparetotmag -8.0 -90E-1 -> -1 +ddctm449 comparetotmag -8 -.9E+1 -> -1 +ddctm450 comparetotmag -8 -90E-1 -> -1 + + +-- testcases that subtract to lots of zeros at boundaries [pgr] +ddctm473 comparetotmag 123.4560000000000E-89 123.456E-89 -> -1 +ddctm474 comparetotmag 123.456000000000E+89 123.456E+89 -> -1 +ddctm475 comparetotmag 123.45600000000E-89 123.456E-89 -> -1 +ddctm476 comparetotmag 123.4560000000E+89 123.456E+89 -> -1 +ddctm477 comparetotmag 123.456000000E-89 123.456E-89 -> -1 +ddctm478 comparetotmag 123.45600000E+89 123.456E+89 -> -1 +ddctm479 comparetotmag 123.4560000E-89 123.456E-89 -> -1 +ddctm480 comparetotmag 123.456000E+89 123.456E+89 -> -1 +ddctm481 comparetotmag 123.45600E-89 123.456E-89 -> -1 +ddctm482 comparetotmag 123.4560E+89 123.456E+89 -> -1 +ddctm483 comparetotmag 123.456E-89 123.456E-89 -> 0 +ddctm487 comparetotmag 123.456E+89 123.4560000000000E+89 -> 1 +ddctm488 comparetotmag 123.456E-89 123.456000000000E-89 -> 1 +ddctm489 comparetotmag 123.456E+89 123.45600000000E+89 -> 1 +ddctm490 comparetotmag 123.456E-89 123.4560000000E-89 -> 1 +ddctm491 comparetotmag 123.456E+89 123.456000000E+89 -> 1 +ddctm492 comparetotmag 123.456E-89 123.45600000E-89 -> 1 +ddctm493 comparetotmag 123.456E+89 123.4560000E+89 -> 1 +ddctm494 comparetotmag 123.456E-89 123.456000E-89 -> 1 +ddctm495 comparetotmag 123.456E+89 123.45600E+89 -> 1 +ddctm496 comparetotmag 123.456E-89 123.4560E-89 -> 1 +ddctm497 comparetotmag 123.456E+89 123.456E+89 -> 0 + +-- wide-ranging, around precision; signs equal +ddctm498 comparetotmag 1 1E-17 -> 1 +ddctm499 comparetotmag 1 1E-16 -> 1 +ddctm500 comparetotmag 1 1E-15 -> 1 +ddctm501 comparetotmag 1 1E-14 -> 1 +ddctm502 comparetotmag 1 1E-13 -> 1 +ddctm503 comparetotmag 1 1E-12 -> 1 +ddctm504 comparetotmag 1 1E-11 -> 1 +ddctm505 comparetotmag 1 1E-10 -> 1 +ddctm506 comparetotmag 1 1E-9 -> 1 +ddctm507 comparetotmag 1 1E-8 -> 1 +ddctm508 comparetotmag 1 1E-7 -> 1 +ddctm509 comparetotmag 1 1E-6 -> 1 +ddctm510 comparetotmag 1 1E-5 -> 1 +ddctm511 comparetotmag 1 1E-4 -> 1 +ddctm512 comparetotmag 1 1E-3 -> 1 +ddctm513 comparetotmag 1 1E-2 -> 1 +ddctm514 comparetotmag 1 1E-1 -> 1 +ddctm515 comparetotmag 1 1E-0 -> 0 +ddctm516 comparetotmag 1 1E+1 -> -1 +ddctm517 comparetotmag 1 1E+2 -> -1 +ddctm518 comparetotmag 1 1E+3 -> -1 +ddctm519 comparetotmag 1 1E+4 -> -1 +ddctm521 comparetotmag 1 1E+5 -> -1 +ddctm522 comparetotmag 1 1E+6 -> -1 +ddctm523 comparetotmag 1 1E+7 -> -1 +ddctm524 comparetotmag 1 1E+8 -> -1 +ddctm525 comparetotmag 1 1E+9 -> -1 +ddctm526 comparetotmag 1 1E+10 -> -1 +ddctm527 comparetotmag 1 1E+11 -> -1 +ddctm528 comparetotmag 1 1E+12 -> -1 +ddctm529 comparetotmag 1 1E+13 -> -1 +ddctm530 comparetotmag 1 1E+14 -> -1 +ddctm531 comparetotmag 1 1E+15 -> -1 +ddctm532 comparetotmag 1 1E+16 -> -1 +ddctm533 comparetotmag 1 1E+17 -> -1 +-- LR swap +ddctm538 comparetotmag 1E-17 1 -> -1 +ddctm539 comparetotmag 1E-16 1 -> -1 +ddctm540 comparetotmag 1E-15 1 -> -1 +ddctm541 comparetotmag 1E-14 1 -> -1 +ddctm542 comparetotmag 1E-13 1 -> -1 +ddctm543 comparetotmag 1E-12 1 -> -1 +ddctm544 comparetotmag 1E-11 1 -> -1 +ddctm545 comparetotmag 1E-10 1 -> -1 +ddctm546 comparetotmag 1E-9 1 -> -1 +ddctm547 comparetotmag 1E-8 1 -> -1 +ddctm548 comparetotmag 1E-7 1 -> -1 +ddctm549 comparetotmag 1E-6 1 -> -1 +ddctm550 comparetotmag 1E-5 1 -> -1 +ddctm551 comparetotmag 1E-4 1 -> -1 +ddctm552 comparetotmag 1E-3 1 -> -1 +ddctm553 comparetotmag 1E-2 1 -> -1 +ddctm554 comparetotmag 1E-1 1 -> -1 +ddctm555 comparetotmag 1E-0 1 -> 0 +ddctm556 comparetotmag 1E+1 1 -> 1 +ddctm557 comparetotmag 1E+2 1 -> 1 +ddctm558 comparetotmag 1E+3 1 -> 1 +ddctm559 comparetotmag 1E+4 1 -> 1 +ddctm561 comparetotmag 1E+5 1 -> 1 +ddctm562 comparetotmag 1E+6 1 -> 1 +ddctm563 comparetotmag 1E+7 1 -> 1 +ddctm564 comparetotmag 1E+8 1 -> 1 +ddctm565 comparetotmag 1E+9 1 -> 1 +ddctm566 comparetotmag 1E+10 1 -> 1 +ddctm567 comparetotmag 1E+11 1 -> 1 +ddctm568 comparetotmag 1E+12 1 -> 1 +ddctm569 comparetotmag 1E+13 1 -> 1 +ddctm570 comparetotmag 1E+14 1 -> 1 +ddctm571 comparetotmag 1E+15 1 -> 1 +ddctm572 comparetotmag 1E+16 1 -> 1 +ddctm573 comparetotmag 1E+17 1 -> 1 +-- similar with a useful coefficient, one side only +ddctm578 comparetotmag 0.000000987654321 1E-17 -> 1 +ddctm579 comparetotmag 0.000000987654321 1E-16 -> 1 +ddctm580 comparetotmag 0.000000987654321 1E-15 -> 1 +ddctm581 comparetotmag 0.000000987654321 1E-14 -> 1 +ddctm582 comparetotmag 0.000000987654321 1E-13 -> 1 +ddctm583 comparetotmag 0.000000987654321 1E-12 -> 1 +ddctm584 comparetotmag 0.000000987654321 1E-11 -> 1 +ddctm585 comparetotmag 0.000000987654321 1E-10 -> 1 +ddctm586 comparetotmag 0.000000987654321 1E-9 -> 1 +ddctm587 comparetotmag 0.000000987654321 1E-8 -> 1 +ddctm588 comparetotmag 0.000000987654321 1E-7 -> 1 +ddctm589 comparetotmag 0.000000987654321 1E-6 -> -1 +ddctm590 comparetotmag 0.000000987654321 1E-5 -> -1 +ddctm591 comparetotmag 0.000000987654321 1E-4 -> -1 +ddctm592 comparetotmag 0.000000987654321 1E-3 -> -1 +ddctm593 comparetotmag 0.000000987654321 1E-2 -> -1 +ddctm594 comparetotmag 0.000000987654321 1E-1 -> -1 +ddctm595 comparetotmag 0.000000987654321 1E-0 -> -1 +ddctm596 comparetotmag 0.000000987654321 1E+1 -> -1 +ddctm597 comparetotmag 0.000000987654321 1E+2 -> -1 +ddctm598 comparetotmag 0.000000987654321 1E+3 -> -1 +ddctm599 comparetotmag 0.000000987654321 1E+4 -> -1 + +-- check some unit-y traps +ddctm600 comparetotmag 12 12.2345 -> -1 +ddctm601 comparetotmag 12.0 12.2345 -> -1 +ddctm602 comparetotmag 12.00 12.2345 -> -1 +ddctm603 comparetotmag 12.000 12.2345 -> -1 +ddctm604 comparetotmag 12.0000 12.2345 -> -1 +ddctm605 comparetotmag 12.00000 12.2345 -> -1 +ddctm606 comparetotmag 12.000000 12.2345 -> -1 +ddctm607 comparetotmag 12.0000000 12.2345 -> -1 +ddctm608 comparetotmag 12.00000000 12.2345 -> -1 +ddctm609 comparetotmag 12.000000000 12.2345 -> -1 +ddctm610 comparetotmag 12.1234 12 -> 1 +ddctm611 comparetotmag 12.1234 12.0 -> 1 +ddctm612 comparetotmag 12.1234 12.00 -> 1 +ddctm613 comparetotmag 12.1234 12.000 -> 1 +ddctm614 comparetotmag 12.1234 12.0000 -> 1 +ddctm615 comparetotmag 12.1234 12.00000 -> 1 +ddctm616 comparetotmag 12.1234 12.000000 -> 1 +ddctm617 comparetotmag 12.1234 12.0000000 -> 1 +ddctm618 comparetotmag 12.1234 12.00000000 -> 1 +ddctm619 comparetotmag 12.1234 12.000000000 -> 1 +ddctm620 comparetotmag -12 -12.2345 -> -1 +ddctm621 comparetotmag -12.0 -12.2345 -> -1 +ddctm622 comparetotmag -12.00 -12.2345 -> -1 +ddctm623 comparetotmag -12.000 -12.2345 -> -1 +ddctm624 comparetotmag -12.0000 -12.2345 -> -1 +ddctm625 comparetotmag -12.00000 -12.2345 -> -1 +ddctm626 comparetotmag -12.000000 -12.2345 -> -1 +ddctm627 comparetotmag -12.0000000 -12.2345 -> -1 +ddctm628 comparetotmag -12.00000000 -12.2345 -> -1 +ddctm629 comparetotmag -12.000000000 -12.2345 -> -1 +ddctm630 comparetotmag -12.1234 -12 -> 1 +ddctm631 comparetotmag -12.1234 -12.0 -> 1 +ddctm632 comparetotmag -12.1234 -12.00 -> 1 +ddctm633 comparetotmag -12.1234 -12.000 -> 1 +ddctm634 comparetotmag -12.1234 -12.0000 -> 1 +ddctm635 comparetotmag -12.1234 -12.00000 -> 1 +ddctm636 comparetotmag -12.1234 -12.000000 -> 1 +ddctm637 comparetotmag -12.1234 -12.0000000 -> 1 +ddctm638 comparetotmag -12.1234 -12.00000000 -> 1 +ddctm639 comparetotmag -12.1234 -12.000000000 -> 1 + +-- extended zeros +ddctm640 comparetotmag 0 0 -> 0 +ddctm641 comparetotmag 0 -0 -> 0 +ddctm642 comparetotmag 0 -0.0 -> 1 +ddctm643 comparetotmag 0 0.0 -> 1 +ddctm644 comparetotmag -0 0 -> 0 +ddctm645 comparetotmag -0 -0 -> 0 +ddctm646 comparetotmag -0 -0.0 -> 1 +ddctm647 comparetotmag -0 0.0 -> 1 +ddctm648 comparetotmag 0.0 0 -> -1 +ddctm649 comparetotmag 0.0 -0 -> -1 +ddctm650 comparetotmag 0.0 -0.0 -> 0 +ddctm651 comparetotmag 0.0 0.0 -> 0 +ddctm652 comparetotmag -0.0 0 -> -1 +ddctm653 comparetotmag -0.0 -0 -> -1 +ddctm654 comparetotmag -0.0 -0.0 -> 0 +ddctm655 comparetotmag -0.0 0.0 -> 0 + +ddctm656 comparetotmag -0E1 0.0 -> 1 +ddctm657 comparetotmag -0E2 0.0 -> 1 +ddctm658 comparetotmag 0E1 0.0 -> 1 +ddctm659 comparetotmag 0E2 0.0 -> 1 +ddctm660 comparetotmag -0E1 0 -> 1 +ddctm661 comparetotmag -0E2 0 -> 1 +ddctm662 comparetotmag 0E1 0 -> 1 +ddctm663 comparetotmag 0E2 0 -> 1 +ddctm664 comparetotmag -0E1 -0E1 -> 0 +ddctm665 comparetotmag -0E2 -0E1 -> 1 +ddctm666 comparetotmag 0E1 -0E1 -> 0 +ddctm667 comparetotmag 0E2 -0E1 -> 1 +ddctm668 comparetotmag -0E1 -0E2 -> -1 +ddctm669 comparetotmag -0E2 -0E2 -> 0 +ddctm670 comparetotmag 0E1 -0E2 -> -1 +ddctm671 comparetotmag 0E2 -0E2 -> 0 +ddctm672 comparetotmag -0E1 0E1 -> 0 +ddctm673 comparetotmag -0E2 0E1 -> 1 +ddctm674 comparetotmag 0E1 0E1 -> 0 +ddctm675 comparetotmag 0E2 0E1 -> 1 +ddctm676 comparetotmag -0E1 0E2 -> -1 +ddctm677 comparetotmag -0E2 0E2 -> 0 +ddctm678 comparetotmag 0E1 0E2 -> -1 +ddctm679 comparetotmag 0E2 0E2 -> 0 + +-- trailing zeros; unit-y +ddctm680 comparetotmag 12 12 -> 0 +ddctm681 comparetotmag 12 12.0 -> 1 +ddctm682 comparetotmag 12 12.00 -> 1 +ddctm683 comparetotmag 12 12.000 -> 1 +ddctm684 comparetotmag 12 12.0000 -> 1 +ddctm685 comparetotmag 12 12.00000 -> 1 +ddctm686 comparetotmag 12 12.000000 -> 1 +ddctm687 comparetotmag 12 12.0000000 -> 1 +ddctm688 comparetotmag 12 12.00000000 -> 1 +ddctm689 comparetotmag 12 12.000000000 -> 1 +ddctm690 comparetotmag 12 12 -> 0 +ddctm691 comparetotmag 12.0 12 -> -1 +ddctm692 comparetotmag 12.00 12 -> -1 +ddctm693 comparetotmag 12.000 12 -> -1 +ddctm694 comparetotmag 12.0000 12 -> -1 +ddctm695 comparetotmag 12.00000 12 -> -1 +ddctm696 comparetotmag 12.000000 12 -> -1 +ddctm697 comparetotmag 12.0000000 12 -> -1 +ddctm698 comparetotmag 12.00000000 12 -> -1 +ddctm699 comparetotmag 12.000000000 12 -> -1 + +-- old long operand checks +ddctm701 comparetotmag 12345678000 1 -> 1 +ddctm702 comparetotmag 1 12345678000 -> -1 +ddctm703 comparetotmag 1234567800 1 -> 1 +ddctm704 comparetotmag 1 1234567800 -> -1 +ddctm705 comparetotmag 1234567890 1 -> 1 +ddctm706 comparetotmag 1 1234567890 -> -1 +ddctm707 comparetotmag 1234567891 1 -> 1 +ddctm708 comparetotmag 1 1234567891 -> -1 +ddctm709 comparetotmag 12345678901 1 -> 1 +ddctm710 comparetotmag 1 12345678901 -> -1 +ddctm711 comparetotmag 1234567896 1 -> 1 +ddctm712 comparetotmag 1 1234567896 -> -1 +ddctm713 comparetotmag -1234567891 1 -> 1 +ddctm714 comparetotmag 1 -1234567891 -> -1 +ddctm715 comparetotmag -12345678901 1 -> 1 +ddctm716 comparetotmag 1 -12345678901 -> -1 +ddctm717 comparetotmag -1234567896 1 -> 1 +ddctm718 comparetotmag 1 -1234567896 -> -1 + +-- old residue cases +ddctm740 comparetotmag 1 0.9999999 -> 1 +ddctm741 comparetotmag 1 0.999999 -> 1 +ddctm742 comparetotmag 1 0.99999 -> 1 +ddctm743 comparetotmag 1 1.0000 -> 1 +ddctm744 comparetotmag 1 1.00001 -> -1 +ddctm745 comparetotmag 1 1.000001 -> -1 +ddctm746 comparetotmag 1 1.0000001 -> -1 +ddctm750 comparetotmag 0.9999999 1 -> -1 +ddctm751 comparetotmag 0.999999 1 -> -1 +ddctm752 comparetotmag 0.99999 1 -> -1 +ddctm753 comparetotmag 1.0000 1 -> -1 +ddctm754 comparetotmag 1.00001 1 -> 1 +ddctm755 comparetotmag 1.000001 1 -> 1 +ddctm756 comparetotmag 1.0000001 1 -> 1 + +-- Specials +ddctm780 comparetotmag Inf -Inf -> 0 +ddctm781 comparetotmag Inf -1000 -> 1 +ddctm782 comparetotmag Inf -1 -> 1 +ddctm783 comparetotmag Inf -0 -> 1 +ddctm784 comparetotmag Inf 0 -> 1 +ddctm785 comparetotmag Inf 1 -> 1 +ddctm786 comparetotmag Inf 1000 -> 1 +ddctm787 comparetotmag Inf Inf -> 0 +ddctm788 comparetotmag -1000 Inf -> -1 +ddctm789 comparetotmag -Inf Inf -> 0 +ddctm790 comparetotmag -1 Inf -> -1 +ddctm791 comparetotmag -0 Inf -> -1 +ddctm792 comparetotmag 0 Inf -> -1 +ddctm793 comparetotmag 1 Inf -> -1 +ddctm794 comparetotmag 1000 Inf -> -1 +ddctm795 comparetotmag Inf Inf -> 0 + +ddctm800 comparetotmag -Inf -Inf -> 0 +ddctm801 comparetotmag -Inf -1000 -> 1 +ddctm802 comparetotmag -Inf -1 -> 1 +ddctm803 comparetotmag -Inf -0 -> 1 +ddctm804 comparetotmag -Inf 0 -> 1 +ddctm805 comparetotmag -Inf 1 -> 1 +ddctm806 comparetotmag -Inf 1000 -> 1 +ddctm807 comparetotmag -Inf Inf -> 0 +ddctm808 comparetotmag -Inf -Inf -> 0 +ddctm809 comparetotmag -1000 -Inf -> -1 +ddctm810 comparetotmag -1 -Inf -> -1 +ddctm811 comparetotmag -0 -Inf -> -1 +ddctm812 comparetotmag 0 -Inf -> -1 +ddctm813 comparetotmag 1 -Inf -> -1 +ddctm814 comparetotmag 1000 -Inf -> -1 +ddctm815 comparetotmag Inf -Inf -> 0 + +ddctm821 comparetotmag NaN -Inf -> 1 +ddctm822 comparetotmag NaN -1000 -> 1 +ddctm823 comparetotmag NaN -1 -> 1 +ddctm824 comparetotmag NaN -0 -> 1 +ddctm825 comparetotmag NaN 0 -> 1 +ddctm826 comparetotmag NaN 1 -> 1 +ddctm827 comparetotmag NaN 1000 -> 1 +ddctm828 comparetotmag NaN Inf -> 1 +ddctm829 comparetotmag NaN NaN -> 0 +ddctm830 comparetotmag -Inf NaN -> -1 +ddctm831 comparetotmag -1000 NaN -> -1 +ddctm832 comparetotmag -1 NaN -> -1 +ddctm833 comparetotmag -0 NaN -> -1 +ddctm834 comparetotmag 0 NaN -> -1 +ddctm835 comparetotmag 1 NaN -> -1 +ddctm836 comparetotmag 1000 NaN -> -1 +ddctm837 comparetotmag Inf NaN -> -1 +ddctm838 comparetotmag -NaN -NaN -> 0 +ddctm839 comparetotmag +NaN -NaN -> 0 +ddctm840 comparetotmag -NaN +NaN -> 0 + +ddctm841 comparetotmag sNaN -sNaN -> 0 +ddctm842 comparetotmag sNaN -NaN -> -1 +ddctm843 comparetotmag sNaN -Inf -> 1 +ddctm844 comparetotmag sNaN -1000 -> 1 +ddctm845 comparetotmag sNaN -1 -> 1 +ddctm846 comparetotmag sNaN -0 -> 1 +ddctm847 comparetotmag sNaN 0 -> 1 +ddctm848 comparetotmag sNaN 1 -> 1 +ddctm849 comparetotmag sNaN 1000 -> 1 +ddctm850 comparetotmag sNaN NaN -> -1 +ddctm851 comparetotmag sNaN sNaN -> 0 + +ddctm852 comparetotmag -sNaN sNaN -> 0 +ddctm853 comparetotmag -NaN sNaN -> 1 +ddctm854 comparetotmag -Inf sNaN -> -1 +ddctm855 comparetotmag -1000 sNaN -> -1 +ddctm856 comparetotmag -1 sNaN -> -1 +ddctm857 comparetotmag -0 sNaN -> -1 +ddctm858 comparetotmag 0 sNaN -> -1 +ddctm859 comparetotmag 1 sNaN -> -1 +ddctm860 comparetotmag 1000 sNaN -> -1 +ddctm861 comparetotmag Inf sNaN -> -1 +ddctm862 comparetotmag NaN sNaN -> 1 +ddctm863 comparetotmag sNaN sNaN -> 0 + +ddctm871 comparetotmag -sNaN -sNaN -> 0 +ddctm872 comparetotmag -sNaN -NaN -> -1 +ddctm873 comparetotmag -sNaN -Inf -> 1 +ddctm874 comparetotmag -sNaN -1000 -> 1 +ddctm875 comparetotmag -sNaN -1 -> 1 +ddctm876 comparetotmag -sNaN -0 -> 1 +ddctm877 comparetotmag -sNaN 0 -> 1 +ddctm878 comparetotmag -sNaN 1 -> 1 +ddctm879 comparetotmag -sNaN 1000 -> 1 +ddctm880 comparetotmag -sNaN NaN -> -1 +ddctm881 comparetotmag -sNaN sNaN -> 0 + +ddctm882 comparetotmag -sNaN -sNaN -> 0 +ddctm883 comparetotmag -NaN -sNaN -> 1 +ddctm884 comparetotmag -Inf -sNaN -> -1 +ddctm885 comparetotmag -1000 -sNaN -> -1 +ddctm886 comparetotmag -1 -sNaN -> -1 +ddctm887 comparetotmag -0 -sNaN -> -1 +ddctm888 comparetotmag 0 -sNaN -> -1 +ddctm889 comparetotmag 1 -sNaN -> -1 +ddctm890 comparetotmag 1000 -sNaN -> -1 +ddctm891 comparetotmag Inf -sNaN -> -1 +ddctm892 comparetotmag NaN -sNaN -> 1 +ddctm893 comparetotmag sNaN -sNaN -> 0 + +-- NaNs with payload +ddctm960 comparetotmag NaN9 -Inf -> 1 +ddctm961 comparetotmag NaN8 999 -> 1 +ddctm962 comparetotmag NaN77 Inf -> 1 +ddctm963 comparetotmag -NaN67 NaN5 -> 1 +ddctm964 comparetotmag -Inf -NaN4 -> -1 +ddctm965 comparetotmag -999 -NaN33 -> -1 +ddctm966 comparetotmag Inf NaN2 -> -1 + +ddctm970 comparetotmag -NaN41 -NaN42 -> -1 +ddctm971 comparetotmag +NaN41 -NaN42 -> -1 +ddctm972 comparetotmag -NaN41 +NaN42 -> -1 +ddctm973 comparetotmag +NaN41 +NaN42 -> -1 +ddctm974 comparetotmag -NaN42 -NaN01 -> 1 +ddctm975 comparetotmag +NaN42 -NaN01 -> 1 +ddctm976 comparetotmag -NaN42 +NaN01 -> 1 +ddctm977 comparetotmag +NaN42 +NaN01 -> 1 + +ddctm980 comparetotmag -sNaN771 -sNaN772 -> -1 +ddctm981 comparetotmag +sNaN771 -sNaN772 -> -1 +ddctm982 comparetotmag -sNaN771 +sNaN772 -> -1 +ddctm983 comparetotmag +sNaN771 +sNaN772 -> -1 +ddctm984 comparetotmag -sNaN772 -sNaN771 -> 1 +ddctm985 comparetotmag +sNaN772 -sNaN771 -> 1 +ddctm986 comparetotmag -sNaN772 +sNaN771 -> 1 +ddctm987 comparetotmag +sNaN772 +sNaN771 -> 1 + +ddctm991 comparetotmag -sNaN99 -Inf -> 1 +ddctm992 comparetotmag sNaN98 -11 -> 1 +ddctm993 comparetotmag sNaN97 NaN -> -1 +ddctm994 comparetotmag sNaN16 sNaN94 -> -1 +ddctm995 comparetotmag NaN85 sNaN83 -> 1 +ddctm996 comparetotmag -Inf sNaN92 -> -1 +ddctm997 comparetotmag 088 sNaN81 -> -1 +ddctm998 comparetotmag Inf sNaN90 -> -1 +ddctm999 comparetotmag NaN -sNaN89 -> 1 + +-- spread zeros +ddctm1110 comparetotmag 0E-383 0 -> -1 +ddctm1111 comparetotmag 0E-383 -0 -> -1 +ddctm1112 comparetotmag -0E-383 0 -> -1 +ddctm1113 comparetotmag -0E-383 -0 -> -1 +ddctm1114 comparetotmag 0E-383 0E+384 -> -1 +ddctm1115 comparetotmag 0E-383 -0E+384 -> -1 +ddctm1116 comparetotmag -0E-383 0E+384 -> -1 +ddctm1117 comparetotmag -0E-383 -0E+384 -> -1 +ddctm1118 comparetotmag 0 0E+384 -> -1 +ddctm1119 comparetotmag 0 -0E+384 -> -1 +ddctm1120 comparetotmag -0 0E+384 -> -1 +ddctm1121 comparetotmag -0 -0E+384 -> -1 + +ddctm1130 comparetotmag 0E+384 0 -> 1 +ddctm1131 comparetotmag 0E+384 -0 -> 1 +ddctm1132 comparetotmag -0E+384 0 -> 1 +ddctm1133 comparetotmag -0E+384 -0 -> 1 +ddctm1134 comparetotmag 0E+384 0E-383 -> 1 +ddctm1135 comparetotmag 0E+384 -0E-383 -> 1 +ddctm1136 comparetotmag -0E+384 0E-383 -> 1 +ddctm1137 comparetotmag -0E+384 -0E-383 -> 1 +ddctm1138 comparetotmag 0 0E-383 -> 1 +ddctm1139 comparetotmag 0 -0E-383 -> 1 +ddctm1140 comparetotmag -0 0E-383 -> 1 +ddctm1141 comparetotmag -0 -0E-383 -> 1 + +-- Null tests +ddctm9990 comparetotmag 10 # -> NaN Invalid_operation +ddctm9991 comparetotmag # 10 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/ddCopy.decTest b/Lib/test/decimaltestdata/ddCopy.decTest index f99d86a426..9a175c5ea7 100644 --- a/Lib/test/decimaltestdata/ddCopy.decTest +++ b/Lib/test/decimaltestdata/ddCopy.decTest @@ -1,88 +1,88 @@ -------------------------------------------------------------------------
--- ddCopy.decTest -- quiet decDouble copy --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- All operands and results are decDoubles.
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
--- Sanity check
-ddcpy001 copy +7.50 -> 7.50
-
--- Infinities
-ddcpy011 copy Infinity -> Infinity
-ddcpy012 copy -Infinity -> -Infinity
-
--- NaNs, 0 payload
-ddcpy021 copy NaN -> NaN
-ddcpy022 copy -NaN -> -NaN
-ddcpy023 copy sNaN -> sNaN
-ddcpy024 copy -sNaN -> -sNaN
-
--- NaNs, non-0 payload
-ddcpy031 copy NaN10 -> NaN10
-ddcpy032 copy -NaN10 -> -NaN10
-ddcpy033 copy sNaN10 -> sNaN10
-ddcpy034 copy -sNaN10 -> -sNaN10
-ddcpy035 copy NaN7 -> NaN7
-ddcpy036 copy -NaN7 -> -NaN7
-ddcpy037 copy sNaN101 -> sNaN101
-ddcpy038 copy -sNaN101 -> -sNaN101
-
--- finites
-ddcpy101 copy 7 -> 7
-ddcpy102 copy -7 -> -7
-ddcpy103 copy 75 -> 75
-ddcpy104 copy -75 -> -75
-ddcpy105 copy 7.50 -> 7.50
-ddcpy106 copy -7.50 -> -7.50
-ddcpy107 copy 7.500 -> 7.500
-ddcpy108 copy -7.500 -> -7.500
-
--- zeros
-ddcpy111 copy 0 -> 0
-ddcpy112 copy -0 -> -0
-ddcpy113 copy 0E+4 -> 0E+4
-ddcpy114 copy -0E+4 -> -0E+4
-ddcpy115 copy 0.0000 -> 0.0000
-ddcpy116 copy -0.0000 -> -0.0000
-ddcpy117 copy 0E-141 -> 0E-141
-ddcpy118 copy -0E-141 -> -0E-141
-
--- full coefficients, alternating bits
-ddcpy121 copy 2682682682682682 -> 2682682682682682
-ddcpy122 copy -2682682682682682 -> -2682682682682682
-ddcpy123 copy 1341341341341341 -> 1341341341341341
-ddcpy124 copy -1341341341341341 -> -1341341341341341
-
--- Nmax, Nmin, Ntiny
-ddcpy131 copy 9.999999999999999E+384 -> 9.999999999999999E+384
-ddcpy132 copy 1E-383 -> 1E-383
-ddcpy133 copy 1.000000000000000E-383 -> 1.000000000000000E-383
-ddcpy134 copy 1E-398 -> 1E-398
-
-ddcpy135 copy -1E-398 -> -1E-398
-ddcpy136 copy -1.000000000000000E-383 -> -1.000000000000000E-383
-ddcpy137 copy -1E-383 -> -1E-383
-ddcpy138 copy -9.999999999999999E+384 -> -9.999999999999999E+384
+------------------------------------------------------------------------ +-- ddCopy.decTest -- quiet decDouble copy -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- All operands and results are decDoubles. +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +-- Sanity check +ddcpy001 copy +7.50 -> 7.50 + +-- Infinities +ddcpy011 copy Infinity -> Infinity +ddcpy012 copy -Infinity -> -Infinity + +-- NaNs, 0 payload +ddcpy021 copy NaN -> NaN +ddcpy022 copy -NaN -> -NaN +ddcpy023 copy sNaN -> sNaN +ddcpy024 copy -sNaN -> -sNaN + +-- NaNs, non-0 payload +ddcpy031 copy NaN10 -> NaN10 +ddcpy032 copy -NaN10 -> -NaN10 +ddcpy033 copy sNaN10 -> sNaN10 +ddcpy034 copy -sNaN10 -> -sNaN10 +ddcpy035 copy NaN7 -> NaN7 +ddcpy036 copy -NaN7 -> -NaN7 +ddcpy037 copy sNaN101 -> sNaN101 +ddcpy038 copy -sNaN101 -> -sNaN101 + +-- finites +ddcpy101 copy 7 -> 7 +ddcpy102 copy -7 -> -7 +ddcpy103 copy 75 -> 75 +ddcpy104 copy -75 -> -75 +ddcpy105 copy 7.50 -> 7.50 +ddcpy106 copy -7.50 -> -7.50 +ddcpy107 copy 7.500 -> 7.500 +ddcpy108 copy -7.500 -> -7.500 + +-- zeros +ddcpy111 copy 0 -> 0 +ddcpy112 copy -0 -> -0 +ddcpy113 copy 0E+4 -> 0E+4 +ddcpy114 copy -0E+4 -> -0E+4 +ddcpy115 copy 0.0000 -> 0.0000 +ddcpy116 copy -0.0000 -> -0.0000 +ddcpy117 copy 0E-141 -> 0E-141 +ddcpy118 copy -0E-141 -> -0E-141 + +-- full coefficients, alternating bits +ddcpy121 copy 2682682682682682 -> 2682682682682682 +ddcpy122 copy -2682682682682682 -> -2682682682682682 +ddcpy123 copy 1341341341341341 -> 1341341341341341 +ddcpy124 copy -1341341341341341 -> -1341341341341341 + +-- Nmax, Nmin, Ntiny +ddcpy131 copy 9.999999999999999E+384 -> 9.999999999999999E+384 +ddcpy132 copy 1E-383 -> 1E-383 +ddcpy133 copy 1.000000000000000E-383 -> 1.000000000000000E-383 +ddcpy134 copy 1E-398 -> 1E-398 + +ddcpy135 copy -1E-398 -> -1E-398 +ddcpy136 copy -1.000000000000000E-383 -> -1.000000000000000E-383 +ddcpy137 copy -1E-383 -> -1E-383 +ddcpy138 copy -9.999999999999999E+384 -> -9.999999999999999E+384 diff --git a/Lib/test/decimaltestdata/ddCopyAbs.decTest b/Lib/test/decimaltestdata/ddCopyAbs.decTest index d436a1940c..4823cf2d77 100644 --- a/Lib/test/decimaltestdata/ddCopyAbs.decTest +++ b/Lib/test/decimaltestdata/ddCopyAbs.decTest @@ -1,88 +1,88 @@ -------------------------------------------------------------------------
--- ddCopyAbs.decTest -- quiet decDouble copy and set sign to zero --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- All operands and results are decDoubles.
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
--- Sanity check
-ddcpa001 copyabs +7.50 -> 7.50
-
--- Infinities
-ddcpa011 copyabs Infinity -> Infinity
-ddcpa012 copyabs -Infinity -> Infinity
-
--- NaNs, 0 payload
-ddcpa021 copyabs NaN -> NaN
-ddcpa022 copyabs -NaN -> NaN
-ddcpa023 copyabs sNaN -> sNaN
-ddcpa024 copyabs -sNaN -> sNaN
-
--- NaNs, non-0 payload
-ddcpa031 copyabs NaN10 -> NaN10
-ddcpa032 copyabs -NaN15 -> NaN15
-ddcpa033 copyabs sNaN15 -> sNaN15
-ddcpa034 copyabs -sNaN10 -> sNaN10
-ddcpa035 copyabs NaN7 -> NaN7
-ddcpa036 copyabs -NaN7 -> NaN7
-ddcpa037 copyabs sNaN101 -> sNaN101
-ddcpa038 copyabs -sNaN101 -> sNaN101
-
--- finites
-ddcpa101 copyabs 7 -> 7
-ddcpa102 copyabs -7 -> 7
-ddcpa103 copyabs 75 -> 75
-ddcpa104 copyabs -75 -> 75
-ddcpa105 copyabs 7.10 -> 7.10
-ddcpa106 copyabs -7.10 -> 7.10
-ddcpa107 copyabs 7.500 -> 7.500
-ddcpa108 copyabs -7.500 -> 7.500
-
--- zeros
-ddcpa111 copyabs 0 -> 0
-ddcpa112 copyabs -0 -> 0
-ddcpa113 copyabs 0E+6 -> 0E+6
-ddcpa114 copyabs -0E+6 -> 0E+6
-ddcpa115 copyabs 0.0000 -> 0.0000
-ddcpa116 copyabs -0.0000 -> 0.0000
-ddcpa117 copyabs 0E-141 -> 0E-141
-ddcpa118 copyabs -0E-141 -> 0E-141
-
--- full coefficients, alternating bits
-ddcpa121 copyabs 2682682682682682 -> 2682682682682682
-ddcpa122 copyabs -2682682682682682 -> 2682682682682682
-ddcpa123 copyabs 1341341341341341 -> 1341341341341341
-ddcpa124 copyabs -1341341341341341 -> 1341341341341341
-
--- Nmax, Nmin, Ntiny
-ddcpa131 copyabs 9.999999999999999E+384 -> 9.999999999999999E+384
-ddcpa132 copyabs 1E-383 -> 1E-383
-ddcpa133 copyabs 1.000000000000000E-383 -> 1.000000000000000E-383
-ddcpa134 copyabs 1E-398 -> 1E-398
-
-ddcpa135 copyabs -1E-398 -> 1E-398
-ddcpa136 copyabs -1.000000000000000E-383 -> 1.000000000000000E-383
-ddcpa137 copyabs -1E-383 -> 1E-383
-ddcpa138 copyabs -9.999999999999999E+384 -> 9.999999999999999E+384
+------------------------------------------------------------------------ +-- ddCopyAbs.decTest -- quiet decDouble copy and set sign to zero -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- All operands and results are decDoubles. +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +-- Sanity check +ddcpa001 copyabs +7.50 -> 7.50 + +-- Infinities +ddcpa011 copyabs Infinity -> Infinity +ddcpa012 copyabs -Infinity -> Infinity + +-- NaNs, 0 payload +ddcpa021 copyabs NaN -> NaN +ddcpa022 copyabs -NaN -> NaN +ddcpa023 copyabs sNaN -> sNaN +ddcpa024 copyabs -sNaN -> sNaN + +-- NaNs, non-0 payload +ddcpa031 copyabs NaN10 -> NaN10 +ddcpa032 copyabs -NaN15 -> NaN15 +ddcpa033 copyabs sNaN15 -> sNaN15 +ddcpa034 copyabs -sNaN10 -> sNaN10 +ddcpa035 copyabs NaN7 -> NaN7 +ddcpa036 copyabs -NaN7 -> NaN7 +ddcpa037 copyabs sNaN101 -> sNaN101 +ddcpa038 copyabs -sNaN101 -> sNaN101 + +-- finites +ddcpa101 copyabs 7 -> 7 +ddcpa102 copyabs -7 -> 7 +ddcpa103 copyabs 75 -> 75 +ddcpa104 copyabs -75 -> 75 +ddcpa105 copyabs 7.10 -> 7.10 +ddcpa106 copyabs -7.10 -> 7.10 +ddcpa107 copyabs 7.500 -> 7.500 +ddcpa108 copyabs -7.500 -> 7.500 + +-- zeros +ddcpa111 copyabs 0 -> 0 +ddcpa112 copyabs -0 -> 0 +ddcpa113 copyabs 0E+6 -> 0E+6 +ddcpa114 copyabs -0E+6 -> 0E+6 +ddcpa115 copyabs 0.0000 -> 0.0000 +ddcpa116 copyabs -0.0000 -> 0.0000 +ddcpa117 copyabs 0E-141 -> 0E-141 +ddcpa118 copyabs -0E-141 -> 0E-141 + +-- full coefficients, alternating bits +ddcpa121 copyabs 2682682682682682 -> 2682682682682682 +ddcpa122 copyabs -2682682682682682 -> 2682682682682682 +ddcpa123 copyabs 1341341341341341 -> 1341341341341341 +ddcpa124 copyabs -1341341341341341 -> 1341341341341341 + +-- Nmax, Nmin, Ntiny +ddcpa131 copyabs 9.999999999999999E+384 -> 9.999999999999999E+384 +ddcpa132 copyabs 1E-383 -> 1E-383 +ddcpa133 copyabs 1.000000000000000E-383 -> 1.000000000000000E-383 +ddcpa134 copyabs 1E-398 -> 1E-398 + +ddcpa135 copyabs -1E-398 -> 1E-398 +ddcpa136 copyabs -1.000000000000000E-383 -> 1.000000000000000E-383 +ddcpa137 copyabs -1E-383 -> 1E-383 +ddcpa138 copyabs -9.999999999999999E+384 -> 9.999999999999999E+384 diff --git a/Lib/test/decimaltestdata/ddCopyNegate.decTest b/Lib/test/decimaltestdata/ddCopyNegate.decTest index a4c4274372..121945c755 100644 --- a/Lib/test/decimaltestdata/ddCopyNegate.decTest +++ b/Lib/test/decimaltestdata/ddCopyNegate.decTest @@ -1,88 +1,88 @@ -------------------------------------------------------------------------
--- ddCopyNegate.decTest -- quiet decDouble copy and negate --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- All operands and results are decDoubles.
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
--- Sanity check
-ddcpn001 copynegate +7.50 -> -7.50
-
--- Infinities
-ddcpn011 copynegate Infinity -> -Infinity
-ddcpn012 copynegate -Infinity -> Infinity
-
--- NaNs, 0 payload
-ddcpn021 copynegate NaN -> -NaN
-ddcpn022 copynegate -NaN -> NaN
-ddcpn023 copynegate sNaN -> -sNaN
-ddcpn024 copynegate -sNaN -> sNaN
-
--- NaNs, non-0 payload
-ddcpn031 copynegate NaN13 -> -NaN13
-ddcpn032 copynegate -NaN13 -> NaN13
-ddcpn033 copynegate sNaN13 -> -sNaN13
-ddcpn034 copynegate -sNaN13 -> sNaN13
-ddcpn035 copynegate NaN70 -> -NaN70
-ddcpn036 copynegate -NaN70 -> NaN70
-ddcpn037 copynegate sNaN101 -> -sNaN101
-ddcpn038 copynegate -sNaN101 -> sNaN101
-
--- finites
-ddcpn101 copynegate 7 -> -7
-ddcpn102 copynegate -7 -> 7
-ddcpn103 copynegate 75 -> -75
-ddcpn104 copynegate -75 -> 75
-ddcpn105 copynegate 7.50 -> -7.50
-ddcpn106 copynegate -7.50 -> 7.50
-ddcpn107 copynegate 7.500 -> -7.500
-ddcpn108 copynegate -7.500 -> 7.500
-
--- zeros
-ddcpn111 copynegate 0 -> -0
-ddcpn112 copynegate -0 -> 0
-ddcpn113 copynegate 0E+4 -> -0E+4
-ddcpn114 copynegate -0E+4 -> 0E+4
-ddcpn115 copynegate 0.0000 -> -0.0000
-ddcpn116 copynegate -0.0000 -> 0.0000
-ddcpn117 copynegate 0E-141 -> -0E-141
-ddcpn118 copynegate -0E-141 -> 0E-141
-
--- full coefficients, alternating bits
-ddcpn121 copynegate 2682682682682682 -> -2682682682682682
-ddcpn122 copynegate -2682682682682682 -> 2682682682682682
-ddcpn123 copynegate 1341341341341341 -> -1341341341341341
-ddcpn124 copynegate -1341341341341341 -> 1341341341341341
-
--- Nmax, Nmin, Ntiny
-ddcpn131 copynegate 9.999999999999999E+384 -> -9.999999999999999E+384
-ddcpn132 copynegate 1E-383 -> -1E-383
-ddcpn133 copynegate 1.000000000000000E-383 -> -1.000000000000000E-383
-ddcpn134 copynegate 1E-398 -> -1E-398
-
-ddcpn135 copynegate -1E-398 -> 1E-398
-ddcpn136 copynegate -1.000000000000000E-383 -> 1.000000000000000E-383
-ddcpn137 copynegate -1E-383 -> 1E-383
-ddcpn138 copynegate -9.999999999999999E+384 -> 9.999999999999999E+384
+------------------------------------------------------------------------ +-- ddCopyNegate.decTest -- quiet decDouble copy and negate -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- All operands and results are decDoubles. +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +-- Sanity check +ddcpn001 copynegate +7.50 -> -7.50 + +-- Infinities +ddcpn011 copynegate Infinity -> -Infinity +ddcpn012 copynegate -Infinity -> Infinity + +-- NaNs, 0 payload +ddcpn021 copynegate NaN -> -NaN +ddcpn022 copynegate -NaN -> NaN +ddcpn023 copynegate sNaN -> -sNaN +ddcpn024 copynegate -sNaN -> sNaN + +-- NaNs, non-0 payload +ddcpn031 copynegate NaN13 -> -NaN13 +ddcpn032 copynegate -NaN13 -> NaN13 +ddcpn033 copynegate sNaN13 -> -sNaN13 +ddcpn034 copynegate -sNaN13 -> sNaN13 +ddcpn035 copynegate NaN70 -> -NaN70 +ddcpn036 copynegate -NaN70 -> NaN70 +ddcpn037 copynegate sNaN101 -> -sNaN101 +ddcpn038 copynegate -sNaN101 -> sNaN101 + +-- finites +ddcpn101 copynegate 7 -> -7 +ddcpn102 copynegate -7 -> 7 +ddcpn103 copynegate 75 -> -75 +ddcpn104 copynegate -75 -> 75 +ddcpn105 copynegate 7.50 -> -7.50 +ddcpn106 copynegate -7.50 -> 7.50 +ddcpn107 copynegate 7.500 -> -7.500 +ddcpn108 copynegate -7.500 -> 7.500 + +-- zeros +ddcpn111 copynegate 0 -> -0 +ddcpn112 copynegate -0 -> 0 +ddcpn113 copynegate 0E+4 -> -0E+4 +ddcpn114 copynegate -0E+4 -> 0E+4 +ddcpn115 copynegate 0.0000 -> -0.0000 +ddcpn116 copynegate -0.0000 -> 0.0000 +ddcpn117 copynegate 0E-141 -> -0E-141 +ddcpn118 copynegate -0E-141 -> 0E-141 + +-- full coefficients, alternating bits +ddcpn121 copynegate 2682682682682682 -> -2682682682682682 +ddcpn122 copynegate -2682682682682682 -> 2682682682682682 +ddcpn123 copynegate 1341341341341341 -> -1341341341341341 +ddcpn124 copynegate -1341341341341341 -> 1341341341341341 + +-- Nmax, Nmin, Ntiny +ddcpn131 copynegate 9.999999999999999E+384 -> -9.999999999999999E+384 +ddcpn132 copynegate 1E-383 -> -1E-383 +ddcpn133 copynegate 1.000000000000000E-383 -> -1.000000000000000E-383 +ddcpn134 copynegate 1E-398 -> -1E-398 + +ddcpn135 copynegate -1E-398 -> 1E-398 +ddcpn136 copynegate -1.000000000000000E-383 -> 1.000000000000000E-383 +ddcpn137 copynegate -1E-383 -> 1E-383 +ddcpn138 copynegate -9.999999999999999E+384 -> 9.999999999999999E+384 diff --git a/Lib/test/decimaltestdata/ddCopySign.decTest b/Lib/test/decimaltestdata/ddCopySign.decTest index 6a78083ad5..c99544d9ab 100644 --- a/Lib/test/decimaltestdata/ddCopySign.decTest +++ b/Lib/test/decimaltestdata/ddCopySign.decTest @@ -1,175 +1,175 @@ -------------------------------------------------------------------------
--- ddCopySign.decTest -- quiet decDouble copy with sign from rhs --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- All operands and results are decDoubles.
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
--- Sanity check
-ddcps001 copysign +7.50 11 -> 7.50
-
--- Infinities
-ddcps011 copysign Infinity 11 -> Infinity
-ddcps012 copysign -Infinity 11 -> Infinity
-
--- NaNs, 0 payload
-ddcps021 copysign NaN 11 -> NaN
-ddcps022 copysign -NaN 11 -> NaN
-ddcps023 copysign sNaN 11 -> sNaN
-ddcps024 copysign -sNaN 11 -> sNaN
-
--- NaNs, non-0 payload
-ddcps031 copysign NaN10 11 -> NaN10
-ddcps032 copysign -NaN10 11 -> NaN10
-ddcps033 copysign sNaN10 11 -> sNaN10
-ddcps034 copysign -sNaN10 11 -> sNaN10
-ddcps035 copysign NaN7 11 -> NaN7
-ddcps036 copysign -NaN7 11 -> NaN7
-ddcps037 copysign sNaN101 11 -> sNaN101
-ddcps038 copysign -sNaN101 11 -> sNaN101
-
--- finites
-ddcps101 copysign 7 11 -> 7
-ddcps102 copysign -7 11 -> 7
-ddcps103 copysign 75 11 -> 75
-ddcps104 copysign -75 11 -> 75
-ddcps105 copysign 7.50 11 -> 7.50
-ddcps106 copysign -7.50 11 -> 7.50
-ddcps107 copysign 7.500 11 -> 7.500
-ddcps108 copysign -7.500 11 -> 7.500
-
--- zeros
-ddcps111 copysign 0 11 -> 0
-ddcps112 copysign -0 11 -> 0
-ddcps113 copysign 0E+4 11 -> 0E+4
-ddcps114 copysign -0E+4 11 -> 0E+4
-ddcps115 copysign 0.0000 11 -> 0.0000
-ddcps116 copysign -0.0000 11 -> 0.0000
-ddcps117 copysign 0E-141 11 -> 0E-141
-ddcps118 copysign -0E-141 11 -> 0E-141
-
--- full coefficients, alternating bits
-ddcps121 copysign 2682682682682682 11 -> 2682682682682682
-ddcps122 copysign -2682682682682682 11 -> 2682682682682682
-ddcps123 copysign 1341341341341341 11 -> 1341341341341341
-ddcps124 copysign -1341341341341341 11 -> 1341341341341341
-
--- Nmax, Nmin, Ntiny
-ddcps131 copysign 9.999999999999999E+384 11 -> 9.999999999999999E+384
-ddcps132 copysign 1E-383 11 -> 1E-383
-ddcps133 copysign 1.000000000000000E-383 11 -> 1.000000000000000E-383
-ddcps134 copysign 1E-398 11 -> 1E-398
-
-ddcps135 copysign -1E-398 11 -> 1E-398
-ddcps136 copysign -1.000000000000000E-383 11 -> 1.000000000000000E-383
-ddcps137 copysign -1E-383 11 -> 1E-383
-ddcps138 copysign -9.999999999999999E+384 11 -> 9.999999999999999E+384
-
--- repeat with negative RHS
-
--- Infinities
-ddcps211 copysign Infinity -34 -> -Infinity
-ddcps212 copysign -Infinity -34 -> -Infinity
-
--- NaNs, 0 payload
-ddcps221 copysign NaN -34 -> -NaN
-ddcps222 copysign -NaN -34 -> -NaN
-ddcps223 copysign sNaN -34 -> -sNaN
-ddcps224 copysign -sNaN -34 -> -sNaN
-
--- NaNs, non-0 payload
-ddcps231 copysign NaN10 -34 -> -NaN10
-ddcps232 copysign -NaN10 -34 -> -NaN10
-ddcps233 copysign sNaN10 -34 -> -sNaN10
-ddcps234 copysign -sNaN10 -34 -> -sNaN10
-ddcps235 copysign NaN7 -34 -> -NaN7
-ddcps236 copysign -NaN7 -34 -> -NaN7
-ddcps237 copysign sNaN101 -34 -> -sNaN101
-ddcps238 copysign -sNaN101 -34 -> -sNaN101
-
--- finites
-ddcps301 copysign 7 -34 -> -7
-ddcps302 copysign -7 -34 -> -7
-ddcps303 copysign 75 -34 -> -75
-ddcps304 copysign -75 -34 -> -75
-ddcps305 copysign 7.50 -34 -> -7.50
-ddcps306 copysign -7.50 -34 -> -7.50
-ddcps307 copysign 7.500 -34 -> -7.500
-ddcps308 copysign -7.500 -34 -> -7.500
-
--- zeros
-ddcps311 copysign 0 -34 -> -0
-ddcps312 copysign -0 -34 -> -0
-ddcps313 copysign 0E+4 -34 -> -0E+4
-ddcps314 copysign -0E+4 -34 -> -0E+4
-ddcps315 copysign 0.0000 -34 -> -0.0000
-ddcps316 copysign -0.0000 -34 -> -0.0000
-ddcps317 copysign 0E-141 -34 -> -0E-141
-ddcps318 copysign -0E-141 -34 -> -0E-141
-
--- full coefficients, alternating bits
-ddcps321 copysign 2682682682682682 -34 -> -2682682682682682
-ddcps322 copysign -2682682682682682 -34 -> -2682682682682682
-ddcps323 copysign 1341341341341341 -34 -> -1341341341341341
-ddcps324 copysign -1341341341341341 -34 -> -1341341341341341
-
--- Nmax, Nmin, Ntiny
-ddcps331 copysign 9.999999999999999E+384 -34 -> -9.999999999999999E+384
-ddcps332 copysign 1E-383 -34 -> -1E-383
-ddcps333 copysign 1.000000000000000E-383 -34 -> -1.000000000000000E-383
-ddcps334 copysign 1E-398 -34 -> -1E-398
-
-ddcps335 copysign -1E-398 -34 -> -1E-398
-ddcps336 copysign -1.000000000000000E-383 -34 -> -1.000000000000000E-383
-ddcps337 copysign -1E-383 -34 -> -1E-383
-ddcps338 copysign -9.999999999999999E+384 -34 -> -9.999999999999999E+384
-
--- Other kinds of RHS
-ddcps401 copysign 701 -34 -> -701
-ddcps402 copysign -720 -34 -> -720
-ddcps403 copysign 701 -0 -> -701
-ddcps404 copysign -720 -0 -> -720
-ddcps405 copysign 701 +0 -> 701
-ddcps406 copysign -720 +0 -> 720
-ddcps407 copysign 701 +34 -> 701
-ddcps408 copysign -720 +34 -> 720
-
-ddcps413 copysign 701 -Inf -> -701
-ddcps414 copysign -720 -Inf -> -720
-ddcps415 copysign 701 +Inf -> 701
-ddcps416 copysign -720 +Inf -> 720
-
-ddcps420 copysign 701 -NaN -> -701
-ddcps421 copysign -720 -NaN -> -720
-ddcps422 copysign 701 +NaN -> 701
-ddcps423 copysign -720 +NaN -> 720
-ddcps425 copysign -720 +NaN8 -> 720
-
-ddcps426 copysign 701 -sNaN -> -701
-ddcps427 copysign -720 -sNaN -> -720
-ddcps428 copysign 701 +sNaN -> 701
-ddcps429 copysign -720 +sNaN -> 720
-ddcps430 copysign -720 +sNaN3 -> 720
-
+------------------------------------------------------------------------ +-- ddCopySign.decTest -- quiet decDouble copy with sign from rhs -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- All operands and results are decDoubles. +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +-- Sanity check +ddcps001 copysign +7.50 11 -> 7.50 + +-- Infinities +ddcps011 copysign Infinity 11 -> Infinity +ddcps012 copysign -Infinity 11 -> Infinity + +-- NaNs, 0 payload +ddcps021 copysign NaN 11 -> NaN +ddcps022 copysign -NaN 11 -> NaN +ddcps023 copysign sNaN 11 -> sNaN +ddcps024 copysign -sNaN 11 -> sNaN + +-- NaNs, non-0 payload +ddcps031 copysign NaN10 11 -> NaN10 +ddcps032 copysign -NaN10 11 -> NaN10 +ddcps033 copysign sNaN10 11 -> sNaN10 +ddcps034 copysign -sNaN10 11 -> sNaN10 +ddcps035 copysign NaN7 11 -> NaN7 +ddcps036 copysign -NaN7 11 -> NaN7 +ddcps037 copysign sNaN101 11 -> sNaN101 +ddcps038 copysign -sNaN101 11 -> sNaN101 + +-- finites +ddcps101 copysign 7 11 -> 7 +ddcps102 copysign -7 11 -> 7 +ddcps103 copysign 75 11 -> 75 +ddcps104 copysign -75 11 -> 75 +ddcps105 copysign 7.50 11 -> 7.50 +ddcps106 copysign -7.50 11 -> 7.50 +ddcps107 copysign 7.500 11 -> 7.500 +ddcps108 copysign -7.500 11 -> 7.500 + +-- zeros +ddcps111 copysign 0 11 -> 0 +ddcps112 copysign -0 11 -> 0 +ddcps113 copysign 0E+4 11 -> 0E+4 +ddcps114 copysign -0E+4 11 -> 0E+4 +ddcps115 copysign 0.0000 11 -> 0.0000 +ddcps116 copysign -0.0000 11 -> 0.0000 +ddcps117 copysign 0E-141 11 -> 0E-141 +ddcps118 copysign -0E-141 11 -> 0E-141 + +-- full coefficients, alternating bits +ddcps121 copysign 2682682682682682 11 -> 2682682682682682 +ddcps122 copysign -2682682682682682 11 -> 2682682682682682 +ddcps123 copysign 1341341341341341 11 -> 1341341341341341 +ddcps124 copysign -1341341341341341 11 -> 1341341341341341 + +-- Nmax, Nmin, Ntiny +ddcps131 copysign 9.999999999999999E+384 11 -> 9.999999999999999E+384 +ddcps132 copysign 1E-383 11 -> 1E-383 +ddcps133 copysign 1.000000000000000E-383 11 -> 1.000000000000000E-383 +ddcps134 copysign 1E-398 11 -> 1E-398 + +ddcps135 copysign -1E-398 11 -> 1E-398 +ddcps136 copysign -1.000000000000000E-383 11 -> 1.000000000000000E-383 +ddcps137 copysign -1E-383 11 -> 1E-383 +ddcps138 copysign -9.999999999999999E+384 11 -> 9.999999999999999E+384 + +-- repeat with negative RHS + +-- Infinities +ddcps211 copysign Infinity -34 -> -Infinity +ddcps212 copysign -Infinity -34 -> -Infinity + +-- NaNs, 0 payload +ddcps221 copysign NaN -34 -> -NaN +ddcps222 copysign -NaN -34 -> -NaN +ddcps223 copysign sNaN -34 -> -sNaN +ddcps224 copysign -sNaN -34 -> -sNaN + +-- NaNs, non-0 payload +ddcps231 copysign NaN10 -34 -> -NaN10 +ddcps232 copysign -NaN10 -34 -> -NaN10 +ddcps233 copysign sNaN10 -34 -> -sNaN10 +ddcps234 copysign -sNaN10 -34 -> -sNaN10 +ddcps235 copysign NaN7 -34 -> -NaN7 +ddcps236 copysign -NaN7 -34 -> -NaN7 +ddcps237 copysign sNaN101 -34 -> -sNaN101 +ddcps238 copysign -sNaN101 -34 -> -sNaN101 + +-- finites +ddcps301 copysign 7 -34 -> -7 +ddcps302 copysign -7 -34 -> -7 +ddcps303 copysign 75 -34 -> -75 +ddcps304 copysign -75 -34 -> -75 +ddcps305 copysign 7.50 -34 -> -7.50 +ddcps306 copysign -7.50 -34 -> -7.50 +ddcps307 copysign 7.500 -34 -> -7.500 +ddcps308 copysign -7.500 -34 -> -7.500 + +-- zeros +ddcps311 copysign 0 -34 -> -0 +ddcps312 copysign -0 -34 -> -0 +ddcps313 copysign 0E+4 -34 -> -0E+4 +ddcps314 copysign -0E+4 -34 -> -0E+4 +ddcps315 copysign 0.0000 -34 -> -0.0000 +ddcps316 copysign -0.0000 -34 -> -0.0000 +ddcps317 copysign 0E-141 -34 -> -0E-141 +ddcps318 copysign -0E-141 -34 -> -0E-141 + +-- full coefficients, alternating bits +ddcps321 copysign 2682682682682682 -34 -> -2682682682682682 +ddcps322 copysign -2682682682682682 -34 -> -2682682682682682 +ddcps323 copysign 1341341341341341 -34 -> -1341341341341341 +ddcps324 copysign -1341341341341341 -34 -> -1341341341341341 + +-- Nmax, Nmin, Ntiny +ddcps331 copysign 9.999999999999999E+384 -34 -> -9.999999999999999E+384 +ddcps332 copysign 1E-383 -34 -> -1E-383 +ddcps333 copysign 1.000000000000000E-383 -34 -> -1.000000000000000E-383 +ddcps334 copysign 1E-398 -34 -> -1E-398 + +ddcps335 copysign -1E-398 -34 -> -1E-398 +ddcps336 copysign -1.000000000000000E-383 -34 -> -1.000000000000000E-383 +ddcps337 copysign -1E-383 -34 -> -1E-383 +ddcps338 copysign -9.999999999999999E+384 -34 -> -9.999999999999999E+384 + +-- Other kinds of RHS +ddcps401 copysign 701 -34 -> -701 +ddcps402 copysign -720 -34 -> -720 +ddcps403 copysign 701 -0 -> -701 +ddcps404 copysign -720 -0 -> -720 +ddcps405 copysign 701 +0 -> 701 +ddcps406 copysign -720 +0 -> 720 +ddcps407 copysign 701 +34 -> 701 +ddcps408 copysign -720 +34 -> 720 + +ddcps413 copysign 701 -Inf -> -701 +ddcps414 copysign -720 -Inf -> -720 +ddcps415 copysign 701 +Inf -> 701 +ddcps416 copysign -720 +Inf -> 720 + +ddcps420 copysign 701 -NaN -> -701 +ddcps421 copysign -720 -NaN -> -720 +ddcps422 copysign 701 +NaN -> 701 +ddcps423 copysign -720 +NaN -> 720 +ddcps425 copysign -720 +NaN8 -> 720 + +ddcps426 copysign 701 -sNaN -> -701 +ddcps427 copysign -720 -sNaN -> -720 +ddcps428 copysign 701 +sNaN -> 701 +ddcps429 copysign -720 +sNaN -> 720 +ddcps430 copysign -720 +sNaN3 -> 720 + diff --git a/Lib/test/decimaltestdata/ddDivide.decTest b/Lib/test/decimaltestdata/ddDivide.decTest index 5531d0e031..019db228d4 100644 --- a/Lib/test/decimaltestdata/ddDivide.decTest +++ b/Lib/test/decimaltestdata/ddDivide.decTest @@ -1,863 +1,863 @@ -------------------------------------------------------------------------
--- ddDivide.decTest -- decDouble division --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
--- sanity checks
-dddiv001 divide 1 1 -> 1
-dddiv002 divide 2 1 -> 2
-dddiv003 divide 1 2 -> 0.5
-dddiv004 divide 2 2 -> 1
-dddiv005 divide 0 1 -> 0
-dddiv006 divide 0 2 -> 0
-dddiv007 divide 1 3 -> 0.3333333333333333 Inexact Rounded
-dddiv008 divide 2 3 -> 0.6666666666666667 Inexact Rounded
-dddiv009 divide 3 3 -> 1
-
-dddiv010 divide 2.4 1 -> 2.4
-dddiv011 divide 2.4 -1 -> -2.4
-dddiv012 divide -2.4 1 -> -2.4
-dddiv013 divide -2.4 -1 -> 2.4
-dddiv014 divide 2.40 1 -> 2.40
-dddiv015 divide 2.400 1 -> 2.400
-dddiv016 divide 2.4 2 -> 1.2
-dddiv017 divide 2.400 2 -> 1.200
-dddiv018 divide 2. 2 -> 1
-dddiv019 divide 20 20 -> 1
-
-dddiv020 divide 187 187 -> 1
-dddiv021 divide 5 2 -> 2.5
-dddiv022 divide 50 20 -> 2.5
-dddiv023 divide 500 200 -> 2.5
-dddiv024 divide 50.0 20.0 -> 2.5
-dddiv025 divide 5.00 2.00 -> 2.5
-dddiv026 divide 5 2.0 -> 2.5
-dddiv027 divide 5 2.000 -> 2.5
-dddiv028 divide 5 0.20 -> 25
-dddiv029 divide 5 0.200 -> 25
-dddiv030 divide 10 1 -> 10
-dddiv031 divide 100 1 -> 100
-dddiv032 divide 1000 1 -> 1000
-dddiv033 divide 1000 100 -> 10
-
-dddiv035 divide 1 2 -> 0.5
-dddiv036 divide 1 4 -> 0.25
-dddiv037 divide 1 8 -> 0.125
-dddiv038 divide 1 16 -> 0.0625
-dddiv039 divide 1 32 -> 0.03125
-dddiv040 divide 1 64 -> 0.015625
-dddiv041 divide 1 -2 -> -0.5
-dddiv042 divide 1 -4 -> -0.25
-dddiv043 divide 1 -8 -> -0.125
-dddiv044 divide 1 -16 -> -0.0625
-dddiv045 divide 1 -32 -> -0.03125
-dddiv046 divide 1 -64 -> -0.015625
-dddiv047 divide -1 2 -> -0.5
-dddiv048 divide -1 4 -> -0.25
-dddiv049 divide -1 8 -> -0.125
-dddiv050 divide -1 16 -> -0.0625
-dddiv051 divide -1 32 -> -0.03125
-dddiv052 divide -1 64 -> -0.015625
-dddiv053 divide -1 -2 -> 0.5
-dddiv054 divide -1 -4 -> 0.25
-dddiv055 divide -1 -8 -> 0.125
-dddiv056 divide -1 -16 -> 0.0625
-dddiv057 divide -1 -32 -> 0.03125
-dddiv058 divide -1 -64 -> 0.015625
-
--- bcdTime
-dddiv060 divide 1 7 -> 0.1428571428571429 Inexact Rounded
-dddiv061 divide 1.2345678 1.9876543 -> 0.6211179680490717 Inexact Rounded
-
--- 1234567890123456
-dddiv071 divide 9999999999999999 1 -> 9999999999999999
-dddiv072 divide 999999999999999 1 -> 999999999999999
-dddiv073 divide 99999999999999 1 -> 99999999999999
-dddiv074 divide 9999999999999 1 -> 9999999999999
-dddiv075 divide 999999999999 1 -> 999999999999
-dddiv076 divide 99999999999 1 -> 99999999999
-dddiv077 divide 9999999999 1 -> 9999999999
-dddiv078 divide 999999999 1 -> 999999999
-dddiv079 divide 99999999 1 -> 99999999
-dddiv080 divide 9999999 1 -> 9999999
-dddiv081 divide 999999 1 -> 999999
-dddiv082 divide 99999 1 -> 99999
-dddiv083 divide 9999 1 -> 9999
-dddiv084 divide 999 1 -> 999
-dddiv085 divide 99 1 -> 99
-dddiv086 divide 9 1 -> 9
-
-dddiv090 divide 0. 1 -> 0
-dddiv091 divide .0 1 -> 0.0
-dddiv092 divide 0.00 1 -> 0.00
-dddiv093 divide 0.00E+9 1 -> 0E+7
-dddiv094 divide 0.0000E-50 1 -> 0E-54
-
-dddiv095 divide 1 1E-8 -> 1E+8
-dddiv096 divide 1 1E-9 -> 1E+9
-dddiv097 divide 1 1E-10 -> 1E+10
-dddiv098 divide 1 1E-11 -> 1E+11
-dddiv099 divide 1 1E-12 -> 1E+12
-
-dddiv100 divide 1 1 -> 1
-dddiv101 divide 1 2 -> 0.5
-dddiv102 divide 1 3 -> 0.3333333333333333 Inexact Rounded
-dddiv103 divide 1 4 -> 0.25
-dddiv104 divide 1 5 -> 0.2
-dddiv105 divide 1 6 -> 0.1666666666666667 Inexact Rounded
-dddiv106 divide 1 7 -> 0.1428571428571429 Inexact Rounded
-dddiv107 divide 1 8 -> 0.125
-dddiv108 divide 1 9 -> 0.1111111111111111 Inexact Rounded
-dddiv109 divide 1 10 -> 0.1
-dddiv110 divide 1 1 -> 1
-dddiv111 divide 2 1 -> 2
-dddiv112 divide 3 1 -> 3
-dddiv113 divide 4 1 -> 4
-dddiv114 divide 5 1 -> 5
-dddiv115 divide 6 1 -> 6
-dddiv116 divide 7 1 -> 7
-dddiv117 divide 8 1 -> 8
-dddiv118 divide 9 1 -> 9
-dddiv119 divide 10 1 -> 10
-
-dddiv120 divide 3E+1 0.001 -> 3E+4
-dddiv121 divide 2.200 2 -> 1.100
-
-dddiv130 divide 12345 4.999 -> 2469.493898779756 Inexact Rounded
-dddiv131 divide 12345 4.99 -> 2473.947895791583 Inexact Rounded
-dddiv132 divide 12345 4.9 -> 2519.387755102041 Inexact Rounded
-dddiv133 divide 12345 5 -> 2469
-dddiv134 divide 12345 5.1 -> 2420.588235294118 Inexact Rounded
-dddiv135 divide 12345 5.01 -> 2464.071856287425 Inexact Rounded
-dddiv136 divide 12345 5.001 -> 2468.506298740252 Inexact Rounded
-
--- test possibly imprecise results
-dddiv220 divide 391 597 -> 0.6549413735343384 Inexact Rounded
-dddiv221 divide 391 -597 -> -0.6549413735343384 Inexact Rounded
-dddiv222 divide -391 597 -> -0.6549413735343384 Inexact Rounded
-dddiv223 divide -391 -597 -> 0.6549413735343384 Inexact Rounded
-
--- test some cases that are close to exponent overflow, some with coefficient padding
-dddiv270 divide 1 1e384 -> 1E-384 Subnormal
-dddiv271 divide 1 0.9e384 -> 1.11111111111111E-384 Rounded Inexact Subnormal Underflow
-dddiv272 divide 1 0.99e384 -> 1.01010101010101E-384 Rounded Inexact Subnormal Underflow
-dddiv273 divide 1 0.9999999999999999e384 -> 1.00000000000000E-384 Rounded Inexact Subnormal Underflow
-dddiv274 divide 9e384 1 -> 9.000000000000000E+384 Clamped
-dddiv275 divide 9.9e384 1 -> 9.900000000000000E+384 Clamped
-dddiv276 divide 9.99e384 1 -> 9.990000000000000E+384 Clamped
-dddiv277 divide 9.9999999999999e384 1 -> 9.999999999999900E+384 Clamped
-dddiv278 divide 9.99999999999999e384 1 -> 9.999999999999990E+384 Clamped
-dddiv279 divide 9.999999999999999e384 1 -> 9.999999999999999E+384
-
-dddiv285 divide 9.9e384 1.1 -> 9.000000000000000E+384 Clamped
-dddiv286 divide 9.99e384 1.1 -> 9.081818181818182E+384 Inexact Rounded
-dddiv287 divide 9.9999999999999e384 1.1 -> 9.090909090909000E+384 Clamped
-dddiv288 divide 9.99999999999999e384 1.1 -> 9.090909090909082E+384 Inexact Rounded
-dddiv289 divide 9.999999999999999e384 1.1 -> 9.090909090909090E+384 Clamped
-
-
--- Divide into 0 tests
-dddiv301 divide 0 7 -> 0
-dddiv302 divide 0 7E-5 -> 0E+5
-dddiv303 divide 0 7E-1 -> 0E+1
-dddiv304 divide 0 7E+1 -> 0.0
-dddiv305 divide 0 7E+5 -> 0.00000
-dddiv306 divide 0 7E+6 -> 0.000000
-dddiv307 divide 0 7E+7 -> 0E-7
-dddiv308 divide 0 70E-5 -> 0E+5
-dddiv309 divide 0 70E-1 -> 0E+1
-dddiv310 divide 0 70E+0 -> 0
-dddiv311 divide 0 70E+1 -> 0.0
-dddiv312 divide 0 70E+5 -> 0.00000
-dddiv313 divide 0 70E+6 -> 0.000000
-dddiv314 divide 0 70E+7 -> 0E-7
-dddiv315 divide 0 700E-5 -> 0E+5
-dddiv316 divide 0 700E-1 -> 0E+1
-dddiv317 divide 0 700E+0 -> 0
-dddiv318 divide 0 700E+1 -> 0.0
-dddiv319 divide 0 700E+5 -> 0.00000
-dddiv320 divide 0 700E+6 -> 0.000000
-dddiv321 divide 0 700E+7 -> 0E-7
-dddiv322 divide 0 700E+77 -> 0E-77
-
-dddiv331 divide 0E-3 7E-5 -> 0E+2
-dddiv332 divide 0E-3 7E-1 -> 0.00
-dddiv333 divide 0E-3 7E+1 -> 0.0000
-dddiv334 divide 0E-3 7E+5 -> 0E-8
-dddiv335 divide 0E-1 7E-5 -> 0E+4
-dddiv336 divide 0E-1 7E-1 -> 0
-dddiv337 divide 0E-1 7E+1 -> 0.00
-dddiv338 divide 0E-1 7E+5 -> 0.000000
-dddiv339 divide 0E+1 7E-5 -> 0E+6
-dddiv340 divide 0E+1 7E-1 -> 0E+2
-dddiv341 divide 0E+1 7E+1 -> 0
-dddiv342 divide 0E+1 7E+5 -> 0.0000
-dddiv343 divide 0E+3 7E-5 -> 0E+8
-dddiv344 divide 0E+3 7E-1 -> 0E+4
-dddiv345 divide 0E+3 7E+1 -> 0E+2
-dddiv346 divide 0E+3 7E+5 -> 0.00
-
--- These were 'input rounding'
-dddiv441 divide 12345678000 1 -> 12345678000
-dddiv442 divide 1 12345678000 -> 8.100000664200054E-11 Inexact Rounded
-dddiv443 divide 1234567800 1 -> 1234567800
-dddiv444 divide 1 1234567800 -> 8.100000664200054E-10 Inexact Rounded
-dddiv445 divide 1234567890 1 -> 1234567890
-dddiv446 divide 1 1234567890 -> 8.100000073710001E-10 Inexact Rounded
-dddiv447 divide 1234567891 1 -> 1234567891
-dddiv448 divide 1 1234567891 -> 8.100000067149001E-10 Inexact Rounded
-dddiv449 divide 12345678901 1 -> 12345678901
-dddiv450 divide 1 12345678901 -> 8.100000073053901E-11 Inexact Rounded
-dddiv451 divide 1234567896 1 -> 1234567896
-dddiv452 divide 1 1234567896 -> 8.100000034344000E-10 Inexact Rounded
-
--- high-lows
-dddiv453 divide 1e+1 1 -> 1E+1
-dddiv454 divide 1e+1 1.0 -> 1E+1
-dddiv455 divide 1e+1 1.00 -> 1E+1
-dddiv456 divide 1e+2 2 -> 5E+1
-dddiv457 divide 1e+2 2.0 -> 5E+1
-dddiv458 divide 1e+2 2.00 -> 5E+1
-
--- some from IEEE discussions
-dddiv460 divide 3e0 2e0 -> 1.5
-dddiv461 divide 30e-1 2e0 -> 1.5
-dddiv462 divide 300e-2 2e0 -> 1.50
-dddiv464 divide 3000e-3 2e0 -> 1.500
-dddiv465 divide 3e0 20e-1 -> 1.5
-dddiv466 divide 30e-1 20e-1 -> 1.5
-dddiv467 divide 300e-2 20e-1 -> 1.5
-dddiv468 divide 3000e-3 20e-1 -> 1.50
-dddiv469 divide 3e0 200e-2 -> 1.5
-dddiv470 divide 30e-1 200e-2 -> 1.5
-dddiv471 divide 300e-2 200e-2 -> 1.5
-dddiv472 divide 3000e-3 200e-2 -> 1.5
-dddiv473 divide 3e0 2000e-3 -> 1.5
-dddiv474 divide 30e-1 2000e-3 -> 1.5
-dddiv475 divide 300e-2 2000e-3 -> 1.5
-dddiv476 divide 3000e-3 2000e-3 -> 1.5
-
--- some reciprocals
-dddiv480 divide 1 1.0E+33 -> 1E-33
-dddiv481 divide 1 10E+33 -> 1E-34
-dddiv482 divide 1 1.0E-33 -> 1E+33
-dddiv483 divide 1 10E-33 -> 1E+32
-
--- RMS discussion table
-dddiv484 divide 0e5 1e3 -> 0E+2
-dddiv485 divide 0e5 2e3 -> 0E+2
-dddiv486 divide 0e5 10e2 -> 0E+3
-dddiv487 divide 0e5 20e2 -> 0E+3
-dddiv488 divide 0e5 100e1 -> 0E+4
-dddiv489 divide 0e5 200e1 -> 0E+4
-
-dddiv491 divide 1e5 1e3 -> 1E+2
-dddiv492 divide 1e5 2e3 -> 5E+1
-dddiv493 divide 1e5 10e2 -> 1E+2
-dddiv494 divide 1e5 20e2 -> 5E+1
-dddiv495 divide 1e5 100e1 -> 1E+2
-dddiv496 divide 1e5 200e1 -> 5E+1
-
--- tryzeros cases
-rounding: half_up
-dddiv497 divide 0E+380 1000E-13 -> 0E+369 Clamped
-dddiv498 divide 0E-390 1000E+13 -> 0E-398 Clamped
-
-rounding: half_up
-
--- focus on trailing zeros issues
-dddiv500 divide 1 9.9 -> 0.1010101010101010 Inexact Rounded
-dddiv501 divide 1 9.09 -> 0.1100110011001100 Inexact Rounded
-dddiv502 divide 1 9.009 -> 0.1110001110001110 Inexact Rounded
-
-dddiv511 divide 1 2 -> 0.5
-dddiv512 divide 1.0 2 -> 0.5
-dddiv513 divide 1.00 2 -> 0.50
-dddiv514 divide 1.000 2 -> 0.500
-dddiv515 divide 1.0000 2 -> 0.5000
-dddiv516 divide 1.00000 2 -> 0.50000
-dddiv517 divide 1.000000 2 -> 0.500000
-dddiv518 divide 1.0000000 2 -> 0.5000000
-dddiv519 divide 1.00 2.00 -> 0.5
-
-dddiv521 divide 2 1 -> 2
-dddiv522 divide 2 1.0 -> 2
-dddiv523 divide 2 1.00 -> 2
-dddiv524 divide 2 1.000 -> 2
-dddiv525 divide 2 1.0000 -> 2
-dddiv526 divide 2 1.00000 -> 2
-dddiv527 divide 2 1.000000 -> 2
-dddiv528 divide 2 1.0000000 -> 2
-dddiv529 divide 2.00 1.00 -> 2
-
-dddiv530 divide 2.40 2 -> 1.20
-dddiv531 divide 2.40 4 -> 0.60
-dddiv532 divide 2.40 10 -> 0.24
-dddiv533 divide 2.40 2.0 -> 1.2
-dddiv534 divide 2.40 4.0 -> 0.6
-dddiv535 divide 2.40 10.0 -> 0.24
-dddiv536 divide 2.40 2.00 -> 1.2
-dddiv537 divide 2.40 4.00 -> 0.6
-dddiv538 divide 2.40 10.00 -> 0.24
-dddiv539 divide 0.9 0.1 -> 9
-dddiv540 divide 0.9 0.01 -> 9E+1
-dddiv541 divide 0.9 0.001 -> 9E+2
-dddiv542 divide 5 2 -> 2.5
-dddiv543 divide 5 2.0 -> 2.5
-dddiv544 divide 5 2.00 -> 2.5
-dddiv545 divide 5 20 -> 0.25
-dddiv546 divide 5 20.0 -> 0.25
-dddiv547 divide 2.400 2 -> 1.200
-dddiv548 divide 2.400 2.0 -> 1.20
-dddiv549 divide 2.400 2.400 -> 1
-
-dddiv550 divide 240 1 -> 240
-dddiv551 divide 240 10 -> 24
-dddiv552 divide 240 100 -> 2.4
-dddiv553 divide 240 1000 -> 0.24
-dddiv554 divide 2400 1 -> 2400
-dddiv555 divide 2400 10 -> 240
-dddiv556 divide 2400 100 -> 24
-dddiv557 divide 2400 1000 -> 2.4
-
--- +ve exponent
-dddiv600 divide 2.4E+9 2 -> 1.2E+9
-dddiv601 divide 2.40E+9 2 -> 1.20E+9
-dddiv602 divide 2.400E+9 2 -> 1.200E+9
-dddiv603 divide 2.4000E+9 2 -> 1.2000E+9
-dddiv604 divide 24E+8 2 -> 1.2E+9
-dddiv605 divide 240E+7 2 -> 1.20E+9
-dddiv606 divide 2400E+6 2 -> 1.200E+9
-dddiv607 divide 24000E+5 2 -> 1.2000E+9
-
--- more zeros, etc.
-dddiv731 divide 5.00 1E-3 -> 5.00E+3
-dddiv732 divide 00.00 0.000 -> NaN Division_undefined
-dddiv733 divide 00.00 0E-3 -> NaN Division_undefined
-dddiv734 divide 0 -0 -> NaN Division_undefined
-dddiv735 divide -0 0 -> NaN Division_undefined
-dddiv736 divide -0 -0 -> NaN Division_undefined
-
-dddiv741 divide 0 -1 -> -0
-dddiv742 divide -0 -1 -> 0
-dddiv743 divide 0 1 -> 0
-dddiv744 divide -0 1 -> -0
-dddiv745 divide -1 0 -> -Infinity Division_by_zero
-dddiv746 divide -1 -0 -> Infinity Division_by_zero
-dddiv747 divide 1 0 -> Infinity Division_by_zero
-dddiv748 divide 1 -0 -> -Infinity Division_by_zero
-
-dddiv751 divide 0.0 -1 -> -0.0
-dddiv752 divide -0.0 -1 -> 0.0
-dddiv753 divide 0.0 1 -> 0.0
-dddiv754 divide -0.0 1 -> -0.0
-dddiv755 divide -1.0 0 -> -Infinity Division_by_zero
-dddiv756 divide -1.0 -0 -> Infinity Division_by_zero
-dddiv757 divide 1.0 0 -> Infinity Division_by_zero
-dddiv758 divide 1.0 -0 -> -Infinity Division_by_zero
-
-dddiv761 divide 0 -1.0 -> -0E+1
-dddiv762 divide -0 -1.0 -> 0E+1
-dddiv763 divide 0 1.0 -> 0E+1
-dddiv764 divide -0 1.0 -> -0E+1
-dddiv765 divide -1 0.0 -> -Infinity Division_by_zero
-dddiv766 divide -1 -0.0 -> Infinity Division_by_zero
-dddiv767 divide 1 0.0 -> Infinity Division_by_zero
-dddiv768 divide 1 -0.0 -> -Infinity Division_by_zero
-
-dddiv771 divide 0.0 -1.0 -> -0
-dddiv772 divide -0.0 -1.0 -> 0
-dddiv773 divide 0.0 1.0 -> 0
-dddiv774 divide -0.0 1.0 -> -0
-dddiv775 divide -1.0 0.0 -> -Infinity Division_by_zero
-dddiv776 divide -1.0 -0.0 -> Infinity Division_by_zero
-dddiv777 divide 1.0 0.0 -> Infinity Division_by_zero
-dddiv778 divide 1.0 -0.0 -> -Infinity Division_by_zero
-
--- Specials
-dddiv780 divide Inf -Inf -> NaN Invalid_operation
-dddiv781 divide Inf -1000 -> -Infinity
-dddiv782 divide Inf -1 -> -Infinity
-dddiv783 divide Inf -0 -> -Infinity
-dddiv784 divide Inf 0 -> Infinity
-dddiv785 divide Inf 1 -> Infinity
-dddiv786 divide Inf 1000 -> Infinity
-dddiv787 divide Inf Inf -> NaN Invalid_operation
-dddiv788 divide -1000 Inf -> -0E-398 Clamped
-dddiv789 divide -Inf Inf -> NaN Invalid_operation
-dddiv790 divide -1 Inf -> -0E-398 Clamped
-dddiv791 divide -0 Inf -> -0E-398 Clamped
-dddiv792 divide 0 Inf -> 0E-398 Clamped
-dddiv793 divide 1 Inf -> 0E-398 Clamped
-dddiv794 divide 1000 Inf -> 0E-398 Clamped
-dddiv795 divide Inf Inf -> NaN Invalid_operation
-
-dddiv800 divide -Inf -Inf -> NaN Invalid_operation
-dddiv801 divide -Inf -1000 -> Infinity
-dddiv802 divide -Inf -1 -> Infinity
-dddiv803 divide -Inf -0 -> Infinity
-dddiv804 divide -Inf 0 -> -Infinity
-dddiv805 divide -Inf 1 -> -Infinity
-dddiv806 divide -Inf 1000 -> -Infinity
-dddiv807 divide -Inf Inf -> NaN Invalid_operation
-dddiv808 divide -1000 Inf -> -0E-398 Clamped
-dddiv809 divide -Inf -Inf -> NaN Invalid_operation
-dddiv810 divide -1 -Inf -> 0E-398 Clamped
-dddiv811 divide -0 -Inf -> 0E-398 Clamped
-dddiv812 divide 0 -Inf -> -0E-398 Clamped
-dddiv813 divide 1 -Inf -> -0E-398 Clamped
-dddiv814 divide 1000 -Inf -> -0E-398 Clamped
-dddiv815 divide Inf -Inf -> NaN Invalid_operation
-
-dddiv821 divide NaN -Inf -> NaN
-dddiv822 divide NaN -1000 -> NaN
-dddiv823 divide NaN -1 -> NaN
-dddiv824 divide NaN -0 -> NaN
-dddiv825 divide NaN 0 -> NaN
-dddiv826 divide NaN 1 -> NaN
-dddiv827 divide NaN 1000 -> NaN
-dddiv828 divide NaN Inf -> NaN
-dddiv829 divide NaN NaN -> NaN
-dddiv830 divide -Inf NaN -> NaN
-dddiv831 divide -1000 NaN -> NaN
-dddiv832 divide -1 NaN -> NaN
-dddiv833 divide -0 NaN -> NaN
-dddiv834 divide 0 NaN -> NaN
-dddiv835 divide 1 NaN -> NaN
-dddiv836 divide 1000 NaN -> NaN
-dddiv837 divide Inf NaN -> NaN
-
-dddiv841 divide sNaN -Inf -> NaN Invalid_operation
-dddiv842 divide sNaN -1000 -> NaN Invalid_operation
-dddiv843 divide sNaN -1 -> NaN Invalid_operation
-dddiv844 divide sNaN -0 -> NaN Invalid_operation
-dddiv845 divide sNaN 0 -> NaN Invalid_operation
-dddiv846 divide sNaN 1 -> NaN Invalid_operation
-dddiv847 divide sNaN 1000 -> NaN Invalid_operation
-dddiv848 divide sNaN NaN -> NaN Invalid_operation
-dddiv849 divide sNaN sNaN -> NaN Invalid_operation
-dddiv850 divide NaN sNaN -> NaN Invalid_operation
-dddiv851 divide -Inf sNaN -> NaN Invalid_operation
-dddiv852 divide -1000 sNaN -> NaN Invalid_operation
-dddiv853 divide -1 sNaN -> NaN Invalid_operation
-dddiv854 divide -0 sNaN -> NaN Invalid_operation
-dddiv855 divide 0 sNaN -> NaN Invalid_operation
-dddiv856 divide 1 sNaN -> NaN Invalid_operation
-dddiv857 divide 1000 sNaN -> NaN Invalid_operation
-dddiv858 divide Inf sNaN -> NaN Invalid_operation
-dddiv859 divide NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-dddiv861 divide NaN9 -Inf -> NaN9
-dddiv862 divide NaN8 1000 -> NaN8
-dddiv863 divide NaN7 Inf -> NaN7
-dddiv864 divide NaN6 NaN5 -> NaN6
-dddiv865 divide -Inf NaN4 -> NaN4
-dddiv866 divide -1000 NaN3 -> NaN3
-dddiv867 divide Inf NaN2 -> NaN2
-
-dddiv871 divide sNaN99 -Inf -> NaN99 Invalid_operation
-dddiv872 divide sNaN98 -1 -> NaN98 Invalid_operation
-dddiv873 divide sNaN97 NaN -> NaN97 Invalid_operation
-dddiv874 divide sNaN96 sNaN94 -> NaN96 Invalid_operation
-dddiv875 divide NaN95 sNaN93 -> NaN93 Invalid_operation
-dddiv876 divide -Inf sNaN92 -> NaN92 Invalid_operation
-dddiv877 divide 0 sNaN91 -> NaN91 Invalid_operation
-dddiv878 divide Inf sNaN90 -> NaN90 Invalid_operation
-dddiv879 divide NaN sNaN89 -> NaN89 Invalid_operation
-
-dddiv881 divide -NaN9 -Inf -> -NaN9
-dddiv882 divide -NaN8 1000 -> -NaN8
-dddiv883 divide -NaN7 Inf -> -NaN7
-dddiv884 divide -NaN6 -NaN5 -> -NaN6
-dddiv885 divide -Inf -NaN4 -> -NaN4
-dddiv886 divide -1000 -NaN3 -> -NaN3
-dddiv887 divide Inf -NaN2 -> -NaN2
-
-dddiv891 divide -sNaN99 -Inf -> -NaN99 Invalid_operation
-dddiv892 divide -sNaN98 -1 -> -NaN98 Invalid_operation
-dddiv893 divide -sNaN97 NaN -> -NaN97 Invalid_operation
-dddiv894 divide -sNaN96 -sNaN94 -> -NaN96 Invalid_operation
-dddiv895 divide -NaN95 -sNaN93 -> -NaN93 Invalid_operation
-dddiv896 divide -Inf -sNaN92 -> -NaN92 Invalid_operation
-dddiv897 divide 0 -sNaN91 -> -NaN91 Invalid_operation
-dddiv898 divide Inf -sNaN90 -> -NaN90 Invalid_operation
-dddiv899 divide -NaN -sNaN89 -> -NaN89 Invalid_operation
-
--- Various flavours of divide by 0
-dddiv901 divide 0 0 -> NaN Division_undefined
-dddiv902 divide 0.0E5 0 -> NaN Division_undefined
-dddiv903 divide 0.000 0 -> NaN Division_undefined
-dddiv904 divide 0.0001 0 -> Infinity Division_by_zero
-dddiv905 divide 0.01 0 -> Infinity Division_by_zero
-dddiv906 divide 0.1 0 -> Infinity Division_by_zero
-dddiv907 divide 1 0 -> Infinity Division_by_zero
-dddiv908 divide 1 0.0 -> Infinity Division_by_zero
-dddiv909 divide 10 0.0 -> Infinity Division_by_zero
-dddiv910 divide 1E+100 0.0 -> Infinity Division_by_zero
-dddiv911 divide 1E+100 0 -> Infinity Division_by_zero
-
-dddiv921 divide -0.0001 0 -> -Infinity Division_by_zero
-dddiv922 divide -0.01 0 -> -Infinity Division_by_zero
-dddiv923 divide -0.1 0 -> -Infinity Division_by_zero
-dddiv924 divide -1 0 -> -Infinity Division_by_zero
-dddiv925 divide -1 0.0 -> -Infinity Division_by_zero
-dddiv926 divide -10 0.0 -> -Infinity Division_by_zero
-dddiv927 divide -1E+100 0.0 -> -Infinity Division_by_zero
-dddiv928 divide -1E+100 0 -> -Infinity Division_by_zero
-
-dddiv931 divide 0.0001 -0 -> -Infinity Division_by_zero
-dddiv932 divide 0.01 -0 -> -Infinity Division_by_zero
-dddiv933 divide 0.1 -0 -> -Infinity Division_by_zero
-dddiv934 divide 1 -0 -> -Infinity Division_by_zero
-dddiv935 divide 1 -0.0 -> -Infinity Division_by_zero
-dddiv936 divide 10 -0.0 -> -Infinity Division_by_zero
-dddiv937 divide 1E+100 -0.0 -> -Infinity Division_by_zero
-dddiv938 divide 1E+100 -0 -> -Infinity Division_by_zero
-
-dddiv941 divide -0.0001 -0 -> Infinity Division_by_zero
-dddiv942 divide -0.01 -0 -> Infinity Division_by_zero
-dddiv943 divide -0.1 -0 -> Infinity Division_by_zero
-dddiv944 divide -1 -0 -> Infinity Division_by_zero
-dddiv945 divide -1 -0.0 -> Infinity Division_by_zero
-dddiv946 divide -10 -0.0 -> Infinity Division_by_zero
-dddiv947 divide -1E+100 -0.0 -> Infinity Division_by_zero
-dddiv948 divide -1E+100 -0 -> Infinity Division_by_zero
-
--- Examples from SQL proposal (Krishna Kulkarni)
-dddiv1021 divide 1E0 1E0 -> 1
-dddiv1022 divide 1E0 2E0 -> 0.5
-dddiv1023 divide 1E0 3E0 -> 0.3333333333333333 Inexact Rounded
-dddiv1024 divide 100E-2 1000E-3 -> 1
-dddiv1025 divide 24E-1 2E0 -> 1.2
-dddiv1026 divide 2400E-3 2E0 -> 1.200
-dddiv1027 divide 5E0 2E0 -> 2.5
-dddiv1028 divide 5E0 20E-1 -> 2.5
-dddiv1029 divide 5E0 2000E-3 -> 2.5
-dddiv1030 divide 5E0 2E-1 -> 25
-dddiv1031 divide 5E0 20E-2 -> 25
-dddiv1032 divide 480E-2 3E0 -> 1.60
-dddiv1033 divide 47E-1 2E0 -> 2.35
-
--- ECMAScript bad examples
-rounding: half_down
-dddiv1040 divide 5 9 -> 0.5555555555555556 Inexact Rounded
-rounding: half_even
-dddiv1041 divide 6 11 -> 0.5454545454545455 Inexact Rounded
-
--- overflow and underflow tests .. note subnormal results
--- signs
-dddiv1051 divide 1e+277 1e-311 -> Infinity Overflow Inexact Rounded
-dddiv1052 divide 1e+277 -1e-311 -> -Infinity Overflow Inexact Rounded
-dddiv1053 divide -1e+277 1e-311 -> -Infinity Overflow Inexact Rounded
-dddiv1054 divide -1e+277 -1e-311 -> Infinity Overflow Inexact Rounded
-dddiv1055 divide 1e-277 1e+311 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-dddiv1056 divide 1e-277 -1e+311 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped
-dddiv1057 divide -1e-277 1e+311 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped
-dddiv1058 divide -1e-277 -1e+311 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-
--- 'subnormal' boundary (all hard underflow or overflow in base arithemtic)
-dddiv1060 divide 1e-291 1e+101 -> 1E-392 Subnormal
-dddiv1061 divide 1e-291 1e+102 -> 1E-393 Subnormal
-dddiv1062 divide 1e-291 1e+103 -> 1E-394 Subnormal
-dddiv1063 divide 1e-291 1e+104 -> 1E-395 Subnormal
-dddiv1064 divide 1e-291 1e+105 -> 1E-396 Subnormal
-dddiv1065 divide 1e-291 1e+106 -> 1E-397 Subnormal
-dddiv1066 divide 1e-291 1e+107 -> 1E-398 Subnormal
-dddiv1067 divide 1e-291 1e+108 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-dddiv1068 divide 1e-291 1e+109 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-dddiv1069 divide 1e-291 1e+110 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
--- [no equivalent of 'subnormal' for overflow]
-dddiv1070 divide 1e+60 1e-321 -> 1.000000000000E+381 Clamped
-dddiv1071 divide 1e+60 1e-322 -> 1.0000000000000E+382 Clamped
-dddiv1072 divide 1e+60 1e-323 -> 1.00000000000000E+383 Clamped
-dddiv1073 divide 1e+60 1e-324 -> 1.000000000000000E+384 Clamped
-dddiv1074 divide 1e+60 1e-325 -> Infinity Overflow Inexact Rounded
-dddiv1075 divide 1e+60 1e-326 -> Infinity Overflow Inexact Rounded
-dddiv1076 divide 1e+60 1e-327 -> Infinity Overflow Inexact Rounded
-dddiv1077 divide 1e+60 1e-328 -> Infinity Overflow Inexact Rounded
-dddiv1078 divide 1e+60 1e-329 -> Infinity Overflow Inexact Rounded
-dddiv1079 divide 1e+60 1e-330 -> Infinity Overflow Inexact Rounded
-
-dddiv1101 divide 1.0000E-394 1 -> 1.0000E-394 Subnormal
-dddiv1102 divide 1.000E-394 1e+1 -> 1.000E-395 Subnormal
-dddiv1103 divide 1.00E-394 1e+2 -> 1.00E-396 Subnormal
-dddiv1104 divide 1.0E-394 1e+3 -> 1.0E-397 Subnormal
-dddiv1105 divide 1.0E-394 1e+4 -> 1E-398 Subnormal Rounded
-dddiv1106 divide 1.3E-394 1e+4 -> 1E-398 Underflow Subnormal Inexact Rounded
-dddiv1107 divide 1.5E-394 1e+4 -> 2E-398 Underflow Subnormal Inexact Rounded
-dddiv1108 divide 1.7E-394 1e+4 -> 2E-398 Underflow Subnormal Inexact Rounded
-dddiv1109 divide 2.3E-394 1e+4 -> 2E-398 Underflow Subnormal Inexact Rounded
-dddiv1110 divide 2.5E-394 1e+4 -> 2E-398 Underflow Subnormal Inexact Rounded
-dddiv1111 divide 2.7E-394 1e+4 -> 3E-398 Underflow Subnormal Inexact Rounded
-dddiv1112 divide 1.49E-394 1e+4 -> 1E-398 Underflow Subnormal Inexact Rounded
-dddiv1113 divide 1.50E-394 1e+4 -> 2E-398 Underflow Subnormal Inexact Rounded
-dddiv1114 divide 1.51E-394 1e+4 -> 2E-398 Underflow Subnormal Inexact Rounded
-dddiv1115 divide 2.49E-394 1e+4 -> 2E-398 Underflow Subnormal Inexact Rounded
-dddiv1116 divide 2.50E-394 1e+4 -> 2E-398 Underflow Subnormal Inexact Rounded
-dddiv1117 divide 2.51E-394 1e+4 -> 3E-398 Underflow Subnormal Inexact Rounded
-
-dddiv1118 divide 1E-394 1e+4 -> 1E-398 Subnormal
-dddiv1119 divide 3E-394 1e+5 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-dddiv1120 divide 5E-394 1e+5 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-dddiv1121 divide 7E-394 1e+5 -> 1E-398 Underflow Subnormal Inexact Rounded
-dddiv1122 divide 9E-394 1e+5 -> 1E-398 Underflow Subnormal Inexact Rounded
-dddiv1123 divide 9.9E-394 1e+5 -> 1E-398 Underflow Subnormal Inexact Rounded
-
-dddiv1124 divide 1E-394 -1e+4 -> -1E-398 Subnormal
-dddiv1125 divide 3E-394 -1e+5 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped
-dddiv1126 divide -5E-394 1e+5 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped
-dddiv1127 divide 7E-394 -1e+5 -> -1E-398 Underflow Subnormal Inexact Rounded
-dddiv1128 divide -9E-394 1e+5 -> -1E-398 Underflow Subnormal Inexact Rounded
-dddiv1129 divide 9.9E-394 -1e+5 -> -1E-398 Underflow Subnormal Inexact Rounded
-dddiv1130 divide 3.0E-394 -1e+5 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped
-
-dddiv1131 divide 1.0E-199 1e+200 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-dddiv1132 divide 1.0E-199 1e+199 -> 1E-398 Subnormal Rounded
-dddiv1133 divide 1.0E-199 1e+198 -> 1.0E-397 Subnormal
-dddiv1134 divide 2.0E-199 2e+198 -> 1.0E-397 Subnormal
-dddiv1135 divide 4.0E-199 4e+198 -> 1.0E-397 Subnormal
-dddiv1136 divide 10.0E-199 10e+198 -> 1.0E-397 Subnormal
-dddiv1137 divide 30.0E-199 30e+198 -> 1.0E-397 Subnormal
-
--- randoms
-dddiv2010 divide -3.303226714900711E-35 8.796578842713183E+73 -> -3.755126594058783E-109 Inexact Rounded
-dddiv2011 divide 933153327821073.6 68782181090246.25 -> 13.56678885475763 Inexact Rounded
-dddiv2012 divide 5.04752436057906E-72 -8.179481771238642E+64 -> -6.170958627632835E-137 Inexact Rounded
-dddiv2013 divide -3707613309582318 3394911196503.048 -> -1092.109070010836 Inexact Rounded
-dddiv2014 divide 99689.0555190461 -4.735208553891464 -> -21052.72753765411 Inexact Rounded
-dddiv2015 divide -1447915775613329 269750797.8184875 -> -5367605.164925653 Inexact Rounded
-dddiv2016 divide -9.394881304225258E-19 -830585.0252671636 -> 1.131116143251358E-24 Inexact Rounded
-dddiv2017 divide -1.056283432738934 88.58754555124013 -> -0.01192361100159352 Inexact Rounded
-dddiv2018 divide 5763220933343.081 689089567025052.1 -> 0.008363529516524456 Inexact Rounded
-dddiv2019 divide 873819.122103216 9.740612494523300E-49 -> 8.970884763093948E+53 Inexact Rounded
-dddiv2020 divide 8022914.838533576 6178.566801742713 -> 1298.507420243583 Inexact Rounded
-dddiv2021 divide 203982.7605650363 -2158.283639053435 -> -94.51156320422168 Inexact Rounded
-dddiv2022 divide 803.6310547013030 7101143795399.238 -> 1.131692411611166E-10 Inexact Rounded
-dddiv2023 divide 9.251697842123399E-82 -1.342350220606119E-7 -> -6.892163982321936E-75 Inexact Rounded
-dddiv2024 divide -1.980600645637992E-53 -5.474262753214457E+77 -> 3.618022617703168E-131 Inexact Rounded
-dddiv2025 divide -210.0322996351690 -8.580951835872843E+80 -> 2.447657365434971E-79 Inexact Rounded
-dddiv2026 divide -1.821980314020370E+85 -3.018915267138165 -> 6.035215144503042E+84 Inexact Rounded
-dddiv2027 divide -772264503601.1047 5.158258271408988E-86 -> -1.497141986630614E+97 Inexact Rounded
-dddiv2028 divide -767.0532415847106 2.700027228028939E-59 -> -2.840909282772941E+61 Inexact Rounded
-dddiv2029 divide 496724.8548250093 7.32700588163100E+66 -> 6.779370220929013E-62 Inexact Rounded
-dddiv2030 divide -304232651447703.9 -108.9730808657440 -> 2791814721862.565 Inexact Rounded
-dddiv2031 divide -7.233817192699405E+42 -5711302004.149411 -> 1.266579352211430E+33 Inexact Rounded
-dddiv2032 divide -9.999221444912745E+96 4010569406446197 -> -2.493217404202250E+81 Inexact Rounded
-dddiv2033 divide -1837272.061937622 8.356322838066762 -> -219866.0939196882 Inexact Rounded
-dddiv2034 divide 2168.517555606529 209.1910258615061 -> 10.36620737756784 Inexact Rounded
-dddiv2035 divide -1.884389790576371E+88 2.95181953870583E+20 -> -6.383824505079828E+67 Inexact Rounded
-dddiv2036 divide 732263.6037438196 961222.3634446889 -> 0.7618045850698269 Inexact Rounded
-dddiv2037 divide -813461419.0348336 5.376293753809143E+84 -> -1.513052404285927E-76 Inexact Rounded
-dddiv2038 divide -45562133508108.50 -9.776843494690107E+51 -> 4.660208945029519E-39 Inexact Rounded
-dddiv2039 divide -6.489393172441016E+80 -9101965.097852113 -> 7.129661674897421E+73 Inexact Rounded
-dddiv2040 divide 3.694576237117349E+93 6683512.012622003 -> 5.527896456443912E+86 Inexact Rounded
-dddiv2041 divide -2.252877726403272E+19 -7451913256.181367 -> 3023220546.125531 Inexact Rounded
-dddiv2042 divide 518303.1989111842 50.01587020474133 -> 10362.77479107123 Inexact Rounded
-dddiv2043 divide 2.902087881880103E+24 33.32400992305702 -> 8.708699488989578E+22 Inexact Rounded
-dddiv2044 divide 549619.4559510557 1660824845196338 -> 3.309316196351104E-10 Inexact Rounded
-dddiv2045 divide -6775670774684043 8292152023.077262 -> -817118.4941891062 Inexact Rounded
-dddiv2046 divide -77.50923921524079 -5.636882655425815E+74 -> 1.375037302588405E-73 Inexact Rounded
-dddiv2047 divide -2.984889459605149E-10 -88106156784122.99 -> 3.387833005721384E-24 Inexact Rounded
-dddiv2048 divide 0.949517293997085 44767115.96450998 -> 2.121015110175589E-8 Inexact Rounded
-dddiv2049 divide -2760937211.084521 -1087015876975408 -> 0.000002539923537057024 Inexact Rounded
-dddiv2050 divide 28438351.85030536 -4.209397904088624E-47 -> -6.755919135770688E+53 Inexact Rounded
-dddiv2051 divide -85562731.6820956 -7.166045442530185E+45 -> 1.194002080621542E-38 Inexact Rounded
-dddiv2052 divide 2533802852165.25 7154.119606235955 -> 354173957.3317501 Inexact Rounded
-dddiv2053 divide -8858831346851.474 97.59734208801716 -> -90769186509.83577 Inexact Rounded
-dddiv2054 divide 176783629801387.5 840073263.3109817 -> 210438.3480848206 Inexact Rounded
-dddiv2055 divide -493506471796175.6 79733894790822.03 -> -6.189418854940746 Inexact Rounded
-dddiv2056 divide 790.1682542103445 829.9449370367435 -> 0.9520731062371214 Inexact Rounded
-dddiv2057 divide -8920459838.583164 -4767.889187899214 -> 1870945.294035581 Inexact Rounded
-dddiv2058 divide 53536687164422.1 53137.5007032689 -> 1007512330.385698 Inexact Rounded
-dddiv2059 divide 4.051532311146561E-74 -2.343089768972261E+94 -> -1.729140882606332E-168 Inexact Rounded
-dddiv2060 divide -14847758778636.88 3.062543516383807E-43 -> -4.848178874587497E+55 Inexact Rounded
-
--- Division probably has pre-rounding, so need to test rounding
--- explicitly rather than assume included through other tests;
--- tests include simple rounding and also the tricky cases of sticky
--- bits following two zeros
---
--- 1/99999 gives 0.0000100001000010000100001000010000100001
--- 1234567890123456
---
--- 1/999999 gives 0.000001000001000001000001000001000001000001
--- 1234567890123456
-
-rounding: ceiling
-dddiv3001 divide 1 3 -> 0.3333333333333334 Inexact Rounded
-dddiv3002 divide 2 3 -> 0.6666666666666667 Inexact Rounded
-dddiv3003 divide 1 99999 -> 0.00001000010000100002 Inexact Rounded
-dddiv3004 divide 1 999999 -> 0.000001000001000001001 Inexact Rounded
-
-rounding: floor
-dddiv3011 divide 1 3 -> 0.3333333333333333 Inexact Rounded
-dddiv3012 divide 2 3 -> 0.6666666666666666 Inexact Rounded
-dddiv3013 divide 1 99999 -> 0.00001000010000100001 Inexact Rounded
-dddiv3014 divide 1 999999 -> 0.000001000001000001000 Inexact Rounded
-
-rounding: up
-dddiv3021 divide 1 3 -> 0.3333333333333334 Inexact Rounded
-dddiv3022 divide 2 3 -> 0.6666666666666667 Inexact Rounded
-dddiv3023 divide 1 99999 -> 0.00001000010000100002 Inexact Rounded
-dddiv3024 divide 1 999999 -> 0.000001000001000001001 Inexact Rounded
-
-rounding: down
-dddiv3031 divide 1 3 -> 0.3333333333333333 Inexact Rounded
-dddiv3032 divide 2 3 -> 0.6666666666666666 Inexact Rounded
-dddiv3033 divide 1 99999 -> 0.00001000010000100001 Inexact Rounded
-dddiv3034 divide 1 999999 -> 0.000001000001000001000 Inexact Rounded
-
-rounding: half_up
-dddiv3041 divide 1 3 -> 0.3333333333333333 Inexact Rounded
-dddiv3042 divide 2 3 -> 0.6666666666666667 Inexact Rounded
-dddiv3043 divide 1 99999 -> 0.00001000010000100001 Inexact Rounded
-dddiv3044 divide 1 999999 -> 0.000001000001000001000 Inexact Rounded
-
-rounding: half_down
-dddiv3051 divide 1 3 -> 0.3333333333333333 Inexact Rounded
-dddiv3052 divide 2 3 -> 0.6666666666666667 Inexact Rounded
-dddiv3053 divide 1 99999 -> 0.00001000010000100001 Inexact Rounded
-dddiv3054 divide 1 999999 -> 0.000001000001000001000 Inexact Rounded
-
-rounding: half_even
-dddiv3061 divide 1 3 -> 0.3333333333333333 Inexact Rounded
-dddiv3062 divide 2 3 -> 0.6666666666666667 Inexact Rounded
-dddiv3063 divide 1 99999 -> 0.00001000010000100001 Inexact Rounded
-dddiv3064 divide 1 999999 -> 0.000001000001000001000 Inexact Rounded
-
-rounding: 05up
-dddiv3071 divide 1 3 -> 0.3333333333333333 Inexact Rounded
-dddiv3072 divide 2 3 -> 0.6666666666666666 Inexact Rounded
-dddiv3073 divide 1 99999 -> 0.00001000010000100001 Inexact Rounded
-dddiv3074 divide 1 999999 -> 0.000001000001000001001 Inexact Rounded
-
--- random divide tests with result near 1
-rounding: half_even
-dddiv4001 divide 3195385192916917 3195385192946695 -> 0.9999999999906809 Inexact Rounded
-dddiv4002 divide 1393723067526993 1393723067519475 -> 1.000000000005394 Inexact Rounded
-dddiv4003 divide 759985543702302 759985543674015 -> 1.000000000037220 Inexact Rounded
-dddiv4004 divide 9579158456027302 9579158456036864 -> 0.9999999999990018 Inexact Rounded
-dddiv4005 divide 7079398299143569 7079398299156904 -> 0.9999999999981164 Inexact Rounded
-dddiv4006 divide 6636169255366598 6636169255336386 -> 1.000000000004553 Inexact Rounded
-dddiv4007 divide 6964813971340090 6964813971321554 -> 1.000000000002661 Inexact Rounded
-dddiv4008 divide 4182275225480784 4182275225454009 -> 1.000000000006402 Inexact Rounded
-dddiv4009 divide 9228325124938029 9228325124918730 -> 1.000000000002091 Inexact Rounded
-dddiv4010 divide 3428346338630192 3428346338609843 -> 1.000000000005936 Inexact Rounded
-dddiv4011 divide 2143511550722893 2143511550751754 -> 0.9999999999865356 Inexact Rounded
-dddiv4012 divide 1672732924396785 1672732924401811 -> 0.9999999999969953 Inexact Rounded
-dddiv4013 divide 4190714611948216 4190714611948664 -> 0.9999999999998931 Inexact Rounded
-dddiv4014 divide 3942254800848877 3942254800814556 -> 1.000000000008706 Inexact Rounded
-dddiv4015 divide 2854459826952334 2854459826960762 -> 0.9999999999970474 Inexact Rounded
-dddiv4016 divide 2853258953664731 2853258953684471 -> 0.9999999999930816 Inexact Rounded
-dddiv4017 divide 9453512638125978 9453512638146425 -> 0.9999999999978371 Inexact Rounded
-dddiv4018 divide 339476633940369 339476633912887 -> 1.000000000080954 Inexact Rounded
-dddiv4019 divide 4542181492688467 4542181492697735 -> 0.9999999999979596 Inexact Rounded
-dddiv4020 divide 7312600192399197 7312600192395424 -> 1.000000000000516 Inexact Rounded
-dddiv4021 divide 1811674985570111 1811674985603935 -> 0.9999999999813300 Inexact Rounded
-dddiv4022 divide 1706462639003481 1706462639017740 -> 0.9999999999916441 Inexact Rounded
-dddiv4023 divide 6697052654940368 6697052654934110 -> 1.000000000000934 Inexact Rounded
-dddiv4024 divide 5015283664277539 5015283664310719 -> 0.9999999999933842 Inexact Rounded
-dddiv4025 divide 2359501561537464 2359501561502464 -> 1.000000000014834 Inexact Rounded
-dddiv4026 divide 2669850227909157 2669850227901548 -> 1.000000000002850 Inexact Rounded
-dddiv4027 divide 9329725546974648 9329725547002445 -> 0.9999999999970206 Inexact Rounded
-dddiv4028 divide 3228562867071248 3228562867106206 -> 0.9999999999891723 Inexact Rounded
-dddiv4029 divide 4862226644921175 4862226644909380 -> 1.000000000002426 Inexact Rounded
-dddiv4030 divide 1022267997054529 1022267997071329 -> 0.9999999999835660 Inexact Rounded
-dddiv4031 divide 1048777482023719 1048777482000948 -> 1.000000000021712 Inexact Rounded
-dddiv4032 divide 9980113777337098 9980113777330539 -> 1.000000000000657 Inexact Rounded
-dddiv4033 divide 7506839167963908 7506839167942901 -> 1.000000000002798 Inexact Rounded
-dddiv4034 divide 231119751977860 231119751962453 -> 1.000000000066662 Inexact Rounded
-dddiv4035 divide 4034903664762962 4034903664795526 -> 0.9999999999919294 Inexact Rounded
-dddiv4036 divide 5700122152274696 5700122152251386 -> 1.000000000004089 Inexact Rounded
-dddiv4037 divide 6869599590293110 6869599590293495 -> 0.9999999999999440 Inexact Rounded
-dddiv4038 divide 5576281960092797 5576281960105579 -> 0.9999999999977078 Inexact Rounded
-dddiv4039 divide 2304844888381318 2304844888353073 -> 1.000000000012255 Inexact Rounded
-dddiv4040 divide 3265933651656452 3265933651682779 -> 0.9999999999919389 Inexact Rounded
-dddiv4041 divide 5235714985079914 5235714985066131 -> 1.000000000002632 Inexact Rounded
-dddiv4042 divide 5578481572827551 5578481572822945 -> 1.000000000000826 Inexact Rounded
-dddiv4043 divide 4909616081396134 4909616081373076 -> 1.000000000004696 Inexact Rounded
-dddiv4044 divide 636447224349537 636447224338757 -> 1.000000000016938 Inexact Rounded
-dddiv4045 divide 1539373428396640 1539373428364727 -> 1.000000000020731 Inexact Rounded
-dddiv4046 divide 2028786707377893 2028786707378866 -> 0.9999999999995204 Inexact Rounded
-dddiv4047 divide 137643260486222 137643260487419 -> 0.9999999999913036 Inexact Rounded
-dddiv4048 divide 247451519746765 247451519752267 -> 0.9999999999777653 Inexact Rounded
-dddiv4049 divide 7877858475022054 7877858474999794 -> 1.000000000002826 Inexact Rounded
-dddiv4050 divide 7333242694766258 7333242694744628 -> 1.000000000002950 Inexact Rounded
-dddiv4051 divide 124051503698592 124051503699397 -> 0.9999999999935108 Inexact Rounded
-dddiv4052 divide 8944737432385188 8944737432406860 -> 0.9999999999975771 Inexact Rounded
-dddiv4053 divide 9883948923406874 9883948923424843 -> 0.9999999999981820 Inexact Rounded
-dddiv4054 divide 6829178741654284 6829178741671973 -> 0.9999999999974098 Inexact Rounded
-dddiv4055 divide 7342752479768122 7342752479793385 -> 0.9999999999965595 Inexact Rounded
-dddiv4056 divide 8066426579008783 8066426578977563 -> 1.000000000003870 Inexact Rounded
-dddiv4057 divide 8992775071383295 8992775071352712 -> 1.000000000003401 Inexact Rounded
-dddiv4058 divide 5485011755545641 5485011755543611 -> 1.000000000000370 Inexact Rounded
-dddiv4059 divide 5779983054353918 5779983054365300 -> 0.9999999999980308 Inexact Rounded
-dddiv4060 divide 9502265102713774 9502265102735208 -> 0.9999999999977443 Inexact Rounded
-dddiv4061 divide 2109558399130981 2109558399116281 -> 1.000000000006968 Inexact Rounded
-dddiv4062 divide 5296182636350471 5296182636351521 -> 0.9999999999998017 Inexact Rounded
-dddiv4063 divide 1440019225591883 1440019225601844 -> 0.9999999999930827 Inexact Rounded
-dddiv4064 divide 8182110791881341 8182110791847174 -> 1.000000000004176 Inexact Rounded
-dddiv4065 divide 489098235512060 489098235534516 -> 0.9999999999540869 Inexact Rounded
-dddiv4066 divide 6475687084782038 6475687084756089 -> 1.000000000004007 Inexact Rounded
-dddiv4067 divide 8094348555736948 8094348555759236 -> 0.9999999999972465 Inexact Rounded
-dddiv4068 divide 1982766816291543 1982766816309463 -> 0.9999999999909621 Inexact Rounded
-dddiv4069 divide 9277314300113251 9277314300084467 -> 1.000000000003103 Inexact Rounded
-dddiv4070 divide 4335532959318934 4335532959293167 -> 1.000000000005943 Inexact Rounded
-dddiv4071 divide 7767113032981348 7767113032968132 -> 1.000000000001702 Inexact Rounded
-dddiv4072 divide 1578548053342868 1578548053370448 -> 0.9999999999825282 Inexact Rounded
-dddiv4073 divide 3790420686666898 3790420686636315 -> 1.000000000008068 Inexact Rounded
-dddiv4074 divide 871682421955147 871682421976441 -> 0.9999999999755714 Inexact Rounded
-dddiv4075 divide 744141054479940 744141054512329 -> 0.9999999999564746 Inexact Rounded
-dddiv4076 divide 8956824183670735 8956824183641741 -> 1.000000000003237 Inexact Rounded
-dddiv4077 divide 8337291694485682 8337291694451193 -> 1.000000000004137 Inexact Rounded
-dddiv4078 divide 4107775944683669 4107775944657097 -> 1.000000000006469 Inexact Rounded
-dddiv4079 divide 8691900057964648 8691900057997555 -> 0.9999999999962141 Inexact Rounded
-dddiv4080 divide 2229528520536462 2229528520502337 -> 1.000000000015306 Inexact Rounded
-dddiv4081 divide 398442083774322 398442083746273 -> 1.000000000070397 Inexact Rounded
-dddiv4082 divide 5319819776808759 5319819776838313 -> 0.9999999999944445 Inexact Rounded
-dddiv4083 divide 7710491299066855 7710491299041858 -> 1.000000000003242 Inexact Rounded
-dddiv4084 divide 9083231296087266 9083231296058160 -> 1.000000000003204 Inexact Rounded
-dddiv4085 divide 3566873574904559 3566873574890328 -> 1.000000000003990 Inexact Rounded
-dddiv4086 divide 596343290550525 596343290555614 -> 0.9999999999914663 Inexact Rounded
-dddiv4087 divide 278227925093192 278227925068104 -> 1.000000000090171 Inexact Rounded
-dddiv4088 divide 3292902958490649 3292902958519881 -> 0.9999999999911227 Inexact Rounded
-dddiv4089 divide 5521871364245881 5521871364229536 -> 1.000000000002960 Inexact Rounded
-dddiv4090 divide 2406505602883617 2406505602857997 -> 1.000000000010646 Inexact Rounded
-dddiv4091 divide 7741146984869208 7741146984867255 -> 1.000000000000252 Inexact Rounded
-dddiv4092 divide 4576041832414909 4576041832405102 -> 1.000000000002143 Inexact Rounded
-dddiv4093 divide 9183756982878057 9183756982901934 -> 0.9999999999974001 Inexact Rounded
-dddiv4094 divide 6215736513855159 6215736513870342 -> 0.9999999999975573 Inexact Rounded
-dddiv4095 divide 248554968534533 248554968551417 -> 0.9999999999320714 Inexact Rounded
-dddiv4096 divide 376314165668645 376314165659755 -> 1.000000000023624 Inexact Rounded
-dddiv4097 divide 5513569249809718 5513569249808906 -> 1.000000000000147 Inexact Rounded
-dddiv4098 divide 3367992242167904 3367992242156228 -> 1.000000000003467 Inexact Rounded
-dddiv4099 divide 6134869538966967 6134869538985986 -> 0.9999999999968999 Inexact Rounded
-
--- Null tests
-dddiv9998 divide 10 # -> NaN Invalid_operation
-dddiv9999 divide # 10 -> NaN Invalid_operation
-
+------------------------------------------------------------------------ +-- ddDivide.decTest -- decDouble division -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +-- sanity checks +dddiv001 divide 1 1 -> 1 +dddiv002 divide 2 1 -> 2 +dddiv003 divide 1 2 -> 0.5 +dddiv004 divide 2 2 -> 1 +dddiv005 divide 0 1 -> 0 +dddiv006 divide 0 2 -> 0 +dddiv007 divide 1 3 -> 0.3333333333333333 Inexact Rounded +dddiv008 divide 2 3 -> 0.6666666666666667 Inexact Rounded +dddiv009 divide 3 3 -> 1 + +dddiv010 divide 2.4 1 -> 2.4 +dddiv011 divide 2.4 -1 -> -2.4 +dddiv012 divide -2.4 1 -> -2.4 +dddiv013 divide -2.4 -1 -> 2.4 +dddiv014 divide 2.40 1 -> 2.40 +dddiv015 divide 2.400 1 -> 2.400 +dddiv016 divide 2.4 2 -> 1.2 +dddiv017 divide 2.400 2 -> 1.200 +dddiv018 divide 2. 2 -> 1 +dddiv019 divide 20 20 -> 1 + +dddiv020 divide 187 187 -> 1 +dddiv021 divide 5 2 -> 2.5 +dddiv022 divide 50 20 -> 2.5 +dddiv023 divide 500 200 -> 2.5 +dddiv024 divide 50.0 20.0 -> 2.5 +dddiv025 divide 5.00 2.00 -> 2.5 +dddiv026 divide 5 2.0 -> 2.5 +dddiv027 divide 5 2.000 -> 2.5 +dddiv028 divide 5 0.20 -> 25 +dddiv029 divide 5 0.200 -> 25 +dddiv030 divide 10 1 -> 10 +dddiv031 divide 100 1 -> 100 +dddiv032 divide 1000 1 -> 1000 +dddiv033 divide 1000 100 -> 10 + +dddiv035 divide 1 2 -> 0.5 +dddiv036 divide 1 4 -> 0.25 +dddiv037 divide 1 8 -> 0.125 +dddiv038 divide 1 16 -> 0.0625 +dddiv039 divide 1 32 -> 0.03125 +dddiv040 divide 1 64 -> 0.015625 +dddiv041 divide 1 -2 -> -0.5 +dddiv042 divide 1 -4 -> -0.25 +dddiv043 divide 1 -8 -> -0.125 +dddiv044 divide 1 -16 -> -0.0625 +dddiv045 divide 1 -32 -> -0.03125 +dddiv046 divide 1 -64 -> -0.015625 +dddiv047 divide -1 2 -> -0.5 +dddiv048 divide -1 4 -> -0.25 +dddiv049 divide -1 8 -> -0.125 +dddiv050 divide -1 16 -> -0.0625 +dddiv051 divide -1 32 -> -0.03125 +dddiv052 divide -1 64 -> -0.015625 +dddiv053 divide -1 -2 -> 0.5 +dddiv054 divide -1 -4 -> 0.25 +dddiv055 divide -1 -8 -> 0.125 +dddiv056 divide -1 -16 -> 0.0625 +dddiv057 divide -1 -32 -> 0.03125 +dddiv058 divide -1 -64 -> 0.015625 + +-- bcdTime +dddiv060 divide 1 7 -> 0.1428571428571429 Inexact Rounded +dddiv061 divide 1.2345678 1.9876543 -> 0.6211179680490717 Inexact Rounded + +-- 1234567890123456 +dddiv071 divide 9999999999999999 1 -> 9999999999999999 +dddiv072 divide 999999999999999 1 -> 999999999999999 +dddiv073 divide 99999999999999 1 -> 99999999999999 +dddiv074 divide 9999999999999 1 -> 9999999999999 +dddiv075 divide 999999999999 1 -> 999999999999 +dddiv076 divide 99999999999 1 -> 99999999999 +dddiv077 divide 9999999999 1 -> 9999999999 +dddiv078 divide 999999999 1 -> 999999999 +dddiv079 divide 99999999 1 -> 99999999 +dddiv080 divide 9999999 1 -> 9999999 +dddiv081 divide 999999 1 -> 999999 +dddiv082 divide 99999 1 -> 99999 +dddiv083 divide 9999 1 -> 9999 +dddiv084 divide 999 1 -> 999 +dddiv085 divide 99 1 -> 99 +dddiv086 divide 9 1 -> 9 + +dddiv090 divide 0. 1 -> 0 +dddiv091 divide .0 1 -> 0.0 +dddiv092 divide 0.00 1 -> 0.00 +dddiv093 divide 0.00E+9 1 -> 0E+7 +dddiv094 divide 0.0000E-50 1 -> 0E-54 + +dddiv095 divide 1 1E-8 -> 1E+8 +dddiv096 divide 1 1E-9 -> 1E+9 +dddiv097 divide 1 1E-10 -> 1E+10 +dddiv098 divide 1 1E-11 -> 1E+11 +dddiv099 divide 1 1E-12 -> 1E+12 + +dddiv100 divide 1 1 -> 1 +dddiv101 divide 1 2 -> 0.5 +dddiv102 divide 1 3 -> 0.3333333333333333 Inexact Rounded +dddiv103 divide 1 4 -> 0.25 +dddiv104 divide 1 5 -> 0.2 +dddiv105 divide 1 6 -> 0.1666666666666667 Inexact Rounded +dddiv106 divide 1 7 -> 0.1428571428571429 Inexact Rounded +dddiv107 divide 1 8 -> 0.125 +dddiv108 divide 1 9 -> 0.1111111111111111 Inexact Rounded +dddiv109 divide 1 10 -> 0.1 +dddiv110 divide 1 1 -> 1 +dddiv111 divide 2 1 -> 2 +dddiv112 divide 3 1 -> 3 +dddiv113 divide 4 1 -> 4 +dddiv114 divide 5 1 -> 5 +dddiv115 divide 6 1 -> 6 +dddiv116 divide 7 1 -> 7 +dddiv117 divide 8 1 -> 8 +dddiv118 divide 9 1 -> 9 +dddiv119 divide 10 1 -> 10 + +dddiv120 divide 3E+1 0.001 -> 3E+4 +dddiv121 divide 2.200 2 -> 1.100 + +dddiv130 divide 12345 4.999 -> 2469.493898779756 Inexact Rounded +dddiv131 divide 12345 4.99 -> 2473.947895791583 Inexact Rounded +dddiv132 divide 12345 4.9 -> 2519.387755102041 Inexact Rounded +dddiv133 divide 12345 5 -> 2469 +dddiv134 divide 12345 5.1 -> 2420.588235294118 Inexact Rounded +dddiv135 divide 12345 5.01 -> 2464.071856287425 Inexact Rounded +dddiv136 divide 12345 5.001 -> 2468.506298740252 Inexact Rounded + +-- test possibly imprecise results +dddiv220 divide 391 597 -> 0.6549413735343384 Inexact Rounded +dddiv221 divide 391 -597 -> -0.6549413735343384 Inexact Rounded +dddiv222 divide -391 597 -> -0.6549413735343384 Inexact Rounded +dddiv223 divide -391 -597 -> 0.6549413735343384 Inexact Rounded + +-- test some cases that are close to exponent overflow, some with coefficient padding +dddiv270 divide 1 1e384 -> 1E-384 Subnormal +dddiv271 divide 1 0.9e384 -> 1.11111111111111E-384 Rounded Inexact Subnormal Underflow +dddiv272 divide 1 0.99e384 -> 1.01010101010101E-384 Rounded Inexact Subnormal Underflow +dddiv273 divide 1 0.9999999999999999e384 -> 1.00000000000000E-384 Rounded Inexact Subnormal Underflow +dddiv274 divide 9e384 1 -> 9.000000000000000E+384 Clamped +dddiv275 divide 9.9e384 1 -> 9.900000000000000E+384 Clamped +dddiv276 divide 9.99e384 1 -> 9.990000000000000E+384 Clamped +dddiv277 divide 9.9999999999999e384 1 -> 9.999999999999900E+384 Clamped +dddiv278 divide 9.99999999999999e384 1 -> 9.999999999999990E+384 Clamped +dddiv279 divide 9.999999999999999e384 1 -> 9.999999999999999E+384 + +dddiv285 divide 9.9e384 1.1 -> 9.000000000000000E+384 Clamped +dddiv286 divide 9.99e384 1.1 -> 9.081818181818182E+384 Inexact Rounded +dddiv287 divide 9.9999999999999e384 1.1 -> 9.090909090909000E+384 Clamped +dddiv288 divide 9.99999999999999e384 1.1 -> 9.090909090909082E+384 Inexact Rounded +dddiv289 divide 9.999999999999999e384 1.1 -> 9.090909090909090E+384 Clamped + + +-- Divide into 0 tests +dddiv301 divide 0 7 -> 0 +dddiv302 divide 0 7E-5 -> 0E+5 +dddiv303 divide 0 7E-1 -> 0E+1 +dddiv304 divide 0 7E+1 -> 0.0 +dddiv305 divide 0 7E+5 -> 0.00000 +dddiv306 divide 0 7E+6 -> 0.000000 +dddiv307 divide 0 7E+7 -> 0E-7 +dddiv308 divide 0 70E-5 -> 0E+5 +dddiv309 divide 0 70E-1 -> 0E+1 +dddiv310 divide 0 70E+0 -> 0 +dddiv311 divide 0 70E+1 -> 0.0 +dddiv312 divide 0 70E+5 -> 0.00000 +dddiv313 divide 0 70E+6 -> 0.000000 +dddiv314 divide 0 70E+7 -> 0E-7 +dddiv315 divide 0 700E-5 -> 0E+5 +dddiv316 divide 0 700E-1 -> 0E+1 +dddiv317 divide 0 700E+0 -> 0 +dddiv318 divide 0 700E+1 -> 0.0 +dddiv319 divide 0 700E+5 -> 0.00000 +dddiv320 divide 0 700E+6 -> 0.000000 +dddiv321 divide 0 700E+7 -> 0E-7 +dddiv322 divide 0 700E+77 -> 0E-77 + +dddiv331 divide 0E-3 7E-5 -> 0E+2 +dddiv332 divide 0E-3 7E-1 -> 0.00 +dddiv333 divide 0E-3 7E+1 -> 0.0000 +dddiv334 divide 0E-3 7E+5 -> 0E-8 +dddiv335 divide 0E-1 7E-5 -> 0E+4 +dddiv336 divide 0E-1 7E-1 -> 0 +dddiv337 divide 0E-1 7E+1 -> 0.00 +dddiv338 divide 0E-1 7E+5 -> 0.000000 +dddiv339 divide 0E+1 7E-5 -> 0E+6 +dddiv340 divide 0E+1 7E-1 -> 0E+2 +dddiv341 divide 0E+1 7E+1 -> 0 +dddiv342 divide 0E+1 7E+5 -> 0.0000 +dddiv343 divide 0E+3 7E-5 -> 0E+8 +dddiv344 divide 0E+3 7E-1 -> 0E+4 +dddiv345 divide 0E+3 7E+1 -> 0E+2 +dddiv346 divide 0E+3 7E+5 -> 0.00 + +-- These were 'input rounding' +dddiv441 divide 12345678000 1 -> 12345678000 +dddiv442 divide 1 12345678000 -> 8.100000664200054E-11 Inexact Rounded +dddiv443 divide 1234567800 1 -> 1234567800 +dddiv444 divide 1 1234567800 -> 8.100000664200054E-10 Inexact Rounded +dddiv445 divide 1234567890 1 -> 1234567890 +dddiv446 divide 1 1234567890 -> 8.100000073710001E-10 Inexact Rounded +dddiv447 divide 1234567891 1 -> 1234567891 +dddiv448 divide 1 1234567891 -> 8.100000067149001E-10 Inexact Rounded +dddiv449 divide 12345678901 1 -> 12345678901 +dddiv450 divide 1 12345678901 -> 8.100000073053901E-11 Inexact Rounded +dddiv451 divide 1234567896 1 -> 1234567896 +dddiv452 divide 1 1234567896 -> 8.100000034344000E-10 Inexact Rounded + +-- high-lows +dddiv453 divide 1e+1 1 -> 1E+1 +dddiv454 divide 1e+1 1.0 -> 1E+1 +dddiv455 divide 1e+1 1.00 -> 1E+1 +dddiv456 divide 1e+2 2 -> 5E+1 +dddiv457 divide 1e+2 2.0 -> 5E+1 +dddiv458 divide 1e+2 2.00 -> 5E+1 + +-- some from IEEE discussions +dddiv460 divide 3e0 2e0 -> 1.5 +dddiv461 divide 30e-1 2e0 -> 1.5 +dddiv462 divide 300e-2 2e0 -> 1.50 +dddiv464 divide 3000e-3 2e0 -> 1.500 +dddiv465 divide 3e0 20e-1 -> 1.5 +dddiv466 divide 30e-1 20e-1 -> 1.5 +dddiv467 divide 300e-2 20e-1 -> 1.5 +dddiv468 divide 3000e-3 20e-1 -> 1.50 +dddiv469 divide 3e0 200e-2 -> 1.5 +dddiv470 divide 30e-1 200e-2 -> 1.5 +dddiv471 divide 300e-2 200e-2 -> 1.5 +dddiv472 divide 3000e-3 200e-2 -> 1.5 +dddiv473 divide 3e0 2000e-3 -> 1.5 +dddiv474 divide 30e-1 2000e-3 -> 1.5 +dddiv475 divide 300e-2 2000e-3 -> 1.5 +dddiv476 divide 3000e-3 2000e-3 -> 1.5 + +-- some reciprocals +dddiv480 divide 1 1.0E+33 -> 1E-33 +dddiv481 divide 1 10E+33 -> 1E-34 +dddiv482 divide 1 1.0E-33 -> 1E+33 +dddiv483 divide 1 10E-33 -> 1E+32 + +-- RMS discussion table +dddiv484 divide 0e5 1e3 -> 0E+2 +dddiv485 divide 0e5 2e3 -> 0E+2 +dddiv486 divide 0e5 10e2 -> 0E+3 +dddiv487 divide 0e5 20e2 -> 0E+3 +dddiv488 divide 0e5 100e1 -> 0E+4 +dddiv489 divide 0e5 200e1 -> 0E+4 + +dddiv491 divide 1e5 1e3 -> 1E+2 +dddiv492 divide 1e5 2e3 -> 5E+1 +dddiv493 divide 1e5 10e2 -> 1E+2 +dddiv494 divide 1e5 20e2 -> 5E+1 +dddiv495 divide 1e5 100e1 -> 1E+2 +dddiv496 divide 1e5 200e1 -> 5E+1 + +-- tryzeros cases +rounding: half_up +dddiv497 divide 0E+380 1000E-13 -> 0E+369 Clamped +dddiv498 divide 0E-390 1000E+13 -> 0E-398 Clamped + +rounding: half_up + +-- focus on trailing zeros issues +dddiv500 divide 1 9.9 -> 0.1010101010101010 Inexact Rounded +dddiv501 divide 1 9.09 -> 0.1100110011001100 Inexact Rounded +dddiv502 divide 1 9.009 -> 0.1110001110001110 Inexact Rounded + +dddiv511 divide 1 2 -> 0.5 +dddiv512 divide 1.0 2 -> 0.5 +dddiv513 divide 1.00 2 -> 0.50 +dddiv514 divide 1.000 2 -> 0.500 +dddiv515 divide 1.0000 2 -> 0.5000 +dddiv516 divide 1.00000 2 -> 0.50000 +dddiv517 divide 1.000000 2 -> 0.500000 +dddiv518 divide 1.0000000 2 -> 0.5000000 +dddiv519 divide 1.00 2.00 -> 0.5 + +dddiv521 divide 2 1 -> 2 +dddiv522 divide 2 1.0 -> 2 +dddiv523 divide 2 1.00 -> 2 +dddiv524 divide 2 1.000 -> 2 +dddiv525 divide 2 1.0000 -> 2 +dddiv526 divide 2 1.00000 -> 2 +dddiv527 divide 2 1.000000 -> 2 +dddiv528 divide 2 1.0000000 -> 2 +dddiv529 divide 2.00 1.00 -> 2 + +dddiv530 divide 2.40 2 -> 1.20 +dddiv531 divide 2.40 4 -> 0.60 +dddiv532 divide 2.40 10 -> 0.24 +dddiv533 divide 2.40 2.0 -> 1.2 +dddiv534 divide 2.40 4.0 -> 0.6 +dddiv535 divide 2.40 10.0 -> 0.24 +dddiv536 divide 2.40 2.00 -> 1.2 +dddiv537 divide 2.40 4.00 -> 0.6 +dddiv538 divide 2.40 10.00 -> 0.24 +dddiv539 divide 0.9 0.1 -> 9 +dddiv540 divide 0.9 0.01 -> 9E+1 +dddiv541 divide 0.9 0.001 -> 9E+2 +dddiv542 divide 5 2 -> 2.5 +dddiv543 divide 5 2.0 -> 2.5 +dddiv544 divide 5 2.00 -> 2.5 +dddiv545 divide 5 20 -> 0.25 +dddiv546 divide 5 20.0 -> 0.25 +dddiv547 divide 2.400 2 -> 1.200 +dddiv548 divide 2.400 2.0 -> 1.20 +dddiv549 divide 2.400 2.400 -> 1 + +dddiv550 divide 240 1 -> 240 +dddiv551 divide 240 10 -> 24 +dddiv552 divide 240 100 -> 2.4 +dddiv553 divide 240 1000 -> 0.24 +dddiv554 divide 2400 1 -> 2400 +dddiv555 divide 2400 10 -> 240 +dddiv556 divide 2400 100 -> 24 +dddiv557 divide 2400 1000 -> 2.4 + +-- +ve exponent +dddiv600 divide 2.4E+9 2 -> 1.2E+9 +dddiv601 divide 2.40E+9 2 -> 1.20E+9 +dddiv602 divide 2.400E+9 2 -> 1.200E+9 +dddiv603 divide 2.4000E+9 2 -> 1.2000E+9 +dddiv604 divide 24E+8 2 -> 1.2E+9 +dddiv605 divide 240E+7 2 -> 1.20E+9 +dddiv606 divide 2400E+6 2 -> 1.200E+9 +dddiv607 divide 24000E+5 2 -> 1.2000E+9 + +-- more zeros, etc. +dddiv731 divide 5.00 1E-3 -> 5.00E+3 +dddiv732 divide 00.00 0.000 -> NaN Division_undefined +dddiv733 divide 00.00 0E-3 -> NaN Division_undefined +dddiv734 divide 0 -0 -> NaN Division_undefined +dddiv735 divide -0 0 -> NaN Division_undefined +dddiv736 divide -0 -0 -> NaN Division_undefined + +dddiv741 divide 0 -1 -> -0 +dddiv742 divide -0 -1 -> 0 +dddiv743 divide 0 1 -> 0 +dddiv744 divide -0 1 -> -0 +dddiv745 divide -1 0 -> -Infinity Division_by_zero +dddiv746 divide -1 -0 -> Infinity Division_by_zero +dddiv747 divide 1 0 -> Infinity Division_by_zero +dddiv748 divide 1 -0 -> -Infinity Division_by_zero + +dddiv751 divide 0.0 -1 -> -0.0 +dddiv752 divide -0.0 -1 -> 0.0 +dddiv753 divide 0.0 1 -> 0.0 +dddiv754 divide -0.0 1 -> -0.0 +dddiv755 divide -1.0 0 -> -Infinity Division_by_zero +dddiv756 divide -1.0 -0 -> Infinity Division_by_zero +dddiv757 divide 1.0 0 -> Infinity Division_by_zero +dddiv758 divide 1.0 -0 -> -Infinity Division_by_zero + +dddiv761 divide 0 -1.0 -> -0E+1 +dddiv762 divide -0 -1.0 -> 0E+1 +dddiv763 divide 0 1.0 -> 0E+1 +dddiv764 divide -0 1.0 -> -0E+1 +dddiv765 divide -1 0.0 -> -Infinity Division_by_zero +dddiv766 divide -1 -0.0 -> Infinity Division_by_zero +dddiv767 divide 1 0.0 -> Infinity Division_by_zero +dddiv768 divide 1 -0.0 -> -Infinity Division_by_zero + +dddiv771 divide 0.0 -1.0 -> -0 +dddiv772 divide -0.0 -1.0 -> 0 +dddiv773 divide 0.0 1.0 -> 0 +dddiv774 divide -0.0 1.0 -> -0 +dddiv775 divide -1.0 0.0 -> -Infinity Division_by_zero +dddiv776 divide -1.0 -0.0 -> Infinity Division_by_zero +dddiv777 divide 1.0 0.0 -> Infinity Division_by_zero +dddiv778 divide 1.0 -0.0 -> -Infinity Division_by_zero + +-- Specials +dddiv780 divide Inf -Inf -> NaN Invalid_operation +dddiv781 divide Inf -1000 -> -Infinity +dddiv782 divide Inf -1 -> -Infinity +dddiv783 divide Inf -0 -> -Infinity +dddiv784 divide Inf 0 -> Infinity +dddiv785 divide Inf 1 -> Infinity +dddiv786 divide Inf 1000 -> Infinity +dddiv787 divide Inf Inf -> NaN Invalid_operation +dddiv788 divide -1000 Inf -> -0E-398 Clamped +dddiv789 divide -Inf Inf -> NaN Invalid_operation +dddiv790 divide -1 Inf -> -0E-398 Clamped +dddiv791 divide -0 Inf -> -0E-398 Clamped +dddiv792 divide 0 Inf -> 0E-398 Clamped +dddiv793 divide 1 Inf -> 0E-398 Clamped +dddiv794 divide 1000 Inf -> 0E-398 Clamped +dddiv795 divide Inf Inf -> NaN Invalid_operation + +dddiv800 divide -Inf -Inf -> NaN Invalid_operation +dddiv801 divide -Inf -1000 -> Infinity +dddiv802 divide -Inf -1 -> Infinity +dddiv803 divide -Inf -0 -> Infinity +dddiv804 divide -Inf 0 -> -Infinity +dddiv805 divide -Inf 1 -> -Infinity +dddiv806 divide -Inf 1000 -> -Infinity +dddiv807 divide -Inf Inf -> NaN Invalid_operation +dddiv808 divide -1000 Inf -> -0E-398 Clamped +dddiv809 divide -Inf -Inf -> NaN Invalid_operation +dddiv810 divide -1 -Inf -> 0E-398 Clamped +dddiv811 divide -0 -Inf -> 0E-398 Clamped +dddiv812 divide 0 -Inf -> -0E-398 Clamped +dddiv813 divide 1 -Inf -> -0E-398 Clamped +dddiv814 divide 1000 -Inf -> -0E-398 Clamped +dddiv815 divide Inf -Inf -> NaN Invalid_operation + +dddiv821 divide NaN -Inf -> NaN +dddiv822 divide NaN -1000 -> NaN +dddiv823 divide NaN -1 -> NaN +dddiv824 divide NaN -0 -> NaN +dddiv825 divide NaN 0 -> NaN +dddiv826 divide NaN 1 -> NaN +dddiv827 divide NaN 1000 -> NaN +dddiv828 divide NaN Inf -> NaN +dddiv829 divide NaN NaN -> NaN +dddiv830 divide -Inf NaN -> NaN +dddiv831 divide -1000 NaN -> NaN +dddiv832 divide -1 NaN -> NaN +dddiv833 divide -0 NaN -> NaN +dddiv834 divide 0 NaN -> NaN +dddiv835 divide 1 NaN -> NaN +dddiv836 divide 1000 NaN -> NaN +dddiv837 divide Inf NaN -> NaN + +dddiv841 divide sNaN -Inf -> NaN Invalid_operation +dddiv842 divide sNaN -1000 -> NaN Invalid_operation +dddiv843 divide sNaN -1 -> NaN Invalid_operation +dddiv844 divide sNaN -0 -> NaN Invalid_operation +dddiv845 divide sNaN 0 -> NaN Invalid_operation +dddiv846 divide sNaN 1 -> NaN Invalid_operation +dddiv847 divide sNaN 1000 -> NaN Invalid_operation +dddiv848 divide sNaN NaN -> NaN Invalid_operation +dddiv849 divide sNaN sNaN -> NaN Invalid_operation +dddiv850 divide NaN sNaN -> NaN Invalid_operation +dddiv851 divide -Inf sNaN -> NaN Invalid_operation +dddiv852 divide -1000 sNaN -> NaN Invalid_operation +dddiv853 divide -1 sNaN -> NaN Invalid_operation +dddiv854 divide -0 sNaN -> NaN Invalid_operation +dddiv855 divide 0 sNaN -> NaN Invalid_operation +dddiv856 divide 1 sNaN -> NaN Invalid_operation +dddiv857 divide 1000 sNaN -> NaN Invalid_operation +dddiv858 divide Inf sNaN -> NaN Invalid_operation +dddiv859 divide NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +dddiv861 divide NaN9 -Inf -> NaN9 +dddiv862 divide NaN8 1000 -> NaN8 +dddiv863 divide NaN7 Inf -> NaN7 +dddiv864 divide NaN6 NaN5 -> NaN6 +dddiv865 divide -Inf NaN4 -> NaN4 +dddiv866 divide -1000 NaN3 -> NaN3 +dddiv867 divide Inf NaN2 -> NaN2 + +dddiv871 divide sNaN99 -Inf -> NaN99 Invalid_operation +dddiv872 divide sNaN98 -1 -> NaN98 Invalid_operation +dddiv873 divide sNaN97 NaN -> NaN97 Invalid_operation +dddiv874 divide sNaN96 sNaN94 -> NaN96 Invalid_operation +dddiv875 divide NaN95 sNaN93 -> NaN93 Invalid_operation +dddiv876 divide -Inf sNaN92 -> NaN92 Invalid_operation +dddiv877 divide 0 sNaN91 -> NaN91 Invalid_operation +dddiv878 divide Inf sNaN90 -> NaN90 Invalid_operation +dddiv879 divide NaN sNaN89 -> NaN89 Invalid_operation + +dddiv881 divide -NaN9 -Inf -> -NaN9 +dddiv882 divide -NaN8 1000 -> -NaN8 +dddiv883 divide -NaN7 Inf -> -NaN7 +dddiv884 divide -NaN6 -NaN5 -> -NaN6 +dddiv885 divide -Inf -NaN4 -> -NaN4 +dddiv886 divide -1000 -NaN3 -> -NaN3 +dddiv887 divide Inf -NaN2 -> -NaN2 + +dddiv891 divide -sNaN99 -Inf -> -NaN99 Invalid_operation +dddiv892 divide -sNaN98 -1 -> -NaN98 Invalid_operation +dddiv893 divide -sNaN97 NaN -> -NaN97 Invalid_operation +dddiv894 divide -sNaN96 -sNaN94 -> -NaN96 Invalid_operation +dddiv895 divide -NaN95 -sNaN93 -> -NaN93 Invalid_operation +dddiv896 divide -Inf -sNaN92 -> -NaN92 Invalid_operation +dddiv897 divide 0 -sNaN91 -> -NaN91 Invalid_operation +dddiv898 divide Inf -sNaN90 -> -NaN90 Invalid_operation +dddiv899 divide -NaN -sNaN89 -> -NaN89 Invalid_operation + +-- Various flavours of divide by 0 +dddiv901 divide 0 0 -> NaN Division_undefined +dddiv902 divide 0.0E5 0 -> NaN Division_undefined +dddiv903 divide 0.000 0 -> NaN Division_undefined +dddiv904 divide 0.0001 0 -> Infinity Division_by_zero +dddiv905 divide 0.01 0 -> Infinity Division_by_zero +dddiv906 divide 0.1 0 -> Infinity Division_by_zero +dddiv907 divide 1 0 -> Infinity Division_by_zero +dddiv908 divide 1 0.0 -> Infinity Division_by_zero +dddiv909 divide 10 0.0 -> Infinity Division_by_zero +dddiv910 divide 1E+100 0.0 -> Infinity Division_by_zero +dddiv911 divide 1E+100 0 -> Infinity Division_by_zero + +dddiv921 divide -0.0001 0 -> -Infinity Division_by_zero +dddiv922 divide -0.01 0 -> -Infinity Division_by_zero +dddiv923 divide -0.1 0 -> -Infinity Division_by_zero +dddiv924 divide -1 0 -> -Infinity Division_by_zero +dddiv925 divide -1 0.0 -> -Infinity Division_by_zero +dddiv926 divide -10 0.0 -> -Infinity Division_by_zero +dddiv927 divide -1E+100 0.0 -> -Infinity Division_by_zero +dddiv928 divide -1E+100 0 -> -Infinity Division_by_zero + +dddiv931 divide 0.0001 -0 -> -Infinity Division_by_zero +dddiv932 divide 0.01 -0 -> -Infinity Division_by_zero +dddiv933 divide 0.1 -0 -> -Infinity Division_by_zero +dddiv934 divide 1 -0 -> -Infinity Division_by_zero +dddiv935 divide 1 -0.0 -> -Infinity Division_by_zero +dddiv936 divide 10 -0.0 -> -Infinity Division_by_zero +dddiv937 divide 1E+100 -0.0 -> -Infinity Division_by_zero +dddiv938 divide 1E+100 -0 -> -Infinity Division_by_zero + +dddiv941 divide -0.0001 -0 -> Infinity Division_by_zero +dddiv942 divide -0.01 -0 -> Infinity Division_by_zero +dddiv943 divide -0.1 -0 -> Infinity Division_by_zero +dddiv944 divide -1 -0 -> Infinity Division_by_zero +dddiv945 divide -1 -0.0 -> Infinity Division_by_zero +dddiv946 divide -10 -0.0 -> Infinity Division_by_zero +dddiv947 divide -1E+100 -0.0 -> Infinity Division_by_zero +dddiv948 divide -1E+100 -0 -> Infinity Division_by_zero + +-- Examples from SQL proposal (Krishna Kulkarni) +dddiv1021 divide 1E0 1E0 -> 1 +dddiv1022 divide 1E0 2E0 -> 0.5 +dddiv1023 divide 1E0 3E0 -> 0.3333333333333333 Inexact Rounded +dddiv1024 divide 100E-2 1000E-3 -> 1 +dddiv1025 divide 24E-1 2E0 -> 1.2 +dddiv1026 divide 2400E-3 2E0 -> 1.200 +dddiv1027 divide 5E0 2E0 -> 2.5 +dddiv1028 divide 5E0 20E-1 -> 2.5 +dddiv1029 divide 5E0 2000E-3 -> 2.5 +dddiv1030 divide 5E0 2E-1 -> 25 +dddiv1031 divide 5E0 20E-2 -> 25 +dddiv1032 divide 480E-2 3E0 -> 1.60 +dddiv1033 divide 47E-1 2E0 -> 2.35 + +-- ECMAScript bad examples +rounding: half_down +dddiv1040 divide 5 9 -> 0.5555555555555556 Inexact Rounded +rounding: half_even +dddiv1041 divide 6 11 -> 0.5454545454545455 Inexact Rounded + +-- overflow and underflow tests .. note subnormal results +-- signs +dddiv1051 divide 1e+277 1e-311 -> Infinity Overflow Inexact Rounded +dddiv1052 divide 1e+277 -1e-311 -> -Infinity Overflow Inexact Rounded +dddiv1053 divide -1e+277 1e-311 -> -Infinity Overflow Inexact Rounded +dddiv1054 divide -1e+277 -1e-311 -> Infinity Overflow Inexact Rounded +dddiv1055 divide 1e-277 1e+311 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +dddiv1056 divide 1e-277 -1e+311 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped +dddiv1057 divide -1e-277 1e+311 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped +dddiv1058 divide -1e-277 -1e+311 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped + +-- 'subnormal' boundary (all hard underflow or overflow in base arithemtic) +dddiv1060 divide 1e-291 1e+101 -> 1E-392 Subnormal +dddiv1061 divide 1e-291 1e+102 -> 1E-393 Subnormal +dddiv1062 divide 1e-291 1e+103 -> 1E-394 Subnormal +dddiv1063 divide 1e-291 1e+104 -> 1E-395 Subnormal +dddiv1064 divide 1e-291 1e+105 -> 1E-396 Subnormal +dddiv1065 divide 1e-291 1e+106 -> 1E-397 Subnormal +dddiv1066 divide 1e-291 1e+107 -> 1E-398 Subnormal +dddiv1067 divide 1e-291 1e+108 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +dddiv1068 divide 1e-291 1e+109 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +dddiv1069 divide 1e-291 1e+110 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +-- [no equivalent of 'subnormal' for overflow] +dddiv1070 divide 1e+60 1e-321 -> 1.000000000000E+381 Clamped +dddiv1071 divide 1e+60 1e-322 -> 1.0000000000000E+382 Clamped +dddiv1072 divide 1e+60 1e-323 -> 1.00000000000000E+383 Clamped +dddiv1073 divide 1e+60 1e-324 -> 1.000000000000000E+384 Clamped +dddiv1074 divide 1e+60 1e-325 -> Infinity Overflow Inexact Rounded +dddiv1075 divide 1e+60 1e-326 -> Infinity Overflow Inexact Rounded +dddiv1076 divide 1e+60 1e-327 -> Infinity Overflow Inexact Rounded +dddiv1077 divide 1e+60 1e-328 -> Infinity Overflow Inexact Rounded +dddiv1078 divide 1e+60 1e-329 -> Infinity Overflow Inexact Rounded +dddiv1079 divide 1e+60 1e-330 -> Infinity Overflow Inexact Rounded + +dddiv1101 divide 1.0000E-394 1 -> 1.0000E-394 Subnormal +dddiv1102 divide 1.000E-394 1e+1 -> 1.000E-395 Subnormal +dddiv1103 divide 1.00E-394 1e+2 -> 1.00E-396 Subnormal +dddiv1104 divide 1.0E-394 1e+3 -> 1.0E-397 Subnormal +dddiv1105 divide 1.0E-394 1e+4 -> 1E-398 Subnormal Rounded +dddiv1106 divide 1.3E-394 1e+4 -> 1E-398 Underflow Subnormal Inexact Rounded +dddiv1107 divide 1.5E-394 1e+4 -> 2E-398 Underflow Subnormal Inexact Rounded +dddiv1108 divide 1.7E-394 1e+4 -> 2E-398 Underflow Subnormal Inexact Rounded +dddiv1109 divide 2.3E-394 1e+4 -> 2E-398 Underflow Subnormal Inexact Rounded +dddiv1110 divide 2.5E-394 1e+4 -> 2E-398 Underflow Subnormal Inexact Rounded +dddiv1111 divide 2.7E-394 1e+4 -> 3E-398 Underflow Subnormal Inexact Rounded +dddiv1112 divide 1.49E-394 1e+4 -> 1E-398 Underflow Subnormal Inexact Rounded +dddiv1113 divide 1.50E-394 1e+4 -> 2E-398 Underflow Subnormal Inexact Rounded +dddiv1114 divide 1.51E-394 1e+4 -> 2E-398 Underflow Subnormal Inexact Rounded +dddiv1115 divide 2.49E-394 1e+4 -> 2E-398 Underflow Subnormal Inexact Rounded +dddiv1116 divide 2.50E-394 1e+4 -> 2E-398 Underflow Subnormal Inexact Rounded +dddiv1117 divide 2.51E-394 1e+4 -> 3E-398 Underflow Subnormal Inexact Rounded + +dddiv1118 divide 1E-394 1e+4 -> 1E-398 Subnormal +dddiv1119 divide 3E-394 1e+5 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +dddiv1120 divide 5E-394 1e+5 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +dddiv1121 divide 7E-394 1e+5 -> 1E-398 Underflow Subnormal Inexact Rounded +dddiv1122 divide 9E-394 1e+5 -> 1E-398 Underflow Subnormal Inexact Rounded +dddiv1123 divide 9.9E-394 1e+5 -> 1E-398 Underflow Subnormal Inexact Rounded + +dddiv1124 divide 1E-394 -1e+4 -> -1E-398 Subnormal +dddiv1125 divide 3E-394 -1e+5 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped +dddiv1126 divide -5E-394 1e+5 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped +dddiv1127 divide 7E-394 -1e+5 -> -1E-398 Underflow Subnormal Inexact Rounded +dddiv1128 divide -9E-394 1e+5 -> -1E-398 Underflow Subnormal Inexact Rounded +dddiv1129 divide 9.9E-394 -1e+5 -> -1E-398 Underflow Subnormal Inexact Rounded +dddiv1130 divide 3.0E-394 -1e+5 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped + +dddiv1131 divide 1.0E-199 1e+200 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +dddiv1132 divide 1.0E-199 1e+199 -> 1E-398 Subnormal Rounded +dddiv1133 divide 1.0E-199 1e+198 -> 1.0E-397 Subnormal +dddiv1134 divide 2.0E-199 2e+198 -> 1.0E-397 Subnormal +dddiv1135 divide 4.0E-199 4e+198 -> 1.0E-397 Subnormal +dddiv1136 divide 10.0E-199 10e+198 -> 1.0E-397 Subnormal +dddiv1137 divide 30.0E-199 30e+198 -> 1.0E-397 Subnormal + +-- randoms +dddiv2010 divide -3.303226714900711E-35 8.796578842713183E+73 -> -3.755126594058783E-109 Inexact Rounded +dddiv2011 divide 933153327821073.6 68782181090246.25 -> 13.56678885475763 Inexact Rounded +dddiv2012 divide 5.04752436057906E-72 -8.179481771238642E+64 -> -6.170958627632835E-137 Inexact Rounded +dddiv2013 divide -3707613309582318 3394911196503.048 -> -1092.109070010836 Inexact Rounded +dddiv2014 divide 99689.0555190461 -4.735208553891464 -> -21052.72753765411 Inexact Rounded +dddiv2015 divide -1447915775613329 269750797.8184875 -> -5367605.164925653 Inexact Rounded +dddiv2016 divide -9.394881304225258E-19 -830585.0252671636 -> 1.131116143251358E-24 Inexact Rounded +dddiv2017 divide -1.056283432738934 88.58754555124013 -> -0.01192361100159352 Inexact Rounded +dddiv2018 divide 5763220933343.081 689089567025052.1 -> 0.008363529516524456 Inexact Rounded +dddiv2019 divide 873819.122103216 9.740612494523300E-49 -> 8.970884763093948E+53 Inexact Rounded +dddiv2020 divide 8022914.838533576 6178.566801742713 -> 1298.507420243583 Inexact Rounded +dddiv2021 divide 203982.7605650363 -2158.283639053435 -> -94.51156320422168 Inexact Rounded +dddiv2022 divide 803.6310547013030 7101143795399.238 -> 1.131692411611166E-10 Inexact Rounded +dddiv2023 divide 9.251697842123399E-82 -1.342350220606119E-7 -> -6.892163982321936E-75 Inexact Rounded +dddiv2024 divide -1.980600645637992E-53 -5.474262753214457E+77 -> 3.618022617703168E-131 Inexact Rounded +dddiv2025 divide -210.0322996351690 -8.580951835872843E+80 -> 2.447657365434971E-79 Inexact Rounded +dddiv2026 divide -1.821980314020370E+85 -3.018915267138165 -> 6.035215144503042E+84 Inexact Rounded +dddiv2027 divide -772264503601.1047 5.158258271408988E-86 -> -1.497141986630614E+97 Inexact Rounded +dddiv2028 divide -767.0532415847106 2.700027228028939E-59 -> -2.840909282772941E+61 Inexact Rounded +dddiv2029 divide 496724.8548250093 7.32700588163100E+66 -> 6.779370220929013E-62 Inexact Rounded +dddiv2030 divide -304232651447703.9 -108.9730808657440 -> 2791814721862.565 Inexact Rounded +dddiv2031 divide -7.233817192699405E+42 -5711302004.149411 -> 1.266579352211430E+33 Inexact Rounded +dddiv2032 divide -9.999221444912745E+96 4010569406446197 -> -2.493217404202250E+81 Inexact Rounded +dddiv2033 divide -1837272.061937622 8.356322838066762 -> -219866.0939196882 Inexact Rounded +dddiv2034 divide 2168.517555606529 209.1910258615061 -> 10.36620737756784 Inexact Rounded +dddiv2035 divide -1.884389790576371E+88 2.95181953870583E+20 -> -6.383824505079828E+67 Inexact Rounded +dddiv2036 divide 732263.6037438196 961222.3634446889 -> 0.7618045850698269 Inexact Rounded +dddiv2037 divide -813461419.0348336 5.376293753809143E+84 -> -1.513052404285927E-76 Inexact Rounded +dddiv2038 divide -45562133508108.50 -9.776843494690107E+51 -> 4.660208945029519E-39 Inexact Rounded +dddiv2039 divide -6.489393172441016E+80 -9101965.097852113 -> 7.129661674897421E+73 Inexact Rounded +dddiv2040 divide 3.694576237117349E+93 6683512.012622003 -> 5.527896456443912E+86 Inexact Rounded +dddiv2041 divide -2.252877726403272E+19 -7451913256.181367 -> 3023220546.125531 Inexact Rounded +dddiv2042 divide 518303.1989111842 50.01587020474133 -> 10362.77479107123 Inexact Rounded +dddiv2043 divide 2.902087881880103E+24 33.32400992305702 -> 8.708699488989578E+22 Inexact Rounded +dddiv2044 divide 549619.4559510557 1660824845196338 -> 3.309316196351104E-10 Inexact Rounded +dddiv2045 divide -6775670774684043 8292152023.077262 -> -817118.4941891062 Inexact Rounded +dddiv2046 divide -77.50923921524079 -5.636882655425815E+74 -> 1.375037302588405E-73 Inexact Rounded +dddiv2047 divide -2.984889459605149E-10 -88106156784122.99 -> 3.387833005721384E-24 Inexact Rounded +dddiv2048 divide 0.949517293997085 44767115.96450998 -> 2.121015110175589E-8 Inexact Rounded +dddiv2049 divide -2760937211.084521 -1087015876975408 -> 0.000002539923537057024 Inexact Rounded +dddiv2050 divide 28438351.85030536 -4.209397904088624E-47 -> -6.755919135770688E+53 Inexact Rounded +dddiv2051 divide -85562731.6820956 -7.166045442530185E+45 -> 1.194002080621542E-38 Inexact Rounded +dddiv2052 divide 2533802852165.25 7154.119606235955 -> 354173957.3317501 Inexact Rounded +dddiv2053 divide -8858831346851.474 97.59734208801716 -> -90769186509.83577 Inexact Rounded +dddiv2054 divide 176783629801387.5 840073263.3109817 -> 210438.3480848206 Inexact Rounded +dddiv2055 divide -493506471796175.6 79733894790822.03 -> -6.189418854940746 Inexact Rounded +dddiv2056 divide 790.1682542103445 829.9449370367435 -> 0.9520731062371214 Inexact Rounded +dddiv2057 divide -8920459838.583164 -4767.889187899214 -> 1870945.294035581 Inexact Rounded +dddiv2058 divide 53536687164422.1 53137.5007032689 -> 1007512330.385698 Inexact Rounded +dddiv2059 divide 4.051532311146561E-74 -2.343089768972261E+94 -> -1.729140882606332E-168 Inexact Rounded +dddiv2060 divide -14847758778636.88 3.062543516383807E-43 -> -4.848178874587497E+55 Inexact Rounded + +-- Division probably has pre-rounding, so need to test rounding +-- explicitly rather than assume included through other tests; +-- tests include simple rounding and also the tricky cases of sticky +-- bits following two zeros +-- +-- 1/99999 gives 0.0000100001000010000100001000010000100001 +-- 1234567890123456 +-- +-- 1/999999 gives 0.000001000001000001000001000001000001000001 +-- 1234567890123456 + +rounding: ceiling +dddiv3001 divide 1 3 -> 0.3333333333333334 Inexact Rounded +dddiv3002 divide 2 3 -> 0.6666666666666667 Inexact Rounded +dddiv3003 divide 1 99999 -> 0.00001000010000100002 Inexact Rounded +dddiv3004 divide 1 999999 -> 0.000001000001000001001 Inexact Rounded + +rounding: floor +dddiv3011 divide 1 3 -> 0.3333333333333333 Inexact Rounded +dddiv3012 divide 2 3 -> 0.6666666666666666 Inexact Rounded +dddiv3013 divide 1 99999 -> 0.00001000010000100001 Inexact Rounded +dddiv3014 divide 1 999999 -> 0.000001000001000001000 Inexact Rounded + +rounding: up +dddiv3021 divide 1 3 -> 0.3333333333333334 Inexact Rounded +dddiv3022 divide 2 3 -> 0.6666666666666667 Inexact Rounded +dddiv3023 divide 1 99999 -> 0.00001000010000100002 Inexact Rounded +dddiv3024 divide 1 999999 -> 0.000001000001000001001 Inexact Rounded + +rounding: down +dddiv3031 divide 1 3 -> 0.3333333333333333 Inexact Rounded +dddiv3032 divide 2 3 -> 0.6666666666666666 Inexact Rounded +dddiv3033 divide 1 99999 -> 0.00001000010000100001 Inexact Rounded +dddiv3034 divide 1 999999 -> 0.000001000001000001000 Inexact Rounded + +rounding: half_up +dddiv3041 divide 1 3 -> 0.3333333333333333 Inexact Rounded +dddiv3042 divide 2 3 -> 0.6666666666666667 Inexact Rounded +dddiv3043 divide 1 99999 -> 0.00001000010000100001 Inexact Rounded +dddiv3044 divide 1 999999 -> 0.000001000001000001000 Inexact Rounded + +rounding: half_down +dddiv3051 divide 1 3 -> 0.3333333333333333 Inexact Rounded +dddiv3052 divide 2 3 -> 0.6666666666666667 Inexact Rounded +dddiv3053 divide 1 99999 -> 0.00001000010000100001 Inexact Rounded +dddiv3054 divide 1 999999 -> 0.000001000001000001000 Inexact Rounded + +rounding: half_even +dddiv3061 divide 1 3 -> 0.3333333333333333 Inexact Rounded +dddiv3062 divide 2 3 -> 0.6666666666666667 Inexact Rounded +dddiv3063 divide 1 99999 -> 0.00001000010000100001 Inexact Rounded +dddiv3064 divide 1 999999 -> 0.000001000001000001000 Inexact Rounded + +rounding: 05up +dddiv3071 divide 1 3 -> 0.3333333333333333 Inexact Rounded +dddiv3072 divide 2 3 -> 0.6666666666666666 Inexact Rounded +dddiv3073 divide 1 99999 -> 0.00001000010000100001 Inexact Rounded +dddiv3074 divide 1 999999 -> 0.000001000001000001001 Inexact Rounded + +-- random divide tests with result near 1 +rounding: half_even +dddiv4001 divide 3195385192916917 3195385192946695 -> 0.9999999999906809 Inexact Rounded +dddiv4002 divide 1393723067526993 1393723067519475 -> 1.000000000005394 Inexact Rounded +dddiv4003 divide 759985543702302 759985543674015 -> 1.000000000037220 Inexact Rounded +dddiv4004 divide 9579158456027302 9579158456036864 -> 0.9999999999990018 Inexact Rounded +dddiv4005 divide 7079398299143569 7079398299156904 -> 0.9999999999981164 Inexact Rounded +dddiv4006 divide 6636169255366598 6636169255336386 -> 1.000000000004553 Inexact Rounded +dddiv4007 divide 6964813971340090 6964813971321554 -> 1.000000000002661 Inexact Rounded +dddiv4008 divide 4182275225480784 4182275225454009 -> 1.000000000006402 Inexact Rounded +dddiv4009 divide 9228325124938029 9228325124918730 -> 1.000000000002091 Inexact Rounded +dddiv4010 divide 3428346338630192 3428346338609843 -> 1.000000000005936 Inexact Rounded +dddiv4011 divide 2143511550722893 2143511550751754 -> 0.9999999999865356 Inexact Rounded +dddiv4012 divide 1672732924396785 1672732924401811 -> 0.9999999999969953 Inexact Rounded +dddiv4013 divide 4190714611948216 4190714611948664 -> 0.9999999999998931 Inexact Rounded +dddiv4014 divide 3942254800848877 3942254800814556 -> 1.000000000008706 Inexact Rounded +dddiv4015 divide 2854459826952334 2854459826960762 -> 0.9999999999970474 Inexact Rounded +dddiv4016 divide 2853258953664731 2853258953684471 -> 0.9999999999930816 Inexact Rounded +dddiv4017 divide 9453512638125978 9453512638146425 -> 0.9999999999978371 Inexact Rounded +dddiv4018 divide 339476633940369 339476633912887 -> 1.000000000080954 Inexact Rounded +dddiv4019 divide 4542181492688467 4542181492697735 -> 0.9999999999979596 Inexact Rounded +dddiv4020 divide 7312600192399197 7312600192395424 -> 1.000000000000516 Inexact Rounded +dddiv4021 divide 1811674985570111 1811674985603935 -> 0.9999999999813300 Inexact Rounded +dddiv4022 divide 1706462639003481 1706462639017740 -> 0.9999999999916441 Inexact Rounded +dddiv4023 divide 6697052654940368 6697052654934110 -> 1.000000000000934 Inexact Rounded +dddiv4024 divide 5015283664277539 5015283664310719 -> 0.9999999999933842 Inexact Rounded +dddiv4025 divide 2359501561537464 2359501561502464 -> 1.000000000014834 Inexact Rounded +dddiv4026 divide 2669850227909157 2669850227901548 -> 1.000000000002850 Inexact Rounded +dddiv4027 divide 9329725546974648 9329725547002445 -> 0.9999999999970206 Inexact Rounded +dddiv4028 divide 3228562867071248 3228562867106206 -> 0.9999999999891723 Inexact Rounded +dddiv4029 divide 4862226644921175 4862226644909380 -> 1.000000000002426 Inexact Rounded +dddiv4030 divide 1022267997054529 1022267997071329 -> 0.9999999999835660 Inexact Rounded +dddiv4031 divide 1048777482023719 1048777482000948 -> 1.000000000021712 Inexact Rounded +dddiv4032 divide 9980113777337098 9980113777330539 -> 1.000000000000657 Inexact Rounded +dddiv4033 divide 7506839167963908 7506839167942901 -> 1.000000000002798 Inexact Rounded +dddiv4034 divide 231119751977860 231119751962453 -> 1.000000000066662 Inexact Rounded +dddiv4035 divide 4034903664762962 4034903664795526 -> 0.9999999999919294 Inexact Rounded +dddiv4036 divide 5700122152274696 5700122152251386 -> 1.000000000004089 Inexact Rounded +dddiv4037 divide 6869599590293110 6869599590293495 -> 0.9999999999999440 Inexact Rounded +dddiv4038 divide 5576281960092797 5576281960105579 -> 0.9999999999977078 Inexact Rounded +dddiv4039 divide 2304844888381318 2304844888353073 -> 1.000000000012255 Inexact Rounded +dddiv4040 divide 3265933651656452 3265933651682779 -> 0.9999999999919389 Inexact Rounded +dddiv4041 divide 5235714985079914 5235714985066131 -> 1.000000000002632 Inexact Rounded +dddiv4042 divide 5578481572827551 5578481572822945 -> 1.000000000000826 Inexact Rounded +dddiv4043 divide 4909616081396134 4909616081373076 -> 1.000000000004696 Inexact Rounded +dddiv4044 divide 636447224349537 636447224338757 -> 1.000000000016938 Inexact Rounded +dddiv4045 divide 1539373428396640 1539373428364727 -> 1.000000000020731 Inexact Rounded +dddiv4046 divide 2028786707377893 2028786707378866 -> 0.9999999999995204 Inexact Rounded +dddiv4047 divide 137643260486222 137643260487419 -> 0.9999999999913036 Inexact Rounded +dddiv4048 divide 247451519746765 247451519752267 -> 0.9999999999777653 Inexact Rounded +dddiv4049 divide 7877858475022054 7877858474999794 -> 1.000000000002826 Inexact Rounded +dddiv4050 divide 7333242694766258 7333242694744628 -> 1.000000000002950 Inexact Rounded +dddiv4051 divide 124051503698592 124051503699397 -> 0.9999999999935108 Inexact Rounded +dddiv4052 divide 8944737432385188 8944737432406860 -> 0.9999999999975771 Inexact Rounded +dddiv4053 divide 9883948923406874 9883948923424843 -> 0.9999999999981820 Inexact Rounded +dddiv4054 divide 6829178741654284 6829178741671973 -> 0.9999999999974098 Inexact Rounded +dddiv4055 divide 7342752479768122 7342752479793385 -> 0.9999999999965595 Inexact Rounded +dddiv4056 divide 8066426579008783 8066426578977563 -> 1.000000000003870 Inexact Rounded +dddiv4057 divide 8992775071383295 8992775071352712 -> 1.000000000003401 Inexact Rounded +dddiv4058 divide 5485011755545641 5485011755543611 -> 1.000000000000370 Inexact Rounded +dddiv4059 divide 5779983054353918 5779983054365300 -> 0.9999999999980308 Inexact Rounded +dddiv4060 divide 9502265102713774 9502265102735208 -> 0.9999999999977443 Inexact Rounded +dddiv4061 divide 2109558399130981 2109558399116281 -> 1.000000000006968 Inexact Rounded +dddiv4062 divide 5296182636350471 5296182636351521 -> 0.9999999999998017 Inexact Rounded +dddiv4063 divide 1440019225591883 1440019225601844 -> 0.9999999999930827 Inexact Rounded +dddiv4064 divide 8182110791881341 8182110791847174 -> 1.000000000004176 Inexact Rounded +dddiv4065 divide 489098235512060 489098235534516 -> 0.9999999999540869 Inexact Rounded +dddiv4066 divide 6475687084782038 6475687084756089 -> 1.000000000004007 Inexact Rounded +dddiv4067 divide 8094348555736948 8094348555759236 -> 0.9999999999972465 Inexact Rounded +dddiv4068 divide 1982766816291543 1982766816309463 -> 0.9999999999909621 Inexact Rounded +dddiv4069 divide 9277314300113251 9277314300084467 -> 1.000000000003103 Inexact Rounded +dddiv4070 divide 4335532959318934 4335532959293167 -> 1.000000000005943 Inexact Rounded +dddiv4071 divide 7767113032981348 7767113032968132 -> 1.000000000001702 Inexact Rounded +dddiv4072 divide 1578548053342868 1578548053370448 -> 0.9999999999825282 Inexact Rounded +dddiv4073 divide 3790420686666898 3790420686636315 -> 1.000000000008068 Inexact Rounded +dddiv4074 divide 871682421955147 871682421976441 -> 0.9999999999755714 Inexact Rounded +dddiv4075 divide 744141054479940 744141054512329 -> 0.9999999999564746 Inexact Rounded +dddiv4076 divide 8956824183670735 8956824183641741 -> 1.000000000003237 Inexact Rounded +dddiv4077 divide 8337291694485682 8337291694451193 -> 1.000000000004137 Inexact Rounded +dddiv4078 divide 4107775944683669 4107775944657097 -> 1.000000000006469 Inexact Rounded +dddiv4079 divide 8691900057964648 8691900057997555 -> 0.9999999999962141 Inexact Rounded +dddiv4080 divide 2229528520536462 2229528520502337 -> 1.000000000015306 Inexact Rounded +dddiv4081 divide 398442083774322 398442083746273 -> 1.000000000070397 Inexact Rounded +dddiv4082 divide 5319819776808759 5319819776838313 -> 0.9999999999944445 Inexact Rounded +dddiv4083 divide 7710491299066855 7710491299041858 -> 1.000000000003242 Inexact Rounded +dddiv4084 divide 9083231296087266 9083231296058160 -> 1.000000000003204 Inexact Rounded +dddiv4085 divide 3566873574904559 3566873574890328 -> 1.000000000003990 Inexact Rounded +dddiv4086 divide 596343290550525 596343290555614 -> 0.9999999999914663 Inexact Rounded +dddiv4087 divide 278227925093192 278227925068104 -> 1.000000000090171 Inexact Rounded +dddiv4088 divide 3292902958490649 3292902958519881 -> 0.9999999999911227 Inexact Rounded +dddiv4089 divide 5521871364245881 5521871364229536 -> 1.000000000002960 Inexact Rounded +dddiv4090 divide 2406505602883617 2406505602857997 -> 1.000000000010646 Inexact Rounded +dddiv4091 divide 7741146984869208 7741146984867255 -> 1.000000000000252 Inexact Rounded +dddiv4092 divide 4576041832414909 4576041832405102 -> 1.000000000002143 Inexact Rounded +dddiv4093 divide 9183756982878057 9183756982901934 -> 0.9999999999974001 Inexact Rounded +dddiv4094 divide 6215736513855159 6215736513870342 -> 0.9999999999975573 Inexact Rounded +dddiv4095 divide 248554968534533 248554968551417 -> 0.9999999999320714 Inexact Rounded +dddiv4096 divide 376314165668645 376314165659755 -> 1.000000000023624 Inexact Rounded +dddiv4097 divide 5513569249809718 5513569249808906 -> 1.000000000000147 Inexact Rounded +dddiv4098 divide 3367992242167904 3367992242156228 -> 1.000000000003467 Inexact Rounded +dddiv4099 divide 6134869538966967 6134869538985986 -> 0.9999999999968999 Inexact Rounded + +-- Null tests +dddiv9998 divide 10 # -> NaN Invalid_operation +dddiv9999 divide # 10 -> NaN Invalid_operation + diff --git a/Lib/test/decimaltestdata/ddDivideInt.decTest b/Lib/test/decimaltestdata/ddDivideInt.decTest index 1555b4217d..bec567986f 100644 --- a/Lib/test/decimaltestdata/ddDivideInt.decTest +++ b/Lib/test/decimaltestdata/ddDivideInt.decTest @@ -1,449 +1,449 @@ -------------------------------------------------------------------------
--- ddDivideInt.decTest -- decDouble integer division --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
-dddvi001 divideint 1 1 -> 1
-dddvi002 divideint 2 1 -> 2
-dddvi003 divideint 1 2 -> 0
-dddvi004 divideint 2 2 -> 1
-dddvi005 divideint 0 1 -> 0
-dddvi006 divideint 0 2 -> 0
-dddvi007 divideint 1 3 -> 0
-dddvi008 divideint 2 3 -> 0
-dddvi009 divideint 3 3 -> 1
-
-dddvi010 divideint 2.4 1 -> 2
-dddvi011 divideint 2.4 -1 -> -2
-dddvi012 divideint -2.4 1 -> -2
-dddvi013 divideint -2.4 -1 -> 2
-dddvi014 divideint 2.40 1 -> 2
-dddvi015 divideint 2.400 1 -> 2
-dddvi016 divideint 2.4 2 -> 1
-dddvi017 divideint 2.400 2 -> 1
-dddvi018 divideint 2. 2 -> 1
-dddvi019 divideint 20 20 -> 1
-
-dddvi020 divideint 187 187 -> 1
-dddvi021 divideint 5 2 -> 2
-dddvi022 divideint 5 2.0 -> 2
-dddvi023 divideint 5 2.000 -> 2
-dddvi024 divideint 5 0.200 -> 25
-dddvi025 divideint 5 0.200 -> 25
-
-dddvi030 divideint 1 2 -> 0
-dddvi031 divideint 1 4 -> 0
-dddvi032 divideint 1 8 -> 0
-dddvi033 divideint 1 16 -> 0
-dddvi034 divideint 1 32 -> 0
-dddvi035 divideint 1 64 -> 0
-dddvi040 divideint 1 -2 -> -0
-dddvi041 divideint 1 -4 -> -0
-dddvi042 divideint 1 -8 -> -0
-dddvi043 divideint 1 -16 -> -0
-dddvi044 divideint 1 -32 -> -0
-dddvi045 divideint 1 -64 -> -0
-dddvi050 divideint -1 2 -> -0
-dddvi051 divideint -1 4 -> -0
-dddvi052 divideint -1 8 -> -0
-dddvi053 divideint -1 16 -> -0
-dddvi054 divideint -1 32 -> -0
-dddvi055 divideint -1 64 -> -0
-dddvi060 divideint -1 -2 -> 0
-dddvi061 divideint -1 -4 -> 0
-dddvi062 divideint -1 -8 -> 0
-dddvi063 divideint -1 -16 -> 0
-dddvi064 divideint -1 -32 -> 0
-dddvi065 divideint -1 -64 -> 0
-
--- similar with powers of ten
-dddvi160 divideint 1 1 -> 1
-dddvi161 divideint 1 10 -> 0
-dddvi162 divideint 1 100 -> 0
-dddvi163 divideint 1 1000 -> 0
-dddvi164 divideint 1 10000 -> 0
-dddvi165 divideint 1 100000 -> 0
-dddvi166 divideint 1 1000000 -> 0
-dddvi167 divideint 1 10000000 -> 0
-dddvi168 divideint 1 100000000 -> 0
-dddvi170 divideint 1 -1 -> -1
-dddvi171 divideint 1 -10 -> -0
-dddvi172 divideint 1 -100 -> -0
-dddvi173 divideint 1 -1000 -> -0
-dddvi174 divideint 1 -10000 -> -0
-dddvi175 divideint 1 -100000 -> -0
-dddvi176 divideint 1 -1000000 -> -0
-dddvi177 divideint 1 -10000000 -> -0
-dddvi178 divideint 1 -100000000 -> -0
-dddvi180 divideint -1 1 -> -1
-dddvi181 divideint -1 10 -> -0
-dddvi182 divideint -1 100 -> -0
-dddvi183 divideint -1 1000 -> -0
-dddvi184 divideint -1 10000 -> -0
-dddvi185 divideint -1 100000 -> -0
-dddvi186 divideint -1 1000000 -> -0
-dddvi187 divideint -1 10000000 -> -0
-dddvi188 divideint -1 100000000 -> -0
-dddvi190 divideint -1 -1 -> 1
-dddvi191 divideint -1 -10 -> 0
-dddvi192 divideint -1 -100 -> 0
-dddvi193 divideint -1 -1000 -> 0
-dddvi194 divideint -1 -10000 -> 0
-dddvi195 divideint -1 -100000 -> 0
-dddvi196 divideint -1 -1000000 -> 0
-dddvi197 divideint -1 -10000000 -> 0
-dddvi198 divideint -1 -100000000 -> 0
-
--- some long operand (at p=9) cases
-dddvi070 divideint 999999999 1 -> 999999999
-dddvi071 divideint 999999999.4 1 -> 999999999
-dddvi072 divideint 999999999.5 1 -> 999999999
-dddvi073 divideint 999999999.9 1 -> 999999999
-dddvi074 divideint 999999999.999 1 -> 999999999
-
-dddvi090 divideint 0. 1 -> 0
-dddvi091 divideint .0 1 -> 0
-dddvi092 divideint 0.00 1 -> 0
-dddvi093 divideint 0.00E+9 1 -> 0
-dddvi094 divideint 0.0000E-50 1 -> 0
-
-dddvi100 divideint 1 1 -> 1
-dddvi101 divideint 1 2 -> 0
-dddvi102 divideint 1 3 -> 0
-dddvi103 divideint 1 4 -> 0
-dddvi104 divideint 1 5 -> 0
-dddvi105 divideint 1 6 -> 0
-dddvi106 divideint 1 7 -> 0
-dddvi107 divideint 1 8 -> 0
-dddvi108 divideint 1 9 -> 0
-dddvi109 divideint 1 10 -> 0
-dddvi110 divideint 1 1 -> 1
-dddvi111 divideint 2 1 -> 2
-dddvi112 divideint 3 1 -> 3
-dddvi113 divideint 4 1 -> 4
-dddvi114 divideint 5 1 -> 5
-dddvi115 divideint 6 1 -> 6
-dddvi116 divideint 7 1 -> 7
-dddvi117 divideint 8 1 -> 8
-dddvi118 divideint 9 1 -> 9
-dddvi119 divideint 10 1 -> 10
-
--- from DiagBigDecimal
-dddvi131 divideint 101.3 1 -> 101
-dddvi132 divideint 101.0 1 -> 101
-dddvi133 divideint 101.3 3 -> 33
-dddvi134 divideint 101.0 3 -> 33
-dddvi135 divideint 2.4 1 -> 2
-dddvi136 divideint 2.400 1 -> 2
-dddvi137 divideint 18 18 -> 1
-dddvi138 divideint 1120 1000 -> 1
-dddvi139 divideint 2.4 2 -> 1
-dddvi140 divideint 2.400 2 -> 1
-dddvi141 divideint 0.5 2.000 -> 0
-dddvi142 divideint 8.005 7 -> 1
-dddvi143 divideint 5 2 -> 2
-dddvi144 divideint 0 2 -> 0
-dddvi145 divideint 0.00 2 -> 0
-
--- Others
-dddvi150 divideint 12345 4.999 -> 2469
-dddvi151 divideint 12345 4.99 -> 2473
-dddvi152 divideint 12345 4.9 -> 2519
-dddvi153 divideint 12345 5 -> 2469
-dddvi154 divideint 12345 5.1 -> 2420
-dddvi155 divideint 12345 5.01 -> 2464
-dddvi156 divideint 12345 5.001 -> 2468
-dddvi157 divideint 101 7.6 -> 13
-
--- Various flavours of divideint by 0
-dddvi201 divideint 0 0 -> NaN Division_undefined
-dddvi202 divideint 0.0E5 0 -> NaN Division_undefined
-dddvi203 divideint 0.000 0 -> NaN Division_undefined
-dddvi204 divideint 0.0001 0 -> Infinity Division_by_zero
-dddvi205 divideint 0.01 0 -> Infinity Division_by_zero
-dddvi206 divideint 0.1 0 -> Infinity Division_by_zero
-dddvi207 divideint 1 0 -> Infinity Division_by_zero
-dddvi208 divideint 1 0.0 -> Infinity Division_by_zero
-dddvi209 divideint 10 0.0 -> Infinity Division_by_zero
-dddvi210 divideint 1E+100 0.0 -> Infinity Division_by_zero
-dddvi211 divideint 1E+380 0 -> Infinity Division_by_zero
-dddvi214 divideint -0.0001 0 -> -Infinity Division_by_zero
-dddvi215 divideint -0.01 0 -> -Infinity Division_by_zero
-dddvi216 divideint -0.1 0 -> -Infinity Division_by_zero
-dddvi217 divideint -1 0 -> -Infinity Division_by_zero
-dddvi218 divideint -1 0.0 -> -Infinity Division_by_zero
-dddvi219 divideint -10 0.0 -> -Infinity Division_by_zero
-dddvi220 divideint -1E+100 0.0 -> -Infinity Division_by_zero
-dddvi221 divideint -1E+380 0 -> -Infinity Division_by_zero
-
--- test some cases that are close to exponent overflow
-dddvi270 divideint 1 1e384 -> 0
-dddvi271 divideint 1 0.9e384 -> 0
-dddvi272 divideint 1 0.99e384 -> 0
-dddvi273 divideint 1 0.9999999999999999e384 -> 0
-dddvi274 divideint 9e384 1 -> NaN Division_impossible
-dddvi275 divideint 9.9e384 1 -> NaN Division_impossible
-dddvi276 divideint 9.99e384 1 -> NaN Division_impossible
-dddvi277 divideint 9.999999999999999e384 1 -> NaN Division_impossible
-
-dddvi280 divideint 0.1 9e-383 -> NaN Division_impossible
-dddvi281 divideint 0.1 99e-383 -> NaN Division_impossible
-dddvi282 divideint 0.1 999e-383 -> NaN Division_impossible
-dddvi283 divideint 0.1 9e-382 -> NaN Division_impossible
-dddvi284 divideint 0.1 99e-382 -> NaN Division_impossible
-
--- GD edge cases: lhs smaller than rhs but more digits
-dddvi301 divideint 0.9 2 -> 0
-dddvi302 divideint 0.9 2.0 -> 0
-dddvi303 divideint 0.9 2.1 -> 0
-dddvi304 divideint 0.9 2.00 -> 0
-dddvi305 divideint 0.9 2.01 -> 0
-dddvi306 divideint 0.12 1 -> 0
-dddvi307 divideint 0.12 1.0 -> 0
-dddvi308 divideint 0.12 1.00 -> 0
-dddvi309 divideint 0.12 1.0 -> 0
-dddvi310 divideint 0.12 1.00 -> 0
-dddvi311 divideint 0.12 2 -> 0
-dddvi312 divideint 0.12 2.0 -> 0
-dddvi313 divideint 0.12 2.1 -> 0
-dddvi314 divideint 0.12 2.00 -> 0
-dddvi315 divideint 0.12 2.01 -> 0
-
--- edge cases of impossible
-dddvi330 divideint 1234567890123456 10 -> 123456789012345
-dddvi331 divideint 1234567890123456 1 -> 1234567890123456
-dddvi332 divideint 1234567890123456 0.1 -> NaN Division_impossible
-dddvi333 divideint 1234567890123456 0.01 -> NaN Division_impossible
-
--- overflow and underflow tests [from divide]
-dddvi1051 divideint 1e+277 1e-311 -> NaN Division_impossible
-dddvi1052 divideint 1e+277 -1e-311 -> NaN Division_impossible
-dddvi1053 divideint -1e+277 1e-311 -> NaN Division_impossible
-dddvi1054 divideint -1e+277 -1e-311 -> NaN Division_impossible
-dddvi1055 divideint 1e-277 1e+311 -> 0
-dddvi1056 divideint 1e-277 -1e+311 -> -0
-dddvi1057 divideint -1e-277 1e+311 -> -0
-dddvi1058 divideint -1e-277 -1e+311 -> 0
-
--- 'subnormal' boundary (all hard underflow or overflow in base arithemtic)
-dddvi1060 divideint 1e-291 1e+101 -> 0
-dddvi1061 divideint 1e-291 1e+102 -> 0
-dddvi1062 divideint 1e-291 1e+103 -> 0
-dddvi1063 divideint 1e-291 1e+104 -> 0
-dddvi1064 divideint 1e-291 1e+105 -> 0
-dddvi1065 divideint 1e-291 1e+106 -> 0
-dddvi1066 divideint 1e-291 1e+107 -> 0
-dddvi1067 divideint 1e-291 1e+108 -> 0
-dddvi1068 divideint 1e-291 1e+109 -> 0
-dddvi1069 divideint 1e-291 1e+110 -> 0
-
-dddvi1101 divideint 1.0000E-394 1 -> 0
-dddvi1102 divideint 1.000E-394 1e+1 -> 0
-dddvi1103 divideint 1.00E-394 1e+2 -> 0
-
-dddvi1118 divideint 1E-394 1e+4 -> 0
-dddvi1119 divideint 3E-394 -1e+5 -> -0
-dddvi1120 divideint 5E-394 1e+5 -> 0
-
-dddvi1124 divideint 1E-394 -1e+4 -> -0
-dddvi1130 divideint 3.0E-394 -1e+5 -> -0
-
-dddvi1131 divideint 1.0E-199 1e+200 -> 0
-dddvi1132 divideint 1.0E-199 1e+199 -> 0
-dddvi1133 divideint 1.0E-199 1e+198 -> 0
-dddvi1134 divideint 2.0E-199 2e+198 -> 0
-dddvi1135 divideint 4.0E-199 4e+198 -> 0
-
--- long operand checks
-dddvi401 divideint 12345678000 100 -> 123456780
-dddvi402 divideint 1 12345678000 -> 0
-dddvi403 divideint 1234567800 10 -> 123456780
-dddvi404 divideint 1 1234567800 -> 0
-dddvi405 divideint 1234567890 10 -> 123456789
-dddvi406 divideint 1 1234567890 -> 0
-dddvi407 divideint 1234567891 10 -> 123456789
-dddvi408 divideint 1 1234567891 -> 0
-dddvi409 divideint 12345678901 100 -> 123456789
-dddvi410 divideint 1 12345678901 -> 0
-dddvi411 divideint 1234567896 10 -> 123456789
-dddvi412 divideint 1 1234567896 -> 0
-dddvi413 divideint 12345678948 100 -> 123456789
-dddvi414 divideint 12345678949 100 -> 123456789
-dddvi415 divideint 12345678950 100 -> 123456789
-dddvi416 divideint 12345678951 100 -> 123456789
-dddvi417 divideint 12345678999 100 -> 123456789
-dddvi441 divideint 12345678000 1 -> 12345678000
-dddvi442 divideint 1 12345678000 -> 0
-dddvi443 divideint 1234567800 1 -> 1234567800
-dddvi444 divideint 1 1234567800 -> 0
-dddvi445 divideint 1234567890 1 -> 1234567890
-dddvi446 divideint 1 1234567890 -> 0
-dddvi447 divideint 1234567891 1 -> 1234567891
-dddvi448 divideint 1 1234567891 -> 0
-dddvi449 divideint 12345678901 1 -> 12345678901
-dddvi450 divideint 1 12345678901 -> 0
-dddvi451 divideint 1234567896 1 -> 1234567896
-dddvi452 divideint 1 1234567896 -> 0
-
--- more zeros, etc.
-dddvi531 divideint 5.00 1E-3 -> 5000
-dddvi532 divideint 00.00 0.000 -> NaN Division_undefined
-dddvi533 divideint 00.00 0E-3 -> NaN Division_undefined
-dddvi534 divideint 0 -0 -> NaN Division_undefined
-dddvi535 divideint -0 0 -> NaN Division_undefined
-dddvi536 divideint -0 -0 -> NaN Division_undefined
-
-dddvi541 divideint 0 -1 -> -0
-dddvi542 divideint -0 -1 -> 0
-dddvi543 divideint 0 1 -> 0
-dddvi544 divideint -0 1 -> -0
-dddvi545 divideint -1 0 -> -Infinity Division_by_zero
-dddvi546 divideint -1 -0 -> Infinity Division_by_zero
-dddvi547 divideint 1 0 -> Infinity Division_by_zero
-dddvi548 divideint 1 -0 -> -Infinity Division_by_zero
-
-dddvi551 divideint 0.0 -1 -> -0
-dddvi552 divideint -0.0 -1 -> 0
-dddvi553 divideint 0.0 1 -> 0
-dddvi554 divideint -0.0 1 -> -0
-dddvi555 divideint -1.0 0 -> -Infinity Division_by_zero
-dddvi556 divideint -1.0 -0 -> Infinity Division_by_zero
-dddvi557 divideint 1.0 0 -> Infinity Division_by_zero
-dddvi558 divideint 1.0 -0 -> -Infinity Division_by_zero
-
-dddvi561 divideint 0 -1.0 -> -0
-dddvi562 divideint -0 -1.0 -> 0
-dddvi563 divideint 0 1.0 -> 0
-dddvi564 divideint -0 1.0 -> -0
-dddvi565 divideint -1 0.0 -> -Infinity Division_by_zero
-dddvi566 divideint -1 -0.0 -> Infinity Division_by_zero
-dddvi567 divideint 1 0.0 -> Infinity Division_by_zero
-dddvi568 divideint 1 -0.0 -> -Infinity Division_by_zero
-
-dddvi571 divideint 0.0 -1.0 -> -0
-dddvi572 divideint -0.0 -1.0 -> 0
-dddvi573 divideint 0.0 1.0 -> 0
-dddvi574 divideint -0.0 1.0 -> -0
-dddvi575 divideint -1.0 0.0 -> -Infinity Division_by_zero
-dddvi576 divideint -1.0 -0.0 -> Infinity Division_by_zero
-dddvi577 divideint 1.0 0.0 -> Infinity Division_by_zero
-dddvi578 divideint 1.0 -0.0 -> -Infinity Division_by_zero
-
--- Specials
-dddvi580 divideint Inf -Inf -> NaN Invalid_operation
-dddvi581 divideint Inf -1000 -> -Infinity
-dddvi582 divideint Inf -1 -> -Infinity
-dddvi583 divideint Inf -0 -> -Infinity
-dddvi584 divideint Inf 0 -> Infinity
-dddvi585 divideint Inf 1 -> Infinity
-dddvi586 divideint Inf 1000 -> Infinity
-dddvi587 divideint Inf Inf -> NaN Invalid_operation
-dddvi588 divideint -1000 Inf -> -0
-dddvi589 divideint -Inf Inf -> NaN Invalid_operation
-dddvi590 divideint -1 Inf -> -0
-dddvi591 divideint -0 Inf -> -0
-dddvi592 divideint 0 Inf -> 0
-dddvi593 divideint 1 Inf -> 0
-dddvi594 divideint 1000 Inf -> 0
-dddvi595 divideint Inf Inf -> NaN Invalid_operation
-
-dddvi600 divideint -Inf -Inf -> NaN Invalid_operation
-dddvi601 divideint -Inf -1000 -> Infinity
-dddvi602 divideint -Inf -1 -> Infinity
-dddvi603 divideint -Inf -0 -> Infinity
-dddvi604 divideint -Inf 0 -> -Infinity
-dddvi605 divideint -Inf 1 -> -Infinity
-dddvi606 divideint -Inf 1000 -> -Infinity
-dddvi607 divideint -Inf Inf -> NaN Invalid_operation
-dddvi608 divideint -1000 Inf -> -0
-dddvi609 divideint -Inf -Inf -> NaN Invalid_operation
-dddvi610 divideint -1 -Inf -> 0
-dddvi611 divideint -0 -Inf -> 0
-dddvi612 divideint 0 -Inf -> -0
-dddvi613 divideint 1 -Inf -> -0
-dddvi614 divideint 1000 -Inf -> -0
-dddvi615 divideint Inf -Inf -> NaN Invalid_operation
-
-dddvi621 divideint NaN -Inf -> NaN
-dddvi622 divideint NaN -1000 -> NaN
-dddvi623 divideint NaN -1 -> NaN
-dddvi624 divideint NaN -0 -> NaN
-dddvi625 divideint NaN 0 -> NaN
-dddvi626 divideint NaN 1 -> NaN
-dddvi627 divideint NaN 1000 -> NaN
-dddvi628 divideint NaN Inf -> NaN
-dddvi629 divideint NaN NaN -> NaN
-dddvi630 divideint -Inf NaN -> NaN
-dddvi631 divideint -1000 NaN -> NaN
-dddvi632 divideint -1 NaN -> NaN
-dddvi633 divideint -0 NaN -> NaN
-dddvi634 divideint 0 NaN -> NaN
-dddvi635 divideint 1 NaN -> NaN
-dddvi636 divideint 1000 NaN -> NaN
-dddvi637 divideint Inf NaN -> NaN
-
-dddvi641 divideint sNaN -Inf -> NaN Invalid_operation
-dddvi642 divideint sNaN -1000 -> NaN Invalid_operation
-dddvi643 divideint sNaN -1 -> NaN Invalid_operation
-dddvi644 divideint sNaN -0 -> NaN Invalid_operation
-dddvi645 divideint sNaN 0 -> NaN Invalid_operation
-dddvi646 divideint sNaN 1 -> NaN Invalid_operation
-dddvi647 divideint sNaN 1000 -> NaN Invalid_operation
-dddvi648 divideint sNaN NaN -> NaN Invalid_operation
-dddvi649 divideint sNaN sNaN -> NaN Invalid_operation
-dddvi650 divideint NaN sNaN -> NaN Invalid_operation
-dddvi651 divideint -Inf sNaN -> NaN Invalid_operation
-dddvi652 divideint -1000 sNaN -> NaN Invalid_operation
-dddvi653 divideint -1 sNaN -> NaN Invalid_operation
-dddvi654 divideint -0 sNaN -> NaN Invalid_operation
-dddvi655 divideint 0 sNaN -> NaN Invalid_operation
-dddvi656 divideint 1 sNaN -> NaN Invalid_operation
-dddvi657 divideint 1000 sNaN -> NaN Invalid_operation
-dddvi658 divideint Inf sNaN -> NaN Invalid_operation
-dddvi659 divideint NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-dddvi661 divideint NaN9 -Inf -> NaN9
-dddvi662 divideint NaN8 1000 -> NaN8
-dddvi663 divideint NaN7 Inf -> NaN7
-dddvi664 divideint -NaN6 NaN5 -> -NaN6
-dddvi665 divideint -Inf NaN4 -> NaN4
-dddvi666 divideint -1000 NaN3 -> NaN3
-dddvi667 divideint Inf -NaN2 -> -NaN2
-
-dddvi671 divideint -sNaN99 -Inf -> -NaN99 Invalid_operation
-dddvi672 divideint sNaN98 -1 -> NaN98 Invalid_operation
-dddvi673 divideint sNaN97 NaN -> NaN97 Invalid_operation
-dddvi674 divideint sNaN96 sNaN94 -> NaN96 Invalid_operation
-dddvi675 divideint NaN95 sNaN93 -> NaN93 Invalid_operation
-dddvi676 divideint -Inf sNaN92 -> NaN92 Invalid_operation
-dddvi677 divideint 0 sNaN91 -> NaN91 Invalid_operation
-dddvi678 divideint Inf -sNaN90 -> -NaN90 Invalid_operation
-dddvi679 divideint NaN sNaN89 -> NaN89 Invalid_operation
-
--- Null tests
-dddvi900 divideint 10 # -> NaN Invalid_operation
-dddvi901 divideint # 10 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- ddDivideInt.decTest -- decDouble integer division -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +dddvi001 divideint 1 1 -> 1 +dddvi002 divideint 2 1 -> 2 +dddvi003 divideint 1 2 -> 0 +dddvi004 divideint 2 2 -> 1 +dddvi005 divideint 0 1 -> 0 +dddvi006 divideint 0 2 -> 0 +dddvi007 divideint 1 3 -> 0 +dddvi008 divideint 2 3 -> 0 +dddvi009 divideint 3 3 -> 1 + +dddvi010 divideint 2.4 1 -> 2 +dddvi011 divideint 2.4 -1 -> -2 +dddvi012 divideint -2.4 1 -> -2 +dddvi013 divideint -2.4 -1 -> 2 +dddvi014 divideint 2.40 1 -> 2 +dddvi015 divideint 2.400 1 -> 2 +dddvi016 divideint 2.4 2 -> 1 +dddvi017 divideint 2.400 2 -> 1 +dddvi018 divideint 2. 2 -> 1 +dddvi019 divideint 20 20 -> 1 + +dddvi020 divideint 187 187 -> 1 +dddvi021 divideint 5 2 -> 2 +dddvi022 divideint 5 2.0 -> 2 +dddvi023 divideint 5 2.000 -> 2 +dddvi024 divideint 5 0.200 -> 25 +dddvi025 divideint 5 0.200 -> 25 + +dddvi030 divideint 1 2 -> 0 +dddvi031 divideint 1 4 -> 0 +dddvi032 divideint 1 8 -> 0 +dddvi033 divideint 1 16 -> 0 +dddvi034 divideint 1 32 -> 0 +dddvi035 divideint 1 64 -> 0 +dddvi040 divideint 1 -2 -> -0 +dddvi041 divideint 1 -4 -> -0 +dddvi042 divideint 1 -8 -> -0 +dddvi043 divideint 1 -16 -> -0 +dddvi044 divideint 1 -32 -> -0 +dddvi045 divideint 1 -64 -> -0 +dddvi050 divideint -1 2 -> -0 +dddvi051 divideint -1 4 -> -0 +dddvi052 divideint -1 8 -> -0 +dddvi053 divideint -1 16 -> -0 +dddvi054 divideint -1 32 -> -0 +dddvi055 divideint -1 64 -> -0 +dddvi060 divideint -1 -2 -> 0 +dddvi061 divideint -1 -4 -> 0 +dddvi062 divideint -1 -8 -> 0 +dddvi063 divideint -1 -16 -> 0 +dddvi064 divideint -1 -32 -> 0 +dddvi065 divideint -1 -64 -> 0 + +-- similar with powers of ten +dddvi160 divideint 1 1 -> 1 +dddvi161 divideint 1 10 -> 0 +dddvi162 divideint 1 100 -> 0 +dddvi163 divideint 1 1000 -> 0 +dddvi164 divideint 1 10000 -> 0 +dddvi165 divideint 1 100000 -> 0 +dddvi166 divideint 1 1000000 -> 0 +dddvi167 divideint 1 10000000 -> 0 +dddvi168 divideint 1 100000000 -> 0 +dddvi170 divideint 1 -1 -> -1 +dddvi171 divideint 1 -10 -> -0 +dddvi172 divideint 1 -100 -> -0 +dddvi173 divideint 1 -1000 -> -0 +dddvi174 divideint 1 -10000 -> -0 +dddvi175 divideint 1 -100000 -> -0 +dddvi176 divideint 1 -1000000 -> -0 +dddvi177 divideint 1 -10000000 -> -0 +dddvi178 divideint 1 -100000000 -> -0 +dddvi180 divideint -1 1 -> -1 +dddvi181 divideint -1 10 -> -0 +dddvi182 divideint -1 100 -> -0 +dddvi183 divideint -1 1000 -> -0 +dddvi184 divideint -1 10000 -> -0 +dddvi185 divideint -1 100000 -> -0 +dddvi186 divideint -1 1000000 -> -0 +dddvi187 divideint -1 10000000 -> -0 +dddvi188 divideint -1 100000000 -> -0 +dddvi190 divideint -1 -1 -> 1 +dddvi191 divideint -1 -10 -> 0 +dddvi192 divideint -1 -100 -> 0 +dddvi193 divideint -1 -1000 -> 0 +dddvi194 divideint -1 -10000 -> 0 +dddvi195 divideint -1 -100000 -> 0 +dddvi196 divideint -1 -1000000 -> 0 +dddvi197 divideint -1 -10000000 -> 0 +dddvi198 divideint -1 -100000000 -> 0 + +-- some long operand (at p=9) cases +dddvi070 divideint 999999999 1 -> 999999999 +dddvi071 divideint 999999999.4 1 -> 999999999 +dddvi072 divideint 999999999.5 1 -> 999999999 +dddvi073 divideint 999999999.9 1 -> 999999999 +dddvi074 divideint 999999999.999 1 -> 999999999 + +dddvi090 divideint 0. 1 -> 0 +dddvi091 divideint .0 1 -> 0 +dddvi092 divideint 0.00 1 -> 0 +dddvi093 divideint 0.00E+9 1 -> 0 +dddvi094 divideint 0.0000E-50 1 -> 0 + +dddvi100 divideint 1 1 -> 1 +dddvi101 divideint 1 2 -> 0 +dddvi102 divideint 1 3 -> 0 +dddvi103 divideint 1 4 -> 0 +dddvi104 divideint 1 5 -> 0 +dddvi105 divideint 1 6 -> 0 +dddvi106 divideint 1 7 -> 0 +dddvi107 divideint 1 8 -> 0 +dddvi108 divideint 1 9 -> 0 +dddvi109 divideint 1 10 -> 0 +dddvi110 divideint 1 1 -> 1 +dddvi111 divideint 2 1 -> 2 +dddvi112 divideint 3 1 -> 3 +dddvi113 divideint 4 1 -> 4 +dddvi114 divideint 5 1 -> 5 +dddvi115 divideint 6 1 -> 6 +dddvi116 divideint 7 1 -> 7 +dddvi117 divideint 8 1 -> 8 +dddvi118 divideint 9 1 -> 9 +dddvi119 divideint 10 1 -> 10 + +-- from DiagBigDecimal +dddvi131 divideint 101.3 1 -> 101 +dddvi132 divideint 101.0 1 -> 101 +dddvi133 divideint 101.3 3 -> 33 +dddvi134 divideint 101.0 3 -> 33 +dddvi135 divideint 2.4 1 -> 2 +dddvi136 divideint 2.400 1 -> 2 +dddvi137 divideint 18 18 -> 1 +dddvi138 divideint 1120 1000 -> 1 +dddvi139 divideint 2.4 2 -> 1 +dddvi140 divideint 2.400 2 -> 1 +dddvi141 divideint 0.5 2.000 -> 0 +dddvi142 divideint 8.005 7 -> 1 +dddvi143 divideint 5 2 -> 2 +dddvi144 divideint 0 2 -> 0 +dddvi145 divideint 0.00 2 -> 0 + +-- Others +dddvi150 divideint 12345 4.999 -> 2469 +dddvi151 divideint 12345 4.99 -> 2473 +dddvi152 divideint 12345 4.9 -> 2519 +dddvi153 divideint 12345 5 -> 2469 +dddvi154 divideint 12345 5.1 -> 2420 +dddvi155 divideint 12345 5.01 -> 2464 +dddvi156 divideint 12345 5.001 -> 2468 +dddvi157 divideint 101 7.6 -> 13 + +-- Various flavours of divideint by 0 +dddvi201 divideint 0 0 -> NaN Division_undefined +dddvi202 divideint 0.0E5 0 -> NaN Division_undefined +dddvi203 divideint 0.000 0 -> NaN Division_undefined +dddvi204 divideint 0.0001 0 -> Infinity Division_by_zero +dddvi205 divideint 0.01 0 -> Infinity Division_by_zero +dddvi206 divideint 0.1 0 -> Infinity Division_by_zero +dddvi207 divideint 1 0 -> Infinity Division_by_zero +dddvi208 divideint 1 0.0 -> Infinity Division_by_zero +dddvi209 divideint 10 0.0 -> Infinity Division_by_zero +dddvi210 divideint 1E+100 0.0 -> Infinity Division_by_zero +dddvi211 divideint 1E+380 0 -> Infinity Division_by_zero +dddvi214 divideint -0.0001 0 -> -Infinity Division_by_zero +dddvi215 divideint -0.01 0 -> -Infinity Division_by_zero +dddvi216 divideint -0.1 0 -> -Infinity Division_by_zero +dddvi217 divideint -1 0 -> -Infinity Division_by_zero +dddvi218 divideint -1 0.0 -> -Infinity Division_by_zero +dddvi219 divideint -10 0.0 -> -Infinity Division_by_zero +dddvi220 divideint -1E+100 0.0 -> -Infinity Division_by_zero +dddvi221 divideint -1E+380 0 -> -Infinity Division_by_zero + +-- test some cases that are close to exponent overflow +dddvi270 divideint 1 1e384 -> 0 +dddvi271 divideint 1 0.9e384 -> 0 +dddvi272 divideint 1 0.99e384 -> 0 +dddvi273 divideint 1 0.9999999999999999e384 -> 0 +dddvi274 divideint 9e384 1 -> NaN Division_impossible +dddvi275 divideint 9.9e384 1 -> NaN Division_impossible +dddvi276 divideint 9.99e384 1 -> NaN Division_impossible +dddvi277 divideint 9.999999999999999e384 1 -> NaN Division_impossible + +dddvi280 divideint 0.1 9e-383 -> NaN Division_impossible +dddvi281 divideint 0.1 99e-383 -> NaN Division_impossible +dddvi282 divideint 0.1 999e-383 -> NaN Division_impossible +dddvi283 divideint 0.1 9e-382 -> NaN Division_impossible +dddvi284 divideint 0.1 99e-382 -> NaN Division_impossible + +-- GD edge cases: lhs smaller than rhs but more digits +dddvi301 divideint 0.9 2 -> 0 +dddvi302 divideint 0.9 2.0 -> 0 +dddvi303 divideint 0.9 2.1 -> 0 +dddvi304 divideint 0.9 2.00 -> 0 +dddvi305 divideint 0.9 2.01 -> 0 +dddvi306 divideint 0.12 1 -> 0 +dddvi307 divideint 0.12 1.0 -> 0 +dddvi308 divideint 0.12 1.00 -> 0 +dddvi309 divideint 0.12 1.0 -> 0 +dddvi310 divideint 0.12 1.00 -> 0 +dddvi311 divideint 0.12 2 -> 0 +dddvi312 divideint 0.12 2.0 -> 0 +dddvi313 divideint 0.12 2.1 -> 0 +dddvi314 divideint 0.12 2.00 -> 0 +dddvi315 divideint 0.12 2.01 -> 0 + +-- edge cases of impossible +dddvi330 divideint 1234567890123456 10 -> 123456789012345 +dddvi331 divideint 1234567890123456 1 -> 1234567890123456 +dddvi332 divideint 1234567890123456 0.1 -> NaN Division_impossible +dddvi333 divideint 1234567890123456 0.01 -> NaN Division_impossible + +-- overflow and underflow tests [from divide] +dddvi1051 divideint 1e+277 1e-311 -> NaN Division_impossible +dddvi1052 divideint 1e+277 -1e-311 -> NaN Division_impossible +dddvi1053 divideint -1e+277 1e-311 -> NaN Division_impossible +dddvi1054 divideint -1e+277 -1e-311 -> NaN Division_impossible +dddvi1055 divideint 1e-277 1e+311 -> 0 +dddvi1056 divideint 1e-277 -1e+311 -> -0 +dddvi1057 divideint -1e-277 1e+311 -> -0 +dddvi1058 divideint -1e-277 -1e+311 -> 0 + +-- 'subnormal' boundary (all hard underflow or overflow in base arithemtic) +dddvi1060 divideint 1e-291 1e+101 -> 0 +dddvi1061 divideint 1e-291 1e+102 -> 0 +dddvi1062 divideint 1e-291 1e+103 -> 0 +dddvi1063 divideint 1e-291 1e+104 -> 0 +dddvi1064 divideint 1e-291 1e+105 -> 0 +dddvi1065 divideint 1e-291 1e+106 -> 0 +dddvi1066 divideint 1e-291 1e+107 -> 0 +dddvi1067 divideint 1e-291 1e+108 -> 0 +dddvi1068 divideint 1e-291 1e+109 -> 0 +dddvi1069 divideint 1e-291 1e+110 -> 0 + +dddvi1101 divideint 1.0000E-394 1 -> 0 +dddvi1102 divideint 1.000E-394 1e+1 -> 0 +dddvi1103 divideint 1.00E-394 1e+2 -> 0 + +dddvi1118 divideint 1E-394 1e+4 -> 0 +dddvi1119 divideint 3E-394 -1e+5 -> -0 +dddvi1120 divideint 5E-394 1e+5 -> 0 + +dddvi1124 divideint 1E-394 -1e+4 -> -0 +dddvi1130 divideint 3.0E-394 -1e+5 -> -0 + +dddvi1131 divideint 1.0E-199 1e+200 -> 0 +dddvi1132 divideint 1.0E-199 1e+199 -> 0 +dddvi1133 divideint 1.0E-199 1e+198 -> 0 +dddvi1134 divideint 2.0E-199 2e+198 -> 0 +dddvi1135 divideint 4.0E-199 4e+198 -> 0 + +-- long operand checks +dddvi401 divideint 12345678000 100 -> 123456780 +dddvi402 divideint 1 12345678000 -> 0 +dddvi403 divideint 1234567800 10 -> 123456780 +dddvi404 divideint 1 1234567800 -> 0 +dddvi405 divideint 1234567890 10 -> 123456789 +dddvi406 divideint 1 1234567890 -> 0 +dddvi407 divideint 1234567891 10 -> 123456789 +dddvi408 divideint 1 1234567891 -> 0 +dddvi409 divideint 12345678901 100 -> 123456789 +dddvi410 divideint 1 12345678901 -> 0 +dddvi411 divideint 1234567896 10 -> 123456789 +dddvi412 divideint 1 1234567896 -> 0 +dddvi413 divideint 12345678948 100 -> 123456789 +dddvi414 divideint 12345678949 100 -> 123456789 +dddvi415 divideint 12345678950 100 -> 123456789 +dddvi416 divideint 12345678951 100 -> 123456789 +dddvi417 divideint 12345678999 100 -> 123456789 +dddvi441 divideint 12345678000 1 -> 12345678000 +dddvi442 divideint 1 12345678000 -> 0 +dddvi443 divideint 1234567800 1 -> 1234567800 +dddvi444 divideint 1 1234567800 -> 0 +dddvi445 divideint 1234567890 1 -> 1234567890 +dddvi446 divideint 1 1234567890 -> 0 +dddvi447 divideint 1234567891 1 -> 1234567891 +dddvi448 divideint 1 1234567891 -> 0 +dddvi449 divideint 12345678901 1 -> 12345678901 +dddvi450 divideint 1 12345678901 -> 0 +dddvi451 divideint 1234567896 1 -> 1234567896 +dddvi452 divideint 1 1234567896 -> 0 + +-- more zeros, etc. +dddvi531 divideint 5.00 1E-3 -> 5000 +dddvi532 divideint 00.00 0.000 -> NaN Division_undefined +dddvi533 divideint 00.00 0E-3 -> NaN Division_undefined +dddvi534 divideint 0 -0 -> NaN Division_undefined +dddvi535 divideint -0 0 -> NaN Division_undefined +dddvi536 divideint -0 -0 -> NaN Division_undefined + +dddvi541 divideint 0 -1 -> -0 +dddvi542 divideint -0 -1 -> 0 +dddvi543 divideint 0 1 -> 0 +dddvi544 divideint -0 1 -> -0 +dddvi545 divideint -1 0 -> -Infinity Division_by_zero +dddvi546 divideint -1 -0 -> Infinity Division_by_zero +dddvi547 divideint 1 0 -> Infinity Division_by_zero +dddvi548 divideint 1 -0 -> -Infinity Division_by_zero + +dddvi551 divideint 0.0 -1 -> -0 +dddvi552 divideint -0.0 -1 -> 0 +dddvi553 divideint 0.0 1 -> 0 +dddvi554 divideint -0.0 1 -> -0 +dddvi555 divideint -1.0 0 -> -Infinity Division_by_zero +dddvi556 divideint -1.0 -0 -> Infinity Division_by_zero +dddvi557 divideint 1.0 0 -> Infinity Division_by_zero +dddvi558 divideint 1.0 -0 -> -Infinity Division_by_zero + +dddvi561 divideint 0 -1.0 -> -0 +dddvi562 divideint -0 -1.0 -> 0 +dddvi563 divideint 0 1.0 -> 0 +dddvi564 divideint -0 1.0 -> -0 +dddvi565 divideint -1 0.0 -> -Infinity Division_by_zero +dddvi566 divideint -1 -0.0 -> Infinity Division_by_zero +dddvi567 divideint 1 0.0 -> Infinity Division_by_zero +dddvi568 divideint 1 -0.0 -> -Infinity Division_by_zero + +dddvi571 divideint 0.0 -1.0 -> -0 +dddvi572 divideint -0.0 -1.0 -> 0 +dddvi573 divideint 0.0 1.0 -> 0 +dddvi574 divideint -0.0 1.0 -> -0 +dddvi575 divideint -1.0 0.0 -> -Infinity Division_by_zero +dddvi576 divideint -1.0 -0.0 -> Infinity Division_by_zero +dddvi577 divideint 1.0 0.0 -> Infinity Division_by_zero +dddvi578 divideint 1.0 -0.0 -> -Infinity Division_by_zero + +-- Specials +dddvi580 divideint Inf -Inf -> NaN Invalid_operation +dddvi581 divideint Inf -1000 -> -Infinity +dddvi582 divideint Inf -1 -> -Infinity +dddvi583 divideint Inf -0 -> -Infinity +dddvi584 divideint Inf 0 -> Infinity +dddvi585 divideint Inf 1 -> Infinity +dddvi586 divideint Inf 1000 -> Infinity +dddvi587 divideint Inf Inf -> NaN Invalid_operation +dddvi588 divideint -1000 Inf -> -0 +dddvi589 divideint -Inf Inf -> NaN Invalid_operation +dddvi590 divideint -1 Inf -> -0 +dddvi591 divideint -0 Inf -> -0 +dddvi592 divideint 0 Inf -> 0 +dddvi593 divideint 1 Inf -> 0 +dddvi594 divideint 1000 Inf -> 0 +dddvi595 divideint Inf Inf -> NaN Invalid_operation + +dddvi600 divideint -Inf -Inf -> NaN Invalid_operation +dddvi601 divideint -Inf -1000 -> Infinity +dddvi602 divideint -Inf -1 -> Infinity +dddvi603 divideint -Inf -0 -> Infinity +dddvi604 divideint -Inf 0 -> -Infinity +dddvi605 divideint -Inf 1 -> -Infinity +dddvi606 divideint -Inf 1000 -> -Infinity +dddvi607 divideint -Inf Inf -> NaN Invalid_operation +dddvi608 divideint -1000 Inf -> -0 +dddvi609 divideint -Inf -Inf -> NaN Invalid_operation +dddvi610 divideint -1 -Inf -> 0 +dddvi611 divideint -0 -Inf -> 0 +dddvi612 divideint 0 -Inf -> -0 +dddvi613 divideint 1 -Inf -> -0 +dddvi614 divideint 1000 -Inf -> -0 +dddvi615 divideint Inf -Inf -> NaN Invalid_operation + +dddvi621 divideint NaN -Inf -> NaN +dddvi622 divideint NaN -1000 -> NaN +dddvi623 divideint NaN -1 -> NaN +dddvi624 divideint NaN -0 -> NaN +dddvi625 divideint NaN 0 -> NaN +dddvi626 divideint NaN 1 -> NaN +dddvi627 divideint NaN 1000 -> NaN +dddvi628 divideint NaN Inf -> NaN +dddvi629 divideint NaN NaN -> NaN +dddvi630 divideint -Inf NaN -> NaN +dddvi631 divideint -1000 NaN -> NaN +dddvi632 divideint -1 NaN -> NaN +dddvi633 divideint -0 NaN -> NaN +dddvi634 divideint 0 NaN -> NaN +dddvi635 divideint 1 NaN -> NaN +dddvi636 divideint 1000 NaN -> NaN +dddvi637 divideint Inf NaN -> NaN + +dddvi641 divideint sNaN -Inf -> NaN Invalid_operation +dddvi642 divideint sNaN -1000 -> NaN Invalid_operation +dddvi643 divideint sNaN -1 -> NaN Invalid_operation +dddvi644 divideint sNaN -0 -> NaN Invalid_operation +dddvi645 divideint sNaN 0 -> NaN Invalid_operation +dddvi646 divideint sNaN 1 -> NaN Invalid_operation +dddvi647 divideint sNaN 1000 -> NaN Invalid_operation +dddvi648 divideint sNaN NaN -> NaN Invalid_operation +dddvi649 divideint sNaN sNaN -> NaN Invalid_operation +dddvi650 divideint NaN sNaN -> NaN Invalid_operation +dddvi651 divideint -Inf sNaN -> NaN Invalid_operation +dddvi652 divideint -1000 sNaN -> NaN Invalid_operation +dddvi653 divideint -1 sNaN -> NaN Invalid_operation +dddvi654 divideint -0 sNaN -> NaN Invalid_operation +dddvi655 divideint 0 sNaN -> NaN Invalid_operation +dddvi656 divideint 1 sNaN -> NaN Invalid_operation +dddvi657 divideint 1000 sNaN -> NaN Invalid_operation +dddvi658 divideint Inf sNaN -> NaN Invalid_operation +dddvi659 divideint NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +dddvi661 divideint NaN9 -Inf -> NaN9 +dddvi662 divideint NaN8 1000 -> NaN8 +dddvi663 divideint NaN7 Inf -> NaN7 +dddvi664 divideint -NaN6 NaN5 -> -NaN6 +dddvi665 divideint -Inf NaN4 -> NaN4 +dddvi666 divideint -1000 NaN3 -> NaN3 +dddvi667 divideint Inf -NaN2 -> -NaN2 + +dddvi671 divideint -sNaN99 -Inf -> -NaN99 Invalid_operation +dddvi672 divideint sNaN98 -1 -> NaN98 Invalid_operation +dddvi673 divideint sNaN97 NaN -> NaN97 Invalid_operation +dddvi674 divideint sNaN96 sNaN94 -> NaN96 Invalid_operation +dddvi675 divideint NaN95 sNaN93 -> NaN93 Invalid_operation +dddvi676 divideint -Inf sNaN92 -> NaN92 Invalid_operation +dddvi677 divideint 0 sNaN91 -> NaN91 Invalid_operation +dddvi678 divideint Inf -sNaN90 -> -NaN90 Invalid_operation +dddvi679 divideint NaN sNaN89 -> NaN89 Invalid_operation + +-- Null tests +dddvi900 divideint 10 # -> NaN Invalid_operation +dddvi901 divideint # 10 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/ddEncode.decTest b/Lib/test/decimaltestdata/ddEncode.decTest index e91ec6143c..de9d31c0a6 100644 --- a/Lib/test/decimaltestdata/ddEncode.decTest +++ b/Lib/test/decimaltestdata/ddEncode.decTest @@ -1,495 +1,495 @@ -------------------------------------------------------------------------
--- ddEncode.decTest -- decimal eight-byte format testcases --
--- Copyright (c) IBM Corporation, 2000, 2008. 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 --
-------------------------------------------------------------------------
--- [Previously called decimal64.decTest]
-version: 2.59
-
--- This set of tests is for the eight-byte concrete representation.
--- Its characteristics are:
---
--- 1 bit sign
--- 5 bits combination field
--- 8 bits exponent continuation
--- 50 bits coefficient continuation
---
--- Total exponent length 10 bits
--- Total coefficient length 54 bits (16 digits)
---
--- Elimit = 767 (maximum encoded exponent)
--- Emax = 384 (largest exponent value)
--- Emin = -383 (smallest exponent value)
--- bias = 398 (subtracted from encoded exponent) = -Etiny
-
--- The testcases here have only exactly representable data on the
--- 'left-hand-side'; rounding from strings is tested in 'base'
--- testcase groups.
-
-extended: 1
-clamp: 1
-precision: 16
-rounding: half_up
-maxExponent: 384
-minExponent: -383
-
--- General testcases
--- (mostly derived from the Strawman 4 document and examples)
-dece001 apply #A2300000000003D0 -> -7.50
-dece002 apply -7.50 -> #A2300000000003D0
--- derivative canonical plain strings
-dece003 apply #A23c0000000003D0 -> -7.50E+3
-dece004 apply -7.50E+3 -> #A23c0000000003D0
-dece005 apply #A2380000000003D0 -> -750
-dece006 apply -750 -> #A2380000000003D0
-dece007 apply #A2340000000003D0 -> -75.0
-dece008 apply -75.0 -> #A2340000000003D0
-dece009 apply #A22c0000000003D0 -> -0.750
-dece010 apply -0.750 -> #A22c0000000003D0
-dece011 apply #A2280000000003D0 -> -0.0750
-dece012 apply -0.0750 -> #A2280000000003D0
-dece013 apply #A2200000000003D0 -> -0.000750
-dece014 apply -0.000750 -> #A2200000000003D0
-dece015 apply #A2180000000003D0 -> -0.00000750
-dece016 apply -0.00000750 -> #A2180000000003D0
-dece017 apply #A2140000000003D0 -> -7.50E-7
-dece018 apply -7.50E-7 -> #A2140000000003D0
-
--- Normality
-dece020 apply 1234567890123456 -> #263934b9c1e28e56
-dece021 apply -1234567890123456 -> #a63934b9c1e28e56
-dece022 apply 1234.567890123456 -> #260934b9c1e28e56
-dece023 apply #260934b9c1e28e56 -> 1234.567890123456
-dece024 apply 1111111111111111 -> #2638912449124491
-dece025 apply 9999999999999999 -> #6e38ff3fcff3fcff
-
--- Nmax and similar
-dece031 apply 9999999999999999E+369 -> #77fcff3fcff3fcff
-dece032 apply 9.999999999999999E+384 -> #77fcff3fcff3fcff
-dece033 apply #77fcff3fcff3fcff -> 9.999999999999999E+384
-dece034 apply 1.234567890123456E+384 -> #47fd34b9c1e28e56
-dece035 apply #47fd34b9c1e28e56 -> 1.234567890123456E+384
--- fold-downs (more below)
-dece036 apply 1.23E+384 -> #47fd300000000000 Clamped
-dece037 apply #47fd300000000000 -> 1.230000000000000E+384
-decd038 apply 1E+384 -> #47fc000000000000 Clamped
-decd039 apply #47fc000000000000 -> 1.000000000000000E+384
-
-decd051 apply 12345 -> #22380000000049c5
-decd052 apply #22380000000049c5 -> 12345
-decd053 apply 1234 -> #2238000000000534
-decd054 apply #2238000000000534 -> 1234
-decd055 apply 123 -> #22380000000000a3
-decd056 apply #22380000000000a3 -> 123
-decd057 apply 12 -> #2238000000000012
-decd058 apply #2238000000000012 -> 12
-decd059 apply 1 -> #2238000000000001
-decd060 apply #2238000000000001 -> 1
-decd061 apply 1.23 -> #22300000000000a3
-decd062 apply #22300000000000a3 -> 1.23
-decd063 apply 123.45 -> #22300000000049c5
-decd064 apply #22300000000049c5 -> 123.45
-
--- Nmin and below
-decd071 apply 1E-383 -> #003c000000000001
-decd072 apply #003c000000000001 -> 1E-383
-decd073 apply 1.000000000000000E-383 -> #0400000000000000
-decd074 apply #0400000000000000 -> 1.000000000000000E-383
-decd075 apply 1.000000000000001E-383 -> #0400000000000001
-decd076 apply #0400000000000001 -> 1.000000000000001E-383
-
-decd077 apply 0.100000000000000E-383 -> #0000800000000000 Subnormal
-decd078 apply #0000800000000000 -> 1.00000000000000E-384 Subnormal
-decd079 apply 0.000000000000010E-383 -> #0000000000000010 Subnormal
-decd080 apply #0000000000000010 -> 1.0E-397 Subnormal
-decd081 apply 0.00000000000001E-383 -> #0004000000000001 Subnormal
-decd082 apply #0004000000000001 -> 1E-397 Subnormal
-decd083 apply 0.000000000000001E-383 -> #0000000000000001 Subnormal
-decd084 apply #0000000000000001 -> 1E-398 Subnormal
--- next is smallest all-nines
-decd085 apply 9999999999999999E-398 -> #6400ff3fcff3fcff
-decd086 apply #6400ff3fcff3fcff -> 9.999999999999999E-383
--- and a problematic divide result
-decd088 apply 1.111111111111111E-383 -> #0400912449124491
-decd089 apply #0400912449124491 -> 1.111111111111111E-383
-
--- forties
-decd090 apply 40 -> #2238000000000040
-decd091 apply 39.99 -> #2230000000000cff
-
--- underflows cannot be tested as all LHS exact
-
--- Same again, negatives
--- Nmax and similar
-decd122 apply -9.999999999999999E+384 -> #f7fcff3fcff3fcff
-decd123 apply #f7fcff3fcff3fcff -> -9.999999999999999E+384
-decd124 apply -1.234567890123456E+384 -> #c7fd34b9c1e28e56
-decd125 apply #c7fd34b9c1e28e56 -> -1.234567890123456E+384
--- fold-downs (more below)
-decd130 apply -1.23E+384 -> #c7fd300000000000 Clamped
-decd131 apply #c7fd300000000000 -> -1.230000000000000E+384
-decd132 apply -1E+384 -> #c7fc000000000000 Clamped
-decd133 apply #c7fc000000000000 -> -1.000000000000000E+384
-
--- overflows
-decd151 apply -12345 -> #a2380000000049c5
-decd152 apply #a2380000000049c5 -> -12345
-decd153 apply -1234 -> #a238000000000534
-decd154 apply #a238000000000534 -> -1234
-decd155 apply -123 -> #a2380000000000a3
-decd156 apply #a2380000000000a3 -> -123
-decd157 apply -12 -> #a238000000000012
-decd158 apply #a238000000000012 -> -12
-decd159 apply -1 -> #a238000000000001
-decd160 apply #a238000000000001 -> -1
-decd161 apply -1.23 -> #a2300000000000a3
-decd162 apply #a2300000000000a3 -> -1.23
-decd163 apply -123.45 -> #a2300000000049c5
-decd164 apply #a2300000000049c5 -> -123.45
-
--- Nmin and below
-decd171 apply -1E-383 -> #803c000000000001
-decd172 apply #803c000000000001 -> -1E-383
-decd173 apply -1.000000000000000E-383 -> #8400000000000000
-decd174 apply #8400000000000000 -> -1.000000000000000E-383
-decd175 apply -1.000000000000001E-383 -> #8400000000000001
-decd176 apply #8400000000000001 -> -1.000000000000001E-383
-
-decd177 apply -0.100000000000000E-383 -> #8000800000000000 Subnormal
-decd178 apply #8000800000000000 -> -1.00000000000000E-384 Subnormal
-decd179 apply -0.000000000000010E-383 -> #8000000000000010 Subnormal
-decd180 apply #8000000000000010 -> -1.0E-397 Subnormal
-decd181 apply -0.00000000000001E-383 -> #8004000000000001 Subnormal
-decd182 apply #8004000000000001 -> -1E-397 Subnormal
-decd183 apply -0.000000000000001E-383 -> #8000000000000001 Subnormal
-decd184 apply #8000000000000001 -> -1E-398 Subnormal
--- next is smallest all-nines
-decd185 apply -9999999999999999E-398 -> #e400ff3fcff3fcff
-decd186 apply #e400ff3fcff3fcff -> -9.999999999999999E-383
--- and a tricky subnormal
-decd187 apply 1.11111111111524E-384 -> #00009124491246a4 Subnormal
-decd188 apply #00009124491246a4 -> 1.11111111111524E-384 Subnormal
-
--- near-underflows
-decd189 apply -1e-398 -> #8000000000000001 Subnormal
-decd190 apply -1.0e-398 -> #8000000000000001 Subnormal Rounded
-
--- zeros
-decd401 apply 0E-500 -> #0000000000000000 Clamped
-decd402 apply 0E-400 -> #0000000000000000 Clamped
-decd403 apply 0E-398 -> #0000000000000000
-decd404 apply #0000000000000000 -> 0E-398
-decd405 apply 0.000000000000000E-383 -> #0000000000000000
-decd406 apply #0000000000000000 -> 0E-398
-decd407 apply 0E-2 -> #2230000000000000
-decd408 apply #2230000000000000 -> 0.00
-decd409 apply 0 -> #2238000000000000
-decd410 apply #2238000000000000 -> 0
-decd411 apply 0E+3 -> #2244000000000000
-decd412 apply #2244000000000000 -> 0E+3
-decd413 apply 0E+369 -> #43fc000000000000
-decd414 apply #43fc000000000000 -> 0E+369
--- clamped zeros...
-decd415 apply 0E+370 -> #43fc000000000000 Clamped
-decd416 apply #43fc000000000000 -> 0E+369
-decd417 apply 0E+384 -> #43fc000000000000 Clamped
-decd418 apply #43fc000000000000 -> 0E+369
-decd419 apply 0E+400 -> #43fc000000000000 Clamped
-decd420 apply #43fc000000000000 -> 0E+369
-decd421 apply 0E+500 -> #43fc000000000000 Clamped
-decd422 apply #43fc000000000000 -> 0E+369
-
--- negative zeros
-decd431 apply -0E-400 -> #8000000000000000 Clamped
-decd432 apply -0E-400 -> #8000000000000000 Clamped
-decd433 apply -0E-398 -> #8000000000000000
-decd434 apply #8000000000000000 -> -0E-398
-decd435 apply -0.000000000000000E-383 -> #8000000000000000
-decd436 apply #8000000000000000 -> -0E-398
-decd437 apply -0E-2 -> #a230000000000000
-decd438 apply #a230000000000000 -> -0.00
-decd439 apply -0 -> #a238000000000000
-decd440 apply #a238000000000000 -> -0
-decd441 apply -0E+3 -> #a244000000000000
-decd442 apply #a244000000000000 -> -0E+3
-decd443 apply -0E+369 -> #c3fc000000000000
-decd444 apply #c3fc000000000000 -> -0E+369
--- clamped zeros...
-decd445 apply -0E+370 -> #c3fc000000000000 Clamped
-decd446 apply #c3fc000000000000 -> -0E+369
-decd447 apply -0E+384 -> #c3fc000000000000 Clamped
-decd448 apply #c3fc000000000000 -> -0E+369
-decd449 apply -0E+400 -> #c3fc000000000000 Clamped
-decd450 apply #c3fc000000000000 -> -0E+369
-decd451 apply -0E+500 -> #c3fc000000000000 Clamped
-decd452 apply #c3fc000000000000 -> -0E+369
-
--- exponents
-decd460 apply #225c000000000007 -> 7E+9
-decd461 apply 7E+9 -> #225c000000000007
-decd462 apply #23c4000000000007 -> 7E+99
-decd463 apply 7E+99 -> #23c4000000000007
-
--- Specials
-decd500 apply Infinity -> #7800000000000000
-decd501 apply #7878787878787878 -> #7800000000000000
-decd502 apply #7800000000000000 -> Infinity
-decd503 apply #7979797979797979 -> #7800000000000000
-decd504 apply #7900000000000000 -> Infinity
-decd505 apply #7a7a7a7a7a7a7a7a -> #7800000000000000
-decd506 apply #7a00000000000000 -> Infinity
-decd507 apply #7b7b7b7b7b7b7b7b -> #7800000000000000
-decd508 apply #7b00000000000000 -> Infinity
-
-decd509 apply NaN -> #7c00000000000000
-decd510 apply #7c7c7c7c7c7c7c7c -> #7c007c7c7c7c7c7c
-decd511 apply #7c00000000000000 -> NaN
-decd512 apply #7d7d7d7d7d7d7d7d -> #7c017d7d7d7d7d7d
-decd513 apply #7d00000000000000 -> NaN
-decd514 apply #7e7e7e7e7e7e7e7e -> #7e007e7e7e7e7c7e
-decd515 apply #7e00000000000000 -> sNaN
-decd516 apply #7f7f7f7f7f7f7f7f -> #7e007f7f7f7f7c7f
-decd517 apply #7f00000000000000 -> sNaN
-decd518 apply #7fffffffffffffff -> sNaN999999999999999
-decd519 apply #7fffffffffffffff -> #7e00ff3fcff3fcff
-
-decd520 apply -Infinity -> #f800000000000000
-decd521 apply #f878787878787878 -> #f800000000000000
-decd522 apply #f800000000000000 -> -Infinity
-decd523 apply #f979797979797979 -> #f800000000000000
-decd524 apply #f900000000000000 -> -Infinity
-decd525 apply #fa7a7a7a7a7a7a7a -> #f800000000000000
-decd526 apply #fa00000000000000 -> -Infinity
-decd527 apply #fb7b7b7b7b7b7b7b -> #f800000000000000
-decd528 apply #fb00000000000000 -> -Infinity
-
-decd529 apply -NaN -> #fc00000000000000
-decd530 apply #fc7c7c7c7c7c7c7c -> #fc007c7c7c7c7c7c
-decd531 apply #fc00000000000000 -> -NaN
-decd532 apply #fd7d7d7d7d7d7d7d -> #fc017d7d7d7d7d7d
-decd533 apply #fd00000000000000 -> -NaN
-decd534 apply #fe7e7e7e7e7e7e7e -> #fe007e7e7e7e7c7e
-decd535 apply #fe00000000000000 -> -sNaN
-decd536 apply #ff7f7f7f7f7f7f7f -> #fe007f7f7f7f7c7f
-decd537 apply #ff00000000000000 -> -sNaN
-decd538 apply #ffffffffffffffff -> -sNaN999999999999999
-decd539 apply #ffffffffffffffff -> #fe00ff3fcff3fcff
-
--- diagnostic NaNs
-decd540 apply NaN -> #7c00000000000000
-decd541 apply NaN0 -> #7c00000000000000
-decd542 apply NaN1 -> #7c00000000000001
-decd543 apply NaN12 -> #7c00000000000012
-decd544 apply NaN79 -> #7c00000000000079
-decd545 apply NaN12345 -> #7c000000000049c5
-decd546 apply NaN123456 -> #7c00000000028e56
-decd547 apply NaN799799 -> #7c000000000f7fdf
-decd548 apply NaN799799799799799 -> #7c03dff7fdff7fdf
-decd549 apply NaN999999999999999 -> #7c00ff3fcff3fcff
--- too many digits
-
--- fold-down full sequence
-decd601 apply 1E+384 -> #47fc000000000000 Clamped
-decd602 apply #47fc000000000000 -> 1.000000000000000E+384
-decd603 apply 1E+383 -> #43fc800000000000 Clamped
-decd604 apply #43fc800000000000 -> 1.00000000000000E+383
-decd605 apply 1E+382 -> #43fc100000000000 Clamped
-decd606 apply #43fc100000000000 -> 1.0000000000000E+382
-decd607 apply 1E+381 -> #43fc010000000000 Clamped
-decd608 apply #43fc010000000000 -> 1.000000000000E+381
-decd609 apply 1E+380 -> #43fc002000000000 Clamped
-decd610 apply #43fc002000000000 -> 1.00000000000E+380
-decd611 apply 1E+379 -> #43fc000400000000 Clamped
-decd612 apply #43fc000400000000 -> 1.0000000000E+379
-decd613 apply 1E+378 -> #43fc000040000000 Clamped
-decd614 apply #43fc000040000000 -> 1.000000000E+378
-decd615 apply 1E+377 -> #43fc000008000000 Clamped
-decd616 apply #43fc000008000000 -> 1.00000000E+377
-decd617 apply 1E+376 -> #43fc000001000000 Clamped
-decd618 apply #43fc000001000000 -> 1.0000000E+376
-decd619 apply 1E+375 -> #43fc000000100000 Clamped
-decd620 apply #43fc000000100000 -> 1.000000E+375
-decd621 apply 1E+374 -> #43fc000000020000 Clamped
-decd622 apply #43fc000000020000 -> 1.00000E+374
-decd623 apply 1E+373 -> #43fc000000004000 Clamped
-decd624 apply #43fc000000004000 -> 1.0000E+373
-decd625 apply 1E+372 -> #43fc000000000400 Clamped
-decd626 apply #43fc000000000400 -> 1.000E+372
-decd627 apply 1E+371 -> #43fc000000000080 Clamped
-decd628 apply #43fc000000000080 -> 1.00E+371
-decd629 apply 1E+370 -> #43fc000000000010 Clamped
-decd630 apply #43fc000000000010 -> 1.0E+370
-decd631 apply 1E+369 -> #43fc000000000001
-decd632 apply #43fc000000000001 -> 1E+369
-decd633 apply 1E+368 -> #43f8000000000001
-decd634 apply #43f8000000000001 -> 1E+368
--- same with 9s
-decd641 apply 9E+384 -> #77fc000000000000 Clamped
-decd642 apply #77fc000000000000 -> 9.000000000000000E+384
-decd643 apply 9E+383 -> #43fc8c0000000000 Clamped
-decd644 apply #43fc8c0000000000 -> 9.00000000000000E+383
-decd645 apply 9E+382 -> #43fc1a0000000000 Clamped
-decd646 apply #43fc1a0000000000 -> 9.0000000000000E+382
-decd647 apply 9E+381 -> #43fc090000000000 Clamped
-decd648 apply #43fc090000000000 -> 9.000000000000E+381
-decd649 apply 9E+380 -> #43fc002300000000 Clamped
-decd650 apply #43fc002300000000 -> 9.00000000000E+380
-decd651 apply 9E+379 -> #43fc000680000000 Clamped
-decd652 apply #43fc000680000000 -> 9.0000000000E+379
-decd653 apply 9E+378 -> #43fc000240000000 Clamped
-decd654 apply #43fc000240000000 -> 9.000000000E+378
-decd655 apply 9E+377 -> #43fc000008c00000 Clamped
-decd656 apply #43fc000008c00000 -> 9.00000000E+377
-decd657 apply 9E+376 -> #43fc000001a00000 Clamped
-decd658 apply #43fc000001a00000 -> 9.0000000E+376
-decd659 apply 9E+375 -> #43fc000000900000 Clamped
-decd660 apply #43fc000000900000 -> 9.000000E+375
-decd661 apply 9E+374 -> #43fc000000023000 Clamped
-decd662 apply #43fc000000023000 -> 9.00000E+374
-decd663 apply 9E+373 -> #43fc000000006800 Clamped
-decd664 apply #43fc000000006800 -> 9.0000E+373
-decd665 apply 9E+372 -> #43fc000000002400 Clamped
-decd666 apply #43fc000000002400 -> 9.000E+372
-decd667 apply 9E+371 -> #43fc00000000008c Clamped
-decd668 apply #43fc00000000008c -> 9.00E+371
-decd669 apply 9E+370 -> #43fc00000000001a Clamped
-decd670 apply #43fc00000000001a -> 9.0E+370
-decd671 apply 9E+369 -> #43fc000000000009
-decd672 apply #43fc000000000009 -> 9E+369
-decd673 apply 9E+368 -> #43f8000000000009
-decd674 apply #43f8000000000009 -> 9E+368
-
-
--- Selected DPD codes
-decd700 apply #2238000000000000 -> 0
-decd701 apply #2238000000000009 -> 9
-decd702 apply #2238000000000010 -> 10
-decd703 apply #2238000000000019 -> 19
-decd704 apply #2238000000000020 -> 20
-decd705 apply #2238000000000029 -> 29
-decd706 apply #2238000000000030 -> 30
-decd707 apply #2238000000000039 -> 39
-decd708 apply #2238000000000040 -> 40
-decd709 apply #2238000000000049 -> 49
-decd710 apply #2238000000000050 -> 50
-decd711 apply #2238000000000059 -> 59
-decd712 apply #2238000000000060 -> 60
-decd713 apply #2238000000000069 -> 69
-decd714 apply #2238000000000070 -> 70
-decd715 apply #2238000000000071 -> 71
-decd716 apply #2238000000000072 -> 72
-decd717 apply #2238000000000073 -> 73
-decd718 apply #2238000000000074 -> 74
-decd719 apply #2238000000000075 -> 75
-decd720 apply #2238000000000076 -> 76
-decd721 apply #2238000000000077 -> 77
-decd722 apply #2238000000000078 -> 78
-decd723 apply #2238000000000079 -> 79
-
-decd725 apply #223800000000029e -> 994
-decd726 apply #223800000000029f -> 995
-decd727 apply #22380000000002a0 -> 520
-decd728 apply #22380000000002a1 -> 521
--- from telco test data
-decd730 apply #2238000000000188 -> 308
-decd731 apply #22380000000001a3 -> 323
-decd732 apply #223800000000002a -> 82
-decd733 apply #22380000000001a9 -> 329
-decd734 apply #2238000000000081 -> 101
-decd735 apply #22380000000002a2 -> 522
-
--- DPD: one of each of the huffman groups
-decd740 apply #22380000000003f7 -> 777
-decd741 apply #22380000000003f8 -> 778
-decd742 apply #22380000000003eb -> 787
-decd743 apply #223800000000037d -> 877
-decd744 apply #223800000000039f -> 997
-decd745 apply #22380000000003bf -> 979
-decd746 apply #22380000000003df -> 799
-decd747 apply #223800000000006e -> 888
-
--- DPD all-highs cases (includes the 24 redundant codes)
-decd750 apply #223800000000006e -> 888
-decd751 apply #223800000000016e -> 888
-decd752 apply #223800000000026e -> 888
-decd753 apply #223800000000036e -> 888
-decd754 apply #223800000000006f -> 889
-decd755 apply #223800000000016f -> 889
-decd756 apply #223800000000026f -> 889
-decd757 apply #223800000000036f -> 889
-
-decd760 apply #223800000000007e -> 898
-decd761 apply #223800000000017e -> 898
-decd762 apply #223800000000027e -> 898
-decd763 apply #223800000000037e -> 898
-decd764 apply #223800000000007f -> 899
-decd765 apply #223800000000017f -> 899
-decd766 apply #223800000000027f -> 899
-decd767 apply #223800000000037f -> 899
-
-decd770 apply #22380000000000ee -> 988
-decd771 apply #22380000000001ee -> 988
-decd772 apply #22380000000002ee -> 988
-decd773 apply #22380000000003ee -> 988
-decd774 apply #22380000000000ef -> 989
-decd775 apply #22380000000001ef -> 989
-decd776 apply #22380000000002ef -> 989
-decd777 apply #22380000000003ef -> 989
-
-decd780 apply #22380000000000fe -> 998
-decd781 apply #22380000000001fe -> 998
-decd782 apply #22380000000002fe -> 998
-decd783 apply #22380000000003fe -> 998
-decd784 apply #22380000000000ff -> 999
-decd785 apply #22380000000001ff -> 999
-decd786 apply #22380000000002ff -> 999
-decd787 apply #22380000000003ff -> 999
-
--- values around [u]int32 edges (zeros done earlier)
-decd800 apply -2147483646 -> #a23800008c78af46
-decd801 apply -2147483647 -> #a23800008c78af47
-decd802 apply -2147483648 -> #a23800008c78af48
-decd803 apply -2147483649 -> #a23800008c78af49
-decd804 apply 2147483646 -> #223800008c78af46
-decd805 apply 2147483647 -> #223800008c78af47
-decd806 apply 2147483648 -> #223800008c78af48
-decd807 apply 2147483649 -> #223800008c78af49
-decd808 apply 4294967294 -> #2238000115afb55a
-decd809 apply 4294967295 -> #2238000115afb55b
-decd810 apply 4294967296 -> #2238000115afb57a
-decd811 apply 4294967297 -> #2238000115afb57b
-
-decd820 apply #a23800008c78af46 -> -2147483646
-decd821 apply #a23800008c78af47 -> -2147483647
-decd822 apply #a23800008c78af48 -> -2147483648
-decd823 apply #a23800008c78af49 -> -2147483649
-decd824 apply #223800008c78af46 -> 2147483646
-decd825 apply #223800008c78af47 -> 2147483647
-decd826 apply #223800008c78af48 -> 2147483648
-decd827 apply #223800008c78af49 -> 2147483649
-decd828 apply #2238000115afb55a -> 4294967294
-decd829 apply #2238000115afb55b -> 4294967295
-decd830 apply #2238000115afb57a -> 4294967296
-decd831 apply #2238000115afb57b -> 4294967297
-
--- for narrowing
-decd840 apply #2870000000000000 -> 2.000000000000000E-99
-
--- some miscellaneous
-decd850 apply #0004070000000000 -> 7.000000000000E-385 Subnormal
-decd851 apply #0008000000020000 -> 1.00000E-391 Subnormal
-
+------------------------------------------------------------------------ +-- ddEncode.decTest -- decimal eight-byte format testcases -- +-- Copyright (c) IBM Corporation, 2000, 2008. 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 -- +------------------------------------------------------------------------ +-- [Previously called decimal64.decTest] +version: 2.59 + +-- This set of tests is for the eight-byte concrete representation. +-- Its characteristics are: +-- +-- 1 bit sign +-- 5 bits combination field +-- 8 bits exponent continuation +-- 50 bits coefficient continuation +-- +-- Total exponent length 10 bits +-- Total coefficient length 54 bits (16 digits) +-- +-- Elimit = 767 (maximum encoded exponent) +-- Emax = 384 (largest exponent value) +-- Emin = -383 (smallest exponent value) +-- bias = 398 (subtracted from encoded exponent) = -Etiny + +-- The testcases here have only exactly representable data on the +-- 'left-hand-side'; rounding from strings is tested in 'base' +-- testcase groups. + +extended: 1 +clamp: 1 +precision: 16 +rounding: half_up +maxExponent: 384 +minExponent: -383 + +-- General testcases +-- (mostly derived from the Strawman 4 document and examples) +dece001 apply #A2300000000003D0 -> -7.50 +dece002 apply -7.50 -> #A2300000000003D0 +-- derivative canonical plain strings +dece003 apply #A23c0000000003D0 -> -7.50E+3 +dece004 apply -7.50E+3 -> #A23c0000000003D0 +dece005 apply #A2380000000003D0 -> -750 +dece006 apply -750 -> #A2380000000003D0 +dece007 apply #A2340000000003D0 -> -75.0 +dece008 apply -75.0 -> #A2340000000003D0 +dece009 apply #A22c0000000003D0 -> -0.750 +dece010 apply -0.750 -> #A22c0000000003D0 +dece011 apply #A2280000000003D0 -> -0.0750 +dece012 apply -0.0750 -> #A2280000000003D0 +dece013 apply #A2200000000003D0 -> -0.000750 +dece014 apply -0.000750 -> #A2200000000003D0 +dece015 apply #A2180000000003D0 -> -0.00000750 +dece016 apply -0.00000750 -> #A2180000000003D0 +dece017 apply #A2140000000003D0 -> -7.50E-7 +dece018 apply -7.50E-7 -> #A2140000000003D0 + +-- Normality +dece020 apply 1234567890123456 -> #263934b9c1e28e56 +dece021 apply -1234567890123456 -> #a63934b9c1e28e56 +dece022 apply 1234.567890123456 -> #260934b9c1e28e56 +dece023 apply #260934b9c1e28e56 -> 1234.567890123456 +dece024 apply 1111111111111111 -> #2638912449124491 +dece025 apply 9999999999999999 -> #6e38ff3fcff3fcff + +-- Nmax and similar +dece031 apply 9999999999999999E+369 -> #77fcff3fcff3fcff +dece032 apply 9.999999999999999E+384 -> #77fcff3fcff3fcff +dece033 apply #77fcff3fcff3fcff -> 9.999999999999999E+384 +dece034 apply 1.234567890123456E+384 -> #47fd34b9c1e28e56 +dece035 apply #47fd34b9c1e28e56 -> 1.234567890123456E+384 +-- fold-downs (more below) +dece036 apply 1.23E+384 -> #47fd300000000000 Clamped +dece037 apply #47fd300000000000 -> 1.230000000000000E+384 +decd038 apply 1E+384 -> #47fc000000000000 Clamped +decd039 apply #47fc000000000000 -> 1.000000000000000E+384 + +decd051 apply 12345 -> #22380000000049c5 +decd052 apply #22380000000049c5 -> 12345 +decd053 apply 1234 -> #2238000000000534 +decd054 apply #2238000000000534 -> 1234 +decd055 apply 123 -> #22380000000000a3 +decd056 apply #22380000000000a3 -> 123 +decd057 apply 12 -> #2238000000000012 +decd058 apply #2238000000000012 -> 12 +decd059 apply 1 -> #2238000000000001 +decd060 apply #2238000000000001 -> 1 +decd061 apply 1.23 -> #22300000000000a3 +decd062 apply #22300000000000a3 -> 1.23 +decd063 apply 123.45 -> #22300000000049c5 +decd064 apply #22300000000049c5 -> 123.45 + +-- Nmin and below +decd071 apply 1E-383 -> #003c000000000001 +decd072 apply #003c000000000001 -> 1E-383 +decd073 apply 1.000000000000000E-383 -> #0400000000000000 +decd074 apply #0400000000000000 -> 1.000000000000000E-383 +decd075 apply 1.000000000000001E-383 -> #0400000000000001 +decd076 apply #0400000000000001 -> 1.000000000000001E-383 + +decd077 apply 0.100000000000000E-383 -> #0000800000000000 Subnormal +decd078 apply #0000800000000000 -> 1.00000000000000E-384 Subnormal +decd079 apply 0.000000000000010E-383 -> #0000000000000010 Subnormal +decd080 apply #0000000000000010 -> 1.0E-397 Subnormal +decd081 apply 0.00000000000001E-383 -> #0004000000000001 Subnormal +decd082 apply #0004000000000001 -> 1E-397 Subnormal +decd083 apply 0.000000000000001E-383 -> #0000000000000001 Subnormal +decd084 apply #0000000000000001 -> 1E-398 Subnormal +-- next is smallest all-nines +decd085 apply 9999999999999999E-398 -> #6400ff3fcff3fcff +decd086 apply #6400ff3fcff3fcff -> 9.999999999999999E-383 +-- and a problematic divide result +decd088 apply 1.111111111111111E-383 -> #0400912449124491 +decd089 apply #0400912449124491 -> 1.111111111111111E-383 + +-- forties +decd090 apply 40 -> #2238000000000040 +decd091 apply 39.99 -> #2230000000000cff + +-- underflows cannot be tested as all LHS exact + +-- Same again, negatives +-- Nmax and similar +decd122 apply -9.999999999999999E+384 -> #f7fcff3fcff3fcff +decd123 apply #f7fcff3fcff3fcff -> -9.999999999999999E+384 +decd124 apply -1.234567890123456E+384 -> #c7fd34b9c1e28e56 +decd125 apply #c7fd34b9c1e28e56 -> -1.234567890123456E+384 +-- fold-downs (more below) +decd130 apply -1.23E+384 -> #c7fd300000000000 Clamped +decd131 apply #c7fd300000000000 -> -1.230000000000000E+384 +decd132 apply -1E+384 -> #c7fc000000000000 Clamped +decd133 apply #c7fc000000000000 -> -1.000000000000000E+384 + +-- overflows +decd151 apply -12345 -> #a2380000000049c5 +decd152 apply #a2380000000049c5 -> -12345 +decd153 apply -1234 -> #a238000000000534 +decd154 apply #a238000000000534 -> -1234 +decd155 apply -123 -> #a2380000000000a3 +decd156 apply #a2380000000000a3 -> -123 +decd157 apply -12 -> #a238000000000012 +decd158 apply #a238000000000012 -> -12 +decd159 apply -1 -> #a238000000000001 +decd160 apply #a238000000000001 -> -1 +decd161 apply -1.23 -> #a2300000000000a3 +decd162 apply #a2300000000000a3 -> -1.23 +decd163 apply -123.45 -> #a2300000000049c5 +decd164 apply #a2300000000049c5 -> -123.45 + +-- Nmin and below +decd171 apply -1E-383 -> #803c000000000001 +decd172 apply #803c000000000001 -> -1E-383 +decd173 apply -1.000000000000000E-383 -> #8400000000000000 +decd174 apply #8400000000000000 -> -1.000000000000000E-383 +decd175 apply -1.000000000000001E-383 -> #8400000000000001 +decd176 apply #8400000000000001 -> -1.000000000000001E-383 + +decd177 apply -0.100000000000000E-383 -> #8000800000000000 Subnormal +decd178 apply #8000800000000000 -> -1.00000000000000E-384 Subnormal +decd179 apply -0.000000000000010E-383 -> #8000000000000010 Subnormal +decd180 apply #8000000000000010 -> -1.0E-397 Subnormal +decd181 apply -0.00000000000001E-383 -> #8004000000000001 Subnormal +decd182 apply #8004000000000001 -> -1E-397 Subnormal +decd183 apply -0.000000000000001E-383 -> #8000000000000001 Subnormal +decd184 apply #8000000000000001 -> -1E-398 Subnormal +-- next is smallest all-nines +decd185 apply -9999999999999999E-398 -> #e400ff3fcff3fcff +decd186 apply #e400ff3fcff3fcff -> -9.999999999999999E-383 +-- and a tricky subnormal +decd187 apply 1.11111111111524E-384 -> #00009124491246a4 Subnormal +decd188 apply #00009124491246a4 -> 1.11111111111524E-384 Subnormal + +-- near-underflows +decd189 apply -1e-398 -> #8000000000000001 Subnormal +decd190 apply -1.0e-398 -> #8000000000000001 Subnormal Rounded + +-- zeros +decd401 apply 0E-500 -> #0000000000000000 Clamped +decd402 apply 0E-400 -> #0000000000000000 Clamped +decd403 apply 0E-398 -> #0000000000000000 +decd404 apply #0000000000000000 -> 0E-398 +decd405 apply 0.000000000000000E-383 -> #0000000000000000 +decd406 apply #0000000000000000 -> 0E-398 +decd407 apply 0E-2 -> #2230000000000000 +decd408 apply #2230000000000000 -> 0.00 +decd409 apply 0 -> #2238000000000000 +decd410 apply #2238000000000000 -> 0 +decd411 apply 0E+3 -> #2244000000000000 +decd412 apply #2244000000000000 -> 0E+3 +decd413 apply 0E+369 -> #43fc000000000000 +decd414 apply #43fc000000000000 -> 0E+369 +-- clamped zeros... +decd415 apply 0E+370 -> #43fc000000000000 Clamped +decd416 apply #43fc000000000000 -> 0E+369 +decd417 apply 0E+384 -> #43fc000000000000 Clamped +decd418 apply #43fc000000000000 -> 0E+369 +decd419 apply 0E+400 -> #43fc000000000000 Clamped +decd420 apply #43fc000000000000 -> 0E+369 +decd421 apply 0E+500 -> #43fc000000000000 Clamped +decd422 apply #43fc000000000000 -> 0E+369 + +-- negative zeros +decd431 apply -0E-400 -> #8000000000000000 Clamped +decd432 apply -0E-400 -> #8000000000000000 Clamped +decd433 apply -0E-398 -> #8000000000000000 +decd434 apply #8000000000000000 -> -0E-398 +decd435 apply -0.000000000000000E-383 -> #8000000000000000 +decd436 apply #8000000000000000 -> -0E-398 +decd437 apply -0E-2 -> #a230000000000000 +decd438 apply #a230000000000000 -> -0.00 +decd439 apply -0 -> #a238000000000000 +decd440 apply #a238000000000000 -> -0 +decd441 apply -0E+3 -> #a244000000000000 +decd442 apply #a244000000000000 -> -0E+3 +decd443 apply -0E+369 -> #c3fc000000000000 +decd444 apply #c3fc000000000000 -> -0E+369 +-- clamped zeros... +decd445 apply -0E+370 -> #c3fc000000000000 Clamped +decd446 apply #c3fc000000000000 -> -0E+369 +decd447 apply -0E+384 -> #c3fc000000000000 Clamped +decd448 apply #c3fc000000000000 -> -0E+369 +decd449 apply -0E+400 -> #c3fc000000000000 Clamped +decd450 apply #c3fc000000000000 -> -0E+369 +decd451 apply -0E+500 -> #c3fc000000000000 Clamped +decd452 apply #c3fc000000000000 -> -0E+369 + +-- exponents +decd460 apply #225c000000000007 -> 7E+9 +decd461 apply 7E+9 -> #225c000000000007 +decd462 apply #23c4000000000007 -> 7E+99 +decd463 apply 7E+99 -> #23c4000000000007 + +-- Specials +decd500 apply Infinity -> #7800000000000000 +decd501 apply #7878787878787878 -> #7800000000000000 +decd502 apply #7800000000000000 -> Infinity +decd503 apply #7979797979797979 -> #7800000000000000 +decd504 apply #7900000000000000 -> Infinity +decd505 apply #7a7a7a7a7a7a7a7a -> #7800000000000000 +decd506 apply #7a00000000000000 -> Infinity +decd507 apply #7b7b7b7b7b7b7b7b -> #7800000000000000 +decd508 apply #7b00000000000000 -> Infinity + +decd509 apply NaN -> #7c00000000000000 +decd510 apply #7c7c7c7c7c7c7c7c -> #7c007c7c7c7c7c7c +decd511 apply #7c00000000000000 -> NaN +decd512 apply #7d7d7d7d7d7d7d7d -> #7c017d7d7d7d7d7d +decd513 apply #7d00000000000000 -> NaN +decd514 apply #7e7e7e7e7e7e7e7e -> #7e007e7e7e7e7c7e +decd515 apply #7e00000000000000 -> sNaN +decd516 apply #7f7f7f7f7f7f7f7f -> #7e007f7f7f7f7c7f +decd517 apply #7f00000000000000 -> sNaN +decd518 apply #7fffffffffffffff -> sNaN999999999999999 +decd519 apply #7fffffffffffffff -> #7e00ff3fcff3fcff + +decd520 apply -Infinity -> #f800000000000000 +decd521 apply #f878787878787878 -> #f800000000000000 +decd522 apply #f800000000000000 -> -Infinity +decd523 apply #f979797979797979 -> #f800000000000000 +decd524 apply #f900000000000000 -> -Infinity +decd525 apply #fa7a7a7a7a7a7a7a -> #f800000000000000 +decd526 apply #fa00000000000000 -> -Infinity +decd527 apply #fb7b7b7b7b7b7b7b -> #f800000000000000 +decd528 apply #fb00000000000000 -> -Infinity + +decd529 apply -NaN -> #fc00000000000000 +decd530 apply #fc7c7c7c7c7c7c7c -> #fc007c7c7c7c7c7c +decd531 apply #fc00000000000000 -> -NaN +decd532 apply #fd7d7d7d7d7d7d7d -> #fc017d7d7d7d7d7d +decd533 apply #fd00000000000000 -> -NaN +decd534 apply #fe7e7e7e7e7e7e7e -> #fe007e7e7e7e7c7e +decd535 apply #fe00000000000000 -> -sNaN +decd536 apply #ff7f7f7f7f7f7f7f -> #fe007f7f7f7f7c7f +decd537 apply #ff00000000000000 -> -sNaN +decd538 apply #ffffffffffffffff -> -sNaN999999999999999 +decd539 apply #ffffffffffffffff -> #fe00ff3fcff3fcff + +-- diagnostic NaNs +decd540 apply NaN -> #7c00000000000000 +decd541 apply NaN0 -> #7c00000000000000 +decd542 apply NaN1 -> #7c00000000000001 +decd543 apply NaN12 -> #7c00000000000012 +decd544 apply NaN79 -> #7c00000000000079 +decd545 apply NaN12345 -> #7c000000000049c5 +decd546 apply NaN123456 -> #7c00000000028e56 +decd547 apply NaN799799 -> #7c000000000f7fdf +decd548 apply NaN799799799799799 -> #7c03dff7fdff7fdf +decd549 apply NaN999999999999999 -> #7c00ff3fcff3fcff +-- too many digits + +-- fold-down full sequence +decd601 apply 1E+384 -> #47fc000000000000 Clamped +decd602 apply #47fc000000000000 -> 1.000000000000000E+384 +decd603 apply 1E+383 -> #43fc800000000000 Clamped +decd604 apply #43fc800000000000 -> 1.00000000000000E+383 +decd605 apply 1E+382 -> #43fc100000000000 Clamped +decd606 apply #43fc100000000000 -> 1.0000000000000E+382 +decd607 apply 1E+381 -> #43fc010000000000 Clamped +decd608 apply #43fc010000000000 -> 1.000000000000E+381 +decd609 apply 1E+380 -> #43fc002000000000 Clamped +decd610 apply #43fc002000000000 -> 1.00000000000E+380 +decd611 apply 1E+379 -> #43fc000400000000 Clamped +decd612 apply #43fc000400000000 -> 1.0000000000E+379 +decd613 apply 1E+378 -> #43fc000040000000 Clamped +decd614 apply #43fc000040000000 -> 1.000000000E+378 +decd615 apply 1E+377 -> #43fc000008000000 Clamped +decd616 apply #43fc000008000000 -> 1.00000000E+377 +decd617 apply 1E+376 -> #43fc000001000000 Clamped +decd618 apply #43fc000001000000 -> 1.0000000E+376 +decd619 apply 1E+375 -> #43fc000000100000 Clamped +decd620 apply #43fc000000100000 -> 1.000000E+375 +decd621 apply 1E+374 -> #43fc000000020000 Clamped +decd622 apply #43fc000000020000 -> 1.00000E+374 +decd623 apply 1E+373 -> #43fc000000004000 Clamped +decd624 apply #43fc000000004000 -> 1.0000E+373 +decd625 apply 1E+372 -> #43fc000000000400 Clamped +decd626 apply #43fc000000000400 -> 1.000E+372 +decd627 apply 1E+371 -> #43fc000000000080 Clamped +decd628 apply #43fc000000000080 -> 1.00E+371 +decd629 apply 1E+370 -> #43fc000000000010 Clamped +decd630 apply #43fc000000000010 -> 1.0E+370 +decd631 apply 1E+369 -> #43fc000000000001 +decd632 apply #43fc000000000001 -> 1E+369 +decd633 apply 1E+368 -> #43f8000000000001 +decd634 apply #43f8000000000001 -> 1E+368 +-- same with 9s +decd641 apply 9E+384 -> #77fc000000000000 Clamped +decd642 apply #77fc000000000000 -> 9.000000000000000E+384 +decd643 apply 9E+383 -> #43fc8c0000000000 Clamped +decd644 apply #43fc8c0000000000 -> 9.00000000000000E+383 +decd645 apply 9E+382 -> #43fc1a0000000000 Clamped +decd646 apply #43fc1a0000000000 -> 9.0000000000000E+382 +decd647 apply 9E+381 -> #43fc090000000000 Clamped +decd648 apply #43fc090000000000 -> 9.000000000000E+381 +decd649 apply 9E+380 -> #43fc002300000000 Clamped +decd650 apply #43fc002300000000 -> 9.00000000000E+380 +decd651 apply 9E+379 -> #43fc000680000000 Clamped +decd652 apply #43fc000680000000 -> 9.0000000000E+379 +decd653 apply 9E+378 -> #43fc000240000000 Clamped +decd654 apply #43fc000240000000 -> 9.000000000E+378 +decd655 apply 9E+377 -> #43fc000008c00000 Clamped +decd656 apply #43fc000008c00000 -> 9.00000000E+377 +decd657 apply 9E+376 -> #43fc000001a00000 Clamped +decd658 apply #43fc000001a00000 -> 9.0000000E+376 +decd659 apply 9E+375 -> #43fc000000900000 Clamped +decd660 apply #43fc000000900000 -> 9.000000E+375 +decd661 apply 9E+374 -> #43fc000000023000 Clamped +decd662 apply #43fc000000023000 -> 9.00000E+374 +decd663 apply 9E+373 -> #43fc000000006800 Clamped +decd664 apply #43fc000000006800 -> 9.0000E+373 +decd665 apply 9E+372 -> #43fc000000002400 Clamped +decd666 apply #43fc000000002400 -> 9.000E+372 +decd667 apply 9E+371 -> #43fc00000000008c Clamped +decd668 apply #43fc00000000008c -> 9.00E+371 +decd669 apply 9E+370 -> #43fc00000000001a Clamped +decd670 apply #43fc00000000001a -> 9.0E+370 +decd671 apply 9E+369 -> #43fc000000000009 +decd672 apply #43fc000000000009 -> 9E+369 +decd673 apply 9E+368 -> #43f8000000000009 +decd674 apply #43f8000000000009 -> 9E+368 + + +-- Selected DPD codes +decd700 apply #2238000000000000 -> 0 +decd701 apply #2238000000000009 -> 9 +decd702 apply #2238000000000010 -> 10 +decd703 apply #2238000000000019 -> 19 +decd704 apply #2238000000000020 -> 20 +decd705 apply #2238000000000029 -> 29 +decd706 apply #2238000000000030 -> 30 +decd707 apply #2238000000000039 -> 39 +decd708 apply #2238000000000040 -> 40 +decd709 apply #2238000000000049 -> 49 +decd710 apply #2238000000000050 -> 50 +decd711 apply #2238000000000059 -> 59 +decd712 apply #2238000000000060 -> 60 +decd713 apply #2238000000000069 -> 69 +decd714 apply #2238000000000070 -> 70 +decd715 apply #2238000000000071 -> 71 +decd716 apply #2238000000000072 -> 72 +decd717 apply #2238000000000073 -> 73 +decd718 apply #2238000000000074 -> 74 +decd719 apply #2238000000000075 -> 75 +decd720 apply #2238000000000076 -> 76 +decd721 apply #2238000000000077 -> 77 +decd722 apply #2238000000000078 -> 78 +decd723 apply #2238000000000079 -> 79 + +decd725 apply #223800000000029e -> 994 +decd726 apply #223800000000029f -> 995 +decd727 apply #22380000000002a0 -> 520 +decd728 apply #22380000000002a1 -> 521 +-- from telco test data +decd730 apply #2238000000000188 -> 308 +decd731 apply #22380000000001a3 -> 323 +decd732 apply #223800000000002a -> 82 +decd733 apply #22380000000001a9 -> 329 +decd734 apply #2238000000000081 -> 101 +decd735 apply #22380000000002a2 -> 522 + +-- DPD: one of each of the huffman groups +decd740 apply #22380000000003f7 -> 777 +decd741 apply #22380000000003f8 -> 778 +decd742 apply #22380000000003eb -> 787 +decd743 apply #223800000000037d -> 877 +decd744 apply #223800000000039f -> 997 +decd745 apply #22380000000003bf -> 979 +decd746 apply #22380000000003df -> 799 +decd747 apply #223800000000006e -> 888 + +-- DPD all-highs cases (includes the 24 redundant codes) +decd750 apply #223800000000006e -> 888 +decd751 apply #223800000000016e -> 888 +decd752 apply #223800000000026e -> 888 +decd753 apply #223800000000036e -> 888 +decd754 apply #223800000000006f -> 889 +decd755 apply #223800000000016f -> 889 +decd756 apply #223800000000026f -> 889 +decd757 apply #223800000000036f -> 889 + +decd760 apply #223800000000007e -> 898 +decd761 apply #223800000000017e -> 898 +decd762 apply #223800000000027e -> 898 +decd763 apply #223800000000037e -> 898 +decd764 apply #223800000000007f -> 899 +decd765 apply #223800000000017f -> 899 +decd766 apply #223800000000027f -> 899 +decd767 apply #223800000000037f -> 899 + +decd770 apply #22380000000000ee -> 988 +decd771 apply #22380000000001ee -> 988 +decd772 apply #22380000000002ee -> 988 +decd773 apply #22380000000003ee -> 988 +decd774 apply #22380000000000ef -> 989 +decd775 apply #22380000000001ef -> 989 +decd776 apply #22380000000002ef -> 989 +decd777 apply #22380000000003ef -> 989 + +decd780 apply #22380000000000fe -> 998 +decd781 apply #22380000000001fe -> 998 +decd782 apply #22380000000002fe -> 998 +decd783 apply #22380000000003fe -> 998 +decd784 apply #22380000000000ff -> 999 +decd785 apply #22380000000001ff -> 999 +decd786 apply #22380000000002ff -> 999 +decd787 apply #22380000000003ff -> 999 + +-- values around [u]int32 edges (zeros done earlier) +decd800 apply -2147483646 -> #a23800008c78af46 +decd801 apply -2147483647 -> #a23800008c78af47 +decd802 apply -2147483648 -> #a23800008c78af48 +decd803 apply -2147483649 -> #a23800008c78af49 +decd804 apply 2147483646 -> #223800008c78af46 +decd805 apply 2147483647 -> #223800008c78af47 +decd806 apply 2147483648 -> #223800008c78af48 +decd807 apply 2147483649 -> #223800008c78af49 +decd808 apply 4294967294 -> #2238000115afb55a +decd809 apply 4294967295 -> #2238000115afb55b +decd810 apply 4294967296 -> #2238000115afb57a +decd811 apply 4294967297 -> #2238000115afb57b + +decd820 apply #a23800008c78af46 -> -2147483646 +decd821 apply #a23800008c78af47 -> -2147483647 +decd822 apply #a23800008c78af48 -> -2147483648 +decd823 apply #a23800008c78af49 -> -2147483649 +decd824 apply #223800008c78af46 -> 2147483646 +decd825 apply #223800008c78af47 -> 2147483647 +decd826 apply #223800008c78af48 -> 2147483648 +decd827 apply #223800008c78af49 -> 2147483649 +decd828 apply #2238000115afb55a -> 4294967294 +decd829 apply #2238000115afb55b -> 4294967295 +decd830 apply #2238000115afb57a -> 4294967296 +decd831 apply #2238000115afb57b -> 4294967297 + +-- for narrowing +decd840 apply #2870000000000000 -> 2.000000000000000E-99 + +-- some miscellaneous +decd850 apply #0004070000000000 -> 7.000000000000E-385 Subnormal +decd851 apply #0008000000020000 -> 1.00000E-391 Subnormal + diff --git a/Lib/test/decimaltestdata/ddFMA.decTest b/Lib/test/decimaltestdata/ddFMA.decTest index f0acfc74d5..8ae92a7f9a 100644 --- a/Lib/test/decimaltestdata/ddFMA.decTest +++ b/Lib/test/decimaltestdata/ddFMA.decTest @@ -1,1698 +1,1698 @@ -------------------------------------------------------------------------
--- ddFMA.decTest -- decDouble Fused Multiply Add --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
--- 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
-ddfma0001 fma 1 1 1 -> 2
-ddfma0002 fma 1 1 2 -> 3
-ddfma0003 fma 2 2 3 -> 7
-ddfma0004 fma 9 9 9 -> 90
-ddfma0005 fma -1 1 1 -> 0
-ddfma0006 fma -1 1 2 -> 1
-ddfma0007 fma -2 2 3 -> -1
-ddfma0008 fma -9 9 9 -> -72
-ddfma0011 fma 1 -1 1 -> 0
-ddfma0012 fma 1 -1 2 -> 1
-ddfma0013 fma 2 -2 3 -> -1
-ddfma0014 fma 9 -9 9 -> -72
-ddfma0015 fma 1 1 -1 -> 0
-ddfma0016 fma 1 1 -2 -> -1
-ddfma0017 fma 2 2 -3 -> 1
-ddfma0018 fma 9 9 -9 -> 72
-
--- non-integer exacts
-ddfma0100 fma 25.2 63.6 -438 -> 1164.72
-ddfma0101 fma 0.301 0.380 334 -> 334.114380
-ddfma0102 fma 49.2 -4.8 23.3 -> -212.86
-ddfma0103 fma 4.22 0.079 -94.6 -> -94.26662
-ddfma0104 fma 903 0.797 0.887 -> 720.578
-ddfma0105 fma 6.13 -161 65.9 -> -921.03
-ddfma0106 fma 28.2 727 5.45 -> 20506.85
-ddfma0107 fma 4 605 688 -> 3108
-ddfma0108 fma 93.3 0.19 0.226 -> 17.953
-ddfma0109 fma 0.169 -341 5.61 -> -52.019
-ddfma0110 fma -72.2 30 -51.2 -> -2217.2
-ddfma0111 fma -0.409 13 20.4 -> 15.083
-ddfma0112 fma 317 77.0 19.0 -> 24428.0
-ddfma0113 fma 47 6.58 1.62 -> 310.88
-ddfma0114 fma 1.36 0.984 0.493 -> 1.83124
-ddfma0115 fma 72.7 274 1.56 -> 19921.36
-ddfma0116 fma 335 847 83 -> 283828
-ddfma0117 fma 666 0.247 25.4 -> 189.902
-ddfma0118 fma -3.87 3.06 78.0 -> 66.1578
-ddfma0119 fma 0.742 192 35.6 -> 178.064
-ddfma0120 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]
--- -> 7.123356429257969E+16
-ddfma0201 fma 27583489.6645 2582471078.04 2593183.42371 -> 7.123356429257970E+16 Inexact Rounded
--- -> 22813275328.80506
-ddfma0208 fma 24280.355566 939577.397653 2032.013252 -> 22813275328.80507 Inexact Rounded
--- -> -2.030397734278062E+16
-ddfma0209 fma 7848976432 -2586831.2281 137903.517909 -> -2.030397734278061E+16 Inexact Rounded
--- -> 2040774094814.077
-ddfma0217 fma 56890.388731 35872030.4255 339337.123410 -> 2040774094814.078 Inexact Rounded
--- -> 2.714469575205049E+18
-ddfma0220 fma 7533543.57445 360317763928 5073392.31638 -> 2.714469575205050E+18 Inexact Rounded
--- -> 1.011676297716716E+19
-ddfma0223 fma 739945255.563 13672312784.1 -994381.53572 -> 1.011676297716715E+19 Inexact Rounded
--- -> -2.914135721455315E+23
-ddfma0224 fma -413510957218 704729988550 9234162614.0 -> -2.914135721455314E+23 Inexact Rounded
--- -> 2.620119863365786E+17
-ddfma0226 fma 437484.00601 598906432790 894450638.442 -> 2.620119863365787E+17 Inexact Rounded
--- -> 1.272647995808178E+19
-ddfma0253 fma 73287556929 173651305.784 -358312568.389 -> 1.272647995808177E+19 Inexact Rounded
--- -> -1.753769320861851E+18
-ddfma0257 fma 203258304486 -8628278.8066 153127.446727 -> -1.753769320861850E+18 Inexact Rounded
--- -> -1.550737835263346E+17
-ddfma0260 fma 42560533.1774 -3643605282.86 178277.96377 -> -1.550737835263347E+17 Inexact Rounded
--- -> 2.897624620576005E+22
-ddfma0269 fma 142656587375 203118879670 604576103991 -> 2.897624620576004E+22 Inexact Rounded
-
--- Cases where multiply would overflow or underflow if separate
-fma0300 fma 9e+384 10 0 -> Infinity Overflow Inexact Rounded
-fma0301 fma 1e+384 10 0 -> Infinity Overflow Inexact Rounded
-fma0302 fma 1e+384 10 -1e+384 -> 9.000000000000000E+384 Clamped
-fma0303 fma 1e+384 10 -9e+384 -> 1.000000000000000E+384 Clamped
--- subnormal etc.
-fma0305 fma 1e-398 0.1 0 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-fma0306 fma 1e-398 0.1 1 -> 1.000000000000000 Inexact Rounded
-fma0307 fma 1e-398 0.1 1e-398 -> 1E-398 Underflow Subnormal Inexact Rounded
-
--- Infinite combinations
-ddfma0800 fma Inf Inf Inf -> Infinity
-ddfma0801 fma Inf Inf -Inf -> NaN Invalid_operation
-ddfma0802 fma Inf -Inf Inf -> NaN Invalid_operation
-ddfma0803 fma Inf -Inf -Inf -> -Infinity
-ddfma0804 fma -Inf Inf Inf -> NaN Invalid_operation
-ddfma0805 fma -Inf Inf -Inf -> -Infinity
-ddfma0806 fma -Inf -Inf Inf -> Infinity
-ddfma0807 fma -Inf -Inf -Inf -> NaN Invalid_operation
-
--- Triple NaN propagation
-ddfma0900 fma NaN2 NaN3 NaN5 -> NaN2
-ddfma0901 fma 0 NaN3 NaN5 -> NaN3
-ddfma0902 fma 0 0 NaN5 -> NaN5
--- first sNaN wins (consider qNaN from earlier sNaN being
--- overridden by an sNaN in third operand)
-ddfma0903 fma sNaN1 sNaN2 sNaN3 -> NaN1 Invalid_operation
-ddfma0904 fma 0 sNaN2 sNaN3 -> NaN2 Invalid_operation
-ddfma0905 fma 0 0 sNaN3 -> NaN3 Invalid_operation
-ddfma0906 fma sNaN1 sNaN2 sNaN3 -> NaN1 Invalid_operation
-ddfma0907 fma NaN7 sNaN2 sNaN3 -> NaN2 Invalid_operation
-ddfma0908 fma NaN7 NaN5 sNaN3 -> NaN3 Invalid_operation
-
--- MULTIPLICATION TESTS ------------------------------------------------
-
--- sanity checks
-ddfma2000 fma 2 2 0e+384 -> 4
-ddfma2001 fma 2 3 0e+384 -> 6
-ddfma2002 fma 5 1 0e+384 -> 5
-ddfma2003 fma 5 2 0e+384 -> 10
-ddfma2004 fma 1.20 2 0e+384 -> 2.40
-ddfma2005 fma 1.20 0 0e+384 -> 0.00
-ddfma2006 fma 1.20 -2 0e+384 -> -2.40
-ddfma2007 fma -1.20 2 0e+384 -> -2.40
-ddfma2008 fma -1.20 0 0e+384 -> 0.00
-ddfma2009 fma -1.20 -2 0e+384 -> 2.40
-ddfma2010 fma 5.09 7.1 0e+384 -> 36.139
-ddfma2011 fma 2.5 4 0e+384 -> 10.0
-ddfma2012 fma 2.50 4 0e+384 -> 10.00
-ddfma2013 fma 1.23456789 1.00000000 0e+384 -> 1.234567890000000 Rounded
-ddfma2015 fma 2.50 4 0e+384 -> 10.00
-ddfma2016 fma 9.999999999 9.999999999 0e+384 -> 99.99999998000000 Inexact Rounded
-ddfma2017 fma 9.999999999 -9.999999999 0e+384 -> -99.99999998000000 Inexact Rounded
-ddfma2018 fma -9.999999999 9.999999999 0e+384 -> -99.99999998000000 Inexact Rounded
-ddfma2019 fma -9.999999999 -9.999999999 0e+384 -> 99.99999998000000 Inexact Rounded
-
--- zeros, etc.
-ddfma2021 fma 0 0 0e+384 -> 0
-ddfma2022 fma 0 -0 0e+384 -> 0
-ddfma2023 fma -0 0 0e+384 -> 0
-ddfma2024 fma -0 -0 0e+384 -> 0
-ddfma2025 fma -0.0 -0.0 0e+384 -> 0.00
-ddfma2026 fma -0.0 -0.0 0e+384 -> 0.00
-ddfma2027 fma -0.0 -0.0 0e+384 -> 0.00
-ddfma2028 fma -0.0 -0.0 0e+384 -> 0.00
-ddfma2030 fma 5.00 1E-3 0e+384 -> 0.00500
-ddfma2031 fma 00.00 0.000 0e+384 -> 0.00000
-ddfma2032 fma 00.00 0E-3 0e+384 -> 0.00000 -- rhs is 0
-ddfma2033 fma 0E-3 00.00 0e+384 -> 0.00000 -- lhs is 0
-ddfma2034 fma -5.00 1E-3 0e+384 -> -0.00500
-ddfma2035 fma -00.00 0.000 0e+384 -> 0.00000
-ddfma2036 fma -00.00 0E-3 0e+384 -> 0.00000 -- rhs is 0
-ddfma2037 fma -0E-3 00.00 0e+384 -> 0.00000 -- lhs is 0
-ddfma2038 fma 5.00 -1E-3 0e+384 -> -0.00500
-ddfma2039 fma 00.00 -0.000 0e+384 -> 0.00000
-ddfma2040 fma 00.00 -0E-3 0e+384 -> 0.00000 -- rhs is 0
-ddfma2041 fma 0E-3 -00.00 0e+384 -> 0.00000 -- lhs is 0
-ddfma2042 fma -5.00 -1E-3 0e+384 -> 0.00500
-ddfma2043 fma -00.00 -0.000 0e+384 -> 0.00000
-ddfma2044 fma -00.00 -0E-3 0e+384 -> 0.00000 -- rhs is 0
-ddfma2045 fma -0E-3 -00.00 -0e+384 -> 0.00000 -- lhs is 0
-ddfma2046 fma -0E-3 00.00 -0e+384 -> -0.00000
-ddfma2047 fma 0E-3 -00.00 -0e+384 -> -0.00000
-ddfma2048 fma 0E-3 00.00 -0e+384 -> 0.00000
-
--- examples from decarith
-ddfma2050 fma 1.20 3 0e+384 -> 3.60
-ddfma2051 fma 7 3 0e+384 -> 21
-ddfma2052 fma 0.9 0.8 0e+384 -> 0.72
-ddfma2053 fma 0.9 -0 0e+384 -> 0.0
-ddfma2054 fma 654321 654321 0e+384 -> 428135971041
-
-ddfma2060 fma 123.45 1e7 0e+384 -> 1.2345E+9
-ddfma2061 fma 123.45 1e8 0e+384 -> 1.2345E+10
-ddfma2062 fma 123.45 1e+9 0e+384 -> 1.2345E+11
-ddfma2063 fma 123.45 1e10 0e+384 -> 1.2345E+12
-ddfma2064 fma 123.45 1e11 0e+384 -> 1.2345E+13
-ddfma2065 fma 123.45 1e12 0e+384 -> 1.2345E+14
-ddfma2066 fma 123.45 1e13 0e+384 -> 1.2345E+15
-
-
--- test some intermediate lengths
--- 1234567890123456
-ddfma2080 fma 0.1 1230123456456789 0e+384 -> 123012345645678.9
-ddfma2084 fma 0.1 1230123456456789 0e+384 -> 123012345645678.9
-ddfma2090 fma 1230123456456789 0.1 0e+384 -> 123012345645678.9
-ddfma2094 fma 1230123456456789 0.1 0e+384 -> 123012345645678.9
-
--- test some more edge cases and carries
-ddfma2101 fma 9 9 0e+384 -> 81
-ddfma2102 fma 9 90 0e+384 -> 810
-ddfma2103 fma 9 900 0e+384 -> 8100
-ddfma2104 fma 9 9000 0e+384 -> 81000
-ddfma2105 fma 9 90000 0e+384 -> 810000
-ddfma2106 fma 9 900000 0e+384 -> 8100000
-ddfma2107 fma 9 9000000 0e+384 -> 81000000
-ddfma2108 fma 9 90000000 0e+384 -> 810000000
-ddfma2109 fma 9 900000000 0e+384 -> 8100000000
-ddfma2110 fma 9 9000000000 0e+384 -> 81000000000
-ddfma2111 fma 9 90000000000 0e+384 -> 810000000000
-ddfma2112 fma 9 900000000000 0e+384 -> 8100000000000
-ddfma2113 fma 9 9000000000000 0e+384 -> 81000000000000
-ddfma2114 fma 9 90000000000000 0e+384 -> 810000000000000
-ddfma2115 fma 9 900000000000000 0e+384 -> 8100000000000000
---ddfma2116 fma 9 9000000000000000 0e+384 -> 81000000000000000
---ddfma2117 fma 9 90000000000000000 0e+384 -> 810000000000000000
---ddfma2118 fma 9 900000000000000000 0e+384 -> 8100000000000000000
---ddfma2119 fma 9 9000000000000000000 0e+384 -> 81000000000000000000
---ddfma2120 fma 9 90000000000000000000 0e+384 -> 810000000000000000000
---ddfma2121 fma 9 900000000000000000000 0e+384 -> 8100000000000000000000
---ddfma2122 fma 9 9000000000000000000000 0e+384 -> 81000000000000000000000
---ddfma2123 fma 9 90000000000000000000000 0e+384 -> 810000000000000000000000
--- test some more edge cases without carries
-ddfma2131 fma 3 3 0e+384 -> 9
-ddfma2132 fma 3 30 0e+384 -> 90
-ddfma2133 fma 3 300 0e+384 -> 900
-ddfma2134 fma 3 3000 0e+384 -> 9000
-ddfma2135 fma 3 30000 0e+384 -> 90000
-ddfma2136 fma 3 300000 0e+384 -> 900000
-ddfma2137 fma 3 3000000 0e+384 -> 9000000
-ddfma2138 fma 3 30000000 0e+384 -> 90000000
-ddfma2139 fma 3 300000000 0e+384 -> 900000000
-ddfma2140 fma 3 3000000000 0e+384 -> 9000000000
-ddfma2141 fma 3 30000000000 0e+384 -> 90000000000
-ddfma2142 fma 3 300000000000 0e+384 -> 900000000000
-ddfma2143 fma 3 3000000000000 0e+384 -> 9000000000000
-ddfma2144 fma 3 30000000000000 0e+384 -> 90000000000000
-ddfma2145 fma 3 300000000000000 0e+384 -> 900000000000000
-
--- test some edge cases with exact rounding
-ddfma2301 fma 9 9 0e+384 -> 81
-ddfma2302 fma 9 90 0e+384 -> 810
-ddfma2303 fma 9 900 0e+384 -> 8100
-ddfma2304 fma 9 9000 0e+384 -> 81000
-ddfma2305 fma 9 90000 0e+384 -> 810000
-ddfma2306 fma 9 900000 0e+384 -> 8100000
-ddfma2307 fma 9 9000000 0e+384 -> 81000000
-ddfma2308 fma 9 90000000 0e+384 -> 810000000
-ddfma2309 fma 9 900000000 0e+384 -> 8100000000
-ddfma2310 fma 9 9000000000 0e+384 -> 81000000000
-ddfma2311 fma 9 90000000000 0e+384 -> 810000000000
-ddfma2312 fma 9 900000000000 0e+384 -> 8100000000000
-ddfma2313 fma 9 9000000000000 0e+384 -> 81000000000000
-ddfma2314 fma 9 90000000000000 0e+384 -> 810000000000000
-ddfma2315 fma 9 900000000000000 0e+384 -> 8100000000000000
-ddfma2316 fma 9 9000000000000000 0e+384 -> 8.100000000000000E+16 Rounded
-ddfma2317 fma 90 9000000000000000 0e+384 -> 8.100000000000000E+17 Rounded
-ddfma2318 fma 900 9000000000000000 0e+384 -> 8.100000000000000E+18 Rounded
-ddfma2319 fma 9000 9000000000000000 0e+384 -> 8.100000000000000E+19 Rounded
-ddfma2320 fma 90000 9000000000000000 0e+384 -> 8.100000000000000E+20 Rounded
-ddfma2321 fma 900000 9000000000000000 0e+384 -> 8.100000000000000E+21 Rounded
-ddfma2322 fma 9000000 9000000000000000 0e+384 -> 8.100000000000000E+22 Rounded
-ddfma2323 fma 90000000 9000000000000000 0e+384 -> 8.100000000000000E+23 Rounded
-
--- tryzeros cases
-ddfma2504 fma 0E-260 1000E-260 0e+384 -> 0E-398 Clamped
-ddfma2505 fma 100E+260 0E+260 0e+384 -> 0E+369 Clamped
-
--- mixed with zeros
-ddfma2541 fma 0 -1 0e+384 -> 0
-ddfma2542 fma -0 -1 0e+384 -> 0
-ddfma2543 fma 0 1 0e+384 -> 0
-ddfma2544 fma -0 1 0e+384 -> 0
-ddfma2545 fma -1 0 0e+384 -> 0
-ddfma2546 fma -1 -0 0e+384 -> 0
-ddfma2547 fma 1 0 0e+384 -> 0
-ddfma2548 fma 1 -0 0e+384 -> 0
-
-ddfma2551 fma 0.0 -1 0e+384 -> 0.0
-ddfma2552 fma -0.0 -1 0e+384 -> 0.0
-ddfma2553 fma 0.0 1 0e+384 -> 0.0
-ddfma2554 fma -0.0 1 0e+384 -> 0.0
-ddfma2555 fma -1.0 0 0e+384 -> 0.0
-ddfma2556 fma -1.0 -0 0e+384 -> 0.0
-ddfma2557 fma 1.0 0 0e+384 -> 0.0
-ddfma2558 fma 1.0 -0 0e+384 -> 0.0
-
-ddfma2561 fma 0 -1.0 0e+384 -> 0.0
-ddfma2562 fma -0 -1.0 0e+384 -> 0.0
-ddfma2563 fma 0 1.0 0e+384 -> 0.0
-ddfma2564 fma -0 1.0 0e+384 -> 0.0
-ddfma2565 fma -1 0.0 0e+384 -> 0.0
-ddfma2566 fma -1 -0.0 0e+384 -> 0.0
-ddfma2567 fma 1 0.0 0e+384 -> 0.0
-ddfma2568 fma 1 -0.0 0e+384 -> 0.0
-
-ddfma2571 fma 0.0 -1.0 0e+384 -> 0.00
-ddfma2572 fma -0.0 -1.0 0e+384 -> 0.00
-ddfma2573 fma 0.0 1.0 0e+384 -> 0.00
-ddfma2574 fma -0.0 1.0 0e+384 -> 0.00
-ddfma2575 fma -1.0 0.0 0e+384 -> 0.00
-ddfma2576 fma -1.0 -0.0 0e+384 -> 0.00
-ddfma2577 fma 1.0 0.0 0e+384 -> 0.00
-ddfma2578 fma 1.0 -0.0 0e+384 -> 0.00
-
--- Specials
-ddfma2580 fma Inf -Inf 0e+384 -> -Infinity
-ddfma2581 fma Inf -1000 0e+384 -> -Infinity
-ddfma2582 fma Inf -1 0e+384 -> -Infinity
-ddfma2583 fma Inf -0 0e+384 -> NaN Invalid_operation
-ddfma2584 fma Inf 0 0e+384 -> NaN Invalid_operation
-ddfma2585 fma Inf 1 0e+384 -> Infinity
-ddfma2586 fma Inf 1000 0e+384 -> Infinity
-ddfma2587 fma Inf Inf 0e+384 -> Infinity
-ddfma2588 fma -1000 Inf 0e+384 -> -Infinity
-ddfma2589 fma -Inf Inf 0e+384 -> -Infinity
-ddfma2590 fma -1 Inf 0e+384 -> -Infinity
-ddfma2591 fma -0 Inf 0e+384 -> NaN Invalid_operation
-ddfma2592 fma 0 Inf 0e+384 -> NaN Invalid_operation
-ddfma2593 fma 1 Inf 0e+384 -> Infinity
-ddfma2594 fma 1000 Inf 0e+384 -> Infinity
-ddfma2595 fma Inf Inf 0e+384 -> Infinity
-
-ddfma2600 fma -Inf -Inf 0e+384 -> Infinity
-ddfma2601 fma -Inf -1000 0e+384 -> Infinity
-ddfma2602 fma -Inf -1 0e+384 -> Infinity
-ddfma2603 fma -Inf -0 0e+384 -> NaN Invalid_operation
-ddfma2604 fma -Inf 0 0e+384 -> NaN Invalid_operation
-ddfma2605 fma -Inf 1 0e+384 -> -Infinity
-ddfma2606 fma -Inf 1000 0e+384 -> -Infinity
-ddfma2607 fma -Inf Inf 0e+384 -> -Infinity
-ddfma2608 fma -1000 Inf 0e+384 -> -Infinity
-ddfma2609 fma -Inf -Inf 0e+384 -> Infinity
-ddfma2610 fma -1 -Inf 0e+384 -> Infinity
-ddfma2611 fma -0 -Inf 0e+384 -> NaN Invalid_operation
-ddfma2612 fma 0 -Inf 0e+384 -> NaN Invalid_operation
-ddfma2613 fma 1 -Inf 0e+384 -> -Infinity
-ddfma2614 fma 1000 -Inf 0e+384 -> -Infinity
-ddfma2615 fma Inf -Inf 0e+384 -> -Infinity
-
-ddfma2621 fma NaN -Inf 0e+384 -> NaN
-ddfma2622 fma NaN -1000 0e+384 -> NaN
-ddfma2623 fma NaN -1 0e+384 -> NaN
-ddfma2624 fma NaN -0 0e+384 -> NaN
-ddfma2625 fma NaN 0 0e+384 -> NaN
-ddfma2626 fma NaN 1 0e+384 -> NaN
-ddfma2627 fma NaN 1000 0e+384 -> NaN
-ddfma2628 fma NaN Inf 0e+384 -> NaN
-ddfma2629 fma NaN NaN 0e+384 -> NaN
-ddfma2630 fma -Inf NaN 0e+384 -> NaN
-ddfma2631 fma -1000 NaN 0e+384 -> NaN
-ddfma2632 fma -1 NaN 0e+384 -> NaN
-ddfma2633 fma -0 NaN 0e+384 -> NaN
-ddfma2634 fma 0 NaN 0e+384 -> NaN
-ddfma2635 fma 1 NaN 0e+384 -> NaN
-ddfma2636 fma 1000 NaN 0e+384 -> NaN
-ddfma2637 fma Inf NaN 0e+384 -> NaN
-
-ddfma2641 fma sNaN -Inf 0e+384 -> NaN Invalid_operation
-ddfma2642 fma sNaN -1000 0e+384 -> NaN Invalid_operation
-ddfma2643 fma sNaN -1 0e+384 -> NaN Invalid_operation
-ddfma2644 fma sNaN -0 0e+384 -> NaN Invalid_operation
-ddfma2645 fma sNaN 0 0e+384 -> NaN Invalid_operation
-ddfma2646 fma sNaN 1 0e+384 -> NaN Invalid_operation
-ddfma2647 fma sNaN 1000 0e+384 -> NaN Invalid_operation
-ddfma2648 fma sNaN NaN 0e+384 -> NaN Invalid_operation
-ddfma2649 fma sNaN sNaN 0e+384 -> NaN Invalid_operation
-ddfma2650 fma NaN sNaN 0e+384 -> NaN Invalid_operation
-ddfma2651 fma -Inf sNaN 0e+384 -> NaN Invalid_operation
-ddfma2652 fma -1000 sNaN 0e+384 -> NaN Invalid_operation
-ddfma2653 fma -1 sNaN 0e+384 -> NaN Invalid_operation
-ddfma2654 fma -0 sNaN 0e+384 -> NaN Invalid_operation
-ddfma2655 fma 0 sNaN 0e+384 -> NaN Invalid_operation
-ddfma2656 fma 1 sNaN 0e+384 -> NaN Invalid_operation
-ddfma2657 fma 1000 sNaN 0e+384 -> NaN Invalid_operation
-ddfma2658 fma Inf sNaN 0e+384 -> NaN Invalid_operation
-ddfma2659 fma NaN sNaN 0e+384 -> NaN Invalid_operation
-
--- propagating NaNs
-ddfma2661 fma NaN9 -Inf 0e+384 -> NaN9
-ddfma2662 fma NaN8 999 0e+384 -> NaN8
-ddfma2663 fma NaN71 Inf 0e+384 -> NaN71
-ddfma2664 fma NaN6 NaN5 0e+384 -> NaN6
-ddfma2665 fma -Inf NaN4 0e+384 -> NaN4
-ddfma2666 fma -999 NaN33 0e+384 -> NaN33
-ddfma2667 fma Inf NaN2 0e+384 -> NaN2
-
-ddfma2671 fma sNaN99 -Inf 0e+384 -> NaN99 Invalid_operation
-ddfma2672 fma sNaN98 -11 0e+384 -> NaN98 Invalid_operation
-ddfma2673 fma sNaN97 NaN 0e+384 -> NaN97 Invalid_operation
-ddfma2674 fma sNaN16 sNaN94 0e+384 -> NaN16 Invalid_operation
-ddfma2675 fma NaN95 sNaN93 0e+384 -> NaN93 Invalid_operation
-ddfma2676 fma -Inf sNaN92 0e+384 -> NaN92 Invalid_operation
-ddfma2677 fma 088 sNaN91 0e+384 -> NaN91 Invalid_operation
-ddfma2678 fma Inf sNaN90 0e+384 -> NaN90 Invalid_operation
-ddfma2679 fma NaN sNaN89 0e+384 -> NaN89 Invalid_operation
-
-ddfma2681 fma -NaN9 -Inf 0e+384 -> -NaN9
-ddfma2682 fma -NaN8 999 0e+384 -> -NaN8
-ddfma2683 fma -NaN71 Inf 0e+384 -> -NaN71
-ddfma2684 fma -NaN6 -NaN5 0e+384 -> -NaN6
-ddfma2685 fma -Inf -NaN4 0e+384 -> -NaN4
-ddfma2686 fma -999 -NaN33 0e+384 -> -NaN33
-ddfma2687 fma Inf -NaN2 0e+384 -> -NaN2
-
-ddfma2691 fma -sNaN99 -Inf 0e+384 -> -NaN99 Invalid_operation
-ddfma2692 fma -sNaN98 -11 0e+384 -> -NaN98 Invalid_operation
-ddfma2693 fma -sNaN97 NaN 0e+384 -> -NaN97 Invalid_operation
-ddfma2694 fma -sNaN16 -sNaN94 0e+384 -> -NaN16 Invalid_operation
-ddfma2695 fma -NaN95 -sNaN93 0e+384 -> -NaN93 Invalid_operation
-ddfma2696 fma -Inf -sNaN92 0e+384 -> -NaN92 Invalid_operation
-ddfma2697 fma 088 -sNaN91 0e+384 -> -NaN91 Invalid_operation
-ddfma2698 fma Inf -sNaN90 0e+384 -> -NaN90 Invalid_operation
-ddfma2699 fma -NaN -sNaN89 0e+384 -> -NaN89 Invalid_operation
-
-ddfma2701 fma -NaN -Inf 0e+384 -> -NaN
-ddfma2702 fma -NaN 999 0e+384 -> -NaN
-ddfma2703 fma -NaN Inf 0e+384 -> -NaN
-ddfma2704 fma -NaN -NaN 0e+384 -> -NaN
-ddfma2705 fma -Inf -NaN0 0e+384 -> -NaN
-ddfma2706 fma -999 -NaN 0e+384 -> -NaN
-ddfma2707 fma Inf -NaN 0e+384 -> -NaN
-
-ddfma2711 fma -sNaN -Inf 0e+384 -> -NaN Invalid_operation
-ddfma2712 fma -sNaN -11 0e+384 -> -NaN Invalid_operation
-ddfma2713 fma -sNaN00 NaN 0e+384 -> -NaN Invalid_operation
-ddfma2714 fma -sNaN -sNaN 0e+384 -> -NaN Invalid_operation
-ddfma2715 fma -NaN -sNaN 0e+384 -> -NaN Invalid_operation
-ddfma2716 fma -Inf -sNaN 0e+384 -> -NaN Invalid_operation
-ddfma2717 fma 088 -sNaN 0e+384 -> -NaN Invalid_operation
-ddfma2718 fma Inf -sNaN 0e+384 -> -NaN Invalid_operation
-ddfma2719 fma -NaN -sNaN 0e+384 -> -NaN Invalid_operation
-
--- overflow and underflow tests .. note subnormal results
--- signs
-ddfma2751 fma 1e+277 1e+311 0e+384 -> Infinity Overflow Inexact Rounded
-ddfma2752 fma 1e+277 -1e+311 0e+384 -> -Infinity Overflow Inexact Rounded
-ddfma2753 fma -1e+277 1e+311 0e+384 -> -Infinity Overflow Inexact Rounded
-ddfma2754 fma -1e+277 -1e+311 0e+384 -> Infinity Overflow Inexact Rounded
-ddfma2755 fma 1e-277 1e-311 0e+384 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddfma2756 fma 1e-277 -1e-311 0e+384 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddfma2757 fma -1e-277 1e-311 0e+384 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddfma2758 fma -1e-277 -1e-311 0e+384 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-
--- 'subnormal' boundary (all hard underflow or overflow in base arithemtic)
-ddfma2760 fma 1e-291 1e-101 0e+384 -> 1E-392 Subnormal
-ddfma2761 fma 1e-291 1e-102 0e+384 -> 1E-393 Subnormal
-ddfma2762 fma 1e-291 1e-103 0e+384 -> 1E-394 Subnormal
-ddfma2763 fma 1e-291 1e-104 0e+384 -> 1E-395 Subnormal
-ddfma2764 fma 1e-291 1e-105 0e+384 -> 1E-396 Subnormal
-ddfma2765 fma 1e-291 1e-106 0e+384 -> 1E-397 Subnormal
-ddfma2766 fma 1e-291 1e-107 0e+384 -> 1E-398 Subnormal
-ddfma2767 fma 1e-291 1e-108 0e+384 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddfma2768 fma 1e-291 1e-109 0e+384 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddfma2769 fma 1e-291 1e-110 0e+384 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
--- [no equivalent of 'subnormal' for overflow]
-ddfma2770 fma 1e+60 1e+321 0e+384 -> 1.000000000000E+381 Clamped
-ddfma2771 fma 1e+60 1e+322 0e+384 -> 1.0000000000000E+382 Clamped
-ddfma2772 fma 1e+60 1e+323 0e+384 -> 1.00000000000000E+383 Clamped
-ddfma2773 fma 1e+60 1e+324 0e+384 -> 1.000000000000000E+384 Clamped
-ddfma2774 fma 1e+60 1e+325 0e+384 -> Infinity Overflow Inexact Rounded
-ddfma2775 fma 1e+60 1e+326 0e+384 -> Infinity Overflow Inexact Rounded
-ddfma2776 fma 1e+60 1e+327 0e+384 -> Infinity Overflow Inexact Rounded
-ddfma2777 fma 1e+60 1e+328 0e+384 -> Infinity Overflow Inexact Rounded
-ddfma2778 fma 1e+60 1e+329 0e+384 -> Infinity Overflow Inexact Rounded
-ddfma2779 fma 1e+60 1e+330 0e+384 -> Infinity Overflow Inexact Rounded
-
-ddfma2801 fma 1.0000E-394 1 0e+384 -> 1.0000E-394 Subnormal
-ddfma2802 fma 1.000E-394 1e-1 0e+384 -> 1.000E-395 Subnormal
-ddfma2803 fma 1.00E-394 1e-2 0e+384 -> 1.00E-396 Subnormal
-ddfma2804 fma 1.0E-394 1e-3 0e+384 -> 1.0E-397 Subnormal
-ddfma2805 fma 1.0E-394 1e-4 0e+384 -> 1E-398 Subnormal Rounded
-ddfma2806 fma 1.3E-394 1e-4 0e+384 -> 1E-398 Underflow Subnormal Inexact Rounded
-ddfma2807 fma 1.5E-394 1e-4 0e+384 -> 2E-398 Underflow Subnormal Inexact Rounded
-ddfma2808 fma 1.7E-394 1e-4 0e+384 -> 2E-398 Underflow Subnormal Inexact Rounded
-ddfma2809 fma 2.3E-394 1e-4 0e+384 -> 2E-398 Underflow Subnormal Inexact Rounded
-ddfma2810 fma 2.5E-394 1e-4 0e+384 -> 2E-398 Underflow Subnormal Inexact Rounded
-ddfma2811 fma 2.7E-394 1e-4 0e+384 -> 3E-398 Underflow Subnormal Inexact Rounded
-ddfma2812 fma 1.49E-394 1e-4 0e+384 -> 1E-398 Underflow Subnormal Inexact Rounded
-ddfma2813 fma 1.50E-394 1e-4 0e+384 -> 2E-398 Underflow Subnormal Inexact Rounded
-ddfma2814 fma 1.51E-394 1e-4 0e+384 -> 2E-398 Underflow Subnormal Inexact Rounded
-ddfma2815 fma 2.49E-394 1e-4 0e+384 -> 2E-398 Underflow Subnormal Inexact Rounded
-ddfma2816 fma 2.50E-394 1e-4 0e+384 -> 2E-398 Underflow Subnormal Inexact Rounded
-ddfma2817 fma 2.51E-394 1e-4 0e+384 -> 3E-398 Underflow Subnormal Inexact Rounded
-
-ddfma2818 fma 1E-394 1e-4 0e+384 -> 1E-398 Subnormal
-ddfma2819 fma 3E-394 1e-5 0e+384 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddfma2820 fma 5E-394 1e-5 0e+384 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddfma2821 fma 7E-394 1e-5 0e+384 -> 1E-398 Underflow Subnormal Inexact Rounded
-ddfma2822 fma 9E-394 1e-5 0e+384 -> 1E-398 Underflow Subnormal Inexact Rounded
-ddfma2823 fma 9.9E-394 1e-5 0e+384 -> 1E-398 Underflow Subnormal Inexact Rounded
-
-ddfma2824 fma 1E-394 -1e-4 0e+384 -> -1E-398 Subnormal
-ddfma2825 fma 3E-394 -1e-5 0e+384 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddfma2826 fma -5E-394 1e-5 0e+384 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddfma2827 fma 7E-394 -1e-5 0e+384 -> -1E-398 Underflow Subnormal Inexact Rounded
-ddfma2828 fma -9E-394 1e-5 0e+384 -> -1E-398 Underflow Subnormal Inexact Rounded
-ddfma2829 fma 9.9E-394 -1e-5 0e+384 -> -1E-398 Underflow Subnormal Inexact Rounded
-ddfma2830 fma 3.0E-394 -1e-5 0e+384 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped
-
-ddfma2831 fma 1.0E-199 1e-200 0e+384 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddfma2832 fma 1.0E-199 1e-199 0e+384 -> 1E-398 Subnormal Rounded
-ddfma2833 fma 1.0E-199 1e-198 0e+384 -> 1.0E-397 Subnormal
-ddfma2834 fma 2.0E-199 2e-198 0e+384 -> 4.0E-397 Subnormal
-ddfma2835 fma 4.0E-199 4e-198 0e+384 -> 1.60E-396 Subnormal
-ddfma2836 fma 10.0E-199 10e-198 0e+384 -> 1.000E-395 Subnormal
-ddfma2837 fma 30.0E-199 30e-198 0e+384 -> 9.000E-395 Subnormal
-ddfma2838 fma 40.0E-199 40e-188 0e+384 -> 1.6000E-384 Subnormal
-ddfma2839 fma 40.0E-199 40e-187 0e+384 -> 1.6000E-383
-ddfma2840 fma 40.0E-199 40e-186 0e+384 -> 1.6000E-382
-
--- Long operand overflow may be a different path
-ddfma2870 fma 100 9.999E+383 0e+384 -> Infinity Inexact Overflow Rounded
-ddfma2871 fma 100 -9.999E+383 0e+384 -> -Infinity Inexact Overflow Rounded
-ddfma2872 fma 9.999E+383 100 0e+384 -> Infinity Inexact Overflow Rounded
-ddfma2873 fma -9.999E+383 100 0e+384 -> -Infinity Inexact Overflow Rounded
-
--- check for double-rounded subnormals
-ddfma2881 fma 1.2347E-355 1.2347E-40 0e+384 -> 1.524E-395 Inexact Rounded Subnormal Underflow
-ddfma2882 fma 1.234E-355 1.234E-40 0e+384 -> 1.523E-395 Inexact Rounded Subnormal Underflow
-ddfma2883 fma 1.23E-355 1.23E-40 0e+384 -> 1.513E-395 Inexact Rounded Subnormal Underflow
-ddfma2884 fma 1.2E-355 1.2E-40 0e+384 -> 1.44E-395 Subnormal
-ddfma2885 fma 1.2E-355 1.2E-41 0e+384 -> 1.44E-396 Subnormal
-ddfma2886 fma 1.2E-355 1.2E-42 0e+384 -> 1.4E-397 Subnormal Inexact Rounded Underflow
-ddfma2887 fma 1.2E-355 1.3E-42 0e+384 -> 1.6E-397 Subnormal Inexact Rounded Underflow
-ddfma2888 fma 1.3E-355 1.3E-42 0e+384 -> 1.7E-397 Subnormal Inexact Rounded Underflow
-ddfma2889 fma 1.3E-355 1.3E-43 0e+384 -> 2E-398 Subnormal Inexact Rounded Underflow
-ddfma2890 fma 1.3E-356 1.3E-43 0e+384 -> 0E-398 Clamped Subnormal Inexact Rounded Underflow
-
-ddfma2891 fma 1.2345E-39 1.234E-355 0e+384 -> 1.5234E-394 Inexact Rounded Subnormal Underflow
-ddfma2892 fma 1.23456E-39 1.234E-355 0e+384 -> 1.5234E-394 Inexact Rounded Subnormal Underflow
-ddfma2893 fma 1.2345E-40 1.234E-355 0e+384 -> 1.523E-395 Inexact Rounded Subnormal Underflow
-ddfma2894 fma 1.23456E-40 1.234E-355 0e+384 -> 1.523E-395 Inexact Rounded Subnormal Underflow
-ddfma2895 fma 1.2345E-41 1.234E-355 0e+384 -> 1.52E-396 Inexact Rounded Subnormal Underflow
-ddfma2896 fma 1.23456E-41 1.234E-355 0e+384 -> 1.52E-396 Inexact Rounded Subnormal Underflow
-
--- Now explore the case where we get a normal result with Underflow
-ddfma2900 fma 0.3000000000E-191 0.3000000000E-191 0e+384 -> 9.00000000000000E-384 Subnormal Rounded
-ddfma2901 fma 0.3000000001E-191 0.3000000001E-191 0e+384 -> 9.00000000600000E-384 Underflow Inexact Subnormal Rounded
-ddfma2902 fma 9.999999999999999E-383 0.0999999999999 0e+384 -> 9.99999999999000E-384 Underflow Inexact Subnormal Rounded
-ddfma2903 fma 9.999999999999999E-383 0.09999999999999 0e+384 -> 9.99999999999900E-384 Underflow Inexact Subnormal Rounded
-ddfma2904 fma 9.999999999999999E-383 0.099999999999999 0e+384 -> 9.99999999999990E-384 Underflow Inexact Subnormal Rounded
-ddfma2905 fma 9.999999999999999E-383 0.0999999999999999 0e+384 -> 9.99999999999999E-384 Underflow Inexact Subnormal Rounded
--- prove operands are exact
-ddfma2906 fma 9.999999999999999E-383 1 0e+384 -> 9.999999999999999E-383
-ddfma2907 fma 1 0.09999999999999999 0e+384 -> 0.09999999999999999
--- the next rounds to Nmin
-ddfma2908 fma 9.999999999999999E-383 0.09999999999999999 0e+384 -> 1.000000000000000E-383 Underflow Inexact Subnormal Rounded
-
--- hugest
-ddfma2909 fma 9999999999999999 9999999999999999 0e+384 -> 9.999999999999998E+31 Inexact Rounded
-
--- Null tests
-ddfma2990 fma 10 # 0e+384 -> NaN Invalid_operation
-ddfma2991 fma # 10 0e+384 -> NaN Invalid_operation
-
-
--- ADDITION TESTS ------------------------------------------------------
-
--- [first group are 'quick confidence check']
-ddfma3001 fma 1 1 1 -> 2
-ddfma3002 fma 1 2 3 -> 5
-ddfma3003 fma 1 '5.75' '3.3' -> 9.05
-ddfma3004 fma 1 '5' '-3' -> 2
-ddfma3005 fma 1 '-5' '-3' -> -8
-ddfma3006 fma 1 '-7' '2.5' -> -4.5
-ddfma3007 fma 1 '0.7' '0.3' -> 1.0
-ddfma3008 fma 1 '1.25' '1.25' -> 2.50
-ddfma3009 fma 1 '1.23456789' '1.00000000' -> '2.23456789'
-ddfma3010 fma 1 '1.23456789' '1.00000011' -> '2.23456800'
-
--- 1234567890123456 1234567890123456
-ddfma3011 fma 1 '0.4444444444444446' '0.5555555555555555' -> '1.000000000000000' Inexact Rounded
-ddfma3012 fma 1 '0.4444444444444445' '0.5555555555555555' -> '1.000000000000000' Rounded
-ddfma3013 fma 1 '0.4444444444444444' '0.5555555555555555' -> '0.9999999999999999'
-ddfma3014 fma 1 '4444444444444444' '0.49' -> '4444444444444444' Inexact Rounded
-ddfma3015 fma 1 '4444444444444444' '0.499' -> '4444444444444444' Inexact Rounded
-ddfma3016 fma 1 '4444444444444444' '0.4999' -> '4444444444444444' Inexact Rounded
-ddfma3017 fma 1 '4444444444444444' '0.5000' -> '4444444444444444' Inexact Rounded
-ddfma3018 fma 1 '4444444444444444' '0.5001' -> '4444444444444445' Inexact Rounded
-ddfma3019 fma 1 '4444444444444444' '0.501' -> '4444444444444445' Inexact Rounded
-ddfma3020 fma 1 '4444444444444444' '0.51' -> '4444444444444445' Inexact Rounded
-
-ddfma3021 fma 1 0 1 -> 1
-ddfma3022 fma 1 1 1 -> 2
-ddfma3023 fma 1 2 1 -> 3
-ddfma3024 fma 1 3 1 -> 4
-ddfma3025 fma 1 4 1 -> 5
-ddfma3026 fma 1 5 1 -> 6
-ddfma3027 fma 1 6 1 -> 7
-ddfma3028 fma 1 7 1 -> 8
-ddfma3029 fma 1 8 1 -> 9
-ddfma3030 fma 1 9 1 -> 10
-
--- some carrying effects
-ddfma3031 fma 1 '0.9998' '0.0000' -> '0.9998'
-ddfma3032 fma 1 '0.9998' '0.0001' -> '0.9999'
-ddfma3033 fma 1 '0.9998' '0.0002' -> '1.0000'
-ddfma3034 fma 1 '0.9998' '0.0003' -> '1.0001'
-
-ddfma3035 fma 1 '70' '10000e+16' -> '1.000000000000000E+20' Inexact Rounded
-ddfma3036 fma 1 '700' '10000e+16' -> '1.000000000000000E+20' Inexact Rounded
-ddfma3037 fma 1 '7000' '10000e+16' -> '1.000000000000000E+20' Inexact Rounded
-ddfma3038 fma 1 '70000' '10000e+16' -> '1.000000000000001E+20' Inexact Rounded
-ddfma3039 fma 1 '700000' '10000e+16' -> '1.000000000000007E+20' Rounded
-
--- symmetry:
-ddfma3040 fma 1 '10000e+16' '70' -> '1.000000000000000E+20' Inexact Rounded
-ddfma3041 fma 1 '10000e+16' '700' -> '1.000000000000000E+20' Inexact Rounded
-ddfma3042 fma 1 '10000e+16' '7000' -> '1.000000000000000E+20' Inexact Rounded
-ddfma3044 fma 1 '10000e+16' '70000' -> '1.000000000000001E+20' Inexact Rounded
-ddfma3045 fma 1 '10000e+16' '700000' -> '1.000000000000007E+20' Rounded
-
--- same, without rounding
-ddfma3046 fma 1 '10000e+9' '7' -> '10000000000007'
-ddfma3047 fma 1 '10000e+9' '70' -> '10000000000070'
-ddfma3048 fma 1 '10000e+9' '700' -> '10000000000700'
-ddfma3049 fma 1 '10000e+9' '7000' -> '10000000007000'
-ddfma3050 fma 1 '10000e+9' '70000' -> '10000000070000'
-ddfma3051 fma 1 '10000e+9' '700000' -> '10000000700000'
-ddfma3052 fma 1 '10000e+9' '7000000' -> '10000007000000'
-
--- examples from decarith
-ddfma3053 fma 1 '12' '7.00' -> '19.00'
-ddfma3054 fma 1 '1.3' '-1.07' -> '0.23'
-ddfma3055 fma 1 '1.3' '-1.30' -> '0.00'
-ddfma3056 fma 1 '1.3' '-2.07' -> '-0.77'
-ddfma3057 fma 1 '1E+2' '1E+4' -> '1.01E+4'
-
--- leading zero preservation
-ddfma3061 fma 1 1 '0.0001' -> '1.0001'
-ddfma3062 fma 1 1 '0.00001' -> '1.00001'
-ddfma3063 fma 1 1 '0.000001' -> '1.000001'
-ddfma3064 fma 1 1 '0.0000001' -> '1.0000001'
-ddfma3065 fma 1 1 '0.00000001' -> '1.00000001'
-
--- some funny zeros [in case of bad signum]
-ddfma3070 fma 1 1 0 -> 1
-ddfma3071 fma 1 1 0. -> 1
-ddfma3072 fma 1 1 .0 -> 1.0
-ddfma3073 fma 1 1 0.0 -> 1.0
-ddfma3074 fma 1 1 0.00 -> 1.00
-ddfma3075 fma 1 0 1 -> 1
-ddfma3076 fma 1 0. 1 -> 1
-ddfma3077 fma 1 .0 1 -> 1.0
-ddfma3078 fma 1 0.0 1 -> 1.0
-ddfma3079 fma 1 0.00 1 -> 1.00
-
--- some carries
-ddfma3080 fma 1 999999998 1 -> 999999999
-ddfma3081 fma 1 999999999 1 -> 1000000000
-ddfma3082 fma 1 99999999 1 -> 100000000
-ddfma3083 fma 1 9999999 1 -> 10000000
-ddfma3084 fma 1 999999 1 -> 1000000
-ddfma3085 fma 1 99999 1 -> 100000
-ddfma3086 fma 1 9999 1 -> 10000
-ddfma3087 fma 1 999 1 -> 1000
-ddfma3088 fma 1 99 1 -> 100
-ddfma3089 fma 1 9 1 -> 10
-
-
--- more LHS swaps
-ddfma3090 fma 1 '-56267E-10' 0 -> '-0.0000056267'
-ddfma3091 fma 1 '-56267E-6' 0 -> '-0.056267'
-ddfma3092 fma 1 '-56267E-5' 0 -> '-0.56267'
-ddfma3093 fma 1 '-56267E-4' 0 -> '-5.6267'
-ddfma3094 fma 1 '-56267E-3' 0 -> '-56.267'
-ddfma3095 fma 1 '-56267E-2' 0 -> '-562.67'
-ddfma3096 fma 1 '-56267E-1' 0 -> '-5626.7'
-ddfma3097 fma 1 '-56267E-0' 0 -> '-56267'
-ddfma3098 fma 1 '-5E-10' 0 -> '-5E-10'
-ddfma3099 fma 1 '-5E-7' 0 -> '-5E-7'
-ddfma3100 fma 1 '-5E-6' 0 -> '-0.000005'
-ddfma3101 fma 1 '-5E-5' 0 -> '-0.00005'
-ddfma3102 fma 1 '-5E-4' 0 -> '-0.0005'
-ddfma3103 fma 1 '-5E-1' 0 -> '-0.5'
-ddfma3104 fma 1 '-5E0' 0 -> '-5'
-ddfma3105 fma 1 '-5E1' 0 -> '-50'
-ddfma3106 fma 1 '-5E5' 0 -> '-500000'
-ddfma3107 fma 1 '-5E15' 0 -> '-5000000000000000'
-ddfma3108 fma 1 '-5E16' 0 -> '-5.000000000000000E+16' Rounded
-ddfma3109 fma 1 '-5E17' 0 -> '-5.000000000000000E+17' Rounded
-ddfma3110 fma 1 '-5E18' 0 -> '-5.000000000000000E+18' Rounded
-ddfma3111 fma 1 '-5E100' 0 -> '-5.000000000000000E+100' Rounded
-
--- more RHS swaps
-ddfma3113 fma 1 0 '-56267E-10' -> '-0.0000056267'
-ddfma3114 fma 1 0 '-56267E-6' -> '-0.056267'
-ddfma3116 fma 1 0 '-56267E-5' -> '-0.56267'
-ddfma3117 fma 1 0 '-56267E-4' -> '-5.6267'
-ddfma3119 fma 1 0 '-56267E-3' -> '-56.267'
-ddfma3120 fma 1 0 '-56267E-2' -> '-562.67'
-ddfma3121 fma 1 0 '-56267E-1' -> '-5626.7'
-ddfma3122 fma 1 0 '-56267E-0' -> '-56267'
-ddfma3123 fma 1 0 '-5E-10' -> '-5E-10'
-ddfma3124 fma 1 0 '-5E-7' -> '-5E-7'
-ddfma3125 fma 1 0 '-5E-6' -> '-0.000005'
-ddfma3126 fma 1 0 '-5E-5' -> '-0.00005'
-ddfma3127 fma 1 0 '-5E-4' -> '-0.0005'
-ddfma3128 fma 1 0 '-5E-1' -> '-0.5'
-ddfma3129 fma 1 0 '-5E0' -> '-5'
-ddfma3130 fma 1 0 '-5E1' -> '-50'
-ddfma3131 fma 1 0 '-5E5' -> '-500000'
-ddfma3132 fma 1 0 '-5E15' -> '-5000000000000000'
-ddfma3133 fma 1 0 '-5E16' -> '-5.000000000000000E+16' Rounded
-ddfma3134 fma 1 0 '-5E17' -> '-5.000000000000000E+17' Rounded
-ddfma3135 fma 1 0 '-5E18' -> '-5.000000000000000E+18' Rounded
-ddfma3136 fma 1 0 '-5E100' -> '-5.000000000000000E+100' Rounded
-
--- related
-ddfma3137 fma 1 1 '0E-19' -> '1.000000000000000' Rounded
-ddfma3138 fma 1 -1 '0E-19' -> '-1.000000000000000' Rounded
-ddfma3139 fma 1 '0E-19' 1 -> '1.000000000000000' Rounded
-ddfma3140 fma 1 '0E-19' -1 -> '-1.000000000000000' Rounded
-ddfma3141 fma 1 1E+11 0.0000 -> '100000000000.0000'
-ddfma3142 fma 1 1E+11 0.00000 -> '100000000000.0000' Rounded
-ddfma3143 fma 1 0.000 1E+12 -> '1000000000000.000'
-ddfma3144 fma 1 0.0000 1E+12 -> '1000000000000.000' Rounded
-
--- [some of the next group are really constructor tests]
-ddfma3146 fma 1 '00.0' 0 -> '0.0'
-ddfma3147 fma 1 '0.00' 0 -> '0.00'
-ddfma3148 fma 1 0 '0.00' -> '0.00'
-ddfma3149 fma 1 0 '00.0' -> '0.0'
-ddfma3150 fma 1 '00.0' '0.00' -> '0.00'
-ddfma3151 fma 1 '0.00' '00.0' -> '0.00'
-ddfma3152 fma 1 '3' '.3' -> '3.3'
-ddfma3153 fma 1 '3.' '.3' -> '3.3'
-ddfma3154 fma 1 '3.0' '.3' -> '3.3'
-ddfma3155 fma 1 '3.00' '.3' -> '3.30'
-ddfma3156 fma 1 '3' '3' -> '6'
-ddfma3157 fma 1 '3' '+3' -> '6'
-ddfma3158 fma 1 '3' '-3' -> '0'
-ddfma3159 fma 1 '0.3' '-0.3' -> '0.0'
-ddfma3160 fma 1 '0.03' '-0.03' -> '0.00'
-
--- try borderline precision, with carries, etc.
-ddfma3161 fma 1 '1E+12' '-1' -> '999999999999'
-ddfma3162 fma 1 '1E+12' '1.11' -> '1000000000001.11'
-ddfma3163 fma 1 '1.11' '1E+12' -> '1000000000001.11'
-ddfma3164 fma 1 '-1' '1E+12' -> '999999999999'
-ddfma3165 fma 1 '7E+12' '-1' -> '6999999999999'
-ddfma3166 fma 1 '7E+12' '1.11' -> '7000000000001.11'
-ddfma3167 fma 1 '1.11' '7E+12' -> '7000000000001.11'
-ddfma3168 fma 1 '-1' '7E+12' -> '6999999999999'
-
-rounding: half_up
--- 1.234567890123456 1234567890123456 1 234567890123456
-ddfma3170 fma 1 '4.444444444444444' '0.5555555555555567' -> '5.000000000000001' Inexact Rounded
-ddfma3171 fma 1 '4.444444444444444' '0.5555555555555566' -> '5.000000000000001' Inexact Rounded
-ddfma3172 fma 1 '4.444444444444444' '0.5555555555555565' -> '5.000000000000001' Inexact Rounded
-ddfma3173 fma 1 '4.444444444444444' '0.5555555555555564' -> '5.000000000000000' Inexact Rounded
-ddfma3174 fma 1 '4.444444444444444' '0.5555555555555553' -> '4.999999999999999' Inexact Rounded
-ddfma3175 fma 1 '4.444444444444444' '0.5555555555555552' -> '4.999999999999999' Inexact Rounded
-ddfma3176 fma 1 '4.444444444444444' '0.5555555555555551' -> '4.999999999999999' Inexact Rounded
-ddfma3177 fma 1 '4.444444444444444' '0.5555555555555550' -> '4.999999999999999' Rounded
-ddfma3178 fma 1 '4.444444444444444' '0.5555555555555545' -> '4.999999999999999' Inexact Rounded
-ddfma3179 fma 1 '4.444444444444444' '0.5555555555555544' -> '4.999999999999998' Inexact Rounded
-ddfma3180 fma 1 '4.444444444444444' '0.5555555555555543' -> '4.999999999999998' Inexact Rounded
-ddfma3181 fma 1 '4.444444444444444' '0.5555555555555542' -> '4.999999999999998' Inexact Rounded
-ddfma3182 fma 1 '4.444444444444444' '0.5555555555555541' -> '4.999999999999998' Inexact Rounded
-ddfma3183 fma 1 '4.444444444444444' '0.5555555555555540' -> '4.999999999999998' Rounded
-
--- and some more, including residue effects and different roundings
-rounding: half_up
-ddfma3200 fma 1 '1234560123456789' 0 -> '1234560123456789'
-ddfma3201 fma 1 '1234560123456789' 0.000000001 -> '1234560123456789' Inexact Rounded
-ddfma3202 fma 1 '1234560123456789' 0.000001 -> '1234560123456789' Inexact Rounded
-ddfma3203 fma 1 '1234560123456789' 0.1 -> '1234560123456789' Inexact Rounded
-ddfma3204 fma 1 '1234560123456789' 0.4 -> '1234560123456789' Inexact Rounded
-ddfma3205 fma 1 '1234560123456789' 0.49 -> '1234560123456789' Inexact Rounded
-ddfma3206 fma 1 '1234560123456789' 0.499999 -> '1234560123456789' Inexact Rounded
-ddfma3207 fma 1 '1234560123456789' 0.499999999 -> '1234560123456789' Inexact Rounded
-ddfma3208 fma 1 '1234560123456789' 0.5 -> '1234560123456790' Inexact Rounded
-ddfma3209 fma 1 '1234560123456789' 0.500000001 -> '1234560123456790' Inexact Rounded
-ddfma3210 fma 1 '1234560123456789' 0.500001 -> '1234560123456790' Inexact Rounded
-ddfma3211 fma 1 '1234560123456789' 0.51 -> '1234560123456790' Inexact Rounded
-ddfma3212 fma 1 '1234560123456789' 0.6 -> '1234560123456790' Inexact Rounded
-ddfma3213 fma 1 '1234560123456789' 0.9 -> '1234560123456790' Inexact Rounded
-ddfma3214 fma 1 '1234560123456789' 0.99999 -> '1234560123456790' Inexact Rounded
-ddfma3215 fma 1 '1234560123456789' 0.999999999 -> '1234560123456790' Inexact Rounded
-ddfma3216 fma 1 '1234560123456789' 1 -> '1234560123456790'
-ddfma3217 fma 1 '1234560123456789' 1.000000001 -> '1234560123456790' Inexact Rounded
-ddfma3218 fma 1 '1234560123456789' 1.00001 -> '1234560123456790' Inexact Rounded
-ddfma3219 fma 1 '1234560123456789' 1.1 -> '1234560123456790' Inexact Rounded
-
-rounding: half_even
-ddfma3220 fma 1 '1234560123456789' 0 -> '1234560123456789'
-ddfma3221 fma 1 '1234560123456789' 0.000000001 -> '1234560123456789' Inexact Rounded
-ddfma3222 fma 1 '1234560123456789' 0.000001 -> '1234560123456789' Inexact Rounded
-ddfma3223 fma 1 '1234560123456789' 0.1 -> '1234560123456789' Inexact Rounded
-ddfma3224 fma 1 '1234560123456789' 0.4 -> '1234560123456789' Inexact Rounded
-ddfma3225 fma 1 '1234560123456789' 0.49 -> '1234560123456789' Inexact Rounded
-ddfma3226 fma 1 '1234560123456789' 0.499999 -> '1234560123456789' Inexact Rounded
-ddfma3227 fma 1 '1234560123456789' 0.499999999 -> '1234560123456789' Inexact Rounded
-ddfma3228 fma 1 '1234560123456789' 0.5 -> '1234560123456790' Inexact Rounded
-ddfma3229 fma 1 '1234560123456789' 0.500000001 -> '1234560123456790' Inexact Rounded
-ddfma3230 fma 1 '1234560123456789' 0.500001 -> '1234560123456790' Inexact Rounded
-ddfma3231 fma 1 '1234560123456789' 0.51 -> '1234560123456790' Inexact Rounded
-ddfma3232 fma 1 '1234560123456789' 0.6 -> '1234560123456790' Inexact Rounded
-ddfma3233 fma 1 '1234560123456789' 0.9 -> '1234560123456790' Inexact Rounded
-ddfma3234 fma 1 '1234560123456789' 0.99999 -> '1234560123456790' Inexact Rounded
-ddfma3235 fma 1 '1234560123456789' 0.999999999 -> '1234560123456790' Inexact Rounded
-ddfma3236 fma 1 '1234560123456789' 1 -> '1234560123456790'
-ddfma3237 fma 1 '1234560123456789' 1.00000001 -> '1234560123456790' Inexact Rounded
-ddfma3238 fma 1 '1234560123456789' 1.00001 -> '1234560123456790' Inexact Rounded
-ddfma3239 fma 1 '1234560123456789' 1.1 -> '1234560123456790' Inexact Rounded
--- critical few with even bottom digit...
-ddfma3240 fma 1 '1234560123456788' 0.499999999 -> '1234560123456788' Inexact Rounded
-ddfma3241 fma 1 '1234560123456788' 0.5 -> '1234560123456788' Inexact Rounded
-ddfma3242 fma 1 '1234560123456788' 0.500000001 -> '1234560123456789' Inexact Rounded
-
-rounding: down
-ddfma3250 fma 1 '1234560123456789' 0 -> '1234560123456789'
-ddfma3251 fma 1 '1234560123456789' 0.000000001 -> '1234560123456789' Inexact Rounded
-ddfma3252 fma 1 '1234560123456789' 0.000001 -> '1234560123456789' Inexact Rounded
-ddfma3253 fma 1 '1234560123456789' 0.1 -> '1234560123456789' Inexact Rounded
-ddfma3254 fma 1 '1234560123456789' 0.4 -> '1234560123456789' Inexact Rounded
-ddfma3255 fma 1 '1234560123456789' 0.49 -> '1234560123456789' Inexact Rounded
-ddfma3256 fma 1 '1234560123456789' 0.499999 -> '1234560123456789' Inexact Rounded
-ddfma3257 fma 1 '1234560123456789' 0.499999999 -> '1234560123456789' Inexact Rounded
-ddfma3258 fma 1 '1234560123456789' 0.5 -> '1234560123456789' Inexact Rounded
-ddfma3259 fma 1 '1234560123456789' 0.500000001 -> '1234560123456789' Inexact Rounded
-ddfma3260 fma 1 '1234560123456789' 0.500001 -> '1234560123456789' Inexact Rounded
-ddfma3261 fma 1 '1234560123456789' 0.51 -> '1234560123456789' Inexact Rounded
-ddfma3262 fma 1 '1234560123456789' 0.6 -> '1234560123456789' Inexact Rounded
-ddfma3263 fma 1 '1234560123456789' 0.9 -> '1234560123456789' Inexact Rounded
-ddfma3264 fma 1 '1234560123456789' 0.99999 -> '1234560123456789' Inexact Rounded
-ddfma3265 fma 1 '1234560123456789' 0.999999999 -> '1234560123456789' Inexact Rounded
-ddfma3266 fma 1 '1234560123456789' 1 -> '1234560123456790'
-ddfma3267 fma 1 '1234560123456789' 1.00000001 -> '1234560123456790' Inexact Rounded
-ddfma3268 fma 1 '1234560123456789' 1.00001 -> '1234560123456790' Inexact Rounded
-ddfma3269 fma 1 '1234560123456789' 1.1 -> '1234560123456790' Inexact Rounded
-
--- 1 in last place tests
-rounding: half_up
-ddfma3301 fma 1 -1 1 -> 0
-ddfma3302 fma 1 0 1 -> 1
-ddfma3303 fma 1 1 1 -> 2
-ddfma3304 fma 1 12 1 -> 13
-ddfma3305 fma 1 98 1 -> 99
-ddfma3306 fma 1 99 1 -> 100
-ddfma3307 fma 1 100 1 -> 101
-ddfma3308 fma 1 101 1 -> 102
-ddfma3309 fma 1 -1 -1 -> -2
-ddfma3310 fma 1 0 -1 -> -1
-ddfma3311 fma 1 1 -1 -> 0
-ddfma3312 fma 1 12 -1 -> 11
-ddfma3313 fma 1 98 -1 -> 97
-ddfma3314 fma 1 99 -1 -> 98
-ddfma3315 fma 1 100 -1 -> 99
-ddfma3316 fma 1 101 -1 -> 100
-
-ddfma3321 fma 1 -0.01 0.01 -> 0.00
-ddfma3322 fma 1 0.00 0.01 -> 0.01
-ddfma3323 fma 1 0.01 0.01 -> 0.02
-ddfma3324 fma 1 0.12 0.01 -> 0.13
-ddfma3325 fma 1 0.98 0.01 -> 0.99
-ddfma3326 fma 1 0.99 0.01 -> 1.00
-ddfma3327 fma 1 1.00 0.01 -> 1.01
-ddfma3328 fma 1 1.01 0.01 -> 1.02
-ddfma3329 fma 1 -0.01 -0.01 -> -0.02
-ddfma3330 fma 1 0.00 -0.01 -> -0.01
-ddfma3331 fma 1 0.01 -0.01 -> 0.00
-ddfma3332 fma 1 0.12 -0.01 -> 0.11
-ddfma3333 fma 1 0.98 -0.01 -> 0.97
-ddfma3334 fma 1 0.99 -0.01 -> 0.98
-ddfma3335 fma 1 1.00 -0.01 -> 0.99
-ddfma3336 fma 1 1.01 -0.01 -> 1.00
-
--- some more cases where adding 0 affects the coefficient
-ddfma3340 fma 1 1E+3 0 -> 1000
-ddfma3341 fma 1 1E+15 0 -> 1000000000000000
-ddfma3342 fma 1 1E+16 0 -> 1.000000000000000E+16 Rounded
-ddfma3343 fma 1 1E+20 0 -> 1.000000000000000E+20 Rounded
--- which simply follow from these cases ...
-ddfma3344 fma 1 1E+3 1 -> 1001
-ddfma3345 fma 1 1E+15 1 -> 1000000000000001
-ddfma3346 fma 1 1E+16 1 -> 1.000000000000000E+16 Inexact Rounded
-ddfma3347 fma 1 1E+20 1 -> 1.000000000000000E+20 Inexact Rounded
-ddfma3348 fma 1 1E+3 7 -> 1007
-ddfma3349 fma 1 1E+15 7 -> 1000000000000007
-ddfma3350 fma 1 1E+16 7 -> 1.000000000000001E+16 Inexact Rounded
-ddfma3351 fma 1 1E+20 7 -> 1.000000000000000E+20 Inexact Rounded
-
--- tryzeros cases
-rounding: half_up
-ddfma3360 fma 1 0E+50 10000E+1 -> 1.0000E+5
-ddfma3361 fma 1 0E-50 10000E+1 -> 100000.0000000000 Rounded
-ddfma3362 fma 1 10000E+1 0E-50 -> 100000.0000000000 Rounded
-ddfma3363 fma 1 10000E+1 10000E-50 -> 100000.0000000000 Rounded Inexact
-ddfma3364 fma 1 9.999999999999999E+384 -9.999999999999999E+384 -> 0E+369
-
--- a curiosity from JSR 13 testing
-rounding: half_down
-ddfma3370 fma 1 999999999999999 815 -> 1000000000000814
-ddfma3371 fma 1 9999999999999999 815 -> 1.000000000000081E+16 Rounded Inexact
-rounding: half_up
-ddfma3372 fma 1 999999999999999 815 -> 1000000000000814
-ddfma3373 fma 1 9999999999999999 815 -> 1.000000000000081E+16 Rounded Inexact
-rounding: half_even
-ddfma3374 fma 1 999999999999999 815 -> 1000000000000814
-ddfma3375 fma 1 9999999999999999 815 -> 1.000000000000081E+16 Rounded Inexact
-
--- ulp replacement tests
-ddfma3400 fma 1 1 77e-14 -> 1.00000000000077
-ddfma3401 fma 1 1 77e-15 -> 1.000000000000077
-ddfma3402 fma 1 1 77e-16 -> 1.000000000000008 Inexact Rounded
-ddfma3403 fma 1 1 77e-17 -> 1.000000000000001 Inexact Rounded
-ddfma3404 fma 1 1 77e-18 -> 1.000000000000000 Inexact Rounded
-ddfma3405 fma 1 1 77e-19 -> 1.000000000000000 Inexact Rounded
-ddfma3406 fma 1 1 77e-299 -> 1.000000000000000 Inexact Rounded
-
-ddfma3410 fma 1 10 77e-14 -> 10.00000000000077
-ddfma3411 fma 1 10 77e-15 -> 10.00000000000008 Inexact Rounded
-ddfma3412 fma 1 10 77e-16 -> 10.00000000000001 Inexact Rounded
-ddfma3413 fma 1 10 77e-17 -> 10.00000000000000 Inexact Rounded
-ddfma3414 fma 1 10 77e-18 -> 10.00000000000000 Inexact Rounded
-ddfma3415 fma 1 10 77e-19 -> 10.00000000000000 Inexact Rounded
-ddfma3416 fma 1 10 77e-299 -> 10.00000000000000 Inexact Rounded
-
-ddfma3420 fma 1 77e-14 1 -> 1.00000000000077
-ddfma3421 fma 1 77e-15 1 -> 1.000000000000077
-ddfma3422 fma 1 77e-16 1 -> 1.000000000000008 Inexact Rounded
-ddfma3423 fma 1 77e-17 1 -> 1.000000000000001 Inexact Rounded
-ddfma3424 fma 1 77e-18 1 -> 1.000000000000000 Inexact Rounded
-ddfma3425 fma 1 77e-19 1 -> 1.000000000000000 Inexact Rounded
-ddfma3426 fma 1 77e-299 1 -> 1.000000000000000 Inexact Rounded
-
-ddfma3430 fma 1 77e-14 10 -> 10.00000000000077
-ddfma3431 fma 1 77e-15 10 -> 10.00000000000008 Inexact Rounded
-ddfma3432 fma 1 77e-16 10 -> 10.00000000000001 Inexact Rounded
-ddfma3433 fma 1 77e-17 10 -> 10.00000000000000 Inexact Rounded
-ddfma3434 fma 1 77e-18 10 -> 10.00000000000000 Inexact Rounded
-ddfma3435 fma 1 77e-19 10 -> 10.00000000000000 Inexact Rounded
-ddfma3436 fma 1 77e-299 10 -> 10.00000000000000 Inexact Rounded
-
--- negative ulps
-ddfma36440 fma 1 1 -77e-14 -> 0.99999999999923
-ddfma36441 fma 1 1 -77e-15 -> 0.999999999999923
-ddfma36442 fma 1 1 -77e-16 -> 0.9999999999999923
-ddfma36443 fma 1 1 -77e-17 -> 0.9999999999999992 Inexact Rounded
-ddfma36444 fma 1 1 -77e-18 -> 0.9999999999999999 Inexact Rounded
-ddfma36445 fma 1 1 -77e-19 -> 1.000000000000000 Inexact Rounded
-ddfma36446 fma 1 1 -77e-99 -> 1.000000000000000 Inexact Rounded
-
-ddfma36450 fma 1 10 -77e-14 -> 9.99999999999923
-ddfma36451 fma 1 10 -77e-15 -> 9.999999999999923
-ddfma36452 fma 1 10 -77e-16 -> 9.999999999999992 Inexact Rounded
-ddfma36453 fma 1 10 -77e-17 -> 9.999999999999999 Inexact Rounded
-ddfma36454 fma 1 10 -77e-18 -> 10.00000000000000 Inexact Rounded
-ddfma36455 fma 1 10 -77e-19 -> 10.00000000000000 Inexact Rounded
-ddfma36456 fma 1 10 -77e-99 -> 10.00000000000000 Inexact Rounded
-
-ddfma36460 fma 1 -77e-14 1 -> 0.99999999999923
-ddfma36461 fma 1 -77e-15 1 -> 0.999999999999923
-ddfma36462 fma 1 -77e-16 1 -> 0.9999999999999923
-ddfma36463 fma 1 -77e-17 1 -> 0.9999999999999992 Inexact Rounded
-ddfma36464 fma 1 -77e-18 1 -> 0.9999999999999999 Inexact Rounded
-ddfma36465 fma 1 -77e-19 1 -> 1.000000000000000 Inexact Rounded
-ddfma36466 fma 1 -77e-99 1 -> 1.000000000000000 Inexact Rounded
-
-ddfma36470 fma 1 -77e-14 10 -> 9.99999999999923
-ddfma36471 fma 1 -77e-15 10 -> 9.999999999999923
-ddfma36472 fma 1 -77e-16 10 -> 9.999999999999992 Inexact Rounded
-ddfma36473 fma 1 -77e-17 10 -> 9.999999999999999 Inexact Rounded
-ddfma36474 fma 1 -77e-18 10 -> 10.00000000000000 Inexact Rounded
-ddfma36475 fma 1 -77e-19 10 -> 10.00000000000000 Inexact Rounded
-ddfma36476 fma 1 -77e-99 10 -> 10.00000000000000 Inexact Rounded
-
--- negative ulps
-ddfma36480 fma 1 -1 77e-14 -> -0.99999999999923
-ddfma36481 fma 1 -1 77e-15 -> -0.999999999999923
-ddfma36482 fma 1 -1 77e-16 -> -0.9999999999999923
-ddfma36483 fma 1 -1 77e-17 -> -0.9999999999999992 Inexact Rounded
-ddfma36484 fma 1 -1 77e-18 -> -0.9999999999999999 Inexact Rounded
-ddfma36485 fma 1 -1 77e-19 -> -1.000000000000000 Inexact Rounded
-ddfma36486 fma 1 -1 77e-99 -> -1.000000000000000 Inexact Rounded
-
-ddfma36490 fma 1 -10 77e-14 -> -9.99999999999923
-ddfma36491 fma 1 -10 77e-15 -> -9.999999999999923
-ddfma36492 fma 1 -10 77e-16 -> -9.999999999999992 Inexact Rounded
-ddfma36493 fma 1 -10 77e-17 -> -9.999999999999999 Inexact Rounded
-ddfma36494 fma 1 -10 77e-18 -> -10.00000000000000 Inexact Rounded
-ddfma36495 fma 1 -10 77e-19 -> -10.00000000000000 Inexact Rounded
-ddfma36496 fma 1 -10 77e-99 -> -10.00000000000000 Inexact Rounded
-
-ddfma36500 fma 1 77e-14 -1 -> -0.99999999999923
-ddfma36501 fma 1 77e-15 -1 -> -0.999999999999923
-ddfma36502 fma 1 77e-16 -1 -> -0.9999999999999923
-ddfma36503 fma 1 77e-17 -1 -> -0.9999999999999992 Inexact Rounded
-ddfma36504 fma 1 77e-18 -1 -> -0.9999999999999999 Inexact Rounded
-ddfma36505 fma 1 77e-19 -1 -> -1.000000000000000 Inexact Rounded
-ddfma36506 fma 1 77e-99 -1 -> -1.000000000000000 Inexact Rounded
-
-ddfma36510 fma 1 77e-14 -10 -> -9.99999999999923
-ddfma36511 fma 1 77e-15 -10 -> -9.999999999999923
-ddfma36512 fma 1 77e-16 -10 -> -9.999999999999992 Inexact Rounded
-ddfma36513 fma 1 77e-17 -10 -> -9.999999999999999 Inexact Rounded
-ddfma36514 fma 1 77e-18 -10 -> -10.00000000000000 Inexact Rounded
-ddfma36515 fma 1 77e-19 -10 -> -10.00000000000000 Inexact Rounded
-ddfma36516 fma 1 77e-99 -10 -> -10.00000000000000 Inexact Rounded
-
--- and a couple more with longer RHS
-ddfma36520 fma 1 1 -7777e-16 -> 0.9999999999992223
-ddfma36521 fma 1 1 -7777e-17 -> 0.9999999999999222 Inexact Rounded
-ddfma36522 fma 1 1 -7777e-18 -> 0.9999999999999922 Inexact Rounded
-ddfma36523 fma 1 1 -7777e-19 -> 0.9999999999999992 Inexact Rounded
-ddfma36524 fma 1 1 -7777e-20 -> 0.9999999999999999 Inexact Rounded
-ddfma36525 fma 1 1 -7777e-21 -> 1.000000000000000 Inexact Rounded
-ddfma36526 fma 1 1 -7777e-22 -> 1.000000000000000 Inexact Rounded
-
-
--- and some more residue effects and different roundings
-rounding: half_up
-ddfma36540 fma 1 '6543210123456789' 0 -> '6543210123456789'
-ddfma36541 fma 1 '6543210123456789' 0.000000001 -> '6543210123456789' Inexact Rounded
-ddfma36542 fma 1 '6543210123456789' 0.000001 -> '6543210123456789' Inexact Rounded
-ddfma36543 fma 1 '6543210123456789' 0.1 -> '6543210123456789' Inexact Rounded
-ddfma36544 fma 1 '6543210123456789' 0.4 -> '6543210123456789' Inexact Rounded
-ddfma36545 fma 1 '6543210123456789' 0.49 -> '6543210123456789' Inexact Rounded
-ddfma36546 fma 1 '6543210123456789' 0.499999 -> '6543210123456789' Inexact Rounded
-ddfma36547 fma 1 '6543210123456789' 0.499999999 -> '6543210123456789' Inexact Rounded
-ddfma36548 fma 1 '6543210123456789' 0.5 -> '6543210123456790' Inexact Rounded
-ddfma36549 fma 1 '6543210123456789' 0.500000001 -> '6543210123456790' Inexact Rounded
-ddfma36550 fma 1 '6543210123456789' 0.500001 -> '6543210123456790' Inexact Rounded
-ddfma36551 fma 1 '6543210123456789' 0.51 -> '6543210123456790' Inexact Rounded
-ddfma36552 fma 1 '6543210123456789' 0.6 -> '6543210123456790' Inexact Rounded
-ddfma36553 fma 1 '6543210123456789' 0.9 -> '6543210123456790' Inexact Rounded
-ddfma36554 fma 1 '6543210123456789' 0.99999 -> '6543210123456790' Inexact Rounded
-ddfma36555 fma 1 '6543210123456789' 0.999999999 -> '6543210123456790' Inexact Rounded
-ddfma36556 fma 1 '6543210123456789' 1 -> '6543210123456790'
-ddfma36557 fma 1 '6543210123456789' 1.000000001 -> '6543210123456790' Inexact Rounded
-ddfma36558 fma 1 '6543210123456789' 1.00001 -> '6543210123456790' Inexact Rounded
-ddfma36559 fma 1 '6543210123456789' 1.1 -> '6543210123456790' Inexact Rounded
-
-rounding: half_even
-ddfma36560 fma 1 '6543210123456789' 0 -> '6543210123456789'
-ddfma36561 fma 1 '6543210123456789' 0.000000001 -> '6543210123456789' Inexact Rounded
-ddfma36562 fma 1 '6543210123456789' 0.000001 -> '6543210123456789' Inexact Rounded
-ddfma36563 fma 1 '6543210123456789' 0.1 -> '6543210123456789' Inexact Rounded
-ddfma36564 fma 1 '6543210123456789' 0.4 -> '6543210123456789' Inexact Rounded
-ddfma36565 fma 1 '6543210123456789' 0.49 -> '6543210123456789' Inexact Rounded
-ddfma36566 fma 1 '6543210123456789' 0.499999 -> '6543210123456789' Inexact Rounded
-ddfma36567 fma 1 '6543210123456789' 0.499999999 -> '6543210123456789' Inexact Rounded
-ddfma36568 fma 1 '6543210123456789' 0.5 -> '6543210123456790' Inexact Rounded
-ddfma36569 fma 1 '6543210123456789' 0.500000001 -> '6543210123456790' Inexact Rounded
-ddfma36570 fma 1 '6543210123456789' 0.500001 -> '6543210123456790' Inexact Rounded
-ddfma36571 fma 1 '6543210123456789' 0.51 -> '6543210123456790' Inexact Rounded
-ddfma36572 fma 1 '6543210123456789' 0.6 -> '6543210123456790' Inexact Rounded
-ddfma36573 fma 1 '6543210123456789' 0.9 -> '6543210123456790' Inexact Rounded
-ddfma36574 fma 1 '6543210123456789' 0.99999 -> '6543210123456790' Inexact Rounded
-ddfma36575 fma 1 '6543210123456789' 0.999999999 -> '6543210123456790' Inexact Rounded
-ddfma36576 fma 1 '6543210123456789' 1 -> '6543210123456790'
-ddfma36577 fma 1 '6543210123456789' 1.00000001 -> '6543210123456790' Inexact Rounded
-ddfma36578 fma 1 '6543210123456789' 1.00001 -> '6543210123456790' Inexact Rounded
-ddfma36579 fma 1 '6543210123456789' 1.1 -> '6543210123456790' Inexact Rounded
-
--- critical few with even bottom digit...
-ddfma37540 fma 1 '6543210123456788' 0.499999999 -> '6543210123456788' Inexact Rounded
-ddfma37541 fma 1 '6543210123456788' 0.5 -> '6543210123456788' Inexact Rounded
-ddfma37542 fma 1 '6543210123456788' 0.500000001 -> '6543210123456789' Inexact Rounded
-
-rounding: down
-ddfma37550 fma 1 '6543210123456789' 0 -> '6543210123456789'
-ddfma37551 fma 1 '6543210123456789' 0.000000001 -> '6543210123456789' Inexact Rounded
-ddfma37552 fma 1 '6543210123456789' 0.000001 -> '6543210123456789' Inexact Rounded
-ddfma37553 fma 1 '6543210123456789' 0.1 -> '6543210123456789' Inexact Rounded
-ddfma37554 fma 1 '6543210123456789' 0.4 -> '6543210123456789' Inexact Rounded
-ddfma37555 fma 1 '6543210123456789' 0.49 -> '6543210123456789' Inexact Rounded
-ddfma37556 fma 1 '6543210123456789' 0.499999 -> '6543210123456789' Inexact Rounded
-ddfma37557 fma 1 '6543210123456789' 0.499999999 -> '6543210123456789' Inexact Rounded
-ddfma37558 fma 1 '6543210123456789' 0.5 -> '6543210123456789' Inexact Rounded
-ddfma37559 fma 1 '6543210123456789' 0.500000001 -> '6543210123456789' Inexact Rounded
-ddfma37560 fma 1 '6543210123456789' 0.500001 -> '6543210123456789' Inexact Rounded
-ddfma37561 fma 1 '6543210123456789' 0.51 -> '6543210123456789' Inexact Rounded
-ddfma37562 fma 1 '6543210123456789' 0.6 -> '6543210123456789' Inexact Rounded
-ddfma37563 fma 1 '6543210123456789' 0.9 -> '6543210123456789' Inexact Rounded
-ddfma37564 fma 1 '6543210123456789' 0.99999 -> '6543210123456789' Inexact Rounded
-ddfma37565 fma 1 '6543210123456789' 0.999999999 -> '6543210123456789' Inexact Rounded
-ddfma37566 fma 1 '6543210123456789' 1 -> '6543210123456790'
-ddfma37567 fma 1 '6543210123456789' 1.00000001 -> '6543210123456790' Inexact Rounded
-ddfma37568 fma 1 '6543210123456789' 1.00001 -> '6543210123456790' Inexact Rounded
-ddfma37569 fma 1 '6543210123456789' 1.1 -> '6543210123456790' Inexact Rounded
-
-
--- verify a query
-rounding: down
-ddfma37661 fma 1 1e-398 9.000000000000000E+384 -> 9.000000000000000E+384 Inexact Rounded
-ddfma37662 fma 1 0 9.000000000000000E+384 -> 9.000000000000000E+384 Rounded
-ddfma37663 fma 1 1e-388 9.000000000000000E+374 -> 9.000000000000000E+374 Inexact Rounded
-ddfma37664 fma 1 0 9.000000000000000E+374 -> 9.000000000000000E+374 Rounded
-
--- more zeros, etc.
-rounding: half_even
-
-ddfma37701 fma 1 5.00 1.00E-3 -> 5.00100
-ddfma37702 fma 1 00.00 0.000 -> 0.000
-ddfma37703 fma 1 00.00 0E-3 -> 0.000
-ddfma37704 fma 1 0E-3 00.00 -> 0.000
-
-ddfma37710 fma 1 0E+3 00.00 -> 0.00
-ddfma37711 fma 1 0E+3 00.0 -> 0.0
-ddfma37712 fma 1 0E+3 00. -> 0
-ddfma37713 fma 1 0E+3 00.E+1 -> 0E+1
-ddfma37714 fma 1 0E+3 00.E+2 -> 0E+2
-ddfma37715 fma 1 0E+3 00.E+3 -> 0E+3
-ddfma37716 fma 1 0E+3 00.E+4 -> 0E+3
-ddfma37717 fma 1 0E+3 00.E+5 -> 0E+3
-ddfma37718 fma 1 0E+3 -00.0 -> 0.0
-ddfma37719 fma 1 0E+3 -00. -> 0
-ddfma37731 fma 1 0E+3 -00.E+1 -> 0E+1
-
-ddfma37720 fma 1 00.00 0E+3 -> 0.00
-ddfma37721 fma 1 00.0 0E+3 -> 0.0
-ddfma37722 fma 1 00. 0E+3 -> 0
-ddfma37723 fma 1 00.E+1 0E+3 -> 0E+1
-ddfma37724 fma 1 00.E+2 0E+3 -> 0E+2
-ddfma37725 fma 1 00.E+3 0E+3 -> 0E+3
-ddfma37726 fma 1 00.E+4 0E+3 -> 0E+3
-ddfma37727 fma 1 00.E+5 0E+3 -> 0E+3
-ddfma37728 fma 1 -00.00 0E+3 -> 0.00
-ddfma37729 fma 1 -00.0 0E+3 -> 0.0
-ddfma37730 fma 1 -00. 0E+3 -> 0
-
-ddfma37732 fma 1 0 0 -> 0
-ddfma37733 fma 1 0 -0 -> 0
-ddfma37734 fma 1 -0 0 -> 0
-ddfma37735 fma 1 -0 -0 -> -0 -- IEEE 854 special case
-
-ddfma37736 fma 1 1 -1 -> 0
-ddfma37737 fma 1 -1 -1 -> -2
-ddfma37738 fma 1 1 1 -> 2
-ddfma37739 fma 1 -1 1 -> 0
-
-ddfma37741 fma 1 0 -1 -> -1
-ddfma37742 fma 1 -0 -1 -> -1
-ddfma37743 fma 1 0 1 -> 1
-ddfma37744 fma 1 -0 1 -> 1
-ddfma37745 fma 1 -1 0 -> -1
-ddfma37746 fma 1 -1 -0 -> -1
-ddfma37747 fma 1 1 0 -> 1
-ddfma37748 fma 1 1 -0 -> 1
-
-ddfma37751 fma 1 0.0 -1 -> -1.0
-ddfma37752 fma 1 -0.0 -1 -> -1.0
-ddfma37753 fma 1 0.0 1 -> 1.0
-ddfma37754 fma 1 -0.0 1 -> 1.0
-ddfma37755 fma 1 -1.0 0 -> -1.0
-ddfma37756 fma 1 -1.0 -0 -> -1.0
-ddfma37757 fma 1 1.0 0 -> 1.0
-ddfma37758 fma 1 1.0 -0 -> 1.0
-
-ddfma37761 fma 1 0 -1.0 -> -1.0
-ddfma37762 fma 1 -0 -1.0 -> -1.0
-ddfma37763 fma 1 0 1.0 -> 1.0
-ddfma37764 fma 1 -0 1.0 -> 1.0
-ddfma37765 fma 1 -1 0.0 -> -1.0
-ddfma37766 fma 1 -1 -0.0 -> -1.0
-ddfma37767 fma 1 1 0.0 -> 1.0
-ddfma37768 fma 1 1 -0.0 -> 1.0
-
-ddfma37771 fma 1 0.0 -1.0 -> -1.0
-ddfma37772 fma 1 -0.0 -1.0 -> -1.0
-ddfma37773 fma 1 0.0 1.0 -> 1.0
-ddfma37774 fma 1 -0.0 1.0 -> 1.0
-ddfma37775 fma 1 -1.0 0.0 -> -1.0
-ddfma37776 fma 1 -1.0 -0.0 -> -1.0
-ddfma37777 fma 1 1.0 0.0 -> 1.0
-ddfma37778 fma 1 1.0 -0.0 -> 1.0
-
--- Specials
-ddfma37780 fma 1 -Inf -Inf -> -Infinity
-ddfma37781 fma 1 -Inf -1000 -> -Infinity
-ddfma37782 fma 1 -Inf -1 -> -Infinity
-ddfma37783 fma 1 -Inf -0 -> -Infinity
-ddfma37784 fma 1 -Inf 0 -> -Infinity
-ddfma37785 fma 1 -Inf 1 -> -Infinity
-ddfma37786 fma 1 -Inf 1000 -> -Infinity
-ddfma37787 fma 1 -1000 -Inf -> -Infinity
-ddfma37788 fma 1 -Inf -Inf -> -Infinity
-ddfma37789 fma 1 -1 -Inf -> -Infinity
-ddfma37790 fma 1 -0 -Inf -> -Infinity
-ddfma37791 fma 1 0 -Inf -> -Infinity
-ddfma37792 fma 1 1 -Inf -> -Infinity
-ddfma37793 fma 1 1000 -Inf -> -Infinity
-ddfma37794 fma 1 Inf -Inf -> NaN Invalid_operation
-
-ddfma37800 fma 1 Inf -Inf -> NaN Invalid_operation
-ddfma37801 fma 1 Inf -1000 -> Infinity
-ddfma37802 fma 1 Inf -1 -> Infinity
-ddfma37803 fma 1 Inf -0 -> Infinity
-ddfma37804 fma 1 Inf 0 -> Infinity
-ddfma37805 fma 1 Inf 1 -> Infinity
-ddfma37806 fma 1 Inf 1000 -> Infinity
-ddfma37807 fma 1 Inf Inf -> Infinity
-ddfma37808 fma 1 -1000 Inf -> Infinity
-ddfma37809 fma 1 -Inf Inf -> NaN Invalid_operation
-ddfma37810 fma 1 -1 Inf -> Infinity
-ddfma37811 fma 1 -0 Inf -> Infinity
-ddfma37812 fma 1 0 Inf -> Infinity
-ddfma37813 fma 1 1 Inf -> Infinity
-ddfma37814 fma 1 1000 Inf -> Infinity
-ddfma37815 fma 1 Inf Inf -> Infinity
-
-ddfma37821 fma 1 NaN -Inf -> NaN
-ddfma37822 fma 1 NaN -1000 -> NaN
-ddfma37823 fma 1 NaN -1 -> NaN
-ddfma37824 fma 1 NaN -0 -> NaN
-ddfma37825 fma 1 NaN 0 -> NaN
-ddfma37826 fma 1 NaN 1 -> NaN
-ddfma37827 fma 1 NaN 1000 -> NaN
-ddfma37828 fma 1 NaN Inf -> NaN
-ddfma37829 fma 1 NaN NaN -> NaN
-ddfma37830 fma 1 -Inf NaN -> NaN
-ddfma37831 fma 1 -1000 NaN -> NaN
-ddfma37832 fma 1 -1 NaN -> NaN
-ddfma37833 fma 1 -0 NaN -> NaN
-ddfma37834 fma 1 0 NaN -> NaN
-ddfma37835 fma 1 1 NaN -> NaN
-ddfma37836 fma 1 1000 NaN -> NaN
-ddfma37837 fma 1 Inf NaN -> NaN
-
-ddfma37841 fma 1 sNaN -Inf -> NaN Invalid_operation
-ddfma37842 fma 1 sNaN -1000 -> NaN Invalid_operation
-ddfma37843 fma 1 sNaN -1 -> NaN Invalid_operation
-ddfma37844 fma 1 sNaN -0 -> NaN Invalid_operation
-ddfma37845 fma 1 sNaN 0 -> NaN Invalid_operation
-ddfma37846 fma 1 sNaN 1 -> NaN Invalid_operation
-ddfma37847 fma 1 sNaN 1000 -> NaN Invalid_operation
-ddfma37848 fma 1 sNaN NaN -> NaN Invalid_operation
-ddfma37849 fma 1 sNaN sNaN -> NaN Invalid_operation
-ddfma37850 fma 1 NaN sNaN -> NaN Invalid_operation
-ddfma37851 fma 1 -Inf sNaN -> NaN Invalid_operation
-ddfma37852 fma 1 -1000 sNaN -> NaN Invalid_operation
-ddfma37853 fma 1 -1 sNaN -> NaN Invalid_operation
-ddfma37854 fma 1 -0 sNaN -> NaN Invalid_operation
-ddfma37855 fma 1 0 sNaN -> NaN Invalid_operation
-ddfma37856 fma 1 1 sNaN -> NaN Invalid_operation
-ddfma37857 fma 1 1000 sNaN -> NaN Invalid_operation
-ddfma37858 fma 1 Inf sNaN -> NaN Invalid_operation
-ddfma37859 fma 1 NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-ddfma37861 fma 1 NaN1 -Inf -> NaN1
-ddfma37862 fma 1 +NaN2 -1000 -> NaN2
-ddfma37863 fma 1 NaN3 1000 -> NaN3
-ddfma37864 fma 1 NaN4 Inf -> NaN4
-ddfma37865 fma 1 NaN5 +NaN6 -> NaN5
-ddfma37866 fma 1 -Inf NaN7 -> NaN7
-ddfma37867 fma 1 -1000 NaN8 -> NaN8
-ddfma37868 fma 1 1000 NaN9 -> NaN9
-ddfma37869 fma 1 Inf +NaN10 -> NaN10
-ddfma37871 fma 1 sNaN11 -Inf -> NaN11 Invalid_operation
-ddfma37872 fma 1 sNaN12 -1000 -> NaN12 Invalid_operation
-ddfma37873 fma 1 sNaN13 1000 -> NaN13 Invalid_operation
-ddfma37874 fma 1 sNaN14 NaN17 -> NaN14 Invalid_operation
-ddfma37875 fma 1 sNaN15 sNaN18 -> NaN15 Invalid_operation
-ddfma37876 fma 1 NaN16 sNaN19 -> NaN19 Invalid_operation
-ddfma37877 fma 1 -Inf +sNaN20 -> NaN20 Invalid_operation
-ddfma37878 fma 1 -1000 sNaN21 -> NaN21 Invalid_operation
-ddfma37879 fma 1 1000 sNaN22 -> NaN22 Invalid_operation
-ddfma37880 fma 1 Inf sNaN23 -> NaN23 Invalid_operation
-ddfma37881 fma 1 +NaN25 +sNaN24 -> NaN24 Invalid_operation
-ddfma37882 fma 1 -NaN26 NaN28 -> -NaN26
-ddfma37883 fma 1 -sNaN27 sNaN29 -> -NaN27 Invalid_operation
-ddfma37884 fma 1 1000 -NaN30 -> -NaN30
-ddfma37885 fma 1 1000 -sNaN31 -> -NaN31 Invalid_operation
-
--- Here we explore near the boundary of rounding a subnormal to Nmin
-ddfma37575 fma 1 1E-383 -1E-398 -> 9.99999999999999E-384 Subnormal
-ddfma37576 fma 1 -1E-383 +1E-398 -> -9.99999999999999E-384 Subnormal
-
--- check overflow edge case
--- 1234567890123456
-ddfma37972 apply 9.999999999999999E+384 -> 9.999999999999999E+384
-ddfma37973 fma 1 9.999999999999999E+384 1 -> 9.999999999999999E+384 Inexact Rounded
-ddfma37974 fma 1 9999999999999999E+369 1 -> 9.999999999999999E+384 Inexact Rounded
-ddfma37975 fma 1 9999999999999999E+369 1E+369 -> Infinity Overflow Inexact Rounded
-ddfma37976 fma 1 9999999999999999E+369 9E+368 -> Infinity Overflow Inexact Rounded
-ddfma37977 fma 1 9999999999999999E+369 8E+368 -> Infinity Overflow Inexact Rounded
-ddfma37978 fma 1 9999999999999999E+369 7E+368 -> Infinity Overflow Inexact Rounded
-ddfma37979 fma 1 9999999999999999E+369 6E+368 -> Infinity Overflow Inexact Rounded
-ddfma37980 fma 1 9999999999999999E+369 5E+368 -> Infinity Overflow Inexact Rounded
-ddfma37981 fma 1 9999999999999999E+369 4E+368 -> 9.999999999999999E+384 Inexact Rounded
-ddfma37982 fma 1 9999999999999999E+369 3E+368 -> 9.999999999999999E+384 Inexact Rounded
-ddfma37983 fma 1 9999999999999999E+369 2E+368 -> 9.999999999999999E+384 Inexact Rounded
-ddfma37984 fma 1 9999999999999999E+369 1E+368 -> 9.999999999999999E+384 Inexact Rounded
-
-ddfma37985 apply -9.999999999999999E+384 -> -9.999999999999999E+384
-ddfma37986 fma 1 -9.999999999999999E+384 -1 -> -9.999999999999999E+384 Inexact Rounded
-ddfma37987 fma 1 -9999999999999999E+369 -1 -> -9.999999999999999E+384 Inexact Rounded
-ddfma37988 fma 1 -9999999999999999E+369 -1E+369 -> -Infinity Overflow Inexact Rounded
-ddfma37989 fma 1 -9999999999999999E+369 -9E+368 -> -Infinity Overflow Inexact Rounded
-ddfma37990 fma 1 -9999999999999999E+369 -8E+368 -> -Infinity Overflow Inexact Rounded
-ddfma37991 fma 1 -9999999999999999E+369 -7E+368 -> -Infinity Overflow Inexact Rounded
-ddfma37992 fma 1 -9999999999999999E+369 -6E+368 -> -Infinity Overflow Inexact Rounded
-ddfma37993 fma 1 -9999999999999999E+369 -5E+368 -> -Infinity Overflow Inexact Rounded
-ddfma37994 fma 1 -9999999999999999E+369 -4E+368 -> -9.999999999999999E+384 Inexact Rounded
-ddfma37995 fma 1 -9999999999999999E+369 -3E+368 -> -9.999999999999999E+384 Inexact Rounded
-ddfma37996 fma 1 -9999999999999999E+369 -2E+368 -> -9.999999999999999E+384 Inexact Rounded
-ddfma37997 fma 1 -9999999999999999E+369 -1E+368 -> -9.999999999999999E+384 Inexact Rounded
-
--- And for round down full and subnormal results
-rounding: down
-ddfma371100 fma 1 1e+2 -1e-383 -> 99.99999999999999 Rounded Inexact
-ddfma371101 fma 1 1e+1 -1e-383 -> 9.999999999999999 Rounded Inexact
-ddfma371103 fma 1 +1 -1e-383 -> 0.9999999999999999 Rounded Inexact
-ddfma371104 fma 1 1e-1 -1e-383 -> 0.09999999999999999 Rounded Inexact
-ddfma371105 fma 1 1e-2 -1e-383 -> 0.009999999999999999 Rounded Inexact
-ddfma371106 fma 1 1e-3 -1e-383 -> 0.0009999999999999999 Rounded Inexact
-ddfma371107 fma 1 1e-4 -1e-383 -> 0.00009999999999999999 Rounded Inexact
-ddfma371108 fma 1 1e-5 -1e-383 -> 0.000009999999999999999 Rounded Inexact
-ddfma371109 fma 1 1e-6 -1e-383 -> 9.999999999999999E-7 Rounded Inexact
-
-rounding: ceiling
-ddfma371110 fma 1 -1e+2 +1e-383 -> -99.99999999999999 Rounded Inexact
-ddfma371111 fma 1 -1e+1 +1e-383 -> -9.999999999999999 Rounded Inexact
-ddfma371113 fma 1 -1 +1e-383 -> -0.9999999999999999 Rounded Inexact
-ddfma371114 fma 1 -1e-1 +1e-383 -> -0.09999999999999999 Rounded Inexact
-ddfma371115 fma 1 -1e-2 +1e-383 -> -0.009999999999999999 Rounded Inexact
-ddfma371116 fma 1 -1e-3 +1e-383 -> -0.0009999999999999999 Rounded Inexact
-ddfma371117 fma 1 -1e-4 +1e-383 -> -0.00009999999999999999 Rounded Inexact
-ddfma371118 fma 1 -1e-5 +1e-383 -> -0.000009999999999999999 Rounded Inexact
-ddfma371119 fma 1 -1e-6 +1e-383 -> -9.999999999999999E-7 Rounded Inexact
-
--- tests based on Gunnar Degnbol's edge case
-rounding: half_even
-
-ddfma371300 fma 1 1E16 -0.5 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371310 fma 1 1E16 -0.51 -> 9999999999999999 Inexact Rounded
-ddfma371311 fma 1 1E16 -0.501 -> 9999999999999999 Inexact Rounded
-ddfma371312 fma 1 1E16 -0.5001 -> 9999999999999999 Inexact Rounded
-ddfma371313 fma 1 1E16 -0.50001 -> 9999999999999999 Inexact Rounded
-ddfma371314 fma 1 1E16 -0.500001 -> 9999999999999999 Inexact Rounded
-ddfma371315 fma 1 1E16 -0.5000001 -> 9999999999999999 Inexact Rounded
-ddfma371316 fma 1 1E16 -0.50000001 -> 9999999999999999 Inexact Rounded
-ddfma371317 fma 1 1E16 -0.500000001 -> 9999999999999999 Inexact Rounded
-ddfma371318 fma 1 1E16 -0.5000000001 -> 9999999999999999 Inexact Rounded
-ddfma371319 fma 1 1E16 -0.50000000001 -> 9999999999999999 Inexact Rounded
-ddfma371320 fma 1 1E16 -0.500000000001 -> 9999999999999999 Inexact Rounded
-ddfma371321 fma 1 1E16 -0.5000000000001 -> 9999999999999999 Inexact Rounded
-ddfma371322 fma 1 1E16 -0.50000000000001 -> 9999999999999999 Inexact Rounded
-ddfma371323 fma 1 1E16 -0.500000000000001 -> 9999999999999999 Inexact Rounded
-ddfma371324 fma 1 1E16 -0.5000000000000001 -> 9999999999999999 Inexact Rounded
-ddfma371325 fma 1 1E16 -0.5000000000000000 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371326 fma 1 1E16 -0.500000000000000 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371327 fma 1 1E16 -0.50000000000000 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371328 fma 1 1E16 -0.5000000000000 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371329 fma 1 1E16 -0.500000000000 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371330 fma 1 1E16 -0.50000000000 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371331 fma 1 1E16 -0.5000000000 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371332 fma 1 1E16 -0.500000000 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371333 fma 1 1E16 -0.50000000 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371334 fma 1 1E16 -0.5000000 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371335 fma 1 1E16 -0.500000 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371336 fma 1 1E16 -0.50000 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371337 fma 1 1E16 -0.5000 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371338 fma 1 1E16 -0.500 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371339 fma 1 1E16 -0.50 -> 1.000000000000000E+16 Inexact Rounded
-
-ddfma371340 fma 1 1E16 -5000000.000010001 -> 9999999995000000 Inexact Rounded
-ddfma371341 fma 1 1E16 -5000000.000000001 -> 9999999995000000 Inexact Rounded
-
-ddfma371349 fma 1 9999999999999999 0.4 -> 9999999999999999 Inexact Rounded
-ddfma371350 fma 1 9999999999999999 0.49 -> 9999999999999999 Inexact Rounded
-ddfma371351 fma 1 9999999999999999 0.499 -> 9999999999999999 Inexact Rounded
-ddfma371352 fma 1 9999999999999999 0.4999 -> 9999999999999999 Inexact Rounded
-ddfma371353 fma 1 9999999999999999 0.49999 -> 9999999999999999 Inexact Rounded
-ddfma371354 fma 1 9999999999999999 0.499999 -> 9999999999999999 Inexact Rounded
-ddfma371355 fma 1 9999999999999999 0.4999999 -> 9999999999999999 Inexact Rounded
-ddfma371356 fma 1 9999999999999999 0.49999999 -> 9999999999999999 Inexact Rounded
-ddfma371357 fma 1 9999999999999999 0.499999999 -> 9999999999999999 Inexact Rounded
-ddfma371358 fma 1 9999999999999999 0.4999999999 -> 9999999999999999 Inexact Rounded
-ddfma371359 fma 1 9999999999999999 0.49999999999 -> 9999999999999999 Inexact Rounded
-ddfma371360 fma 1 9999999999999999 0.499999999999 -> 9999999999999999 Inexact Rounded
-ddfma371361 fma 1 9999999999999999 0.4999999999999 -> 9999999999999999 Inexact Rounded
-ddfma371362 fma 1 9999999999999999 0.49999999999999 -> 9999999999999999 Inexact Rounded
-ddfma371363 fma 1 9999999999999999 0.499999999999999 -> 9999999999999999 Inexact Rounded
-ddfma371364 fma 1 9999999999999999 0.4999999999999999 -> 9999999999999999 Inexact Rounded
-ddfma371365 fma 1 9999999999999999 0.5000000000000000 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371367 fma 1 9999999999999999 0.500000000000000 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371368 fma 1 9999999999999999 0.50000000000000 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371369 fma 1 9999999999999999 0.5000000000000 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371370 fma 1 9999999999999999 0.500000000000 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371371 fma 1 9999999999999999 0.50000000000 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371372 fma 1 9999999999999999 0.5000000000 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371373 fma 1 9999999999999999 0.500000000 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371374 fma 1 9999999999999999 0.50000000 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371375 fma 1 9999999999999999 0.5000000 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371376 fma 1 9999999999999999 0.500000 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371377 fma 1 9999999999999999 0.50000 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371378 fma 1 9999999999999999 0.5000 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371379 fma 1 9999999999999999 0.500 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371380 fma 1 9999999999999999 0.50 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371381 fma 1 9999999999999999 0.5 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371382 fma 1 9999999999999999 0.5000000000000001 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371383 fma 1 9999999999999999 0.500000000000001 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371384 fma 1 9999999999999999 0.50000000000001 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371385 fma 1 9999999999999999 0.5000000000001 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371386 fma 1 9999999999999999 0.500000000001 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371387 fma 1 9999999999999999 0.50000000001 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371388 fma 1 9999999999999999 0.5000000001 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371389 fma 1 9999999999999999 0.500000001 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371390 fma 1 9999999999999999 0.50000001 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371391 fma 1 9999999999999999 0.5000001 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371392 fma 1 9999999999999999 0.500001 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371393 fma 1 9999999999999999 0.50001 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371394 fma 1 9999999999999999 0.5001 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371395 fma 1 9999999999999999 0.501 -> 1.000000000000000E+16 Inexact Rounded
-ddfma371396 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
-ddfma371420 fma 1 0 1.123456789012345 -> 1.123456789012345
-ddfma371421 fma 1 0 1.123456789012345E-1 -> 0.1123456789012345
-ddfma371422 fma 1 0 1.123456789012345E-2 -> 0.01123456789012345
-ddfma371423 fma 1 0 1.123456789012345E-3 -> 0.001123456789012345
-ddfma371424 fma 1 0 1.123456789012345E-4 -> 0.0001123456789012345
-ddfma371425 fma 1 0 1.123456789012345E-5 -> 0.00001123456789012345
-ddfma371426 fma 1 0 1.123456789012345E-6 -> 0.000001123456789012345
-ddfma371427 fma 1 0 1.123456789012345E-7 -> 1.123456789012345E-7
-ddfma371428 fma 1 0 1.123456789012345E-8 -> 1.123456789012345E-8
-ddfma371429 fma 1 0 1.123456789012345E-9 -> 1.123456789012345E-9
-ddfma371430 fma 1 0 1.123456789012345E-10 -> 1.123456789012345E-10
-ddfma371431 fma 1 0 1.123456789012345E-11 -> 1.123456789012345E-11
-ddfma371432 fma 1 0 1.123456789012345E-12 -> 1.123456789012345E-12
-ddfma371433 fma 1 0 1.123456789012345E-13 -> 1.123456789012345E-13
-ddfma371434 fma 1 0 1.123456789012345E-14 -> 1.123456789012345E-14
-ddfma371435 fma 1 0 1.123456789012345E-15 -> 1.123456789012345E-15
-ddfma371436 fma 1 0 1.123456789012345E-16 -> 1.123456789012345E-16
-ddfma371437 fma 1 0 1.123456789012345E-17 -> 1.123456789012345E-17
-ddfma371438 fma 1 0 1.123456789012345E-18 -> 1.123456789012345E-18
-ddfma371439 fma 1 0 1.123456789012345E-19 -> 1.123456789012345E-19
-
--- same, reversed 0
-ddfma371440 fma 1 1.123456789012345 0 -> 1.123456789012345
-ddfma371441 fma 1 1.123456789012345E-1 0 -> 0.1123456789012345
-ddfma371442 fma 1 1.123456789012345E-2 0 -> 0.01123456789012345
-ddfma371443 fma 1 1.123456789012345E-3 0 -> 0.001123456789012345
-ddfma371444 fma 1 1.123456789012345E-4 0 -> 0.0001123456789012345
-ddfma371445 fma 1 1.123456789012345E-5 0 -> 0.00001123456789012345
-ddfma371446 fma 1 1.123456789012345E-6 0 -> 0.000001123456789012345
-ddfma371447 fma 1 1.123456789012345E-7 0 -> 1.123456789012345E-7
-ddfma371448 fma 1 1.123456789012345E-8 0 -> 1.123456789012345E-8
-ddfma371449 fma 1 1.123456789012345E-9 0 -> 1.123456789012345E-9
-ddfma371450 fma 1 1.123456789012345E-10 0 -> 1.123456789012345E-10
-ddfma371451 fma 1 1.123456789012345E-11 0 -> 1.123456789012345E-11
-ddfma371452 fma 1 1.123456789012345E-12 0 -> 1.123456789012345E-12
-ddfma371453 fma 1 1.123456789012345E-13 0 -> 1.123456789012345E-13
-ddfma371454 fma 1 1.123456789012345E-14 0 -> 1.123456789012345E-14
-ddfma371455 fma 1 1.123456789012345E-15 0 -> 1.123456789012345E-15
-ddfma371456 fma 1 1.123456789012345E-16 0 -> 1.123456789012345E-16
-ddfma371457 fma 1 1.123456789012345E-17 0 -> 1.123456789012345E-17
-ddfma371458 fma 1 1.123456789012345E-18 0 -> 1.123456789012345E-18
-ddfma371459 fma 1 1.123456789012345E-19 0 -> 1.123456789012345E-19
-
--- same, Es on the 0
-ddfma371460 fma 1 1.123456789012345 0E-0 -> 1.123456789012345
-ddfma371461 fma 1 1.123456789012345 0E-1 -> 1.123456789012345
-ddfma371462 fma 1 1.123456789012345 0E-2 -> 1.123456789012345
-ddfma371463 fma 1 1.123456789012345 0E-3 -> 1.123456789012345
-ddfma371464 fma 1 1.123456789012345 0E-4 -> 1.123456789012345
-ddfma371465 fma 1 1.123456789012345 0E-5 -> 1.123456789012345
-ddfma371466 fma 1 1.123456789012345 0E-6 -> 1.123456789012345
-ddfma371467 fma 1 1.123456789012345 0E-7 -> 1.123456789012345
-ddfma371468 fma 1 1.123456789012345 0E-8 -> 1.123456789012345
-ddfma371469 fma 1 1.123456789012345 0E-9 -> 1.123456789012345
-ddfma371470 fma 1 1.123456789012345 0E-10 -> 1.123456789012345
-ddfma371471 fma 1 1.123456789012345 0E-11 -> 1.123456789012345
-ddfma371472 fma 1 1.123456789012345 0E-12 -> 1.123456789012345
-ddfma371473 fma 1 1.123456789012345 0E-13 -> 1.123456789012345
-ddfma371474 fma 1 1.123456789012345 0E-14 -> 1.123456789012345
-ddfma371475 fma 1 1.123456789012345 0E-15 -> 1.123456789012345
--- next four flag Rounded because the 0 extends the result
-ddfma371476 fma 1 1.123456789012345 0E-16 -> 1.123456789012345 Rounded
-ddfma371477 fma 1 1.123456789012345 0E-17 -> 1.123456789012345 Rounded
-ddfma371478 fma 1 1.123456789012345 0E-18 -> 1.123456789012345 Rounded
-ddfma371479 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
-ddfma371500 fma 1 0 0E-19 -> 0E-19
-ddfma371501 fma 1 -0 0E-19 -> 0E-19
-ddfma371502 fma 1 0 -0E-19 -> 0E-19
-ddfma371503 fma 1 -0 -0E-19 -> -0E-19
--- exact zeros from non-zeros
-ddfma371511 fma 1 -11 11 -> 0
-ddfma371512 fma 1 11 -11 -> 0
-
-rounding: half_down
--- exact zeros from zeros
-ddfma371520 fma 1 0 0E-19 -> 0E-19
-ddfma371521 fma 1 -0 0E-19 -> 0E-19
-ddfma371522 fma 1 0 -0E-19 -> 0E-19
-ddfma371523 fma 1 -0 -0E-19 -> -0E-19
--- exact zeros from non-zeros
-ddfma371531 fma 1 -11 11 -> 0
-ddfma371532 fma 1 11 -11 -> 0
-
-rounding: half_even
--- exact zeros from zeros
-ddfma371540 fma 1 0 0E-19 -> 0E-19
-ddfma371541 fma 1 -0 0E-19 -> 0E-19
-ddfma371542 fma 1 0 -0E-19 -> 0E-19
-ddfma371543 fma 1 -0 -0E-19 -> -0E-19
--- exact zeros from non-zeros
-ddfma371551 fma 1 -11 11 -> 0
-ddfma371552 fma 1 11 -11 -> 0
-
-rounding: up
--- exact zeros from zeros
-ddfma371560 fma 1 0 0E-19 -> 0E-19
-ddfma371561 fma 1 -0 0E-19 -> 0E-19
-ddfma371562 fma 1 0 -0E-19 -> 0E-19
-ddfma371563 fma 1 -0 -0E-19 -> -0E-19
--- exact zeros from non-zeros
-ddfma371571 fma 1 -11 11 -> 0
-ddfma371572 fma 1 11 -11 -> 0
-
-rounding: down
--- exact zeros from zeros
-ddfma371580 fma 1 0 0E-19 -> 0E-19
-ddfma371581 fma 1 -0 0E-19 -> 0E-19
-ddfma371582 fma 1 0 -0E-19 -> 0E-19
-ddfma371583 fma 1 -0 -0E-19 -> -0E-19
--- exact zeros from non-zeros
-ddfma371591 fma 1 -11 11 -> 0
-ddfma371592 fma 1 11 -11 -> 0
-
-rounding: ceiling
--- exact zeros from zeros
-ddfma371600 fma 1 0 0E-19 -> 0E-19
-ddfma371601 fma 1 -0 0E-19 -> 0E-19
-ddfma371602 fma 1 0 -0E-19 -> 0E-19
-ddfma371603 fma 1 -0 -0E-19 -> -0E-19
--- exact zeros from non-zeros
-ddfma371611 fma 1 -11 11 -> 0
-ddfma371612 fma 1 11 -11 -> 0
-
--- and the extra-special ugly case; unusual minuses marked by -- *
-rounding: floor
--- exact zeros from zeros
-ddfma371620 fma 1 0 0E-19 -> 0E-19
-ddfma371621 fma 1 -0 0E-19 -> -0E-19 -- *
-ddfma371622 fma 1 0 -0E-19 -> -0E-19 -- *
-ddfma371623 fma 1 -0 -0E-19 -> -0E-19
--- exact zeros from non-zeros
-ddfma371631 fma 1 -11 11 -> -0 -- *
-ddfma371632 fma 1 11 -11 -> -0 -- *
-
--- Examples from SQL proposal (Krishna Kulkarni)
-ddfma371701 fma 1 130E-2 120E-2 -> 2.50
-ddfma371702 fma 1 130E-2 12E-1 -> 2.50
-ddfma371703 fma 1 130E-2 1E0 -> 2.30
-ddfma371704 fma 1 1E2 1E4 -> 1.01E+4
-ddfma371705 fma 1 130E-2 -120E-2 -> 0.10
-ddfma371706 fma 1 130E-2 -12E-1 -> 0.10
-ddfma371707 fma 1 130E-2 -1E0 -> 0.30
-ddfma371708 fma 1 1E2 -1E4 -> -9.9E+3
-
--- Gappy coefficients; check residue handling even with full coefficient gap
-rounding: half_even
-
-ddfma375001 fma 1 1234567890123456 1 -> 1234567890123457
-ddfma375002 fma 1 1234567890123456 0.6 -> 1234567890123457 Inexact Rounded
-ddfma375003 fma 1 1234567890123456 0.06 -> 1234567890123456 Inexact Rounded
-ddfma375004 fma 1 1234567890123456 6E-3 -> 1234567890123456 Inexact Rounded
-ddfma375005 fma 1 1234567890123456 6E-4 -> 1234567890123456 Inexact Rounded
-ddfma375006 fma 1 1234567890123456 6E-5 -> 1234567890123456 Inexact Rounded
-ddfma375007 fma 1 1234567890123456 6E-6 -> 1234567890123456 Inexact Rounded
-ddfma375008 fma 1 1234567890123456 6E-7 -> 1234567890123456 Inexact Rounded
-ddfma375009 fma 1 1234567890123456 6E-8 -> 1234567890123456 Inexact Rounded
-ddfma375010 fma 1 1234567890123456 6E-9 -> 1234567890123456 Inexact Rounded
-ddfma375011 fma 1 1234567890123456 6E-10 -> 1234567890123456 Inexact Rounded
-ddfma375012 fma 1 1234567890123456 6E-11 -> 1234567890123456 Inexact Rounded
-ddfma375013 fma 1 1234567890123456 6E-12 -> 1234567890123456 Inexact Rounded
-ddfma375014 fma 1 1234567890123456 6E-13 -> 1234567890123456 Inexact Rounded
-ddfma375015 fma 1 1234567890123456 6E-14 -> 1234567890123456 Inexact Rounded
-ddfma375016 fma 1 1234567890123456 6E-15 -> 1234567890123456 Inexact Rounded
-ddfma375017 fma 1 1234567890123456 6E-16 -> 1234567890123456 Inexact Rounded
-ddfma375018 fma 1 1234567890123456 6E-17 -> 1234567890123456 Inexact Rounded
-ddfma375019 fma 1 1234567890123456 6E-18 -> 1234567890123456 Inexact Rounded
-ddfma375020 fma 1 1234567890123456 6E-19 -> 1234567890123456 Inexact Rounded
-ddfma375021 fma 1 1234567890123456 6E-20 -> 1234567890123456 Inexact Rounded
-
--- widening second argument at gap
-ddfma375030 fma 1 12345678 1 -> 12345679
-ddfma375031 fma 1 12345678 0.1 -> 12345678.1
-ddfma375032 fma 1 12345678 0.12 -> 12345678.12
-ddfma375033 fma 1 12345678 0.123 -> 12345678.123
-ddfma375034 fma 1 12345678 0.1234 -> 12345678.1234
-ddfma375035 fma 1 12345678 0.12345 -> 12345678.12345
-ddfma375036 fma 1 12345678 0.123456 -> 12345678.123456
-ddfma375037 fma 1 12345678 0.1234567 -> 12345678.1234567
-ddfma375038 fma 1 12345678 0.12345678 -> 12345678.12345678
-ddfma375039 fma 1 12345678 0.123456789 -> 12345678.12345679 Inexact Rounded
-ddfma375040 fma 1 12345678 0.123456785 -> 12345678.12345678 Inexact Rounded
-ddfma375041 fma 1 12345678 0.1234567850 -> 12345678.12345678 Inexact Rounded
-ddfma375042 fma 1 12345678 0.1234567851 -> 12345678.12345679 Inexact Rounded
-ddfma375043 fma 1 12345678 0.12345678501 -> 12345678.12345679 Inexact Rounded
-ddfma375044 fma 1 12345678 0.123456785001 -> 12345678.12345679 Inexact Rounded
-ddfma375045 fma 1 12345678 0.1234567850001 -> 12345678.12345679 Inexact Rounded
-ddfma375046 fma 1 12345678 0.12345678500001 -> 12345678.12345679 Inexact Rounded
-ddfma375047 fma 1 12345678 0.123456785000001 -> 12345678.12345679 Inexact Rounded
-ddfma375048 fma 1 12345678 0.1234567850000001 -> 12345678.12345679 Inexact Rounded
-ddfma375049 fma 1 12345678 0.1234567850000000 -> 12345678.12345678 Inexact Rounded
--- 90123456
-rounding: half_even
-ddfma375050 fma 1 12345678 0.0234567750000000 -> 12345678.02345678 Inexact Rounded
-ddfma375051 fma 1 12345678 0.0034567750000000 -> 12345678.00345678 Inexact Rounded
-ddfma375052 fma 1 12345678 0.0004567750000000 -> 12345678.00045678 Inexact Rounded
-ddfma375053 fma 1 12345678 0.0000567750000000 -> 12345678.00005678 Inexact Rounded
-ddfma375054 fma 1 12345678 0.0000067750000000 -> 12345678.00000678 Inexact Rounded
-ddfma375055 fma 1 12345678 0.0000007750000000 -> 12345678.00000078 Inexact Rounded
-ddfma375056 fma 1 12345678 0.0000000750000000 -> 12345678.00000008 Inexact Rounded
-ddfma375057 fma 1 12345678 0.0000000050000000 -> 12345678.00000000 Inexact Rounded
-ddfma375060 fma 1 12345678 0.0234567750000001 -> 12345678.02345678 Inexact Rounded
-ddfma375061 fma 1 12345678 0.0034567750000001 -> 12345678.00345678 Inexact Rounded
-ddfma375062 fma 1 12345678 0.0004567750000001 -> 12345678.00045678 Inexact Rounded
-ddfma375063 fma 1 12345678 0.0000567750000001 -> 12345678.00005678 Inexact Rounded
-ddfma375064 fma 1 12345678 0.0000067750000001 -> 12345678.00000678 Inexact Rounded
-ddfma375065 fma 1 12345678 0.0000007750000001 -> 12345678.00000078 Inexact Rounded
-ddfma375066 fma 1 12345678 0.0000000750000001 -> 12345678.00000008 Inexact Rounded
-ddfma375067 fma 1 12345678 0.0000000050000001 -> 12345678.00000001 Inexact Rounded
--- far-out residues (full coefficient gap is 16+15 digits)
-rounding: up
-ddfma375070 fma 1 12345678 1E-8 -> 12345678.00000001
-ddfma375071 fma 1 12345678 1E-9 -> 12345678.00000001 Inexact Rounded
-ddfma375072 fma 1 12345678 1E-10 -> 12345678.00000001 Inexact Rounded
-ddfma375073 fma 1 12345678 1E-11 -> 12345678.00000001 Inexact Rounded
-ddfma375074 fma 1 12345678 1E-12 -> 12345678.00000001 Inexact Rounded
-ddfma375075 fma 1 12345678 1E-13 -> 12345678.00000001 Inexact Rounded
-ddfma375076 fma 1 12345678 1E-14 -> 12345678.00000001 Inexact Rounded
-ddfma375077 fma 1 12345678 1E-15 -> 12345678.00000001 Inexact Rounded
-ddfma375078 fma 1 12345678 1E-16 -> 12345678.00000001 Inexact Rounded
-ddfma375079 fma 1 12345678 1E-17 -> 12345678.00000001 Inexact Rounded
-ddfma375080 fma 1 12345678 1E-18 -> 12345678.00000001 Inexact Rounded
-ddfma375081 fma 1 12345678 1E-19 -> 12345678.00000001 Inexact Rounded
-ddfma375082 fma 1 12345678 1E-20 -> 12345678.00000001 Inexact Rounded
-ddfma375083 fma 1 12345678 1E-25 -> 12345678.00000001 Inexact Rounded
-ddfma375084 fma 1 12345678 1E-30 -> 12345678.00000001 Inexact Rounded
-ddfma375085 fma 1 12345678 1E-31 -> 12345678.00000001 Inexact Rounded
-ddfma375086 fma 1 12345678 1E-32 -> 12345678.00000001 Inexact Rounded
-ddfma375087 fma 1 12345678 1E-33 -> 12345678.00000001 Inexact Rounded
-ddfma375088 fma 1 12345678 1E-34 -> 12345678.00000001 Inexact Rounded
-ddfma375089 fma 1 12345678 1E-35 -> 12345678.00000001 Inexact Rounded
-
--- desctructive subtraction (from remainder tests)
-
--- +++ some of these will be off-by-one remainder vs remainderNear
-
-ddfma4000 fma -1234567890123454 1.000000000000001 1234567890123456 -> 0.765432109876546
-ddfma4001 fma -1234567890123443 1.00000000000001 1234567890123456 -> 0.65432109876557
-ddfma4002 fma -1234567890123332 1.0000000000001 1234567890123456 -> 0.5432109876668
-ddfma4003 fma -308641972530863 4.000000000000001 1234567890123455 -> 2.691358027469137
-ddfma4004 fma -308641972530863 4.000000000000001 1234567890123456 -> 3.691358027469137
-ddfma4005 fma -246913578024696 4.9999999999999 1234567890123456 -> 0.6913578024696
-ddfma4006 fma -246913578024691 4.99999999999999 1234567890123456 -> 3.46913578024691
-ddfma4007 fma -246913578024691 4.999999999999999 1234567890123456 -> 1.246913578024691
-ddfma4008 fma -246913578024691 5.000000000000001 1234567890123456 -> 0.753086421975309
-ddfma4009 fma -246913578024690 5.00000000000001 1234567890123456 -> 3.53086421975310
-ddfma4010 fma -246913578024686 5.0000000000001 1234567890123456 -> 1.3086421975314
-ddfma4011 fma -1234567890123455 1.000000000000001 1234567890123456 -> -0.234567890123455
-ddfma4012 fma -1234567890123444 1.00000000000001 1234567890123456 -> -0.34567890123444
-ddfma4013 fma -1234567890123333 1.0000000000001 1234567890123456 -> -0.4567890123333
-ddfma4014 fma -308641972530864 4.000000000000001 1234567890123455 -> -1.308641972530864
-ddfma4015 fma -308641972530864 4.000000000000001 1234567890123456 -> -0.308641972530864
-ddfma4016 fma -246913578024696 4.9999999999999 1234567890123456 -> 0.6913578024696
-ddfma4017 fma -246913578024692 4.99999999999999 1234567890123456 -> -1.53086421975308
-ddfma4018 fma -246913578024691 4.999999999999999 1234567890123456 -> 1.246913578024691
-ddfma4019 fma -246913578024691 5.000000000000001 1234567890123456 -> 0.753086421975309
-ddfma4020 fma -246913578024691 5.00000000000001 1234567890123456 -> -1.46913578024691
-ddfma4021 fma -246913578024686 5.0000000000001 1234567890123456 -> 1.3086421975314
-
-
--- Null tests
-ddfma39990 fma 1 10 # -> NaN Invalid_operation
-ddfma39991 fma 1 # 10 -> NaN Invalid_operation
-
-
+------------------------------------------------------------------------ +-- ddFMA.decTest -- decDouble Fused Multiply Add -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +-- 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 +ddfma0001 fma 1 1 1 -> 2 +ddfma0002 fma 1 1 2 -> 3 +ddfma0003 fma 2 2 3 -> 7 +ddfma0004 fma 9 9 9 -> 90 +ddfma0005 fma -1 1 1 -> 0 +ddfma0006 fma -1 1 2 -> 1 +ddfma0007 fma -2 2 3 -> -1 +ddfma0008 fma -9 9 9 -> -72 +ddfma0011 fma 1 -1 1 -> 0 +ddfma0012 fma 1 -1 2 -> 1 +ddfma0013 fma 2 -2 3 -> -1 +ddfma0014 fma 9 -9 9 -> -72 +ddfma0015 fma 1 1 -1 -> 0 +ddfma0016 fma 1 1 -2 -> -1 +ddfma0017 fma 2 2 -3 -> 1 +ddfma0018 fma 9 9 -9 -> 72 + +-- non-integer exacts +ddfma0100 fma 25.2 63.6 -438 -> 1164.72 +ddfma0101 fma 0.301 0.380 334 -> 334.114380 +ddfma0102 fma 49.2 -4.8 23.3 -> -212.86 +ddfma0103 fma 4.22 0.079 -94.6 -> -94.26662 +ddfma0104 fma 903 0.797 0.887 -> 720.578 +ddfma0105 fma 6.13 -161 65.9 -> -921.03 +ddfma0106 fma 28.2 727 5.45 -> 20506.85 +ddfma0107 fma 4 605 688 -> 3108 +ddfma0108 fma 93.3 0.19 0.226 -> 17.953 +ddfma0109 fma 0.169 -341 5.61 -> -52.019 +ddfma0110 fma -72.2 30 -51.2 -> -2217.2 +ddfma0111 fma -0.409 13 20.4 -> 15.083 +ddfma0112 fma 317 77.0 19.0 -> 24428.0 +ddfma0113 fma 47 6.58 1.62 -> 310.88 +ddfma0114 fma 1.36 0.984 0.493 -> 1.83124 +ddfma0115 fma 72.7 274 1.56 -> 19921.36 +ddfma0116 fma 335 847 83 -> 283828 +ddfma0117 fma 666 0.247 25.4 -> 189.902 +ddfma0118 fma -3.87 3.06 78.0 -> 66.1578 +ddfma0119 fma 0.742 192 35.6 -> 178.064 +ddfma0120 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] +-- -> 7.123356429257969E+16 +ddfma0201 fma 27583489.6645 2582471078.04 2593183.42371 -> 7.123356429257970E+16 Inexact Rounded +-- -> 22813275328.80506 +ddfma0208 fma 24280.355566 939577.397653 2032.013252 -> 22813275328.80507 Inexact Rounded +-- -> -2.030397734278062E+16 +ddfma0209 fma 7848976432 -2586831.2281 137903.517909 -> -2.030397734278061E+16 Inexact Rounded +-- -> 2040774094814.077 +ddfma0217 fma 56890.388731 35872030.4255 339337.123410 -> 2040774094814.078 Inexact Rounded +-- -> 2.714469575205049E+18 +ddfma0220 fma 7533543.57445 360317763928 5073392.31638 -> 2.714469575205050E+18 Inexact Rounded +-- -> 1.011676297716716E+19 +ddfma0223 fma 739945255.563 13672312784.1 -994381.53572 -> 1.011676297716715E+19 Inexact Rounded +-- -> -2.914135721455315E+23 +ddfma0224 fma -413510957218 704729988550 9234162614.0 -> -2.914135721455314E+23 Inexact Rounded +-- -> 2.620119863365786E+17 +ddfma0226 fma 437484.00601 598906432790 894450638.442 -> 2.620119863365787E+17 Inexact Rounded +-- -> 1.272647995808178E+19 +ddfma0253 fma 73287556929 173651305.784 -358312568.389 -> 1.272647995808177E+19 Inexact Rounded +-- -> -1.753769320861851E+18 +ddfma0257 fma 203258304486 -8628278.8066 153127.446727 -> -1.753769320861850E+18 Inexact Rounded +-- -> -1.550737835263346E+17 +ddfma0260 fma 42560533.1774 -3643605282.86 178277.96377 -> -1.550737835263347E+17 Inexact Rounded +-- -> 2.897624620576005E+22 +ddfma0269 fma 142656587375 203118879670 604576103991 -> 2.897624620576004E+22 Inexact Rounded + +-- Cases where multiply would overflow or underflow if separate +fma0300 fma 9e+384 10 0 -> Infinity Overflow Inexact Rounded +fma0301 fma 1e+384 10 0 -> Infinity Overflow Inexact Rounded +fma0302 fma 1e+384 10 -1e+384 -> 9.000000000000000E+384 Clamped +fma0303 fma 1e+384 10 -9e+384 -> 1.000000000000000E+384 Clamped +-- subnormal etc. +fma0305 fma 1e-398 0.1 0 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +fma0306 fma 1e-398 0.1 1 -> 1.000000000000000 Inexact Rounded +fma0307 fma 1e-398 0.1 1e-398 -> 1E-398 Underflow Subnormal Inexact Rounded + +-- Infinite combinations +ddfma0800 fma Inf Inf Inf -> Infinity +ddfma0801 fma Inf Inf -Inf -> NaN Invalid_operation +ddfma0802 fma Inf -Inf Inf -> NaN Invalid_operation +ddfma0803 fma Inf -Inf -Inf -> -Infinity +ddfma0804 fma -Inf Inf Inf -> NaN Invalid_operation +ddfma0805 fma -Inf Inf -Inf -> -Infinity +ddfma0806 fma -Inf -Inf Inf -> Infinity +ddfma0807 fma -Inf -Inf -Inf -> NaN Invalid_operation + +-- Triple NaN propagation +ddfma0900 fma NaN2 NaN3 NaN5 -> NaN2 +ddfma0901 fma 0 NaN3 NaN5 -> NaN3 +ddfma0902 fma 0 0 NaN5 -> NaN5 +-- first sNaN wins (consider qNaN from earlier sNaN being +-- overridden by an sNaN in third operand) +ddfma0903 fma sNaN1 sNaN2 sNaN3 -> NaN1 Invalid_operation +ddfma0904 fma 0 sNaN2 sNaN3 -> NaN2 Invalid_operation +ddfma0905 fma 0 0 sNaN3 -> NaN3 Invalid_operation +ddfma0906 fma sNaN1 sNaN2 sNaN3 -> NaN1 Invalid_operation +ddfma0907 fma NaN7 sNaN2 sNaN3 -> NaN2 Invalid_operation +ddfma0908 fma NaN7 NaN5 sNaN3 -> NaN3 Invalid_operation + +-- MULTIPLICATION TESTS ------------------------------------------------ + +-- sanity checks +ddfma2000 fma 2 2 0e+384 -> 4 +ddfma2001 fma 2 3 0e+384 -> 6 +ddfma2002 fma 5 1 0e+384 -> 5 +ddfma2003 fma 5 2 0e+384 -> 10 +ddfma2004 fma 1.20 2 0e+384 -> 2.40 +ddfma2005 fma 1.20 0 0e+384 -> 0.00 +ddfma2006 fma 1.20 -2 0e+384 -> -2.40 +ddfma2007 fma -1.20 2 0e+384 -> -2.40 +ddfma2008 fma -1.20 0 0e+384 -> 0.00 +ddfma2009 fma -1.20 -2 0e+384 -> 2.40 +ddfma2010 fma 5.09 7.1 0e+384 -> 36.139 +ddfma2011 fma 2.5 4 0e+384 -> 10.0 +ddfma2012 fma 2.50 4 0e+384 -> 10.00 +ddfma2013 fma 1.23456789 1.00000000 0e+384 -> 1.234567890000000 Rounded +ddfma2015 fma 2.50 4 0e+384 -> 10.00 +ddfma2016 fma 9.999999999 9.999999999 0e+384 -> 99.99999998000000 Inexact Rounded +ddfma2017 fma 9.999999999 -9.999999999 0e+384 -> -99.99999998000000 Inexact Rounded +ddfma2018 fma -9.999999999 9.999999999 0e+384 -> -99.99999998000000 Inexact Rounded +ddfma2019 fma -9.999999999 -9.999999999 0e+384 -> 99.99999998000000 Inexact Rounded + +-- zeros, etc. +ddfma2021 fma 0 0 0e+384 -> 0 +ddfma2022 fma 0 -0 0e+384 -> 0 +ddfma2023 fma -0 0 0e+384 -> 0 +ddfma2024 fma -0 -0 0e+384 -> 0 +ddfma2025 fma -0.0 -0.0 0e+384 -> 0.00 +ddfma2026 fma -0.0 -0.0 0e+384 -> 0.00 +ddfma2027 fma -0.0 -0.0 0e+384 -> 0.00 +ddfma2028 fma -0.0 -0.0 0e+384 -> 0.00 +ddfma2030 fma 5.00 1E-3 0e+384 -> 0.00500 +ddfma2031 fma 00.00 0.000 0e+384 -> 0.00000 +ddfma2032 fma 00.00 0E-3 0e+384 -> 0.00000 -- rhs is 0 +ddfma2033 fma 0E-3 00.00 0e+384 -> 0.00000 -- lhs is 0 +ddfma2034 fma -5.00 1E-3 0e+384 -> -0.00500 +ddfma2035 fma -00.00 0.000 0e+384 -> 0.00000 +ddfma2036 fma -00.00 0E-3 0e+384 -> 0.00000 -- rhs is 0 +ddfma2037 fma -0E-3 00.00 0e+384 -> 0.00000 -- lhs is 0 +ddfma2038 fma 5.00 -1E-3 0e+384 -> -0.00500 +ddfma2039 fma 00.00 -0.000 0e+384 -> 0.00000 +ddfma2040 fma 00.00 -0E-3 0e+384 -> 0.00000 -- rhs is 0 +ddfma2041 fma 0E-3 -00.00 0e+384 -> 0.00000 -- lhs is 0 +ddfma2042 fma -5.00 -1E-3 0e+384 -> 0.00500 +ddfma2043 fma -00.00 -0.000 0e+384 -> 0.00000 +ddfma2044 fma -00.00 -0E-3 0e+384 -> 0.00000 -- rhs is 0 +ddfma2045 fma -0E-3 -00.00 -0e+384 -> 0.00000 -- lhs is 0 +ddfma2046 fma -0E-3 00.00 -0e+384 -> -0.00000 +ddfma2047 fma 0E-3 -00.00 -0e+384 -> -0.00000 +ddfma2048 fma 0E-3 00.00 -0e+384 -> 0.00000 + +-- examples from decarith +ddfma2050 fma 1.20 3 0e+384 -> 3.60 +ddfma2051 fma 7 3 0e+384 -> 21 +ddfma2052 fma 0.9 0.8 0e+384 -> 0.72 +ddfma2053 fma 0.9 -0 0e+384 -> 0.0 +ddfma2054 fma 654321 654321 0e+384 -> 428135971041 + +ddfma2060 fma 123.45 1e7 0e+384 -> 1.2345E+9 +ddfma2061 fma 123.45 1e8 0e+384 -> 1.2345E+10 +ddfma2062 fma 123.45 1e+9 0e+384 -> 1.2345E+11 +ddfma2063 fma 123.45 1e10 0e+384 -> 1.2345E+12 +ddfma2064 fma 123.45 1e11 0e+384 -> 1.2345E+13 +ddfma2065 fma 123.45 1e12 0e+384 -> 1.2345E+14 +ddfma2066 fma 123.45 1e13 0e+384 -> 1.2345E+15 + + +-- test some intermediate lengths +-- 1234567890123456 +ddfma2080 fma 0.1 1230123456456789 0e+384 -> 123012345645678.9 +ddfma2084 fma 0.1 1230123456456789 0e+384 -> 123012345645678.9 +ddfma2090 fma 1230123456456789 0.1 0e+384 -> 123012345645678.9 +ddfma2094 fma 1230123456456789 0.1 0e+384 -> 123012345645678.9 + +-- test some more edge cases and carries +ddfma2101 fma 9 9 0e+384 -> 81 +ddfma2102 fma 9 90 0e+384 -> 810 +ddfma2103 fma 9 900 0e+384 -> 8100 +ddfma2104 fma 9 9000 0e+384 -> 81000 +ddfma2105 fma 9 90000 0e+384 -> 810000 +ddfma2106 fma 9 900000 0e+384 -> 8100000 +ddfma2107 fma 9 9000000 0e+384 -> 81000000 +ddfma2108 fma 9 90000000 0e+384 -> 810000000 +ddfma2109 fma 9 900000000 0e+384 -> 8100000000 +ddfma2110 fma 9 9000000000 0e+384 -> 81000000000 +ddfma2111 fma 9 90000000000 0e+384 -> 810000000000 +ddfma2112 fma 9 900000000000 0e+384 -> 8100000000000 +ddfma2113 fma 9 9000000000000 0e+384 -> 81000000000000 +ddfma2114 fma 9 90000000000000 0e+384 -> 810000000000000 +ddfma2115 fma 9 900000000000000 0e+384 -> 8100000000000000 +--ddfma2116 fma 9 9000000000000000 0e+384 -> 81000000000000000 +--ddfma2117 fma 9 90000000000000000 0e+384 -> 810000000000000000 +--ddfma2118 fma 9 900000000000000000 0e+384 -> 8100000000000000000 +--ddfma2119 fma 9 9000000000000000000 0e+384 -> 81000000000000000000 +--ddfma2120 fma 9 90000000000000000000 0e+384 -> 810000000000000000000 +--ddfma2121 fma 9 900000000000000000000 0e+384 -> 8100000000000000000000 +--ddfma2122 fma 9 9000000000000000000000 0e+384 -> 81000000000000000000000 +--ddfma2123 fma 9 90000000000000000000000 0e+384 -> 810000000000000000000000 +-- test some more edge cases without carries +ddfma2131 fma 3 3 0e+384 -> 9 +ddfma2132 fma 3 30 0e+384 -> 90 +ddfma2133 fma 3 300 0e+384 -> 900 +ddfma2134 fma 3 3000 0e+384 -> 9000 +ddfma2135 fma 3 30000 0e+384 -> 90000 +ddfma2136 fma 3 300000 0e+384 -> 900000 +ddfma2137 fma 3 3000000 0e+384 -> 9000000 +ddfma2138 fma 3 30000000 0e+384 -> 90000000 +ddfma2139 fma 3 300000000 0e+384 -> 900000000 +ddfma2140 fma 3 3000000000 0e+384 -> 9000000000 +ddfma2141 fma 3 30000000000 0e+384 -> 90000000000 +ddfma2142 fma 3 300000000000 0e+384 -> 900000000000 +ddfma2143 fma 3 3000000000000 0e+384 -> 9000000000000 +ddfma2144 fma 3 30000000000000 0e+384 -> 90000000000000 +ddfma2145 fma 3 300000000000000 0e+384 -> 900000000000000 + +-- test some edge cases with exact rounding +ddfma2301 fma 9 9 0e+384 -> 81 +ddfma2302 fma 9 90 0e+384 -> 810 +ddfma2303 fma 9 900 0e+384 -> 8100 +ddfma2304 fma 9 9000 0e+384 -> 81000 +ddfma2305 fma 9 90000 0e+384 -> 810000 +ddfma2306 fma 9 900000 0e+384 -> 8100000 +ddfma2307 fma 9 9000000 0e+384 -> 81000000 +ddfma2308 fma 9 90000000 0e+384 -> 810000000 +ddfma2309 fma 9 900000000 0e+384 -> 8100000000 +ddfma2310 fma 9 9000000000 0e+384 -> 81000000000 +ddfma2311 fma 9 90000000000 0e+384 -> 810000000000 +ddfma2312 fma 9 900000000000 0e+384 -> 8100000000000 +ddfma2313 fma 9 9000000000000 0e+384 -> 81000000000000 +ddfma2314 fma 9 90000000000000 0e+384 -> 810000000000000 +ddfma2315 fma 9 900000000000000 0e+384 -> 8100000000000000 +ddfma2316 fma 9 9000000000000000 0e+384 -> 8.100000000000000E+16 Rounded +ddfma2317 fma 90 9000000000000000 0e+384 -> 8.100000000000000E+17 Rounded +ddfma2318 fma 900 9000000000000000 0e+384 -> 8.100000000000000E+18 Rounded +ddfma2319 fma 9000 9000000000000000 0e+384 -> 8.100000000000000E+19 Rounded +ddfma2320 fma 90000 9000000000000000 0e+384 -> 8.100000000000000E+20 Rounded +ddfma2321 fma 900000 9000000000000000 0e+384 -> 8.100000000000000E+21 Rounded +ddfma2322 fma 9000000 9000000000000000 0e+384 -> 8.100000000000000E+22 Rounded +ddfma2323 fma 90000000 9000000000000000 0e+384 -> 8.100000000000000E+23 Rounded + +-- tryzeros cases +ddfma2504 fma 0E-260 1000E-260 0e+384 -> 0E-398 Clamped +ddfma2505 fma 100E+260 0E+260 0e+384 -> 0E+369 Clamped + +-- mixed with zeros +ddfma2541 fma 0 -1 0e+384 -> 0 +ddfma2542 fma -0 -1 0e+384 -> 0 +ddfma2543 fma 0 1 0e+384 -> 0 +ddfma2544 fma -0 1 0e+384 -> 0 +ddfma2545 fma -1 0 0e+384 -> 0 +ddfma2546 fma -1 -0 0e+384 -> 0 +ddfma2547 fma 1 0 0e+384 -> 0 +ddfma2548 fma 1 -0 0e+384 -> 0 + +ddfma2551 fma 0.0 -1 0e+384 -> 0.0 +ddfma2552 fma -0.0 -1 0e+384 -> 0.0 +ddfma2553 fma 0.0 1 0e+384 -> 0.0 +ddfma2554 fma -0.0 1 0e+384 -> 0.0 +ddfma2555 fma -1.0 0 0e+384 -> 0.0 +ddfma2556 fma -1.0 -0 0e+384 -> 0.0 +ddfma2557 fma 1.0 0 0e+384 -> 0.0 +ddfma2558 fma 1.0 -0 0e+384 -> 0.0 + +ddfma2561 fma 0 -1.0 0e+384 -> 0.0 +ddfma2562 fma -0 -1.0 0e+384 -> 0.0 +ddfma2563 fma 0 1.0 0e+384 -> 0.0 +ddfma2564 fma -0 1.0 0e+384 -> 0.0 +ddfma2565 fma -1 0.0 0e+384 -> 0.0 +ddfma2566 fma -1 -0.0 0e+384 -> 0.0 +ddfma2567 fma 1 0.0 0e+384 -> 0.0 +ddfma2568 fma 1 -0.0 0e+384 -> 0.0 + +ddfma2571 fma 0.0 -1.0 0e+384 -> 0.00 +ddfma2572 fma -0.0 -1.0 0e+384 -> 0.00 +ddfma2573 fma 0.0 1.0 0e+384 -> 0.00 +ddfma2574 fma -0.0 1.0 0e+384 -> 0.00 +ddfma2575 fma -1.0 0.0 0e+384 -> 0.00 +ddfma2576 fma -1.0 -0.0 0e+384 -> 0.00 +ddfma2577 fma 1.0 0.0 0e+384 -> 0.00 +ddfma2578 fma 1.0 -0.0 0e+384 -> 0.00 + +-- Specials +ddfma2580 fma Inf -Inf 0e+384 -> -Infinity +ddfma2581 fma Inf -1000 0e+384 -> -Infinity +ddfma2582 fma Inf -1 0e+384 -> -Infinity +ddfma2583 fma Inf -0 0e+384 -> NaN Invalid_operation +ddfma2584 fma Inf 0 0e+384 -> NaN Invalid_operation +ddfma2585 fma Inf 1 0e+384 -> Infinity +ddfma2586 fma Inf 1000 0e+384 -> Infinity +ddfma2587 fma Inf Inf 0e+384 -> Infinity +ddfma2588 fma -1000 Inf 0e+384 -> -Infinity +ddfma2589 fma -Inf Inf 0e+384 -> -Infinity +ddfma2590 fma -1 Inf 0e+384 -> -Infinity +ddfma2591 fma -0 Inf 0e+384 -> NaN Invalid_operation +ddfma2592 fma 0 Inf 0e+384 -> NaN Invalid_operation +ddfma2593 fma 1 Inf 0e+384 -> Infinity +ddfma2594 fma 1000 Inf 0e+384 -> Infinity +ddfma2595 fma Inf Inf 0e+384 -> Infinity + +ddfma2600 fma -Inf -Inf 0e+384 -> Infinity +ddfma2601 fma -Inf -1000 0e+384 -> Infinity +ddfma2602 fma -Inf -1 0e+384 -> Infinity +ddfma2603 fma -Inf -0 0e+384 -> NaN Invalid_operation +ddfma2604 fma -Inf 0 0e+384 -> NaN Invalid_operation +ddfma2605 fma -Inf 1 0e+384 -> -Infinity +ddfma2606 fma -Inf 1000 0e+384 -> -Infinity +ddfma2607 fma -Inf Inf 0e+384 -> -Infinity +ddfma2608 fma -1000 Inf 0e+384 -> -Infinity +ddfma2609 fma -Inf -Inf 0e+384 -> Infinity +ddfma2610 fma -1 -Inf 0e+384 -> Infinity +ddfma2611 fma -0 -Inf 0e+384 -> NaN Invalid_operation +ddfma2612 fma 0 -Inf 0e+384 -> NaN Invalid_operation +ddfma2613 fma 1 -Inf 0e+384 -> -Infinity +ddfma2614 fma 1000 -Inf 0e+384 -> -Infinity +ddfma2615 fma Inf -Inf 0e+384 -> -Infinity + +ddfma2621 fma NaN -Inf 0e+384 -> NaN +ddfma2622 fma NaN -1000 0e+384 -> NaN +ddfma2623 fma NaN -1 0e+384 -> NaN +ddfma2624 fma NaN -0 0e+384 -> NaN +ddfma2625 fma NaN 0 0e+384 -> NaN +ddfma2626 fma NaN 1 0e+384 -> NaN +ddfma2627 fma NaN 1000 0e+384 -> NaN +ddfma2628 fma NaN Inf 0e+384 -> NaN +ddfma2629 fma NaN NaN 0e+384 -> NaN +ddfma2630 fma -Inf NaN 0e+384 -> NaN +ddfma2631 fma -1000 NaN 0e+384 -> NaN +ddfma2632 fma -1 NaN 0e+384 -> NaN +ddfma2633 fma -0 NaN 0e+384 -> NaN +ddfma2634 fma 0 NaN 0e+384 -> NaN +ddfma2635 fma 1 NaN 0e+384 -> NaN +ddfma2636 fma 1000 NaN 0e+384 -> NaN +ddfma2637 fma Inf NaN 0e+384 -> NaN + +ddfma2641 fma sNaN -Inf 0e+384 -> NaN Invalid_operation +ddfma2642 fma sNaN -1000 0e+384 -> NaN Invalid_operation +ddfma2643 fma sNaN -1 0e+384 -> NaN Invalid_operation +ddfma2644 fma sNaN -0 0e+384 -> NaN Invalid_operation +ddfma2645 fma sNaN 0 0e+384 -> NaN Invalid_operation +ddfma2646 fma sNaN 1 0e+384 -> NaN Invalid_operation +ddfma2647 fma sNaN 1000 0e+384 -> NaN Invalid_operation +ddfma2648 fma sNaN NaN 0e+384 -> NaN Invalid_operation +ddfma2649 fma sNaN sNaN 0e+384 -> NaN Invalid_operation +ddfma2650 fma NaN sNaN 0e+384 -> NaN Invalid_operation +ddfma2651 fma -Inf sNaN 0e+384 -> NaN Invalid_operation +ddfma2652 fma -1000 sNaN 0e+384 -> NaN Invalid_operation +ddfma2653 fma -1 sNaN 0e+384 -> NaN Invalid_operation +ddfma2654 fma -0 sNaN 0e+384 -> NaN Invalid_operation +ddfma2655 fma 0 sNaN 0e+384 -> NaN Invalid_operation +ddfma2656 fma 1 sNaN 0e+384 -> NaN Invalid_operation +ddfma2657 fma 1000 sNaN 0e+384 -> NaN Invalid_operation +ddfma2658 fma Inf sNaN 0e+384 -> NaN Invalid_operation +ddfma2659 fma NaN sNaN 0e+384 -> NaN Invalid_operation + +-- propagating NaNs +ddfma2661 fma NaN9 -Inf 0e+384 -> NaN9 +ddfma2662 fma NaN8 999 0e+384 -> NaN8 +ddfma2663 fma NaN71 Inf 0e+384 -> NaN71 +ddfma2664 fma NaN6 NaN5 0e+384 -> NaN6 +ddfma2665 fma -Inf NaN4 0e+384 -> NaN4 +ddfma2666 fma -999 NaN33 0e+384 -> NaN33 +ddfma2667 fma Inf NaN2 0e+384 -> NaN2 + +ddfma2671 fma sNaN99 -Inf 0e+384 -> NaN99 Invalid_operation +ddfma2672 fma sNaN98 -11 0e+384 -> NaN98 Invalid_operation +ddfma2673 fma sNaN97 NaN 0e+384 -> NaN97 Invalid_operation +ddfma2674 fma sNaN16 sNaN94 0e+384 -> NaN16 Invalid_operation +ddfma2675 fma NaN95 sNaN93 0e+384 -> NaN93 Invalid_operation +ddfma2676 fma -Inf sNaN92 0e+384 -> NaN92 Invalid_operation +ddfma2677 fma 088 sNaN91 0e+384 -> NaN91 Invalid_operation +ddfma2678 fma Inf sNaN90 0e+384 -> NaN90 Invalid_operation +ddfma2679 fma NaN sNaN89 0e+384 -> NaN89 Invalid_operation + +ddfma2681 fma -NaN9 -Inf 0e+384 -> -NaN9 +ddfma2682 fma -NaN8 999 0e+384 -> -NaN8 +ddfma2683 fma -NaN71 Inf 0e+384 -> -NaN71 +ddfma2684 fma -NaN6 -NaN5 0e+384 -> -NaN6 +ddfma2685 fma -Inf -NaN4 0e+384 -> -NaN4 +ddfma2686 fma -999 -NaN33 0e+384 -> -NaN33 +ddfma2687 fma Inf -NaN2 0e+384 -> -NaN2 + +ddfma2691 fma -sNaN99 -Inf 0e+384 -> -NaN99 Invalid_operation +ddfma2692 fma -sNaN98 -11 0e+384 -> -NaN98 Invalid_operation +ddfma2693 fma -sNaN97 NaN 0e+384 -> -NaN97 Invalid_operation +ddfma2694 fma -sNaN16 -sNaN94 0e+384 -> -NaN16 Invalid_operation +ddfma2695 fma -NaN95 -sNaN93 0e+384 -> -NaN93 Invalid_operation +ddfma2696 fma -Inf -sNaN92 0e+384 -> -NaN92 Invalid_operation +ddfma2697 fma 088 -sNaN91 0e+384 -> -NaN91 Invalid_operation +ddfma2698 fma Inf -sNaN90 0e+384 -> -NaN90 Invalid_operation +ddfma2699 fma -NaN -sNaN89 0e+384 -> -NaN89 Invalid_operation + +ddfma2701 fma -NaN -Inf 0e+384 -> -NaN +ddfma2702 fma -NaN 999 0e+384 -> -NaN +ddfma2703 fma -NaN Inf 0e+384 -> -NaN +ddfma2704 fma -NaN -NaN 0e+384 -> -NaN +ddfma2705 fma -Inf -NaN0 0e+384 -> -NaN +ddfma2706 fma -999 -NaN 0e+384 -> -NaN +ddfma2707 fma Inf -NaN 0e+384 -> -NaN + +ddfma2711 fma -sNaN -Inf 0e+384 -> -NaN Invalid_operation +ddfma2712 fma -sNaN -11 0e+384 -> -NaN Invalid_operation +ddfma2713 fma -sNaN00 NaN 0e+384 -> -NaN Invalid_operation +ddfma2714 fma -sNaN -sNaN 0e+384 -> -NaN Invalid_operation +ddfma2715 fma -NaN -sNaN 0e+384 -> -NaN Invalid_operation +ddfma2716 fma -Inf -sNaN 0e+384 -> -NaN Invalid_operation +ddfma2717 fma 088 -sNaN 0e+384 -> -NaN Invalid_operation +ddfma2718 fma Inf -sNaN 0e+384 -> -NaN Invalid_operation +ddfma2719 fma -NaN -sNaN 0e+384 -> -NaN Invalid_operation + +-- overflow and underflow tests .. note subnormal results +-- signs +ddfma2751 fma 1e+277 1e+311 0e+384 -> Infinity Overflow Inexact Rounded +ddfma2752 fma 1e+277 -1e+311 0e+384 -> -Infinity Overflow Inexact Rounded +ddfma2753 fma -1e+277 1e+311 0e+384 -> -Infinity Overflow Inexact Rounded +ddfma2754 fma -1e+277 -1e+311 0e+384 -> Infinity Overflow Inexact Rounded +ddfma2755 fma 1e-277 1e-311 0e+384 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +ddfma2756 fma 1e-277 -1e-311 0e+384 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped +ddfma2757 fma -1e-277 1e-311 0e+384 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped +ddfma2758 fma -1e-277 -1e-311 0e+384 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped + +-- 'subnormal' boundary (all hard underflow or overflow in base arithemtic) +ddfma2760 fma 1e-291 1e-101 0e+384 -> 1E-392 Subnormal +ddfma2761 fma 1e-291 1e-102 0e+384 -> 1E-393 Subnormal +ddfma2762 fma 1e-291 1e-103 0e+384 -> 1E-394 Subnormal +ddfma2763 fma 1e-291 1e-104 0e+384 -> 1E-395 Subnormal +ddfma2764 fma 1e-291 1e-105 0e+384 -> 1E-396 Subnormal +ddfma2765 fma 1e-291 1e-106 0e+384 -> 1E-397 Subnormal +ddfma2766 fma 1e-291 1e-107 0e+384 -> 1E-398 Subnormal +ddfma2767 fma 1e-291 1e-108 0e+384 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +ddfma2768 fma 1e-291 1e-109 0e+384 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +ddfma2769 fma 1e-291 1e-110 0e+384 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +-- [no equivalent of 'subnormal' for overflow] +ddfma2770 fma 1e+60 1e+321 0e+384 -> 1.000000000000E+381 Clamped +ddfma2771 fma 1e+60 1e+322 0e+384 -> 1.0000000000000E+382 Clamped +ddfma2772 fma 1e+60 1e+323 0e+384 -> 1.00000000000000E+383 Clamped +ddfma2773 fma 1e+60 1e+324 0e+384 -> 1.000000000000000E+384 Clamped +ddfma2774 fma 1e+60 1e+325 0e+384 -> Infinity Overflow Inexact Rounded +ddfma2775 fma 1e+60 1e+326 0e+384 -> Infinity Overflow Inexact Rounded +ddfma2776 fma 1e+60 1e+327 0e+384 -> Infinity Overflow Inexact Rounded +ddfma2777 fma 1e+60 1e+328 0e+384 -> Infinity Overflow Inexact Rounded +ddfma2778 fma 1e+60 1e+329 0e+384 -> Infinity Overflow Inexact Rounded +ddfma2779 fma 1e+60 1e+330 0e+384 -> Infinity Overflow Inexact Rounded + +ddfma2801 fma 1.0000E-394 1 0e+384 -> 1.0000E-394 Subnormal +ddfma2802 fma 1.000E-394 1e-1 0e+384 -> 1.000E-395 Subnormal +ddfma2803 fma 1.00E-394 1e-2 0e+384 -> 1.00E-396 Subnormal +ddfma2804 fma 1.0E-394 1e-3 0e+384 -> 1.0E-397 Subnormal +ddfma2805 fma 1.0E-394 1e-4 0e+384 -> 1E-398 Subnormal Rounded +ddfma2806 fma 1.3E-394 1e-4 0e+384 -> 1E-398 Underflow Subnormal Inexact Rounded +ddfma2807 fma 1.5E-394 1e-4 0e+384 -> 2E-398 Underflow Subnormal Inexact Rounded +ddfma2808 fma 1.7E-394 1e-4 0e+384 -> 2E-398 Underflow Subnormal Inexact Rounded +ddfma2809 fma 2.3E-394 1e-4 0e+384 -> 2E-398 Underflow Subnormal Inexact Rounded +ddfma2810 fma 2.5E-394 1e-4 0e+384 -> 2E-398 Underflow Subnormal Inexact Rounded +ddfma2811 fma 2.7E-394 1e-4 0e+384 -> 3E-398 Underflow Subnormal Inexact Rounded +ddfma2812 fma 1.49E-394 1e-4 0e+384 -> 1E-398 Underflow Subnormal Inexact Rounded +ddfma2813 fma 1.50E-394 1e-4 0e+384 -> 2E-398 Underflow Subnormal Inexact Rounded +ddfma2814 fma 1.51E-394 1e-4 0e+384 -> 2E-398 Underflow Subnormal Inexact Rounded +ddfma2815 fma 2.49E-394 1e-4 0e+384 -> 2E-398 Underflow Subnormal Inexact Rounded +ddfma2816 fma 2.50E-394 1e-4 0e+384 -> 2E-398 Underflow Subnormal Inexact Rounded +ddfma2817 fma 2.51E-394 1e-4 0e+384 -> 3E-398 Underflow Subnormal Inexact Rounded + +ddfma2818 fma 1E-394 1e-4 0e+384 -> 1E-398 Subnormal +ddfma2819 fma 3E-394 1e-5 0e+384 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +ddfma2820 fma 5E-394 1e-5 0e+384 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +ddfma2821 fma 7E-394 1e-5 0e+384 -> 1E-398 Underflow Subnormal Inexact Rounded +ddfma2822 fma 9E-394 1e-5 0e+384 -> 1E-398 Underflow Subnormal Inexact Rounded +ddfma2823 fma 9.9E-394 1e-5 0e+384 -> 1E-398 Underflow Subnormal Inexact Rounded + +ddfma2824 fma 1E-394 -1e-4 0e+384 -> -1E-398 Subnormal +ddfma2825 fma 3E-394 -1e-5 0e+384 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped +ddfma2826 fma -5E-394 1e-5 0e+384 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped +ddfma2827 fma 7E-394 -1e-5 0e+384 -> -1E-398 Underflow Subnormal Inexact Rounded +ddfma2828 fma -9E-394 1e-5 0e+384 -> -1E-398 Underflow Subnormal Inexact Rounded +ddfma2829 fma 9.9E-394 -1e-5 0e+384 -> -1E-398 Underflow Subnormal Inexact Rounded +ddfma2830 fma 3.0E-394 -1e-5 0e+384 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped + +ddfma2831 fma 1.0E-199 1e-200 0e+384 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +ddfma2832 fma 1.0E-199 1e-199 0e+384 -> 1E-398 Subnormal Rounded +ddfma2833 fma 1.0E-199 1e-198 0e+384 -> 1.0E-397 Subnormal +ddfma2834 fma 2.0E-199 2e-198 0e+384 -> 4.0E-397 Subnormal +ddfma2835 fma 4.0E-199 4e-198 0e+384 -> 1.60E-396 Subnormal +ddfma2836 fma 10.0E-199 10e-198 0e+384 -> 1.000E-395 Subnormal +ddfma2837 fma 30.0E-199 30e-198 0e+384 -> 9.000E-395 Subnormal +ddfma2838 fma 40.0E-199 40e-188 0e+384 -> 1.6000E-384 Subnormal +ddfma2839 fma 40.0E-199 40e-187 0e+384 -> 1.6000E-383 +ddfma2840 fma 40.0E-199 40e-186 0e+384 -> 1.6000E-382 + +-- Long operand overflow may be a different path +ddfma2870 fma 100 9.999E+383 0e+384 -> Infinity Inexact Overflow Rounded +ddfma2871 fma 100 -9.999E+383 0e+384 -> -Infinity Inexact Overflow Rounded +ddfma2872 fma 9.999E+383 100 0e+384 -> Infinity Inexact Overflow Rounded +ddfma2873 fma -9.999E+383 100 0e+384 -> -Infinity Inexact Overflow Rounded + +-- check for double-rounded subnormals +ddfma2881 fma 1.2347E-355 1.2347E-40 0e+384 -> 1.524E-395 Inexact Rounded Subnormal Underflow +ddfma2882 fma 1.234E-355 1.234E-40 0e+384 -> 1.523E-395 Inexact Rounded Subnormal Underflow +ddfma2883 fma 1.23E-355 1.23E-40 0e+384 -> 1.513E-395 Inexact Rounded Subnormal Underflow +ddfma2884 fma 1.2E-355 1.2E-40 0e+384 -> 1.44E-395 Subnormal +ddfma2885 fma 1.2E-355 1.2E-41 0e+384 -> 1.44E-396 Subnormal +ddfma2886 fma 1.2E-355 1.2E-42 0e+384 -> 1.4E-397 Subnormal Inexact Rounded Underflow +ddfma2887 fma 1.2E-355 1.3E-42 0e+384 -> 1.6E-397 Subnormal Inexact Rounded Underflow +ddfma2888 fma 1.3E-355 1.3E-42 0e+384 -> 1.7E-397 Subnormal Inexact Rounded Underflow +ddfma2889 fma 1.3E-355 1.3E-43 0e+384 -> 2E-398 Subnormal Inexact Rounded Underflow +ddfma2890 fma 1.3E-356 1.3E-43 0e+384 -> 0E-398 Clamped Subnormal Inexact Rounded Underflow + +ddfma2891 fma 1.2345E-39 1.234E-355 0e+384 -> 1.5234E-394 Inexact Rounded Subnormal Underflow +ddfma2892 fma 1.23456E-39 1.234E-355 0e+384 -> 1.5234E-394 Inexact Rounded Subnormal Underflow +ddfma2893 fma 1.2345E-40 1.234E-355 0e+384 -> 1.523E-395 Inexact Rounded Subnormal Underflow +ddfma2894 fma 1.23456E-40 1.234E-355 0e+384 -> 1.523E-395 Inexact Rounded Subnormal Underflow +ddfma2895 fma 1.2345E-41 1.234E-355 0e+384 -> 1.52E-396 Inexact Rounded Subnormal Underflow +ddfma2896 fma 1.23456E-41 1.234E-355 0e+384 -> 1.52E-396 Inexact Rounded Subnormal Underflow + +-- Now explore the case where we get a normal result with Underflow +ddfma2900 fma 0.3000000000E-191 0.3000000000E-191 0e+384 -> 9.00000000000000E-384 Subnormal Rounded +ddfma2901 fma 0.3000000001E-191 0.3000000001E-191 0e+384 -> 9.00000000600000E-384 Underflow Inexact Subnormal Rounded +ddfma2902 fma 9.999999999999999E-383 0.0999999999999 0e+384 -> 9.99999999999000E-384 Underflow Inexact Subnormal Rounded +ddfma2903 fma 9.999999999999999E-383 0.09999999999999 0e+384 -> 9.99999999999900E-384 Underflow Inexact Subnormal Rounded +ddfma2904 fma 9.999999999999999E-383 0.099999999999999 0e+384 -> 9.99999999999990E-384 Underflow Inexact Subnormal Rounded +ddfma2905 fma 9.999999999999999E-383 0.0999999999999999 0e+384 -> 9.99999999999999E-384 Underflow Inexact Subnormal Rounded +-- prove operands are exact +ddfma2906 fma 9.999999999999999E-383 1 0e+384 -> 9.999999999999999E-383 +ddfma2907 fma 1 0.09999999999999999 0e+384 -> 0.09999999999999999 +-- the next rounds to Nmin +ddfma2908 fma 9.999999999999999E-383 0.09999999999999999 0e+384 -> 1.000000000000000E-383 Underflow Inexact Subnormal Rounded + +-- hugest +ddfma2909 fma 9999999999999999 9999999999999999 0e+384 -> 9.999999999999998E+31 Inexact Rounded + +-- Null tests +ddfma2990 fma 10 # 0e+384 -> NaN Invalid_operation +ddfma2991 fma # 10 0e+384 -> NaN Invalid_operation + + +-- ADDITION TESTS ------------------------------------------------------ + +-- [first group are 'quick confidence check'] +ddfma3001 fma 1 1 1 -> 2 +ddfma3002 fma 1 2 3 -> 5 +ddfma3003 fma 1 '5.75' '3.3' -> 9.05 +ddfma3004 fma 1 '5' '-3' -> 2 +ddfma3005 fma 1 '-5' '-3' -> -8 +ddfma3006 fma 1 '-7' '2.5' -> -4.5 +ddfma3007 fma 1 '0.7' '0.3' -> 1.0 +ddfma3008 fma 1 '1.25' '1.25' -> 2.50 +ddfma3009 fma 1 '1.23456789' '1.00000000' -> '2.23456789' +ddfma3010 fma 1 '1.23456789' '1.00000011' -> '2.23456800' + +-- 1234567890123456 1234567890123456 +ddfma3011 fma 1 '0.4444444444444446' '0.5555555555555555' -> '1.000000000000000' Inexact Rounded +ddfma3012 fma 1 '0.4444444444444445' '0.5555555555555555' -> '1.000000000000000' Rounded +ddfma3013 fma 1 '0.4444444444444444' '0.5555555555555555' -> '0.9999999999999999' +ddfma3014 fma 1 '4444444444444444' '0.49' -> '4444444444444444' Inexact Rounded +ddfma3015 fma 1 '4444444444444444' '0.499' -> '4444444444444444' Inexact Rounded +ddfma3016 fma 1 '4444444444444444' '0.4999' -> '4444444444444444' Inexact Rounded +ddfma3017 fma 1 '4444444444444444' '0.5000' -> '4444444444444444' Inexact Rounded +ddfma3018 fma 1 '4444444444444444' '0.5001' -> '4444444444444445' Inexact Rounded +ddfma3019 fma 1 '4444444444444444' '0.501' -> '4444444444444445' Inexact Rounded +ddfma3020 fma 1 '4444444444444444' '0.51' -> '4444444444444445' Inexact Rounded + +ddfma3021 fma 1 0 1 -> 1 +ddfma3022 fma 1 1 1 -> 2 +ddfma3023 fma 1 2 1 -> 3 +ddfma3024 fma 1 3 1 -> 4 +ddfma3025 fma 1 4 1 -> 5 +ddfma3026 fma 1 5 1 -> 6 +ddfma3027 fma 1 6 1 -> 7 +ddfma3028 fma 1 7 1 -> 8 +ddfma3029 fma 1 8 1 -> 9 +ddfma3030 fma 1 9 1 -> 10 + +-- some carrying effects +ddfma3031 fma 1 '0.9998' '0.0000' -> '0.9998' +ddfma3032 fma 1 '0.9998' '0.0001' -> '0.9999' +ddfma3033 fma 1 '0.9998' '0.0002' -> '1.0000' +ddfma3034 fma 1 '0.9998' '0.0003' -> '1.0001' + +ddfma3035 fma 1 '70' '10000e+16' -> '1.000000000000000E+20' Inexact Rounded +ddfma3036 fma 1 '700' '10000e+16' -> '1.000000000000000E+20' Inexact Rounded +ddfma3037 fma 1 '7000' '10000e+16' -> '1.000000000000000E+20' Inexact Rounded +ddfma3038 fma 1 '70000' '10000e+16' -> '1.000000000000001E+20' Inexact Rounded +ddfma3039 fma 1 '700000' '10000e+16' -> '1.000000000000007E+20' Rounded + +-- symmetry: +ddfma3040 fma 1 '10000e+16' '70' -> '1.000000000000000E+20' Inexact Rounded +ddfma3041 fma 1 '10000e+16' '700' -> '1.000000000000000E+20' Inexact Rounded +ddfma3042 fma 1 '10000e+16' '7000' -> '1.000000000000000E+20' Inexact Rounded +ddfma3044 fma 1 '10000e+16' '70000' -> '1.000000000000001E+20' Inexact Rounded +ddfma3045 fma 1 '10000e+16' '700000' -> '1.000000000000007E+20' Rounded + +-- same, without rounding +ddfma3046 fma 1 '10000e+9' '7' -> '10000000000007' +ddfma3047 fma 1 '10000e+9' '70' -> '10000000000070' +ddfma3048 fma 1 '10000e+9' '700' -> '10000000000700' +ddfma3049 fma 1 '10000e+9' '7000' -> '10000000007000' +ddfma3050 fma 1 '10000e+9' '70000' -> '10000000070000' +ddfma3051 fma 1 '10000e+9' '700000' -> '10000000700000' +ddfma3052 fma 1 '10000e+9' '7000000' -> '10000007000000' + +-- examples from decarith +ddfma3053 fma 1 '12' '7.00' -> '19.00' +ddfma3054 fma 1 '1.3' '-1.07' -> '0.23' +ddfma3055 fma 1 '1.3' '-1.30' -> '0.00' +ddfma3056 fma 1 '1.3' '-2.07' -> '-0.77' +ddfma3057 fma 1 '1E+2' '1E+4' -> '1.01E+4' + +-- leading zero preservation +ddfma3061 fma 1 1 '0.0001' -> '1.0001' +ddfma3062 fma 1 1 '0.00001' -> '1.00001' +ddfma3063 fma 1 1 '0.000001' -> '1.000001' +ddfma3064 fma 1 1 '0.0000001' -> '1.0000001' +ddfma3065 fma 1 1 '0.00000001' -> '1.00000001' + +-- some funny zeros [in case of bad signum] +ddfma3070 fma 1 1 0 -> 1 +ddfma3071 fma 1 1 0. -> 1 +ddfma3072 fma 1 1 .0 -> 1.0 +ddfma3073 fma 1 1 0.0 -> 1.0 +ddfma3074 fma 1 1 0.00 -> 1.00 +ddfma3075 fma 1 0 1 -> 1 +ddfma3076 fma 1 0. 1 -> 1 +ddfma3077 fma 1 .0 1 -> 1.0 +ddfma3078 fma 1 0.0 1 -> 1.0 +ddfma3079 fma 1 0.00 1 -> 1.00 + +-- some carries +ddfma3080 fma 1 999999998 1 -> 999999999 +ddfma3081 fma 1 999999999 1 -> 1000000000 +ddfma3082 fma 1 99999999 1 -> 100000000 +ddfma3083 fma 1 9999999 1 -> 10000000 +ddfma3084 fma 1 999999 1 -> 1000000 +ddfma3085 fma 1 99999 1 -> 100000 +ddfma3086 fma 1 9999 1 -> 10000 +ddfma3087 fma 1 999 1 -> 1000 +ddfma3088 fma 1 99 1 -> 100 +ddfma3089 fma 1 9 1 -> 10 + + +-- more LHS swaps +ddfma3090 fma 1 '-56267E-10' 0 -> '-0.0000056267' +ddfma3091 fma 1 '-56267E-6' 0 -> '-0.056267' +ddfma3092 fma 1 '-56267E-5' 0 -> '-0.56267' +ddfma3093 fma 1 '-56267E-4' 0 -> '-5.6267' +ddfma3094 fma 1 '-56267E-3' 0 -> '-56.267' +ddfma3095 fma 1 '-56267E-2' 0 -> '-562.67' +ddfma3096 fma 1 '-56267E-1' 0 -> '-5626.7' +ddfma3097 fma 1 '-56267E-0' 0 -> '-56267' +ddfma3098 fma 1 '-5E-10' 0 -> '-5E-10' +ddfma3099 fma 1 '-5E-7' 0 -> '-5E-7' +ddfma3100 fma 1 '-5E-6' 0 -> '-0.000005' +ddfma3101 fma 1 '-5E-5' 0 -> '-0.00005' +ddfma3102 fma 1 '-5E-4' 0 -> '-0.0005' +ddfma3103 fma 1 '-5E-1' 0 -> '-0.5' +ddfma3104 fma 1 '-5E0' 0 -> '-5' +ddfma3105 fma 1 '-5E1' 0 -> '-50' +ddfma3106 fma 1 '-5E5' 0 -> '-500000' +ddfma3107 fma 1 '-5E15' 0 -> '-5000000000000000' +ddfma3108 fma 1 '-5E16' 0 -> '-5.000000000000000E+16' Rounded +ddfma3109 fma 1 '-5E17' 0 -> '-5.000000000000000E+17' Rounded +ddfma3110 fma 1 '-5E18' 0 -> '-5.000000000000000E+18' Rounded +ddfma3111 fma 1 '-5E100' 0 -> '-5.000000000000000E+100' Rounded + +-- more RHS swaps +ddfma3113 fma 1 0 '-56267E-10' -> '-0.0000056267' +ddfma3114 fma 1 0 '-56267E-6' -> '-0.056267' +ddfma3116 fma 1 0 '-56267E-5' -> '-0.56267' +ddfma3117 fma 1 0 '-56267E-4' -> '-5.6267' +ddfma3119 fma 1 0 '-56267E-3' -> '-56.267' +ddfma3120 fma 1 0 '-56267E-2' -> '-562.67' +ddfma3121 fma 1 0 '-56267E-1' -> '-5626.7' +ddfma3122 fma 1 0 '-56267E-0' -> '-56267' +ddfma3123 fma 1 0 '-5E-10' -> '-5E-10' +ddfma3124 fma 1 0 '-5E-7' -> '-5E-7' +ddfma3125 fma 1 0 '-5E-6' -> '-0.000005' +ddfma3126 fma 1 0 '-5E-5' -> '-0.00005' +ddfma3127 fma 1 0 '-5E-4' -> '-0.0005' +ddfma3128 fma 1 0 '-5E-1' -> '-0.5' +ddfma3129 fma 1 0 '-5E0' -> '-5' +ddfma3130 fma 1 0 '-5E1' -> '-50' +ddfma3131 fma 1 0 '-5E5' -> '-500000' +ddfma3132 fma 1 0 '-5E15' -> '-5000000000000000' +ddfma3133 fma 1 0 '-5E16' -> '-5.000000000000000E+16' Rounded +ddfma3134 fma 1 0 '-5E17' -> '-5.000000000000000E+17' Rounded +ddfma3135 fma 1 0 '-5E18' -> '-5.000000000000000E+18' Rounded +ddfma3136 fma 1 0 '-5E100' -> '-5.000000000000000E+100' Rounded + +-- related +ddfma3137 fma 1 1 '0E-19' -> '1.000000000000000' Rounded +ddfma3138 fma 1 -1 '0E-19' -> '-1.000000000000000' Rounded +ddfma3139 fma 1 '0E-19' 1 -> '1.000000000000000' Rounded +ddfma3140 fma 1 '0E-19' -1 -> '-1.000000000000000' Rounded +ddfma3141 fma 1 1E+11 0.0000 -> '100000000000.0000' +ddfma3142 fma 1 1E+11 0.00000 -> '100000000000.0000' Rounded +ddfma3143 fma 1 0.000 1E+12 -> '1000000000000.000' +ddfma3144 fma 1 0.0000 1E+12 -> '1000000000000.000' Rounded + +-- [some of the next group are really constructor tests] +ddfma3146 fma 1 '00.0' 0 -> '0.0' +ddfma3147 fma 1 '0.00' 0 -> '0.00' +ddfma3148 fma 1 0 '0.00' -> '0.00' +ddfma3149 fma 1 0 '00.0' -> '0.0' +ddfma3150 fma 1 '00.0' '0.00' -> '0.00' +ddfma3151 fma 1 '0.00' '00.0' -> '0.00' +ddfma3152 fma 1 '3' '.3' -> '3.3' +ddfma3153 fma 1 '3.' '.3' -> '3.3' +ddfma3154 fma 1 '3.0' '.3' -> '3.3' +ddfma3155 fma 1 '3.00' '.3' -> '3.30' +ddfma3156 fma 1 '3' '3' -> '6' +ddfma3157 fma 1 '3' '+3' -> '6' +ddfma3158 fma 1 '3' '-3' -> '0' +ddfma3159 fma 1 '0.3' '-0.3' -> '0.0' +ddfma3160 fma 1 '0.03' '-0.03' -> '0.00' + +-- try borderline precision, with carries, etc. +ddfma3161 fma 1 '1E+12' '-1' -> '999999999999' +ddfma3162 fma 1 '1E+12' '1.11' -> '1000000000001.11' +ddfma3163 fma 1 '1.11' '1E+12' -> '1000000000001.11' +ddfma3164 fma 1 '-1' '1E+12' -> '999999999999' +ddfma3165 fma 1 '7E+12' '-1' -> '6999999999999' +ddfma3166 fma 1 '7E+12' '1.11' -> '7000000000001.11' +ddfma3167 fma 1 '1.11' '7E+12' -> '7000000000001.11' +ddfma3168 fma 1 '-1' '7E+12' -> '6999999999999' + +rounding: half_up +-- 1.234567890123456 1234567890123456 1 234567890123456 +ddfma3170 fma 1 '4.444444444444444' '0.5555555555555567' -> '5.000000000000001' Inexact Rounded +ddfma3171 fma 1 '4.444444444444444' '0.5555555555555566' -> '5.000000000000001' Inexact Rounded +ddfma3172 fma 1 '4.444444444444444' '0.5555555555555565' -> '5.000000000000001' Inexact Rounded +ddfma3173 fma 1 '4.444444444444444' '0.5555555555555564' -> '5.000000000000000' Inexact Rounded +ddfma3174 fma 1 '4.444444444444444' '0.5555555555555553' -> '4.999999999999999' Inexact Rounded +ddfma3175 fma 1 '4.444444444444444' '0.5555555555555552' -> '4.999999999999999' Inexact Rounded +ddfma3176 fma 1 '4.444444444444444' '0.5555555555555551' -> '4.999999999999999' Inexact Rounded +ddfma3177 fma 1 '4.444444444444444' '0.5555555555555550' -> '4.999999999999999' Rounded +ddfma3178 fma 1 '4.444444444444444' '0.5555555555555545' -> '4.999999999999999' Inexact Rounded +ddfma3179 fma 1 '4.444444444444444' '0.5555555555555544' -> '4.999999999999998' Inexact Rounded +ddfma3180 fma 1 '4.444444444444444' '0.5555555555555543' -> '4.999999999999998' Inexact Rounded +ddfma3181 fma 1 '4.444444444444444' '0.5555555555555542' -> '4.999999999999998' Inexact Rounded +ddfma3182 fma 1 '4.444444444444444' '0.5555555555555541' -> '4.999999999999998' Inexact Rounded +ddfma3183 fma 1 '4.444444444444444' '0.5555555555555540' -> '4.999999999999998' Rounded + +-- and some more, including residue effects and different roundings +rounding: half_up +ddfma3200 fma 1 '1234560123456789' 0 -> '1234560123456789' +ddfma3201 fma 1 '1234560123456789' 0.000000001 -> '1234560123456789' Inexact Rounded +ddfma3202 fma 1 '1234560123456789' 0.000001 -> '1234560123456789' Inexact Rounded +ddfma3203 fma 1 '1234560123456789' 0.1 -> '1234560123456789' Inexact Rounded +ddfma3204 fma 1 '1234560123456789' 0.4 -> '1234560123456789' Inexact Rounded +ddfma3205 fma 1 '1234560123456789' 0.49 -> '1234560123456789' Inexact Rounded +ddfma3206 fma 1 '1234560123456789' 0.499999 -> '1234560123456789' Inexact Rounded +ddfma3207 fma 1 '1234560123456789' 0.499999999 -> '1234560123456789' Inexact Rounded +ddfma3208 fma 1 '1234560123456789' 0.5 -> '1234560123456790' Inexact Rounded +ddfma3209 fma 1 '1234560123456789' 0.500000001 -> '1234560123456790' Inexact Rounded +ddfma3210 fma 1 '1234560123456789' 0.500001 -> '1234560123456790' Inexact Rounded +ddfma3211 fma 1 '1234560123456789' 0.51 -> '1234560123456790' Inexact Rounded +ddfma3212 fma 1 '1234560123456789' 0.6 -> '1234560123456790' Inexact Rounded +ddfma3213 fma 1 '1234560123456789' 0.9 -> '1234560123456790' Inexact Rounded +ddfma3214 fma 1 '1234560123456789' 0.99999 -> '1234560123456790' Inexact Rounded +ddfma3215 fma 1 '1234560123456789' 0.999999999 -> '1234560123456790' Inexact Rounded +ddfma3216 fma 1 '1234560123456789' 1 -> '1234560123456790' +ddfma3217 fma 1 '1234560123456789' 1.000000001 -> '1234560123456790' Inexact Rounded +ddfma3218 fma 1 '1234560123456789' 1.00001 -> '1234560123456790' Inexact Rounded +ddfma3219 fma 1 '1234560123456789' 1.1 -> '1234560123456790' Inexact Rounded + +rounding: half_even +ddfma3220 fma 1 '1234560123456789' 0 -> '1234560123456789' +ddfma3221 fma 1 '1234560123456789' 0.000000001 -> '1234560123456789' Inexact Rounded +ddfma3222 fma 1 '1234560123456789' 0.000001 -> '1234560123456789' Inexact Rounded +ddfma3223 fma 1 '1234560123456789' 0.1 -> '1234560123456789' Inexact Rounded +ddfma3224 fma 1 '1234560123456789' 0.4 -> '1234560123456789' Inexact Rounded +ddfma3225 fma 1 '1234560123456789' 0.49 -> '1234560123456789' Inexact Rounded +ddfma3226 fma 1 '1234560123456789' 0.499999 -> '1234560123456789' Inexact Rounded +ddfma3227 fma 1 '1234560123456789' 0.499999999 -> '1234560123456789' Inexact Rounded +ddfma3228 fma 1 '1234560123456789' 0.5 -> '1234560123456790' Inexact Rounded +ddfma3229 fma 1 '1234560123456789' 0.500000001 -> '1234560123456790' Inexact Rounded +ddfma3230 fma 1 '1234560123456789' 0.500001 -> '1234560123456790' Inexact Rounded +ddfma3231 fma 1 '1234560123456789' 0.51 -> '1234560123456790' Inexact Rounded +ddfma3232 fma 1 '1234560123456789' 0.6 -> '1234560123456790' Inexact Rounded +ddfma3233 fma 1 '1234560123456789' 0.9 -> '1234560123456790' Inexact Rounded +ddfma3234 fma 1 '1234560123456789' 0.99999 -> '1234560123456790' Inexact Rounded +ddfma3235 fma 1 '1234560123456789' 0.999999999 -> '1234560123456790' Inexact Rounded +ddfma3236 fma 1 '1234560123456789' 1 -> '1234560123456790' +ddfma3237 fma 1 '1234560123456789' 1.00000001 -> '1234560123456790' Inexact Rounded +ddfma3238 fma 1 '1234560123456789' 1.00001 -> '1234560123456790' Inexact Rounded +ddfma3239 fma 1 '1234560123456789' 1.1 -> '1234560123456790' Inexact Rounded +-- critical few with even bottom digit... +ddfma3240 fma 1 '1234560123456788' 0.499999999 -> '1234560123456788' Inexact Rounded +ddfma3241 fma 1 '1234560123456788' 0.5 -> '1234560123456788' Inexact Rounded +ddfma3242 fma 1 '1234560123456788' 0.500000001 -> '1234560123456789' Inexact Rounded + +rounding: down +ddfma3250 fma 1 '1234560123456789' 0 -> '1234560123456789' +ddfma3251 fma 1 '1234560123456789' 0.000000001 -> '1234560123456789' Inexact Rounded +ddfma3252 fma 1 '1234560123456789' 0.000001 -> '1234560123456789' Inexact Rounded +ddfma3253 fma 1 '1234560123456789' 0.1 -> '1234560123456789' Inexact Rounded +ddfma3254 fma 1 '1234560123456789' 0.4 -> '1234560123456789' Inexact Rounded +ddfma3255 fma 1 '1234560123456789' 0.49 -> '1234560123456789' Inexact Rounded +ddfma3256 fma 1 '1234560123456789' 0.499999 -> '1234560123456789' Inexact Rounded +ddfma3257 fma 1 '1234560123456789' 0.499999999 -> '1234560123456789' Inexact Rounded +ddfma3258 fma 1 '1234560123456789' 0.5 -> '1234560123456789' Inexact Rounded +ddfma3259 fma 1 '1234560123456789' 0.500000001 -> '1234560123456789' Inexact Rounded +ddfma3260 fma 1 '1234560123456789' 0.500001 -> '1234560123456789' Inexact Rounded +ddfma3261 fma 1 '1234560123456789' 0.51 -> '1234560123456789' Inexact Rounded +ddfma3262 fma 1 '1234560123456789' 0.6 -> '1234560123456789' Inexact Rounded +ddfma3263 fma 1 '1234560123456789' 0.9 -> '1234560123456789' Inexact Rounded +ddfma3264 fma 1 '1234560123456789' 0.99999 -> '1234560123456789' Inexact Rounded +ddfma3265 fma 1 '1234560123456789' 0.999999999 -> '1234560123456789' Inexact Rounded +ddfma3266 fma 1 '1234560123456789' 1 -> '1234560123456790' +ddfma3267 fma 1 '1234560123456789' 1.00000001 -> '1234560123456790' Inexact Rounded +ddfma3268 fma 1 '1234560123456789' 1.00001 -> '1234560123456790' Inexact Rounded +ddfma3269 fma 1 '1234560123456789' 1.1 -> '1234560123456790' Inexact Rounded + +-- 1 in last place tests +rounding: half_up +ddfma3301 fma 1 -1 1 -> 0 +ddfma3302 fma 1 0 1 -> 1 +ddfma3303 fma 1 1 1 -> 2 +ddfma3304 fma 1 12 1 -> 13 +ddfma3305 fma 1 98 1 -> 99 +ddfma3306 fma 1 99 1 -> 100 +ddfma3307 fma 1 100 1 -> 101 +ddfma3308 fma 1 101 1 -> 102 +ddfma3309 fma 1 -1 -1 -> -2 +ddfma3310 fma 1 0 -1 -> -1 +ddfma3311 fma 1 1 -1 -> 0 +ddfma3312 fma 1 12 -1 -> 11 +ddfma3313 fma 1 98 -1 -> 97 +ddfma3314 fma 1 99 -1 -> 98 +ddfma3315 fma 1 100 -1 -> 99 +ddfma3316 fma 1 101 -1 -> 100 + +ddfma3321 fma 1 -0.01 0.01 -> 0.00 +ddfma3322 fma 1 0.00 0.01 -> 0.01 +ddfma3323 fma 1 0.01 0.01 -> 0.02 +ddfma3324 fma 1 0.12 0.01 -> 0.13 +ddfma3325 fma 1 0.98 0.01 -> 0.99 +ddfma3326 fma 1 0.99 0.01 -> 1.00 +ddfma3327 fma 1 1.00 0.01 -> 1.01 +ddfma3328 fma 1 1.01 0.01 -> 1.02 +ddfma3329 fma 1 -0.01 -0.01 -> -0.02 +ddfma3330 fma 1 0.00 -0.01 -> -0.01 +ddfma3331 fma 1 0.01 -0.01 -> 0.00 +ddfma3332 fma 1 0.12 -0.01 -> 0.11 +ddfma3333 fma 1 0.98 -0.01 -> 0.97 +ddfma3334 fma 1 0.99 -0.01 -> 0.98 +ddfma3335 fma 1 1.00 -0.01 -> 0.99 +ddfma3336 fma 1 1.01 -0.01 -> 1.00 + +-- some more cases where adding 0 affects the coefficient +ddfma3340 fma 1 1E+3 0 -> 1000 +ddfma3341 fma 1 1E+15 0 -> 1000000000000000 +ddfma3342 fma 1 1E+16 0 -> 1.000000000000000E+16 Rounded +ddfma3343 fma 1 1E+20 0 -> 1.000000000000000E+20 Rounded +-- which simply follow from these cases ... +ddfma3344 fma 1 1E+3 1 -> 1001 +ddfma3345 fma 1 1E+15 1 -> 1000000000000001 +ddfma3346 fma 1 1E+16 1 -> 1.000000000000000E+16 Inexact Rounded +ddfma3347 fma 1 1E+20 1 -> 1.000000000000000E+20 Inexact Rounded +ddfma3348 fma 1 1E+3 7 -> 1007 +ddfma3349 fma 1 1E+15 7 -> 1000000000000007 +ddfma3350 fma 1 1E+16 7 -> 1.000000000000001E+16 Inexact Rounded +ddfma3351 fma 1 1E+20 7 -> 1.000000000000000E+20 Inexact Rounded + +-- tryzeros cases +rounding: half_up +ddfma3360 fma 1 0E+50 10000E+1 -> 1.0000E+5 +ddfma3361 fma 1 0E-50 10000E+1 -> 100000.0000000000 Rounded +ddfma3362 fma 1 10000E+1 0E-50 -> 100000.0000000000 Rounded +ddfma3363 fma 1 10000E+1 10000E-50 -> 100000.0000000000 Rounded Inexact +ddfma3364 fma 1 9.999999999999999E+384 -9.999999999999999E+384 -> 0E+369 + +-- a curiosity from JSR 13 testing +rounding: half_down +ddfma3370 fma 1 999999999999999 815 -> 1000000000000814 +ddfma3371 fma 1 9999999999999999 815 -> 1.000000000000081E+16 Rounded Inexact +rounding: half_up +ddfma3372 fma 1 999999999999999 815 -> 1000000000000814 +ddfma3373 fma 1 9999999999999999 815 -> 1.000000000000081E+16 Rounded Inexact +rounding: half_even +ddfma3374 fma 1 999999999999999 815 -> 1000000000000814 +ddfma3375 fma 1 9999999999999999 815 -> 1.000000000000081E+16 Rounded Inexact + +-- ulp replacement tests +ddfma3400 fma 1 1 77e-14 -> 1.00000000000077 +ddfma3401 fma 1 1 77e-15 -> 1.000000000000077 +ddfma3402 fma 1 1 77e-16 -> 1.000000000000008 Inexact Rounded +ddfma3403 fma 1 1 77e-17 -> 1.000000000000001 Inexact Rounded +ddfma3404 fma 1 1 77e-18 -> 1.000000000000000 Inexact Rounded +ddfma3405 fma 1 1 77e-19 -> 1.000000000000000 Inexact Rounded +ddfma3406 fma 1 1 77e-299 -> 1.000000000000000 Inexact Rounded + +ddfma3410 fma 1 10 77e-14 -> 10.00000000000077 +ddfma3411 fma 1 10 77e-15 -> 10.00000000000008 Inexact Rounded +ddfma3412 fma 1 10 77e-16 -> 10.00000000000001 Inexact Rounded +ddfma3413 fma 1 10 77e-17 -> 10.00000000000000 Inexact Rounded +ddfma3414 fma 1 10 77e-18 -> 10.00000000000000 Inexact Rounded +ddfma3415 fma 1 10 77e-19 -> 10.00000000000000 Inexact Rounded +ddfma3416 fma 1 10 77e-299 -> 10.00000000000000 Inexact Rounded + +ddfma3420 fma 1 77e-14 1 -> 1.00000000000077 +ddfma3421 fma 1 77e-15 1 -> 1.000000000000077 +ddfma3422 fma 1 77e-16 1 -> 1.000000000000008 Inexact Rounded +ddfma3423 fma 1 77e-17 1 -> 1.000000000000001 Inexact Rounded +ddfma3424 fma 1 77e-18 1 -> 1.000000000000000 Inexact Rounded +ddfma3425 fma 1 77e-19 1 -> 1.000000000000000 Inexact Rounded +ddfma3426 fma 1 77e-299 1 -> 1.000000000000000 Inexact Rounded + +ddfma3430 fma 1 77e-14 10 -> 10.00000000000077 +ddfma3431 fma 1 77e-15 10 -> 10.00000000000008 Inexact Rounded +ddfma3432 fma 1 77e-16 10 -> 10.00000000000001 Inexact Rounded +ddfma3433 fma 1 77e-17 10 -> 10.00000000000000 Inexact Rounded +ddfma3434 fma 1 77e-18 10 -> 10.00000000000000 Inexact Rounded +ddfma3435 fma 1 77e-19 10 -> 10.00000000000000 Inexact Rounded +ddfma3436 fma 1 77e-299 10 -> 10.00000000000000 Inexact Rounded + +-- negative ulps +ddfma36440 fma 1 1 -77e-14 -> 0.99999999999923 +ddfma36441 fma 1 1 -77e-15 -> 0.999999999999923 +ddfma36442 fma 1 1 -77e-16 -> 0.9999999999999923 +ddfma36443 fma 1 1 -77e-17 -> 0.9999999999999992 Inexact Rounded +ddfma36444 fma 1 1 -77e-18 -> 0.9999999999999999 Inexact Rounded +ddfma36445 fma 1 1 -77e-19 -> 1.000000000000000 Inexact Rounded +ddfma36446 fma 1 1 -77e-99 -> 1.000000000000000 Inexact Rounded + +ddfma36450 fma 1 10 -77e-14 -> 9.99999999999923 +ddfma36451 fma 1 10 -77e-15 -> 9.999999999999923 +ddfma36452 fma 1 10 -77e-16 -> 9.999999999999992 Inexact Rounded +ddfma36453 fma 1 10 -77e-17 -> 9.999999999999999 Inexact Rounded +ddfma36454 fma 1 10 -77e-18 -> 10.00000000000000 Inexact Rounded +ddfma36455 fma 1 10 -77e-19 -> 10.00000000000000 Inexact Rounded +ddfma36456 fma 1 10 -77e-99 -> 10.00000000000000 Inexact Rounded + +ddfma36460 fma 1 -77e-14 1 -> 0.99999999999923 +ddfma36461 fma 1 -77e-15 1 -> 0.999999999999923 +ddfma36462 fma 1 -77e-16 1 -> 0.9999999999999923 +ddfma36463 fma 1 -77e-17 1 -> 0.9999999999999992 Inexact Rounded +ddfma36464 fma 1 -77e-18 1 -> 0.9999999999999999 Inexact Rounded +ddfma36465 fma 1 -77e-19 1 -> 1.000000000000000 Inexact Rounded +ddfma36466 fma 1 -77e-99 1 -> 1.000000000000000 Inexact Rounded + +ddfma36470 fma 1 -77e-14 10 -> 9.99999999999923 +ddfma36471 fma 1 -77e-15 10 -> 9.999999999999923 +ddfma36472 fma 1 -77e-16 10 -> 9.999999999999992 Inexact Rounded +ddfma36473 fma 1 -77e-17 10 -> 9.999999999999999 Inexact Rounded +ddfma36474 fma 1 -77e-18 10 -> 10.00000000000000 Inexact Rounded +ddfma36475 fma 1 -77e-19 10 -> 10.00000000000000 Inexact Rounded +ddfma36476 fma 1 -77e-99 10 -> 10.00000000000000 Inexact Rounded + +-- negative ulps +ddfma36480 fma 1 -1 77e-14 -> -0.99999999999923 +ddfma36481 fma 1 -1 77e-15 -> -0.999999999999923 +ddfma36482 fma 1 -1 77e-16 -> -0.9999999999999923 +ddfma36483 fma 1 -1 77e-17 -> -0.9999999999999992 Inexact Rounded +ddfma36484 fma 1 -1 77e-18 -> -0.9999999999999999 Inexact Rounded +ddfma36485 fma 1 -1 77e-19 -> -1.000000000000000 Inexact Rounded +ddfma36486 fma 1 -1 77e-99 -> -1.000000000000000 Inexact Rounded + +ddfma36490 fma 1 -10 77e-14 -> -9.99999999999923 +ddfma36491 fma 1 -10 77e-15 -> -9.999999999999923 +ddfma36492 fma 1 -10 77e-16 -> -9.999999999999992 Inexact Rounded +ddfma36493 fma 1 -10 77e-17 -> -9.999999999999999 Inexact Rounded +ddfma36494 fma 1 -10 77e-18 -> -10.00000000000000 Inexact Rounded +ddfma36495 fma 1 -10 77e-19 -> -10.00000000000000 Inexact Rounded +ddfma36496 fma 1 -10 77e-99 -> -10.00000000000000 Inexact Rounded + +ddfma36500 fma 1 77e-14 -1 -> -0.99999999999923 +ddfma36501 fma 1 77e-15 -1 -> -0.999999999999923 +ddfma36502 fma 1 77e-16 -1 -> -0.9999999999999923 +ddfma36503 fma 1 77e-17 -1 -> -0.9999999999999992 Inexact Rounded +ddfma36504 fma 1 77e-18 -1 -> -0.9999999999999999 Inexact Rounded +ddfma36505 fma 1 77e-19 -1 -> -1.000000000000000 Inexact Rounded +ddfma36506 fma 1 77e-99 -1 -> -1.000000000000000 Inexact Rounded + +ddfma36510 fma 1 77e-14 -10 -> -9.99999999999923 +ddfma36511 fma 1 77e-15 -10 -> -9.999999999999923 +ddfma36512 fma 1 77e-16 -10 -> -9.999999999999992 Inexact Rounded +ddfma36513 fma 1 77e-17 -10 -> -9.999999999999999 Inexact Rounded +ddfma36514 fma 1 77e-18 -10 -> -10.00000000000000 Inexact Rounded +ddfma36515 fma 1 77e-19 -10 -> -10.00000000000000 Inexact Rounded +ddfma36516 fma 1 77e-99 -10 -> -10.00000000000000 Inexact Rounded + +-- and a couple more with longer RHS +ddfma36520 fma 1 1 -7777e-16 -> 0.9999999999992223 +ddfma36521 fma 1 1 -7777e-17 -> 0.9999999999999222 Inexact Rounded +ddfma36522 fma 1 1 -7777e-18 -> 0.9999999999999922 Inexact Rounded +ddfma36523 fma 1 1 -7777e-19 -> 0.9999999999999992 Inexact Rounded +ddfma36524 fma 1 1 -7777e-20 -> 0.9999999999999999 Inexact Rounded +ddfma36525 fma 1 1 -7777e-21 -> 1.000000000000000 Inexact Rounded +ddfma36526 fma 1 1 -7777e-22 -> 1.000000000000000 Inexact Rounded + + +-- and some more residue effects and different roundings +rounding: half_up +ddfma36540 fma 1 '6543210123456789' 0 -> '6543210123456789' +ddfma36541 fma 1 '6543210123456789' 0.000000001 -> '6543210123456789' Inexact Rounded +ddfma36542 fma 1 '6543210123456789' 0.000001 -> '6543210123456789' Inexact Rounded +ddfma36543 fma 1 '6543210123456789' 0.1 -> '6543210123456789' Inexact Rounded +ddfma36544 fma 1 '6543210123456789' 0.4 -> '6543210123456789' Inexact Rounded +ddfma36545 fma 1 '6543210123456789' 0.49 -> '6543210123456789' Inexact Rounded +ddfma36546 fma 1 '6543210123456789' 0.499999 -> '6543210123456789' Inexact Rounded +ddfma36547 fma 1 '6543210123456789' 0.499999999 -> '6543210123456789' Inexact Rounded +ddfma36548 fma 1 '6543210123456789' 0.5 -> '6543210123456790' Inexact Rounded +ddfma36549 fma 1 '6543210123456789' 0.500000001 -> '6543210123456790' Inexact Rounded +ddfma36550 fma 1 '6543210123456789' 0.500001 -> '6543210123456790' Inexact Rounded +ddfma36551 fma 1 '6543210123456789' 0.51 -> '6543210123456790' Inexact Rounded +ddfma36552 fma 1 '6543210123456789' 0.6 -> '6543210123456790' Inexact Rounded +ddfma36553 fma 1 '6543210123456789' 0.9 -> '6543210123456790' Inexact Rounded +ddfma36554 fma 1 '6543210123456789' 0.99999 -> '6543210123456790' Inexact Rounded +ddfma36555 fma 1 '6543210123456789' 0.999999999 -> '6543210123456790' Inexact Rounded +ddfma36556 fma 1 '6543210123456789' 1 -> '6543210123456790' +ddfma36557 fma 1 '6543210123456789' 1.000000001 -> '6543210123456790' Inexact Rounded +ddfma36558 fma 1 '6543210123456789' 1.00001 -> '6543210123456790' Inexact Rounded +ddfma36559 fma 1 '6543210123456789' 1.1 -> '6543210123456790' Inexact Rounded + +rounding: half_even +ddfma36560 fma 1 '6543210123456789' 0 -> '6543210123456789' +ddfma36561 fma 1 '6543210123456789' 0.000000001 -> '6543210123456789' Inexact Rounded +ddfma36562 fma 1 '6543210123456789' 0.000001 -> '6543210123456789' Inexact Rounded +ddfma36563 fma 1 '6543210123456789' 0.1 -> '6543210123456789' Inexact Rounded +ddfma36564 fma 1 '6543210123456789' 0.4 -> '6543210123456789' Inexact Rounded +ddfma36565 fma 1 '6543210123456789' 0.49 -> '6543210123456789' Inexact Rounded +ddfma36566 fma 1 '6543210123456789' 0.499999 -> '6543210123456789' Inexact Rounded +ddfma36567 fma 1 '6543210123456789' 0.499999999 -> '6543210123456789' Inexact Rounded +ddfma36568 fma 1 '6543210123456789' 0.5 -> '6543210123456790' Inexact Rounded +ddfma36569 fma 1 '6543210123456789' 0.500000001 -> '6543210123456790' Inexact Rounded +ddfma36570 fma 1 '6543210123456789' 0.500001 -> '6543210123456790' Inexact Rounded +ddfma36571 fma 1 '6543210123456789' 0.51 -> '6543210123456790' Inexact Rounded +ddfma36572 fma 1 '6543210123456789' 0.6 -> '6543210123456790' Inexact Rounded +ddfma36573 fma 1 '6543210123456789' 0.9 -> '6543210123456790' Inexact Rounded +ddfma36574 fma 1 '6543210123456789' 0.99999 -> '6543210123456790' Inexact Rounded +ddfma36575 fma 1 '6543210123456789' 0.999999999 -> '6543210123456790' Inexact Rounded +ddfma36576 fma 1 '6543210123456789' 1 -> '6543210123456790' +ddfma36577 fma 1 '6543210123456789' 1.00000001 -> '6543210123456790' Inexact Rounded +ddfma36578 fma 1 '6543210123456789' 1.00001 -> '6543210123456790' Inexact Rounded +ddfma36579 fma 1 '6543210123456789' 1.1 -> '6543210123456790' Inexact Rounded + +-- critical few with even bottom digit... +ddfma37540 fma 1 '6543210123456788' 0.499999999 -> '6543210123456788' Inexact Rounded +ddfma37541 fma 1 '6543210123456788' 0.5 -> '6543210123456788' Inexact Rounded +ddfma37542 fma 1 '6543210123456788' 0.500000001 -> '6543210123456789' Inexact Rounded + +rounding: down +ddfma37550 fma 1 '6543210123456789' 0 -> '6543210123456789' +ddfma37551 fma 1 '6543210123456789' 0.000000001 -> '6543210123456789' Inexact Rounded +ddfma37552 fma 1 '6543210123456789' 0.000001 -> '6543210123456789' Inexact Rounded +ddfma37553 fma 1 '6543210123456789' 0.1 -> '6543210123456789' Inexact Rounded +ddfma37554 fma 1 '6543210123456789' 0.4 -> '6543210123456789' Inexact Rounded +ddfma37555 fma 1 '6543210123456789' 0.49 -> '6543210123456789' Inexact Rounded +ddfma37556 fma 1 '6543210123456789' 0.499999 -> '6543210123456789' Inexact Rounded +ddfma37557 fma 1 '6543210123456789' 0.499999999 -> '6543210123456789' Inexact Rounded +ddfma37558 fma 1 '6543210123456789' 0.5 -> '6543210123456789' Inexact Rounded +ddfma37559 fma 1 '6543210123456789' 0.500000001 -> '6543210123456789' Inexact Rounded +ddfma37560 fma 1 '6543210123456789' 0.500001 -> '6543210123456789' Inexact Rounded +ddfma37561 fma 1 '6543210123456789' 0.51 -> '6543210123456789' Inexact Rounded +ddfma37562 fma 1 '6543210123456789' 0.6 -> '6543210123456789' Inexact Rounded +ddfma37563 fma 1 '6543210123456789' 0.9 -> '6543210123456789' Inexact Rounded +ddfma37564 fma 1 '6543210123456789' 0.99999 -> '6543210123456789' Inexact Rounded +ddfma37565 fma 1 '6543210123456789' 0.999999999 -> '6543210123456789' Inexact Rounded +ddfma37566 fma 1 '6543210123456789' 1 -> '6543210123456790' +ddfma37567 fma 1 '6543210123456789' 1.00000001 -> '6543210123456790' Inexact Rounded +ddfma37568 fma 1 '6543210123456789' 1.00001 -> '6543210123456790' Inexact Rounded +ddfma37569 fma 1 '6543210123456789' 1.1 -> '6543210123456790' Inexact Rounded + + +-- verify a query +rounding: down +ddfma37661 fma 1 1e-398 9.000000000000000E+384 -> 9.000000000000000E+384 Inexact Rounded +ddfma37662 fma 1 0 9.000000000000000E+384 -> 9.000000000000000E+384 Rounded +ddfma37663 fma 1 1e-388 9.000000000000000E+374 -> 9.000000000000000E+374 Inexact Rounded +ddfma37664 fma 1 0 9.000000000000000E+374 -> 9.000000000000000E+374 Rounded + +-- more zeros, etc. +rounding: half_even + +ddfma37701 fma 1 5.00 1.00E-3 -> 5.00100 +ddfma37702 fma 1 00.00 0.000 -> 0.000 +ddfma37703 fma 1 00.00 0E-3 -> 0.000 +ddfma37704 fma 1 0E-3 00.00 -> 0.000 + +ddfma37710 fma 1 0E+3 00.00 -> 0.00 +ddfma37711 fma 1 0E+3 00.0 -> 0.0 +ddfma37712 fma 1 0E+3 00. -> 0 +ddfma37713 fma 1 0E+3 00.E+1 -> 0E+1 +ddfma37714 fma 1 0E+3 00.E+2 -> 0E+2 +ddfma37715 fma 1 0E+3 00.E+3 -> 0E+3 +ddfma37716 fma 1 0E+3 00.E+4 -> 0E+3 +ddfma37717 fma 1 0E+3 00.E+5 -> 0E+3 +ddfma37718 fma 1 0E+3 -00.0 -> 0.0 +ddfma37719 fma 1 0E+3 -00. -> 0 +ddfma37731 fma 1 0E+3 -00.E+1 -> 0E+1 + +ddfma37720 fma 1 00.00 0E+3 -> 0.00 +ddfma37721 fma 1 00.0 0E+3 -> 0.0 +ddfma37722 fma 1 00. 0E+3 -> 0 +ddfma37723 fma 1 00.E+1 0E+3 -> 0E+1 +ddfma37724 fma 1 00.E+2 0E+3 -> 0E+2 +ddfma37725 fma 1 00.E+3 0E+3 -> 0E+3 +ddfma37726 fma 1 00.E+4 0E+3 -> 0E+3 +ddfma37727 fma 1 00.E+5 0E+3 -> 0E+3 +ddfma37728 fma 1 -00.00 0E+3 -> 0.00 +ddfma37729 fma 1 -00.0 0E+3 -> 0.0 +ddfma37730 fma 1 -00. 0E+3 -> 0 + +ddfma37732 fma 1 0 0 -> 0 +ddfma37733 fma 1 0 -0 -> 0 +ddfma37734 fma 1 -0 0 -> 0 +ddfma37735 fma 1 -0 -0 -> -0 -- IEEE 854 special case + +ddfma37736 fma 1 1 -1 -> 0 +ddfma37737 fma 1 -1 -1 -> -2 +ddfma37738 fma 1 1 1 -> 2 +ddfma37739 fma 1 -1 1 -> 0 + +ddfma37741 fma 1 0 -1 -> -1 +ddfma37742 fma 1 -0 -1 -> -1 +ddfma37743 fma 1 0 1 -> 1 +ddfma37744 fma 1 -0 1 -> 1 +ddfma37745 fma 1 -1 0 -> -1 +ddfma37746 fma 1 -1 -0 -> -1 +ddfma37747 fma 1 1 0 -> 1 +ddfma37748 fma 1 1 -0 -> 1 + +ddfma37751 fma 1 0.0 -1 -> -1.0 +ddfma37752 fma 1 -0.0 -1 -> -1.0 +ddfma37753 fma 1 0.0 1 -> 1.0 +ddfma37754 fma 1 -0.0 1 -> 1.0 +ddfma37755 fma 1 -1.0 0 -> -1.0 +ddfma37756 fma 1 -1.0 -0 -> -1.0 +ddfma37757 fma 1 1.0 0 -> 1.0 +ddfma37758 fma 1 1.0 -0 -> 1.0 + +ddfma37761 fma 1 0 -1.0 -> -1.0 +ddfma37762 fma 1 -0 -1.0 -> -1.0 +ddfma37763 fma 1 0 1.0 -> 1.0 +ddfma37764 fma 1 -0 1.0 -> 1.0 +ddfma37765 fma 1 -1 0.0 -> -1.0 +ddfma37766 fma 1 -1 -0.0 -> -1.0 +ddfma37767 fma 1 1 0.0 -> 1.0 +ddfma37768 fma 1 1 -0.0 -> 1.0 + +ddfma37771 fma 1 0.0 -1.0 -> -1.0 +ddfma37772 fma 1 -0.0 -1.0 -> -1.0 +ddfma37773 fma 1 0.0 1.0 -> 1.0 +ddfma37774 fma 1 -0.0 1.0 -> 1.0 +ddfma37775 fma 1 -1.0 0.0 -> -1.0 +ddfma37776 fma 1 -1.0 -0.0 -> -1.0 +ddfma37777 fma 1 1.0 0.0 -> 1.0 +ddfma37778 fma 1 1.0 -0.0 -> 1.0 + +-- Specials +ddfma37780 fma 1 -Inf -Inf -> -Infinity +ddfma37781 fma 1 -Inf -1000 -> -Infinity +ddfma37782 fma 1 -Inf -1 -> -Infinity +ddfma37783 fma 1 -Inf -0 -> -Infinity +ddfma37784 fma 1 -Inf 0 -> -Infinity +ddfma37785 fma 1 -Inf 1 -> -Infinity +ddfma37786 fma 1 -Inf 1000 -> -Infinity +ddfma37787 fma 1 -1000 -Inf -> -Infinity +ddfma37788 fma 1 -Inf -Inf -> -Infinity +ddfma37789 fma 1 -1 -Inf -> -Infinity +ddfma37790 fma 1 -0 -Inf -> -Infinity +ddfma37791 fma 1 0 -Inf -> -Infinity +ddfma37792 fma 1 1 -Inf -> -Infinity +ddfma37793 fma 1 1000 -Inf -> -Infinity +ddfma37794 fma 1 Inf -Inf -> NaN Invalid_operation + +ddfma37800 fma 1 Inf -Inf -> NaN Invalid_operation +ddfma37801 fma 1 Inf -1000 -> Infinity +ddfma37802 fma 1 Inf -1 -> Infinity +ddfma37803 fma 1 Inf -0 -> Infinity +ddfma37804 fma 1 Inf 0 -> Infinity +ddfma37805 fma 1 Inf 1 -> Infinity +ddfma37806 fma 1 Inf 1000 -> Infinity +ddfma37807 fma 1 Inf Inf -> Infinity +ddfma37808 fma 1 -1000 Inf -> Infinity +ddfma37809 fma 1 -Inf Inf -> NaN Invalid_operation +ddfma37810 fma 1 -1 Inf -> Infinity +ddfma37811 fma 1 -0 Inf -> Infinity +ddfma37812 fma 1 0 Inf -> Infinity +ddfma37813 fma 1 1 Inf -> Infinity +ddfma37814 fma 1 1000 Inf -> Infinity +ddfma37815 fma 1 Inf Inf -> Infinity + +ddfma37821 fma 1 NaN -Inf -> NaN +ddfma37822 fma 1 NaN -1000 -> NaN +ddfma37823 fma 1 NaN -1 -> NaN +ddfma37824 fma 1 NaN -0 -> NaN +ddfma37825 fma 1 NaN 0 -> NaN +ddfma37826 fma 1 NaN 1 -> NaN +ddfma37827 fma 1 NaN 1000 -> NaN +ddfma37828 fma 1 NaN Inf -> NaN +ddfma37829 fma 1 NaN NaN -> NaN +ddfma37830 fma 1 -Inf NaN -> NaN +ddfma37831 fma 1 -1000 NaN -> NaN +ddfma37832 fma 1 -1 NaN -> NaN +ddfma37833 fma 1 -0 NaN -> NaN +ddfma37834 fma 1 0 NaN -> NaN +ddfma37835 fma 1 1 NaN -> NaN +ddfma37836 fma 1 1000 NaN -> NaN +ddfma37837 fma 1 Inf NaN -> NaN + +ddfma37841 fma 1 sNaN -Inf -> NaN Invalid_operation +ddfma37842 fma 1 sNaN -1000 -> NaN Invalid_operation +ddfma37843 fma 1 sNaN -1 -> NaN Invalid_operation +ddfma37844 fma 1 sNaN -0 -> NaN Invalid_operation +ddfma37845 fma 1 sNaN 0 -> NaN Invalid_operation +ddfma37846 fma 1 sNaN 1 -> NaN Invalid_operation +ddfma37847 fma 1 sNaN 1000 -> NaN Invalid_operation +ddfma37848 fma 1 sNaN NaN -> NaN Invalid_operation +ddfma37849 fma 1 sNaN sNaN -> NaN Invalid_operation +ddfma37850 fma 1 NaN sNaN -> NaN Invalid_operation +ddfma37851 fma 1 -Inf sNaN -> NaN Invalid_operation +ddfma37852 fma 1 -1000 sNaN -> NaN Invalid_operation +ddfma37853 fma 1 -1 sNaN -> NaN Invalid_operation +ddfma37854 fma 1 -0 sNaN -> NaN Invalid_operation +ddfma37855 fma 1 0 sNaN -> NaN Invalid_operation +ddfma37856 fma 1 1 sNaN -> NaN Invalid_operation +ddfma37857 fma 1 1000 sNaN -> NaN Invalid_operation +ddfma37858 fma 1 Inf sNaN -> NaN Invalid_operation +ddfma37859 fma 1 NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +ddfma37861 fma 1 NaN1 -Inf -> NaN1 +ddfma37862 fma 1 +NaN2 -1000 -> NaN2 +ddfma37863 fma 1 NaN3 1000 -> NaN3 +ddfma37864 fma 1 NaN4 Inf -> NaN4 +ddfma37865 fma 1 NaN5 +NaN6 -> NaN5 +ddfma37866 fma 1 -Inf NaN7 -> NaN7 +ddfma37867 fma 1 -1000 NaN8 -> NaN8 +ddfma37868 fma 1 1000 NaN9 -> NaN9 +ddfma37869 fma 1 Inf +NaN10 -> NaN10 +ddfma37871 fma 1 sNaN11 -Inf -> NaN11 Invalid_operation +ddfma37872 fma 1 sNaN12 -1000 -> NaN12 Invalid_operation +ddfma37873 fma 1 sNaN13 1000 -> NaN13 Invalid_operation +ddfma37874 fma 1 sNaN14 NaN17 -> NaN14 Invalid_operation +ddfma37875 fma 1 sNaN15 sNaN18 -> NaN15 Invalid_operation +ddfma37876 fma 1 NaN16 sNaN19 -> NaN19 Invalid_operation +ddfma37877 fma 1 -Inf +sNaN20 -> NaN20 Invalid_operation +ddfma37878 fma 1 -1000 sNaN21 -> NaN21 Invalid_operation +ddfma37879 fma 1 1000 sNaN22 -> NaN22 Invalid_operation +ddfma37880 fma 1 Inf sNaN23 -> NaN23 Invalid_operation +ddfma37881 fma 1 +NaN25 +sNaN24 -> NaN24 Invalid_operation +ddfma37882 fma 1 -NaN26 NaN28 -> -NaN26 +ddfma37883 fma 1 -sNaN27 sNaN29 -> -NaN27 Invalid_operation +ddfma37884 fma 1 1000 -NaN30 -> -NaN30 +ddfma37885 fma 1 1000 -sNaN31 -> -NaN31 Invalid_operation + +-- Here we explore near the boundary of rounding a subnormal to Nmin +ddfma37575 fma 1 1E-383 -1E-398 -> 9.99999999999999E-384 Subnormal +ddfma37576 fma 1 -1E-383 +1E-398 -> -9.99999999999999E-384 Subnormal + +-- check overflow edge case +-- 1234567890123456 +ddfma37972 apply 9.999999999999999E+384 -> 9.999999999999999E+384 +ddfma37973 fma 1 9.999999999999999E+384 1 -> 9.999999999999999E+384 Inexact Rounded +ddfma37974 fma 1 9999999999999999E+369 1 -> 9.999999999999999E+384 Inexact Rounded +ddfma37975 fma 1 9999999999999999E+369 1E+369 -> Infinity Overflow Inexact Rounded +ddfma37976 fma 1 9999999999999999E+369 9E+368 -> Infinity Overflow Inexact Rounded +ddfma37977 fma 1 9999999999999999E+369 8E+368 -> Infinity Overflow Inexact Rounded +ddfma37978 fma 1 9999999999999999E+369 7E+368 -> Infinity Overflow Inexact Rounded +ddfma37979 fma 1 9999999999999999E+369 6E+368 -> Infinity Overflow Inexact Rounded +ddfma37980 fma 1 9999999999999999E+369 5E+368 -> Infinity Overflow Inexact Rounded +ddfma37981 fma 1 9999999999999999E+369 4E+368 -> 9.999999999999999E+384 Inexact Rounded +ddfma37982 fma 1 9999999999999999E+369 3E+368 -> 9.999999999999999E+384 Inexact Rounded +ddfma37983 fma 1 9999999999999999E+369 2E+368 -> 9.999999999999999E+384 Inexact Rounded +ddfma37984 fma 1 9999999999999999E+369 1E+368 -> 9.999999999999999E+384 Inexact Rounded + +ddfma37985 apply -9.999999999999999E+384 -> -9.999999999999999E+384 +ddfma37986 fma 1 -9.999999999999999E+384 -1 -> -9.999999999999999E+384 Inexact Rounded +ddfma37987 fma 1 -9999999999999999E+369 -1 -> -9.999999999999999E+384 Inexact Rounded +ddfma37988 fma 1 -9999999999999999E+369 -1E+369 -> -Infinity Overflow Inexact Rounded +ddfma37989 fma 1 -9999999999999999E+369 -9E+368 -> -Infinity Overflow Inexact Rounded +ddfma37990 fma 1 -9999999999999999E+369 -8E+368 -> -Infinity Overflow Inexact Rounded +ddfma37991 fma 1 -9999999999999999E+369 -7E+368 -> -Infinity Overflow Inexact Rounded +ddfma37992 fma 1 -9999999999999999E+369 -6E+368 -> -Infinity Overflow Inexact Rounded +ddfma37993 fma 1 -9999999999999999E+369 -5E+368 -> -Infinity Overflow Inexact Rounded +ddfma37994 fma 1 -9999999999999999E+369 -4E+368 -> -9.999999999999999E+384 Inexact Rounded +ddfma37995 fma 1 -9999999999999999E+369 -3E+368 -> -9.999999999999999E+384 Inexact Rounded +ddfma37996 fma 1 -9999999999999999E+369 -2E+368 -> -9.999999999999999E+384 Inexact Rounded +ddfma37997 fma 1 -9999999999999999E+369 -1E+368 -> -9.999999999999999E+384 Inexact Rounded + +-- And for round down full and subnormal results +rounding: down +ddfma371100 fma 1 1e+2 -1e-383 -> 99.99999999999999 Rounded Inexact +ddfma371101 fma 1 1e+1 -1e-383 -> 9.999999999999999 Rounded Inexact +ddfma371103 fma 1 +1 -1e-383 -> 0.9999999999999999 Rounded Inexact +ddfma371104 fma 1 1e-1 -1e-383 -> 0.09999999999999999 Rounded Inexact +ddfma371105 fma 1 1e-2 -1e-383 -> 0.009999999999999999 Rounded Inexact +ddfma371106 fma 1 1e-3 -1e-383 -> 0.0009999999999999999 Rounded Inexact +ddfma371107 fma 1 1e-4 -1e-383 -> 0.00009999999999999999 Rounded Inexact +ddfma371108 fma 1 1e-5 -1e-383 -> 0.000009999999999999999 Rounded Inexact +ddfma371109 fma 1 1e-6 -1e-383 -> 9.999999999999999E-7 Rounded Inexact + +rounding: ceiling +ddfma371110 fma 1 -1e+2 +1e-383 -> -99.99999999999999 Rounded Inexact +ddfma371111 fma 1 -1e+1 +1e-383 -> -9.999999999999999 Rounded Inexact +ddfma371113 fma 1 -1 +1e-383 -> -0.9999999999999999 Rounded Inexact +ddfma371114 fma 1 -1e-1 +1e-383 -> -0.09999999999999999 Rounded Inexact +ddfma371115 fma 1 -1e-2 +1e-383 -> -0.009999999999999999 Rounded Inexact +ddfma371116 fma 1 -1e-3 +1e-383 -> -0.0009999999999999999 Rounded Inexact +ddfma371117 fma 1 -1e-4 +1e-383 -> -0.00009999999999999999 Rounded Inexact +ddfma371118 fma 1 -1e-5 +1e-383 -> -0.000009999999999999999 Rounded Inexact +ddfma371119 fma 1 -1e-6 +1e-383 -> -9.999999999999999E-7 Rounded Inexact + +-- tests based on Gunnar Degnbol's edge case +rounding: half_even + +ddfma371300 fma 1 1E16 -0.5 -> 1.000000000000000E+16 Inexact Rounded +ddfma371310 fma 1 1E16 -0.51 -> 9999999999999999 Inexact Rounded +ddfma371311 fma 1 1E16 -0.501 -> 9999999999999999 Inexact Rounded +ddfma371312 fma 1 1E16 -0.5001 -> 9999999999999999 Inexact Rounded +ddfma371313 fma 1 1E16 -0.50001 -> 9999999999999999 Inexact Rounded +ddfma371314 fma 1 1E16 -0.500001 -> 9999999999999999 Inexact Rounded +ddfma371315 fma 1 1E16 -0.5000001 -> 9999999999999999 Inexact Rounded +ddfma371316 fma 1 1E16 -0.50000001 -> 9999999999999999 Inexact Rounded +ddfma371317 fma 1 1E16 -0.500000001 -> 9999999999999999 Inexact Rounded +ddfma371318 fma 1 1E16 -0.5000000001 -> 9999999999999999 Inexact Rounded +ddfma371319 fma 1 1E16 -0.50000000001 -> 9999999999999999 Inexact Rounded +ddfma371320 fma 1 1E16 -0.500000000001 -> 9999999999999999 Inexact Rounded +ddfma371321 fma 1 1E16 -0.5000000000001 -> 9999999999999999 Inexact Rounded +ddfma371322 fma 1 1E16 -0.50000000000001 -> 9999999999999999 Inexact Rounded +ddfma371323 fma 1 1E16 -0.500000000000001 -> 9999999999999999 Inexact Rounded +ddfma371324 fma 1 1E16 -0.5000000000000001 -> 9999999999999999 Inexact Rounded +ddfma371325 fma 1 1E16 -0.5000000000000000 -> 1.000000000000000E+16 Inexact Rounded +ddfma371326 fma 1 1E16 -0.500000000000000 -> 1.000000000000000E+16 Inexact Rounded +ddfma371327 fma 1 1E16 -0.50000000000000 -> 1.000000000000000E+16 Inexact Rounded +ddfma371328 fma 1 1E16 -0.5000000000000 -> 1.000000000000000E+16 Inexact Rounded +ddfma371329 fma 1 1E16 -0.500000000000 -> 1.000000000000000E+16 Inexact Rounded +ddfma371330 fma 1 1E16 -0.50000000000 -> 1.000000000000000E+16 Inexact Rounded +ddfma371331 fma 1 1E16 -0.5000000000 -> 1.000000000000000E+16 Inexact Rounded +ddfma371332 fma 1 1E16 -0.500000000 -> 1.000000000000000E+16 Inexact Rounded +ddfma371333 fma 1 1E16 -0.50000000 -> 1.000000000000000E+16 Inexact Rounded +ddfma371334 fma 1 1E16 -0.5000000 -> 1.000000000000000E+16 Inexact Rounded +ddfma371335 fma 1 1E16 -0.500000 -> 1.000000000000000E+16 Inexact Rounded +ddfma371336 fma 1 1E16 -0.50000 -> 1.000000000000000E+16 Inexact Rounded +ddfma371337 fma 1 1E16 -0.5000 -> 1.000000000000000E+16 Inexact Rounded +ddfma371338 fma 1 1E16 -0.500 -> 1.000000000000000E+16 Inexact Rounded +ddfma371339 fma 1 1E16 -0.50 -> 1.000000000000000E+16 Inexact Rounded + +ddfma371340 fma 1 1E16 -5000000.000010001 -> 9999999995000000 Inexact Rounded +ddfma371341 fma 1 1E16 -5000000.000000001 -> 9999999995000000 Inexact Rounded + +ddfma371349 fma 1 9999999999999999 0.4 -> 9999999999999999 Inexact Rounded +ddfma371350 fma 1 9999999999999999 0.49 -> 9999999999999999 Inexact Rounded +ddfma371351 fma 1 9999999999999999 0.499 -> 9999999999999999 Inexact Rounded +ddfma371352 fma 1 9999999999999999 0.4999 -> 9999999999999999 Inexact Rounded +ddfma371353 fma 1 9999999999999999 0.49999 -> 9999999999999999 Inexact Rounded +ddfma371354 fma 1 9999999999999999 0.499999 -> 9999999999999999 Inexact Rounded +ddfma371355 fma 1 9999999999999999 0.4999999 -> 9999999999999999 Inexact Rounded +ddfma371356 fma 1 9999999999999999 0.49999999 -> 9999999999999999 Inexact Rounded +ddfma371357 fma 1 9999999999999999 0.499999999 -> 9999999999999999 Inexact Rounded +ddfma371358 fma 1 9999999999999999 0.4999999999 -> 9999999999999999 Inexact Rounded +ddfma371359 fma 1 9999999999999999 0.49999999999 -> 9999999999999999 Inexact Rounded +ddfma371360 fma 1 9999999999999999 0.499999999999 -> 9999999999999999 Inexact Rounded +ddfma371361 fma 1 9999999999999999 0.4999999999999 -> 9999999999999999 Inexact Rounded +ddfma371362 fma 1 9999999999999999 0.49999999999999 -> 9999999999999999 Inexact Rounded +ddfma371363 fma 1 9999999999999999 0.499999999999999 -> 9999999999999999 Inexact Rounded +ddfma371364 fma 1 9999999999999999 0.4999999999999999 -> 9999999999999999 Inexact Rounded +ddfma371365 fma 1 9999999999999999 0.5000000000000000 -> 1.000000000000000E+16 Inexact Rounded +ddfma371367 fma 1 9999999999999999 0.500000000000000 -> 1.000000000000000E+16 Inexact Rounded +ddfma371368 fma 1 9999999999999999 0.50000000000000 -> 1.000000000000000E+16 Inexact Rounded +ddfma371369 fma 1 9999999999999999 0.5000000000000 -> 1.000000000000000E+16 Inexact Rounded +ddfma371370 fma 1 9999999999999999 0.500000000000 -> 1.000000000000000E+16 Inexact Rounded +ddfma371371 fma 1 9999999999999999 0.50000000000 -> 1.000000000000000E+16 Inexact Rounded +ddfma371372 fma 1 9999999999999999 0.5000000000 -> 1.000000000000000E+16 Inexact Rounded +ddfma371373 fma 1 9999999999999999 0.500000000 -> 1.000000000000000E+16 Inexact Rounded +ddfma371374 fma 1 9999999999999999 0.50000000 -> 1.000000000000000E+16 Inexact Rounded +ddfma371375 fma 1 9999999999999999 0.5000000 -> 1.000000000000000E+16 Inexact Rounded +ddfma371376 fma 1 9999999999999999 0.500000 -> 1.000000000000000E+16 Inexact Rounded +ddfma371377 fma 1 9999999999999999 0.50000 -> 1.000000000000000E+16 Inexact Rounded +ddfma371378 fma 1 9999999999999999 0.5000 -> 1.000000000000000E+16 Inexact Rounded +ddfma371379 fma 1 9999999999999999 0.500 -> 1.000000000000000E+16 Inexact Rounded +ddfma371380 fma 1 9999999999999999 0.50 -> 1.000000000000000E+16 Inexact Rounded +ddfma371381 fma 1 9999999999999999 0.5 -> 1.000000000000000E+16 Inexact Rounded +ddfma371382 fma 1 9999999999999999 0.5000000000000001 -> 1.000000000000000E+16 Inexact Rounded +ddfma371383 fma 1 9999999999999999 0.500000000000001 -> 1.000000000000000E+16 Inexact Rounded +ddfma371384 fma 1 9999999999999999 0.50000000000001 -> 1.000000000000000E+16 Inexact Rounded +ddfma371385 fma 1 9999999999999999 0.5000000000001 -> 1.000000000000000E+16 Inexact Rounded +ddfma371386 fma 1 9999999999999999 0.500000000001 -> 1.000000000000000E+16 Inexact Rounded +ddfma371387 fma 1 9999999999999999 0.50000000001 -> 1.000000000000000E+16 Inexact Rounded +ddfma371388 fma 1 9999999999999999 0.5000000001 -> 1.000000000000000E+16 Inexact Rounded +ddfma371389 fma 1 9999999999999999 0.500000001 -> 1.000000000000000E+16 Inexact Rounded +ddfma371390 fma 1 9999999999999999 0.50000001 -> 1.000000000000000E+16 Inexact Rounded +ddfma371391 fma 1 9999999999999999 0.5000001 -> 1.000000000000000E+16 Inexact Rounded +ddfma371392 fma 1 9999999999999999 0.500001 -> 1.000000000000000E+16 Inexact Rounded +ddfma371393 fma 1 9999999999999999 0.50001 -> 1.000000000000000E+16 Inexact Rounded +ddfma371394 fma 1 9999999999999999 0.5001 -> 1.000000000000000E+16 Inexact Rounded +ddfma371395 fma 1 9999999999999999 0.501 -> 1.000000000000000E+16 Inexact Rounded +ddfma371396 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 +ddfma371420 fma 1 0 1.123456789012345 -> 1.123456789012345 +ddfma371421 fma 1 0 1.123456789012345E-1 -> 0.1123456789012345 +ddfma371422 fma 1 0 1.123456789012345E-2 -> 0.01123456789012345 +ddfma371423 fma 1 0 1.123456789012345E-3 -> 0.001123456789012345 +ddfma371424 fma 1 0 1.123456789012345E-4 -> 0.0001123456789012345 +ddfma371425 fma 1 0 1.123456789012345E-5 -> 0.00001123456789012345 +ddfma371426 fma 1 0 1.123456789012345E-6 -> 0.000001123456789012345 +ddfma371427 fma 1 0 1.123456789012345E-7 -> 1.123456789012345E-7 +ddfma371428 fma 1 0 1.123456789012345E-8 -> 1.123456789012345E-8 +ddfma371429 fma 1 0 1.123456789012345E-9 -> 1.123456789012345E-9 +ddfma371430 fma 1 0 1.123456789012345E-10 -> 1.123456789012345E-10 +ddfma371431 fma 1 0 1.123456789012345E-11 -> 1.123456789012345E-11 +ddfma371432 fma 1 0 1.123456789012345E-12 -> 1.123456789012345E-12 +ddfma371433 fma 1 0 1.123456789012345E-13 -> 1.123456789012345E-13 +ddfma371434 fma 1 0 1.123456789012345E-14 -> 1.123456789012345E-14 +ddfma371435 fma 1 0 1.123456789012345E-15 -> 1.123456789012345E-15 +ddfma371436 fma 1 0 1.123456789012345E-16 -> 1.123456789012345E-16 +ddfma371437 fma 1 0 1.123456789012345E-17 -> 1.123456789012345E-17 +ddfma371438 fma 1 0 1.123456789012345E-18 -> 1.123456789012345E-18 +ddfma371439 fma 1 0 1.123456789012345E-19 -> 1.123456789012345E-19 + +-- same, reversed 0 +ddfma371440 fma 1 1.123456789012345 0 -> 1.123456789012345 +ddfma371441 fma 1 1.123456789012345E-1 0 -> 0.1123456789012345 +ddfma371442 fma 1 1.123456789012345E-2 0 -> 0.01123456789012345 +ddfma371443 fma 1 1.123456789012345E-3 0 -> 0.001123456789012345 +ddfma371444 fma 1 1.123456789012345E-4 0 -> 0.0001123456789012345 +ddfma371445 fma 1 1.123456789012345E-5 0 -> 0.00001123456789012345 +ddfma371446 fma 1 1.123456789012345E-6 0 -> 0.000001123456789012345 +ddfma371447 fma 1 1.123456789012345E-7 0 -> 1.123456789012345E-7 +ddfma371448 fma 1 1.123456789012345E-8 0 -> 1.123456789012345E-8 +ddfma371449 fma 1 1.123456789012345E-9 0 -> 1.123456789012345E-9 +ddfma371450 fma 1 1.123456789012345E-10 0 -> 1.123456789012345E-10 +ddfma371451 fma 1 1.123456789012345E-11 0 -> 1.123456789012345E-11 +ddfma371452 fma 1 1.123456789012345E-12 0 -> 1.123456789012345E-12 +ddfma371453 fma 1 1.123456789012345E-13 0 -> 1.123456789012345E-13 +ddfma371454 fma 1 1.123456789012345E-14 0 -> 1.123456789012345E-14 +ddfma371455 fma 1 1.123456789012345E-15 0 -> 1.123456789012345E-15 +ddfma371456 fma 1 1.123456789012345E-16 0 -> 1.123456789012345E-16 +ddfma371457 fma 1 1.123456789012345E-17 0 -> 1.123456789012345E-17 +ddfma371458 fma 1 1.123456789012345E-18 0 -> 1.123456789012345E-18 +ddfma371459 fma 1 1.123456789012345E-19 0 -> 1.123456789012345E-19 + +-- same, Es on the 0 +ddfma371460 fma 1 1.123456789012345 0E-0 -> 1.123456789012345 +ddfma371461 fma 1 1.123456789012345 0E-1 -> 1.123456789012345 +ddfma371462 fma 1 1.123456789012345 0E-2 -> 1.123456789012345 +ddfma371463 fma 1 1.123456789012345 0E-3 -> 1.123456789012345 +ddfma371464 fma 1 1.123456789012345 0E-4 -> 1.123456789012345 +ddfma371465 fma 1 1.123456789012345 0E-5 -> 1.123456789012345 +ddfma371466 fma 1 1.123456789012345 0E-6 -> 1.123456789012345 +ddfma371467 fma 1 1.123456789012345 0E-7 -> 1.123456789012345 +ddfma371468 fma 1 1.123456789012345 0E-8 -> 1.123456789012345 +ddfma371469 fma 1 1.123456789012345 0E-9 -> 1.123456789012345 +ddfma371470 fma 1 1.123456789012345 0E-10 -> 1.123456789012345 +ddfma371471 fma 1 1.123456789012345 0E-11 -> 1.123456789012345 +ddfma371472 fma 1 1.123456789012345 0E-12 -> 1.123456789012345 +ddfma371473 fma 1 1.123456789012345 0E-13 -> 1.123456789012345 +ddfma371474 fma 1 1.123456789012345 0E-14 -> 1.123456789012345 +ddfma371475 fma 1 1.123456789012345 0E-15 -> 1.123456789012345 +-- next four flag Rounded because the 0 extends the result +ddfma371476 fma 1 1.123456789012345 0E-16 -> 1.123456789012345 Rounded +ddfma371477 fma 1 1.123456789012345 0E-17 -> 1.123456789012345 Rounded +ddfma371478 fma 1 1.123456789012345 0E-18 -> 1.123456789012345 Rounded +ddfma371479 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 +ddfma371500 fma 1 0 0E-19 -> 0E-19 +ddfma371501 fma 1 -0 0E-19 -> 0E-19 +ddfma371502 fma 1 0 -0E-19 -> 0E-19 +ddfma371503 fma 1 -0 -0E-19 -> -0E-19 +-- exact zeros from non-zeros +ddfma371511 fma 1 -11 11 -> 0 +ddfma371512 fma 1 11 -11 -> 0 + +rounding: half_down +-- exact zeros from zeros +ddfma371520 fma 1 0 0E-19 -> 0E-19 +ddfma371521 fma 1 -0 0E-19 -> 0E-19 +ddfma371522 fma 1 0 -0E-19 -> 0E-19 +ddfma371523 fma 1 -0 -0E-19 -> -0E-19 +-- exact zeros from non-zeros +ddfma371531 fma 1 -11 11 -> 0 +ddfma371532 fma 1 11 -11 -> 0 + +rounding: half_even +-- exact zeros from zeros +ddfma371540 fma 1 0 0E-19 -> 0E-19 +ddfma371541 fma 1 -0 0E-19 -> 0E-19 +ddfma371542 fma 1 0 -0E-19 -> 0E-19 +ddfma371543 fma 1 -0 -0E-19 -> -0E-19 +-- exact zeros from non-zeros +ddfma371551 fma 1 -11 11 -> 0 +ddfma371552 fma 1 11 -11 -> 0 + +rounding: up +-- exact zeros from zeros +ddfma371560 fma 1 0 0E-19 -> 0E-19 +ddfma371561 fma 1 -0 0E-19 -> 0E-19 +ddfma371562 fma 1 0 -0E-19 -> 0E-19 +ddfma371563 fma 1 -0 -0E-19 -> -0E-19 +-- exact zeros from non-zeros +ddfma371571 fma 1 -11 11 -> 0 +ddfma371572 fma 1 11 -11 -> 0 + +rounding: down +-- exact zeros from zeros +ddfma371580 fma 1 0 0E-19 -> 0E-19 +ddfma371581 fma 1 -0 0E-19 -> 0E-19 +ddfma371582 fma 1 0 -0E-19 -> 0E-19 +ddfma371583 fma 1 -0 -0E-19 -> -0E-19 +-- exact zeros from non-zeros +ddfma371591 fma 1 -11 11 -> 0 +ddfma371592 fma 1 11 -11 -> 0 + +rounding: ceiling +-- exact zeros from zeros +ddfma371600 fma 1 0 0E-19 -> 0E-19 +ddfma371601 fma 1 -0 0E-19 -> 0E-19 +ddfma371602 fma 1 0 -0E-19 -> 0E-19 +ddfma371603 fma 1 -0 -0E-19 -> -0E-19 +-- exact zeros from non-zeros +ddfma371611 fma 1 -11 11 -> 0 +ddfma371612 fma 1 11 -11 -> 0 + +-- and the extra-special ugly case; unusual minuses marked by -- * +rounding: floor +-- exact zeros from zeros +ddfma371620 fma 1 0 0E-19 -> 0E-19 +ddfma371621 fma 1 -0 0E-19 -> -0E-19 -- * +ddfma371622 fma 1 0 -0E-19 -> -0E-19 -- * +ddfma371623 fma 1 -0 -0E-19 -> -0E-19 +-- exact zeros from non-zeros +ddfma371631 fma 1 -11 11 -> -0 -- * +ddfma371632 fma 1 11 -11 -> -0 -- * + +-- Examples from SQL proposal (Krishna Kulkarni) +ddfma371701 fma 1 130E-2 120E-2 -> 2.50 +ddfma371702 fma 1 130E-2 12E-1 -> 2.50 +ddfma371703 fma 1 130E-2 1E0 -> 2.30 +ddfma371704 fma 1 1E2 1E4 -> 1.01E+4 +ddfma371705 fma 1 130E-2 -120E-2 -> 0.10 +ddfma371706 fma 1 130E-2 -12E-1 -> 0.10 +ddfma371707 fma 1 130E-2 -1E0 -> 0.30 +ddfma371708 fma 1 1E2 -1E4 -> -9.9E+3 + +-- Gappy coefficients; check residue handling even with full coefficient gap +rounding: half_even + +ddfma375001 fma 1 1234567890123456 1 -> 1234567890123457 +ddfma375002 fma 1 1234567890123456 0.6 -> 1234567890123457 Inexact Rounded +ddfma375003 fma 1 1234567890123456 0.06 -> 1234567890123456 Inexact Rounded +ddfma375004 fma 1 1234567890123456 6E-3 -> 1234567890123456 Inexact Rounded +ddfma375005 fma 1 1234567890123456 6E-4 -> 1234567890123456 Inexact Rounded +ddfma375006 fma 1 1234567890123456 6E-5 -> 1234567890123456 Inexact Rounded +ddfma375007 fma 1 1234567890123456 6E-6 -> 1234567890123456 Inexact Rounded +ddfma375008 fma 1 1234567890123456 6E-7 -> 1234567890123456 Inexact Rounded +ddfma375009 fma 1 1234567890123456 6E-8 -> 1234567890123456 Inexact Rounded +ddfma375010 fma 1 1234567890123456 6E-9 -> 1234567890123456 Inexact Rounded +ddfma375011 fma 1 1234567890123456 6E-10 -> 1234567890123456 Inexact Rounded +ddfma375012 fma 1 1234567890123456 6E-11 -> 1234567890123456 Inexact Rounded +ddfma375013 fma 1 1234567890123456 6E-12 -> 1234567890123456 Inexact Rounded +ddfma375014 fma 1 1234567890123456 6E-13 -> 1234567890123456 Inexact Rounded +ddfma375015 fma 1 1234567890123456 6E-14 -> 1234567890123456 Inexact Rounded +ddfma375016 fma 1 1234567890123456 6E-15 -> 1234567890123456 Inexact Rounded +ddfma375017 fma 1 1234567890123456 6E-16 -> 1234567890123456 Inexact Rounded +ddfma375018 fma 1 1234567890123456 6E-17 -> 1234567890123456 Inexact Rounded +ddfma375019 fma 1 1234567890123456 6E-18 -> 1234567890123456 Inexact Rounded +ddfma375020 fma 1 1234567890123456 6E-19 -> 1234567890123456 Inexact Rounded +ddfma375021 fma 1 1234567890123456 6E-20 -> 1234567890123456 Inexact Rounded + +-- widening second argument at gap +ddfma375030 fma 1 12345678 1 -> 12345679 +ddfma375031 fma 1 12345678 0.1 -> 12345678.1 +ddfma375032 fma 1 12345678 0.12 -> 12345678.12 +ddfma375033 fma 1 12345678 0.123 -> 12345678.123 +ddfma375034 fma 1 12345678 0.1234 -> 12345678.1234 +ddfma375035 fma 1 12345678 0.12345 -> 12345678.12345 +ddfma375036 fma 1 12345678 0.123456 -> 12345678.123456 +ddfma375037 fma 1 12345678 0.1234567 -> 12345678.1234567 +ddfma375038 fma 1 12345678 0.12345678 -> 12345678.12345678 +ddfma375039 fma 1 12345678 0.123456789 -> 12345678.12345679 Inexact Rounded +ddfma375040 fma 1 12345678 0.123456785 -> 12345678.12345678 Inexact Rounded +ddfma375041 fma 1 12345678 0.1234567850 -> 12345678.12345678 Inexact Rounded +ddfma375042 fma 1 12345678 0.1234567851 -> 12345678.12345679 Inexact Rounded +ddfma375043 fma 1 12345678 0.12345678501 -> 12345678.12345679 Inexact Rounded +ddfma375044 fma 1 12345678 0.123456785001 -> 12345678.12345679 Inexact Rounded +ddfma375045 fma 1 12345678 0.1234567850001 -> 12345678.12345679 Inexact Rounded +ddfma375046 fma 1 12345678 0.12345678500001 -> 12345678.12345679 Inexact Rounded +ddfma375047 fma 1 12345678 0.123456785000001 -> 12345678.12345679 Inexact Rounded +ddfma375048 fma 1 12345678 0.1234567850000001 -> 12345678.12345679 Inexact Rounded +ddfma375049 fma 1 12345678 0.1234567850000000 -> 12345678.12345678 Inexact Rounded +-- 90123456 +rounding: half_even +ddfma375050 fma 1 12345678 0.0234567750000000 -> 12345678.02345678 Inexact Rounded +ddfma375051 fma 1 12345678 0.0034567750000000 -> 12345678.00345678 Inexact Rounded +ddfma375052 fma 1 12345678 0.0004567750000000 -> 12345678.00045678 Inexact Rounded +ddfma375053 fma 1 12345678 0.0000567750000000 -> 12345678.00005678 Inexact Rounded +ddfma375054 fma 1 12345678 0.0000067750000000 -> 12345678.00000678 Inexact Rounded +ddfma375055 fma 1 12345678 0.0000007750000000 -> 12345678.00000078 Inexact Rounded +ddfma375056 fma 1 12345678 0.0000000750000000 -> 12345678.00000008 Inexact Rounded +ddfma375057 fma 1 12345678 0.0000000050000000 -> 12345678.00000000 Inexact Rounded +ddfma375060 fma 1 12345678 0.0234567750000001 -> 12345678.02345678 Inexact Rounded +ddfma375061 fma 1 12345678 0.0034567750000001 -> 12345678.00345678 Inexact Rounded +ddfma375062 fma 1 12345678 0.0004567750000001 -> 12345678.00045678 Inexact Rounded +ddfma375063 fma 1 12345678 0.0000567750000001 -> 12345678.00005678 Inexact Rounded +ddfma375064 fma 1 12345678 0.0000067750000001 -> 12345678.00000678 Inexact Rounded +ddfma375065 fma 1 12345678 0.0000007750000001 -> 12345678.00000078 Inexact Rounded +ddfma375066 fma 1 12345678 0.0000000750000001 -> 12345678.00000008 Inexact Rounded +ddfma375067 fma 1 12345678 0.0000000050000001 -> 12345678.00000001 Inexact Rounded +-- far-out residues (full coefficient gap is 16+15 digits) +rounding: up +ddfma375070 fma 1 12345678 1E-8 -> 12345678.00000001 +ddfma375071 fma 1 12345678 1E-9 -> 12345678.00000001 Inexact Rounded +ddfma375072 fma 1 12345678 1E-10 -> 12345678.00000001 Inexact Rounded +ddfma375073 fma 1 12345678 1E-11 -> 12345678.00000001 Inexact Rounded +ddfma375074 fma 1 12345678 1E-12 -> 12345678.00000001 Inexact Rounded +ddfma375075 fma 1 12345678 1E-13 -> 12345678.00000001 Inexact Rounded +ddfma375076 fma 1 12345678 1E-14 -> 12345678.00000001 Inexact Rounded +ddfma375077 fma 1 12345678 1E-15 -> 12345678.00000001 Inexact Rounded +ddfma375078 fma 1 12345678 1E-16 -> 12345678.00000001 Inexact Rounded +ddfma375079 fma 1 12345678 1E-17 -> 12345678.00000001 Inexact Rounded +ddfma375080 fma 1 12345678 1E-18 -> 12345678.00000001 Inexact Rounded +ddfma375081 fma 1 12345678 1E-19 -> 12345678.00000001 Inexact Rounded +ddfma375082 fma 1 12345678 1E-20 -> 12345678.00000001 Inexact Rounded +ddfma375083 fma 1 12345678 1E-25 -> 12345678.00000001 Inexact Rounded +ddfma375084 fma 1 12345678 1E-30 -> 12345678.00000001 Inexact Rounded +ddfma375085 fma 1 12345678 1E-31 -> 12345678.00000001 Inexact Rounded +ddfma375086 fma 1 12345678 1E-32 -> 12345678.00000001 Inexact Rounded +ddfma375087 fma 1 12345678 1E-33 -> 12345678.00000001 Inexact Rounded +ddfma375088 fma 1 12345678 1E-34 -> 12345678.00000001 Inexact Rounded +ddfma375089 fma 1 12345678 1E-35 -> 12345678.00000001 Inexact Rounded + +-- desctructive subtraction (from remainder tests) + +-- +++ some of these will be off-by-one remainder vs remainderNear + +ddfma4000 fma -1234567890123454 1.000000000000001 1234567890123456 -> 0.765432109876546 +ddfma4001 fma -1234567890123443 1.00000000000001 1234567890123456 -> 0.65432109876557 +ddfma4002 fma -1234567890123332 1.0000000000001 1234567890123456 -> 0.5432109876668 +ddfma4003 fma -308641972530863 4.000000000000001 1234567890123455 -> 2.691358027469137 +ddfma4004 fma -308641972530863 4.000000000000001 1234567890123456 -> 3.691358027469137 +ddfma4005 fma -246913578024696 4.9999999999999 1234567890123456 -> 0.6913578024696 +ddfma4006 fma -246913578024691 4.99999999999999 1234567890123456 -> 3.46913578024691 +ddfma4007 fma -246913578024691 4.999999999999999 1234567890123456 -> 1.246913578024691 +ddfma4008 fma -246913578024691 5.000000000000001 1234567890123456 -> 0.753086421975309 +ddfma4009 fma -246913578024690 5.00000000000001 1234567890123456 -> 3.53086421975310 +ddfma4010 fma -246913578024686 5.0000000000001 1234567890123456 -> 1.3086421975314 +ddfma4011 fma -1234567890123455 1.000000000000001 1234567890123456 -> -0.234567890123455 +ddfma4012 fma -1234567890123444 1.00000000000001 1234567890123456 -> -0.34567890123444 +ddfma4013 fma -1234567890123333 1.0000000000001 1234567890123456 -> -0.4567890123333 +ddfma4014 fma -308641972530864 4.000000000000001 1234567890123455 -> -1.308641972530864 +ddfma4015 fma -308641972530864 4.000000000000001 1234567890123456 -> -0.308641972530864 +ddfma4016 fma -246913578024696 4.9999999999999 1234567890123456 -> 0.6913578024696 +ddfma4017 fma -246913578024692 4.99999999999999 1234567890123456 -> -1.53086421975308 +ddfma4018 fma -246913578024691 4.999999999999999 1234567890123456 -> 1.246913578024691 +ddfma4019 fma -246913578024691 5.000000000000001 1234567890123456 -> 0.753086421975309 +ddfma4020 fma -246913578024691 5.00000000000001 1234567890123456 -> -1.46913578024691 +ddfma4021 fma -246913578024686 5.0000000000001 1234567890123456 -> 1.3086421975314 + + +-- Null tests +ddfma39990 fma 1 10 # -> NaN Invalid_operation +ddfma39991 fma 1 # 10 -> NaN Invalid_operation + + diff --git a/Lib/test/decimaltestdata/ddInvert.decTest b/Lib/test/decimaltestdata/ddInvert.decTest index 321e4e9ee9..5d19fba829 100644 --- a/Lib/test/decimaltestdata/ddInvert.decTest +++ b/Lib/test/decimaltestdata/ddInvert.decTest @@ -1,202 +1,202 @@ -------------------------------------------------------------------------
--- ddInvert.decTest -- digitwise logical INVERT for decDoubles --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
--- Sanity check (truth table)
-ddinv001 invert 0 -> 1111111111111111
-ddinv002 invert 1 -> 1111111111111110
-ddinv003 invert 10 -> 1111111111111101
-ddinv004 invert 111111111 -> 1111111000000000
-ddinv005 invert 000000000 -> 1111111111111111
--- and at msd and msd-1
-ddinv007 invert 0000000000000000 -> 1111111111111111
-ddinv008 invert 1000000000000000 -> 111111111111111
-ddinv009 invert 0000000000000000 -> 1111111111111111
-ddinv010 invert 0100000000000000 -> 1011111111111111
-ddinv011 invert 0111111111111111 -> 1000000000000000
-ddinv012 invert 1111111111111111 -> 0
-ddinv013 invert 0011111111111111 -> 1100000000000000
-ddinv014 invert 0111111111111111 -> 1000000000000000
-
--- Various lengths
--- 123456789 1234567890123456
-ddinv021 invert 111111111 -> 1111111000000000
-ddinv022 invert 111111111111 -> 1111000000000000
-ddinv023 invert 11111111 -> 1111111100000000
-ddinv025 invert 1111111 -> 1111111110000000
-ddinv026 invert 111111 -> 1111111111000000
-ddinv027 invert 11111 -> 1111111111100000
-ddinv028 invert 1111 -> 1111111111110000
-ddinv029 invert 111 -> 1111111111111000
-ddinv031 invert 11 -> 1111111111111100
-ddinv032 invert 1 -> 1111111111111110
-ddinv033 invert 111111111111 -> 1111000000000000
-ddinv034 invert 11111111111 -> 1111100000000000
-ddinv035 invert 1111111111 -> 1111110000000000
-ddinv036 invert 111111111 -> 1111111000000000
-
-ddinv040 invert 011111111 -> 1111111100000000
-ddinv041 invert 101111111 -> 1111111010000000
-ddinv042 invert 110111111 -> 1111111001000000
-ddinv043 invert 111011111 -> 1111111000100000
-ddinv044 invert 111101111 -> 1111111000010000
-ddinv045 invert 111110111 -> 1111111000001000
-ddinv046 invert 111111011 -> 1111111000000100
-ddinv047 invert 111111101 -> 1111111000000010
-ddinv048 invert 111111110 -> 1111111000000001
-ddinv049 invert 011111011 -> 1111111100000100
-ddinv050 invert 101111101 -> 1111111010000010
-ddinv051 invert 110111110 -> 1111111001000001
-ddinv052 invert 111011101 -> 1111111000100010
-ddinv053 invert 111101011 -> 1111111000010100
-ddinv054 invert 111110111 -> 1111111000001000
-ddinv055 invert 111101011 -> 1111111000010100
-ddinv056 invert 111011101 -> 1111111000100010
-ddinv057 invert 110111110 -> 1111111001000001
-ddinv058 invert 101111101 -> 1111111010000010
-ddinv059 invert 011111011 -> 1111111100000100
-
-ddinv080 invert 1000000011111111 -> 111111100000000
-ddinv081 invert 0100000101111111 -> 1011111010000000
-ddinv082 invert 0010000110111111 -> 1101111001000000
-ddinv083 invert 0001000111011111 -> 1110111000100000
-ddinv084 invert 0000100111101111 -> 1111011000010000
-ddinv085 invert 0000010111110111 -> 1111101000001000
-ddinv086 invert 0000001111111011 -> 1111110000000100
-ddinv087 invert 0000010111111101 -> 1111101000000010
-ddinv088 invert 0000100111111110 -> 1111011000000001
-ddinv089 invert 0001000011111011 -> 1110111100000100
-ddinv090 invert 0010000101111101 -> 1101111010000010
-ddinv091 invert 0100000110111110 -> 1011111001000001
-ddinv092 invert 1000000111011101 -> 111111000100010
-ddinv093 invert 0100000111101011 -> 1011111000010100
-ddinv094 invert 0010000111110111 -> 1101111000001000
-ddinv095 invert 0001000111101011 -> 1110111000010100
-ddinv096 invert 0000100111011101 -> 1111011000100010
-ddinv097 invert 0000010110111110 -> 1111101001000001
-ddinv098 invert 0000001101111101 -> 1111110010000010
-ddinv099 invert 0000010011111011 -> 1111101100000100
-
--- non-0/1 should not be accepted, nor should signs
-ddinv220 invert 111111112 -> NaN Invalid_operation
-ddinv221 invert 333333333 -> NaN Invalid_operation
-ddinv222 invert 555555555 -> NaN Invalid_operation
-ddinv223 invert 777777777 -> NaN Invalid_operation
-ddinv224 invert 999999999 -> NaN Invalid_operation
-ddinv225 invert 222222222 -> NaN Invalid_operation
-ddinv226 invert 444444444 -> NaN Invalid_operation
-ddinv227 invert 666666666 -> NaN Invalid_operation
-ddinv228 invert 888888888 -> NaN Invalid_operation
-ddinv229 invert 999999999 -> NaN Invalid_operation
-ddinv230 invert 999999999 -> NaN Invalid_operation
-ddinv231 invert 999999999 -> NaN Invalid_operation
-ddinv232 invert 999999999 -> NaN Invalid_operation
--- a few randoms
-ddinv240 invert 567468689 -> NaN Invalid_operation
-ddinv241 invert 567367689 -> NaN Invalid_operation
-ddinv242 invert -631917772 -> NaN Invalid_operation
-ddinv243 invert -756253257 -> NaN Invalid_operation
-ddinv244 invert 835590149 -> NaN Invalid_operation
--- test MSD
-ddinv250 invert 2000000000000000 -> NaN Invalid_operation
-ddinv251 invert 3000000000000000 -> NaN Invalid_operation
-ddinv252 invert 4000000000000000 -> NaN Invalid_operation
-ddinv253 invert 5000000000000000 -> NaN Invalid_operation
-ddinv254 invert 6000000000000000 -> NaN Invalid_operation
-ddinv255 invert 7000000000000000 -> NaN Invalid_operation
-ddinv256 invert 8000000000000000 -> NaN Invalid_operation
-ddinv257 invert 9000000000000000 -> NaN Invalid_operation
--- test MSD-1
-ddinv270 invert 0200001000000000 -> NaN Invalid_operation
-ddinv271 invert 0300000100000000 -> NaN Invalid_operation
-ddinv272 invert 0400000010000000 -> NaN Invalid_operation
-ddinv273 invert 0500000001000000 -> NaN Invalid_operation
-ddinv274 invert 1600000000100000 -> NaN Invalid_operation
-ddinv275 invert 1700000000010000 -> NaN Invalid_operation
-ddinv276 invert 1800000000001000 -> NaN Invalid_operation
-ddinv277 invert 1900000000000100 -> NaN Invalid_operation
--- test LSD
-ddinv280 invert 0010000000000002 -> NaN Invalid_operation
-ddinv281 invert 0001000000000003 -> NaN Invalid_operation
-ddinv282 invert 0000100000000004 -> NaN Invalid_operation
-ddinv283 invert 0000010000000005 -> NaN Invalid_operation
-ddinv284 invert 1000001000000006 -> NaN Invalid_operation
-ddinv285 invert 1000000100000007 -> NaN Invalid_operation
-ddinv286 invert 1000000010000008 -> NaN Invalid_operation
-ddinv287 invert 1000000001000009 -> NaN Invalid_operation
--- test Middie
-ddinv288 invert 0010000020000000 -> NaN Invalid_operation
-ddinv289 invert 0001000030000001 -> NaN Invalid_operation
-ddinv290 invert 0000100040000010 -> NaN Invalid_operation
-ddinv291 invert 0000010050000100 -> NaN Invalid_operation
-ddinv292 invert 1000001060001000 -> NaN Invalid_operation
-ddinv293 invert 1000000170010000 -> NaN Invalid_operation
-ddinv294 invert 1000000080100000 -> NaN Invalid_operation
-ddinv295 invert 1000000091000000 -> NaN Invalid_operation
--- sign
-ddinv296 invert -1000000001000000 -> NaN Invalid_operation
-ddinv299 invert 1000000001000000 -> 111111110111111
-
-
--- Nmax, Nmin, Ntiny-like
-ddinv341 invert 9.99999999E+299 -> NaN Invalid_operation
-ddinv342 invert 1E-299 -> NaN Invalid_operation
-ddinv343 invert 1.00000000E-299 -> NaN Invalid_operation
-ddinv344 invert 1E-207 -> NaN Invalid_operation
-ddinv345 invert -1E-207 -> NaN Invalid_operation
-ddinv346 invert -1.00000000E-299 -> NaN Invalid_operation
-ddinv347 invert -1E-299 -> NaN Invalid_operation
-ddinv348 invert -9.99999999E+299 -> NaN Invalid_operation
-
--- A few other non-integers
-ddinv361 invert 1.0 -> NaN Invalid_operation
-ddinv362 invert 1E+1 -> NaN Invalid_operation
-ddinv363 invert 0.0 -> NaN Invalid_operation
-ddinv364 invert 0E+1 -> NaN Invalid_operation
-ddinv365 invert 9.9 -> NaN Invalid_operation
-ddinv366 invert 9E+1 -> NaN Invalid_operation
-
--- All Specials are in error
-ddinv788 invert -Inf -> NaN Invalid_operation
-ddinv794 invert Inf -> NaN Invalid_operation
-ddinv821 invert NaN -> NaN Invalid_operation
-ddinv841 invert sNaN -> NaN Invalid_operation
--- propagating NaNs
-ddinv861 invert NaN1 -> NaN Invalid_operation
-ddinv862 invert +NaN2 -> NaN Invalid_operation
-ddinv863 invert NaN3 -> NaN Invalid_operation
-ddinv864 invert NaN4 -> NaN Invalid_operation
-ddinv865 invert NaN5 -> NaN Invalid_operation
-ddinv871 invert sNaN11 -> NaN Invalid_operation
-ddinv872 invert sNaN12 -> NaN Invalid_operation
-ddinv873 invert sNaN13 -> NaN Invalid_operation
-ddinv874 invert sNaN14 -> NaN Invalid_operation
-ddinv875 invert sNaN15 -> NaN Invalid_operation
-ddinv876 invert NaN16 -> NaN Invalid_operation
-ddinv881 invert +NaN25 -> NaN Invalid_operation
-ddinv882 invert -NaN26 -> NaN Invalid_operation
-ddinv883 invert -sNaN27 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- ddInvert.decTest -- digitwise logical INVERT for decDoubles -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +-- Sanity check (truth table) +ddinv001 invert 0 -> 1111111111111111 +ddinv002 invert 1 -> 1111111111111110 +ddinv003 invert 10 -> 1111111111111101 +ddinv004 invert 111111111 -> 1111111000000000 +ddinv005 invert 000000000 -> 1111111111111111 +-- and at msd and msd-1 +ddinv007 invert 0000000000000000 -> 1111111111111111 +ddinv008 invert 1000000000000000 -> 111111111111111 +ddinv009 invert 0000000000000000 -> 1111111111111111 +ddinv010 invert 0100000000000000 -> 1011111111111111 +ddinv011 invert 0111111111111111 -> 1000000000000000 +ddinv012 invert 1111111111111111 -> 0 +ddinv013 invert 0011111111111111 -> 1100000000000000 +ddinv014 invert 0111111111111111 -> 1000000000000000 + +-- Various lengths +-- 123456789 1234567890123456 +ddinv021 invert 111111111 -> 1111111000000000 +ddinv022 invert 111111111111 -> 1111000000000000 +ddinv023 invert 11111111 -> 1111111100000000 +ddinv025 invert 1111111 -> 1111111110000000 +ddinv026 invert 111111 -> 1111111111000000 +ddinv027 invert 11111 -> 1111111111100000 +ddinv028 invert 1111 -> 1111111111110000 +ddinv029 invert 111 -> 1111111111111000 +ddinv031 invert 11 -> 1111111111111100 +ddinv032 invert 1 -> 1111111111111110 +ddinv033 invert 111111111111 -> 1111000000000000 +ddinv034 invert 11111111111 -> 1111100000000000 +ddinv035 invert 1111111111 -> 1111110000000000 +ddinv036 invert 111111111 -> 1111111000000000 + +ddinv040 invert 011111111 -> 1111111100000000 +ddinv041 invert 101111111 -> 1111111010000000 +ddinv042 invert 110111111 -> 1111111001000000 +ddinv043 invert 111011111 -> 1111111000100000 +ddinv044 invert 111101111 -> 1111111000010000 +ddinv045 invert 111110111 -> 1111111000001000 +ddinv046 invert 111111011 -> 1111111000000100 +ddinv047 invert 111111101 -> 1111111000000010 +ddinv048 invert 111111110 -> 1111111000000001 +ddinv049 invert 011111011 -> 1111111100000100 +ddinv050 invert 101111101 -> 1111111010000010 +ddinv051 invert 110111110 -> 1111111001000001 +ddinv052 invert 111011101 -> 1111111000100010 +ddinv053 invert 111101011 -> 1111111000010100 +ddinv054 invert 111110111 -> 1111111000001000 +ddinv055 invert 111101011 -> 1111111000010100 +ddinv056 invert 111011101 -> 1111111000100010 +ddinv057 invert 110111110 -> 1111111001000001 +ddinv058 invert 101111101 -> 1111111010000010 +ddinv059 invert 011111011 -> 1111111100000100 + +ddinv080 invert 1000000011111111 -> 111111100000000 +ddinv081 invert 0100000101111111 -> 1011111010000000 +ddinv082 invert 0010000110111111 -> 1101111001000000 +ddinv083 invert 0001000111011111 -> 1110111000100000 +ddinv084 invert 0000100111101111 -> 1111011000010000 +ddinv085 invert 0000010111110111 -> 1111101000001000 +ddinv086 invert 0000001111111011 -> 1111110000000100 +ddinv087 invert 0000010111111101 -> 1111101000000010 +ddinv088 invert 0000100111111110 -> 1111011000000001 +ddinv089 invert 0001000011111011 -> 1110111100000100 +ddinv090 invert 0010000101111101 -> 1101111010000010 +ddinv091 invert 0100000110111110 -> 1011111001000001 +ddinv092 invert 1000000111011101 -> 111111000100010 +ddinv093 invert 0100000111101011 -> 1011111000010100 +ddinv094 invert 0010000111110111 -> 1101111000001000 +ddinv095 invert 0001000111101011 -> 1110111000010100 +ddinv096 invert 0000100111011101 -> 1111011000100010 +ddinv097 invert 0000010110111110 -> 1111101001000001 +ddinv098 invert 0000001101111101 -> 1111110010000010 +ddinv099 invert 0000010011111011 -> 1111101100000100 + +-- non-0/1 should not be accepted, nor should signs +ddinv220 invert 111111112 -> NaN Invalid_operation +ddinv221 invert 333333333 -> NaN Invalid_operation +ddinv222 invert 555555555 -> NaN Invalid_operation +ddinv223 invert 777777777 -> NaN Invalid_operation +ddinv224 invert 999999999 -> NaN Invalid_operation +ddinv225 invert 222222222 -> NaN Invalid_operation +ddinv226 invert 444444444 -> NaN Invalid_operation +ddinv227 invert 666666666 -> NaN Invalid_operation +ddinv228 invert 888888888 -> NaN Invalid_operation +ddinv229 invert 999999999 -> NaN Invalid_operation +ddinv230 invert 999999999 -> NaN Invalid_operation +ddinv231 invert 999999999 -> NaN Invalid_operation +ddinv232 invert 999999999 -> NaN Invalid_operation +-- a few randoms +ddinv240 invert 567468689 -> NaN Invalid_operation +ddinv241 invert 567367689 -> NaN Invalid_operation +ddinv242 invert -631917772 -> NaN Invalid_operation +ddinv243 invert -756253257 -> NaN Invalid_operation +ddinv244 invert 835590149 -> NaN Invalid_operation +-- test MSD +ddinv250 invert 2000000000000000 -> NaN Invalid_operation +ddinv251 invert 3000000000000000 -> NaN Invalid_operation +ddinv252 invert 4000000000000000 -> NaN Invalid_operation +ddinv253 invert 5000000000000000 -> NaN Invalid_operation +ddinv254 invert 6000000000000000 -> NaN Invalid_operation +ddinv255 invert 7000000000000000 -> NaN Invalid_operation +ddinv256 invert 8000000000000000 -> NaN Invalid_operation +ddinv257 invert 9000000000000000 -> NaN Invalid_operation +-- test MSD-1 +ddinv270 invert 0200001000000000 -> NaN Invalid_operation +ddinv271 invert 0300000100000000 -> NaN Invalid_operation +ddinv272 invert 0400000010000000 -> NaN Invalid_operation +ddinv273 invert 0500000001000000 -> NaN Invalid_operation +ddinv274 invert 1600000000100000 -> NaN Invalid_operation +ddinv275 invert 1700000000010000 -> NaN Invalid_operation +ddinv276 invert 1800000000001000 -> NaN Invalid_operation +ddinv277 invert 1900000000000100 -> NaN Invalid_operation +-- test LSD +ddinv280 invert 0010000000000002 -> NaN Invalid_operation +ddinv281 invert 0001000000000003 -> NaN Invalid_operation +ddinv282 invert 0000100000000004 -> NaN Invalid_operation +ddinv283 invert 0000010000000005 -> NaN Invalid_operation +ddinv284 invert 1000001000000006 -> NaN Invalid_operation +ddinv285 invert 1000000100000007 -> NaN Invalid_operation +ddinv286 invert 1000000010000008 -> NaN Invalid_operation +ddinv287 invert 1000000001000009 -> NaN Invalid_operation +-- test Middie +ddinv288 invert 0010000020000000 -> NaN Invalid_operation +ddinv289 invert 0001000030000001 -> NaN Invalid_operation +ddinv290 invert 0000100040000010 -> NaN Invalid_operation +ddinv291 invert 0000010050000100 -> NaN Invalid_operation +ddinv292 invert 1000001060001000 -> NaN Invalid_operation +ddinv293 invert 1000000170010000 -> NaN Invalid_operation +ddinv294 invert 1000000080100000 -> NaN Invalid_operation +ddinv295 invert 1000000091000000 -> NaN Invalid_operation +-- sign +ddinv296 invert -1000000001000000 -> NaN Invalid_operation +ddinv299 invert 1000000001000000 -> 111111110111111 + + +-- Nmax, Nmin, Ntiny-like +ddinv341 invert 9.99999999E+299 -> NaN Invalid_operation +ddinv342 invert 1E-299 -> NaN Invalid_operation +ddinv343 invert 1.00000000E-299 -> NaN Invalid_operation +ddinv344 invert 1E-207 -> NaN Invalid_operation +ddinv345 invert -1E-207 -> NaN Invalid_operation +ddinv346 invert -1.00000000E-299 -> NaN Invalid_operation +ddinv347 invert -1E-299 -> NaN Invalid_operation +ddinv348 invert -9.99999999E+299 -> NaN Invalid_operation + +-- A few other non-integers +ddinv361 invert 1.0 -> NaN Invalid_operation +ddinv362 invert 1E+1 -> NaN Invalid_operation +ddinv363 invert 0.0 -> NaN Invalid_operation +ddinv364 invert 0E+1 -> NaN Invalid_operation +ddinv365 invert 9.9 -> NaN Invalid_operation +ddinv366 invert 9E+1 -> NaN Invalid_operation + +-- All Specials are in error +ddinv788 invert -Inf -> NaN Invalid_operation +ddinv794 invert Inf -> NaN Invalid_operation +ddinv821 invert NaN -> NaN Invalid_operation +ddinv841 invert sNaN -> NaN Invalid_operation +-- propagating NaNs +ddinv861 invert NaN1 -> NaN Invalid_operation +ddinv862 invert +NaN2 -> NaN Invalid_operation +ddinv863 invert NaN3 -> NaN Invalid_operation +ddinv864 invert NaN4 -> NaN Invalid_operation +ddinv865 invert NaN5 -> NaN Invalid_operation +ddinv871 invert sNaN11 -> NaN Invalid_operation +ddinv872 invert sNaN12 -> NaN Invalid_operation +ddinv873 invert sNaN13 -> NaN Invalid_operation +ddinv874 invert sNaN14 -> NaN Invalid_operation +ddinv875 invert sNaN15 -> NaN Invalid_operation +ddinv876 invert NaN16 -> NaN Invalid_operation +ddinv881 invert +NaN25 -> NaN Invalid_operation +ddinv882 invert -NaN26 -> NaN Invalid_operation +ddinv883 invert -sNaN27 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/ddLogB.decTest b/Lib/test/decimaltestdata/ddLogB.decTest index 00589b60c3..de728e5968 100644 --- a/Lib/test/decimaltestdata/ddLogB.decTest +++ b/Lib/test/decimaltestdata/ddLogB.decTest @@ -1,159 +1,159 @@ -------------------------------------------------------------------------
--- ddLogB.decTest -- integral 754r adjusted exponent, for decDoubles --
--- Copyright (c) IBM Corporation, 2005, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
--- basics
-ddlogb000 logb 0 -> -Infinity Division_by_zero
-ddlogb001 logb 1E-398 -> -398
-ddlogb002 logb 1E-383 -> -383
-ddlogb003 logb 0.001 -> -3
-ddlogb004 logb 0.03 -> -2
-ddlogb005 logb 1 -> 0
-ddlogb006 logb 2 -> 0
-ddlogb007 logb 2.5 -> 0
-ddlogb008 logb 2.500 -> 0
-ddlogb009 logb 10 -> 1
-ddlogb010 logb 70 -> 1
-ddlogb011 logb 100 -> 2
-ddlogb012 logb 333 -> 2
-ddlogb013 logb 9E+384 -> 384
-ddlogb014 logb +Infinity -> Infinity
-
--- negatives appear to be treated as positives
-ddlogb021 logb -0 -> -Infinity Division_by_zero
-ddlogb022 logb -1E-398 -> -398
-ddlogb023 logb -9E-383 -> -383
-ddlogb024 logb -0.001 -> -3
-ddlogb025 logb -1 -> 0
-ddlogb026 logb -2 -> 0
-ddlogb027 logb -10 -> 1
-ddlogb028 logb -70 -> 1
-ddlogb029 logb -100 -> 2
-ddlogb030 logb -9E+384 -> 384
-ddlogb031 logb -Infinity -> Infinity
-
--- zeros
-ddlogb111 logb 0 -> -Infinity Division_by_zero
-ddlogb112 logb -0 -> -Infinity Division_by_zero
-ddlogb113 logb 0E+4 -> -Infinity Division_by_zero
-ddlogb114 logb -0E+4 -> -Infinity Division_by_zero
-ddlogb115 logb 0.0000 -> -Infinity Division_by_zero
-ddlogb116 logb -0.0000 -> -Infinity Division_by_zero
-ddlogb117 logb 0E-141 -> -Infinity Division_by_zero
-ddlogb118 logb -0E-141 -> -Infinity Division_by_zero
-
--- full coefficients, alternating bits
-ddlogb121 logb 268268268 -> 8
-ddlogb122 logb -268268268 -> 8
-ddlogb123 logb 134134134 -> 8
-ddlogb124 logb -134134134 -> 8
-
--- Nmax, Nmin, Ntiny
-ddlogb131 logb 9.999999999999999E+384 -> 384
-ddlogb132 logb 1E-383 -> -383
-ddlogb133 logb 1.000000000000000E-383 -> -383
-ddlogb134 logb 1E-398 -> -398
-
-ddlogb135 logb -1E-398 -> -398
-ddlogb136 logb -1.000000000000000E-383 -> -383
-ddlogb137 logb -1E-383 -> -383
-ddlogb138 logb -9.999999999999999E+384 -> 384
-
--- ones
-ddlogb0061 logb 1 -> 0
-ddlogb0062 logb 1.0 -> 0
-ddlogb0063 logb 1.000000000000000 -> 0
-
--- notable cases -- exact powers of 10
-ddlogb1100 logb 1 -> 0
-ddlogb1101 logb 10 -> 1
-ddlogb1102 logb 100 -> 2
-ddlogb1103 logb 1000 -> 3
-ddlogb1104 logb 10000 -> 4
-ddlogb1105 logb 100000 -> 5
-ddlogb1106 logb 1000000 -> 6
-ddlogb1107 logb 10000000 -> 7
-ddlogb1108 logb 100000000 -> 8
-ddlogb1109 logb 1000000000 -> 9
-ddlogb1110 logb 10000000000 -> 10
-ddlogb1111 logb 100000000000 -> 11
-ddlogb1112 logb 1000000000000 -> 12
-ddlogb1113 logb 0.00000000001 -> -11
-ddlogb1114 logb 0.0000000001 -> -10
-ddlogb1115 logb 0.000000001 -> -9
-ddlogb1116 logb 0.00000001 -> -8
-ddlogb1117 logb 0.0000001 -> -7
-ddlogb1118 logb 0.000001 -> -6
-ddlogb1119 logb 0.00001 -> -5
-ddlogb1120 logb 0.0001 -> -4
-ddlogb1121 logb 0.001 -> -3
-ddlogb1122 logb 0.01 -> -2
-ddlogb1123 logb 0.1 -> -1
-ddlogb1124 logb 1E-99 -> -99
-ddlogb1125 logb 1E-100 -> -100
-ddlogb1127 logb 1E-299 -> -299
-ddlogb1126 logb 1E-383 -> -383
-
--- suggestions from Ilan Nehama
-ddlogb1400 logb 10E-3 -> -2
-ddlogb1401 logb 10E-2 -> -1
-ddlogb1402 logb 100E-2 -> 0
-ddlogb1403 logb 1000E-2 -> 1
-ddlogb1404 logb 10000E-2 -> 2
-ddlogb1405 logb 10E-1 -> 0
-ddlogb1406 logb 100E-1 -> 1
-ddlogb1407 logb 1000E-1 -> 2
-ddlogb1408 logb 10000E-1 -> 3
-ddlogb1409 logb 10E0 -> 1
-ddlogb1410 logb 100E0 -> 2
-ddlogb1411 logb 1000E0 -> 3
-ddlogb1412 logb 10000E0 -> 4
-ddlogb1413 logb 10E1 -> 2
-ddlogb1414 logb 100E1 -> 3
-ddlogb1415 logb 1000E1 -> 4
-ddlogb1416 logb 10000E1 -> 5
-ddlogb1417 logb 10E2 -> 3
-ddlogb1418 logb 100E2 -> 4
-ddlogb1419 logb 1000E2 -> 5
-ddlogb1420 logb 10000E2 -> 6
-
--- special values
-ddlogb820 logb Infinity -> Infinity
-ddlogb821 logb 0 -> -Infinity Division_by_zero
-ddlogb822 logb NaN -> NaN
-ddlogb823 logb sNaN -> NaN Invalid_operation
--- propagating NaNs
-ddlogb824 logb sNaN123 -> NaN123 Invalid_operation
-ddlogb825 logb -sNaN321 -> -NaN321 Invalid_operation
-ddlogb826 logb NaN456 -> NaN456
-ddlogb827 logb -NaN654 -> -NaN654
-ddlogb828 logb NaN1 -> NaN1
-
--- Null test
-ddlogb900 logb # -> NaN Invalid_operation
-
-
+------------------------------------------------------------------------ +-- ddLogB.decTest -- integral 754r adjusted exponent, for decDoubles -- +-- Copyright (c) IBM Corporation, 2005, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +-- basics +ddlogb000 logb 0 -> -Infinity Division_by_zero +ddlogb001 logb 1E-398 -> -398 +ddlogb002 logb 1E-383 -> -383 +ddlogb003 logb 0.001 -> -3 +ddlogb004 logb 0.03 -> -2 +ddlogb005 logb 1 -> 0 +ddlogb006 logb 2 -> 0 +ddlogb007 logb 2.5 -> 0 +ddlogb008 logb 2.500 -> 0 +ddlogb009 logb 10 -> 1 +ddlogb010 logb 70 -> 1 +ddlogb011 logb 100 -> 2 +ddlogb012 logb 333 -> 2 +ddlogb013 logb 9E+384 -> 384 +ddlogb014 logb +Infinity -> Infinity + +-- negatives appear to be treated as positives +ddlogb021 logb -0 -> -Infinity Division_by_zero +ddlogb022 logb -1E-398 -> -398 +ddlogb023 logb -9E-383 -> -383 +ddlogb024 logb -0.001 -> -3 +ddlogb025 logb -1 -> 0 +ddlogb026 logb -2 -> 0 +ddlogb027 logb -10 -> 1 +ddlogb028 logb -70 -> 1 +ddlogb029 logb -100 -> 2 +ddlogb030 logb -9E+384 -> 384 +ddlogb031 logb -Infinity -> Infinity + +-- zeros +ddlogb111 logb 0 -> -Infinity Division_by_zero +ddlogb112 logb -0 -> -Infinity Division_by_zero +ddlogb113 logb 0E+4 -> -Infinity Division_by_zero +ddlogb114 logb -0E+4 -> -Infinity Division_by_zero +ddlogb115 logb 0.0000 -> -Infinity Division_by_zero +ddlogb116 logb -0.0000 -> -Infinity Division_by_zero +ddlogb117 logb 0E-141 -> -Infinity Division_by_zero +ddlogb118 logb -0E-141 -> -Infinity Division_by_zero + +-- full coefficients, alternating bits +ddlogb121 logb 268268268 -> 8 +ddlogb122 logb -268268268 -> 8 +ddlogb123 logb 134134134 -> 8 +ddlogb124 logb -134134134 -> 8 + +-- Nmax, Nmin, Ntiny +ddlogb131 logb 9.999999999999999E+384 -> 384 +ddlogb132 logb 1E-383 -> -383 +ddlogb133 logb 1.000000000000000E-383 -> -383 +ddlogb134 logb 1E-398 -> -398 + +ddlogb135 logb -1E-398 -> -398 +ddlogb136 logb -1.000000000000000E-383 -> -383 +ddlogb137 logb -1E-383 -> -383 +ddlogb138 logb -9.999999999999999E+384 -> 384 + +-- ones +ddlogb0061 logb 1 -> 0 +ddlogb0062 logb 1.0 -> 0 +ddlogb0063 logb 1.000000000000000 -> 0 + +-- notable cases -- exact powers of 10 +ddlogb1100 logb 1 -> 0 +ddlogb1101 logb 10 -> 1 +ddlogb1102 logb 100 -> 2 +ddlogb1103 logb 1000 -> 3 +ddlogb1104 logb 10000 -> 4 +ddlogb1105 logb 100000 -> 5 +ddlogb1106 logb 1000000 -> 6 +ddlogb1107 logb 10000000 -> 7 +ddlogb1108 logb 100000000 -> 8 +ddlogb1109 logb 1000000000 -> 9 +ddlogb1110 logb 10000000000 -> 10 +ddlogb1111 logb 100000000000 -> 11 +ddlogb1112 logb 1000000000000 -> 12 +ddlogb1113 logb 0.00000000001 -> -11 +ddlogb1114 logb 0.0000000001 -> -10 +ddlogb1115 logb 0.000000001 -> -9 +ddlogb1116 logb 0.00000001 -> -8 +ddlogb1117 logb 0.0000001 -> -7 +ddlogb1118 logb 0.000001 -> -6 +ddlogb1119 logb 0.00001 -> -5 +ddlogb1120 logb 0.0001 -> -4 +ddlogb1121 logb 0.001 -> -3 +ddlogb1122 logb 0.01 -> -2 +ddlogb1123 logb 0.1 -> -1 +ddlogb1124 logb 1E-99 -> -99 +ddlogb1125 logb 1E-100 -> -100 +ddlogb1127 logb 1E-299 -> -299 +ddlogb1126 logb 1E-383 -> -383 + +-- suggestions from Ilan Nehama +ddlogb1400 logb 10E-3 -> -2 +ddlogb1401 logb 10E-2 -> -1 +ddlogb1402 logb 100E-2 -> 0 +ddlogb1403 logb 1000E-2 -> 1 +ddlogb1404 logb 10000E-2 -> 2 +ddlogb1405 logb 10E-1 -> 0 +ddlogb1406 logb 100E-1 -> 1 +ddlogb1407 logb 1000E-1 -> 2 +ddlogb1408 logb 10000E-1 -> 3 +ddlogb1409 logb 10E0 -> 1 +ddlogb1410 logb 100E0 -> 2 +ddlogb1411 logb 1000E0 -> 3 +ddlogb1412 logb 10000E0 -> 4 +ddlogb1413 logb 10E1 -> 2 +ddlogb1414 logb 100E1 -> 3 +ddlogb1415 logb 1000E1 -> 4 +ddlogb1416 logb 10000E1 -> 5 +ddlogb1417 logb 10E2 -> 3 +ddlogb1418 logb 100E2 -> 4 +ddlogb1419 logb 1000E2 -> 5 +ddlogb1420 logb 10000E2 -> 6 + +-- special values +ddlogb820 logb Infinity -> Infinity +ddlogb821 logb 0 -> -Infinity Division_by_zero +ddlogb822 logb NaN -> NaN +ddlogb823 logb sNaN -> NaN Invalid_operation +-- propagating NaNs +ddlogb824 logb sNaN123 -> NaN123 Invalid_operation +ddlogb825 logb -sNaN321 -> -NaN321 Invalid_operation +ddlogb826 logb NaN456 -> NaN456 +ddlogb827 logb -NaN654 -> -NaN654 +ddlogb828 logb NaN1 -> NaN1 + +-- Null test +ddlogb900 logb # -> NaN Invalid_operation + + diff --git a/Lib/test/decimaltestdata/ddMax.decTest b/Lib/test/decimaltestdata/ddMax.decTest index 45ea9b4c93..1ac63958b8 100644 --- a/Lib/test/decimaltestdata/ddMax.decTest +++ b/Lib/test/decimaltestdata/ddMax.decTest @@ -1,322 +1,322 @@ -------------------------------------------------------------------------
--- ddMax.decTest -- decDouble maxnum --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- we assume that base comparison is tested in compare.decTest, so
--- these mainly cover special cases and rounding
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
--- sanity checks
-ddmax001 max -2 -2 -> -2
-ddmax002 max -2 -1 -> -1
-ddmax003 max -2 0 -> 0
-ddmax004 max -2 1 -> 1
-ddmax005 max -2 2 -> 2
-ddmax006 max -1 -2 -> -1
-ddmax007 max -1 -1 -> -1
-ddmax008 max -1 0 -> 0
-ddmax009 max -1 1 -> 1
-ddmax010 max -1 2 -> 2
-ddmax011 max 0 -2 -> 0
-ddmax012 max 0 -1 -> 0
-ddmax013 max 0 0 -> 0
-ddmax014 max 0 1 -> 1
-ddmax015 max 0 2 -> 2
-ddmax016 max 1 -2 -> 1
-ddmax017 max 1 -1 -> 1
-ddmax018 max 1 0 -> 1
-ddmax019 max 1 1 -> 1
-ddmax020 max 1 2 -> 2
-ddmax021 max 2 -2 -> 2
-ddmax022 max 2 -1 -> 2
-ddmax023 max 2 0 -> 2
-ddmax025 max 2 1 -> 2
-ddmax026 max 2 2 -> 2
-
--- extended zeros
-ddmax030 max 0 0 -> 0
-ddmax031 max 0 -0 -> 0
-ddmax032 max 0 -0.0 -> 0
-ddmax033 max 0 0.0 -> 0
-ddmax034 max -0 0 -> 0 -- note: -0 = 0, but 0 chosen
-ddmax035 max -0 -0 -> -0
-ddmax036 max -0 -0.0 -> -0.0
-ddmax037 max -0 0.0 -> 0.0
-ddmax038 max 0.0 0 -> 0
-ddmax039 max 0.0 -0 -> 0.0
-ddmax040 max 0.0 -0.0 -> 0.0
-ddmax041 max 0.0 0.0 -> 0.0
-ddmax042 max -0.0 0 -> 0
-ddmax043 max -0.0 -0 -> -0.0
-ddmax044 max -0.0 -0.0 -> -0.0
-ddmax045 max -0.0 0.0 -> 0.0
-
-ddmax050 max -0E1 0E1 -> 0E+1
-ddmax051 max -0E2 0E2 -> 0E+2
-ddmax052 max -0E2 0E1 -> 0E+1
-ddmax053 max -0E1 0E2 -> 0E+2
-ddmax054 max 0E1 -0E1 -> 0E+1
-ddmax055 max 0E2 -0E2 -> 0E+2
-ddmax056 max 0E2 -0E1 -> 0E+2
-ddmax057 max 0E1 -0E2 -> 0E+1
-
-ddmax058 max 0E1 0E1 -> 0E+1
-ddmax059 max 0E2 0E2 -> 0E+2
-ddmax060 max 0E2 0E1 -> 0E+2
-ddmax061 max 0E1 0E2 -> 0E+2
-ddmax062 max -0E1 -0E1 -> -0E+1
-ddmax063 max -0E2 -0E2 -> -0E+2
-ddmax064 max -0E2 -0E1 -> -0E+1
-ddmax065 max -0E1 -0E2 -> -0E+1
-
--- Specials
-ddmax090 max Inf -Inf -> Infinity
-ddmax091 max Inf -1000 -> Infinity
-ddmax092 max Inf -1 -> Infinity
-ddmax093 max Inf -0 -> Infinity
-ddmax094 max Inf 0 -> Infinity
-ddmax095 max Inf 1 -> Infinity
-ddmax096 max Inf 1000 -> Infinity
-ddmax097 max Inf Inf -> Infinity
-ddmax098 max -1000 Inf -> Infinity
-ddmax099 max -Inf Inf -> Infinity
-ddmax100 max -1 Inf -> Infinity
-ddmax101 max -0 Inf -> Infinity
-ddmax102 max 0 Inf -> Infinity
-ddmax103 max 1 Inf -> Infinity
-ddmax104 max 1000 Inf -> Infinity
-ddmax105 max Inf Inf -> Infinity
-
-ddmax120 max -Inf -Inf -> -Infinity
-ddmax121 max -Inf -1000 -> -1000
-ddmax122 max -Inf -1 -> -1
-ddmax123 max -Inf -0 -> -0
-ddmax124 max -Inf 0 -> 0
-ddmax125 max -Inf 1 -> 1
-ddmax126 max -Inf 1000 -> 1000
-ddmax127 max -Inf Inf -> Infinity
-ddmax128 max -Inf -Inf -> -Infinity
-ddmax129 max -1000 -Inf -> -1000
-ddmax130 max -1 -Inf -> -1
-ddmax131 max -0 -Inf -> -0
-ddmax132 max 0 -Inf -> 0
-ddmax133 max 1 -Inf -> 1
-ddmax134 max 1000 -Inf -> 1000
-ddmax135 max Inf -Inf -> Infinity
-
--- 2004.08.02 754r chooses number over NaN in mixed cases
-ddmax141 max NaN -Inf -> -Infinity
-ddmax142 max NaN -1000 -> -1000
-ddmax143 max NaN -1 -> -1
-ddmax144 max NaN -0 -> -0
-ddmax145 max NaN 0 -> 0
-ddmax146 max NaN 1 -> 1
-ddmax147 max NaN 1000 -> 1000
-ddmax148 max NaN Inf -> Infinity
-ddmax149 max NaN NaN -> NaN
-ddmax150 max -Inf NaN -> -Infinity
-ddmax151 max -1000 NaN -> -1000
-ddmax152 max -1 NaN -> -1
-ddmax153 max -0 NaN -> -0
-ddmax154 max 0 NaN -> 0
-ddmax155 max 1 NaN -> 1
-ddmax156 max 1000 NaN -> 1000
-ddmax157 max Inf NaN -> Infinity
-
-ddmax161 max sNaN -Inf -> NaN Invalid_operation
-ddmax162 max sNaN -1000 -> NaN Invalid_operation
-ddmax163 max sNaN -1 -> NaN Invalid_operation
-ddmax164 max sNaN -0 -> NaN Invalid_operation
-ddmax165 max sNaN 0 -> NaN Invalid_operation
-ddmax166 max sNaN 1 -> NaN Invalid_operation
-ddmax167 max sNaN 1000 -> NaN Invalid_operation
-ddmax168 max sNaN NaN -> NaN Invalid_operation
-ddmax169 max sNaN sNaN -> NaN Invalid_operation
-ddmax170 max NaN sNaN -> NaN Invalid_operation
-ddmax171 max -Inf sNaN -> NaN Invalid_operation
-ddmax172 max -1000 sNaN -> NaN Invalid_operation
-ddmax173 max -1 sNaN -> NaN Invalid_operation
-ddmax174 max -0 sNaN -> NaN Invalid_operation
-ddmax175 max 0 sNaN -> NaN Invalid_operation
-ddmax176 max 1 sNaN -> NaN Invalid_operation
-ddmax177 max 1000 sNaN -> NaN Invalid_operation
-ddmax178 max Inf sNaN -> NaN Invalid_operation
-ddmax179 max NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-ddmax181 max NaN9 -Inf -> -Infinity
-ddmax182 max NaN8 9 -> 9
-ddmax183 max -NaN7 Inf -> Infinity
-
-ddmax184 max -NaN1 NaN11 -> -NaN1
-ddmax185 max NaN2 NaN12 -> NaN2
-ddmax186 max -NaN13 -NaN7 -> -NaN13
-ddmax187 max NaN14 -NaN5 -> NaN14
-
-ddmax188 max -Inf NaN4 -> -Infinity
-ddmax189 max -9 -NaN3 -> -9
-ddmax190 max Inf NaN2 -> Infinity
-
-ddmax191 max sNaN99 -Inf -> NaN99 Invalid_operation
-ddmax192 max sNaN98 -1 -> NaN98 Invalid_operation
-ddmax193 max -sNaN97 NaN -> -NaN97 Invalid_operation
-ddmax194 max sNaN96 sNaN94 -> NaN96 Invalid_operation
-ddmax195 max NaN95 sNaN93 -> NaN93 Invalid_operation
-ddmax196 max -Inf sNaN92 -> NaN92 Invalid_operation
-ddmax197 max 0 sNaN91 -> NaN91 Invalid_operation
-ddmax198 max Inf -sNaN90 -> -NaN90 Invalid_operation
-ddmax199 max NaN sNaN89 -> NaN89 Invalid_operation
-
--- old rounding checks
-ddmax221 max 12345678000 1 -> 12345678000
-ddmax222 max 1 12345678000 -> 12345678000
-ddmax223 max 1234567800 1 -> 1234567800
-ddmax224 max 1 1234567800 -> 1234567800
-ddmax225 max 1234567890 1 -> 1234567890
-ddmax226 max 1 1234567890 -> 1234567890
-ddmax227 max 1234567891 1 -> 1234567891
-ddmax228 max 1 1234567891 -> 1234567891
-ddmax229 max 12345678901 1 -> 12345678901
-ddmax230 max 1 12345678901 -> 12345678901
-ddmax231 max 1234567896 1 -> 1234567896
-ddmax232 max 1 1234567896 -> 1234567896
-ddmax233 max -1234567891 1 -> 1
-ddmax234 max 1 -1234567891 -> 1
-ddmax235 max -12345678901 1 -> 1
-ddmax236 max 1 -12345678901 -> 1
-ddmax237 max -1234567896 1 -> 1
-ddmax238 max 1 -1234567896 -> 1
-
--- from examples
-ddmax280 max '3' '2' -> '3'
-ddmax281 max '-10' '3' -> '3'
-ddmax282 max '1.0' '1' -> '1'
-ddmax283 max '1' '1.0' -> '1'
-ddmax284 max '7' 'NaN' -> '7'
-
--- expanded list from min/max 754r purple prose
--- [explicit tests for exponent ordering]
-ddmax401 max Inf 1.1 -> Infinity
-ddmax402 max 1.1 1 -> 1.1
-ddmax403 max 1 1.0 -> 1
-ddmax404 max 1.0 0.1 -> 1.0
-ddmax405 max 0.1 0.10 -> 0.1
-ddmax406 max 0.10 0.100 -> 0.10
-ddmax407 max 0.10 0 -> 0.10
-ddmax408 max 0 0.0 -> 0
-ddmax409 max 0.0 -0 -> 0.0
-ddmax410 max 0.0 -0.0 -> 0.0
-ddmax411 max 0.00 -0.0 -> 0.00
-ddmax412 max 0.0 -0.00 -> 0.0
-ddmax413 max 0 -0.0 -> 0
-ddmax414 max 0 -0 -> 0
-ddmax415 max -0.0 -0 -> -0.0
-ddmax416 max -0 -0.100 -> -0
-ddmax417 max -0.100 -0.10 -> -0.100
-ddmax418 max -0.10 -0.1 -> -0.10
-ddmax419 max -0.1 -1.0 -> -0.1
-ddmax420 max -1.0 -1 -> -1.0
-ddmax421 max -1 -1.1 -> -1
-ddmax423 max -1.1 -Inf -> -1.1
--- same with operands reversed
-ddmax431 max 1.1 Inf -> Infinity
-ddmax432 max 1 1.1 -> 1.1
-ddmax433 max 1.0 1 -> 1
-ddmax434 max 0.1 1.0 -> 1.0
-ddmax435 max 0.10 0.1 -> 0.1
-ddmax436 max 0.100 0.10 -> 0.10
-ddmax437 max 0 0.10 -> 0.10
-ddmax438 max 0.0 0 -> 0
-ddmax439 max -0 0.0 -> 0.0
-ddmax440 max -0.0 0.0 -> 0.0
-ddmax441 max -0.0 0.00 -> 0.00
-ddmax442 max -0.00 0.0 -> 0.0
-ddmax443 max -0.0 0 -> 0
-ddmax444 max -0 0 -> 0
-ddmax445 max -0 -0.0 -> -0.0
-ddmax446 max -0.100 -0 -> -0
-ddmax447 max -0.10 -0.100 -> -0.100
-ddmax448 max -0.1 -0.10 -> -0.10
-ddmax449 max -1.0 -0.1 -> -0.1
-ddmax450 max -1 -1.0 -> -1.0
-ddmax451 max -1.1 -1 -> -1
-ddmax453 max -Inf -1.1 -> -1.1
--- largies
-ddmax460 max 1000 1E+3 -> 1E+3
-ddmax461 max 1E+3 1000 -> 1E+3
-ddmax462 max 1000 -1E+3 -> 1000
-ddmax463 max 1E+3 -1000 -> 1E+3
-ddmax464 max -1000 1E+3 -> 1E+3
-ddmax465 max -1E+3 1000 -> 1000
-ddmax466 max -1000 -1E+3 -> -1000
-ddmax467 max -1E+3 -1000 -> -1000
-
--- misalignment traps for little-endian
-ddmax471 max 1.0 0.1 -> 1.0
-ddmax472 max 0.1 1.0 -> 1.0
-ddmax473 max 10.0 0.1 -> 10.0
-ddmax474 max 0.1 10.0 -> 10.0
-ddmax475 max 100 1.0 -> 100
-ddmax476 max 1.0 100 -> 100
-ddmax477 max 1000 10.0 -> 1000
-ddmax478 max 10.0 1000 -> 1000
-ddmax479 max 10000 100.0 -> 10000
-ddmax480 max 100.0 10000 -> 10000
-ddmax481 max 100000 1000.0 -> 100000
-ddmax482 max 1000.0 100000 -> 100000
-ddmax483 max 1000000 10000.0 -> 1000000
-ddmax484 max 10000.0 1000000 -> 1000000
-
--- subnormals
-ddmax510 max 1.00E-383 0 -> 1.00E-383
-ddmax511 max 0.1E-383 0 -> 1E-384 Subnormal
-ddmax512 max 0.10E-383 0 -> 1.0E-384 Subnormal
-ddmax513 max 0.100E-383 0 -> 1.00E-384 Subnormal
-ddmax514 max 0.01E-383 0 -> 1E-385 Subnormal
-ddmax515 max 0.999E-383 0 -> 9.99E-384 Subnormal
-ddmax516 max 0.099E-383 0 -> 9.9E-385 Subnormal
-ddmax517 max 0.009E-383 0 -> 9E-386 Subnormal
-ddmax518 max 0.001E-383 0 -> 1E-386 Subnormal
-ddmax519 max 0.0009E-383 0 -> 9E-387 Subnormal
-ddmax520 max 0.0001E-383 0 -> 1E-387 Subnormal
-
-ddmax530 max -1.00E-383 0 -> 0
-ddmax531 max -0.1E-383 0 -> 0
-ddmax532 max -0.10E-383 0 -> 0
-ddmax533 max -0.100E-383 0 -> 0
-ddmax534 max -0.01E-383 0 -> 0
-ddmax535 max -0.999E-383 0 -> 0
-ddmax536 max -0.099E-383 0 -> 0
-ddmax537 max -0.009E-383 0 -> 0
-ddmax538 max -0.001E-383 0 -> 0
-ddmax539 max -0.0009E-383 0 -> 0
-ddmax540 max -0.0001E-383 0 -> 0
-
--- Null tests
-ddmax900 max 10 # -> NaN Invalid_operation
-ddmax901 max # 10 -> NaN Invalid_operation
-
-
-
+------------------------------------------------------------------------ +-- ddMax.decTest -- decDouble maxnum -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- we assume that base comparison is tested in compare.decTest, so +-- these mainly cover special cases and rounding +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +-- sanity checks +ddmax001 max -2 -2 -> -2 +ddmax002 max -2 -1 -> -1 +ddmax003 max -2 0 -> 0 +ddmax004 max -2 1 -> 1 +ddmax005 max -2 2 -> 2 +ddmax006 max -1 -2 -> -1 +ddmax007 max -1 -1 -> -1 +ddmax008 max -1 0 -> 0 +ddmax009 max -1 1 -> 1 +ddmax010 max -1 2 -> 2 +ddmax011 max 0 -2 -> 0 +ddmax012 max 0 -1 -> 0 +ddmax013 max 0 0 -> 0 +ddmax014 max 0 1 -> 1 +ddmax015 max 0 2 -> 2 +ddmax016 max 1 -2 -> 1 +ddmax017 max 1 -1 -> 1 +ddmax018 max 1 0 -> 1 +ddmax019 max 1 1 -> 1 +ddmax020 max 1 2 -> 2 +ddmax021 max 2 -2 -> 2 +ddmax022 max 2 -1 -> 2 +ddmax023 max 2 0 -> 2 +ddmax025 max 2 1 -> 2 +ddmax026 max 2 2 -> 2 + +-- extended zeros +ddmax030 max 0 0 -> 0 +ddmax031 max 0 -0 -> 0 +ddmax032 max 0 -0.0 -> 0 +ddmax033 max 0 0.0 -> 0 +ddmax034 max -0 0 -> 0 -- note: -0 = 0, but 0 chosen +ddmax035 max -0 -0 -> -0 +ddmax036 max -0 -0.0 -> -0.0 +ddmax037 max -0 0.0 -> 0.0 +ddmax038 max 0.0 0 -> 0 +ddmax039 max 0.0 -0 -> 0.0 +ddmax040 max 0.0 -0.0 -> 0.0 +ddmax041 max 0.0 0.0 -> 0.0 +ddmax042 max -0.0 0 -> 0 +ddmax043 max -0.0 -0 -> -0.0 +ddmax044 max -0.0 -0.0 -> -0.0 +ddmax045 max -0.0 0.0 -> 0.0 + +ddmax050 max -0E1 0E1 -> 0E+1 +ddmax051 max -0E2 0E2 -> 0E+2 +ddmax052 max -0E2 0E1 -> 0E+1 +ddmax053 max -0E1 0E2 -> 0E+2 +ddmax054 max 0E1 -0E1 -> 0E+1 +ddmax055 max 0E2 -0E2 -> 0E+2 +ddmax056 max 0E2 -0E1 -> 0E+2 +ddmax057 max 0E1 -0E2 -> 0E+1 + +ddmax058 max 0E1 0E1 -> 0E+1 +ddmax059 max 0E2 0E2 -> 0E+2 +ddmax060 max 0E2 0E1 -> 0E+2 +ddmax061 max 0E1 0E2 -> 0E+2 +ddmax062 max -0E1 -0E1 -> -0E+1 +ddmax063 max -0E2 -0E2 -> -0E+2 +ddmax064 max -0E2 -0E1 -> -0E+1 +ddmax065 max -0E1 -0E2 -> -0E+1 + +-- Specials +ddmax090 max Inf -Inf -> Infinity +ddmax091 max Inf -1000 -> Infinity +ddmax092 max Inf -1 -> Infinity +ddmax093 max Inf -0 -> Infinity +ddmax094 max Inf 0 -> Infinity +ddmax095 max Inf 1 -> Infinity +ddmax096 max Inf 1000 -> Infinity +ddmax097 max Inf Inf -> Infinity +ddmax098 max -1000 Inf -> Infinity +ddmax099 max -Inf Inf -> Infinity +ddmax100 max -1 Inf -> Infinity +ddmax101 max -0 Inf -> Infinity +ddmax102 max 0 Inf -> Infinity +ddmax103 max 1 Inf -> Infinity +ddmax104 max 1000 Inf -> Infinity +ddmax105 max Inf Inf -> Infinity + +ddmax120 max -Inf -Inf -> -Infinity +ddmax121 max -Inf -1000 -> -1000 +ddmax122 max -Inf -1 -> -1 +ddmax123 max -Inf -0 -> -0 +ddmax124 max -Inf 0 -> 0 +ddmax125 max -Inf 1 -> 1 +ddmax126 max -Inf 1000 -> 1000 +ddmax127 max -Inf Inf -> Infinity +ddmax128 max -Inf -Inf -> -Infinity +ddmax129 max -1000 -Inf -> -1000 +ddmax130 max -1 -Inf -> -1 +ddmax131 max -0 -Inf -> -0 +ddmax132 max 0 -Inf -> 0 +ddmax133 max 1 -Inf -> 1 +ddmax134 max 1000 -Inf -> 1000 +ddmax135 max Inf -Inf -> Infinity + +-- 2004.08.02 754r chooses number over NaN in mixed cases +ddmax141 max NaN -Inf -> -Infinity +ddmax142 max NaN -1000 -> -1000 +ddmax143 max NaN -1 -> -1 +ddmax144 max NaN -0 -> -0 +ddmax145 max NaN 0 -> 0 +ddmax146 max NaN 1 -> 1 +ddmax147 max NaN 1000 -> 1000 +ddmax148 max NaN Inf -> Infinity +ddmax149 max NaN NaN -> NaN +ddmax150 max -Inf NaN -> -Infinity +ddmax151 max -1000 NaN -> -1000 +ddmax152 max -1 NaN -> -1 +ddmax153 max -0 NaN -> -0 +ddmax154 max 0 NaN -> 0 +ddmax155 max 1 NaN -> 1 +ddmax156 max 1000 NaN -> 1000 +ddmax157 max Inf NaN -> Infinity + +ddmax161 max sNaN -Inf -> NaN Invalid_operation +ddmax162 max sNaN -1000 -> NaN Invalid_operation +ddmax163 max sNaN -1 -> NaN Invalid_operation +ddmax164 max sNaN -0 -> NaN Invalid_operation +ddmax165 max sNaN 0 -> NaN Invalid_operation +ddmax166 max sNaN 1 -> NaN Invalid_operation +ddmax167 max sNaN 1000 -> NaN Invalid_operation +ddmax168 max sNaN NaN -> NaN Invalid_operation +ddmax169 max sNaN sNaN -> NaN Invalid_operation +ddmax170 max NaN sNaN -> NaN Invalid_operation +ddmax171 max -Inf sNaN -> NaN Invalid_operation +ddmax172 max -1000 sNaN -> NaN Invalid_operation +ddmax173 max -1 sNaN -> NaN Invalid_operation +ddmax174 max -0 sNaN -> NaN Invalid_operation +ddmax175 max 0 sNaN -> NaN Invalid_operation +ddmax176 max 1 sNaN -> NaN Invalid_operation +ddmax177 max 1000 sNaN -> NaN Invalid_operation +ddmax178 max Inf sNaN -> NaN Invalid_operation +ddmax179 max NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +ddmax181 max NaN9 -Inf -> -Infinity +ddmax182 max NaN8 9 -> 9 +ddmax183 max -NaN7 Inf -> Infinity + +ddmax184 max -NaN1 NaN11 -> -NaN1 +ddmax185 max NaN2 NaN12 -> NaN2 +ddmax186 max -NaN13 -NaN7 -> -NaN13 +ddmax187 max NaN14 -NaN5 -> NaN14 + +ddmax188 max -Inf NaN4 -> -Infinity +ddmax189 max -9 -NaN3 -> -9 +ddmax190 max Inf NaN2 -> Infinity + +ddmax191 max sNaN99 -Inf -> NaN99 Invalid_operation +ddmax192 max sNaN98 -1 -> NaN98 Invalid_operation +ddmax193 max -sNaN97 NaN -> -NaN97 Invalid_operation +ddmax194 max sNaN96 sNaN94 -> NaN96 Invalid_operation +ddmax195 max NaN95 sNaN93 -> NaN93 Invalid_operation +ddmax196 max -Inf sNaN92 -> NaN92 Invalid_operation +ddmax197 max 0 sNaN91 -> NaN91 Invalid_operation +ddmax198 max Inf -sNaN90 -> -NaN90 Invalid_operation +ddmax199 max NaN sNaN89 -> NaN89 Invalid_operation + +-- old rounding checks +ddmax221 max 12345678000 1 -> 12345678000 +ddmax222 max 1 12345678000 -> 12345678000 +ddmax223 max 1234567800 1 -> 1234567800 +ddmax224 max 1 1234567800 -> 1234567800 +ddmax225 max 1234567890 1 -> 1234567890 +ddmax226 max 1 1234567890 -> 1234567890 +ddmax227 max 1234567891 1 -> 1234567891 +ddmax228 max 1 1234567891 -> 1234567891 +ddmax229 max 12345678901 1 -> 12345678901 +ddmax230 max 1 12345678901 -> 12345678901 +ddmax231 max 1234567896 1 -> 1234567896 +ddmax232 max 1 1234567896 -> 1234567896 +ddmax233 max -1234567891 1 -> 1 +ddmax234 max 1 -1234567891 -> 1 +ddmax235 max -12345678901 1 -> 1 +ddmax236 max 1 -12345678901 -> 1 +ddmax237 max -1234567896 1 -> 1 +ddmax238 max 1 -1234567896 -> 1 + +-- from examples +ddmax280 max '3' '2' -> '3' +ddmax281 max '-10' '3' -> '3' +ddmax282 max '1.0' '1' -> '1' +ddmax283 max '1' '1.0' -> '1' +ddmax284 max '7' 'NaN' -> '7' + +-- expanded list from min/max 754r purple prose +-- [explicit tests for exponent ordering] +ddmax401 max Inf 1.1 -> Infinity +ddmax402 max 1.1 1 -> 1.1 +ddmax403 max 1 1.0 -> 1 +ddmax404 max 1.0 0.1 -> 1.0 +ddmax405 max 0.1 0.10 -> 0.1 +ddmax406 max 0.10 0.100 -> 0.10 +ddmax407 max 0.10 0 -> 0.10 +ddmax408 max 0 0.0 -> 0 +ddmax409 max 0.0 -0 -> 0.0 +ddmax410 max 0.0 -0.0 -> 0.0 +ddmax411 max 0.00 -0.0 -> 0.00 +ddmax412 max 0.0 -0.00 -> 0.0 +ddmax413 max 0 -0.0 -> 0 +ddmax414 max 0 -0 -> 0 +ddmax415 max -0.0 -0 -> -0.0 +ddmax416 max -0 -0.100 -> -0 +ddmax417 max -0.100 -0.10 -> -0.100 +ddmax418 max -0.10 -0.1 -> -0.10 +ddmax419 max -0.1 -1.0 -> -0.1 +ddmax420 max -1.0 -1 -> -1.0 +ddmax421 max -1 -1.1 -> -1 +ddmax423 max -1.1 -Inf -> -1.1 +-- same with operands reversed +ddmax431 max 1.1 Inf -> Infinity +ddmax432 max 1 1.1 -> 1.1 +ddmax433 max 1.0 1 -> 1 +ddmax434 max 0.1 1.0 -> 1.0 +ddmax435 max 0.10 0.1 -> 0.1 +ddmax436 max 0.100 0.10 -> 0.10 +ddmax437 max 0 0.10 -> 0.10 +ddmax438 max 0.0 0 -> 0 +ddmax439 max -0 0.0 -> 0.0 +ddmax440 max -0.0 0.0 -> 0.0 +ddmax441 max -0.0 0.00 -> 0.00 +ddmax442 max -0.00 0.0 -> 0.0 +ddmax443 max -0.0 0 -> 0 +ddmax444 max -0 0 -> 0 +ddmax445 max -0 -0.0 -> -0.0 +ddmax446 max -0.100 -0 -> -0 +ddmax447 max -0.10 -0.100 -> -0.100 +ddmax448 max -0.1 -0.10 -> -0.10 +ddmax449 max -1.0 -0.1 -> -0.1 +ddmax450 max -1 -1.0 -> -1.0 +ddmax451 max -1.1 -1 -> -1 +ddmax453 max -Inf -1.1 -> -1.1 +-- largies +ddmax460 max 1000 1E+3 -> 1E+3 +ddmax461 max 1E+3 1000 -> 1E+3 +ddmax462 max 1000 -1E+3 -> 1000 +ddmax463 max 1E+3 -1000 -> 1E+3 +ddmax464 max -1000 1E+3 -> 1E+3 +ddmax465 max -1E+3 1000 -> 1000 +ddmax466 max -1000 -1E+3 -> -1000 +ddmax467 max -1E+3 -1000 -> -1000 + +-- misalignment traps for little-endian +ddmax471 max 1.0 0.1 -> 1.0 +ddmax472 max 0.1 1.0 -> 1.0 +ddmax473 max 10.0 0.1 -> 10.0 +ddmax474 max 0.1 10.0 -> 10.0 +ddmax475 max 100 1.0 -> 100 +ddmax476 max 1.0 100 -> 100 +ddmax477 max 1000 10.0 -> 1000 +ddmax478 max 10.0 1000 -> 1000 +ddmax479 max 10000 100.0 -> 10000 +ddmax480 max 100.0 10000 -> 10000 +ddmax481 max 100000 1000.0 -> 100000 +ddmax482 max 1000.0 100000 -> 100000 +ddmax483 max 1000000 10000.0 -> 1000000 +ddmax484 max 10000.0 1000000 -> 1000000 + +-- subnormals +ddmax510 max 1.00E-383 0 -> 1.00E-383 +ddmax511 max 0.1E-383 0 -> 1E-384 Subnormal +ddmax512 max 0.10E-383 0 -> 1.0E-384 Subnormal +ddmax513 max 0.100E-383 0 -> 1.00E-384 Subnormal +ddmax514 max 0.01E-383 0 -> 1E-385 Subnormal +ddmax515 max 0.999E-383 0 -> 9.99E-384 Subnormal +ddmax516 max 0.099E-383 0 -> 9.9E-385 Subnormal +ddmax517 max 0.009E-383 0 -> 9E-386 Subnormal +ddmax518 max 0.001E-383 0 -> 1E-386 Subnormal +ddmax519 max 0.0009E-383 0 -> 9E-387 Subnormal +ddmax520 max 0.0001E-383 0 -> 1E-387 Subnormal + +ddmax530 max -1.00E-383 0 -> 0 +ddmax531 max -0.1E-383 0 -> 0 +ddmax532 max -0.10E-383 0 -> 0 +ddmax533 max -0.100E-383 0 -> 0 +ddmax534 max -0.01E-383 0 -> 0 +ddmax535 max -0.999E-383 0 -> 0 +ddmax536 max -0.099E-383 0 -> 0 +ddmax537 max -0.009E-383 0 -> 0 +ddmax538 max -0.001E-383 0 -> 0 +ddmax539 max -0.0009E-383 0 -> 0 +ddmax540 max -0.0001E-383 0 -> 0 + +-- Null tests +ddmax900 max 10 # -> NaN Invalid_operation +ddmax901 max # 10 -> NaN Invalid_operation + + + diff --git a/Lib/test/decimaltestdata/ddMaxMag.decTest b/Lib/test/decimaltestdata/ddMaxMag.decTest index ec2b830541..19c3e9085c 100644 --- a/Lib/test/decimaltestdata/ddMaxMag.decTest +++ b/Lib/test/decimaltestdata/ddMaxMag.decTest @@ -1,304 +1,304 @@ -------------------------------------------------------------------------
--- ddMaxMag.decTest -- decDouble maxnummag --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- we assume that base comparison is tested in compare.decTest, so
--- these mainly cover special cases and rounding
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
--- sanity checks
-ddmxg001 maxmag -2 -2 -> -2
-ddmxg002 maxmag -2 -1 -> -2
-ddmxg003 maxmag -2 0 -> -2
-ddmxg004 maxmag -2 1 -> -2
-ddmxg005 maxmag -2 2 -> 2
-ddmxg006 maxmag -1 -2 -> -2
-ddmxg007 maxmag -1 -1 -> -1
-ddmxg008 maxmag -1 0 -> -1
-ddmxg009 maxmag -1 1 -> 1
-ddmxg010 maxmag -1 2 -> 2
-ddmxg011 maxmag 0 -2 -> -2
-ddmxg012 maxmag 0 -1 -> -1
-ddmxg013 maxmag 0 0 -> 0
-ddmxg014 maxmag 0 1 -> 1
-ddmxg015 maxmag 0 2 -> 2
-ddmxg016 maxmag 1 -2 -> -2
-ddmxg017 maxmag 1 -1 -> 1
-ddmxg018 maxmag 1 0 -> 1
-ddmxg019 maxmag 1 1 -> 1
-ddmxg020 maxmag 1 2 -> 2
-ddmxg021 maxmag 2 -2 -> 2
-ddmxg022 maxmag 2 -1 -> 2
-ddmxg023 maxmag 2 0 -> 2
-ddmxg025 maxmag 2 1 -> 2
-ddmxg026 maxmag 2 2 -> 2
-
--- extended zeros
-ddmxg030 maxmag 0 0 -> 0
-ddmxg031 maxmag 0 -0 -> 0
-ddmxg032 maxmag 0 -0.0 -> 0
-ddmxg033 maxmag 0 0.0 -> 0
-ddmxg034 maxmag -0 0 -> 0 -- note: -0 = 0, but 0 chosen
-ddmxg035 maxmag -0 -0 -> -0
-ddmxg036 maxmag -0 -0.0 -> -0.0
-ddmxg037 maxmag -0 0.0 -> 0.0
-ddmxg038 maxmag 0.0 0 -> 0
-ddmxg039 maxmag 0.0 -0 -> 0.0
-ddmxg040 maxmag 0.0 -0.0 -> 0.0
-ddmxg041 maxmag 0.0 0.0 -> 0.0
-ddmxg042 maxmag -0.0 0 -> 0
-ddmxg043 maxmag -0.0 -0 -> -0.0
-ddmxg044 maxmag -0.0 -0.0 -> -0.0
-ddmxg045 maxmag -0.0 0.0 -> 0.0
-
-ddmxg050 maxmag -0E1 0E1 -> 0E+1
-ddmxg051 maxmag -0E2 0E2 -> 0E+2
-ddmxg052 maxmag -0E2 0E1 -> 0E+1
-ddmxg053 maxmag -0E1 0E2 -> 0E+2
-ddmxg054 maxmag 0E1 -0E1 -> 0E+1
-ddmxg055 maxmag 0E2 -0E2 -> 0E+2
-ddmxg056 maxmag 0E2 -0E1 -> 0E+2
-ddmxg057 maxmag 0E1 -0E2 -> 0E+1
-
-ddmxg058 maxmag 0E1 0E1 -> 0E+1
-ddmxg059 maxmag 0E2 0E2 -> 0E+2
-ddmxg060 maxmag 0E2 0E1 -> 0E+2
-ddmxg061 maxmag 0E1 0E2 -> 0E+2
-ddmxg062 maxmag -0E1 -0E1 -> -0E+1
-ddmxg063 maxmag -0E2 -0E2 -> -0E+2
-ddmxg064 maxmag -0E2 -0E1 -> -0E+1
-ddmxg065 maxmag -0E1 -0E2 -> -0E+1
-
--- Specials
-ddmxg090 maxmag Inf -Inf -> Infinity
-ddmxg091 maxmag Inf -1000 -> Infinity
-ddmxg092 maxmag Inf -1 -> Infinity
-ddmxg093 maxmag Inf -0 -> Infinity
-ddmxg094 maxmag Inf 0 -> Infinity
-ddmxg095 maxmag Inf 1 -> Infinity
-ddmxg096 maxmag Inf 1000 -> Infinity
-ddmxg097 maxmag Inf Inf -> Infinity
-ddmxg098 maxmag -1000 Inf -> Infinity
-ddmxg099 maxmag -Inf Inf -> Infinity
-ddmxg100 maxmag -1 Inf -> Infinity
-ddmxg101 maxmag -0 Inf -> Infinity
-ddmxg102 maxmag 0 Inf -> Infinity
-ddmxg103 maxmag 1 Inf -> Infinity
-ddmxg104 maxmag 1000 Inf -> Infinity
-ddmxg105 maxmag Inf Inf -> Infinity
-
-ddmxg120 maxmag -Inf -Inf -> -Infinity
-ddmxg121 maxmag -Inf -1000 -> -Infinity
-ddmxg122 maxmag -Inf -1 -> -Infinity
-ddmxg123 maxmag -Inf -0 -> -Infinity
-ddmxg124 maxmag -Inf 0 -> -Infinity
-ddmxg125 maxmag -Inf 1 -> -Infinity
-ddmxg126 maxmag -Inf 1000 -> -Infinity
-ddmxg127 maxmag -Inf Inf -> Infinity
-ddmxg128 maxmag -Inf -Inf -> -Infinity
-ddmxg129 maxmag -1000 -Inf -> -Infinity
-ddmxg130 maxmag -1 -Inf -> -Infinity
-ddmxg131 maxmag -0 -Inf -> -Infinity
-ddmxg132 maxmag 0 -Inf -> -Infinity
-ddmxg133 maxmag 1 -Inf -> -Infinity
-ddmxg134 maxmag 1000 -Inf -> -Infinity
-ddmxg135 maxmag Inf -Inf -> Infinity
-
--- 2004.08.02 754r chooses number over NaN in mixed cases
-ddmxg141 maxmag NaN -Inf -> -Infinity
-ddmxg142 maxmag NaN -1000 -> -1000
-ddmxg143 maxmag NaN -1 -> -1
-ddmxg144 maxmag NaN -0 -> -0
-ddmxg145 maxmag NaN 0 -> 0
-ddmxg146 maxmag NaN 1 -> 1
-ddmxg147 maxmag NaN 1000 -> 1000
-ddmxg148 maxmag NaN Inf -> Infinity
-ddmxg149 maxmag NaN NaN -> NaN
-ddmxg150 maxmag -Inf NaN -> -Infinity
-ddmxg151 maxmag -1000 NaN -> -1000
-ddmxg152 maxmag -1 NaN -> -1
-ddmxg153 maxmag -0 NaN -> -0
-ddmxg154 maxmag 0 NaN -> 0
-ddmxg155 maxmag 1 NaN -> 1
-ddmxg156 maxmag 1000 NaN -> 1000
-ddmxg157 maxmag Inf NaN -> Infinity
-
-ddmxg161 maxmag sNaN -Inf -> NaN Invalid_operation
-ddmxg162 maxmag sNaN -1000 -> NaN Invalid_operation
-ddmxg163 maxmag sNaN -1 -> NaN Invalid_operation
-ddmxg164 maxmag sNaN -0 -> NaN Invalid_operation
-ddmxg165 maxmag sNaN 0 -> NaN Invalid_operation
-ddmxg166 maxmag sNaN 1 -> NaN Invalid_operation
-ddmxg167 maxmag sNaN 1000 -> NaN Invalid_operation
-ddmxg168 maxmag sNaN NaN -> NaN Invalid_operation
-ddmxg169 maxmag sNaN sNaN -> NaN Invalid_operation
-ddmxg170 maxmag NaN sNaN -> NaN Invalid_operation
-ddmxg171 maxmag -Inf sNaN -> NaN Invalid_operation
-ddmxg172 maxmag -1000 sNaN -> NaN Invalid_operation
-ddmxg173 maxmag -1 sNaN -> NaN Invalid_operation
-ddmxg174 maxmag -0 sNaN -> NaN Invalid_operation
-ddmxg175 maxmag 0 sNaN -> NaN Invalid_operation
-ddmxg176 maxmag 1 sNaN -> NaN Invalid_operation
-ddmxg177 maxmag 1000 sNaN -> NaN Invalid_operation
-ddmxg178 maxmag Inf sNaN -> NaN Invalid_operation
-ddmxg179 maxmag NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-ddmxg181 maxmag NaN9 -Inf -> -Infinity
-ddmxg182 maxmag NaN8 9 -> 9
-ddmxg183 maxmag -NaN7 Inf -> Infinity
-
-ddmxg184 maxmag -NaN1 NaN11 -> -NaN1
-ddmxg185 maxmag NaN2 NaN12 -> NaN2
-ddmxg186 maxmag -NaN13 -NaN7 -> -NaN13
-ddmxg187 maxmag NaN14 -NaN5 -> NaN14
-
-ddmxg188 maxmag -Inf NaN4 -> -Infinity
-ddmxg189 maxmag -9 -NaN3 -> -9
-ddmxg190 maxmag Inf NaN2 -> Infinity
-
-ddmxg191 maxmag sNaN99 -Inf -> NaN99 Invalid_operation
-ddmxg192 maxmag sNaN98 -1 -> NaN98 Invalid_operation
-ddmxg193 maxmag -sNaN97 NaN -> -NaN97 Invalid_operation
-ddmxg194 maxmag sNaN96 sNaN94 -> NaN96 Invalid_operation
-ddmxg195 maxmag NaN95 sNaN93 -> NaN93 Invalid_operation
-ddmxg196 maxmag -Inf sNaN92 -> NaN92 Invalid_operation
-ddmxg197 maxmag 0 sNaN91 -> NaN91 Invalid_operation
-ddmxg198 maxmag Inf -sNaN90 -> -NaN90 Invalid_operation
-ddmxg199 maxmag NaN sNaN89 -> NaN89 Invalid_operation
-
--- old rounding checks
-ddmxg221 maxmag 12345678000 1 -> 12345678000
-ddmxg222 maxmag 1 12345678000 -> 12345678000
-ddmxg223 maxmag 1234567800 1 -> 1234567800
-ddmxg224 maxmag 1 1234567800 -> 1234567800
-ddmxg225 maxmag 1234567890 1 -> 1234567890
-ddmxg226 maxmag 1 1234567890 -> 1234567890
-ddmxg227 maxmag 1234567891 1 -> 1234567891
-ddmxg228 maxmag 1 1234567891 -> 1234567891
-ddmxg229 maxmag 12345678901 1 -> 12345678901
-ddmxg230 maxmag 1 12345678901 -> 12345678901
-ddmxg231 maxmag 1234567896 1 -> 1234567896
-ddmxg232 maxmag 1 1234567896 -> 1234567896
-ddmxg233 maxmag -1234567891 1 -> -1234567891
-ddmxg234 maxmag 1 -1234567891 -> -1234567891
-ddmxg235 maxmag -12345678901 1 -> -12345678901
-ddmxg236 maxmag 1 -12345678901 -> -12345678901
-ddmxg237 maxmag -1234567896 1 -> -1234567896
-ddmxg238 maxmag 1 -1234567896 -> -1234567896
-
--- from examples
-ddmxg280 maxmag '3' '2' -> '3'
-ddmxg281 maxmag '-10' '3' -> '-10'
-ddmxg282 maxmag '1.0' '1' -> '1'
-ddmxg283 maxmag '1' '1.0' -> '1'
-ddmxg284 maxmag '7' 'NaN' -> '7'
-
--- expanded list from min/max 754r purple prose
--- [explicit tests for exponent ordering]
-ddmxg401 maxmag Inf 1.1 -> Infinity
-ddmxg402 maxmag 1.1 1 -> 1.1
-ddmxg403 maxmag 1 1.0 -> 1
-ddmxg404 maxmag 1.0 0.1 -> 1.0
-ddmxg405 maxmag 0.1 0.10 -> 0.1
-ddmxg406 maxmag 0.10 0.100 -> 0.10
-ddmxg407 maxmag 0.10 0 -> 0.10
-ddmxg408 maxmag 0 0.0 -> 0
-ddmxg409 maxmag 0.0 -0 -> 0.0
-ddmxg410 maxmag 0.0 -0.0 -> 0.0
-ddmxg411 maxmag 0.00 -0.0 -> 0.00
-ddmxg412 maxmag 0.0 -0.00 -> 0.0
-ddmxg413 maxmag 0 -0.0 -> 0
-ddmxg414 maxmag 0 -0 -> 0
-ddmxg415 maxmag -0.0 -0 -> -0.0
-ddmxg416 maxmag -0 -0.100 -> -0.100
-ddmxg417 maxmag -0.100 -0.10 -> -0.100
-ddmxg418 maxmag -0.10 -0.1 -> -0.10
-ddmxg419 maxmag -0.1 -1.0 -> -1.0
-ddmxg420 maxmag -1.0 -1 -> -1.0
-ddmxg421 maxmag -1 -1.1 -> -1.1
-ddmxg423 maxmag -1.1 -Inf -> -Infinity
--- same with operands reversed
-ddmxg431 maxmag 1.1 Inf -> Infinity
-ddmxg432 maxmag 1 1.1 -> 1.1
-ddmxg433 maxmag 1.0 1 -> 1
-ddmxg434 maxmag 0.1 1.0 -> 1.0
-ddmxg435 maxmag 0.10 0.1 -> 0.1
-ddmxg436 maxmag 0.100 0.10 -> 0.10
-ddmxg437 maxmag 0 0.10 -> 0.10
-ddmxg438 maxmag 0.0 0 -> 0
-ddmxg439 maxmag -0 0.0 -> 0.0
-ddmxg440 maxmag -0.0 0.0 -> 0.0
-ddmxg441 maxmag -0.0 0.00 -> 0.00
-ddmxg442 maxmag -0.00 0.0 -> 0.0
-ddmxg443 maxmag -0.0 0 -> 0
-ddmxg444 maxmag -0 0 -> 0
-ddmxg445 maxmag -0 -0.0 -> -0.0
-ddmxg446 maxmag -0.100 -0 -> -0.100
-ddmxg447 maxmag -0.10 -0.100 -> -0.100
-ddmxg448 maxmag -0.1 -0.10 -> -0.10
-ddmxg449 maxmag -1.0 -0.1 -> -1.0
-ddmxg450 maxmag -1 -1.0 -> -1.0
-ddmxg451 maxmag -1.1 -1 -> -1.1
-ddmxg453 maxmag -Inf -1.1 -> -Infinity
--- largies
-ddmxg460 maxmag 1000 1E+3 -> 1E+3
-ddmxg461 maxmag 1E+3 1000 -> 1E+3
-ddmxg462 maxmag 1000 -1E+3 -> 1000
-ddmxg463 maxmag 1E+3 -1000 -> 1E+3
-ddmxg464 maxmag -1000 1E+3 -> 1E+3
-ddmxg465 maxmag -1E+3 1000 -> 1000
-ddmxg466 maxmag -1000 -1E+3 -> -1000
-ddmxg467 maxmag -1E+3 -1000 -> -1000
-
--- subnormals
-ddmxg510 maxmag 1.00E-383 0 -> 1.00E-383
-ddmxg511 maxmag 0.1E-383 0 -> 1E-384 Subnormal
-ddmxg512 maxmag 0.10E-383 0 -> 1.0E-384 Subnormal
-ddmxg513 maxmag 0.100E-383 0 -> 1.00E-384 Subnormal
-ddmxg514 maxmag 0.01E-383 0 -> 1E-385 Subnormal
-ddmxg515 maxmag 0.999E-383 0 -> 9.99E-384 Subnormal
-ddmxg516 maxmag 0.099E-383 0 -> 9.9E-385 Subnormal
-ddmxg517 maxmag 0.009E-383 0 -> 9E-386 Subnormal
-ddmxg518 maxmag 0.001E-383 0 -> 1E-386 Subnormal
-ddmxg519 maxmag 0.0009E-383 0 -> 9E-387 Subnormal
-ddmxg520 maxmag 0.0001E-383 0 -> 1E-387 Subnormal
-
-ddmxg530 maxmag -1.00E-383 0 -> -1.00E-383
-ddmxg531 maxmag -0.1E-383 0 -> -1E-384 Subnormal
-ddmxg532 maxmag -0.10E-383 0 -> -1.0E-384 Subnormal
-ddmxg533 maxmag -0.100E-383 0 -> -1.00E-384 Subnormal
-ddmxg534 maxmag -0.01E-383 0 -> -1E-385 Subnormal
-ddmxg535 maxmag -0.999E-383 0 -> -9.99E-384 Subnormal
-ddmxg536 maxmag -0.099E-383 0 -> -9.9E-385 Subnormal
-ddmxg537 maxmag -0.009E-383 0 -> -9E-386 Subnormal
-ddmxg538 maxmag -0.001E-383 0 -> -1E-386 Subnormal
-ddmxg539 maxmag -0.0009E-383 0 -> -9E-387 Subnormal
-ddmxg540 maxmag -0.0001E-383 0 -> -1E-387 Subnormal
-
--- Null tests
-ddmxg900 maxmag 10 # -> NaN Invalid_operation
-ddmxg901 maxmag # 10 -> NaN Invalid_operation
-
+------------------------------------------------------------------------ +-- ddMaxMag.decTest -- decDouble maxnummag -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- we assume that base comparison is tested in compare.decTest, so +-- these mainly cover special cases and rounding +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +-- sanity checks +ddmxg001 maxmag -2 -2 -> -2 +ddmxg002 maxmag -2 -1 -> -2 +ddmxg003 maxmag -2 0 -> -2 +ddmxg004 maxmag -2 1 -> -2 +ddmxg005 maxmag -2 2 -> 2 +ddmxg006 maxmag -1 -2 -> -2 +ddmxg007 maxmag -1 -1 -> -1 +ddmxg008 maxmag -1 0 -> -1 +ddmxg009 maxmag -1 1 -> 1 +ddmxg010 maxmag -1 2 -> 2 +ddmxg011 maxmag 0 -2 -> -2 +ddmxg012 maxmag 0 -1 -> -1 +ddmxg013 maxmag 0 0 -> 0 +ddmxg014 maxmag 0 1 -> 1 +ddmxg015 maxmag 0 2 -> 2 +ddmxg016 maxmag 1 -2 -> -2 +ddmxg017 maxmag 1 -1 -> 1 +ddmxg018 maxmag 1 0 -> 1 +ddmxg019 maxmag 1 1 -> 1 +ddmxg020 maxmag 1 2 -> 2 +ddmxg021 maxmag 2 -2 -> 2 +ddmxg022 maxmag 2 -1 -> 2 +ddmxg023 maxmag 2 0 -> 2 +ddmxg025 maxmag 2 1 -> 2 +ddmxg026 maxmag 2 2 -> 2 + +-- extended zeros +ddmxg030 maxmag 0 0 -> 0 +ddmxg031 maxmag 0 -0 -> 0 +ddmxg032 maxmag 0 -0.0 -> 0 +ddmxg033 maxmag 0 0.0 -> 0 +ddmxg034 maxmag -0 0 -> 0 -- note: -0 = 0, but 0 chosen +ddmxg035 maxmag -0 -0 -> -0 +ddmxg036 maxmag -0 -0.0 -> -0.0 +ddmxg037 maxmag -0 0.0 -> 0.0 +ddmxg038 maxmag 0.0 0 -> 0 +ddmxg039 maxmag 0.0 -0 -> 0.0 +ddmxg040 maxmag 0.0 -0.0 -> 0.0 +ddmxg041 maxmag 0.0 0.0 -> 0.0 +ddmxg042 maxmag -0.0 0 -> 0 +ddmxg043 maxmag -0.0 -0 -> -0.0 +ddmxg044 maxmag -0.0 -0.0 -> -0.0 +ddmxg045 maxmag -0.0 0.0 -> 0.0 + +ddmxg050 maxmag -0E1 0E1 -> 0E+1 +ddmxg051 maxmag -0E2 0E2 -> 0E+2 +ddmxg052 maxmag -0E2 0E1 -> 0E+1 +ddmxg053 maxmag -0E1 0E2 -> 0E+2 +ddmxg054 maxmag 0E1 -0E1 -> 0E+1 +ddmxg055 maxmag 0E2 -0E2 -> 0E+2 +ddmxg056 maxmag 0E2 -0E1 -> 0E+2 +ddmxg057 maxmag 0E1 -0E2 -> 0E+1 + +ddmxg058 maxmag 0E1 0E1 -> 0E+1 +ddmxg059 maxmag 0E2 0E2 -> 0E+2 +ddmxg060 maxmag 0E2 0E1 -> 0E+2 +ddmxg061 maxmag 0E1 0E2 -> 0E+2 +ddmxg062 maxmag -0E1 -0E1 -> -0E+1 +ddmxg063 maxmag -0E2 -0E2 -> -0E+2 +ddmxg064 maxmag -0E2 -0E1 -> -0E+1 +ddmxg065 maxmag -0E1 -0E2 -> -0E+1 + +-- Specials +ddmxg090 maxmag Inf -Inf -> Infinity +ddmxg091 maxmag Inf -1000 -> Infinity +ddmxg092 maxmag Inf -1 -> Infinity +ddmxg093 maxmag Inf -0 -> Infinity +ddmxg094 maxmag Inf 0 -> Infinity +ddmxg095 maxmag Inf 1 -> Infinity +ddmxg096 maxmag Inf 1000 -> Infinity +ddmxg097 maxmag Inf Inf -> Infinity +ddmxg098 maxmag -1000 Inf -> Infinity +ddmxg099 maxmag -Inf Inf -> Infinity +ddmxg100 maxmag -1 Inf -> Infinity +ddmxg101 maxmag -0 Inf -> Infinity +ddmxg102 maxmag 0 Inf -> Infinity +ddmxg103 maxmag 1 Inf -> Infinity +ddmxg104 maxmag 1000 Inf -> Infinity +ddmxg105 maxmag Inf Inf -> Infinity + +ddmxg120 maxmag -Inf -Inf -> -Infinity +ddmxg121 maxmag -Inf -1000 -> -Infinity +ddmxg122 maxmag -Inf -1 -> -Infinity +ddmxg123 maxmag -Inf -0 -> -Infinity +ddmxg124 maxmag -Inf 0 -> -Infinity +ddmxg125 maxmag -Inf 1 -> -Infinity +ddmxg126 maxmag -Inf 1000 -> -Infinity +ddmxg127 maxmag -Inf Inf -> Infinity +ddmxg128 maxmag -Inf -Inf -> -Infinity +ddmxg129 maxmag -1000 -Inf -> -Infinity +ddmxg130 maxmag -1 -Inf -> -Infinity +ddmxg131 maxmag -0 -Inf -> -Infinity +ddmxg132 maxmag 0 -Inf -> -Infinity +ddmxg133 maxmag 1 -Inf -> -Infinity +ddmxg134 maxmag 1000 -Inf -> -Infinity +ddmxg135 maxmag Inf -Inf -> Infinity + +-- 2004.08.02 754r chooses number over NaN in mixed cases +ddmxg141 maxmag NaN -Inf -> -Infinity +ddmxg142 maxmag NaN -1000 -> -1000 +ddmxg143 maxmag NaN -1 -> -1 +ddmxg144 maxmag NaN -0 -> -0 +ddmxg145 maxmag NaN 0 -> 0 +ddmxg146 maxmag NaN 1 -> 1 +ddmxg147 maxmag NaN 1000 -> 1000 +ddmxg148 maxmag NaN Inf -> Infinity +ddmxg149 maxmag NaN NaN -> NaN +ddmxg150 maxmag -Inf NaN -> -Infinity +ddmxg151 maxmag -1000 NaN -> -1000 +ddmxg152 maxmag -1 NaN -> -1 +ddmxg153 maxmag -0 NaN -> -0 +ddmxg154 maxmag 0 NaN -> 0 +ddmxg155 maxmag 1 NaN -> 1 +ddmxg156 maxmag 1000 NaN -> 1000 +ddmxg157 maxmag Inf NaN -> Infinity + +ddmxg161 maxmag sNaN -Inf -> NaN Invalid_operation +ddmxg162 maxmag sNaN -1000 -> NaN Invalid_operation +ddmxg163 maxmag sNaN -1 -> NaN Invalid_operation +ddmxg164 maxmag sNaN -0 -> NaN Invalid_operation +ddmxg165 maxmag sNaN 0 -> NaN Invalid_operation +ddmxg166 maxmag sNaN 1 -> NaN Invalid_operation +ddmxg167 maxmag sNaN 1000 -> NaN Invalid_operation +ddmxg168 maxmag sNaN NaN -> NaN Invalid_operation +ddmxg169 maxmag sNaN sNaN -> NaN Invalid_operation +ddmxg170 maxmag NaN sNaN -> NaN Invalid_operation +ddmxg171 maxmag -Inf sNaN -> NaN Invalid_operation +ddmxg172 maxmag -1000 sNaN -> NaN Invalid_operation +ddmxg173 maxmag -1 sNaN -> NaN Invalid_operation +ddmxg174 maxmag -0 sNaN -> NaN Invalid_operation +ddmxg175 maxmag 0 sNaN -> NaN Invalid_operation +ddmxg176 maxmag 1 sNaN -> NaN Invalid_operation +ddmxg177 maxmag 1000 sNaN -> NaN Invalid_operation +ddmxg178 maxmag Inf sNaN -> NaN Invalid_operation +ddmxg179 maxmag NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +ddmxg181 maxmag NaN9 -Inf -> -Infinity +ddmxg182 maxmag NaN8 9 -> 9 +ddmxg183 maxmag -NaN7 Inf -> Infinity + +ddmxg184 maxmag -NaN1 NaN11 -> -NaN1 +ddmxg185 maxmag NaN2 NaN12 -> NaN2 +ddmxg186 maxmag -NaN13 -NaN7 -> -NaN13 +ddmxg187 maxmag NaN14 -NaN5 -> NaN14 + +ddmxg188 maxmag -Inf NaN4 -> -Infinity +ddmxg189 maxmag -9 -NaN3 -> -9 +ddmxg190 maxmag Inf NaN2 -> Infinity + +ddmxg191 maxmag sNaN99 -Inf -> NaN99 Invalid_operation +ddmxg192 maxmag sNaN98 -1 -> NaN98 Invalid_operation +ddmxg193 maxmag -sNaN97 NaN -> -NaN97 Invalid_operation +ddmxg194 maxmag sNaN96 sNaN94 -> NaN96 Invalid_operation +ddmxg195 maxmag NaN95 sNaN93 -> NaN93 Invalid_operation +ddmxg196 maxmag -Inf sNaN92 -> NaN92 Invalid_operation +ddmxg197 maxmag 0 sNaN91 -> NaN91 Invalid_operation +ddmxg198 maxmag Inf -sNaN90 -> -NaN90 Invalid_operation +ddmxg199 maxmag NaN sNaN89 -> NaN89 Invalid_operation + +-- old rounding checks +ddmxg221 maxmag 12345678000 1 -> 12345678000 +ddmxg222 maxmag 1 12345678000 -> 12345678000 +ddmxg223 maxmag 1234567800 1 -> 1234567800 +ddmxg224 maxmag 1 1234567800 -> 1234567800 +ddmxg225 maxmag 1234567890 1 -> 1234567890 +ddmxg226 maxmag 1 1234567890 -> 1234567890 +ddmxg227 maxmag 1234567891 1 -> 1234567891 +ddmxg228 maxmag 1 1234567891 -> 1234567891 +ddmxg229 maxmag 12345678901 1 -> 12345678901 +ddmxg230 maxmag 1 12345678901 -> 12345678901 +ddmxg231 maxmag 1234567896 1 -> 1234567896 +ddmxg232 maxmag 1 1234567896 -> 1234567896 +ddmxg233 maxmag -1234567891 1 -> -1234567891 +ddmxg234 maxmag 1 -1234567891 -> -1234567891 +ddmxg235 maxmag -12345678901 1 -> -12345678901 +ddmxg236 maxmag 1 -12345678901 -> -12345678901 +ddmxg237 maxmag -1234567896 1 -> -1234567896 +ddmxg238 maxmag 1 -1234567896 -> -1234567896 + +-- from examples +ddmxg280 maxmag '3' '2' -> '3' +ddmxg281 maxmag '-10' '3' -> '-10' +ddmxg282 maxmag '1.0' '1' -> '1' +ddmxg283 maxmag '1' '1.0' -> '1' +ddmxg284 maxmag '7' 'NaN' -> '7' + +-- expanded list from min/max 754r purple prose +-- [explicit tests for exponent ordering] +ddmxg401 maxmag Inf 1.1 -> Infinity +ddmxg402 maxmag 1.1 1 -> 1.1 +ddmxg403 maxmag 1 1.0 -> 1 +ddmxg404 maxmag 1.0 0.1 -> 1.0 +ddmxg405 maxmag 0.1 0.10 -> 0.1 +ddmxg406 maxmag 0.10 0.100 -> 0.10 +ddmxg407 maxmag 0.10 0 -> 0.10 +ddmxg408 maxmag 0 0.0 -> 0 +ddmxg409 maxmag 0.0 -0 -> 0.0 +ddmxg410 maxmag 0.0 -0.0 -> 0.0 +ddmxg411 maxmag 0.00 -0.0 -> 0.00 +ddmxg412 maxmag 0.0 -0.00 -> 0.0 +ddmxg413 maxmag 0 -0.0 -> 0 +ddmxg414 maxmag 0 -0 -> 0 +ddmxg415 maxmag -0.0 -0 -> -0.0 +ddmxg416 maxmag -0 -0.100 -> -0.100 +ddmxg417 maxmag -0.100 -0.10 -> -0.100 +ddmxg418 maxmag -0.10 -0.1 -> -0.10 +ddmxg419 maxmag -0.1 -1.0 -> -1.0 +ddmxg420 maxmag -1.0 -1 -> -1.0 +ddmxg421 maxmag -1 -1.1 -> -1.1 +ddmxg423 maxmag -1.1 -Inf -> -Infinity +-- same with operands reversed +ddmxg431 maxmag 1.1 Inf -> Infinity +ddmxg432 maxmag 1 1.1 -> 1.1 +ddmxg433 maxmag 1.0 1 -> 1 +ddmxg434 maxmag 0.1 1.0 -> 1.0 +ddmxg435 maxmag 0.10 0.1 -> 0.1 +ddmxg436 maxmag 0.100 0.10 -> 0.10 +ddmxg437 maxmag 0 0.10 -> 0.10 +ddmxg438 maxmag 0.0 0 -> 0 +ddmxg439 maxmag -0 0.0 -> 0.0 +ddmxg440 maxmag -0.0 0.0 -> 0.0 +ddmxg441 maxmag -0.0 0.00 -> 0.00 +ddmxg442 maxmag -0.00 0.0 -> 0.0 +ddmxg443 maxmag -0.0 0 -> 0 +ddmxg444 maxmag -0 0 -> 0 +ddmxg445 maxmag -0 -0.0 -> -0.0 +ddmxg446 maxmag -0.100 -0 -> -0.100 +ddmxg447 maxmag -0.10 -0.100 -> -0.100 +ddmxg448 maxmag -0.1 -0.10 -> -0.10 +ddmxg449 maxmag -1.0 -0.1 -> -1.0 +ddmxg450 maxmag -1 -1.0 -> -1.0 +ddmxg451 maxmag -1.1 -1 -> -1.1 +ddmxg453 maxmag -Inf -1.1 -> -Infinity +-- largies +ddmxg460 maxmag 1000 1E+3 -> 1E+3 +ddmxg461 maxmag 1E+3 1000 -> 1E+3 +ddmxg462 maxmag 1000 -1E+3 -> 1000 +ddmxg463 maxmag 1E+3 -1000 -> 1E+3 +ddmxg464 maxmag -1000 1E+3 -> 1E+3 +ddmxg465 maxmag -1E+3 1000 -> 1000 +ddmxg466 maxmag -1000 -1E+3 -> -1000 +ddmxg467 maxmag -1E+3 -1000 -> -1000 + +-- subnormals +ddmxg510 maxmag 1.00E-383 0 -> 1.00E-383 +ddmxg511 maxmag 0.1E-383 0 -> 1E-384 Subnormal +ddmxg512 maxmag 0.10E-383 0 -> 1.0E-384 Subnormal +ddmxg513 maxmag 0.100E-383 0 -> 1.00E-384 Subnormal +ddmxg514 maxmag 0.01E-383 0 -> 1E-385 Subnormal +ddmxg515 maxmag 0.999E-383 0 -> 9.99E-384 Subnormal +ddmxg516 maxmag 0.099E-383 0 -> 9.9E-385 Subnormal +ddmxg517 maxmag 0.009E-383 0 -> 9E-386 Subnormal +ddmxg518 maxmag 0.001E-383 0 -> 1E-386 Subnormal +ddmxg519 maxmag 0.0009E-383 0 -> 9E-387 Subnormal +ddmxg520 maxmag 0.0001E-383 0 -> 1E-387 Subnormal + +ddmxg530 maxmag -1.00E-383 0 -> -1.00E-383 +ddmxg531 maxmag -0.1E-383 0 -> -1E-384 Subnormal +ddmxg532 maxmag -0.10E-383 0 -> -1.0E-384 Subnormal +ddmxg533 maxmag -0.100E-383 0 -> -1.00E-384 Subnormal +ddmxg534 maxmag -0.01E-383 0 -> -1E-385 Subnormal +ddmxg535 maxmag -0.999E-383 0 -> -9.99E-384 Subnormal +ddmxg536 maxmag -0.099E-383 0 -> -9.9E-385 Subnormal +ddmxg537 maxmag -0.009E-383 0 -> -9E-386 Subnormal +ddmxg538 maxmag -0.001E-383 0 -> -1E-386 Subnormal +ddmxg539 maxmag -0.0009E-383 0 -> -9E-387 Subnormal +ddmxg540 maxmag -0.0001E-383 0 -> -1E-387 Subnormal + +-- Null tests +ddmxg900 maxmag 10 # -> NaN Invalid_operation +ddmxg901 maxmag # 10 -> NaN Invalid_operation + diff --git a/Lib/test/decimaltestdata/ddMin.decTest b/Lib/test/decimaltestdata/ddMin.decTest index 9ce4282463..eb942ff159 100644 --- a/Lib/test/decimaltestdata/ddMin.decTest +++ b/Lib/test/decimaltestdata/ddMin.decTest @@ -1,309 +1,309 @@ -------------------------------------------------------------------------
--- ddMin.decTest -- decDouble minnum --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- we assume that base comparison is tested in compare.decTest, so
--- these mainly cover special cases and rounding
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
--- sanity checks
-ddmin001 min -2 -2 -> -2
-ddmin002 min -2 -1 -> -2
-ddmin003 min -2 0 -> -2
-ddmin004 min -2 1 -> -2
-ddmin005 min -2 2 -> -2
-ddmin006 min -1 -2 -> -2
-ddmin007 min -1 -1 -> -1
-ddmin008 min -1 0 -> -1
-ddmin009 min -1 1 -> -1
-ddmin010 min -1 2 -> -1
-ddmin011 min 0 -2 -> -2
-ddmin012 min 0 -1 -> -1
-ddmin013 min 0 0 -> 0
-ddmin014 min 0 1 -> 0
-ddmin015 min 0 2 -> 0
-ddmin016 min 1 -2 -> -2
-ddmin017 min 1 -1 -> -1
-ddmin018 min 1 0 -> 0
-ddmin019 min 1 1 -> 1
-ddmin020 min 1 2 -> 1
-ddmin021 min 2 -2 -> -2
-ddmin022 min 2 -1 -> -1
-ddmin023 min 2 0 -> 0
-ddmin025 min 2 1 -> 1
-ddmin026 min 2 2 -> 2
-
--- extended zeros
-ddmin030 min 0 0 -> 0
-ddmin031 min 0 -0 -> -0
-ddmin032 min 0 -0.0 -> -0.0
-ddmin033 min 0 0.0 -> 0.0
-ddmin034 min -0 0 -> -0
-ddmin035 min -0 -0 -> -0
-ddmin036 min -0 -0.0 -> -0
-ddmin037 min -0 0.0 -> -0
-ddmin038 min 0.0 0 -> 0.0
-ddmin039 min 0.0 -0 -> -0
-ddmin040 min 0.0 -0.0 -> -0.0
-ddmin041 min 0.0 0.0 -> 0.0
-ddmin042 min -0.0 0 -> -0.0
-ddmin043 min -0.0 -0 -> -0
-ddmin044 min -0.0 -0.0 -> -0.0
-ddmin045 min -0.0 0.0 -> -0.0
-
-ddmin046 min 0E1 -0E1 -> -0E+1
-ddmin047 min -0E1 0E2 -> -0E+1
-ddmin048 min 0E2 0E1 -> 0E+1
-ddmin049 min 0E1 0E2 -> 0E+1
-ddmin050 min -0E3 -0E2 -> -0E+3
-ddmin051 min -0E2 -0E3 -> -0E+3
-
--- Specials
-ddmin090 min Inf -Inf -> -Infinity
-ddmin091 min Inf -1000 -> -1000
-ddmin092 min Inf -1 -> -1
-ddmin093 min Inf -0 -> -0
-ddmin094 min Inf 0 -> 0
-ddmin095 min Inf 1 -> 1
-ddmin096 min Inf 1000 -> 1000
-ddmin097 min Inf Inf -> Infinity
-ddmin098 min -1000 Inf -> -1000
-ddmin099 min -Inf Inf -> -Infinity
-ddmin100 min -1 Inf -> -1
-ddmin101 min -0 Inf -> -0
-ddmin102 min 0 Inf -> 0
-ddmin103 min 1 Inf -> 1
-ddmin104 min 1000 Inf -> 1000
-ddmin105 min Inf Inf -> Infinity
-
-ddmin120 min -Inf -Inf -> -Infinity
-ddmin121 min -Inf -1000 -> -Infinity
-ddmin122 min -Inf -1 -> -Infinity
-ddmin123 min -Inf -0 -> -Infinity
-ddmin124 min -Inf 0 -> -Infinity
-ddmin125 min -Inf 1 -> -Infinity
-ddmin126 min -Inf 1000 -> -Infinity
-ddmin127 min -Inf Inf -> -Infinity
-ddmin128 min -Inf -Inf -> -Infinity
-ddmin129 min -1000 -Inf -> -Infinity
-ddmin130 min -1 -Inf -> -Infinity
-ddmin131 min -0 -Inf -> -Infinity
-ddmin132 min 0 -Inf -> -Infinity
-ddmin133 min 1 -Inf -> -Infinity
-ddmin134 min 1000 -Inf -> -Infinity
-ddmin135 min Inf -Inf -> -Infinity
-
--- 2004.08.02 754r chooses number over NaN in mixed cases
-ddmin141 min NaN -Inf -> -Infinity
-ddmin142 min NaN -1000 -> -1000
-ddmin143 min NaN -1 -> -1
-ddmin144 min NaN -0 -> -0
-ddmin145 min NaN 0 -> 0
-ddmin146 min NaN 1 -> 1
-ddmin147 min NaN 1000 -> 1000
-ddmin148 min NaN Inf -> Infinity
-ddmin149 min NaN NaN -> NaN
-ddmin150 min -Inf NaN -> -Infinity
-ddmin151 min -1000 NaN -> -1000
-ddmin152 min -1 -NaN -> -1
-ddmin153 min -0 NaN -> -0
-ddmin154 min 0 -NaN -> 0
-ddmin155 min 1 NaN -> 1
-ddmin156 min 1000 NaN -> 1000
-ddmin157 min Inf NaN -> Infinity
-
-ddmin161 min sNaN -Inf -> NaN Invalid_operation
-ddmin162 min sNaN -1000 -> NaN Invalid_operation
-ddmin163 min sNaN -1 -> NaN Invalid_operation
-ddmin164 min sNaN -0 -> NaN Invalid_operation
-ddmin165 min -sNaN 0 -> -NaN Invalid_operation
-ddmin166 min -sNaN 1 -> -NaN Invalid_operation
-ddmin167 min sNaN 1000 -> NaN Invalid_operation
-ddmin168 min sNaN NaN -> NaN Invalid_operation
-ddmin169 min sNaN sNaN -> NaN Invalid_operation
-ddmin170 min NaN sNaN -> NaN Invalid_operation
-ddmin171 min -Inf sNaN -> NaN Invalid_operation
-ddmin172 min -1000 sNaN -> NaN Invalid_operation
-ddmin173 min -1 sNaN -> NaN Invalid_operation
-ddmin174 min -0 sNaN -> NaN Invalid_operation
-ddmin175 min 0 sNaN -> NaN Invalid_operation
-ddmin176 min 1 sNaN -> NaN Invalid_operation
-ddmin177 min 1000 sNaN -> NaN Invalid_operation
-ddmin178 min Inf sNaN -> NaN Invalid_operation
-ddmin179 min NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-ddmin181 min NaN9 -Inf -> -Infinity
-ddmin182 min -NaN8 9990 -> 9990
-ddmin183 min NaN71 Inf -> Infinity
-
-ddmin184 min NaN1 NaN54 -> NaN1
-ddmin185 min NaN22 -NaN53 -> NaN22
-ddmin186 min -NaN3 NaN6 -> -NaN3
-ddmin187 min -NaN44 NaN7 -> -NaN44
-
-ddmin188 min -Inf NaN41 -> -Infinity
-ddmin189 min -9999 -NaN33 -> -9999
-ddmin190 min Inf NaN2 -> Infinity
-
-ddmin191 min sNaN99 -Inf -> NaN99 Invalid_operation
-ddmin192 min sNaN98 -11 -> NaN98 Invalid_operation
-ddmin193 min -sNaN97 NaN8 -> -NaN97 Invalid_operation
-ddmin194 min sNaN69 sNaN94 -> NaN69 Invalid_operation
-ddmin195 min NaN95 sNaN93 -> NaN93 Invalid_operation
-ddmin196 min -Inf sNaN92 -> NaN92 Invalid_operation
-ddmin197 min 088 sNaN91 -> NaN91 Invalid_operation
-ddmin198 min Inf -sNaN90 -> -NaN90 Invalid_operation
-ddmin199 min NaN sNaN86 -> NaN86 Invalid_operation
-
--- old rounding checks
-ddmin221 min -12345678000 1 -> -12345678000
-ddmin222 min 1 -12345678000 -> -12345678000
-ddmin223 min -1234567800 1 -> -1234567800
-ddmin224 min 1 -1234567800 -> -1234567800
-ddmin225 min -1234567890 1 -> -1234567890
-ddmin226 min 1 -1234567890 -> -1234567890
-ddmin227 min -1234567891 1 -> -1234567891
-ddmin228 min 1 -1234567891 -> -1234567891
-ddmin229 min -12345678901 1 -> -12345678901
-ddmin230 min 1 -12345678901 -> -12345678901
-ddmin231 min -1234567896 1 -> -1234567896
-ddmin232 min 1 -1234567896 -> -1234567896
-ddmin233 min 1234567891 1 -> 1
-ddmin234 min 1 1234567891 -> 1
-ddmin235 min 12345678901 1 -> 1
-ddmin236 min 1 12345678901 -> 1
-ddmin237 min 1234567896 1 -> 1
-ddmin238 min 1 1234567896 -> 1
-
--- from examples
-ddmin280 min '3' '2' -> '2'
-ddmin281 min '-10' '3' -> '-10'
-ddmin282 min '1.0' '1' -> '1.0'
-ddmin283 min '1' '1.0' -> '1.0'
-ddmin284 min '7' 'NaN' -> '7'
-
--- expanded list from min/max 754r purple prose
--- [explicit tests for exponent ordering]
-ddmin401 min Inf 1.1 -> 1.1
-ddmin402 min 1.1 1 -> 1
-ddmin403 min 1 1.0 -> 1.0
-ddmin404 min 1.0 0.1 -> 0.1
-ddmin405 min 0.1 0.10 -> 0.10
-ddmin406 min 0.10 0.100 -> 0.100
-ddmin407 min 0.10 0 -> 0
-ddmin408 min 0 0.0 -> 0.0
-ddmin409 min 0.0 -0 -> -0
-ddmin410 min 0.0 -0.0 -> -0.0
-ddmin411 min 0.00 -0.0 -> -0.0
-ddmin412 min 0.0 -0.00 -> -0.00
-ddmin413 min 0 -0.0 -> -0.0
-ddmin414 min 0 -0 -> -0
-ddmin415 min -0.0 -0 -> -0
-ddmin416 min -0 -0.100 -> -0.100
-ddmin417 min -0.100 -0.10 -> -0.10
-ddmin418 min -0.10 -0.1 -> -0.1
-ddmin419 min -0.1 -1.0 -> -1.0
-ddmin420 min -1.0 -1 -> -1
-ddmin421 min -1 -1.1 -> -1.1
-ddmin423 min -1.1 -Inf -> -Infinity
--- same with operands reversed
-ddmin431 min 1.1 Inf -> 1.1
-ddmin432 min 1 1.1 -> 1
-ddmin433 min 1.0 1 -> 1.0
-ddmin434 min 0.1 1.0 -> 0.1
-ddmin435 min 0.10 0.1 -> 0.10
-ddmin436 min 0.100 0.10 -> 0.100
-ddmin437 min 0 0.10 -> 0
-ddmin438 min 0.0 0 -> 0.0
-ddmin439 min -0 0.0 -> -0
-ddmin440 min -0.0 0.0 -> -0.0
-ddmin441 min -0.0 0.00 -> -0.0
-ddmin442 min -0.00 0.0 -> -0.00
-ddmin443 min -0.0 0 -> -0.0
-ddmin444 min -0 0 -> -0
-ddmin445 min -0 -0.0 -> -0
-ddmin446 min -0.100 -0 -> -0.100
-ddmin447 min -0.10 -0.100 -> -0.10
-ddmin448 min -0.1 -0.10 -> -0.1
-ddmin449 min -1.0 -0.1 -> -1.0
-ddmin450 min -1 -1.0 -> -1
-ddmin451 min -1.1 -1 -> -1.1
-ddmin453 min -Inf -1.1 -> -Infinity
--- largies
-ddmin460 min 1000 1E+3 -> 1000
-ddmin461 min 1E+3 1000 -> 1000
-ddmin462 min 1000 -1E+3 -> -1E+3
-ddmin463 min 1E+3 -384 -> -384
-ddmin464 min -384 1E+3 -> -384
-ddmin465 min -1E+3 1000 -> -1E+3
-ddmin466 min -384 -1E+3 -> -1E+3
-ddmin467 min -1E+3 -384 -> -1E+3
-
--- misalignment traps for little-endian
-ddmin471 min 1.0 0.1 -> 0.1
-ddmin472 min 0.1 1.0 -> 0.1
-ddmin473 min 10.0 0.1 -> 0.1
-ddmin474 min 0.1 10.0 -> 0.1
-ddmin475 min 100 1.0 -> 1.0
-ddmin476 min 1.0 100 -> 1.0
-ddmin477 min 1000 10.0 -> 10.0
-ddmin478 min 10.0 1000 -> 10.0
-ddmin479 min 10000 100.0 -> 100.0
-ddmin480 min 100.0 10000 -> 100.0
-ddmin481 min 100000 1000.0 -> 1000.0
-ddmin482 min 1000.0 100000 -> 1000.0
-ddmin483 min 1000000 10000.0 -> 10000.0
-ddmin484 min 10000.0 1000000 -> 10000.0
-
--- subnormals
-ddmin510 min 1.00E-383 0 -> 0
-ddmin511 min 0.1E-383 0 -> 0
-ddmin512 min 0.10E-383 0 -> 0
-ddmin513 min 0.100E-383 0 -> 0
-ddmin514 min 0.01E-383 0 -> 0
-ddmin515 min 0.999E-383 0 -> 0
-ddmin516 min 0.099E-383 0 -> 0
-ddmin517 min 0.009E-383 0 -> 0
-ddmin518 min 0.001E-383 0 -> 0
-ddmin519 min 0.0009E-383 0 -> 0
-ddmin520 min 0.0001E-383 0 -> 0
-
-ddmin530 min -1.00E-383 0 -> -1.00E-383
-ddmin531 min -0.1E-383 0 -> -1E-384 Subnormal
-ddmin532 min -0.10E-383 0 -> -1.0E-384 Subnormal
-ddmin533 min -0.100E-383 0 -> -1.00E-384 Subnormal
-ddmin534 min -0.01E-383 0 -> -1E-385 Subnormal
-ddmin535 min -0.999E-383 0 -> -9.99E-384 Subnormal
-ddmin536 min -0.099E-383 0 -> -9.9E-385 Subnormal
-ddmin537 min -0.009E-383 0 -> -9E-386 Subnormal
-ddmin538 min -0.001E-383 0 -> -1E-386 Subnormal
-ddmin539 min -0.0009E-383 0 -> -9E-387 Subnormal
-ddmin540 min -0.0001E-383 0 -> -1E-387 Subnormal
-
-
--- Null tests
-ddmin900 min 10 # -> NaN Invalid_operation
-ddmin901 min # 10 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- ddMin.decTest -- decDouble minnum -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- we assume that base comparison is tested in compare.decTest, so +-- these mainly cover special cases and rounding +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +-- sanity checks +ddmin001 min -2 -2 -> -2 +ddmin002 min -2 -1 -> -2 +ddmin003 min -2 0 -> -2 +ddmin004 min -2 1 -> -2 +ddmin005 min -2 2 -> -2 +ddmin006 min -1 -2 -> -2 +ddmin007 min -1 -1 -> -1 +ddmin008 min -1 0 -> -1 +ddmin009 min -1 1 -> -1 +ddmin010 min -1 2 -> -1 +ddmin011 min 0 -2 -> -2 +ddmin012 min 0 -1 -> -1 +ddmin013 min 0 0 -> 0 +ddmin014 min 0 1 -> 0 +ddmin015 min 0 2 -> 0 +ddmin016 min 1 -2 -> -2 +ddmin017 min 1 -1 -> -1 +ddmin018 min 1 0 -> 0 +ddmin019 min 1 1 -> 1 +ddmin020 min 1 2 -> 1 +ddmin021 min 2 -2 -> -2 +ddmin022 min 2 -1 -> -1 +ddmin023 min 2 0 -> 0 +ddmin025 min 2 1 -> 1 +ddmin026 min 2 2 -> 2 + +-- extended zeros +ddmin030 min 0 0 -> 0 +ddmin031 min 0 -0 -> -0 +ddmin032 min 0 -0.0 -> -0.0 +ddmin033 min 0 0.0 -> 0.0 +ddmin034 min -0 0 -> -0 +ddmin035 min -0 -0 -> -0 +ddmin036 min -0 -0.0 -> -0 +ddmin037 min -0 0.0 -> -0 +ddmin038 min 0.0 0 -> 0.0 +ddmin039 min 0.0 -0 -> -0 +ddmin040 min 0.0 -0.0 -> -0.0 +ddmin041 min 0.0 0.0 -> 0.0 +ddmin042 min -0.0 0 -> -0.0 +ddmin043 min -0.0 -0 -> -0 +ddmin044 min -0.0 -0.0 -> -0.0 +ddmin045 min -0.0 0.0 -> -0.0 + +ddmin046 min 0E1 -0E1 -> -0E+1 +ddmin047 min -0E1 0E2 -> -0E+1 +ddmin048 min 0E2 0E1 -> 0E+1 +ddmin049 min 0E1 0E2 -> 0E+1 +ddmin050 min -0E3 -0E2 -> -0E+3 +ddmin051 min -0E2 -0E3 -> -0E+3 + +-- Specials +ddmin090 min Inf -Inf -> -Infinity +ddmin091 min Inf -1000 -> -1000 +ddmin092 min Inf -1 -> -1 +ddmin093 min Inf -0 -> -0 +ddmin094 min Inf 0 -> 0 +ddmin095 min Inf 1 -> 1 +ddmin096 min Inf 1000 -> 1000 +ddmin097 min Inf Inf -> Infinity +ddmin098 min -1000 Inf -> -1000 +ddmin099 min -Inf Inf -> -Infinity +ddmin100 min -1 Inf -> -1 +ddmin101 min -0 Inf -> -0 +ddmin102 min 0 Inf -> 0 +ddmin103 min 1 Inf -> 1 +ddmin104 min 1000 Inf -> 1000 +ddmin105 min Inf Inf -> Infinity + +ddmin120 min -Inf -Inf -> -Infinity +ddmin121 min -Inf -1000 -> -Infinity +ddmin122 min -Inf -1 -> -Infinity +ddmin123 min -Inf -0 -> -Infinity +ddmin124 min -Inf 0 -> -Infinity +ddmin125 min -Inf 1 -> -Infinity +ddmin126 min -Inf 1000 -> -Infinity +ddmin127 min -Inf Inf -> -Infinity +ddmin128 min -Inf -Inf -> -Infinity +ddmin129 min -1000 -Inf -> -Infinity +ddmin130 min -1 -Inf -> -Infinity +ddmin131 min -0 -Inf -> -Infinity +ddmin132 min 0 -Inf -> -Infinity +ddmin133 min 1 -Inf -> -Infinity +ddmin134 min 1000 -Inf -> -Infinity +ddmin135 min Inf -Inf -> -Infinity + +-- 2004.08.02 754r chooses number over NaN in mixed cases +ddmin141 min NaN -Inf -> -Infinity +ddmin142 min NaN -1000 -> -1000 +ddmin143 min NaN -1 -> -1 +ddmin144 min NaN -0 -> -0 +ddmin145 min NaN 0 -> 0 +ddmin146 min NaN 1 -> 1 +ddmin147 min NaN 1000 -> 1000 +ddmin148 min NaN Inf -> Infinity +ddmin149 min NaN NaN -> NaN +ddmin150 min -Inf NaN -> -Infinity +ddmin151 min -1000 NaN -> -1000 +ddmin152 min -1 -NaN -> -1 +ddmin153 min -0 NaN -> -0 +ddmin154 min 0 -NaN -> 0 +ddmin155 min 1 NaN -> 1 +ddmin156 min 1000 NaN -> 1000 +ddmin157 min Inf NaN -> Infinity + +ddmin161 min sNaN -Inf -> NaN Invalid_operation +ddmin162 min sNaN -1000 -> NaN Invalid_operation +ddmin163 min sNaN -1 -> NaN Invalid_operation +ddmin164 min sNaN -0 -> NaN Invalid_operation +ddmin165 min -sNaN 0 -> -NaN Invalid_operation +ddmin166 min -sNaN 1 -> -NaN Invalid_operation +ddmin167 min sNaN 1000 -> NaN Invalid_operation +ddmin168 min sNaN NaN -> NaN Invalid_operation +ddmin169 min sNaN sNaN -> NaN Invalid_operation +ddmin170 min NaN sNaN -> NaN Invalid_operation +ddmin171 min -Inf sNaN -> NaN Invalid_operation +ddmin172 min -1000 sNaN -> NaN Invalid_operation +ddmin173 min -1 sNaN -> NaN Invalid_operation +ddmin174 min -0 sNaN -> NaN Invalid_operation +ddmin175 min 0 sNaN -> NaN Invalid_operation +ddmin176 min 1 sNaN -> NaN Invalid_operation +ddmin177 min 1000 sNaN -> NaN Invalid_operation +ddmin178 min Inf sNaN -> NaN Invalid_operation +ddmin179 min NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +ddmin181 min NaN9 -Inf -> -Infinity +ddmin182 min -NaN8 9990 -> 9990 +ddmin183 min NaN71 Inf -> Infinity + +ddmin184 min NaN1 NaN54 -> NaN1 +ddmin185 min NaN22 -NaN53 -> NaN22 +ddmin186 min -NaN3 NaN6 -> -NaN3 +ddmin187 min -NaN44 NaN7 -> -NaN44 + +ddmin188 min -Inf NaN41 -> -Infinity +ddmin189 min -9999 -NaN33 -> -9999 +ddmin190 min Inf NaN2 -> Infinity + +ddmin191 min sNaN99 -Inf -> NaN99 Invalid_operation +ddmin192 min sNaN98 -11 -> NaN98 Invalid_operation +ddmin193 min -sNaN97 NaN8 -> -NaN97 Invalid_operation +ddmin194 min sNaN69 sNaN94 -> NaN69 Invalid_operation +ddmin195 min NaN95 sNaN93 -> NaN93 Invalid_operation +ddmin196 min -Inf sNaN92 -> NaN92 Invalid_operation +ddmin197 min 088 sNaN91 -> NaN91 Invalid_operation +ddmin198 min Inf -sNaN90 -> -NaN90 Invalid_operation +ddmin199 min NaN sNaN86 -> NaN86 Invalid_operation + +-- old rounding checks +ddmin221 min -12345678000 1 -> -12345678000 +ddmin222 min 1 -12345678000 -> -12345678000 +ddmin223 min -1234567800 1 -> -1234567800 +ddmin224 min 1 -1234567800 -> -1234567800 +ddmin225 min -1234567890 1 -> -1234567890 +ddmin226 min 1 -1234567890 -> -1234567890 +ddmin227 min -1234567891 1 -> -1234567891 +ddmin228 min 1 -1234567891 -> -1234567891 +ddmin229 min -12345678901 1 -> -12345678901 +ddmin230 min 1 -12345678901 -> -12345678901 +ddmin231 min -1234567896 1 -> -1234567896 +ddmin232 min 1 -1234567896 -> -1234567896 +ddmin233 min 1234567891 1 -> 1 +ddmin234 min 1 1234567891 -> 1 +ddmin235 min 12345678901 1 -> 1 +ddmin236 min 1 12345678901 -> 1 +ddmin237 min 1234567896 1 -> 1 +ddmin238 min 1 1234567896 -> 1 + +-- from examples +ddmin280 min '3' '2' -> '2' +ddmin281 min '-10' '3' -> '-10' +ddmin282 min '1.0' '1' -> '1.0' +ddmin283 min '1' '1.0' -> '1.0' +ddmin284 min '7' 'NaN' -> '7' + +-- expanded list from min/max 754r purple prose +-- [explicit tests for exponent ordering] +ddmin401 min Inf 1.1 -> 1.1 +ddmin402 min 1.1 1 -> 1 +ddmin403 min 1 1.0 -> 1.0 +ddmin404 min 1.0 0.1 -> 0.1 +ddmin405 min 0.1 0.10 -> 0.10 +ddmin406 min 0.10 0.100 -> 0.100 +ddmin407 min 0.10 0 -> 0 +ddmin408 min 0 0.0 -> 0.0 +ddmin409 min 0.0 -0 -> -0 +ddmin410 min 0.0 -0.0 -> -0.0 +ddmin411 min 0.00 -0.0 -> -0.0 +ddmin412 min 0.0 -0.00 -> -0.00 +ddmin413 min 0 -0.0 -> -0.0 +ddmin414 min 0 -0 -> -0 +ddmin415 min -0.0 -0 -> -0 +ddmin416 min -0 -0.100 -> -0.100 +ddmin417 min -0.100 -0.10 -> -0.10 +ddmin418 min -0.10 -0.1 -> -0.1 +ddmin419 min -0.1 -1.0 -> -1.0 +ddmin420 min -1.0 -1 -> -1 +ddmin421 min -1 -1.1 -> -1.1 +ddmin423 min -1.1 -Inf -> -Infinity +-- same with operands reversed +ddmin431 min 1.1 Inf -> 1.1 +ddmin432 min 1 1.1 -> 1 +ddmin433 min 1.0 1 -> 1.0 +ddmin434 min 0.1 1.0 -> 0.1 +ddmin435 min 0.10 0.1 -> 0.10 +ddmin436 min 0.100 0.10 -> 0.100 +ddmin437 min 0 0.10 -> 0 +ddmin438 min 0.0 0 -> 0.0 +ddmin439 min -0 0.0 -> -0 +ddmin440 min -0.0 0.0 -> -0.0 +ddmin441 min -0.0 0.00 -> -0.0 +ddmin442 min -0.00 0.0 -> -0.00 +ddmin443 min -0.0 0 -> -0.0 +ddmin444 min -0 0 -> -0 +ddmin445 min -0 -0.0 -> -0 +ddmin446 min -0.100 -0 -> -0.100 +ddmin447 min -0.10 -0.100 -> -0.10 +ddmin448 min -0.1 -0.10 -> -0.1 +ddmin449 min -1.0 -0.1 -> -1.0 +ddmin450 min -1 -1.0 -> -1 +ddmin451 min -1.1 -1 -> -1.1 +ddmin453 min -Inf -1.1 -> -Infinity +-- largies +ddmin460 min 1000 1E+3 -> 1000 +ddmin461 min 1E+3 1000 -> 1000 +ddmin462 min 1000 -1E+3 -> -1E+3 +ddmin463 min 1E+3 -384 -> -384 +ddmin464 min -384 1E+3 -> -384 +ddmin465 min -1E+3 1000 -> -1E+3 +ddmin466 min -384 -1E+3 -> -1E+3 +ddmin467 min -1E+3 -384 -> -1E+3 + +-- misalignment traps for little-endian +ddmin471 min 1.0 0.1 -> 0.1 +ddmin472 min 0.1 1.0 -> 0.1 +ddmin473 min 10.0 0.1 -> 0.1 +ddmin474 min 0.1 10.0 -> 0.1 +ddmin475 min 100 1.0 -> 1.0 +ddmin476 min 1.0 100 -> 1.0 +ddmin477 min 1000 10.0 -> 10.0 +ddmin478 min 10.0 1000 -> 10.0 +ddmin479 min 10000 100.0 -> 100.0 +ddmin480 min 100.0 10000 -> 100.0 +ddmin481 min 100000 1000.0 -> 1000.0 +ddmin482 min 1000.0 100000 -> 1000.0 +ddmin483 min 1000000 10000.0 -> 10000.0 +ddmin484 min 10000.0 1000000 -> 10000.0 + +-- subnormals +ddmin510 min 1.00E-383 0 -> 0 +ddmin511 min 0.1E-383 0 -> 0 +ddmin512 min 0.10E-383 0 -> 0 +ddmin513 min 0.100E-383 0 -> 0 +ddmin514 min 0.01E-383 0 -> 0 +ddmin515 min 0.999E-383 0 -> 0 +ddmin516 min 0.099E-383 0 -> 0 +ddmin517 min 0.009E-383 0 -> 0 +ddmin518 min 0.001E-383 0 -> 0 +ddmin519 min 0.0009E-383 0 -> 0 +ddmin520 min 0.0001E-383 0 -> 0 + +ddmin530 min -1.00E-383 0 -> -1.00E-383 +ddmin531 min -0.1E-383 0 -> -1E-384 Subnormal +ddmin532 min -0.10E-383 0 -> -1.0E-384 Subnormal +ddmin533 min -0.100E-383 0 -> -1.00E-384 Subnormal +ddmin534 min -0.01E-383 0 -> -1E-385 Subnormal +ddmin535 min -0.999E-383 0 -> -9.99E-384 Subnormal +ddmin536 min -0.099E-383 0 -> -9.9E-385 Subnormal +ddmin537 min -0.009E-383 0 -> -9E-386 Subnormal +ddmin538 min -0.001E-383 0 -> -1E-386 Subnormal +ddmin539 min -0.0009E-383 0 -> -9E-387 Subnormal +ddmin540 min -0.0001E-383 0 -> -1E-387 Subnormal + + +-- Null tests +ddmin900 min 10 # -> NaN Invalid_operation +ddmin901 min # 10 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/ddMinMag.decTest b/Lib/test/decimaltestdata/ddMinMag.decTest index 5537cc8a7e..1012f1ec81 100644 --- a/Lib/test/decimaltestdata/ddMinMag.decTest +++ b/Lib/test/decimaltestdata/ddMinMag.decTest @@ -1,293 +1,293 @@ -------------------------------------------------------------------------
--- ddMinMag.decTest -- decDouble minnummag --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- we assume that base comparison is tested in compare.decTest, so
--- these mainly cover special cases and rounding
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
--- sanity checks
-ddmng001 minmag -2 -2 -> -2
-ddmng002 minmag -2 -1 -> -1
-ddmng003 minmag -2 0 -> 0
-ddmng004 minmag -2 1 -> 1
-ddmng005 minmag -2 2 -> -2
-ddmng006 minmag -1 -2 -> -1
-ddmng007 minmag -1 -1 -> -1
-ddmng008 minmag -1 0 -> 0
-ddmng009 minmag -1 1 -> -1
-ddmng010 minmag -1 2 -> -1
-ddmng011 minmag 0 -2 -> 0
-ddmng012 minmag 0 -1 -> 0
-ddmng013 minmag 0 0 -> 0
-ddmng014 minmag 0 1 -> 0
-ddmng015 minmag 0 2 -> 0
-ddmng016 minmag 1 -2 -> 1
-ddmng017 minmag 1 -1 -> -1
-ddmng018 minmag 1 0 -> 0
-ddmng019 minmag 1 1 -> 1
-ddmng020 minmag 1 2 -> 1
-ddmng021 minmag 2 -2 -> -2
-ddmng022 minmag 2 -1 -> -1
-ddmng023 minmag 2 0 -> 0
-ddmng025 minmag 2 1 -> 1
-ddmng026 minmag 2 2 -> 2
-
--- extended zeros
-ddmng030 minmag 0 0 -> 0
-ddmng031 minmag 0 -0 -> -0
-ddmng032 minmag 0 -0.0 -> -0.0
-ddmng033 minmag 0 0.0 -> 0.0
-ddmng034 minmag -0 0 -> -0
-ddmng035 minmag -0 -0 -> -0
-ddmng036 minmag -0 -0.0 -> -0
-ddmng037 minmag -0 0.0 -> -0
-ddmng038 minmag 0.0 0 -> 0.0
-ddmng039 minmag 0.0 -0 -> -0
-ddmng040 minmag 0.0 -0.0 -> -0.0
-ddmng041 minmag 0.0 0.0 -> 0.0
-ddmng042 minmag -0.0 0 -> -0.0
-ddmng043 minmag -0.0 -0 -> -0
-ddmng044 minmag -0.0 -0.0 -> -0.0
-ddmng045 minmag -0.0 0.0 -> -0.0
-
-ddmng046 minmag 0E1 -0E1 -> -0E+1
-ddmng047 minmag -0E1 0E2 -> -0E+1
-ddmng048 minmag 0E2 0E1 -> 0E+1
-ddmng049 minmag 0E1 0E2 -> 0E+1
-ddmng050 minmag -0E3 -0E2 -> -0E+3
-ddmng051 minmag -0E2 -0E3 -> -0E+3
-
--- Specials
-ddmng090 minmag Inf -Inf -> -Infinity
-ddmng091 minmag Inf -1000 -> -1000
-ddmng092 minmag Inf -1 -> -1
-ddmng093 minmag Inf -0 -> -0
-ddmng094 minmag Inf 0 -> 0
-ddmng095 minmag Inf 1 -> 1
-ddmng096 minmag Inf 1000 -> 1000
-ddmng097 minmag Inf Inf -> Infinity
-ddmng098 minmag -1000 Inf -> -1000
-ddmng099 minmag -Inf Inf -> -Infinity
-ddmng100 minmag -1 Inf -> -1
-ddmng101 minmag -0 Inf -> -0
-ddmng102 minmag 0 Inf -> 0
-ddmng103 minmag 1 Inf -> 1
-ddmng104 minmag 1000 Inf -> 1000
-ddmng105 minmag Inf Inf -> Infinity
-
-ddmng120 minmag -Inf -Inf -> -Infinity
-ddmng121 minmag -Inf -1000 -> -1000
-ddmng122 minmag -Inf -1 -> -1
-ddmng123 minmag -Inf -0 -> -0
-ddmng124 minmag -Inf 0 -> 0
-ddmng125 minmag -Inf 1 -> 1
-ddmng126 minmag -Inf 1000 -> 1000
-ddmng127 minmag -Inf Inf -> -Infinity
-ddmng128 minmag -Inf -Inf -> -Infinity
-ddmng129 minmag -1000 -Inf -> -1000
-ddmng130 minmag -1 -Inf -> -1
-ddmng131 minmag -0 -Inf -> -0
-ddmng132 minmag 0 -Inf -> 0
-ddmng133 minmag 1 -Inf -> 1
-ddmng134 minmag 1000 -Inf -> 1000
-ddmng135 minmag Inf -Inf -> -Infinity
-
--- 2004.08.02 754r chooses number over NaN in mixed cases
-ddmng141 minmag NaN -Inf -> -Infinity
-ddmng142 minmag NaN -1000 -> -1000
-ddmng143 minmag NaN -1 -> -1
-ddmng144 minmag NaN -0 -> -0
-ddmng145 minmag NaN 0 -> 0
-ddmng146 minmag NaN 1 -> 1
-ddmng147 minmag NaN 1000 -> 1000
-ddmng148 minmag NaN Inf -> Infinity
-ddmng149 minmag NaN NaN -> NaN
-ddmng150 minmag -Inf NaN -> -Infinity
-ddmng151 minmag -1000 NaN -> -1000
-ddmng152 minmag -1 -NaN -> -1
-ddmng153 minmag -0 NaN -> -0
-ddmng154 minmag 0 -NaN -> 0
-ddmng155 minmag 1 NaN -> 1
-ddmng156 minmag 1000 NaN -> 1000
-ddmng157 minmag Inf NaN -> Infinity
-
-ddmng161 minmag sNaN -Inf -> NaN Invalid_operation
-ddmng162 minmag sNaN -1000 -> NaN Invalid_operation
-ddmng163 minmag sNaN -1 -> NaN Invalid_operation
-ddmng164 minmag sNaN -0 -> NaN Invalid_operation
-ddmng165 minmag -sNaN 0 -> -NaN Invalid_operation
-ddmng166 minmag -sNaN 1 -> -NaN Invalid_operation
-ddmng167 minmag sNaN 1000 -> NaN Invalid_operation
-ddmng168 minmag sNaN NaN -> NaN Invalid_operation
-ddmng169 minmag sNaN sNaN -> NaN Invalid_operation
-ddmng170 minmag NaN sNaN -> NaN Invalid_operation
-ddmng171 minmag -Inf sNaN -> NaN Invalid_operation
-ddmng172 minmag -1000 sNaN -> NaN Invalid_operation
-ddmng173 minmag -1 sNaN -> NaN Invalid_operation
-ddmng174 minmag -0 sNaN -> NaN Invalid_operation
-ddmng175 minmag 0 sNaN -> NaN Invalid_operation
-ddmng176 minmag 1 sNaN -> NaN Invalid_operation
-ddmng177 minmag 1000 sNaN -> NaN Invalid_operation
-ddmng178 minmag Inf sNaN -> NaN Invalid_operation
-ddmng179 minmag NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-ddmng181 minmag NaN9 -Inf -> -Infinity
-ddmng182 minmag -NaN8 9990 -> 9990
-ddmng183 minmag NaN71 Inf -> Infinity
-
-ddmng184 minmag NaN1 NaN54 -> NaN1
-ddmng185 minmag NaN22 -NaN53 -> NaN22
-ddmng186 minmag -NaN3 NaN6 -> -NaN3
-ddmng187 minmag -NaN44 NaN7 -> -NaN44
-
-ddmng188 minmag -Inf NaN41 -> -Infinity
-ddmng189 minmag -9999 -NaN33 -> -9999
-ddmng190 minmag Inf NaN2 -> Infinity
-
-ddmng191 minmag sNaN99 -Inf -> NaN99 Invalid_operation
-ddmng192 minmag sNaN98 -11 -> NaN98 Invalid_operation
-ddmng193 minmag -sNaN97 NaN8 -> -NaN97 Invalid_operation
-ddmng194 minmag sNaN69 sNaN94 -> NaN69 Invalid_operation
-ddmng195 minmag NaN95 sNaN93 -> NaN93 Invalid_operation
-ddmng196 minmag -Inf sNaN92 -> NaN92 Invalid_operation
-ddmng197 minmag 088 sNaN91 -> NaN91 Invalid_operation
-ddmng198 minmag Inf -sNaN90 -> -NaN90 Invalid_operation
-ddmng199 minmag NaN sNaN86 -> NaN86 Invalid_operation
-
--- old rounding checks
-ddmng221 minmag -12345678000 1 -> 1
-ddmng222 minmag 1 -12345678000 -> 1
-ddmng223 minmag -1234567800 1 -> 1
-ddmng224 minmag 1 -1234567800 -> 1
-ddmng225 minmag -1234567890 1 -> 1
-ddmng226 minmag 1 -1234567890 -> 1
-ddmng227 minmag -1234567891 1 -> 1
-ddmng228 minmag 1 -1234567891 -> 1
-ddmng229 minmag -12345678901 1 -> 1
-ddmng230 minmag 1 -12345678901 -> 1
-ddmng231 minmag -1234567896 1 -> 1
-ddmng232 minmag 1 -1234567896 -> 1
-ddmng233 minmag 1234567891 1 -> 1
-ddmng234 minmag 1 1234567891 -> 1
-ddmng235 minmag 12345678901 1 -> 1
-ddmng236 minmag 1 12345678901 -> 1
-ddmng237 minmag 1234567896 1 -> 1
-ddmng238 minmag 1 1234567896 -> 1
-
--- from examples
-ddmng280 minmag '3' '2' -> '2'
-ddmng281 minmag '-10' '3' -> '3'
-ddmng282 minmag '1.0' '1' -> '1.0'
-ddmng283 minmag '1' '1.0' -> '1.0'
-ddmng284 minmag '7' 'NaN' -> '7'
-
--- expanded list from min/max 754r purple prose
--- [explicit tests for exponent ordering]
-ddmng401 minmag Inf 1.1 -> 1.1
-ddmng402 minmag 1.1 1 -> 1
-ddmng403 minmag 1 1.0 -> 1.0
-ddmng404 minmag 1.0 0.1 -> 0.1
-ddmng405 minmag 0.1 0.10 -> 0.10
-ddmng406 minmag 0.10 0.100 -> 0.100
-ddmng407 minmag 0.10 0 -> 0
-ddmng408 minmag 0 0.0 -> 0.0
-ddmng409 minmag 0.0 -0 -> -0
-ddmng410 minmag 0.0 -0.0 -> -0.0
-ddmng411 minmag 0.00 -0.0 -> -0.0
-ddmng412 minmag 0.0 -0.00 -> -0.00
-ddmng413 minmag 0 -0.0 -> -0.0
-ddmng414 minmag 0 -0 -> -0
-ddmng415 minmag -0.0 -0 -> -0
-ddmng416 minmag -0 -0.100 -> -0
-ddmng417 minmag -0.100 -0.10 -> -0.10
-ddmng418 minmag -0.10 -0.1 -> -0.1
-ddmng419 minmag -0.1 -1.0 -> -0.1
-ddmng420 minmag -1.0 -1 -> -1
-ddmng421 minmag -1 -1.1 -> -1
-ddmng423 minmag -1.1 -Inf -> -1.1
--- same with operands reversed
-ddmng431 minmag 1.1 Inf -> 1.1
-ddmng432 minmag 1 1.1 -> 1
-ddmng433 minmag 1.0 1 -> 1.0
-ddmng434 minmag 0.1 1.0 -> 0.1
-ddmng435 minmag 0.10 0.1 -> 0.10
-ddmng436 minmag 0.100 0.10 -> 0.100
-ddmng437 minmag 0 0.10 -> 0
-ddmng438 minmag 0.0 0 -> 0.0
-ddmng439 minmag -0 0.0 -> -0
-ddmng440 minmag -0.0 0.0 -> -0.0
-ddmng441 minmag -0.0 0.00 -> -0.0
-ddmng442 minmag -0.00 0.0 -> -0.00
-ddmng443 minmag -0.0 0 -> -0.0
-ddmng444 minmag -0 0 -> -0
-ddmng445 minmag -0 -0.0 -> -0
-ddmng446 minmag -0.100 -0 -> -0
-ddmng447 minmag -0.10 -0.100 -> -0.10
-ddmng448 minmag -0.1 -0.10 -> -0.1
-ddmng449 minmag -1.0 -0.1 -> -0.1
-ddmng450 minmag -1 -1.0 -> -1
-ddmng451 minmag -1.1 -1 -> -1
-ddmng453 minmag -Inf -1.1 -> -1.1
--- largies
-ddmng460 minmag 1000 1E+3 -> 1000
-ddmng461 minmag 1E+3 1000 -> 1000
-ddmng462 minmag 1000 -1E+3 -> -1E+3
-ddmng463 minmag 1E+3 -384 -> -384
-ddmng464 minmag -384 1E+3 -> -384
-ddmng465 minmag -1E+3 1000 -> -1E+3
-ddmng466 minmag -384 -1E+3 -> -384
-ddmng467 minmag -1E+3 -384 -> -384
-
--- subnormals
-ddmng510 minmag 1.00E-383 0 -> 0
-ddmng511 minmag 0.1E-383 0 -> 0
-ddmng512 minmag 0.10E-383 0 -> 0
-ddmng513 minmag 0.100E-383 0 -> 0
-ddmng514 minmag 0.01E-383 0 -> 0
-ddmng515 minmag 0.999E-383 0 -> 0
-ddmng516 minmag 0.099E-383 0 -> 0
-ddmng517 minmag 0.009E-383 0 -> 0
-ddmng518 minmag 0.001E-383 0 -> 0
-ddmng519 minmag 0.0009E-383 0 -> 0
-ddmng520 minmag 0.0001E-383 0 -> 0
-
-ddmng530 minmag -1.00E-383 0 -> 0
-ddmng531 minmag -0.1E-383 0 -> 0
-ddmng532 minmag -0.10E-383 0 -> 0
-ddmng533 minmag -0.100E-383 0 -> 0
-ddmng534 minmag -0.01E-383 0 -> 0
-ddmng535 minmag -0.999E-383 0 -> 0
-ddmng536 minmag -0.099E-383 0 -> 0
-ddmng537 minmag -0.009E-383 0 -> 0
-ddmng538 minmag -0.001E-383 0 -> 0
-ddmng539 minmag -0.0009E-383 0 -> 0
-ddmng540 minmag -0.0001E-383 0 -> 0
-
-
--- Null tests
-ddmng900 minmag 10 # -> NaN Invalid_operation
-ddmng901 minmag # 10 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- ddMinMag.decTest -- decDouble minnummag -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- we assume that base comparison is tested in compare.decTest, so +-- these mainly cover special cases and rounding +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +-- sanity checks +ddmng001 minmag -2 -2 -> -2 +ddmng002 minmag -2 -1 -> -1 +ddmng003 minmag -2 0 -> 0 +ddmng004 minmag -2 1 -> 1 +ddmng005 minmag -2 2 -> -2 +ddmng006 minmag -1 -2 -> -1 +ddmng007 minmag -1 -1 -> -1 +ddmng008 minmag -1 0 -> 0 +ddmng009 minmag -1 1 -> -1 +ddmng010 minmag -1 2 -> -1 +ddmng011 minmag 0 -2 -> 0 +ddmng012 minmag 0 -1 -> 0 +ddmng013 minmag 0 0 -> 0 +ddmng014 minmag 0 1 -> 0 +ddmng015 minmag 0 2 -> 0 +ddmng016 minmag 1 -2 -> 1 +ddmng017 minmag 1 -1 -> -1 +ddmng018 minmag 1 0 -> 0 +ddmng019 minmag 1 1 -> 1 +ddmng020 minmag 1 2 -> 1 +ddmng021 minmag 2 -2 -> -2 +ddmng022 minmag 2 -1 -> -1 +ddmng023 minmag 2 0 -> 0 +ddmng025 minmag 2 1 -> 1 +ddmng026 minmag 2 2 -> 2 + +-- extended zeros +ddmng030 minmag 0 0 -> 0 +ddmng031 minmag 0 -0 -> -0 +ddmng032 minmag 0 -0.0 -> -0.0 +ddmng033 minmag 0 0.0 -> 0.0 +ddmng034 minmag -0 0 -> -0 +ddmng035 minmag -0 -0 -> -0 +ddmng036 minmag -0 -0.0 -> -0 +ddmng037 minmag -0 0.0 -> -0 +ddmng038 minmag 0.0 0 -> 0.0 +ddmng039 minmag 0.0 -0 -> -0 +ddmng040 minmag 0.0 -0.0 -> -0.0 +ddmng041 minmag 0.0 0.0 -> 0.0 +ddmng042 minmag -0.0 0 -> -0.0 +ddmng043 minmag -0.0 -0 -> -0 +ddmng044 minmag -0.0 -0.0 -> -0.0 +ddmng045 minmag -0.0 0.0 -> -0.0 + +ddmng046 minmag 0E1 -0E1 -> -0E+1 +ddmng047 minmag -0E1 0E2 -> -0E+1 +ddmng048 minmag 0E2 0E1 -> 0E+1 +ddmng049 minmag 0E1 0E2 -> 0E+1 +ddmng050 minmag -0E3 -0E2 -> -0E+3 +ddmng051 minmag -0E2 -0E3 -> -0E+3 + +-- Specials +ddmng090 minmag Inf -Inf -> -Infinity +ddmng091 minmag Inf -1000 -> -1000 +ddmng092 minmag Inf -1 -> -1 +ddmng093 minmag Inf -0 -> -0 +ddmng094 minmag Inf 0 -> 0 +ddmng095 minmag Inf 1 -> 1 +ddmng096 minmag Inf 1000 -> 1000 +ddmng097 minmag Inf Inf -> Infinity +ddmng098 minmag -1000 Inf -> -1000 +ddmng099 minmag -Inf Inf -> -Infinity +ddmng100 minmag -1 Inf -> -1 +ddmng101 minmag -0 Inf -> -0 +ddmng102 minmag 0 Inf -> 0 +ddmng103 minmag 1 Inf -> 1 +ddmng104 minmag 1000 Inf -> 1000 +ddmng105 minmag Inf Inf -> Infinity + +ddmng120 minmag -Inf -Inf -> -Infinity +ddmng121 minmag -Inf -1000 -> -1000 +ddmng122 minmag -Inf -1 -> -1 +ddmng123 minmag -Inf -0 -> -0 +ddmng124 minmag -Inf 0 -> 0 +ddmng125 minmag -Inf 1 -> 1 +ddmng126 minmag -Inf 1000 -> 1000 +ddmng127 minmag -Inf Inf -> -Infinity +ddmng128 minmag -Inf -Inf -> -Infinity +ddmng129 minmag -1000 -Inf -> -1000 +ddmng130 minmag -1 -Inf -> -1 +ddmng131 minmag -0 -Inf -> -0 +ddmng132 minmag 0 -Inf -> 0 +ddmng133 minmag 1 -Inf -> 1 +ddmng134 minmag 1000 -Inf -> 1000 +ddmng135 minmag Inf -Inf -> -Infinity + +-- 2004.08.02 754r chooses number over NaN in mixed cases +ddmng141 minmag NaN -Inf -> -Infinity +ddmng142 minmag NaN -1000 -> -1000 +ddmng143 minmag NaN -1 -> -1 +ddmng144 minmag NaN -0 -> -0 +ddmng145 minmag NaN 0 -> 0 +ddmng146 minmag NaN 1 -> 1 +ddmng147 minmag NaN 1000 -> 1000 +ddmng148 minmag NaN Inf -> Infinity +ddmng149 minmag NaN NaN -> NaN +ddmng150 minmag -Inf NaN -> -Infinity +ddmng151 minmag -1000 NaN -> -1000 +ddmng152 minmag -1 -NaN -> -1 +ddmng153 minmag -0 NaN -> -0 +ddmng154 minmag 0 -NaN -> 0 +ddmng155 minmag 1 NaN -> 1 +ddmng156 minmag 1000 NaN -> 1000 +ddmng157 minmag Inf NaN -> Infinity + +ddmng161 minmag sNaN -Inf -> NaN Invalid_operation +ddmng162 minmag sNaN -1000 -> NaN Invalid_operation +ddmng163 minmag sNaN -1 -> NaN Invalid_operation +ddmng164 minmag sNaN -0 -> NaN Invalid_operation +ddmng165 minmag -sNaN 0 -> -NaN Invalid_operation +ddmng166 minmag -sNaN 1 -> -NaN Invalid_operation +ddmng167 minmag sNaN 1000 -> NaN Invalid_operation +ddmng168 minmag sNaN NaN -> NaN Invalid_operation +ddmng169 minmag sNaN sNaN -> NaN Invalid_operation +ddmng170 minmag NaN sNaN -> NaN Invalid_operation +ddmng171 minmag -Inf sNaN -> NaN Invalid_operation +ddmng172 minmag -1000 sNaN -> NaN Invalid_operation +ddmng173 minmag -1 sNaN -> NaN Invalid_operation +ddmng174 minmag -0 sNaN -> NaN Invalid_operation +ddmng175 minmag 0 sNaN -> NaN Invalid_operation +ddmng176 minmag 1 sNaN -> NaN Invalid_operation +ddmng177 minmag 1000 sNaN -> NaN Invalid_operation +ddmng178 minmag Inf sNaN -> NaN Invalid_operation +ddmng179 minmag NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +ddmng181 minmag NaN9 -Inf -> -Infinity +ddmng182 minmag -NaN8 9990 -> 9990 +ddmng183 minmag NaN71 Inf -> Infinity + +ddmng184 minmag NaN1 NaN54 -> NaN1 +ddmng185 minmag NaN22 -NaN53 -> NaN22 +ddmng186 minmag -NaN3 NaN6 -> -NaN3 +ddmng187 minmag -NaN44 NaN7 -> -NaN44 + +ddmng188 minmag -Inf NaN41 -> -Infinity +ddmng189 minmag -9999 -NaN33 -> -9999 +ddmng190 minmag Inf NaN2 -> Infinity + +ddmng191 minmag sNaN99 -Inf -> NaN99 Invalid_operation +ddmng192 minmag sNaN98 -11 -> NaN98 Invalid_operation +ddmng193 minmag -sNaN97 NaN8 -> -NaN97 Invalid_operation +ddmng194 minmag sNaN69 sNaN94 -> NaN69 Invalid_operation +ddmng195 minmag NaN95 sNaN93 -> NaN93 Invalid_operation +ddmng196 minmag -Inf sNaN92 -> NaN92 Invalid_operation +ddmng197 minmag 088 sNaN91 -> NaN91 Invalid_operation +ddmng198 minmag Inf -sNaN90 -> -NaN90 Invalid_operation +ddmng199 minmag NaN sNaN86 -> NaN86 Invalid_operation + +-- old rounding checks +ddmng221 minmag -12345678000 1 -> 1 +ddmng222 minmag 1 -12345678000 -> 1 +ddmng223 minmag -1234567800 1 -> 1 +ddmng224 minmag 1 -1234567800 -> 1 +ddmng225 minmag -1234567890 1 -> 1 +ddmng226 minmag 1 -1234567890 -> 1 +ddmng227 minmag -1234567891 1 -> 1 +ddmng228 minmag 1 -1234567891 -> 1 +ddmng229 minmag -12345678901 1 -> 1 +ddmng230 minmag 1 -12345678901 -> 1 +ddmng231 minmag -1234567896 1 -> 1 +ddmng232 minmag 1 -1234567896 -> 1 +ddmng233 minmag 1234567891 1 -> 1 +ddmng234 minmag 1 1234567891 -> 1 +ddmng235 minmag 12345678901 1 -> 1 +ddmng236 minmag 1 12345678901 -> 1 +ddmng237 minmag 1234567896 1 -> 1 +ddmng238 minmag 1 1234567896 -> 1 + +-- from examples +ddmng280 minmag '3' '2' -> '2' +ddmng281 minmag '-10' '3' -> '3' +ddmng282 minmag '1.0' '1' -> '1.0' +ddmng283 minmag '1' '1.0' -> '1.0' +ddmng284 minmag '7' 'NaN' -> '7' + +-- expanded list from min/max 754r purple prose +-- [explicit tests for exponent ordering] +ddmng401 minmag Inf 1.1 -> 1.1 +ddmng402 minmag 1.1 1 -> 1 +ddmng403 minmag 1 1.0 -> 1.0 +ddmng404 minmag 1.0 0.1 -> 0.1 +ddmng405 minmag 0.1 0.10 -> 0.10 +ddmng406 minmag 0.10 0.100 -> 0.100 +ddmng407 minmag 0.10 0 -> 0 +ddmng408 minmag 0 0.0 -> 0.0 +ddmng409 minmag 0.0 -0 -> -0 +ddmng410 minmag 0.0 -0.0 -> -0.0 +ddmng411 minmag 0.00 -0.0 -> -0.0 +ddmng412 minmag 0.0 -0.00 -> -0.00 +ddmng413 minmag 0 -0.0 -> -0.0 +ddmng414 minmag 0 -0 -> -0 +ddmng415 minmag -0.0 -0 -> -0 +ddmng416 minmag -0 -0.100 -> -0 +ddmng417 minmag -0.100 -0.10 -> -0.10 +ddmng418 minmag -0.10 -0.1 -> -0.1 +ddmng419 minmag -0.1 -1.0 -> -0.1 +ddmng420 minmag -1.0 -1 -> -1 +ddmng421 minmag -1 -1.1 -> -1 +ddmng423 minmag -1.1 -Inf -> -1.1 +-- same with operands reversed +ddmng431 minmag 1.1 Inf -> 1.1 +ddmng432 minmag 1 1.1 -> 1 +ddmng433 minmag 1.0 1 -> 1.0 +ddmng434 minmag 0.1 1.0 -> 0.1 +ddmng435 minmag 0.10 0.1 -> 0.10 +ddmng436 minmag 0.100 0.10 -> 0.100 +ddmng437 minmag 0 0.10 -> 0 +ddmng438 minmag 0.0 0 -> 0.0 +ddmng439 minmag -0 0.0 -> -0 +ddmng440 minmag -0.0 0.0 -> -0.0 +ddmng441 minmag -0.0 0.00 -> -0.0 +ddmng442 minmag -0.00 0.0 -> -0.00 +ddmng443 minmag -0.0 0 -> -0.0 +ddmng444 minmag -0 0 -> -0 +ddmng445 minmag -0 -0.0 -> -0 +ddmng446 minmag -0.100 -0 -> -0 +ddmng447 minmag -0.10 -0.100 -> -0.10 +ddmng448 minmag -0.1 -0.10 -> -0.1 +ddmng449 minmag -1.0 -0.1 -> -0.1 +ddmng450 minmag -1 -1.0 -> -1 +ddmng451 minmag -1.1 -1 -> -1 +ddmng453 minmag -Inf -1.1 -> -1.1 +-- largies +ddmng460 minmag 1000 1E+3 -> 1000 +ddmng461 minmag 1E+3 1000 -> 1000 +ddmng462 minmag 1000 -1E+3 -> -1E+3 +ddmng463 minmag 1E+3 -384 -> -384 +ddmng464 minmag -384 1E+3 -> -384 +ddmng465 minmag -1E+3 1000 -> -1E+3 +ddmng466 minmag -384 -1E+3 -> -384 +ddmng467 minmag -1E+3 -384 -> -384 + +-- subnormals +ddmng510 minmag 1.00E-383 0 -> 0 +ddmng511 minmag 0.1E-383 0 -> 0 +ddmng512 minmag 0.10E-383 0 -> 0 +ddmng513 minmag 0.100E-383 0 -> 0 +ddmng514 minmag 0.01E-383 0 -> 0 +ddmng515 minmag 0.999E-383 0 -> 0 +ddmng516 minmag 0.099E-383 0 -> 0 +ddmng517 minmag 0.009E-383 0 -> 0 +ddmng518 minmag 0.001E-383 0 -> 0 +ddmng519 minmag 0.0009E-383 0 -> 0 +ddmng520 minmag 0.0001E-383 0 -> 0 + +ddmng530 minmag -1.00E-383 0 -> 0 +ddmng531 minmag -0.1E-383 0 -> 0 +ddmng532 minmag -0.10E-383 0 -> 0 +ddmng533 minmag -0.100E-383 0 -> 0 +ddmng534 minmag -0.01E-383 0 -> 0 +ddmng535 minmag -0.999E-383 0 -> 0 +ddmng536 minmag -0.099E-383 0 -> 0 +ddmng537 minmag -0.009E-383 0 -> 0 +ddmng538 minmag -0.001E-383 0 -> 0 +ddmng539 minmag -0.0009E-383 0 -> 0 +ddmng540 minmag -0.0001E-383 0 -> 0 + + +-- Null tests +ddmng900 minmag 10 # -> NaN Invalid_operation +ddmng901 minmag # 10 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/ddMinus.decTest b/Lib/test/decimaltestdata/ddMinus.decTest index 2705e79ea2..b7ffff7d89 100644 --- a/Lib/test/decimaltestdata/ddMinus.decTest +++ b/Lib/test/decimaltestdata/ddMinus.decTest @@ -1,88 +1,88 @@ -------------------------------------------------------------------------
--- ddMinus.decTest -- decDouble 0-x --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- All operands and results are decDoubles.
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
--- Sanity check
-ddmns001 minus +7.50 -> -7.50
-
--- Infinities
-ddmns011 minus Infinity -> -Infinity
-ddmns012 minus -Infinity -> Infinity
-
--- NaNs, 0 payload
-ddmns021 minus NaN -> NaN
-ddmns022 minus -NaN -> -NaN
-ddmns023 minus sNaN -> NaN Invalid_operation
-ddmns024 minus -sNaN -> -NaN Invalid_operation
-
--- NaNs, non-0 payload
-ddmns031 minus NaN13 -> NaN13
-ddmns032 minus -NaN13 -> -NaN13
-ddmns033 minus sNaN13 -> NaN13 Invalid_operation
-ddmns034 minus -sNaN13 -> -NaN13 Invalid_operation
-ddmns035 minus NaN70 -> NaN70
-ddmns036 minus -NaN70 -> -NaN70
-ddmns037 minus sNaN101 -> NaN101 Invalid_operation
-ddmns038 minus -sNaN101 -> -NaN101 Invalid_operation
-
--- finites
-ddmns101 minus 7 -> -7
-ddmns102 minus -7 -> 7
-ddmns103 minus 75 -> -75
-ddmns104 minus -75 -> 75
-ddmns105 minus 7.50 -> -7.50
-ddmns106 minus -7.50 -> 7.50
-ddmns107 minus 7.500 -> -7.500
-ddmns108 minus -7.500 -> 7.500
-
--- zeros
-ddmns111 minus 0 -> 0
-ddmns112 minus -0 -> 0
-ddmns113 minus 0E+4 -> 0E+4
-ddmns114 minus -0E+4 -> 0E+4
-ddmns115 minus 0.0000 -> 0.0000
-ddmns116 minus -0.0000 -> 0.0000
-ddmns117 minus 0E-141 -> 0E-141
-ddmns118 minus -0E-141 -> 0E-141
-
--- full coefficients, alternating bits
-ddmns121 minus 2682682682682682 -> -2682682682682682
-ddmns122 minus -2682682682682682 -> 2682682682682682
-ddmns123 minus 1341341341341341 -> -1341341341341341
-ddmns124 minus -1341341341341341 -> 1341341341341341
-
--- Nmax, Nmin, Ntiny
-ddmns131 minus 9.999999999999999E+384 -> -9.999999999999999E+384
-ddmns132 minus 1E-383 -> -1E-383
-ddmns133 minus 1.000000000000000E-383 -> -1.000000000000000E-383
-ddmns134 minus 1E-398 -> -1E-398 Subnormal
-
-ddmns135 minus -1E-398 -> 1E-398 Subnormal
-ddmns136 minus -1.000000000000000E-383 -> 1.000000000000000E-383
-ddmns137 minus -1E-383 -> 1E-383
-ddmns138 minus -9.999999999999999E+384 -> 9.999999999999999E+384
+------------------------------------------------------------------------ +-- ddMinus.decTest -- decDouble 0-x -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- All operands and results are decDoubles. +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +-- Sanity check +ddmns001 minus +7.50 -> -7.50 + +-- Infinities +ddmns011 minus Infinity -> -Infinity +ddmns012 minus -Infinity -> Infinity + +-- NaNs, 0 payload +ddmns021 minus NaN -> NaN +ddmns022 minus -NaN -> -NaN +ddmns023 minus sNaN -> NaN Invalid_operation +ddmns024 minus -sNaN -> -NaN Invalid_operation + +-- NaNs, non-0 payload +ddmns031 minus NaN13 -> NaN13 +ddmns032 minus -NaN13 -> -NaN13 +ddmns033 minus sNaN13 -> NaN13 Invalid_operation +ddmns034 minus -sNaN13 -> -NaN13 Invalid_operation +ddmns035 minus NaN70 -> NaN70 +ddmns036 minus -NaN70 -> -NaN70 +ddmns037 minus sNaN101 -> NaN101 Invalid_operation +ddmns038 minus -sNaN101 -> -NaN101 Invalid_operation + +-- finites +ddmns101 minus 7 -> -7 +ddmns102 minus -7 -> 7 +ddmns103 minus 75 -> -75 +ddmns104 minus -75 -> 75 +ddmns105 minus 7.50 -> -7.50 +ddmns106 minus -7.50 -> 7.50 +ddmns107 minus 7.500 -> -7.500 +ddmns108 minus -7.500 -> 7.500 + +-- zeros +ddmns111 minus 0 -> 0 +ddmns112 minus -0 -> 0 +ddmns113 minus 0E+4 -> 0E+4 +ddmns114 minus -0E+4 -> 0E+4 +ddmns115 minus 0.0000 -> 0.0000 +ddmns116 minus -0.0000 -> 0.0000 +ddmns117 minus 0E-141 -> 0E-141 +ddmns118 minus -0E-141 -> 0E-141 + +-- full coefficients, alternating bits +ddmns121 minus 2682682682682682 -> -2682682682682682 +ddmns122 minus -2682682682682682 -> 2682682682682682 +ddmns123 minus 1341341341341341 -> -1341341341341341 +ddmns124 minus -1341341341341341 -> 1341341341341341 + +-- Nmax, Nmin, Ntiny +ddmns131 minus 9.999999999999999E+384 -> -9.999999999999999E+384 +ddmns132 minus 1E-383 -> -1E-383 +ddmns133 minus 1.000000000000000E-383 -> -1.000000000000000E-383 +ddmns134 minus 1E-398 -> -1E-398 Subnormal + +ddmns135 minus -1E-398 -> 1E-398 Subnormal +ddmns136 minus -1.000000000000000E-383 -> 1.000000000000000E-383 +ddmns137 minus -1E-383 -> 1E-383 +ddmns138 minus -9.999999999999999E+384 -> 9.999999999999999E+384 diff --git a/Lib/test/decimaltestdata/ddMultiply.decTest b/Lib/test/decimaltestdata/ddMultiply.decTest index 45a381dc61..5873f80345 100644 --- a/Lib/test/decimaltestdata/ddMultiply.decTest +++ b/Lib/test/decimaltestdata/ddMultiply.decTest @@ -1,553 +1,553 @@ -------------------------------------------------------------------------
--- ddMultiply.decTest -- decDouble multiplication --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- This set of tests are for decDoubles only; all arguments are
--- representable in a decDouble
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
--- sanity checks
-ddmul000 multiply 2 2 -> 4
-ddmul001 multiply 2 3 -> 6
-ddmul002 multiply 5 1 -> 5
-ddmul003 multiply 5 2 -> 10
-ddmul004 multiply 1.20 2 -> 2.40
-ddmul005 multiply 1.20 0 -> 0.00
-ddmul006 multiply 1.20 -2 -> -2.40
-ddmul007 multiply -1.20 2 -> -2.40
-ddmul008 multiply -1.20 0 -> -0.00
-ddmul009 multiply -1.20 -2 -> 2.40
-ddmul010 multiply 5.09 7.1 -> 36.139
-ddmul011 multiply 2.5 4 -> 10.0
-ddmul012 multiply 2.50 4 -> 10.00
-ddmul013 multiply 1.23456789 1.00000000 -> 1.234567890000000 Rounded
-ddmul015 multiply 2.50 4 -> 10.00
-ddmul016 multiply 9.999999999 9.999999999 -> 99.99999998000000 Inexact Rounded
-ddmul017 multiply 9.999999999 -9.999999999 -> -99.99999998000000 Inexact Rounded
-ddmul018 multiply -9.999999999 9.999999999 -> -99.99999998000000 Inexact Rounded
-ddmul019 multiply -9.999999999 -9.999999999 -> 99.99999998000000 Inexact Rounded
-
--- zeros, etc.
-ddmul021 multiply 0 0 -> 0
-ddmul022 multiply 0 -0 -> -0
-ddmul023 multiply -0 0 -> -0
-ddmul024 multiply -0 -0 -> 0
-ddmul025 multiply -0.0 -0.0 -> 0.00
-ddmul026 multiply -0.0 -0.0 -> 0.00
-ddmul027 multiply -0.0 -0.0 -> 0.00
-ddmul028 multiply -0.0 -0.0 -> 0.00
-ddmul030 multiply 5.00 1E-3 -> 0.00500
-ddmul031 multiply 00.00 0.000 -> 0.00000
-ddmul032 multiply 00.00 0E-3 -> 0.00000 -- rhs is 0
-ddmul033 multiply 0E-3 00.00 -> 0.00000 -- lhs is 0
-ddmul034 multiply -5.00 1E-3 -> -0.00500
-ddmul035 multiply -00.00 0.000 -> -0.00000
-ddmul036 multiply -00.00 0E-3 -> -0.00000 -- rhs is 0
-ddmul037 multiply -0E-3 00.00 -> -0.00000 -- lhs is 0
-ddmul038 multiply 5.00 -1E-3 -> -0.00500
-ddmul039 multiply 00.00 -0.000 -> -0.00000
-ddmul040 multiply 00.00 -0E-3 -> -0.00000 -- rhs is 0
-ddmul041 multiply 0E-3 -00.00 -> -0.00000 -- lhs is 0
-ddmul042 multiply -5.00 -1E-3 -> 0.00500
-ddmul043 multiply -00.00 -0.000 -> 0.00000
-ddmul044 multiply -00.00 -0E-3 -> 0.00000 -- rhs is 0
-ddmul045 multiply -0E-3 -00.00 -> 0.00000 -- lhs is 0
-
--- examples from decarith
-ddmul050 multiply 1.20 3 -> 3.60
-ddmul051 multiply 7 3 -> 21
-ddmul052 multiply 0.9 0.8 -> 0.72
-ddmul053 multiply 0.9 -0 -> -0.0
-ddmul054 multiply 654321 654321 -> 428135971041
-
-ddmul060 multiply 123.45 1e7 -> 1.2345E+9
-ddmul061 multiply 123.45 1e8 -> 1.2345E+10
-ddmul062 multiply 123.45 1e+9 -> 1.2345E+11
-ddmul063 multiply 123.45 1e10 -> 1.2345E+12
-ddmul064 multiply 123.45 1e11 -> 1.2345E+13
-ddmul065 multiply 123.45 1e12 -> 1.2345E+14
-ddmul066 multiply 123.45 1e13 -> 1.2345E+15
-
-
--- test some intermediate lengths
--- 1234567890123456
-ddmul080 multiply 0.1 1230123456456789 -> 123012345645678.9
-ddmul084 multiply 0.1 1230123456456789 -> 123012345645678.9
-ddmul090 multiply 1230123456456789 0.1 -> 123012345645678.9
-ddmul094 multiply 1230123456456789 0.1 -> 123012345645678.9
-
--- test some more edge cases and carries
-ddmul101 multiply 9 9 -> 81
-ddmul102 multiply 9 90 -> 810
-ddmul103 multiply 9 900 -> 8100
-ddmul104 multiply 9 9000 -> 81000
-ddmul105 multiply 9 90000 -> 810000
-ddmul106 multiply 9 900000 -> 8100000
-ddmul107 multiply 9 9000000 -> 81000000
-ddmul108 multiply 9 90000000 -> 810000000
-ddmul109 multiply 9 900000000 -> 8100000000
-ddmul110 multiply 9 9000000000 -> 81000000000
-ddmul111 multiply 9 90000000000 -> 810000000000
-ddmul112 multiply 9 900000000000 -> 8100000000000
-ddmul113 multiply 9 9000000000000 -> 81000000000000
-ddmul114 multiply 9 90000000000000 -> 810000000000000
-ddmul115 multiply 9 900000000000000 -> 8100000000000000
---ddmul116 multiply 9 9000000000000000 -> 81000000000000000
---ddmul117 multiply 9 90000000000000000 -> 810000000000000000
---ddmul118 multiply 9 900000000000000000 -> 8100000000000000000
---ddmul119 multiply 9 9000000000000000000 -> 81000000000000000000
---ddmul120 multiply 9 90000000000000000000 -> 810000000000000000000
---ddmul121 multiply 9 900000000000000000000 -> 8100000000000000000000
---ddmul122 multiply 9 9000000000000000000000 -> 81000000000000000000000
---ddmul123 multiply 9 90000000000000000000000 -> 810000000000000000000000
--- test some more edge cases without carries
-ddmul131 multiply 3 3 -> 9
-ddmul132 multiply 3 30 -> 90
-ddmul133 multiply 3 300 -> 900
-ddmul134 multiply 3 3000 -> 9000
-ddmul135 multiply 3 30000 -> 90000
-ddmul136 multiply 3 300000 -> 900000
-ddmul137 multiply 3 3000000 -> 9000000
-ddmul138 multiply 3 30000000 -> 90000000
-ddmul139 multiply 3 300000000 -> 900000000
-ddmul140 multiply 3 3000000000 -> 9000000000
-ddmul141 multiply 3 30000000000 -> 90000000000
-ddmul142 multiply 3 300000000000 -> 900000000000
-ddmul143 multiply 3 3000000000000 -> 9000000000000
-ddmul144 multiply 3 30000000000000 -> 90000000000000
-ddmul145 multiply 3 300000000000000 -> 900000000000000
-
--- test some edge cases with exact rounding
-ddmul301 multiply 9 9 -> 81
-ddmul302 multiply 9 90 -> 810
-ddmul303 multiply 9 900 -> 8100
-ddmul304 multiply 9 9000 -> 81000
-ddmul305 multiply 9 90000 -> 810000
-ddmul306 multiply 9 900000 -> 8100000
-ddmul307 multiply 9 9000000 -> 81000000
-ddmul308 multiply 9 90000000 -> 810000000
-ddmul309 multiply 9 900000000 -> 8100000000
-ddmul310 multiply 9 9000000000 -> 81000000000
-ddmul311 multiply 9 90000000000 -> 810000000000
-ddmul312 multiply 9 900000000000 -> 8100000000000
-ddmul313 multiply 9 9000000000000 -> 81000000000000
-ddmul314 multiply 9 90000000000000 -> 810000000000000
-ddmul315 multiply 9 900000000000000 -> 8100000000000000
-ddmul316 multiply 9 9000000000000000 -> 8.100000000000000E+16 Rounded
-ddmul317 multiply 90 9000000000000000 -> 8.100000000000000E+17 Rounded
-ddmul318 multiply 900 9000000000000000 -> 8.100000000000000E+18 Rounded
-ddmul319 multiply 9000 9000000000000000 -> 8.100000000000000E+19 Rounded
-ddmul320 multiply 90000 9000000000000000 -> 8.100000000000000E+20 Rounded
-ddmul321 multiply 900000 9000000000000000 -> 8.100000000000000E+21 Rounded
-ddmul322 multiply 9000000 9000000000000000 -> 8.100000000000000E+22 Rounded
-ddmul323 multiply 90000000 9000000000000000 -> 8.100000000000000E+23 Rounded
-
--- tryzeros cases
-ddmul504 multiply 0E-260 1000E-260 -> 0E-398 Clamped
-ddmul505 multiply 100E+260 0E+260 -> 0E+369 Clamped
--- 65K-1 case
-ddmul506 multiply 77.1 850 -> 65535.0
-
--- mixed with zeros
-ddmul541 multiply 0 -1 -> -0
-ddmul542 multiply -0 -1 -> 0
-ddmul543 multiply 0 1 -> 0
-ddmul544 multiply -0 1 -> -0
-ddmul545 multiply -1 0 -> -0
-ddmul546 multiply -1 -0 -> 0
-ddmul547 multiply 1 0 -> 0
-ddmul548 multiply 1 -0 -> -0
-
-ddmul551 multiply 0.0 -1 -> -0.0
-ddmul552 multiply -0.0 -1 -> 0.0
-ddmul553 multiply 0.0 1 -> 0.0
-ddmul554 multiply -0.0 1 -> -0.0
-ddmul555 multiply -1.0 0 -> -0.0
-ddmul556 multiply -1.0 -0 -> 0.0
-ddmul557 multiply 1.0 0 -> 0.0
-ddmul558 multiply 1.0 -0 -> -0.0
-
-ddmul561 multiply 0 -1.0 -> -0.0
-ddmul562 multiply -0 -1.0 -> 0.0
-ddmul563 multiply 0 1.0 -> 0.0
-ddmul564 multiply -0 1.0 -> -0.0
-ddmul565 multiply -1 0.0 -> -0.0
-ddmul566 multiply -1 -0.0 -> 0.0
-ddmul567 multiply 1 0.0 -> 0.0
-ddmul568 multiply 1 -0.0 -> -0.0
-
-ddmul571 multiply 0.0 -1.0 -> -0.00
-ddmul572 multiply -0.0 -1.0 -> 0.00
-ddmul573 multiply 0.0 1.0 -> 0.00
-ddmul574 multiply -0.0 1.0 -> -0.00
-ddmul575 multiply -1.0 0.0 -> -0.00
-ddmul576 multiply -1.0 -0.0 -> 0.00
-ddmul577 multiply 1.0 0.0 -> 0.00
-ddmul578 multiply 1.0 -0.0 -> -0.00
-
-
--- Specials
-ddmul580 multiply Inf -Inf -> -Infinity
-ddmul581 multiply Inf -1000 -> -Infinity
-ddmul582 multiply Inf -1 -> -Infinity
-ddmul583 multiply Inf -0 -> NaN Invalid_operation
-ddmul584 multiply Inf 0 -> NaN Invalid_operation
-ddmul585 multiply Inf 1 -> Infinity
-ddmul586 multiply Inf 1000 -> Infinity
-ddmul587 multiply Inf Inf -> Infinity
-ddmul588 multiply -1000 Inf -> -Infinity
-ddmul589 multiply -Inf Inf -> -Infinity
-ddmul590 multiply -1 Inf -> -Infinity
-ddmul591 multiply -0 Inf -> NaN Invalid_operation
-ddmul592 multiply 0 Inf -> NaN Invalid_operation
-ddmul593 multiply 1 Inf -> Infinity
-ddmul594 multiply 1000 Inf -> Infinity
-ddmul595 multiply Inf Inf -> Infinity
-
-ddmul600 multiply -Inf -Inf -> Infinity
-ddmul601 multiply -Inf -1000 -> Infinity
-ddmul602 multiply -Inf -1 -> Infinity
-ddmul603 multiply -Inf -0 -> NaN Invalid_operation
-ddmul604 multiply -Inf 0 -> NaN Invalid_operation
-ddmul605 multiply -Inf 1 -> -Infinity
-ddmul606 multiply -Inf 1000 -> -Infinity
-ddmul607 multiply -Inf Inf -> -Infinity
-ddmul608 multiply -1000 Inf -> -Infinity
-ddmul609 multiply -Inf -Inf -> Infinity
-ddmul610 multiply -1 -Inf -> Infinity
-ddmul611 multiply -0 -Inf -> NaN Invalid_operation
-ddmul612 multiply 0 -Inf -> NaN Invalid_operation
-ddmul613 multiply 1 -Inf -> -Infinity
-ddmul614 multiply 1000 -Inf -> -Infinity
-ddmul615 multiply Inf -Inf -> -Infinity
-
-ddmul621 multiply NaN -Inf -> NaN
-ddmul622 multiply NaN -1000 -> NaN
-ddmul623 multiply NaN -1 -> NaN
-ddmul624 multiply NaN -0 -> NaN
-ddmul625 multiply NaN 0 -> NaN
-ddmul626 multiply NaN 1 -> NaN
-ddmul627 multiply NaN 1000 -> NaN
-ddmul628 multiply NaN Inf -> NaN
-ddmul629 multiply NaN NaN -> NaN
-ddmul630 multiply -Inf NaN -> NaN
-ddmul631 multiply -1000 NaN -> NaN
-ddmul632 multiply -1 NaN -> NaN
-ddmul633 multiply -0 NaN -> NaN
-ddmul634 multiply 0 NaN -> NaN
-ddmul635 multiply 1 NaN -> NaN
-ddmul636 multiply 1000 NaN -> NaN
-ddmul637 multiply Inf NaN -> NaN
-
-ddmul641 multiply sNaN -Inf -> NaN Invalid_operation
-ddmul642 multiply sNaN -1000 -> NaN Invalid_operation
-ddmul643 multiply sNaN -1 -> NaN Invalid_operation
-ddmul644 multiply sNaN -0 -> NaN Invalid_operation
-ddmul645 multiply sNaN 0 -> NaN Invalid_operation
-ddmul646 multiply sNaN 1 -> NaN Invalid_operation
-ddmul647 multiply sNaN 1000 -> NaN Invalid_operation
-ddmul648 multiply sNaN NaN -> NaN Invalid_operation
-ddmul649 multiply sNaN sNaN -> NaN Invalid_operation
-ddmul650 multiply NaN sNaN -> NaN Invalid_operation
-ddmul651 multiply -Inf sNaN -> NaN Invalid_operation
-ddmul652 multiply -1000 sNaN -> NaN Invalid_operation
-ddmul653 multiply -1 sNaN -> NaN Invalid_operation
-ddmul654 multiply -0 sNaN -> NaN Invalid_operation
-ddmul655 multiply 0 sNaN -> NaN Invalid_operation
-ddmul656 multiply 1 sNaN -> NaN Invalid_operation
-ddmul657 multiply 1000 sNaN -> NaN Invalid_operation
-ddmul658 multiply Inf sNaN -> NaN Invalid_operation
-ddmul659 multiply NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-ddmul661 multiply NaN9 -Inf -> NaN9
-ddmul662 multiply NaN8 999 -> NaN8
-ddmul663 multiply NaN71 Inf -> NaN71
-ddmul664 multiply NaN6 NaN5 -> NaN6
-ddmul665 multiply -Inf NaN4 -> NaN4
-ddmul666 multiply -999 NaN33 -> NaN33
-ddmul667 multiply Inf NaN2 -> NaN2
-
-ddmul671 multiply sNaN99 -Inf -> NaN99 Invalid_operation
-ddmul672 multiply sNaN98 -11 -> NaN98 Invalid_operation
-ddmul673 multiply sNaN97 NaN -> NaN97 Invalid_operation
-ddmul674 multiply sNaN16 sNaN94 -> NaN16 Invalid_operation
-ddmul675 multiply NaN95 sNaN93 -> NaN93 Invalid_operation
-ddmul676 multiply -Inf sNaN92 -> NaN92 Invalid_operation
-ddmul677 multiply 088 sNaN91 -> NaN91 Invalid_operation
-ddmul678 multiply Inf sNaN90 -> NaN90 Invalid_operation
-ddmul679 multiply NaN sNaN89 -> NaN89 Invalid_operation
-
-ddmul681 multiply -NaN9 -Inf -> -NaN9
-ddmul682 multiply -NaN8 999 -> -NaN8
-ddmul683 multiply -NaN71 Inf -> -NaN71
-ddmul684 multiply -NaN6 -NaN5 -> -NaN6
-ddmul685 multiply -Inf -NaN4 -> -NaN4
-ddmul686 multiply -999 -NaN33 -> -NaN33
-ddmul687 multiply Inf -NaN2 -> -NaN2
-
-ddmul691 multiply -sNaN99 -Inf -> -NaN99 Invalid_operation
-ddmul692 multiply -sNaN98 -11 -> -NaN98 Invalid_operation
-ddmul693 multiply -sNaN97 NaN -> -NaN97 Invalid_operation
-ddmul694 multiply -sNaN16 -sNaN94 -> -NaN16 Invalid_operation
-ddmul695 multiply -NaN95 -sNaN93 -> -NaN93 Invalid_operation
-ddmul696 multiply -Inf -sNaN92 -> -NaN92 Invalid_operation
-ddmul697 multiply 088 -sNaN91 -> -NaN91 Invalid_operation
-ddmul698 multiply Inf -sNaN90 -> -NaN90 Invalid_operation
-ddmul699 multiply -NaN -sNaN89 -> -NaN89 Invalid_operation
-
-ddmul701 multiply -NaN -Inf -> -NaN
-ddmul702 multiply -NaN 999 -> -NaN
-ddmul703 multiply -NaN Inf -> -NaN
-ddmul704 multiply -NaN -NaN -> -NaN
-ddmul705 multiply -Inf -NaN0 -> -NaN
-ddmul706 multiply -999 -NaN -> -NaN
-ddmul707 multiply Inf -NaN -> -NaN
-
-ddmul711 multiply -sNaN -Inf -> -NaN Invalid_operation
-ddmul712 multiply -sNaN -11 -> -NaN Invalid_operation
-ddmul713 multiply -sNaN00 NaN -> -NaN Invalid_operation
-ddmul714 multiply -sNaN -sNaN -> -NaN Invalid_operation
-ddmul715 multiply -NaN -sNaN -> -NaN Invalid_operation
-ddmul716 multiply -Inf -sNaN -> -NaN Invalid_operation
-ddmul717 multiply 088 -sNaN -> -NaN Invalid_operation
-ddmul718 multiply Inf -sNaN -> -NaN Invalid_operation
-ddmul719 multiply -NaN -sNaN -> -NaN Invalid_operation
-
--- overflow and underflow tests .. note subnormal results
--- signs
-ddmul751 multiply 1e+277 1e+311 -> Infinity Overflow Inexact Rounded
-ddmul752 multiply 1e+277 -1e+311 -> -Infinity Overflow Inexact Rounded
-ddmul753 multiply -1e+277 1e+311 -> -Infinity Overflow Inexact Rounded
-ddmul754 multiply -1e+277 -1e+311 -> Infinity Overflow Inexact Rounded
-ddmul755 multiply 1e-277 1e-311 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddmul756 multiply 1e-277 -1e-311 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddmul757 multiply -1e-277 1e-311 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddmul758 multiply -1e-277 -1e-311 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-
--- 'subnormal' boundary (all hard underflow or overflow in base arithemtic)
-ddmul760 multiply 1e-291 1e-101 -> 1E-392 Subnormal
-ddmul761 multiply 1e-291 1e-102 -> 1E-393 Subnormal
-ddmul762 multiply 1e-291 1e-103 -> 1E-394 Subnormal
-ddmul763 multiply 1e-291 1e-104 -> 1E-395 Subnormal
-ddmul764 multiply 1e-291 1e-105 -> 1E-396 Subnormal
-ddmul765 multiply 1e-291 1e-106 -> 1E-397 Subnormal
-ddmul766 multiply 1e-291 1e-107 -> 1E-398 Subnormal
-ddmul767 multiply 1e-291 1e-108 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddmul768 multiply 1e-291 1e-109 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddmul769 multiply 1e-291 1e-110 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
--- [no equivalent of 'subnormal' for overflow]
-ddmul770 multiply 1e+60 1e+321 -> 1.000000000000E+381 Clamped
-ddmul771 multiply 1e+60 1e+322 -> 1.0000000000000E+382 Clamped
-ddmul772 multiply 1e+60 1e+323 -> 1.00000000000000E+383 Clamped
-ddmul773 multiply 1e+60 1e+324 -> 1.000000000000000E+384 Clamped
-ddmul774 multiply 1e+60 1e+325 -> Infinity Overflow Inexact Rounded
-ddmul775 multiply 1e+60 1e+326 -> Infinity Overflow Inexact Rounded
-ddmul776 multiply 1e+60 1e+327 -> Infinity Overflow Inexact Rounded
-ddmul777 multiply 1e+60 1e+328 -> Infinity Overflow Inexact Rounded
-ddmul778 multiply 1e+60 1e+329 -> Infinity Overflow Inexact Rounded
-ddmul779 multiply 1e+60 1e+330 -> Infinity Overflow Inexact Rounded
-
-ddmul801 multiply 1.0000E-394 1 -> 1.0000E-394 Subnormal
-ddmul802 multiply 1.000E-394 1e-1 -> 1.000E-395 Subnormal
-ddmul803 multiply 1.00E-394 1e-2 -> 1.00E-396 Subnormal
-ddmul804 multiply 1.0E-394 1e-3 -> 1.0E-397 Subnormal
-ddmul805 multiply 1.0E-394 1e-4 -> 1E-398 Subnormal Rounded
-ddmul806 multiply 1.3E-394 1e-4 -> 1E-398 Underflow Subnormal Inexact Rounded
-ddmul807 multiply 1.5E-394 1e-4 -> 2E-398 Underflow Subnormal Inexact Rounded
-ddmul808 multiply 1.7E-394 1e-4 -> 2E-398 Underflow Subnormal Inexact Rounded
-ddmul809 multiply 2.3E-394 1e-4 -> 2E-398 Underflow Subnormal Inexact Rounded
-ddmul810 multiply 2.5E-394 1e-4 -> 2E-398 Underflow Subnormal Inexact Rounded
-ddmul811 multiply 2.7E-394 1e-4 -> 3E-398 Underflow Subnormal Inexact Rounded
-ddmul812 multiply 1.49E-394 1e-4 -> 1E-398 Underflow Subnormal Inexact Rounded
-ddmul813 multiply 1.50E-394 1e-4 -> 2E-398 Underflow Subnormal Inexact Rounded
-ddmul814 multiply 1.51E-394 1e-4 -> 2E-398 Underflow Subnormal Inexact Rounded
-ddmul815 multiply 2.49E-394 1e-4 -> 2E-398 Underflow Subnormal Inexact Rounded
-ddmul816 multiply 2.50E-394 1e-4 -> 2E-398 Underflow Subnormal Inexact Rounded
-ddmul817 multiply 2.51E-394 1e-4 -> 3E-398 Underflow Subnormal Inexact Rounded
-
-ddmul818 multiply 1E-394 1e-4 -> 1E-398 Subnormal
-ddmul819 multiply 3E-394 1e-5 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddmul820 multiply 5E-394 1e-5 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddmul821 multiply 7E-394 1e-5 -> 1E-398 Underflow Subnormal Inexact Rounded
-ddmul822 multiply 9E-394 1e-5 -> 1E-398 Underflow Subnormal Inexact Rounded
-ddmul823 multiply 9.9E-394 1e-5 -> 1E-398 Underflow Subnormal Inexact Rounded
-
-ddmul824 multiply 1E-394 -1e-4 -> -1E-398 Subnormal
-ddmul825 multiply 3E-394 -1e-5 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddmul826 multiply -5E-394 1e-5 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddmul827 multiply 7E-394 -1e-5 -> -1E-398 Underflow Subnormal Inexact Rounded
-ddmul828 multiply -9E-394 1e-5 -> -1E-398 Underflow Subnormal Inexact Rounded
-ddmul829 multiply 9.9E-394 -1e-5 -> -1E-398 Underflow Subnormal Inexact Rounded
-ddmul830 multiply 3.0E-394 -1e-5 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped
-
-ddmul831 multiply 1.0E-199 1e-200 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddmul832 multiply 1.0E-199 1e-199 -> 1E-398 Subnormal Rounded
-ddmul833 multiply 1.0E-199 1e-198 -> 1.0E-397 Subnormal
-ddmul834 multiply 2.0E-199 2e-198 -> 4.0E-397 Subnormal
-ddmul835 multiply 4.0E-199 4e-198 -> 1.60E-396 Subnormal
-ddmul836 multiply 10.0E-199 10e-198 -> 1.000E-395 Subnormal
-ddmul837 multiply 30.0E-199 30e-198 -> 9.000E-395 Subnormal
-ddmul838 multiply 40.0E-199 40e-188 -> 1.6000E-384 Subnormal
-ddmul839 multiply 40.0E-199 40e-187 -> 1.6000E-383
-ddmul840 multiply 40.0E-199 40e-186 -> 1.6000E-382
-
--- Long operand overflow may be a different path
-ddmul870 multiply 100 9.999E+383 -> Infinity Inexact Overflow Rounded
-ddmul871 multiply 100 -9.999E+383 -> -Infinity Inexact Overflow Rounded
-ddmul872 multiply 9.999E+383 100 -> Infinity Inexact Overflow Rounded
-ddmul873 multiply -9.999E+383 100 -> -Infinity Inexact Overflow Rounded
-
--- check for double-rounded subnormals
-ddmul881 multiply 1.2347E-355 1.2347E-40 -> 1.524E-395 Inexact Rounded Subnormal Underflow
-ddmul882 multiply 1.234E-355 1.234E-40 -> 1.523E-395 Inexact Rounded Subnormal Underflow
-ddmul883 multiply 1.23E-355 1.23E-40 -> 1.513E-395 Inexact Rounded Subnormal Underflow
-ddmul884 multiply 1.2E-355 1.2E-40 -> 1.44E-395 Subnormal
-ddmul885 multiply 1.2E-355 1.2E-41 -> 1.44E-396 Subnormal
-ddmul886 multiply 1.2E-355 1.2E-42 -> 1.4E-397 Subnormal Inexact Rounded Underflow
-ddmul887 multiply 1.2E-355 1.3E-42 -> 1.6E-397 Subnormal Inexact Rounded Underflow
-ddmul888 multiply 1.3E-355 1.3E-42 -> 1.7E-397 Subnormal Inexact Rounded Underflow
-ddmul889 multiply 1.3E-355 1.3E-43 -> 2E-398 Subnormal Inexact Rounded Underflow
-ddmul890 multiply 1.3E-356 1.3E-43 -> 0E-398 Clamped Subnormal Inexact Rounded Underflow
-
-ddmul891 multiply 1.2345E-39 1.234E-355 -> 1.5234E-394 Inexact Rounded Subnormal Underflow
-ddmul892 multiply 1.23456E-39 1.234E-355 -> 1.5234E-394 Inexact Rounded Subnormal Underflow
-ddmul893 multiply 1.2345E-40 1.234E-355 -> 1.523E-395 Inexact Rounded Subnormal Underflow
-ddmul894 multiply 1.23456E-40 1.234E-355 -> 1.523E-395 Inexact Rounded Subnormal Underflow
-ddmul895 multiply 1.2345E-41 1.234E-355 -> 1.52E-396 Inexact Rounded Subnormal Underflow
-ddmul896 multiply 1.23456E-41 1.234E-355 -> 1.52E-396 Inexact Rounded Subnormal Underflow
-
--- Now explore the case where we get a normal result with Underflow
--- 1 234567890123456
-ddmul900 multiply 0.3000000000E-191 0.3000000000E-191 -> 9.00000000000000E-384 Subnormal Rounded
-ddmul901 multiply 0.3000000001E-191 0.3000000001E-191 -> 9.00000000600000E-384 Underflow Inexact Subnormal Rounded
-ddmul902 multiply 9.999999999999999E-383 0.0999999999999 -> 9.99999999999000E-384 Underflow Inexact Subnormal Rounded
-ddmul903 multiply 9.999999999999999E-383 0.09999999999999 -> 9.99999999999900E-384 Underflow Inexact Subnormal Rounded
-ddmul904 multiply 9.999999999999999E-383 0.099999999999999 -> 9.99999999999990E-384 Underflow Inexact Subnormal Rounded
-ddmul905 multiply 9.999999999999999E-383 0.0999999999999999 -> 9.99999999999999E-384 Underflow Inexact Subnormal Rounded
--- The next rounds to Nmin (b**emin); this is the distinguishing case
--- for detecting tininess (before or after rounding) -- if after
--- rounding then the result would be the same, but the Underflow flag
--- would not be set
-ddmul906 multiply 9.999999999999999E-383 0.09999999999999999 -> 1.000000000000000E-383 Underflow Inexact Subnormal Rounded
--- prove those operands were exact
-ddmul907 multiply 9.999999999999999E-383 1 -> 9.999999999999999E-383
-ddmul908 multiply 1 0.09999999999999999 -> 0.09999999999999999
-
--- reducing tiniest
-ddmul910 multiply 1e-398 0.99 -> 1E-398 Subnormal Inexact Rounded Underflow
-ddmul911 multiply 1e-398 0.75 -> 1E-398 Subnormal Inexact Rounded Underflow
-ddmul912 multiply 1e-398 0.5 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped
-ddmul913 multiply 1e-398 0.25 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped
-ddmul914 multiply 1e-398 0.01 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped
-
--- hugest
-ddmul920 multiply 9999999999999999 9999999999999999 -> 9.999999999999998E+31 Inexact Rounded
-
--- power-of-ten edge cases
-ddmul1001 multiply 1 10 -> 10
-ddmul1002 multiply 1 100 -> 100
-ddmul1003 multiply 1 1000 -> 1000
-ddmul1004 multiply 1 10000 -> 10000
-ddmul1005 multiply 1 100000 -> 100000
-ddmul1006 multiply 1 1000000 -> 1000000
-ddmul1007 multiply 1 10000000 -> 10000000
-ddmul1008 multiply 1 100000000 -> 100000000
-ddmul1009 multiply 1 1000000000 -> 1000000000
-ddmul1010 multiply 1 10000000000 -> 10000000000
-ddmul1011 multiply 1 100000000000 -> 100000000000
-ddmul1012 multiply 1 1000000000000 -> 1000000000000
-ddmul1013 multiply 1 10000000000000 -> 10000000000000
-ddmul1014 multiply 1 100000000000000 -> 100000000000000
-ddmul1015 multiply 1 1000000000000000 -> 1000000000000000
-ddmul1021 multiply 10 1 -> 10
-ddmul1022 multiply 10 10 -> 100
-ddmul1023 multiply 10 100 -> 1000
-ddmul1024 multiply 10 1000 -> 10000
-ddmul1025 multiply 10 10000 -> 100000
-ddmul1026 multiply 10 100000 -> 1000000
-ddmul1027 multiply 10 1000000 -> 10000000
-ddmul1028 multiply 10 10000000 -> 100000000
-ddmul1029 multiply 10 100000000 -> 1000000000
-ddmul1030 multiply 10 1000000000 -> 10000000000
-ddmul1031 multiply 10 10000000000 -> 100000000000
-ddmul1032 multiply 10 100000000000 -> 1000000000000
-ddmul1033 multiply 10 1000000000000 -> 10000000000000
-ddmul1034 multiply 10 10000000000000 -> 100000000000000
-ddmul1035 multiply 10 100000000000000 -> 1000000000000000
-ddmul1041 multiply 100 0.1 -> 10.0
-ddmul1042 multiply 100 1 -> 100
-ddmul1043 multiply 100 10 -> 1000
-ddmul1044 multiply 100 100 -> 10000
-ddmul1045 multiply 100 1000 -> 100000
-ddmul1046 multiply 100 10000 -> 1000000
-ddmul1047 multiply 100 100000 -> 10000000
-ddmul1048 multiply 100 1000000 -> 100000000
-ddmul1049 multiply 100 10000000 -> 1000000000
-ddmul1050 multiply 100 100000000 -> 10000000000
-ddmul1051 multiply 100 1000000000 -> 100000000000
-ddmul1052 multiply 100 10000000000 -> 1000000000000
-ddmul1053 multiply 100 100000000000 -> 10000000000000
-ddmul1054 multiply 100 1000000000000 -> 100000000000000
-ddmul1055 multiply 100 10000000000000 -> 1000000000000000
-ddmul1061 multiply 1000 0.01 -> 10.00
-ddmul1062 multiply 1000 0.1 -> 100.0
-ddmul1063 multiply 1000 1 -> 1000
-ddmul1064 multiply 1000 10 -> 10000
-ddmul1065 multiply 1000 100 -> 100000
-ddmul1066 multiply 1000 1000 -> 1000000
-ddmul1067 multiply 1000 10000 -> 10000000
-ddmul1068 multiply 1000 100000 -> 100000000
-ddmul1069 multiply 1000 1000000 -> 1000000000
-ddmul1070 multiply 1000 10000000 -> 10000000000
-ddmul1071 multiply 1000 100000000 -> 100000000000
-ddmul1072 multiply 1000 1000000000 -> 1000000000000
-ddmul1073 multiply 1000 10000000000 -> 10000000000000
-ddmul1074 multiply 1000 100000000000 -> 100000000000000
-ddmul1075 multiply 1000 1000000000000 -> 1000000000000000
-ddmul1081 multiply 10000 0.001 -> 10.000
-ddmul1082 multiply 10000 0.01 -> 100.00
-ddmul1083 multiply 10000 0.1 -> 1000.0
-ddmul1084 multiply 10000 1 -> 10000
-ddmul1085 multiply 10000 10 -> 100000
-ddmul1086 multiply 10000 100 -> 1000000
-ddmul1087 multiply 10000 1000 -> 10000000
-ddmul1088 multiply 10000 10000 -> 100000000
-ddmul1089 multiply 10000 100000 -> 1000000000
-ddmul1090 multiply 10000 1000000 -> 10000000000
-ddmul1091 multiply 10000 10000000 -> 100000000000
-ddmul1092 multiply 10000 100000000 -> 1000000000000
-ddmul1093 multiply 10000 1000000000 -> 10000000000000
-ddmul1094 multiply 10000 10000000000 -> 100000000000000
-ddmul1095 multiply 10000 100000000000 -> 1000000000000000
-
-ddmul1097 multiply 10000 99999999999 -> 999999999990000
-ddmul1098 multiply 10000 99999999999 -> 999999999990000
-
-
--- Null tests
-ddmul9990 multiply 10 # -> NaN Invalid_operation
-ddmul9991 multiply # 10 -> NaN Invalid_operation
-
+------------------------------------------------------------------------ +-- ddMultiply.decTest -- decDouble multiplication -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- This set of tests are for decDoubles only; all arguments are +-- representable in a decDouble +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +-- sanity checks +ddmul000 multiply 2 2 -> 4 +ddmul001 multiply 2 3 -> 6 +ddmul002 multiply 5 1 -> 5 +ddmul003 multiply 5 2 -> 10 +ddmul004 multiply 1.20 2 -> 2.40 +ddmul005 multiply 1.20 0 -> 0.00 +ddmul006 multiply 1.20 -2 -> -2.40 +ddmul007 multiply -1.20 2 -> -2.40 +ddmul008 multiply -1.20 0 -> -0.00 +ddmul009 multiply -1.20 -2 -> 2.40 +ddmul010 multiply 5.09 7.1 -> 36.139 +ddmul011 multiply 2.5 4 -> 10.0 +ddmul012 multiply 2.50 4 -> 10.00 +ddmul013 multiply 1.23456789 1.00000000 -> 1.234567890000000 Rounded +ddmul015 multiply 2.50 4 -> 10.00 +ddmul016 multiply 9.999999999 9.999999999 -> 99.99999998000000 Inexact Rounded +ddmul017 multiply 9.999999999 -9.999999999 -> -99.99999998000000 Inexact Rounded +ddmul018 multiply -9.999999999 9.999999999 -> -99.99999998000000 Inexact Rounded +ddmul019 multiply -9.999999999 -9.999999999 -> 99.99999998000000 Inexact Rounded + +-- zeros, etc. +ddmul021 multiply 0 0 -> 0 +ddmul022 multiply 0 -0 -> -0 +ddmul023 multiply -0 0 -> -0 +ddmul024 multiply -0 -0 -> 0 +ddmul025 multiply -0.0 -0.0 -> 0.00 +ddmul026 multiply -0.0 -0.0 -> 0.00 +ddmul027 multiply -0.0 -0.0 -> 0.00 +ddmul028 multiply -0.0 -0.0 -> 0.00 +ddmul030 multiply 5.00 1E-3 -> 0.00500 +ddmul031 multiply 00.00 0.000 -> 0.00000 +ddmul032 multiply 00.00 0E-3 -> 0.00000 -- rhs is 0 +ddmul033 multiply 0E-3 00.00 -> 0.00000 -- lhs is 0 +ddmul034 multiply -5.00 1E-3 -> -0.00500 +ddmul035 multiply -00.00 0.000 -> -0.00000 +ddmul036 multiply -00.00 0E-3 -> -0.00000 -- rhs is 0 +ddmul037 multiply -0E-3 00.00 -> -0.00000 -- lhs is 0 +ddmul038 multiply 5.00 -1E-3 -> -0.00500 +ddmul039 multiply 00.00 -0.000 -> -0.00000 +ddmul040 multiply 00.00 -0E-3 -> -0.00000 -- rhs is 0 +ddmul041 multiply 0E-3 -00.00 -> -0.00000 -- lhs is 0 +ddmul042 multiply -5.00 -1E-3 -> 0.00500 +ddmul043 multiply -00.00 -0.000 -> 0.00000 +ddmul044 multiply -00.00 -0E-3 -> 0.00000 -- rhs is 0 +ddmul045 multiply -0E-3 -00.00 -> 0.00000 -- lhs is 0 + +-- examples from decarith +ddmul050 multiply 1.20 3 -> 3.60 +ddmul051 multiply 7 3 -> 21 +ddmul052 multiply 0.9 0.8 -> 0.72 +ddmul053 multiply 0.9 -0 -> -0.0 +ddmul054 multiply 654321 654321 -> 428135971041 + +ddmul060 multiply 123.45 1e7 -> 1.2345E+9 +ddmul061 multiply 123.45 1e8 -> 1.2345E+10 +ddmul062 multiply 123.45 1e+9 -> 1.2345E+11 +ddmul063 multiply 123.45 1e10 -> 1.2345E+12 +ddmul064 multiply 123.45 1e11 -> 1.2345E+13 +ddmul065 multiply 123.45 1e12 -> 1.2345E+14 +ddmul066 multiply 123.45 1e13 -> 1.2345E+15 + + +-- test some intermediate lengths +-- 1234567890123456 +ddmul080 multiply 0.1 1230123456456789 -> 123012345645678.9 +ddmul084 multiply 0.1 1230123456456789 -> 123012345645678.9 +ddmul090 multiply 1230123456456789 0.1 -> 123012345645678.9 +ddmul094 multiply 1230123456456789 0.1 -> 123012345645678.9 + +-- test some more edge cases and carries +ddmul101 multiply 9 9 -> 81 +ddmul102 multiply 9 90 -> 810 +ddmul103 multiply 9 900 -> 8100 +ddmul104 multiply 9 9000 -> 81000 +ddmul105 multiply 9 90000 -> 810000 +ddmul106 multiply 9 900000 -> 8100000 +ddmul107 multiply 9 9000000 -> 81000000 +ddmul108 multiply 9 90000000 -> 810000000 +ddmul109 multiply 9 900000000 -> 8100000000 +ddmul110 multiply 9 9000000000 -> 81000000000 +ddmul111 multiply 9 90000000000 -> 810000000000 +ddmul112 multiply 9 900000000000 -> 8100000000000 +ddmul113 multiply 9 9000000000000 -> 81000000000000 +ddmul114 multiply 9 90000000000000 -> 810000000000000 +ddmul115 multiply 9 900000000000000 -> 8100000000000000 +--ddmul116 multiply 9 9000000000000000 -> 81000000000000000 +--ddmul117 multiply 9 90000000000000000 -> 810000000000000000 +--ddmul118 multiply 9 900000000000000000 -> 8100000000000000000 +--ddmul119 multiply 9 9000000000000000000 -> 81000000000000000000 +--ddmul120 multiply 9 90000000000000000000 -> 810000000000000000000 +--ddmul121 multiply 9 900000000000000000000 -> 8100000000000000000000 +--ddmul122 multiply 9 9000000000000000000000 -> 81000000000000000000000 +--ddmul123 multiply 9 90000000000000000000000 -> 810000000000000000000000 +-- test some more edge cases without carries +ddmul131 multiply 3 3 -> 9 +ddmul132 multiply 3 30 -> 90 +ddmul133 multiply 3 300 -> 900 +ddmul134 multiply 3 3000 -> 9000 +ddmul135 multiply 3 30000 -> 90000 +ddmul136 multiply 3 300000 -> 900000 +ddmul137 multiply 3 3000000 -> 9000000 +ddmul138 multiply 3 30000000 -> 90000000 +ddmul139 multiply 3 300000000 -> 900000000 +ddmul140 multiply 3 3000000000 -> 9000000000 +ddmul141 multiply 3 30000000000 -> 90000000000 +ddmul142 multiply 3 300000000000 -> 900000000000 +ddmul143 multiply 3 3000000000000 -> 9000000000000 +ddmul144 multiply 3 30000000000000 -> 90000000000000 +ddmul145 multiply 3 300000000000000 -> 900000000000000 + +-- test some edge cases with exact rounding +ddmul301 multiply 9 9 -> 81 +ddmul302 multiply 9 90 -> 810 +ddmul303 multiply 9 900 -> 8100 +ddmul304 multiply 9 9000 -> 81000 +ddmul305 multiply 9 90000 -> 810000 +ddmul306 multiply 9 900000 -> 8100000 +ddmul307 multiply 9 9000000 -> 81000000 +ddmul308 multiply 9 90000000 -> 810000000 +ddmul309 multiply 9 900000000 -> 8100000000 +ddmul310 multiply 9 9000000000 -> 81000000000 +ddmul311 multiply 9 90000000000 -> 810000000000 +ddmul312 multiply 9 900000000000 -> 8100000000000 +ddmul313 multiply 9 9000000000000 -> 81000000000000 +ddmul314 multiply 9 90000000000000 -> 810000000000000 +ddmul315 multiply 9 900000000000000 -> 8100000000000000 +ddmul316 multiply 9 9000000000000000 -> 8.100000000000000E+16 Rounded +ddmul317 multiply 90 9000000000000000 -> 8.100000000000000E+17 Rounded +ddmul318 multiply 900 9000000000000000 -> 8.100000000000000E+18 Rounded +ddmul319 multiply 9000 9000000000000000 -> 8.100000000000000E+19 Rounded +ddmul320 multiply 90000 9000000000000000 -> 8.100000000000000E+20 Rounded +ddmul321 multiply 900000 9000000000000000 -> 8.100000000000000E+21 Rounded +ddmul322 multiply 9000000 9000000000000000 -> 8.100000000000000E+22 Rounded +ddmul323 multiply 90000000 9000000000000000 -> 8.100000000000000E+23 Rounded + +-- tryzeros cases +ddmul504 multiply 0E-260 1000E-260 -> 0E-398 Clamped +ddmul505 multiply 100E+260 0E+260 -> 0E+369 Clamped +-- 65K-1 case +ddmul506 multiply 77.1 850 -> 65535.0 + +-- mixed with zeros +ddmul541 multiply 0 -1 -> -0 +ddmul542 multiply -0 -1 -> 0 +ddmul543 multiply 0 1 -> 0 +ddmul544 multiply -0 1 -> -0 +ddmul545 multiply -1 0 -> -0 +ddmul546 multiply -1 -0 -> 0 +ddmul547 multiply 1 0 -> 0 +ddmul548 multiply 1 -0 -> -0 + +ddmul551 multiply 0.0 -1 -> -0.0 +ddmul552 multiply -0.0 -1 -> 0.0 +ddmul553 multiply 0.0 1 -> 0.0 +ddmul554 multiply -0.0 1 -> -0.0 +ddmul555 multiply -1.0 0 -> -0.0 +ddmul556 multiply -1.0 -0 -> 0.0 +ddmul557 multiply 1.0 0 -> 0.0 +ddmul558 multiply 1.0 -0 -> -0.0 + +ddmul561 multiply 0 -1.0 -> -0.0 +ddmul562 multiply -0 -1.0 -> 0.0 +ddmul563 multiply 0 1.0 -> 0.0 +ddmul564 multiply -0 1.0 -> -0.0 +ddmul565 multiply -1 0.0 -> -0.0 +ddmul566 multiply -1 -0.0 -> 0.0 +ddmul567 multiply 1 0.0 -> 0.0 +ddmul568 multiply 1 -0.0 -> -0.0 + +ddmul571 multiply 0.0 -1.0 -> -0.00 +ddmul572 multiply -0.0 -1.0 -> 0.00 +ddmul573 multiply 0.0 1.0 -> 0.00 +ddmul574 multiply -0.0 1.0 -> -0.00 +ddmul575 multiply -1.0 0.0 -> -0.00 +ddmul576 multiply -1.0 -0.0 -> 0.00 +ddmul577 multiply 1.0 0.0 -> 0.00 +ddmul578 multiply 1.0 -0.0 -> -0.00 + + +-- Specials +ddmul580 multiply Inf -Inf -> -Infinity +ddmul581 multiply Inf -1000 -> -Infinity +ddmul582 multiply Inf -1 -> -Infinity +ddmul583 multiply Inf -0 -> NaN Invalid_operation +ddmul584 multiply Inf 0 -> NaN Invalid_operation +ddmul585 multiply Inf 1 -> Infinity +ddmul586 multiply Inf 1000 -> Infinity +ddmul587 multiply Inf Inf -> Infinity +ddmul588 multiply -1000 Inf -> -Infinity +ddmul589 multiply -Inf Inf -> -Infinity +ddmul590 multiply -1 Inf -> -Infinity +ddmul591 multiply -0 Inf -> NaN Invalid_operation +ddmul592 multiply 0 Inf -> NaN Invalid_operation +ddmul593 multiply 1 Inf -> Infinity +ddmul594 multiply 1000 Inf -> Infinity +ddmul595 multiply Inf Inf -> Infinity + +ddmul600 multiply -Inf -Inf -> Infinity +ddmul601 multiply -Inf -1000 -> Infinity +ddmul602 multiply -Inf -1 -> Infinity +ddmul603 multiply -Inf -0 -> NaN Invalid_operation +ddmul604 multiply -Inf 0 -> NaN Invalid_operation +ddmul605 multiply -Inf 1 -> -Infinity +ddmul606 multiply -Inf 1000 -> -Infinity +ddmul607 multiply -Inf Inf -> -Infinity +ddmul608 multiply -1000 Inf -> -Infinity +ddmul609 multiply -Inf -Inf -> Infinity +ddmul610 multiply -1 -Inf -> Infinity +ddmul611 multiply -0 -Inf -> NaN Invalid_operation +ddmul612 multiply 0 -Inf -> NaN Invalid_operation +ddmul613 multiply 1 -Inf -> -Infinity +ddmul614 multiply 1000 -Inf -> -Infinity +ddmul615 multiply Inf -Inf -> -Infinity + +ddmul621 multiply NaN -Inf -> NaN +ddmul622 multiply NaN -1000 -> NaN +ddmul623 multiply NaN -1 -> NaN +ddmul624 multiply NaN -0 -> NaN +ddmul625 multiply NaN 0 -> NaN +ddmul626 multiply NaN 1 -> NaN +ddmul627 multiply NaN 1000 -> NaN +ddmul628 multiply NaN Inf -> NaN +ddmul629 multiply NaN NaN -> NaN +ddmul630 multiply -Inf NaN -> NaN +ddmul631 multiply -1000 NaN -> NaN +ddmul632 multiply -1 NaN -> NaN +ddmul633 multiply -0 NaN -> NaN +ddmul634 multiply 0 NaN -> NaN +ddmul635 multiply 1 NaN -> NaN +ddmul636 multiply 1000 NaN -> NaN +ddmul637 multiply Inf NaN -> NaN + +ddmul641 multiply sNaN -Inf -> NaN Invalid_operation +ddmul642 multiply sNaN -1000 -> NaN Invalid_operation +ddmul643 multiply sNaN -1 -> NaN Invalid_operation +ddmul644 multiply sNaN -0 -> NaN Invalid_operation +ddmul645 multiply sNaN 0 -> NaN Invalid_operation +ddmul646 multiply sNaN 1 -> NaN Invalid_operation +ddmul647 multiply sNaN 1000 -> NaN Invalid_operation +ddmul648 multiply sNaN NaN -> NaN Invalid_operation +ddmul649 multiply sNaN sNaN -> NaN Invalid_operation +ddmul650 multiply NaN sNaN -> NaN Invalid_operation +ddmul651 multiply -Inf sNaN -> NaN Invalid_operation +ddmul652 multiply -1000 sNaN -> NaN Invalid_operation +ddmul653 multiply -1 sNaN -> NaN Invalid_operation +ddmul654 multiply -0 sNaN -> NaN Invalid_operation +ddmul655 multiply 0 sNaN -> NaN Invalid_operation +ddmul656 multiply 1 sNaN -> NaN Invalid_operation +ddmul657 multiply 1000 sNaN -> NaN Invalid_operation +ddmul658 multiply Inf sNaN -> NaN Invalid_operation +ddmul659 multiply NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +ddmul661 multiply NaN9 -Inf -> NaN9 +ddmul662 multiply NaN8 999 -> NaN8 +ddmul663 multiply NaN71 Inf -> NaN71 +ddmul664 multiply NaN6 NaN5 -> NaN6 +ddmul665 multiply -Inf NaN4 -> NaN4 +ddmul666 multiply -999 NaN33 -> NaN33 +ddmul667 multiply Inf NaN2 -> NaN2 + +ddmul671 multiply sNaN99 -Inf -> NaN99 Invalid_operation +ddmul672 multiply sNaN98 -11 -> NaN98 Invalid_operation +ddmul673 multiply sNaN97 NaN -> NaN97 Invalid_operation +ddmul674 multiply sNaN16 sNaN94 -> NaN16 Invalid_operation +ddmul675 multiply NaN95 sNaN93 -> NaN93 Invalid_operation +ddmul676 multiply -Inf sNaN92 -> NaN92 Invalid_operation +ddmul677 multiply 088 sNaN91 -> NaN91 Invalid_operation +ddmul678 multiply Inf sNaN90 -> NaN90 Invalid_operation +ddmul679 multiply NaN sNaN89 -> NaN89 Invalid_operation + +ddmul681 multiply -NaN9 -Inf -> -NaN9 +ddmul682 multiply -NaN8 999 -> -NaN8 +ddmul683 multiply -NaN71 Inf -> -NaN71 +ddmul684 multiply -NaN6 -NaN5 -> -NaN6 +ddmul685 multiply -Inf -NaN4 -> -NaN4 +ddmul686 multiply -999 -NaN33 -> -NaN33 +ddmul687 multiply Inf -NaN2 -> -NaN2 + +ddmul691 multiply -sNaN99 -Inf -> -NaN99 Invalid_operation +ddmul692 multiply -sNaN98 -11 -> -NaN98 Invalid_operation +ddmul693 multiply -sNaN97 NaN -> -NaN97 Invalid_operation +ddmul694 multiply -sNaN16 -sNaN94 -> -NaN16 Invalid_operation +ddmul695 multiply -NaN95 -sNaN93 -> -NaN93 Invalid_operation +ddmul696 multiply -Inf -sNaN92 -> -NaN92 Invalid_operation +ddmul697 multiply 088 -sNaN91 -> -NaN91 Invalid_operation +ddmul698 multiply Inf -sNaN90 -> -NaN90 Invalid_operation +ddmul699 multiply -NaN -sNaN89 -> -NaN89 Invalid_operation + +ddmul701 multiply -NaN -Inf -> -NaN +ddmul702 multiply -NaN 999 -> -NaN +ddmul703 multiply -NaN Inf -> -NaN +ddmul704 multiply -NaN -NaN -> -NaN +ddmul705 multiply -Inf -NaN0 -> -NaN +ddmul706 multiply -999 -NaN -> -NaN +ddmul707 multiply Inf -NaN -> -NaN + +ddmul711 multiply -sNaN -Inf -> -NaN Invalid_operation +ddmul712 multiply -sNaN -11 -> -NaN Invalid_operation +ddmul713 multiply -sNaN00 NaN -> -NaN Invalid_operation +ddmul714 multiply -sNaN -sNaN -> -NaN Invalid_operation +ddmul715 multiply -NaN -sNaN -> -NaN Invalid_operation +ddmul716 multiply -Inf -sNaN -> -NaN Invalid_operation +ddmul717 multiply 088 -sNaN -> -NaN Invalid_operation +ddmul718 multiply Inf -sNaN -> -NaN Invalid_operation +ddmul719 multiply -NaN -sNaN -> -NaN Invalid_operation + +-- overflow and underflow tests .. note subnormal results +-- signs +ddmul751 multiply 1e+277 1e+311 -> Infinity Overflow Inexact Rounded +ddmul752 multiply 1e+277 -1e+311 -> -Infinity Overflow Inexact Rounded +ddmul753 multiply -1e+277 1e+311 -> -Infinity Overflow Inexact Rounded +ddmul754 multiply -1e+277 -1e+311 -> Infinity Overflow Inexact Rounded +ddmul755 multiply 1e-277 1e-311 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +ddmul756 multiply 1e-277 -1e-311 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped +ddmul757 multiply -1e-277 1e-311 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped +ddmul758 multiply -1e-277 -1e-311 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped + +-- 'subnormal' boundary (all hard underflow or overflow in base arithemtic) +ddmul760 multiply 1e-291 1e-101 -> 1E-392 Subnormal +ddmul761 multiply 1e-291 1e-102 -> 1E-393 Subnormal +ddmul762 multiply 1e-291 1e-103 -> 1E-394 Subnormal +ddmul763 multiply 1e-291 1e-104 -> 1E-395 Subnormal +ddmul764 multiply 1e-291 1e-105 -> 1E-396 Subnormal +ddmul765 multiply 1e-291 1e-106 -> 1E-397 Subnormal +ddmul766 multiply 1e-291 1e-107 -> 1E-398 Subnormal +ddmul767 multiply 1e-291 1e-108 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +ddmul768 multiply 1e-291 1e-109 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +ddmul769 multiply 1e-291 1e-110 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +-- [no equivalent of 'subnormal' for overflow] +ddmul770 multiply 1e+60 1e+321 -> 1.000000000000E+381 Clamped +ddmul771 multiply 1e+60 1e+322 -> 1.0000000000000E+382 Clamped +ddmul772 multiply 1e+60 1e+323 -> 1.00000000000000E+383 Clamped +ddmul773 multiply 1e+60 1e+324 -> 1.000000000000000E+384 Clamped +ddmul774 multiply 1e+60 1e+325 -> Infinity Overflow Inexact Rounded +ddmul775 multiply 1e+60 1e+326 -> Infinity Overflow Inexact Rounded +ddmul776 multiply 1e+60 1e+327 -> Infinity Overflow Inexact Rounded +ddmul777 multiply 1e+60 1e+328 -> Infinity Overflow Inexact Rounded +ddmul778 multiply 1e+60 1e+329 -> Infinity Overflow Inexact Rounded +ddmul779 multiply 1e+60 1e+330 -> Infinity Overflow Inexact Rounded + +ddmul801 multiply 1.0000E-394 1 -> 1.0000E-394 Subnormal +ddmul802 multiply 1.000E-394 1e-1 -> 1.000E-395 Subnormal +ddmul803 multiply 1.00E-394 1e-2 -> 1.00E-396 Subnormal +ddmul804 multiply 1.0E-394 1e-3 -> 1.0E-397 Subnormal +ddmul805 multiply 1.0E-394 1e-4 -> 1E-398 Subnormal Rounded +ddmul806 multiply 1.3E-394 1e-4 -> 1E-398 Underflow Subnormal Inexact Rounded +ddmul807 multiply 1.5E-394 1e-4 -> 2E-398 Underflow Subnormal Inexact Rounded +ddmul808 multiply 1.7E-394 1e-4 -> 2E-398 Underflow Subnormal Inexact Rounded +ddmul809 multiply 2.3E-394 1e-4 -> 2E-398 Underflow Subnormal Inexact Rounded +ddmul810 multiply 2.5E-394 1e-4 -> 2E-398 Underflow Subnormal Inexact Rounded +ddmul811 multiply 2.7E-394 1e-4 -> 3E-398 Underflow Subnormal Inexact Rounded +ddmul812 multiply 1.49E-394 1e-4 -> 1E-398 Underflow Subnormal Inexact Rounded +ddmul813 multiply 1.50E-394 1e-4 -> 2E-398 Underflow Subnormal Inexact Rounded +ddmul814 multiply 1.51E-394 1e-4 -> 2E-398 Underflow Subnormal Inexact Rounded +ddmul815 multiply 2.49E-394 1e-4 -> 2E-398 Underflow Subnormal Inexact Rounded +ddmul816 multiply 2.50E-394 1e-4 -> 2E-398 Underflow Subnormal Inexact Rounded +ddmul817 multiply 2.51E-394 1e-4 -> 3E-398 Underflow Subnormal Inexact Rounded + +ddmul818 multiply 1E-394 1e-4 -> 1E-398 Subnormal +ddmul819 multiply 3E-394 1e-5 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +ddmul820 multiply 5E-394 1e-5 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +ddmul821 multiply 7E-394 1e-5 -> 1E-398 Underflow Subnormal Inexact Rounded +ddmul822 multiply 9E-394 1e-5 -> 1E-398 Underflow Subnormal Inexact Rounded +ddmul823 multiply 9.9E-394 1e-5 -> 1E-398 Underflow Subnormal Inexact Rounded + +ddmul824 multiply 1E-394 -1e-4 -> -1E-398 Subnormal +ddmul825 multiply 3E-394 -1e-5 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped +ddmul826 multiply -5E-394 1e-5 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped +ddmul827 multiply 7E-394 -1e-5 -> -1E-398 Underflow Subnormal Inexact Rounded +ddmul828 multiply -9E-394 1e-5 -> -1E-398 Underflow Subnormal Inexact Rounded +ddmul829 multiply 9.9E-394 -1e-5 -> -1E-398 Underflow Subnormal Inexact Rounded +ddmul830 multiply 3.0E-394 -1e-5 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped + +ddmul831 multiply 1.0E-199 1e-200 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +ddmul832 multiply 1.0E-199 1e-199 -> 1E-398 Subnormal Rounded +ddmul833 multiply 1.0E-199 1e-198 -> 1.0E-397 Subnormal +ddmul834 multiply 2.0E-199 2e-198 -> 4.0E-397 Subnormal +ddmul835 multiply 4.0E-199 4e-198 -> 1.60E-396 Subnormal +ddmul836 multiply 10.0E-199 10e-198 -> 1.000E-395 Subnormal +ddmul837 multiply 30.0E-199 30e-198 -> 9.000E-395 Subnormal +ddmul838 multiply 40.0E-199 40e-188 -> 1.6000E-384 Subnormal +ddmul839 multiply 40.0E-199 40e-187 -> 1.6000E-383 +ddmul840 multiply 40.0E-199 40e-186 -> 1.6000E-382 + +-- Long operand overflow may be a different path +ddmul870 multiply 100 9.999E+383 -> Infinity Inexact Overflow Rounded +ddmul871 multiply 100 -9.999E+383 -> -Infinity Inexact Overflow Rounded +ddmul872 multiply 9.999E+383 100 -> Infinity Inexact Overflow Rounded +ddmul873 multiply -9.999E+383 100 -> -Infinity Inexact Overflow Rounded + +-- check for double-rounded subnormals +ddmul881 multiply 1.2347E-355 1.2347E-40 -> 1.524E-395 Inexact Rounded Subnormal Underflow +ddmul882 multiply 1.234E-355 1.234E-40 -> 1.523E-395 Inexact Rounded Subnormal Underflow +ddmul883 multiply 1.23E-355 1.23E-40 -> 1.513E-395 Inexact Rounded Subnormal Underflow +ddmul884 multiply 1.2E-355 1.2E-40 -> 1.44E-395 Subnormal +ddmul885 multiply 1.2E-355 1.2E-41 -> 1.44E-396 Subnormal +ddmul886 multiply 1.2E-355 1.2E-42 -> 1.4E-397 Subnormal Inexact Rounded Underflow +ddmul887 multiply 1.2E-355 1.3E-42 -> 1.6E-397 Subnormal Inexact Rounded Underflow +ddmul888 multiply 1.3E-355 1.3E-42 -> 1.7E-397 Subnormal Inexact Rounded Underflow +ddmul889 multiply 1.3E-355 1.3E-43 -> 2E-398 Subnormal Inexact Rounded Underflow +ddmul890 multiply 1.3E-356 1.3E-43 -> 0E-398 Clamped Subnormal Inexact Rounded Underflow + +ddmul891 multiply 1.2345E-39 1.234E-355 -> 1.5234E-394 Inexact Rounded Subnormal Underflow +ddmul892 multiply 1.23456E-39 1.234E-355 -> 1.5234E-394 Inexact Rounded Subnormal Underflow +ddmul893 multiply 1.2345E-40 1.234E-355 -> 1.523E-395 Inexact Rounded Subnormal Underflow +ddmul894 multiply 1.23456E-40 1.234E-355 -> 1.523E-395 Inexact Rounded Subnormal Underflow +ddmul895 multiply 1.2345E-41 1.234E-355 -> 1.52E-396 Inexact Rounded Subnormal Underflow +ddmul896 multiply 1.23456E-41 1.234E-355 -> 1.52E-396 Inexact Rounded Subnormal Underflow + +-- Now explore the case where we get a normal result with Underflow +-- 1 234567890123456 +ddmul900 multiply 0.3000000000E-191 0.3000000000E-191 -> 9.00000000000000E-384 Subnormal Rounded +ddmul901 multiply 0.3000000001E-191 0.3000000001E-191 -> 9.00000000600000E-384 Underflow Inexact Subnormal Rounded +ddmul902 multiply 9.999999999999999E-383 0.0999999999999 -> 9.99999999999000E-384 Underflow Inexact Subnormal Rounded +ddmul903 multiply 9.999999999999999E-383 0.09999999999999 -> 9.99999999999900E-384 Underflow Inexact Subnormal Rounded +ddmul904 multiply 9.999999999999999E-383 0.099999999999999 -> 9.99999999999990E-384 Underflow Inexact Subnormal Rounded +ddmul905 multiply 9.999999999999999E-383 0.0999999999999999 -> 9.99999999999999E-384 Underflow Inexact Subnormal Rounded +-- The next rounds to Nmin (b**emin); this is the distinguishing case +-- for detecting tininess (before or after rounding) -- if after +-- rounding then the result would be the same, but the Underflow flag +-- would not be set +ddmul906 multiply 9.999999999999999E-383 0.09999999999999999 -> 1.000000000000000E-383 Underflow Inexact Subnormal Rounded +-- prove those operands were exact +ddmul907 multiply 9.999999999999999E-383 1 -> 9.999999999999999E-383 +ddmul908 multiply 1 0.09999999999999999 -> 0.09999999999999999 + +-- reducing tiniest +ddmul910 multiply 1e-398 0.99 -> 1E-398 Subnormal Inexact Rounded Underflow +ddmul911 multiply 1e-398 0.75 -> 1E-398 Subnormal Inexact Rounded Underflow +ddmul912 multiply 1e-398 0.5 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped +ddmul913 multiply 1e-398 0.25 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped +ddmul914 multiply 1e-398 0.01 -> 0E-398 Subnormal Inexact Rounded Underflow Clamped + +-- hugest +ddmul920 multiply 9999999999999999 9999999999999999 -> 9.999999999999998E+31 Inexact Rounded + +-- power-of-ten edge cases +ddmul1001 multiply 1 10 -> 10 +ddmul1002 multiply 1 100 -> 100 +ddmul1003 multiply 1 1000 -> 1000 +ddmul1004 multiply 1 10000 -> 10000 +ddmul1005 multiply 1 100000 -> 100000 +ddmul1006 multiply 1 1000000 -> 1000000 +ddmul1007 multiply 1 10000000 -> 10000000 +ddmul1008 multiply 1 100000000 -> 100000000 +ddmul1009 multiply 1 1000000000 -> 1000000000 +ddmul1010 multiply 1 10000000000 -> 10000000000 +ddmul1011 multiply 1 100000000000 -> 100000000000 +ddmul1012 multiply 1 1000000000000 -> 1000000000000 +ddmul1013 multiply 1 10000000000000 -> 10000000000000 +ddmul1014 multiply 1 100000000000000 -> 100000000000000 +ddmul1015 multiply 1 1000000000000000 -> 1000000000000000 +ddmul1021 multiply 10 1 -> 10 +ddmul1022 multiply 10 10 -> 100 +ddmul1023 multiply 10 100 -> 1000 +ddmul1024 multiply 10 1000 -> 10000 +ddmul1025 multiply 10 10000 -> 100000 +ddmul1026 multiply 10 100000 -> 1000000 +ddmul1027 multiply 10 1000000 -> 10000000 +ddmul1028 multiply 10 10000000 -> 100000000 +ddmul1029 multiply 10 100000000 -> 1000000000 +ddmul1030 multiply 10 1000000000 -> 10000000000 +ddmul1031 multiply 10 10000000000 -> 100000000000 +ddmul1032 multiply 10 100000000000 -> 1000000000000 +ddmul1033 multiply 10 1000000000000 -> 10000000000000 +ddmul1034 multiply 10 10000000000000 -> 100000000000000 +ddmul1035 multiply 10 100000000000000 -> 1000000000000000 +ddmul1041 multiply 100 0.1 -> 10.0 +ddmul1042 multiply 100 1 -> 100 +ddmul1043 multiply 100 10 -> 1000 +ddmul1044 multiply 100 100 -> 10000 +ddmul1045 multiply 100 1000 -> 100000 +ddmul1046 multiply 100 10000 -> 1000000 +ddmul1047 multiply 100 100000 -> 10000000 +ddmul1048 multiply 100 1000000 -> 100000000 +ddmul1049 multiply 100 10000000 -> 1000000000 +ddmul1050 multiply 100 100000000 -> 10000000000 +ddmul1051 multiply 100 1000000000 -> 100000000000 +ddmul1052 multiply 100 10000000000 -> 1000000000000 +ddmul1053 multiply 100 100000000000 -> 10000000000000 +ddmul1054 multiply 100 1000000000000 -> 100000000000000 +ddmul1055 multiply 100 10000000000000 -> 1000000000000000 +ddmul1061 multiply 1000 0.01 -> 10.00 +ddmul1062 multiply 1000 0.1 -> 100.0 +ddmul1063 multiply 1000 1 -> 1000 +ddmul1064 multiply 1000 10 -> 10000 +ddmul1065 multiply 1000 100 -> 100000 +ddmul1066 multiply 1000 1000 -> 1000000 +ddmul1067 multiply 1000 10000 -> 10000000 +ddmul1068 multiply 1000 100000 -> 100000000 +ddmul1069 multiply 1000 1000000 -> 1000000000 +ddmul1070 multiply 1000 10000000 -> 10000000000 +ddmul1071 multiply 1000 100000000 -> 100000000000 +ddmul1072 multiply 1000 1000000000 -> 1000000000000 +ddmul1073 multiply 1000 10000000000 -> 10000000000000 +ddmul1074 multiply 1000 100000000000 -> 100000000000000 +ddmul1075 multiply 1000 1000000000000 -> 1000000000000000 +ddmul1081 multiply 10000 0.001 -> 10.000 +ddmul1082 multiply 10000 0.01 -> 100.00 +ddmul1083 multiply 10000 0.1 -> 1000.0 +ddmul1084 multiply 10000 1 -> 10000 +ddmul1085 multiply 10000 10 -> 100000 +ddmul1086 multiply 10000 100 -> 1000000 +ddmul1087 multiply 10000 1000 -> 10000000 +ddmul1088 multiply 10000 10000 -> 100000000 +ddmul1089 multiply 10000 100000 -> 1000000000 +ddmul1090 multiply 10000 1000000 -> 10000000000 +ddmul1091 multiply 10000 10000000 -> 100000000000 +ddmul1092 multiply 10000 100000000 -> 1000000000000 +ddmul1093 multiply 10000 1000000000 -> 10000000000000 +ddmul1094 multiply 10000 10000000000 -> 100000000000000 +ddmul1095 multiply 10000 100000000000 -> 1000000000000000 + +ddmul1097 multiply 10000 99999999999 -> 999999999990000 +ddmul1098 multiply 10000 99999999999 -> 999999999990000 + + +-- Null tests +ddmul9990 multiply 10 # -> NaN Invalid_operation +ddmul9991 multiply # 10 -> NaN Invalid_operation + diff --git a/Lib/test/decimaltestdata/ddNextMinus.decTest b/Lib/test/decimaltestdata/ddNextMinus.decTest index f8a3c0eb32..39f58c14a4 100644 --- a/Lib/test/decimaltestdata/ddNextMinus.decTest +++ b/Lib/test/decimaltestdata/ddNextMinus.decTest @@ -1,126 +1,126 @@ -------------------------------------------------------------------------
--- ddNextMinus.decTest -- decDouble next that is less [754r nextdown] --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- All operands and results are decDoubles.
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
-ddnextm001 nextminus 0.9999999999999995 -> 0.9999999999999994
-ddnextm002 nextminus 0.9999999999999996 -> 0.9999999999999995
-ddnextm003 nextminus 0.9999999999999997 -> 0.9999999999999996
-ddnextm004 nextminus 0.9999999999999998 -> 0.9999999999999997
-ddnextm005 nextminus 0.9999999999999999 -> 0.9999999999999998
-ddnextm006 nextminus 1.000000000000000 -> 0.9999999999999999
-ddnextm007 nextminus 1.0 -> 0.9999999999999999
-ddnextm008 nextminus 1 -> 0.9999999999999999
-ddnextm009 nextminus 1.000000000000001 -> 1.000000000000000
-ddnextm010 nextminus 1.000000000000002 -> 1.000000000000001
-ddnextm011 nextminus 1.000000000000003 -> 1.000000000000002
-ddnextm012 nextminus 1.000000000000004 -> 1.000000000000003
-ddnextm013 nextminus 1.000000000000005 -> 1.000000000000004
-ddnextm014 nextminus 1.000000000000006 -> 1.000000000000005
-ddnextm015 nextminus 1.000000000000007 -> 1.000000000000006
-ddnextm016 nextminus 1.000000000000008 -> 1.000000000000007
-ddnextm017 nextminus 1.000000000000009 -> 1.000000000000008
-ddnextm018 nextminus 1.000000000000010 -> 1.000000000000009
-ddnextm019 nextminus 1.000000000000011 -> 1.000000000000010
-ddnextm020 nextminus 1.000000000000012 -> 1.000000000000011
-
-ddnextm021 nextminus -0.9999999999999995 -> -0.9999999999999996
-ddnextm022 nextminus -0.9999999999999996 -> -0.9999999999999997
-ddnextm023 nextminus -0.9999999999999997 -> -0.9999999999999998
-ddnextm024 nextminus -0.9999999999999998 -> -0.9999999999999999
-ddnextm025 nextminus -0.9999999999999999 -> -1.000000000000000
-ddnextm026 nextminus -1.000000000000000 -> -1.000000000000001
-ddnextm027 nextminus -1.0 -> -1.000000000000001
-ddnextm028 nextminus -1 -> -1.000000000000001
-ddnextm029 nextminus -1.000000000000001 -> -1.000000000000002
-ddnextm030 nextminus -1.000000000000002 -> -1.000000000000003
-ddnextm031 nextminus -1.000000000000003 -> -1.000000000000004
-ddnextm032 nextminus -1.000000000000004 -> -1.000000000000005
-ddnextm033 nextminus -1.000000000000005 -> -1.000000000000006
-ddnextm034 nextminus -1.000000000000006 -> -1.000000000000007
-ddnextm035 nextminus -1.000000000000007 -> -1.000000000000008
-ddnextm036 nextminus -1.000000000000008 -> -1.000000000000009
-ddnextm037 nextminus -1.000000000000009 -> -1.000000000000010
-ddnextm038 nextminus -1.000000000000010 -> -1.000000000000011
-ddnextm039 nextminus -1.000000000000011 -> -1.000000000000012
-
--- ultra-tiny inputs
-ddnextm062 nextminus 1E-398 -> 0E-398
-ddnextm065 nextminus -1E-398 -> -2E-398
-
--- Zeros
-ddnextm100 nextminus -0 -> -1E-398
-ddnextm101 nextminus 0 -> -1E-398
-ddnextm102 nextminus 0.00 -> -1E-398
-ddnextm103 nextminus -0.00 -> -1E-398
-ddnextm104 nextminus 0E-300 -> -1E-398
-ddnextm105 nextminus 0E+300 -> -1E-398
-ddnextm106 nextminus 0E+30000 -> -1E-398
-ddnextm107 nextminus -0E+30000 -> -1E-398
-
--- specials
-ddnextm150 nextminus Inf -> 9.999999999999999E+384
-ddnextm151 nextminus -Inf -> -Infinity
-ddnextm152 nextminus NaN -> NaN
-ddnextm153 nextminus sNaN -> NaN Invalid_operation
-ddnextm154 nextminus NaN77 -> NaN77
-ddnextm155 nextminus sNaN88 -> NaN88 Invalid_operation
-ddnextm156 nextminus -NaN -> -NaN
-ddnextm157 nextminus -sNaN -> -NaN Invalid_operation
-ddnextm158 nextminus -NaN77 -> -NaN77
-ddnextm159 nextminus -sNaN88 -> -NaN88 Invalid_operation
-
--- Nmax, Nmin, Ntiny, subnormals
-ddnextm170 nextminus 9.999999999999999E+384 -> 9.999999999999998E+384
-ddnextm171 nextminus 9.999999999999998E+384 -> 9.999999999999997E+384
-ddnextm172 nextminus 1E-383 -> 9.99999999999999E-384
-ddnextm173 nextminus 1.000000000000000E-383 -> 9.99999999999999E-384
-ddnextm174 nextminus 9E-398 -> 8E-398
-ddnextm175 nextminus 9.9E-397 -> 9.8E-397
-ddnextm176 nextminus 9.99999999999E-387 -> 9.99999999998E-387
-ddnextm177 nextminus 9.99999999999999E-384 -> 9.99999999999998E-384
-ddnextm178 nextminus 9.99999999999998E-384 -> 9.99999999999997E-384
-ddnextm179 nextminus 9.99999999999997E-384 -> 9.99999999999996E-384
-ddnextm180 nextminus 0E-398 -> -1E-398
-ddnextm181 nextminus 1E-398 -> 0E-398
-ddnextm182 nextminus 2E-398 -> 1E-398
-
-ddnextm183 nextminus -0E-398 -> -1E-398
-ddnextm184 nextminus -1E-398 -> -2E-398
-ddnextm185 nextminus -2E-398 -> -3E-398
-ddnextm186 nextminus -10E-398 -> -1.1E-397
-ddnextm187 nextminus -100E-398 -> -1.01E-396
-ddnextm188 nextminus -100000E-398 -> -1.00001E-393
-ddnextm189 nextminus -1.00000000000E-383 -> -1.000000000000001E-383
-ddnextm190 nextminus -1.000000000000000E-383 -> -1.000000000000001E-383
-ddnextm191 nextminus -1E-383 -> -1.000000000000001E-383
-ddnextm192 nextminus -9.999999999999998E+384 -> -9.999999999999999E+384
-ddnextm193 nextminus -9.999999999999999E+384 -> -Infinity
-
--- Null tests
-ddnextm900 nextminus # -> NaN Invalid_operation
-
+------------------------------------------------------------------------ +-- ddNextMinus.decTest -- decDouble next that is less [754r nextdown] -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- All operands and results are decDoubles. +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +ddnextm001 nextminus 0.9999999999999995 -> 0.9999999999999994 +ddnextm002 nextminus 0.9999999999999996 -> 0.9999999999999995 +ddnextm003 nextminus 0.9999999999999997 -> 0.9999999999999996 +ddnextm004 nextminus 0.9999999999999998 -> 0.9999999999999997 +ddnextm005 nextminus 0.9999999999999999 -> 0.9999999999999998 +ddnextm006 nextminus 1.000000000000000 -> 0.9999999999999999 +ddnextm007 nextminus 1.0 -> 0.9999999999999999 +ddnextm008 nextminus 1 -> 0.9999999999999999 +ddnextm009 nextminus 1.000000000000001 -> 1.000000000000000 +ddnextm010 nextminus 1.000000000000002 -> 1.000000000000001 +ddnextm011 nextminus 1.000000000000003 -> 1.000000000000002 +ddnextm012 nextminus 1.000000000000004 -> 1.000000000000003 +ddnextm013 nextminus 1.000000000000005 -> 1.000000000000004 +ddnextm014 nextminus 1.000000000000006 -> 1.000000000000005 +ddnextm015 nextminus 1.000000000000007 -> 1.000000000000006 +ddnextm016 nextminus 1.000000000000008 -> 1.000000000000007 +ddnextm017 nextminus 1.000000000000009 -> 1.000000000000008 +ddnextm018 nextminus 1.000000000000010 -> 1.000000000000009 +ddnextm019 nextminus 1.000000000000011 -> 1.000000000000010 +ddnextm020 nextminus 1.000000000000012 -> 1.000000000000011 + +ddnextm021 nextminus -0.9999999999999995 -> -0.9999999999999996 +ddnextm022 nextminus -0.9999999999999996 -> -0.9999999999999997 +ddnextm023 nextminus -0.9999999999999997 -> -0.9999999999999998 +ddnextm024 nextminus -0.9999999999999998 -> -0.9999999999999999 +ddnextm025 nextminus -0.9999999999999999 -> -1.000000000000000 +ddnextm026 nextminus -1.000000000000000 -> -1.000000000000001 +ddnextm027 nextminus -1.0 -> -1.000000000000001 +ddnextm028 nextminus -1 -> -1.000000000000001 +ddnextm029 nextminus -1.000000000000001 -> -1.000000000000002 +ddnextm030 nextminus -1.000000000000002 -> -1.000000000000003 +ddnextm031 nextminus -1.000000000000003 -> -1.000000000000004 +ddnextm032 nextminus -1.000000000000004 -> -1.000000000000005 +ddnextm033 nextminus -1.000000000000005 -> -1.000000000000006 +ddnextm034 nextminus -1.000000000000006 -> -1.000000000000007 +ddnextm035 nextminus -1.000000000000007 -> -1.000000000000008 +ddnextm036 nextminus -1.000000000000008 -> -1.000000000000009 +ddnextm037 nextminus -1.000000000000009 -> -1.000000000000010 +ddnextm038 nextminus -1.000000000000010 -> -1.000000000000011 +ddnextm039 nextminus -1.000000000000011 -> -1.000000000000012 + +-- ultra-tiny inputs +ddnextm062 nextminus 1E-398 -> 0E-398 +ddnextm065 nextminus -1E-398 -> -2E-398 + +-- Zeros +ddnextm100 nextminus -0 -> -1E-398 +ddnextm101 nextminus 0 -> -1E-398 +ddnextm102 nextminus 0.00 -> -1E-398 +ddnextm103 nextminus -0.00 -> -1E-398 +ddnextm104 nextminus 0E-300 -> -1E-398 +ddnextm105 nextminus 0E+300 -> -1E-398 +ddnextm106 nextminus 0E+30000 -> -1E-398 +ddnextm107 nextminus -0E+30000 -> -1E-398 + +-- specials +ddnextm150 nextminus Inf -> 9.999999999999999E+384 +ddnextm151 nextminus -Inf -> -Infinity +ddnextm152 nextminus NaN -> NaN +ddnextm153 nextminus sNaN -> NaN Invalid_operation +ddnextm154 nextminus NaN77 -> NaN77 +ddnextm155 nextminus sNaN88 -> NaN88 Invalid_operation +ddnextm156 nextminus -NaN -> -NaN +ddnextm157 nextminus -sNaN -> -NaN Invalid_operation +ddnextm158 nextminus -NaN77 -> -NaN77 +ddnextm159 nextminus -sNaN88 -> -NaN88 Invalid_operation + +-- Nmax, Nmin, Ntiny, subnormals +ddnextm170 nextminus 9.999999999999999E+384 -> 9.999999999999998E+384 +ddnextm171 nextminus 9.999999999999998E+384 -> 9.999999999999997E+384 +ddnextm172 nextminus 1E-383 -> 9.99999999999999E-384 +ddnextm173 nextminus 1.000000000000000E-383 -> 9.99999999999999E-384 +ddnextm174 nextminus 9E-398 -> 8E-398 +ddnextm175 nextminus 9.9E-397 -> 9.8E-397 +ddnextm176 nextminus 9.99999999999E-387 -> 9.99999999998E-387 +ddnextm177 nextminus 9.99999999999999E-384 -> 9.99999999999998E-384 +ddnextm178 nextminus 9.99999999999998E-384 -> 9.99999999999997E-384 +ddnextm179 nextminus 9.99999999999997E-384 -> 9.99999999999996E-384 +ddnextm180 nextminus 0E-398 -> -1E-398 +ddnextm181 nextminus 1E-398 -> 0E-398 +ddnextm182 nextminus 2E-398 -> 1E-398 + +ddnextm183 nextminus -0E-398 -> -1E-398 +ddnextm184 nextminus -1E-398 -> -2E-398 +ddnextm185 nextminus -2E-398 -> -3E-398 +ddnextm186 nextminus -10E-398 -> -1.1E-397 +ddnextm187 nextminus -100E-398 -> -1.01E-396 +ddnextm188 nextminus -100000E-398 -> -1.00001E-393 +ddnextm189 nextminus -1.00000000000E-383 -> -1.000000000000001E-383 +ddnextm190 nextminus -1.000000000000000E-383 -> -1.000000000000001E-383 +ddnextm191 nextminus -1E-383 -> -1.000000000000001E-383 +ddnextm192 nextminus -9.999999999999998E+384 -> -9.999999999999999E+384 +ddnextm193 nextminus -9.999999999999999E+384 -> -Infinity + +-- Null tests +ddnextm900 nextminus # -> NaN Invalid_operation + diff --git a/Lib/test/decimaltestdata/ddNextPlus.decTest b/Lib/test/decimaltestdata/ddNextPlus.decTest index 4a749a18c9..d41dfbab3f 100644 --- a/Lib/test/decimaltestdata/ddNextPlus.decTest +++ b/Lib/test/decimaltestdata/ddNextPlus.decTest @@ -1,124 +1,124 @@ -------------------------------------------------------------------------
--- ddNextPlus.decTest -- decDouble next that is greater [754r nextup] --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- All operands and results are decDoubles.
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
-ddnextp001 nextplus 0.9999999999999995 -> 0.9999999999999996
-ddnextp002 nextplus 0.9999999999999996 -> 0.9999999999999997
-ddnextp003 nextplus 0.9999999999999997 -> 0.9999999999999998
-ddnextp004 nextplus 0.9999999999999998 -> 0.9999999999999999
-ddnextp005 nextplus 0.9999999999999999 -> 1.000000000000000
-ddnextp006 nextplus 1.000000000000000 -> 1.000000000000001
-ddnextp007 nextplus 1.0 -> 1.000000000000001
-ddnextp008 nextplus 1 -> 1.000000000000001
-ddnextp009 nextplus 1.000000000000001 -> 1.000000000000002
-ddnextp010 nextplus 1.000000000000002 -> 1.000000000000003
-ddnextp011 nextplus 1.000000000000003 -> 1.000000000000004
-ddnextp012 nextplus 1.000000000000004 -> 1.000000000000005
-ddnextp013 nextplus 1.000000000000005 -> 1.000000000000006
-ddnextp014 nextplus 1.000000000000006 -> 1.000000000000007
-ddnextp015 nextplus 1.000000000000007 -> 1.000000000000008
-ddnextp016 nextplus 1.000000000000008 -> 1.000000000000009
-ddnextp017 nextplus 1.000000000000009 -> 1.000000000000010
-ddnextp018 nextplus 1.000000000000010 -> 1.000000000000011
-ddnextp019 nextplus 1.000000000000011 -> 1.000000000000012
-
-ddnextp021 nextplus -0.9999999999999995 -> -0.9999999999999994
-ddnextp022 nextplus -0.9999999999999996 -> -0.9999999999999995
-ddnextp023 nextplus -0.9999999999999997 -> -0.9999999999999996
-ddnextp024 nextplus -0.9999999999999998 -> -0.9999999999999997
-ddnextp025 nextplus -0.9999999999999999 -> -0.9999999999999998
-ddnextp026 nextplus -1.000000000000000 -> -0.9999999999999999
-ddnextp027 nextplus -1.0 -> -0.9999999999999999
-ddnextp028 nextplus -1 -> -0.9999999999999999
-ddnextp029 nextplus -1.000000000000001 -> -1.000000000000000
-ddnextp030 nextplus -1.000000000000002 -> -1.000000000000001
-ddnextp031 nextplus -1.000000000000003 -> -1.000000000000002
-ddnextp032 nextplus -1.000000000000004 -> -1.000000000000003
-ddnextp033 nextplus -1.000000000000005 -> -1.000000000000004
-ddnextp034 nextplus -1.000000000000006 -> -1.000000000000005
-ddnextp035 nextplus -1.000000000000007 -> -1.000000000000006
-ddnextp036 nextplus -1.000000000000008 -> -1.000000000000007
-ddnextp037 nextplus -1.000000000000009 -> -1.000000000000008
-ddnextp038 nextplus -1.000000000000010 -> -1.000000000000009
-ddnextp039 nextplus -1.000000000000011 -> -1.000000000000010
-ddnextp040 nextplus -1.000000000000012 -> -1.000000000000011
-
--- Zeros
-ddnextp100 nextplus 0 -> 1E-398
-ddnextp101 nextplus 0.00 -> 1E-398
-ddnextp102 nextplus 0E-300 -> 1E-398
-ddnextp103 nextplus 0E+300 -> 1E-398
-ddnextp104 nextplus 0E+30000 -> 1E-398
-ddnextp105 nextplus -0 -> 1E-398
-ddnextp106 nextplus -0.00 -> 1E-398
-ddnextp107 nextplus -0E-300 -> 1E-398
-ddnextp108 nextplus -0E+300 -> 1E-398
-ddnextp109 nextplus -0E+30000 -> 1E-398
-
--- specials
-ddnextp150 nextplus Inf -> Infinity
-ddnextp151 nextplus -Inf -> -9.999999999999999E+384
-ddnextp152 nextplus NaN -> NaN
-ddnextp153 nextplus sNaN -> NaN Invalid_operation
-ddnextp154 nextplus NaN77 -> NaN77
-ddnextp155 nextplus sNaN88 -> NaN88 Invalid_operation
-ddnextp156 nextplus -NaN -> -NaN
-ddnextp157 nextplus -sNaN -> -NaN Invalid_operation
-ddnextp158 nextplus -NaN77 -> -NaN77
-ddnextp159 nextplus -sNaN88 -> -NaN88 Invalid_operation
-
--- Nmax, Nmin, Ntiny, subnormals
-ddnextp170 nextplus -9.999999999999999E+384 -> -9.999999999999998E+384
-ddnextp171 nextplus -9.999999999999998E+384 -> -9.999999999999997E+384
-ddnextp172 nextplus -1E-383 -> -9.99999999999999E-384
-ddnextp173 nextplus -1.000000000000000E-383 -> -9.99999999999999E-384
-ddnextp174 nextplus -9E-398 -> -8E-398
-ddnextp175 nextplus -9.9E-397 -> -9.8E-397
-ddnextp176 nextplus -9.99999999999E-387 -> -9.99999999998E-387
-ddnextp177 nextplus -9.99999999999999E-384 -> -9.99999999999998E-384
-ddnextp178 nextplus -9.99999999999998E-384 -> -9.99999999999997E-384
-ddnextp179 nextplus -9.99999999999997E-384 -> -9.99999999999996E-384
-ddnextp180 nextplus -0E-398 -> 1E-398
-ddnextp181 nextplus -1E-398 -> -0E-398
-ddnextp182 nextplus -2E-398 -> -1E-398
-
-ddnextp183 nextplus 0E-398 -> 1E-398
-ddnextp184 nextplus 1E-398 -> 2E-398
-ddnextp185 nextplus 2E-398 -> 3E-398
-ddnextp186 nextplus 10E-398 -> 1.1E-397
-ddnextp187 nextplus 100E-398 -> 1.01E-396
-ddnextp188 nextplus 100000E-398 -> 1.00001E-393
-ddnextp189 nextplus 1.00000000000E-383 -> 1.000000000000001E-383
-ddnextp190 nextplus 1.000000000000000E-383 -> 1.000000000000001E-383
-ddnextp191 nextplus 1E-383 -> 1.000000000000001E-383
-ddnextp192 nextplus 9.999999999999998E+384 -> 9.999999999999999E+384
-ddnextp193 nextplus 9.999999999999999E+384 -> Infinity
-
--- Null tests
-ddnextp900 nextplus # -> NaN Invalid_operation
-
+------------------------------------------------------------------------ +-- ddNextPlus.decTest -- decDouble next that is greater [754r nextup] -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- All operands and results are decDoubles. +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +ddnextp001 nextplus 0.9999999999999995 -> 0.9999999999999996 +ddnextp002 nextplus 0.9999999999999996 -> 0.9999999999999997 +ddnextp003 nextplus 0.9999999999999997 -> 0.9999999999999998 +ddnextp004 nextplus 0.9999999999999998 -> 0.9999999999999999 +ddnextp005 nextplus 0.9999999999999999 -> 1.000000000000000 +ddnextp006 nextplus 1.000000000000000 -> 1.000000000000001 +ddnextp007 nextplus 1.0 -> 1.000000000000001 +ddnextp008 nextplus 1 -> 1.000000000000001 +ddnextp009 nextplus 1.000000000000001 -> 1.000000000000002 +ddnextp010 nextplus 1.000000000000002 -> 1.000000000000003 +ddnextp011 nextplus 1.000000000000003 -> 1.000000000000004 +ddnextp012 nextplus 1.000000000000004 -> 1.000000000000005 +ddnextp013 nextplus 1.000000000000005 -> 1.000000000000006 +ddnextp014 nextplus 1.000000000000006 -> 1.000000000000007 +ddnextp015 nextplus 1.000000000000007 -> 1.000000000000008 +ddnextp016 nextplus 1.000000000000008 -> 1.000000000000009 +ddnextp017 nextplus 1.000000000000009 -> 1.000000000000010 +ddnextp018 nextplus 1.000000000000010 -> 1.000000000000011 +ddnextp019 nextplus 1.000000000000011 -> 1.000000000000012 + +ddnextp021 nextplus -0.9999999999999995 -> -0.9999999999999994 +ddnextp022 nextplus -0.9999999999999996 -> -0.9999999999999995 +ddnextp023 nextplus -0.9999999999999997 -> -0.9999999999999996 +ddnextp024 nextplus -0.9999999999999998 -> -0.9999999999999997 +ddnextp025 nextplus -0.9999999999999999 -> -0.9999999999999998 +ddnextp026 nextplus -1.000000000000000 -> -0.9999999999999999 +ddnextp027 nextplus -1.0 -> -0.9999999999999999 +ddnextp028 nextplus -1 -> -0.9999999999999999 +ddnextp029 nextplus -1.000000000000001 -> -1.000000000000000 +ddnextp030 nextplus -1.000000000000002 -> -1.000000000000001 +ddnextp031 nextplus -1.000000000000003 -> -1.000000000000002 +ddnextp032 nextplus -1.000000000000004 -> -1.000000000000003 +ddnextp033 nextplus -1.000000000000005 -> -1.000000000000004 +ddnextp034 nextplus -1.000000000000006 -> -1.000000000000005 +ddnextp035 nextplus -1.000000000000007 -> -1.000000000000006 +ddnextp036 nextplus -1.000000000000008 -> -1.000000000000007 +ddnextp037 nextplus -1.000000000000009 -> -1.000000000000008 +ddnextp038 nextplus -1.000000000000010 -> -1.000000000000009 +ddnextp039 nextplus -1.000000000000011 -> -1.000000000000010 +ddnextp040 nextplus -1.000000000000012 -> -1.000000000000011 + +-- Zeros +ddnextp100 nextplus 0 -> 1E-398 +ddnextp101 nextplus 0.00 -> 1E-398 +ddnextp102 nextplus 0E-300 -> 1E-398 +ddnextp103 nextplus 0E+300 -> 1E-398 +ddnextp104 nextplus 0E+30000 -> 1E-398 +ddnextp105 nextplus -0 -> 1E-398 +ddnextp106 nextplus -0.00 -> 1E-398 +ddnextp107 nextplus -0E-300 -> 1E-398 +ddnextp108 nextplus -0E+300 -> 1E-398 +ddnextp109 nextplus -0E+30000 -> 1E-398 + +-- specials +ddnextp150 nextplus Inf -> Infinity +ddnextp151 nextplus -Inf -> -9.999999999999999E+384 +ddnextp152 nextplus NaN -> NaN +ddnextp153 nextplus sNaN -> NaN Invalid_operation +ddnextp154 nextplus NaN77 -> NaN77 +ddnextp155 nextplus sNaN88 -> NaN88 Invalid_operation +ddnextp156 nextplus -NaN -> -NaN +ddnextp157 nextplus -sNaN -> -NaN Invalid_operation +ddnextp158 nextplus -NaN77 -> -NaN77 +ddnextp159 nextplus -sNaN88 -> -NaN88 Invalid_operation + +-- Nmax, Nmin, Ntiny, subnormals +ddnextp170 nextplus -9.999999999999999E+384 -> -9.999999999999998E+384 +ddnextp171 nextplus -9.999999999999998E+384 -> -9.999999999999997E+384 +ddnextp172 nextplus -1E-383 -> -9.99999999999999E-384 +ddnextp173 nextplus -1.000000000000000E-383 -> -9.99999999999999E-384 +ddnextp174 nextplus -9E-398 -> -8E-398 +ddnextp175 nextplus -9.9E-397 -> -9.8E-397 +ddnextp176 nextplus -9.99999999999E-387 -> -9.99999999998E-387 +ddnextp177 nextplus -9.99999999999999E-384 -> -9.99999999999998E-384 +ddnextp178 nextplus -9.99999999999998E-384 -> -9.99999999999997E-384 +ddnextp179 nextplus -9.99999999999997E-384 -> -9.99999999999996E-384 +ddnextp180 nextplus -0E-398 -> 1E-398 +ddnextp181 nextplus -1E-398 -> -0E-398 +ddnextp182 nextplus -2E-398 -> -1E-398 + +ddnextp183 nextplus 0E-398 -> 1E-398 +ddnextp184 nextplus 1E-398 -> 2E-398 +ddnextp185 nextplus 2E-398 -> 3E-398 +ddnextp186 nextplus 10E-398 -> 1.1E-397 +ddnextp187 nextplus 100E-398 -> 1.01E-396 +ddnextp188 nextplus 100000E-398 -> 1.00001E-393 +ddnextp189 nextplus 1.00000000000E-383 -> 1.000000000000001E-383 +ddnextp190 nextplus 1.000000000000000E-383 -> 1.000000000000001E-383 +ddnextp191 nextplus 1E-383 -> 1.000000000000001E-383 +ddnextp192 nextplus 9.999999999999998E+384 -> 9.999999999999999E+384 +ddnextp193 nextplus 9.999999999999999E+384 -> Infinity + +-- Null tests +ddnextp900 nextplus # -> NaN Invalid_operation + diff --git a/Lib/test/decimaltestdata/ddNextToward.decTest b/Lib/test/decimaltestdata/ddNextToward.decTest index 75386add31..f9e474d70f 100644 --- a/Lib/test/decimaltestdata/ddNextToward.decTest +++ b/Lib/test/decimaltestdata/ddNextToward.decTest @@ -1,374 +1,374 @@ -------------------------------------------------------------------------
--- ddNextToward.decTest -- decDouble next toward rhs [754r nextafter] --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- All operands and results are decDoubles.
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
--- Sanity check with a scattering of numerics
-ddnextt001 nexttoward 10 10 -> 10
-ddnextt002 nexttoward -10 -10 -> -10
-ddnextt003 nexttoward 1 10 -> 1.000000000000001
-ddnextt004 nexttoward 1 -10 -> 0.9999999999999999
-ddnextt005 nexttoward -1 10 -> -0.9999999999999999
-ddnextt006 nexttoward -1 -10 -> -1.000000000000001
-ddnextt007 nexttoward 0 10 -> 1E-398 Underflow Subnormal Inexact Rounded
-ddnextt008 nexttoward 0 -10 -> -1E-398 Underflow Subnormal Inexact Rounded
-ddnextt009 nexttoward 9.999999999999999E+384 +Infinity -> Infinity Overflow Inexact Rounded
-ddnextt010 nexttoward -9.999999999999999E+384 -Infinity -> -Infinity Overflow Inexact Rounded
-ddnextt011 nexttoward 9.999999999999999 10 -> 10.00000000000000
-ddnextt012 nexttoward 10 9.999999999999999 -> 9.999999999999999
-ddnextt013 nexttoward -9.999999999999999 -10 -> -10.00000000000000
-ddnextt014 nexttoward -10 -9.999999999999999 -> -9.999999999999999
-ddnextt015 nexttoward 9.999999999999998 10 -> 9.999999999999999
-ddnextt016 nexttoward 10 9.999999999999998 -> 9.999999999999999
-ddnextt017 nexttoward -9.999999999999998 -10 -> -9.999999999999999
-ddnextt018 nexttoward -10 -9.999999999999998 -> -9.999999999999999
-
-------- lhs=rhs
--- finites
-ddnextt101 nexttoward 7 7 -> 7
-ddnextt102 nexttoward -7 -7 -> -7
-ddnextt103 nexttoward 75 75 -> 75
-ddnextt104 nexttoward -75 -75 -> -75
-ddnextt105 nexttoward 7.50 7.5 -> 7.50
-ddnextt106 nexttoward -7.50 -7.50 -> -7.50
-ddnextt107 nexttoward 7.500 7.5000 -> 7.500
-ddnextt108 nexttoward -7.500 -7.5 -> -7.500
-
--- zeros
-ddnextt111 nexttoward 0 0 -> 0
-ddnextt112 nexttoward -0 -0 -> -0
-ddnextt113 nexttoward 0E+4 0 -> 0E+4
-ddnextt114 nexttoward -0E+4 -0 -> -0E+4
-ddnextt115 nexttoward 0.00000000000 0.000000000000 -> 0E-11
-ddnextt116 nexttoward -0.00000000000 -0.00 -> -0E-11
-ddnextt117 nexttoward 0E-141 0 -> 0E-141
-ddnextt118 nexttoward -0E-141 -000 -> -0E-141
-
--- full coefficients, alternating bits
-ddnextt121 nexttoward 268268268 268268268 -> 268268268
-ddnextt122 nexttoward -268268268 -268268268 -> -268268268
-ddnextt123 nexttoward 134134134 134134134 -> 134134134
-ddnextt124 nexttoward -134134134 -134134134 -> -134134134
-
--- Nmax, Nmin, Ntiny
-ddnextt131 nexttoward 9.999999999999999E+384 9.999999999999999E+384 -> 9.999999999999999E+384
-ddnextt132 nexttoward 1E-383 1E-383 -> 1E-383
-ddnextt133 nexttoward 1.000000000000000E-383 1.000000000000000E-383 -> 1.000000000000000E-383
-ddnextt134 nexttoward 1E-398 1E-398 -> 1E-398
-
-ddnextt135 nexttoward -1E-398 -1E-398 -> -1E-398
-ddnextt136 nexttoward -1.000000000000000E-383 -1.000000000000000E-383 -> -1.000000000000000E-383
-ddnextt137 nexttoward -1E-383 -1E-383 -> -1E-383
-ddnextt138 nexttoward -9.999999999999999E+384 -9.999999999999999E+384 -> -9.999999999999999E+384
-
-------- lhs<rhs
-ddnextt201 nexttoward 0.9999999999999995 Infinity -> 0.9999999999999996
-ddnextt202 nexttoward 0.9999999999999996 Infinity -> 0.9999999999999997
-ddnextt203 nexttoward 0.9999999999999997 Infinity -> 0.9999999999999998
-ddnextt204 nexttoward 0.9999999999999998 Infinity -> 0.9999999999999999
-ddnextt205 nexttoward 0.9999999999999999 Infinity -> 1.000000000000000
-ddnextt206 nexttoward 1.000000000000000 Infinity -> 1.000000000000001
-ddnextt207 nexttoward 1.0 Infinity -> 1.000000000000001
-ddnextt208 nexttoward 1 Infinity -> 1.000000000000001
-ddnextt209 nexttoward 1.000000000000001 Infinity -> 1.000000000000002
-ddnextt210 nexttoward 1.000000000000002 Infinity -> 1.000000000000003
-ddnextt211 nexttoward 1.000000000000003 Infinity -> 1.000000000000004
-ddnextt212 nexttoward 1.000000000000004 Infinity -> 1.000000000000005
-ddnextt213 nexttoward 1.000000000000005 Infinity -> 1.000000000000006
-ddnextt214 nexttoward 1.000000000000006 Infinity -> 1.000000000000007
-ddnextt215 nexttoward 1.000000000000007 Infinity -> 1.000000000000008
-ddnextt216 nexttoward 1.000000000000008 Infinity -> 1.000000000000009
-ddnextt217 nexttoward 1.000000000000009 Infinity -> 1.000000000000010
-ddnextt218 nexttoward 1.000000000000010 Infinity -> 1.000000000000011
-ddnextt219 nexttoward 1.000000000000011 Infinity -> 1.000000000000012
-
-ddnextt221 nexttoward -0.9999999999999995 Infinity -> -0.9999999999999994
-ddnextt222 nexttoward -0.9999999999999996 Infinity -> -0.9999999999999995
-ddnextt223 nexttoward -0.9999999999999997 Infinity -> -0.9999999999999996
-ddnextt224 nexttoward -0.9999999999999998 Infinity -> -0.9999999999999997
-ddnextt225 nexttoward -0.9999999999999999 Infinity -> -0.9999999999999998
-ddnextt226 nexttoward -1.000000000000000 Infinity -> -0.9999999999999999
-ddnextt227 nexttoward -1.0 Infinity -> -0.9999999999999999
-ddnextt228 nexttoward -1 Infinity -> -0.9999999999999999
-ddnextt229 nexttoward -1.000000000000001 Infinity -> -1.000000000000000
-ddnextt230 nexttoward -1.000000000000002 Infinity -> -1.000000000000001
-ddnextt231 nexttoward -1.000000000000003 Infinity -> -1.000000000000002
-ddnextt232 nexttoward -1.000000000000004 Infinity -> -1.000000000000003
-ddnextt233 nexttoward -1.000000000000005 Infinity -> -1.000000000000004
-ddnextt234 nexttoward -1.000000000000006 Infinity -> -1.000000000000005
-ddnextt235 nexttoward -1.000000000000007 Infinity -> -1.000000000000006
-ddnextt236 nexttoward -1.000000000000008 Infinity -> -1.000000000000007
-ddnextt237 nexttoward -1.000000000000009 Infinity -> -1.000000000000008
-ddnextt238 nexttoward -1.000000000000010 Infinity -> -1.000000000000009
-ddnextt239 nexttoward -1.000000000000011 Infinity -> -1.000000000000010
-ddnextt240 nexttoward -1.000000000000012 Infinity -> -1.000000000000011
-
--- Zeros
-ddnextt300 nexttoward 0 Infinity -> 1E-398 Underflow Subnormal Inexact Rounded
-ddnextt301 nexttoward 0.00 Infinity -> 1E-398 Underflow Subnormal Inexact Rounded
-ddnextt302 nexttoward 0E-300 Infinity -> 1E-398 Underflow Subnormal Inexact Rounded
-ddnextt303 nexttoward 0E+300 Infinity -> 1E-398 Underflow Subnormal Inexact Rounded
-ddnextt304 nexttoward 0E+30000 Infinity -> 1E-398 Underflow Subnormal Inexact Rounded
-ddnextt305 nexttoward -0 Infinity -> 1E-398 Underflow Subnormal Inexact Rounded
-ddnextt306 nexttoward -0.00 Infinity -> 1E-398 Underflow Subnormal Inexact Rounded
-ddnextt307 nexttoward -0E-300 Infinity -> 1E-398 Underflow Subnormal Inexact Rounded
-ddnextt308 nexttoward -0E+300 Infinity -> 1E-398 Underflow Subnormal Inexact Rounded
-ddnextt309 nexttoward -0E+30000 Infinity -> 1E-398 Underflow Subnormal Inexact Rounded
-
--- specials
-ddnextt350 nexttoward Inf Infinity -> Infinity
-ddnextt351 nexttoward -Inf Infinity -> -9.999999999999999E+384
-ddnextt352 nexttoward NaN Infinity -> NaN
-ddnextt353 nexttoward sNaN Infinity -> NaN Invalid_operation
-ddnextt354 nexttoward NaN77 Infinity -> NaN77
-ddnextt355 nexttoward sNaN88 Infinity -> NaN88 Invalid_operation
-ddnextt356 nexttoward -NaN Infinity -> -NaN
-ddnextt357 nexttoward -sNaN Infinity -> -NaN Invalid_operation
-ddnextt358 nexttoward -NaN77 Infinity -> -NaN77
-ddnextt359 nexttoward -sNaN88 Infinity -> -NaN88 Invalid_operation
-
--- Nmax, Nmin, Ntiny, subnormals
-ddnextt370 nexttoward -9.999999999999999E+384 Infinity -> -9.999999999999998E+384
-ddnextt371 nexttoward -9.999999999999998E+384 Infinity -> -9.999999999999997E+384
-ddnextt372 nexttoward -1E-383 Infinity -> -9.99999999999999E-384 Underflow Subnormal Inexact Rounded
-ddnextt373 nexttoward -1.000000000000000E-383 Infinity -> -9.99999999999999E-384 Underflow Subnormal Inexact Rounded
-ddnextt374 nexttoward -9E-398 Infinity -> -8E-398 Underflow Subnormal Inexact Rounded
-ddnextt375 nexttoward -9.9E-397 Infinity -> -9.8E-397 Underflow Subnormal Inexact Rounded
-ddnextt376 nexttoward -9.99999999999E-387 Infinity -> -9.99999999998E-387 Underflow Subnormal Inexact Rounded
-ddnextt377 nexttoward -9.99999999999999E-384 Infinity -> -9.99999999999998E-384 Underflow Subnormal Inexact Rounded
-ddnextt378 nexttoward -9.99999999999998E-384 Infinity -> -9.99999999999997E-384 Underflow Subnormal Inexact Rounded
-ddnextt379 nexttoward -9.99999999999997E-384 Infinity -> -9.99999999999996E-384 Underflow Subnormal Inexact Rounded
-ddnextt380 nexttoward -0E-398 Infinity -> 1E-398 Underflow Subnormal Inexact Rounded
-ddnextt381 nexttoward -1E-398 Infinity -> -0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddnextt382 nexttoward -2E-398 Infinity -> -1E-398 Underflow Subnormal Inexact Rounded
-
-ddnextt383 nexttoward 0E-398 Infinity -> 1E-398 Underflow Subnormal Inexact Rounded
-ddnextt384 nexttoward 1E-398 Infinity -> 2E-398 Underflow Subnormal Inexact Rounded
-ddnextt385 nexttoward 2E-398 Infinity -> 3E-398 Underflow Subnormal Inexact Rounded
-ddnextt386 nexttoward 10E-398 Infinity -> 1.1E-397 Underflow Subnormal Inexact Rounded
-ddnextt387 nexttoward 100E-398 Infinity -> 1.01E-396 Underflow Subnormal Inexact Rounded
-ddnextt388 nexttoward 100000E-398 Infinity -> 1.00001E-393 Underflow Subnormal Inexact Rounded
-ddnextt389 nexttoward 1.00000000000E-383 Infinity -> 1.000000000000001E-383
-ddnextt390 nexttoward 1.000000000000000E-383 Infinity -> 1.000000000000001E-383
-ddnextt391 nexttoward 1E-383 Infinity -> 1.000000000000001E-383
-ddnextt392 nexttoward 9.999999999999997E+384 Infinity -> 9.999999999999998E+384
-ddnextt393 nexttoward 9.999999999999998E+384 Infinity -> 9.999999999999999E+384
-ddnextt394 nexttoward 9.999999999999999E+384 Infinity -> Infinity Overflow Inexact Rounded
-
-------- lhs>rhs
-ddnextt401 nexttoward 0.9999999999999995 -Infinity -> 0.9999999999999994
-ddnextt402 nexttoward 0.9999999999999996 -Infinity -> 0.9999999999999995
-ddnextt403 nexttoward 0.9999999999999997 -Infinity -> 0.9999999999999996
-ddnextt404 nexttoward 0.9999999999999998 -Infinity -> 0.9999999999999997
-ddnextt405 nexttoward 0.9999999999999999 -Infinity -> 0.9999999999999998
-ddnextt406 nexttoward 1.000000000000000 -Infinity -> 0.9999999999999999
-ddnextt407 nexttoward 1.0 -Infinity -> 0.9999999999999999
-ddnextt408 nexttoward 1 -Infinity -> 0.9999999999999999
-ddnextt409 nexttoward 1.000000000000001 -Infinity -> 1.000000000000000
-ddnextt410 nexttoward 1.000000000000002 -Infinity -> 1.000000000000001
-ddnextt411 nexttoward 1.000000000000003 -Infinity -> 1.000000000000002
-ddnextt412 nexttoward 1.000000000000004 -Infinity -> 1.000000000000003
-ddnextt413 nexttoward 1.000000000000005 -Infinity -> 1.000000000000004
-ddnextt414 nexttoward 1.000000000000006 -Infinity -> 1.000000000000005
-ddnextt415 nexttoward 1.000000000000007 -Infinity -> 1.000000000000006
-ddnextt416 nexttoward 1.000000000000008 -Infinity -> 1.000000000000007
-ddnextt417 nexttoward 1.000000000000009 -Infinity -> 1.000000000000008
-ddnextt418 nexttoward 1.000000000000010 -Infinity -> 1.000000000000009
-ddnextt419 nexttoward 1.000000000000011 -Infinity -> 1.000000000000010
-ddnextt420 nexttoward 1.000000000000012 -Infinity -> 1.000000000000011
-
-ddnextt421 nexttoward -0.9999999999999995 -Infinity -> -0.9999999999999996
-ddnextt422 nexttoward -0.9999999999999996 -Infinity -> -0.9999999999999997
-ddnextt423 nexttoward -0.9999999999999997 -Infinity -> -0.9999999999999998
-ddnextt424 nexttoward -0.9999999999999998 -Infinity -> -0.9999999999999999
-ddnextt425 nexttoward -0.9999999999999999 -Infinity -> -1.000000000000000
-ddnextt426 nexttoward -1.000000000000000 -Infinity -> -1.000000000000001
-ddnextt427 nexttoward -1.0 -Infinity -> -1.000000000000001
-ddnextt428 nexttoward -1 -Infinity -> -1.000000000000001
-ddnextt429 nexttoward -1.000000000000001 -Infinity -> -1.000000000000002
-ddnextt430 nexttoward -1.000000000000002 -Infinity -> -1.000000000000003
-ddnextt431 nexttoward -1.000000000000003 -Infinity -> -1.000000000000004
-ddnextt432 nexttoward -1.000000000000004 -Infinity -> -1.000000000000005
-ddnextt433 nexttoward -1.000000000000005 -Infinity -> -1.000000000000006
-ddnextt434 nexttoward -1.000000000000006 -Infinity -> -1.000000000000007
-ddnextt435 nexttoward -1.000000000000007 -Infinity -> -1.000000000000008
-ddnextt436 nexttoward -1.000000000000008 -Infinity -> -1.000000000000009
-ddnextt437 nexttoward -1.000000000000009 -Infinity -> -1.000000000000010
-ddnextt438 nexttoward -1.000000000000010 -Infinity -> -1.000000000000011
-ddnextt439 nexttoward -1.000000000000011 -Infinity -> -1.000000000000012
-
--- Zeros
-ddnextt500 nexttoward -0 -Infinity -> -1E-398 Underflow Subnormal Inexact Rounded
-ddnextt501 nexttoward 0 -Infinity -> -1E-398 Underflow Subnormal Inexact Rounded
-ddnextt502 nexttoward 0.00 -Infinity -> -1E-398 Underflow Subnormal Inexact Rounded
-ddnextt503 nexttoward -0.00 -Infinity -> -1E-398 Underflow Subnormal Inexact Rounded
-ddnextt504 nexttoward 0E-300 -Infinity -> -1E-398 Underflow Subnormal Inexact Rounded
-ddnextt505 nexttoward 0E+300 -Infinity -> -1E-398 Underflow Subnormal Inexact Rounded
-ddnextt506 nexttoward 0E+30000 -Infinity -> -1E-398 Underflow Subnormal Inexact Rounded
-ddnextt507 nexttoward -0E+30000 -Infinity -> -1E-398 Underflow Subnormal Inexact Rounded
-
--- specials
-ddnextt550 nexttoward Inf -Infinity -> 9.999999999999999E+384
-ddnextt551 nexttoward -Inf -Infinity -> -Infinity
-ddnextt552 nexttoward NaN -Infinity -> NaN
-ddnextt553 nexttoward sNaN -Infinity -> NaN Invalid_operation
-ddnextt554 nexttoward NaN77 -Infinity -> NaN77
-ddnextt555 nexttoward sNaN88 -Infinity -> NaN88 Invalid_operation
-ddnextt556 nexttoward -NaN -Infinity -> -NaN
-ddnextt557 nexttoward -sNaN -Infinity -> -NaN Invalid_operation
-ddnextt558 nexttoward -NaN77 -Infinity -> -NaN77
-ddnextt559 nexttoward -sNaN88 -Infinity -> -NaN88 Invalid_operation
-
--- Nmax, Nmin, Ntiny, subnormals
-ddnextt670 nexttoward 9.999999999999999E+384 -Infinity -> 9.999999999999998E+384
-ddnextt671 nexttoward 9.999999999999998E+384 -Infinity -> 9.999999999999997E+384
-ddnextt672 nexttoward 1E-383 -Infinity -> 9.99999999999999E-384 Underflow Subnormal Inexact Rounded
-ddnextt673 nexttoward 1.000000000000000E-383 -Infinity -> 9.99999999999999E-384 Underflow Subnormal Inexact Rounded
-ddnextt674 nexttoward 9E-398 -Infinity -> 8E-398 Underflow Subnormal Inexact Rounded
-ddnextt675 nexttoward 9.9E-397 -Infinity -> 9.8E-397 Underflow Subnormal Inexact Rounded
-ddnextt676 nexttoward 9.99999999999E-387 -Infinity -> 9.99999999998E-387 Underflow Subnormal Inexact Rounded
-ddnextt677 nexttoward 9.99999999999999E-384 -Infinity -> 9.99999999999998E-384 Underflow Subnormal Inexact Rounded
-ddnextt678 nexttoward 9.99999999999998E-384 -Infinity -> 9.99999999999997E-384 Underflow Subnormal Inexact Rounded
-ddnextt679 nexttoward 9.99999999999997E-384 -Infinity -> 9.99999999999996E-384 Underflow Subnormal Inexact Rounded
-ddnextt680 nexttoward 0E-398 -Infinity -> -1E-398 Underflow Subnormal Inexact Rounded
-ddnextt681 nexttoward 1E-398 -Infinity -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddnextt682 nexttoward 2E-398 -Infinity -> 1E-398 Underflow Subnormal Inexact Rounded
-
-ddnextt683 nexttoward -0E-398 -Infinity -> -1E-398 Underflow Subnormal Inexact Rounded
-ddnextt684 nexttoward -1E-398 -Infinity -> -2E-398 Underflow Subnormal Inexact Rounded
-ddnextt685 nexttoward -2E-398 -Infinity -> -3E-398 Underflow Subnormal Inexact Rounded
-ddnextt686 nexttoward -10E-398 -Infinity -> -1.1E-397 Underflow Subnormal Inexact Rounded
-ddnextt687 nexttoward -100E-398 -Infinity -> -1.01E-396 Underflow Subnormal Inexact Rounded
-ddnextt688 nexttoward -100000E-398 -Infinity -> -1.00001E-393 Underflow Subnormal Inexact Rounded
-ddnextt689 nexttoward -1.00000000000E-383 -Infinity -> -1.000000000000001E-383
-ddnextt690 nexttoward -1.000000000000000E-383 -Infinity -> -1.000000000000001E-383
-ddnextt691 nexttoward -1E-383 -Infinity -> -1.000000000000001E-383
-ddnextt692 nexttoward -9.999999999999998E+384 -Infinity -> -9.999999999999999E+384
-ddnextt693 nexttoward -9.999999999999999E+384 -Infinity -> -Infinity Overflow Inexact Rounded
-
-------- Specials
-ddnextt780 nexttoward -Inf -Inf -> -Infinity
-ddnextt781 nexttoward -Inf -1000 -> -9.999999999999999E+384
-ddnextt782 nexttoward -Inf -1 -> -9.999999999999999E+384
-ddnextt783 nexttoward -Inf -0 -> -9.999999999999999E+384
-ddnextt784 nexttoward -Inf 0 -> -9.999999999999999E+384
-ddnextt785 nexttoward -Inf 1 -> -9.999999999999999E+384
-ddnextt786 nexttoward -Inf 1000 -> -9.999999999999999E+384
-ddnextt787 nexttoward -1000 -Inf -> -1000.000000000001
-ddnextt788 nexttoward -Inf -Inf -> -Infinity
-ddnextt789 nexttoward -1 -Inf -> -1.000000000000001
-ddnextt790 nexttoward -0 -Inf -> -1E-398 Underflow Subnormal Inexact Rounded
-ddnextt791 nexttoward 0 -Inf -> -1E-398 Underflow Subnormal Inexact Rounded
-ddnextt792 nexttoward 1 -Inf -> 0.9999999999999999
-ddnextt793 nexttoward 1000 -Inf -> 999.9999999999999
-ddnextt794 nexttoward Inf -Inf -> 9.999999999999999E+384
-
-ddnextt800 nexttoward Inf -Inf -> 9.999999999999999E+384
-ddnextt801 nexttoward Inf -1000 -> 9.999999999999999E+384
-ddnextt802 nexttoward Inf -1 -> 9.999999999999999E+384
-ddnextt803 nexttoward Inf -0 -> 9.999999999999999E+384
-ddnextt804 nexttoward Inf 0 -> 9.999999999999999E+384
-ddnextt805 nexttoward Inf 1 -> 9.999999999999999E+384
-ddnextt806 nexttoward Inf 1000 -> 9.999999999999999E+384
-ddnextt807 nexttoward Inf Inf -> Infinity
-ddnextt808 nexttoward -1000 Inf -> -999.9999999999999
-ddnextt809 nexttoward -Inf Inf -> -9.999999999999999E+384
-ddnextt810 nexttoward -1 Inf -> -0.9999999999999999
-ddnextt811 nexttoward -0 Inf -> 1E-398 Underflow Subnormal Inexact Rounded
-ddnextt812 nexttoward 0 Inf -> 1E-398 Underflow Subnormal Inexact Rounded
-ddnextt813 nexttoward 1 Inf -> 1.000000000000001
-ddnextt814 nexttoward 1000 Inf -> 1000.000000000001
-ddnextt815 nexttoward Inf Inf -> Infinity
-
-ddnextt821 nexttoward NaN -Inf -> NaN
-ddnextt822 nexttoward NaN -1000 -> NaN
-ddnextt823 nexttoward NaN -1 -> NaN
-ddnextt824 nexttoward NaN -0 -> NaN
-ddnextt825 nexttoward NaN 0 -> NaN
-ddnextt826 nexttoward NaN 1 -> NaN
-ddnextt827 nexttoward NaN 1000 -> NaN
-ddnextt828 nexttoward NaN Inf -> NaN
-ddnextt829 nexttoward NaN NaN -> NaN
-ddnextt830 nexttoward -Inf NaN -> NaN
-ddnextt831 nexttoward -1000 NaN -> NaN
-ddnextt832 nexttoward -1 NaN -> NaN
-ddnextt833 nexttoward -0 NaN -> NaN
-ddnextt834 nexttoward 0 NaN -> NaN
-ddnextt835 nexttoward 1 NaN -> NaN
-ddnextt836 nexttoward 1000 NaN -> NaN
-ddnextt837 nexttoward Inf NaN -> NaN
-
-ddnextt841 nexttoward sNaN -Inf -> NaN Invalid_operation
-ddnextt842 nexttoward sNaN -1000 -> NaN Invalid_operation
-ddnextt843 nexttoward sNaN -1 -> NaN Invalid_operation
-ddnextt844 nexttoward sNaN -0 -> NaN Invalid_operation
-ddnextt845 nexttoward sNaN 0 -> NaN Invalid_operation
-ddnextt846 nexttoward sNaN 1 -> NaN Invalid_operation
-ddnextt847 nexttoward sNaN 1000 -> NaN Invalid_operation
-ddnextt848 nexttoward sNaN NaN -> NaN Invalid_operation
-ddnextt849 nexttoward sNaN sNaN -> NaN Invalid_operation
-ddnextt850 nexttoward NaN sNaN -> NaN Invalid_operation
-ddnextt851 nexttoward -Inf sNaN -> NaN Invalid_operation
-ddnextt852 nexttoward -1000 sNaN -> NaN Invalid_operation
-ddnextt853 nexttoward -1 sNaN -> NaN Invalid_operation
-ddnextt854 nexttoward -0 sNaN -> NaN Invalid_operation
-ddnextt855 nexttoward 0 sNaN -> NaN Invalid_operation
-ddnextt856 nexttoward 1 sNaN -> NaN Invalid_operation
-ddnextt857 nexttoward 1000 sNaN -> NaN Invalid_operation
-ddnextt858 nexttoward Inf sNaN -> NaN Invalid_operation
-ddnextt859 nexttoward NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-ddnextt861 nexttoward NaN1 -Inf -> NaN1
-ddnextt862 nexttoward +NaN2 -1000 -> NaN2
-ddnextt863 nexttoward NaN3 1000 -> NaN3
-ddnextt864 nexttoward NaN4 Inf -> NaN4
-ddnextt865 nexttoward NaN5 +NaN6 -> NaN5
-ddnextt866 nexttoward -Inf NaN7 -> NaN7
-ddnextt867 nexttoward -1000 NaN8 -> NaN8
-ddnextt868 nexttoward 1000 NaN9 -> NaN9
-ddnextt869 nexttoward Inf +NaN10 -> NaN10
-ddnextt871 nexttoward sNaN11 -Inf -> NaN11 Invalid_operation
-ddnextt872 nexttoward sNaN12 -1000 -> NaN12 Invalid_operation
-ddnextt873 nexttoward sNaN13 1000 -> NaN13 Invalid_operation
-ddnextt874 nexttoward sNaN14 NaN17 -> NaN14 Invalid_operation
-ddnextt875 nexttoward sNaN15 sNaN18 -> NaN15 Invalid_operation
-ddnextt876 nexttoward NaN16 sNaN19 -> NaN19 Invalid_operation
-ddnextt877 nexttoward -Inf +sNaN20 -> NaN20 Invalid_operation
-ddnextt878 nexttoward -1000 sNaN21 -> NaN21 Invalid_operation
-ddnextt879 nexttoward 1000 sNaN22 -> NaN22 Invalid_operation
-ddnextt880 nexttoward Inf sNaN23 -> NaN23 Invalid_operation
-ddnextt881 nexttoward +NaN25 +sNaN24 -> NaN24 Invalid_operation
-ddnextt882 nexttoward -NaN26 NaN28 -> -NaN26
-ddnextt883 nexttoward -sNaN27 sNaN29 -> -NaN27 Invalid_operation
-ddnextt884 nexttoward 1000 -NaN30 -> -NaN30
-ddnextt885 nexttoward 1000 -sNaN31 -> -NaN31 Invalid_operation
-
--- Null tests
-ddnextt900 nexttoward 1 # -> NaN Invalid_operation
-ddnextt901 nexttoward # 1 -> NaN Invalid_operation
-
+------------------------------------------------------------------------ +-- ddNextToward.decTest -- decDouble next toward rhs [754r nextafter] -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- All operands and results are decDoubles. +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +-- Sanity check with a scattering of numerics +ddnextt001 nexttoward 10 10 -> 10 +ddnextt002 nexttoward -10 -10 -> -10 +ddnextt003 nexttoward 1 10 -> 1.000000000000001 +ddnextt004 nexttoward 1 -10 -> 0.9999999999999999 +ddnextt005 nexttoward -1 10 -> -0.9999999999999999 +ddnextt006 nexttoward -1 -10 -> -1.000000000000001 +ddnextt007 nexttoward 0 10 -> 1E-398 Underflow Subnormal Inexact Rounded +ddnextt008 nexttoward 0 -10 -> -1E-398 Underflow Subnormal Inexact Rounded +ddnextt009 nexttoward 9.999999999999999E+384 +Infinity -> Infinity Overflow Inexact Rounded +ddnextt010 nexttoward -9.999999999999999E+384 -Infinity -> -Infinity Overflow Inexact Rounded +ddnextt011 nexttoward 9.999999999999999 10 -> 10.00000000000000 +ddnextt012 nexttoward 10 9.999999999999999 -> 9.999999999999999 +ddnextt013 nexttoward -9.999999999999999 -10 -> -10.00000000000000 +ddnextt014 nexttoward -10 -9.999999999999999 -> -9.999999999999999 +ddnextt015 nexttoward 9.999999999999998 10 -> 9.999999999999999 +ddnextt016 nexttoward 10 9.999999999999998 -> 9.999999999999999 +ddnextt017 nexttoward -9.999999999999998 -10 -> -9.999999999999999 +ddnextt018 nexttoward -10 -9.999999999999998 -> -9.999999999999999 + +------- lhs=rhs +-- finites +ddnextt101 nexttoward 7 7 -> 7 +ddnextt102 nexttoward -7 -7 -> -7 +ddnextt103 nexttoward 75 75 -> 75 +ddnextt104 nexttoward -75 -75 -> -75 +ddnextt105 nexttoward 7.50 7.5 -> 7.50 +ddnextt106 nexttoward -7.50 -7.50 -> -7.50 +ddnextt107 nexttoward 7.500 7.5000 -> 7.500 +ddnextt108 nexttoward -7.500 -7.5 -> -7.500 + +-- zeros +ddnextt111 nexttoward 0 0 -> 0 +ddnextt112 nexttoward -0 -0 -> -0 +ddnextt113 nexttoward 0E+4 0 -> 0E+4 +ddnextt114 nexttoward -0E+4 -0 -> -0E+4 +ddnextt115 nexttoward 0.00000000000 0.000000000000 -> 0E-11 +ddnextt116 nexttoward -0.00000000000 -0.00 -> -0E-11 +ddnextt117 nexttoward 0E-141 0 -> 0E-141 +ddnextt118 nexttoward -0E-141 -000 -> -0E-141 + +-- full coefficients, alternating bits +ddnextt121 nexttoward 268268268 268268268 -> 268268268 +ddnextt122 nexttoward -268268268 -268268268 -> -268268268 +ddnextt123 nexttoward 134134134 134134134 -> 134134134 +ddnextt124 nexttoward -134134134 -134134134 -> -134134134 + +-- Nmax, Nmin, Ntiny +ddnextt131 nexttoward 9.999999999999999E+384 9.999999999999999E+384 -> 9.999999999999999E+384 +ddnextt132 nexttoward 1E-383 1E-383 -> 1E-383 +ddnextt133 nexttoward 1.000000000000000E-383 1.000000000000000E-383 -> 1.000000000000000E-383 +ddnextt134 nexttoward 1E-398 1E-398 -> 1E-398 + +ddnextt135 nexttoward -1E-398 -1E-398 -> -1E-398 +ddnextt136 nexttoward -1.000000000000000E-383 -1.000000000000000E-383 -> -1.000000000000000E-383 +ddnextt137 nexttoward -1E-383 -1E-383 -> -1E-383 +ddnextt138 nexttoward -9.999999999999999E+384 -9.999999999999999E+384 -> -9.999999999999999E+384 + +------- lhs<rhs +ddnextt201 nexttoward 0.9999999999999995 Infinity -> 0.9999999999999996 +ddnextt202 nexttoward 0.9999999999999996 Infinity -> 0.9999999999999997 +ddnextt203 nexttoward 0.9999999999999997 Infinity -> 0.9999999999999998 +ddnextt204 nexttoward 0.9999999999999998 Infinity -> 0.9999999999999999 +ddnextt205 nexttoward 0.9999999999999999 Infinity -> 1.000000000000000 +ddnextt206 nexttoward 1.000000000000000 Infinity -> 1.000000000000001 +ddnextt207 nexttoward 1.0 Infinity -> 1.000000000000001 +ddnextt208 nexttoward 1 Infinity -> 1.000000000000001 +ddnextt209 nexttoward 1.000000000000001 Infinity -> 1.000000000000002 +ddnextt210 nexttoward 1.000000000000002 Infinity -> 1.000000000000003 +ddnextt211 nexttoward 1.000000000000003 Infinity -> 1.000000000000004 +ddnextt212 nexttoward 1.000000000000004 Infinity -> 1.000000000000005 +ddnextt213 nexttoward 1.000000000000005 Infinity -> 1.000000000000006 +ddnextt214 nexttoward 1.000000000000006 Infinity -> 1.000000000000007 +ddnextt215 nexttoward 1.000000000000007 Infinity -> 1.000000000000008 +ddnextt216 nexttoward 1.000000000000008 Infinity -> 1.000000000000009 +ddnextt217 nexttoward 1.000000000000009 Infinity -> 1.000000000000010 +ddnextt218 nexttoward 1.000000000000010 Infinity -> 1.000000000000011 +ddnextt219 nexttoward 1.000000000000011 Infinity -> 1.000000000000012 + +ddnextt221 nexttoward -0.9999999999999995 Infinity -> -0.9999999999999994 +ddnextt222 nexttoward -0.9999999999999996 Infinity -> -0.9999999999999995 +ddnextt223 nexttoward -0.9999999999999997 Infinity -> -0.9999999999999996 +ddnextt224 nexttoward -0.9999999999999998 Infinity -> -0.9999999999999997 +ddnextt225 nexttoward -0.9999999999999999 Infinity -> -0.9999999999999998 +ddnextt226 nexttoward -1.000000000000000 Infinity -> -0.9999999999999999 +ddnextt227 nexttoward -1.0 Infinity -> -0.9999999999999999 +ddnextt228 nexttoward -1 Infinity -> -0.9999999999999999 +ddnextt229 nexttoward -1.000000000000001 Infinity -> -1.000000000000000 +ddnextt230 nexttoward -1.000000000000002 Infinity -> -1.000000000000001 +ddnextt231 nexttoward -1.000000000000003 Infinity -> -1.000000000000002 +ddnextt232 nexttoward -1.000000000000004 Infinity -> -1.000000000000003 +ddnextt233 nexttoward -1.000000000000005 Infinity -> -1.000000000000004 +ddnextt234 nexttoward -1.000000000000006 Infinity -> -1.000000000000005 +ddnextt235 nexttoward -1.000000000000007 Infinity -> -1.000000000000006 +ddnextt236 nexttoward -1.000000000000008 Infinity -> -1.000000000000007 +ddnextt237 nexttoward -1.000000000000009 Infinity -> -1.000000000000008 +ddnextt238 nexttoward -1.000000000000010 Infinity -> -1.000000000000009 +ddnextt239 nexttoward -1.000000000000011 Infinity -> -1.000000000000010 +ddnextt240 nexttoward -1.000000000000012 Infinity -> -1.000000000000011 + +-- Zeros +ddnextt300 nexttoward 0 Infinity -> 1E-398 Underflow Subnormal Inexact Rounded +ddnextt301 nexttoward 0.00 Infinity -> 1E-398 Underflow Subnormal Inexact Rounded +ddnextt302 nexttoward 0E-300 Infinity -> 1E-398 Underflow Subnormal Inexact Rounded +ddnextt303 nexttoward 0E+300 Infinity -> 1E-398 Underflow Subnormal Inexact Rounded +ddnextt304 nexttoward 0E+30000 Infinity -> 1E-398 Underflow Subnormal Inexact Rounded +ddnextt305 nexttoward -0 Infinity -> 1E-398 Underflow Subnormal Inexact Rounded +ddnextt306 nexttoward -0.00 Infinity -> 1E-398 Underflow Subnormal Inexact Rounded +ddnextt307 nexttoward -0E-300 Infinity -> 1E-398 Underflow Subnormal Inexact Rounded +ddnextt308 nexttoward -0E+300 Infinity -> 1E-398 Underflow Subnormal Inexact Rounded +ddnextt309 nexttoward -0E+30000 Infinity -> 1E-398 Underflow Subnormal Inexact Rounded + +-- specials +ddnextt350 nexttoward Inf Infinity -> Infinity +ddnextt351 nexttoward -Inf Infinity -> -9.999999999999999E+384 +ddnextt352 nexttoward NaN Infinity -> NaN +ddnextt353 nexttoward sNaN Infinity -> NaN Invalid_operation +ddnextt354 nexttoward NaN77 Infinity -> NaN77 +ddnextt355 nexttoward sNaN88 Infinity -> NaN88 Invalid_operation +ddnextt356 nexttoward -NaN Infinity -> -NaN +ddnextt357 nexttoward -sNaN Infinity -> -NaN Invalid_operation +ddnextt358 nexttoward -NaN77 Infinity -> -NaN77 +ddnextt359 nexttoward -sNaN88 Infinity -> -NaN88 Invalid_operation + +-- Nmax, Nmin, Ntiny, subnormals +ddnextt370 nexttoward -9.999999999999999E+384 Infinity -> -9.999999999999998E+384 +ddnextt371 nexttoward -9.999999999999998E+384 Infinity -> -9.999999999999997E+384 +ddnextt372 nexttoward -1E-383 Infinity -> -9.99999999999999E-384 Underflow Subnormal Inexact Rounded +ddnextt373 nexttoward -1.000000000000000E-383 Infinity -> -9.99999999999999E-384 Underflow Subnormal Inexact Rounded +ddnextt374 nexttoward -9E-398 Infinity -> -8E-398 Underflow Subnormal Inexact Rounded +ddnextt375 nexttoward -9.9E-397 Infinity -> -9.8E-397 Underflow Subnormal Inexact Rounded +ddnextt376 nexttoward -9.99999999999E-387 Infinity -> -9.99999999998E-387 Underflow Subnormal Inexact Rounded +ddnextt377 nexttoward -9.99999999999999E-384 Infinity -> -9.99999999999998E-384 Underflow Subnormal Inexact Rounded +ddnextt378 nexttoward -9.99999999999998E-384 Infinity -> -9.99999999999997E-384 Underflow Subnormal Inexact Rounded +ddnextt379 nexttoward -9.99999999999997E-384 Infinity -> -9.99999999999996E-384 Underflow Subnormal Inexact Rounded +ddnextt380 nexttoward -0E-398 Infinity -> 1E-398 Underflow Subnormal Inexact Rounded +ddnextt381 nexttoward -1E-398 Infinity -> -0E-398 Underflow Subnormal Inexact Rounded Clamped +ddnextt382 nexttoward -2E-398 Infinity -> -1E-398 Underflow Subnormal Inexact Rounded + +ddnextt383 nexttoward 0E-398 Infinity -> 1E-398 Underflow Subnormal Inexact Rounded +ddnextt384 nexttoward 1E-398 Infinity -> 2E-398 Underflow Subnormal Inexact Rounded +ddnextt385 nexttoward 2E-398 Infinity -> 3E-398 Underflow Subnormal Inexact Rounded +ddnextt386 nexttoward 10E-398 Infinity -> 1.1E-397 Underflow Subnormal Inexact Rounded +ddnextt387 nexttoward 100E-398 Infinity -> 1.01E-396 Underflow Subnormal Inexact Rounded +ddnextt388 nexttoward 100000E-398 Infinity -> 1.00001E-393 Underflow Subnormal Inexact Rounded +ddnextt389 nexttoward 1.00000000000E-383 Infinity -> 1.000000000000001E-383 +ddnextt390 nexttoward 1.000000000000000E-383 Infinity -> 1.000000000000001E-383 +ddnextt391 nexttoward 1E-383 Infinity -> 1.000000000000001E-383 +ddnextt392 nexttoward 9.999999999999997E+384 Infinity -> 9.999999999999998E+384 +ddnextt393 nexttoward 9.999999999999998E+384 Infinity -> 9.999999999999999E+384 +ddnextt394 nexttoward 9.999999999999999E+384 Infinity -> Infinity Overflow Inexact Rounded + +------- lhs>rhs +ddnextt401 nexttoward 0.9999999999999995 -Infinity -> 0.9999999999999994 +ddnextt402 nexttoward 0.9999999999999996 -Infinity -> 0.9999999999999995 +ddnextt403 nexttoward 0.9999999999999997 -Infinity -> 0.9999999999999996 +ddnextt404 nexttoward 0.9999999999999998 -Infinity -> 0.9999999999999997 +ddnextt405 nexttoward 0.9999999999999999 -Infinity -> 0.9999999999999998 +ddnextt406 nexttoward 1.000000000000000 -Infinity -> 0.9999999999999999 +ddnextt407 nexttoward 1.0 -Infinity -> 0.9999999999999999 +ddnextt408 nexttoward 1 -Infinity -> 0.9999999999999999 +ddnextt409 nexttoward 1.000000000000001 -Infinity -> 1.000000000000000 +ddnextt410 nexttoward 1.000000000000002 -Infinity -> 1.000000000000001 +ddnextt411 nexttoward 1.000000000000003 -Infinity -> 1.000000000000002 +ddnextt412 nexttoward 1.000000000000004 -Infinity -> 1.000000000000003 +ddnextt413 nexttoward 1.000000000000005 -Infinity -> 1.000000000000004 +ddnextt414 nexttoward 1.000000000000006 -Infinity -> 1.000000000000005 +ddnextt415 nexttoward 1.000000000000007 -Infinity -> 1.000000000000006 +ddnextt416 nexttoward 1.000000000000008 -Infinity -> 1.000000000000007 +ddnextt417 nexttoward 1.000000000000009 -Infinity -> 1.000000000000008 +ddnextt418 nexttoward 1.000000000000010 -Infinity -> 1.000000000000009 +ddnextt419 nexttoward 1.000000000000011 -Infinity -> 1.000000000000010 +ddnextt420 nexttoward 1.000000000000012 -Infinity -> 1.000000000000011 + +ddnextt421 nexttoward -0.9999999999999995 -Infinity -> -0.9999999999999996 +ddnextt422 nexttoward -0.9999999999999996 -Infinity -> -0.9999999999999997 +ddnextt423 nexttoward -0.9999999999999997 -Infinity -> -0.9999999999999998 +ddnextt424 nexttoward -0.9999999999999998 -Infinity -> -0.9999999999999999 +ddnextt425 nexttoward -0.9999999999999999 -Infinity -> -1.000000000000000 +ddnextt426 nexttoward -1.000000000000000 -Infinity -> -1.000000000000001 +ddnextt427 nexttoward -1.0 -Infinity -> -1.000000000000001 +ddnextt428 nexttoward -1 -Infinity -> -1.000000000000001 +ddnextt429 nexttoward -1.000000000000001 -Infinity -> -1.000000000000002 +ddnextt430 nexttoward -1.000000000000002 -Infinity -> -1.000000000000003 +ddnextt431 nexttoward -1.000000000000003 -Infinity -> -1.000000000000004 +ddnextt432 nexttoward -1.000000000000004 -Infinity -> -1.000000000000005 +ddnextt433 nexttoward -1.000000000000005 -Infinity -> -1.000000000000006 +ddnextt434 nexttoward -1.000000000000006 -Infinity -> -1.000000000000007 +ddnextt435 nexttoward -1.000000000000007 -Infinity -> -1.000000000000008 +ddnextt436 nexttoward -1.000000000000008 -Infinity -> -1.000000000000009 +ddnextt437 nexttoward -1.000000000000009 -Infinity -> -1.000000000000010 +ddnextt438 nexttoward -1.000000000000010 -Infinity -> -1.000000000000011 +ddnextt439 nexttoward -1.000000000000011 -Infinity -> -1.000000000000012 + +-- Zeros +ddnextt500 nexttoward -0 -Infinity -> -1E-398 Underflow Subnormal Inexact Rounded +ddnextt501 nexttoward 0 -Infinity -> -1E-398 Underflow Subnormal Inexact Rounded +ddnextt502 nexttoward 0.00 -Infinity -> -1E-398 Underflow Subnormal Inexact Rounded +ddnextt503 nexttoward -0.00 -Infinity -> -1E-398 Underflow Subnormal Inexact Rounded +ddnextt504 nexttoward 0E-300 -Infinity -> -1E-398 Underflow Subnormal Inexact Rounded +ddnextt505 nexttoward 0E+300 -Infinity -> -1E-398 Underflow Subnormal Inexact Rounded +ddnextt506 nexttoward 0E+30000 -Infinity -> -1E-398 Underflow Subnormal Inexact Rounded +ddnextt507 nexttoward -0E+30000 -Infinity -> -1E-398 Underflow Subnormal Inexact Rounded + +-- specials +ddnextt550 nexttoward Inf -Infinity -> 9.999999999999999E+384 +ddnextt551 nexttoward -Inf -Infinity -> -Infinity +ddnextt552 nexttoward NaN -Infinity -> NaN +ddnextt553 nexttoward sNaN -Infinity -> NaN Invalid_operation +ddnextt554 nexttoward NaN77 -Infinity -> NaN77 +ddnextt555 nexttoward sNaN88 -Infinity -> NaN88 Invalid_operation +ddnextt556 nexttoward -NaN -Infinity -> -NaN +ddnextt557 nexttoward -sNaN -Infinity -> -NaN Invalid_operation +ddnextt558 nexttoward -NaN77 -Infinity -> -NaN77 +ddnextt559 nexttoward -sNaN88 -Infinity -> -NaN88 Invalid_operation + +-- Nmax, Nmin, Ntiny, subnormals +ddnextt670 nexttoward 9.999999999999999E+384 -Infinity -> 9.999999999999998E+384 +ddnextt671 nexttoward 9.999999999999998E+384 -Infinity -> 9.999999999999997E+384 +ddnextt672 nexttoward 1E-383 -Infinity -> 9.99999999999999E-384 Underflow Subnormal Inexact Rounded +ddnextt673 nexttoward 1.000000000000000E-383 -Infinity -> 9.99999999999999E-384 Underflow Subnormal Inexact Rounded +ddnextt674 nexttoward 9E-398 -Infinity -> 8E-398 Underflow Subnormal Inexact Rounded +ddnextt675 nexttoward 9.9E-397 -Infinity -> 9.8E-397 Underflow Subnormal Inexact Rounded +ddnextt676 nexttoward 9.99999999999E-387 -Infinity -> 9.99999999998E-387 Underflow Subnormal Inexact Rounded +ddnextt677 nexttoward 9.99999999999999E-384 -Infinity -> 9.99999999999998E-384 Underflow Subnormal Inexact Rounded +ddnextt678 nexttoward 9.99999999999998E-384 -Infinity -> 9.99999999999997E-384 Underflow Subnormal Inexact Rounded +ddnextt679 nexttoward 9.99999999999997E-384 -Infinity -> 9.99999999999996E-384 Underflow Subnormal Inexact Rounded +ddnextt680 nexttoward 0E-398 -Infinity -> -1E-398 Underflow Subnormal Inexact Rounded +ddnextt681 nexttoward 1E-398 -Infinity -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +ddnextt682 nexttoward 2E-398 -Infinity -> 1E-398 Underflow Subnormal Inexact Rounded + +ddnextt683 nexttoward -0E-398 -Infinity -> -1E-398 Underflow Subnormal Inexact Rounded +ddnextt684 nexttoward -1E-398 -Infinity -> -2E-398 Underflow Subnormal Inexact Rounded +ddnextt685 nexttoward -2E-398 -Infinity -> -3E-398 Underflow Subnormal Inexact Rounded +ddnextt686 nexttoward -10E-398 -Infinity -> -1.1E-397 Underflow Subnormal Inexact Rounded +ddnextt687 nexttoward -100E-398 -Infinity -> -1.01E-396 Underflow Subnormal Inexact Rounded +ddnextt688 nexttoward -100000E-398 -Infinity -> -1.00001E-393 Underflow Subnormal Inexact Rounded +ddnextt689 nexttoward -1.00000000000E-383 -Infinity -> -1.000000000000001E-383 +ddnextt690 nexttoward -1.000000000000000E-383 -Infinity -> -1.000000000000001E-383 +ddnextt691 nexttoward -1E-383 -Infinity -> -1.000000000000001E-383 +ddnextt692 nexttoward -9.999999999999998E+384 -Infinity -> -9.999999999999999E+384 +ddnextt693 nexttoward -9.999999999999999E+384 -Infinity -> -Infinity Overflow Inexact Rounded + +------- Specials +ddnextt780 nexttoward -Inf -Inf -> -Infinity +ddnextt781 nexttoward -Inf -1000 -> -9.999999999999999E+384 +ddnextt782 nexttoward -Inf -1 -> -9.999999999999999E+384 +ddnextt783 nexttoward -Inf -0 -> -9.999999999999999E+384 +ddnextt784 nexttoward -Inf 0 -> -9.999999999999999E+384 +ddnextt785 nexttoward -Inf 1 -> -9.999999999999999E+384 +ddnextt786 nexttoward -Inf 1000 -> -9.999999999999999E+384 +ddnextt787 nexttoward -1000 -Inf -> -1000.000000000001 +ddnextt788 nexttoward -Inf -Inf -> -Infinity +ddnextt789 nexttoward -1 -Inf -> -1.000000000000001 +ddnextt790 nexttoward -0 -Inf -> -1E-398 Underflow Subnormal Inexact Rounded +ddnextt791 nexttoward 0 -Inf -> -1E-398 Underflow Subnormal Inexact Rounded +ddnextt792 nexttoward 1 -Inf -> 0.9999999999999999 +ddnextt793 nexttoward 1000 -Inf -> 999.9999999999999 +ddnextt794 nexttoward Inf -Inf -> 9.999999999999999E+384 + +ddnextt800 nexttoward Inf -Inf -> 9.999999999999999E+384 +ddnextt801 nexttoward Inf -1000 -> 9.999999999999999E+384 +ddnextt802 nexttoward Inf -1 -> 9.999999999999999E+384 +ddnextt803 nexttoward Inf -0 -> 9.999999999999999E+384 +ddnextt804 nexttoward Inf 0 -> 9.999999999999999E+384 +ddnextt805 nexttoward Inf 1 -> 9.999999999999999E+384 +ddnextt806 nexttoward Inf 1000 -> 9.999999999999999E+384 +ddnextt807 nexttoward Inf Inf -> Infinity +ddnextt808 nexttoward -1000 Inf -> -999.9999999999999 +ddnextt809 nexttoward -Inf Inf -> -9.999999999999999E+384 +ddnextt810 nexttoward -1 Inf -> -0.9999999999999999 +ddnextt811 nexttoward -0 Inf -> 1E-398 Underflow Subnormal Inexact Rounded +ddnextt812 nexttoward 0 Inf -> 1E-398 Underflow Subnormal Inexact Rounded +ddnextt813 nexttoward 1 Inf -> 1.000000000000001 +ddnextt814 nexttoward 1000 Inf -> 1000.000000000001 +ddnextt815 nexttoward Inf Inf -> Infinity + +ddnextt821 nexttoward NaN -Inf -> NaN +ddnextt822 nexttoward NaN -1000 -> NaN +ddnextt823 nexttoward NaN -1 -> NaN +ddnextt824 nexttoward NaN -0 -> NaN +ddnextt825 nexttoward NaN 0 -> NaN +ddnextt826 nexttoward NaN 1 -> NaN +ddnextt827 nexttoward NaN 1000 -> NaN +ddnextt828 nexttoward NaN Inf -> NaN +ddnextt829 nexttoward NaN NaN -> NaN +ddnextt830 nexttoward -Inf NaN -> NaN +ddnextt831 nexttoward -1000 NaN -> NaN +ddnextt832 nexttoward -1 NaN -> NaN +ddnextt833 nexttoward -0 NaN -> NaN +ddnextt834 nexttoward 0 NaN -> NaN +ddnextt835 nexttoward 1 NaN -> NaN +ddnextt836 nexttoward 1000 NaN -> NaN +ddnextt837 nexttoward Inf NaN -> NaN + +ddnextt841 nexttoward sNaN -Inf -> NaN Invalid_operation +ddnextt842 nexttoward sNaN -1000 -> NaN Invalid_operation +ddnextt843 nexttoward sNaN -1 -> NaN Invalid_operation +ddnextt844 nexttoward sNaN -0 -> NaN Invalid_operation +ddnextt845 nexttoward sNaN 0 -> NaN Invalid_operation +ddnextt846 nexttoward sNaN 1 -> NaN Invalid_operation +ddnextt847 nexttoward sNaN 1000 -> NaN Invalid_operation +ddnextt848 nexttoward sNaN NaN -> NaN Invalid_operation +ddnextt849 nexttoward sNaN sNaN -> NaN Invalid_operation +ddnextt850 nexttoward NaN sNaN -> NaN Invalid_operation +ddnextt851 nexttoward -Inf sNaN -> NaN Invalid_operation +ddnextt852 nexttoward -1000 sNaN -> NaN Invalid_operation +ddnextt853 nexttoward -1 sNaN -> NaN Invalid_operation +ddnextt854 nexttoward -0 sNaN -> NaN Invalid_operation +ddnextt855 nexttoward 0 sNaN -> NaN Invalid_operation +ddnextt856 nexttoward 1 sNaN -> NaN Invalid_operation +ddnextt857 nexttoward 1000 sNaN -> NaN Invalid_operation +ddnextt858 nexttoward Inf sNaN -> NaN Invalid_operation +ddnextt859 nexttoward NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +ddnextt861 nexttoward NaN1 -Inf -> NaN1 +ddnextt862 nexttoward +NaN2 -1000 -> NaN2 +ddnextt863 nexttoward NaN3 1000 -> NaN3 +ddnextt864 nexttoward NaN4 Inf -> NaN4 +ddnextt865 nexttoward NaN5 +NaN6 -> NaN5 +ddnextt866 nexttoward -Inf NaN7 -> NaN7 +ddnextt867 nexttoward -1000 NaN8 -> NaN8 +ddnextt868 nexttoward 1000 NaN9 -> NaN9 +ddnextt869 nexttoward Inf +NaN10 -> NaN10 +ddnextt871 nexttoward sNaN11 -Inf -> NaN11 Invalid_operation +ddnextt872 nexttoward sNaN12 -1000 -> NaN12 Invalid_operation +ddnextt873 nexttoward sNaN13 1000 -> NaN13 Invalid_operation +ddnextt874 nexttoward sNaN14 NaN17 -> NaN14 Invalid_operation +ddnextt875 nexttoward sNaN15 sNaN18 -> NaN15 Invalid_operation +ddnextt876 nexttoward NaN16 sNaN19 -> NaN19 Invalid_operation +ddnextt877 nexttoward -Inf +sNaN20 -> NaN20 Invalid_operation +ddnextt878 nexttoward -1000 sNaN21 -> NaN21 Invalid_operation +ddnextt879 nexttoward 1000 sNaN22 -> NaN22 Invalid_operation +ddnextt880 nexttoward Inf sNaN23 -> NaN23 Invalid_operation +ddnextt881 nexttoward +NaN25 +sNaN24 -> NaN24 Invalid_operation +ddnextt882 nexttoward -NaN26 NaN28 -> -NaN26 +ddnextt883 nexttoward -sNaN27 sNaN29 -> -NaN27 Invalid_operation +ddnextt884 nexttoward 1000 -NaN30 -> -NaN30 +ddnextt885 nexttoward 1000 -sNaN31 -> -NaN31 Invalid_operation + +-- Null tests +ddnextt900 nexttoward 1 # -> NaN Invalid_operation +ddnextt901 nexttoward # 1 -> NaN Invalid_operation + diff --git a/Lib/test/decimaltestdata/ddOr.decTest b/Lib/test/decimaltestdata/ddOr.decTest index d36580bf66..f3a702b0ef 100644 --- a/Lib/test/decimaltestdata/ddOr.decTest +++ b/Lib/test/decimaltestdata/ddOr.decTest @@ -1,292 +1,292 @@ -------------------------------------------------------------------------
--- ddOr.decTest -- digitwise logical OR for decDoubles --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
--- Sanity check (truth table)
-ddor001 or 0 0 -> 0
-ddor002 or 0 1 -> 1
-ddor003 or 1 0 -> 1
-ddor004 or 1 1 -> 1
-ddor005 or 1100 1010 -> 1110
--- and at msd and msd-1
-ddor006 or 0000000000000000 0000000000000000 -> 0
-ddor007 or 0000000000000000 1000000000000000 -> 1000000000000000
-ddor008 or 1000000000000000 0000000000000000 -> 1000000000000000
-ddor009 or 1000000000000000 1000000000000000 -> 1000000000000000
-ddor010 or 0000000000000000 0000000000000000 -> 0
-ddor011 or 0000000000000000 0100000000000000 -> 100000000000000
-ddor012 or 0100000000000000 0000000000000000 -> 100000000000000
-ddor013 or 0100000000000000 0100000000000000 -> 100000000000000
-
--- Various lengths
--- 1234567890123456 1234567890123456 1234567890123456
-ddor020 or 1111111111111111 1111111111111111 -> 1111111111111111
-ddor021 or 111111111111111 111111111111111 -> 111111111111111
-ddor022 or 11111111111111 11111111111111 -> 11111111111111
-ddor023 or 1111111111111 1111111111111 -> 1111111111111
-ddor024 or 111111111111 111111111111 -> 111111111111
-ddor025 or 11111111111 11111111111 -> 11111111111
-ddor026 or 1111111111 1111111111 -> 1111111111
-ddor027 or 111111111 111111111 -> 111111111
-ddor028 or 11111111 11111111 -> 11111111
-ddor029 or 1111111 1111111 -> 1111111
-ddor030 or 111111 111111 -> 111111
-ddor031 or 11111 11111 -> 11111
-ddor032 or 1111 1111 -> 1111
-ddor033 or 111 111 -> 111
-ddor034 or 11 11 -> 11
-ddor035 or 1 1 -> 1
-ddor036 or 0 0 -> 0
-
-ddor042 or 111111110000000 1111111110000000 -> 1111111110000000
-ddor043 or 11111110000000 1000000100000000 -> 1011111110000000
-ddor044 or 1111110000000 1000001000000000 -> 1001111110000000
-ddor045 or 111110000000 1000010000000000 -> 1000111110000000
-ddor046 or 11110000000 1000100000000000 -> 1000111110000000
-ddor047 or 1110000000 1001000000000000 -> 1001001110000000
-ddor048 or 110000000 1010000000000000 -> 1010000110000000
-ddor049 or 10000000 1100000000000000 -> 1100000010000000
-
-ddor090 or 011111111 111101111 -> 111111111
-ddor091 or 101111111 111101111 -> 111111111
-ddor092 or 110111111 111101111 -> 111111111
-ddor093 or 111011111 111101111 -> 111111111
-ddor094 or 111101111 111101111 -> 111101111
-ddor095 or 111110111 111101111 -> 111111111
-ddor096 or 111111011 111101111 -> 111111111
-ddor097 or 111111101 111101111 -> 111111111
-ddor098 or 111111110 111101111 -> 111111111
-
-ddor100 or 111101111 011111111 -> 111111111
-ddor101 or 111101111 101111111 -> 111111111
-ddor102 or 111101111 110111111 -> 111111111
-ddor103 or 111101111 111011111 -> 111111111
-ddor104 or 111101111 111101111 -> 111101111
-ddor105 or 111101111 111110111 -> 111111111
-ddor106 or 111101111 111111011 -> 111111111
-ddor107 or 111101111 111111101 -> 111111111
-ddor108 or 111101111 111111110 -> 111111111
-
--- non-0/1 should not be accepted, nor should signs
-ddor220 or 111111112 111111111 -> NaN Invalid_operation
-ddor221 or 333333333 333333333 -> NaN Invalid_operation
-ddor222 or 555555555 555555555 -> NaN Invalid_operation
-ddor223 or 777777777 777777777 -> NaN Invalid_operation
-ddor224 or 999999999 999999999 -> NaN Invalid_operation
-ddor225 or 222222222 999999999 -> NaN Invalid_operation
-ddor226 or 444444444 999999999 -> NaN Invalid_operation
-ddor227 or 666666666 999999999 -> NaN Invalid_operation
-ddor228 or 888888888 999999999 -> NaN Invalid_operation
-ddor229 or 999999999 222222222 -> NaN Invalid_operation
-ddor230 or 999999999 444444444 -> NaN Invalid_operation
-ddor231 or 999999999 666666666 -> NaN Invalid_operation
-ddor232 or 999999999 888888888 -> NaN Invalid_operation
--- a few randoms
-ddor240 or 567468689 -934981942 -> NaN Invalid_operation
-ddor241 or 567367689 934981942 -> NaN Invalid_operation
-ddor242 or -631917772 -706014634 -> NaN Invalid_operation
-ddor243 or -756253257 138579234 -> NaN Invalid_operation
-ddor244 or 835590149 567435400 -> NaN Invalid_operation
--- test MSD
-ddor250 or 2000000000000000 1000000000000000 -> NaN Invalid_operation
-ddor251 or 7000000000000000 1000000000000000 -> NaN Invalid_operation
-ddor252 or 8000000000000000 1000000000000000 -> NaN Invalid_operation
-ddor253 or 9000000000000000 1000000000000000 -> NaN Invalid_operation
-ddor254 or 2000000000000000 0000000000000000 -> NaN Invalid_operation
-ddor255 or 7000000000000000 0000000000000000 -> NaN Invalid_operation
-ddor256 or 8000000000000000 0000000000000000 -> NaN Invalid_operation
-ddor257 or 9000000000000000 0000000000000000 -> NaN Invalid_operation
-ddor258 or 1000000000000000 2000000000000000 -> NaN Invalid_operation
-ddor259 or 1000000000000000 7000000000000000 -> NaN Invalid_operation
-ddor260 or 1000000000000000 8000000000000000 -> NaN Invalid_operation
-ddor261 or 1000000000000000 9000000000000000 -> NaN Invalid_operation
-ddor262 or 0000000000000000 2000000000000000 -> NaN Invalid_operation
-ddor263 or 0000000000000000 7000000000000000 -> NaN Invalid_operation
-ddor264 or 0000000000000000 8000000000000000 -> NaN Invalid_operation
-ddor265 or 0000000000000000 9000000000000000 -> NaN Invalid_operation
--- test MSD-1
-ddor270 or 0200001000000000 1000100000000010 -> NaN Invalid_operation
-ddor271 or 0700000100000000 1000010000000100 -> NaN Invalid_operation
-ddor272 or 0800000010000000 1000001000001000 -> NaN Invalid_operation
-ddor273 or 0900000001000000 1000000100010000 -> NaN Invalid_operation
-ddor274 or 1000000000100000 0200000010100000 -> NaN Invalid_operation
-ddor275 or 1000000000010000 0700000001000000 -> NaN Invalid_operation
-ddor276 or 1000000000001000 0800000010100000 -> NaN Invalid_operation
-ddor277 or 1000000000000100 0900000000010000 -> NaN Invalid_operation
--- test LSD
-ddor280 or 0010000000000002 1000000100000001 -> NaN Invalid_operation
-ddor281 or 0001000000000007 1000001000000011 -> NaN Invalid_operation
-ddor282 or 0000100000000008 1000010000000001 -> NaN Invalid_operation
-ddor283 or 0000010000000009 1000100000000001 -> NaN Invalid_operation
-ddor284 or 1000001000000000 0001000000000002 -> NaN Invalid_operation
-ddor285 or 1000000100000000 0010000000000007 -> NaN Invalid_operation
-ddor286 or 1000000010000000 0100000000000008 -> NaN Invalid_operation
-ddor287 or 1000000001000000 1000000000000009 -> NaN Invalid_operation
--- test Middie
-ddor288 or 0010000020000000 1000001000000000 -> NaN Invalid_operation
-ddor289 or 0001000070000001 1000000100000000 -> NaN Invalid_operation
-ddor290 or 0000100080000010 1000000010000000 -> NaN Invalid_operation
-ddor291 or 0000010090000100 1000000001000000 -> NaN Invalid_operation
-ddor292 or 1000001000001000 0000000020100000 -> NaN Invalid_operation
-ddor293 or 1000000100010000 0000000070010000 -> NaN Invalid_operation
-ddor294 or 1000000010100000 0000000080001000 -> NaN Invalid_operation
-ddor295 or 1000000001000000 0000000090000100 -> NaN Invalid_operation
--- signs
-ddor296 or -1000000001000000 -0000010000000100 -> NaN Invalid_operation
-ddor297 or -1000000001000000 0000000010000100 -> NaN Invalid_operation
-ddor298 or 1000000001000000 -0000001000000100 -> NaN Invalid_operation
-ddor299 or 1000000001000000 0000000011000100 -> 1000000011000100
-
--- Nmax, Nmin, Ntiny-like
-ddor331 or 2 9.99999999E+199 -> NaN Invalid_operation
-ddor332 or 3 1E-199 -> NaN Invalid_operation
-ddor333 or 4 1.00000000E-199 -> NaN Invalid_operation
-ddor334 or 5 1E-100 -> NaN Invalid_operation
-ddor335 or 6 -1E-100 -> NaN Invalid_operation
-ddor336 or 7 -1.00000000E-199 -> NaN Invalid_operation
-ddor337 or 8 -1E-199 -> NaN Invalid_operation
-ddor338 or 9 -9.99999999E+199 -> NaN Invalid_operation
-ddor341 or 9.99999999E+299 -18 -> NaN Invalid_operation
-ddor342 or 1E-299 01 -> NaN Invalid_operation
-ddor343 or 1.00000000E-299 -18 -> NaN Invalid_operation
-ddor344 or 1E-100 18 -> NaN Invalid_operation
-ddor345 or -1E-100 -10 -> NaN Invalid_operation
-ddor346 or -1.00000000E-299 18 -> NaN Invalid_operation
-ddor347 or -1E-299 10 -> NaN Invalid_operation
-ddor348 or -9.99999999E+299 -18 -> NaN Invalid_operation
-
--- A few other non-integers
-ddor361 or 1.0 1 -> NaN Invalid_operation
-ddor362 or 1E+1 1 -> NaN Invalid_operation
-ddor363 or 0.0 1 -> NaN Invalid_operation
-ddor364 or 0E+1 1 -> NaN Invalid_operation
-ddor365 or 9.9 1 -> NaN Invalid_operation
-ddor366 or 9E+1 1 -> NaN Invalid_operation
-ddor371 or 0 1.0 -> NaN Invalid_operation
-ddor372 or 0 1E+1 -> NaN Invalid_operation
-ddor373 or 0 0.0 -> NaN Invalid_operation
-ddor374 or 0 0E+1 -> NaN Invalid_operation
-ddor375 or 0 9.9 -> NaN Invalid_operation
-ddor376 or 0 9E+1 -> NaN Invalid_operation
-
--- All Specials are in error
-ddor780 or -Inf -Inf -> NaN Invalid_operation
-ddor781 or -Inf -1000 -> NaN Invalid_operation
-ddor782 or -Inf -1 -> NaN Invalid_operation
-ddor783 or -Inf -0 -> NaN Invalid_operation
-ddor784 or -Inf 0 -> NaN Invalid_operation
-ddor785 or -Inf 1 -> NaN Invalid_operation
-ddor786 or -Inf 1000 -> NaN Invalid_operation
-ddor787 or -1000 -Inf -> NaN Invalid_operation
-ddor788 or -Inf -Inf -> NaN Invalid_operation
-ddor789 or -1 -Inf -> NaN Invalid_operation
-ddor790 or -0 -Inf -> NaN Invalid_operation
-ddor791 or 0 -Inf -> NaN Invalid_operation
-ddor792 or 1 -Inf -> NaN Invalid_operation
-ddor793 or 1000 -Inf -> NaN Invalid_operation
-ddor794 or Inf -Inf -> NaN Invalid_operation
-
-ddor800 or Inf -Inf -> NaN Invalid_operation
-ddor801 or Inf -1000 -> NaN Invalid_operation
-ddor802 or Inf -1 -> NaN Invalid_operation
-ddor803 or Inf -0 -> NaN Invalid_operation
-ddor804 or Inf 0 -> NaN Invalid_operation
-ddor805 or Inf 1 -> NaN Invalid_operation
-ddor806 or Inf 1000 -> NaN Invalid_operation
-ddor807 or Inf Inf -> NaN Invalid_operation
-ddor808 or -1000 Inf -> NaN Invalid_operation
-ddor809 or -Inf Inf -> NaN Invalid_operation
-ddor810 or -1 Inf -> NaN Invalid_operation
-ddor811 or -0 Inf -> NaN Invalid_operation
-ddor812 or 0 Inf -> NaN Invalid_operation
-ddor813 or 1 Inf -> NaN Invalid_operation
-ddor814 or 1000 Inf -> NaN Invalid_operation
-ddor815 or Inf Inf -> NaN Invalid_operation
-
-ddor821 or NaN -Inf -> NaN Invalid_operation
-ddor822 or NaN -1000 -> NaN Invalid_operation
-ddor823 or NaN -1 -> NaN Invalid_operation
-ddor824 or NaN -0 -> NaN Invalid_operation
-ddor825 or NaN 0 -> NaN Invalid_operation
-ddor826 or NaN 1 -> NaN Invalid_operation
-ddor827 or NaN 1000 -> NaN Invalid_operation
-ddor828 or NaN Inf -> NaN Invalid_operation
-ddor829 or NaN NaN -> NaN Invalid_operation
-ddor830 or -Inf NaN -> NaN Invalid_operation
-ddor831 or -1000 NaN -> NaN Invalid_operation
-ddor832 or -1 NaN -> NaN Invalid_operation
-ddor833 or -0 NaN -> NaN Invalid_operation
-ddor834 or 0 NaN -> NaN Invalid_operation
-ddor835 or 1 NaN -> NaN Invalid_operation
-ddor836 or 1000 NaN -> NaN Invalid_operation
-ddor837 or Inf NaN -> NaN Invalid_operation
-
-ddor841 or sNaN -Inf -> NaN Invalid_operation
-ddor842 or sNaN -1000 -> NaN Invalid_operation
-ddor843 or sNaN -1 -> NaN Invalid_operation
-ddor844 or sNaN -0 -> NaN Invalid_operation
-ddor845 or sNaN 0 -> NaN Invalid_operation
-ddor846 or sNaN 1 -> NaN Invalid_operation
-ddor847 or sNaN 1000 -> NaN Invalid_operation
-ddor848 or sNaN NaN -> NaN Invalid_operation
-ddor849 or sNaN sNaN -> NaN Invalid_operation
-ddor850 or NaN sNaN -> NaN Invalid_operation
-ddor851 or -Inf sNaN -> NaN Invalid_operation
-ddor852 or -1000 sNaN -> NaN Invalid_operation
-ddor853 or -1 sNaN -> NaN Invalid_operation
-ddor854 or -0 sNaN -> NaN Invalid_operation
-ddor855 or 0 sNaN -> NaN Invalid_operation
-ddor856 or 1 sNaN -> NaN Invalid_operation
-ddor857 or 1000 sNaN -> NaN Invalid_operation
-ddor858 or Inf sNaN -> NaN Invalid_operation
-ddor859 or NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-ddor861 or NaN1 -Inf -> NaN Invalid_operation
-ddor862 or +NaN2 -1000 -> NaN Invalid_operation
-ddor863 or NaN3 1000 -> NaN Invalid_operation
-ddor864 or NaN4 Inf -> NaN Invalid_operation
-ddor865 or NaN5 +NaN6 -> NaN Invalid_operation
-ddor866 or -Inf NaN7 -> NaN Invalid_operation
-ddor867 or -1000 NaN8 -> NaN Invalid_operation
-ddor868 or 1000 NaN9 -> NaN Invalid_operation
-ddor869 or Inf +NaN10 -> NaN Invalid_operation
-ddor871 or sNaN11 -Inf -> NaN Invalid_operation
-ddor872 or sNaN12 -1000 -> NaN Invalid_operation
-ddor873 or sNaN13 1000 -> NaN Invalid_operation
-ddor874 or sNaN14 NaN17 -> NaN Invalid_operation
-ddor875 or sNaN15 sNaN18 -> NaN Invalid_operation
-ddor876 or NaN16 sNaN19 -> NaN Invalid_operation
-ddor877 or -Inf +sNaN20 -> NaN Invalid_operation
-ddor878 or -1000 sNaN21 -> NaN Invalid_operation
-ddor879 or 1000 sNaN22 -> NaN Invalid_operation
-ddor880 or Inf sNaN23 -> NaN Invalid_operation
-ddor881 or +NaN25 +sNaN24 -> NaN Invalid_operation
-ddor882 or -NaN26 NaN28 -> NaN Invalid_operation
-ddor883 or -sNaN27 sNaN29 -> NaN Invalid_operation
-ddor884 or 1000 -NaN30 -> NaN Invalid_operation
-ddor885 or 1000 -sNaN31 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- ddOr.decTest -- digitwise logical OR for decDoubles -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +-- Sanity check (truth table) +ddor001 or 0 0 -> 0 +ddor002 or 0 1 -> 1 +ddor003 or 1 0 -> 1 +ddor004 or 1 1 -> 1 +ddor005 or 1100 1010 -> 1110 +-- and at msd and msd-1 +ddor006 or 0000000000000000 0000000000000000 -> 0 +ddor007 or 0000000000000000 1000000000000000 -> 1000000000000000 +ddor008 or 1000000000000000 0000000000000000 -> 1000000000000000 +ddor009 or 1000000000000000 1000000000000000 -> 1000000000000000 +ddor010 or 0000000000000000 0000000000000000 -> 0 +ddor011 or 0000000000000000 0100000000000000 -> 100000000000000 +ddor012 or 0100000000000000 0000000000000000 -> 100000000000000 +ddor013 or 0100000000000000 0100000000000000 -> 100000000000000 + +-- Various lengths +-- 1234567890123456 1234567890123456 1234567890123456 +ddor020 or 1111111111111111 1111111111111111 -> 1111111111111111 +ddor021 or 111111111111111 111111111111111 -> 111111111111111 +ddor022 or 11111111111111 11111111111111 -> 11111111111111 +ddor023 or 1111111111111 1111111111111 -> 1111111111111 +ddor024 or 111111111111 111111111111 -> 111111111111 +ddor025 or 11111111111 11111111111 -> 11111111111 +ddor026 or 1111111111 1111111111 -> 1111111111 +ddor027 or 111111111 111111111 -> 111111111 +ddor028 or 11111111 11111111 -> 11111111 +ddor029 or 1111111 1111111 -> 1111111 +ddor030 or 111111 111111 -> 111111 +ddor031 or 11111 11111 -> 11111 +ddor032 or 1111 1111 -> 1111 +ddor033 or 111 111 -> 111 +ddor034 or 11 11 -> 11 +ddor035 or 1 1 -> 1 +ddor036 or 0 0 -> 0 + +ddor042 or 111111110000000 1111111110000000 -> 1111111110000000 +ddor043 or 11111110000000 1000000100000000 -> 1011111110000000 +ddor044 or 1111110000000 1000001000000000 -> 1001111110000000 +ddor045 or 111110000000 1000010000000000 -> 1000111110000000 +ddor046 or 11110000000 1000100000000000 -> 1000111110000000 +ddor047 or 1110000000 1001000000000000 -> 1001001110000000 +ddor048 or 110000000 1010000000000000 -> 1010000110000000 +ddor049 or 10000000 1100000000000000 -> 1100000010000000 + +ddor090 or 011111111 111101111 -> 111111111 +ddor091 or 101111111 111101111 -> 111111111 +ddor092 or 110111111 111101111 -> 111111111 +ddor093 or 111011111 111101111 -> 111111111 +ddor094 or 111101111 111101111 -> 111101111 +ddor095 or 111110111 111101111 -> 111111111 +ddor096 or 111111011 111101111 -> 111111111 +ddor097 or 111111101 111101111 -> 111111111 +ddor098 or 111111110 111101111 -> 111111111 + +ddor100 or 111101111 011111111 -> 111111111 +ddor101 or 111101111 101111111 -> 111111111 +ddor102 or 111101111 110111111 -> 111111111 +ddor103 or 111101111 111011111 -> 111111111 +ddor104 or 111101111 111101111 -> 111101111 +ddor105 or 111101111 111110111 -> 111111111 +ddor106 or 111101111 111111011 -> 111111111 +ddor107 or 111101111 111111101 -> 111111111 +ddor108 or 111101111 111111110 -> 111111111 + +-- non-0/1 should not be accepted, nor should signs +ddor220 or 111111112 111111111 -> NaN Invalid_operation +ddor221 or 333333333 333333333 -> NaN Invalid_operation +ddor222 or 555555555 555555555 -> NaN Invalid_operation +ddor223 or 777777777 777777777 -> NaN Invalid_operation +ddor224 or 999999999 999999999 -> NaN Invalid_operation +ddor225 or 222222222 999999999 -> NaN Invalid_operation +ddor226 or 444444444 999999999 -> NaN Invalid_operation +ddor227 or 666666666 999999999 -> NaN Invalid_operation +ddor228 or 888888888 999999999 -> NaN Invalid_operation +ddor229 or 999999999 222222222 -> NaN Invalid_operation +ddor230 or 999999999 444444444 -> NaN Invalid_operation +ddor231 or 999999999 666666666 -> NaN Invalid_operation +ddor232 or 999999999 888888888 -> NaN Invalid_operation +-- a few randoms +ddor240 or 567468689 -934981942 -> NaN Invalid_operation +ddor241 or 567367689 934981942 -> NaN Invalid_operation +ddor242 or -631917772 -706014634 -> NaN Invalid_operation +ddor243 or -756253257 138579234 -> NaN Invalid_operation +ddor244 or 835590149 567435400 -> NaN Invalid_operation +-- test MSD +ddor250 or 2000000000000000 1000000000000000 -> NaN Invalid_operation +ddor251 or 7000000000000000 1000000000000000 -> NaN Invalid_operation +ddor252 or 8000000000000000 1000000000000000 -> NaN Invalid_operation +ddor253 or 9000000000000000 1000000000000000 -> NaN Invalid_operation +ddor254 or 2000000000000000 0000000000000000 -> NaN Invalid_operation +ddor255 or 7000000000000000 0000000000000000 -> NaN Invalid_operation +ddor256 or 8000000000000000 0000000000000000 -> NaN Invalid_operation +ddor257 or 9000000000000000 0000000000000000 -> NaN Invalid_operation +ddor258 or 1000000000000000 2000000000000000 -> NaN Invalid_operation +ddor259 or 1000000000000000 7000000000000000 -> NaN Invalid_operation +ddor260 or 1000000000000000 8000000000000000 -> NaN Invalid_operation +ddor261 or 1000000000000000 9000000000000000 -> NaN Invalid_operation +ddor262 or 0000000000000000 2000000000000000 -> NaN Invalid_operation +ddor263 or 0000000000000000 7000000000000000 -> NaN Invalid_operation +ddor264 or 0000000000000000 8000000000000000 -> NaN Invalid_operation +ddor265 or 0000000000000000 9000000000000000 -> NaN Invalid_operation +-- test MSD-1 +ddor270 or 0200001000000000 1000100000000010 -> NaN Invalid_operation +ddor271 or 0700000100000000 1000010000000100 -> NaN Invalid_operation +ddor272 or 0800000010000000 1000001000001000 -> NaN Invalid_operation +ddor273 or 0900000001000000 1000000100010000 -> NaN Invalid_operation +ddor274 or 1000000000100000 0200000010100000 -> NaN Invalid_operation +ddor275 or 1000000000010000 0700000001000000 -> NaN Invalid_operation +ddor276 or 1000000000001000 0800000010100000 -> NaN Invalid_operation +ddor277 or 1000000000000100 0900000000010000 -> NaN Invalid_operation +-- test LSD +ddor280 or 0010000000000002 1000000100000001 -> NaN Invalid_operation +ddor281 or 0001000000000007 1000001000000011 -> NaN Invalid_operation +ddor282 or 0000100000000008 1000010000000001 -> NaN Invalid_operation +ddor283 or 0000010000000009 1000100000000001 -> NaN Invalid_operation +ddor284 or 1000001000000000 0001000000000002 -> NaN Invalid_operation +ddor285 or 1000000100000000 0010000000000007 -> NaN Invalid_operation +ddor286 or 1000000010000000 0100000000000008 -> NaN Invalid_operation +ddor287 or 1000000001000000 1000000000000009 -> NaN Invalid_operation +-- test Middie +ddor288 or 0010000020000000 1000001000000000 -> NaN Invalid_operation +ddor289 or 0001000070000001 1000000100000000 -> NaN Invalid_operation +ddor290 or 0000100080000010 1000000010000000 -> NaN Invalid_operation +ddor291 or 0000010090000100 1000000001000000 -> NaN Invalid_operation +ddor292 or 1000001000001000 0000000020100000 -> NaN Invalid_operation +ddor293 or 1000000100010000 0000000070010000 -> NaN Invalid_operation +ddor294 or 1000000010100000 0000000080001000 -> NaN Invalid_operation +ddor295 or 1000000001000000 0000000090000100 -> NaN Invalid_operation +-- signs +ddor296 or -1000000001000000 -0000010000000100 -> NaN Invalid_operation +ddor297 or -1000000001000000 0000000010000100 -> NaN Invalid_operation +ddor298 or 1000000001000000 -0000001000000100 -> NaN Invalid_operation +ddor299 or 1000000001000000 0000000011000100 -> 1000000011000100 + +-- Nmax, Nmin, Ntiny-like +ddor331 or 2 9.99999999E+199 -> NaN Invalid_operation +ddor332 or 3 1E-199 -> NaN Invalid_operation +ddor333 or 4 1.00000000E-199 -> NaN Invalid_operation +ddor334 or 5 1E-100 -> NaN Invalid_operation +ddor335 or 6 -1E-100 -> NaN Invalid_operation +ddor336 or 7 -1.00000000E-199 -> NaN Invalid_operation +ddor337 or 8 -1E-199 -> NaN Invalid_operation +ddor338 or 9 -9.99999999E+199 -> NaN Invalid_operation +ddor341 or 9.99999999E+299 -18 -> NaN Invalid_operation +ddor342 or 1E-299 01 -> NaN Invalid_operation +ddor343 or 1.00000000E-299 -18 -> NaN Invalid_operation +ddor344 or 1E-100 18 -> NaN Invalid_operation +ddor345 or -1E-100 -10 -> NaN Invalid_operation +ddor346 or -1.00000000E-299 18 -> NaN Invalid_operation +ddor347 or -1E-299 10 -> NaN Invalid_operation +ddor348 or -9.99999999E+299 -18 -> NaN Invalid_operation + +-- A few other non-integers +ddor361 or 1.0 1 -> NaN Invalid_operation +ddor362 or 1E+1 1 -> NaN Invalid_operation +ddor363 or 0.0 1 -> NaN Invalid_operation +ddor364 or 0E+1 1 -> NaN Invalid_operation +ddor365 or 9.9 1 -> NaN Invalid_operation +ddor366 or 9E+1 1 -> NaN Invalid_operation +ddor371 or 0 1.0 -> NaN Invalid_operation +ddor372 or 0 1E+1 -> NaN Invalid_operation +ddor373 or 0 0.0 -> NaN Invalid_operation +ddor374 or 0 0E+1 -> NaN Invalid_operation +ddor375 or 0 9.9 -> NaN Invalid_operation +ddor376 or 0 9E+1 -> NaN Invalid_operation + +-- All Specials are in error +ddor780 or -Inf -Inf -> NaN Invalid_operation +ddor781 or -Inf -1000 -> NaN Invalid_operation +ddor782 or -Inf -1 -> NaN Invalid_operation +ddor783 or -Inf -0 -> NaN Invalid_operation +ddor784 or -Inf 0 -> NaN Invalid_operation +ddor785 or -Inf 1 -> NaN Invalid_operation +ddor786 or -Inf 1000 -> NaN Invalid_operation +ddor787 or -1000 -Inf -> NaN Invalid_operation +ddor788 or -Inf -Inf -> NaN Invalid_operation +ddor789 or -1 -Inf -> NaN Invalid_operation +ddor790 or -0 -Inf -> NaN Invalid_operation +ddor791 or 0 -Inf -> NaN Invalid_operation +ddor792 or 1 -Inf -> NaN Invalid_operation +ddor793 or 1000 -Inf -> NaN Invalid_operation +ddor794 or Inf -Inf -> NaN Invalid_operation + +ddor800 or Inf -Inf -> NaN Invalid_operation +ddor801 or Inf -1000 -> NaN Invalid_operation +ddor802 or Inf -1 -> NaN Invalid_operation +ddor803 or Inf -0 -> NaN Invalid_operation +ddor804 or Inf 0 -> NaN Invalid_operation +ddor805 or Inf 1 -> NaN Invalid_operation +ddor806 or Inf 1000 -> NaN Invalid_operation +ddor807 or Inf Inf -> NaN Invalid_operation +ddor808 or -1000 Inf -> NaN Invalid_operation +ddor809 or -Inf Inf -> NaN Invalid_operation +ddor810 or -1 Inf -> NaN Invalid_operation +ddor811 or -0 Inf -> NaN Invalid_operation +ddor812 or 0 Inf -> NaN Invalid_operation +ddor813 or 1 Inf -> NaN Invalid_operation +ddor814 or 1000 Inf -> NaN Invalid_operation +ddor815 or Inf Inf -> NaN Invalid_operation + +ddor821 or NaN -Inf -> NaN Invalid_operation +ddor822 or NaN -1000 -> NaN Invalid_operation +ddor823 or NaN -1 -> NaN Invalid_operation +ddor824 or NaN -0 -> NaN Invalid_operation +ddor825 or NaN 0 -> NaN Invalid_operation +ddor826 or NaN 1 -> NaN Invalid_operation +ddor827 or NaN 1000 -> NaN Invalid_operation +ddor828 or NaN Inf -> NaN Invalid_operation +ddor829 or NaN NaN -> NaN Invalid_operation +ddor830 or -Inf NaN -> NaN Invalid_operation +ddor831 or -1000 NaN -> NaN Invalid_operation +ddor832 or -1 NaN -> NaN Invalid_operation +ddor833 or -0 NaN -> NaN Invalid_operation +ddor834 or 0 NaN -> NaN Invalid_operation +ddor835 or 1 NaN -> NaN Invalid_operation +ddor836 or 1000 NaN -> NaN Invalid_operation +ddor837 or Inf NaN -> NaN Invalid_operation + +ddor841 or sNaN -Inf -> NaN Invalid_operation +ddor842 or sNaN -1000 -> NaN Invalid_operation +ddor843 or sNaN -1 -> NaN Invalid_operation +ddor844 or sNaN -0 -> NaN Invalid_operation +ddor845 or sNaN 0 -> NaN Invalid_operation +ddor846 or sNaN 1 -> NaN Invalid_operation +ddor847 or sNaN 1000 -> NaN Invalid_operation +ddor848 or sNaN NaN -> NaN Invalid_operation +ddor849 or sNaN sNaN -> NaN Invalid_operation +ddor850 or NaN sNaN -> NaN Invalid_operation +ddor851 or -Inf sNaN -> NaN Invalid_operation +ddor852 or -1000 sNaN -> NaN Invalid_operation +ddor853 or -1 sNaN -> NaN Invalid_operation +ddor854 or -0 sNaN -> NaN Invalid_operation +ddor855 or 0 sNaN -> NaN Invalid_operation +ddor856 or 1 sNaN -> NaN Invalid_operation +ddor857 or 1000 sNaN -> NaN Invalid_operation +ddor858 or Inf sNaN -> NaN Invalid_operation +ddor859 or NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +ddor861 or NaN1 -Inf -> NaN Invalid_operation +ddor862 or +NaN2 -1000 -> NaN Invalid_operation +ddor863 or NaN3 1000 -> NaN Invalid_operation +ddor864 or NaN4 Inf -> NaN Invalid_operation +ddor865 or NaN5 +NaN6 -> NaN Invalid_operation +ddor866 or -Inf NaN7 -> NaN Invalid_operation +ddor867 or -1000 NaN8 -> NaN Invalid_operation +ddor868 or 1000 NaN9 -> NaN Invalid_operation +ddor869 or Inf +NaN10 -> NaN Invalid_operation +ddor871 or sNaN11 -Inf -> NaN Invalid_operation +ddor872 or sNaN12 -1000 -> NaN Invalid_operation +ddor873 or sNaN13 1000 -> NaN Invalid_operation +ddor874 or sNaN14 NaN17 -> NaN Invalid_operation +ddor875 or sNaN15 sNaN18 -> NaN Invalid_operation +ddor876 or NaN16 sNaN19 -> NaN Invalid_operation +ddor877 or -Inf +sNaN20 -> NaN Invalid_operation +ddor878 or -1000 sNaN21 -> NaN Invalid_operation +ddor879 or 1000 sNaN22 -> NaN Invalid_operation +ddor880 or Inf sNaN23 -> NaN Invalid_operation +ddor881 or +NaN25 +sNaN24 -> NaN Invalid_operation +ddor882 or -NaN26 NaN28 -> NaN Invalid_operation +ddor883 or -sNaN27 sNaN29 -> NaN Invalid_operation +ddor884 or 1000 -NaN30 -> NaN Invalid_operation +ddor885 or 1000 -sNaN31 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/ddPlus.decTest b/Lib/test/decimaltestdata/ddPlus.decTest index 5191239bf7..17aa08af9f 100644 --- a/Lib/test/decimaltestdata/ddPlus.decTest +++ b/Lib/test/decimaltestdata/ddPlus.decTest @@ -1,88 +1,88 @@ -------------------------------------------------------------------------
--- ddPlus.decTest -- decDouble 0+x --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- All operands and results are decDoubles.
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
--- Sanity check
-ddpls001 plus +7.50 -> 7.50
-
--- Infinities
-ddpls011 plus Infinity -> Infinity
-ddpls012 plus -Infinity -> -Infinity
-
--- NaNs, 0 payload
-ddpls021 plus NaN -> NaN
-ddpls022 plus -NaN -> -NaN
-ddpls023 plus sNaN -> NaN Invalid_operation
-ddpls024 plus -sNaN -> -NaN Invalid_operation
-
--- NaNs, non-0 payload
-ddpls031 plus NaN13 -> NaN13
-ddpls032 plus -NaN13 -> -NaN13
-ddpls033 plus sNaN13 -> NaN13 Invalid_operation
-ddpls034 plus -sNaN13 -> -NaN13 Invalid_operation
-ddpls035 plus NaN70 -> NaN70
-ddpls036 plus -NaN70 -> -NaN70
-ddpls037 plus sNaN101 -> NaN101 Invalid_operation
-ddpls038 plus -sNaN101 -> -NaN101 Invalid_operation
-
--- finites
-ddpls101 plus 7 -> 7
-ddpls102 plus -7 -> -7
-ddpls103 plus 75 -> 75
-ddpls104 plus -75 -> -75
-ddpls105 plus 7.50 -> 7.50
-ddpls106 plus -7.50 -> -7.50
-ddpls107 plus 7.500 -> 7.500
-ddpls108 plus -7.500 -> -7.500
-
--- zeros
-ddpls111 plus 0 -> 0
-ddpls112 plus -0 -> 0
-ddpls113 plus 0E+4 -> 0E+4
-ddpls114 plus -0E+4 -> 0E+4
-ddpls115 plus 0.0000 -> 0.0000
-ddpls116 plus -0.0000 -> 0.0000
-ddpls117 plus 0E-141 -> 0E-141
-ddpls118 plus -0E-141 -> 0E-141
-
--- full coefficients, alternating bits
-ddpls121 plus 2682682682682682 -> 2682682682682682
-ddpls122 plus -2682682682682682 -> -2682682682682682
-ddpls123 plus 1341341341341341 -> 1341341341341341
-ddpls124 plus -1341341341341341 -> -1341341341341341
-
--- Nmax, Nmin, Ntiny
-ddpls131 plus 9.999999999999999E+384 -> 9.999999999999999E+384
-ddpls132 plus 1E-383 -> 1E-383
-ddpls133 plus 1.000000000000000E-383 -> 1.000000000000000E-383
-ddpls134 plus 1E-398 -> 1E-398 Subnormal
-
-ddpls135 plus -1E-398 -> -1E-398 Subnormal
-ddpls136 plus -1.000000000000000E-383 -> -1.000000000000000E-383
-ddpls137 plus -1E-383 -> -1E-383
-ddpls138 plus -9.999999999999999E+384 -> -9.999999999999999E+384
+------------------------------------------------------------------------ +-- ddPlus.decTest -- decDouble 0+x -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- All operands and results are decDoubles. +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +-- Sanity check +ddpls001 plus +7.50 -> 7.50 + +-- Infinities +ddpls011 plus Infinity -> Infinity +ddpls012 plus -Infinity -> -Infinity + +-- NaNs, 0 payload +ddpls021 plus NaN -> NaN +ddpls022 plus -NaN -> -NaN +ddpls023 plus sNaN -> NaN Invalid_operation +ddpls024 plus -sNaN -> -NaN Invalid_operation + +-- NaNs, non-0 payload +ddpls031 plus NaN13 -> NaN13 +ddpls032 plus -NaN13 -> -NaN13 +ddpls033 plus sNaN13 -> NaN13 Invalid_operation +ddpls034 plus -sNaN13 -> -NaN13 Invalid_operation +ddpls035 plus NaN70 -> NaN70 +ddpls036 plus -NaN70 -> -NaN70 +ddpls037 plus sNaN101 -> NaN101 Invalid_operation +ddpls038 plus -sNaN101 -> -NaN101 Invalid_operation + +-- finites +ddpls101 plus 7 -> 7 +ddpls102 plus -7 -> -7 +ddpls103 plus 75 -> 75 +ddpls104 plus -75 -> -75 +ddpls105 plus 7.50 -> 7.50 +ddpls106 plus -7.50 -> -7.50 +ddpls107 plus 7.500 -> 7.500 +ddpls108 plus -7.500 -> -7.500 + +-- zeros +ddpls111 plus 0 -> 0 +ddpls112 plus -0 -> 0 +ddpls113 plus 0E+4 -> 0E+4 +ddpls114 plus -0E+4 -> 0E+4 +ddpls115 plus 0.0000 -> 0.0000 +ddpls116 plus -0.0000 -> 0.0000 +ddpls117 plus 0E-141 -> 0E-141 +ddpls118 plus -0E-141 -> 0E-141 + +-- full coefficients, alternating bits +ddpls121 plus 2682682682682682 -> 2682682682682682 +ddpls122 plus -2682682682682682 -> -2682682682682682 +ddpls123 plus 1341341341341341 -> 1341341341341341 +ddpls124 plus -1341341341341341 -> -1341341341341341 + +-- Nmax, Nmin, Ntiny +ddpls131 plus 9.999999999999999E+384 -> 9.999999999999999E+384 +ddpls132 plus 1E-383 -> 1E-383 +ddpls133 plus 1.000000000000000E-383 -> 1.000000000000000E-383 +ddpls134 plus 1E-398 -> 1E-398 Subnormal + +ddpls135 plus -1E-398 -> -1E-398 Subnormal +ddpls136 plus -1.000000000000000E-383 -> -1.000000000000000E-383 +ddpls137 plus -1E-383 -> -1E-383 +ddpls138 plus -9.999999999999999E+384 -> -9.999999999999999E+384 diff --git a/Lib/test/decimaltestdata/ddQuantize.decTest b/Lib/test/decimaltestdata/ddQuantize.decTest index 9177620169..0d19c9dcec 100644 --- a/Lib/test/decimaltestdata/ddQuantize.decTest +++ b/Lib/test/decimaltestdata/ddQuantize.decTest @@ -1,833 +1,833 @@ -------------------------------------------------------------------------
--- ddQuantize.decTest -- decDouble quantize operation --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- Most of the tests here assume a "regular pattern", where the
--- sign and coefficient are +1.
--- 2004.03.15 Underflow for quantize is suppressed
--- 2005.06.08 More extensive tests for 'does not fit'
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
--- sanity checks
-ddqua001 quantize 0 1e0 -> 0
-ddqua002 quantize 1 1e0 -> 1
-ddqua003 quantize 0.1 1e+2 -> 0E+2 Inexact Rounded
-ddqua005 quantize 0.1 1e+1 -> 0E+1 Inexact Rounded
-ddqua006 quantize 0.1 1e0 -> 0 Inexact Rounded
-ddqua007 quantize 0.1 1e-1 -> 0.1
-ddqua008 quantize 0.1 1e-2 -> 0.10
-ddqua009 quantize 0.1 1e-3 -> 0.100
-ddqua010 quantize 0.9 1e+2 -> 0E+2 Inexact Rounded
-ddqua011 quantize 0.9 1e+1 -> 0E+1 Inexact Rounded
-ddqua012 quantize 0.9 1e+0 -> 1 Inexact Rounded
-ddqua013 quantize 0.9 1e-1 -> 0.9
-ddqua014 quantize 0.9 1e-2 -> 0.90
-ddqua015 quantize 0.9 1e-3 -> 0.900
--- negatives
-ddqua021 quantize -0 1e0 -> -0
-ddqua022 quantize -1 1e0 -> -1
-ddqua023 quantize -0.1 1e+2 -> -0E+2 Inexact Rounded
-ddqua025 quantize -0.1 1e+1 -> -0E+1 Inexact Rounded
-ddqua026 quantize -0.1 1e0 -> -0 Inexact Rounded
-ddqua027 quantize -0.1 1e-1 -> -0.1
-ddqua028 quantize -0.1 1e-2 -> -0.10
-ddqua029 quantize -0.1 1e-3 -> -0.100
-ddqua030 quantize -0.9 1e+2 -> -0E+2 Inexact Rounded
-ddqua031 quantize -0.9 1e+1 -> -0E+1 Inexact Rounded
-ddqua032 quantize -0.9 1e+0 -> -1 Inexact Rounded
-ddqua033 quantize -0.9 1e-1 -> -0.9
-ddqua034 quantize -0.9 1e-2 -> -0.90
-ddqua035 quantize -0.9 1e-3 -> -0.900
-ddqua036 quantize -0.5 1e+2 -> -0E+2 Inexact Rounded
-ddqua037 quantize -0.5 1e+1 -> -0E+1 Inexact Rounded
-ddqua038 quantize -0.5 1e+0 -> -0 Inexact Rounded
-ddqua039 quantize -0.5 1e-1 -> -0.5
-ddqua040 quantize -0.5 1e-2 -> -0.50
-ddqua041 quantize -0.5 1e-3 -> -0.500
-ddqua042 quantize -0.9 1e+2 -> -0E+2 Inexact Rounded
-ddqua043 quantize -0.9 1e+1 -> -0E+1 Inexact Rounded
-ddqua044 quantize -0.9 1e+0 -> -1 Inexact Rounded
-ddqua045 quantize -0.9 1e-1 -> -0.9
-ddqua046 quantize -0.9 1e-2 -> -0.90
-ddqua047 quantize -0.9 1e-3 -> -0.900
-
--- examples from Specification
-ddqua060 quantize 2.17 0.001 -> 2.170
-ddqua061 quantize 2.17 0.01 -> 2.17
-ddqua062 quantize 2.17 0.1 -> 2.2 Inexact Rounded
-ddqua063 quantize 2.17 1e+0 -> 2 Inexact Rounded
-ddqua064 quantize 2.17 1e+1 -> 0E+1 Inexact Rounded
-ddqua065 quantize -Inf Inf -> -Infinity
-ddqua066 quantize 2 Inf -> NaN Invalid_operation
-ddqua067 quantize -0.1 1 -> -0 Inexact Rounded
-ddqua068 quantize -0 1e+5 -> -0E+5
-ddqua069 quantize +123456789012345.6 1e-2 -> NaN Invalid_operation
-ddqua070 quantize -987654335236450.6 1e-2 -> NaN Invalid_operation
-ddqua071 quantize 217 1e-1 -> 217.0
-ddqua072 quantize 217 1e+0 -> 217
-ddqua073 quantize 217 1e+1 -> 2.2E+2 Inexact Rounded
-ddqua074 quantize 217 1e+2 -> 2E+2 Inexact Rounded
-
--- general tests ..
-ddqua089 quantize 12 1e+4 -> 0E+4 Inexact Rounded
-ddqua090 quantize 12 1e+3 -> 0E+3 Inexact Rounded
-ddqua091 quantize 12 1e+2 -> 0E+2 Inexact Rounded
-ddqua092 quantize 12 1e+1 -> 1E+1 Inexact Rounded
-ddqua093 quantize 1.2345 1e-2 -> 1.23 Inexact Rounded
-ddqua094 quantize 1.2355 1e-2 -> 1.24 Inexact Rounded
-ddqua095 quantize 1.2345 1e-6 -> 1.234500
-ddqua096 quantize 9.9999 1e-2 -> 10.00 Inexact Rounded
-ddqua097 quantize 0.0001 1e-2 -> 0.00 Inexact Rounded
-ddqua098 quantize 0.001 1e-2 -> 0.00 Inexact Rounded
-ddqua099 quantize 0.009 1e-2 -> 0.01 Inexact Rounded
-ddqua100 quantize 92 1e+2 -> 1E+2 Inexact Rounded
-
-ddqua101 quantize -1 1e0 -> -1
-ddqua102 quantize -1 1e-1 -> -1.0
-ddqua103 quantize -1 1e-2 -> -1.00
-ddqua104 quantize 0 1e0 -> 0
-ddqua105 quantize 0 1e-1 -> 0.0
-ddqua106 quantize 0 1e-2 -> 0.00
-ddqua107 quantize 0.00 1e0 -> 0
-ddqua108 quantize 0 1e+1 -> 0E+1
-ddqua109 quantize 0 1e+2 -> 0E+2
-ddqua110 quantize +1 1e0 -> 1
-ddqua111 quantize +1 1e-1 -> 1.0
-ddqua112 quantize +1 1e-2 -> 1.00
-
-ddqua120 quantize 1.04 1e-3 -> 1.040
-ddqua121 quantize 1.04 1e-2 -> 1.04
-ddqua122 quantize 1.04 1e-1 -> 1.0 Inexact Rounded
-ddqua123 quantize 1.04 1e0 -> 1 Inexact Rounded
-ddqua124 quantize 1.05 1e-3 -> 1.050
-ddqua125 quantize 1.05 1e-2 -> 1.05
-ddqua126 quantize 1.05 1e-1 -> 1.0 Inexact Rounded
-ddqua131 quantize 1.05 1e0 -> 1 Inexact Rounded
-ddqua132 quantize 1.06 1e-3 -> 1.060
-ddqua133 quantize 1.06 1e-2 -> 1.06
-ddqua134 quantize 1.06 1e-1 -> 1.1 Inexact Rounded
-ddqua135 quantize 1.06 1e0 -> 1 Inexact Rounded
-
-ddqua140 quantize -10 1e-2 -> -10.00
-ddqua141 quantize +1 1e-2 -> 1.00
-ddqua142 quantize +10 1e-2 -> 10.00
-ddqua143 quantize 1E+17 1e-2 -> NaN Invalid_operation
-ddqua144 quantize 1E-17 1e-2 -> 0.00 Inexact Rounded
-ddqua145 quantize 1E-3 1e-2 -> 0.00 Inexact Rounded
-ddqua146 quantize 1E-2 1e-2 -> 0.01
-ddqua147 quantize 1E-1 1e-2 -> 0.10
-ddqua148 quantize 0E-17 1e-2 -> 0.00
-
-ddqua150 quantize 1.0600 1e-5 -> 1.06000
-ddqua151 quantize 1.0600 1e-4 -> 1.0600
-ddqua152 quantize 1.0600 1e-3 -> 1.060 Rounded
-ddqua153 quantize 1.0600 1e-2 -> 1.06 Rounded
-ddqua154 quantize 1.0600 1e-1 -> 1.1 Inexact Rounded
-ddqua155 quantize 1.0600 1e0 -> 1 Inexact Rounded
-
--- a couple where rounding was different in base tests
-rounding: half_up
-ddqua157 quantize -0.5 1e+0 -> -1 Inexact Rounded
-ddqua158 quantize 1.05 1e-1 -> 1.1 Inexact Rounded
-ddqua159 quantize 1.06 1e0 -> 1 Inexact Rounded
-rounding: half_even
-
--- base tests with non-1 coefficients
-ddqua161 quantize 0 -9e0 -> 0
-ddqua162 quantize 1 -7e0 -> 1
-ddqua163 quantize 0.1 -1e+2 -> 0E+2 Inexact Rounded
-ddqua165 quantize 0.1 0e+1 -> 0E+1 Inexact Rounded
-ddqua166 quantize 0.1 2e0 -> 0 Inexact Rounded
-ddqua167 quantize 0.1 3e-1 -> 0.1
-ddqua168 quantize 0.1 44e-2 -> 0.10
-ddqua169 quantize 0.1 555e-3 -> 0.100
-ddqua170 quantize 0.9 6666e+2 -> 0E+2 Inexact Rounded
-ddqua171 quantize 0.9 -777e+1 -> 0E+1 Inexact Rounded
-ddqua172 quantize 0.9 -88e+0 -> 1 Inexact Rounded
-ddqua173 quantize 0.9 -9e-1 -> 0.9
-ddqua174 quantize 0.9 0e-2 -> 0.90
-ddqua175 quantize 0.9 1.1e-3 -> 0.9000
--- negatives
-ddqua181 quantize -0 1.1e0 -> -0.0
-ddqua182 quantize -1 -1e0 -> -1
-ddqua183 quantize -0.1 11e+2 -> -0E+2 Inexact Rounded
-ddqua185 quantize -0.1 111e+1 -> -0E+1 Inexact Rounded
-ddqua186 quantize -0.1 71e0 -> -0 Inexact Rounded
-ddqua187 quantize -0.1 -91e-1 -> -0.1
-ddqua188 quantize -0.1 -.1e-2 -> -0.100
-ddqua189 quantize -0.1 -1e-3 -> -0.100
-ddqua190 quantize -0.9 0e+2 -> -0E+2 Inexact Rounded
-ddqua191 quantize -0.9 -0e+1 -> -0E+1 Inexact Rounded
-ddqua192 quantize -0.9 -10e+0 -> -1 Inexact Rounded
-ddqua193 quantize -0.9 100e-1 -> -0.9
-ddqua194 quantize -0.9 999e-2 -> -0.90
-
--- +ve exponents ..
-ddqua201 quantize -1 1e+0 -> -1
-ddqua202 quantize -1 1e+1 -> -0E+1 Inexact Rounded
-ddqua203 quantize -1 1e+2 -> -0E+2 Inexact Rounded
-ddqua204 quantize 0 1e+0 -> 0
-ddqua205 quantize 0 1e+1 -> 0E+1
-ddqua206 quantize 0 1e+2 -> 0E+2
-ddqua207 quantize +1 1e+0 -> 1
-ddqua208 quantize +1 1e+1 -> 0E+1 Inexact Rounded
-ddqua209 quantize +1 1e+2 -> 0E+2 Inexact Rounded
-
-ddqua220 quantize 1.04 1e+3 -> 0E+3 Inexact Rounded
-ddqua221 quantize 1.04 1e+2 -> 0E+2 Inexact Rounded
-ddqua222 quantize 1.04 1e+1 -> 0E+1 Inexact Rounded
-ddqua223 quantize 1.04 1e+0 -> 1 Inexact Rounded
-ddqua224 quantize 1.05 1e+3 -> 0E+3 Inexact Rounded
-ddqua225 quantize 1.05 1e+2 -> 0E+2 Inexact Rounded
-ddqua226 quantize 1.05 1e+1 -> 0E+1 Inexact Rounded
-ddqua227 quantize 1.05 1e+0 -> 1 Inexact Rounded
-ddqua228 quantize 1.05 1e+3 -> 0E+3 Inexact Rounded
-ddqua229 quantize 1.05 1e+2 -> 0E+2 Inexact Rounded
-ddqua230 quantize 1.05 1e+1 -> 0E+1 Inexact Rounded
-ddqua231 quantize 1.05 1e+0 -> 1 Inexact Rounded
-ddqua232 quantize 1.06 1e+3 -> 0E+3 Inexact Rounded
-ddqua233 quantize 1.06 1e+2 -> 0E+2 Inexact Rounded
-ddqua234 quantize 1.06 1e+1 -> 0E+1 Inexact Rounded
-ddqua235 quantize 1.06 1e+0 -> 1 Inexact Rounded
-
-ddqua240 quantize -10 1e+1 -> -1E+1 Rounded
-ddqua241 quantize +1 1e+1 -> 0E+1 Inexact Rounded
-ddqua242 quantize +10 1e+1 -> 1E+1 Rounded
-ddqua243 quantize 1E+1 1e+1 -> 1E+1 -- underneath this is E+1
-ddqua244 quantize 1E+2 1e+1 -> 1.0E+2 -- underneath this is E+1
-ddqua245 quantize 1E+3 1e+1 -> 1.00E+3 -- underneath this is E+1
-ddqua246 quantize 1E+4 1e+1 -> 1.000E+4 -- underneath this is E+1
-ddqua247 quantize 1E+5 1e+1 -> 1.0000E+5 -- underneath this is E+1
-ddqua248 quantize 1E+6 1e+1 -> 1.00000E+6 -- underneath this is E+1
-ddqua249 quantize 1E+7 1e+1 -> 1.000000E+7 -- underneath this is E+1
-ddqua250 quantize 1E+8 1e+1 -> 1.0000000E+8 -- underneath this is E+1
-ddqua251 quantize 1E+9 1e+1 -> 1.00000000E+9 -- underneath this is E+1
--- next one tries to add 9 zeros
-ddqua252 quantize 1E+17 1e+1 -> NaN Invalid_operation
-ddqua253 quantize 1E-17 1e+1 -> 0E+1 Inexact Rounded
-ddqua254 quantize 1E-2 1e+1 -> 0E+1 Inexact Rounded
-ddqua255 quantize 0E-17 1e+1 -> 0E+1
-ddqua256 quantize -0E-17 1e+1 -> -0E+1
-ddqua257 quantize -0E-1 1e+1 -> -0E+1
-ddqua258 quantize -0 1e+1 -> -0E+1
-ddqua259 quantize -0E+1 1e+1 -> -0E+1
-
-ddqua260 quantize -10 1e+2 -> -0E+2 Inexact Rounded
-ddqua261 quantize +1 1e+2 -> 0E+2 Inexact Rounded
-ddqua262 quantize +10 1e+2 -> 0E+2 Inexact Rounded
-ddqua263 quantize 1E+1 1e+2 -> 0E+2 Inexact Rounded
-ddqua264 quantize 1E+2 1e+2 -> 1E+2
-ddqua265 quantize 1E+3 1e+2 -> 1.0E+3
-ddqua266 quantize 1E+4 1e+2 -> 1.00E+4
-ddqua267 quantize 1E+5 1e+2 -> 1.000E+5
-ddqua268 quantize 1E+6 1e+2 -> 1.0000E+6
-ddqua269 quantize 1E+7 1e+2 -> 1.00000E+7
-ddqua270 quantize 1E+8 1e+2 -> 1.000000E+8
-ddqua271 quantize 1E+9 1e+2 -> 1.0000000E+9
-ddqua272 quantize 1E+10 1e+2 -> 1.00000000E+10
-ddqua273 quantize 1E-10 1e+2 -> 0E+2 Inexact Rounded
-ddqua274 quantize 1E-2 1e+2 -> 0E+2 Inexact Rounded
-ddqua275 quantize 0E-10 1e+2 -> 0E+2
-
-ddqua280 quantize -10 1e+3 -> -0E+3 Inexact Rounded
-ddqua281 quantize +1 1e+3 -> 0E+3 Inexact Rounded
-ddqua282 quantize +10 1e+3 -> 0E+3 Inexact Rounded
-ddqua283 quantize 1E+1 1e+3 -> 0E+3 Inexact Rounded
-ddqua284 quantize 1E+2 1e+3 -> 0E+3 Inexact Rounded
-ddqua285 quantize 1E+3 1e+3 -> 1E+3
-ddqua286 quantize 1E+4 1e+3 -> 1.0E+4
-ddqua287 quantize 1E+5 1e+3 -> 1.00E+5
-ddqua288 quantize 1E+6 1e+3 -> 1.000E+6
-ddqua289 quantize 1E+7 1e+3 -> 1.0000E+7
-ddqua290 quantize 1E+8 1e+3 -> 1.00000E+8
-ddqua291 quantize 1E+9 1e+3 -> 1.000000E+9
-ddqua292 quantize 1E+10 1e+3 -> 1.0000000E+10
-ddqua293 quantize 1E-10 1e+3 -> 0E+3 Inexact Rounded
-ddqua294 quantize 1E-2 1e+3 -> 0E+3 Inexact Rounded
-ddqua295 quantize 0E-10 1e+3 -> 0E+3
-
--- round up from below [sign wrong in JIT compiler once]
-ddqua300 quantize 0.0078 1e-5 -> 0.00780
-ddqua301 quantize 0.0078 1e-4 -> 0.0078
-ddqua302 quantize 0.0078 1e-3 -> 0.008 Inexact Rounded
-ddqua303 quantize 0.0078 1e-2 -> 0.01 Inexact Rounded
-ddqua304 quantize 0.0078 1e-1 -> 0.0 Inexact Rounded
-ddqua305 quantize 0.0078 1e0 -> 0 Inexact Rounded
-ddqua306 quantize 0.0078 1e+1 -> 0E+1 Inexact Rounded
-ddqua307 quantize 0.0078 1e+2 -> 0E+2 Inexact Rounded
-
-ddqua310 quantize -0.0078 1e-5 -> -0.00780
-ddqua311 quantize -0.0078 1e-4 -> -0.0078
-ddqua312 quantize -0.0078 1e-3 -> -0.008 Inexact Rounded
-ddqua313 quantize -0.0078 1e-2 -> -0.01 Inexact Rounded
-ddqua314 quantize -0.0078 1e-1 -> -0.0 Inexact Rounded
-ddqua315 quantize -0.0078 1e0 -> -0 Inexact Rounded
-ddqua316 quantize -0.0078 1e+1 -> -0E+1 Inexact Rounded
-ddqua317 quantize -0.0078 1e+2 -> -0E+2 Inexact Rounded
-
-ddqua320 quantize 0.078 1e-5 -> 0.07800
-ddqua321 quantize 0.078 1e-4 -> 0.0780
-ddqua322 quantize 0.078 1e-3 -> 0.078
-ddqua323 quantize 0.078 1e-2 -> 0.08 Inexact Rounded
-ddqua324 quantize 0.078 1e-1 -> 0.1 Inexact Rounded
-ddqua325 quantize 0.078 1e0 -> 0 Inexact Rounded
-ddqua326 quantize 0.078 1e+1 -> 0E+1 Inexact Rounded
-ddqua327 quantize 0.078 1e+2 -> 0E+2 Inexact Rounded
-
-ddqua330 quantize -0.078 1e-5 -> -0.07800
-ddqua331 quantize -0.078 1e-4 -> -0.0780
-ddqua332 quantize -0.078 1e-3 -> -0.078
-ddqua333 quantize -0.078 1e-2 -> -0.08 Inexact Rounded
-ddqua334 quantize -0.078 1e-1 -> -0.1 Inexact Rounded
-ddqua335 quantize -0.078 1e0 -> -0 Inexact Rounded
-ddqua336 quantize -0.078 1e+1 -> -0E+1 Inexact Rounded
-ddqua337 quantize -0.078 1e+2 -> -0E+2 Inexact Rounded
-
-ddqua340 quantize 0.78 1e-5 -> 0.78000
-ddqua341 quantize 0.78 1e-4 -> 0.7800
-ddqua342 quantize 0.78 1e-3 -> 0.780
-ddqua343 quantize 0.78 1e-2 -> 0.78
-ddqua344 quantize 0.78 1e-1 -> 0.8 Inexact Rounded
-ddqua345 quantize 0.78 1e0 -> 1 Inexact Rounded
-ddqua346 quantize 0.78 1e+1 -> 0E+1 Inexact Rounded
-ddqua347 quantize 0.78 1e+2 -> 0E+2 Inexact Rounded
-
-ddqua350 quantize -0.78 1e-5 -> -0.78000
-ddqua351 quantize -0.78 1e-4 -> -0.7800
-ddqua352 quantize -0.78 1e-3 -> -0.780
-ddqua353 quantize -0.78 1e-2 -> -0.78
-ddqua354 quantize -0.78 1e-1 -> -0.8 Inexact Rounded
-ddqua355 quantize -0.78 1e0 -> -1 Inexact Rounded
-ddqua356 quantize -0.78 1e+1 -> -0E+1 Inexact Rounded
-ddqua357 quantize -0.78 1e+2 -> -0E+2 Inexact Rounded
-
-ddqua360 quantize 7.8 1e-5 -> 7.80000
-ddqua361 quantize 7.8 1e-4 -> 7.8000
-ddqua362 quantize 7.8 1e-3 -> 7.800
-ddqua363 quantize 7.8 1e-2 -> 7.80
-ddqua364 quantize 7.8 1e-1 -> 7.8
-ddqua365 quantize 7.8 1e0 -> 8 Inexact Rounded
-ddqua366 quantize 7.8 1e+1 -> 1E+1 Inexact Rounded
-ddqua367 quantize 7.8 1e+2 -> 0E+2 Inexact Rounded
-ddqua368 quantize 7.8 1e+3 -> 0E+3 Inexact Rounded
-
-ddqua370 quantize -7.8 1e-5 -> -7.80000
-ddqua371 quantize -7.8 1e-4 -> -7.8000
-ddqua372 quantize -7.8 1e-3 -> -7.800
-ddqua373 quantize -7.8 1e-2 -> -7.80
-ddqua374 quantize -7.8 1e-1 -> -7.8
-ddqua375 quantize -7.8 1e0 -> -8 Inexact Rounded
-ddqua376 quantize -7.8 1e+1 -> -1E+1 Inexact Rounded
-ddqua377 quantize -7.8 1e+2 -> -0E+2 Inexact Rounded
-ddqua378 quantize -7.8 1e+3 -> -0E+3 Inexact Rounded
-
--- some individuals
-ddqua380 quantize 1234567352364.506 1e-2 -> 1234567352364.51 Inexact Rounded
-ddqua381 quantize 12345673523645.06 1e-2 -> 12345673523645.06
-ddqua382 quantize 123456735236450.6 1e-2 -> NaN Invalid_operation
-ddqua383 quantize 1234567352364506 1e-2 -> NaN Invalid_operation
-ddqua384 quantize -1234567352364.506 1e-2 -> -1234567352364.51 Inexact Rounded
-ddqua385 quantize -12345673523645.06 1e-2 -> -12345673523645.06
-ddqua386 quantize -123456735236450.6 1e-2 -> NaN Invalid_operation
-ddqua387 quantize -1234567352364506 1e-2 -> NaN Invalid_operation
-
-rounding: down
-ddqua389 quantize 123456735236450.6 1e-2 -> NaN Invalid_operation
--- ? should that one instead have been:
--- ddqua389 quantize 123456735236450.6 1e-2 -> NaN Invalid_operation
-rounding: half_up
-
--- and a few more from e-mail discussions
-ddqua391 quantize 12345678912.34567 1e-3 -> 12345678912.346 Inexact Rounded
-ddqua392 quantize 123456789123.4567 1e-3 -> 123456789123.457 Inexact Rounded
-ddqua393 quantize 1234567891234.567 1e-3 -> 1234567891234.567
-ddqua394 quantize 12345678912345.67 1e-3 -> NaN Invalid_operation
-ddqua395 quantize 123456789123456.7 1e-3 -> NaN Invalid_operation
-ddqua396 quantize 1234567891234567. 1e-3 -> NaN Invalid_operation
-
--- some 9999 round-up cases
-ddqua400 quantize 9.999 1e-5 -> 9.99900
-ddqua401 quantize 9.999 1e-4 -> 9.9990
-ddqua402 quantize 9.999 1e-3 -> 9.999
-ddqua403 quantize 9.999 1e-2 -> 10.00 Inexact Rounded
-ddqua404 quantize 9.999 1e-1 -> 10.0 Inexact Rounded
-ddqua405 quantize 9.999 1e0 -> 10 Inexact Rounded
-ddqua406 quantize 9.999 1e1 -> 1E+1 Inexact Rounded
-ddqua407 quantize 9.999 1e2 -> 0E+2 Inexact Rounded
-
-ddqua410 quantize 0.999 1e-5 -> 0.99900
-ddqua411 quantize 0.999 1e-4 -> 0.9990
-ddqua412 quantize 0.999 1e-3 -> 0.999
-ddqua413 quantize 0.999 1e-2 -> 1.00 Inexact Rounded
-ddqua414 quantize 0.999 1e-1 -> 1.0 Inexact Rounded
-ddqua415 quantize 0.999 1e0 -> 1 Inexact Rounded
-ddqua416 quantize 0.999 1e1 -> 0E+1 Inexact Rounded
-
-ddqua420 quantize 0.0999 1e-5 -> 0.09990
-ddqua421 quantize 0.0999 1e-4 -> 0.0999
-ddqua422 quantize 0.0999 1e-3 -> 0.100 Inexact Rounded
-ddqua423 quantize 0.0999 1e-2 -> 0.10 Inexact Rounded
-ddqua424 quantize 0.0999 1e-1 -> 0.1 Inexact Rounded
-ddqua425 quantize 0.0999 1e0 -> 0 Inexact Rounded
-ddqua426 quantize 0.0999 1e1 -> 0E+1 Inexact Rounded
-
-ddqua430 quantize 0.00999 1e-5 -> 0.00999
-ddqua431 quantize 0.00999 1e-4 -> 0.0100 Inexact Rounded
-ddqua432 quantize 0.00999 1e-3 -> 0.010 Inexact Rounded
-ddqua433 quantize 0.00999 1e-2 -> 0.01 Inexact Rounded
-ddqua434 quantize 0.00999 1e-1 -> 0.0 Inexact Rounded
-ddqua435 quantize 0.00999 1e0 -> 0 Inexact Rounded
-ddqua436 quantize 0.00999 1e1 -> 0E+1 Inexact Rounded
-
-ddqua440 quantize 0.000999 1e-5 -> 0.00100 Inexact Rounded
-ddqua441 quantize 0.000999 1e-4 -> 0.0010 Inexact Rounded
-ddqua442 quantize 0.000999 1e-3 -> 0.001 Inexact Rounded
-ddqua443 quantize 0.000999 1e-2 -> 0.00 Inexact Rounded
-ddqua444 quantize 0.000999 1e-1 -> 0.0 Inexact Rounded
-ddqua445 quantize 0.000999 1e0 -> 0 Inexact Rounded
-ddqua446 quantize 0.000999 1e1 -> 0E+1 Inexact Rounded
-
-ddqua1001 quantize 0.000 0.001 -> 0.000
-ddqua1002 quantize 0.001 0.001 -> 0.001
-ddqua1003 quantize 0.0012 0.001 -> 0.001 Inexact Rounded
-ddqua1004 quantize 0.0018 0.001 -> 0.002 Inexact Rounded
-ddqua1005 quantize 0.501 0.001 -> 0.501
-ddqua1006 quantize 0.5012 0.001 -> 0.501 Inexact Rounded
-ddqua1007 quantize 0.5018 0.001 -> 0.502 Inexact Rounded
-ddqua1008 quantize 0.999 0.001 -> 0.999
-
-ddqua481 quantize 12345678000 1e+3 -> 1.2345678E+10 Rounded
-ddqua482 quantize 1234567800 1e+1 -> 1.23456780E+9 Rounded
-ddqua483 quantize 1234567890 1e+1 -> 1.23456789E+9 Rounded
-ddqua484 quantize 1234567891 1e+1 -> 1.23456789E+9 Inexact Rounded
-ddqua485 quantize 12345678901 1e+2 -> 1.23456789E+10 Inexact Rounded
-ddqua486 quantize 1234567896 1e+1 -> 1.23456790E+9 Inexact Rounded
--- a potential double-round
-ddqua487 quantize 1234.987643 1e-4 -> 1234.9876 Inexact Rounded
-ddqua488 quantize 1234.987647 1e-4 -> 1234.9876 Inexact Rounded
-
-ddqua491 quantize 12345678000 1e+3 -> 1.2345678E+10 Rounded
-ddqua492 quantize 1234567800 1e+1 -> 1.23456780E+9 Rounded
-ddqua493 quantize 1234567890 1e+1 -> 1.23456789E+9 Rounded
-ddqua494 quantize 1234567891 1e+1 -> 1.23456789E+9 Inexact Rounded
-ddqua495 quantize 12345678901 1e+2 -> 1.23456789E+10 Inexact Rounded
-ddqua496 quantize 1234567896 1e+1 -> 1.23456790E+9 Inexact Rounded
-ddqua497 quantize 1234.987643 1e-4 -> 1234.9876 Inexact Rounded
-ddqua498 quantize 1234.987647 1e-4 -> 1234.9876 Inexact Rounded
-
--- Zeros
-ddqua500 quantize 0 1e1 -> 0E+1
-ddqua501 quantize 0 1e0 -> 0
-ddqua502 quantize 0 1e-1 -> 0.0
-ddqua503 quantize 0.0 1e-1 -> 0.0
-ddqua504 quantize 0.0 1e0 -> 0
-ddqua505 quantize 0.0 1e+1 -> 0E+1
-ddqua506 quantize 0E+1 1e-1 -> 0.0
-ddqua507 quantize 0E+1 1e0 -> 0
-ddqua508 quantize 0E+1 1e+1 -> 0E+1
-ddqua509 quantize -0 1e1 -> -0E+1
-ddqua510 quantize -0 1e0 -> -0
-ddqua511 quantize -0 1e-1 -> -0.0
-ddqua512 quantize -0.0 1e-1 -> -0.0
-ddqua513 quantize -0.0 1e0 -> -0
-ddqua514 quantize -0.0 1e+1 -> -0E+1
-ddqua515 quantize -0E+1 1e-1 -> -0.0
-ddqua516 quantize -0E+1 1e0 -> -0
-ddqua517 quantize -0E+1 1e+1 -> -0E+1
-
--- Suspicious RHS values
-ddqua520 quantize 1.234 1e359 -> 0E+359 Inexact Rounded
-ddqua521 quantize 123.456 1e359 -> 0E+359 Inexact Rounded
-ddqua522 quantize 1.234 1e359 -> 0E+359 Inexact Rounded
-ddqua523 quantize 123.456 1e359 -> 0E+359 Inexact Rounded
--- next four are "won't fit" overfl
-ddqua526 quantize 1.234 1e-299 -> NaN Invalid_operation
-ddqua527 quantize 123.456 1e-299 -> NaN Invalid_operation
-ddqua528 quantize 1.234 1e-299 -> NaN Invalid_operation
-ddqua529 quantize 123.456 1e-299 -> NaN Invalid_operation
-
-ddqua532 quantize 1.234E+299 1e299 -> 1E+299 Inexact Rounded
-ddqua533 quantize 1.234E+298 1e299 -> 0E+299 Inexact Rounded
-ddqua534 quantize 1.234 1e299 -> 0E+299 Inexact Rounded
-ddqua537 quantize 0 1e-299 -> 0E-299
--- next two are "won't fit" overflows
-ddqua538 quantize 1.234 1e-299 -> NaN Invalid_operation
-ddqua539 quantize 1.234 1e-300 -> NaN Invalid_operation
--- [more below]
-
--- Specials
-ddqua580 quantize Inf -Inf -> Infinity
-ddqua581 quantize Inf 1e-299 -> NaN Invalid_operation
-ddqua582 quantize Inf 1e-1 -> NaN Invalid_operation
-ddqua583 quantize Inf 1e0 -> NaN Invalid_operation
-ddqua584 quantize Inf 1e1 -> NaN Invalid_operation
-ddqua585 quantize Inf 1e299 -> NaN Invalid_operation
-ddqua586 quantize Inf Inf -> Infinity
-ddqua587 quantize -1000 Inf -> NaN Invalid_operation
-ddqua588 quantize -Inf Inf -> -Infinity
-ddqua589 quantize -1 Inf -> NaN Invalid_operation
-ddqua590 quantize 0 Inf -> NaN Invalid_operation
-ddqua591 quantize 1 Inf -> NaN Invalid_operation
-ddqua592 quantize 1000 Inf -> NaN Invalid_operation
-ddqua593 quantize Inf Inf -> Infinity
-ddqua594 quantize Inf 1e-0 -> NaN Invalid_operation
-ddqua595 quantize -0 Inf -> NaN Invalid_operation
-
-ddqua600 quantize -Inf -Inf -> -Infinity
-ddqua601 quantize -Inf 1e-299 -> NaN Invalid_operation
-ddqua602 quantize -Inf 1e-1 -> NaN Invalid_operation
-ddqua603 quantize -Inf 1e0 -> NaN Invalid_operation
-ddqua604 quantize -Inf 1e1 -> NaN Invalid_operation
-ddqua605 quantize -Inf 1e299 -> NaN Invalid_operation
-ddqua606 quantize -Inf Inf -> -Infinity
-ddqua607 quantize -1000 Inf -> NaN Invalid_operation
-ddqua608 quantize -Inf -Inf -> -Infinity
-ddqua609 quantize -1 -Inf -> NaN Invalid_operation
-ddqua610 quantize 0 -Inf -> NaN Invalid_operation
-ddqua611 quantize 1 -Inf -> NaN Invalid_operation
-ddqua612 quantize 1000 -Inf -> NaN Invalid_operation
-ddqua613 quantize Inf -Inf -> Infinity
-ddqua614 quantize -Inf 1e-0 -> NaN Invalid_operation
-ddqua615 quantize -0 -Inf -> NaN Invalid_operation
-
-ddqua621 quantize NaN -Inf -> NaN
-ddqua622 quantize NaN 1e-299 -> NaN
-ddqua623 quantize NaN 1e-1 -> NaN
-ddqua624 quantize NaN 1e0 -> NaN
-ddqua625 quantize NaN 1e1 -> NaN
-ddqua626 quantize NaN 1e299 -> NaN
-ddqua627 quantize NaN Inf -> NaN
-ddqua628 quantize NaN NaN -> NaN
-ddqua629 quantize -Inf NaN -> NaN
-ddqua630 quantize -1000 NaN -> NaN
-ddqua631 quantize -1 NaN -> NaN
-ddqua632 quantize 0 NaN -> NaN
-ddqua633 quantize 1 NaN -> NaN
-ddqua634 quantize 1000 NaN -> NaN
-ddqua635 quantize Inf NaN -> NaN
-ddqua636 quantize NaN 1e-0 -> NaN
-ddqua637 quantize -0 NaN -> NaN
-
-ddqua641 quantize sNaN -Inf -> NaN Invalid_operation
-ddqua642 quantize sNaN 1e-299 -> NaN Invalid_operation
-ddqua643 quantize sNaN 1e-1 -> NaN Invalid_operation
-ddqua644 quantize sNaN 1e0 -> NaN Invalid_operation
-ddqua645 quantize sNaN 1e1 -> NaN Invalid_operation
-ddqua646 quantize sNaN 1e299 -> NaN Invalid_operation
-ddqua647 quantize sNaN NaN -> NaN Invalid_operation
-ddqua648 quantize sNaN sNaN -> NaN Invalid_operation
-ddqua649 quantize NaN sNaN -> NaN Invalid_operation
-ddqua650 quantize -Inf sNaN -> NaN Invalid_operation
-ddqua651 quantize -1000 sNaN -> NaN Invalid_operation
-ddqua652 quantize -1 sNaN -> NaN Invalid_operation
-ddqua653 quantize 0 sNaN -> NaN Invalid_operation
-ddqua654 quantize 1 sNaN -> NaN Invalid_operation
-ddqua655 quantize 1000 sNaN -> NaN Invalid_operation
-ddqua656 quantize Inf sNaN -> NaN Invalid_operation
-ddqua657 quantize NaN sNaN -> NaN Invalid_operation
-ddqua658 quantize sNaN 1e-0 -> NaN Invalid_operation
-ddqua659 quantize -0 sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-ddqua661 quantize NaN9 -Inf -> NaN9
-ddqua662 quantize NaN8 919 -> NaN8
-ddqua663 quantize NaN71 Inf -> NaN71
-ddqua664 quantize NaN6 NaN5 -> NaN6
-ddqua665 quantize -Inf NaN4 -> NaN4
-ddqua666 quantize -919 NaN31 -> NaN31
-ddqua667 quantize Inf NaN2 -> NaN2
-
-ddqua671 quantize sNaN99 -Inf -> NaN99 Invalid_operation
-ddqua672 quantize sNaN98 -11 -> NaN98 Invalid_operation
-ddqua673 quantize sNaN97 NaN -> NaN97 Invalid_operation
-ddqua674 quantize sNaN16 sNaN94 -> NaN16 Invalid_operation
-ddqua675 quantize NaN95 sNaN93 -> NaN93 Invalid_operation
-ddqua676 quantize -Inf sNaN92 -> NaN92 Invalid_operation
-ddqua677 quantize 088 sNaN91 -> NaN91 Invalid_operation
-ddqua678 quantize Inf sNaN90 -> NaN90 Invalid_operation
-ddqua679 quantize NaN sNaN88 -> NaN88 Invalid_operation
-
-ddqua681 quantize -NaN9 -Inf -> -NaN9
-ddqua682 quantize -NaN8 919 -> -NaN8
-ddqua683 quantize -NaN71 Inf -> -NaN71
-ddqua684 quantize -NaN6 -NaN5 -> -NaN6
-ddqua685 quantize -Inf -NaN4 -> -NaN4
-ddqua686 quantize -919 -NaN31 -> -NaN31
-ddqua687 quantize Inf -NaN2 -> -NaN2
-
-ddqua691 quantize -sNaN99 -Inf -> -NaN99 Invalid_operation
-ddqua692 quantize -sNaN98 -11 -> -NaN98 Invalid_operation
-ddqua693 quantize -sNaN97 NaN -> -NaN97 Invalid_operation
-ddqua694 quantize -sNaN16 sNaN94 -> -NaN16 Invalid_operation
-ddqua695 quantize -NaN95 -sNaN93 -> -NaN93 Invalid_operation
-ddqua696 quantize -Inf -sNaN92 -> -NaN92 Invalid_operation
-ddqua697 quantize 088 -sNaN91 -> -NaN91 Invalid_operation
-ddqua698 quantize Inf -sNaN90 -> -NaN90 Invalid_operation
-ddqua699 quantize NaN -sNaN88 -> -NaN88 Invalid_operation
-
--- subnormals and underflow
-ddqua710 quantize 1.00E-383 1e-383 -> 1E-383 Rounded
-ddqua711 quantize 0.1E-383 2e-384 -> 1E-384 Subnormal
-ddqua712 quantize 0.10E-383 3e-384 -> 1E-384 Subnormal Rounded
-ddqua713 quantize 0.100E-383 4e-384 -> 1E-384 Subnormal Rounded
-ddqua714 quantize 0.01E-383 5e-385 -> 1E-385 Subnormal
--- next is rounded to Emin
-ddqua715 quantize 0.999E-383 1e-383 -> 1E-383 Inexact Rounded
-ddqua716 quantize 0.099E-383 10e-384 -> 1E-384 Inexact Rounded Subnormal
-
-ddqua717 quantize 0.009E-383 1e-385 -> 1E-385 Inexact Rounded Subnormal
-ddqua718 quantize 0.001E-383 1e-385 -> 0E-385 Inexact Rounded
-ddqua719 quantize 0.0009E-383 1e-385 -> 0E-385 Inexact Rounded
-ddqua720 quantize 0.0001E-383 1e-385 -> 0E-385 Inexact Rounded
-
-ddqua730 quantize -1.00E-383 1e-383 -> -1E-383 Rounded
-ddqua731 quantize -0.1E-383 1e-383 -> -0E-383 Rounded Inexact
-ddqua732 quantize -0.10E-383 1e-383 -> -0E-383 Rounded Inexact
-ddqua733 quantize -0.100E-383 1e-383 -> -0E-383 Rounded Inexact
-ddqua734 quantize -0.01E-383 1e-383 -> -0E-383 Inexact Rounded
--- next is rounded to Emin
-ddqua735 quantize -0.999E-383 90e-383 -> -1E-383 Inexact Rounded
-ddqua736 quantize -0.099E-383 -1e-383 -> -0E-383 Inexact Rounded
-ddqua737 quantize -0.009E-383 -1e-383 -> -0E-383 Inexact Rounded
-ddqua738 quantize -0.001E-383 -0e-383 -> -0E-383 Inexact Rounded
-ddqua739 quantize -0.0001E-383 0e-383 -> -0E-383 Inexact Rounded
-
-ddqua740 quantize -1.00E-383 1e-384 -> -1.0E-383 Rounded
-ddqua741 quantize -0.1E-383 1e-384 -> -1E-384 Subnormal
-ddqua742 quantize -0.10E-383 1e-384 -> -1E-384 Subnormal Rounded
-ddqua743 quantize -0.100E-383 1e-384 -> -1E-384 Subnormal Rounded
-ddqua744 quantize -0.01E-383 1e-384 -> -0E-384 Inexact Rounded
--- next is rounded to Emin
-ddqua745 quantize -0.999E-383 1e-384 -> -1.0E-383 Inexact Rounded
-ddqua746 quantize -0.099E-383 1e-384 -> -1E-384 Inexact Rounded Subnormal
-ddqua747 quantize -0.009E-383 1e-384 -> -0E-384 Inexact Rounded
-ddqua748 quantize -0.001E-383 1e-384 -> -0E-384 Inexact Rounded
-ddqua749 quantize -0.0001E-383 1e-384 -> -0E-384 Inexact Rounded
-
-ddqua750 quantize -1.00E-383 1e-385 -> -1.00E-383
-ddqua751 quantize -0.1E-383 1e-385 -> -1.0E-384 Subnormal
-ddqua752 quantize -0.10E-383 1e-385 -> -1.0E-384 Subnormal
-ddqua753 quantize -0.100E-383 1e-385 -> -1.0E-384 Subnormal Rounded
-ddqua754 quantize -0.01E-383 1e-385 -> -1E-385 Subnormal
--- next is rounded to Emin
-ddqua755 quantize -0.999E-383 1e-385 -> -1.00E-383 Inexact Rounded
-ddqua756 quantize -0.099E-383 1e-385 -> -1.0E-384 Inexact Rounded Subnormal
-ddqua757 quantize -0.009E-383 1e-385 -> -1E-385 Inexact Rounded Subnormal
-ddqua758 quantize -0.001E-383 1e-385 -> -0E-385 Inexact Rounded
-ddqua759 quantize -0.0001E-383 1e-385 -> -0E-385 Inexact Rounded
-
-ddqua760 quantize -1.00E-383 1e-386 -> -1.000E-383
-ddqua761 quantize -0.1E-383 1e-386 -> -1.00E-384 Subnormal
-ddqua762 quantize -0.10E-383 1e-386 -> -1.00E-384 Subnormal
-ddqua763 quantize -0.100E-383 1e-386 -> -1.00E-384 Subnormal
-ddqua764 quantize -0.01E-383 1e-386 -> -1.0E-385 Subnormal
-ddqua765 quantize -0.999E-383 1e-386 -> -9.99E-384 Subnormal
-ddqua766 quantize -0.099E-383 1e-386 -> -9.9E-385 Subnormal
-ddqua767 quantize -0.009E-383 1e-386 -> -9E-386 Subnormal
-ddqua768 quantize -0.001E-383 1e-386 -> -1E-386 Subnormal
-ddqua769 quantize -0.0001E-383 1e-386 -> -0E-386 Inexact Rounded
-
--- More from Fung Lee
-ddqua1021 quantize 8.666666666666000E+384 1.000000000000000E+384 -> 8.666666666666000E+384
-ddqua1022 quantize -8.666666666666000E+384 1.000000000000000E+384 -> -8.666666666666000E+384
-ddqua1027 quantize 8.666666666666000E+323 1E+31 -> NaN Invalid_operation
-ddqua1029 quantize 8.66666666E+3 1E+3 -> 9E+3 Inexact Rounded
-
-
---ddqua1030 quantize 8.666666666666000E+384 1E+384 -> 9.000000000000000E+384 Rounded Inexact
---ddqua1031 quantize 8.666666666666000E+384 1E+384 -> 8.666666666666000E+384 Rounded
---ddqua1032 quantize 8.666666666666000E+384 1E+383 -> 8.666666666666000E+384 Rounded
---ddqua1033 quantize 8.666666666666000E+384 1E+382 -> 8.666666666666000E+384 Rounded
---ddqua1034 quantize 8.666666666666000E+384 1E+381 -> 8.666666666666000E+384 Rounded
---ddqua1035 quantize 8.666666666666000E+384 1E+380 -> 8.666666666666000E+384 Rounded
-
--- Int and uInt32 edge values for testing conversions
-ddqua1040 quantize -2147483646 0 -> -2147483646
-ddqua1041 quantize -2147483647 0 -> -2147483647
-ddqua1042 quantize -2147483648 0 -> -2147483648
-ddqua1043 quantize -2147483649 0 -> -2147483649
-ddqua1044 quantize 2147483646 0 -> 2147483646
-ddqua1045 quantize 2147483647 0 -> 2147483647
-ddqua1046 quantize 2147483648 0 -> 2147483648
-ddqua1047 quantize 2147483649 0 -> 2147483649
-ddqua1048 quantize 4294967294 0 -> 4294967294
-ddqua1049 quantize 4294967295 0 -> 4294967295
-ddqua1050 quantize 4294967296 0 -> 4294967296
-ddqua1051 quantize 4294967297 0 -> 4294967297
-
--- Rounding swathe
-rounding: half_even
-ddqua1100 quantize 1.2300 1.00 -> 1.23 Rounded
-ddqua1101 quantize 1.2301 1.00 -> 1.23 Inexact Rounded
-ddqua1102 quantize 1.2310 1.00 -> 1.23 Inexact Rounded
-ddqua1103 quantize 1.2350 1.00 -> 1.24 Inexact Rounded
-ddqua1104 quantize 1.2351 1.00 -> 1.24 Inexact Rounded
-ddqua1105 quantize 1.2450 1.00 -> 1.24 Inexact Rounded
-ddqua1106 quantize 1.2451 1.00 -> 1.25 Inexact Rounded
-ddqua1107 quantize 1.2360 1.00 -> 1.24 Inexact Rounded
-ddqua1108 quantize 1.2370 1.00 -> 1.24 Inexact Rounded
-ddqua1109 quantize 1.2399 1.00 -> 1.24 Inexact Rounded
-
-rounding: half_up
-ddqua1200 quantize 1.2300 1.00 -> 1.23 Rounded
-ddqua1201 quantize 1.2301 1.00 -> 1.23 Inexact Rounded
-ddqua1202 quantize 1.2310 1.00 -> 1.23 Inexact Rounded
-ddqua1203 quantize 1.2350 1.00 -> 1.24 Inexact Rounded
-ddqua1204 quantize 1.2351 1.00 -> 1.24 Inexact Rounded
-ddqua1205 quantize 1.2450 1.00 -> 1.25 Inexact Rounded
-ddqua1206 quantize 1.2451 1.00 -> 1.25 Inexact Rounded
-ddqua1207 quantize 1.2360 1.00 -> 1.24 Inexact Rounded
-ddqua1208 quantize 1.2370 1.00 -> 1.24 Inexact Rounded
-ddqua1209 quantize 1.2399 1.00 -> 1.24 Inexact Rounded
-
-rounding: half_down
-ddqua1300 quantize 1.2300 1.00 -> 1.23 Rounded
-ddqua1301 quantize 1.2301 1.00 -> 1.23 Inexact Rounded
-ddqua1302 quantize 1.2310 1.00 -> 1.23 Inexact Rounded
-ddqua1303 quantize 1.2350 1.00 -> 1.23 Inexact Rounded
-ddqua1304 quantize 1.2351 1.00 -> 1.24 Inexact Rounded
-ddqua1305 quantize 1.2450 1.00 -> 1.24 Inexact Rounded
-ddqua1306 quantize 1.2451 1.00 -> 1.25 Inexact Rounded
-ddqua1307 quantize 1.2360 1.00 -> 1.24 Inexact Rounded
-ddqua1308 quantize 1.2370 1.00 -> 1.24 Inexact Rounded
-ddqua1309 quantize 1.2399 1.00 -> 1.24 Inexact Rounded
-
-rounding: up
-ddqua1400 quantize 1.2300 1.00 -> 1.23 Rounded
-ddqua1401 quantize 1.2301 1.00 -> 1.24 Inexact Rounded
-ddqua1402 quantize 1.2310 1.00 -> 1.24 Inexact Rounded
-ddqua1403 quantize 1.2350 1.00 -> 1.24 Inexact Rounded
-ddqua1404 quantize 1.2351 1.00 -> 1.24 Inexact Rounded
-ddqua1405 quantize 1.2450 1.00 -> 1.25 Inexact Rounded
-ddqua1406 quantize 1.2451 1.00 -> 1.25 Inexact Rounded
-ddqua1407 quantize 1.2360 1.00 -> 1.24 Inexact Rounded
-ddqua1408 quantize 1.2370 1.00 -> 1.24 Inexact Rounded
-ddqua1409 quantize 1.2399 1.00 -> 1.24 Inexact Rounded
-ddqua1411 quantize -1.2399 1.00 -> -1.24 Inexact Rounded
-
-rounding: down
-ddqua1500 quantize 1.2300 1.00 -> 1.23 Rounded
-ddqua1501 quantize 1.2301 1.00 -> 1.23 Inexact Rounded
-ddqua1502 quantize 1.2310 1.00 -> 1.23 Inexact Rounded
-ddqua1503 quantize 1.2350 1.00 -> 1.23 Inexact Rounded
-ddqua1504 quantize 1.2351 1.00 -> 1.23 Inexact Rounded
-ddqua1505 quantize 1.2450 1.00 -> 1.24 Inexact Rounded
-ddqua1506 quantize 1.2451 1.00 -> 1.24 Inexact Rounded
-ddqua1507 quantize 1.2360 1.00 -> 1.23 Inexact Rounded
-ddqua1508 quantize 1.2370 1.00 -> 1.23 Inexact Rounded
-ddqua1509 quantize 1.2399 1.00 -> 1.23 Inexact Rounded
-ddqua1511 quantize -1.2399 1.00 -> -1.23 Inexact Rounded
-
-rounding: ceiling
-ddqua1600 quantize 1.2300 1.00 -> 1.23 Rounded
-ddqua1601 quantize 1.2301 1.00 -> 1.24 Inexact Rounded
-ddqua1602 quantize 1.2310 1.00 -> 1.24 Inexact Rounded
-ddqua1603 quantize 1.2350 1.00 -> 1.24 Inexact Rounded
-ddqua1604 quantize 1.2351 1.00 -> 1.24 Inexact Rounded
-ddqua1605 quantize 1.2450 1.00 -> 1.25 Inexact Rounded
-ddqua1606 quantize 1.2451 1.00 -> 1.25 Inexact Rounded
-ddqua1607 quantize 1.2360 1.00 -> 1.24 Inexact Rounded
-ddqua1608 quantize 1.2370 1.00 -> 1.24 Inexact Rounded
-ddqua1609 quantize 1.2399 1.00 -> 1.24 Inexact Rounded
-ddqua1611 quantize -1.2399 1.00 -> -1.23 Inexact Rounded
-
-rounding: floor
-ddqua1700 quantize 1.2300 1.00 -> 1.23 Rounded
-ddqua1701 quantize 1.2301 1.00 -> 1.23 Inexact Rounded
-ddqua1702 quantize 1.2310 1.00 -> 1.23 Inexact Rounded
-ddqua1703 quantize 1.2350 1.00 -> 1.23 Inexact Rounded
-ddqua1704 quantize 1.2351 1.00 -> 1.23 Inexact Rounded
-ddqua1705 quantize 1.2450 1.00 -> 1.24 Inexact Rounded
-ddqua1706 quantize 1.2451 1.00 -> 1.24 Inexact Rounded
-ddqua1707 quantize 1.2360 1.00 -> 1.23 Inexact Rounded
-ddqua1708 quantize 1.2370 1.00 -> 1.23 Inexact Rounded
-ddqua1709 quantize 1.2399 1.00 -> 1.23 Inexact Rounded
-ddqua1711 quantize -1.2399 1.00 -> -1.24 Inexact Rounded
-
-rounding: 05up
-ddqua1800 quantize 1.2000 1.00 -> 1.20 Rounded
-ddqua1801 quantize 1.2001 1.00 -> 1.21 Inexact Rounded
-ddqua1802 quantize 1.2010 1.00 -> 1.21 Inexact Rounded
-ddqua1803 quantize 1.2050 1.00 -> 1.21 Inexact Rounded
-ddqua1804 quantize 1.2051 1.00 -> 1.21 Inexact Rounded
-ddqua1807 quantize 1.2060 1.00 -> 1.21 Inexact Rounded
-ddqua1808 quantize 1.2070 1.00 -> 1.21 Inexact Rounded
-ddqua1809 quantize 1.2099 1.00 -> 1.21 Inexact Rounded
-ddqua1811 quantize -1.2099 1.00 -> -1.21 Inexact Rounded
-
-ddqua1900 quantize 1.2100 1.00 -> 1.21 Rounded
-ddqua1901 quantize 1.2101 1.00 -> 1.21 Inexact Rounded
-ddqua1902 quantize 1.2110 1.00 -> 1.21 Inexact Rounded
-ddqua1903 quantize 1.2150 1.00 -> 1.21 Inexact Rounded
-ddqua1904 quantize 1.2151 1.00 -> 1.21 Inexact Rounded
-ddqua1907 quantize 1.2160 1.00 -> 1.21 Inexact Rounded
-ddqua1908 quantize 1.2170 1.00 -> 1.21 Inexact Rounded
-ddqua1909 quantize 1.2199 1.00 -> 1.21 Inexact Rounded
-ddqua1911 quantize -1.2199 1.00 -> -1.21 Inexact Rounded
-
-ddqua2000 quantize 1.2400 1.00 -> 1.24 Rounded
-ddqua2001 quantize 1.2401 1.00 -> 1.24 Inexact Rounded
-ddqua2002 quantize 1.2410 1.00 -> 1.24 Inexact Rounded
-ddqua2003 quantize 1.2450 1.00 -> 1.24 Inexact Rounded
-ddqua2004 quantize 1.2451 1.00 -> 1.24 Inexact Rounded
-ddqua2007 quantize 1.2460 1.00 -> 1.24 Inexact Rounded
-ddqua2008 quantize 1.2470 1.00 -> 1.24 Inexact Rounded
-ddqua2009 quantize 1.2499 1.00 -> 1.24 Inexact Rounded
-ddqua2011 quantize -1.2499 1.00 -> -1.24 Inexact Rounded
-
-ddqua2100 quantize 1.2500 1.00 -> 1.25 Rounded
-ddqua2101 quantize 1.2501 1.00 -> 1.26 Inexact Rounded
-ddqua2102 quantize 1.2510 1.00 -> 1.26 Inexact Rounded
-ddqua2103 quantize 1.2550 1.00 -> 1.26 Inexact Rounded
-ddqua2104 quantize 1.2551 1.00 -> 1.26 Inexact Rounded
-ddqua2107 quantize 1.2560 1.00 -> 1.26 Inexact Rounded
-ddqua2108 quantize 1.2570 1.00 -> 1.26 Inexact Rounded
-ddqua2109 quantize 1.2599 1.00 -> 1.26 Inexact Rounded
-ddqua2111 quantize -1.2599 1.00 -> -1.26 Inexact Rounded
-
-ddqua2200 quantize 1.2600 1.00 -> 1.26 Rounded
-ddqua2201 quantize 1.2601 1.00 -> 1.26 Inexact Rounded
-ddqua2202 quantize 1.2610 1.00 -> 1.26 Inexact Rounded
-ddqua2203 quantize 1.2650 1.00 -> 1.26 Inexact Rounded
-ddqua2204 quantize 1.2651 1.00 -> 1.26 Inexact Rounded
-ddqua2207 quantize 1.2660 1.00 -> 1.26 Inexact Rounded
-ddqua2208 quantize 1.2670 1.00 -> 1.26 Inexact Rounded
-ddqua2209 quantize 1.2699 1.00 -> 1.26 Inexact Rounded
-ddqua2211 quantize -1.2699 1.00 -> -1.26 Inexact Rounded
-
-ddqua2300 quantize 1.2900 1.00 -> 1.29 Rounded
-ddqua2301 quantize 1.2901 1.00 -> 1.29 Inexact Rounded
-ddqua2302 quantize 1.2910 1.00 -> 1.29 Inexact Rounded
-ddqua2303 quantize 1.2950 1.00 -> 1.29 Inexact Rounded
-ddqua2304 quantize 1.2951 1.00 -> 1.29 Inexact Rounded
-ddqua2307 quantize 1.2960 1.00 -> 1.29 Inexact Rounded
-ddqua2308 quantize 1.2970 1.00 -> 1.29 Inexact Rounded
-ddqua2309 quantize 1.2999 1.00 -> 1.29 Inexact Rounded
-ddqua2311 quantize -1.2999 1.00 -> -1.29 Inexact Rounded
-
--- Null tests
-rounding: half_even
-ddqua998 quantize 10 # -> NaN Invalid_operation
-ddqua999 quantize # 1e10 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- ddQuantize.decTest -- decDouble quantize operation -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- Most of the tests here assume a "regular pattern", where the +-- sign and coefficient are +1. +-- 2004.03.15 Underflow for quantize is suppressed +-- 2005.06.08 More extensive tests for 'does not fit' +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +-- sanity checks +ddqua001 quantize 0 1e0 -> 0 +ddqua002 quantize 1 1e0 -> 1 +ddqua003 quantize 0.1 1e+2 -> 0E+2 Inexact Rounded +ddqua005 quantize 0.1 1e+1 -> 0E+1 Inexact Rounded +ddqua006 quantize 0.1 1e0 -> 0 Inexact Rounded +ddqua007 quantize 0.1 1e-1 -> 0.1 +ddqua008 quantize 0.1 1e-2 -> 0.10 +ddqua009 quantize 0.1 1e-3 -> 0.100 +ddqua010 quantize 0.9 1e+2 -> 0E+2 Inexact Rounded +ddqua011 quantize 0.9 1e+1 -> 0E+1 Inexact Rounded +ddqua012 quantize 0.9 1e+0 -> 1 Inexact Rounded +ddqua013 quantize 0.9 1e-1 -> 0.9 +ddqua014 quantize 0.9 1e-2 -> 0.90 +ddqua015 quantize 0.9 1e-3 -> 0.900 +-- negatives +ddqua021 quantize -0 1e0 -> -0 +ddqua022 quantize -1 1e0 -> -1 +ddqua023 quantize -0.1 1e+2 -> -0E+2 Inexact Rounded +ddqua025 quantize -0.1 1e+1 -> -0E+1 Inexact Rounded +ddqua026 quantize -0.1 1e0 -> -0 Inexact Rounded +ddqua027 quantize -0.1 1e-1 -> -0.1 +ddqua028 quantize -0.1 1e-2 -> -0.10 +ddqua029 quantize -0.1 1e-3 -> -0.100 +ddqua030 quantize -0.9 1e+2 -> -0E+2 Inexact Rounded +ddqua031 quantize -0.9 1e+1 -> -0E+1 Inexact Rounded +ddqua032 quantize -0.9 1e+0 -> -1 Inexact Rounded +ddqua033 quantize -0.9 1e-1 -> -0.9 +ddqua034 quantize -0.9 1e-2 -> -0.90 +ddqua035 quantize -0.9 1e-3 -> -0.900 +ddqua036 quantize -0.5 1e+2 -> -0E+2 Inexact Rounded +ddqua037 quantize -0.5 1e+1 -> -0E+1 Inexact Rounded +ddqua038 quantize -0.5 1e+0 -> -0 Inexact Rounded +ddqua039 quantize -0.5 1e-1 -> -0.5 +ddqua040 quantize -0.5 1e-2 -> -0.50 +ddqua041 quantize -0.5 1e-3 -> -0.500 +ddqua042 quantize -0.9 1e+2 -> -0E+2 Inexact Rounded +ddqua043 quantize -0.9 1e+1 -> -0E+1 Inexact Rounded +ddqua044 quantize -0.9 1e+0 -> -1 Inexact Rounded +ddqua045 quantize -0.9 1e-1 -> -0.9 +ddqua046 quantize -0.9 1e-2 -> -0.90 +ddqua047 quantize -0.9 1e-3 -> -0.900 + +-- examples from Specification +ddqua060 quantize 2.17 0.001 -> 2.170 +ddqua061 quantize 2.17 0.01 -> 2.17 +ddqua062 quantize 2.17 0.1 -> 2.2 Inexact Rounded +ddqua063 quantize 2.17 1e+0 -> 2 Inexact Rounded +ddqua064 quantize 2.17 1e+1 -> 0E+1 Inexact Rounded +ddqua065 quantize -Inf Inf -> -Infinity +ddqua066 quantize 2 Inf -> NaN Invalid_operation +ddqua067 quantize -0.1 1 -> -0 Inexact Rounded +ddqua068 quantize -0 1e+5 -> -0E+5 +ddqua069 quantize +123456789012345.6 1e-2 -> NaN Invalid_operation +ddqua070 quantize -987654335236450.6 1e-2 -> NaN Invalid_operation +ddqua071 quantize 217 1e-1 -> 217.0 +ddqua072 quantize 217 1e+0 -> 217 +ddqua073 quantize 217 1e+1 -> 2.2E+2 Inexact Rounded +ddqua074 quantize 217 1e+2 -> 2E+2 Inexact Rounded + +-- general tests .. +ddqua089 quantize 12 1e+4 -> 0E+4 Inexact Rounded +ddqua090 quantize 12 1e+3 -> 0E+3 Inexact Rounded +ddqua091 quantize 12 1e+2 -> 0E+2 Inexact Rounded +ddqua092 quantize 12 1e+1 -> 1E+1 Inexact Rounded +ddqua093 quantize 1.2345 1e-2 -> 1.23 Inexact Rounded +ddqua094 quantize 1.2355 1e-2 -> 1.24 Inexact Rounded +ddqua095 quantize 1.2345 1e-6 -> 1.234500 +ddqua096 quantize 9.9999 1e-2 -> 10.00 Inexact Rounded +ddqua097 quantize 0.0001 1e-2 -> 0.00 Inexact Rounded +ddqua098 quantize 0.001 1e-2 -> 0.00 Inexact Rounded +ddqua099 quantize 0.009 1e-2 -> 0.01 Inexact Rounded +ddqua100 quantize 92 1e+2 -> 1E+2 Inexact Rounded + +ddqua101 quantize -1 1e0 -> -1 +ddqua102 quantize -1 1e-1 -> -1.0 +ddqua103 quantize -1 1e-2 -> -1.00 +ddqua104 quantize 0 1e0 -> 0 +ddqua105 quantize 0 1e-1 -> 0.0 +ddqua106 quantize 0 1e-2 -> 0.00 +ddqua107 quantize 0.00 1e0 -> 0 +ddqua108 quantize 0 1e+1 -> 0E+1 +ddqua109 quantize 0 1e+2 -> 0E+2 +ddqua110 quantize +1 1e0 -> 1 +ddqua111 quantize +1 1e-1 -> 1.0 +ddqua112 quantize +1 1e-2 -> 1.00 + +ddqua120 quantize 1.04 1e-3 -> 1.040 +ddqua121 quantize 1.04 1e-2 -> 1.04 +ddqua122 quantize 1.04 1e-1 -> 1.0 Inexact Rounded +ddqua123 quantize 1.04 1e0 -> 1 Inexact Rounded +ddqua124 quantize 1.05 1e-3 -> 1.050 +ddqua125 quantize 1.05 1e-2 -> 1.05 +ddqua126 quantize 1.05 1e-1 -> 1.0 Inexact Rounded +ddqua131 quantize 1.05 1e0 -> 1 Inexact Rounded +ddqua132 quantize 1.06 1e-3 -> 1.060 +ddqua133 quantize 1.06 1e-2 -> 1.06 +ddqua134 quantize 1.06 1e-1 -> 1.1 Inexact Rounded +ddqua135 quantize 1.06 1e0 -> 1 Inexact Rounded + +ddqua140 quantize -10 1e-2 -> -10.00 +ddqua141 quantize +1 1e-2 -> 1.00 +ddqua142 quantize +10 1e-2 -> 10.00 +ddqua143 quantize 1E+17 1e-2 -> NaN Invalid_operation +ddqua144 quantize 1E-17 1e-2 -> 0.00 Inexact Rounded +ddqua145 quantize 1E-3 1e-2 -> 0.00 Inexact Rounded +ddqua146 quantize 1E-2 1e-2 -> 0.01 +ddqua147 quantize 1E-1 1e-2 -> 0.10 +ddqua148 quantize 0E-17 1e-2 -> 0.00 + +ddqua150 quantize 1.0600 1e-5 -> 1.06000 +ddqua151 quantize 1.0600 1e-4 -> 1.0600 +ddqua152 quantize 1.0600 1e-3 -> 1.060 Rounded +ddqua153 quantize 1.0600 1e-2 -> 1.06 Rounded +ddqua154 quantize 1.0600 1e-1 -> 1.1 Inexact Rounded +ddqua155 quantize 1.0600 1e0 -> 1 Inexact Rounded + +-- a couple where rounding was different in base tests +rounding: half_up +ddqua157 quantize -0.5 1e+0 -> -1 Inexact Rounded +ddqua158 quantize 1.05 1e-1 -> 1.1 Inexact Rounded +ddqua159 quantize 1.06 1e0 -> 1 Inexact Rounded +rounding: half_even + +-- base tests with non-1 coefficients +ddqua161 quantize 0 -9e0 -> 0 +ddqua162 quantize 1 -7e0 -> 1 +ddqua163 quantize 0.1 -1e+2 -> 0E+2 Inexact Rounded +ddqua165 quantize 0.1 0e+1 -> 0E+1 Inexact Rounded +ddqua166 quantize 0.1 2e0 -> 0 Inexact Rounded +ddqua167 quantize 0.1 3e-1 -> 0.1 +ddqua168 quantize 0.1 44e-2 -> 0.10 +ddqua169 quantize 0.1 555e-3 -> 0.100 +ddqua170 quantize 0.9 6666e+2 -> 0E+2 Inexact Rounded +ddqua171 quantize 0.9 -777e+1 -> 0E+1 Inexact Rounded +ddqua172 quantize 0.9 -88e+0 -> 1 Inexact Rounded +ddqua173 quantize 0.9 -9e-1 -> 0.9 +ddqua174 quantize 0.9 0e-2 -> 0.90 +ddqua175 quantize 0.9 1.1e-3 -> 0.9000 +-- negatives +ddqua181 quantize -0 1.1e0 -> -0.0 +ddqua182 quantize -1 -1e0 -> -1 +ddqua183 quantize -0.1 11e+2 -> -0E+2 Inexact Rounded +ddqua185 quantize -0.1 111e+1 -> -0E+1 Inexact Rounded +ddqua186 quantize -0.1 71e0 -> -0 Inexact Rounded +ddqua187 quantize -0.1 -91e-1 -> -0.1 +ddqua188 quantize -0.1 -.1e-2 -> -0.100 +ddqua189 quantize -0.1 -1e-3 -> -0.100 +ddqua190 quantize -0.9 0e+2 -> -0E+2 Inexact Rounded +ddqua191 quantize -0.9 -0e+1 -> -0E+1 Inexact Rounded +ddqua192 quantize -0.9 -10e+0 -> -1 Inexact Rounded +ddqua193 quantize -0.9 100e-1 -> -0.9 +ddqua194 quantize -0.9 999e-2 -> -0.90 + +-- +ve exponents .. +ddqua201 quantize -1 1e+0 -> -1 +ddqua202 quantize -1 1e+1 -> -0E+1 Inexact Rounded +ddqua203 quantize -1 1e+2 -> -0E+2 Inexact Rounded +ddqua204 quantize 0 1e+0 -> 0 +ddqua205 quantize 0 1e+1 -> 0E+1 +ddqua206 quantize 0 1e+2 -> 0E+2 +ddqua207 quantize +1 1e+0 -> 1 +ddqua208 quantize +1 1e+1 -> 0E+1 Inexact Rounded +ddqua209 quantize +1 1e+2 -> 0E+2 Inexact Rounded + +ddqua220 quantize 1.04 1e+3 -> 0E+3 Inexact Rounded +ddqua221 quantize 1.04 1e+2 -> 0E+2 Inexact Rounded +ddqua222 quantize 1.04 1e+1 -> 0E+1 Inexact Rounded +ddqua223 quantize 1.04 1e+0 -> 1 Inexact Rounded +ddqua224 quantize 1.05 1e+3 -> 0E+3 Inexact Rounded +ddqua225 quantize 1.05 1e+2 -> 0E+2 Inexact Rounded +ddqua226 quantize 1.05 1e+1 -> 0E+1 Inexact Rounded +ddqua227 quantize 1.05 1e+0 -> 1 Inexact Rounded +ddqua228 quantize 1.05 1e+3 -> 0E+3 Inexact Rounded +ddqua229 quantize 1.05 1e+2 -> 0E+2 Inexact Rounded +ddqua230 quantize 1.05 1e+1 -> 0E+1 Inexact Rounded +ddqua231 quantize 1.05 1e+0 -> 1 Inexact Rounded +ddqua232 quantize 1.06 1e+3 -> 0E+3 Inexact Rounded +ddqua233 quantize 1.06 1e+2 -> 0E+2 Inexact Rounded +ddqua234 quantize 1.06 1e+1 -> 0E+1 Inexact Rounded +ddqua235 quantize 1.06 1e+0 -> 1 Inexact Rounded + +ddqua240 quantize -10 1e+1 -> -1E+1 Rounded +ddqua241 quantize +1 1e+1 -> 0E+1 Inexact Rounded +ddqua242 quantize +10 1e+1 -> 1E+1 Rounded +ddqua243 quantize 1E+1 1e+1 -> 1E+1 -- underneath this is E+1 +ddqua244 quantize 1E+2 1e+1 -> 1.0E+2 -- underneath this is E+1 +ddqua245 quantize 1E+3 1e+1 -> 1.00E+3 -- underneath this is E+1 +ddqua246 quantize 1E+4 1e+1 -> 1.000E+4 -- underneath this is E+1 +ddqua247 quantize 1E+5 1e+1 -> 1.0000E+5 -- underneath this is E+1 +ddqua248 quantize 1E+6 1e+1 -> 1.00000E+6 -- underneath this is E+1 +ddqua249 quantize 1E+7 1e+1 -> 1.000000E+7 -- underneath this is E+1 +ddqua250 quantize 1E+8 1e+1 -> 1.0000000E+8 -- underneath this is E+1 +ddqua251 quantize 1E+9 1e+1 -> 1.00000000E+9 -- underneath this is E+1 +-- next one tries to add 9 zeros +ddqua252 quantize 1E+17 1e+1 -> NaN Invalid_operation +ddqua253 quantize 1E-17 1e+1 -> 0E+1 Inexact Rounded +ddqua254 quantize 1E-2 1e+1 -> 0E+1 Inexact Rounded +ddqua255 quantize 0E-17 1e+1 -> 0E+1 +ddqua256 quantize -0E-17 1e+1 -> -0E+1 +ddqua257 quantize -0E-1 1e+1 -> -0E+1 +ddqua258 quantize -0 1e+1 -> -0E+1 +ddqua259 quantize -0E+1 1e+1 -> -0E+1 + +ddqua260 quantize -10 1e+2 -> -0E+2 Inexact Rounded +ddqua261 quantize +1 1e+2 -> 0E+2 Inexact Rounded +ddqua262 quantize +10 1e+2 -> 0E+2 Inexact Rounded +ddqua263 quantize 1E+1 1e+2 -> 0E+2 Inexact Rounded +ddqua264 quantize 1E+2 1e+2 -> 1E+2 +ddqua265 quantize 1E+3 1e+2 -> 1.0E+3 +ddqua266 quantize 1E+4 1e+2 -> 1.00E+4 +ddqua267 quantize 1E+5 1e+2 -> 1.000E+5 +ddqua268 quantize 1E+6 1e+2 -> 1.0000E+6 +ddqua269 quantize 1E+7 1e+2 -> 1.00000E+7 +ddqua270 quantize 1E+8 1e+2 -> 1.000000E+8 +ddqua271 quantize 1E+9 1e+2 -> 1.0000000E+9 +ddqua272 quantize 1E+10 1e+2 -> 1.00000000E+10 +ddqua273 quantize 1E-10 1e+2 -> 0E+2 Inexact Rounded +ddqua274 quantize 1E-2 1e+2 -> 0E+2 Inexact Rounded +ddqua275 quantize 0E-10 1e+2 -> 0E+2 + +ddqua280 quantize -10 1e+3 -> -0E+3 Inexact Rounded +ddqua281 quantize +1 1e+3 -> 0E+3 Inexact Rounded +ddqua282 quantize +10 1e+3 -> 0E+3 Inexact Rounded +ddqua283 quantize 1E+1 1e+3 -> 0E+3 Inexact Rounded +ddqua284 quantize 1E+2 1e+3 -> 0E+3 Inexact Rounded +ddqua285 quantize 1E+3 1e+3 -> 1E+3 +ddqua286 quantize 1E+4 1e+3 -> 1.0E+4 +ddqua287 quantize 1E+5 1e+3 -> 1.00E+5 +ddqua288 quantize 1E+6 1e+3 -> 1.000E+6 +ddqua289 quantize 1E+7 1e+3 -> 1.0000E+7 +ddqua290 quantize 1E+8 1e+3 -> 1.00000E+8 +ddqua291 quantize 1E+9 1e+3 -> 1.000000E+9 +ddqua292 quantize 1E+10 1e+3 -> 1.0000000E+10 +ddqua293 quantize 1E-10 1e+3 -> 0E+3 Inexact Rounded +ddqua294 quantize 1E-2 1e+3 -> 0E+3 Inexact Rounded +ddqua295 quantize 0E-10 1e+3 -> 0E+3 + +-- round up from below [sign wrong in JIT compiler once] +ddqua300 quantize 0.0078 1e-5 -> 0.00780 +ddqua301 quantize 0.0078 1e-4 -> 0.0078 +ddqua302 quantize 0.0078 1e-3 -> 0.008 Inexact Rounded +ddqua303 quantize 0.0078 1e-2 -> 0.01 Inexact Rounded +ddqua304 quantize 0.0078 1e-1 -> 0.0 Inexact Rounded +ddqua305 quantize 0.0078 1e0 -> 0 Inexact Rounded +ddqua306 quantize 0.0078 1e+1 -> 0E+1 Inexact Rounded +ddqua307 quantize 0.0078 1e+2 -> 0E+2 Inexact Rounded + +ddqua310 quantize -0.0078 1e-5 -> -0.00780 +ddqua311 quantize -0.0078 1e-4 -> -0.0078 +ddqua312 quantize -0.0078 1e-3 -> -0.008 Inexact Rounded +ddqua313 quantize -0.0078 1e-2 -> -0.01 Inexact Rounded +ddqua314 quantize -0.0078 1e-1 -> -0.0 Inexact Rounded +ddqua315 quantize -0.0078 1e0 -> -0 Inexact Rounded +ddqua316 quantize -0.0078 1e+1 -> -0E+1 Inexact Rounded +ddqua317 quantize -0.0078 1e+2 -> -0E+2 Inexact Rounded + +ddqua320 quantize 0.078 1e-5 -> 0.07800 +ddqua321 quantize 0.078 1e-4 -> 0.0780 +ddqua322 quantize 0.078 1e-3 -> 0.078 +ddqua323 quantize 0.078 1e-2 -> 0.08 Inexact Rounded +ddqua324 quantize 0.078 1e-1 -> 0.1 Inexact Rounded +ddqua325 quantize 0.078 1e0 -> 0 Inexact Rounded +ddqua326 quantize 0.078 1e+1 -> 0E+1 Inexact Rounded +ddqua327 quantize 0.078 1e+2 -> 0E+2 Inexact Rounded + +ddqua330 quantize -0.078 1e-5 -> -0.07800 +ddqua331 quantize -0.078 1e-4 -> -0.0780 +ddqua332 quantize -0.078 1e-3 -> -0.078 +ddqua333 quantize -0.078 1e-2 -> -0.08 Inexact Rounded +ddqua334 quantize -0.078 1e-1 -> -0.1 Inexact Rounded +ddqua335 quantize -0.078 1e0 -> -0 Inexact Rounded +ddqua336 quantize -0.078 1e+1 -> -0E+1 Inexact Rounded +ddqua337 quantize -0.078 1e+2 -> -0E+2 Inexact Rounded + +ddqua340 quantize 0.78 1e-5 -> 0.78000 +ddqua341 quantize 0.78 1e-4 -> 0.7800 +ddqua342 quantize 0.78 1e-3 -> 0.780 +ddqua343 quantize 0.78 1e-2 -> 0.78 +ddqua344 quantize 0.78 1e-1 -> 0.8 Inexact Rounded +ddqua345 quantize 0.78 1e0 -> 1 Inexact Rounded +ddqua346 quantize 0.78 1e+1 -> 0E+1 Inexact Rounded +ddqua347 quantize 0.78 1e+2 -> 0E+2 Inexact Rounded + +ddqua350 quantize -0.78 1e-5 -> -0.78000 +ddqua351 quantize -0.78 1e-4 -> -0.7800 +ddqua352 quantize -0.78 1e-3 -> -0.780 +ddqua353 quantize -0.78 1e-2 -> -0.78 +ddqua354 quantize -0.78 1e-1 -> -0.8 Inexact Rounded +ddqua355 quantize -0.78 1e0 -> -1 Inexact Rounded +ddqua356 quantize -0.78 1e+1 -> -0E+1 Inexact Rounded +ddqua357 quantize -0.78 1e+2 -> -0E+2 Inexact Rounded + +ddqua360 quantize 7.8 1e-5 -> 7.80000 +ddqua361 quantize 7.8 1e-4 -> 7.8000 +ddqua362 quantize 7.8 1e-3 -> 7.800 +ddqua363 quantize 7.8 1e-2 -> 7.80 +ddqua364 quantize 7.8 1e-1 -> 7.8 +ddqua365 quantize 7.8 1e0 -> 8 Inexact Rounded +ddqua366 quantize 7.8 1e+1 -> 1E+1 Inexact Rounded +ddqua367 quantize 7.8 1e+2 -> 0E+2 Inexact Rounded +ddqua368 quantize 7.8 1e+3 -> 0E+3 Inexact Rounded + +ddqua370 quantize -7.8 1e-5 -> -7.80000 +ddqua371 quantize -7.8 1e-4 -> -7.8000 +ddqua372 quantize -7.8 1e-3 -> -7.800 +ddqua373 quantize -7.8 1e-2 -> -7.80 +ddqua374 quantize -7.8 1e-1 -> -7.8 +ddqua375 quantize -7.8 1e0 -> -8 Inexact Rounded +ddqua376 quantize -7.8 1e+1 -> -1E+1 Inexact Rounded +ddqua377 quantize -7.8 1e+2 -> -0E+2 Inexact Rounded +ddqua378 quantize -7.8 1e+3 -> -0E+3 Inexact Rounded + +-- some individuals +ddqua380 quantize 1234567352364.506 1e-2 -> 1234567352364.51 Inexact Rounded +ddqua381 quantize 12345673523645.06 1e-2 -> 12345673523645.06 +ddqua382 quantize 123456735236450.6 1e-2 -> NaN Invalid_operation +ddqua383 quantize 1234567352364506 1e-2 -> NaN Invalid_operation +ddqua384 quantize -1234567352364.506 1e-2 -> -1234567352364.51 Inexact Rounded +ddqua385 quantize -12345673523645.06 1e-2 -> -12345673523645.06 +ddqua386 quantize -123456735236450.6 1e-2 -> NaN Invalid_operation +ddqua387 quantize -1234567352364506 1e-2 -> NaN Invalid_operation + +rounding: down +ddqua389 quantize 123456735236450.6 1e-2 -> NaN Invalid_operation +-- ? should that one instead have been: +-- ddqua389 quantize 123456735236450.6 1e-2 -> NaN Invalid_operation +rounding: half_up + +-- and a few more from e-mail discussions +ddqua391 quantize 12345678912.34567 1e-3 -> 12345678912.346 Inexact Rounded +ddqua392 quantize 123456789123.4567 1e-3 -> 123456789123.457 Inexact Rounded +ddqua393 quantize 1234567891234.567 1e-3 -> 1234567891234.567 +ddqua394 quantize 12345678912345.67 1e-3 -> NaN Invalid_operation +ddqua395 quantize 123456789123456.7 1e-3 -> NaN Invalid_operation +ddqua396 quantize 1234567891234567. 1e-3 -> NaN Invalid_operation + +-- some 9999 round-up cases +ddqua400 quantize 9.999 1e-5 -> 9.99900 +ddqua401 quantize 9.999 1e-4 -> 9.9990 +ddqua402 quantize 9.999 1e-3 -> 9.999 +ddqua403 quantize 9.999 1e-2 -> 10.00 Inexact Rounded +ddqua404 quantize 9.999 1e-1 -> 10.0 Inexact Rounded +ddqua405 quantize 9.999 1e0 -> 10 Inexact Rounded +ddqua406 quantize 9.999 1e1 -> 1E+1 Inexact Rounded +ddqua407 quantize 9.999 1e2 -> 0E+2 Inexact Rounded + +ddqua410 quantize 0.999 1e-5 -> 0.99900 +ddqua411 quantize 0.999 1e-4 -> 0.9990 +ddqua412 quantize 0.999 1e-3 -> 0.999 +ddqua413 quantize 0.999 1e-2 -> 1.00 Inexact Rounded +ddqua414 quantize 0.999 1e-1 -> 1.0 Inexact Rounded +ddqua415 quantize 0.999 1e0 -> 1 Inexact Rounded +ddqua416 quantize 0.999 1e1 -> 0E+1 Inexact Rounded + +ddqua420 quantize 0.0999 1e-5 -> 0.09990 +ddqua421 quantize 0.0999 1e-4 -> 0.0999 +ddqua422 quantize 0.0999 1e-3 -> 0.100 Inexact Rounded +ddqua423 quantize 0.0999 1e-2 -> 0.10 Inexact Rounded +ddqua424 quantize 0.0999 1e-1 -> 0.1 Inexact Rounded +ddqua425 quantize 0.0999 1e0 -> 0 Inexact Rounded +ddqua426 quantize 0.0999 1e1 -> 0E+1 Inexact Rounded + +ddqua430 quantize 0.00999 1e-5 -> 0.00999 +ddqua431 quantize 0.00999 1e-4 -> 0.0100 Inexact Rounded +ddqua432 quantize 0.00999 1e-3 -> 0.010 Inexact Rounded +ddqua433 quantize 0.00999 1e-2 -> 0.01 Inexact Rounded +ddqua434 quantize 0.00999 1e-1 -> 0.0 Inexact Rounded +ddqua435 quantize 0.00999 1e0 -> 0 Inexact Rounded +ddqua436 quantize 0.00999 1e1 -> 0E+1 Inexact Rounded + +ddqua440 quantize 0.000999 1e-5 -> 0.00100 Inexact Rounded +ddqua441 quantize 0.000999 1e-4 -> 0.0010 Inexact Rounded +ddqua442 quantize 0.000999 1e-3 -> 0.001 Inexact Rounded +ddqua443 quantize 0.000999 1e-2 -> 0.00 Inexact Rounded +ddqua444 quantize 0.000999 1e-1 -> 0.0 Inexact Rounded +ddqua445 quantize 0.000999 1e0 -> 0 Inexact Rounded +ddqua446 quantize 0.000999 1e1 -> 0E+1 Inexact Rounded + +ddqua1001 quantize 0.000 0.001 -> 0.000 +ddqua1002 quantize 0.001 0.001 -> 0.001 +ddqua1003 quantize 0.0012 0.001 -> 0.001 Inexact Rounded +ddqua1004 quantize 0.0018 0.001 -> 0.002 Inexact Rounded +ddqua1005 quantize 0.501 0.001 -> 0.501 +ddqua1006 quantize 0.5012 0.001 -> 0.501 Inexact Rounded +ddqua1007 quantize 0.5018 0.001 -> 0.502 Inexact Rounded +ddqua1008 quantize 0.999 0.001 -> 0.999 + +ddqua481 quantize 12345678000 1e+3 -> 1.2345678E+10 Rounded +ddqua482 quantize 1234567800 1e+1 -> 1.23456780E+9 Rounded +ddqua483 quantize 1234567890 1e+1 -> 1.23456789E+9 Rounded +ddqua484 quantize 1234567891 1e+1 -> 1.23456789E+9 Inexact Rounded +ddqua485 quantize 12345678901 1e+2 -> 1.23456789E+10 Inexact Rounded +ddqua486 quantize 1234567896 1e+1 -> 1.23456790E+9 Inexact Rounded +-- a potential double-round +ddqua487 quantize 1234.987643 1e-4 -> 1234.9876 Inexact Rounded +ddqua488 quantize 1234.987647 1e-4 -> 1234.9876 Inexact Rounded + +ddqua491 quantize 12345678000 1e+3 -> 1.2345678E+10 Rounded +ddqua492 quantize 1234567800 1e+1 -> 1.23456780E+9 Rounded +ddqua493 quantize 1234567890 1e+1 -> 1.23456789E+9 Rounded +ddqua494 quantize 1234567891 1e+1 -> 1.23456789E+9 Inexact Rounded +ddqua495 quantize 12345678901 1e+2 -> 1.23456789E+10 Inexact Rounded +ddqua496 quantize 1234567896 1e+1 -> 1.23456790E+9 Inexact Rounded +ddqua497 quantize 1234.987643 1e-4 -> 1234.9876 Inexact Rounded +ddqua498 quantize 1234.987647 1e-4 -> 1234.9876 Inexact Rounded + +-- Zeros +ddqua500 quantize 0 1e1 -> 0E+1 +ddqua501 quantize 0 1e0 -> 0 +ddqua502 quantize 0 1e-1 -> 0.0 +ddqua503 quantize 0.0 1e-1 -> 0.0 +ddqua504 quantize 0.0 1e0 -> 0 +ddqua505 quantize 0.0 1e+1 -> 0E+1 +ddqua506 quantize 0E+1 1e-1 -> 0.0 +ddqua507 quantize 0E+1 1e0 -> 0 +ddqua508 quantize 0E+1 1e+1 -> 0E+1 +ddqua509 quantize -0 1e1 -> -0E+1 +ddqua510 quantize -0 1e0 -> -0 +ddqua511 quantize -0 1e-1 -> -0.0 +ddqua512 quantize -0.0 1e-1 -> -0.0 +ddqua513 quantize -0.0 1e0 -> -0 +ddqua514 quantize -0.0 1e+1 -> -0E+1 +ddqua515 quantize -0E+1 1e-1 -> -0.0 +ddqua516 quantize -0E+1 1e0 -> -0 +ddqua517 quantize -0E+1 1e+1 -> -0E+1 + +-- Suspicious RHS values +ddqua520 quantize 1.234 1e359 -> 0E+359 Inexact Rounded +ddqua521 quantize 123.456 1e359 -> 0E+359 Inexact Rounded +ddqua522 quantize 1.234 1e359 -> 0E+359 Inexact Rounded +ddqua523 quantize 123.456 1e359 -> 0E+359 Inexact Rounded +-- next four are "won't fit" overfl +ddqua526 quantize 1.234 1e-299 -> NaN Invalid_operation +ddqua527 quantize 123.456 1e-299 -> NaN Invalid_operation +ddqua528 quantize 1.234 1e-299 -> NaN Invalid_operation +ddqua529 quantize 123.456 1e-299 -> NaN Invalid_operation + +ddqua532 quantize 1.234E+299 1e299 -> 1E+299 Inexact Rounded +ddqua533 quantize 1.234E+298 1e299 -> 0E+299 Inexact Rounded +ddqua534 quantize 1.234 1e299 -> 0E+299 Inexact Rounded +ddqua537 quantize 0 1e-299 -> 0E-299 +-- next two are "won't fit" overflows +ddqua538 quantize 1.234 1e-299 -> NaN Invalid_operation +ddqua539 quantize 1.234 1e-300 -> NaN Invalid_operation +-- [more below] + +-- Specials +ddqua580 quantize Inf -Inf -> Infinity +ddqua581 quantize Inf 1e-299 -> NaN Invalid_operation +ddqua582 quantize Inf 1e-1 -> NaN Invalid_operation +ddqua583 quantize Inf 1e0 -> NaN Invalid_operation +ddqua584 quantize Inf 1e1 -> NaN Invalid_operation +ddqua585 quantize Inf 1e299 -> NaN Invalid_operation +ddqua586 quantize Inf Inf -> Infinity +ddqua587 quantize -1000 Inf -> NaN Invalid_operation +ddqua588 quantize -Inf Inf -> -Infinity +ddqua589 quantize -1 Inf -> NaN Invalid_operation +ddqua590 quantize 0 Inf -> NaN Invalid_operation +ddqua591 quantize 1 Inf -> NaN Invalid_operation +ddqua592 quantize 1000 Inf -> NaN Invalid_operation +ddqua593 quantize Inf Inf -> Infinity +ddqua594 quantize Inf 1e-0 -> NaN Invalid_operation +ddqua595 quantize -0 Inf -> NaN Invalid_operation + +ddqua600 quantize -Inf -Inf -> -Infinity +ddqua601 quantize -Inf 1e-299 -> NaN Invalid_operation +ddqua602 quantize -Inf 1e-1 -> NaN Invalid_operation +ddqua603 quantize -Inf 1e0 -> NaN Invalid_operation +ddqua604 quantize -Inf 1e1 -> NaN Invalid_operation +ddqua605 quantize -Inf 1e299 -> NaN Invalid_operation +ddqua606 quantize -Inf Inf -> -Infinity +ddqua607 quantize -1000 Inf -> NaN Invalid_operation +ddqua608 quantize -Inf -Inf -> -Infinity +ddqua609 quantize -1 -Inf -> NaN Invalid_operation +ddqua610 quantize 0 -Inf -> NaN Invalid_operation +ddqua611 quantize 1 -Inf -> NaN Invalid_operation +ddqua612 quantize 1000 -Inf -> NaN Invalid_operation +ddqua613 quantize Inf -Inf -> Infinity +ddqua614 quantize -Inf 1e-0 -> NaN Invalid_operation +ddqua615 quantize -0 -Inf -> NaN Invalid_operation + +ddqua621 quantize NaN -Inf -> NaN +ddqua622 quantize NaN 1e-299 -> NaN +ddqua623 quantize NaN 1e-1 -> NaN +ddqua624 quantize NaN 1e0 -> NaN +ddqua625 quantize NaN 1e1 -> NaN +ddqua626 quantize NaN 1e299 -> NaN +ddqua627 quantize NaN Inf -> NaN +ddqua628 quantize NaN NaN -> NaN +ddqua629 quantize -Inf NaN -> NaN +ddqua630 quantize -1000 NaN -> NaN +ddqua631 quantize -1 NaN -> NaN +ddqua632 quantize 0 NaN -> NaN +ddqua633 quantize 1 NaN -> NaN +ddqua634 quantize 1000 NaN -> NaN +ddqua635 quantize Inf NaN -> NaN +ddqua636 quantize NaN 1e-0 -> NaN +ddqua637 quantize -0 NaN -> NaN + +ddqua641 quantize sNaN -Inf -> NaN Invalid_operation +ddqua642 quantize sNaN 1e-299 -> NaN Invalid_operation +ddqua643 quantize sNaN 1e-1 -> NaN Invalid_operation +ddqua644 quantize sNaN 1e0 -> NaN Invalid_operation +ddqua645 quantize sNaN 1e1 -> NaN Invalid_operation +ddqua646 quantize sNaN 1e299 -> NaN Invalid_operation +ddqua647 quantize sNaN NaN -> NaN Invalid_operation +ddqua648 quantize sNaN sNaN -> NaN Invalid_operation +ddqua649 quantize NaN sNaN -> NaN Invalid_operation +ddqua650 quantize -Inf sNaN -> NaN Invalid_operation +ddqua651 quantize -1000 sNaN -> NaN Invalid_operation +ddqua652 quantize -1 sNaN -> NaN Invalid_operation +ddqua653 quantize 0 sNaN -> NaN Invalid_operation +ddqua654 quantize 1 sNaN -> NaN Invalid_operation +ddqua655 quantize 1000 sNaN -> NaN Invalid_operation +ddqua656 quantize Inf sNaN -> NaN Invalid_operation +ddqua657 quantize NaN sNaN -> NaN Invalid_operation +ddqua658 quantize sNaN 1e-0 -> NaN Invalid_operation +ddqua659 quantize -0 sNaN -> NaN Invalid_operation + +-- propagating NaNs +ddqua661 quantize NaN9 -Inf -> NaN9 +ddqua662 quantize NaN8 919 -> NaN8 +ddqua663 quantize NaN71 Inf -> NaN71 +ddqua664 quantize NaN6 NaN5 -> NaN6 +ddqua665 quantize -Inf NaN4 -> NaN4 +ddqua666 quantize -919 NaN31 -> NaN31 +ddqua667 quantize Inf NaN2 -> NaN2 + +ddqua671 quantize sNaN99 -Inf -> NaN99 Invalid_operation +ddqua672 quantize sNaN98 -11 -> NaN98 Invalid_operation +ddqua673 quantize sNaN97 NaN -> NaN97 Invalid_operation +ddqua674 quantize sNaN16 sNaN94 -> NaN16 Invalid_operation +ddqua675 quantize NaN95 sNaN93 -> NaN93 Invalid_operation +ddqua676 quantize -Inf sNaN92 -> NaN92 Invalid_operation +ddqua677 quantize 088 sNaN91 -> NaN91 Invalid_operation +ddqua678 quantize Inf sNaN90 -> NaN90 Invalid_operation +ddqua679 quantize NaN sNaN88 -> NaN88 Invalid_operation + +ddqua681 quantize -NaN9 -Inf -> -NaN9 +ddqua682 quantize -NaN8 919 -> -NaN8 +ddqua683 quantize -NaN71 Inf -> -NaN71 +ddqua684 quantize -NaN6 -NaN5 -> -NaN6 +ddqua685 quantize -Inf -NaN4 -> -NaN4 +ddqua686 quantize -919 -NaN31 -> -NaN31 +ddqua687 quantize Inf -NaN2 -> -NaN2 + +ddqua691 quantize -sNaN99 -Inf -> -NaN99 Invalid_operation +ddqua692 quantize -sNaN98 -11 -> -NaN98 Invalid_operation +ddqua693 quantize -sNaN97 NaN -> -NaN97 Invalid_operation +ddqua694 quantize -sNaN16 sNaN94 -> -NaN16 Invalid_operation +ddqua695 quantize -NaN95 -sNaN93 -> -NaN93 Invalid_operation +ddqua696 quantize -Inf -sNaN92 -> -NaN92 Invalid_operation +ddqua697 quantize 088 -sNaN91 -> -NaN91 Invalid_operation +ddqua698 quantize Inf -sNaN90 -> -NaN90 Invalid_operation +ddqua699 quantize NaN -sNaN88 -> -NaN88 Invalid_operation + +-- subnormals and underflow +ddqua710 quantize 1.00E-383 1e-383 -> 1E-383 Rounded +ddqua711 quantize 0.1E-383 2e-384 -> 1E-384 Subnormal +ddqua712 quantize 0.10E-383 3e-384 -> 1E-384 Subnormal Rounded +ddqua713 quantize 0.100E-383 4e-384 -> 1E-384 Subnormal Rounded +ddqua714 quantize 0.01E-383 5e-385 -> 1E-385 Subnormal +-- next is rounded to Emin +ddqua715 quantize 0.999E-383 1e-383 -> 1E-383 Inexact Rounded +ddqua716 quantize 0.099E-383 10e-384 -> 1E-384 Inexact Rounded Subnormal + +ddqua717 quantize 0.009E-383 1e-385 -> 1E-385 Inexact Rounded Subnormal +ddqua718 quantize 0.001E-383 1e-385 -> 0E-385 Inexact Rounded +ddqua719 quantize 0.0009E-383 1e-385 -> 0E-385 Inexact Rounded +ddqua720 quantize 0.0001E-383 1e-385 -> 0E-385 Inexact Rounded + +ddqua730 quantize -1.00E-383 1e-383 -> -1E-383 Rounded +ddqua731 quantize -0.1E-383 1e-383 -> -0E-383 Rounded Inexact +ddqua732 quantize -0.10E-383 1e-383 -> -0E-383 Rounded Inexact +ddqua733 quantize -0.100E-383 1e-383 -> -0E-383 Rounded Inexact +ddqua734 quantize -0.01E-383 1e-383 -> -0E-383 Inexact Rounded +-- next is rounded to Emin +ddqua735 quantize -0.999E-383 90e-383 -> -1E-383 Inexact Rounded +ddqua736 quantize -0.099E-383 -1e-383 -> -0E-383 Inexact Rounded +ddqua737 quantize -0.009E-383 -1e-383 -> -0E-383 Inexact Rounded +ddqua738 quantize -0.001E-383 -0e-383 -> -0E-383 Inexact Rounded +ddqua739 quantize -0.0001E-383 0e-383 -> -0E-383 Inexact Rounded + +ddqua740 quantize -1.00E-383 1e-384 -> -1.0E-383 Rounded +ddqua741 quantize -0.1E-383 1e-384 -> -1E-384 Subnormal +ddqua742 quantize -0.10E-383 1e-384 -> -1E-384 Subnormal Rounded +ddqua743 quantize -0.100E-383 1e-384 -> -1E-384 Subnormal Rounded +ddqua744 quantize -0.01E-383 1e-384 -> -0E-384 Inexact Rounded +-- next is rounded to Emin +ddqua745 quantize -0.999E-383 1e-384 -> -1.0E-383 Inexact Rounded +ddqua746 quantize -0.099E-383 1e-384 -> -1E-384 Inexact Rounded Subnormal +ddqua747 quantize -0.009E-383 1e-384 -> -0E-384 Inexact Rounded +ddqua748 quantize -0.001E-383 1e-384 -> -0E-384 Inexact Rounded +ddqua749 quantize -0.0001E-383 1e-384 -> -0E-384 Inexact Rounded + +ddqua750 quantize -1.00E-383 1e-385 -> -1.00E-383 +ddqua751 quantize -0.1E-383 1e-385 -> -1.0E-384 Subnormal +ddqua752 quantize -0.10E-383 1e-385 -> -1.0E-384 Subnormal +ddqua753 quantize -0.100E-383 1e-385 -> -1.0E-384 Subnormal Rounded +ddqua754 quantize -0.01E-383 1e-385 -> -1E-385 Subnormal +-- next is rounded to Emin +ddqua755 quantize -0.999E-383 1e-385 -> -1.00E-383 Inexact Rounded +ddqua756 quantize -0.099E-383 1e-385 -> -1.0E-384 Inexact Rounded Subnormal +ddqua757 quantize -0.009E-383 1e-385 -> -1E-385 Inexact Rounded Subnormal +ddqua758 quantize -0.001E-383 1e-385 -> -0E-385 Inexact Rounded +ddqua759 quantize -0.0001E-383 1e-385 -> -0E-385 Inexact Rounded + +ddqua760 quantize -1.00E-383 1e-386 -> -1.000E-383 +ddqua761 quantize -0.1E-383 1e-386 -> -1.00E-384 Subnormal +ddqua762 quantize -0.10E-383 1e-386 -> -1.00E-384 Subnormal +ddqua763 quantize -0.100E-383 1e-386 -> -1.00E-384 Subnormal +ddqua764 quantize -0.01E-383 1e-386 -> -1.0E-385 Subnormal +ddqua765 quantize -0.999E-383 1e-386 -> -9.99E-384 Subnormal +ddqua766 quantize -0.099E-383 1e-386 -> -9.9E-385 Subnormal +ddqua767 quantize -0.009E-383 1e-386 -> -9E-386 Subnormal +ddqua768 quantize -0.001E-383 1e-386 -> -1E-386 Subnormal +ddqua769 quantize -0.0001E-383 1e-386 -> -0E-386 Inexact Rounded + +-- More from Fung Lee +ddqua1021 quantize 8.666666666666000E+384 1.000000000000000E+384 -> 8.666666666666000E+384 +ddqua1022 quantize -8.666666666666000E+384 1.000000000000000E+384 -> -8.666666666666000E+384 +ddqua1027 quantize 8.666666666666000E+323 1E+31 -> NaN Invalid_operation +ddqua1029 quantize 8.66666666E+3 1E+3 -> 9E+3 Inexact Rounded + + +--ddqua1030 quantize 8.666666666666000E+384 1E+384 -> 9.000000000000000E+384 Rounded Inexact +--ddqua1031 quantize 8.666666666666000E+384 1E+384 -> 8.666666666666000E+384 Rounded +--ddqua1032 quantize 8.666666666666000E+384 1E+383 -> 8.666666666666000E+384 Rounded +--ddqua1033 quantize 8.666666666666000E+384 1E+382 -> 8.666666666666000E+384 Rounded +--ddqua1034 quantize 8.666666666666000E+384 1E+381 -> 8.666666666666000E+384 Rounded +--ddqua1035 quantize 8.666666666666000E+384 1E+380 -> 8.666666666666000E+384 Rounded + +-- Int and uInt32 edge values for testing conversions +ddqua1040 quantize -2147483646 0 -> -2147483646 +ddqua1041 quantize -2147483647 0 -> -2147483647 +ddqua1042 quantize -2147483648 0 -> -2147483648 +ddqua1043 quantize -2147483649 0 -> -2147483649 +ddqua1044 quantize 2147483646 0 -> 2147483646 +ddqua1045 quantize 2147483647 0 -> 2147483647 +ddqua1046 quantize 2147483648 0 -> 2147483648 +ddqua1047 quantize 2147483649 0 -> 2147483649 +ddqua1048 quantize 4294967294 0 -> 4294967294 +ddqua1049 quantize 4294967295 0 -> 4294967295 +ddqua1050 quantize 4294967296 0 -> 4294967296 +ddqua1051 quantize 4294967297 0 -> 4294967297 + +-- Rounding swathe +rounding: half_even +ddqua1100 quantize 1.2300 1.00 -> 1.23 Rounded +ddqua1101 quantize 1.2301 1.00 -> 1.23 Inexact Rounded +ddqua1102 quantize 1.2310 1.00 -> 1.23 Inexact Rounded +ddqua1103 quantize 1.2350 1.00 -> 1.24 Inexact Rounded +ddqua1104 quantize 1.2351 1.00 -> 1.24 Inexact Rounded +ddqua1105 quantize 1.2450 1.00 -> 1.24 Inexact Rounded +ddqua1106 quantize 1.2451 1.00 -> 1.25 Inexact Rounded +ddqua1107 quantize 1.2360 1.00 -> 1.24 Inexact Rounded +ddqua1108 quantize 1.2370 1.00 -> 1.24 Inexact Rounded +ddqua1109 quantize 1.2399 1.00 -> 1.24 Inexact Rounded + +rounding: half_up +ddqua1200 quantize 1.2300 1.00 -> 1.23 Rounded +ddqua1201 quantize 1.2301 1.00 -> 1.23 Inexact Rounded +ddqua1202 quantize 1.2310 1.00 -> 1.23 Inexact Rounded +ddqua1203 quantize 1.2350 1.00 -> 1.24 Inexact Rounded +ddqua1204 quantize 1.2351 1.00 -> 1.24 Inexact Rounded +ddqua1205 quantize 1.2450 1.00 -> 1.25 Inexact Rounded +ddqua1206 quantize 1.2451 1.00 -> 1.25 Inexact Rounded +ddqua1207 quantize 1.2360 1.00 -> 1.24 Inexact Rounded +ddqua1208 quantize 1.2370 1.00 -> 1.24 Inexact Rounded +ddqua1209 quantize 1.2399 1.00 -> 1.24 Inexact Rounded + +rounding: half_down +ddqua1300 quantize 1.2300 1.00 -> 1.23 Rounded +ddqua1301 quantize 1.2301 1.00 -> 1.23 Inexact Rounded +ddqua1302 quantize 1.2310 1.00 -> 1.23 Inexact Rounded +ddqua1303 quantize 1.2350 1.00 -> 1.23 Inexact Rounded +ddqua1304 quantize 1.2351 1.00 -> 1.24 Inexact Rounded +ddqua1305 quantize 1.2450 1.00 -> 1.24 Inexact Rounded +ddqua1306 quantize 1.2451 1.00 -> 1.25 Inexact Rounded +ddqua1307 quantize 1.2360 1.00 -> 1.24 Inexact Rounded +ddqua1308 quantize 1.2370 1.00 -> 1.24 Inexact Rounded +ddqua1309 quantize 1.2399 1.00 -> 1.24 Inexact Rounded + +rounding: up +ddqua1400 quantize 1.2300 1.00 -> 1.23 Rounded +ddqua1401 quantize 1.2301 1.00 -> 1.24 Inexact Rounded +ddqua1402 quantize 1.2310 1.00 -> 1.24 Inexact Rounded +ddqua1403 quantize 1.2350 1.00 -> 1.24 Inexact Rounded +ddqua1404 quantize 1.2351 1.00 -> 1.24 Inexact Rounded +ddqua1405 quantize 1.2450 1.00 -> 1.25 Inexact Rounded +ddqua1406 quantize 1.2451 1.00 -> 1.25 Inexact Rounded +ddqua1407 quantize 1.2360 1.00 -> 1.24 Inexact Rounded +ddqua1408 quantize 1.2370 1.00 -> 1.24 Inexact Rounded +ddqua1409 quantize 1.2399 1.00 -> 1.24 Inexact Rounded +ddqua1411 quantize -1.2399 1.00 -> -1.24 Inexact Rounded + +rounding: down +ddqua1500 quantize 1.2300 1.00 -> 1.23 Rounded +ddqua1501 quantize 1.2301 1.00 -> 1.23 Inexact Rounded +ddqua1502 quantize 1.2310 1.00 -> 1.23 Inexact Rounded +ddqua1503 quantize 1.2350 1.00 -> 1.23 Inexact Rounded +ddqua1504 quantize 1.2351 1.00 -> 1.23 Inexact Rounded +ddqua1505 quantize 1.2450 1.00 -> 1.24 Inexact Rounded +ddqua1506 quantize 1.2451 1.00 -> 1.24 Inexact Rounded +ddqua1507 quantize 1.2360 1.00 -> 1.23 Inexact Rounded +ddqua1508 quantize 1.2370 1.00 -> 1.23 Inexact Rounded +ddqua1509 quantize 1.2399 1.00 -> 1.23 Inexact Rounded +ddqua1511 quantize -1.2399 1.00 -> -1.23 Inexact Rounded + +rounding: ceiling +ddqua1600 quantize 1.2300 1.00 -> 1.23 Rounded +ddqua1601 quantize 1.2301 1.00 -> 1.24 Inexact Rounded +ddqua1602 quantize 1.2310 1.00 -> 1.24 Inexact Rounded +ddqua1603 quantize 1.2350 1.00 -> 1.24 Inexact Rounded +ddqua1604 quantize 1.2351 1.00 -> 1.24 Inexact Rounded +ddqua1605 quantize 1.2450 1.00 -> 1.25 Inexact Rounded +ddqua1606 quantize 1.2451 1.00 -> 1.25 Inexact Rounded +ddqua1607 quantize 1.2360 1.00 -> 1.24 Inexact Rounded +ddqua1608 quantize 1.2370 1.00 -> 1.24 Inexact Rounded +ddqua1609 quantize 1.2399 1.00 -> 1.24 Inexact Rounded +ddqua1611 quantize -1.2399 1.00 -> -1.23 Inexact Rounded + +rounding: floor +ddqua1700 quantize 1.2300 1.00 -> 1.23 Rounded +ddqua1701 quantize 1.2301 1.00 -> 1.23 Inexact Rounded +ddqua1702 quantize 1.2310 1.00 -> 1.23 Inexact Rounded +ddqua1703 quantize 1.2350 1.00 -> 1.23 Inexact Rounded +ddqua1704 quantize 1.2351 1.00 -> 1.23 Inexact Rounded +ddqua1705 quantize 1.2450 1.00 -> 1.24 Inexact Rounded +ddqua1706 quantize 1.2451 1.00 -> 1.24 Inexact Rounded +ddqua1707 quantize 1.2360 1.00 -> 1.23 Inexact Rounded +ddqua1708 quantize 1.2370 1.00 -> 1.23 Inexact Rounded +ddqua1709 quantize 1.2399 1.00 -> 1.23 Inexact Rounded +ddqua1711 quantize -1.2399 1.00 -> -1.24 Inexact Rounded + +rounding: 05up +ddqua1800 quantize 1.2000 1.00 -> 1.20 Rounded +ddqua1801 quantize 1.2001 1.00 -> 1.21 Inexact Rounded +ddqua1802 quantize 1.2010 1.00 -> 1.21 Inexact Rounded +ddqua1803 quantize 1.2050 1.00 -> 1.21 Inexact Rounded +ddqua1804 quantize 1.2051 1.00 -> 1.21 Inexact Rounded +ddqua1807 quantize 1.2060 1.00 -> 1.21 Inexact Rounded +ddqua1808 quantize 1.2070 1.00 -> 1.21 Inexact Rounded +ddqua1809 quantize 1.2099 1.00 -> 1.21 Inexact Rounded +ddqua1811 quantize -1.2099 1.00 -> -1.21 Inexact Rounded + +ddqua1900 quantize 1.2100 1.00 -> 1.21 Rounded +ddqua1901 quantize 1.2101 1.00 -> 1.21 Inexact Rounded +ddqua1902 quantize 1.2110 1.00 -> 1.21 Inexact Rounded +ddqua1903 quantize 1.2150 1.00 -> 1.21 Inexact Rounded +ddqua1904 quantize 1.2151 1.00 -> 1.21 Inexact Rounded +ddqua1907 quantize 1.2160 1.00 -> 1.21 Inexact Rounded +ddqua1908 quantize 1.2170 1.00 -> 1.21 Inexact Rounded +ddqua1909 quantize 1.2199 1.00 -> 1.21 Inexact Rounded +ddqua1911 quantize -1.2199 1.00 -> -1.21 Inexact Rounded + +ddqua2000 quantize 1.2400 1.00 -> 1.24 Rounded +ddqua2001 quantize 1.2401 1.00 -> 1.24 Inexact Rounded +ddqua2002 quantize 1.2410 1.00 -> 1.24 Inexact Rounded +ddqua2003 quantize 1.2450 1.00 -> 1.24 Inexact Rounded +ddqua2004 quantize 1.2451 1.00 -> 1.24 Inexact Rounded +ddqua2007 quantize 1.2460 1.00 -> 1.24 Inexact Rounded +ddqua2008 quantize 1.2470 1.00 -> 1.24 Inexact Rounded +ddqua2009 quantize 1.2499 1.00 -> 1.24 Inexact Rounded +ddqua2011 quantize -1.2499 1.00 -> -1.24 Inexact Rounded + +ddqua2100 quantize 1.2500 1.00 -> 1.25 Rounded +ddqua2101 quantize 1.2501 1.00 -> 1.26 Inexact Rounded +ddqua2102 quantize 1.2510 1.00 -> 1.26 Inexact Rounded +ddqua2103 quantize 1.2550 1.00 -> 1.26 Inexact Rounded +ddqua2104 quantize 1.2551 1.00 -> 1.26 Inexact Rounded +ddqua2107 quantize 1.2560 1.00 -> 1.26 Inexact Rounded +ddqua2108 quantize 1.2570 1.00 -> 1.26 Inexact Rounded +ddqua2109 quantize 1.2599 1.00 -> 1.26 Inexact Rounded +ddqua2111 quantize -1.2599 1.00 -> -1.26 Inexact Rounded + +ddqua2200 quantize 1.2600 1.00 -> 1.26 Rounded +ddqua2201 quantize 1.2601 1.00 -> 1.26 Inexact Rounded +ddqua2202 quantize 1.2610 1.00 -> 1.26 Inexact Rounded +ddqua2203 quantize 1.2650 1.00 -> 1.26 Inexact Rounded +ddqua2204 quantize 1.2651 1.00 -> 1.26 Inexact Rounded +ddqua2207 quantize 1.2660 1.00 -> 1.26 Inexact Rounded +ddqua2208 quantize 1.2670 1.00 -> 1.26 Inexact Rounded +ddqua2209 quantize 1.2699 1.00 -> 1.26 Inexact Rounded +ddqua2211 quantize -1.2699 1.00 -> -1.26 Inexact Rounded + +ddqua2300 quantize 1.2900 1.00 -> 1.29 Rounded +ddqua2301 quantize 1.2901 1.00 -> 1.29 Inexact Rounded +ddqua2302 quantize 1.2910 1.00 -> 1.29 Inexact Rounded +ddqua2303 quantize 1.2950 1.00 -> 1.29 Inexact Rounded +ddqua2304 quantize 1.2951 1.00 -> 1.29 Inexact Rounded +ddqua2307 quantize 1.2960 1.00 -> 1.29 Inexact Rounded +ddqua2308 quantize 1.2970 1.00 -> 1.29 Inexact Rounded +ddqua2309 quantize 1.2999 1.00 -> 1.29 Inexact Rounded +ddqua2311 quantize -1.2999 1.00 -> -1.29 Inexact Rounded + +-- Null tests +rounding: half_even +ddqua998 quantize 10 # -> NaN Invalid_operation +ddqua999 quantize # 1e10 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/ddReduce.decTest b/Lib/test/decimaltestdata/ddReduce.decTest index bdfd060492..9529e50a75 100644 --- a/Lib/test/decimaltestdata/ddReduce.decTest +++ b/Lib/test/decimaltestdata/ddReduce.decTest @@ -1,182 +1,182 @@ -------------------------------------------------------------------------
--- ddReduce.decTest -- remove trailing zeros from a decDouble --
--- Copyright (c) IBM Corporation, 2003, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
-ddred001 reduce '1' -> '1'
-ddred002 reduce '-1' -> '-1'
-ddred003 reduce '1.00' -> '1'
-ddred004 reduce '-1.00' -> '-1'
-ddred005 reduce '0' -> '0'
-ddred006 reduce '0.00' -> '0'
-ddred007 reduce '00.0' -> '0'
-ddred008 reduce '00.00' -> '0'
-ddred009 reduce '00' -> '0'
-ddred010 reduce '0E+1' -> '0'
-ddred011 reduce '0E+5' -> '0'
-
-ddred012 reduce '-2' -> '-2'
-ddred013 reduce '2' -> '2'
-ddred014 reduce '-2.00' -> '-2'
-ddred015 reduce '2.00' -> '2'
-ddred016 reduce '-0' -> '-0'
-ddred017 reduce '-0.00' -> '-0'
-ddred018 reduce '-00.0' -> '-0'
-ddred019 reduce '-00.00' -> '-0'
-ddred020 reduce '-00' -> '-0'
-ddred021 reduce '-0E+5' -> '-0'
-ddred022 reduce '-0E+1' -> '-0'
-
-ddred030 reduce '+0.1' -> '0.1'
-ddred031 reduce '-0.1' -> '-0.1'
-ddred032 reduce '+0.01' -> '0.01'
-ddred033 reduce '-0.01' -> '-0.01'
-ddred034 reduce '+0.001' -> '0.001'
-ddred035 reduce '-0.001' -> '-0.001'
-ddred036 reduce '+0.000001' -> '0.000001'
-ddred037 reduce '-0.000001' -> '-0.000001'
-ddred038 reduce '+0.000000000001' -> '1E-12'
-ddred039 reduce '-0.000000000001' -> '-1E-12'
-
-ddred041 reduce 1.1 -> 1.1
-ddred042 reduce 1.10 -> 1.1
-ddred043 reduce 1.100 -> 1.1
-ddred044 reduce 1.110 -> 1.11
-ddred045 reduce -1.1 -> -1.1
-ddred046 reduce -1.10 -> -1.1
-ddred047 reduce -1.100 -> -1.1
-ddred048 reduce -1.110 -> -1.11
-ddred049 reduce 9.9 -> 9.9
-ddred050 reduce 9.90 -> 9.9
-ddred051 reduce 9.900 -> 9.9
-ddred052 reduce 9.990 -> 9.99
-ddred053 reduce -9.9 -> -9.9
-ddred054 reduce -9.90 -> -9.9
-ddred055 reduce -9.900 -> -9.9
-ddred056 reduce -9.990 -> -9.99
-
--- some trailing fractional zeros with zeros in units
-ddred060 reduce 10.0 -> 1E+1
-ddred061 reduce 10.00 -> 1E+1
-ddred062 reduce 100.0 -> 1E+2
-ddred063 reduce 100.00 -> 1E+2
-ddred064 reduce 1.1000E+3 -> 1.1E+3
-ddred065 reduce 1.10000E+3 -> 1.1E+3
-ddred066 reduce -10.0 -> -1E+1
-ddred067 reduce -10.00 -> -1E+1
-ddred068 reduce -100.0 -> -1E+2
-ddred069 reduce -100.00 -> -1E+2
-ddred070 reduce -1.1000E+3 -> -1.1E+3
-ddred071 reduce -1.10000E+3 -> -1.1E+3
-
--- some insignificant trailing zeros with positive exponent
-ddred080 reduce 10E+1 -> 1E+2
-ddred081 reduce 100E+1 -> 1E+3
-ddred082 reduce 1.0E+2 -> 1E+2
-ddred083 reduce 1.0E+3 -> 1E+3
-ddred084 reduce 1.1E+3 -> 1.1E+3
-ddred085 reduce 1.00E+3 -> 1E+3
-ddred086 reduce 1.10E+3 -> 1.1E+3
-ddred087 reduce -10E+1 -> -1E+2
-ddred088 reduce -100E+1 -> -1E+3
-ddred089 reduce -1.0E+2 -> -1E+2
-ddred090 reduce -1.0E+3 -> -1E+3
-ddred091 reduce -1.1E+3 -> -1.1E+3
-ddred092 reduce -1.00E+3 -> -1E+3
-ddred093 reduce -1.10E+3 -> -1.1E+3
-
--- some significant trailing zeros, were we to be trimming
-ddred100 reduce 11 -> 11
-ddred101 reduce 10 -> 1E+1
-ddred102 reduce 10. -> 1E+1
-ddred103 reduce 1.1E+1 -> 11
-ddred104 reduce 1.0E+1 -> 1E+1
-ddred105 reduce 1.10E+2 -> 1.1E+2
-ddred106 reduce 1.00E+2 -> 1E+2
-ddred107 reduce 1.100E+3 -> 1.1E+3
-ddred108 reduce 1.000E+3 -> 1E+3
-ddred109 reduce 1.000000E+6 -> 1E+6
-ddred110 reduce -11 -> -11
-ddred111 reduce -10 -> -1E+1
-ddred112 reduce -10. -> -1E+1
-ddred113 reduce -1.1E+1 -> -11
-ddred114 reduce -1.0E+1 -> -1E+1
-ddred115 reduce -1.10E+2 -> -1.1E+2
-ddred116 reduce -1.00E+2 -> -1E+2
-ddred117 reduce -1.100E+3 -> -1.1E+3
-ddred118 reduce -1.000E+3 -> -1E+3
-ddred119 reduce -1.00000E+5 -> -1E+5
-ddred120 reduce -1.000000E+6 -> -1E+6
-ddred121 reduce -10.00000E+6 -> -1E+7
-ddred122 reduce -100.0000E+6 -> -1E+8
-ddred123 reduce -1000.000E+6 -> -1E+9
-ddred124 reduce -10000.00E+6 -> -1E+10
-ddred125 reduce -100000.0E+6 -> -1E+11
-ddred126 reduce -1000000.E+6 -> -1E+12
-
--- examples from decArith
-ddred140 reduce '2.1' -> '2.1'
-ddred141 reduce '-2.0' -> '-2'
-ddred142 reduce '1.200' -> '1.2'
-ddred143 reduce '-120' -> '-1.2E+2'
-ddred144 reduce '120.00' -> '1.2E+2'
-ddred145 reduce '0.00' -> '0'
-
--- Nmax, Nmin, Ntiny
--- note origami effect on some of these
-ddred151 reduce 9.999999999999999E+384 -> 9.999999999999999E+384
-ddred152 reduce 9.999999000000000E+380 -> 9.99999900000E+380
-ddred153 reduce 9.999999999990000E+384 -> 9.999999999990000E+384
-ddred154 reduce 1E-383 -> 1E-383
-ddred155 reduce 1.000000000000000E-383 -> 1E-383
-ddred156 reduce 2.000E-395 -> 2E-395 Subnormal
-ddred157 reduce 1E-398 -> 1E-398 Subnormal
-
-ddred161 reduce -1E-398 -> -1E-398 Subnormal
-ddred162 reduce -2.000E-395 -> -2E-395 Subnormal
-ddred163 reduce -1.000000000000000E-383 -> -1E-383
-ddred164 reduce -1E-383 -> -1E-383
-ddred165 reduce -9.999999000000000E+380 -> -9.99999900000E+380
-ddred166 reduce -9.999999999990000E+384 -> -9.999999999990000E+384
-ddred167 reduce -9.999999999999990E+384 -> -9.999999999999990E+384
-ddred168 reduce -9.999999999999999E+384 -> -9.999999999999999E+384
-ddred169 reduce -9.999999999999990E+384 -> -9.999999999999990E+384
-
-
--- specials (reduce does not affect payload)
-ddred820 reduce 'Inf' -> 'Infinity'
-ddred821 reduce '-Inf' -> '-Infinity'
-ddred822 reduce NaN -> NaN
-ddred823 reduce sNaN -> NaN Invalid_operation
-ddred824 reduce NaN101 -> NaN101
-ddred825 reduce sNaN010 -> NaN10 Invalid_operation
-ddred827 reduce -NaN -> -NaN
-ddred828 reduce -sNaN -> -NaN Invalid_operation
-ddred829 reduce -NaN101 -> -NaN101
-ddred830 reduce -sNaN010 -> -NaN10 Invalid_operation
-
--- Null test
-ddred900 reduce # -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- ddReduce.decTest -- remove trailing zeros from a decDouble -- +-- Copyright (c) IBM Corporation, 2003, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +ddred001 reduce '1' -> '1' +ddred002 reduce '-1' -> '-1' +ddred003 reduce '1.00' -> '1' +ddred004 reduce '-1.00' -> '-1' +ddred005 reduce '0' -> '0' +ddred006 reduce '0.00' -> '0' +ddred007 reduce '00.0' -> '0' +ddred008 reduce '00.00' -> '0' +ddred009 reduce '00' -> '0' +ddred010 reduce '0E+1' -> '0' +ddred011 reduce '0E+5' -> '0' + +ddred012 reduce '-2' -> '-2' +ddred013 reduce '2' -> '2' +ddred014 reduce '-2.00' -> '-2' +ddred015 reduce '2.00' -> '2' +ddred016 reduce '-0' -> '-0' +ddred017 reduce '-0.00' -> '-0' +ddred018 reduce '-00.0' -> '-0' +ddred019 reduce '-00.00' -> '-0' +ddred020 reduce '-00' -> '-0' +ddred021 reduce '-0E+5' -> '-0' +ddred022 reduce '-0E+1' -> '-0' + +ddred030 reduce '+0.1' -> '0.1' +ddred031 reduce '-0.1' -> '-0.1' +ddred032 reduce '+0.01' -> '0.01' +ddred033 reduce '-0.01' -> '-0.01' +ddred034 reduce '+0.001' -> '0.001' +ddred035 reduce '-0.001' -> '-0.001' +ddred036 reduce '+0.000001' -> '0.000001' +ddred037 reduce '-0.000001' -> '-0.000001' +ddred038 reduce '+0.000000000001' -> '1E-12' +ddred039 reduce '-0.000000000001' -> '-1E-12' + +ddred041 reduce 1.1 -> 1.1 +ddred042 reduce 1.10 -> 1.1 +ddred043 reduce 1.100 -> 1.1 +ddred044 reduce 1.110 -> 1.11 +ddred045 reduce -1.1 -> -1.1 +ddred046 reduce -1.10 -> -1.1 +ddred047 reduce -1.100 -> -1.1 +ddred048 reduce -1.110 -> -1.11 +ddred049 reduce 9.9 -> 9.9 +ddred050 reduce 9.90 -> 9.9 +ddred051 reduce 9.900 -> 9.9 +ddred052 reduce 9.990 -> 9.99 +ddred053 reduce -9.9 -> -9.9 +ddred054 reduce -9.90 -> -9.9 +ddred055 reduce -9.900 -> -9.9 +ddred056 reduce -9.990 -> -9.99 + +-- some trailing fractional zeros with zeros in units +ddred060 reduce 10.0 -> 1E+1 +ddred061 reduce 10.00 -> 1E+1 +ddred062 reduce 100.0 -> 1E+2 +ddred063 reduce 100.00 -> 1E+2 +ddred064 reduce 1.1000E+3 -> 1.1E+3 +ddred065 reduce 1.10000E+3 -> 1.1E+3 +ddred066 reduce -10.0 -> -1E+1 +ddred067 reduce -10.00 -> -1E+1 +ddred068 reduce -100.0 -> -1E+2 +ddred069 reduce -100.00 -> -1E+2 +ddred070 reduce -1.1000E+3 -> -1.1E+3 +ddred071 reduce -1.10000E+3 -> -1.1E+3 + +-- some insignificant trailing zeros with positive exponent +ddred080 reduce 10E+1 -> 1E+2 +ddred081 reduce 100E+1 -> 1E+3 +ddred082 reduce 1.0E+2 -> 1E+2 +ddred083 reduce 1.0E+3 -> 1E+3 +ddred084 reduce 1.1E+3 -> 1.1E+3 +ddred085 reduce 1.00E+3 -> 1E+3 +ddred086 reduce 1.10E+3 -> 1.1E+3 +ddred087 reduce -10E+1 -> -1E+2 +ddred088 reduce -100E+1 -> -1E+3 +ddred089 reduce -1.0E+2 -> -1E+2 +ddred090 reduce -1.0E+3 -> -1E+3 +ddred091 reduce -1.1E+3 -> -1.1E+3 +ddred092 reduce -1.00E+3 -> -1E+3 +ddred093 reduce -1.10E+3 -> -1.1E+3 + +-- some significant trailing zeros, were we to be trimming +ddred100 reduce 11 -> 11 +ddred101 reduce 10 -> 1E+1 +ddred102 reduce 10. -> 1E+1 +ddred103 reduce 1.1E+1 -> 11 +ddred104 reduce 1.0E+1 -> 1E+1 +ddred105 reduce 1.10E+2 -> 1.1E+2 +ddred106 reduce 1.00E+2 -> 1E+2 +ddred107 reduce 1.100E+3 -> 1.1E+3 +ddred108 reduce 1.000E+3 -> 1E+3 +ddred109 reduce 1.000000E+6 -> 1E+6 +ddred110 reduce -11 -> -11 +ddred111 reduce -10 -> -1E+1 +ddred112 reduce -10. -> -1E+1 +ddred113 reduce -1.1E+1 -> -11 +ddred114 reduce -1.0E+1 -> -1E+1 +ddred115 reduce -1.10E+2 -> -1.1E+2 +ddred116 reduce -1.00E+2 -> -1E+2 +ddred117 reduce -1.100E+3 -> -1.1E+3 +ddred118 reduce -1.000E+3 -> -1E+3 +ddred119 reduce -1.00000E+5 -> -1E+5 +ddred120 reduce -1.000000E+6 -> -1E+6 +ddred121 reduce -10.00000E+6 -> -1E+7 +ddred122 reduce -100.0000E+6 -> -1E+8 +ddred123 reduce -1000.000E+6 -> -1E+9 +ddred124 reduce -10000.00E+6 -> -1E+10 +ddred125 reduce -100000.0E+6 -> -1E+11 +ddred126 reduce -1000000.E+6 -> -1E+12 + +-- examples from decArith +ddred140 reduce '2.1' -> '2.1' +ddred141 reduce '-2.0' -> '-2' +ddred142 reduce '1.200' -> '1.2' +ddred143 reduce '-120' -> '-1.2E+2' +ddred144 reduce '120.00' -> '1.2E+2' +ddred145 reduce '0.00' -> '0' + +-- Nmax, Nmin, Ntiny +-- note origami effect on some of these +ddred151 reduce 9.999999999999999E+384 -> 9.999999999999999E+384 +ddred152 reduce 9.999999000000000E+380 -> 9.99999900000E+380 +ddred153 reduce 9.999999999990000E+384 -> 9.999999999990000E+384 +ddred154 reduce 1E-383 -> 1E-383 +ddred155 reduce 1.000000000000000E-383 -> 1E-383 +ddred156 reduce 2.000E-395 -> 2E-395 Subnormal +ddred157 reduce 1E-398 -> 1E-398 Subnormal + +ddred161 reduce -1E-398 -> -1E-398 Subnormal +ddred162 reduce -2.000E-395 -> -2E-395 Subnormal +ddred163 reduce -1.000000000000000E-383 -> -1E-383 +ddred164 reduce -1E-383 -> -1E-383 +ddred165 reduce -9.999999000000000E+380 -> -9.99999900000E+380 +ddred166 reduce -9.999999999990000E+384 -> -9.999999999990000E+384 +ddred167 reduce -9.999999999999990E+384 -> -9.999999999999990E+384 +ddred168 reduce -9.999999999999999E+384 -> -9.999999999999999E+384 +ddred169 reduce -9.999999999999990E+384 -> -9.999999999999990E+384 + + +-- specials (reduce does not affect payload) +ddred820 reduce 'Inf' -> 'Infinity' +ddred821 reduce '-Inf' -> '-Infinity' +ddred822 reduce NaN -> NaN +ddred823 reduce sNaN -> NaN Invalid_operation +ddred824 reduce NaN101 -> NaN101 +ddred825 reduce sNaN010 -> NaN10 Invalid_operation +ddred827 reduce -NaN -> -NaN +ddred828 reduce -sNaN -> -NaN Invalid_operation +ddred829 reduce -NaN101 -> -NaN101 +ddred830 reduce -sNaN010 -> -NaN10 Invalid_operation + +-- Null test +ddred900 reduce # -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/ddRemainder.decTest b/Lib/test/decimaltestdata/ddRemainder.decTest index 5bd1e32d01..85d86f9457 100644 --- a/Lib/test/decimaltestdata/ddRemainder.decTest +++ b/Lib/test/decimaltestdata/ddRemainder.decTest @@ -1,600 +1,600 @@ -------------------------------------------------------------------------
--- ddRemainder.decTest -- decDouble remainder --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
--- sanity checks (as base, above)
-ddrem001 remainder 1 1 -> 0
-ddrem002 remainder 2 1 -> 0
-ddrem003 remainder 1 2 -> 1
-ddrem004 remainder 2 2 -> 0
-ddrem005 remainder 0 1 -> 0
-ddrem006 remainder 0 2 -> 0
-ddrem007 remainder 1 3 -> 1
-ddrem008 remainder 2 3 -> 2
-ddrem009 remainder 3 3 -> 0
-
-ddrem010 remainder 2.4 1 -> 0.4
-ddrem011 remainder 2.4 -1 -> 0.4
-ddrem012 remainder -2.4 1 -> -0.4
-ddrem013 remainder -2.4 -1 -> -0.4
-ddrem014 remainder 2.40 1 -> 0.40
-ddrem015 remainder 2.400 1 -> 0.400
-ddrem016 remainder 2.4 2 -> 0.4
-ddrem017 remainder 2.400 2 -> 0.400
-ddrem018 remainder 2. 2 -> 0
-ddrem019 remainder 20 20 -> 0
-
-ddrem020 remainder 187 187 -> 0
-ddrem021 remainder 5 2 -> 1
-ddrem022 remainder 5 2.0 -> 1.0
-ddrem023 remainder 5 2.000 -> 1.000
-ddrem024 remainder 5 0.200 -> 0.000
-ddrem025 remainder 5 0.200 -> 0.000
-
-ddrem030 remainder 1 2 -> 1
-ddrem031 remainder 1 4 -> 1
-ddrem032 remainder 1 8 -> 1
-
-ddrem033 remainder 1 16 -> 1
-ddrem034 remainder 1 32 -> 1
-ddrem035 remainder 1 64 -> 1
-ddrem040 remainder 1 -2 -> 1
-ddrem041 remainder 1 -4 -> 1
-ddrem042 remainder 1 -8 -> 1
-ddrem043 remainder 1 -16 -> 1
-ddrem044 remainder 1 -32 -> 1
-ddrem045 remainder 1 -64 -> 1
-ddrem050 remainder -1 2 -> -1
-ddrem051 remainder -1 4 -> -1
-ddrem052 remainder -1 8 -> -1
-ddrem053 remainder -1 16 -> -1
-ddrem054 remainder -1 32 -> -1
-ddrem055 remainder -1 64 -> -1
-ddrem060 remainder -1 -2 -> -1
-ddrem061 remainder -1 -4 -> -1
-ddrem062 remainder -1 -8 -> -1
-ddrem063 remainder -1 -16 -> -1
-ddrem064 remainder -1 -32 -> -1
-ddrem065 remainder -1 -64 -> -1
-
-ddrem066 remainder 999999999 1 -> 0
-ddrem067 remainder 999999999.4 1 -> 0.4
-ddrem068 remainder 999999999.5 1 -> 0.5
-ddrem069 remainder 999999999.9 1 -> 0.9
-ddrem070 remainder 999999999.999 1 -> 0.999
-ddrem071 remainder 999999.999999 1 -> 0.999999
-ddrem072 remainder 9 1 -> 0
-ddrem073 remainder 9999999999999999 1 -> 0
-ddrem074 remainder 9999999999999999 2 -> 1
-ddrem075 remainder 9999999999999999 3 -> 0
-ddrem076 remainder 9999999999999999 4 -> 3
-
-ddrem080 remainder 0. 1 -> 0
-ddrem081 remainder .0 1 -> 0.0
-ddrem082 remainder 0.00 1 -> 0.00
-ddrem083 remainder 0.00E+9 1 -> 0
-ddrem084 remainder 0.00E+3 1 -> 0
-ddrem085 remainder 0.00E+2 1 -> 0
-ddrem086 remainder 0.00E+1 1 -> 0.0
-ddrem087 remainder 0.00E+0 1 -> 0.00
-ddrem088 remainder 0.00E-0 1 -> 0.00
-ddrem089 remainder 0.00E-1 1 -> 0.000
-ddrem090 remainder 0.00E-2 1 -> 0.0000
-ddrem091 remainder 0.00E-3 1 -> 0.00000
-ddrem092 remainder 0.00E-4 1 -> 0.000000
-ddrem093 remainder 0.00E-5 1 -> 0E-7
-ddrem094 remainder 0.00E-6 1 -> 0E-8
-ddrem095 remainder 0.0000E-50 1 -> 0E-54
-
--- Various flavours of remainder by 0
-ddrem101 remainder 0 0 -> NaN Division_undefined
-ddrem102 remainder 0 -0 -> NaN Division_undefined
-ddrem103 remainder -0 0 -> NaN Division_undefined
-ddrem104 remainder -0 -0 -> NaN Division_undefined
-ddrem105 remainder 0.0E5 0 -> NaN Division_undefined
-ddrem106 remainder 0.000 0 -> NaN Division_undefined
--- [Some think this next group should be Division_by_zero exception, but
--- IEEE 854 is explicit that it is Invalid operation .. for
--- remainder-near, anyway]
-ddrem107 remainder 0.0001 0 -> NaN Invalid_operation
-ddrem108 remainder 0.01 0 -> NaN Invalid_operation
-ddrem109 remainder 0.1 0 -> NaN Invalid_operation
-ddrem110 remainder 1 0 -> NaN Invalid_operation
-ddrem111 remainder 1 0.0 -> NaN Invalid_operation
-ddrem112 remainder 10 0.0 -> NaN Invalid_operation
-ddrem113 remainder 1E+100 0.0 -> NaN Invalid_operation
-ddrem114 remainder 1E+380 0 -> NaN Invalid_operation
-ddrem115 remainder 0.0001 -0 -> NaN Invalid_operation
-ddrem116 remainder 0.01 -0 -> NaN Invalid_operation
-ddrem119 remainder 0.1 -0 -> NaN Invalid_operation
-ddrem120 remainder 1 -0 -> NaN Invalid_operation
-ddrem121 remainder 1 -0.0 -> NaN Invalid_operation
-ddrem122 remainder 10 -0.0 -> NaN Invalid_operation
-ddrem123 remainder 1E+100 -0.0 -> NaN Invalid_operation
-ddrem124 remainder 1E+384 -0 -> NaN Invalid_operation
--- and zeros on left
-ddrem130 remainder 0 1 -> 0
-ddrem131 remainder 0 -1 -> 0
-ddrem132 remainder 0.0 1 -> 0.0
-ddrem133 remainder 0.0 -1 -> 0.0
-ddrem134 remainder -0 1 -> -0
-ddrem135 remainder -0 -1 -> -0
-ddrem136 remainder -0.0 1 -> -0.0
-ddrem137 remainder -0.0 -1 -> -0.0
-
--- 0.5ers
-ddrem143 remainder 0.5 2 -> 0.5
-ddrem144 remainder 0.5 2.1 -> 0.5
-ddrem145 remainder 0.5 2.01 -> 0.50
-ddrem146 remainder 0.5 2.001 -> 0.500
-ddrem147 remainder 0.50 2 -> 0.50
-ddrem148 remainder 0.50 2.01 -> 0.50
-ddrem149 remainder 0.50 2.001 -> 0.500
-
--- steadies
-ddrem150 remainder 1 1 -> 0
-ddrem151 remainder 1 2 -> 1
-ddrem152 remainder 1 3 -> 1
-ddrem153 remainder 1 4 -> 1
-ddrem154 remainder 1 5 -> 1
-ddrem155 remainder 1 6 -> 1
-ddrem156 remainder 1 7 -> 1
-ddrem157 remainder 1 8 -> 1
-ddrem158 remainder 1 9 -> 1
-ddrem159 remainder 1 10 -> 1
-ddrem160 remainder 1 1 -> 0
-ddrem161 remainder 2 1 -> 0
-ddrem162 remainder 3 1 -> 0
-ddrem163 remainder 4 1 -> 0
-ddrem164 remainder 5 1 -> 0
-ddrem165 remainder 6 1 -> 0
-ddrem166 remainder 7 1 -> 0
-ddrem167 remainder 8 1 -> 0
-ddrem168 remainder 9 1 -> 0
-ddrem169 remainder 10 1 -> 0
-
--- some differences from remainderNear
-ddrem171 remainder 0.4 1.020 -> 0.400
-ddrem172 remainder 0.50 1.020 -> 0.500
-ddrem173 remainder 0.51 1.020 -> 0.510
-ddrem174 remainder 0.52 1.020 -> 0.520
-ddrem175 remainder 0.6 1.020 -> 0.600
-
--- More flavours of remainder by 0
-ddrem201 remainder 0 0 -> NaN Division_undefined
-ddrem202 remainder 0.0E5 0 -> NaN Division_undefined
-ddrem203 remainder 0.000 0 -> NaN Division_undefined
-ddrem204 remainder 0.0001 0 -> NaN Invalid_operation
-ddrem205 remainder 0.01 0 -> NaN Invalid_operation
-ddrem206 remainder 0.1 0 -> NaN Invalid_operation
-ddrem207 remainder 1 0 -> NaN Invalid_operation
-ddrem208 remainder 1 0.0 -> NaN Invalid_operation
-ddrem209 remainder 10 0.0 -> NaN Invalid_operation
-ddrem210 remainder 1E+100 0.0 -> NaN Invalid_operation
-ddrem211 remainder 1E+380 0 -> NaN Invalid_operation
-
--- some differences from remainderNear
-ddrem231 remainder -0.4 1.020 -> -0.400
-ddrem232 remainder -0.50 1.020 -> -0.500
-ddrem233 remainder -0.51 1.020 -> -0.510
-ddrem234 remainder -0.52 1.020 -> -0.520
-ddrem235 remainder -0.6 1.020 -> -0.600
-
--- high Xs
-ddrem240 remainder 1E+2 1.00 -> 0.00
-
--- ddrem3xx are from DiagBigDecimal
-ddrem301 remainder 1 3 -> 1
-ddrem302 remainder 5 5 -> 0
-ddrem303 remainder 13 10 -> 3
-ddrem304 remainder 13 50 -> 13
-ddrem305 remainder 13 100 -> 13
-ddrem306 remainder 13 1000 -> 13
-ddrem307 remainder .13 1 -> 0.13
-ddrem308 remainder 0.133 1 -> 0.133
-ddrem309 remainder 0.1033 1 -> 0.1033
-ddrem310 remainder 1.033 1 -> 0.033
-ddrem311 remainder 10.33 1 -> 0.33
-ddrem312 remainder 10.33 10 -> 0.33
-ddrem313 remainder 103.3 1 -> 0.3
-ddrem314 remainder 133 10 -> 3
-ddrem315 remainder 1033 10 -> 3
-ddrem316 remainder 1033 50 -> 33
-ddrem317 remainder 101.0 3 -> 2.0
-ddrem318 remainder 102.0 3 -> 0.0
-ddrem319 remainder 103.0 3 -> 1.0
-ddrem320 remainder 2.40 1 -> 0.40
-ddrem321 remainder 2.400 1 -> 0.400
-ddrem322 remainder 2.4 1 -> 0.4
-ddrem323 remainder 2.4 2 -> 0.4
-ddrem324 remainder 2.400 2 -> 0.400
-ddrem325 remainder 1 0.3 -> 0.1
-ddrem326 remainder 1 0.30 -> 0.10
-ddrem327 remainder 1 0.300 -> 0.100
-ddrem328 remainder 1 0.3000 -> 0.1000
-ddrem329 remainder 1.0 0.3 -> 0.1
-ddrem330 remainder 1.00 0.3 -> 0.10
-ddrem331 remainder 1.000 0.3 -> 0.100
-ddrem332 remainder 1.0000 0.3 -> 0.1000
-ddrem333 remainder 0.5 2 -> 0.5
-ddrem334 remainder 0.5 2.1 -> 0.5
-ddrem335 remainder 0.5 2.01 -> 0.50
-ddrem336 remainder 0.5 2.001 -> 0.500
-ddrem337 remainder 0.50 2 -> 0.50
-ddrem338 remainder 0.50 2.01 -> 0.50
-ddrem339 remainder 0.50 2.001 -> 0.500
-
-ddrem340 remainder 0.5 0.5000001 -> 0.5000000
-ddrem341 remainder 0.5 0.50000001 -> 0.50000000
-ddrem342 remainder 0.5 0.500000001 -> 0.500000000
-ddrem343 remainder 0.5 0.5000000001 -> 0.5000000000
-ddrem344 remainder 0.5 0.50000000001 -> 0.50000000000
-ddrem345 remainder 0.5 0.4999999 -> 1E-7
-ddrem346 remainder 0.5 0.49999999 -> 1E-8
-ddrem347 remainder 0.5 0.499999999 -> 1E-9
-ddrem348 remainder 0.5 0.4999999999 -> 1E-10
-ddrem349 remainder 0.5 0.49999999999 -> 1E-11
-ddrem350 remainder 0.5 0.499999999999 -> 1E-12
-
-ddrem351 remainder 0.03 7 -> 0.03
-ddrem352 remainder 5 2 -> 1
-ddrem353 remainder 4.1 2 -> 0.1
-ddrem354 remainder 4.01 2 -> 0.01
-ddrem355 remainder 4.001 2 -> 0.001
-ddrem356 remainder 4.0001 2 -> 0.0001
-ddrem357 remainder 4.00001 2 -> 0.00001
-ddrem358 remainder 4.000001 2 -> 0.000001
-ddrem359 remainder 4.0000001 2 -> 1E-7
-
-ddrem360 remainder 1.2 0.7345 -> 0.4655
-ddrem361 remainder 0.8 12 -> 0.8
-ddrem362 remainder 0.8 0.2 -> 0.0
-ddrem363 remainder 0.8 0.3 -> 0.2
-ddrem364 remainder 0.800 12 -> 0.800
-ddrem365 remainder 0.800 1.7 -> 0.800
-ddrem366 remainder 2.400 2 -> 0.400
-
-ddrem371 remainder 2.400 2 -> 0.400
-
-ddrem381 remainder 12345 1 -> 0
-ddrem382 remainder 12345 1.0001 -> 0.7657
-ddrem383 remainder 12345 1.001 -> 0.668
-ddrem384 remainder 12345 1.01 -> 0.78
-ddrem385 remainder 12345 1.1 -> 0.8
-ddrem386 remainder 12355 4 -> 3
-ddrem387 remainder 12345 4 -> 1
-ddrem388 remainder 12355 4.0001 -> 2.6912
-ddrem389 remainder 12345 4.0001 -> 0.6914
-ddrem390 remainder 12345 4.9 -> 1.9
-ddrem391 remainder 12345 4.99 -> 4.73
-ddrem392 remainder 12345 4.999 -> 2.469
-ddrem393 remainder 12345 4.9999 -> 0.2469
-ddrem394 remainder 12345 5 -> 0
-ddrem395 remainder 12345 5.0001 -> 4.7532
-ddrem396 remainder 12345 5.001 -> 2.532
-ddrem397 remainder 12345 5.01 -> 0.36
-ddrem398 remainder 12345 5.1 -> 3.0
-
--- the nasty division-by-1 cases
-ddrem401 remainder 0.5 1 -> 0.5
-ddrem402 remainder 0.55 1 -> 0.55
-ddrem403 remainder 0.555 1 -> 0.555
-ddrem404 remainder 0.5555 1 -> 0.5555
-ddrem405 remainder 0.55555 1 -> 0.55555
-ddrem406 remainder 0.555555 1 -> 0.555555
-ddrem407 remainder 0.5555555 1 -> 0.5555555
-ddrem408 remainder 0.55555555 1 -> 0.55555555
-ddrem409 remainder 0.555555555 1 -> 0.555555555
-
--- folddowns
-ddrem421 remainder 1E+384 1 -> NaN Division_impossible
-ddrem422 remainder 1E+384 1E+383 -> 0E+369 Clamped
-ddrem423 remainder 1E+384 2E+383 -> 0E+369 Clamped
-ddrem424 remainder 1E+384 3E+383 -> 1.00000000000000E+383 Clamped
-ddrem425 remainder 1E+384 4E+383 -> 2.00000000000000E+383 Clamped
-ddrem426 remainder 1E+384 5E+383 -> 0E+369 Clamped
-ddrem427 remainder 1E+384 6E+383 -> 4.00000000000000E+383 Clamped
-ddrem428 remainder 1E+384 7E+383 -> 3.00000000000000E+383 Clamped
-ddrem429 remainder 1E+384 8E+383 -> 2.00000000000000E+383 Clamped
-ddrem430 remainder 1E+384 9E+383 -> 1.00000000000000E+383 Clamped
--- tinies
-ddrem431 remainder 1E-397 1E-398 -> 0E-398
-ddrem432 remainder 1E-397 2E-398 -> 0E-398
-ddrem433 remainder 1E-397 3E-398 -> 1E-398 Subnormal
-ddrem434 remainder 1E-397 4E-398 -> 2E-398 Subnormal
-ddrem435 remainder 1E-397 5E-398 -> 0E-398
-ddrem436 remainder 1E-397 6E-398 -> 4E-398 Subnormal
-ddrem437 remainder 1E-397 7E-398 -> 3E-398 Subnormal
-ddrem438 remainder 1E-397 8E-398 -> 2E-398 Subnormal
-ddrem439 remainder 1E-397 9E-398 -> 1E-398 Subnormal
-ddrem440 remainder 1E-397 10E-398 -> 0E-398
-ddrem441 remainder 1E-397 11E-398 -> 1.0E-397 Subnormal
-ddrem442 remainder 100E-397 11E-398 -> 1.0E-397 Subnormal
-ddrem443 remainder 100E-397 20E-398 -> 0E-398
-ddrem444 remainder 100E-397 21E-398 -> 1.3E-397 Subnormal
-ddrem445 remainder 100E-397 30E-398 -> 1.0E-397 Subnormal
-
--- zero signs
-ddrem650 remainder 1 1 -> 0
-ddrem651 remainder -1 1 -> -0
-ddrem652 remainder 1 -1 -> 0
-ddrem653 remainder -1 -1 -> -0
-ddrem654 remainder 0 1 -> 0
-ddrem655 remainder -0 1 -> -0
-ddrem656 remainder 0 -1 -> 0
-ddrem657 remainder -0 -1 -> -0
-ddrem658 remainder 0.00 1 -> 0.00
-ddrem659 remainder -0.00 1 -> -0.00
-
--- Specials
-ddrem680 remainder Inf -Inf -> NaN Invalid_operation
-ddrem681 remainder Inf -1000 -> NaN Invalid_operation
-ddrem682 remainder Inf -1 -> NaN Invalid_operation
-ddrem683 remainder Inf 0 -> NaN Invalid_operation
-ddrem684 remainder Inf -0 -> NaN Invalid_operation
-ddrem685 remainder Inf 1 -> NaN Invalid_operation
-ddrem686 remainder Inf 1000 -> NaN Invalid_operation
-ddrem687 remainder Inf Inf -> NaN Invalid_operation
-ddrem688 remainder -1000 Inf -> -1000
-ddrem689 remainder -Inf Inf -> NaN Invalid_operation
-ddrem691 remainder -1 Inf -> -1
-ddrem692 remainder 0 Inf -> 0
-ddrem693 remainder -0 Inf -> -0
-ddrem694 remainder 1 Inf -> 1
-ddrem695 remainder 1000 Inf -> 1000
-ddrem696 remainder Inf Inf -> NaN Invalid_operation
-
-ddrem700 remainder -Inf -Inf -> NaN Invalid_operation
-ddrem701 remainder -Inf -1000 -> NaN Invalid_operation
-ddrem702 remainder -Inf -1 -> NaN Invalid_operation
-ddrem703 remainder -Inf -0 -> NaN Invalid_operation
-ddrem704 remainder -Inf 0 -> NaN Invalid_operation
-ddrem705 remainder -Inf 1 -> NaN Invalid_operation
-ddrem706 remainder -Inf 1000 -> NaN Invalid_operation
-ddrem707 remainder -Inf Inf -> NaN Invalid_operation
-ddrem708 remainder -Inf -Inf -> NaN Invalid_operation
-ddrem709 remainder -1000 Inf -> -1000
-ddrem710 remainder -1 -Inf -> -1
-ddrem711 remainder -0 -Inf -> -0
-ddrem712 remainder 0 -Inf -> 0
-ddrem713 remainder 1 -Inf -> 1
-ddrem714 remainder 1000 -Inf -> 1000
-ddrem715 remainder Inf -Inf -> NaN Invalid_operation
-
-ddrem721 remainder NaN -Inf -> NaN
-ddrem722 remainder NaN -1000 -> NaN
-ddrem723 remainder NaN -1 -> NaN
-ddrem724 remainder NaN -0 -> NaN
-ddrem725 remainder -NaN 0 -> -NaN
-ddrem726 remainder NaN 1 -> NaN
-ddrem727 remainder NaN 1000 -> NaN
-ddrem728 remainder NaN Inf -> NaN
-ddrem729 remainder NaN -NaN -> NaN
-ddrem730 remainder -Inf NaN -> NaN
-ddrem731 remainder -1000 NaN -> NaN
-ddrem732 remainder -1 NaN -> NaN
-ddrem733 remainder -0 -NaN -> -NaN
-ddrem734 remainder 0 NaN -> NaN
-ddrem735 remainder 1 -NaN -> -NaN
-ddrem736 remainder 1000 NaN -> NaN
-ddrem737 remainder Inf NaN -> NaN
-
-ddrem741 remainder sNaN -Inf -> NaN Invalid_operation
-ddrem742 remainder sNaN -1000 -> NaN Invalid_operation
-ddrem743 remainder -sNaN -1 -> -NaN Invalid_operation
-ddrem744 remainder sNaN -0 -> NaN Invalid_operation
-ddrem745 remainder sNaN 0 -> NaN Invalid_operation
-ddrem746 remainder sNaN 1 -> NaN Invalid_operation
-ddrem747 remainder sNaN 1000 -> NaN Invalid_operation
-ddrem749 remainder sNaN NaN -> NaN Invalid_operation
-ddrem750 remainder sNaN sNaN -> NaN Invalid_operation
-ddrem751 remainder NaN sNaN -> NaN Invalid_operation
-ddrem752 remainder -Inf sNaN -> NaN Invalid_operation
-ddrem753 remainder -1000 sNaN -> NaN Invalid_operation
-ddrem754 remainder -1 sNaN -> NaN Invalid_operation
-ddrem755 remainder -0 sNaN -> NaN Invalid_operation
-ddrem756 remainder 0 sNaN -> NaN Invalid_operation
-ddrem757 remainder 1 sNaN -> NaN Invalid_operation
-ddrem758 remainder 1000 sNaN -> NaN Invalid_operation
-ddrem759 remainder Inf -sNaN -> -NaN Invalid_operation
-
--- propaging NaNs
-ddrem760 remainder NaN1 NaN7 -> NaN1
-ddrem761 remainder sNaN2 NaN8 -> NaN2 Invalid_operation
-ddrem762 remainder NaN3 sNaN9 -> NaN9 Invalid_operation
-ddrem763 remainder sNaN4 sNaN10 -> NaN4 Invalid_operation
-ddrem764 remainder 15 NaN11 -> NaN11
-ddrem765 remainder NaN6 NaN12 -> NaN6
-ddrem766 remainder Inf NaN13 -> NaN13
-ddrem767 remainder NaN14 -Inf -> NaN14
-ddrem768 remainder 0 NaN15 -> NaN15
-ddrem769 remainder NaN16 -0 -> NaN16
-
--- edge cases of impossible
-ddrem770 remainder 1234567890123456 10 -> 6
-ddrem771 remainder 1234567890123456 1 -> 0
-ddrem772 remainder 1234567890123456 0.1 -> NaN Division_impossible
-ddrem773 remainder 1234567890123456 0.01 -> NaN Division_impossible
-
--- long operand checks
-ddrem801 remainder 12345678000 100 -> 0
-ddrem802 remainder 1 12345678000 -> 1
-ddrem803 remainder 1234567800 10 -> 0
-ddrem804 remainder 1 1234567800 -> 1
-ddrem805 remainder 1234567890 10 -> 0
-ddrem806 remainder 1 1234567890 -> 1
-ddrem807 remainder 1234567891 10 -> 1
-ddrem808 remainder 1 1234567891 -> 1
-ddrem809 remainder 12345678901 100 -> 1
-ddrem810 remainder 1 12345678901 -> 1
-ddrem811 remainder 1234567896 10 -> 6
-ddrem812 remainder 1 1234567896 -> 1
-
-ddrem821 remainder 12345678000 100 -> 0
-ddrem822 remainder 1 12345678000 -> 1
-ddrem823 remainder 1234567800 10 -> 0
-ddrem824 remainder 1 1234567800 -> 1
-ddrem825 remainder 1234567890 10 -> 0
-ddrem826 remainder 1 1234567890 -> 1
-ddrem827 remainder 1234567891 10 -> 1
-ddrem828 remainder 1 1234567891 -> 1
-ddrem829 remainder 12345678901 100 -> 1
-ddrem830 remainder 1 12345678901 -> 1
-ddrem831 remainder 1234567896 10 -> 6
-ddrem832 remainder 1 1234567896 -> 1
-
--- from divideint
-ddrem840 remainder 100000000.0 1 -> 0.0
-ddrem841 remainder 100000000.4 1 -> 0.4
-ddrem842 remainder 100000000.5 1 -> 0.5
-ddrem843 remainder 100000000.9 1 -> 0.9
-ddrem844 remainder 100000000.999 1 -> 0.999
-ddrem850 remainder 100000003 5 -> 3
-ddrem851 remainder 10000003 5 -> 3
-ddrem852 remainder 1000003 5 -> 3
-ddrem853 remainder 100003 5 -> 3
-ddrem854 remainder 10003 5 -> 3
-ddrem855 remainder 1003 5 -> 3
-ddrem856 remainder 103 5 -> 3
-ddrem857 remainder 13 5 -> 3
-ddrem858 remainder 1 5 -> 1
-
--- Vladimir's cases 1234567890123456
-ddrem860 remainder 123.0e1 1000000000000000 -> 1230
-ddrem861 remainder 1230 1000000000000000 -> 1230
-ddrem862 remainder 12.3e2 1000000000000000 -> 1230
-ddrem863 remainder 1.23e3 1000000000000000 -> 1230
-ddrem864 remainder 123e1 1000000000000000 -> 1230
-ddrem870 remainder 123e1 1000000000000000 -> 1230
-ddrem871 remainder 123e1 100000000000000 -> 1230
-ddrem872 remainder 123e1 10000000000000 -> 1230
-ddrem873 remainder 123e1 1000000000000 -> 1230
-ddrem874 remainder 123e1 100000000000 -> 1230
-ddrem875 remainder 123e1 10000000000 -> 1230
-ddrem876 remainder 123e1 1000000000 -> 1230
-ddrem877 remainder 123e1 100000000 -> 1230
-ddrem878 remainder 1230 100000000 -> 1230
-ddrem879 remainder 123e1 10000000 -> 1230
-ddrem880 remainder 123e1 1000000 -> 1230
-ddrem881 remainder 123e1 100000 -> 1230
-ddrem882 remainder 123e1 10000 -> 1230
-ddrem883 remainder 123e1 1000 -> 230
-ddrem884 remainder 123e1 100 -> 30
-ddrem885 remainder 123e1 10 -> 0
-ddrem886 remainder 123e1 1 -> 0
-
-ddrem890 remainder 123e1 2000000000000000 -> 1230
-ddrem891 remainder 123e1 200000000000000 -> 1230
-ddrem892 remainder 123e1 20000000000000 -> 1230
-ddrem893 remainder 123e1 2000000000000 -> 1230
-ddrem894 remainder 123e1 200000000000 -> 1230
-ddrem895 remainder 123e1 20000000000 -> 1230
-ddrem896 remainder 123e1 2000000000 -> 1230
-ddrem897 remainder 123e1 200000000 -> 1230
-ddrem899 remainder 123e1 20000000 -> 1230
-ddrem900 remainder 123e1 2000000 -> 1230
-ddrem901 remainder 123e1 200000 -> 1230
-ddrem902 remainder 123e1 20000 -> 1230
-ddrem903 remainder 123e1 2000 -> 1230
-ddrem904 remainder 123e1 200 -> 30
-ddrem905 remainder 123e1 20 -> 10
-ddrem906 remainder 123e1 2 -> 0
-
-ddrem910 remainder 123e1 5000000000000000 -> 1230
-ddrem911 remainder 123e1 500000000000000 -> 1230
-ddrem912 remainder 123e1 50000000000000 -> 1230
-ddrem913 remainder 123e1 5000000000000 -> 1230
-ddrem914 remainder 123e1 500000000000 -> 1230
-ddrem915 remainder 123e1 50000000000 -> 1230
-ddrem916 remainder 123e1 5000000000 -> 1230
-ddrem917 remainder 123e1 500000000 -> 1230
-ddrem919 remainder 123e1 50000000 -> 1230
-ddrem920 remainder 123e1 5000000 -> 1230
-ddrem921 remainder 123e1 500000 -> 1230
-ddrem922 remainder 123e1 50000 -> 1230
-ddrem923 remainder 123e1 5000 -> 1230
-ddrem924 remainder 123e1 500 -> 230
-ddrem925 remainder 123e1 50 -> 30
-ddrem926 remainder 123e1 5 -> 0
-
-ddrem930 remainder 123e1 9000000000000000 -> 1230
-ddrem931 remainder 123e1 900000000000000 -> 1230
-ddrem932 remainder 123e1 90000000000000 -> 1230
-ddrem933 remainder 123e1 9000000000000 -> 1230
-ddrem934 remainder 123e1 900000000000 -> 1230
-ddrem935 remainder 123e1 90000000000 -> 1230
-ddrem936 remainder 123e1 9000000000 -> 1230
-ddrem937 remainder 123e1 900000000 -> 1230
-ddrem939 remainder 123e1 90000000 -> 1230
-ddrem940 remainder 123e1 9000000 -> 1230
-ddrem941 remainder 123e1 900000 -> 1230
-ddrem942 remainder 123e1 90000 -> 1230
-ddrem943 remainder 123e1 9000 -> 1230
-ddrem944 remainder 123e1 900 -> 330
-ddrem945 remainder 123e1 90 -> 60
-ddrem946 remainder 123e1 9 -> 6
-
-ddrem950 remainder 123e1 1000000000000000 -> 1230
-ddrem961 remainder 123e1 2999999999999999 -> 1230
-ddrem962 remainder 123e1 3999999999999999 -> 1230
-ddrem963 remainder 123e1 4999999999999999 -> 1230
-ddrem964 remainder 123e1 5999999999999999 -> 1230
-ddrem965 remainder 123e1 6999999999999999 -> 1230
-ddrem966 remainder 123e1 7999999999999999 -> 1230
-ddrem967 remainder 123e1 8999999999999999 -> 1230
-ddrem968 remainder 123e1 9999999999999999 -> 1230
-ddrem969 remainder 123e1 9876543210987654 -> 1230
-
-ddrem980 remainder 123e1 1000E299 -> 1.23E+3 -- 123E+1 internally
-
--- overflow and underflow tests [from divide]
-ddrem1051 remainder 1e+277 1e-311 -> NaN Division_impossible
-ddrem1052 remainder 1e+277 -1e-311 -> NaN Division_impossible
-ddrem1053 remainder -1e+277 1e-311 -> NaN Division_impossible
-ddrem1054 remainder -1e+277 -1e-311 -> NaN Division_impossible
-ddrem1055 remainder 1e-277 1e+311 -> 1E-277
-ddrem1056 remainder 1e-277 -1e+311 -> 1E-277
-ddrem1057 remainder -1e-277 1e+311 -> -1E-277
-ddrem1058 remainder -1e-277 -1e+311 -> -1E-277
-
--- destructive subtract
-ddrem1101 remainder 1234567890123456 1.000000000000001 -> 0.765432109876546
-ddrem1102 remainder 1234567890123456 1.00000000000001 -> 0.65432109876557
-ddrem1103 remainder 1234567890123456 1.0000000000001 -> 0.5432109876668
-ddrem1104 remainder 1234567890123455 4.000000000000001 -> 2.691358027469137
-ddrem1105 remainder 1234567890123456 4.000000000000001 -> 3.691358027469137
-ddrem1106 remainder 1234567890123456 4.9999999999999 -> 0.6913578024696
-ddrem1107 remainder 1234567890123456 4.99999999999999 -> 3.46913578024691
-ddrem1108 remainder 1234567890123456 4.999999999999999 -> 1.246913578024691
-ddrem1109 remainder 1234567890123456 5.000000000000001 -> 0.753086421975309
-ddrem1110 remainder 1234567890123456 5.00000000000001 -> 3.53086421975310
-ddrem1111 remainder 1234567890123456 5.0000000000001 -> 1.3086421975314
-
--- Null tests
-ddrem1000 remainder 10 # -> NaN Invalid_operation
-ddrem1001 remainder # 10 -> NaN Invalid_operation
-
+------------------------------------------------------------------------ +-- ddRemainder.decTest -- decDouble remainder -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +-- sanity checks (as base, above) +ddrem001 remainder 1 1 -> 0 +ddrem002 remainder 2 1 -> 0 +ddrem003 remainder 1 2 -> 1 +ddrem004 remainder 2 2 -> 0 +ddrem005 remainder 0 1 -> 0 +ddrem006 remainder 0 2 -> 0 +ddrem007 remainder 1 3 -> 1 +ddrem008 remainder 2 3 -> 2 +ddrem009 remainder 3 3 -> 0 + +ddrem010 remainder 2.4 1 -> 0.4 +ddrem011 remainder 2.4 -1 -> 0.4 +ddrem012 remainder -2.4 1 -> -0.4 +ddrem013 remainder -2.4 -1 -> -0.4 +ddrem014 remainder 2.40 1 -> 0.40 +ddrem015 remainder 2.400 1 -> 0.400 +ddrem016 remainder 2.4 2 -> 0.4 +ddrem017 remainder 2.400 2 -> 0.400 +ddrem018 remainder 2. 2 -> 0 +ddrem019 remainder 20 20 -> 0 + +ddrem020 remainder 187 187 -> 0 +ddrem021 remainder 5 2 -> 1 +ddrem022 remainder 5 2.0 -> 1.0 +ddrem023 remainder 5 2.000 -> 1.000 +ddrem024 remainder 5 0.200 -> 0.000 +ddrem025 remainder 5 0.200 -> 0.000 + +ddrem030 remainder 1 2 -> 1 +ddrem031 remainder 1 4 -> 1 +ddrem032 remainder 1 8 -> 1 + +ddrem033 remainder 1 16 -> 1 +ddrem034 remainder 1 32 -> 1 +ddrem035 remainder 1 64 -> 1 +ddrem040 remainder 1 -2 -> 1 +ddrem041 remainder 1 -4 -> 1 +ddrem042 remainder 1 -8 -> 1 +ddrem043 remainder 1 -16 -> 1 +ddrem044 remainder 1 -32 -> 1 +ddrem045 remainder 1 -64 -> 1 +ddrem050 remainder -1 2 -> -1 +ddrem051 remainder -1 4 -> -1 +ddrem052 remainder -1 8 -> -1 +ddrem053 remainder -1 16 -> -1 +ddrem054 remainder -1 32 -> -1 +ddrem055 remainder -1 64 -> -1 +ddrem060 remainder -1 -2 -> -1 +ddrem061 remainder -1 -4 -> -1 +ddrem062 remainder -1 -8 -> -1 +ddrem063 remainder -1 -16 -> -1 +ddrem064 remainder -1 -32 -> -1 +ddrem065 remainder -1 -64 -> -1 + +ddrem066 remainder 999999999 1 -> 0 +ddrem067 remainder 999999999.4 1 -> 0.4 +ddrem068 remainder 999999999.5 1 -> 0.5 +ddrem069 remainder 999999999.9 1 -> 0.9 +ddrem070 remainder 999999999.999 1 -> 0.999 +ddrem071 remainder 999999.999999 1 -> 0.999999 +ddrem072 remainder 9 1 -> 0 +ddrem073 remainder 9999999999999999 1 -> 0 +ddrem074 remainder 9999999999999999 2 -> 1 +ddrem075 remainder 9999999999999999 3 -> 0 +ddrem076 remainder 9999999999999999 4 -> 3 + +ddrem080 remainder 0. 1 -> 0 +ddrem081 remainder .0 1 -> 0.0 +ddrem082 remainder 0.00 1 -> 0.00 +ddrem083 remainder 0.00E+9 1 -> 0 +ddrem084 remainder 0.00E+3 1 -> 0 +ddrem085 remainder 0.00E+2 1 -> 0 +ddrem086 remainder 0.00E+1 1 -> 0.0 +ddrem087 remainder 0.00E+0 1 -> 0.00 +ddrem088 remainder 0.00E-0 1 -> 0.00 +ddrem089 remainder 0.00E-1 1 -> 0.000 +ddrem090 remainder 0.00E-2 1 -> 0.0000 +ddrem091 remainder 0.00E-3 1 -> 0.00000 +ddrem092 remainder 0.00E-4 1 -> 0.000000 +ddrem093 remainder 0.00E-5 1 -> 0E-7 +ddrem094 remainder 0.00E-6 1 -> 0E-8 +ddrem095 remainder 0.0000E-50 1 -> 0E-54 + +-- Various flavours of remainder by 0 +ddrem101 remainder 0 0 -> NaN Division_undefined +ddrem102 remainder 0 -0 -> NaN Division_undefined +ddrem103 remainder -0 0 -> NaN Division_undefined +ddrem104 remainder -0 -0 -> NaN Division_undefined +ddrem105 remainder 0.0E5 0 -> NaN Division_undefined +ddrem106 remainder 0.000 0 -> NaN Division_undefined +-- [Some think this next group should be Division_by_zero exception, but +-- IEEE 854 is explicit that it is Invalid operation .. for +-- remainder-near, anyway] +ddrem107 remainder 0.0001 0 -> NaN Invalid_operation +ddrem108 remainder 0.01 0 -> NaN Invalid_operation +ddrem109 remainder 0.1 0 -> NaN Invalid_operation +ddrem110 remainder 1 0 -> NaN Invalid_operation +ddrem111 remainder 1 0.0 -> NaN Invalid_operation +ddrem112 remainder 10 0.0 -> NaN Invalid_operation +ddrem113 remainder 1E+100 0.0 -> NaN Invalid_operation +ddrem114 remainder 1E+380 0 -> NaN Invalid_operation +ddrem115 remainder 0.0001 -0 -> NaN Invalid_operation +ddrem116 remainder 0.01 -0 -> NaN Invalid_operation +ddrem119 remainder 0.1 -0 -> NaN Invalid_operation +ddrem120 remainder 1 -0 -> NaN Invalid_operation +ddrem121 remainder 1 -0.0 -> NaN Invalid_operation +ddrem122 remainder 10 -0.0 -> NaN Invalid_operation +ddrem123 remainder 1E+100 -0.0 -> NaN Invalid_operation +ddrem124 remainder 1E+384 -0 -> NaN Invalid_operation +-- and zeros on left +ddrem130 remainder 0 1 -> 0 +ddrem131 remainder 0 -1 -> 0 +ddrem132 remainder 0.0 1 -> 0.0 +ddrem133 remainder 0.0 -1 -> 0.0 +ddrem134 remainder -0 1 -> -0 +ddrem135 remainder -0 -1 -> -0 +ddrem136 remainder -0.0 1 -> -0.0 +ddrem137 remainder -0.0 -1 -> -0.0 + +-- 0.5ers +ddrem143 remainder 0.5 2 -> 0.5 +ddrem144 remainder 0.5 2.1 -> 0.5 +ddrem145 remainder 0.5 2.01 -> 0.50 +ddrem146 remainder 0.5 2.001 -> 0.500 +ddrem147 remainder 0.50 2 -> 0.50 +ddrem148 remainder 0.50 2.01 -> 0.50 +ddrem149 remainder 0.50 2.001 -> 0.500 + +-- steadies +ddrem150 remainder 1 1 -> 0 +ddrem151 remainder 1 2 -> 1 +ddrem152 remainder 1 3 -> 1 +ddrem153 remainder 1 4 -> 1 +ddrem154 remainder 1 5 -> 1 +ddrem155 remainder 1 6 -> 1 +ddrem156 remainder 1 7 -> 1 +ddrem157 remainder 1 8 -> 1 +ddrem158 remainder 1 9 -> 1 +ddrem159 remainder 1 10 -> 1 +ddrem160 remainder 1 1 -> 0 +ddrem161 remainder 2 1 -> 0 +ddrem162 remainder 3 1 -> 0 +ddrem163 remainder 4 1 -> 0 +ddrem164 remainder 5 1 -> 0 +ddrem165 remainder 6 1 -> 0 +ddrem166 remainder 7 1 -> 0 +ddrem167 remainder 8 1 -> 0 +ddrem168 remainder 9 1 -> 0 +ddrem169 remainder 10 1 -> 0 + +-- some differences from remainderNear +ddrem171 remainder 0.4 1.020 -> 0.400 +ddrem172 remainder 0.50 1.020 -> 0.500 +ddrem173 remainder 0.51 1.020 -> 0.510 +ddrem174 remainder 0.52 1.020 -> 0.520 +ddrem175 remainder 0.6 1.020 -> 0.600 + +-- More flavours of remainder by 0 +ddrem201 remainder 0 0 -> NaN Division_undefined +ddrem202 remainder 0.0E5 0 -> NaN Division_undefined +ddrem203 remainder 0.000 0 -> NaN Division_undefined +ddrem204 remainder 0.0001 0 -> NaN Invalid_operation +ddrem205 remainder 0.01 0 -> NaN Invalid_operation +ddrem206 remainder 0.1 0 -> NaN Invalid_operation +ddrem207 remainder 1 0 -> NaN Invalid_operation +ddrem208 remainder 1 0.0 -> NaN Invalid_operation +ddrem209 remainder 10 0.0 -> NaN Invalid_operation +ddrem210 remainder 1E+100 0.0 -> NaN Invalid_operation +ddrem211 remainder 1E+380 0 -> NaN Invalid_operation + +-- some differences from remainderNear +ddrem231 remainder -0.4 1.020 -> -0.400 +ddrem232 remainder -0.50 1.020 -> -0.500 +ddrem233 remainder -0.51 1.020 -> -0.510 +ddrem234 remainder -0.52 1.020 -> -0.520 +ddrem235 remainder -0.6 1.020 -> -0.600 + +-- high Xs +ddrem240 remainder 1E+2 1.00 -> 0.00 + +-- ddrem3xx are from DiagBigDecimal +ddrem301 remainder 1 3 -> 1 +ddrem302 remainder 5 5 -> 0 +ddrem303 remainder 13 10 -> 3 +ddrem304 remainder 13 50 -> 13 +ddrem305 remainder 13 100 -> 13 +ddrem306 remainder 13 1000 -> 13 +ddrem307 remainder .13 1 -> 0.13 +ddrem308 remainder 0.133 1 -> 0.133 +ddrem309 remainder 0.1033 1 -> 0.1033 +ddrem310 remainder 1.033 1 -> 0.033 +ddrem311 remainder 10.33 1 -> 0.33 +ddrem312 remainder 10.33 10 -> 0.33 +ddrem313 remainder 103.3 1 -> 0.3 +ddrem314 remainder 133 10 -> 3 +ddrem315 remainder 1033 10 -> 3 +ddrem316 remainder 1033 50 -> 33 +ddrem317 remainder 101.0 3 -> 2.0 +ddrem318 remainder 102.0 3 -> 0.0 +ddrem319 remainder 103.0 3 -> 1.0 +ddrem320 remainder 2.40 1 -> 0.40 +ddrem321 remainder 2.400 1 -> 0.400 +ddrem322 remainder 2.4 1 -> 0.4 +ddrem323 remainder 2.4 2 -> 0.4 +ddrem324 remainder 2.400 2 -> 0.400 +ddrem325 remainder 1 0.3 -> 0.1 +ddrem326 remainder 1 0.30 -> 0.10 +ddrem327 remainder 1 0.300 -> 0.100 +ddrem328 remainder 1 0.3000 -> 0.1000 +ddrem329 remainder 1.0 0.3 -> 0.1 +ddrem330 remainder 1.00 0.3 -> 0.10 +ddrem331 remainder 1.000 0.3 -> 0.100 +ddrem332 remainder 1.0000 0.3 -> 0.1000 +ddrem333 remainder 0.5 2 -> 0.5 +ddrem334 remainder 0.5 2.1 -> 0.5 +ddrem335 remainder 0.5 2.01 -> 0.50 +ddrem336 remainder 0.5 2.001 -> 0.500 +ddrem337 remainder 0.50 2 -> 0.50 +ddrem338 remainder 0.50 2.01 -> 0.50 +ddrem339 remainder 0.50 2.001 -> 0.500 + +ddrem340 remainder 0.5 0.5000001 -> 0.5000000 +ddrem341 remainder 0.5 0.50000001 -> 0.50000000 +ddrem342 remainder 0.5 0.500000001 -> 0.500000000 +ddrem343 remainder 0.5 0.5000000001 -> 0.5000000000 +ddrem344 remainder 0.5 0.50000000001 -> 0.50000000000 +ddrem345 remainder 0.5 0.4999999 -> 1E-7 +ddrem346 remainder 0.5 0.49999999 -> 1E-8 +ddrem347 remainder 0.5 0.499999999 -> 1E-9 +ddrem348 remainder 0.5 0.4999999999 -> 1E-10 +ddrem349 remainder 0.5 0.49999999999 -> 1E-11 +ddrem350 remainder 0.5 0.499999999999 -> 1E-12 + +ddrem351 remainder 0.03 7 -> 0.03 +ddrem352 remainder 5 2 -> 1 +ddrem353 remainder 4.1 2 -> 0.1 +ddrem354 remainder 4.01 2 -> 0.01 +ddrem355 remainder 4.001 2 -> 0.001 +ddrem356 remainder 4.0001 2 -> 0.0001 +ddrem357 remainder 4.00001 2 -> 0.00001 +ddrem358 remainder 4.000001 2 -> 0.000001 +ddrem359 remainder 4.0000001 2 -> 1E-7 + +ddrem360 remainder 1.2 0.7345 -> 0.4655 +ddrem361 remainder 0.8 12 -> 0.8 +ddrem362 remainder 0.8 0.2 -> 0.0 +ddrem363 remainder 0.8 0.3 -> 0.2 +ddrem364 remainder 0.800 12 -> 0.800 +ddrem365 remainder 0.800 1.7 -> 0.800 +ddrem366 remainder 2.400 2 -> 0.400 + +ddrem371 remainder 2.400 2 -> 0.400 + +ddrem381 remainder 12345 1 -> 0 +ddrem382 remainder 12345 1.0001 -> 0.7657 +ddrem383 remainder 12345 1.001 -> 0.668 +ddrem384 remainder 12345 1.01 -> 0.78 +ddrem385 remainder 12345 1.1 -> 0.8 +ddrem386 remainder 12355 4 -> 3 +ddrem387 remainder 12345 4 -> 1 +ddrem388 remainder 12355 4.0001 -> 2.6912 +ddrem389 remainder 12345 4.0001 -> 0.6914 +ddrem390 remainder 12345 4.9 -> 1.9 +ddrem391 remainder 12345 4.99 -> 4.73 +ddrem392 remainder 12345 4.999 -> 2.469 +ddrem393 remainder 12345 4.9999 -> 0.2469 +ddrem394 remainder 12345 5 -> 0 +ddrem395 remainder 12345 5.0001 -> 4.7532 +ddrem396 remainder 12345 5.001 -> 2.532 +ddrem397 remainder 12345 5.01 -> 0.36 +ddrem398 remainder 12345 5.1 -> 3.0 + +-- the nasty division-by-1 cases +ddrem401 remainder 0.5 1 -> 0.5 +ddrem402 remainder 0.55 1 -> 0.55 +ddrem403 remainder 0.555 1 -> 0.555 +ddrem404 remainder 0.5555 1 -> 0.5555 +ddrem405 remainder 0.55555 1 -> 0.55555 +ddrem406 remainder 0.555555 1 -> 0.555555 +ddrem407 remainder 0.5555555 1 -> 0.5555555 +ddrem408 remainder 0.55555555 1 -> 0.55555555 +ddrem409 remainder 0.555555555 1 -> 0.555555555 + +-- folddowns +ddrem421 remainder 1E+384 1 -> NaN Division_impossible +ddrem422 remainder 1E+384 1E+383 -> 0E+369 Clamped +ddrem423 remainder 1E+384 2E+383 -> 0E+369 Clamped +ddrem424 remainder 1E+384 3E+383 -> 1.00000000000000E+383 Clamped +ddrem425 remainder 1E+384 4E+383 -> 2.00000000000000E+383 Clamped +ddrem426 remainder 1E+384 5E+383 -> 0E+369 Clamped +ddrem427 remainder 1E+384 6E+383 -> 4.00000000000000E+383 Clamped +ddrem428 remainder 1E+384 7E+383 -> 3.00000000000000E+383 Clamped +ddrem429 remainder 1E+384 8E+383 -> 2.00000000000000E+383 Clamped +ddrem430 remainder 1E+384 9E+383 -> 1.00000000000000E+383 Clamped +-- tinies +ddrem431 remainder 1E-397 1E-398 -> 0E-398 +ddrem432 remainder 1E-397 2E-398 -> 0E-398 +ddrem433 remainder 1E-397 3E-398 -> 1E-398 Subnormal +ddrem434 remainder 1E-397 4E-398 -> 2E-398 Subnormal +ddrem435 remainder 1E-397 5E-398 -> 0E-398 +ddrem436 remainder 1E-397 6E-398 -> 4E-398 Subnormal +ddrem437 remainder 1E-397 7E-398 -> 3E-398 Subnormal +ddrem438 remainder 1E-397 8E-398 -> 2E-398 Subnormal +ddrem439 remainder 1E-397 9E-398 -> 1E-398 Subnormal +ddrem440 remainder 1E-397 10E-398 -> 0E-398 +ddrem441 remainder 1E-397 11E-398 -> 1.0E-397 Subnormal +ddrem442 remainder 100E-397 11E-398 -> 1.0E-397 Subnormal +ddrem443 remainder 100E-397 20E-398 -> 0E-398 +ddrem444 remainder 100E-397 21E-398 -> 1.3E-397 Subnormal +ddrem445 remainder 100E-397 30E-398 -> 1.0E-397 Subnormal + +-- zero signs +ddrem650 remainder 1 1 -> 0 +ddrem651 remainder -1 1 -> -0 +ddrem652 remainder 1 -1 -> 0 +ddrem653 remainder -1 -1 -> -0 +ddrem654 remainder 0 1 -> 0 +ddrem655 remainder -0 1 -> -0 +ddrem656 remainder 0 -1 -> 0 +ddrem657 remainder -0 -1 -> -0 +ddrem658 remainder 0.00 1 -> 0.00 +ddrem659 remainder -0.00 1 -> -0.00 + +-- Specials +ddrem680 remainder Inf -Inf -> NaN Invalid_operation +ddrem681 remainder Inf -1000 -> NaN Invalid_operation +ddrem682 remainder Inf -1 -> NaN Invalid_operation +ddrem683 remainder Inf 0 -> NaN Invalid_operation +ddrem684 remainder Inf -0 -> NaN Invalid_operation +ddrem685 remainder Inf 1 -> NaN Invalid_operation +ddrem686 remainder Inf 1000 -> NaN Invalid_operation +ddrem687 remainder Inf Inf -> NaN Invalid_operation +ddrem688 remainder -1000 Inf -> -1000 +ddrem689 remainder -Inf Inf -> NaN Invalid_operation +ddrem691 remainder -1 Inf -> -1 +ddrem692 remainder 0 Inf -> 0 +ddrem693 remainder -0 Inf -> -0 +ddrem694 remainder 1 Inf -> 1 +ddrem695 remainder 1000 Inf -> 1000 +ddrem696 remainder Inf Inf -> NaN Invalid_operation + +ddrem700 remainder -Inf -Inf -> NaN Invalid_operation +ddrem701 remainder -Inf -1000 -> NaN Invalid_operation +ddrem702 remainder -Inf -1 -> NaN Invalid_operation +ddrem703 remainder -Inf -0 -> NaN Invalid_operation +ddrem704 remainder -Inf 0 -> NaN Invalid_operation +ddrem705 remainder -Inf 1 -> NaN Invalid_operation +ddrem706 remainder -Inf 1000 -> NaN Invalid_operation +ddrem707 remainder -Inf Inf -> NaN Invalid_operation +ddrem708 remainder -Inf -Inf -> NaN Invalid_operation +ddrem709 remainder -1000 Inf -> -1000 +ddrem710 remainder -1 -Inf -> -1 +ddrem711 remainder -0 -Inf -> -0 +ddrem712 remainder 0 -Inf -> 0 +ddrem713 remainder 1 -Inf -> 1 +ddrem714 remainder 1000 -Inf -> 1000 +ddrem715 remainder Inf -Inf -> NaN Invalid_operation + +ddrem721 remainder NaN -Inf -> NaN +ddrem722 remainder NaN -1000 -> NaN +ddrem723 remainder NaN -1 -> NaN +ddrem724 remainder NaN -0 -> NaN +ddrem725 remainder -NaN 0 -> -NaN +ddrem726 remainder NaN 1 -> NaN +ddrem727 remainder NaN 1000 -> NaN +ddrem728 remainder NaN Inf -> NaN +ddrem729 remainder NaN -NaN -> NaN +ddrem730 remainder -Inf NaN -> NaN +ddrem731 remainder -1000 NaN -> NaN +ddrem732 remainder -1 NaN -> NaN +ddrem733 remainder -0 -NaN -> -NaN +ddrem734 remainder 0 NaN -> NaN +ddrem735 remainder 1 -NaN -> -NaN +ddrem736 remainder 1000 NaN -> NaN +ddrem737 remainder Inf NaN -> NaN + +ddrem741 remainder sNaN -Inf -> NaN Invalid_operation +ddrem742 remainder sNaN -1000 -> NaN Invalid_operation +ddrem743 remainder -sNaN -1 -> -NaN Invalid_operation +ddrem744 remainder sNaN -0 -> NaN Invalid_operation +ddrem745 remainder sNaN 0 -> NaN Invalid_operation +ddrem746 remainder sNaN 1 -> NaN Invalid_operation +ddrem747 remainder sNaN 1000 -> NaN Invalid_operation +ddrem749 remainder sNaN NaN -> NaN Invalid_operation +ddrem750 remainder sNaN sNaN -> NaN Invalid_operation +ddrem751 remainder NaN sNaN -> NaN Invalid_operation +ddrem752 remainder -Inf sNaN -> NaN Invalid_operation +ddrem753 remainder -1000 sNaN -> NaN Invalid_operation +ddrem754 remainder -1 sNaN -> NaN Invalid_operation +ddrem755 remainder -0 sNaN -> NaN Invalid_operation +ddrem756 remainder 0 sNaN -> NaN Invalid_operation +ddrem757 remainder 1 sNaN -> NaN Invalid_operation +ddrem758 remainder 1000 sNaN -> NaN Invalid_operation +ddrem759 remainder Inf -sNaN -> -NaN Invalid_operation + +-- propaging NaNs +ddrem760 remainder NaN1 NaN7 -> NaN1 +ddrem761 remainder sNaN2 NaN8 -> NaN2 Invalid_operation +ddrem762 remainder NaN3 sNaN9 -> NaN9 Invalid_operation +ddrem763 remainder sNaN4 sNaN10 -> NaN4 Invalid_operation +ddrem764 remainder 15 NaN11 -> NaN11 +ddrem765 remainder NaN6 NaN12 -> NaN6 +ddrem766 remainder Inf NaN13 -> NaN13 +ddrem767 remainder NaN14 -Inf -> NaN14 +ddrem768 remainder 0 NaN15 -> NaN15 +ddrem769 remainder NaN16 -0 -> NaN16 + +-- edge cases of impossible +ddrem770 remainder 1234567890123456 10 -> 6 +ddrem771 remainder 1234567890123456 1 -> 0 +ddrem772 remainder 1234567890123456 0.1 -> NaN Division_impossible +ddrem773 remainder 1234567890123456 0.01 -> NaN Division_impossible + +-- long operand checks +ddrem801 remainder 12345678000 100 -> 0 +ddrem802 remainder 1 12345678000 -> 1 +ddrem803 remainder 1234567800 10 -> 0 +ddrem804 remainder 1 1234567800 -> 1 +ddrem805 remainder 1234567890 10 -> 0 +ddrem806 remainder 1 1234567890 -> 1 +ddrem807 remainder 1234567891 10 -> 1 +ddrem808 remainder 1 1234567891 -> 1 +ddrem809 remainder 12345678901 100 -> 1 +ddrem810 remainder 1 12345678901 -> 1 +ddrem811 remainder 1234567896 10 -> 6 +ddrem812 remainder 1 1234567896 -> 1 + +ddrem821 remainder 12345678000 100 -> 0 +ddrem822 remainder 1 12345678000 -> 1 +ddrem823 remainder 1234567800 10 -> 0 +ddrem824 remainder 1 1234567800 -> 1 +ddrem825 remainder 1234567890 10 -> 0 +ddrem826 remainder 1 1234567890 -> 1 +ddrem827 remainder 1234567891 10 -> 1 +ddrem828 remainder 1 1234567891 -> 1 +ddrem829 remainder 12345678901 100 -> 1 +ddrem830 remainder 1 12345678901 -> 1 +ddrem831 remainder 1234567896 10 -> 6 +ddrem832 remainder 1 1234567896 -> 1 + +-- from divideint +ddrem840 remainder 100000000.0 1 -> 0.0 +ddrem841 remainder 100000000.4 1 -> 0.4 +ddrem842 remainder 100000000.5 1 -> 0.5 +ddrem843 remainder 100000000.9 1 -> 0.9 +ddrem844 remainder 100000000.999 1 -> 0.999 +ddrem850 remainder 100000003 5 -> 3 +ddrem851 remainder 10000003 5 -> 3 +ddrem852 remainder 1000003 5 -> 3 +ddrem853 remainder 100003 5 -> 3 +ddrem854 remainder 10003 5 -> 3 +ddrem855 remainder 1003 5 -> 3 +ddrem856 remainder 103 5 -> 3 +ddrem857 remainder 13 5 -> 3 +ddrem858 remainder 1 5 -> 1 + +-- Vladimir's cases 1234567890123456 +ddrem860 remainder 123.0e1 1000000000000000 -> 1230 +ddrem861 remainder 1230 1000000000000000 -> 1230 +ddrem862 remainder 12.3e2 1000000000000000 -> 1230 +ddrem863 remainder 1.23e3 1000000000000000 -> 1230 +ddrem864 remainder 123e1 1000000000000000 -> 1230 +ddrem870 remainder 123e1 1000000000000000 -> 1230 +ddrem871 remainder 123e1 100000000000000 -> 1230 +ddrem872 remainder 123e1 10000000000000 -> 1230 +ddrem873 remainder 123e1 1000000000000 -> 1230 +ddrem874 remainder 123e1 100000000000 -> 1230 +ddrem875 remainder 123e1 10000000000 -> 1230 +ddrem876 remainder 123e1 1000000000 -> 1230 +ddrem877 remainder 123e1 100000000 -> 1230 +ddrem878 remainder 1230 100000000 -> 1230 +ddrem879 remainder 123e1 10000000 -> 1230 +ddrem880 remainder 123e1 1000000 -> 1230 +ddrem881 remainder 123e1 100000 -> 1230 +ddrem882 remainder 123e1 10000 -> 1230 +ddrem883 remainder 123e1 1000 -> 230 +ddrem884 remainder 123e1 100 -> 30 +ddrem885 remainder 123e1 10 -> 0 +ddrem886 remainder 123e1 1 -> 0 + +ddrem890 remainder 123e1 2000000000000000 -> 1230 +ddrem891 remainder 123e1 200000000000000 -> 1230 +ddrem892 remainder 123e1 20000000000000 -> 1230 +ddrem893 remainder 123e1 2000000000000 -> 1230 +ddrem894 remainder 123e1 200000000000 -> 1230 +ddrem895 remainder 123e1 20000000000 -> 1230 +ddrem896 remainder 123e1 2000000000 -> 1230 +ddrem897 remainder 123e1 200000000 -> 1230 +ddrem899 remainder 123e1 20000000 -> 1230 +ddrem900 remainder 123e1 2000000 -> 1230 +ddrem901 remainder 123e1 200000 -> 1230 +ddrem902 remainder 123e1 20000 -> 1230 +ddrem903 remainder 123e1 2000 -> 1230 +ddrem904 remainder 123e1 200 -> 30 +ddrem905 remainder 123e1 20 -> 10 +ddrem906 remainder 123e1 2 -> 0 + +ddrem910 remainder 123e1 5000000000000000 -> 1230 +ddrem911 remainder 123e1 500000000000000 -> 1230 +ddrem912 remainder 123e1 50000000000000 -> 1230 +ddrem913 remainder 123e1 5000000000000 -> 1230 +ddrem914 remainder 123e1 500000000000 -> 1230 +ddrem915 remainder 123e1 50000000000 -> 1230 +ddrem916 remainder 123e1 5000000000 -> 1230 +ddrem917 remainder 123e1 500000000 -> 1230 +ddrem919 remainder 123e1 50000000 -> 1230 +ddrem920 remainder 123e1 5000000 -> 1230 +ddrem921 remainder 123e1 500000 -> 1230 +ddrem922 remainder 123e1 50000 -> 1230 +ddrem923 remainder 123e1 5000 -> 1230 +ddrem924 remainder 123e1 500 -> 230 +ddrem925 remainder 123e1 50 -> 30 +ddrem926 remainder 123e1 5 -> 0 + +ddrem930 remainder 123e1 9000000000000000 -> 1230 +ddrem931 remainder 123e1 900000000000000 -> 1230 +ddrem932 remainder 123e1 90000000000000 -> 1230 +ddrem933 remainder 123e1 9000000000000 -> 1230 +ddrem934 remainder 123e1 900000000000 -> 1230 +ddrem935 remainder 123e1 90000000000 -> 1230 +ddrem936 remainder 123e1 9000000000 -> 1230 +ddrem937 remainder 123e1 900000000 -> 1230 +ddrem939 remainder 123e1 90000000 -> 1230 +ddrem940 remainder 123e1 9000000 -> 1230 +ddrem941 remainder 123e1 900000 -> 1230 +ddrem942 remainder 123e1 90000 -> 1230 +ddrem943 remainder 123e1 9000 -> 1230 +ddrem944 remainder 123e1 900 -> 330 +ddrem945 remainder 123e1 90 -> 60 +ddrem946 remainder 123e1 9 -> 6 + +ddrem950 remainder 123e1 1000000000000000 -> 1230 +ddrem961 remainder 123e1 2999999999999999 -> 1230 +ddrem962 remainder 123e1 3999999999999999 -> 1230 +ddrem963 remainder 123e1 4999999999999999 -> 1230 +ddrem964 remainder 123e1 5999999999999999 -> 1230 +ddrem965 remainder 123e1 6999999999999999 -> 1230 +ddrem966 remainder 123e1 7999999999999999 -> 1230 +ddrem967 remainder 123e1 8999999999999999 -> 1230 +ddrem968 remainder 123e1 9999999999999999 -> 1230 +ddrem969 remainder 123e1 9876543210987654 -> 1230 + +ddrem980 remainder 123e1 1000E299 -> 1.23E+3 -- 123E+1 internally + +-- overflow and underflow tests [from divide] +ddrem1051 remainder 1e+277 1e-311 -> NaN Division_impossible +ddrem1052 remainder 1e+277 -1e-311 -> NaN Division_impossible +ddrem1053 remainder -1e+277 1e-311 -> NaN Division_impossible +ddrem1054 remainder -1e+277 -1e-311 -> NaN Division_impossible +ddrem1055 remainder 1e-277 1e+311 -> 1E-277 +ddrem1056 remainder 1e-277 -1e+311 -> 1E-277 +ddrem1057 remainder -1e-277 1e+311 -> -1E-277 +ddrem1058 remainder -1e-277 -1e+311 -> -1E-277 + +-- destructive subtract +ddrem1101 remainder 1234567890123456 1.000000000000001 -> 0.765432109876546 +ddrem1102 remainder 1234567890123456 1.00000000000001 -> 0.65432109876557 +ddrem1103 remainder 1234567890123456 1.0000000000001 -> 0.5432109876668 +ddrem1104 remainder 1234567890123455 4.000000000000001 -> 2.691358027469137 +ddrem1105 remainder 1234567890123456 4.000000000000001 -> 3.691358027469137 +ddrem1106 remainder 1234567890123456 4.9999999999999 -> 0.6913578024696 +ddrem1107 remainder 1234567890123456 4.99999999999999 -> 3.46913578024691 +ddrem1108 remainder 1234567890123456 4.999999999999999 -> 1.246913578024691 +ddrem1109 remainder 1234567890123456 5.000000000000001 -> 0.753086421975309 +ddrem1110 remainder 1234567890123456 5.00000000000001 -> 3.53086421975310 +ddrem1111 remainder 1234567890123456 5.0000000000001 -> 1.3086421975314 + +-- Null tests +ddrem1000 remainder 10 # -> NaN Invalid_operation +ddrem1001 remainder # 10 -> NaN Invalid_operation + diff --git a/Lib/test/decimaltestdata/ddRemainderNear.decTest b/Lib/test/decimaltestdata/ddRemainderNear.decTest index 6ba64ebafe..8da9afc4c3 100644 --- a/Lib/test/decimaltestdata/ddRemainderNear.decTest +++ b/Lib/test/decimaltestdata/ddRemainderNear.decTest @@ -1,629 +1,629 @@ -------------------------------------------------------------------------
--- ddRemainderNear.decTest -- decDouble remainder-near --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
--- sanity checks (as base, above)
-ddrmn001 remaindernear 1 1 -> 0
-ddrmn002 remaindernear 2 1 -> 0
-ddrmn003 remaindernear 1 2 -> 1
-ddrmn004 remaindernear 2 2 -> 0
-ddrmn005 remaindernear 0 1 -> 0
-ddrmn006 remaindernear 0 2 -> 0
-ddrmn007 remaindernear 1 3 -> 1
-ddrmn008 remaindernear 2 3 -> -1
-ddrmn009 remaindernear 3 3 -> 0
-
-ddrmn010 remaindernear 2.4 1 -> 0.4
-ddrmn011 remaindernear 2.4 -1 -> 0.4
-ddrmn012 remaindernear -2.4 1 -> -0.4
-ddrmn013 remaindernear -2.4 -1 -> -0.4
-ddrmn014 remaindernear 2.40 1 -> 0.40
-ddrmn015 remaindernear 2.400 1 -> 0.400
-ddrmn016 remaindernear 2.4 2 -> 0.4
-ddrmn017 remaindernear 2.400 2 -> 0.400
-ddrmn018 remaindernear 2. 2 -> 0
-ddrmn019 remaindernear 20 20 -> 0
-
-ddrmn020 remaindernear 187 187 -> 0
-ddrmn021 remaindernear 5 2 -> 1
-ddrmn022 remaindernear 5 2.0 -> 1.0
-ddrmn023 remaindernear 5 2.000 -> 1.000
-ddrmn024 remaindernear 5 0.200 -> 0.000
-ddrmn025 remaindernear 5 0.200 -> 0.000
-
-ddrmn030 remaindernear 1 2 -> 1
-ddrmn031 remaindernear 1 4 -> 1
-ddrmn032 remaindernear 1 8 -> 1
-
-ddrmn033 remaindernear 1 16 -> 1
-ddrmn034 remaindernear 1 32 -> 1
-ddrmn035 remaindernear 1 64 -> 1
-ddrmn040 remaindernear 1 -2 -> 1
-ddrmn041 remaindernear 1 -4 -> 1
-ddrmn042 remaindernear 1 -8 -> 1
-ddrmn043 remaindernear 1 -16 -> 1
-ddrmn044 remaindernear 1 -32 -> 1
-ddrmn045 remaindernear 1 -64 -> 1
-ddrmn050 remaindernear -1 2 -> -1
-ddrmn051 remaindernear -1 4 -> -1
-ddrmn052 remaindernear -1 8 -> -1
-ddrmn053 remaindernear -1 16 -> -1
-ddrmn054 remaindernear -1 32 -> -1
-ddrmn055 remaindernear -1 64 -> -1
-ddrmn060 remaindernear -1 -2 -> -1
-ddrmn061 remaindernear -1 -4 -> -1
-ddrmn062 remaindernear -1 -8 -> -1
-ddrmn063 remaindernear -1 -16 -> -1
-ddrmn064 remaindernear -1 -32 -> -1
-ddrmn065 remaindernear -1 -64 -> -1
-
-ddrmn066 remaindernear 9.9 1 -> -0.1
-ddrmn067 remaindernear 99.7 1 -> -0.3
-ddrmn068 remaindernear 999999999 1 -> 0
-ddrmn069 remaindernear 999999999.4 1 -> 0.4
-ddrmn070 remaindernear 999999999.5 1 -> -0.5
-ddrmn071 remaindernear 999999999.9 1 -> -0.1
-ddrmn072 remaindernear 999999999.999 1 -> -0.001
-ddrmn073 remaindernear 999999.999999 1 -> -0.000001
-ddrmn074 remaindernear 9 1 -> 0
-ddrmn075 remaindernear 9999999999999999 1 -> 0
-ddrmn076 remaindernear 9999999999999999 2 -> -1
-ddrmn077 remaindernear 9999999999999999 3 -> 0
-ddrmn078 remaindernear 9999999999999999 4 -> -1
-
-ddrmn080 remaindernear 0. 1 -> 0
-ddrmn081 remaindernear .0 1 -> 0.0
-ddrmn082 remaindernear 0.00 1 -> 0.00
-ddrmn083 remaindernear 0.00E+9 1 -> 0
-ddrmn084 remaindernear 0.00E+3 1 -> 0
-ddrmn085 remaindernear 0.00E+2 1 -> 0
-ddrmn086 remaindernear 0.00E+1 1 -> 0.0
-ddrmn087 remaindernear 0.00E+0 1 -> 0.00
-ddrmn088 remaindernear 0.00E-0 1 -> 0.00
-ddrmn089 remaindernear 0.00E-1 1 -> 0.000
-ddrmn090 remaindernear 0.00E-2 1 -> 0.0000
-ddrmn091 remaindernear 0.00E-3 1 -> 0.00000
-ddrmn092 remaindernear 0.00E-4 1 -> 0.000000
-ddrmn093 remaindernear 0.00E-5 1 -> 0E-7
-ddrmn094 remaindernear 0.00E-6 1 -> 0E-8
-ddrmn095 remaindernear 0.0000E-50 1 -> 0E-54
-
--- Various flavours of remaindernear by 0
-ddrmn101 remaindernear 0 0 -> NaN Division_undefined
-ddrmn102 remaindernear 0 -0 -> NaN Division_undefined
-ddrmn103 remaindernear -0 0 -> NaN Division_undefined
-ddrmn104 remaindernear -0 -0 -> NaN Division_undefined
-ddrmn105 remaindernear 0.0E5 0 -> NaN Division_undefined
-ddrmn106 remaindernear 0.000 0 -> NaN Division_undefined
--- [Some think this next group should be Division_by_zero exception, but
--- IEEE 854 is explicit that it is Invalid operation .. for
--- remainder-near, anyway]
-ddrmn107 remaindernear 0.0001 0 -> NaN Invalid_operation
-ddrmn108 remaindernear 0.01 0 -> NaN Invalid_operation
-ddrmn109 remaindernear 0.1 0 -> NaN Invalid_operation
-ddrmn110 remaindernear 1 0 -> NaN Invalid_operation
-ddrmn111 remaindernear 1 0.0 -> NaN Invalid_operation
-ddrmn112 remaindernear 10 0.0 -> NaN Invalid_operation
-ddrmn113 remaindernear 1E+100 0.0 -> NaN Invalid_operation
-ddrmn114 remaindernear 1E+380 0 -> NaN Invalid_operation
-ddrmn115 remaindernear 0.0001 -0 -> NaN Invalid_operation
-ddrmn116 remaindernear 0.01 -0 -> NaN Invalid_operation
-ddrmn119 remaindernear 0.1 -0 -> NaN Invalid_operation
-ddrmn120 remaindernear 1 -0 -> NaN Invalid_operation
-ddrmn121 remaindernear 1 -0.0 -> NaN Invalid_operation
-ddrmn122 remaindernear 10 -0.0 -> NaN Invalid_operation
-ddrmn123 remaindernear 1E+100 -0.0 -> NaN Invalid_operation
-ddrmn124 remaindernear 1E+384 -0 -> NaN Invalid_operation
--- and zeros on left
-ddrmn130 remaindernear 0 1 -> 0
-ddrmn131 remaindernear 0 -1 -> 0
-ddrmn132 remaindernear 0.0 1 -> 0.0
-ddrmn133 remaindernear 0.0 -1 -> 0.0
-ddrmn134 remaindernear -0 1 -> -0
-ddrmn135 remaindernear -0 -1 -> -0
-ddrmn136 remaindernear -0.0 1 -> -0.0
-ddrmn137 remaindernear -0.0 -1 -> -0.0
-
--- 0.5ers
-ddrmn143 remaindernear 0.5 2 -> 0.5
-ddrmn144 remaindernear 0.5 2.1 -> 0.5
-ddrmn145 remaindernear 0.5 2.01 -> 0.50
-ddrmn146 remaindernear 0.5 2.001 -> 0.500
-ddrmn147 remaindernear 0.50 2 -> 0.50
-ddrmn148 remaindernear 0.50 2.01 -> 0.50
-ddrmn149 remaindernear 0.50 2.001 -> 0.500
-
--- steadies
-ddrmn150 remaindernear 1 1 -> 0
-ddrmn151 remaindernear 1 2 -> 1
-ddrmn152 remaindernear 1 3 -> 1
-ddrmn153 remaindernear 1 4 -> 1
-ddrmn154 remaindernear 1 5 -> 1
-ddrmn155 remaindernear 1 6 -> 1
-ddrmn156 remaindernear 1 7 -> 1
-ddrmn157 remaindernear 1 8 -> 1
-ddrmn158 remaindernear 1 9 -> 1
-ddrmn159 remaindernear 1 10 -> 1
-ddrmn160 remaindernear 1 1 -> 0
-ddrmn161 remaindernear 2 1 -> 0
-ddrmn162 remaindernear 3 1 -> 0
-ddrmn163 remaindernear 4 1 -> 0
-ddrmn164 remaindernear 5 1 -> 0
-ddrmn165 remaindernear 6 1 -> 0
-ddrmn166 remaindernear 7 1 -> 0
-ddrmn167 remaindernear 8 1 -> 0
-ddrmn168 remaindernear 9 1 -> 0
-ddrmn169 remaindernear 10 1 -> 0
-
--- some differences from remainder
-ddrmn171 remaindernear 0.4 1.020 -> 0.400
-ddrmn172 remaindernear 0.50 1.020 -> 0.500
-ddrmn173 remaindernear 0.51 1.020 -> 0.510
-ddrmn174 remaindernear 0.52 1.020 -> -0.500
-ddrmn175 remaindernear 0.6 1.020 -> -0.420
-
--- More flavours of remaindernear by 0
-ddrmn201 remaindernear 0 0 -> NaN Division_undefined
-ddrmn202 remaindernear 0.0E5 0 -> NaN Division_undefined
-ddrmn203 remaindernear 0.000 0 -> NaN Division_undefined
-ddrmn204 remaindernear 0.0001 0 -> NaN Invalid_operation
-ddrmn205 remaindernear 0.01 0 -> NaN Invalid_operation
-ddrmn206 remaindernear 0.1 0 -> NaN Invalid_operation
-ddrmn207 remaindernear 1 0 -> NaN Invalid_operation
-ddrmn208 remaindernear 1 0.0 -> NaN Invalid_operation
-ddrmn209 remaindernear 10 0.0 -> NaN Invalid_operation
-ddrmn210 remaindernear 1E+100 0.0 -> NaN Invalid_operation
-ddrmn211 remaindernear 1E+380 0 -> NaN Invalid_operation
-
--- tests from the extended specification
-ddrmn221 remaindernear 2.1 3 -> -0.9
-ddrmn222 remaindernear 10 6 -> -2
-ddrmn223 remaindernear 10 3 -> 1
-ddrmn224 remaindernear -10 3 -> -1
-ddrmn225 remaindernear 10.2 1 -> 0.2
-ddrmn226 remaindernear 10 0.3 -> 0.1
-ddrmn227 remaindernear 3.6 1.3 -> -0.3
-
--- some differences from remainder
-ddrmn231 remaindernear -0.4 1.020 -> -0.400
-ddrmn232 remaindernear -0.50 1.020 -> -0.500
-ddrmn233 remaindernear -0.51 1.020 -> -0.510
-ddrmn234 remaindernear -0.52 1.020 -> 0.500
-ddrmn235 remaindernear -0.6 1.020 -> 0.420
-
--- high Xs
-ddrmn240 remaindernear 1E+2 1.00 -> 0.00
-
--- ddrmn3xx are from DiagBigDecimal
-ddrmn301 remaindernear 1 3 -> 1
-ddrmn302 remaindernear 5 5 -> 0
-ddrmn303 remaindernear 13 10 -> 3
-ddrmn304 remaindernear 13 50 -> 13
-ddrmn305 remaindernear 13 100 -> 13
-ddrmn306 remaindernear 13 1000 -> 13
-ddrmn307 remaindernear .13 1 -> 0.13
-ddrmn308 remaindernear 0.133 1 -> 0.133
-ddrmn309 remaindernear 0.1033 1 -> 0.1033
-ddrmn310 remaindernear 1.033 1 -> 0.033
-ddrmn311 remaindernear 10.33 1 -> 0.33
-ddrmn312 remaindernear 10.33 10 -> 0.33
-ddrmn313 remaindernear 103.3 1 -> 0.3
-ddrmn314 remaindernear 133 10 -> 3
-ddrmn315 remaindernear 1033 10 -> 3
-ddrmn316 remaindernear 1033 50 -> -17
-ddrmn317 remaindernear 101.0 3 -> -1.0
-ddrmn318 remaindernear 102.0 3 -> 0.0
-ddrmn319 remaindernear 103.0 3 -> 1.0
-ddrmn320 remaindernear 2.40 1 -> 0.40
-ddrmn321 remaindernear 2.400 1 -> 0.400
-ddrmn322 remaindernear 2.4 1 -> 0.4
-ddrmn323 remaindernear 2.4 2 -> 0.4
-ddrmn324 remaindernear 2.400 2 -> 0.400
-ddrmn325 remaindernear 1 0.3 -> 0.1
-ddrmn326 remaindernear 1 0.30 -> 0.10
-ddrmn327 remaindernear 1 0.300 -> 0.100
-ddrmn328 remaindernear 1 0.3000 -> 0.1000
-ddrmn329 remaindernear 1.0 0.3 -> 0.1
-ddrmn330 remaindernear 1.00 0.3 -> 0.10
-ddrmn331 remaindernear 1.000 0.3 -> 0.100
-ddrmn332 remaindernear 1.0000 0.3 -> 0.1000
-ddrmn333 remaindernear 0.5 2 -> 0.5
-ddrmn334 remaindernear 0.5 2.1 -> 0.5
-ddrmn335 remaindernear 0.5 2.01 -> 0.50
-ddrmn336 remaindernear 0.5 2.001 -> 0.500
-ddrmn337 remaindernear 0.50 2 -> 0.50
-ddrmn338 remaindernear 0.50 2.01 -> 0.50
-ddrmn339 remaindernear 0.50 2.001 -> 0.500
-
-ddrmn340 remaindernear 0.5 0.5000001 -> -1E-7
-ddrmn341 remaindernear 0.5 0.50000001 -> -1E-8
-ddrmn342 remaindernear 0.5 0.500000001 -> -1E-9
-ddrmn343 remaindernear 0.5 0.5000000001 -> -1E-10
-ddrmn344 remaindernear 0.5 0.50000000001 -> -1E-11
-ddrmn345 remaindernear 0.5 0.4999999 -> 1E-7
-ddrmn346 remaindernear 0.5 0.49999999 -> 1E-8
-ddrmn347 remaindernear 0.5 0.499999999 -> 1E-9
-ddrmn348 remaindernear 0.5 0.4999999999 -> 1E-10
-ddrmn349 remaindernear 0.5 0.49999999999 -> 1E-11
-ddrmn350 remaindernear 0.5 0.499999999999 -> 1E-12
-
-ddrmn351 remaindernear 0.03 7 -> 0.03
-ddrmn352 remaindernear 5 2 -> 1
-ddrmn353 remaindernear 4.1 2 -> 0.1
-ddrmn354 remaindernear 4.01 2 -> 0.01
-ddrmn355 remaindernear 4.001 2 -> 0.001
-ddrmn356 remaindernear 4.0001 2 -> 0.0001
-ddrmn357 remaindernear 4.00001 2 -> 0.00001
-ddrmn358 remaindernear 4.000001 2 -> 0.000001
-ddrmn359 remaindernear 4.0000001 2 -> 1E-7
-
-ddrmn360 remaindernear 1.2 0.7345 -> -0.2690
-ddrmn361 remaindernear 0.8 12 -> 0.8
-ddrmn362 remaindernear 0.8 0.2 -> 0.0
-ddrmn363 remaindernear 0.8 0.3 -> -0.1
-ddrmn364 remaindernear 0.800 12 -> 0.800
-ddrmn365 remaindernear 0.800 1.7 -> 0.800
-ddrmn366 remaindernear 2.400 2 -> 0.400
-
--- round to even
-ddrmn371 remaindernear 121 2 -> 1
-ddrmn372 remaindernear 122 2 -> 0
-ddrmn373 remaindernear 123 2 -> -1
-ddrmn374 remaindernear 124 2 -> 0
-ddrmn375 remaindernear 125 2 -> 1
-ddrmn376 remaindernear 126 2 -> 0
-ddrmn377 remaindernear 127 2 -> -1
-
-ddrmn381 remaindernear 12345 1 -> 0
-ddrmn382 remaindernear 12345 1.0001 -> -0.2344
-ddrmn383 remaindernear 12345 1.001 -> -0.333
-ddrmn384 remaindernear 12345 1.01 -> -0.23
-ddrmn385 remaindernear 12345 1.1 -> -0.3
-ddrmn386 remaindernear 12355 4 -> -1
-ddrmn387 remaindernear 12345 4 -> 1
-ddrmn388 remaindernear 12355 4.0001 -> -1.3089
-ddrmn389 remaindernear 12345 4.0001 -> 0.6914
-ddrmn390 remaindernear 12345 4.9 -> 1.9
-ddrmn391 remaindernear 12345 4.99 -> -0.26
-ddrmn392 remaindernear 12345 4.999 -> 2.469
-ddrmn393 remaindernear 12345 4.9999 -> 0.2469
-ddrmn394 remaindernear 12345 5 -> 0
-ddrmn395 remaindernear 12345 5.0001 -> -0.2469
-ddrmn396 remaindernear 12345 5.001 -> -2.469
-ddrmn397 remaindernear 12345 5.01 -> 0.36
-ddrmn398 remaindernear 12345 5.1 -> -2.1
-
--- the nasty division-by-1 cases
-ddrmn401 remaindernear 0.4 1 -> 0.4
-ddrmn402 remaindernear 0.45 1 -> 0.45
-ddrmn403 remaindernear 0.455 1 -> 0.455
-ddrmn404 remaindernear 0.4555 1 -> 0.4555
-ddrmn405 remaindernear 0.45555 1 -> 0.45555
-ddrmn406 remaindernear 0.455555 1 -> 0.455555
-ddrmn407 remaindernear 0.4555555 1 -> 0.4555555
-ddrmn408 remaindernear 0.45555555 1 -> 0.45555555
-ddrmn409 remaindernear 0.455555555 1 -> 0.455555555
--- with spill... [412 exercises sticktab loop]
-ddrmn411 remaindernear 0.5 1 -> 0.5
-ddrmn412 remaindernear 0.55 1 -> -0.45
-ddrmn413 remaindernear 0.555 1 -> -0.445
-ddrmn414 remaindernear 0.5555 1 -> -0.4445
-ddrmn415 remaindernear 0.55555 1 -> -0.44445
-ddrmn416 remaindernear 0.555555 1 -> -0.444445
-ddrmn417 remaindernear 0.5555555 1 -> -0.4444445
-ddrmn418 remaindernear 0.55555555 1 -> -0.44444445
-ddrmn419 remaindernear 0.555555555 1 -> -0.444444445
-
--- folddowns
-ddrmn421 remaindernear 1E+384 1 -> NaN Division_impossible
-ddrmn422 remaindernear 1E+384 1E+383 -> 0E+369 Clamped
-ddrmn423 remaindernear 1E+384 2E+383 -> 0E+369 Clamped
-ddrmn424 remaindernear 1E+384 3E+383 -> 1.00000000000000E+383 Clamped
-ddrmn425 remaindernear 1E+384 4E+383 -> 2.00000000000000E+383 Clamped
-ddrmn426 remaindernear 1E+384 5E+383 -> 0E+369 Clamped
-ddrmn427 remaindernear 1E+384 6E+383 -> -2.00000000000000E+383 Clamped
-ddrmn428 remaindernear 1E+384 7E+383 -> 3.00000000000000E+383 Clamped
-ddrmn429 remaindernear 1E+384 8E+383 -> 2.00000000000000E+383 Clamped
-ddrmn430 remaindernear 1E+384 9E+383 -> 1.00000000000000E+383 Clamped
--- tinies
-ddrmn431 remaindernear 1E-397 1E-398 -> 0E-398
-ddrmn432 remaindernear 1E-397 2E-398 -> 0E-398
-ddrmn433 remaindernear 1E-397 3E-398 -> 1E-398 Subnormal
-ddrmn434 remaindernear 1E-397 4E-398 -> 2E-398 Subnormal
-ddrmn435 remaindernear 1E-397 5E-398 -> 0E-398
-ddrmn436 remaindernear 1E-397 6E-398 -> -2E-398 Subnormal
-ddrmn437 remaindernear 1E-397 7E-398 -> 3E-398 Subnormal
-ddrmn438 remaindernear 1E-397 8E-398 -> 2E-398 Subnormal
-ddrmn439 remaindernear 1E-397 9E-398 -> 1E-398 Subnormal
-ddrmn440 remaindernear 1E-397 10E-398 -> 0E-398
-ddrmn441 remaindernear 1E-397 11E-398 -> -1E-398 Subnormal
-ddrmn442 remaindernear 100E-397 11E-398 -> -1E-398 Subnormal
-ddrmn443 remaindernear 100E-397 20E-398 -> 0E-398
-ddrmn444 remaindernear 100E-397 21E-398 -> -8E-398 Subnormal
-ddrmn445 remaindernear 100E-397 30E-398 -> 1.0E-397 Subnormal
-
--- zero signs
-ddrmn650 remaindernear 1 1 -> 0
-ddrmn651 remaindernear -1 1 -> -0
-ddrmn652 remaindernear 1 -1 -> 0
-ddrmn653 remaindernear -1 -1 -> -0
-ddrmn654 remaindernear 0 1 -> 0
-ddrmn655 remaindernear -0 1 -> -0
-ddrmn656 remaindernear 0 -1 -> 0
-ddrmn657 remaindernear -0 -1 -> -0
-ddrmn658 remaindernear 0.00 1 -> 0.00
-ddrmn659 remaindernear -0.00 1 -> -0.00
-
--- Specials
-ddrmn680 remaindernear Inf -Inf -> NaN Invalid_operation
-ddrmn681 remaindernear Inf -1000 -> NaN Invalid_operation
-ddrmn682 remaindernear Inf -1 -> NaN Invalid_operation
-ddrmn683 remaindernear Inf 0 -> NaN Invalid_operation
-ddrmn684 remaindernear Inf -0 -> NaN Invalid_operation
-ddrmn685 remaindernear Inf 1 -> NaN Invalid_operation
-ddrmn686 remaindernear Inf 1000 -> NaN Invalid_operation
-ddrmn687 remaindernear Inf Inf -> NaN Invalid_operation
-ddrmn688 remaindernear -1000 Inf -> -1000
-ddrmn689 remaindernear -Inf Inf -> NaN Invalid_operation
-ddrmn691 remaindernear -1 Inf -> -1
-ddrmn692 remaindernear 0 Inf -> 0
-ddrmn693 remaindernear -0 Inf -> -0
-ddrmn694 remaindernear 1 Inf -> 1
-ddrmn695 remaindernear 1000 Inf -> 1000
-ddrmn696 remaindernear Inf Inf -> NaN Invalid_operation
-
-ddrmn700 remaindernear -Inf -Inf -> NaN Invalid_operation
-ddrmn701 remaindernear -Inf -1000 -> NaN Invalid_operation
-ddrmn702 remaindernear -Inf -1 -> NaN Invalid_operation
-ddrmn703 remaindernear -Inf -0 -> NaN Invalid_operation
-ddrmn704 remaindernear -Inf 0 -> NaN Invalid_operation
-ddrmn705 remaindernear -Inf 1 -> NaN Invalid_operation
-ddrmn706 remaindernear -Inf 1000 -> NaN Invalid_operation
-ddrmn707 remaindernear -Inf Inf -> NaN Invalid_operation
-ddrmn708 remaindernear -Inf -Inf -> NaN Invalid_operation
-ddrmn709 remaindernear -1000 Inf -> -1000
-ddrmn710 remaindernear -1 -Inf -> -1
-ddrmn711 remaindernear -0 -Inf -> -0
-ddrmn712 remaindernear 0 -Inf -> 0
-ddrmn713 remaindernear 1 -Inf -> 1
-ddrmn714 remaindernear 1000 -Inf -> 1000
-ddrmn715 remaindernear Inf -Inf -> NaN Invalid_operation
-
-ddrmn721 remaindernear NaN -Inf -> NaN
-ddrmn722 remaindernear NaN -1000 -> NaN
-ddrmn723 remaindernear NaN -1 -> NaN
-ddrmn724 remaindernear NaN -0 -> NaN
-ddrmn725 remaindernear -NaN 0 -> -NaN
-ddrmn726 remaindernear NaN 1 -> NaN
-ddrmn727 remaindernear NaN 1000 -> NaN
-ddrmn728 remaindernear NaN Inf -> NaN
-ddrmn729 remaindernear NaN -NaN -> NaN
-ddrmn730 remaindernear -Inf NaN -> NaN
-ddrmn731 remaindernear -1000 NaN -> NaN
-ddrmn732 remaindernear -1 NaN -> NaN
-ddrmn733 remaindernear -0 -NaN -> -NaN
-ddrmn734 remaindernear 0 NaN -> NaN
-ddrmn735 remaindernear 1 -NaN -> -NaN
-ddrmn736 remaindernear 1000 NaN -> NaN
-ddrmn737 remaindernear Inf NaN -> NaN
-
-ddrmn741 remaindernear sNaN -Inf -> NaN Invalid_operation
-ddrmn742 remaindernear sNaN -1000 -> NaN Invalid_operation
-ddrmn743 remaindernear -sNaN -1 -> -NaN Invalid_operation
-ddrmn744 remaindernear sNaN -0 -> NaN Invalid_operation
-ddrmn745 remaindernear sNaN 0 -> NaN Invalid_operation
-ddrmn746 remaindernear sNaN 1 -> NaN Invalid_operation
-ddrmn747 remaindernear sNaN 1000 -> NaN Invalid_operation
-ddrmn749 remaindernear sNaN NaN -> NaN Invalid_operation
-ddrmn750 remaindernear sNaN sNaN -> NaN Invalid_operation
-ddrmn751 remaindernear NaN sNaN -> NaN Invalid_operation
-ddrmn752 remaindernear -Inf sNaN -> NaN Invalid_operation
-ddrmn753 remaindernear -1000 sNaN -> NaN Invalid_operation
-ddrmn754 remaindernear -1 sNaN -> NaN Invalid_operation
-ddrmn755 remaindernear -0 sNaN -> NaN Invalid_operation
-ddrmn756 remaindernear 0 sNaN -> NaN Invalid_operation
-ddrmn757 remaindernear 1 sNaN -> NaN Invalid_operation
-ddrmn758 remaindernear 1000 sNaN -> NaN Invalid_operation
-ddrmn759 remaindernear Inf -sNaN -> -NaN Invalid_operation
-
--- propaging NaNs
-ddrmn760 remaindernear NaN1 NaN7 -> NaN1
-ddrmn761 remaindernear sNaN2 NaN8 -> NaN2 Invalid_operation
-ddrmn762 remaindernear NaN3 sNaN9 -> NaN9 Invalid_operation
-ddrmn763 remaindernear sNaN4 sNaN10 -> NaN4 Invalid_operation
-ddrmn764 remaindernear 15 NaN11 -> NaN11
-ddrmn765 remaindernear NaN6 NaN12 -> NaN6
-ddrmn766 remaindernear Inf NaN13 -> NaN13
-ddrmn767 remaindernear NaN14 -Inf -> NaN14
-ddrmn768 remaindernear 0 NaN15 -> NaN15
-ddrmn769 remaindernear NaN16 -0 -> NaN16
-
--- edge cases of impossible
-ddrmn770 remaindernear 1234567890123456 10 -> -4
-ddrmn771 remaindernear 1234567890123456 1 -> 0
-ddrmn772 remaindernear 1234567890123456 0.1 -> NaN Division_impossible
-ddrmn773 remaindernear 1234567890123456 0.01 -> NaN Division_impossible
-
--- long operand checks
-ddrmn801 remaindernear 12345678000 100 -> 0
-ddrmn802 remaindernear 1 12345678000 -> 1
-ddrmn803 remaindernear 1234567800 10 -> 0
-ddrmn804 remaindernear 1 1234567800 -> 1
-ddrmn805 remaindernear 1234567890 10 -> 0
-ddrmn806 remaindernear 1 1234567890 -> 1
-ddrmn807 remaindernear 1234567891 10 -> 1
-ddrmn808 remaindernear 1 1234567891 -> 1
-ddrmn809 remaindernear 12345678901 100 -> 1
-ddrmn810 remaindernear 1 12345678901 -> 1
-ddrmn811 remaindernear 1234567896 10 -> -4
-ddrmn812 remaindernear 1 1234567896 -> 1
-
-ddrmn821 remaindernear 12345678000 100 -> 0
-ddrmn822 remaindernear 1 12345678000 -> 1
-ddrmn823 remaindernear 1234567800 10 -> 0
-ddrmn824 remaindernear 1 1234567800 -> 1
-ddrmn825 remaindernear 1234567890 10 -> 0
-ddrmn826 remaindernear 1 1234567890 -> 1
-ddrmn827 remaindernear 1234567891 10 -> 1
-ddrmn828 remaindernear 1 1234567891 -> 1
-ddrmn829 remaindernear 12345678901 100 -> 1
-ddrmn830 remaindernear 1 12345678901 -> 1
-ddrmn831 remaindernear 1234567896 10 -> -4
-ddrmn832 remaindernear 1 1234567896 -> 1
-
--- from divideint
-ddrmn840 remaindernear 100000000.0 1 -> 0.0
-ddrmn841 remaindernear 100000000.4 1 -> 0.4
-ddrmn842 remaindernear 100000000.5 1 -> 0.5
-ddrmn843 remaindernear 100000000.9 1 -> -0.1
-ddrmn844 remaindernear 100000000.999 1 -> -0.001
-ddrmn850 remaindernear 100000003 5 -> -2
-ddrmn851 remaindernear 10000003 5 -> -2
-ddrmn852 remaindernear 1000003 5 -> -2
-ddrmn853 remaindernear 100003 5 -> -2
-ddrmn854 remaindernear 10003 5 -> -2
-ddrmn855 remaindernear 1003 5 -> -2
-ddrmn856 remaindernear 103 5 -> -2
-ddrmn857 remaindernear 13 5 -> -2
-ddrmn858 remaindernear 1 5 -> 1
-
--- Vladimir's cases 1234567890123456
-ddrmn860 remaindernear 123.0e1 1000000000000000 -> 1230
-ddrmn861 remaindernear 1230 1000000000000000 -> 1230
-ddrmn862 remaindernear 12.3e2 1000000000000000 -> 1230
-ddrmn863 remaindernear 1.23e3 1000000000000000 -> 1230
-ddrmn864 remaindernear 123e1 1000000000000000 -> 1230
-ddrmn870 remaindernear 123e1 1000000000000000 -> 1230
-ddrmn871 remaindernear 123e1 100000000000000 -> 1230
-ddrmn872 remaindernear 123e1 10000000000000 -> 1230
-ddrmn873 remaindernear 123e1 1000000000000 -> 1230
-ddrmn874 remaindernear 123e1 100000000000 -> 1230
-ddrmn875 remaindernear 123e1 10000000000 -> 1230
-ddrmn876 remaindernear 123e1 1000000000 -> 1230
-ddrmn877 remaindernear 123e1 100000000 -> 1230
-ddrmn878 remaindernear 1230 100000000 -> 1230
-ddrmn879 remaindernear 123e1 10000000 -> 1230
-ddrmn880 remaindernear 123e1 1000000 -> 1230
-ddrmn881 remaindernear 123e1 100000 -> 1230
-ddrmn882 remaindernear 123e1 10000 -> 1230
-ddrmn883 remaindernear 123e1 1000 -> 230
-ddrmn884 remaindernear 123e1 100 -> 30
-ddrmn885 remaindernear 123e1 10 -> 0
-ddrmn886 remaindernear 123e1 1 -> 0
-
-ddrmn890 remaindernear 123e1 2000000000000000 -> 1230
-ddrmn891 remaindernear 123e1 200000000000000 -> 1230
-ddrmn892 remaindernear 123e1 20000000000000 -> 1230
-ddrmn893 remaindernear 123e1 2000000000000 -> 1230
-ddrmn894 remaindernear 123e1 200000000000 -> 1230
-ddrmn895 remaindernear 123e1 20000000000 -> 1230
-ddrmn896 remaindernear 123e1 2000000000 -> 1230
-ddrmn897 remaindernear 123e1 200000000 -> 1230
-ddrmn899 remaindernear 123e1 20000000 -> 1230
-ddrmn900 remaindernear 123e1 2000000 -> 1230
-ddrmn901 remaindernear 123e1 200000 -> 1230
-ddrmn902 remaindernear 123e1 20000 -> 1230
-ddrmn903 remaindernear 123e1 2000 -> -770
-ddrmn904 remaindernear 123e1 200 -> 30
-ddrmn905 remaindernear 123e1 20 -> -10
-ddrmn906 remaindernear 123e1 2 -> 0
-
-ddrmn910 remaindernear 123e1 5000000000000000 -> 1230
-ddrmn911 remaindernear 123e1 500000000000000 -> 1230
-ddrmn912 remaindernear 123e1 50000000000000 -> 1230
-ddrmn913 remaindernear 123e1 5000000000000 -> 1230
-ddrmn914 remaindernear 123e1 500000000000 -> 1230
-ddrmn915 remaindernear 123e1 50000000000 -> 1230
-ddrmn916 remaindernear 123e1 5000000000 -> 1230
-ddrmn917 remaindernear 123e1 500000000 -> 1230
-ddrmn919 remaindernear 123e1 50000000 -> 1230
-ddrmn920 remaindernear 123e1 5000000 -> 1230
-ddrmn921 remaindernear 123e1 500000 -> 1230
-ddrmn922 remaindernear 123e1 50000 -> 1230
-ddrmn923 remaindernear 123e1 5000 -> 1230
-ddrmn924 remaindernear 123e1 500 -> 230
-ddrmn925 remaindernear 123e1 50 -> -20
-ddrmn926 remaindernear 123e1 5 -> 0
-
-ddrmn930 remaindernear 123e1 9000000000000000 -> 1230
-ddrmn931 remaindernear 123e1 900000000000000 -> 1230
-ddrmn932 remaindernear 123e1 90000000000000 -> 1230
-ddrmn933 remaindernear 123e1 9000000000000 -> 1230
-ddrmn934 remaindernear 123e1 900000000000 -> 1230
-ddrmn935 remaindernear 123e1 90000000000 -> 1230
-ddrmn936 remaindernear 123e1 9000000000 -> 1230
-ddrmn937 remaindernear 123e1 900000000 -> 1230
-ddrmn939 remaindernear 123e1 90000000 -> 1230
-ddrmn940 remaindernear 123e1 9000000 -> 1230
-ddrmn941 remaindernear 123e1 900000 -> 1230
-ddrmn942 remaindernear 123e1 90000 -> 1230
-ddrmn943 remaindernear 123e1 9000 -> 1230
-ddrmn944 remaindernear 123e1 900 -> 330
-ddrmn945 remaindernear 123e1 90 -> -30
-ddrmn946 remaindernear 123e1 9 -> -3
-
-ddrmn950 remaindernear 123e1 1000000000000000 -> 1230
-ddrmn961 remaindernear 123e1 2999999999999999 -> 1230
-ddrmn962 remaindernear 123e1 3999999999999999 -> 1230
-ddrmn963 remaindernear 123e1 4999999999999999 -> 1230
-ddrmn964 remaindernear 123e1 5999999999999999 -> 1230
-ddrmn965 remaindernear 123e1 6999999999999999 -> 1230
-ddrmn966 remaindernear 123e1 7999999999999999 -> 1230
-ddrmn967 remaindernear 123e1 8999999999999999 -> 1230
-ddrmn968 remaindernear 123e1 9999999999999999 -> 1230
-ddrmn969 remaindernear 123e1 9876543210987654 -> 1230
-
-ddrmn980 remaindernear 123e1 1000E299 -> 1.23E+3 -- 123E+1 internally
-
-
--- overflow and underflow tests [from divide]
-ddrmn1051 remaindernear 1e+277 1e-311 -> NaN Division_impossible
-ddrmn1052 remaindernear 1e+277 -1e-311 -> NaN Division_impossible
-ddrmn1053 remaindernear -1e+277 1e-311 -> NaN Division_impossible
-ddrmn1054 remaindernear -1e+277 -1e-311 -> NaN Division_impossible
-ddrmn1055 remaindernear 1e-277 1e+311 -> 1E-277
-ddrmn1056 remaindernear 1e-277 -1e+311 -> 1E-277
-ddrmn1057 remaindernear -1e-277 1e+311 -> -1E-277
-ddrmn1058 remaindernear -1e-277 -1e+311 -> -1E-277
-
--- destructive subtract
-ddrmn1100 remainderNear 1234567890123456 1.000000000000001 -> -0.234567890123455
-ddrmn1101 remainderNear 1234567890123456 1.00000000000001 -> -0.34567890123444
-ddrmn1102 remainderNear 1234567890123456 1.0000000000001 -> -0.4567890123333
-ddrmn1103 remainderNear 1234567890123455 4.000000000000001 -> -1.308641972530864
-ddrmn1104 remainderNear 1234567890123456 4.000000000000001 -> -0.308641972530864
-ddrmn1115 remainderNear 1234567890123456 4.9999999999999 -> 0.6913578024696
-ddrmn1116 remainderNear 1234567890123456 4.99999999999999 -> -1.53086421975308
-ddrmn1117 remainderNear 1234567890123456 4.999999999999999 -> 1.246913578024691
-ddrmn1118 remainderNear 1234567890123456 5.000000000000001 -> 0.753086421975309
-ddrmn1119 remainderNear 1234567890123456 5.00000000000001 -> -1.46913578024691
-ddrmn1110 remainderNear 1234567890123456 5.0000000000001 -> 1.3086421975314
-
--- Null tests
-ddrmn1000 remaindernear 10 # -> NaN Invalid_operation
-ddrmn1001 remaindernear # 10 -> NaN Invalid_operation
-
+------------------------------------------------------------------------ +-- ddRemainderNear.decTest -- decDouble remainder-near -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +-- sanity checks (as base, above) +ddrmn001 remaindernear 1 1 -> 0 +ddrmn002 remaindernear 2 1 -> 0 +ddrmn003 remaindernear 1 2 -> 1 +ddrmn004 remaindernear 2 2 -> 0 +ddrmn005 remaindernear 0 1 -> 0 +ddrmn006 remaindernear 0 2 -> 0 +ddrmn007 remaindernear 1 3 -> 1 +ddrmn008 remaindernear 2 3 -> -1 +ddrmn009 remaindernear 3 3 -> 0 + +ddrmn010 remaindernear 2.4 1 -> 0.4 +ddrmn011 remaindernear 2.4 -1 -> 0.4 +ddrmn012 remaindernear -2.4 1 -> -0.4 +ddrmn013 remaindernear -2.4 -1 -> -0.4 +ddrmn014 remaindernear 2.40 1 -> 0.40 +ddrmn015 remaindernear 2.400 1 -> 0.400 +ddrmn016 remaindernear 2.4 2 -> 0.4 +ddrmn017 remaindernear 2.400 2 -> 0.400 +ddrmn018 remaindernear 2. 2 -> 0 +ddrmn019 remaindernear 20 20 -> 0 + +ddrmn020 remaindernear 187 187 -> 0 +ddrmn021 remaindernear 5 2 -> 1 +ddrmn022 remaindernear 5 2.0 -> 1.0 +ddrmn023 remaindernear 5 2.000 -> 1.000 +ddrmn024 remaindernear 5 0.200 -> 0.000 +ddrmn025 remaindernear 5 0.200 -> 0.000 + +ddrmn030 remaindernear 1 2 -> 1 +ddrmn031 remaindernear 1 4 -> 1 +ddrmn032 remaindernear 1 8 -> 1 + +ddrmn033 remaindernear 1 16 -> 1 +ddrmn034 remaindernear 1 32 -> 1 +ddrmn035 remaindernear 1 64 -> 1 +ddrmn040 remaindernear 1 -2 -> 1 +ddrmn041 remaindernear 1 -4 -> 1 +ddrmn042 remaindernear 1 -8 -> 1 +ddrmn043 remaindernear 1 -16 -> 1 +ddrmn044 remaindernear 1 -32 -> 1 +ddrmn045 remaindernear 1 -64 -> 1 +ddrmn050 remaindernear -1 2 -> -1 +ddrmn051 remaindernear -1 4 -> -1 +ddrmn052 remaindernear -1 8 -> -1 +ddrmn053 remaindernear -1 16 -> -1 +ddrmn054 remaindernear -1 32 -> -1 +ddrmn055 remaindernear -1 64 -> -1 +ddrmn060 remaindernear -1 -2 -> -1 +ddrmn061 remaindernear -1 -4 -> -1 +ddrmn062 remaindernear -1 -8 -> -1 +ddrmn063 remaindernear -1 -16 -> -1 +ddrmn064 remaindernear -1 -32 -> -1 +ddrmn065 remaindernear -1 -64 -> -1 + +ddrmn066 remaindernear 9.9 1 -> -0.1 +ddrmn067 remaindernear 99.7 1 -> -0.3 +ddrmn068 remaindernear 999999999 1 -> 0 +ddrmn069 remaindernear 999999999.4 1 -> 0.4 +ddrmn070 remaindernear 999999999.5 1 -> -0.5 +ddrmn071 remaindernear 999999999.9 1 -> -0.1 +ddrmn072 remaindernear 999999999.999 1 -> -0.001 +ddrmn073 remaindernear 999999.999999 1 -> -0.000001 +ddrmn074 remaindernear 9 1 -> 0 +ddrmn075 remaindernear 9999999999999999 1 -> 0 +ddrmn076 remaindernear 9999999999999999 2 -> -1 +ddrmn077 remaindernear 9999999999999999 3 -> 0 +ddrmn078 remaindernear 9999999999999999 4 -> -1 + +ddrmn080 remaindernear 0. 1 -> 0 +ddrmn081 remaindernear .0 1 -> 0.0 +ddrmn082 remaindernear 0.00 1 -> 0.00 +ddrmn083 remaindernear 0.00E+9 1 -> 0 +ddrmn084 remaindernear 0.00E+3 1 -> 0 +ddrmn085 remaindernear 0.00E+2 1 -> 0 +ddrmn086 remaindernear 0.00E+1 1 -> 0.0 +ddrmn087 remaindernear 0.00E+0 1 -> 0.00 +ddrmn088 remaindernear 0.00E-0 1 -> 0.00 +ddrmn089 remaindernear 0.00E-1 1 -> 0.000 +ddrmn090 remaindernear 0.00E-2 1 -> 0.0000 +ddrmn091 remaindernear 0.00E-3 1 -> 0.00000 +ddrmn092 remaindernear 0.00E-4 1 -> 0.000000 +ddrmn093 remaindernear 0.00E-5 1 -> 0E-7 +ddrmn094 remaindernear 0.00E-6 1 -> 0E-8 +ddrmn095 remaindernear 0.0000E-50 1 -> 0E-54 + +-- Various flavours of remaindernear by 0 +ddrmn101 remaindernear 0 0 -> NaN Division_undefined +ddrmn102 remaindernear 0 -0 -> NaN Division_undefined +ddrmn103 remaindernear -0 0 -> NaN Division_undefined +ddrmn104 remaindernear -0 -0 -> NaN Division_undefined +ddrmn105 remaindernear 0.0E5 0 -> NaN Division_undefined +ddrmn106 remaindernear 0.000 0 -> NaN Division_undefined +-- [Some think this next group should be Division_by_zero exception, but +-- IEEE 854 is explicit that it is Invalid operation .. for +-- remainder-near, anyway] +ddrmn107 remaindernear 0.0001 0 -> NaN Invalid_operation +ddrmn108 remaindernear 0.01 0 -> NaN Invalid_operation +ddrmn109 remaindernear 0.1 0 -> NaN Invalid_operation +ddrmn110 remaindernear 1 0 -> NaN Invalid_operation +ddrmn111 remaindernear 1 0.0 -> NaN Invalid_operation +ddrmn112 remaindernear 10 0.0 -> NaN Invalid_operation +ddrmn113 remaindernear 1E+100 0.0 -> NaN Invalid_operation +ddrmn114 remaindernear 1E+380 0 -> NaN Invalid_operation +ddrmn115 remaindernear 0.0001 -0 -> NaN Invalid_operation +ddrmn116 remaindernear 0.01 -0 -> NaN Invalid_operation +ddrmn119 remaindernear 0.1 -0 -> NaN Invalid_operation +ddrmn120 remaindernear 1 -0 -> NaN Invalid_operation +ddrmn121 remaindernear 1 -0.0 -> NaN Invalid_operation +ddrmn122 remaindernear 10 -0.0 -> NaN Invalid_operation +ddrmn123 remaindernear 1E+100 -0.0 -> NaN Invalid_operation +ddrmn124 remaindernear 1E+384 -0 -> NaN Invalid_operation +-- and zeros on left +ddrmn130 remaindernear 0 1 -> 0 +ddrmn131 remaindernear 0 -1 -> 0 +ddrmn132 remaindernear 0.0 1 -> 0.0 +ddrmn133 remaindernear 0.0 -1 -> 0.0 +ddrmn134 remaindernear -0 1 -> -0 +ddrmn135 remaindernear -0 -1 -> -0 +ddrmn136 remaindernear -0.0 1 -> -0.0 +ddrmn137 remaindernear -0.0 -1 -> -0.0 + +-- 0.5ers +ddrmn143 remaindernear 0.5 2 -> 0.5 +ddrmn144 remaindernear 0.5 2.1 -> 0.5 +ddrmn145 remaindernear 0.5 2.01 -> 0.50 +ddrmn146 remaindernear 0.5 2.001 -> 0.500 +ddrmn147 remaindernear 0.50 2 -> 0.50 +ddrmn148 remaindernear 0.50 2.01 -> 0.50 +ddrmn149 remaindernear 0.50 2.001 -> 0.500 + +-- steadies +ddrmn150 remaindernear 1 1 -> 0 +ddrmn151 remaindernear 1 2 -> 1 +ddrmn152 remaindernear 1 3 -> 1 +ddrmn153 remaindernear 1 4 -> 1 +ddrmn154 remaindernear 1 5 -> 1 +ddrmn155 remaindernear 1 6 -> 1 +ddrmn156 remaindernear 1 7 -> 1 +ddrmn157 remaindernear 1 8 -> 1 +ddrmn158 remaindernear 1 9 -> 1 +ddrmn159 remaindernear 1 10 -> 1 +ddrmn160 remaindernear 1 1 -> 0 +ddrmn161 remaindernear 2 1 -> 0 +ddrmn162 remaindernear 3 1 -> 0 +ddrmn163 remaindernear 4 1 -> 0 +ddrmn164 remaindernear 5 1 -> 0 +ddrmn165 remaindernear 6 1 -> 0 +ddrmn166 remaindernear 7 1 -> 0 +ddrmn167 remaindernear 8 1 -> 0 +ddrmn168 remaindernear 9 1 -> 0 +ddrmn169 remaindernear 10 1 -> 0 + +-- some differences from remainder +ddrmn171 remaindernear 0.4 1.020 -> 0.400 +ddrmn172 remaindernear 0.50 1.020 -> 0.500 +ddrmn173 remaindernear 0.51 1.020 -> 0.510 +ddrmn174 remaindernear 0.52 1.020 -> -0.500 +ddrmn175 remaindernear 0.6 1.020 -> -0.420 + +-- More flavours of remaindernear by 0 +ddrmn201 remaindernear 0 0 -> NaN Division_undefined +ddrmn202 remaindernear 0.0E5 0 -> NaN Division_undefined +ddrmn203 remaindernear 0.000 0 -> NaN Division_undefined +ddrmn204 remaindernear 0.0001 0 -> NaN Invalid_operation +ddrmn205 remaindernear 0.01 0 -> NaN Invalid_operation +ddrmn206 remaindernear 0.1 0 -> NaN Invalid_operation +ddrmn207 remaindernear 1 0 -> NaN Invalid_operation +ddrmn208 remaindernear 1 0.0 -> NaN Invalid_operation +ddrmn209 remaindernear 10 0.0 -> NaN Invalid_operation +ddrmn210 remaindernear 1E+100 0.0 -> NaN Invalid_operation +ddrmn211 remaindernear 1E+380 0 -> NaN Invalid_operation + +-- tests from the extended specification +ddrmn221 remaindernear 2.1 3 -> -0.9 +ddrmn222 remaindernear 10 6 -> -2 +ddrmn223 remaindernear 10 3 -> 1 +ddrmn224 remaindernear -10 3 -> -1 +ddrmn225 remaindernear 10.2 1 -> 0.2 +ddrmn226 remaindernear 10 0.3 -> 0.1 +ddrmn227 remaindernear 3.6 1.3 -> -0.3 + +-- some differences from remainder +ddrmn231 remaindernear -0.4 1.020 -> -0.400 +ddrmn232 remaindernear -0.50 1.020 -> -0.500 +ddrmn233 remaindernear -0.51 1.020 -> -0.510 +ddrmn234 remaindernear -0.52 1.020 -> 0.500 +ddrmn235 remaindernear -0.6 1.020 -> 0.420 + +-- high Xs +ddrmn240 remaindernear 1E+2 1.00 -> 0.00 + +-- ddrmn3xx are from DiagBigDecimal +ddrmn301 remaindernear 1 3 -> 1 +ddrmn302 remaindernear 5 5 -> 0 +ddrmn303 remaindernear 13 10 -> 3 +ddrmn304 remaindernear 13 50 -> 13 +ddrmn305 remaindernear 13 100 -> 13 +ddrmn306 remaindernear 13 1000 -> 13 +ddrmn307 remaindernear .13 1 -> 0.13 +ddrmn308 remaindernear 0.133 1 -> 0.133 +ddrmn309 remaindernear 0.1033 1 -> 0.1033 +ddrmn310 remaindernear 1.033 1 -> 0.033 +ddrmn311 remaindernear 10.33 1 -> 0.33 +ddrmn312 remaindernear 10.33 10 -> 0.33 +ddrmn313 remaindernear 103.3 1 -> 0.3 +ddrmn314 remaindernear 133 10 -> 3 +ddrmn315 remaindernear 1033 10 -> 3 +ddrmn316 remaindernear 1033 50 -> -17 +ddrmn317 remaindernear 101.0 3 -> -1.0 +ddrmn318 remaindernear 102.0 3 -> 0.0 +ddrmn319 remaindernear 103.0 3 -> 1.0 +ddrmn320 remaindernear 2.40 1 -> 0.40 +ddrmn321 remaindernear 2.400 1 -> 0.400 +ddrmn322 remaindernear 2.4 1 -> 0.4 +ddrmn323 remaindernear 2.4 2 -> 0.4 +ddrmn324 remaindernear 2.400 2 -> 0.400 +ddrmn325 remaindernear 1 0.3 -> 0.1 +ddrmn326 remaindernear 1 0.30 -> 0.10 +ddrmn327 remaindernear 1 0.300 -> 0.100 +ddrmn328 remaindernear 1 0.3000 -> 0.1000 +ddrmn329 remaindernear 1.0 0.3 -> 0.1 +ddrmn330 remaindernear 1.00 0.3 -> 0.10 +ddrmn331 remaindernear 1.000 0.3 -> 0.100 +ddrmn332 remaindernear 1.0000 0.3 -> 0.1000 +ddrmn333 remaindernear 0.5 2 -> 0.5 +ddrmn334 remaindernear 0.5 2.1 -> 0.5 +ddrmn335 remaindernear 0.5 2.01 -> 0.50 +ddrmn336 remaindernear 0.5 2.001 -> 0.500 +ddrmn337 remaindernear 0.50 2 -> 0.50 +ddrmn338 remaindernear 0.50 2.01 -> 0.50 +ddrmn339 remaindernear 0.50 2.001 -> 0.500 + +ddrmn340 remaindernear 0.5 0.5000001 -> -1E-7 +ddrmn341 remaindernear 0.5 0.50000001 -> -1E-8 +ddrmn342 remaindernear 0.5 0.500000001 -> -1E-9 +ddrmn343 remaindernear 0.5 0.5000000001 -> -1E-10 +ddrmn344 remaindernear 0.5 0.50000000001 -> -1E-11 +ddrmn345 remaindernear 0.5 0.4999999 -> 1E-7 +ddrmn346 remaindernear 0.5 0.49999999 -> 1E-8 +ddrmn347 remaindernear 0.5 0.499999999 -> 1E-9 +ddrmn348 remaindernear 0.5 0.4999999999 -> 1E-10 +ddrmn349 remaindernear 0.5 0.49999999999 -> 1E-11 +ddrmn350 remaindernear 0.5 0.499999999999 -> 1E-12 + +ddrmn351 remaindernear 0.03 7 -> 0.03 +ddrmn352 remaindernear 5 2 -> 1 +ddrmn353 remaindernear 4.1 2 -> 0.1 +ddrmn354 remaindernear 4.01 2 -> 0.01 +ddrmn355 remaindernear 4.001 2 -> 0.001 +ddrmn356 remaindernear 4.0001 2 -> 0.0001 +ddrmn357 remaindernear 4.00001 2 -> 0.00001 +ddrmn358 remaindernear 4.000001 2 -> 0.000001 +ddrmn359 remaindernear 4.0000001 2 -> 1E-7 + +ddrmn360 remaindernear 1.2 0.7345 -> -0.2690 +ddrmn361 remaindernear 0.8 12 -> 0.8 +ddrmn362 remaindernear 0.8 0.2 -> 0.0 +ddrmn363 remaindernear 0.8 0.3 -> -0.1 +ddrmn364 remaindernear 0.800 12 -> 0.800 +ddrmn365 remaindernear 0.800 1.7 -> 0.800 +ddrmn366 remaindernear 2.400 2 -> 0.400 + +-- round to even +ddrmn371 remaindernear 121 2 -> 1 +ddrmn372 remaindernear 122 2 -> 0 +ddrmn373 remaindernear 123 2 -> -1 +ddrmn374 remaindernear 124 2 -> 0 +ddrmn375 remaindernear 125 2 -> 1 +ddrmn376 remaindernear 126 2 -> 0 +ddrmn377 remaindernear 127 2 -> -1 + +ddrmn381 remaindernear 12345 1 -> 0 +ddrmn382 remaindernear 12345 1.0001 -> -0.2344 +ddrmn383 remaindernear 12345 1.001 -> -0.333 +ddrmn384 remaindernear 12345 1.01 -> -0.23 +ddrmn385 remaindernear 12345 1.1 -> -0.3 +ddrmn386 remaindernear 12355 4 -> -1 +ddrmn387 remaindernear 12345 4 -> 1 +ddrmn388 remaindernear 12355 4.0001 -> -1.3089 +ddrmn389 remaindernear 12345 4.0001 -> 0.6914 +ddrmn390 remaindernear 12345 4.9 -> 1.9 +ddrmn391 remaindernear 12345 4.99 -> -0.26 +ddrmn392 remaindernear 12345 4.999 -> 2.469 +ddrmn393 remaindernear 12345 4.9999 -> 0.2469 +ddrmn394 remaindernear 12345 5 -> 0 +ddrmn395 remaindernear 12345 5.0001 -> -0.2469 +ddrmn396 remaindernear 12345 5.001 -> -2.469 +ddrmn397 remaindernear 12345 5.01 -> 0.36 +ddrmn398 remaindernear 12345 5.1 -> -2.1 + +-- the nasty division-by-1 cases +ddrmn401 remaindernear 0.4 1 -> 0.4 +ddrmn402 remaindernear 0.45 1 -> 0.45 +ddrmn403 remaindernear 0.455 1 -> 0.455 +ddrmn404 remaindernear 0.4555 1 -> 0.4555 +ddrmn405 remaindernear 0.45555 1 -> 0.45555 +ddrmn406 remaindernear 0.455555 1 -> 0.455555 +ddrmn407 remaindernear 0.4555555 1 -> 0.4555555 +ddrmn408 remaindernear 0.45555555 1 -> 0.45555555 +ddrmn409 remaindernear 0.455555555 1 -> 0.455555555 +-- with spill... [412 exercises sticktab loop] +ddrmn411 remaindernear 0.5 1 -> 0.5 +ddrmn412 remaindernear 0.55 1 -> -0.45 +ddrmn413 remaindernear 0.555 1 -> -0.445 +ddrmn414 remaindernear 0.5555 1 -> -0.4445 +ddrmn415 remaindernear 0.55555 1 -> -0.44445 +ddrmn416 remaindernear 0.555555 1 -> -0.444445 +ddrmn417 remaindernear 0.5555555 1 -> -0.4444445 +ddrmn418 remaindernear 0.55555555 1 -> -0.44444445 +ddrmn419 remaindernear 0.555555555 1 -> -0.444444445 + +-- folddowns +ddrmn421 remaindernear 1E+384 1 -> NaN Division_impossible +ddrmn422 remaindernear 1E+384 1E+383 -> 0E+369 Clamped +ddrmn423 remaindernear 1E+384 2E+383 -> 0E+369 Clamped +ddrmn424 remaindernear 1E+384 3E+383 -> 1.00000000000000E+383 Clamped +ddrmn425 remaindernear 1E+384 4E+383 -> 2.00000000000000E+383 Clamped +ddrmn426 remaindernear 1E+384 5E+383 -> 0E+369 Clamped +ddrmn427 remaindernear 1E+384 6E+383 -> -2.00000000000000E+383 Clamped +ddrmn428 remaindernear 1E+384 7E+383 -> 3.00000000000000E+383 Clamped +ddrmn429 remaindernear 1E+384 8E+383 -> 2.00000000000000E+383 Clamped +ddrmn430 remaindernear 1E+384 9E+383 -> 1.00000000000000E+383 Clamped +-- tinies +ddrmn431 remaindernear 1E-397 1E-398 -> 0E-398 +ddrmn432 remaindernear 1E-397 2E-398 -> 0E-398 +ddrmn433 remaindernear 1E-397 3E-398 -> 1E-398 Subnormal +ddrmn434 remaindernear 1E-397 4E-398 -> 2E-398 Subnormal +ddrmn435 remaindernear 1E-397 5E-398 -> 0E-398 +ddrmn436 remaindernear 1E-397 6E-398 -> -2E-398 Subnormal +ddrmn437 remaindernear 1E-397 7E-398 -> 3E-398 Subnormal +ddrmn438 remaindernear 1E-397 8E-398 -> 2E-398 Subnormal +ddrmn439 remaindernear 1E-397 9E-398 -> 1E-398 Subnormal +ddrmn440 remaindernear 1E-397 10E-398 -> 0E-398 +ddrmn441 remaindernear 1E-397 11E-398 -> -1E-398 Subnormal +ddrmn442 remaindernear 100E-397 11E-398 -> -1E-398 Subnormal +ddrmn443 remaindernear 100E-397 20E-398 -> 0E-398 +ddrmn444 remaindernear 100E-397 21E-398 -> -8E-398 Subnormal +ddrmn445 remaindernear 100E-397 30E-398 -> 1.0E-397 Subnormal + +-- zero signs +ddrmn650 remaindernear 1 1 -> 0 +ddrmn651 remaindernear -1 1 -> -0 +ddrmn652 remaindernear 1 -1 -> 0 +ddrmn653 remaindernear -1 -1 -> -0 +ddrmn654 remaindernear 0 1 -> 0 +ddrmn655 remaindernear -0 1 -> -0 +ddrmn656 remaindernear 0 -1 -> 0 +ddrmn657 remaindernear -0 -1 -> -0 +ddrmn658 remaindernear 0.00 1 -> 0.00 +ddrmn659 remaindernear -0.00 1 -> -0.00 + +-- Specials +ddrmn680 remaindernear Inf -Inf -> NaN Invalid_operation +ddrmn681 remaindernear Inf -1000 -> NaN Invalid_operation +ddrmn682 remaindernear Inf -1 -> NaN Invalid_operation +ddrmn683 remaindernear Inf 0 -> NaN Invalid_operation +ddrmn684 remaindernear Inf -0 -> NaN Invalid_operation +ddrmn685 remaindernear Inf 1 -> NaN Invalid_operation +ddrmn686 remaindernear Inf 1000 -> NaN Invalid_operation +ddrmn687 remaindernear Inf Inf -> NaN Invalid_operation +ddrmn688 remaindernear -1000 Inf -> -1000 +ddrmn689 remaindernear -Inf Inf -> NaN Invalid_operation +ddrmn691 remaindernear -1 Inf -> -1 +ddrmn692 remaindernear 0 Inf -> 0 +ddrmn693 remaindernear -0 Inf -> -0 +ddrmn694 remaindernear 1 Inf -> 1 +ddrmn695 remaindernear 1000 Inf -> 1000 +ddrmn696 remaindernear Inf Inf -> NaN Invalid_operation + +ddrmn700 remaindernear -Inf -Inf -> NaN Invalid_operation +ddrmn701 remaindernear -Inf -1000 -> NaN Invalid_operation +ddrmn702 remaindernear -Inf -1 -> NaN Invalid_operation +ddrmn703 remaindernear -Inf -0 -> NaN Invalid_operation +ddrmn704 remaindernear -Inf 0 -> NaN Invalid_operation +ddrmn705 remaindernear -Inf 1 -> NaN Invalid_operation +ddrmn706 remaindernear -Inf 1000 -> NaN Invalid_operation +ddrmn707 remaindernear -Inf Inf -> NaN Invalid_operation +ddrmn708 remaindernear -Inf -Inf -> NaN Invalid_operation +ddrmn709 remaindernear -1000 Inf -> -1000 +ddrmn710 remaindernear -1 -Inf -> -1 +ddrmn711 remaindernear -0 -Inf -> -0 +ddrmn712 remaindernear 0 -Inf -> 0 +ddrmn713 remaindernear 1 -Inf -> 1 +ddrmn714 remaindernear 1000 -Inf -> 1000 +ddrmn715 remaindernear Inf -Inf -> NaN Invalid_operation + +ddrmn721 remaindernear NaN -Inf -> NaN +ddrmn722 remaindernear NaN -1000 -> NaN +ddrmn723 remaindernear NaN -1 -> NaN +ddrmn724 remaindernear NaN -0 -> NaN +ddrmn725 remaindernear -NaN 0 -> -NaN +ddrmn726 remaindernear NaN 1 -> NaN +ddrmn727 remaindernear NaN 1000 -> NaN +ddrmn728 remaindernear NaN Inf -> NaN +ddrmn729 remaindernear NaN -NaN -> NaN +ddrmn730 remaindernear -Inf NaN -> NaN +ddrmn731 remaindernear -1000 NaN -> NaN +ddrmn732 remaindernear -1 NaN -> NaN +ddrmn733 remaindernear -0 -NaN -> -NaN +ddrmn734 remaindernear 0 NaN -> NaN +ddrmn735 remaindernear 1 -NaN -> -NaN +ddrmn736 remaindernear 1000 NaN -> NaN +ddrmn737 remaindernear Inf NaN -> NaN + +ddrmn741 remaindernear sNaN -Inf -> NaN Invalid_operation +ddrmn742 remaindernear sNaN -1000 -> NaN Invalid_operation +ddrmn743 remaindernear -sNaN -1 -> -NaN Invalid_operation +ddrmn744 remaindernear sNaN -0 -> NaN Invalid_operation +ddrmn745 remaindernear sNaN 0 -> NaN Invalid_operation +ddrmn746 remaindernear sNaN 1 -> NaN Invalid_operation +ddrmn747 remaindernear sNaN 1000 -> NaN Invalid_operation +ddrmn749 remaindernear sNaN NaN -> NaN Invalid_operation +ddrmn750 remaindernear sNaN sNaN -> NaN Invalid_operation +ddrmn751 remaindernear NaN sNaN -> NaN Invalid_operation +ddrmn752 remaindernear -Inf sNaN -> NaN Invalid_operation +ddrmn753 remaindernear -1000 sNaN -> NaN Invalid_operation +ddrmn754 remaindernear -1 sNaN -> NaN Invalid_operation +ddrmn755 remaindernear -0 sNaN -> NaN Invalid_operation +ddrmn756 remaindernear 0 sNaN -> NaN Invalid_operation +ddrmn757 remaindernear 1 sNaN -> NaN Invalid_operation +ddrmn758 remaindernear 1000 sNaN -> NaN Invalid_operation +ddrmn759 remaindernear Inf -sNaN -> -NaN Invalid_operation + +-- propaging NaNs +ddrmn760 remaindernear NaN1 NaN7 -> NaN1 +ddrmn761 remaindernear sNaN2 NaN8 -> NaN2 Invalid_operation +ddrmn762 remaindernear NaN3 sNaN9 -> NaN9 Invalid_operation +ddrmn763 remaindernear sNaN4 sNaN10 -> NaN4 Invalid_operation +ddrmn764 remaindernear 15 NaN11 -> NaN11 +ddrmn765 remaindernear NaN6 NaN12 -> NaN6 +ddrmn766 remaindernear Inf NaN13 -> NaN13 +ddrmn767 remaindernear NaN14 -Inf -> NaN14 +ddrmn768 remaindernear 0 NaN15 -> NaN15 +ddrmn769 remaindernear NaN16 -0 -> NaN16 + +-- edge cases of impossible +ddrmn770 remaindernear 1234567890123456 10 -> -4 +ddrmn771 remaindernear 1234567890123456 1 -> 0 +ddrmn772 remaindernear 1234567890123456 0.1 -> NaN Division_impossible +ddrmn773 remaindernear 1234567890123456 0.01 -> NaN Division_impossible + +-- long operand checks +ddrmn801 remaindernear 12345678000 100 -> 0 +ddrmn802 remaindernear 1 12345678000 -> 1 +ddrmn803 remaindernear 1234567800 10 -> 0 +ddrmn804 remaindernear 1 1234567800 -> 1 +ddrmn805 remaindernear 1234567890 10 -> 0 +ddrmn806 remaindernear 1 1234567890 -> 1 +ddrmn807 remaindernear 1234567891 10 -> 1 +ddrmn808 remaindernear 1 1234567891 -> 1 +ddrmn809 remaindernear 12345678901 100 -> 1 +ddrmn810 remaindernear 1 12345678901 -> 1 +ddrmn811 remaindernear 1234567896 10 -> -4 +ddrmn812 remaindernear 1 1234567896 -> 1 + +ddrmn821 remaindernear 12345678000 100 -> 0 +ddrmn822 remaindernear 1 12345678000 -> 1 +ddrmn823 remaindernear 1234567800 10 -> 0 +ddrmn824 remaindernear 1 1234567800 -> 1 +ddrmn825 remaindernear 1234567890 10 -> 0 +ddrmn826 remaindernear 1 1234567890 -> 1 +ddrmn827 remaindernear 1234567891 10 -> 1 +ddrmn828 remaindernear 1 1234567891 -> 1 +ddrmn829 remaindernear 12345678901 100 -> 1 +ddrmn830 remaindernear 1 12345678901 -> 1 +ddrmn831 remaindernear 1234567896 10 -> -4 +ddrmn832 remaindernear 1 1234567896 -> 1 + +-- from divideint +ddrmn840 remaindernear 100000000.0 1 -> 0.0 +ddrmn841 remaindernear 100000000.4 1 -> 0.4 +ddrmn842 remaindernear 100000000.5 1 -> 0.5 +ddrmn843 remaindernear 100000000.9 1 -> -0.1 +ddrmn844 remaindernear 100000000.999 1 -> -0.001 +ddrmn850 remaindernear 100000003 5 -> -2 +ddrmn851 remaindernear 10000003 5 -> -2 +ddrmn852 remaindernear 1000003 5 -> -2 +ddrmn853 remaindernear 100003 5 -> -2 +ddrmn854 remaindernear 10003 5 -> -2 +ddrmn855 remaindernear 1003 5 -> -2 +ddrmn856 remaindernear 103 5 -> -2 +ddrmn857 remaindernear 13 5 -> -2 +ddrmn858 remaindernear 1 5 -> 1 + +-- Vladimir's cases 1234567890123456 +ddrmn860 remaindernear 123.0e1 1000000000000000 -> 1230 +ddrmn861 remaindernear 1230 1000000000000000 -> 1230 +ddrmn862 remaindernear 12.3e2 1000000000000000 -> 1230 +ddrmn863 remaindernear 1.23e3 1000000000000000 -> 1230 +ddrmn864 remaindernear 123e1 1000000000000000 -> 1230 +ddrmn870 remaindernear 123e1 1000000000000000 -> 1230 +ddrmn871 remaindernear 123e1 100000000000000 -> 1230 +ddrmn872 remaindernear 123e1 10000000000000 -> 1230 +ddrmn873 remaindernear 123e1 1000000000000 -> 1230 +ddrmn874 remaindernear 123e1 100000000000 -> 1230 +ddrmn875 remaindernear 123e1 10000000000 -> 1230 +ddrmn876 remaindernear 123e1 1000000000 -> 1230 +ddrmn877 remaindernear 123e1 100000000 -> 1230 +ddrmn878 remaindernear 1230 100000000 -> 1230 +ddrmn879 remaindernear 123e1 10000000 -> 1230 +ddrmn880 remaindernear 123e1 1000000 -> 1230 +ddrmn881 remaindernear 123e1 100000 -> 1230 +ddrmn882 remaindernear 123e1 10000 -> 1230 +ddrmn883 remaindernear 123e1 1000 -> 230 +ddrmn884 remaindernear 123e1 100 -> 30 +ddrmn885 remaindernear 123e1 10 -> 0 +ddrmn886 remaindernear 123e1 1 -> 0 + +ddrmn890 remaindernear 123e1 2000000000000000 -> 1230 +ddrmn891 remaindernear 123e1 200000000000000 -> 1230 +ddrmn892 remaindernear 123e1 20000000000000 -> 1230 +ddrmn893 remaindernear 123e1 2000000000000 -> 1230 +ddrmn894 remaindernear 123e1 200000000000 -> 1230 +ddrmn895 remaindernear 123e1 20000000000 -> 1230 +ddrmn896 remaindernear 123e1 2000000000 -> 1230 +ddrmn897 remaindernear 123e1 200000000 -> 1230 +ddrmn899 remaindernear 123e1 20000000 -> 1230 +ddrmn900 remaindernear 123e1 2000000 -> 1230 +ddrmn901 remaindernear 123e1 200000 -> 1230 +ddrmn902 remaindernear 123e1 20000 -> 1230 +ddrmn903 remaindernear 123e1 2000 -> -770 +ddrmn904 remaindernear 123e1 200 -> 30 +ddrmn905 remaindernear 123e1 20 -> -10 +ddrmn906 remaindernear 123e1 2 -> 0 + +ddrmn910 remaindernear 123e1 5000000000000000 -> 1230 +ddrmn911 remaindernear 123e1 500000000000000 -> 1230 +ddrmn912 remaindernear 123e1 50000000000000 -> 1230 +ddrmn913 remaindernear 123e1 5000000000000 -> 1230 +ddrmn914 remaindernear 123e1 500000000000 -> 1230 +ddrmn915 remaindernear 123e1 50000000000 -> 1230 +ddrmn916 remaindernear 123e1 5000000000 -> 1230 +ddrmn917 remaindernear 123e1 500000000 -> 1230 +ddrmn919 remaindernear 123e1 50000000 -> 1230 +ddrmn920 remaindernear 123e1 5000000 -> 1230 +ddrmn921 remaindernear 123e1 500000 -> 1230 +ddrmn922 remaindernear 123e1 50000 -> 1230 +ddrmn923 remaindernear 123e1 5000 -> 1230 +ddrmn924 remaindernear 123e1 500 -> 230 +ddrmn925 remaindernear 123e1 50 -> -20 +ddrmn926 remaindernear 123e1 5 -> 0 + +ddrmn930 remaindernear 123e1 9000000000000000 -> 1230 +ddrmn931 remaindernear 123e1 900000000000000 -> 1230 +ddrmn932 remaindernear 123e1 90000000000000 -> 1230 +ddrmn933 remaindernear 123e1 9000000000000 -> 1230 +ddrmn934 remaindernear 123e1 900000000000 -> 1230 +ddrmn935 remaindernear 123e1 90000000000 -> 1230 +ddrmn936 remaindernear 123e1 9000000000 -> 1230 +ddrmn937 remaindernear 123e1 900000000 -> 1230 +ddrmn939 remaindernear 123e1 90000000 -> 1230 +ddrmn940 remaindernear 123e1 9000000 -> 1230 +ddrmn941 remaindernear 123e1 900000 -> 1230 +ddrmn942 remaindernear 123e1 90000 -> 1230 +ddrmn943 remaindernear 123e1 9000 -> 1230 +ddrmn944 remaindernear 123e1 900 -> 330 +ddrmn945 remaindernear 123e1 90 -> -30 +ddrmn946 remaindernear 123e1 9 -> -3 + +ddrmn950 remaindernear 123e1 1000000000000000 -> 1230 +ddrmn961 remaindernear 123e1 2999999999999999 -> 1230 +ddrmn962 remaindernear 123e1 3999999999999999 -> 1230 +ddrmn963 remaindernear 123e1 4999999999999999 -> 1230 +ddrmn964 remaindernear 123e1 5999999999999999 -> 1230 +ddrmn965 remaindernear 123e1 6999999999999999 -> 1230 +ddrmn966 remaindernear 123e1 7999999999999999 -> 1230 +ddrmn967 remaindernear 123e1 8999999999999999 -> 1230 +ddrmn968 remaindernear 123e1 9999999999999999 -> 1230 +ddrmn969 remaindernear 123e1 9876543210987654 -> 1230 + +ddrmn980 remaindernear 123e1 1000E299 -> 1.23E+3 -- 123E+1 internally + + +-- overflow and underflow tests [from divide] +ddrmn1051 remaindernear 1e+277 1e-311 -> NaN Division_impossible +ddrmn1052 remaindernear 1e+277 -1e-311 -> NaN Division_impossible +ddrmn1053 remaindernear -1e+277 1e-311 -> NaN Division_impossible +ddrmn1054 remaindernear -1e+277 -1e-311 -> NaN Division_impossible +ddrmn1055 remaindernear 1e-277 1e+311 -> 1E-277 +ddrmn1056 remaindernear 1e-277 -1e+311 -> 1E-277 +ddrmn1057 remaindernear -1e-277 1e+311 -> -1E-277 +ddrmn1058 remaindernear -1e-277 -1e+311 -> -1E-277 + +-- destructive subtract +ddrmn1100 remainderNear 1234567890123456 1.000000000000001 -> -0.234567890123455 +ddrmn1101 remainderNear 1234567890123456 1.00000000000001 -> -0.34567890123444 +ddrmn1102 remainderNear 1234567890123456 1.0000000000001 -> -0.4567890123333 +ddrmn1103 remainderNear 1234567890123455 4.000000000000001 -> -1.308641972530864 +ddrmn1104 remainderNear 1234567890123456 4.000000000000001 -> -0.308641972530864 +ddrmn1115 remainderNear 1234567890123456 4.9999999999999 -> 0.6913578024696 +ddrmn1116 remainderNear 1234567890123456 4.99999999999999 -> -1.53086421975308 +ddrmn1117 remainderNear 1234567890123456 4.999999999999999 -> 1.246913578024691 +ddrmn1118 remainderNear 1234567890123456 5.000000000000001 -> 0.753086421975309 +ddrmn1119 remainderNear 1234567890123456 5.00000000000001 -> -1.46913578024691 +ddrmn1110 remainderNear 1234567890123456 5.0000000000001 -> 1.3086421975314 + +-- Null tests +ddrmn1000 remaindernear 10 # -> NaN Invalid_operation +ddrmn1001 remaindernear # 10 -> NaN Invalid_operation + diff --git a/Lib/test/decimaltestdata/ddRotate.decTest b/Lib/test/decimaltestdata/ddRotate.decTest index 87eeb1c0f1..8b0fe2620d 100644 --- a/Lib/test/decimaltestdata/ddRotate.decTest +++ b/Lib/test/decimaltestdata/ddRotate.decTest @@ -1,262 +1,262 @@ -------------------------------------------------------------------------
--- ddRotate.decTest -- rotate a decDouble coefficient left or right --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
--- Sanity check
-ddrot001 rotate 0 0 -> 0
-ddrot002 rotate 0 2 -> 0
-ddrot003 rotate 1 2 -> 100
-ddrot004 rotate 1 15 -> 1000000000000000
-ddrot005 rotate 1 16 -> 1
-ddrot006 rotate 1 -1 -> 1000000000000000
-ddrot007 rotate 0 -2 -> 0
-ddrot008 rotate 1234567890123456 -1 -> 6123456789012345
-ddrot009 rotate 1234567890123456 -15 -> 2345678901234561
-ddrot010 rotate 1234567890123456 -16 -> 1234567890123456
-ddrot011 rotate 9934567890123456 -15 -> 9345678901234569
-ddrot012 rotate 9934567890123456 -16 -> 9934567890123456
-
--- rhs must be an integer
-ddrot015 rotate 1 1.5 -> NaN Invalid_operation
-ddrot016 rotate 1 1.0 -> NaN Invalid_operation
-ddrot017 rotate 1 0.1 -> NaN Invalid_operation
-ddrot018 rotate 1 0.0 -> NaN Invalid_operation
-ddrot019 rotate 1 1E+1 -> NaN Invalid_operation
-ddrot020 rotate 1 1E+99 -> NaN Invalid_operation
-ddrot021 rotate 1 Inf -> NaN Invalid_operation
-ddrot022 rotate 1 -Inf -> NaN Invalid_operation
--- and |rhs| <= precision
-ddrot025 rotate 1 -1000 -> NaN Invalid_operation
-ddrot026 rotate 1 -17 -> NaN Invalid_operation
-ddrot027 rotate 1 17 -> NaN Invalid_operation
-ddrot028 rotate 1 1000 -> NaN Invalid_operation
-
--- full pattern
-ddrot030 rotate 1234567890123456 -16 -> 1234567890123456
-ddrot031 rotate 1234567890123456 -15 -> 2345678901234561
-ddrot032 rotate 1234567890123456 -14 -> 3456789012345612
-ddrot033 rotate 1234567890123456 -13 -> 4567890123456123
-ddrot034 rotate 1234567890123456 -12 -> 5678901234561234
-ddrot035 rotate 1234567890123456 -11 -> 6789012345612345
-ddrot036 rotate 1234567890123456 -10 -> 7890123456123456
-ddrot037 rotate 1234567890123456 -9 -> 8901234561234567
-ddrot038 rotate 1234567890123456 -8 -> 9012345612345678
-ddrot039 rotate 1234567890123456 -7 -> 123456123456789
-ddrot040 rotate 1234567890123456 -6 -> 1234561234567890
-ddrot041 rotate 1234567890123456 -5 -> 2345612345678901
-ddrot042 rotate 1234567890123456 -4 -> 3456123456789012
-ddrot043 rotate 1234567890123456 -3 -> 4561234567890123
-ddrot044 rotate 1234567890123456 -2 -> 5612345678901234
-ddrot045 rotate 1234567890123456 -1 -> 6123456789012345
-ddrot046 rotate 1234567890123456 -0 -> 1234567890123456
-
-ddrot047 rotate 1234567890123456 +0 -> 1234567890123456
-ddrot048 rotate 1234567890123456 +1 -> 2345678901234561
-ddrot049 rotate 1234567890123456 +2 -> 3456789012345612
-ddrot050 rotate 1234567890123456 +3 -> 4567890123456123
-ddrot051 rotate 1234567890123456 +4 -> 5678901234561234
-ddrot052 rotate 1234567890123456 +5 -> 6789012345612345
-ddrot053 rotate 1234567890123456 +6 -> 7890123456123456
-ddrot054 rotate 1234567890123456 +7 -> 8901234561234567
-ddrot055 rotate 1234567890123456 +8 -> 9012345612345678
-ddrot056 rotate 1234567890123456 +9 -> 123456123456789
-ddrot057 rotate 1234567890123456 +10 -> 1234561234567890
-ddrot058 rotate 1234567890123456 +11 -> 2345612345678901
-ddrot059 rotate 1234567890123456 +12 -> 3456123456789012
-ddrot060 rotate 1234567890123456 +13 -> 4561234567890123
-ddrot061 rotate 1234567890123456 +14 -> 5612345678901234
-ddrot062 rotate 1234567890123456 +15 -> 6123456789012345
-ddrot063 rotate 1234567890123456 +16 -> 1234567890123456
-
--- zeros
-ddrot070 rotate 0E-10 +9 -> 0E-10
-ddrot071 rotate 0E-10 -9 -> 0E-10
-ddrot072 rotate 0.000 +9 -> 0.000
-ddrot073 rotate 0.000 -9 -> 0.000
-ddrot074 rotate 0E+10 +9 -> 0E+10
-ddrot075 rotate 0E+10 -9 -> 0E+10
-ddrot076 rotate -0E-10 +9 -> -0E-10
-ddrot077 rotate -0E-10 -9 -> -0E-10
-ddrot078 rotate -0.000 +9 -> -0.000
-ddrot079 rotate -0.000 -9 -> -0.000
-ddrot080 rotate -0E+10 +9 -> -0E+10
-ddrot081 rotate -0E+10 -9 -> -0E+10
-
--- Nmax, Nmin, Ntiny
-ddrot141 rotate 9.999999999999999E+384 -1 -> 9.999999999999999E+384
-ddrot142 rotate 9.999999999999999E+384 -15 -> 9.999999999999999E+384
-ddrot143 rotate 9.999999999999999E+384 1 -> 9.999999999999999E+384
-ddrot144 rotate 9.999999999999999E+384 15 -> 9.999999999999999E+384
-ddrot145 rotate 1E-383 -1 -> 1.000000000000000E-368
-ddrot146 rotate 1E-383 -15 -> 1.0E-382
-ddrot147 rotate 1E-383 1 -> 1.0E-382
-ddrot148 rotate 1E-383 15 -> 1.000000000000000E-368
-ddrot151 rotate 1.000000000000000E-383 -1 -> 1.00000000000000E-384
-ddrot152 rotate 1.000000000000000E-383 -15 -> 1E-398
-ddrot153 rotate 1.000000000000000E-383 1 -> 1E-398
-ddrot154 rotate 1.000000000000000E-383 15 -> 1.00000000000000E-384
-ddrot155 rotate 9.000000000000000E-383 -1 -> 9.00000000000000E-384
-ddrot156 rotate 9.000000000000000E-383 -15 -> 9E-398
-ddrot157 rotate 9.000000000000000E-383 1 -> 9E-398
-ddrot158 rotate 9.000000000000000E-383 15 -> 9.00000000000000E-384
-ddrot160 rotate 1E-398 -1 -> 1.000000000000000E-383
-ddrot161 rotate 1E-398 -15 -> 1.0E-397
-ddrot162 rotate 1E-398 1 -> 1.0E-397
-ddrot163 rotate 1E-398 15 -> 1.000000000000000E-383
--- negatives
-ddrot171 rotate -9.999999999999999E+384 -1 -> -9.999999999999999E+384
-ddrot172 rotate -9.999999999999999E+384 -15 -> -9.999999999999999E+384
-ddrot173 rotate -9.999999999999999E+384 1 -> -9.999999999999999E+384
-ddrot174 rotate -9.999999999999999E+384 15 -> -9.999999999999999E+384
-ddrot175 rotate -1E-383 -1 -> -1.000000000000000E-368
-ddrot176 rotate -1E-383 -15 -> -1.0E-382
-ddrot177 rotate -1E-383 1 -> -1.0E-382
-ddrot178 rotate -1E-383 15 -> -1.000000000000000E-368
-ddrot181 rotate -1.000000000000000E-383 -1 -> -1.00000000000000E-384
-ddrot182 rotate -1.000000000000000E-383 -15 -> -1E-398
-ddrot183 rotate -1.000000000000000E-383 1 -> -1E-398
-ddrot184 rotate -1.000000000000000E-383 15 -> -1.00000000000000E-384
-ddrot185 rotate -9.000000000000000E-383 -1 -> -9.00000000000000E-384
-ddrot186 rotate -9.000000000000000E-383 -15 -> -9E-398
-ddrot187 rotate -9.000000000000000E-383 1 -> -9E-398
-ddrot188 rotate -9.000000000000000E-383 15 -> -9.00000000000000E-384
-ddrot190 rotate -1E-398 -1 -> -1.000000000000000E-383
-ddrot191 rotate -1E-398 -15 -> -1.0E-397
-ddrot192 rotate -1E-398 1 -> -1.0E-397
-ddrot193 rotate -1E-398 15 -> -1.000000000000000E-383
-
--- more negatives (of sanities)
-ddrot201 rotate -0 0 -> -0
-ddrot202 rotate -0 2 -> -0
-ddrot203 rotate -1 2 -> -100
-ddrot204 rotate -1 15 -> -1000000000000000
-ddrot205 rotate -1 16 -> -1
-ddrot206 rotate -1 -1 -> -1000000000000000
-ddrot207 rotate -0 -2 -> -0
-ddrot208 rotate -1234567890123456 -1 -> -6123456789012345
-ddrot209 rotate -1234567890123456 -15 -> -2345678901234561
-ddrot210 rotate -1234567890123456 -16 -> -1234567890123456
-ddrot211 rotate -9934567890123456 -15 -> -9345678901234569
-ddrot212 rotate -9934567890123456 -16 -> -9934567890123456
-
-
--- Specials; NaNs are handled as usual
-ddrot781 rotate -Inf -8 -> -Infinity
-ddrot782 rotate -Inf -1 -> -Infinity
-ddrot783 rotate -Inf -0 -> -Infinity
-ddrot784 rotate -Inf 0 -> -Infinity
-ddrot785 rotate -Inf 1 -> -Infinity
-ddrot786 rotate -Inf 8 -> -Infinity
-ddrot787 rotate -1000 -Inf -> NaN Invalid_operation
-ddrot788 rotate -Inf -Inf -> NaN Invalid_operation
-ddrot789 rotate -1 -Inf -> NaN Invalid_operation
-ddrot790 rotate -0 -Inf -> NaN Invalid_operation
-ddrot791 rotate 0 -Inf -> NaN Invalid_operation
-ddrot792 rotate 1 -Inf -> NaN Invalid_operation
-ddrot793 rotate 1000 -Inf -> NaN Invalid_operation
-ddrot794 rotate Inf -Inf -> NaN Invalid_operation
-
-ddrot800 rotate Inf -Inf -> NaN Invalid_operation
-ddrot801 rotate Inf -8 -> Infinity
-ddrot802 rotate Inf -1 -> Infinity
-ddrot803 rotate Inf -0 -> Infinity
-ddrot804 rotate Inf 0 -> Infinity
-ddrot805 rotate Inf 1 -> Infinity
-ddrot806 rotate Inf 8 -> Infinity
-ddrot807 rotate Inf Inf -> NaN Invalid_operation
-ddrot808 rotate -1000 Inf -> NaN Invalid_operation
-ddrot809 rotate -Inf Inf -> NaN Invalid_operation
-ddrot810 rotate -1 Inf -> NaN Invalid_operation
-ddrot811 rotate -0 Inf -> NaN Invalid_operation
-ddrot812 rotate 0 Inf -> NaN Invalid_operation
-ddrot813 rotate 1 Inf -> NaN Invalid_operation
-ddrot814 rotate 1000 Inf -> NaN Invalid_operation
-ddrot815 rotate Inf Inf -> NaN Invalid_operation
-
-ddrot821 rotate NaN -Inf -> NaN
-ddrot822 rotate NaN -1000 -> NaN
-ddrot823 rotate NaN -1 -> NaN
-ddrot824 rotate NaN -0 -> NaN
-ddrot825 rotate NaN 0 -> NaN
-ddrot826 rotate NaN 1 -> NaN
-ddrot827 rotate NaN 1000 -> NaN
-ddrot828 rotate NaN Inf -> NaN
-ddrot829 rotate NaN NaN -> NaN
-ddrot830 rotate -Inf NaN -> NaN
-ddrot831 rotate -1000 NaN -> NaN
-ddrot832 rotate -1 NaN -> NaN
-ddrot833 rotate -0 NaN -> NaN
-ddrot834 rotate 0 NaN -> NaN
-ddrot835 rotate 1 NaN -> NaN
-ddrot836 rotate 1000 NaN -> NaN
-ddrot837 rotate Inf NaN -> NaN
-
-ddrot841 rotate sNaN -Inf -> NaN Invalid_operation
-ddrot842 rotate sNaN -1000 -> NaN Invalid_operation
-ddrot843 rotate sNaN -1 -> NaN Invalid_operation
-ddrot844 rotate sNaN -0 -> NaN Invalid_operation
-ddrot845 rotate sNaN 0 -> NaN Invalid_operation
-ddrot846 rotate sNaN 1 -> NaN Invalid_operation
-ddrot847 rotate sNaN 1000 -> NaN Invalid_operation
-ddrot848 rotate sNaN NaN -> NaN Invalid_operation
-ddrot849 rotate sNaN sNaN -> NaN Invalid_operation
-ddrot850 rotate NaN sNaN -> NaN Invalid_operation
-ddrot851 rotate -Inf sNaN -> NaN Invalid_operation
-ddrot852 rotate -1000 sNaN -> NaN Invalid_operation
-ddrot853 rotate -1 sNaN -> NaN Invalid_operation
-ddrot854 rotate -0 sNaN -> NaN Invalid_operation
-ddrot855 rotate 0 sNaN -> NaN Invalid_operation
-ddrot856 rotate 1 sNaN -> NaN Invalid_operation
-ddrot857 rotate 1000 sNaN -> NaN Invalid_operation
-ddrot858 rotate Inf sNaN -> NaN Invalid_operation
-ddrot859 rotate NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-ddrot861 rotate NaN1 -Inf -> NaN1
-ddrot862 rotate +NaN2 -1000 -> NaN2
-ddrot863 rotate NaN3 1000 -> NaN3
-ddrot864 rotate NaN4 Inf -> NaN4
-ddrot865 rotate NaN5 +NaN6 -> NaN5
-ddrot866 rotate -Inf NaN7 -> NaN7
-ddrot867 rotate -1000 NaN8 -> NaN8
-ddrot868 rotate 1000 NaN9 -> NaN9
-ddrot869 rotate Inf +NaN10 -> NaN10
-ddrot871 rotate sNaN11 -Inf -> NaN11 Invalid_operation
-ddrot872 rotate sNaN12 -1000 -> NaN12 Invalid_operation
-ddrot873 rotate sNaN13 1000 -> NaN13 Invalid_operation
-ddrot874 rotate sNaN14 NaN17 -> NaN14 Invalid_operation
-ddrot875 rotate sNaN15 sNaN18 -> NaN15 Invalid_operation
-ddrot876 rotate NaN16 sNaN19 -> NaN19 Invalid_operation
-ddrot877 rotate -Inf +sNaN20 -> NaN20 Invalid_operation
-ddrot878 rotate -1000 sNaN21 -> NaN21 Invalid_operation
-ddrot879 rotate 1000 sNaN22 -> NaN22 Invalid_operation
-ddrot880 rotate Inf sNaN23 -> NaN23 Invalid_operation
-ddrot881 rotate +NaN25 +sNaN24 -> NaN24 Invalid_operation
-ddrot882 rotate -NaN26 NaN28 -> -NaN26
-ddrot883 rotate -sNaN27 sNaN29 -> -NaN27 Invalid_operation
-ddrot884 rotate 1000 -NaN30 -> -NaN30
-ddrot885 rotate 1000 -sNaN31 -> -NaN31 Invalid_operation
+------------------------------------------------------------------------ +-- ddRotate.decTest -- rotate a decDouble coefficient left or right -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +-- Sanity check +ddrot001 rotate 0 0 -> 0 +ddrot002 rotate 0 2 -> 0 +ddrot003 rotate 1 2 -> 100 +ddrot004 rotate 1 15 -> 1000000000000000 +ddrot005 rotate 1 16 -> 1 +ddrot006 rotate 1 -1 -> 1000000000000000 +ddrot007 rotate 0 -2 -> 0 +ddrot008 rotate 1234567890123456 -1 -> 6123456789012345 +ddrot009 rotate 1234567890123456 -15 -> 2345678901234561 +ddrot010 rotate 1234567890123456 -16 -> 1234567890123456 +ddrot011 rotate 9934567890123456 -15 -> 9345678901234569 +ddrot012 rotate 9934567890123456 -16 -> 9934567890123456 + +-- rhs must be an integer +ddrot015 rotate 1 1.5 -> NaN Invalid_operation +ddrot016 rotate 1 1.0 -> NaN Invalid_operation +ddrot017 rotate 1 0.1 -> NaN Invalid_operation +ddrot018 rotate 1 0.0 -> NaN Invalid_operation +ddrot019 rotate 1 1E+1 -> NaN Invalid_operation +ddrot020 rotate 1 1E+99 -> NaN Invalid_operation +ddrot021 rotate 1 Inf -> NaN Invalid_operation +ddrot022 rotate 1 -Inf -> NaN Invalid_operation +-- and |rhs| <= precision +ddrot025 rotate 1 -1000 -> NaN Invalid_operation +ddrot026 rotate 1 -17 -> NaN Invalid_operation +ddrot027 rotate 1 17 -> NaN Invalid_operation +ddrot028 rotate 1 1000 -> NaN Invalid_operation + +-- full pattern +ddrot030 rotate 1234567890123456 -16 -> 1234567890123456 +ddrot031 rotate 1234567890123456 -15 -> 2345678901234561 +ddrot032 rotate 1234567890123456 -14 -> 3456789012345612 +ddrot033 rotate 1234567890123456 -13 -> 4567890123456123 +ddrot034 rotate 1234567890123456 -12 -> 5678901234561234 +ddrot035 rotate 1234567890123456 -11 -> 6789012345612345 +ddrot036 rotate 1234567890123456 -10 -> 7890123456123456 +ddrot037 rotate 1234567890123456 -9 -> 8901234561234567 +ddrot038 rotate 1234567890123456 -8 -> 9012345612345678 +ddrot039 rotate 1234567890123456 -7 -> 123456123456789 +ddrot040 rotate 1234567890123456 -6 -> 1234561234567890 +ddrot041 rotate 1234567890123456 -5 -> 2345612345678901 +ddrot042 rotate 1234567890123456 -4 -> 3456123456789012 +ddrot043 rotate 1234567890123456 -3 -> 4561234567890123 +ddrot044 rotate 1234567890123456 -2 -> 5612345678901234 +ddrot045 rotate 1234567890123456 -1 -> 6123456789012345 +ddrot046 rotate 1234567890123456 -0 -> 1234567890123456 + +ddrot047 rotate 1234567890123456 +0 -> 1234567890123456 +ddrot048 rotate 1234567890123456 +1 -> 2345678901234561 +ddrot049 rotate 1234567890123456 +2 -> 3456789012345612 +ddrot050 rotate 1234567890123456 +3 -> 4567890123456123 +ddrot051 rotate 1234567890123456 +4 -> 5678901234561234 +ddrot052 rotate 1234567890123456 +5 -> 6789012345612345 +ddrot053 rotate 1234567890123456 +6 -> 7890123456123456 +ddrot054 rotate 1234567890123456 +7 -> 8901234561234567 +ddrot055 rotate 1234567890123456 +8 -> 9012345612345678 +ddrot056 rotate 1234567890123456 +9 -> 123456123456789 +ddrot057 rotate 1234567890123456 +10 -> 1234561234567890 +ddrot058 rotate 1234567890123456 +11 -> 2345612345678901 +ddrot059 rotate 1234567890123456 +12 -> 3456123456789012 +ddrot060 rotate 1234567890123456 +13 -> 4561234567890123 +ddrot061 rotate 1234567890123456 +14 -> 5612345678901234 +ddrot062 rotate 1234567890123456 +15 -> 6123456789012345 +ddrot063 rotate 1234567890123456 +16 -> 1234567890123456 + +-- zeros +ddrot070 rotate 0E-10 +9 -> 0E-10 +ddrot071 rotate 0E-10 -9 -> 0E-10 +ddrot072 rotate 0.000 +9 -> 0.000 +ddrot073 rotate 0.000 -9 -> 0.000 +ddrot074 rotate 0E+10 +9 -> 0E+10 +ddrot075 rotate 0E+10 -9 -> 0E+10 +ddrot076 rotate -0E-10 +9 -> -0E-10 +ddrot077 rotate -0E-10 -9 -> -0E-10 +ddrot078 rotate -0.000 +9 -> -0.000 +ddrot079 rotate -0.000 -9 -> -0.000 +ddrot080 rotate -0E+10 +9 -> -0E+10 +ddrot081 rotate -0E+10 -9 -> -0E+10 + +-- Nmax, Nmin, Ntiny +ddrot141 rotate 9.999999999999999E+384 -1 -> 9.999999999999999E+384 +ddrot142 rotate 9.999999999999999E+384 -15 -> 9.999999999999999E+384 +ddrot143 rotate 9.999999999999999E+384 1 -> 9.999999999999999E+384 +ddrot144 rotate 9.999999999999999E+384 15 -> 9.999999999999999E+384 +ddrot145 rotate 1E-383 -1 -> 1.000000000000000E-368 +ddrot146 rotate 1E-383 -15 -> 1.0E-382 +ddrot147 rotate 1E-383 1 -> 1.0E-382 +ddrot148 rotate 1E-383 15 -> 1.000000000000000E-368 +ddrot151 rotate 1.000000000000000E-383 -1 -> 1.00000000000000E-384 +ddrot152 rotate 1.000000000000000E-383 -15 -> 1E-398 +ddrot153 rotate 1.000000000000000E-383 1 -> 1E-398 +ddrot154 rotate 1.000000000000000E-383 15 -> 1.00000000000000E-384 +ddrot155 rotate 9.000000000000000E-383 -1 -> 9.00000000000000E-384 +ddrot156 rotate 9.000000000000000E-383 -15 -> 9E-398 +ddrot157 rotate 9.000000000000000E-383 1 -> 9E-398 +ddrot158 rotate 9.000000000000000E-383 15 -> 9.00000000000000E-384 +ddrot160 rotate 1E-398 -1 -> 1.000000000000000E-383 +ddrot161 rotate 1E-398 -15 -> 1.0E-397 +ddrot162 rotate 1E-398 1 -> 1.0E-397 +ddrot163 rotate 1E-398 15 -> 1.000000000000000E-383 +-- negatives +ddrot171 rotate -9.999999999999999E+384 -1 -> -9.999999999999999E+384 +ddrot172 rotate -9.999999999999999E+384 -15 -> -9.999999999999999E+384 +ddrot173 rotate -9.999999999999999E+384 1 -> -9.999999999999999E+384 +ddrot174 rotate -9.999999999999999E+384 15 -> -9.999999999999999E+384 +ddrot175 rotate -1E-383 -1 -> -1.000000000000000E-368 +ddrot176 rotate -1E-383 -15 -> -1.0E-382 +ddrot177 rotate -1E-383 1 -> -1.0E-382 +ddrot178 rotate -1E-383 15 -> -1.000000000000000E-368 +ddrot181 rotate -1.000000000000000E-383 -1 -> -1.00000000000000E-384 +ddrot182 rotate -1.000000000000000E-383 -15 -> -1E-398 +ddrot183 rotate -1.000000000000000E-383 1 -> -1E-398 +ddrot184 rotate -1.000000000000000E-383 15 -> -1.00000000000000E-384 +ddrot185 rotate -9.000000000000000E-383 -1 -> -9.00000000000000E-384 +ddrot186 rotate -9.000000000000000E-383 -15 -> -9E-398 +ddrot187 rotate -9.000000000000000E-383 1 -> -9E-398 +ddrot188 rotate -9.000000000000000E-383 15 -> -9.00000000000000E-384 +ddrot190 rotate -1E-398 -1 -> -1.000000000000000E-383 +ddrot191 rotate -1E-398 -15 -> -1.0E-397 +ddrot192 rotate -1E-398 1 -> -1.0E-397 +ddrot193 rotate -1E-398 15 -> -1.000000000000000E-383 + +-- more negatives (of sanities) +ddrot201 rotate -0 0 -> -0 +ddrot202 rotate -0 2 -> -0 +ddrot203 rotate -1 2 -> -100 +ddrot204 rotate -1 15 -> -1000000000000000 +ddrot205 rotate -1 16 -> -1 +ddrot206 rotate -1 -1 -> -1000000000000000 +ddrot207 rotate -0 -2 -> -0 +ddrot208 rotate -1234567890123456 -1 -> -6123456789012345 +ddrot209 rotate -1234567890123456 -15 -> -2345678901234561 +ddrot210 rotate -1234567890123456 -16 -> -1234567890123456 +ddrot211 rotate -9934567890123456 -15 -> -9345678901234569 +ddrot212 rotate -9934567890123456 -16 -> -9934567890123456 + + +-- Specials; NaNs are handled as usual +ddrot781 rotate -Inf -8 -> -Infinity +ddrot782 rotate -Inf -1 -> -Infinity +ddrot783 rotate -Inf -0 -> -Infinity +ddrot784 rotate -Inf 0 -> -Infinity +ddrot785 rotate -Inf 1 -> -Infinity +ddrot786 rotate -Inf 8 -> -Infinity +ddrot787 rotate -1000 -Inf -> NaN Invalid_operation +ddrot788 rotate -Inf -Inf -> NaN Invalid_operation +ddrot789 rotate -1 -Inf -> NaN Invalid_operation +ddrot790 rotate -0 -Inf -> NaN Invalid_operation +ddrot791 rotate 0 -Inf -> NaN Invalid_operation +ddrot792 rotate 1 -Inf -> NaN Invalid_operation +ddrot793 rotate 1000 -Inf -> NaN Invalid_operation +ddrot794 rotate Inf -Inf -> NaN Invalid_operation + +ddrot800 rotate Inf -Inf -> NaN Invalid_operation +ddrot801 rotate Inf -8 -> Infinity +ddrot802 rotate Inf -1 -> Infinity +ddrot803 rotate Inf -0 -> Infinity +ddrot804 rotate Inf 0 -> Infinity +ddrot805 rotate Inf 1 -> Infinity +ddrot806 rotate Inf 8 -> Infinity +ddrot807 rotate Inf Inf -> NaN Invalid_operation +ddrot808 rotate -1000 Inf -> NaN Invalid_operation +ddrot809 rotate -Inf Inf -> NaN Invalid_operation +ddrot810 rotate -1 Inf -> NaN Invalid_operation +ddrot811 rotate -0 Inf -> NaN Invalid_operation +ddrot812 rotate 0 Inf -> NaN Invalid_operation +ddrot813 rotate 1 Inf -> NaN Invalid_operation +ddrot814 rotate 1000 Inf -> NaN Invalid_operation +ddrot815 rotate Inf Inf -> NaN Invalid_operation + +ddrot821 rotate NaN -Inf -> NaN +ddrot822 rotate NaN -1000 -> NaN +ddrot823 rotate NaN -1 -> NaN +ddrot824 rotate NaN -0 -> NaN +ddrot825 rotate NaN 0 -> NaN +ddrot826 rotate NaN 1 -> NaN +ddrot827 rotate NaN 1000 -> NaN +ddrot828 rotate NaN Inf -> NaN +ddrot829 rotate NaN NaN -> NaN +ddrot830 rotate -Inf NaN -> NaN +ddrot831 rotate -1000 NaN -> NaN +ddrot832 rotate -1 NaN -> NaN +ddrot833 rotate -0 NaN -> NaN +ddrot834 rotate 0 NaN -> NaN +ddrot835 rotate 1 NaN -> NaN +ddrot836 rotate 1000 NaN -> NaN +ddrot837 rotate Inf NaN -> NaN + +ddrot841 rotate sNaN -Inf -> NaN Invalid_operation +ddrot842 rotate sNaN -1000 -> NaN Invalid_operation +ddrot843 rotate sNaN -1 -> NaN Invalid_operation +ddrot844 rotate sNaN -0 -> NaN Invalid_operation +ddrot845 rotate sNaN 0 -> NaN Invalid_operation +ddrot846 rotate sNaN 1 -> NaN Invalid_operation +ddrot847 rotate sNaN 1000 -> NaN Invalid_operation +ddrot848 rotate sNaN NaN -> NaN Invalid_operation +ddrot849 rotate sNaN sNaN -> NaN Invalid_operation +ddrot850 rotate NaN sNaN -> NaN Invalid_operation +ddrot851 rotate -Inf sNaN -> NaN Invalid_operation +ddrot852 rotate -1000 sNaN -> NaN Invalid_operation +ddrot853 rotate -1 sNaN -> NaN Invalid_operation +ddrot854 rotate -0 sNaN -> NaN Invalid_operation +ddrot855 rotate 0 sNaN -> NaN Invalid_operation +ddrot856 rotate 1 sNaN -> NaN Invalid_operation +ddrot857 rotate 1000 sNaN -> NaN Invalid_operation +ddrot858 rotate Inf sNaN -> NaN Invalid_operation +ddrot859 rotate NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +ddrot861 rotate NaN1 -Inf -> NaN1 +ddrot862 rotate +NaN2 -1000 -> NaN2 +ddrot863 rotate NaN3 1000 -> NaN3 +ddrot864 rotate NaN4 Inf -> NaN4 +ddrot865 rotate NaN5 +NaN6 -> NaN5 +ddrot866 rotate -Inf NaN7 -> NaN7 +ddrot867 rotate -1000 NaN8 -> NaN8 +ddrot868 rotate 1000 NaN9 -> NaN9 +ddrot869 rotate Inf +NaN10 -> NaN10 +ddrot871 rotate sNaN11 -Inf -> NaN11 Invalid_operation +ddrot872 rotate sNaN12 -1000 -> NaN12 Invalid_operation +ddrot873 rotate sNaN13 1000 -> NaN13 Invalid_operation +ddrot874 rotate sNaN14 NaN17 -> NaN14 Invalid_operation +ddrot875 rotate sNaN15 sNaN18 -> NaN15 Invalid_operation +ddrot876 rotate NaN16 sNaN19 -> NaN19 Invalid_operation +ddrot877 rotate -Inf +sNaN20 -> NaN20 Invalid_operation +ddrot878 rotate -1000 sNaN21 -> NaN21 Invalid_operation +ddrot879 rotate 1000 sNaN22 -> NaN22 Invalid_operation +ddrot880 rotate Inf sNaN23 -> NaN23 Invalid_operation +ddrot881 rotate +NaN25 +sNaN24 -> NaN24 Invalid_operation +ddrot882 rotate -NaN26 NaN28 -> -NaN26 +ddrot883 rotate -sNaN27 sNaN29 -> -NaN27 Invalid_operation +ddrot884 rotate 1000 -NaN30 -> -NaN30 +ddrot885 rotate 1000 -sNaN31 -> -NaN31 Invalid_operation diff --git a/Lib/test/decimaltestdata/ddSameQuantum.decTest b/Lib/test/decimaltestdata/ddSameQuantum.decTest index 54a763cccf..465b36a858 100644 --- a/Lib/test/decimaltestdata/ddSameQuantum.decTest +++ b/Lib/test/decimaltestdata/ddSameQuantum.decTest @@ -1,389 +1,389 @@ -------------------------------------------------------------------------
--- ddSameQuantum.decTest -- check decDouble quantums match --
--- Copyright (c) IBM Corporation, 2001, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- All operands and results are decDoubles.
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
-ddsamq001 samequantum 0 0 -> 1
-ddsamq002 samequantum 0 1 -> 1
-ddsamq003 samequantum 1 0 -> 1
-ddsamq004 samequantum 1 1 -> 1
-
-ddsamq011 samequantum 10 1E+1 -> 0
-ddsamq012 samequantum 10E+1 10E+1 -> 1
-ddsamq013 samequantum 100 10E+1 -> 0
-ddsamq014 samequantum 100 1E+2 -> 0
-ddsamq015 samequantum 0.1 1E-2 -> 0
-ddsamq016 samequantum 0.1 1E-1 -> 1
-ddsamq017 samequantum 0.1 1E-0 -> 0
-ddsamq018 samequantum 999 999 -> 1
-ddsamq019 samequantum 999E-1 99.9 -> 1
-ddsamq020 samequantum 111E-1 22.2 -> 1
-ddsamq021 samequantum 111E-1 1234.2 -> 1
-
--- zeros
-ddsamq030 samequantum 0.0 1.1 -> 1
-ddsamq031 samequantum 0.0 1.11 -> 0
-ddsamq032 samequantum 0.0 0 -> 0
-ddsamq033 samequantum 0.0 0.0 -> 1
-ddsamq034 samequantum 0.0 0.00 -> 0
-ddsamq035 samequantum 0E+1 0E+0 -> 0
-ddsamq036 samequantum 0E+1 0E+1 -> 1
-ddsamq037 samequantum 0E+1 0E+2 -> 0
-ddsamq038 samequantum 0E-17 0E-16 -> 0
-ddsamq039 samequantum 0E-17 0E-17 -> 1
-ddsamq040 samequantum 0E-17 0E-18 -> 0
-ddsamq041 samequantum 0E-17 0.0E-15 -> 0
-ddsamq042 samequantum 0E-17 0.0E-16 -> 1
-ddsamq043 samequantum 0E-17 0.0E-17 -> 0
-ddsamq044 samequantum -0E-17 0.0E-16 -> 1
-ddsamq045 samequantum 0E-17 -0.0E-17 -> 0
-ddsamq046 samequantum 0E-17 -0.0E-16 -> 1
-ddsamq047 samequantum -0E-17 0.0E-17 -> 0
-ddsamq048 samequantum -0E-17 -0.0E-16 -> 1
-ddsamq049 samequantum -0E-17 -0.0E-17 -> 0
-
--- Nmax, Nmin, Ntiny
-ddsamq051 samequantum 9.999999999999999E+384 9.999999999999999E+384 -> 1
-ddsamq052 samequantum 1E-383 1E-383 -> 1
-ddsamq053 samequantum 1.000000000000000E-383 1.000000000000000E-383 -> 1
-ddsamq054 samequantum 1E-398 1E-398 -> 1
-ddsamq055 samequantum 9.999999999999999E+384 9.999999999999999E+384 -> 1
-ddsamq056 samequantum 1E-383 1E-383 -> 1
-ddsamq057 samequantum 1.000000000000000E-383 1.000000000000000E-383 -> 1
-ddsamq058 samequantum 1E-398 1E-398 -> 1
-
-ddsamq061 samequantum -1E-398 -1E-398 -> 1
-ddsamq062 samequantum -1.000000000000000E-383 -1.000000000000000E-383 -> 1
-ddsamq063 samequantum -1E-383 -1E-383 -> 1
-ddsamq064 samequantum -9.999999999999999E+384 -9.999999999999999E+384 -> 1
-ddsamq065 samequantum -1E-398 -1E-398 -> 1
-ddsamq066 samequantum -1.000000000000000E-383 -1.000000000000000E-383 -> 1
-ddsamq067 samequantum -1E-383 -1E-383 -> 1
-ddsamq068 samequantum -9.999999999999999E+384 -9.999999999999999E+384 -> 1
-
-ddsamq071 samequantum -4E-398 -1E-398 -> 1
-ddsamq072 samequantum -4.000000000000000E-383 -1.000040000000000E-383 -> 1
-ddsamq073 samequantum -4E-383 -1E-383 -> 1
-ddsamq074 samequantum -4.999999999999999E+384 -9.999999999949999E+384 -> 1
-ddsamq075 samequantum -4E-398 -1E-398 -> 1
-ddsamq076 samequantum -4.000000000000000E-383 -1.004000000000000E-383 -> 1
-ddsamq077 samequantum -4E-383 -1E-383 -> 1
-ddsamq078 samequantum -4.999999999999999E+384 -9.949999999999999E+384 -> 1
-
-ddsamq081 samequantum -4E-397 -1E-398 -> 0
-ddsamq082 samequantum -4.000000000000000E-383 -1.000040000000000E-336 -> 0
-ddsamq083 samequantum -4E-346 -1E-383 -> 0
-ddsamq084 samequantum -4.999999999999999E+384 -9.999499999999999E+336 -> 0
-ddsamq085 samequantum -4E-397 -1E-398 -> 0
-ddsamq086 samequantum -4.000000000000000E-383 -1.004000000000000E-336 -> 0
-ddsamq087 samequantum -4E-346 -1E-383 -> 0
-ddsamq088 samequantum -4.999999999999999E+384 -9.949999999999999E+336 -> 0
-
--- specials & combinations
-ddsamq0110 samequantum -Inf -Inf -> 1
-ddsamq0111 samequantum -Inf Inf -> 1
-ddsamq0112 samequantum -Inf NaN -> 0
-ddsamq0113 samequantum -Inf -7E+3 -> 0
-ddsamq0114 samequantum -Inf -7 -> 0
-ddsamq0115 samequantum -Inf -7E-3 -> 0
-ddsamq0116 samequantum -Inf -0E-3 -> 0
-ddsamq0117 samequantum -Inf -0 -> 0
-ddsamq0118 samequantum -Inf -0E+3 -> 0
-ddsamq0119 samequantum -Inf 0E-3 -> 0
-ddsamq0120 samequantum -Inf 0 -> 0
-ddsamq0121 samequantum -Inf 0E+3 -> 0
-ddsamq0122 samequantum -Inf 7E-3 -> 0
-ddsamq0123 samequantum -Inf 7 -> 0
-ddsamq0124 samequantum -Inf 7E+3 -> 0
-ddsamq0125 samequantum -Inf sNaN -> 0
-
-ddsamq0210 samequantum Inf -Inf -> 1
-ddsamq0211 samequantum Inf Inf -> 1
-ddsamq0212 samequantum Inf NaN -> 0
-ddsamq0213 samequantum Inf -7E+3 -> 0
-ddsamq0214 samequantum Inf -7 -> 0
-ddsamq0215 samequantum Inf -7E-3 -> 0
-ddsamq0216 samequantum Inf -0E-3 -> 0
-ddsamq0217 samequantum Inf -0 -> 0
-ddsamq0218 samequantum Inf -0E+3 -> 0
-ddsamq0219 samequantum Inf 0E-3 -> 0
-ddsamq0220 samequantum Inf 0 -> 0
-ddsamq0221 samequantum Inf 0E+3 -> 0
-ddsamq0222 samequantum Inf 7E-3 -> 0
-ddsamq0223 samequantum Inf 7 -> 0
-ddsamq0224 samequantum Inf 7E+3 -> 0
-ddsamq0225 samequantum Inf sNaN -> 0
-
-ddsamq0310 samequantum NaN -Inf -> 0
-ddsamq0311 samequantum NaN Inf -> 0
-ddsamq0312 samequantum NaN NaN -> 1
-ddsamq0313 samequantum NaN -7E+3 -> 0
-ddsamq0314 samequantum NaN -7 -> 0
-ddsamq0315 samequantum NaN -7E-3 -> 0
-ddsamq0316 samequantum NaN -0E-3 -> 0
-ddsamq0317 samequantum NaN -0 -> 0
-ddsamq0318 samequantum NaN -0E+3 -> 0
-ddsamq0319 samequantum NaN 0E-3 -> 0
-ddsamq0320 samequantum NaN 0 -> 0
-ddsamq0321 samequantum NaN 0E+3 -> 0
-ddsamq0322 samequantum NaN 7E-3 -> 0
-ddsamq0323 samequantum NaN 7 -> 0
-ddsamq0324 samequantum NaN 7E+3 -> 0
-ddsamq0325 samequantum NaN sNaN -> 1
-
-ddsamq0410 samequantum -7E+3 -Inf -> 0
-ddsamq0411 samequantum -7E+3 Inf -> 0
-ddsamq0412 samequantum -7E+3 NaN -> 0
-ddsamq0413 samequantum -7E+3 -7E+3 -> 1
-ddsamq0414 samequantum -7E+3 -7 -> 0
-ddsamq0415 samequantum -7E+3 -7E-3 -> 0
-ddsamq0416 samequantum -7E+3 -0E-3 -> 0
-ddsamq0417 samequantum -7E+3 -0 -> 0
-ddsamq0418 samequantum -7E+3 -0E+3 -> 1
-ddsamq0419 samequantum -7E+3 0E-3 -> 0
-ddsamq0420 samequantum -7E+3 0 -> 0
-ddsamq0421 samequantum -7E+3 0E+3 -> 1
-ddsamq0422 samequantum -7E+3 7E-3 -> 0
-ddsamq0423 samequantum -7E+3 7 -> 0
-ddsamq0424 samequantum -7E+3 7E+3 -> 1
-ddsamq0425 samequantum -7E+3 sNaN -> 0
-
-ddsamq0510 samequantum -7 -Inf -> 0
-ddsamq0511 samequantum -7 Inf -> 0
-ddsamq0512 samequantum -7 NaN -> 0
-ddsamq0513 samequantum -7 -7E+3 -> 0
-ddsamq0514 samequantum -7 -7 -> 1
-ddsamq0515 samequantum -7 -7E-3 -> 0
-ddsamq0516 samequantum -7 -0E-3 -> 0
-ddsamq0517 samequantum -7 -0 -> 1
-ddsamq0518 samequantum -7 -0E+3 -> 0
-ddsamq0519 samequantum -7 0E-3 -> 0
-ddsamq0520 samequantum -7 0 -> 1
-ddsamq0521 samequantum -7 0E+3 -> 0
-ddsamq0522 samequantum -7 7E-3 -> 0
-ddsamq0523 samequantum -7 7 -> 1
-ddsamq0524 samequantum -7 7E+3 -> 0
-ddsamq0525 samequantum -7 sNaN -> 0
-
-ddsamq0610 samequantum -7E-3 -Inf -> 0
-ddsamq0611 samequantum -7E-3 Inf -> 0
-ddsamq0612 samequantum -7E-3 NaN -> 0
-ddsamq0613 samequantum -7E-3 -7E+3 -> 0
-ddsamq0614 samequantum -7E-3 -7 -> 0
-ddsamq0615 samequantum -7E-3 -7E-3 -> 1
-ddsamq0616 samequantum -7E-3 -0E-3 -> 1
-ddsamq0617 samequantum -7E-3 -0 -> 0
-ddsamq0618 samequantum -7E-3 -0E+3 -> 0
-ddsamq0619 samequantum -7E-3 0E-3 -> 1
-ddsamq0620 samequantum -7E-3 0 -> 0
-ddsamq0621 samequantum -7E-3 0E+3 -> 0
-ddsamq0622 samequantum -7E-3 7E-3 -> 1
-ddsamq0623 samequantum -7E-3 7 -> 0
-ddsamq0624 samequantum -7E-3 7E+3 -> 0
-ddsamq0625 samequantum -7E-3 sNaN -> 0
-
-ddsamq0710 samequantum -0E-3 -Inf -> 0
-ddsamq0711 samequantum -0E-3 Inf -> 0
-ddsamq0712 samequantum -0E-3 NaN -> 0
-ddsamq0713 samequantum -0E-3 -7E+3 -> 0
-ddsamq0714 samequantum -0E-3 -7 -> 0
-ddsamq0715 samequantum -0E-3 -7E-3 -> 1
-ddsamq0716 samequantum -0E-3 -0E-3 -> 1
-ddsamq0717 samequantum -0E-3 -0 -> 0
-ddsamq0718 samequantum -0E-3 -0E+3 -> 0
-ddsamq0719 samequantum -0E-3 0E-3 -> 1
-ddsamq0720 samequantum -0E-3 0 -> 0
-ddsamq0721 samequantum -0E-3 0E+3 -> 0
-ddsamq0722 samequantum -0E-3 7E-3 -> 1
-ddsamq0723 samequantum -0E-3 7 -> 0
-ddsamq0724 samequantum -0E-3 7E+3 -> 0
-ddsamq0725 samequantum -0E-3 sNaN -> 0
-
-ddsamq0810 samequantum -0 -Inf -> 0
-ddsamq0811 samequantum -0 Inf -> 0
-ddsamq0812 samequantum -0 NaN -> 0
-ddsamq0813 samequantum -0 -7E+3 -> 0
-ddsamq0814 samequantum -0 -7 -> 1
-ddsamq0815 samequantum -0 -7E-3 -> 0
-ddsamq0816 samequantum -0 -0E-3 -> 0
-ddsamq0817 samequantum -0 -0 -> 1
-ddsamq0818 samequantum -0 -0E+3 -> 0
-ddsamq0819 samequantum -0 0E-3 -> 0
-ddsamq0820 samequantum -0 0 -> 1
-ddsamq0821 samequantum -0 0E+3 -> 0
-ddsamq0822 samequantum -0 7E-3 -> 0
-ddsamq0823 samequantum -0 7 -> 1
-ddsamq0824 samequantum -0 7E+3 -> 0
-ddsamq0825 samequantum -0 sNaN -> 0
-
-ddsamq0910 samequantum -0E+3 -Inf -> 0
-ddsamq0911 samequantum -0E+3 Inf -> 0
-ddsamq0912 samequantum -0E+3 NaN -> 0
-ddsamq0913 samequantum -0E+3 -7E+3 -> 1
-ddsamq0914 samequantum -0E+3 -7 -> 0
-ddsamq0915 samequantum -0E+3 -7E-3 -> 0
-ddsamq0916 samequantum -0E+3 -0E-3 -> 0
-ddsamq0917 samequantum -0E+3 -0 -> 0
-ddsamq0918 samequantum -0E+3 -0E+3 -> 1
-ddsamq0919 samequantum -0E+3 0E-3 -> 0
-ddsamq0920 samequantum -0E+3 0 -> 0
-ddsamq0921 samequantum -0E+3 0E+3 -> 1
-ddsamq0922 samequantum -0E+3 7E-3 -> 0
-ddsamq0923 samequantum -0E+3 7 -> 0
-ddsamq0924 samequantum -0E+3 7E+3 -> 1
-ddsamq0925 samequantum -0E+3 sNaN -> 0
-
-ddsamq1110 samequantum 0E-3 -Inf -> 0
-ddsamq1111 samequantum 0E-3 Inf -> 0
-ddsamq1112 samequantum 0E-3 NaN -> 0
-ddsamq1113 samequantum 0E-3 -7E+3 -> 0
-ddsamq1114 samequantum 0E-3 -7 -> 0
-ddsamq1115 samequantum 0E-3 -7E-3 -> 1
-ddsamq1116 samequantum 0E-3 -0E-3 -> 1
-ddsamq1117 samequantum 0E-3 -0 -> 0
-ddsamq1118 samequantum 0E-3 -0E+3 -> 0
-ddsamq1119 samequantum 0E-3 0E-3 -> 1
-ddsamq1120 samequantum 0E-3 0 -> 0
-ddsamq1121 samequantum 0E-3 0E+3 -> 0
-ddsamq1122 samequantum 0E-3 7E-3 -> 1
-ddsamq1123 samequantum 0E-3 7 -> 0
-ddsamq1124 samequantum 0E-3 7E+3 -> 0
-ddsamq1125 samequantum 0E-3 sNaN -> 0
-
-ddsamq1210 samequantum 0 -Inf -> 0
-ddsamq1211 samequantum 0 Inf -> 0
-ddsamq1212 samequantum 0 NaN -> 0
-ddsamq1213 samequantum 0 -7E+3 -> 0
-ddsamq1214 samequantum 0 -7 -> 1
-ddsamq1215 samequantum 0 -7E-3 -> 0
-ddsamq1216 samequantum 0 -0E-3 -> 0
-ddsamq1217 samequantum 0 -0 -> 1
-ddsamq1218 samequantum 0 -0E+3 -> 0
-ddsamq1219 samequantum 0 0E-3 -> 0
-ddsamq1220 samequantum 0 0 -> 1
-ddsamq1221 samequantum 0 0E+3 -> 0
-ddsamq1222 samequantum 0 7E-3 -> 0
-ddsamq1223 samequantum 0 7 -> 1
-ddsamq1224 samequantum 0 7E+3 -> 0
-ddsamq1225 samequantum 0 sNaN -> 0
-
-ddsamq1310 samequantum 0E+3 -Inf -> 0
-ddsamq1311 samequantum 0E+3 Inf -> 0
-ddsamq1312 samequantum 0E+3 NaN -> 0
-ddsamq1313 samequantum 0E+3 -7E+3 -> 1
-ddsamq1314 samequantum 0E+3 -7 -> 0
-ddsamq1315 samequantum 0E+3 -7E-3 -> 0
-ddsamq1316 samequantum 0E+3 -0E-3 -> 0
-ddsamq1317 samequantum 0E+3 -0 -> 0
-ddsamq1318 samequantum 0E+3 -0E+3 -> 1
-ddsamq1319 samequantum 0E+3 0E-3 -> 0
-ddsamq1320 samequantum 0E+3 0 -> 0
-ddsamq1321 samequantum 0E+3 0E+3 -> 1
-ddsamq1322 samequantum 0E+3 7E-3 -> 0
-ddsamq1323 samequantum 0E+3 7 -> 0
-ddsamq1324 samequantum 0E+3 7E+3 -> 1
-ddsamq1325 samequantum 0E+3 sNaN -> 0
-
-ddsamq1410 samequantum 7E-3 -Inf -> 0
-ddsamq1411 samequantum 7E-3 Inf -> 0
-ddsamq1412 samequantum 7E-3 NaN -> 0
-ddsamq1413 samequantum 7E-3 -7E+3 -> 0
-ddsamq1414 samequantum 7E-3 -7 -> 0
-ddsamq1415 samequantum 7E-3 -7E-3 -> 1
-ddsamq1416 samequantum 7E-3 -0E-3 -> 1
-ddsamq1417 samequantum 7E-3 -0 -> 0
-ddsamq1418 samequantum 7E-3 -0E+3 -> 0
-ddsamq1419 samequantum 7E-3 0E-3 -> 1
-ddsamq1420 samequantum 7E-3 0 -> 0
-ddsamq1421 samequantum 7E-3 0E+3 -> 0
-ddsamq1422 samequantum 7E-3 7E-3 -> 1
-ddsamq1423 samequantum 7E-3 7 -> 0
-ddsamq1424 samequantum 7E-3 7E+3 -> 0
-ddsamq1425 samequantum 7E-3 sNaN -> 0
-
-ddsamq1510 samequantum 7 -Inf -> 0
-ddsamq1511 samequantum 7 Inf -> 0
-ddsamq1512 samequantum 7 NaN -> 0
-ddsamq1513 samequantum 7 -7E+3 -> 0
-ddsamq1514 samequantum 7 -7 -> 1
-ddsamq1515 samequantum 7 -7E-3 -> 0
-ddsamq1516 samequantum 7 -0E-3 -> 0
-ddsamq1517 samequantum 7 -0 -> 1
-ddsamq1518 samequantum 7 -0E+3 -> 0
-ddsamq1519 samequantum 7 0E-3 -> 0
-ddsamq1520 samequantum 7 0 -> 1
-ddsamq1521 samequantum 7 0E+3 -> 0
-ddsamq1522 samequantum 7 7E-3 -> 0
-ddsamq1523 samequantum 7 7 -> 1
-ddsamq1524 samequantum 7 7E+3 -> 0
-ddsamq1525 samequantum 7 sNaN -> 0
-
-ddsamq1610 samequantum 7E+3 -Inf -> 0
-ddsamq1611 samequantum 7E+3 Inf -> 0
-ddsamq1612 samequantum 7E+3 NaN -> 0
-ddsamq1613 samequantum 7E+3 -7E+3 -> 1
-ddsamq1614 samequantum 7E+3 -7 -> 0
-ddsamq1615 samequantum 7E+3 -7E-3 -> 0
-ddsamq1616 samequantum 7E+3 -0E-3 -> 0
-ddsamq1617 samequantum 7E+3 -0 -> 0
-ddsamq1618 samequantum 7E+3 -0E+3 -> 1
-ddsamq1619 samequantum 7E+3 0E-3 -> 0
-ddsamq1620 samequantum 7E+3 0 -> 0
-ddsamq1621 samequantum 7E+3 0E+3 -> 1
-ddsamq1622 samequantum 7E+3 7E-3 -> 0
-ddsamq1623 samequantum 7E+3 7 -> 0
-ddsamq1624 samequantum 7E+3 7E+3 -> 1
-ddsamq1625 samequantum 7E+3 sNaN -> 0
-
-ddsamq1710 samequantum sNaN -Inf -> 0
-ddsamq1711 samequantum sNaN Inf -> 0
-ddsamq1712 samequantum sNaN NaN -> 1
-ddsamq1713 samequantum sNaN -7E+3 -> 0
-ddsamq1714 samequantum sNaN -7 -> 0
-ddsamq1715 samequantum sNaN -7E-3 -> 0
-ddsamq1716 samequantum sNaN -0E-3 -> 0
-ddsamq1717 samequantum sNaN -0 -> 0
-ddsamq1718 samequantum sNaN -0E+3 -> 0
-ddsamq1719 samequantum sNaN 0E-3 -> 0
-ddsamq1720 samequantum sNaN 0 -> 0
-ddsamq1721 samequantum sNaN 0E+3 -> 0
-ddsamq1722 samequantum sNaN 7E-3 -> 0
-ddsamq1723 samequantum sNaN 7 -> 0
-ddsamq1724 samequantum sNaN 7E+3 -> 0
-ddsamq1725 samequantum sNaN sNaN -> 1
--- noisy NaNs
-ddsamq1730 samequantum sNaN3 sNaN3 -> 1
-ddsamq1731 samequantum sNaN3 sNaN4 -> 1
-ddsamq1732 samequantum NaN3 NaN3 -> 1
-ddsamq1733 samequantum NaN3 NaN4 -> 1
-ddsamq1734 samequantum sNaN3 3 -> 0
-ddsamq1735 samequantum NaN3 3 -> 0
-ddsamq1736 samequantum 4 sNaN4 -> 0
-ddsamq1737 samequantum 3 NaN3 -> 0
-ddsamq1738 samequantum Inf sNaN4 -> 0
-ddsamq1739 samequantum -Inf NaN3 -> 0
-
+------------------------------------------------------------------------ +-- ddSameQuantum.decTest -- check decDouble quantums match -- +-- Copyright (c) IBM Corporation, 2001, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- All operands and results are decDoubles. +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +ddsamq001 samequantum 0 0 -> 1 +ddsamq002 samequantum 0 1 -> 1 +ddsamq003 samequantum 1 0 -> 1 +ddsamq004 samequantum 1 1 -> 1 + +ddsamq011 samequantum 10 1E+1 -> 0 +ddsamq012 samequantum 10E+1 10E+1 -> 1 +ddsamq013 samequantum 100 10E+1 -> 0 +ddsamq014 samequantum 100 1E+2 -> 0 +ddsamq015 samequantum 0.1 1E-2 -> 0 +ddsamq016 samequantum 0.1 1E-1 -> 1 +ddsamq017 samequantum 0.1 1E-0 -> 0 +ddsamq018 samequantum 999 999 -> 1 +ddsamq019 samequantum 999E-1 99.9 -> 1 +ddsamq020 samequantum 111E-1 22.2 -> 1 +ddsamq021 samequantum 111E-1 1234.2 -> 1 + +-- zeros +ddsamq030 samequantum 0.0 1.1 -> 1 +ddsamq031 samequantum 0.0 1.11 -> 0 +ddsamq032 samequantum 0.0 0 -> 0 +ddsamq033 samequantum 0.0 0.0 -> 1 +ddsamq034 samequantum 0.0 0.00 -> 0 +ddsamq035 samequantum 0E+1 0E+0 -> 0 +ddsamq036 samequantum 0E+1 0E+1 -> 1 +ddsamq037 samequantum 0E+1 0E+2 -> 0 +ddsamq038 samequantum 0E-17 0E-16 -> 0 +ddsamq039 samequantum 0E-17 0E-17 -> 1 +ddsamq040 samequantum 0E-17 0E-18 -> 0 +ddsamq041 samequantum 0E-17 0.0E-15 -> 0 +ddsamq042 samequantum 0E-17 0.0E-16 -> 1 +ddsamq043 samequantum 0E-17 0.0E-17 -> 0 +ddsamq044 samequantum -0E-17 0.0E-16 -> 1 +ddsamq045 samequantum 0E-17 -0.0E-17 -> 0 +ddsamq046 samequantum 0E-17 -0.0E-16 -> 1 +ddsamq047 samequantum -0E-17 0.0E-17 -> 0 +ddsamq048 samequantum -0E-17 -0.0E-16 -> 1 +ddsamq049 samequantum -0E-17 -0.0E-17 -> 0 + +-- Nmax, Nmin, Ntiny +ddsamq051 samequantum 9.999999999999999E+384 9.999999999999999E+384 -> 1 +ddsamq052 samequantum 1E-383 1E-383 -> 1 +ddsamq053 samequantum 1.000000000000000E-383 1.000000000000000E-383 -> 1 +ddsamq054 samequantum 1E-398 1E-398 -> 1 +ddsamq055 samequantum 9.999999999999999E+384 9.999999999999999E+384 -> 1 +ddsamq056 samequantum 1E-383 1E-383 -> 1 +ddsamq057 samequantum 1.000000000000000E-383 1.000000000000000E-383 -> 1 +ddsamq058 samequantum 1E-398 1E-398 -> 1 + +ddsamq061 samequantum -1E-398 -1E-398 -> 1 +ddsamq062 samequantum -1.000000000000000E-383 -1.000000000000000E-383 -> 1 +ddsamq063 samequantum -1E-383 -1E-383 -> 1 +ddsamq064 samequantum -9.999999999999999E+384 -9.999999999999999E+384 -> 1 +ddsamq065 samequantum -1E-398 -1E-398 -> 1 +ddsamq066 samequantum -1.000000000000000E-383 -1.000000000000000E-383 -> 1 +ddsamq067 samequantum -1E-383 -1E-383 -> 1 +ddsamq068 samequantum -9.999999999999999E+384 -9.999999999999999E+384 -> 1 + +ddsamq071 samequantum -4E-398 -1E-398 -> 1 +ddsamq072 samequantum -4.000000000000000E-383 -1.000040000000000E-383 -> 1 +ddsamq073 samequantum -4E-383 -1E-383 -> 1 +ddsamq074 samequantum -4.999999999999999E+384 -9.999999999949999E+384 -> 1 +ddsamq075 samequantum -4E-398 -1E-398 -> 1 +ddsamq076 samequantum -4.000000000000000E-383 -1.004000000000000E-383 -> 1 +ddsamq077 samequantum -4E-383 -1E-383 -> 1 +ddsamq078 samequantum -4.999999999999999E+384 -9.949999999999999E+384 -> 1 + +ddsamq081 samequantum -4E-397 -1E-398 -> 0 +ddsamq082 samequantum -4.000000000000000E-383 -1.000040000000000E-336 -> 0 +ddsamq083 samequantum -4E-346 -1E-383 -> 0 +ddsamq084 samequantum -4.999999999999999E+384 -9.999499999999999E+336 -> 0 +ddsamq085 samequantum -4E-397 -1E-398 -> 0 +ddsamq086 samequantum -4.000000000000000E-383 -1.004000000000000E-336 -> 0 +ddsamq087 samequantum -4E-346 -1E-383 -> 0 +ddsamq088 samequantum -4.999999999999999E+384 -9.949999999999999E+336 -> 0 + +-- specials & combinations +ddsamq0110 samequantum -Inf -Inf -> 1 +ddsamq0111 samequantum -Inf Inf -> 1 +ddsamq0112 samequantum -Inf NaN -> 0 +ddsamq0113 samequantum -Inf -7E+3 -> 0 +ddsamq0114 samequantum -Inf -7 -> 0 +ddsamq0115 samequantum -Inf -7E-3 -> 0 +ddsamq0116 samequantum -Inf -0E-3 -> 0 +ddsamq0117 samequantum -Inf -0 -> 0 +ddsamq0118 samequantum -Inf -0E+3 -> 0 +ddsamq0119 samequantum -Inf 0E-3 -> 0 +ddsamq0120 samequantum -Inf 0 -> 0 +ddsamq0121 samequantum -Inf 0E+3 -> 0 +ddsamq0122 samequantum -Inf 7E-3 -> 0 +ddsamq0123 samequantum -Inf 7 -> 0 +ddsamq0124 samequantum -Inf 7E+3 -> 0 +ddsamq0125 samequantum -Inf sNaN -> 0 + +ddsamq0210 samequantum Inf -Inf -> 1 +ddsamq0211 samequantum Inf Inf -> 1 +ddsamq0212 samequantum Inf NaN -> 0 +ddsamq0213 samequantum Inf -7E+3 -> 0 +ddsamq0214 samequantum Inf -7 -> 0 +ddsamq0215 samequantum Inf -7E-3 -> 0 +ddsamq0216 samequantum Inf -0E-3 -> 0 +ddsamq0217 samequantum Inf -0 -> 0 +ddsamq0218 samequantum Inf -0E+3 -> 0 +ddsamq0219 samequantum Inf 0E-3 -> 0 +ddsamq0220 samequantum Inf 0 -> 0 +ddsamq0221 samequantum Inf 0E+3 -> 0 +ddsamq0222 samequantum Inf 7E-3 -> 0 +ddsamq0223 samequantum Inf 7 -> 0 +ddsamq0224 samequantum Inf 7E+3 -> 0 +ddsamq0225 samequantum Inf sNaN -> 0 + +ddsamq0310 samequantum NaN -Inf -> 0 +ddsamq0311 samequantum NaN Inf -> 0 +ddsamq0312 samequantum NaN NaN -> 1 +ddsamq0313 samequantum NaN -7E+3 -> 0 +ddsamq0314 samequantum NaN -7 -> 0 +ddsamq0315 samequantum NaN -7E-3 -> 0 +ddsamq0316 samequantum NaN -0E-3 -> 0 +ddsamq0317 samequantum NaN -0 -> 0 +ddsamq0318 samequantum NaN -0E+3 -> 0 +ddsamq0319 samequantum NaN 0E-3 -> 0 +ddsamq0320 samequantum NaN 0 -> 0 +ddsamq0321 samequantum NaN 0E+3 -> 0 +ddsamq0322 samequantum NaN 7E-3 -> 0 +ddsamq0323 samequantum NaN 7 -> 0 +ddsamq0324 samequantum NaN 7E+3 -> 0 +ddsamq0325 samequantum NaN sNaN -> 1 + +ddsamq0410 samequantum -7E+3 -Inf -> 0 +ddsamq0411 samequantum -7E+3 Inf -> 0 +ddsamq0412 samequantum -7E+3 NaN -> 0 +ddsamq0413 samequantum -7E+3 -7E+3 -> 1 +ddsamq0414 samequantum -7E+3 -7 -> 0 +ddsamq0415 samequantum -7E+3 -7E-3 -> 0 +ddsamq0416 samequantum -7E+3 -0E-3 -> 0 +ddsamq0417 samequantum -7E+3 -0 -> 0 +ddsamq0418 samequantum -7E+3 -0E+3 -> 1 +ddsamq0419 samequantum -7E+3 0E-3 -> 0 +ddsamq0420 samequantum -7E+3 0 -> 0 +ddsamq0421 samequantum -7E+3 0E+3 -> 1 +ddsamq0422 samequantum -7E+3 7E-3 -> 0 +ddsamq0423 samequantum -7E+3 7 -> 0 +ddsamq0424 samequantum -7E+3 7E+3 -> 1 +ddsamq0425 samequantum -7E+3 sNaN -> 0 + +ddsamq0510 samequantum -7 -Inf -> 0 +ddsamq0511 samequantum -7 Inf -> 0 +ddsamq0512 samequantum -7 NaN -> 0 +ddsamq0513 samequantum -7 -7E+3 -> 0 +ddsamq0514 samequantum -7 -7 -> 1 +ddsamq0515 samequantum -7 -7E-3 -> 0 +ddsamq0516 samequantum -7 -0E-3 -> 0 +ddsamq0517 samequantum -7 -0 -> 1 +ddsamq0518 samequantum -7 -0E+3 -> 0 +ddsamq0519 samequantum -7 0E-3 -> 0 +ddsamq0520 samequantum -7 0 -> 1 +ddsamq0521 samequantum -7 0E+3 -> 0 +ddsamq0522 samequantum -7 7E-3 -> 0 +ddsamq0523 samequantum -7 7 -> 1 +ddsamq0524 samequantum -7 7E+3 -> 0 +ddsamq0525 samequantum -7 sNaN -> 0 + +ddsamq0610 samequantum -7E-3 -Inf -> 0 +ddsamq0611 samequantum -7E-3 Inf -> 0 +ddsamq0612 samequantum -7E-3 NaN -> 0 +ddsamq0613 samequantum -7E-3 -7E+3 -> 0 +ddsamq0614 samequantum -7E-3 -7 -> 0 +ddsamq0615 samequantum -7E-3 -7E-3 -> 1 +ddsamq0616 samequantum -7E-3 -0E-3 -> 1 +ddsamq0617 samequantum -7E-3 -0 -> 0 +ddsamq0618 samequantum -7E-3 -0E+3 -> 0 +ddsamq0619 samequantum -7E-3 0E-3 -> 1 +ddsamq0620 samequantum -7E-3 0 -> 0 +ddsamq0621 samequantum -7E-3 0E+3 -> 0 +ddsamq0622 samequantum -7E-3 7E-3 -> 1 +ddsamq0623 samequantum -7E-3 7 -> 0 +ddsamq0624 samequantum -7E-3 7E+3 -> 0 +ddsamq0625 samequantum -7E-3 sNaN -> 0 + +ddsamq0710 samequantum -0E-3 -Inf -> 0 +ddsamq0711 samequantum -0E-3 Inf -> 0 +ddsamq0712 samequantum -0E-3 NaN -> 0 +ddsamq0713 samequantum -0E-3 -7E+3 -> 0 +ddsamq0714 samequantum -0E-3 -7 -> 0 +ddsamq0715 samequantum -0E-3 -7E-3 -> 1 +ddsamq0716 samequantum -0E-3 -0E-3 -> 1 +ddsamq0717 samequantum -0E-3 -0 -> 0 +ddsamq0718 samequantum -0E-3 -0E+3 -> 0 +ddsamq0719 samequantum -0E-3 0E-3 -> 1 +ddsamq0720 samequantum -0E-3 0 -> 0 +ddsamq0721 samequantum -0E-3 0E+3 -> 0 +ddsamq0722 samequantum -0E-3 7E-3 -> 1 +ddsamq0723 samequantum -0E-3 7 -> 0 +ddsamq0724 samequantum -0E-3 7E+3 -> 0 +ddsamq0725 samequantum -0E-3 sNaN -> 0 + +ddsamq0810 samequantum -0 -Inf -> 0 +ddsamq0811 samequantum -0 Inf -> 0 +ddsamq0812 samequantum -0 NaN -> 0 +ddsamq0813 samequantum -0 -7E+3 -> 0 +ddsamq0814 samequantum -0 -7 -> 1 +ddsamq0815 samequantum -0 -7E-3 -> 0 +ddsamq0816 samequantum -0 -0E-3 -> 0 +ddsamq0817 samequantum -0 -0 -> 1 +ddsamq0818 samequantum -0 -0E+3 -> 0 +ddsamq0819 samequantum -0 0E-3 -> 0 +ddsamq0820 samequantum -0 0 -> 1 +ddsamq0821 samequantum -0 0E+3 -> 0 +ddsamq0822 samequantum -0 7E-3 -> 0 +ddsamq0823 samequantum -0 7 -> 1 +ddsamq0824 samequantum -0 7E+3 -> 0 +ddsamq0825 samequantum -0 sNaN -> 0 + +ddsamq0910 samequantum -0E+3 -Inf -> 0 +ddsamq0911 samequantum -0E+3 Inf -> 0 +ddsamq0912 samequantum -0E+3 NaN -> 0 +ddsamq0913 samequantum -0E+3 -7E+3 -> 1 +ddsamq0914 samequantum -0E+3 -7 -> 0 +ddsamq0915 samequantum -0E+3 -7E-3 -> 0 +ddsamq0916 samequantum -0E+3 -0E-3 -> 0 +ddsamq0917 samequantum -0E+3 -0 -> 0 +ddsamq0918 samequantum -0E+3 -0E+3 -> 1 +ddsamq0919 samequantum -0E+3 0E-3 -> 0 +ddsamq0920 samequantum -0E+3 0 -> 0 +ddsamq0921 samequantum -0E+3 0E+3 -> 1 +ddsamq0922 samequantum -0E+3 7E-3 -> 0 +ddsamq0923 samequantum -0E+3 7 -> 0 +ddsamq0924 samequantum -0E+3 7E+3 -> 1 +ddsamq0925 samequantum -0E+3 sNaN -> 0 + +ddsamq1110 samequantum 0E-3 -Inf -> 0 +ddsamq1111 samequantum 0E-3 Inf -> 0 +ddsamq1112 samequantum 0E-3 NaN -> 0 +ddsamq1113 samequantum 0E-3 -7E+3 -> 0 +ddsamq1114 samequantum 0E-3 -7 -> 0 +ddsamq1115 samequantum 0E-3 -7E-3 -> 1 +ddsamq1116 samequantum 0E-3 -0E-3 -> 1 +ddsamq1117 samequantum 0E-3 -0 -> 0 +ddsamq1118 samequantum 0E-3 -0E+3 -> 0 +ddsamq1119 samequantum 0E-3 0E-3 -> 1 +ddsamq1120 samequantum 0E-3 0 -> 0 +ddsamq1121 samequantum 0E-3 0E+3 -> 0 +ddsamq1122 samequantum 0E-3 7E-3 -> 1 +ddsamq1123 samequantum 0E-3 7 -> 0 +ddsamq1124 samequantum 0E-3 7E+3 -> 0 +ddsamq1125 samequantum 0E-3 sNaN -> 0 + +ddsamq1210 samequantum 0 -Inf -> 0 +ddsamq1211 samequantum 0 Inf -> 0 +ddsamq1212 samequantum 0 NaN -> 0 +ddsamq1213 samequantum 0 -7E+3 -> 0 +ddsamq1214 samequantum 0 -7 -> 1 +ddsamq1215 samequantum 0 -7E-3 -> 0 +ddsamq1216 samequantum 0 -0E-3 -> 0 +ddsamq1217 samequantum 0 -0 -> 1 +ddsamq1218 samequantum 0 -0E+3 -> 0 +ddsamq1219 samequantum 0 0E-3 -> 0 +ddsamq1220 samequantum 0 0 -> 1 +ddsamq1221 samequantum 0 0E+3 -> 0 +ddsamq1222 samequantum 0 7E-3 -> 0 +ddsamq1223 samequantum 0 7 -> 1 +ddsamq1224 samequantum 0 7E+3 -> 0 +ddsamq1225 samequantum 0 sNaN -> 0 + +ddsamq1310 samequantum 0E+3 -Inf -> 0 +ddsamq1311 samequantum 0E+3 Inf -> 0 +ddsamq1312 samequantum 0E+3 NaN -> 0 +ddsamq1313 samequantum 0E+3 -7E+3 -> 1 +ddsamq1314 samequantum 0E+3 -7 -> 0 +ddsamq1315 samequantum 0E+3 -7E-3 -> 0 +ddsamq1316 samequantum 0E+3 -0E-3 -> 0 +ddsamq1317 samequantum 0E+3 -0 -> 0 +ddsamq1318 samequantum 0E+3 -0E+3 -> 1 +ddsamq1319 samequantum 0E+3 0E-3 -> 0 +ddsamq1320 samequantum 0E+3 0 -> 0 +ddsamq1321 samequantum 0E+3 0E+3 -> 1 +ddsamq1322 samequantum 0E+3 7E-3 -> 0 +ddsamq1323 samequantum 0E+3 7 -> 0 +ddsamq1324 samequantum 0E+3 7E+3 -> 1 +ddsamq1325 samequantum 0E+3 sNaN -> 0 + +ddsamq1410 samequantum 7E-3 -Inf -> 0 +ddsamq1411 samequantum 7E-3 Inf -> 0 +ddsamq1412 samequantum 7E-3 NaN -> 0 +ddsamq1413 samequantum 7E-3 -7E+3 -> 0 +ddsamq1414 samequantum 7E-3 -7 -> 0 +ddsamq1415 samequantum 7E-3 -7E-3 -> 1 +ddsamq1416 samequantum 7E-3 -0E-3 -> 1 +ddsamq1417 samequantum 7E-3 -0 -> 0 +ddsamq1418 samequantum 7E-3 -0E+3 -> 0 +ddsamq1419 samequantum 7E-3 0E-3 -> 1 +ddsamq1420 samequantum 7E-3 0 -> 0 +ddsamq1421 samequantum 7E-3 0E+3 -> 0 +ddsamq1422 samequantum 7E-3 7E-3 -> 1 +ddsamq1423 samequantum 7E-3 7 -> 0 +ddsamq1424 samequantum 7E-3 7E+3 -> 0 +ddsamq1425 samequantum 7E-3 sNaN -> 0 + +ddsamq1510 samequantum 7 -Inf -> 0 +ddsamq1511 samequantum 7 Inf -> 0 +ddsamq1512 samequantum 7 NaN -> 0 +ddsamq1513 samequantum 7 -7E+3 -> 0 +ddsamq1514 samequantum 7 -7 -> 1 +ddsamq1515 samequantum 7 -7E-3 -> 0 +ddsamq1516 samequantum 7 -0E-3 -> 0 +ddsamq1517 samequantum 7 -0 -> 1 +ddsamq1518 samequantum 7 -0E+3 -> 0 +ddsamq1519 samequantum 7 0E-3 -> 0 +ddsamq1520 samequantum 7 0 -> 1 +ddsamq1521 samequantum 7 0E+3 -> 0 +ddsamq1522 samequantum 7 7E-3 -> 0 +ddsamq1523 samequantum 7 7 -> 1 +ddsamq1524 samequantum 7 7E+3 -> 0 +ddsamq1525 samequantum 7 sNaN -> 0 + +ddsamq1610 samequantum 7E+3 -Inf -> 0 +ddsamq1611 samequantum 7E+3 Inf -> 0 +ddsamq1612 samequantum 7E+3 NaN -> 0 +ddsamq1613 samequantum 7E+3 -7E+3 -> 1 +ddsamq1614 samequantum 7E+3 -7 -> 0 +ddsamq1615 samequantum 7E+3 -7E-3 -> 0 +ddsamq1616 samequantum 7E+3 -0E-3 -> 0 +ddsamq1617 samequantum 7E+3 -0 -> 0 +ddsamq1618 samequantum 7E+3 -0E+3 -> 1 +ddsamq1619 samequantum 7E+3 0E-3 -> 0 +ddsamq1620 samequantum 7E+3 0 -> 0 +ddsamq1621 samequantum 7E+3 0E+3 -> 1 +ddsamq1622 samequantum 7E+3 7E-3 -> 0 +ddsamq1623 samequantum 7E+3 7 -> 0 +ddsamq1624 samequantum 7E+3 7E+3 -> 1 +ddsamq1625 samequantum 7E+3 sNaN -> 0 + +ddsamq1710 samequantum sNaN -Inf -> 0 +ddsamq1711 samequantum sNaN Inf -> 0 +ddsamq1712 samequantum sNaN NaN -> 1 +ddsamq1713 samequantum sNaN -7E+3 -> 0 +ddsamq1714 samequantum sNaN -7 -> 0 +ddsamq1715 samequantum sNaN -7E-3 -> 0 +ddsamq1716 samequantum sNaN -0E-3 -> 0 +ddsamq1717 samequantum sNaN -0 -> 0 +ddsamq1718 samequantum sNaN -0E+3 -> 0 +ddsamq1719 samequantum sNaN 0E-3 -> 0 +ddsamq1720 samequantum sNaN 0 -> 0 +ddsamq1721 samequantum sNaN 0E+3 -> 0 +ddsamq1722 samequantum sNaN 7E-3 -> 0 +ddsamq1723 samequantum sNaN 7 -> 0 +ddsamq1724 samequantum sNaN 7E+3 -> 0 +ddsamq1725 samequantum sNaN sNaN -> 1 +-- noisy NaNs +ddsamq1730 samequantum sNaN3 sNaN3 -> 1 +ddsamq1731 samequantum sNaN3 sNaN4 -> 1 +ddsamq1732 samequantum NaN3 NaN3 -> 1 +ddsamq1733 samequantum NaN3 NaN4 -> 1 +ddsamq1734 samequantum sNaN3 3 -> 0 +ddsamq1735 samequantum NaN3 3 -> 0 +ddsamq1736 samequantum 4 sNaN4 -> 0 +ddsamq1737 samequantum 3 NaN3 -> 0 +ddsamq1738 samequantum Inf sNaN4 -> 0 +ddsamq1739 samequantum -Inf NaN3 -> 0 + diff --git a/Lib/test/decimaltestdata/ddScaleB.decTest b/Lib/test/decimaltestdata/ddScaleB.decTest index 6ba3e3976f..edee11bccc 100644 --- a/Lib/test/decimaltestdata/ddScaleB.decTest +++ b/Lib/test/decimaltestdata/ddScaleB.decTest @@ -1,243 +1,243 @@ -------------------------------------------------------------------------
--- ddScalebB.decTest -- scale a decDouble by powers of 10 --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
--- Max |rhs| is 2*(384+16) = 800
-
--- Sanity checks
-ddscb001 scaleb 7.50 10 -> 7.50E+10
-ddscb002 scaleb 7.50 3 -> 7.50E+3
-ddscb003 scaleb 7.50 2 -> 750
-ddscb004 scaleb 7.50 1 -> 75.0
-ddscb005 scaleb 7.50 0 -> 7.50
-ddscb006 scaleb 7.50 -1 -> 0.750
-ddscb007 scaleb 7.50 -2 -> 0.0750
-ddscb008 scaleb 7.50 -10 -> 7.50E-10
-ddscb009 scaleb -7.50 3 -> -7.50E+3
-ddscb010 scaleb -7.50 2 -> -750
-ddscb011 scaleb -7.50 1 -> -75.0
-ddscb012 scaleb -7.50 0 -> -7.50
-ddscb013 scaleb -7.50 -1 -> -0.750
-
--- Infinities
-ddscb014 scaleb Infinity 1 -> Infinity
-ddscb015 scaleb -Infinity 2 -> -Infinity
-ddscb016 scaleb Infinity -1 -> Infinity
-ddscb017 scaleb -Infinity -2 -> -Infinity
-
--- Next two are somewhat undefined in 754r; treat as non-integer
-ddscb018 scaleb 10 Infinity -> NaN Invalid_operation
-ddscb019 scaleb 10 -Infinity -> NaN Invalid_operation
-
--- NaNs are undefined in 754r; assume usual processing
--- NaNs, 0 payload
-ddscb021 scaleb NaN 1 -> NaN
-ddscb022 scaleb -NaN -1 -> -NaN
-ddscb023 scaleb sNaN 1 -> NaN Invalid_operation
-ddscb024 scaleb -sNaN 1 -> -NaN Invalid_operation
-ddscb025 scaleb 4 NaN -> NaN
-ddscb026 scaleb -Inf -NaN -> -NaN
-ddscb027 scaleb 4 sNaN -> NaN Invalid_operation
-ddscb028 scaleb Inf -sNaN -> -NaN Invalid_operation
-
--- non-integer RHS
-ddscb030 scaleb 1.23 1 -> 12.3
-ddscb031 scaleb 1.23 1.00 -> NaN Invalid_operation
-ddscb032 scaleb 1.23 1.1 -> NaN Invalid_operation
-ddscb033 scaleb 1.23 1.01 -> NaN Invalid_operation
-ddscb034 scaleb 1.23 0.01 -> NaN Invalid_operation
-ddscb035 scaleb 1.23 0.11 -> NaN Invalid_operation
-ddscb036 scaleb 1.23 0.999999999 -> NaN Invalid_operation
-ddscb037 scaleb 1.23 -1 -> 0.123
-ddscb038 scaleb 1.23 -1.00 -> NaN Invalid_operation
-ddscb039 scaleb 1.23 -1.1 -> NaN Invalid_operation
-ddscb040 scaleb 1.23 -1.01 -> NaN Invalid_operation
-ddscb041 scaleb 1.23 -0.01 -> NaN Invalid_operation
-ddscb042 scaleb 1.23 -0.11 -> NaN Invalid_operation
-ddscb043 scaleb 1.23 -0.999999999 -> NaN Invalid_operation
-ddscb044 scaleb 1.23 0.1 -> NaN Invalid_operation
-ddscb045 scaleb 1.23 1E+1 -> NaN Invalid_operation
-ddscb046 scaleb 1.23 1.1234E+6 -> NaN Invalid_operation
-ddscb047 scaleb 1.23 1.123E+4 -> NaN Invalid_operation
-
--- out-of range RHS
-ddscb120 scaleb 1.23 799 -> Infinity Overflow Inexact Rounded
-ddscb121 scaleb 1.23 800 -> Infinity Overflow Inexact Rounded
-ddscb122 scaleb 1.23 801 -> NaN Invalid_operation
-ddscb123 scaleb 1.23 802 -> NaN Invalid_operation
-ddscb124 scaleb 1.23 -799 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddscb125 scaleb 1.23 -800 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddscb126 scaleb 1.23 -801 -> NaN Invalid_operation
-ddscb127 scaleb 1.23 -802 -> NaN Invalid_operation
-
--- NaNs, non-0 payload
--- propagating NaNs
-ddscb861 scaleb NaN01 -Inf -> NaN1
-ddscb862 scaleb -NaN02 -1000 -> -NaN2
-ddscb863 scaleb NaN03 1000 -> NaN3
-ddscb864 scaleb NaN04 Inf -> NaN4
-ddscb865 scaleb NaN05 NaN61 -> NaN5
-ddscb866 scaleb -Inf -NaN71 -> -NaN71
-ddscb867 scaleb -1000 NaN81 -> NaN81
-ddscb868 scaleb 1000 NaN91 -> NaN91
-ddscb869 scaleb Inf NaN101 -> NaN101
-ddscb871 scaleb sNaN011 -Inf -> NaN11 Invalid_operation
-ddscb872 scaleb sNaN012 -1000 -> NaN12 Invalid_operation
-ddscb873 scaleb -sNaN013 1000 -> -NaN13 Invalid_operation
-ddscb874 scaleb sNaN014 NaN171 -> NaN14 Invalid_operation
-ddscb875 scaleb sNaN015 sNaN181 -> NaN15 Invalid_operation
-ddscb876 scaleb NaN016 sNaN191 -> NaN191 Invalid_operation
-ddscb877 scaleb -Inf sNaN201 -> NaN201 Invalid_operation
-ddscb878 scaleb -1000 sNaN211 -> NaN211 Invalid_operation
-ddscb879 scaleb 1000 -sNaN221 -> -NaN221 Invalid_operation
-ddscb880 scaleb Inf sNaN231 -> NaN231 Invalid_operation
-ddscb881 scaleb NaN025 sNaN241 -> NaN241 Invalid_operation
-
--- finites
-ddscb051 scaleb 7 -2 -> 0.07
-ddscb052 scaleb -7 -2 -> -0.07
-ddscb053 scaleb 75 -2 -> 0.75
-ddscb054 scaleb -75 -2 -> -0.75
-ddscb055 scaleb 7.50 -2 -> 0.0750
-ddscb056 scaleb -7.50 -2 -> -0.0750
-ddscb057 scaleb 7.500 -2 -> 0.07500
-ddscb058 scaleb -7.500 -2 -> -0.07500
-ddscb061 scaleb 7 -1 -> 0.7
-ddscb062 scaleb -7 -1 -> -0.7
-ddscb063 scaleb 75 -1 -> 7.5
-ddscb064 scaleb -75 -1 -> -7.5
-ddscb065 scaleb 7.50 -1 -> 0.750
-ddscb066 scaleb -7.50 -1 -> -0.750
-ddscb067 scaleb 7.500 -1 -> 0.7500
-ddscb068 scaleb -7.500 -1 -> -0.7500
-ddscb071 scaleb 7 0 -> 7
-ddscb072 scaleb -7 0 -> -7
-ddscb073 scaleb 75 0 -> 75
-ddscb074 scaleb -75 0 -> -75
-ddscb075 scaleb 7.50 0 -> 7.50
-ddscb076 scaleb -7.50 0 -> -7.50
-ddscb077 scaleb 7.500 0 -> 7.500
-ddscb078 scaleb -7.500 0 -> -7.500
-ddscb081 scaleb 7 1 -> 7E+1
-ddscb082 scaleb -7 1 -> -7E+1
-ddscb083 scaleb 75 1 -> 7.5E+2
-ddscb084 scaleb -75 1 -> -7.5E+2
-ddscb085 scaleb 7.50 1 -> 75.0
-ddscb086 scaleb -7.50 1 -> -75.0
-ddscb087 scaleb 7.500 1 -> 75.00
-ddscb088 scaleb -7.500 1 -> -75.00
-ddscb091 scaleb 7 2 -> 7E+2
-ddscb092 scaleb -7 2 -> -7E+2
-ddscb093 scaleb 75 2 -> 7.5E+3
-ddscb094 scaleb -75 2 -> -7.5E+3
-ddscb095 scaleb 7.50 2 -> 750
-ddscb096 scaleb -7.50 2 -> -750
-ddscb097 scaleb 7.500 2 -> 750.0
-ddscb098 scaleb -7.500 2 -> -750.0
-
--- zeros
-ddscb111 scaleb 0 1 -> 0E+1
-ddscb112 scaleb -0 2 -> -0E+2
-ddscb113 scaleb 0E+4 3 -> 0E+7
-ddscb114 scaleb -0E+4 4 -> -0E+8
-ddscb115 scaleb 0.0000 5 -> 0E+1
-ddscb116 scaleb -0.0000 6 -> -0E+2
-ddscb117 scaleb 0E-141 7 -> 0E-134
-ddscb118 scaleb -0E-141 8 -> -0E-133
-
--- Nmax, Nmin, Ntiny
-ddscb132 scaleb 9.999999999999999E+384 +384 -> Infinity Overflow Inexact Rounded
-ddscb133 scaleb 9.999999999999999E+384 +10 -> Infinity Overflow Inexact Rounded
-ddscb134 scaleb 9.999999999999999E+384 +1 -> Infinity Overflow Inexact Rounded
-ddscb135 scaleb 9.999999999999999E+384 0 -> 9.999999999999999E+384
-ddscb136 scaleb 9.999999999999999E+384 -1 -> 9.999999999999999E+383
-ddscb137 scaleb 1E-383 +1 -> 1E-382
-ddscb138 scaleb 1E-383 -0 -> 1E-383
-ddscb139 scaleb 1E-383 -1 -> 1E-384 Subnormal
-ddscb140 scaleb 1.000000000000000E-383 +1 -> 1.000000000000000E-382
-ddscb141 scaleb 1.000000000000000E-383 0 -> 1.000000000000000E-383
-ddscb142 scaleb 1.000000000000000E-383 -1 -> 1.00000000000000E-384 Subnormal Rounded
-ddscb143 scaleb 1E-398 +1 -> 1E-397 Subnormal
-ddscb144 scaleb 1E-398 -0 -> 1E-398 Subnormal
-ddscb145 scaleb 1E-398 -1 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-
-ddscb150 scaleb -1E-398 +1 -> -1E-397 Subnormal
-ddscb151 scaleb -1E-398 -0 -> -1E-398 Subnormal
-ddscb152 scaleb -1E-398 -1 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddscb153 scaleb -1.000000000000000E-383 +1 -> -1.000000000000000E-382
-ddscb154 scaleb -1.000000000000000E-383 +0 -> -1.000000000000000E-383
-ddscb155 scaleb -1.000000000000000E-383 -1 -> -1.00000000000000E-384 Subnormal Rounded
-ddscb156 scaleb -1E-383 +1 -> -1E-382
-ddscb157 scaleb -1E-383 -0 -> -1E-383
-ddscb158 scaleb -1E-383 -1 -> -1E-384 Subnormal
-ddscb159 scaleb -9.999999999999999E+384 +1 -> -Infinity Overflow Inexact Rounded
-ddscb160 scaleb -9.999999999999999E+384 +0 -> -9.999999999999999E+384
-ddscb161 scaleb -9.999999999999999E+384 -1 -> -9.999999999999999E+383
-ddscb162 scaleb -9E+384 +1 -> -Infinity Overflow Inexact Rounded
-ddscb163 scaleb -1E+384 +1 -> -Infinity Overflow Inexact Rounded
-
--- some Origami
--- (these check that overflow is being done correctly)
-ddscb171 scaleb 1000E+365 +1 -> 1.000E+369
-ddscb172 scaleb 1000E+366 +1 -> 1.000E+370
-ddscb173 scaleb 1000E+367 +1 -> 1.000E+371
-ddscb174 scaleb 1000E+368 +1 -> 1.000E+372
-ddscb175 scaleb 1000E+369 +1 -> 1.0000E+373 Clamped
-ddscb176 scaleb 1000E+370 +1 -> 1.00000E+374 Clamped
-ddscb177 scaleb 1000E+371 +1 -> 1.000000E+375 Clamped
-ddscb178 scaleb 1000E+372 +1 -> 1.0000000E+376 Clamped
-ddscb179 scaleb 1000E+373 +1 -> 1.00000000E+377 Clamped
-ddscb180 scaleb 1000E+374 +1 -> 1.000000000E+378 Clamped
-ddscb181 scaleb 1000E+375 +1 -> 1.0000000000E+379 Clamped
-ddscb182 scaleb 1000E+376 +1 -> 1.00000000000E+380 Clamped
-ddscb183 scaleb 1000E+377 +1 -> 1.000000000000E+381 Clamped
-ddscb184 scaleb 1000E+378 +1 -> 1.0000000000000E+382 Clamped
-ddscb185 scaleb 1000E+379 +1 -> 1.00000000000000E+383 Clamped
-ddscb186 scaleb 1000E+380 +1 -> 1.000000000000000E+384 Clamped
-ddscb187 scaleb 1000E+381 +1 -> Infinity Overflow Inexact Rounded
-
--- and a few more subnormal truncations
--- (these check that underflow is being done correctly)
-ddscb201 scaleb 1.000000000000000E-383 0 -> 1.000000000000000E-383
-ddscb202 scaleb 1.000000000000000E-383 -1 -> 1.00000000000000E-384 Subnormal Rounded
-ddscb203 scaleb 1.000000000000000E-383 -2 -> 1.0000000000000E-385 Subnormal Rounded
-ddscb204 scaleb 1.000000000000000E-383 -3 -> 1.000000000000E-386 Subnormal Rounded
-ddscb205 scaleb 1.000000000000000E-383 -4 -> 1.00000000000E-387 Subnormal Rounded
-ddscb206 scaleb 1.000000000000000E-383 -5 -> 1.0000000000E-388 Subnormal Rounded
-ddscb207 scaleb 1.000000000000000E-383 -6 -> 1.000000000E-389 Subnormal Rounded
-ddscb208 scaleb 1.000000000000000E-383 -7 -> 1.00000000E-390 Subnormal Rounded
-ddscb209 scaleb 1.000000000000000E-383 -8 -> 1.0000000E-391 Subnormal Rounded
-ddscb210 scaleb 1.000000000000000E-383 -9 -> 1.000000E-392 Subnormal Rounded
-ddscb211 scaleb 1.000000000000000E-383 -10 -> 1.00000E-393 Subnormal Rounded
-ddscb212 scaleb 1.000000000000000E-383 -11 -> 1.0000E-394 Subnormal Rounded
-ddscb213 scaleb 1.000000000000000E-383 -12 -> 1.000E-395 Subnormal Rounded
-ddscb214 scaleb 1.000000000000000E-383 -13 -> 1.00E-396 Subnormal Rounded
-ddscb215 scaleb 1.000000000000000E-383 -14 -> 1.0E-397 Subnormal Rounded
-ddscb216 scaleb 1.000000000000000E-383 -15 -> 1E-398 Subnormal Rounded
-ddscb217 scaleb 1.000000000000000E-383 -16 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-ddscb218 scaleb 1.000000000000000E-383 -17 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped
-
+------------------------------------------------------------------------ +-- ddScalebB.decTest -- scale a decDouble by powers of 10 -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +-- Max |rhs| is 2*(384+16) = 800 + +-- Sanity checks +ddscb001 scaleb 7.50 10 -> 7.50E+10 +ddscb002 scaleb 7.50 3 -> 7.50E+3 +ddscb003 scaleb 7.50 2 -> 750 +ddscb004 scaleb 7.50 1 -> 75.0 +ddscb005 scaleb 7.50 0 -> 7.50 +ddscb006 scaleb 7.50 -1 -> 0.750 +ddscb007 scaleb 7.50 -2 -> 0.0750 +ddscb008 scaleb 7.50 -10 -> 7.50E-10 +ddscb009 scaleb -7.50 3 -> -7.50E+3 +ddscb010 scaleb -7.50 2 -> -750 +ddscb011 scaleb -7.50 1 -> -75.0 +ddscb012 scaleb -7.50 0 -> -7.50 +ddscb013 scaleb -7.50 -1 -> -0.750 + +-- Infinities +ddscb014 scaleb Infinity 1 -> Infinity +ddscb015 scaleb -Infinity 2 -> -Infinity +ddscb016 scaleb Infinity -1 -> Infinity +ddscb017 scaleb -Infinity -2 -> -Infinity + +-- Next two are somewhat undefined in 754r; treat as non-integer +ddscb018 scaleb 10 Infinity -> NaN Invalid_operation +ddscb019 scaleb 10 -Infinity -> NaN Invalid_operation + +-- NaNs are undefined in 754r; assume usual processing +-- NaNs, 0 payload +ddscb021 scaleb NaN 1 -> NaN +ddscb022 scaleb -NaN -1 -> -NaN +ddscb023 scaleb sNaN 1 -> NaN Invalid_operation +ddscb024 scaleb -sNaN 1 -> -NaN Invalid_operation +ddscb025 scaleb 4 NaN -> NaN +ddscb026 scaleb -Inf -NaN -> -NaN +ddscb027 scaleb 4 sNaN -> NaN Invalid_operation +ddscb028 scaleb Inf -sNaN -> -NaN Invalid_operation + +-- non-integer RHS +ddscb030 scaleb 1.23 1 -> 12.3 +ddscb031 scaleb 1.23 1.00 -> NaN Invalid_operation +ddscb032 scaleb 1.23 1.1 -> NaN Invalid_operation +ddscb033 scaleb 1.23 1.01 -> NaN Invalid_operation +ddscb034 scaleb 1.23 0.01 -> NaN Invalid_operation +ddscb035 scaleb 1.23 0.11 -> NaN Invalid_operation +ddscb036 scaleb 1.23 0.999999999 -> NaN Invalid_operation +ddscb037 scaleb 1.23 -1 -> 0.123 +ddscb038 scaleb 1.23 -1.00 -> NaN Invalid_operation +ddscb039 scaleb 1.23 -1.1 -> NaN Invalid_operation +ddscb040 scaleb 1.23 -1.01 -> NaN Invalid_operation +ddscb041 scaleb 1.23 -0.01 -> NaN Invalid_operation +ddscb042 scaleb 1.23 -0.11 -> NaN Invalid_operation +ddscb043 scaleb 1.23 -0.999999999 -> NaN Invalid_operation +ddscb044 scaleb 1.23 0.1 -> NaN Invalid_operation +ddscb045 scaleb 1.23 1E+1 -> NaN Invalid_operation +ddscb046 scaleb 1.23 1.1234E+6 -> NaN Invalid_operation +ddscb047 scaleb 1.23 1.123E+4 -> NaN Invalid_operation + +-- out-of range RHS +ddscb120 scaleb 1.23 799 -> Infinity Overflow Inexact Rounded +ddscb121 scaleb 1.23 800 -> Infinity Overflow Inexact Rounded +ddscb122 scaleb 1.23 801 -> NaN Invalid_operation +ddscb123 scaleb 1.23 802 -> NaN Invalid_operation +ddscb124 scaleb 1.23 -799 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +ddscb125 scaleb 1.23 -800 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +ddscb126 scaleb 1.23 -801 -> NaN Invalid_operation +ddscb127 scaleb 1.23 -802 -> NaN Invalid_operation + +-- NaNs, non-0 payload +-- propagating NaNs +ddscb861 scaleb NaN01 -Inf -> NaN1 +ddscb862 scaleb -NaN02 -1000 -> -NaN2 +ddscb863 scaleb NaN03 1000 -> NaN3 +ddscb864 scaleb NaN04 Inf -> NaN4 +ddscb865 scaleb NaN05 NaN61 -> NaN5 +ddscb866 scaleb -Inf -NaN71 -> -NaN71 +ddscb867 scaleb -1000 NaN81 -> NaN81 +ddscb868 scaleb 1000 NaN91 -> NaN91 +ddscb869 scaleb Inf NaN101 -> NaN101 +ddscb871 scaleb sNaN011 -Inf -> NaN11 Invalid_operation +ddscb872 scaleb sNaN012 -1000 -> NaN12 Invalid_operation +ddscb873 scaleb -sNaN013 1000 -> -NaN13 Invalid_operation +ddscb874 scaleb sNaN014 NaN171 -> NaN14 Invalid_operation +ddscb875 scaleb sNaN015 sNaN181 -> NaN15 Invalid_operation +ddscb876 scaleb NaN016 sNaN191 -> NaN191 Invalid_operation +ddscb877 scaleb -Inf sNaN201 -> NaN201 Invalid_operation +ddscb878 scaleb -1000 sNaN211 -> NaN211 Invalid_operation +ddscb879 scaleb 1000 -sNaN221 -> -NaN221 Invalid_operation +ddscb880 scaleb Inf sNaN231 -> NaN231 Invalid_operation +ddscb881 scaleb NaN025 sNaN241 -> NaN241 Invalid_operation + +-- finites +ddscb051 scaleb 7 -2 -> 0.07 +ddscb052 scaleb -7 -2 -> -0.07 +ddscb053 scaleb 75 -2 -> 0.75 +ddscb054 scaleb -75 -2 -> -0.75 +ddscb055 scaleb 7.50 -2 -> 0.0750 +ddscb056 scaleb -7.50 -2 -> -0.0750 +ddscb057 scaleb 7.500 -2 -> 0.07500 +ddscb058 scaleb -7.500 -2 -> -0.07500 +ddscb061 scaleb 7 -1 -> 0.7 +ddscb062 scaleb -7 -1 -> -0.7 +ddscb063 scaleb 75 -1 -> 7.5 +ddscb064 scaleb -75 -1 -> -7.5 +ddscb065 scaleb 7.50 -1 -> 0.750 +ddscb066 scaleb -7.50 -1 -> -0.750 +ddscb067 scaleb 7.500 -1 -> 0.7500 +ddscb068 scaleb -7.500 -1 -> -0.7500 +ddscb071 scaleb 7 0 -> 7 +ddscb072 scaleb -7 0 -> -7 +ddscb073 scaleb 75 0 -> 75 +ddscb074 scaleb -75 0 -> -75 +ddscb075 scaleb 7.50 0 -> 7.50 +ddscb076 scaleb -7.50 0 -> -7.50 +ddscb077 scaleb 7.500 0 -> 7.500 +ddscb078 scaleb -7.500 0 -> -7.500 +ddscb081 scaleb 7 1 -> 7E+1 +ddscb082 scaleb -7 1 -> -7E+1 +ddscb083 scaleb 75 1 -> 7.5E+2 +ddscb084 scaleb -75 1 -> -7.5E+2 +ddscb085 scaleb 7.50 1 -> 75.0 +ddscb086 scaleb -7.50 1 -> -75.0 +ddscb087 scaleb 7.500 1 -> 75.00 +ddscb088 scaleb -7.500 1 -> -75.00 +ddscb091 scaleb 7 2 -> 7E+2 +ddscb092 scaleb -7 2 -> -7E+2 +ddscb093 scaleb 75 2 -> 7.5E+3 +ddscb094 scaleb -75 2 -> -7.5E+3 +ddscb095 scaleb 7.50 2 -> 750 +ddscb096 scaleb -7.50 2 -> -750 +ddscb097 scaleb 7.500 2 -> 750.0 +ddscb098 scaleb -7.500 2 -> -750.0 + +-- zeros +ddscb111 scaleb 0 1 -> 0E+1 +ddscb112 scaleb -0 2 -> -0E+2 +ddscb113 scaleb 0E+4 3 -> 0E+7 +ddscb114 scaleb -0E+4 4 -> -0E+8 +ddscb115 scaleb 0.0000 5 -> 0E+1 +ddscb116 scaleb -0.0000 6 -> -0E+2 +ddscb117 scaleb 0E-141 7 -> 0E-134 +ddscb118 scaleb -0E-141 8 -> -0E-133 + +-- Nmax, Nmin, Ntiny +ddscb132 scaleb 9.999999999999999E+384 +384 -> Infinity Overflow Inexact Rounded +ddscb133 scaleb 9.999999999999999E+384 +10 -> Infinity Overflow Inexact Rounded +ddscb134 scaleb 9.999999999999999E+384 +1 -> Infinity Overflow Inexact Rounded +ddscb135 scaleb 9.999999999999999E+384 0 -> 9.999999999999999E+384 +ddscb136 scaleb 9.999999999999999E+384 -1 -> 9.999999999999999E+383 +ddscb137 scaleb 1E-383 +1 -> 1E-382 +ddscb138 scaleb 1E-383 -0 -> 1E-383 +ddscb139 scaleb 1E-383 -1 -> 1E-384 Subnormal +ddscb140 scaleb 1.000000000000000E-383 +1 -> 1.000000000000000E-382 +ddscb141 scaleb 1.000000000000000E-383 0 -> 1.000000000000000E-383 +ddscb142 scaleb 1.000000000000000E-383 -1 -> 1.00000000000000E-384 Subnormal Rounded +ddscb143 scaleb 1E-398 +1 -> 1E-397 Subnormal +ddscb144 scaleb 1E-398 -0 -> 1E-398 Subnormal +ddscb145 scaleb 1E-398 -1 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped + +ddscb150 scaleb -1E-398 +1 -> -1E-397 Subnormal +ddscb151 scaleb -1E-398 -0 -> -1E-398 Subnormal +ddscb152 scaleb -1E-398 -1 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped +ddscb153 scaleb -1.000000000000000E-383 +1 -> -1.000000000000000E-382 +ddscb154 scaleb -1.000000000000000E-383 +0 -> -1.000000000000000E-383 +ddscb155 scaleb -1.000000000000000E-383 -1 -> -1.00000000000000E-384 Subnormal Rounded +ddscb156 scaleb -1E-383 +1 -> -1E-382 +ddscb157 scaleb -1E-383 -0 -> -1E-383 +ddscb158 scaleb -1E-383 -1 -> -1E-384 Subnormal +ddscb159 scaleb -9.999999999999999E+384 +1 -> -Infinity Overflow Inexact Rounded +ddscb160 scaleb -9.999999999999999E+384 +0 -> -9.999999999999999E+384 +ddscb161 scaleb -9.999999999999999E+384 -1 -> -9.999999999999999E+383 +ddscb162 scaleb -9E+384 +1 -> -Infinity Overflow Inexact Rounded +ddscb163 scaleb -1E+384 +1 -> -Infinity Overflow Inexact Rounded + +-- some Origami +-- (these check that overflow is being done correctly) +ddscb171 scaleb 1000E+365 +1 -> 1.000E+369 +ddscb172 scaleb 1000E+366 +1 -> 1.000E+370 +ddscb173 scaleb 1000E+367 +1 -> 1.000E+371 +ddscb174 scaleb 1000E+368 +1 -> 1.000E+372 +ddscb175 scaleb 1000E+369 +1 -> 1.0000E+373 Clamped +ddscb176 scaleb 1000E+370 +1 -> 1.00000E+374 Clamped +ddscb177 scaleb 1000E+371 +1 -> 1.000000E+375 Clamped +ddscb178 scaleb 1000E+372 +1 -> 1.0000000E+376 Clamped +ddscb179 scaleb 1000E+373 +1 -> 1.00000000E+377 Clamped +ddscb180 scaleb 1000E+374 +1 -> 1.000000000E+378 Clamped +ddscb181 scaleb 1000E+375 +1 -> 1.0000000000E+379 Clamped +ddscb182 scaleb 1000E+376 +1 -> 1.00000000000E+380 Clamped +ddscb183 scaleb 1000E+377 +1 -> 1.000000000000E+381 Clamped +ddscb184 scaleb 1000E+378 +1 -> 1.0000000000000E+382 Clamped +ddscb185 scaleb 1000E+379 +1 -> 1.00000000000000E+383 Clamped +ddscb186 scaleb 1000E+380 +1 -> 1.000000000000000E+384 Clamped +ddscb187 scaleb 1000E+381 +1 -> Infinity Overflow Inexact Rounded + +-- and a few more subnormal truncations +-- (these check that underflow is being done correctly) +ddscb201 scaleb 1.000000000000000E-383 0 -> 1.000000000000000E-383 +ddscb202 scaleb 1.000000000000000E-383 -1 -> 1.00000000000000E-384 Subnormal Rounded +ddscb203 scaleb 1.000000000000000E-383 -2 -> 1.0000000000000E-385 Subnormal Rounded +ddscb204 scaleb 1.000000000000000E-383 -3 -> 1.000000000000E-386 Subnormal Rounded +ddscb205 scaleb 1.000000000000000E-383 -4 -> 1.00000000000E-387 Subnormal Rounded +ddscb206 scaleb 1.000000000000000E-383 -5 -> 1.0000000000E-388 Subnormal Rounded +ddscb207 scaleb 1.000000000000000E-383 -6 -> 1.000000000E-389 Subnormal Rounded +ddscb208 scaleb 1.000000000000000E-383 -7 -> 1.00000000E-390 Subnormal Rounded +ddscb209 scaleb 1.000000000000000E-383 -8 -> 1.0000000E-391 Subnormal Rounded +ddscb210 scaleb 1.000000000000000E-383 -9 -> 1.000000E-392 Subnormal Rounded +ddscb211 scaleb 1.000000000000000E-383 -10 -> 1.00000E-393 Subnormal Rounded +ddscb212 scaleb 1.000000000000000E-383 -11 -> 1.0000E-394 Subnormal Rounded +ddscb213 scaleb 1.000000000000000E-383 -12 -> 1.000E-395 Subnormal Rounded +ddscb214 scaleb 1.000000000000000E-383 -13 -> 1.00E-396 Subnormal Rounded +ddscb215 scaleb 1.000000000000000E-383 -14 -> 1.0E-397 Subnormal Rounded +ddscb216 scaleb 1.000000000000000E-383 -15 -> 1E-398 Subnormal Rounded +ddscb217 scaleb 1.000000000000000E-383 -16 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped +ddscb218 scaleb 1.000000000000000E-383 -17 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped + diff --git a/Lib/test/decimaltestdata/ddShift.decTest b/Lib/test/decimaltestdata/ddShift.decTest index ec472403e6..f62a236b2e 100644 --- a/Lib/test/decimaltestdata/ddShift.decTest +++ b/Lib/test/decimaltestdata/ddShift.decTest @@ -1,262 +1,262 @@ -------------------------------------------------------------------------
--- ddShift.decTest -- shift decDouble coefficient left or right --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
--- Sanity check
-ddshi001 shift 0 0 -> 0
-ddshi002 shift 0 2 -> 0
-ddshi003 shift 1 2 -> 100
-ddshi004 shift 1 15 -> 1000000000000000
-ddshi005 shift 1 16 -> 0
-ddshi006 shift 1 -1 -> 0
-ddshi007 shift 0 -2 -> 0
-ddshi008 shift 1234567890123456 -1 -> 123456789012345
-ddshi009 shift 1234567890123456 -15 -> 1
-ddshi010 shift 1234567890123456 -16 -> 0
-ddshi011 shift 9934567890123456 -15 -> 9
-ddshi012 shift 9934567890123456 -16 -> 0
-
--- rhs must be an integer
-ddshi015 shift 1 1.5 -> NaN Invalid_operation
-ddshi016 shift 1 1.0 -> NaN Invalid_operation
-ddshi017 shift 1 0.1 -> NaN Invalid_operation
-ddshi018 shift 1 0.0 -> NaN Invalid_operation
-ddshi019 shift 1 1E+1 -> NaN Invalid_operation
-ddshi020 shift 1 1E+99 -> NaN Invalid_operation
-ddshi021 shift 1 Inf -> NaN Invalid_operation
-ddshi022 shift 1 -Inf -> NaN Invalid_operation
--- and |rhs| <= precision
-ddshi025 shift 1 -1000 -> NaN Invalid_operation
-ddshi026 shift 1 -17 -> NaN Invalid_operation
-ddshi027 shift 1 17 -> NaN Invalid_operation
-ddshi028 shift 1 1000 -> NaN Invalid_operation
-
--- full shifting pattern
-ddshi030 shift 1234567890123456 -16 -> 0
-ddshi031 shift 1234567890123456 -15 -> 1
-ddshi032 shift 1234567890123456 -14 -> 12
-ddshi033 shift 1234567890123456 -13 -> 123
-ddshi034 shift 1234567890123456 -12 -> 1234
-ddshi035 shift 1234567890123456 -11 -> 12345
-ddshi036 shift 1234567890123456 -10 -> 123456
-ddshi037 shift 1234567890123456 -9 -> 1234567
-ddshi038 shift 1234567890123456 -8 -> 12345678
-ddshi039 shift 1234567890123456 -7 -> 123456789
-ddshi040 shift 1234567890123456 -6 -> 1234567890
-ddshi041 shift 1234567890123456 -5 -> 12345678901
-ddshi042 shift 1234567890123456 -4 -> 123456789012
-ddshi043 shift 1234567890123456 -3 -> 1234567890123
-ddshi044 shift 1234567890123456 -2 -> 12345678901234
-ddshi045 shift 1234567890123456 -1 -> 123456789012345
-ddshi046 shift 1234567890123456 -0 -> 1234567890123456
-
-ddshi047 shift 1234567890123456 +0 -> 1234567890123456
-ddshi048 shift 1234567890123456 +1 -> 2345678901234560
-ddshi049 shift 1234567890123456 +2 -> 3456789012345600
-ddshi050 shift 1234567890123456 +3 -> 4567890123456000
-ddshi051 shift 1234567890123456 +4 -> 5678901234560000
-ddshi052 shift 1234567890123456 +5 -> 6789012345600000
-ddshi053 shift 1234567890123456 +6 -> 7890123456000000
-ddshi054 shift 1234567890123456 +7 -> 8901234560000000
-ddshi055 shift 1234567890123456 +8 -> 9012345600000000
-ddshi056 shift 1234567890123456 +9 -> 123456000000000
-ddshi057 shift 1234567890123456 +10 -> 1234560000000000
-ddshi058 shift 1234567890123456 +11 -> 2345600000000000
-ddshi059 shift 1234567890123456 +12 -> 3456000000000000
-ddshi060 shift 1234567890123456 +13 -> 4560000000000000
-ddshi061 shift 1234567890123456 +14 -> 5600000000000000
-ddshi062 shift 1234567890123456 +15 -> 6000000000000000
-ddshi063 shift 1234567890123456 +16 -> 0
-
--- zeros
-ddshi070 shift 0E-10 +9 -> 0E-10
-ddshi071 shift 0E-10 -9 -> 0E-10
-ddshi072 shift 0.000 +9 -> 0.000
-ddshi073 shift 0.000 -9 -> 0.000
-ddshi074 shift 0E+10 +9 -> 0E+10
-ddshi075 shift 0E+10 -9 -> 0E+10
-ddshi076 shift -0E-10 +9 -> -0E-10
-ddshi077 shift -0E-10 -9 -> -0E-10
-ddshi078 shift -0.000 +9 -> -0.000
-ddshi079 shift -0.000 -9 -> -0.000
-ddshi080 shift -0E+10 +9 -> -0E+10
-ddshi081 shift -0E+10 -9 -> -0E+10
-
--- Nmax, Nmin, Ntiny
-ddshi141 shift 9.999999999999999E+384 -1 -> 9.99999999999999E+383
-ddshi142 shift 9.999999999999999E+384 -15 -> 9E+369
-ddshi143 shift 9.999999999999999E+384 1 -> 9.999999999999990E+384
-ddshi144 shift 9.999999999999999E+384 15 -> 9.000000000000000E+384
-ddshi145 shift 1E-383 -1 -> 0E-383
-ddshi146 shift 1E-383 -15 -> 0E-383
-ddshi147 shift 1E-383 1 -> 1.0E-382
-ddshi148 shift 1E-383 15 -> 1.000000000000000E-368
-ddshi151 shift 1.000000000000000E-383 -1 -> 1.00000000000000E-384
-ddshi152 shift 1.000000000000000E-383 -15 -> 1E-398
-ddshi153 shift 1.000000000000000E-383 1 -> 0E-398
-ddshi154 shift 1.000000000000000E-383 15 -> 0E-398
-ddshi155 shift 9.000000000000000E-383 -1 -> 9.00000000000000E-384
-ddshi156 shift 9.000000000000000E-383 -15 -> 9E-398
-ddshi157 shift 9.000000000000000E-383 1 -> 0E-398
-ddshi158 shift 9.000000000000000E-383 15 -> 0E-398
-ddshi160 shift 1E-398 -1 -> 0E-398
-ddshi161 shift 1E-398 -15 -> 0E-398
-ddshi162 shift 1E-398 1 -> 1.0E-397
-ddshi163 shift 1E-398 15 -> 1.000000000000000E-383
--- negatives
-ddshi171 shift -9.999999999999999E+384 -1 -> -9.99999999999999E+383
-ddshi172 shift -9.999999999999999E+384 -15 -> -9E+369
-ddshi173 shift -9.999999999999999E+384 1 -> -9.999999999999990E+384
-ddshi174 shift -9.999999999999999E+384 15 -> -9.000000000000000E+384
-ddshi175 shift -1E-383 -1 -> -0E-383
-ddshi176 shift -1E-383 -15 -> -0E-383
-ddshi177 shift -1E-383 1 -> -1.0E-382
-ddshi178 shift -1E-383 15 -> -1.000000000000000E-368
-ddshi181 shift -1.000000000000000E-383 -1 -> -1.00000000000000E-384
-ddshi182 shift -1.000000000000000E-383 -15 -> -1E-398
-ddshi183 shift -1.000000000000000E-383 1 -> -0E-398
-ddshi184 shift -1.000000000000000E-383 15 -> -0E-398
-ddshi185 shift -9.000000000000000E-383 -1 -> -9.00000000000000E-384
-ddshi186 shift -9.000000000000000E-383 -15 -> -9E-398
-ddshi187 shift -9.000000000000000E-383 1 -> -0E-398
-ddshi188 shift -9.000000000000000E-383 15 -> -0E-398
-ddshi190 shift -1E-398 -1 -> -0E-398
-ddshi191 shift -1E-398 -15 -> -0E-398
-ddshi192 shift -1E-398 1 -> -1.0E-397
-ddshi193 shift -1E-398 15 -> -1.000000000000000E-383
-
--- more negatives (of sanities)
-ddshi201 shift -0 0 -> -0
-ddshi202 shift -0 2 -> -0
-ddshi203 shift -1 2 -> -100
-ddshi204 shift -1 15 -> -1000000000000000
-ddshi205 shift -1 16 -> -0
-ddshi206 shift -1 -1 -> -0
-ddshi207 shift -0 -2 -> -0
-ddshi208 shift -1234567890123456 -1 -> -123456789012345
-ddshi209 shift -1234567890123456 -15 -> -1
-ddshi210 shift -1234567890123456 -16 -> -0
-ddshi211 shift -9934567890123456 -15 -> -9
-ddshi212 shift -9934567890123456 -16 -> -0
-
-
--- Specials; NaNs are handled as usual
-ddshi781 shift -Inf -8 -> -Infinity
-ddshi782 shift -Inf -1 -> -Infinity
-ddshi783 shift -Inf -0 -> -Infinity
-ddshi784 shift -Inf 0 -> -Infinity
-ddshi785 shift -Inf 1 -> -Infinity
-ddshi786 shift -Inf 8 -> -Infinity
-ddshi787 shift -1000 -Inf -> NaN Invalid_operation
-ddshi788 shift -Inf -Inf -> NaN Invalid_operation
-ddshi789 shift -1 -Inf -> NaN Invalid_operation
-ddshi790 shift -0 -Inf -> NaN Invalid_operation
-ddshi791 shift 0 -Inf -> NaN Invalid_operation
-ddshi792 shift 1 -Inf -> NaN Invalid_operation
-ddshi793 shift 1000 -Inf -> NaN Invalid_operation
-ddshi794 shift Inf -Inf -> NaN Invalid_operation
-
-ddshi800 shift Inf -Inf -> NaN Invalid_operation
-ddshi801 shift Inf -8 -> Infinity
-ddshi802 shift Inf -1 -> Infinity
-ddshi803 shift Inf -0 -> Infinity
-ddshi804 shift Inf 0 -> Infinity
-ddshi805 shift Inf 1 -> Infinity
-ddshi806 shift Inf 8 -> Infinity
-ddshi807 shift Inf Inf -> NaN Invalid_operation
-ddshi808 shift -1000 Inf -> NaN Invalid_operation
-ddshi809 shift -Inf Inf -> NaN Invalid_operation
-ddshi810 shift -1 Inf -> NaN Invalid_operation
-ddshi811 shift -0 Inf -> NaN Invalid_operation
-ddshi812 shift 0 Inf -> NaN Invalid_operation
-ddshi813 shift 1 Inf -> NaN Invalid_operation
-ddshi814 shift 1000 Inf -> NaN Invalid_operation
-ddshi815 shift Inf Inf -> NaN Invalid_operation
-
-ddshi821 shift NaN -Inf -> NaN
-ddshi822 shift NaN -1000 -> NaN
-ddshi823 shift NaN -1 -> NaN
-ddshi824 shift NaN -0 -> NaN
-ddshi825 shift NaN 0 -> NaN
-ddshi826 shift NaN 1 -> NaN
-ddshi827 shift NaN 1000 -> NaN
-ddshi828 shift NaN Inf -> NaN
-ddshi829 shift NaN NaN -> NaN
-ddshi830 shift -Inf NaN -> NaN
-ddshi831 shift -1000 NaN -> NaN
-ddshi832 shift -1 NaN -> NaN
-ddshi833 shift -0 NaN -> NaN
-ddshi834 shift 0 NaN -> NaN
-ddshi835 shift 1 NaN -> NaN
-ddshi836 shift 1000 NaN -> NaN
-ddshi837 shift Inf NaN -> NaN
-
-ddshi841 shift sNaN -Inf -> NaN Invalid_operation
-ddshi842 shift sNaN -1000 -> NaN Invalid_operation
-ddshi843 shift sNaN -1 -> NaN Invalid_operation
-ddshi844 shift sNaN -0 -> NaN Invalid_operation
-ddshi845 shift sNaN 0 -> NaN Invalid_operation
-ddshi846 shift sNaN 1 -> NaN Invalid_operation
-ddshi847 shift sNaN 1000 -> NaN Invalid_operation
-ddshi848 shift sNaN NaN -> NaN Invalid_operation
-ddshi849 shift sNaN sNaN -> NaN Invalid_operation
-ddshi850 shift NaN sNaN -> NaN Invalid_operation
-ddshi851 shift -Inf sNaN -> NaN Invalid_operation
-ddshi852 shift -1000 sNaN -> NaN Invalid_operation
-ddshi853 shift -1 sNaN -> NaN Invalid_operation
-ddshi854 shift -0 sNaN -> NaN Invalid_operation
-ddshi855 shift 0 sNaN -> NaN Invalid_operation
-ddshi856 shift 1 sNaN -> NaN Invalid_operation
-ddshi857 shift 1000 sNaN -> NaN Invalid_operation
-ddshi858 shift Inf sNaN -> NaN Invalid_operation
-ddshi859 shift NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-ddshi861 shift NaN1 -Inf -> NaN1
-ddshi862 shift +NaN2 -1000 -> NaN2
-ddshi863 shift NaN3 1000 -> NaN3
-ddshi864 shift NaN4 Inf -> NaN4
-ddshi865 shift NaN5 +NaN6 -> NaN5
-ddshi866 shift -Inf NaN7 -> NaN7
-ddshi867 shift -1000 NaN8 -> NaN8
-ddshi868 shift 1000 NaN9 -> NaN9
-ddshi869 shift Inf +NaN10 -> NaN10
-ddshi871 shift sNaN11 -Inf -> NaN11 Invalid_operation
-ddshi872 shift sNaN12 -1000 -> NaN12 Invalid_operation
-ddshi873 shift sNaN13 1000 -> NaN13 Invalid_operation
-ddshi874 shift sNaN14 NaN17 -> NaN14 Invalid_operation
-ddshi875 shift sNaN15 sNaN18 -> NaN15 Invalid_operation
-ddshi876 shift NaN16 sNaN19 -> NaN19 Invalid_operation
-ddshi877 shift -Inf +sNaN20 -> NaN20 Invalid_operation
-ddshi878 shift -1000 sNaN21 -> NaN21 Invalid_operation
-ddshi879 shift 1000 sNaN22 -> NaN22 Invalid_operation
-ddshi880 shift Inf sNaN23 -> NaN23 Invalid_operation
-ddshi881 shift +NaN25 +sNaN24 -> NaN24 Invalid_operation
-ddshi882 shift -NaN26 NaN28 -> -NaN26
-ddshi883 shift -sNaN27 sNaN29 -> -NaN27 Invalid_operation
-ddshi884 shift 1000 -NaN30 -> -NaN30
-ddshi885 shift 1000 -sNaN31 -> -NaN31 Invalid_operation
+------------------------------------------------------------------------ +-- ddShift.decTest -- shift decDouble coefficient left or right -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +-- Sanity check +ddshi001 shift 0 0 -> 0 +ddshi002 shift 0 2 -> 0 +ddshi003 shift 1 2 -> 100 +ddshi004 shift 1 15 -> 1000000000000000 +ddshi005 shift 1 16 -> 0 +ddshi006 shift 1 -1 -> 0 +ddshi007 shift 0 -2 -> 0 +ddshi008 shift 1234567890123456 -1 -> 123456789012345 +ddshi009 shift 1234567890123456 -15 -> 1 +ddshi010 shift 1234567890123456 -16 -> 0 +ddshi011 shift 9934567890123456 -15 -> 9 +ddshi012 shift 9934567890123456 -16 -> 0 + +-- rhs must be an integer +ddshi015 shift 1 1.5 -> NaN Invalid_operation +ddshi016 shift 1 1.0 -> NaN Invalid_operation +ddshi017 shift 1 0.1 -> NaN Invalid_operation +ddshi018 shift 1 0.0 -> NaN Invalid_operation +ddshi019 shift 1 1E+1 -> NaN Invalid_operation +ddshi020 shift 1 1E+99 -> NaN Invalid_operation +ddshi021 shift 1 Inf -> NaN Invalid_operation +ddshi022 shift 1 -Inf -> NaN Invalid_operation +-- and |rhs| <= precision +ddshi025 shift 1 -1000 -> NaN Invalid_operation +ddshi026 shift 1 -17 -> NaN Invalid_operation +ddshi027 shift 1 17 -> NaN Invalid_operation +ddshi028 shift 1 1000 -> NaN Invalid_operation + +-- full shifting pattern +ddshi030 shift 1234567890123456 -16 -> 0 +ddshi031 shift 1234567890123456 -15 -> 1 +ddshi032 shift 1234567890123456 -14 -> 12 +ddshi033 shift 1234567890123456 -13 -> 123 +ddshi034 shift 1234567890123456 -12 -> 1234 +ddshi035 shift 1234567890123456 -11 -> 12345 +ddshi036 shift 1234567890123456 -10 -> 123456 +ddshi037 shift 1234567890123456 -9 -> 1234567 +ddshi038 shift 1234567890123456 -8 -> 12345678 +ddshi039 shift 1234567890123456 -7 -> 123456789 +ddshi040 shift 1234567890123456 -6 -> 1234567890 +ddshi041 shift 1234567890123456 -5 -> 12345678901 +ddshi042 shift 1234567890123456 -4 -> 123456789012 +ddshi043 shift 1234567890123456 -3 -> 1234567890123 +ddshi044 shift 1234567890123456 -2 -> 12345678901234 +ddshi045 shift 1234567890123456 -1 -> 123456789012345 +ddshi046 shift 1234567890123456 -0 -> 1234567890123456 + +ddshi047 shift 1234567890123456 +0 -> 1234567890123456 +ddshi048 shift 1234567890123456 +1 -> 2345678901234560 +ddshi049 shift 1234567890123456 +2 -> 3456789012345600 +ddshi050 shift 1234567890123456 +3 -> 4567890123456000 +ddshi051 shift 1234567890123456 +4 -> 5678901234560000 +ddshi052 shift 1234567890123456 +5 -> 6789012345600000 +ddshi053 shift 1234567890123456 +6 -> 7890123456000000 +ddshi054 shift 1234567890123456 +7 -> 8901234560000000 +ddshi055 shift 1234567890123456 +8 -> 9012345600000000 +ddshi056 shift 1234567890123456 +9 -> 123456000000000 +ddshi057 shift 1234567890123456 +10 -> 1234560000000000 +ddshi058 shift 1234567890123456 +11 -> 2345600000000000 +ddshi059 shift 1234567890123456 +12 -> 3456000000000000 +ddshi060 shift 1234567890123456 +13 -> 4560000000000000 +ddshi061 shift 1234567890123456 +14 -> 5600000000000000 +ddshi062 shift 1234567890123456 +15 -> 6000000000000000 +ddshi063 shift 1234567890123456 +16 -> 0 + +-- zeros +ddshi070 shift 0E-10 +9 -> 0E-10 +ddshi071 shift 0E-10 -9 -> 0E-10 +ddshi072 shift 0.000 +9 -> 0.000 +ddshi073 shift 0.000 -9 -> 0.000 +ddshi074 shift 0E+10 +9 -> 0E+10 +ddshi075 shift 0E+10 -9 -> 0E+10 +ddshi076 shift -0E-10 +9 -> -0E-10 +ddshi077 shift -0E-10 -9 -> -0E-10 +ddshi078 shift -0.000 +9 -> -0.000 +ddshi079 shift -0.000 -9 -> -0.000 +ddshi080 shift -0E+10 +9 -> -0E+10 +ddshi081 shift -0E+10 -9 -> -0E+10 + +-- Nmax, Nmin, Ntiny +ddshi141 shift 9.999999999999999E+384 -1 -> 9.99999999999999E+383 +ddshi142 shift 9.999999999999999E+384 -15 -> 9E+369 +ddshi143 shift 9.999999999999999E+384 1 -> 9.999999999999990E+384 +ddshi144 shift 9.999999999999999E+384 15 -> 9.000000000000000E+384 +ddshi145 shift 1E-383 -1 -> 0E-383 +ddshi146 shift 1E-383 -15 -> 0E-383 +ddshi147 shift 1E-383 1 -> 1.0E-382 +ddshi148 shift 1E-383 15 -> 1.000000000000000E-368 +ddshi151 shift 1.000000000000000E-383 -1 -> 1.00000000000000E-384 +ddshi152 shift 1.000000000000000E-383 -15 -> 1E-398 +ddshi153 shift 1.000000000000000E-383 1 -> 0E-398 +ddshi154 shift 1.000000000000000E-383 15 -> 0E-398 +ddshi155 shift 9.000000000000000E-383 -1 -> 9.00000000000000E-384 +ddshi156 shift 9.000000000000000E-383 -15 -> 9E-398 +ddshi157 shift 9.000000000000000E-383 1 -> 0E-398 +ddshi158 shift 9.000000000000000E-383 15 -> 0E-398 +ddshi160 shift 1E-398 -1 -> 0E-398 +ddshi161 shift 1E-398 -15 -> 0E-398 +ddshi162 shift 1E-398 1 -> 1.0E-397 +ddshi163 shift 1E-398 15 -> 1.000000000000000E-383 +-- negatives +ddshi171 shift -9.999999999999999E+384 -1 -> -9.99999999999999E+383 +ddshi172 shift -9.999999999999999E+384 -15 -> -9E+369 +ddshi173 shift -9.999999999999999E+384 1 -> -9.999999999999990E+384 +ddshi174 shift -9.999999999999999E+384 15 -> -9.000000000000000E+384 +ddshi175 shift -1E-383 -1 -> -0E-383 +ddshi176 shift -1E-383 -15 -> -0E-383 +ddshi177 shift -1E-383 1 -> -1.0E-382 +ddshi178 shift -1E-383 15 -> -1.000000000000000E-368 +ddshi181 shift -1.000000000000000E-383 -1 -> -1.00000000000000E-384 +ddshi182 shift -1.000000000000000E-383 -15 -> -1E-398 +ddshi183 shift -1.000000000000000E-383 1 -> -0E-398 +ddshi184 shift -1.000000000000000E-383 15 -> -0E-398 +ddshi185 shift -9.000000000000000E-383 -1 -> -9.00000000000000E-384 +ddshi186 shift -9.000000000000000E-383 -15 -> -9E-398 +ddshi187 shift -9.000000000000000E-383 1 -> -0E-398 +ddshi188 shift -9.000000000000000E-383 15 -> -0E-398 +ddshi190 shift -1E-398 -1 -> -0E-398 +ddshi191 shift -1E-398 -15 -> -0E-398 +ddshi192 shift -1E-398 1 -> -1.0E-397 +ddshi193 shift -1E-398 15 -> -1.000000000000000E-383 + +-- more negatives (of sanities) +ddshi201 shift -0 0 -> -0 +ddshi202 shift -0 2 -> -0 +ddshi203 shift -1 2 -> -100 +ddshi204 shift -1 15 -> -1000000000000000 +ddshi205 shift -1 16 -> -0 +ddshi206 shift -1 -1 -> -0 +ddshi207 shift -0 -2 -> -0 +ddshi208 shift -1234567890123456 -1 -> -123456789012345 +ddshi209 shift -1234567890123456 -15 -> -1 +ddshi210 shift -1234567890123456 -16 -> -0 +ddshi211 shift -9934567890123456 -15 -> -9 +ddshi212 shift -9934567890123456 -16 -> -0 + + +-- Specials; NaNs are handled as usual +ddshi781 shift -Inf -8 -> -Infinity +ddshi782 shift -Inf -1 -> -Infinity +ddshi783 shift -Inf -0 -> -Infinity +ddshi784 shift -Inf 0 -> -Infinity +ddshi785 shift -Inf 1 -> -Infinity +ddshi786 shift -Inf 8 -> -Infinity +ddshi787 shift -1000 -Inf -> NaN Invalid_operation +ddshi788 shift -Inf -Inf -> NaN Invalid_operation +ddshi789 shift -1 -Inf -> NaN Invalid_operation +ddshi790 shift -0 -Inf -> NaN Invalid_operation +ddshi791 shift 0 -Inf -> NaN Invalid_operation +ddshi792 shift 1 -Inf -> NaN Invalid_operation +ddshi793 shift 1000 -Inf -> NaN Invalid_operation +ddshi794 shift Inf -Inf -> NaN Invalid_operation + +ddshi800 shift Inf -Inf -> NaN Invalid_operation +ddshi801 shift Inf -8 -> Infinity +ddshi802 shift Inf -1 -> Infinity +ddshi803 shift Inf -0 -> Infinity +ddshi804 shift Inf 0 -> Infinity +ddshi805 shift Inf 1 -> Infinity +ddshi806 shift Inf 8 -> Infinity +ddshi807 shift Inf Inf -> NaN Invalid_operation +ddshi808 shift -1000 Inf -> NaN Invalid_operation +ddshi809 shift -Inf Inf -> NaN Invalid_operation +ddshi810 shift -1 Inf -> NaN Invalid_operation +ddshi811 shift -0 Inf -> NaN Invalid_operation +ddshi812 shift 0 Inf -> NaN Invalid_operation +ddshi813 shift 1 Inf -> NaN Invalid_operation +ddshi814 shift 1000 Inf -> NaN Invalid_operation +ddshi815 shift Inf Inf -> NaN Invalid_operation + +ddshi821 shift NaN -Inf -> NaN +ddshi822 shift NaN -1000 -> NaN +ddshi823 shift NaN -1 -> NaN +ddshi824 shift NaN -0 -> NaN +ddshi825 shift NaN 0 -> NaN +ddshi826 shift NaN 1 -> NaN +ddshi827 shift NaN 1000 -> NaN +ddshi828 shift NaN Inf -> NaN +ddshi829 shift NaN NaN -> NaN +ddshi830 shift -Inf NaN -> NaN +ddshi831 shift -1000 NaN -> NaN +ddshi832 shift -1 NaN -> NaN +ddshi833 shift -0 NaN -> NaN +ddshi834 shift 0 NaN -> NaN +ddshi835 shift 1 NaN -> NaN +ddshi836 shift 1000 NaN -> NaN +ddshi837 shift Inf NaN -> NaN + +ddshi841 shift sNaN -Inf -> NaN Invalid_operation +ddshi842 shift sNaN -1000 -> NaN Invalid_operation +ddshi843 shift sNaN -1 -> NaN Invalid_operation +ddshi844 shift sNaN -0 -> NaN Invalid_operation +ddshi845 shift sNaN 0 -> NaN Invalid_operation +ddshi846 shift sNaN 1 -> NaN Invalid_operation +ddshi847 shift sNaN 1000 -> NaN Invalid_operation +ddshi848 shift sNaN NaN -> NaN Invalid_operation +ddshi849 shift sNaN sNaN -> NaN Invalid_operation +ddshi850 shift NaN sNaN -> NaN Invalid_operation +ddshi851 shift -Inf sNaN -> NaN Invalid_operation +ddshi852 shift -1000 sNaN -> NaN Invalid_operation +ddshi853 shift -1 sNaN -> NaN Invalid_operation +ddshi854 shift -0 sNaN -> NaN Invalid_operation +ddshi855 shift 0 sNaN -> NaN Invalid_operation +ddshi856 shift 1 sNaN -> NaN Invalid_operation +ddshi857 shift 1000 sNaN -> NaN Invalid_operation +ddshi858 shift Inf sNaN -> NaN Invalid_operation +ddshi859 shift NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +ddshi861 shift NaN1 -Inf -> NaN1 +ddshi862 shift +NaN2 -1000 -> NaN2 +ddshi863 shift NaN3 1000 -> NaN3 +ddshi864 shift NaN4 Inf -> NaN4 +ddshi865 shift NaN5 +NaN6 -> NaN5 +ddshi866 shift -Inf NaN7 -> NaN7 +ddshi867 shift -1000 NaN8 -> NaN8 +ddshi868 shift 1000 NaN9 -> NaN9 +ddshi869 shift Inf +NaN10 -> NaN10 +ddshi871 shift sNaN11 -Inf -> NaN11 Invalid_operation +ddshi872 shift sNaN12 -1000 -> NaN12 Invalid_operation +ddshi873 shift sNaN13 1000 -> NaN13 Invalid_operation +ddshi874 shift sNaN14 NaN17 -> NaN14 Invalid_operation +ddshi875 shift sNaN15 sNaN18 -> NaN15 Invalid_operation +ddshi876 shift NaN16 sNaN19 -> NaN19 Invalid_operation +ddshi877 shift -Inf +sNaN20 -> NaN20 Invalid_operation +ddshi878 shift -1000 sNaN21 -> NaN21 Invalid_operation +ddshi879 shift 1000 sNaN22 -> NaN22 Invalid_operation +ddshi880 shift Inf sNaN23 -> NaN23 Invalid_operation +ddshi881 shift +NaN25 +sNaN24 -> NaN24 Invalid_operation +ddshi882 shift -NaN26 NaN28 -> -NaN26 +ddshi883 shift -sNaN27 sNaN29 -> -NaN27 Invalid_operation +ddshi884 shift 1000 -NaN30 -> -NaN30 +ddshi885 shift 1000 -sNaN31 -> -NaN31 Invalid_operation diff --git a/Lib/test/decimaltestdata/ddSubtract.decTest b/Lib/test/decimaltestdata/ddSubtract.decTest index 15d47779eb..5ebc4878f0 100644 --- a/Lib/test/decimaltestdata/ddSubtract.decTest +++ b/Lib/test/decimaltestdata/ddSubtract.decTest @@ -1,629 +1,629 @@ -------------------------------------------------------------------------
--- ddSubtract.decTest -- decDouble subtraction --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- This set of tests are for decDoubles only; all arguments are
--- representable in a decDouble
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
--- [first group are 'quick confidence check']
-ddsub001 subtract 0 0 -> '0'
-ddsub002 subtract 1 1 -> '0'
-ddsub003 subtract 1 2 -> '-1'
-ddsub004 subtract 2 1 -> '1'
-ddsub005 subtract 2 2 -> '0'
-ddsub006 subtract 3 2 -> '1'
-ddsub007 subtract 2 3 -> '-1'
-
-ddsub011 subtract -0 0 -> '-0'
-ddsub012 subtract -1 1 -> '-2'
-ddsub013 subtract -1 2 -> '-3'
-ddsub014 subtract -2 1 -> '-3'
-ddsub015 subtract -2 2 -> '-4'
-ddsub016 subtract -3 2 -> '-5'
-ddsub017 subtract -2 3 -> '-5'
-
-ddsub021 subtract 0 -0 -> '0'
-ddsub022 subtract 1 -1 -> '2'
-ddsub023 subtract 1 -2 -> '3'
-ddsub024 subtract 2 -1 -> '3'
-ddsub025 subtract 2 -2 -> '4'
-ddsub026 subtract 3 -2 -> '5'
-ddsub027 subtract 2 -3 -> '5'
-
-ddsub030 subtract 11 1 -> 10
-ddsub031 subtract 10 1 -> 9
-ddsub032 subtract 9 1 -> 8
-ddsub033 subtract 1 1 -> 0
-ddsub034 subtract 0 1 -> -1
-ddsub035 subtract -1 1 -> -2
-ddsub036 subtract -9 1 -> -10
-ddsub037 subtract -10 1 -> -11
-ddsub038 subtract -11 1 -> -12
-
-ddsub040 subtract '5.75' '3.3' -> '2.45'
-ddsub041 subtract '5' '-3' -> '8'
-ddsub042 subtract '-5' '-3' -> '-2'
-ddsub043 subtract '-7' '2.5' -> '-9.5'
-ddsub044 subtract '0.7' '0.3' -> '0.4'
-ddsub045 subtract '1.3' '0.3' -> '1.0'
-ddsub046 subtract '1.25' '1.25' -> '0.00'
-
-ddsub050 subtract '1.23456789' '1.00000000' -> '0.23456789'
-ddsub051 subtract '1.23456789' '1.00000089' -> '0.23456700'
-
-ddsub060 subtract '70' '10000e+16' -> '-1.000000000000000E+20' Inexact Rounded
-ddsub061 subtract '700' '10000e+16' -> '-1.000000000000000E+20' Inexact Rounded
-ddsub062 subtract '7000' '10000e+16' -> '-9.999999999999999E+19' Inexact Rounded
-ddsub063 subtract '70000' '10000e+16' -> '-9.999999999999993E+19' Rounded
-ddsub064 subtract '700000' '10000e+16' -> '-9.999999999999930E+19' Rounded
- -- symmetry:
-ddsub065 subtract '10000e+16' '70' -> '1.000000000000000E+20' Inexact Rounded
-ddsub066 subtract '10000e+16' '700' -> '1.000000000000000E+20' Inexact Rounded
-ddsub067 subtract '10000e+16' '7000' -> '9.999999999999999E+19' Inexact Rounded
-ddsub068 subtract '10000e+16' '70000' -> '9.999999999999993E+19' Rounded
-ddsub069 subtract '10000e+16' '700000' -> '9.999999999999930E+19' Rounded
-
- -- some of the next group are really constructor tests
-ddsub090 subtract '00.0' '0.0' -> '0.0'
-ddsub091 subtract '00.0' '0.00' -> '0.00'
-ddsub092 subtract '0.00' '00.0' -> '0.00'
-ddsub093 subtract '00.0' '0.00' -> '0.00'
-ddsub094 subtract '0.00' '00.0' -> '0.00'
-ddsub095 subtract '3' '.3' -> '2.7'
-ddsub096 subtract '3.' '.3' -> '2.7'
-ddsub097 subtract '3.0' '.3' -> '2.7'
-ddsub098 subtract '3.00' '.3' -> '2.70'
-ddsub099 subtract '3' '3' -> '0'
-ddsub100 subtract '3' '+3' -> '0'
-ddsub101 subtract '3' '-3' -> '6'
-ddsub102 subtract '3' '0.3' -> '2.7'
-ddsub103 subtract '3.' '0.3' -> '2.7'
-ddsub104 subtract '3.0' '0.3' -> '2.7'
-ddsub105 subtract '3.00' '0.3' -> '2.70'
-ddsub106 subtract '3' '3.0' -> '0.0'
-ddsub107 subtract '3' '+3.0' -> '0.0'
-ddsub108 subtract '3' '-3.0' -> '6.0'
-
--- the above all from add; massaged and extended. Now some new ones...
--- [particularly important for comparisons]
--- NB: -xE-8 below were non-exponents pre-ANSI X3-274, and -1E-7 or 0E-7
--- with input rounding.
-ddsub120 subtract '10.23456784' '10.23456789' -> '-5E-8'
-ddsub121 subtract '10.23456785' '10.23456789' -> '-4E-8'
-ddsub122 subtract '10.23456786' '10.23456789' -> '-3E-8'
-ddsub123 subtract '10.23456787' '10.23456789' -> '-2E-8'
-ddsub124 subtract '10.23456788' '10.23456789' -> '-1E-8'
-ddsub125 subtract '10.23456789' '10.23456789' -> '0E-8'
-ddsub126 subtract '10.23456790' '10.23456789' -> '1E-8'
-ddsub127 subtract '10.23456791' '10.23456789' -> '2E-8'
-ddsub128 subtract '10.23456792' '10.23456789' -> '3E-8'
-ddsub129 subtract '10.23456793' '10.23456789' -> '4E-8'
-ddsub130 subtract '10.23456794' '10.23456789' -> '5E-8'
-ddsub131 subtract '10.23456781' '10.23456786' -> '-5E-8'
-ddsub132 subtract '10.23456782' '10.23456786' -> '-4E-8'
-ddsub133 subtract '10.23456783' '10.23456786' -> '-3E-8'
-ddsub134 subtract '10.23456784' '10.23456786' -> '-2E-8'
-ddsub135 subtract '10.23456785' '10.23456786' -> '-1E-8'
-ddsub136 subtract '10.23456786' '10.23456786' -> '0E-8'
-ddsub137 subtract '10.23456787' '10.23456786' -> '1E-8'
-ddsub138 subtract '10.23456788' '10.23456786' -> '2E-8'
-ddsub139 subtract '10.23456789' '10.23456786' -> '3E-8'
-ddsub140 subtract '10.23456790' '10.23456786' -> '4E-8'
-ddsub141 subtract '10.23456791' '10.23456786' -> '5E-8'
-ddsub142 subtract '1' '0.999999999' -> '1E-9'
-ddsub143 subtract '0.999999999' '1' -> '-1E-9'
-ddsub144 subtract '-10.23456780' '-10.23456786' -> '6E-8'
-ddsub145 subtract '-10.23456790' '-10.23456786' -> '-4E-8'
-ddsub146 subtract '-10.23456791' '-10.23456786' -> '-5E-8'
-
--- additional scaled arithmetic tests [0.97 problem]
-ddsub160 subtract '0' '.1' -> '-0.1'
-ddsub161 subtract '00' '.97983' -> '-0.97983'
-ddsub162 subtract '0' '.9' -> '-0.9'
-ddsub163 subtract '0' '0.102' -> '-0.102'
-ddsub164 subtract '0' '.4' -> '-0.4'
-ddsub165 subtract '0' '.307' -> '-0.307'
-ddsub166 subtract '0' '.43822' -> '-0.43822'
-ddsub167 subtract '0' '.911' -> '-0.911'
-ddsub168 subtract '.0' '.02' -> '-0.02'
-ddsub169 subtract '00' '.392' -> '-0.392'
-ddsub170 subtract '0' '.26' -> '-0.26'
-ddsub171 subtract '0' '0.51' -> '-0.51'
-ddsub172 subtract '0' '.2234' -> '-0.2234'
-ddsub173 subtract '0' '.2' -> '-0.2'
-ddsub174 subtract '.0' '.0008' -> '-0.0008'
--- 0. on left
-ddsub180 subtract '0.0' '-.1' -> '0.1'
-ddsub181 subtract '0.00' '-.97983' -> '0.97983'
-ddsub182 subtract '0.0' '-.9' -> '0.9'
-ddsub183 subtract '0.0' '-0.102' -> '0.102'
-ddsub184 subtract '0.0' '-.4' -> '0.4'
-ddsub185 subtract '0.0' '-.307' -> '0.307'
-ddsub186 subtract '0.0' '-.43822' -> '0.43822'
-ddsub187 subtract '0.0' '-.911' -> '0.911'
-ddsub188 subtract '0.0' '-.02' -> '0.02'
-ddsub189 subtract '0.00' '-.392' -> '0.392'
-ddsub190 subtract '0.0' '-.26' -> '0.26'
-ddsub191 subtract '0.0' '-0.51' -> '0.51'
-ddsub192 subtract '0.0' '-.2234' -> '0.2234'
-ddsub193 subtract '0.0' '-.2' -> '0.2'
-ddsub194 subtract '0.0' '-.0008' -> '0.0008'
--- negatives of same
-ddsub200 subtract '0' '-.1' -> '0.1'
-ddsub201 subtract '00' '-.97983' -> '0.97983'
-ddsub202 subtract '0' '-.9' -> '0.9'
-ddsub203 subtract '0' '-0.102' -> '0.102'
-ddsub204 subtract '0' '-.4' -> '0.4'
-ddsub205 subtract '0' '-.307' -> '0.307'
-ddsub206 subtract '0' '-.43822' -> '0.43822'
-ddsub207 subtract '0' '-.911' -> '0.911'
-ddsub208 subtract '.0' '-.02' -> '0.02'
-ddsub209 subtract '00' '-.392' -> '0.392'
-ddsub210 subtract '0' '-.26' -> '0.26'
-ddsub211 subtract '0' '-0.51' -> '0.51'
-ddsub212 subtract '0' '-.2234' -> '0.2234'
-ddsub213 subtract '0' '-.2' -> '0.2'
-ddsub214 subtract '.0' '-.0008' -> '0.0008'
-
--- more fixed, LHS swaps [really the same as testcases under add]
-ddsub220 subtract '-56267E-12' 0 -> '-5.6267E-8'
-ddsub221 subtract '-56267E-11' 0 -> '-5.6267E-7'
-ddsub222 subtract '-56267E-10' 0 -> '-0.0000056267'
-ddsub223 subtract '-56267E-9' 0 -> '-0.000056267'
-ddsub224 subtract '-56267E-8' 0 -> '-0.00056267'
-ddsub225 subtract '-56267E-7' 0 -> '-0.0056267'
-ddsub226 subtract '-56267E-6' 0 -> '-0.056267'
-ddsub227 subtract '-56267E-5' 0 -> '-0.56267'
-ddsub228 subtract '-56267E-2' 0 -> '-562.67'
-ddsub229 subtract '-56267E-1' 0 -> '-5626.7'
-ddsub230 subtract '-56267E-0' 0 -> '-56267'
--- symmetry ...
-ddsub240 subtract 0 '-56267E-12' -> '5.6267E-8'
-ddsub241 subtract 0 '-56267E-11' -> '5.6267E-7'
-ddsub242 subtract 0 '-56267E-10' -> '0.0000056267'
-ddsub243 subtract 0 '-56267E-9' -> '0.000056267'
-ddsub244 subtract 0 '-56267E-8' -> '0.00056267'
-ddsub245 subtract 0 '-56267E-7' -> '0.0056267'
-ddsub246 subtract 0 '-56267E-6' -> '0.056267'
-ddsub247 subtract 0 '-56267E-5' -> '0.56267'
-ddsub248 subtract 0 '-56267E-2' -> '562.67'
-ddsub249 subtract 0 '-56267E-1' -> '5626.7'
-ddsub250 subtract 0 '-56267E-0' -> '56267'
-
--- now some more from the 'new' add
-ddsub301 subtract '1.23456789' '1.00000000' -> '0.23456789'
-ddsub302 subtract '1.23456789' '1.00000011' -> '0.23456778'
-
--- some carrying effects
-ddsub321 subtract '0.9998' '0.0000' -> '0.9998'
-ddsub322 subtract '0.9998' '0.0001' -> '0.9997'
-ddsub323 subtract '0.9998' '0.0002' -> '0.9996'
-ddsub324 subtract '0.9998' '0.0003' -> '0.9995'
-ddsub325 subtract '0.9998' '-0.0000' -> '0.9998'
-ddsub326 subtract '0.9998' '-0.0001' -> '0.9999'
-ddsub327 subtract '0.9998' '-0.0002' -> '1.0000'
-ddsub328 subtract '0.9998' '-0.0003' -> '1.0001'
-
--- internal boundaries
-ddsub346 subtract '10000e+9' '7' -> '9999999999993'
-ddsub347 subtract '10000e+9' '70' -> '9999999999930'
-ddsub348 subtract '10000e+9' '700' -> '9999999999300'
-ddsub349 subtract '10000e+9' '7000' -> '9999999993000'
-ddsub350 subtract '10000e+9' '70000' -> '9999999930000'
-ddsub351 subtract '10000e+9' '700000' -> '9999999300000'
-ddsub352 subtract '7' '10000e+9' -> '-9999999999993'
-ddsub353 subtract '70' '10000e+9' -> '-9999999999930'
-ddsub354 subtract '700' '10000e+9' -> '-9999999999300'
-ddsub355 subtract '7000' '10000e+9' -> '-9999999993000'
-ddsub356 subtract '70000' '10000e+9' -> '-9999999930000'
-ddsub357 subtract '700000' '10000e+9' -> '-9999999300000'
-
--- zero preservation
-ddsub361 subtract 1 '0.0001' -> '0.9999'
-ddsub362 subtract 1 '0.00001' -> '0.99999'
-ddsub363 subtract 1 '0.000001' -> '0.999999'
-ddsub364 subtract 1 '0.0000000000000001' -> '0.9999999999999999'
-ddsub365 subtract 1 '0.00000000000000001' -> '1.000000000000000' Inexact Rounded
-ddsub366 subtract 1 '0.000000000000000001' -> '1.000000000000000' Inexact Rounded
-
--- some funny zeros [in case of bad signum]
-ddsub370 subtract 1 0 -> 1
-ddsub371 subtract 1 0. -> 1
-ddsub372 subtract 1 .0 -> 1.0
-ddsub373 subtract 1 0.0 -> 1.0
-ddsub374 subtract 0 1 -> -1
-ddsub375 subtract 0. 1 -> -1
-ddsub376 subtract .0 1 -> -1.0
-ddsub377 subtract 0.0 1 -> -1.0
-
--- leading 0 digit before round
-ddsub910 subtract -103519362 -51897955.3 -> -51621406.7
-ddsub911 subtract 159579.444 89827.5229 -> 69751.9211
-
-ddsub920 subtract 333.0000000123456 33.00000001234566 -> 299.9999999999999 Inexact Rounded
-ddsub921 subtract 333.0000000123456 33.00000001234565 -> 300.0000000000000 Inexact Rounded
-ddsub922 subtract 133.0000000123456 33.00000001234565 -> 99.99999999999995
-ddsub923 subtract 133.0000000123456 33.00000001234564 -> 99.99999999999996
-ddsub924 subtract 133.0000000123456 33.00000001234540 -> 100.0000000000002 Rounded
-ddsub925 subtract 133.0000000123456 43.00000001234560 -> 90.00000000000000
-ddsub926 subtract 133.0000000123456 43.00000001234561 -> 89.99999999999999
-ddsub927 subtract 133.0000000123456 43.00000001234566 -> 89.99999999999994
-ddsub928 subtract 101.0000000123456 91.00000001234566 -> 9.99999999999994
-ddsub929 subtract 101.0000000123456 99.00000001234566 -> 1.99999999999994
-
--- more LHS swaps [were fixed]
-ddsub390 subtract '-56267E-10' 0 -> '-0.0000056267'
-ddsub391 subtract '-56267E-6' 0 -> '-0.056267'
-ddsub392 subtract '-56267E-5' 0 -> '-0.56267'
-ddsub393 subtract '-56267E-4' 0 -> '-5.6267'
-ddsub394 subtract '-56267E-3' 0 -> '-56.267'
-ddsub395 subtract '-56267E-2' 0 -> '-562.67'
-ddsub396 subtract '-56267E-1' 0 -> '-5626.7'
-ddsub397 subtract '-56267E-0' 0 -> '-56267'
-ddsub398 subtract '-5E-10' 0 -> '-5E-10'
-ddsub399 subtract '-5E-7' 0 -> '-5E-7'
-ddsub400 subtract '-5E-6' 0 -> '-0.000005'
-ddsub401 subtract '-5E-5' 0 -> '-0.00005'
-ddsub402 subtract '-5E-4' 0 -> '-0.0005'
-ddsub403 subtract '-5E-1' 0 -> '-0.5'
-ddsub404 subtract '-5E0' 0 -> '-5'
-ddsub405 subtract '-5E1' 0 -> '-50'
-ddsub406 subtract '-5E5' 0 -> '-500000'
-ddsub407 subtract '-5E15' 0 -> '-5000000000000000'
-ddsub408 subtract '-5E16' 0 -> '-5.000000000000000E+16' Rounded
-ddsub409 subtract '-5E17' 0 -> '-5.000000000000000E+17' Rounded
-ddsub410 subtract '-5E18' 0 -> '-5.000000000000000E+18' Rounded
-ddsub411 subtract '-5E100' 0 -> '-5.000000000000000E+100' Rounded
-
--- more RHS swaps [were fixed]
-ddsub420 subtract 0 '-56267E-10' -> '0.0000056267'
-ddsub421 subtract 0 '-56267E-6' -> '0.056267'
-ddsub422 subtract 0 '-56267E-5' -> '0.56267'
-ddsub423 subtract 0 '-56267E-4' -> '5.6267'
-ddsub424 subtract 0 '-56267E-3' -> '56.267'
-ddsub425 subtract 0 '-56267E-2' -> '562.67'
-ddsub426 subtract 0 '-56267E-1' -> '5626.7'
-ddsub427 subtract 0 '-56267E-0' -> '56267'
-ddsub428 subtract 0 '-5E-10' -> '5E-10'
-ddsub429 subtract 0 '-5E-7' -> '5E-7'
-ddsub430 subtract 0 '-5E-6' -> '0.000005'
-ddsub431 subtract 0 '-5E-5' -> '0.00005'
-ddsub432 subtract 0 '-5E-4' -> '0.0005'
-ddsub433 subtract 0 '-5E-1' -> '0.5'
-ddsub434 subtract 0 '-5E0' -> '5'
-ddsub435 subtract 0 '-5E1' -> '50'
-ddsub436 subtract 0 '-5E5' -> '500000'
-ddsub437 subtract 0 '-5E15' -> '5000000000000000'
-ddsub438 subtract 0 '-5E16' -> '5.000000000000000E+16' Rounded
-ddsub439 subtract 0 '-5E17' -> '5.000000000000000E+17' Rounded
-ddsub440 subtract 0 '-5E18' -> '5.000000000000000E+18' Rounded
-ddsub441 subtract 0 '-5E100' -> '5.000000000000000E+100' Rounded
-
-
--- try borderline precision, with carries, etc.
-ddsub461 subtract '1E+16' '1' -> '9999999999999999'
-ddsub462 subtract '1E+12' '-1.111' -> '1000000000001.111'
-ddsub463 subtract '1.111' '-1E+12' -> '1000000000001.111'
-ddsub464 subtract '-1' '-1E+16' -> '9999999999999999'
-ddsub465 subtract '7E+15' '1' -> '6999999999999999'
-ddsub466 subtract '7E+12' '-1.111' -> '7000000000001.111'
-ddsub467 subtract '1.111' '-7E+12' -> '7000000000001.111'
-ddsub468 subtract '-1' '-7E+15' -> '6999999999999999'
-
--- 1234567890123456 1234567890123456 1 23456789012345
-ddsub470 subtract '0.4444444444444444' '-0.5555555555555563' -> '1.000000000000001' Inexact Rounded
-ddsub471 subtract '0.4444444444444444' '-0.5555555555555562' -> '1.000000000000001' Inexact Rounded
-ddsub472 subtract '0.4444444444444444' '-0.5555555555555561' -> '1.000000000000000' Inexact Rounded
-ddsub473 subtract '0.4444444444444444' '-0.5555555555555560' -> '1.000000000000000' Inexact Rounded
-ddsub474 subtract '0.4444444444444444' '-0.5555555555555559' -> '1.000000000000000' Inexact Rounded
-ddsub475 subtract '0.4444444444444444' '-0.5555555555555558' -> '1.000000000000000' Inexact Rounded
-ddsub476 subtract '0.4444444444444444' '-0.5555555555555557' -> '1.000000000000000' Inexact Rounded
-ddsub477 subtract '0.4444444444444444' '-0.5555555555555556' -> '1.000000000000000' Rounded
-ddsub478 subtract '0.4444444444444444' '-0.5555555555555555' -> '0.9999999999999999'
-ddsub479 subtract '0.4444444444444444' '-0.5555555555555554' -> '0.9999999999999998'
-ddsub480 subtract '0.4444444444444444' '-0.5555555555555553' -> '0.9999999999999997'
-ddsub481 subtract '0.4444444444444444' '-0.5555555555555552' -> '0.9999999999999996'
-ddsub482 subtract '0.4444444444444444' '-0.5555555555555551' -> '0.9999999999999995'
-ddsub483 subtract '0.4444444444444444' '-0.5555555555555550' -> '0.9999999999999994'
-
--- and some more, including residue effects and different roundings
-rounding: half_up
-ddsub500 subtract '1231234567456789' 0 -> '1231234567456789'
-ddsub501 subtract '1231234567456789' 0.000000001 -> '1231234567456789' Inexact Rounded
-ddsub502 subtract '1231234567456789' 0.000001 -> '1231234567456789' Inexact Rounded
-ddsub503 subtract '1231234567456789' 0.1 -> '1231234567456789' Inexact Rounded
-ddsub504 subtract '1231234567456789' 0.4 -> '1231234567456789' Inexact Rounded
-ddsub505 subtract '1231234567456789' 0.49 -> '1231234567456789' Inexact Rounded
-ddsub506 subtract '1231234567456789' 0.499999 -> '1231234567456789' Inexact Rounded
-ddsub507 subtract '1231234567456789' 0.499999999 -> '1231234567456789' Inexact Rounded
-ddsub508 subtract '1231234567456789' 0.5 -> '1231234567456789' Inexact Rounded
-ddsub509 subtract '1231234567456789' 0.500000001 -> '1231234567456788' Inexact Rounded
-ddsub510 subtract '1231234567456789' 0.500001 -> '1231234567456788' Inexact Rounded
-ddsub511 subtract '1231234567456789' 0.51 -> '1231234567456788' Inexact Rounded
-ddsub512 subtract '1231234567456789' 0.6 -> '1231234567456788' Inexact Rounded
-ddsub513 subtract '1231234567456789' 0.9 -> '1231234567456788' Inexact Rounded
-ddsub514 subtract '1231234567456789' 0.99999 -> '1231234567456788' Inexact Rounded
-ddsub515 subtract '1231234567456789' 0.999999999 -> '1231234567456788' Inexact Rounded
-ddsub516 subtract '1231234567456789' 1 -> '1231234567456788'
-ddsub517 subtract '1231234567456789' 1.000000001 -> '1231234567456788' Inexact Rounded
-ddsub518 subtract '1231234567456789' 1.00001 -> '1231234567456788' Inexact Rounded
-ddsub519 subtract '1231234567456789' 1.1 -> '1231234567456788' Inexact Rounded
-
-rounding: half_even
-ddsub520 subtract '1231234567456789' 0 -> '1231234567456789'
-ddsub521 subtract '1231234567456789' 0.000000001 -> '1231234567456789' Inexact Rounded
-ddsub522 subtract '1231234567456789' 0.000001 -> '1231234567456789' Inexact Rounded
-ddsub523 subtract '1231234567456789' 0.1 -> '1231234567456789' Inexact Rounded
-ddsub524 subtract '1231234567456789' 0.4 -> '1231234567456789' Inexact Rounded
-ddsub525 subtract '1231234567456789' 0.49 -> '1231234567456789' Inexact Rounded
-ddsub526 subtract '1231234567456789' 0.499999 -> '1231234567456789' Inexact Rounded
-ddsub527 subtract '1231234567456789' 0.499999999 -> '1231234567456789' Inexact Rounded
-ddsub528 subtract '1231234567456789' 0.5 -> '1231234567456788' Inexact Rounded
-ddsub529 subtract '1231234567456789' 0.500000001 -> '1231234567456788' Inexact Rounded
-ddsub530 subtract '1231234567456789' 0.500001 -> '1231234567456788' Inexact Rounded
-ddsub531 subtract '1231234567456789' 0.51 -> '1231234567456788' Inexact Rounded
-ddsub532 subtract '1231234567456789' 0.6 -> '1231234567456788' Inexact Rounded
-ddsub533 subtract '1231234567456789' 0.9 -> '1231234567456788' Inexact Rounded
-ddsub534 subtract '1231234567456789' 0.99999 -> '1231234567456788' Inexact Rounded
-ddsub535 subtract '1231234567456789' 0.999999999 -> '1231234567456788' Inexact Rounded
-ddsub536 subtract '1231234567456789' 1 -> '1231234567456788'
-ddsub537 subtract '1231234567456789' 1.00000001 -> '1231234567456788' Inexact Rounded
-ddsub538 subtract '1231234567456789' 1.00001 -> '1231234567456788' Inexact Rounded
-ddsub539 subtract '1231234567456789' 1.1 -> '1231234567456788' Inexact Rounded
--- critical few with even bottom digit...
-ddsub540 subtract '1231234567456788' 0.499999999 -> '1231234567456788' Inexact Rounded
-ddsub541 subtract '1231234567456788' 0.5 -> '1231234567456788' Inexact Rounded
-ddsub542 subtract '1231234567456788' 0.500000001 -> '1231234567456787' Inexact Rounded
-
-rounding: down
-ddsub550 subtract '1231234567456789' 0 -> '1231234567456789'
-ddsub551 subtract '1231234567456789' 0.000000001 -> '1231234567456788' Inexact Rounded
-ddsub552 subtract '1231234567456789' 0.000001 -> '1231234567456788' Inexact Rounded
-ddsub553 subtract '1231234567456789' 0.1 -> '1231234567456788' Inexact Rounded
-ddsub554 subtract '1231234567456789' 0.4 -> '1231234567456788' Inexact Rounded
-ddsub555 subtract '1231234567456789' 0.49 -> '1231234567456788' Inexact Rounded
-ddsub556 subtract '1231234567456789' 0.499999 -> '1231234567456788' Inexact Rounded
-ddsub557 subtract '1231234567456789' 0.499999999 -> '1231234567456788' Inexact Rounded
-ddsub558 subtract '1231234567456789' 0.5 -> '1231234567456788' Inexact Rounded
-ddsub559 subtract '1231234567456789' 0.500000001 -> '1231234567456788' Inexact Rounded
-ddsub560 subtract '1231234567456789' 0.500001 -> '1231234567456788' Inexact Rounded
-ddsub561 subtract '1231234567456789' 0.51 -> '1231234567456788' Inexact Rounded
-ddsub562 subtract '1231234567456789' 0.6 -> '1231234567456788' Inexact Rounded
-ddsub563 subtract '1231234567456789' 0.9 -> '1231234567456788' Inexact Rounded
-ddsub564 subtract '1231234567456789' 0.99999 -> '1231234567456788' Inexact Rounded
-ddsub565 subtract '1231234567456789' 0.999999999 -> '1231234567456788' Inexact Rounded
-ddsub566 subtract '1231234567456789' 1 -> '1231234567456788'
-ddsub567 subtract '1231234567456789' 1.00000001 -> '1231234567456787' Inexact Rounded
-ddsub568 subtract '1231234567456789' 1.00001 -> '1231234567456787' Inexact Rounded
-ddsub569 subtract '1231234567456789' 1.1 -> '1231234567456787' Inexact Rounded
-
--- symmetry...
-rounding: half_up
-ddsub600 subtract 0 '1231234567456789' -> '-1231234567456789'
-ddsub601 subtract 0.000000001 '1231234567456789' -> '-1231234567456789' Inexact Rounded
-ddsub602 subtract 0.000001 '1231234567456789' -> '-1231234567456789' Inexact Rounded
-ddsub603 subtract 0.1 '1231234567456789' -> '-1231234567456789' Inexact Rounded
-ddsub604 subtract 0.4 '1231234567456789' -> '-1231234567456789' Inexact Rounded
-ddsub605 subtract 0.49 '1231234567456789' -> '-1231234567456789' Inexact Rounded
-ddsub606 subtract 0.499999 '1231234567456789' -> '-1231234567456789' Inexact Rounded
-ddsub607 subtract 0.499999999 '1231234567456789' -> '-1231234567456789' Inexact Rounded
-ddsub608 subtract 0.5 '1231234567456789' -> '-1231234567456789' Inexact Rounded
-ddsub609 subtract 0.500000001 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-ddsub610 subtract 0.500001 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-ddsub611 subtract 0.51 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-ddsub612 subtract 0.6 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-ddsub613 subtract 0.9 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-ddsub614 subtract 0.99999 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-ddsub615 subtract 0.999999999 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-ddsub616 subtract 1 '1231234567456789' -> '-1231234567456788'
-ddsub617 subtract 1.000000001 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-ddsub618 subtract 1.00001 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-ddsub619 subtract 1.1 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-
-rounding: half_even
-ddsub620 subtract 0 '1231234567456789' -> '-1231234567456789'
-ddsub621 subtract 0.000000001 '1231234567456789' -> '-1231234567456789' Inexact Rounded
-ddsub622 subtract 0.000001 '1231234567456789' -> '-1231234567456789' Inexact Rounded
-ddsub623 subtract 0.1 '1231234567456789' -> '-1231234567456789' Inexact Rounded
-ddsub624 subtract 0.4 '1231234567456789' -> '-1231234567456789' Inexact Rounded
-ddsub625 subtract 0.49 '1231234567456789' -> '-1231234567456789' Inexact Rounded
-ddsub626 subtract 0.499999 '1231234567456789' -> '-1231234567456789' Inexact Rounded
-ddsub627 subtract 0.499999999 '1231234567456789' -> '-1231234567456789' Inexact Rounded
-ddsub628 subtract 0.5 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-ddsub629 subtract 0.500000001 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-ddsub630 subtract 0.500001 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-ddsub631 subtract 0.51 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-ddsub632 subtract 0.6 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-ddsub633 subtract 0.9 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-ddsub634 subtract 0.99999 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-ddsub635 subtract 0.999999999 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-ddsub636 subtract 1 '1231234567456789' -> '-1231234567456788'
-ddsub637 subtract 1.00000001 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-ddsub638 subtract 1.00001 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-ddsub639 subtract 1.1 '1231234567456789' -> '-1231234567456788' Inexact Rounded
--- critical few with even bottom digit...
-ddsub640 subtract 0.499999999 '1231234567456788' -> '-1231234567456788' Inexact Rounded
-ddsub641 subtract 0.5 '1231234567456788' -> '-1231234567456788' Inexact Rounded
-ddsub642 subtract 0.500000001 '1231234567456788' -> '-1231234567456787' Inexact Rounded
-
-rounding: down
-ddsub650 subtract 0 '1231234567456789' -> '-1231234567456789'
-ddsub651 subtract 0.000000001 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-ddsub652 subtract 0.000001 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-ddsub653 subtract 0.1 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-ddsub654 subtract 0.4 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-ddsub655 subtract 0.49 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-ddsub656 subtract 0.499999 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-ddsub657 subtract 0.499999999 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-ddsub658 subtract 0.5 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-ddsub659 subtract 0.500000001 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-ddsub660 subtract 0.500001 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-ddsub661 subtract 0.51 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-ddsub662 subtract 0.6 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-ddsub663 subtract 0.9 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-ddsub664 subtract 0.99999 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-ddsub665 subtract 0.999999999 '1231234567456789' -> '-1231234567456788' Inexact Rounded
-ddsub666 subtract 1 '1231234567456789' -> '-1231234567456788'
-ddsub667 subtract 1.00000001 '1231234567456789' -> '-1231234567456787' Inexact Rounded
-ddsub668 subtract 1.00001 '1231234567456789' -> '-1231234567456787' Inexact Rounded
-ddsub669 subtract 1.1 '1231234567456789' -> '-1231234567456787' Inexact Rounded
-
-
--- lots of leading zeros in intermediate result, and showing effects of
--- input rounding would have affected the following
-rounding: half_up
-ddsub670 subtract '1234567456789' '1234567456788.1' -> 0.9
-ddsub671 subtract '1234567456789' '1234567456788.9' -> 0.1
-ddsub672 subtract '1234567456789' '1234567456789.1' -> -0.1
-ddsub673 subtract '1234567456789' '1234567456789.5' -> -0.5
-ddsub674 subtract '1234567456789' '1234567456789.9' -> -0.9
-
-rounding: half_even
-ddsub680 subtract '1234567456789' '1234567456788.1' -> 0.9
-ddsub681 subtract '1234567456789' '1234567456788.9' -> 0.1
-ddsub682 subtract '1234567456789' '1234567456789.1' -> -0.1
-ddsub683 subtract '1234567456789' '1234567456789.5' -> -0.5
-ddsub684 subtract '1234567456789' '1234567456789.9' -> -0.9
-
-ddsub685 subtract '1234567456788' '1234567456787.1' -> 0.9
-ddsub686 subtract '1234567456788' '1234567456787.9' -> 0.1
-ddsub687 subtract '1234567456788' '1234567456788.1' -> -0.1
-ddsub688 subtract '1234567456788' '1234567456788.5' -> -0.5
-ddsub689 subtract '1234567456788' '1234567456788.9' -> -0.9
-
-rounding: down
-ddsub690 subtract '1234567456789' '1234567456788.1' -> 0.9
-ddsub691 subtract '1234567456789' '1234567456788.9' -> 0.1
-ddsub692 subtract '1234567456789' '1234567456789.1' -> -0.1
-ddsub693 subtract '1234567456789' '1234567456789.5' -> -0.5
-ddsub694 subtract '1234567456789' '1234567456789.9' -> -0.9
-
--- Specials
-ddsub780 subtract -Inf Inf -> -Infinity
-ddsub781 subtract -Inf 1000 -> -Infinity
-ddsub782 subtract -Inf 1 -> -Infinity
-ddsub783 subtract -Inf -0 -> -Infinity
-ddsub784 subtract -Inf -1 -> -Infinity
-ddsub785 subtract -Inf -1000 -> -Infinity
-ddsub787 subtract -1000 Inf -> -Infinity
-ddsub788 subtract -Inf Inf -> -Infinity
-ddsub789 subtract -1 Inf -> -Infinity
-ddsub790 subtract 0 Inf -> -Infinity
-ddsub791 subtract 1 Inf -> -Infinity
-ddsub792 subtract 1000 Inf -> -Infinity
-
-ddsub800 subtract Inf Inf -> NaN Invalid_operation
-ddsub801 subtract Inf 1000 -> Infinity
-ddsub802 subtract Inf 1 -> Infinity
-ddsub803 subtract Inf 0 -> Infinity
-ddsub804 subtract Inf -0 -> Infinity
-ddsub805 subtract Inf -1 -> Infinity
-ddsub806 subtract Inf -1000 -> Infinity
-ddsub807 subtract Inf -Inf -> Infinity
-ddsub808 subtract -1000 -Inf -> Infinity
-ddsub809 subtract -Inf -Inf -> NaN Invalid_operation
-ddsub810 subtract -1 -Inf -> Infinity
-ddsub811 subtract -0 -Inf -> Infinity
-ddsub812 subtract 0 -Inf -> Infinity
-ddsub813 subtract 1 -Inf -> Infinity
-ddsub814 subtract 1000 -Inf -> Infinity
-ddsub815 subtract Inf -Inf -> Infinity
-
-ddsub821 subtract NaN Inf -> NaN
-ddsub822 subtract -NaN 1000 -> -NaN
-ddsub823 subtract NaN 1 -> NaN
-ddsub824 subtract NaN 0 -> NaN
-ddsub825 subtract NaN -0 -> NaN
-ddsub826 subtract NaN -1 -> NaN
-ddsub827 subtract NaN -1000 -> NaN
-ddsub828 subtract NaN -Inf -> NaN
-ddsub829 subtract -NaN NaN -> -NaN
-ddsub830 subtract -Inf NaN -> NaN
-ddsub831 subtract -1000 NaN -> NaN
-ddsub832 subtract -1 NaN -> NaN
-ddsub833 subtract -0 NaN -> NaN
-ddsub834 subtract 0 NaN -> NaN
-ddsub835 subtract 1 NaN -> NaN
-ddsub836 subtract 1000 -NaN -> -NaN
-ddsub837 subtract Inf NaN -> NaN
-
-ddsub841 subtract sNaN Inf -> NaN Invalid_operation
-ddsub842 subtract -sNaN 1000 -> -NaN Invalid_operation
-ddsub843 subtract sNaN 1 -> NaN Invalid_operation
-ddsub844 subtract sNaN 0 -> NaN Invalid_operation
-ddsub845 subtract sNaN -0 -> NaN Invalid_operation
-ddsub846 subtract sNaN -1 -> NaN Invalid_operation
-ddsub847 subtract sNaN -1000 -> NaN Invalid_operation
-ddsub848 subtract sNaN NaN -> NaN Invalid_operation
-ddsub849 subtract sNaN sNaN -> NaN Invalid_operation
-ddsub850 subtract NaN sNaN -> NaN Invalid_operation
-ddsub851 subtract -Inf -sNaN -> -NaN Invalid_operation
-ddsub852 subtract -1000 sNaN -> NaN Invalid_operation
-ddsub853 subtract -1 sNaN -> NaN Invalid_operation
-ddsub854 subtract -0 sNaN -> NaN Invalid_operation
-ddsub855 subtract 0 sNaN -> NaN Invalid_operation
-ddsub856 subtract 1 sNaN -> NaN Invalid_operation
-ddsub857 subtract 1000 sNaN -> NaN Invalid_operation
-ddsub858 subtract Inf sNaN -> NaN Invalid_operation
-ddsub859 subtract NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-ddsub861 subtract NaN01 -Inf -> NaN1
-ddsub862 subtract -NaN02 -1000 -> -NaN2
-ddsub863 subtract NaN03 1000 -> NaN3
-ddsub864 subtract NaN04 Inf -> NaN4
-ddsub865 subtract NaN05 NaN61 -> NaN5
-ddsub866 subtract -Inf -NaN71 -> -NaN71
-ddsub867 subtract -1000 NaN81 -> NaN81
-ddsub868 subtract 1000 NaN91 -> NaN91
-ddsub869 subtract Inf NaN101 -> NaN101
-ddsub871 subtract sNaN011 -Inf -> NaN11 Invalid_operation
-ddsub872 subtract sNaN012 -1000 -> NaN12 Invalid_operation
-ddsub873 subtract -sNaN013 1000 -> -NaN13 Invalid_operation
-ddsub874 subtract sNaN014 NaN171 -> NaN14 Invalid_operation
-ddsub875 subtract sNaN015 sNaN181 -> NaN15 Invalid_operation
-ddsub876 subtract NaN016 sNaN191 -> NaN191 Invalid_operation
-ddsub877 subtract -Inf sNaN201 -> NaN201 Invalid_operation
-ddsub878 subtract -1000 sNaN211 -> NaN211 Invalid_operation
-ddsub879 subtract 1000 -sNaN221 -> -NaN221 Invalid_operation
-ddsub880 subtract Inf sNaN231 -> NaN231 Invalid_operation
-ddsub881 subtract NaN025 sNaN241 -> NaN241 Invalid_operation
-
--- edge case spills
-ddsub901 subtract 2.E-3 1.002 -> -1.000
-ddsub902 subtract 2.0E-3 1.002 -> -1.0000
-ddsub903 subtract 2.00E-3 1.0020 -> -1.00000
-ddsub904 subtract 2.000E-3 1.00200 -> -1.000000
-ddsub905 subtract 2.0000E-3 1.002000 -> -1.0000000
-ddsub906 subtract 2.00000E-3 1.0020000 -> -1.00000000
-ddsub907 subtract 2.000000E-3 1.00200000 -> -1.000000000
-ddsub908 subtract 2.0000000E-3 1.002000000 -> -1.0000000000
-
--- subnormals and overflows covered under Add
-
--- Null tests
-ddsub9990 subtract 10 # -> NaN Invalid_operation
-ddsub9991 subtract # 10 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- ddSubtract.decTest -- decDouble subtraction -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- This set of tests are for decDoubles only; all arguments are +-- representable in a decDouble +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +-- [first group are 'quick confidence check'] +ddsub001 subtract 0 0 -> '0' +ddsub002 subtract 1 1 -> '0' +ddsub003 subtract 1 2 -> '-1' +ddsub004 subtract 2 1 -> '1' +ddsub005 subtract 2 2 -> '0' +ddsub006 subtract 3 2 -> '1' +ddsub007 subtract 2 3 -> '-1' + +ddsub011 subtract -0 0 -> '-0' +ddsub012 subtract -1 1 -> '-2' +ddsub013 subtract -1 2 -> '-3' +ddsub014 subtract -2 1 -> '-3' +ddsub015 subtract -2 2 -> '-4' +ddsub016 subtract -3 2 -> '-5' +ddsub017 subtract -2 3 -> '-5' + +ddsub021 subtract 0 -0 -> '0' +ddsub022 subtract 1 -1 -> '2' +ddsub023 subtract 1 -2 -> '3' +ddsub024 subtract 2 -1 -> '3' +ddsub025 subtract 2 -2 -> '4' +ddsub026 subtract 3 -2 -> '5' +ddsub027 subtract 2 -3 -> '5' + +ddsub030 subtract 11 1 -> 10 +ddsub031 subtract 10 1 -> 9 +ddsub032 subtract 9 1 -> 8 +ddsub033 subtract 1 1 -> 0 +ddsub034 subtract 0 1 -> -1 +ddsub035 subtract -1 1 -> -2 +ddsub036 subtract -9 1 -> -10 +ddsub037 subtract -10 1 -> -11 +ddsub038 subtract -11 1 -> -12 + +ddsub040 subtract '5.75' '3.3' -> '2.45' +ddsub041 subtract '5' '-3' -> '8' +ddsub042 subtract '-5' '-3' -> '-2' +ddsub043 subtract '-7' '2.5' -> '-9.5' +ddsub044 subtract '0.7' '0.3' -> '0.4' +ddsub045 subtract '1.3' '0.3' -> '1.0' +ddsub046 subtract '1.25' '1.25' -> '0.00' + +ddsub050 subtract '1.23456789' '1.00000000' -> '0.23456789' +ddsub051 subtract '1.23456789' '1.00000089' -> '0.23456700' + +ddsub060 subtract '70' '10000e+16' -> '-1.000000000000000E+20' Inexact Rounded +ddsub061 subtract '700' '10000e+16' -> '-1.000000000000000E+20' Inexact Rounded +ddsub062 subtract '7000' '10000e+16' -> '-9.999999999999999E+19' Inexact Rounded +ddsub063 subtract '70000' '10000e+16' -> '-9.999999999999993E+19' Rounded +ddsub064 subtract '700000' '10000e+16' -> '-9.999999999999930E+19' Rounded + -- symmetry: +ddsub065 subtract '10000e+16' '70' -> '1.000000000000000E+20' Inexact Rounded +ddsub066 subtract '10000e+16' '700' -> '1.000000000000000E+20' Inexact Rounded +ddsub067 subtract '10000e+16' '7000' -> '9.999999999999999E+19' Inexact Rounded +ddsub068 subtract '10000e+16' '70000' -> '9.999999999999993E+19' Rounded +ddsub069 subtract '10000e+16' '700000' -> '9.999999999999930E+19' Rounded + + -- some of the next group are really constructor tests +ddsub090 subtract '00.0' '0.0' -> '0.0' +ddsub091 subtract '00.0' '0.00' -> '0.00' +ddsub092 subtract '0.00' '00.0' -> '0.00' +ddsub093 subtract '00.0' '0.00' -> '0.00' +ddsub094 subtract '0.00' '00.0' -> '0.00' +ddsub095 subtract '3' '.3' -> '2.7' +ddsub096 subtract '3.' '.3' -> '2.7' +ddsub097 subtract '3.0' '.3' -> '2.7' +ddsub098 subtract '3.00' '.3' -> '2.70' +ddsub099 subtract '3' '3' -> '0' +ddsub100 subtract '3' '+3' -> '0' +ddsub101 subtract '3' '-3' -> '6' +ddsub102 subtract '3' '0.3' -> '2.7' +ddsub103 subtract '3.' '0.3' -> '2.7' +ddsub104 subtract '3.0' '0.3' -> '2.7' +ddsub105 subtract '3.00' '0.3' -> '2.70' +ddsub106 subtract '3' '3.0' -> '0.0' +ddsub107 subtract '3' '+3.0' -> '0.0' +ddsub108 subtract '3' '-3.0' -> '6.0' + +-- the above all from add; massaged and extended. Now some new ones... +-- [particularly important for comparisons] +-- NB: -xE-8 below were non-exponents pre-ANSI X3-274, and -1E-7 or 0E-7 +-- with input rounding. +ddsub120 subtract '10.23456784' '10.23456789' -> '-5E-8' +ddsub121 subtract '10.23456785' '10.23456789' -> '-4E-8' +ddsub122 subtract '10.23456786' '10.23456789' -> '-3E-8' +ddsub123 subtract '10.23456787' '10.23456789' -> '-2E-8' +ddsub124 subtract '10.23456788' '10.23456789' -> '-1E-8' +ddsub125 subtract '10.23456789' '10.23456789' -> '0E-8' +ddsub126 subtract '10.23456790' '10.23456789' -> '1E-8' +ddsub127 subtract '10.23456791' '10.23456789' -> '2E-8' +ddsub128 subtract '10.23456792' '10.23456789' -> '3E-8' +ddsub129 subtract '10.23456793' '10.23456789' -> '4E-8' +ddsub130 subtract '10.23456794' '10.23456789' -> '5E-8' +ddsub131 subtract '10.23456781' '10.23456786' -> '-5E-8' +ddsub132 subtract '10.23456782' '10.23456786' -> '-4E-8' +ddsub133 subtract '10.23456783' '10.23456786' -> '-3E-8' +ddsub134 subtract '10.23456784' '10.23456786' -> '-2E-8' +ddsub135 subtract '10.23456785' '10.23456786' -> '-1E-8' +ddsub136 subtract '10.23456786' '10.23456786' -> '0E-8' +ddsub137 subtract '10.23456787' '10.23456786' -> '1E-8' +ddsub138 subtract '10.23456788' '10.23456786' -> '2E-8' +ddsub139 subtract '10.23456789' '10.23456786' -> '3E-8' +ddsub140 subtract '10.23456790' '10.23456786' -> '4E-8' +ddsub141 subtract '10.23456791' '10.23456786' -> '5E-8' +ddsub142 subtract '1' '0.999999999' -> '1E-9' +ddsub143 subtract '0.999999999' '1' -> '-1E-9' +ddsub144 subtract '-10.23456780' '-10.23456786' -> '6E-8' +ddsub145 subtract '-10.23456790' '-10.23456786' -> '-4E-8' +ddsub146 subtract '-10.23456791' '-10.23456786' -> '-5E-8' + +-- additional scaled arithmetic tests [0.97 problem] +ddsub160 subtract '0' '.1' -> '-0.1' +ddsub161 subtract '00' '.97983' -> '-0.97983' +ddsub162 subtract '0' '.9' -> '-0.9' +ddsub163 subtract '0' '0.102' -> '-0.102' +ddsub164 subtract '0' '.4' -> '-0.4' +ddsub165 subtract '0' '.307' -> '-0.307' +ddsub166 subtract '0' '.43822' -> '-0.43822' +ddsub167 subtract '0' '.911' -> '-0.911' +ddsub168 subtract '.0' '.02' -> '-0.02' +ddsub169 subtract '00' '.392' -> '-0.392' +ddsub170 subtract '0' '.26' -> '-0.26' +ddsub171 subtract '0' '0.51' -> '-0.51' +ddsub172 subtract '0' '.2234' -> '-0.2234' +ddsub173 subtract '0' '.2' -> '-0.2' +ddsub174 subtract '.0' '.0008' -> '-0.0008' +-- 0. on left +ddsub180 subtract '0.0' '-.1' -> '0.1' +ddsub181 subtract '0.00' '-.97983' -> '0.97983' +ddsub182 subtract '0.0' '-.9' -> '0.9' +ddsub183 subtract '0.0' '-0.102' -> '0.102' +ddsub184 subtract '0.0' '-.4' -> '0.4' +ddsub185 subtract '0.0' '-.307' -> '0.307' +ddsub186 subtract '0.0' '-.43822' -> '0.43822' +ddsub187 subtract '0.0' '-.911' -> '0.911' +ddsub188 subtract '0.0' '-.02' -> '0.02' +ddsub189 subtract '0.00' '-.392' -> '0.392' +ddsub190 subtract '0.0' '-.26' -> '0.26' +ddsub191 subtract '0.0' '-0.51' -> '0.51' +ddsub192 subtract '0.0' '-.2234' -> '0.2234' +ddsub193 subtract '0.0' '-.2' -> '0.2' +ddsub194 subtract '0.0' '-.0008' -> '0.0008' +-- negatives of same +ddsub200 subtract '0' '-.1' -> '0.1' +ddsub201 subtract '00' '-.97983' -> '0.97983' +ddsub202 subtract '0' '-.9' -> '0.9' +ddsub203 subtract '0' '-0.102' -> '0.102' +ddsub204 subtract '0' '-.4' -> '0.4' +ddsub205 subtract '0' '-.307' -> '0.307' +ddsub206 subtract '0' '-.43822' -> '0.43822' +ddsub207 subtract '0' '-.911' -> '0.911' +ddsub208 subtract '.0' '-.02' -> '0.02' +ddsub209 subtract '00' '-.392' -> '0.392' +ddsub210 subtract '0' '-.26' -> '0.26' +ddsub211 subtract '0' '-0.51' -> '0.51' +ddsub212 subtract '0' '-.2234' -> '0.2234' +ddsub213 subtract '0' '-.2' -> '0.2' +ddsub214 subtract '.0' '-.0008' -> '0.0008' + +-- more fixed, LHS swaps [really the same as testcases under add] +ddsub220 subtract '-56267E-12' 0 -> '-5.6267E-8' +ddsub221 subtract '-56267E-11' 0 -> '-5.6267E-7' +ddsub222 subtract '-56267E-10' 0 -> '-0.0000056267' +ddsub223 subtract '-56267E-9' 0 -> '-0.000056267' +ddsub224 subtract '-56267E-8' 0 -> '-0.00056267' +ddsub225 subtract '-56267E-7' 0 -> '-0.0056267' +ddsub226 subtract '-56267E-6' 0 -> '-0.056267' +ddsub227 subtract '-56267E-5' 0 -> '-0.56267' +ddsub228 subtract '-56267E-2' 0 -> '-562.67' +ddsub229 subtract '-56267E-1' 0 -> '-5626.7' +ddsub230 subtract '-56267E-0' 0 -> '-56267' +-- symmetry ... +ddsub240 subtract 0 '-56267E-12' -> '5.6267E-8' +ddsub241 subtract 0 '-56267E-11' -> '5.6267E-7' +ddsub242 subtract 0 '-56267E-10' -> '0.0000056267' +ddsub243 subtract 0 '-56267E-9' -> '0.000056267' +ddsub244 subtract 0 '-56267E-8' -> '0.00056267' +ddsub245 subtract 0 '-56267E-7' -> '0.0056267' +ddsub246 subtract 0 '-56267E-6' -> '0.056267' +ddsub247 subtract 0 '-56267E-5' -> '0.56267' +ddsub248 subtract 0 '-56267E-2' -> '562.67' +ddsub249 subtract 0 '-56267E-1' -> '5626.7' +ddsub250 subtract 0 '-56267E-0' -> '56267' + +-- now some more from the 'new' add +ddsub301 subtract '1.23456789' '1.00000000' -> '0.23456789' +ddsub302 subtract '1.23456789' '1.00000011' -> '0.23456778' + +-- some carrying effects +ddsub321 subtract '0.9998' '0.0000' -> '0.9998' +ddsub322 subtract '0.9998' '0.0001' -> '0.9997' +ddsub323 subtract '0.9998' '0.0002' -> '0.9996' +ddsub324 subtract '0.9998' '0.0003' -> '0.9995' +ddsub325 subtract '0.9998' '-0.0000' -> '0.9998' +ddsub326 subtract '0.9998' '-0.0001' -> '0.9999' +ddsub327 subtract '0.9998' '-0.0002' -> '1.0000' +ddsub328 subtract '0.9998' '-0.0003' -> '1.0001' + +-- internal boundaries +ddsub346 subtract '10000e+9' '7' -> '9999999999993' +ddsub347 subtract '10000e+9' '70' -> '9999999999930' +ddsub348 subtract '10000e+9' '700' -> '9999999999300' +ddsub349 subtract '10000e+9' '7000' -> '9999999993000' +ddsub350 subtract '10000e+9' '70000' -> '9999999930000' +ddsub351 subtract '10000e+9' '700000' -> '9999999300000' +ddsub352 subtract '7' '10000e+9' -> '-9999999999993' +ddsub353 subtract '70' '10000e+9' -> '-9999999999930' +ddsub354 subtract '700' '10000e+9' -> '-9999999999300' +ddsub355 subtract '7000' '10000e+9' -> '-9999999993000' +ddsub356 subtract '70000' '10000e+9' -> '-9999999930000' +ddsub357 subtract '700000' '10000e+9' -> '-9999999300000' + +-- zero preservation +ddsub361 subtract 1 '0.0001' -> '0.9999' +ddsub362 subtract 1 '0.00001' -> '0.99999' +ddsub363 subtract 1 '0.000001' -> '0.999999' +ddsub364 subtract 1 '0.0000000000000001' -> '0.9999999999999999' +ddsub365 subtract 1 '0.00000000000000001' -> '1.000000000000000' Inexact Rounded +ddsub366 subtract 1 '0.000000000000000001' -> '1.000000000000000' Inexact Rounded + +-- some funny zeros [in case of bad signum] +ddsub370 subtract 1 0 -> 1 +ddsub371 subtract 1 0. -> 1 +ddsub372 subtract 1 .0 -> 1.0 +ddsub373 subtract 1 0.0 -> 1.0 +ddsub374 subtract 0 1 -> -1 +ddsub375 subtract 0. 1 -> -1 +ddsub376 subtract .0 1 -> -1.0 +ddsub377 subtract 0.0 1 -> -1.0 + +-- leading 0 digit before round +ddsub910 subtract -103519362 -51897955.3 -> -51621406.7 +ddsub911 subtract 159579.444 89827.5229 -> 69751.9211 + +ddsub920 subtract 333.0000000123456 33.00000001234566 -> 299.9999999999999 Inexact Rounded +ddsub921 subtract 333.0000000123456 33.00000001234565 -> 300.0000000000000 Inexact Rounded +ddsub922 subtract 133.0000000123456 33.00000001234565 -> 99.99999999999995 +ddsub923 subtract 133.0000000123456 33.00000001234564 -> 99.99999999999996 +ddsub924 subtract 133.0000000123456 33.00000001234540 -> 100.0000000000002 Rounded +ddsub925 subtract 133.0000000123456 43.00000001234560 -> 90.00000000000000 +ddsub926 subtract 133.0000000123456 43.00000001234561 -> 89.99999999999999 +ddsub927 subtract 133.0000000123456 43.00000001234566 -> 89.99999999999994 +ddsub928 subtract 101.0000000123456 91.00000001234566 -> 9.99999999999994 +ddsub929 subtract 101.0000000123456 99.00000001234566 -> 1.99999999999994 + +-- more LHS swaps [were fixed] +ddsub390 subtract '-56267E-10' 0 -> '-0.0000056267' +ddsub391 subtract '-56267E-6' 0 -> '-0.056267' +ddsub392 subtract '-56267E-5' 0 -> '-0.56267' +ddsub393 subtract '-56267E-4' 0 -> '-5.6267' +ddsub394 subtract '-56267E-3' 0 -> '-56.267' +ddsub395 subtract '-56267E-2' 0 -> '-562.67' +ddsub396 subtract '-56267E-1' 0 -> '-5626.7' +ddsub397 subtract '-56267E-0' 0 -> '-56267' +ddsub398 subtract '-5E-10' 0 -> '-5E-10' +ddsub399 subtract '-5E-7' 0 -> '-5E-7' +ddsub400 subtract '-5E-6' 0 -> '-0.000005' +ddsub401 subtract '-5E-5' 0 -> '-0.00005' +ddsub402 subtract '-5E-4' 0 -> '-0.0005' +ddsub403 subtract '-5E-1' 0 -> '-0.5' +ddsub404 subtract '-5E0' 0 -> '-5' +ddsub405 subtract '-5E1' 0 -> '-50' +ddsub406 subtract '-5E5' 0 -> '-500000' +ddsub407 subtract '-5E15' 0 -> '-5000000000000000' +ddsub408 subtract '-5E16' 0 -> '-5.000000000000000E+16' Rounded +ddsub409 subtract '-5E17' 0 -> '-5.000000000000000E+17' Rounded +ddsub410 subtract '-5E18' 0 -> '-5.000000000000000E+18' Rounded +ddsub411 subtract '-5E100' 0 -> '-5.000000000000000E+100' Rounded + +-- more RHS swaps [were fixed] +ddsub420 subtract 0 '-56267E-10' -> '0.0000056267' +ddsub421 subtract 0 '-56267E-6' -> '0.056267' +ddsub422 subtract 0 '-56267E-5' -> '0.56267' +ddsub423 subtract 0 '-56267E-4' -> '5.6267' +ddsub424 subtract 0 '-56267E-3' -> '56.267' +ddsub425 subtract 0 '-56267E-2' -> '562.67' +ddsub426 subtract 0 '-56267E-1' -> '5626.7' +ddsub427 subtract 0 '-56267E-0' -> '56267' +ddsub428 subtract 0 '-5E-10' -> '5E-10' +ddsub429 subtract 0 '-5E-7' -> '5E-7' +ddsub430 subtract 0 '-5E-6' -> '0.000005' +ddsub431 subtract 0 '-5E-5' -> '0.00005' +ddsub432 subtract 0 '-5E-4' -> '0.0005' +ddsub433 subtract 0 '-5E-1' -> '0.5' +ddsub434 subtract 0 '-5E0' -> '5' +ddsub435 subtract 0 '-5E1' -> '50' +ddsub436 subtract 0 '-5E5' -> '500000' +ddsub437 subtract 0 '-5E15' -> '5000000000000000' +ddsub438 subtract 0 '-5E16' -> '5.000000000000000E+16' Rounded +ddsub439 subtract 0 '-5E17' -> '5.000000000000000E+17' Rounded +ddsub440 subtract 0 '-5E18' -> '5.000000000000000E+18' Rounded +ddsub441 subtract 0 '-5E100' -> '5.000000000000000E+100' Rounded + + +-- try borderline precision, with carries, etc. +ddsub461 subtract '1E+16' '1' -> '9999999999999999' +ddsub462 subtract '1E+12' '-1.111' -> '1000000000001.111' +ddsub463 subtract '1.111' '-1E+12' -> '1000000000001.111' +ddsub464 subtract '-1' '-1E+16' -> '9999999999999999' +ddsub465 subtract '7E+15' '1' -> '6999999999999999' +ddsub466 subtract '7E+12' '-1.111' -> '7000000000001.111' +ddsub467 subtract '1.111' '-7E+12' -> '7000000000001.111' +ddsub468 subtract '-1' '-7E+15' -> '6999999999999999' + +-- 1234567890123456 1234567890123456 1 23456789012345 +ddsub470 subtract '0.4444444444444444' '-0.5555555555555563' -> '1.000000000000001' Inexact Rounded +ddsub471 subtract '0.4444444444444444' '-0.5555555555555562' -> '1.000000000000001' Inexact Rounded +ddsub472 subtract '0.4444444444444444' '-0.5555555555555561' -> '1.000000000000000' Inexact Rounded +ddsub473 subtract '0.4444444444444444' '-0.5555555555555560' -> '1.000000000000000' Inexact Rounded +ddsub474 subtract '0.4444444444444444' '-0.5555555555555559' -> '1.000000000000000' Inexact Rounded +ddsub475 subtract '0.4444444444444444' '-0.5555555555555558' -> '1.000000000000000' Inexact Rounded +ddsub476 subtract '0.4444444444444444' '-0.5555555555555557' -> '1.000000000000000' Inexact Rounded +ddsub477 subtract '0.4444444444444444' '-0.5555555555555556' -> '1.000000000000000' Rounded +ddsub478 subtract '0.4444444444444444' '-0.5555555555555555' -> '0.9999999999999999' +ddsub479 subtract '0.4444444444444444' '-0.5555555555555554' -> '0.9999999999999998' +ddsub480 subtract '0.4444444444444444' '-0.5555555555555553' -> '0.9999999999999997' +ddsub481 subtract '0.4444444444444444' '-0.5555555555555552' -> '0.9999999999999996' +ddsub482 subtract '0.4444444444444444' '-0.5555555555555551' -> '0.9999999999999995' +ddsub483 subtract '0.4444444444444444' '-0.5555555555555550' -> '0.9999999999999994' + +-- and some more, including residue effects and different roundings +rounding: half_up +ddsub500 subtract '1231234567456789' 0 -> '1231234567456789' +ddsub501 subtract '1231234567456789' 0.000000001 -> '1231234567456789' Inexact Rounded +ddsub502 subtract '1231234567456789' 0.000001 -> '1231234567456789' Inexact Rounded +ddsub503 subtract '1231234567456789' 0.1 -> '1231234567456789' Inexact Rounded +ddsub504 subtract '1231234567456789' 0.4 -> '1231234567456789' Inexact Rounded +ddsub505 subtract '1231234567456789' 0.49 -> '1231234567456789' Inexact Rounded +ddsub506 subtract '1231234567456789' 0.499999 -> '1231234567456789' Inexact Rounded +ddsub507 subtract '1231234567456789' 0.499999999 -> '1231234567456789' Inexact Rounded +ddsub508 subtract '1231234567456789' 0.5 -> '1231234567456789' Inexact Rounded +ddsub509 subtract '1231234567456789' 0.500000001 -> '1231234567456788' Inexact Rounded +ddsub510 subtract '1231234567456789' 0.500001 -> '1231234567456788' Inexact Rounded +ddsub511 subtract '1231234567456789' 0.51 -> '1231234567456788' Inexact Rounded +ddsub512 subtract '1231234567456789' 0.6 -> '1231234567456788' Inexact Rounded +ddsub513 subtract '1231234567456789' 0.9 -> '1231234567456788' Inexact Rounded +ddsub514 subtract '1231234567456789' 0.99999 -> '1231234567456788' Inexact Rounded +ddsub515 subtract '1231234567456789' 0.999999999 -> '1231234567456788' Inexact Rounded +ddsub516 subtract '1231234567456789' 1 -> '1231234567456788' +ddsub517 subtract '1231234567456789' 1.000000001 -> '1231234567456788' Inexact Rounded +ddsub518 subtract '1231234567456789' 1.00001 -> '1231234567456788' Inexact Rounded +ddsub519 subtract '1231234567456789' 1.1 -> '1231234567456788' Inexact Rounded + +rounding: half_even +ddsub520 subtract '1231234567456789' 0 -> '1231234567456789' +ddsub521 subtract '1231234567456789' 0.000000001 -> '1231234567456789' Inexact Rounded +ddsub522 subtract '1231234567456789' 0.000001 -> '1231234567456789' Inexact Rounded +ddsub523 subtract '1231234567456789' 0.1 -> '1231234567456789' Inexact Rounded +ddsub524 subtract '1231234567456789' 0.4 -> '1231234567456789' Inexact Rounded +ddsub525 subtract '1231234567456789' 0.49 -> '1231234567456789' Inexact Rounded +ddsub526 subtract '1231234567456789' 0.499999 -> '1231234567456789' Inexact Rounded +ddsub527 subtract '1231234567456789' 0.499999999 -> '1231234567456789' Inexact Rounded +ddsub528 subtract '1231234567456789' 0.5 -> '1231234567456788' Inexact Rounded +ddsub529 subtract '1231234567456789' 0.500000001 -> '1231234567456788' Inexact Rounded +ddsub530 subtract '1231234567456789' 0.500001 -> '1231234567456788' Inexact Rounded +ddsub531 subtract '1231234567456789' 0.51 -> '1231234567456788' Inexact Rounded +ddsub532 subtract '1231234567456789' 0.6 -> '1231234567456788' Inexact Rounded +ddsub533 subtract '1231234567456789' 0.9 -> '1231234567456788' Inexact Rounded +ddsub534 subtract '1231234567456789' 0.99999 -> '1231234567456788' Inexact Rounded +ddsub535 subtract '1231234567456789' 0.999999999 -> '1231234567456788' Inexact Rounded +ddsub536 subtract '1231234567456789' 1 -> '1231234567456788' +ddsub537 subtract '1231234567456789' 1.00000001 -> '1231234567456788' Inexact Rounded +ddsub538 subtract '1231234567456789' 1.00001 -> '1231234567456788' Inexact Rounded +ddsub539 subtract '1231234567456789' 1.1 -> '1231234567456788' Inexact Rounded +-- critical few with even bottom digit... +ddsub540 subtract '1231234567456788' 0.499999999 -> '1231234567456788' Inexact Rounded +ddsub541 subtract '1231234567456788' 0.5 -> '1231234567456788' Inexact Rounded +ddsub542 subtract '1231234567456788' 0.500000001 -> '1231234567456787' Inexact Rounded + +rounding: down +ddsub550 subtract '1231234567456789' 0 -> '1231234567456789' +ddsub551 subtract '1231234567456789' 0.000000001 -> '1231234567456788' Inexact Rounded +ddsub552 subtract '1231234567456789' 0.000001 -> '1231234567456788' Inexact Rounded +ddsub553 subtract '1231234567456789' 0.1 -> '1231234567456788' Inexact Rounded +ddsub554 subtract '1231234567456789' 0.4 -> '1231234567456788' Inexact Rounded +ddsub555 subtract '1231234567456789' 0.49 -> '1231234567456788' Inexact Rounded +ddsub556 subtract '1231234567456789' 0.499999 -> '1231234567456788' Inexact Rounded +ddsub557 subtract '1231234567456789' 0.499999999 -> '1231234567456788' Inexact Rounded +ddsub558 subtract '1231234567456789' 0.5 -> '1231234567456788' Inexact Rounded +ddsub559 subtract '1231234567456789' 0.500000001 -> '1231234567456788' Inexact Rounded +ddsub560 subtract '1231234567456789' 0.500001 -> '1231234567456788' Inexact Rounded +ddsub561 subtract '1231234567456789' 0.51 -> '1231234567456788' Inexact Rounded +ddsub562 subtract '1231234567456789' 0.6 -> '1231234567456788' Inexact Rounded +ddsub563 subtract '1231234567456789' 0.9 -> '1231234567456788' Inexact Rounded +ddsub564 subtract '1231234567456789' 0.99999 -> '1231234567456788' Inexact Rounded +ddsub565 subtract '1231234567456789' 0.999999999 -> '1231234567456788' Inexact Rounded +ddsub566 subtract '1231234567456789' 1 -> '1231234567456788' +ddsub567 subtract '1231234567456789' 1.00000001 -> '1231234567456787' Inexact Rounded +ddsub568 subtract '1231234567456789' 1.00001 -> '1231234567456787' Inexact Rounded +ddsub569 subtract '1231234567456789' 1.1 -> '1231234567456787' Inexact Rounded + +-- symmetry... +rounding: half_up +ddsub600 subtract 0 '1231234567456789' -> '-1231234567456789' +ddsub601 subtract 0.000000001 '1231234567456789' -> '-1231234567456789' Inexact Rounded +ddsub602 subtract 0.000001 '1231234567456789' -> '-1231234567456789' Inexact Rounded +ddsub603 subtract 0.1 '1231234567456789' -> '-1231234567456789' Inexact Rounded +ddsub604 subtract 0.4 '1231234567456789' -> '-1231234567456789' Inexact Rounded +ddsub605 subtract 0.49 '1231234567456789' -> '-1231234567456789' Inexact Rounded +ddsub606 subtract 0.499999 '1231234567456789' -> '-1231234567456789' Inexact Rounded +ddsub607 subtract 0.499999999 '1231234567456789' -> '-1231234567456789' Inexact Rounded +ddsub608 subtract 0.5 '1231234567456789' -> '-1231234567456789' Inexact Rounded +ddsub609 subtract 0.500000001 '1231234567456789' -> '-1231234567456788' Inexact Rounded +ddsub610 subtract 0.500001 '1231234567456789' -> '-1231234567456788' Inexact Rounded +ddsub611 subtract 0.51 '1231234567456789' -> '-1231234567456788' Inexact Rounded +ddsub612 subtract 0.6 '1231234567456789' -> '-1231234567456788' Inexact Rounded +ddsub613 subtract 0.9 '1231234567456789' -> '-1231234567456788' Inexact Rounded +ddsub614 subtract 0.99999 '1231234567456789' -> '-1231234567456788' Inexact Rounded +ddsub615 subtract 0.999999999 '1231234567456789' -> '-1231234567456788' Inexact Rounded +ddsub616 subtract 1 '1231234567456789' -> '-1231234567456788' +ddsub617 subtract 1.000000001 '1231234567456789' -> '-1231234567456788' Inexact Rounded +ddsub618 subtract 1.00001 '1231234567456789' -> '-1231234567456788' Inexact Rounded +ddsub619 subtract 1.1 '1231234567456789' -> '-1231234567456788' Inexact Rounded + +rounding: half_even +ddsub620 subtract 0 '1231234567456789' -> '-1231234567456789' +ddsub621 subtract 0.000000001 '1231234567456789' -> '-1231234567456789' Inexact Rounded +ddsub622 subtract 0.000001 '1231234567456789' -> '-1231234567456789' Inexact Rounded +ddsub623 subtract 0.1 '1231234567456789' -> '-1231234567456789' Inexact Rounded +ddsub624 subtract 0.4 '1231234567456789' -> '-1231234567456789' Inexact Rounded +ddsub625 subtract 0.49 '1231234567456789' -> '-1231234567456789' Inexact Rounded +ddsub626 subtract 0.499999 '1231234567456789' -> '-1231234567456789' Inexact Rounded +ddsub627 subtract 0.499999999 '1231234567456789' -> '-1231234567456789' Inexact Rounded +ddsub628 subtract 0.5 '1231234567456789' -> '-1231234567456788' Inexact Rounded +ddsub629 subtract 0.500000001 '1231234567456789' -> '-1231234567456788' Inexact Rounded +ddsub630 subtract 0.500001 '1231234567456789' -> '-1231234567456788' Inexact Rounded +ddsub631 subtract 0.51 '1231234567456789' -> '-1231234567456788' Inexact Rounded +ddsub632 subtract 0.6 '1231234567456789' -> '-1231234567456788' Inexact Rounded +ddsub633 subtract 0.9 '1231234567456789' -> '-1231234567456788' Inexact Rounded +ddsub634 subtract 0.99999 '1231234567456789' -> '-1231234567456788' Inexact Rounded +ddsub635 subtract 0.999999999 '1231234567456789' -> '-1231234567456788' Inexact Rounded +ddsub636 subtract 1 '1231234567456789' -> '-1231234567456788' +ddsub637 subtract 1.00000001 '1231234567456789' -> '-1231234567456788' Inexact Rounded +ddsub638 subtract 1.00001 '1231234567456789' -> '-1231234567456788' Inexact Rounded +ddsub639 subtract 1.1 '1231234567456789' -> '-1231234567456788' Inexact Rounded +-- critical few with even bottom digit... +ddsub640 subtract 0.499999999 '1231234567456788' -> '-1231234567456788' Inexact Rounded +ddsub641 subtract 0.5 '1231234567456788' -> '-1231234567456788' Inexact Rounded +ddsub642 subtract 0.500000001 '1231234567456788' -> '-1231234567456787' Inexact Rounded + +rounding: down +ddsub650 subtract 0 '1231234567456789' -> '-1231234567456789' +ddsub651 subtract 0.000000001 '1231234567456789' -> '-1231234567456788' Inexact Rounded +ddsub652 subtract 0.000001 '1231234567456789' -> '-1231234567456788' Inexact Rounded +ddsub653 subtract 0.1 '1231234567456789' -> '-1231234567456788' Inexact Rounded +ddsub654 subtract 0.4 '1231234567456789' -> '-1231234567456788' Inexact Rounded +ddsub655 subtract 0.49 '1231234567456789' -> '-1231234567456788' Inexact Rounded +ddsub656 subtract 0.499999 '1231234567456789' -> '-1231234567456788' Inexact Rounded +ddsub657 subtract 0.499999999 '1231234567456789' -> '-1231234567456788' Inexact Rounded +ddsub658 subtract 0.5 '1231234567456789' -> '-1231234567456788' Inexact Rounded +ddsub659 subtract 0.500000001 '1231234567456789' -> '-1231234567456788' Inexact Rounded +ddsub660 subtract 0.500001 '1231234567456789' -> '-1231234567456788' Inexact Rounded +ddsub661 subtract 0.51 '1231234567456789' -> '-1231234567456788' Inexact Rounded +ddsub662 subtract 0.6 '1231234567456789' -> '-1231234567456788' Inexact Rounded +ddsub663 subtract 0.9 '1231234567456789' -> '-1231234567456788' Inexact Rounded +ddsub664 subtract 0.99999 '1231234567456789' -> '-1231234567456788' Inexact Rounded +ddsub665 subtract 0.999999999 '1231234567456789' -> '-1231234567456788' Inexact Rounded +ddsub666 subtract 1 '1231234567456789' -> '-1231234567456788' +ddsub667 subtract 1.00000001 '1231234567456789' -> '-1231234567456787' Inexact Rounded +ddsub668 subtract 1.00001 '1231234567456789' -> '-1231234567456787' Inexact Rounded +ddsub669 subtract 1.1 '1231234567456789' -> '-1231234567456787' Inexact Rounded + + +-- lots of leading zeros in intermediate result, and showing effects of +-- input rounding would have affected the following +rounding: half_up +ddsub670 subtract '1234567456789' '1234567456788.1' -> 0.9 +ddsub671 subtract '1234567456789' '1234567456788.9' -> 0.1 +ddsub672 subtract '1234567456789' '1234567456789.1' -> -0.1 +ddsub673 subtract '1234567456789' '1234567456789.5' -> -0.5 +ddsub674 subtract '1234567456789' '1234567456789.9' -> -0.9 + +rounding: half_even +ddsub680 subtract '1234567456789' '1234567456788.1' -> 0.9 +ddsub681 subtract '1234567456789' '1234567456788.9' -> 0.1 +ddsub682 subtract '1234567456789' '1234567456789.1' -> -0.1 +ddsub683 subtract '1234567456789' '1234567456789.5' -> -0.5 +ddsub684 subtract '1234567456789' '1234567456789.9' -> -0.9 + +ddsub685 subtract '1234567456788' '1234567456787.1' -> 0.9 +ddsub686 subtract '1234567456788' '1234567456787.9' -> 0.1 +ddsub687 subtract '1234567456788' '1234567456788.1' -> -0.1 +ddsub688 subtract '1234567456788' '1234567456788.5' -> -0.5 +ddsub689 subtract '1234567456788' '1234567456788.9' -> -0.9 + +rounding: down +ddsub690 subtract '1234567456789' '1234567456788.1' -> 0.9 +ddsub691 subtract '1234567456789' '1234567456788.9' -> 0.1 +ddsub692 subtract '1234567456789' '1234567456789.1' -> -0.1 +ddsub693 subtract '1234567456789' '1234567456789.5' -> -0.5 +ddsub694 subtract '1234567456789' '1234567456789.9' -> -0.9 + +-- Specials +ddsub780 subtract -Inf Inf -> -Infinity +ddsub781 subtract -Inf 1000 -> -Infinity +ddsub782 subtract -Inf 1 -> -Infinity +ddsub783 subtract -Inf -0 -> -Infinity +ddsub784 subtract -Inf -1 -> -Infinity +ddsub785 subtract -Inf -1000 -> -Infinity +ddsub787 subtract -1000 Inf -> -Infinity +ddsub788 subtract -Inf Inf -> -Infinity +ddsub789 subtract -1 Inf -> -Infinity +ddsub790 subtract 0 Inf -> -Infinity +ddsub791 subtract 1 Inf -> -Infinity +ddsub792 subtract 1000 Inf -> -Infinity + +ddsub800 subtract Inf Inf -> NaN Invalid_operation +ddsub801 subtract Inf 1000 -> Infinity +ddsub802 subtract Inf 1 -> Infinity +ddsub803 subtract Inf 0 -> Infinity +ddsub804 subtract Inf -0 -> Infinity +ddsub805 subtract Inf -1 -> Infinity +ddsub806 subtract Inf -1000 -> Infinity +ddsub807 subtract Inf -Inf -> Infinity +ddsub808 subtract -1000 -Inf -> Infinity +ddsub809 subtract -Inf -Inf -> NaN Invalid_operation +ddsub810 subtract -1 -Inf -> Infinity +ddsub811 subtract -0 -Inf -> Infinity +ddsub812 subtract 0 -Inf -> Infinity +ddsub813 subtract 1 -Inf -> Infinity +ddsub814 subtract 1000 -Inf -> Infinity +ddsub815 subtract Inf -Inf -> Infinity + +ddsub821 subtract NaN Inf -> NaN +ddsub822 subtract -NaN 1000 -> -NaN +ddsub823 subtract NaN 1 -> NaN +ddsub824 subtract NaN 0 -> NaN +ddsub825 subtract NaN -0 -> NaN +ddsub826 subtract NaN -1 -> NaN +ddsub827 subtract NaN -1000 -> NaN +ddsub828 subtract NaN -Inf -> NaN +ddsub829 subtract -NaN NaN -> -NaN +ddsub830 subtract -Inf NaN -> NaN +ddsub831 subtract -1000 NaN -> NaN +ddsub832 subtract -1 NaN -> NaN +ddsub833 subtract -0 NaN -> NaN +ddsub834 subtract 0 NaN -> NaN +ddsub835 subtract 1 NaN -> NaN +ddsub836 subtract 1000 -NaN -> -NaN +ddsub837 subtract Inf NaN -> NaN + +ddsub841 subtract sNaN Inf -> NaN Invalid_operation +ddsub842 subtract -sNaN 1000 -> -NaN Invalid_operation +ddsub843 subtract sNaN 1 -> NaN Invalid_operation +ddsub844 subtract sNaN 0 -> NaN Invalid_operation +ddsub845 subtract sNaN -0 -> NaN Invalid_operation +ddsub846 subtract sNaN -1 -> NaN Invalid_operation +ddsub847 subtract sNaN -1000 -> NaN Invalid_operation +ddsub848 subtract sNaN NaN -> NaN Invalid_operation +ddsub849 subtract sNaN sNaN -> NaN Invalid_operation +ddsub850 subtract NaN sNaN -> NaN Invalid_operation +ddsub851 subtract -Inf -sNaN -> -NaN Invalid_operation +ddsub852 subtract -1000 sNaN -> NaN Invalid_operation +ddsub853 subtract -1 sNaN -> NaN Invalid_operation +ddsub854 subtract -0 sNaN -> NaN Invalid_operation +ddsub855 subtract 0 sNaN -> NaN Invalid_operation +ddsub856 subtract 1 sNaN -> NaN Invalid_operation +ddsub857 subtract 1000 sNaN -> NaN Invalid_operation +ddsub858 subtract Inf sNaN -> NaN Invalid_operation +ddsub859 subtract NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +ddsub861 subtract NaN01 -Inf -> NaN1 +ddsub862 subtract -NaN02 -1000 -> -NaN2 +ddsub863 subtract NaN03 1000 -> NaN3 +ddsub864 subtract NaN04 Inf -> NaN4 +ddsub865 subtract NaN05 NaN61 -> NaN5 +ddsub866 subtract -Inf -NaN71 -> -NaN71 +ddsub867 subtract -1000 NaN81 -> NaN81 +ddsub868 subtract 1000 NaN91 -> NaN91 +ddsub869 subtract Inf NaN101 -> NaN101 +ddsub871 subtract sNaN011 -Inf -> NaN11 Invalid_operation +ddsub872 subtract sNaN012 -1000 -> NaN12 Invalid_operation +ddsub873 subtract -sNaN013 1000 -> -NaN13 Invalid_operation +ddsub874 subtract sNaN014 NaN171 -> NaN14 Invalid_operation +ddsub875 subtract sNaN015 sNaN181 -> NaN15 Invalid_operation +ddsub876 subtract NaN016 sNaN191 -> NaN191 Invalid_operation +ddsub877 subtract -Inf sNaN201 -> NaN201 Invalid_operation +ddsub878 subtract -1000 sNaN211 -> NaN211 Invalid_operation +ddsub879 subtract 1000 -sNaN221 -> -NaN221 Invalid_operation +ddsub880 subtract Inf sNaN231 -> NaN231 Invalid_operation +ddsub881 subtract NaN025 sNaN241 -> NaN241 Invalid_operation + +-- edge case spills +ddsub901 subtract 2.E-3 1.002 -> -1.000 +ddsub902 subtract 2.0E-3 1.002 -> -1.0000 +ddsub903 subtract 2.00E-3 1.0020 -> -1.00000 +ddsub904 subtract 2.000E-3 1.00200 -> -1.000000 +ddsub905 subtract 2.0000E-3 1.002000 -> -1.0000000 +ddsub906 subtract 2.00000E-3 1.0020000 -> -1.00000000 +ddsub907 subtract 2.000000E-3 1.00200000 -> -1.000000000 +ddsub908 subtract 2.0000000E-3 1.002000000 -> -1.0000000000 + +-- subnormals and overflows covered under Add + +-- Null tests +ddsub9990 subtract 10 # -> NaN Invalid_operation +ddsub9991 subtract # 10 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/ddToIntegral.decTest b/Lib/test/decimaltestdata/ddToIntegral.decTest index 900bd4ac3a..bf6d61fa56 100644 --- a/Lib/test/decimaltestdata/ddToIntegral.decTest +++ b/Lib/test/decimaltestdata/ddToIntegral.decTest @@ -1,257 +1,257 @@ -------------------------------------------------------------------------
--- ddToIntegral.decTest -- round Double to integral value --
--- Copyright (c) IBM Corporation, 2001, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- This set of tests tests the extended specification 'round-to-integral
--- value-exact' operations (from IEEE 854, later modified in 754r).
--- All non-zero results are defined as being those from either copy or
--- quantize, so those are assumed to have been tested extensively
--- elsewhere; the tests here are for integrity, rounding mode, etc.
--- Also, it is assumed the test harness will use these tests for both
--- ToIntegralExact (which does set Inexact) and the fixed-name
--- functions (which do not set Inexact).
-
--- Note that decNumber implements an earlier definition of toIntegral
--- which never sets Inexact; the decTest operator for that is called
--- 'tointegral' instead of 'tointegralx'.
-
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
-ddintx001 tointegralx 0 -> 0
-ddintx002 tointegralx 0.0 -> 0
-ddintx003 tointegralx 0.1 -> 0 Inexact Rounded
-ddintx004 tointegralx 0.2 -> 0 Inexact Rounded
-ddintx005 tointegralx 0.3 -> 0 Inexact Rounded
-ddintx006 tointegralx 0.4 -> 0 Inexact Rounded
-ddintx007 tointegralx 0.5 -> 0 Inexact Rounded
-ddintx008 tointegralx 0.6 -> 1 Inexact Rounded
-ddintx009 tointegralx 0.7 -> 1 Inexact Rounded
-ddintx010 tointegralx 0.8 -> 1 Inexact Rounded
-ddintx011 tointegralx 0.9 -> 1 Inexact Rounded
-ddintx012 tointegralx 1 -> 1
-ddintx013 tointegralx 1.0 -> 1 Rounded
-ddintx014 tointegralx 1.1 -> 1 Inexact Rounded
-ddintx015 tointegralx 1.2 -> 1 Inexact Rounded
-ddintx016 tointegralx 1.3 -> 1 Inexact Rounded
-ddintx017 tointegralx 1.4 -> 1 Inexact Rounded
-ddintx018 tointegralx 1.5 -> 2 Inexact Rounded
-ddintx019 tointegralx 1.6 -> 2 Inexact Rounded
-ddintx020 tointegralx 1.7 -> 2 Inexact Rounded
-ddintx021 tointegralx 1.8 -> 2 Inexact Rounded
-ddintx022 tointegralx 1.9 -> 2 Inexact Rounded
--- negatives
-ddintx031 tointegralx -0 -> -0
-ddintx032 tointegralx -0.0 -> -0
-ddintx033 tointegralx -0.1 -> -0 Inexact Rounded
-ddintx034 tointegralx -0.2 -> -0 Inexact Rounded
-ddintx035 tointegralx -0.3 -> -0 Inexact Rounded
-ddintx036 tointegralx -0.4 -> -0 Inexact Rounded
-ddintx037 tointegralx -0.5 -> -0 Inexact Rounded
-ddintx038 tointegralx -0.6 -> -1 Inexact Rounded
-ddintx039 tointegralx -0.7 -> -1 Inexact Rounded
-ddintx040 tointegralx -0.8 -> -1 Inexact Rounded
-ddintx041 tointegralx -0.9 -> -1 Inexact Rounded
-ddintx042 tointegralx -1 -> -1
-ddintx043 tointegralx -1.0 -> -1 Rounded
-ddintx044 tointegralx -1.1 -> -1 Inexact Rounded
-ddintx045 tointegralx -1.2 -> -1 Inexact Rounded
-ddintx046 tointegralx -1.3 -> -1 Inexact Rounded
-ddintx047 tointegralx -1.4 -> -1 Inexact Rounded
-ddintx048 tointegralx -1.5 -> -2 Inexact Rounded
-ddintx049 tointegralx -1.6 -> -2 Inexact Rounded
-ddintx050 tointegralx -1.7 -> -2 Inexact Rounded
-ddintx051 tointegralx -1.8 -> -2 Inexact Rounded
-ddintx052 tointegralx -1.9 -> -2 Inexact Rounded
--- next two would be NaN using quantize(x, 0)
-ddintx053 tointegralx 10E+60 -> 1.0E+61
-ddintx054 tointegralx -10E+60 -> -1.0E+61
-
--- numbers around precision
-ddintx060 tointegralx '56267E-17' -> '0' Inexact Rounded
-ddintx061 tointegralx '56267E-5' -> '1' Inexact Rounded
-ddintx062 tointegralx '56267E-2' -> '563' Inexact Rounded
-ddintx063 tointegralx '56267E-1' -> '5627' Inexact Rounded
-ddintx065 tointegralx '56267E-0' -> '56267'
-ddintx066 tointegralx '56267E+0' -> '56267'
-ddintx067 tointegralx '56267E+1' -> '5.6267E+5'
-ddintx068 tointegralx '56267E+9' -> '5.6267E+13'
-ddintx069 tointegralx '56267E+10' -> '5.6267E+14'
-ddintx070 tointegralx '56267E+11' -> '5.6267E+15'
-ddintx071 tointegralx '56267E+12' -> '5.6267E+16'
-ddintx072 tointegralx '56267E+13' -> '5.6267E+17'
-ddintx073 tointegralx '1.23E+96' -> '1.23E+96'
-ddintx074 tointegralx '1.23E+384' -> #47fd300000000000 Clamped
-
-ddintx080 tointegralx '-56267E-10' -> '-0' Inexact Rounded
-ddintx081 tointegralx '-56267E-5' -> '-1' Inexact Rounded
-ddintx082 tointegralx '-56267E-2' -> '-563' Inexact Rounded
-ddintx083 tointegralx '-56267E-1' -> '-5627' Inexact Rounded
-ddintx085 tointegralx '-56267E-0' -> '-56267'
-ddintx086 tointegralx '-56267E+0' -> '-56267'
-ddintx087 tointegralx '-56267E+1' -> '-5.6267E+5'
-ddintx088 tointegralx '-56267E+9' -> '-5.6267E+13'
-ddintx089 tointegralx '-56267E+10' -> '-5.6267E+14'
-ddintx090 tointegralx '-56267E+11' -> '-5.6267E+15'
-ddintx091 tointegralx '-56267E+12' -> '-5.6267E+16'
-ddintx092 tointegralx '-56267E+13' -> '-5.6267E+17'
-ddintx093 tointegralx '-1.23E+96' -> '-1.23E+96'
-ddintx094 tointegralx '-1.23E+384' -> #c7fd300000000000 Clamped
-
--- subnormal inputs
-ddintx100 tointegralx 1E-299 -> 0 Inexact Rounded
-ddintx101 tointegralx 0.1E-299 -> 0 Inexact Rounded
-ddintx102 tointegralx 0.01E-299 -> 0 Inexact Rounded
-ddintx103 tointegralx 0E-299 -> 0
-
--- specials and zeros
-ddintx120 tointegralx 'Inf' -> Infinity
-ddintx121 tointegralx '-Inf' -> -Infinity
-ddintx122 tointegralx NaN -> NaN
-ddintx123 tointegralx sNaN -> NaN Invalid_operation
-ddintx124 tointegralx 0 -> 0
-ddintx125 tointegralx -0 -> -0
-ddintx126 tointegralx 0.000 -> 0
-ddintx127 tointegralx 0.00 -> 0
-ddintx128 tointegralx 0.0 -> 0
-ddintx129 tointegralx 0 -> 0
-ddintx130 tointegralx 0E-3 -> 0
-ddintx131 tointegralx 0E-2 -> 0
-ddintx132 tointegralx 0E-1 -> 0
-ddintx133 tointegralx 0E-0 -> 0
-ddintx134 tointegralx 0E+1 -> 0E+1
-ddintx135 tointegralx 0E+2 -> 0E+2
-ddintx136 tointegralx 0E+3 -> 0E+3
-ddintx137 tointegralx 0E+4 -> 0E+4
-ddintx138 tointegralx 0E+5 -> 0E+5
-ddintx139 tointegralx -0.000 -> -0
-ddintx140 tointegralx -0.00 -> -0
-ddintx141 tointegralx -0.0 -> -0
-ddintx142 tointegralx -0 -> -0
-ddintx143 tointegralx -0E-3 -> -0
-ddintx144 tointegralx -0E-2 -> -0
-ddintx145 tointegralx -0E-1 -> -0
-ddintx146 tointegralx -0E-0 -> -0
-ddintx147 tointegralx -0E+1 -> -0E+1
-ddintx148 tointegralx -0E+2 -> -0E+2
-ddintx149 tointegralx -0E+3 -> -0E+3
-ddintx150 tointegralx -0E+4 -> -0E+4
-ddintx151 tointegralx -0E+5 -> -0E+5
--- propagating NaNs
-ddintx152 tointegralx NaN808 -> NaN808
-ddintx153 tointegralx sNaN080 -> NaN80 Invalid_operation
-ddintx154 tointegralx -NaN808 -> -NaN808
-ddintx155 tointegralx -sNaN080 -> -NaN80 Invalid_operation
-ddintx156 tointegralx -NaN -> -NaN
-ddintx157 tointegralx -sNaN -> -NaN Invalid_operation
-
--- examples
-rounding: half_up
-ddintx200 tointegralx 2.1 -> 2 Inexact Rounded
-ddintx201 tointegralx 100 -> 100
-ddintx202 tointegralx 100.0 -> 100 Rounded
-ddintx203 tointegralx 101.5 -> 102 Inexact Rounded
-ddintx204 tointegralx -101.5 -> -102 Inexact Rounded
-ddintx205 tointegralx 10E+5 -> 1.0E+6
-ddintx206 tointegralx 7.89E+77 -> 7.89E+77
-ddintx207 tointegralx -Inf -> -Infinity
-
-
--- all rounding modes
-rounding: half_even
-ddintx210 tointegralx 55.5 -> 56 Inexact Rounded
-ddintx211 tointegralx 56.5 -> 56 Inexact Rounded
-ddintx212 tointegralx 57.5 -> 58 Inexact Rounded
-ddintx213 tointegralx -55.5 -> -56 Inexact Rounded
-ddintx214 tointegralx -56.5 -> -56 Inexact Rounded
-ddintx215 tointegralx -57.5 -> -58 Inexact Rounded
-
-rounding: half_up
-
-ddintx220 tointegralx 55.5 -> 56 Inexact Rounded
-ddintx221 tointegralx 56.5 -> 57 Inexact Rounded
-ddintx222 tointegralx 57.5 -> 58 Inexact Rounded
-ddintx223 tointegralx -55.5 -> -56 Inexact Rounded
-ddintx224 tointegralx -56.5 -> -57 Inexact Rounded
-ddintx225 tointegralx -57.5 -> -58 Inexact Rounded
-
-rounding: half_down
-
-ddintx230 tointegralx 55.5 -> 55 Inexact Rounded
-ddintx231 tointegralx 56.5 -> 56 Inexact Rounded
-ddintx232 tointegralx 57.5 -> 57 Inexact Rounded
-ddintx233 tointegralx -55.5 -> -55 Inexact Rounded
-ddintx234 tointegralx -56.5 -> -56 Inexact Rounded
-ddintx235 tointegralx -57.5 -> -57 Inexact Rounded
-
-rounding: up
-
-ddintx240 tointegralx 55.3 -> 56 Inexact Rounded
-ddintx241 tointegralx 56.3 -> 57 Inexact Rounded
-ddintx242 tointegralx 57.3 -> 58 Inexact Rounded
-ddintx243 tointegralx -55.3 -> -56 Inexact Rounded
-ddintx244 tointegralx -56.3 -> -57 Inexact Rounded
-ddintx245 tointegralx -57.3 -> -58 Inexact Rounded
-
-rounding: down
-
-ddintx250 tointegralx 55.7 -> 55 Inexact Rounded
-ddintx251 tointegralx 56.7 -> 56 Inexact Rounded
-ddintx252 tointegralx 57.7 -> 57 Inexact Rounded
-ddintx253 tointegralx -55.7 -> -55 Inexact Rounded
-ddintx254 tointegralx -56.7 -> -56 Inexact Rounded
-ddintx255 tointegralx -57.7 -> -57 Inexact Rounded
-
-rounding: ceiling
-
-ddintx260 tointegralx 55.3 -> 56 Inexact Rounded
-ddintx261 tointegralx 56.3 -> 57 Inexact Rounded
-ddintx262 tointegralx 57.3 -> 58 Inexact Rounded
-ddintx263 tointegralx -55.3 -> -55 Inexact Rounded
-ddintx264 tointegralx -56.3 -> -56 Inexact Rounded
-ddintx265 tointegralx -57.3 -> -57 Inexact Rounded
-
-rounding: floor
-
-ddintx270 tointegralx 55.7 -> 55 Inexact Rounded
-ddintx271 tointegralx 56.7 -> 56 Inexact Rounded
-ddintx272 tointegralx 57.7 -> 57 Inexact Rounded
-ddintx273 tointegralx -55.7 -> -56 Inexact Rounded
-ddintx274 tointegralx -56.7 -> -57 Inexact Rounded
-ddintx275 tointegralx -57.7 -> -58 Inexact Rounded
-
--- Int and uInt32 edge values for testing conversions
-ddintx300 tointegralx -2147483646 -> -2147483646
-ddintx301 tointegralx -2147483647 -> -2147483647
-ddintx302 tointegralx -2147483648 -> -2147483648
-ddintx303 tointegralx -2147483649 -> -2147483649
-ddintx304 tointegralx 2147483646 -> 2147483646
-ddintx305 tointegralx 2147483647 -> 2147483647
-ddintx306 tointegralx 2147483648 -> 2147483648
-ddintx307 tointegralx 2147483649 -> 2147483649
-ddintx308 tointegralx 4294967294 -> 4294967294
-ddintx309 tointegralx 4294967295 -> 4294967295
-ddintx310 tointegralx 4294967296 -> 4294967296
-ddintx311 tointegralx 4294967297 -> 4294967297
-
+------------------------------------------------------------------------ +-- ddToIntegral.decTest -- round Double to integral value -- +-- Copyright (c) IBM Corporation, 2001, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- This set of tests tests the extended specification 'round-to-integral +-- value-exact' operations (from IEEE 854, later modified in 754r). +-- All non-zero results are defined as being those from either copy or +-- quantize, so those are assumed to have been tested extensively +-- elsewhere; the tests here are for integrity, rounding mode, etc. +-- Also, it is assumed the test harness will use these tests for both +-- ToIntegralExact (which does set Inexact) and the fixed-name +-- functions (which do not set Inexact). + +-- Note that decNumber implements an earlier definition of toIntegral +-- which never sets Inexact; the decTest operator for that is called +-- 'tointegral' instead of 'tointegralx'. + +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +ddintx001 tointegralx 0 -> 0 +ddintx002 tointegralx 0.0 -> 0 +ddintx003 tointegralx 0.1 -> 0 Inexact Rounded +ddintx004 tointegralx 0.2 -> 0 Inexact Rounded +ddintx005 tointegralx 0.3 -> 0 Inexact Rounded +ddintx006 tointegralx 0.4 -> 0 Inexact Rounded +ddintx007 tointegralx 0.5 -> 0 Inexact Rounded +ddintx008 tointegralx 0.6 -> 1 Inexact Rounded +ddintx009 tointegralx 0.7 -> 1 Inexact Rounded +ddintx010 tointegralx 0.8 -> 1 Inexact Rounded +ddintx011 tointegralx 0.9 -> 1 Inexact Rounded +ddintx012 tointegralx 1 -> 1 +ddintx013 tointegralx 1.0 -> 1 Rounded +ddintx014 tointegralx 1.1 -> 1 Inexact Rounded +ddintx015 tointegralx 1.2 -> 1 Inexact Rounded +ddintx016 tointegralx 1.3 -> 1 Inexact Rounded +ddintx017 tointegralx 1.4 -> 1 Inexact Rounded +ddintx018 tointegralx 1.5 -> 2 Inexact Rounded +ddintx019 tointegralx 1.6 -> 2 Inexact Rounded +ddintx020 tointegralx 1.7 -> 2 Inexact Rounded +ddintx021 tointegralx 1.8 -> 2 Inexact Rounded +ddintx022 tointegralx 1.9 -> 2 Inexact Rounded +-- negatives +ddintx031 tointegralx -0 -> -0 +ddintx032 tointegralx -0.0 -> -0 +ddintx033 tointegralx -0.1 -> -0 Inexact Rounded +ddintx034 tointegralx -0.2 -> -0 Inexact Rounded +ddintx035 tointegralx -0.3 -> -0 Inexact Rounded +ddintx036 tointegralx -0.4 -> -0 Inexact Rounded +ddintx037 tointegralx -0.5 -> -0 Inexact Rounded +ddintx038 tointegralx -0.6 -> -1 Inexact Rounded +ddintx039 tointegralx -0.7 -> -1 Inexact Rounded +ddintx040 tointegralx -0.8 -> -1 Inexact Rounded +ddintx041 tointegralx -0.9 -> -1 Inexact Rounded +ddintx042 tointegralx -1 -> -1 +ddintx043 tointegralx -1.0 -> -1 Rounded +ddintx044 tointegralx -1.1 -> -1 Inexact Rounded +ddintx045 tointegralx -1.2 -> -1 Inexact Rounded +ddintx046 tointegralx -1.3 -> -1 Inexact Rounded +ddintx047 tointegralx -1.4 -> -1 Inexact Rounded +ddintx048 tointegralx -1.5 -> -2 Inexact Rounded +ddintx049 tointegralx -1.6 -> -2 Inexact Rounded +ddintx050 tointegralx -1.7 -> -2 Inexact Rounded +ddintx051 tointegralx -1.8 -> -2 Inexact Rounded +ddintx052 tointegralx -1.9 -> -2 Inexact Rounded +-- next two would be NaN using quantize(x, 0) +ddintx053 tointegralx 10E+60 -> 1.0E+61 +ddintx054 tointegralx -10E+60 -> -1.0E+61 + +-- numbers around precision +ddintx060 tointegralx '56267E-17' -> '0' Inexact Rounded +ddintx061 tointegralx '56267E-5' -> '1' Inexact Rounded +ddintx062 tointegralx '56267E-2' -> '563' Inexact Rounded +ddintx063 tointegralx '56267E-1' -> '5627' Inexact Rounded +ddintx065 tointegralx '56267E-0' -> '56267' +ddintx066 tointegralx '56267E+0' -> '56267' +ddintx067 tointegralx '56267E+1' -> '5.6267E+5' +ddintx068 tointegralx '56267E+9' -> '5.6267E+13' +ddintx069 tointegralx '56267E+10' -> '5.6267E+14' +ddintx070 tointegralx '56267E+11' -> '5.6267E+15' +ddintx071 tointegralx '56267E+12' -> '5.6267E+16' +ddintx072 tointegralx '56267E+13' -> '5.6267E+17' +ddintx073 tointegralx '1.23E+96' -> '1.23E+96' +ddintx074 tointegralx '1.23E+384' -> #47fd300000000000 Clamped + +ddintx080 tointegralx '-56267E-10' -> '-0' Inexact Rounded +ddintx081 tointegralx '-56267E-5' -> '-1' Inexact Rounded +ddintx082 tointegralx '-56267E-2' -> '-563' Inexact Rounded +ddintx083 tointegralx '-56267E-1' -> '-5627' Inexact Rounded +ddintx085 tointegralx '-56267E-0' -> '-56267' +ddintx086 tointegralx '-56267E+0' -> '-56267' +ddintx087 tointegralx '-56267E+1' -> '-5.6267E+5' +ddintx088 tointegralx '-56267E+9' -> '-5.6267E+13' +ddintx089 tointegralx '-56267E+10' -> '-5.6267E+14' +ddintx090 tointegralx '-56267E+11' -> '-5.6267E+15' +ddintx091 tointegralx '-56267E+12' -> '-5.6267E+16' +ddintx092 tointegralx '-56267E+13' -> '-5.6267E+17' +ddintx093 tointegralx '-1.23E+96' -> '-1.23E+96' +ddintx094 tointegralx '-1.23E+384' -> #c7fd300000000000 Clamped + +-- subnormal inputs +ddintx100 tointegralx 1E-299 -> 0 Inexact Rounded +ddintx101 tointegralx 0.1E-299 -> 0 Inexact Rounded +ddintx102 tointegralx 0.01E-299 -> 0 Inexact Rounded +ddintx103 tointegralx 0E-299 -> 0 + +-- specials and zeros +ddintx120 tointegralx 'Inf' -> Infinity +ddintx121 tointegralx '-Inf' -> -Infinity +ddintx122 tointegralx NaN -> NaN +ddintx123 tointegralx sNaN -> NaN Invalid_operation +ddintx124 tointegralx 0 -> 0 +ddintx125 tointegralx -0 -> -0 +ddintx126 tointegralx 0.000 -> 0 +ddintx127 tointegralx 0.00 -> 0 +ddintx128 tointegralx 0.0 -> 0 +ddintx129 tointegralx 0 -> 0 +ddintx130 tointegralx 0E-3 -> 0 +ddintx131 tointegralx 0E-2 -> 0 +ddintx132 tointegralx 0E-1 -> 0 +ddintx133 tointegralx 0E-0 -> 0 +ddintx134 tointegralx 0E+1 -> 0E+1 +ddintx135 tointegralx 0E+2 -> 0E+2 +ddintx136 tointegralx 0E+3 -> 0E+3 +ddintx137 tointegralx 0E+4 -> 0E+4 +ddintx138 tointegralx 0E+5 -> 0E+5 +ddintx139 tointegralx -0.000 -> -0 +ddintx140 tointegralx -0.00 -> -0 +ddintx141 tointegralx -0.0 -> -0 +ddintx142 tointegralx -0 -> -0 +ddintx143 tointegralx -0E-3 -> -0 +ddintx144 tointegralx -0E-2 -> -0 +ddintx145 tointegralx -0E-1 -> -0 +ddintx146 tointegralx -0E-0 -> -0 +ddintx147 tointegralx -0E+1 -> -0E+1 +ddintx148 tointegralx -0E+2 -> -0E+2 +ddintx149 tointegralx -0E+3 -> -0E+3 +ddintx150 tointegralx -0E+4 -> -0E+4 +ddintx151 tointegralx -0E+5 -> -0E+5 +-- propagating NaNs +ddintx152 tointegralx NaN808 -> NaN808 +ddintx153 tointegralx sNaN080 -> NaN80 Invalid_operation +ddintx154 tointegralx -NaN808 -> -NaN808 +ddintx155 tointegralx -sNaN080 -> -NaN80 Invalid_operation +ddintx156 tointegralx -NaN -> -NaN +ddintx157 tointegralx -sNaN -> -NaN Invalid_operation + +-- examples +rounding: half_up +ddintx200 tointegralx 2.1 -> 2 Inexact Rounded +ddintx201 tointegralx 100 -> 100 +ddintx202 tointegralx 100.0 -> 100 Rounded +ddintx203 tointegralx 101.5 -> 102 Inexact Rounded +ddintx204 tointegralx -101.5 -> -102 Inexact Rounded +ddintx205 tointegralx 10E+5 -> 1.0E+6 +ddintx206 tointegralx 7.89E+77 -> 7.89E+77 +ddintx207 tointegralx -Inf -> -Infinity + + +-- all rounding modes +rounding: half_even +ddintx210 tointegralx 55.5 -> 56 Inexact Rounded +ddintx211 tointegralx 56.5 -> 56 Inexact Rounded +ddintx212 tointegralx 57.5 -> 58 Inexact Rounded +ddintx213 tointegralx -55.5 -> -56 Inexact Rounded +ddintx214 tointegralx -56.5 -> -56 Inexact Rounded +ddintx215 tointegralx -57.5 -> -58 Inexact Rounded + +rounding: half_up + +ddintx220 tointegralx 55.5 -> 56 Inexact Rounded +ddintx221 tointegralx 56.5 -> 57 Inexact Rounded +ddintx222 tointegralx 57.5 -> 58 Inexact Rounded +ddintx223 tointegralx -55.5 -> -56 Inexact Rounded +ddintx224 tointegralx -56.5 -> -57 Inexact Rounded +ddintx225 tointegralx -57.5 -> -58 Inexact Rounded + +rounding: half_down + +ddintx230 tointegralx 55.5 -> 55 Inexact Rounded +ddintx231 tointegralx 56.5 -> 56 Inexact Rounded +ddintx232 tointegralx 57.5 -> 57 Inexact Rounded +ddintx233 tointegralx -55.5 -> -55 Inexact Rounded +ddintx234 tointegralx -56.5 -> -56 Inexact Rounded +ddintx235 tointegralx -57.5 -> -57 Inexact Rounded + +rounding: up + +ddintx240 tointegralx 55.3 -> 56 Inexact Rounded +ddintx241 tointegralx 56.3 -> 57 Inexact Rounded +ddintx242 tointegralx 57.3 -> 58 Inexact Rounded +ddintx243 tointegralx -55.3 -> -56 Inexact Rounded +ddintx244 tointegralx -56.3 -> -57 Inexact Rounded +ddintx245 tointegralx -57.3 -> -58 Inexact Rounded + +rounding: down + +ddintx250 tointegralx 55.7 -> 55 Inexact Rounded +ddintx251 tointegralx 56.7 -> 56 Inexact Rounded +ddintx252 tointegralx 57.7 -> 57 Inexact Rounded +ddintx253 tointegralx -55.7 -> -55 Inexact Rounded +ddintx254 tointegralx -56.7 -> -56 Inexact Rounded +ddintx255 tointegralx -57.7 -> -57 Inexact Rounded + +rounding: ceiling + +ddintx260 tointegralx 55.3 -> 56 Inexact Rounded +ddintx261 tointegralx 56.3 -> 57 Inexact Rounded +ddintx262 tointegralx 57.3 -> 58 Inexact Rounded +ddintx263 tointegralx -55.3 -> -55 Inexact Rounded +ddintx264 tointegralx -56.3 -> -56 Inexact Rounded +ddintx265 tointegralx -57.3 -> -57 Inexact Rounded + +rounding: floor + +ddintx270 tointegralx 55.7 -> 55 Inexact Rounded +ddintx271 tointegralx 56.7 -> 56 Inexact Rounded +ddintx272 tointegralx 57.7 -> 57 Inexact Rounded +ddintx273 tointegralx -55.7 -> -56 Inexact Rounded +ddintx274 tointegralx -56.7 -> -57 Inexact Rounded +ddintx275 tointegralx -57.7 -> -58 Inexact Rounded + +-- Int and uInt32 edge values for testing conversions +ddintx300 tointegralx -2147483646 -> -2147483646 +ddintx301 tointegralx -2147483647 -> -2147483647 +ddintx302 tointegralx -2147483648 -> -2147483648 +ddintx303 tointegralx -2147483649 -> -2147483649 +ddintx304 tointegralx 2147483646 -> 2147483646 +ddintx305 tointegralx 2147483647 -> 2147483647 +ddintx306 tointegralx 2147483648 -> 2147483648 +ddintx307 tointegralx 2147483649 -> 2147483649 +ddintx308 tointegralx 4294967294 -> 4294967294 +ddintx309 tointegralx 4294967295 -> 4294967295 +ddintx310 tointegralx 4294967296 -> 4294967296 +ddintx311 tointegralx 4294967297 -> 4294967297 + diff --git a/Lib/test/decimaltestdata/ddXor.decTest b/Lib/test/decimaltestdata/ddXor.decTest index 3c55548e5e..131c7eb4b0 100644 --- a/Lib/test/decimaltestdata/ddXor.decTest +++ b/Lib/test/decimaltestdata/ddXor.decTest @@ -1,337 +1,337 @@ -------------------------------------------------------------------------
--- ddXor.decTest -- digitwise logical XOR for decDoubles --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-precision: 16
-maxExponent: 384
-minExponent: -383
-extended: 1
-clamp: 1
-rounding: half_even
-
--- Sanity check (truth table)
-ddxor001 xor 0 0 -> 0
-ddxor002 xor 0 1 -> 1
-ddxor003 xor 1 0 -> 1
-ddxor004 xor 1 1 -> 0
-ddxor005 xor 1100 1010 -> 110
--- and at msd and msd-1
-ddxor006 xor 0000000000000000 0000000000000000 -> 0
-ddxor007 xor 0000000000000000 1000000000000000 -> 1000000000000000
-ddxor008 xor 1000000000000000 0000000000000000 -> 1000000000000000
-ddxor009 xor 1000000000000000 1000000000000000 -> 0
-ddxor010 xor 0000000000000000 0000000000000000 -> 0
-ddxor011 xor 0000000000000000 0100000000000000 -> 100000000000000
-ddxor012 xor 0100000000000000 0000000000000000 -> 100000000000000
-ddxor013 xor 0100000000000000 0100000000000000 -> 0
-
--- Various lengths
--- 1234567890123456 1234567890123456 1234567890123456
-ddxor021 xor 1111111110000000 1111111110000000 -> 0
-ddxor022 xor 111111110000000 111111110000000 -> 0
-ddxor023 xor 11111110000000 11111110000000 -> 0
-ddxor024 xor 1111110000000 1111110000000 -> 0
-ddxor025 xor 111110000000 111110000000 -> 0
-ddxor026 xor 11110000000 11110000000 -> 0
-ddxor027 xor 1110000000 1110000000 -> 0
-ddxor028 xor 110000000 110000000 -> 0
-ddxor029 xor 10000000 10000000 -> 0
-ddxor030 xor 1000000 1000000 -> 0
-ddxor031 xor 100000 100000 -> 0
-ddxor032 xor 10000 10000 -> 0
-ddxor033 xor 1000 1000 -> 0
-ddxor034 xor 100 100 -> 0
-ddxor035 xor 10 10 -> 0
-ddxor036 xor 1 1 -> 0
-
-ddxor040 xor 111111111 111111111111 -> 111000000000
-ddxor041 xor 11111111 111111111111 -> 111100000000
-ddxor042 xor 11111111 111111111 -> 100000000
-ddxor043 xor 1111111 100000010 -> 101111101
-ddxor044 xor 111111 100000100 -> 100111011
-ddxor045 xor 11111 100001000 -> 100010111
-ddxor046 xor 1111 100010000 -> 100011111
-ddxor047 xor 111 100100000 -> 100100111
-ddxor048 xor 11 101000000 -> 101000011
-ddxor049 xor 1 110000000 -> 110000001
-
-ddxor050 xor 1111111111 1 -> 1111111110
-ddxor051 xor 111111111 1 -> 111111110
-ddxor052 xor 11111111 1 -> 11111110
-ddxor053 xor 1111111 1 -> 1111110
-ddxor054 xor 111111 1 -> 111110
-ddxor055 xor 11111 1 -> 11110
-ddxor056 xor 1111 1 -> 1110
-ddxor057 xor 111 1 -> 110
-ddxor058 xor 11 1 -> 10
-ddxor059 xor 1 1 -> 0
-
-ddxor060 xor 1111111111 0 -> 1111111111
-ddxor061 xor 111111111 0 -> 111111111
-ddxor062 xor 11111111 0 -> 11111111
-ddxor063 xor 1111111 0 -> 1111111
-ddxor064 xor 111111 0 -> 111111
-ddxor065 xor 11111 0 -> 11111
-ddxor066 xor 1111 0 -> 1111
-ddxor067 xor 111 0 -> 111
-ddxor068 xor 11 0 -> 11
-ddxor069 xor 1 0 -> 1
-
-ddxor070 xor 1 1111111111 -> 1111111110
-ddxor071 xor 1 111111111 -> 111111110
-ddxor072 xor 1 11111111 -> 11111110
-ddxor073 xor 1 1111111 -> 1111110
-ddxor074 xor 1 111111 -> 111110
-ddxor075 xor 1 11111 -> 11110
-ddxor076 xor 1 1111 -> 1110
-ddxor077 xor 1 111 -> 110
-ddxor078 xor 1 11 -> 10
-ddxor079 xor 1 1 -> 0
-
-ddxor080 xor 0 1111111111 -> 1111111111
-ddxor081 xor 0 111111111 -> 111111111
-ddxor082 xor 0 11111111 -> 11111111
-ddxor083 xor 0 1111111 -> 1111111
-ddxor084 xor 0 111111 -> 111111
-ddxor085 xor 0 11111 -> 11111
-ddxor086 xor 0 1111 -> 1111
-ddxor087 xor 0 111 -> 111
-ddxor088 xor 0 11 -> 11
-ddxor089 xor 0 1 -> 1
-
-ddxor090 xor 011111111 111101111 -> 100010000
-ddxor091 xor 101111111 111101111 -> 10010000
-ddxor092 xor 110111111 111101111 -> 1010000
-ddxor093 xor 111011111 111101111 -> 110000
-ddxor094 xor 111101111 111101111 -> 0
-ddxor095 xor 111110111 111101111 -> 11000
-ddxor096 xor 111111011 111101111 -> 10100
-ddxor097 xor 111111101 111101111 -> 10010
-ddxor098 xor 111111110 111101111 -> 10001
-
-ddxor100 xor 111101111 011111111 -> 100010000
-ddxor101 xor 111101111 101111111 -> 10010000
-ddxor102 xor 111101111 110111111 -> 1010000
-ddxor103 xor 111101111 111011111 -> 110000
-ddxor104 xor 111101111 111101111 -> 0
-ddxor105 xor 111101111 111110111 -> 11000
-ddxor106 xor 111101111 111111011 -> 10100
-ddxor107 xor 111101111 111111101 -> 10010
-ddxor108 xor 111101111 111111110 -> 10001
-
--- non-0/1 should not be accepted, nor should signs
-ddxor220 xor 111111112 111111111 -> NaN Invalid_operation
-ddxor221 xor 333333333 333333333 -> NaN Invalid_operation
-ddxor222 xor 555555555 555555555 -> NaN Invalid_operation
-ddxor223 xor 777777777 777777777 -> NaN Invalid_operation
-ddxor224 xor 999999999 999999999 -> NaN Invalid_operation
-ddxor225 xor 222222222 999999999 -> NaN Invalid_operation
-ddxor226 xor 444444444 999999999 -> NaN Invalid_operation
-ddxor227 xor 666666666 999999999 -> NaN Invalid_operation
-ddxor228 xor 888888888 999999999 -> NaN Invalid_operation
-ddxor229 xor 999999999 222222222 -> NaN Invalid_operation
-ddxor230 xor 999999999 444444444 -> NaN Invalid_operation
-ddxor231 xor 999999999 666666666 -> NaN Invalid_operation
-ddxor232 xor 999999999 888888888 -> NaN Invalid_operation
--- a few randoms
-ddxor240 xor 567468689 -934981942 -> NaN Invalid_operation
-ddxor241 xor 567367689 934981942 -> NaN Invalid_operation
-ddxor242 xor -631917772 -706014634 -> NaN Invalid_operation
-ddxor243 xor -756253257 138579234 -> NaN Invalid_operation
-ddxor244 xor 835590149 567435400 -> NaN Invalid_operation
--- test MSD
-ddxor250 xor 2000000000000000 1000000000000000 -> NaN Invalid_operation
-ddxor251 xor 7000000000000000 1000000000000000 -> NaN Invalid_operation
-ddxor252 xor 8000000000000000 1000000000000000 -> NaN Invalid_operation
-ddxor253 xor 9000000000000000 1000000000000000 -> NaN Invalid_operation
-ddxor254 xor 2000000000000000 0000000000000000 -> NaN Invalid_operation
-ddxor255 xor 7000000000000000 0000000000000000 -> NaN Invalid_operation
-ddxor256 xor 8000000000000000 0000000000000000 -> NaN Invalid_operation
-ddxor257 xor 9000000000000000 0000000000000000 -> NaN Invalid_operation
-ddxor258 xor 1000000000000000 2000000000000000 -> NaN Invalid_operation
-ddxor259 xor 1000000000000000 7000000000000000 -> NaN Invalid_operation
-ddxor260 xor 1000000000000000 8000000000000000 -> NaN Invalid_operation
-ddxor261 xor 1000000000000000 9000000000000000 -> NaN Invalid_operation
-ddxor262 xor 0000000000000000 2000000000000000 -> NaN Invalid_operation
-ddxor263 xor 0000000000000000 7000000000000000 -> NaN Invalid_operation
-ddxor264 xor 0000000000000000 8000000000000000 -> NaN Invalid_operation
-ddxor265 xor 0000000000000000 9000000000000000 -> NaN Invalid_operation
--- test MSD-1
-ddxor270 xor 0200001000000000 1000100000000010 -> NaN Invalid_operation
-ddxor271 xor 0700000100000000 1000010000000100 -> NaN Invalid_operation
-ddxor272 xor 0800000010000000 1000001000001000 -> NaN Invalid_operation
-ddxor273 xor 0900000001000000 1000000100010000 -> NaN Invalid_operation
-ddxor274 xor 1000000000100000 0200000010100000 -> NaN Invalid_operation
-ddxor275 xor 1000000000010000 0700000001000000 -> NaN Invalid_operation
-ddxor276 xor 1000000000001000 0800000010100000 -> NaN Invalid_operation
-ddxor277 xor 1000000000000100 0900000000010000 -> NaN Invalid_operation
--- test LSD
-ddxor280 xor 0010000000000002 1000000100000001 -> NaN Invalid_operation
-ddxor281 xor 0001000000000007 1000001000000011 -> NaN Invalid_operation
-ddxor282 xor 0000100000000008 1000010000000001 -> NaN Invalid_operation
-ddxor283 xor 0000010000000009 1000100000000001 -> NaN Invalid_operation
-ddxor284 xor 1000001000000000 0001000000000002 -> NaN Invalid_operation
-ddxor285 xor 1000000100000000 0010000000000007 -> NaN Invalid_operation
-ddxor286 xor 1000000010000000 0100000000000008 -> NaN Invalid_operation
-ddxor287 xor 1000000001000000 1000000000000009 -> NaN Invalid_operation
--- test Middie
-ddxor288 xor 0010000020000000 1000001000000000 -> NaN Invalid_operation
-ddxor289 xor 0001000070000001 1000000100000000 -> NaN Invalid_operation
-ddxor290 xor 0000100080000010 1000000010000000 -> NaN Invalid_operation
-ddxor291 xor 0000010090000100 1000000001000000 -> NaN Invalid_operation
-ddxor292 xor 1000001000001000 0000000020100000 -> NaN Invalid_operation
-ddxor293 xor 1000000100010000 0000000070010000 -> NaN Invalid_operation
-ddxor294 xor 1000000010100000 0000000080001000 -> NaN Invalid_operation
-ddxor295 xor 1000000001000000 0000000090000100 -> NaN Invalid_operation
--- signs
-ddxor296 xor -1000000001000000 -0000010000000100 -> NaN Invalid_operation
-ddxor297 xor -1000000001000000 0000000010000100 -> NaN Invalid_operation
-ddxor298 xor 1000000001000000 -0000001000000100 -> NaN Invalid_operation
-ddxor299 xor 1000000001000000 0000000011000100 -> 1000000010000100
-
--- Nmax, Nmin, Ntiny-like
-ddxor331 xor 2 9.99999999E+299 -> NaN Invalid_operation
-ddxor332 xor 3 1E-299 -> NaN Invalid_operation
-ddxor333 xor 4 1.00000000E-299 -> NaN Invalid_operation
-ddxor334 xor 5 1E-200 -> NaN Invalid_operation
-ddxor335 xor 6 -1E-200 -> NaN Invalid_operation
-ddxor336 xor 7 -1.00000000E-299 -> NaN Invalid_operation
-ddxor337 xor 8 -1E-299 -> NaN Invalid_operation
-ddxor338 xor 9 -9.99999999E+299 -> NaN Invalid_operation
-ddxor341 xor 9.99999999E+299 -18 -> NaN Invalid_operation
-ddxor342 xor 1E-299 01 -> NaN Invalid_operation
-ddxor343 xor 1.00000000E-299 -18 -> NaN Invalid_operation
-ddxor344 xor 1E-208 18 -> NaN Invalid_operation
-ddxor345 xor -1E-207 -10 -> NaN Invalid_operation
-ddxor346 xor -1.00000000E-299 18 -> NaN Invalid_operation
-ddxor347 xor -1E-299 10 -> NaN Invalid_operation
-ddxor348 xor -9.99999999E+299 -18 -> NaN Invalid_operation
-
--- A few other non-integers
-ddxor361 xor 1.0 1 -> NaN Invalid_operation
-ddxor362 xor 1E+1 1 -> NaN Invalid_operation
-ddxor363 xor 0.0 1 -> NaN Invalid_operation
-ddxor364 xor 0E+1 1 -> NaN Invalid_operation
-ddxor365 xor 9.9 1 -> NaN Invalid_operation
-ddxor366 xor 9E+1 1 -> NaN Invalid_operation
-ddxor371 xor 0 1.0 -> NaN Invalid_operation
-ddxor372 xor 0 1E+1 -> NaN Invalid_operation
-ddxor373 xor 0 0.0 -> NaN Invalid_operation
-ddxor374 xor 0 0E+1 -> NaN Invalid_operation
-ddxor375 xor 0 9.9 -> NaN Invalid_operation
-ddxor376 xor 0 9E+1 -> NaN Invalid_operation
-
--- All Specials are in error
-ddxor780 xor -Inf -Inf -> NaN Invalid_operation
-ddxor781 xor -Inf -1000 -> NaN Invalid_operation
-ddxor782 xor -Inf -1 -> NaN Invalid_operation
-ddxor783 xor -Inf -0 -> NaN Invalid_operation
-ddxor784 xor -Inf 0 -> NaN Invalid_operation
-ddxor785 xor -Inf 1 -> NaN Invalid_operation
-ddxor786 xor -Inf 1000 -> NaN Invalid_operation
-ddxor787 xor -1000 -Inf -> NaN Invalid_operation
-ddxor788 xor -Inf -Inf -> NaN Invalid_operation
-ddxor789 xor -1 -Inf -> NaN Invalid_operation
-ddxor790 xor -0 -Inf -> NaN Invalid_operation
-ddxor791 xor 0 -Inf -> NaN Invalid_operation
-ddxor792 xor 1 -Inf -> NaN Invalid_operation
-ddxor793 xor 1000 -Inf -> NaN Invalid_operation
-ddxor794 xor Inf -Inf -> NaN Invalid_operation
-
-ddxor800 xor Inf -Inf -> NaN Invalid_operation
-ddxor801 xor Inf -1000 -> NaN Invalid_operation
-ddxor802 xor Inf -1 -> NaN Invalid_operation
-ddxor803 xor Inf -0 -> NaN Invalid_operation
-ddxor804 xor Inf 0 -> NaN Invalid_operation
-ddxor805 xor Inf 1 -> NaN Invalid_operation
-ddxor806 xor Inf 1000 -> NaN Invalid_operation
-ddxor807 xor Inf Inf -> NaN Invalid_operation
-ddxor808 xor -1000 Inf -> NaN Invalid_operation
-ddxor809 xor -Inf Inf -> NaN Invalid_operation
-ddxor810 xor -1 Inf -> NaN Invalid_operation
-ddxor811 xor -0 Inf -> NaN Invalid_operation
-ddxor812 xor 0 Inf -> NaN Invalid_operation
-ddxor813 xor 1 Inf -> NaN Invalid_operation
-ddxor814 xor 1000 Inf -> NaN Invalid_operation
-ddxor815 xor Inf Inf -> NaN Invalid_operation
-
-ddxor821 xor NaN -Inf -> NaN Invalid_operation
-ddxor822 xor NaN -1000 -> NaN Invalid_operation
-ddxor823 xor NaN -1 -> NaN Invalid_operation
-ddxor824 xor NaN -0 -> NaN Invalid_operation
-ddxor825 xor NaN 0 -> NaN Invalid_operation
-ddxor826 xor NaN 1 -> NaN Invalid_operation
-ddxor827 xor NaN 1000 -> NaN Invalid_operation
-ddxor828 xor NaN Inf -> NaN Invalid_operation
-ddxor829 xor NaN NaN -> NaN Invalid_operation
-ddxor830 xor -Inf NaN -> NaN Invalid_operation
-ddxor831 xor -1000 NaN -> NaN Invalid_operation
-ddxor832 xor -1 NaN -> NaN Invalid_operation
-ddxor833 xor -0 NaN -> NaN Invalid_operation
-ddxor834 xor 0 NaN -> NaN Invalid_operation
-ddxor835 xor 1 NaN -> NaN Invalid_operation
-ddxor836 xor 1000 NaN -> NaN Invalid_operation
-ddxor837 xor Inf NaN -> NaN Invalid_operation
-
-ddxor841 xor sNaN -Inf -> NaN Invalid_operation
-ddxor842 xor sNaN -1000 -> NaN Invalid_operation
-ddxor843 xor sNaN -1 -> NaN Invalid_operation
-ddxor844 xor sNaN -0 -> NaN Invalid_operation
-ddxor845 xor sNaN 0 -> NaN Invalid_operation
-ddxor846 xor sNaN 1 -> NaN Invalid_operation
-ddxor847 xor sNaN 1000 -> NaN Invalid_operation
-ddxor848 xor sNaN NaN -> NaN Invalid_operation
-ddxor849 xor sNaN sNaN -> NaN Invalid_operation
-ddxor850 xor NaN sNaN -> NaN Invalid_operation
-ddxor851 xor -Inf sNaN -> NaN Invalid_operation
-ddxor852 xor -1000 sNaN -> NaN Invalid_operation
-ddxor853 xor -1 sNaN -> NaN Invalid_operation
-ddxor854 xor -0 sNaN -> NaN Invalid_operation
-ddxor855 xor 0 sNaN -> NaN Invalid_operation
-ddxor856 xor 1 sNaN -> NaN Invalid_operation
-ddxor857 xor 1000 sNaN -> NaN Invalid_operation
-ddxor858 xor Inf sNaN -> NaN Invalid_operation
-ddxor859 xor NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-ddxor861 xor NaN1 -Inf -> NaN Invalid_operation
-ddxor862 xor +NaN2 -1000 -> NaN Invalid_operation
-ddxor863 xor NaN3 1000 -> NaN Invalid_operation
-ddxor864 xor NaN4 Inf -> NaN Invalid_operation
-ddxor865 xor NaN5 +NaN6 -> NaN Invalid_operation
-ddxor866 xor -Inf NaN7 -> NaN Invalid_operation
-ddxor867 xor -1000 NaN8 -> NaN Invalid_operation
-ddxor868 xor 1000 NaN9 -> NaN Invalid_operation
-ddxor869 xor Inf +NaN10 -> NaN Invalid_operation
-ddxor871 xor sNaN11 -Inf -> NaN Invalid_operation
-ddxor872 xor sNaN12 -1000 -> NaN Invalid_operation
-ddxor873 xor sNaN13 1000 -> NaN Invalid_operation
-ddxor874 xor sNaN14 NaN17 -> NaN Invalid_operation
-ddxor875 xor sNaN15 sNaN18 -> NaN Invalid_operation
-ddxor876 xor NaN16 sNaN19 -> NaN Invalid_operation
-ddxor877 xor -Inf +sNaN20 -> NaN Invalid_operation
-ddxor878 xor -1000 sNaN21 -> NaN Invalid_operation
-ddxor879 xor 1000 sNaN22 -> NaN Invalid_operation
-ddxor880 xor Inf sNaN23 -> NaN Invalid_operation
-ddxor881 xor +NaN25 +sNaN24 -> NaN Invalid_operation
-ddxor882 xor -NaN26 NaN28 -> NaN Invalid_operation
-ddxor883 xor -sNaN27 sNaN29 -> NaN Invalid_operation
-ddxor884 xor 1000 -NaN30 -> NaN Invalid_operation
-ddxor885 xor 1000 -sNaN31 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- ddXor.decTest -- digitwise logical XOR for decDoubles -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +precision: 16 +maxExponent: 384 +minExponent: -383 +extended: 1 +clamp: 1 +rounding: half_even + +-- Sanity check (truth table) +ddxor001 xor 0 0 -> 0 +ddxor002 xor 0 1 -> 1 +ddxor003 xor 1 0 -> 1 +ddxor004 xor 1 1 -> 0 +ddxor005 xor 1100 1010 -> 110 +-- and at msd and msd-1 +ddxor006 xor 0000000000000000 0000000000000000 -> 0 +ddxor007 xor 0000000000000000 1000000000000000 -> 1000000000000000 +ddxor008 xor 1000000000000000 0000000000000000 -> 1000000000000000 +ddxor009 xor 1000000000000000 1000000000000000 -> 0 +ddxor010 xor 0000000000000000 0000000000000000 -> 0 +ddxor011 xor 0000000000000000 0100000000000000 -> 100000000000000 +ddxor012 xor 0100000000000000 0000000000000000 -> 100000000000000 +ddxor013 xor 0100000000000000 0100000000000000 -> 0 + +-- Various lengths +-- 1234567890123456 1234567890123456 1234567890123456 +ddxor021 xor 1111111110000000 1111111110000000 -> 0 +ddxor022 xor 111111110000000 111111110000000 -> 0 +ddxor023 xor 11111110000000 11111110000000 -> 0 +ddxor024 xor 1111110000000 1111110000000 -> 0 +ddxor025 xor 111110000000 111110000000 -> 0 +ddxor026 xor 11110000000 11110000000 -> 0 +ddxor027 xor 1110000000 1110000000 -> 0 +ddxor028 xor 110000000 110000000 -> 0 +ddxor029 xor 10000000 10000000 -> 0 +ddxor030 xor 1000000 1000000 -> 0 +ddxor031 xor 100000 100000 -> 0 +ddxor032 xor 10000 10000 -> 0 +ddxor033 xor 1000 1000 -> 0 +ddxor034 xor 100 100 -> 0 +ddxor035 xor 10 10 -> 0 +ddxor036 xor 1 1 -> 0 + +ddxor040 xor 111111111 111111111111 -> 111000000000 +ddxor041 xor 11111111 111111111111 -> 111100000000 +ddxor042 xor 11111111 111111111 -> 100000000 +ddxor043 xor 1111111 100000010 -> 101111101 +ddxor044 xor 111111 100000100 -> 100111011 +ddxor045 xor 11111 100001000 -> 100010111 +ddxor046 xor 1111 100010000 -> 100011111 +ddxor047 xor 111 100100000 -> 100100111 +ddxor048 xor 11 101000000 -> 101000011 +ddxor049 xor 1 110000000 -> 110000001 + +ddxor050 xor 1111111111 1 -> 1111111110 +ddxor051 xor 111111111 1 -> 111111110 +ddxor052 xor 11111111 1 -> 11111110 +ddxor053 xor 1111111 1 -> 1111110 +ddxor054 xor 111111 1 -> 111110 +ddxor055 xor 11111 1 -> 11110 +ddxor056 xor 1111 1 -> 1110 +ddxor057 xor 111 1 -> 110 +ddxor058 xor 11 1 -> 10 +ddxor059 xor 1 1 -> 0 + +ddxor060 xor 1111111111 0 -> 1111111111 +ddxor061 xor 111111111 0 -> 111111111 +ddxor062 xor 11111111 0 -> 11111111 +ddxor063 xor 1111111 0 -> 1111111 +ddxor064 xor 111111 0 -> 111111 +ddxor065 xor 11111 0 -> 11111 +ddxor066 xor 1111 0 -> 1111 +ddxor067 xor 111 0 -> 111 +ddxor068 xor 11 0 -> 11 +ddxor069 xor 1 0 -> 1 + +ddxor070 xor 1 1111111111 -> 1111111110 +ddxor071 xor 1 111111111 -> 111111110 +ddxor072 xor 1 11111111 -> 11111110 +ddxor073 xor 1 1111111 -> 1111110 +ddxor074 xor 1 111111 -> 111110 +ddxor075 xor 1 11111 -> 11110 +ddxor076 xor 1 1111 -> 1110 +ddxor077 xor 1 111 -> 110 +ddxor078 xor 1 11 -> 10 +ddxor079 xor 1 1 -> 0 + +ddxor080 xor 0 1111111111 -> 1111111111 +ddxor081 xor 0 111111111 -> 111111111 +ddxor082 xor 0 11111111 -> 11111111 +ddxor083 xor 0 1111111 -> 1111111 +ddxor084 xor 0 111111 -> 111111 +ddxor085 xor 0 11111 -> 11111 +ddxor086 xor 0 1111 -> 1111 +ddxor087 xor 0 111 -> 111 +ddxor088 xor 0 11 -> 11 +ddxor089 xor 0 1 -> 1 + +ddxor090 xor 011111111 111101111 -> 100010000 +ddxor091 xor 101111111 111101111 -> 10010000 +ddxor092 xor 110111111 111101111 -> 1010000 +ddxor093 xor 111011111 111101111 -> 110000 +ddxor094 xor 111101111 111101111 -> 0 +ddxor095 xor 111110111 111101111 -> 11000 +ddxor096 xor 111111011 111101111 -> 10100 +ddxor097 xor 111111101 111101111 -> 10010 +ddxor098 xor 111111110 111101111 -> 10001 + +ddxor100 xor 111101111 011111111 -> 100010000 +ddxor101 xor 111101111 101111111 -> 10010000 +ddxor102 xor 111101111 110111111 -> 1010000 +ddxor103 xor 111101111 111011111 -> 110000 +ddxor104 xor 111101111 111101111 -> 0 +ddxor105 xor 111101111 111110111 -> 11000 +ddxor106 xor 111101111 111111011 -> 10100 +ddxor107 xor 111101111 111111101 -> 10010 +ddxor108 xor 111101111 111111110 -> 10001 + +-- non-0/1 should not be accepted, nor should signs +ddxor220 xor 111111112 111111111 -> NaN Invalid_operation +ddxor221 xor 333333333 333333333 -> NaN Invalid_operation +ddxor222 xor 555555555 555555555 -> NaN Invalid_operation +ddxor223 xor 777777777 777777777 -> NaN Invalid_operation +ddxor224 xor 999999999 999999999 -> NaN Invalid_operation +ddxor225 xor 222222222 999999999 -> NaN Invalid_operation +ddxor226 xor 444444444 999999999 -> NaN Invalid_operation +ddxor227 xor 666666666 999999999 -> NaN Invalid_operation +ddxor228 xor 888888888 999999999 -> NaN Invalid_operation +ddxor229 xor 999999999 222222222 -> NaN Invalid_operation +ddxor230 xor 999999999 444444444 -> NaN Invalid_operation +ddxor231 xor 999999999 666666666 -> NaN Invalid_operation +ddxor232 xor 999999999 888888888 -> NaN Invalid_operation +-- a few randoms +ddxor240 xor 567468689 -934981942 -> NaN Invalid_operation +ddxor241 xor 567367689 934981942 -> NaN Invalid_operation +ddxor242 xor -631917772 -706014634 -> NaN Invalid_operation +ddxor243 xor -756253257 138579234 -> NaN Invalid_operation +ddxor244 xor 835590149 567435400 -> NaN Invalid_operation +-- test MSD +ddxor250 xor 2000000000000000 1000000000000000 -> NaN Invalid_operation +ddxor251 xor 7000000000000000 1000000000000000 -> NaN Invalid_operation +ddxor252 xor 8000000000000000 1000000000000000 -> NaN Invalid_operation +ddxor253 xor 9000000000000000 1000000000000000 -> NaN Invalid_operation +ddxor254 xor 2000000000000000 0000000000000000 -> NaN Invalid_operation +ddxor255 xor 7000000000000000 0000000000000000 -> NaN Invalid_operation +ddxor256 xor 8000000000000000 0000000000000000 -> NaN Invalid_operation +ddxor257 xor 9000000000000000 0000000000000000 -> NaN Invalid_operation +ddxor258 xor 1000000000000000 2000000000000000 -> NaN Invalid_operation +ddxor259 xor 1000000000000000 7000000000000000 -> NaN Invalid_operation +ddxor260 xor 1000000000000000 8000000000000000 -> NaN Invalid_operation +ddxor261 xor 1000000000000000 9000000000000000 -> NaN Invalid_operation +ddxor262 xor 0000000000000000 2000000000000000 -> NaN Invalid_operation +ddxor263 xor 0000000000000000 7000000000000000 -> NaN Invalid_operation +ddxor264 xor 0000000000000000 8000000000000000 -> NaN Invalid_operation +ddxor265 xor 0000000000000000 9000000000000000 -> NaN Invalid_operation +-- test MSD-1 +ddxor270 xor 0200001000000000 1000100000000010 -> NaN Invalid_operation +ddxor271 xor 0700000100000000 1000010000000100 -> NaN Invalid_operation +ddxor272 xor 0800000010000000 1000001000001000 -> NaN Invalid_operation +ddxor273 xor 0900000001000000 1000000100010000 -> NaN Invalid_operation +ddxor274 xor 1000000000100000 0200000010100000 -> NaN Invalid_operation +ddxor275 xor 1000000000010000 0700000001000000 -> NaN Invalid_operation +ddxor276 xor 1000000000001000 0800000010100000 -> NaN Invalid_operation +ddxor277 xor 1000000000000100 0900000000010000 -> NaN Invalid_operation +-- test LSD +ddxor280 xor 0010000000000002 1000000100000001 -> NaN Invalid_operation +ddxor281 xor 0001000000000007 1000001000000011 -> NaN Invalid_operation +ddxor282 xor 0000100000000008 1000010000000001 -> NaN Invalid_operation +ddxor283 xor 0000010000000009 1000100000000001 -> NaN Invalid_operation +ddxor284 xor 1000001000000000 0001000000000002 -> NaN Invalid_operation +ddxor285 xor 1000000100000000 0010000000000007 -> NaN Invalid_operation +ddxor286 xor 1000000010000000 0100000000000008 -> NaN Invalid_operation +ddxor287 xor 1000000001000000 1000000000000009 -> NaN Invalid_operation +-- test Middie +ddxor288 xor 0010000020000000 1000001000000000 -> NaN Invalid_operation +ddxor289 xor 0001000070000001 1000000100000000 -> NaN Invalid_operation +ddxor290 xor 0000100080000010 1000000010000000 -> NaN Invalid_operation +ddxor291 xor 0000010090000100 1000000001000000 -> NaN Invalid_operation +ddxor292 xor 1000001000001000 0000000020100000 -> NaN Invalid_operation +ddxor293 xor 1000000100010000 0000000070010000 -> NaN Invalid_operation +ddxor294 xor 1000000010100000 0000000080001000 -> NaN Invalid_operation +ddxor295 xor 1000000001000000 0000000090000100 -> NaN Invalid_operation +-- signs +ddxor296 xor -1000000001000000 -0000010000000100 -> NaN Invalid_operation +ddxor297 xor -1000000001000000 0000000010000100 -> NaN Invalid_operation +ddxor298 xor 1000000001000000 -0000001000000100 -> NaN Invalid_operation +ddxor299 xor 1000000001000000 0000000011000100 -> 1000000010000100 + +-- Nmax, Nmin, Ntiny-like +ddxor331 xor 2 9.99999999E+299 -> NaN Invalid_operation +ddxor332 xor 3 1E-299 -> NaN Invalid_operation +ddxor333 xor 4 1.00000000E-299 -> NaN Invalid_operation +ddxor334 xor 5 1E-200 -> NaN Invalid_operation +ddxor335 xor 6 -1E-200 -> NaN Invalid_operation +ddxor336 xor 7 -1.00000000E-299 -> NaN Invalid_operation +ddxor337 xor 8 -1E-299 -> NaN Invalid_operation +ddxor338 xor 9 -9.99999999E+299 -> NaN Invalid_operation +ddxor341 xor 9.99999999E+299 -18 -> NaN Invalid_operation +ddxor342 xor 1E-299 01 -> NaN Invalid_operation +ddxor343 xor 1.00000000E-299 -18 -> NaN Invalid_operation +ddxor344 xor 1E-208 18 -> NaN Invalid_operation +ddxor345 xor -1E-207 -10 -> NaN Invalid_operation +ddxor346 xor -1.00000000E-299 18 -> NaN Invalid_operation +ddxor347 xor -1E-299 10 -> NaN Invalid_operation +ddxor348 xor -9.99999999E+299 -18 -> NaN Invalid_operation + +-- A few other non-integers +ddxor361 xor 1.0 1 -> NaN Invalid_operation +ddxor362 xor 1E+1 1 -> NaN Invalid_operation +ddxor363 xor 0.0 1 -> NaN Invalid_operation +ddxor364 xor 0E+1 1 -> NaN Invalid_operation +ddxor365 xor 9.9 1 -> NaN Invalid_operation +ddxor366 xor 9E+1 1 -> NaN Invalid_operation +ddxor371 xor 0 1.0 -> NaN Invalid_operation +ddxor372 xor 0 1E+1 -> NaN Invalid_operation +ddxor373 xor 0 0.0 -> NaN Invalid_operation +ddxor374 xor 0 0E+1 -> NaN Invalid_operation +ddxor375 xor 0 9.9 -> NaN Invalid_operation +ddxor376 xor 0 9E+1 -> NaN Invalid_operation + +-- All Specials are in error +ddxor780 xor -Inf -Inf -> NaN Invalid_operation +ddxor781 xor -Inf -1000 -> NaN Invalid_operation +ddxor782 xor -Inf -1 -> NaN Invalid_operation +ddxor783 xor -Inf -0 -> NaN Invalid_operation +ddxor784 xor -Inf 0 -> NaN Invalid_operation +ddxor785 xor -Inf 1 -> NaN Invalid_operation +ddxor786 xor -Inf 1000 -> NaN Invalid_operation +ddxor787 xor -1000 -Inf -> NaN Invalid_operation +ddxor788 xor -Inf -Inf -> NaN Invalid_operation +ddxor789 xor -1 -Inf -> NaN Invalid_operation +ddxor790 xor -0 -Inf -> NaN Invalid_operation +ddxor791 xor 0 -Inf -> NaN Invalid_operation +ddxor792 xor 1 -Inf -> NaN Invalid_operation +ddxor793 xor 1000 -Inf -> NaN Invalid_operation +ddxor794 xor Inf -Inf -> NaN Invalid_operation + +ddxor800 xor Inf -Inf -> NaN Invalid_operation +ddxor801 xor Inf -1000 -> NaN Invalid_operation +ddxor802 xor Inf -1 -> NaN Invalid_operation +ddxor803 xor Inf -0 -> NaN Invalid_operation +ddxor804 xor Inf 0 -> NaN Invalid_operation +ddxor805 xor Inf 1 -> NaN Invalid_operation +ddxor806 xor Inf 1000 -> NaN Invalid_operation +ddxor807 xor Inf Inf -> NaN Invalid_operation +ddxor808 xor -1000 Inf -> NaN Invalid_operation +ddxor809 xor -Inf Inf -> NaN Invalid_operation +ddxor810 xor -1 Inf -> NaN Invalid_operation +ddxor811 xor -0 Inf -> NaN Invalid_operation +ddxor812 xor 0 Inf -> NaN Invalid_operation +ddxor813 xor 1 Inf -> NaN Invalid_operation +ddxor814 xor 1000 Inf -> NaN Invalid_operation +ddxor815 xor Inf Inf -> NaN Invalid_operation + +ddxor821 xor NaN -Inf -> NaN Invalid_operation +ddxor822 xor NaN -1000 -> NaN Invalid_operation +ddxor823 xor NaN -1 -> NaN Invalid_operation +ddxor824 xor NaN -0 -> NaN Invalid_operation +ddxor825 xor NaN 0 -> NaN Invalid_operation +ddxor826 xor NaN 1 -> NaN Invalid_operation +ddxor827 xor NaN 1000 -> NaN Invalid_operation +ddxor828 xor NaN Inf -> NaN Invalid_operation +ddxor829 xor NaN NaN -> NaN Invalid_operation +ddxor830 xor -Inf NaN -> NaN Invalid_operation +ddxor831 xor -1000 NaN -> NaN Invalid_operation +ddxor832 xor -1 NaN -> NaN Invalid_operation +ddxor833 xor -0 NaN -> NaN Invalid_operation +ddxor834 xor 0 NaN -> NaN Invalid_operation +ddxor835 xor 1 NaN -> NaN Invalid_operation +ddxor836 xor 1000 NaN -> NaN Invalid_operation +ddxor837 xor Inf NaN -> NaN Invalid_operation + +ddxor841 xor sNaN -Inf -> NaN Invalid_operation +ddxor842 xor sNaN -1000 -> NaN Invalid_operation +ddxor843 xor sNaN -1 -> NaN Invalid_operation +ddxor844 xor sNaN -0 -> NaN Invalid_operation +ddxor845 xor sNaN 0 -> NaN Invalid_operation +ddxor846 xor sNaN 1 -> NaN Invalid_operation +ddxor847 xor sNaN 1000 -> NaN Invalid_operation +ddxor848 xor sNaN NaN -> NaN Invalid_operation +ddxor849 xor sNaN sNaN -> NaN Invalid_operation +ddxor850 xor NaN sNaN -> NaN Invalid_operation +ddxor851 xor -Inf sNaN -> NaN Invalid_operation +ddxor852 xor -1000 sNaN -> NaN Invalid_operation +ddxor853 xor -1 sNaN -> NaN Invalid_operation +ddxor854 xor -0 sNaN -> NaN Invalid_operation +ddxor855 xor 0 sNaN -> NaN Invalid_operation +ddxor856 xor 1 sNaN -> NaN Invalid_operation +ddxor857 xor 1000 sNaN -> NaN Invalid_operation +ddxor858 xor Inf sNaN -> NaN Invalid_operation +ddxor859 xor NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +ddxor861 xor NaN1 -Inf -> NaN Invalid_operation +ddxor862 xor +NaN2 -1000 -> NaN Invalid_operation +ddxor863 xor NaN3 1000 -> NaN Invalid_operation +ddxor864 xor NaN4 Inf -> NaN Invalid_operation +ddxor865 xor NaN5 +NaN6 -> NaN Invalid_operation +ddxor866 xor -Inf NaN7 -> NaN Invalid_operation +ddxor867 xor -1000 NaN8 -> NaN Invalid_operation +ddxor868 xor 1000 NaN9 -> NaN Invalid_operation +ddxor869 xor Inf +NaN10 -> NaN Invalid_operation +ddxor871 xor sNaN11 -Inf -> NaN Invalid_operation +ddxor872 xor sNaN12 -1000 -> NaN Invalid_operation +ddxor873 xor sNaN13 1000 -> NaN Invalid_operation +ddxor874 xor sNaN14 NaN17 -> NaN Invalid_operation +ddxor875 xor sNaN15 sNaN18 -> NaN Invalid_operation +ddxor876 xor NaN16 sNaN19 -> NaN Invalid_operation +ddxor877 xor -Inf +sNaN20 -> NaN Invalid_operation +ddxor878 xor -1000 sNaN21 -> NaN Invalid_operation +ddxor879 xor 1000 sNaN22 -> NaN Invalid_operation +ddxor880 xor Inf sNaN23 -> NaN Invalid_operation +ddxor881 xor +NaN25 +sNaN24 -> NaN Invalid_operation +ddxor882 xor -NaN26 NaN28 -> NaN Invalid_operation +ddxor883 xor -sNaN27 sNaN29 -> NaN Invalid_operation +ddxor884 xor 1000 -NaN30 -> NaN Invalid_operation +ddxor885 xor 1000 -sNaN31 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/dqAbs.decTest b/Lib/test/decimaltestdata/dqAbs.decTest index f9119a9e79..baaa063bbc 100644 --- a/Lib/test/decimaltestdata/dqAbs.decTest +++ b/Lib/test/decimaltestdata/dqAbs.decTest @@ -1,126 +1,126 @@ -------------------------------------------------------------------------
--- dqAbs.decTest -- decQuad absolute value, heeding sNaN --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
-dqabs001 abs '1' -> '1'
-dqabs002 abs '-1' -> '1'
-dqabs003 abs '1.00' -> '1.00'
-dqabs004 abs '-1.00' -> '1.00'
-dqabs005 abs '0' -> '0'
-dqabs006 abs '0.00' -> '0.00'
-dqabs007 abs '00.0' -> '0.0'
-dqabs008 abs '00.00' -> '0.00'
-dqabs009 abs '00' -> '0'
-
-dqabs010 abs '-2' -> '2'
-dqabs011 abs '2' -> '2'
-dqabs012 abs '-2.00' -> '2.00'
-dqabs013 abs '2.00' -> '2.00'
-dqabs014 abs '-0' -> '0'
-dqabs015 abs '-0.00' -> '0.00'
-dqabs016 abs '-00.0' -> '0.0'
-dqabs017 abs '-00.00' -> '0.00'
-dqabs018 abs '-00' -> '0'
-
-dqabs020 abs '-2000000' -> '2000000'
-dqabs021 abs '2000000' -> '2000000'
-
-dqabs030 abs '+0.1' -> '0.1'
-dqabs031 abs '-0.1' -> '0.1'
-dqabs032 abs '+0.01' -> '0.01'
-dqabs033 abs '-0.01' -> '0.01'
-dqabs034 abs '+0.001' -> '0.001'
-dqabs035 abs '-0.001' -> '0.001'
-dqabs036 abs '+0.000001' -> '0.000001'
-dqabs037 abs '-0.000001' -> '0.000001'
-dqabs038 abs '+0.000000000001' -> '1E-12'
-dqabs039 abs '-0.000000000001' -> '1E-12'
-
--- examples from decArith
-dqabs040 abs '2.1' -> '2.1'
-dqabs041 abs '-100' -> '100'
-dqabs042 abs '101.5' -> '101.5'
-dqabs043 abs '-101.5' -> '101.5'
-
--- more fixed, potential LHS swaps/overlays if done by subtract 0
-dqabs060 abs '-56267E-10' -> '0.0000056267'
-dqabs061 abs '-56267E-5' -> '0.56267'
-dqabs062 abs '-56267E-2' -> '562.67'
-dqabs063 abs '-56267E-1' -> '5626.7'
-dqabs065 abs '-56267E-0' -> '56267'
-
--- subnormals and underflow
-
--- long operand tests
-dqabs321 abs 1234567890123456 -> 1234567890123456
-dqabs322 abs 12345678000 -> 12345678000
-dqabs323 abs 1234567800 -> 1234567800
-dqabs324 abs 1234567890 -> 1234567890
-dqabs325 abs 1234567891 -> 1234567891
-dqabs326 abs 12345678901 -> 12345678901
-dqabs327 abs 1234567896 -> 1234567896
-
--- zeros
-dqabs111 abs 0 -> 0
-dqabs112 abs -0 -> 0
-dqabs113 abs 0E+6 -> 0E+6
-dqabs114 abs -0E+6 -> 0E+6
-dqabs115 abs 0.0000 -> 0.0000
-dqabs116 abs -0.0000 -> 0.0000
-dqabs117 abs 0E-141 -> 0E-141
-dqabs118 abs -0E-141 -> 0E-141
-
--- full coefficients, alternating bits
-dqabs121 abs 2682682682682682682682682682682682 -> 2682682682682682682682682682682682
-dqabs122 abs -2682682682682682682682682682682682 -> 2682682682682682682682682682682682
-dqabs123 abs 1341341341341341341341341341341341 -> 1341341341341341341341341341341341
-dqabs124 abs -1341341341341341341341341341341341 -> 1341341341341341341341341341341341
-
--- Nmax, Nmin, Ntiny
-dqabs131 abs 9.999999999999999999999999999999999E+6144 -> 9.999999999999999999999999999999999E+6144
-dqabs132 abs 1E-6143 -> 1E-6143
-dqabs133 abs 1.000000000000000000000000000000000E-6143 -> 1.000000000000000000000000000000000E-6143
-dqabs134 abs 1E-6176 -> 1E-6176 Subnormal
-
-dqabs135 abs -1E-6176 -> 1E-6176 Subnormal
-dqabs136 abs -1.000000000000000000000000000000000E-6143 -> 1.000000000000000000000000000000000E-6143
-dqabs137 abs -1E-6143 -> 1E-6143
-dqabs138 abs -9.999999999999999999999999999999999E+6144 -> 9.999999999999999999999999999999999E+6144
-
--- specials
-dqabs520 abs 'Inf' -> 'Infinity'
-dqabs521 abs '-Inf' -> 'Infinity'
-dqabs522 abs NaN -> NaN
-dqabs523 abs sNaN -> NaN Invalid_operation
-dqabs524 abs NaN22 -> NaN22
-dqabs525 abs sNaN33 -> NaN33 Invalid_operation
-dqabs526 abs -NaN22 -> -NaN22
-dqabs527 abs -sNaN33 -> -NaN33 Invalid_operation
-
--- Null tests
-dqabs900 abs # -> NaN Invalid_operation
-
+------------------------------------------------------------------------ +-- dqAbs.decTest -- decQuad absolute value, heeding sNaN -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +dqabs001 abs '1' -> '1' +dqabs002 abs '-1' -> '1' +dqabs003 abs '1.00' -> '1.00' +dqabs004 abs '-1.00' -> '1.00' +dqabs005 abs '0' -> '0' +dqabs006 abs '0.00' -> '0.00' +dqabs007 abs '00.0' -> '0.0' +dqabs008 abs '00.00' -> '0.00' +dqabs009 abs '00' -> '0' + +dqabs010 abs '-2' -> '2' +dqabs011 abs '2' -> '2' +dqabs012 abs '-2.00' -> '2.00' +dqabs013 abs '2.00' -> '2.00' +dqabs014 abs '-0' -> '0' +dqabs015 abs '-0.00' -> '0.00' +dqabs016 abs '-00.0' -> '0.0' +dqabs017 abs '-00.00' -> '0.00' +dqabs018 abs '-00' -> '0' + +dqabs020 abs '-2000000' -> '2000000' +dqabs021 abs '2000000' -> '2000000' + +dqabs030 abs '+0.1' -> '0.1' +dqabs031 abs '-0.1' -> '0.1' +dqabs032 abs '+0.01' -> '0.01' +dqabs033 abs '-0.01' -> '0.01' +dqabs034 abs '+0.001' -> '0.001' +dqabs035 abs '-0.001' -> '0.001' +dqabs036 abs '+0.000001' -> '0.000001' +dqabs037 abs '-0.000001' -> '0.000001' +dqabs038 abs '+0.000000000001' -> '1E-12' +dqabs039 abs '-0.000000000001' -> '1E-12' + +-- examples from decArith +dqabs040 abs '2.1' -> '2.1' +dqabs041 abs '-100' -> '100' +dqabs042 abs '101.5' -> '101.5' +dqabs043 abs '-101.5' -> '101.5' + +-- more fixed, potential LHS swaps/overlays if done by subtract 0 +dqabs060 abs '-56267E-10' -> '0.0000056267' +dqabs061 abs '-56267E-5' -> '0.56267' +dqabs062 abs '-56267E-2' -> '562.67' +dqabs063 abs '-56267E-1' -> '5626.7' +dqabs065 abs '-56267E-0' -> '56267' + +-- subnormals and underflow + +-- long operand tests +dqabs321 abs 1234567890123456 -> 1234567890123456 +dqabs322 abs 12345678000 -> 12345678000 +dqabs323 abs 1234567800 -> 1234567800 +dqabs324 abs 1234567890 -> 1234567890 +dqabs325 abs 1234567891 -> 1234567891 +dqabs326 abs 12345678901 -> 12345678901 +dqabs327 abs 1234567896 -> 1234567896 + +-- zeros +dqabs111 abs 0 -> 0 +dqabs112 abs -0 -> 0 +dqabs113 abs 0E+6 -> 0E+6 +dqabs114 abs -0E+6 -> 0E+6 +dqabs115 abs 0.0000 -> 0.0000 +dqabs116 abs -0.0000 -> 0.0000 +dqabs117 abs 0E-141 -> 0E-141 +dqabs118 abs -0E-141 -> 0E-141 + +-- full coefficients, alternating bits +dqabs121 abs 2682682682682682682682682682682682 -> 2682682682682682682682682682682682 +dqabs122 abs -2682682682682682682682682682682682 -> 2682682682682682682682682682682682 +dqabs123 abs 1341341341341341341341341341341341 -> 1341341341341341341341341341341341 +dqabs124 abs -1341341341341341341341341341341341 -> 1341341341341341341341341341341341 + +-- Nmax, Nmin, Ntiny +dqabs131 abs 9.999999999999999999999999999999999E+6144 -> 9.999999999999999999999999999999999E+6144 +dqabs132 abs 1E-6143 -> 1E-6143 +dqabs133 abs 1.000000000000000000000000000000000E-6143 -> 1.000000000000000000000000000000000E-6143 +dqabs134 abs 1E-6176 -> 1E-6176 Subnormal + +dqabs135 abs -1E-6176 -> 1E-6176 Subnormal +dqabs136 abs -1.000000000000000000000000000000000E-6143 -> 1.000000000000000000000000000000000E-6143 +dqabs137 abs -1E-6143 -> 1E-6143 +dqabs138 abs -9.999999999999999999999999999999999E+6144 -> 9.999999999999999999999999999999999E+6144 + +-- specials +dqabs520 abs 'Inf' -> 'Infinity' +dqabs521 abs '-Inf' -> 'Infinity' +dqabs522 abs NaN -> NaN +dqabs523 abs sNaN -> NaN Invalid_operation +dqabs524 abs NaN22 -> NaN22 +dqabs525 abs sNaN33 -> NaN33 Invalid_operation +dqabs526 abs -NaN22 -> -NaN22 +dqabs527 abs -sNaN33 -> -NaN33 Invalid_operation + +-- Null tests +dqabs900 abs # -> NaN Invalid_operation + diff --git a/Lib/test/decimaltestdata/dqAdd.decTest b/Lib/test/decimaltestdata/dqAdd.decTest index b3ad892bc1..b1df77abc6 100644 --- a/Lib/test/decimaltestdata/dqAdd.decTest +++ b/Lib/test/decimaltestdata/dqAdd.decTest @@ -1,1215 +1,1215 @@ -------------------------------------------------------------------------
--- dqAdd.decTest -- decQuad addition --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- This set of tests are for decQuads only; all arguments are
--- representable in a decQuad
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
--- [first group are 'quick confidence check']
-dqadd001 add 1 1 -> 2
-dqadd002 add 2 3 -> 5
-dqadd003 add '5.75' '3.3' -> 9.05
-dqadd004 add '5' '-3' -> 2
-dqadd005 add '-5' '-3' -> -8
-dqadd006 add '-7' '2.5' -> -4.5
-dqadd007 add '0.7' '0.3' -> 1.0
-dqadd008 add '1.25' '1.25' -> 2.50
-dqadd009 add '1.23456789' '1.00000000' -> '2.23456789'
-dqadd010 add '1.23456789' '1.00000011' -> '2.23456800'
-
--- 1234567890123456 1234567890123456
-dqadd011 add '0.4444444444444444444444444444444446' '0.5555555555555555555555555555555555' -> '1.000000000000000000000000000000000' Inexact Rounded
-dqadd012 add '0.4444444444444444444444444444444445' '0.5555555555555555555555555555555555' -> '1.000000000000000000000000000000000' Rounded
-dqadd013 add '0.4444444444444444444444444444444444' '0.5555555555555555555555555555555555' -> '0.9999999999999999999999999999999999'
-dqadd014 add '4444444444444444444444444444444444' '0.49' -> '4444444444444444444444444444444444' Inexact Rounded
-dqadd015 add '4444444444444444444444444444444444' '0.499' -> '4444444444444444444444444444444444' Inexact Rounded
-dqadd016 add '4444444444444444444444444444444444' '0.4999' -> '4444444444444444444444444444444444' Inexact Rounded
-dqadd017 add '4444444444444444444444444444444444' '0.5000' -> '4444444444444444444444444444444444' Inexact Rounded
-dqadd018 add '4444444444444444444444444444444444' '0.5001' -> '4444444444444444444444444444444445' Inexact Rounded
-dqadd019 add '4444444444444444444444444444444444' '0.501' -> '4444444444444444444444444444444445' Inexact Rounded
-dqadd020 add '4444444444444444444444444444444444' '0.51' -> '4444444444444444444444444444444445' Inexact Rounded
-
-dqadd021 add 0 1 -> 1
-dqadd022 add 1 1 -> 2
-dqadd023 add 2 1 -> 3
-dqadd024 add 3 1 -> 4
-dqadd025 add 4 1 -> 5
-dqadd026 add 5 1 -> 6
-dqadd027 add 6 1 -> 7
-dqadd028 add 7 1 -> 8
-dqadd029 add 8 1 -> 9
-dqadd030 add 9 1 -> 10
-
--- some carrying effects
-dqadd031 add '0.9998' '0.0000' -> '0.9998'
-dqadd032 add '0.9998' '0.0001' -> '0.9999'
-dqadd033 add '0.9998' '0.0002' -> '1.0000'
-dqadd034 add '0.9998' '0.0003' -> '1.0001'
-
-dqadd035 add '70' '10000e+34' -> '1.000000000000000000000000000000000E+38' Inexact Rounded
-dqadd036 add '700' '10000e+34' -> '1.000000000000000000000000000000000E+38' Inexact Rounded
-dqadd037 add '7000' '10000e+34' -> '1.000000000000000000000000000000000E+38' Inexact Rounded
-dqadd038 add '70000' '10000e+34' -> '1.000000000000000000000000000000001E+38' Inexact Rounded
-dqadd039 add '700000' '10000e+34' -> '1.000000000000000000000000000000007E+38' Rounded
-
--- symmetry:
-dqadd040 add '10000e+34' '70' -> '1.000000000000000000000000000000000E+38' Inexact Rounded
-dqadd041 add '10000e+34' '700' -> '1.000000000000000000000000000000000E+38' Inexact Rounded
-dqadd042 add '10000e+34' '7000' -> '1.000000000000000000000000000000000E+38' Inexact Rounded
-dqadd044 add '10000e+34' '70000' -> '1.000000000000000000000000000000001E+38' Inexact Rounded
-dqadd045 add '10000e+34' '700000' -> '1.000000000000000000000000000000007E+38' Rounded
-
--- same, without rounding
-dqadd046 add '10000e+9' '7' -> '10000000000007'
-dqadd047 add '10000e+9' '70' -> '10000000000070'
-dqadd048 add '10000e+9' '700' -> '10000000000700'
-dqadd049 add '10000e+9' '7000' -> '10000000007000'
-dqadd050 add '10000e+9' '70000' -> '10000000070000'
-dqadd051 add '10000e+9' '700000' -> '10000000700000'
-dqadd052 add '10000e+9' '7000000' -> '10000007000000'
-
--- examples from decarith
-dqadd053 add '12' '7.00' -> '19.00'
-dqadd054 add '1.3' '-1.07' -> '0.23'
-dqadd055 add '1.3' '-1.30' -> '0.00'
-dqadd056 add '1.3' '-2.07' -> '-0.77'
-dqadd057 add '1E+2' '1E+4' -> '1.01E+4'
-
--- leading zero preservation
-dqadd061 add 1 '0.0001' -> '1.0001'
-dqadd062 add 1 '0.00001' -> '1.00001'
-dqadd063 add 1 '0.000001' -> '1.000001'
-dqadd064 add 1 '0.0000001' -> '1.0000001'
-dqadd065 add 1 '0.00000001' -> '1.00000001'
-
--- some funny zeros [in case of bad signum]
-dqadd070 add 1 0 -> 1
-dqadd071 add 1 0. -> 1
-dqadd072 add 1 .0 -> 1.0
-dqadd073 add 1 0.0 -> 1.0
-dqadd074 add 1 0.00 -> 1.00
-dqadd075 add 0 1 -> 1
-dqadd076 add 0. 1 -> 1
-dqadd077 add .0 1 -> 1.0
-dqadd078 add 0.0 1 -> 1.0
-dqadd079 add 0.00 1 -> 1.00
-
--- some carries
-dqadd080 add 999999998 1 -> 999999999
-dqadd081 add 999999999 1 -> 1000000000
-dqadd082 add 99999999 1 -> 100000000
-dqadd083 add 9999999 1 -> 10000000
-dqadd084 add 999999 1 -> 1000000
-dqadd085 add 99999 1 -> 100000
-dqadd086 add 9999 1 -> 10000
-dqadd087 add 999 1 -> 1000
-dqadd088 add 99 1 -> 100
-dqadd089 add 9 1 -> 10
-
-
--- more LHS swaps
-dqadd090 add '-56267E-10' 0 -> '-0.0000056267'
-dqadd091 add '-56267E-6' 0 -> '-0.056267'
-dqadd092 add '-56267E-5' 0 -> '-0.56267'
-dqadd093 add '-56267E-4' 0 -> '-5.6267'
-dqadd094 add '-56267E-3' 0 -> '-56.267'
-dqadd095 add '-56267E-2' 0 -> '-562.67'
-dqadd096 add '-56267E-1' 0 -> '-5626.7'
-dqadd097 add '-56267E-0' 0 -> '-56267'
-dqadd098 add '-5E-10' 0 -> '-5E-10'
-dqadd099 add '-5E-7' 0 -> '-5E-7'
-dqadd100 add '-5E-6' 0 -> '-0.000005'
-dqadd101 add '-5E-5' 0 -> '-0.00005'
-dqadd102 add '-5E-4' 0 -> '-0.0005'
-dqadd103 add '-5E-1' 0 -> '-0.5'
-dqadd104 add '-5E0' 0 -> '-5'
-dqadd105 add '-5E1' 0 -> '-50'
-dqadd106 add '-5E5' 0 -> '-500000'
-dqadd107 add '-5E33' 0 -> '-5000000000000000000000000000000000'
-dqadd108 add '-5E34' 0 -> '-5.000000000000000000000000000000000E+34' Rounded
-dqadd109 add '-5E35' 0 -> '-5.000000000000000000000000000000000E+35' Rounded
-dqadd110 add '-5E36' 0 -> '-5.000000000000000000000000000000000E+36' Rounded
-dqadd111 add '-5E100' 0 -> '-5.000000000000000000000000000000000E+100' Rounded
-
--- more RHS swaps
-dqadd113 add 0 '-56267E-10' -> '-0.0000056267'
-dqadd114 add 0 '-56267E-6' -> '-0.056267'
-dqadd116 add 0 '-56267E-5' -> '-0.56267'
-dqadd117 add 0 '-56267E-4' -> '-5.6267'
-dqadd119 add 0 '-56267E-3' -> '-56.267'
-dqadd120 add 0 '-56267E-2' -> '-562.67'
-dqadd121 add 0 '-56267E-1' -> '-5626.7'
-dqadd122 add 0 '-56267E-0' -> '-56267'
-dqadd123 add 0 '-5E-10' -> '-5E-10'
-dqadd124 add 0 '-5E-7' -> '-5E-7'
-dqadd125 add 0 '-5E-6' -> '-0.000005'
-dqadd126 add 0 '-5E-5' -> '-0.00005'
-dqadd127 add 0 '-5E-4' -> '-0.0005'
-dqadd128 add 0 '-5E-1' -> '-0.5'
-dqadd129 add 0 '-5E0' -> '-5'
-dqadd130 add 0 '-5E1' -> '-50'
-dqadd131 add 0 '-5E5' -> '-500000'
-dqadd132 add 0 '-5E33' -> '-5000000000000000000000000000000000'
-dqadd133 add 0 '-5E34' -> '-5.000000000000000000000000000000000E+34' Rounded
-dqadd134 add 0 '-5E35' -> '-5.000000000000000000000000000000000E+35' Rounded
-dqadd135 add 0 '-5E36' -> '-5.000000000000000000000000000000000E+36' Rounded
-dqadd136 add 0 '-5E100' -> '-5.000000000000000000000000000000000E+100' Rounded
-
--- related
-dqadd137 add 1 '0E-39' -> '1.000000000000000000000000000000000' Rounded
-dqadd138 add -1 '0E-39' -> '-1.000000000000000000000000000000000' Rounded
-dqadd139 add '0E-39' 1 -> '1.000000000000000000000000000000000' Rounded
-dqadd140 add '0E-39' -1 -> '-1.000000000000000000000000000000000' Rounded
-dqadd141 add 1E+29 0.0000 -> '100000000000000000000000000000.0000'
-dqadd142 add 1E+29 0.00000 -> '100000000000000000000000000000.0000' Rounded
-dqadd143 add 0.000 1E+30 -> '1000000000000000000000000000000.000'
-dqadd144 add 0.0000 1E+30 -> '1000000000000000000000000000000.000' Rounded
-
--- [some of the next group are really constructor tests]
-dqadd146 add '00.0' 0 -> '0.0'
-dqadd147 add '0.00' 0 -> '0.00'
-dqadd148 add 0 '0.00' -> '0.00'
-dqadd149 add 0 '00.0' -> '0.0'
-dqadd150 add '00.0' '0.00' -> '0.00'
-dqadd151 add '0.00' '00.0' -> '0.00'
-dqadd152 add '3' '.3' -> '3.3'
-dqadd153 add '3.' '.3' -> '3.3'
-dqadd154 add '3.0' '.3' -> '3.3'
-dqadd155 add '3.00' '.3' -> '3.30'
-dqadd156 add '3' '3' -> '6'
-dqadd157 add '3' '+3' -> '6'
-dqadd158 add '3' '-3' -> '0'
-dqadd159 add '0.3' '-0.3' -> '0.0'
-dqadd160 add '0.03' '-0.03' -> '0.00'
-
--- try borderline precision, with carries, etc.
-dqadd161 add '1E+12' '-1' -> '999999999999'
-dqadd162 add '1E+12' '1.11' -> '1000000000001.11'
-dqadd163 add '1.11' '1E+12' -> '1000000000001.11'
-dqadd164 add '-1' '1E+12' -> '999999999999'
-dqadd165 add '7E+12' '-1' -> '6999999999999'
-dqadd166 add '7E+12' '1.11' -> '7000000000001.11'
-dqadd167 add '1.11' '7E+12' -> '7000000000001.11'
-dqadd168 add '-1' '7E+12' -> '6999999999999'
-
-rounding: half_up
-dqadd170 add '4.444444444444444444444444444444444' '0.5555555555555555555555555555555567' -> '5.000000000000000000000000000000001' Inexact Rounded
-dqadd171 add '4.444444444444444444444444444444444' '0.5555555555555555555555555555555566' -> '5.000000000000000000000000000000001' Inexact Rounded
-dqadd172 add '4.444444444444444444444444444444444' '0.5555555555555555555555555555555565' -> '5.000000000000000000000000000000001' Inexact Rounded
-dqadd173 add '4.444444444444444444444444444444444' '0.5555555555555555555555555555555564' -> '5.000000000000000000000000000000000' Inexact Rounded
-dqadd174 add '4.444444444444444444444444444444444' '0.5555555555555555555555555555555553' -> '4.999999999999999999999999999999999' Inexact Rounded
-dqadd175 add '4.444444444444444444444444444444444' '0.5555555555555555555555555555555552' -> '4.999999999999999999999999999999999' Inexact Rounded
-dqadd176 add '4.444444444444444444444444444444444' '0.5555555555555555555555555555555551' -> '4.999999999999999999999999999999999' Inexact Rounded
-dqadd177 add '4.444444444444444444444444444444444' '0.5555555555555555555555555555555550' -> '4.999999999999999999999999999999999' Rounded
-dqadd178 add '4.444444444444444444444444444444444' '0.5555555555555555555555555555555545' -> '4.999999999999999999999999999999999' Inexact Rounded
-dqadd179 add '4.444444444444444444444444444444444' '0.5555555555555555555555555555555544' -> '4.999999999999999999999999999999998' Inexact Rounded
-dqadd180 add '4.444444444444444444444444444444444' '0.5555555555555555555555555555555543' -> '4.999999999999999999999999999999998' Inexact Rounded
-dqadd181 add '4.444444444444444444444444444444444' '0.5555555555555555555555555555555542' -> '4.999999999999999999999999999999998' Inexact Rounded
-dqadd182 add '4.444444444444444444444444444444444' '0.5555555555555555555555555555555541' -> '4.999999999999999999999999999999998' Inexact Rounded
-dqadd183 add '4.444444444444444444444444444444444' '0.5555555555555555555555555555555540' -> '4.999999999999999999999999999999998' Rounded
-
--- and some more, including residue effects and different roundings
-rounding: half_up
-dqadd200 add '1231234567890123456784560123456789' 0 -> '1231234567890123456784560123456789'
-dqadd201 add '1231234567890123456784560123456789' 0.000000001 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd202 add '1231234567890123456784560123456789' 0.000001 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd203 add '1231234567890123456784560123456789' 0.1 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd204 add '1231234567890123456784560123456789' 0.4 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd205 add '1231234567890123456784560123456789' 0.49 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd206 add '1231234567890123456784560123456789' 0.499999 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd207 add '1231234567890123456784560123456789' 0.499999999 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd208 add '1231234567890123456784560123456789' 0.5 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd209 add '1231234567890123456784560123456789' 0.500000001 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd210 add '1231234567890123456784560123456789' 0.500001 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd211 add '1231234567890123456784560123456789' 0.51 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd212 add '1231234567890123456784560123456789' 0.6 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd213 add '1231234567890123456784560123456789' 0.9 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd214 add '1231234567890123456784560123456789' 0.99999 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd215 add '1231234567890123456784560123456789' 0.999999999 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd216 add '1231234567890123456784560123456789' 1 -> '1231234567890123456784560123456790'
-dqadd217 add '1231234567890123456784560123456789' 1.000000001 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd218 add '1231234567890123456784560123456789' 1.00001 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd219 add '1231234567890123456784560123456789' 1.1 -> '1231234567890123456784560123456790' Inexact Rounded
-
-rounding: half_even
-dqadd220 add '1231234567890123456784560123456789' 0 -> '1231234567890123456784560123456789'
-dqadd221 add '1231234567890123456784560123456789' 0.000000001 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd222 add '1231234567890123456784560123456789' 0.000001 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd223 add '1231234567890123456784560123456789' 0.1 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd224 add '1231234567890123456784560123456789' 0.4 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd225 add '1231234567890123456784560123456789' 0.49 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd226 add '1231234567890123456784560123456789' 0.499999 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd227 add '1231234567890123456784560123456789' 0.499999999 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd228 add '1231234567890123456784560123456789' 0.5 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd229 add '1231234567890123456784560123456789' 0.500000001 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd230 add '1231234567890123456784560123456789' 0.500001 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd231 add '1231234567890123456784560123456789' 0.51 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd232 add '1231234567890123456784560123456789' 0.6 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd233 add '1231234567890123456784560123456789' 0.9 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd234 add '1231234567890123456784560123456789' 0.99999 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd235 add '1231234567890123456784560123456789' 0.999999999 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd236 add '1231234567890123456784560123456789' 1 -> '1231234567890123456784560123456790'
-dqadd237 add '1231234567890123456784560123456789' 1.00000001 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd238 add '1231234567890123456784560123456789' 1.00001 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd239 add '1231234567890123456784560123456789' 1.1 -> '1231234567890123456784560123456790' Inexact Rounded
--- critical few with even bottom digit...
-dqadd240 add '1231234567890123456784560123456788' 0.499999999 -> '1231234567890123456784560123456788' Inexact Rounded
-dqadd241 add '1231234567890123456784560123456788' 0.5 -> '1231234567890123456784560123456788' Inexact Rounded
-dqadd242 add '1231234567890123456784560123456788' 0.500000001 -> '1231234567890123456784560123456789' Inexact Rounded
-
-rounding: down
-dqadd250 add '1231234567890123456784560123456789' 0 -> '1231234567890123456784560123456789'
-dqadd251 add '1231234567890123456784560123456789' 0.000000001 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd252 add '1231234567890123456784560123456789' 0.000001 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd253 add '1231234567890123456784560123456789' 0.1 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd254 add '1231234567890123456784560123456789' 0.4 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd255 add '1231234567890123456784560123456789' 0.49 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd256 add '1231234567890123456784560123456789' 0.499999 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd257 add '1231234567890123456784560123456789' 0.499999999 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd258 add '1231234567890123456784560123456789' 0.5 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd259 add '1231234567890123456784560123456789' 0.500000001 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd260 add '1231234567890123456784560123456789' 0.500001 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd261 add '1231234567890123456784560123456789' 0.51 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd262 add '1231234567890123456784560123456789' 0.6 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd263 add '1231234567890123456784560123456789' 0.9 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd264 add '1231234567890123456784560123456789' 0.99999 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd265 add '1231234567890123456784560123456789' 0.999999999 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd266 add '1231234567890123456784560123456789' 1 -> '1231234567890123456784560123456790'
-dqadd267 add '1231234567890123456784560123456789' 1.00000001 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd268 add '1231234567890123456784560123456789' 1.00001 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd269 add '1231234567890123456784560123456789' 1.1 -> '1231234567890123456784560123456790' Inexact Rounded
-
--- 1 in last place tests
-rounding: half_up
-dqadd301 add -1 1 -> 0
-dqadd302 add 0 1 -> 1
-dqadd303 add 1 1 -> 2
-dqadd304 add 12 1 -> 13
-dqadd305 add 98 1 -> 99
-dqadd306 add 99 1 -> 100
-dqadd307 add 100 1 -> 101
-dqadd308 add 101 1 -> 102
-dqadd309 add -1 -1 -> -2
-dqadd310 add 0 -1 -> -1
-dqadd311 add 1 -1 -> 0
-dqadd312 add 12 -1 -> 11
-dqadd313 add 98 -1 -> 97
-dqadd314 add 99 -1 -> 98
-dqadd315 add 100 -1 -> 99
-dqadd316 add 101 -1 -> 100
-
-dqadd321 add -0.01 0.01 -> 0.00
-dqadd322 add 0.00 0.01 -> 0.01
-dqadd323 add 0.01 0.01 -> 0.02
-dqadd324 add 0.12 0.01 -> 0.13
-dqadd325 add 0.98 0.01 -> 0.99
-dqadd326 add 0.99 0.01 -> 1.00
-dqadd327 add 1.00 0.01 -> 1.01
-dqadd328 add 1.01 0.01 -> 1.02
-dqadd329 add -0.01 -0.01 -> -0.02
-dqadd330 add 0.00 -0.01 -> -0.01
-dqadd331 add 0.01 -0.01 -> 0.00
-dqadd332 add 0.12 -0.01 -> 0.11
-dqadd333 add 0.98 -0.01 -> 0.97
-dqadd334 add 0.99 -0.01 -> 0.98
-dqadd335 add 1.00 -0.01 -> 0.99
-dqadd336 add 1.01 -0.01 -> 1.00
-
--- some more cases where adding 0 affects the coefficient
-dqadd340 add 1E+3 0 -> 1000
-dqadd341 add 1E+33 0 -> 1000000000000000000000000000000000
-dqadd342 add 1E+34 0 -> 1.000000000000000000000000000000000E+34 Rounded
-dqadd343 add 1E+35 0 -> 1.000000000000000000000000000000000E+35 Rounded
--- which simply follow from these cases ...
-dqadd344 add 1E+3 1 -> 1001
-dqadd345 add 1E+33 1 -> 1000000000000000000000000000000001
-dqadd346 add 1E+34 1 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd347 add 1E+35 1 -> 1.000000000000000000000000000000000E+35 Inexact Rounded
-dqadd348 add 1E+3 7 -> 1007
-dqadd349 add 1E+33 7 -> 1000000000000000000000000000000007
-dqadd350 add 1E+34 7 -> 1.000000000000000000000000000000001E+34 Inexact Rounded
-dqadd351 add 1E+35 7 -> 1.000000000000000000000000000000000E+35 Inexact Rounded
-
--- tryzeros cases
-rounding: half_up
-dqadd360 add 0E+50 10000E+1 -> 1.0000E+5
-dqadd361 add 0E-50 10000E+1 -> 100000.0000000000000000000000000000 Rounded
-dqadd362 add 10000E+1 0E-50 -> 100000.0000000000000000000000000000 Rounded
-dqadd363 add 10000E+1 10000E-50 -> 100000.0000000000000000000000000000 Rounded Inexact
-dqadd364 add 9.999999999999999999999999999999999E+6144 -9.999999999999999999999999999999999E+6144 -> 0E+6111
--- 1 234567890123456789012345678901234
-
--- a curiosity from JSR 13 testing
-rounding: half_down
-dqadd370 add 999999999999999999999999999999999 815 -> 1000000000000000000000000000000814
-dqadd371 add 9999999999999999999999999999999999 815 -> 1.000000000000000000000000000000081E+34 Rounded Inexact
-rounding: half_up
-dqadd372 add 999999999999999999999999999999999 815 -> 1000000000000000000000000000000814
-dqadd373 add 9999999999999999999999999999999999 815 -> 1.000000000000000000000000000000081E+34 Rounded Inexact
-rounding: half_even
-dqadd374 add 999999999999999999999999999999999 815 -> 1000000000000000000000000000000814
-dqadd375 add 9999999999999999999999999999999999 815 -> 1.000000000000000000000000000000081E+34 Rounded Inexact
-
--- ulp replacement tests
-dqadd400 add 1 77e-32 -> 1.00000000000000000000000000000077
-dqadd401 add 1 77e-33 -> 1.000000000000000000000000000000077
-dqadd402 add 1 77e-34 -> 1.000000000000000000000000000000008 Inexact Rounded
-dqadd403 add 1 77e-35 -> 1.000000000000000000000000000000001 Inexact Rounded
-dqadd404 add 1 77e-36 -> 1.000000000000000000000000000000000 Inexact Rounded
-dqadd405 add 1 77e-37 -> 1.000000000000000000000000000000000 Inexact Rounded
-dqadd406 add 1 77e-299 -> 1.000000000000000000000000000000000 Inexact Rounded
-
-dqadd410 add 10 77e-32 -> 10.00000000000000000000000000000077
-dqadd411 add 10 77e-33 -> 10.00000000000000000000000000000008 Inexact Rounded
-dqadd412 add 10 77e-34 -> 10.00000000000000000000000000000001 Inexact Rounded
-dqadd413 add 10 77e-35 -> 10.00000000000000000000000000000000 Inexact Rounded
-dqadd414 add 10 77e-36 -> 10.00000000000000000000000000000000 Inexact Rounded
-dqadd415 add 10 77e-37 -> 10.00000000000000000000000000000000 Inexact Rounded
-dqadd416 add 10 77e-299 -> 10.00000000000000000000000000000000 Inexact Rounded
-
-dqadd420 add 77e-32 1 -> 1.00000000000000000000000000000077
-dqadd421 add 77e-33 1 -> 1.000000000000000000000000000000077
-dqadd422 add 77e-34 1 -> 1.000000000000000000000000000000008 Inexact Rounded
-dqadd423 add 77e-35 1 -> 1.000000000000000000000000000000001 Inexact Rounded
-dqadd424 add 77e-36 1 -> 1.000000000000000000000000000000000 Inexact Rounded
-dqadd425 add 77e-37 1 -> 1.000000000000000000000000000000000 Inexact Rounded
-dqadd426 add 77e-299 1 -> 1.000000000000000000000000000000000 Inexact Rounded
-
-dqadd430 add 77e-32 10 -> 10.00000000000000000000000000000077
-dqadd431 add 77e-33 10 -> 10.00000000000000000000000000000008 Inexact Rounded
-dqadd432 add 77e-34 10 -> 10.00000000000000000000000000000001 Inexact Rounded
-dqadd433 add 77e-35 10 -> 10.00000000000000000000000000000000 Inexact Rounded
-dqadd434 add 77e-36 10 -> 10.00000000000000000000000000000000 Inexact Rounded
-dqadd435 add 77e-37 10 -> 10.00000000000000000000000000000000 Inexact Rounded
-dqadd436 add 77e-299 10 -> 10.00000000000000000000000000000000 Inexact Rounded
-
--- fastpath boundaries
--- 1234567890123456789012345678901234
-dqadd501 add '4444444444444444444444444444444444' '5555555555555555555555555555555555' -> '9999999999999999999999999999999999'
-dqadd502 add '4444444444444444444444444444444444' '4555555555555555555555555555555555' -> '8999999999999999999999999999999999'
-dqadd503 add '4444444444444444444444444444444444' '3555555555555555555055555555555555' -> '7999999999999999999499999999999999'
-dqadd504 add '4444444444444444444444444444444444' '3955555555555555555555555555555555' -> '8399999999999999999999999999999999'
-dqadd505 add '4444444444444444444444444444444444' '4955555555555555555555555555555555' -> '9399999999999999999999999999999999'
-dqadd506 add '4444444444444444444444444444444444' '5955555555555555555555555555555555' -> 1.040000000000000000000000000000000E+34 Inexact Rounded
-dqadd511 add '344444444444444444444444444444444' '555555555555555555555555555555555' -> '899999999999999999999999999999999'
-dqadd512 add '34444444444444444444444444444444' '55555555555555555555555555555555' -> '89999999999999999999999999999999'
-dqadd513 add '3444444444444444444444444444444' '5555555555555555555555555555555' -> '8999999999999999999999999999999'
-dqadd514 add '344444444444444444444444444444' '555555555555555555555555555555' -> '899999999999999999999999999999'
-dqadd515 add '34444444444444444444444444444' '55555555555555555555555555555' -> '89999999999999999999999999999'
-dqadd516 add '3444444444444444444444444444' '5555555555555555555555555555' -> '8999999999999999999999999999'
-dqadd517 add '344444444444444444444444444' '555555555555555555555555555' -> '899999999999999999999999999'
-dqadd518 add '34444444444444444444444444' '55555555555555555555555555' -> '89999999999999999999999999'
-dqadd519 add '3444444444444444444444444' '5555555555555555555555555' -> '8999999999999999999999999'
-dqadd520 add '344444444444444444444444' '555555555555555555555555' -> '899999999999999999999999'
-dqadd521 add '34444444444444444444444' '55555555555555555555555' -> '89999999999999999999999'
-dqadd522 add '3444444444444444444444' '5555555555555555555555' -> '8999999999999999999999'
-dqadd523 add '4444444444444444444444' '3333333333333333333333' -> '7777777777777777777777'
-dqadd524 add '344444444444444444444' '555555555555555555555' -> '899999999999999999999'
-dqadd525 add '34444444444444444444' '55555555555555555555' -> '89999999999999999999'
-dqadd526 add '3444444444444444444' '5555555555555555555' -> '8999999999999999999'
-dqadd527 add '344444444444444444' '555555555555555555' -> '899999999999999999'
-dqadd528 add '34444444444444444' '55555555555555555' -> '89999999999999999'
-dqadd529 add '3444444444444444' '5555555555555555' -> '8999999999999999'
-dqadd530 add '344444444444444' '555555555555555' -> '899999999999999'
-dqadd531 add '34444444444444' '55555555555555' -> '89999999999999'
-dqadd532 add '3444444444444' '5555555555555' -> '8999999999999'
-dqadd533 add '344444444444' '555555555555' -> '899999999999'
-dqadd534 add '34444444444' '55555555555' -> '89999999999'
-dqadd535 add '3444444444' '5555555555' -> '8999999999'
-dqadd536 add '344444444' '555555555' -> '899999999'
-dqadd537 add '34444444' '55555555' -> '89999999'
-dqadd538 add '3444444' '5555555' -> '8999999'
-dqadd539 add '344444' '555555' -> '899999'
-dqadd540 add '34444' '55555' -> '89999'
-dqadd541 add '3444' '5555' -> '8999'
-dqadd542 add '344' '555' -> '899'
-dqadd543 add '34' '55' -> '89'
-dqadd544 add '3' '5' -> '8'
-
-dqadd545 add '3000004000000000000000000000000000' '3000000000000040000000000000000000' -> '6000004000000040000000000000000000'
-dqadd546 add '3000000400000000000000000000000000' '4000000000000400000000000000000000' -> '7000000400000400000000000000000000'
-dqadd547 add '3000000040000000000000000000000000' '5000000000004000000000000000000000' -> '8000000040004000000000000000000000'
-dqadd548 add '4000000004000000000000000000000000' '3000000000040000000000000000000000' -> '7000000004040000000000000000000000'
-dqadd549 add '4000000000400000000000000000000000' '4000000000400000000000000000000000' -> '8000000000800000000000000000000000'
-dqadd550 add '4000000000040000000000000000000000' '5000000004000000000000000000000000' -> '9000000004040000000000000000000000'
-dqadd551 add '5000000000004000000000000000000000' '3000000040000000000000000000000000' -> '8000000040004000000000000000000000'
-dqadd552 add '5000000000000400000000000000000000' '4000000400000000000000000000000000' -> '9000000400000400000000000000000000'
-dqadd553 add '5000000000000040000000000000000000' '5000004000000000000000000000000000' -> 1.000000400000004000000000000000000E+34 Rounded
--- check propagation
-dqadd554 add '8999999999999999999999999999999999' '0000000000000000000000000000000001' -> 9000000000000000000000000000000000
-dqadd555 add '0000000000000000000000000000000001' '8999999999999999999999999999999999' -> 9000000000000000000000000000000000
-dqadd556 add '4444444444444444444444444444444444' '4555555555555555555555555555555556' -> 9000000000000000000000000000000000
-dqadd557 add '4555555555555555555555555555555556' '4444444444444444444444444444444444' -> 9000000000000000000000000000000000
-
--- negative ulps
-dqadd6440 add 1 -77e-32 -> 0.99999999999999999999999999999923
-dqadd6441 add 1 -77e-33 -> 0.999999999999999999999999999999923
-dqadd6442 add 1 -77e-34 -> 0.9999999999999999999999999999999923
-dqadd6443 add 1 -77e-35 -> 0.9999999999999999999999999999999992 Inexact Rounded
-dqadd6444 add 1 -77e-36 -> 0.9999999999999999999999999999999999 Inexact Rounded
-dqadd6445 add 1 -77e-37 -> 1.000000000000000000000000000000000 Inexact Rounded
-dqadd6446 add 1 -77e-99 -> 1.000000000000000000000000000000000 Inexact Rounded
-
-dqadd6450 add 10 -77e-32 -> 9.99999999999999999999999999999923
-dqadd6451 add 10 -77e-33 -> 9.999999999999999999999999999999923
-dqadd6452 add 10 -77e-34 -> 9.999999999999999999999999999999992 Inexact Rounded
-dqadd6453 add 10 -77e-35 -> 9.999999999999999999999999999999999 Inexact Rounded
-dqadd6454 add 10 -77e-36 -> 10.00000000000000000000000000000000 Inexact Rounded
-dqadd6455 add 10 -77e-37 -> 10.00000000000000000000000000000000 Inexact Rounded
-dqadd6456 add 10 -77e-99 -> 10.00000000000000000000000000000000 Inexact Rounded
-
-dqadd6460 add -77e-32 1 -> 0.99999999999999999999999999999923
-dqadd6461 add -77e-33 1 -> 0.999999999999999999999999999999923
-dqadd6462 add -77e-34 1 -> 0.9999999999999999999999999999999923
-dqadd6463 add -77e-35 1 -> 0.9999999999999999999999999999999992 Inexact Rounded
-dqadd6464 add -77e-36 1 -> 0.9999999999999999999999999999999999 Inexact Rounded
-dqadd6465 add -77e-37 1 -> 1.000000000000000000000000000000000 Inexact Rounded
-dqadd6466 add -77e-99 1 -> 1.000000000000000000000000000000000 Inexact Rounded
-
-dqadd6470 add -77e-32 10 -> 9.99999999999999999999999999999923
-dqadd6471 add -77e-33 10 -> 9.999999999999999999999999999999923
-dqadd6472 add -77e-34 10 -> 9.999999999999999999999999999999992 Inexact Rounded
-dqadd6473 add -77e-35 10 -> 9.999999999999999999999999999999999 Inexact Rounded
-dqadd6474 add -77e-36 10 -> 10.00000000000000000000000000000000 Inexact Rounded
-dqadd6475 add -77e-37 10 -> 10.00000000000000000000000000000000 Inexact Rounded
-dqadd6476 add -77e-99 10 -> 10.00000000000000000000000000000000 Inexact Rounded
-
--- negative ulps
-dqadd6480 add -1 77e-32 -> -0.99999999999999999999999999999923
-dqadd6481 add -1 77e-33 -> -0.999999999999999999999999999999923
-dqadd6482 add -1 77e-34 -> -0.9999999999999999999999999999999923
-dqadd6483 add -1 77e-35 -> -0.9999999999999999999999999999999992 Inexact Rounded
-dqadd6484 add -1 77e-36 -> -0.9999999999999999999999999999999999 Inexact Rounded
-dqadd6485 add -1 77e-37 -> -1.000000000000000000000000000000000 Inexact Rounded
-dqadd6486 add -1 77e-99 -> -1.000000000000000000000000000000000 Inexact Rounded
-
-dqadd6490 add -10 77e-32 -> -9.99999999999999999999999999999923
-dqadd6491 add -10 77e-33 -> -9.999999999999999999999999999999923
-dqadd6492 add -10 77e-34 -> -9.999999999999999999999999999999992 Inexact Rounded
-dqadd6493 add -10 77e-35 -> -9.999999999999999999999999999999999 Inexact Rounded
-dqadd6494 add -10 77e-36 -> -10.00000000000000000000000000000000 Inexact Rounded
-dqadd6495 add -10 77e-37 -> -10.00000000000000000000000000000000 Inexact Rounded
-dqadd6496 add -10 77e-99 -> -10.00000000000000000000000000000000 Inexact Rounded
-
-dqadd6500 add 77e-32 -1 -> -0.99999999999999999999999999999923
-dqadd6501 add 77e-33 -1 -> -0.999999999999999999999999999999923
-dqadd6502 add 77e-34 -1 -> -0.9999999999999999999999999999999923
-dqadd6503 add 77e-35 -1 -> -0.9999999999999999999999999999999992 Inexact Rounded
-dqadd6504 add 77e-36 -1 -> -0.9999999999999999999999999999999999 Inexact Rounded
-dqadd6505 add 77e-37 -1 -> -1.000000000000000000000000000000000 Inexact Rounded
-dqadd6506 add 77e-99 -1 -> -1.000000000000000000000000000000000 Inexact Rounded
-
-dqadd6510 add 77e-32 -10 -> -9.99999999999999999999999999999923
-dqadd6511 add 77e-33 -10 -> -9.999999999999999999999999999999923
-dqadd6512 add 77e-34 -10 -> -9.999999999999999999999999999999992 Inexact Rounded
-dqadd6513 add 77e-35 -10 -> -9.999999999999999999999999999999999 Inexact Rounded
-dqadd6514 add 77e-36 -10 -> -10.00000000000000000000000000000000 Inexact Rounded
-dqadd6515 add 77e-37 -10 -> -10.00000000000000000000000000000000 Inexact Rounded
-dqadd6516 add 77e-99 -10 -> -10.00000000000000000000000000000000 Inexact Rounded
-
--- and some more residue effects and different roundings
-rounding: half_up
-dqadd6540 add '9876543219876543216543210123456789' 0 -> '9876543219876543216543210123456789'
-dqadd6541 add '9876543219876543216543210123456789' 0.000000001 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd6542 add '9876543219876543216543210123456789' 0.000001 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd6543 add '9876543219876543216543210123456789' 0.1 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd6544 add '9876543219876543216543210123456789' 0.4 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd6545 add '9876543219876543216543210123456789' 0.49 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd6546 add '9876543219876543216543210123456789' 0.499999 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd6547 add '9876543219876543216543210123456789' 0.499999999 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd6548 add '9876543219876543216543210123456789' 0.5 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd6549 add '9876543219876543216543210123456789' 0.500000001 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd6550 add '9876543219876543216543210123456789' 0.500001 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd6551 add '9876543219876543216543210123456789' 0.51 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd6552 add '9876543219876543216543210123456789' 0.6 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd6553 add '9876543219876543216543210123456789' 0.9 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd6554 add '9876543219876543216543210123456789' 0.99999 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd6555 add '9876543219876543216543210123456789' 0.999999999 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd6556 add '9876543219876543216543210123456789' 1 -> '9876543219876543216543210123456790'
-dqadd6557 add '9876543219876543216543210123456789' 1.000000001 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd6558 add '9876543219876543216543210123456789' 1.00001 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd6559 add '9876543219876543216543210123456789' 1.1 -> '9876543219876543216543210123456790' Inexact Rounded
-
-rounding: half_even
-dqadd6560 add '9876543219876543216543210123456789' 0 -> '9876543219876543216543210123456789'
-dqadd6561 add '9876543219876543216543210123456789' 0.000000001 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd6562 add '9876543219876543216543210123456789' 0.000001 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd6563 add '9876543219876543216543210123456789' 0.1 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd6564 add '9876543219876543216543210123456789' 0.4 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd6565 add '9876543219876543216543210123456789' 0.49 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd6566 add '9876543219876543216543210123456789' 0.499999 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd6567 add '9876543219876543216543210123456789' 0.499999999 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd6568 add '9876543219876543216543210123456789' 0.5 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd6569 add '9876543219876543216543210123456789' 0.500000001 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd6570 add '9876543219876543216543210123456789' 0.500001 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd6571 add '9876543219876543216543210123456789' 0.51 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd6572 add '9876543219876543216543210123456789' 0.6 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd6573 add '9876543219876543216543210123456789' 0.9 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd6574 add '9876543219876543216543210123456789' 0.99999 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd6575 add '9876543219876543216543210123456789' 0.999999999 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd6576 add '9876543219876543216543210123456789' 1 -> '9876543219876543216543210123456790'
-dqadd6577 add '9876543219876543216543210123456789' 1.00000001 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd6578 add '9876543219876543216543210123456789' 1.00001 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd6579 add '9876543219876543216543210123456789' 1.1 -> '9876543219876543216543210123456790' Inexact Rounded
-
--- critical few with even bottom digit...
-dqadd7540 add '9876543219876543216543210123456788' 0.499999999 -> '9876543219876543216543210123456788' Inexact Rounded
-dqadd7541 add '9876543219876543216543210123456788' 0.5 -> '9876543219876543216543210123456788' Inexact Rounded
-dqadd7542 add '9876543219876543216543210123456788' 0.500000001 -> '9876543219876543216543210123456789' Inexact Rounded
-
-rounding: down
-dqadd7550 add '9876543219876543216543210123456789' 0 -> '9876543219876543216543210123456789'
-dqadd7551 add '9876543219876543216543210123456789' 0.000000001 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd7552 add '9876543219876543216543210123456789' 0.000001 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd7553 add '9876543219876543216543210123456789' 0.1 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd7554 add '9876543219876543216543210123456789' 0.4 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd7555 add '9876543219876543216543210123456789' 0.49 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd7556 add '9876543219876543216543210123456789' 0.499999 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd7557 add '9876543219876543216543210123456789' 0.499999999 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd7558 add '9876543219876543216543210123456789' 0.5 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd7559 add '9876543219876543216543210123456789' 0.500000001 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd7560 add '9876543219876543216543210123456789' 0.500001 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd7561 add '9876543219876543216543210123456789' 0.51 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd7562 add '9876543219876543216543210123456789' 0.6 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd7563 add '9876543219876543216543210123456789' 0.9 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd7564 add '9876543219876543216543210123456789' 0.99999 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd7565 add '9876543219876543216543210123456789' 0.999999999 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd7566 add '9876543219876543216543210123456789' 1 -> '9876543219876543216543210123456790'
-dqadd7567 add '9876543219876543216543210123456789' 1.00000001 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd7568 add '9876543219876543216543210123456789' 1.00001 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd7569 add '9876543219876543216543210123456789' 1.1 -> '9876543219876543216543210123456790' Inexact Rounded
-
--- more zeros, etc.
-rounding: half_even
-
-dqadd7701 add 5.00 1.00E-3 -> 5.00100
-dqadd7702 add 00.00 0.000 -> 0.000
-dqadd7703 add 00.00 0E-3 -> 0.000
-dqadd7704 add 0E-3 00.00 -> 0.000
-
-dqadd7710 add 0E+3 00.00 -> 0.00
-dqadd7711 add 0E+3 00.0 -> 0.0
-dqadd7712 add 0E+3 00. -> 0
-dqadd7713 add 0E+3 00.E+1 -> 0E+1
-dqadd7714 add 0E+3 00.E+2 -> 0E+2
-dqadd7715 add 0E+3 00.E+3 -> 0E+3
-dqadd7716 add 0E+3 00.E+4 -> 0E+3
-dqadd7717 add 0E+3 00.E+5 -> 0E+3
-dqadd7718 add 0E+3 -00.0 -> 0.0
-dqadd7719 add 0E+3 -00. -> 0
-dqadd7731 add 0E+3 -00.E+1 -> 0E+1
-
-dqadd7720 add 00.00 0E+3 -> 0.00
-dqadd7721 add 00.0 0E+3 -> 0.0
-dqadd7722 add 00. 0E+3 -> 0
-dqadd7723 add 00.E+1 0E+3 -> 0E+1
-dqadd7724 add 00.E+2 0E+3 -> 0E+2
-dqadd7725 add 00.E+3 0E+3 -> 0E+3
-dqadd7726 add 00.E+4 0E+3 -> 0E+3
-dqadd7727 add 00.E+5 0E+3 -> 0E+3
-dqadd7728 add -00.00 0E+3 -> 0.00
-dqadd7729 add -00.0 0E+3 -> 0.0
-dqadd7730 add -00. 0E+3 -> 0
-
-dqadd7732 add 0 0 -> 0
-dqadd7733 add 0 -0 -> 0
-dqadd7734 add -0 0 -> 0
-dqadd7735 add -0 -0 -> -0 -- IEEE 754 special case
-
-dqadd7736 add 1 -1 -> 0
-dqadd7737 add -1 -1 -> -2
-dqadd7738 add 1 1 -> 2
-dqadd7739 add -1 1 -> 0
-
-dqadd7741 add 0 -1 -> -1
-dqadd7742 add -0 -1 -> -1
-dqadd7743 add 0 1 -> 1
-dqadd7744 add -0 1 -> 1
-dqadd7745 add -1 0 -> -1
-dqadd7746 add -1 -0 -> -1
-dqadd7747 add 1 0 -> 1
-dqadd7748 add 1 -0 -> 1
-
-dqadd7751 add 0.0 -1 -> -1.0
-dqadd7752 add -0.0 -1 -> -1.0
-dqadd7753 add 0.0 1 -> 1.0
-dqadd7754 add -0.0 1 -> 1.0
-dqadd7755 add -1.0 0 -> -1.0
-dqadd7756 add -1.0 -0 -> -1.0
-dqadd7757 add 1.0 0 -> 1.0
-dqadd7758 add 1.0 -0 -> 1.0
-
-dqadd7761 add 0 -1.0 -> -1.0
-dqadd7762 add -0 -1.0 -> -1.0
-dqadd7763 add 0 1.0 -> 1.0
-dqadd7764 add -0 1.0 -> 1.0
-dqadd7765 add -1 0.0 -> -1.0
-dqadd7766 add -1 -0.0 -> -1.0
-dqadd7767 add 1 0.0 -> 1.0
-dqadd7768 add 1 -0.0 -> 1.0
-
-dqadd7771 add 0.0 -1.0 -> -1.0
-dqadd7772 add -0.0 -1.0 -> -1.0
-dqadd7773 add 0.0 1.0 -> 1.0
-dqadd7774 add -0.0 1.0 -> 1.0
-dqadd7775 add -1.0 0.0 -> -1.0
-dqadd7776 add -1.0 -0.0 -> -1.0
-dqadd7777 add 1.0 0.0 -> 1.0
-dqadd7778 add 1.0 -0.0 -> 1.0
-
--- Specials
-dqadd7780 add -Inf -Inf -> -Infinity
-dqadd7781 add -Inf -1000 -> -Infinity
-dqadd7782 add -Inf -1 -> -Infinity
-dqadd7783 add -Inf -0 -> -Infinity
-dqadd7784 add -Inf 0 -> -Infinity
-dqadd7785 add -Inf 1 -> -Infinity
-dqadd7786 add -Inf 1000 -> -Infinity
-dqadd7787 add -1000 -Inf -> -Infinity
-dqadd7788 add -Inf -Inf -> -Infinity
-dqadd7789 add -1 -Inf -> -Infinity
-dqadd7790 add -0 -Inf -> -Infinity
-dqadd7791 add 0 -Inf -> -Infinity
-dqadd7792 add 1 -Inf -> -Infinity
-dqadd7793 add 1000 -Inf -> -Infinity
-dqadd7794 add Inf -Inf -> NaN Invalid_operation
-
-dqadd7800 add Inf -Inf -> NaN Invalid_operation
-dqadd7801 add Inf -1000 -> Infinity
-dqadd7802 add Inf -1 -> Infinity
-dqadd7803 add Inf -0 -> Infinity
-dqadd7804 add Inf 0 -> Infinity
-dqadd7805 add Inf 1 -> Infinity
-dqadd7806 add Inf 1000 -> Infinity
-dqadd7807 add Inf Inf -> Infinity
-dqadd7808 add -1000 Inf -> Infinity
-dqadd7809 add -Inf Inf -> NaN Invalid_operation
-dqadd7810 add -1 Inf -> Infinity
-dqadd7811 add -0 Inf -> Infinity
-dqadd7812 add 0 Inf -> Infinity
-dqadd7813 add 1 Inf -> Infinity
-dqadd7814 add 1000 Inf -> Infinity
-dqadd7815 add Inf Inf -> Infinity
-
-dqadd7821 add NaN -Inf -> NaN
-dqadd7822 add NaN -1000 -> NaN
-dqadd7823 add NaN -1 -> NaN
-dqadd7824 add NaN -0 -> NaN
-dqadd7825 add NaN 0 -> NaN
-dqadd7826 add NaN 1 -> NaN
-dqadd7827 add NaN 1000 -> NaN
-dqadd7828 add NaN Inf -> NaN
-dqadd7829 add NaN NaN -> NaN
-dqadd7830 add -Inf NaN -> NaN
-dqadd7831 add -1000 NaN -> NaN
-dqadd7832 add -1 NaN -> NaN
-dqadd7833 add -0 NaN -> NaN
-dqadd7834 add 0 NaN -> NaN
-dqadd7835 add 1 NaN -> NaN
-dqadd7836 add 1000 NaN -> NaN
-dqadd7837 add Inf NaN -> NaN
-
-dqadd7841 add sNaN -Inf -> NaN Invalid_operation
-dqadd7842 add sNaN -1000 -> NaN Invalid_operation
-dqadd7843 add sNaN -1 -> NaN Invalid_operation
-dqadd7844 add sNaN -0 -> NaN Invalid_operation
-dqadd7845 add sNaN 0 -> NaN Invalid_operation
-dqadd7846 add sNaN 1 -> NaN Invalid_operation
-dqadd7847 add sNaN 1000 -> NaN Invalid_operation
-dqadd7848 add sNaN NaN -> NaN Invalid_operation
-dqadd7849 add sNaN sNaN -> NaN Invalid_operation
-dqadd7850 add NaN sNaN -> NaN Invalid_operation
-dqadd7851 add -Inf sNaN -> NaN Invalid_operation
-dqadd7852 add -1000 sNaN -> NaN Invalid_operation
-dqadd7853 add -1 sNaN -> NaN Invalid_operation
-dqadd7854 add -0 sNaN -> NaN Invalid_operation
-dqadd7855 add 0 sNaN -> NaN Invalid_operation
-dqadd7856 add 1 sNaN -> NaN Invalid_operation
-dqadd7857 add 1000 sNaN -> NaN Invalid_operation
-dqadd7858 add Inf sNaN -> NaN Invalid_operation
-dqadd7859 add NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-dqadd7861 add NaN1 -Inf -> NaN1
-dqadd7862 add +NaN2 -1000 -> NaN2
-dqadd7863 add NaN3 1000 -> NaN3
-dqadd7864 add NaN4 Inf -> NaN4
-dqadd7865 add NaN5 +NaN6 -> NaN5
-dqadd7866 add -Inf NaN7 -> NaN7
-dqadd7867 add -1000 NaN8 -> NaN8
-dqadd7868 add 1000 NaN9 -> NaN9
-dqadd7869 add Inf +NaN10 -> NaN10
-dqadd7871 add sNaN11 -Inf -> NaN11 Invalid_operation
-dqadd7872 add sNaN12 -1000 -> NaN12 Invalid_operation
-dqadd7873 add sNaN13 1000 -> NaN13 Invalid_operation
-dqadd7874 add sNaN14 NaN17 -> NaN14 Invalid_operation
-dqadd7875 add sNaN15 sNaN18 -> NaN15 Invalid_operation
-dqadd7876 add NaN16 sNaN19 -> NaN19 Invalid_operation
-dqadd7877 add -Inf +sNaN20 -> NaN20 Invalid_operation
-dqadd7878 add -1000 sNaN21 -> NaN21 Invalid_operation
-dqadd7879 add 1000 sNaN22 -> NaN22 Invalid_operation
-dqadd7880 add Inf sNaN23 -> NaN23 Invalid_operation
-dqadd7881 add +NaN25 +sNaN24 -> NaN24 Invalid_operation
-dqadd7882 add -NaN26 NaN28 -> -NaN26
-dqadd7883 add -sNaN27 sNaN29 -> -NaN27 Invalid_operation
-dqadd7884 add 1000 -NaN30 -> -NaN30
-dqadd7885 add 1000 -sNaN31 -> -NaN31 Invalid_operation
-
--- Here we explore near the boundary of rounding a subnormal to Nmin
-dqadd7575 add 1E-6143 -1E-6176 -> 9.99999999999999999999999999999999E-6144 Subnormal
-dqadd7576 add -1E-6143 +1E-6176 -> -9.99999999999999999999999999999999E-6144 Subnormal
-
--- check overflow edge case
--- 1234567890123456
-dqadd7972 apply 9.999999999999999999999999999999999E+6144 -> 9.999999999999999999999999999999999E+6144
-dqadd7973 add 9.999999999999999999999999999999999E+6144 1 -> 9.999999999999999999999999999999999E+6144 Inexact Rounded
-dqadd7974 add 9999999999999999999999999999999999E+6111 1 -> 9.999999999999999999999999999999999E+6144 Inexact Rounded
-dqadd7975 add 9999999999999999999999999999999999E+6111 1E+6111 -> Infinity Overflow Inexact Rounded
-dqadd7976 add 9999999999999999999999999999999999E+6111 9E+6110 -> Infinity Overflow Inexact Rounded
-dqadd7977 add 9999999999999999999999999999999999E+6111 8E+6110 -> Infinity Overflow Inexact Rounded
-dqadd7978 add 9999999999999999999999999999999999E+6111 7E+6110 -> Infinity Overflow Inexact Rounded
-dqadd7979 add 9999999999999999999999999999999999E+6111 6E+6110 -> Infinity Overflow Inexact Rounded
-dqadd7980 add 9999999999999999999999999999999999E+6111 5E+6110 -> Infinity Overflow Inexact Rounded
-dqadd7981 add 9999999999999999999999999999999999E+6111 4E+6110 -> 9.999999999999999999999999999999999E+6144 Inexact Rounded
-dqadd7982 add 9999999999999999999999999999999999E+6111 3E+6110 -> 9.999999999999999999999999999999999E+6144 Inexact Rounded
-dqadd7983 add 9999999999999999999999999999999999E+6111 2E+6110 -> 9.999999999999999999999999999999999E+6144 Inexact Rounded
-dqadd7984 add 9999999999999999999999999999999999E+6111 1E+6110 -> 9.999999999999999999999999999999999E+6144 Inexact Rounded
-
-dqadd7985 apply -9.999999999999999999999999999999999E+6144 -> -9.999999999999999999999999999999999E+6144
-dqadd7986 add -9.999999999999999999999999999999999E+6144 -1 -> -9.999999999999999999999999999999999E+6144 Inexact Rounded
-dqadd7987 add -9999999999999999999999999999999999E+6111 -1 -> -9.999999999999999999999999999999999E+6144 Inexact Rounded
-dqadd7988 add -9999999999999999999999999999999999E+6111 -1E+6111 -> -Infinity Overflow Inexact Rounded
-dqadd7989 add -9999999999999999999999999999999999E+6111 -9E+6110 -> -Infinity Overflow Inexact Rounded
-dqadd7990 add -9999999999999999999999999999999999E+6111 -8E+6110 -> -Infinity Overflow Inexact Rounded
-dqadd7991 add -9999999999999999999999999999999999E+6111 -7E+6110 -> -Infinity Overflow Inexact Rounded
-dqadd7992 add -9999999999999999999999999999999999E+6111 -6E+6110 -> -Infinity Overflow Inexact Rounded
-dqadd7993 add -9999999999999999999999999999999999E+6111 -5E+6110 -> -Infinity Overflow Inexact Rounded
-dqadd7994 add -9999999999999999999999999999999999E+6111 -4E+6110 -> -9.999999999999999999999999999999999E+6144 Inexact Rounded
-dqadd7995 add -9999999999999999999999999999999999E+6111 -3E+6110 -> -9.999999999999999999999999999999999E+6144 Inexact Rounded
-dqadd7996 add -9999999999999999999999999999999999E+6111 -2E+6110 -> -9.999999999999999999999999999999999E+6144 Inexact Rounded
-dqadd7997 add -9999999999999999999999999999999999E+6111 -1E+6110 -> -9.999999999999999999999999999999999E+6144 Inexact Rounded
-
--- And for round down full and subnormal results
-rounding: down
-dqadd71100 add 1e+2 -1e-6143 -> 99.99999999999999999999999999999999 Rounded Inexact
-dqadd71101 add 1e+1 -1e-6143 -> 9.999999999999999999999999999999999 Rounded Inexact
-dqadd71103 add +1 -1e-6143 -> 0.9999999999999999999999999999999999 Rounded Inexact
-dqadd71104 add 1e-1 -1e-6143 -> 0.09999999999999999999999999999999999 Rounded Inexact
-dqadd71105 add 1e-2 -1e-6143 -> 0.009999999999999999999999999999999999 Rounded Inexact
-dqadd71106 add 1e-3 -1e-6143 -> 0.0009999999999999999999999999999999999 Rounded Inexact
-dqadd71107 add 1e-4 -1e-6143 -> 0.00009999999999999999999999999999999999 Rounded Inexact
-dqadd71108 add 1e-5 -1e-6143 -> 0.000009999999999999999999999999999999999 Rounded Inexact
-dqadd71109 add 1e-6 -1e-6143 -> 9.999999999999999999999999999999999E-7 Rounded Inexact
-
-rounding: ceiling
-dqadd71110 add -1e+2 +1e-6143 -> -99.99999999999999999999999999999999 Rounded Inexact
-dqadd71111 add -1e+1 +1e-6143 -> -9.999999999999999999999999999999999 Rounded Inexact
-dqadd71113 add -1 +1e-6143 -> -0.9999999999999999999999999999999999 Rounded Inexact
-dqadd71114 add -1e-1 +1e-6143 -> -0.09999999999999999999999999999999999 Rounded Inexact
-dqadd71115 add -1e-2 +1e-6143 -> -0.009999999999999999999999999999999999 Rounded Inexact
-dqadd71116 add -1e-3 +1e-6143 -> -0.0009999999999999999999999999999999999 Rounded Inexact
-dqadd71117 add -1e-4 +1e-6143 -> -0.00009999999999999999999999999999999999 Rounded Inexact
-dqadd71118 add -1e-5 +1e-6143 -> -0.000009999999999999999999999999999999999 Rounded Inexact
-dqadd71119 add -1e-6 +1e-6143 -> -9.999999999999999999999999999999999E-7 Rounded Inexact
-
--- tests based on Gunnar Degnbol's edge case
-rounding: half_even
-
-dqadd71300 add 1E34 -0.5 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71310 add 1E34 -0.51 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd71311 add 1E34 -0.501 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd71312 add 1E34 -0.5001 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd71313 add 1E34 -0.50001 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd71314 add 1E34 -0.500001 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd71315 add 1E34 -0.5000001 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd71316 add 1E34 -0.50000001 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd71317 add 1E34 -0.500000001 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd71318 add 1E34 -0.5000000001 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd71319 add 1E34 -0.50000000001 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd71320 add 1E34 -0.500000000001 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd71321 add 1E34 -0.5000000000001 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd71322 add 1E34 -0.50000000000001 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd71323 add 1E34 -0.500000000000001 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd71324 add 1E34 -0.5000000000000001 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd71325 add 1E34 -0.5000000000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71326 add 1E34 -0.500000000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71327 add 1E34 -0.50000000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71328 add 1E34 -0.5000000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71329 add 1E34 -0.500000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71330 add 1E34 -0.50000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71331 add 1E34 -0.5000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71332 add 1E34 -0.500000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71333 add 1E34 -0.50000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71334 add 1E34 -0.5000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71335 add 1E34 -0.500000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71336 add 1E34 -0.50000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71337 add 1E34 -0.5000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71338 add 1E34 -0.500 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71339 add 1E34 -0.50 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-
-dqadd71340 add 1E34 -5000000.000010001 -> 9999999999999999999999999995000000 Inexact Rounded
-dqadd71341 add 1E34 -5000000.000000001 -> 9999999999999999999999999995000000 Inexact Rounded
-
-dqadd71349 add 9999999999999999999999999999999999 0.4 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd71350 add 9999999999999999999999999999999999 0.49 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd71351 add 9999999999999999999999999999999999 0.499 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd71352 add 9999999999999999999999999999999999 0.4999 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd71353 add 9999999999999999999999999999999999 0.49999 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd71354 add 9999999999999999999999999999999999 0.499999 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd71355 add 9999999999999999999999999999999999 0.4999999 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd71356 add 9999999999999999999999999999999999 0.49999999 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd71357 add 9999999999999999999999999999999999 0.499999999 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd71358 add 9999999999999999999999999999999999 0.4999999999 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd71359 add 9999999999999999999999999999999999 0.49999999999 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd71360 add 9999999999999999999999999999999999 0.499999999999 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd71361 add 9999999999999999999999999999999999 0.4999999999999 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd71362 add 9999999999999999999999999999999999 0.49999999999999 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd71363 add 9999999999999999999999999999999999 0.499999999999999 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd71364 add 9999999999999999999999999999999999 0.4999999999999999 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd71365 add 9999999999999999999999999999999999 0.5000000000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71367 add 9999999999999999999999999999999999 0.500000000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71368 add 9999999999999999999999999999999999 0.50000000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71369 add 9999999999999999999999999999999999 0.5000000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71370 add 9999999999999999999999999999999999 0.500000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71371 add 9999999999999999999999999999999999 0.50000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71372 add 9999999999999999999999999999999999 0.5000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71373 add 9999999999999999999999999999999999 0.500000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71374 add 9999999999999999999999999999999999 0.50000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71375 add 9999999999999999999999999999999999 0.5000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71376 add 9999999999999999999999999999999999 0.500000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71377 add 9999999999999999999999999999999999 0.50000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71378 add 9999999999999999999999999999999999 0.5000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71379 add 9999999999999999999999999999999999 0.500 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71380 add 9999999999999999999999999999999999 0.50 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71381 add 9999999999999999999999999999999999 0.5 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71382 add 9999999999999999999999999999999999 0.5000000000000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71383 add 9999999999999999999999999999999999 0.500000000000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71384 add 9999999999999999999999999999999999 0.50000000000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71385 add 9999999999999999999999999999999999 0.5000000000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71386 add 9999999999999999999999999999999999 0.500000000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71387 add 9999999999999999999999999999999999 0.50000000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71388 add 9999999999999999999999999999999999 0.5000000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71389 add 9999999999999999999999999999999999 0.500000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71390 add 9999999999999999999999999999999999 0.50000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71391 add 9999999999999999999999999999999999 0.5000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71392 add 9999999999999999999999999999999999 0.500001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71393 add 9999999999999999999999999999999999 0.50001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71394 add 9999999999999999999999999999999999 0.5001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71395 add 9999999999999999999999999999999999 0.501 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd71396 add 9999999999999999999999999999999999 0.51 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-
--- More GD edge cases, where difference between the unadjusted
--- exponents is larger than the maximum precision and one side is 0
-dqadd71420 add 0 1.123456789987654321123456789012345 -> 1.123456789987654321123456789012345
-dqadd71421 add 0 1.123456789987654321123456789012345E-1 -> 0.1123456789987654321123456789012345
-dqadd71422 add 0 1.123456789987654321123456789012345E-2 -> 0.01123456789987654321123456789012345
-dqadd71423 add 0 1.123456789987654321123456789012345E-3 -> 0.001123456789987654321123456789012345
-dqadd71424 add 0 1.123456789987654321123456789012345E-4 -> 0.0001123456789987654321123456789012345
-dqadd71425 add 0 1.123456789987654321123456789012345E-5 -> 0.00001123456789987654321123456789012345
-dqadd71426 add 0 1.123456789987654321123456789012345E-6 -> 0.000001123456789987654321123456789012345
-dqadd71427 add 0 1.123456789987654321123456789012345E-7 -> 1.123456789987654321123456789012345E-7
-dqadd71428 add 0 1.123456789987654321123456789012345E-8 -> 1.123456789987654321123456789012345E-8
-dqadd71429 add 0 1.123456789987654321123456789012345E-9 -> 1.123456789987654321123456789012345E-9
-dqadd71430 add 0 1.123456789987654321123456789012345E-10 -> 1.123456789987654321123456789012345E-10
-dqadd71431 add 0 1.123456789987654321123456789012345E-11 -> 1.123456789987654321123456789012345E-11
-dqadd71432 add 0 1.123456789987654321123456789012345E-12 -> 1.123456789987654321123456789012345E-12
-dqadd71433 add 0 1.123456789987654321123456789012345E-13 -> 1.123456789987654321123456789012345E-13
-dqadd71434 add 0 1.123456789987654321123456789012345E-14 -> 1.123456789987654321123456789012345E-14
-dqadd71435 add 0 1.123456789987654321123456789012345E-15 -> 1.123456789987654321123456789012345E-15
-dqadd71436 add 0 1.123456789987654321123456789012345E-16 -> 1.123456789987654321123456789012345E-16
-dqadd71437 add 0 1.123456789987654321123456789012345E-17 -> 1.123456789987654321123456789012345E-17
-dqadd71438 add 0 1.123456789987654321123456789012345E-18 -> 1.123456789987654321123456789012345E-18
-dqadd71439 add 0 1.123456789987654321123456789012345E-19 -> 1.123456789987654321123456789012345E-19
-dqadd71440 add 0 1.123456789987654321123456789012345E-20 -> 1.123456789987654321123456789012345E-20
-dqadd71441 add 0 1.123456789987654321123456789012345E-21 -> 1.123456789987654321123456789012345E-21
-dqadd71442 add 0 1.123456789987654321123456789012345E-22 -> 1.123456789987654321123456789012345E-22
-dqadd71443 add 0 1.123456789987654321123456789012345E-23 -> 1.123456789987654321123456789012345E-23
-dqadd71444 add 0 1.123456789987654321123456789012345E-24 -> 1.123456789987654321123456789012345E-24
-dqadd71445 add 0 1.123456789987654321123456789012345E-25 -> 1.123456789987654321123456789012345E-25
-dqadd71446 add 0 1.123456789987654321123456789012345E-26 -> 1.123456789987654321123456789012345E-26
-dqadd71447 add 0 1.123456789987654321123456789012345E-27 -> 1.123456789987654321123456789012345E-27
-dqadd71448 add 0 1.123456789987654321123456789012345E-28 -> 1.123456789987654321123456789012345E-28
-dqadd71449 add 0 1.123456789987654321123456789012345E-29 -> 1.123456789987654321123456789012345E-29
-dqadd71450 add 0 1.123456789987654321123456789012345E-30 -> 1.123456789987654321123456789012345E-30
-dqadd71451 add 0 1.123456789987654321123456789012345E-31 -> 1.123456789987654321123456789012345E-31
-dqadd71452 add 0 1.123456789987654321123456789012345E-32 -> 1.123456789987654321123456789012345E-32
-dqadd71453 add 0 1.123456789987654321123456789012345E-33 -> 1.123456789987654321123456789012345E-33
-dqadd71454 add 0 1.123456789987654321123456789012345E-34 -> 1.123456789987654321123456789012345E-34
-dqadd71455 add 0 1.123456789987654321123456789012345E-35 -> 1.123456789987654321123456789012345E-35
-dqadd71456 add 0 1.123456789987654321123456789012345E-36 -> 1.123456789987654321123456789012345E-36
-
--- same, reversed 0
-dqadd71460 add 1.123456789987654321123456789012345 0 -> 1.123456789987654321123456789012345
-dqadd71461 add 1.123456789987654321123456789012345E-1 0 -> 0.1123456789987654321123456789012345
-dqadd71462 add 1.123456789987654321123456789012345E-2 0 -> 0.01123456789987654321123456789012345
-dqadd71463 add 1.123456789987654321123456789012345E-3 0 -> 0.001123456789987654321123456789012345
-dqadd71464 add 1.123456789987654321123456789012345E-4 0 -> 0.0001123456789987654321123456789012345
-dqadd71465 add 1.123456789987654321123456789012345E-5 0 -> 0.00001123456789987654321123456789012345
-dqadd71466 add 1.123456789987654321123456789012345E-6 0 -> 0.000001123456789987654321123456789012345
-dqadd71467 add 1.123456789987654321123456789012345E-7 0 -> 1.123456789987654321123456789012345E-7
-dqadd71468 add 1.123456789987654321123456789012345E-8 0 -> 1.123456789987654321123456789012345E-8
-dqadd71469 add 1.123456789987654321123456789012345E-9 0 -> 1.123456789987654321123456789012345E-9
-dqadd71470 add 1.123456789987654321123456789012345E-10 0 -> 1.123456789987654321123456789012345E-10
-dqadd71471 add 1.123456789987654321123456789012345E-11 0 -> 1.123456789987654321123456789012345E-11
-dqadd71472 add 1.123456789987654321123456789012345E-12 0 -> 1.123456789987654321123456789012345E-12
-dqadd71473 add 1.123456789987654321123456789012345E-13 0 -> 1.123456789987654321123456789012345E-13
-dqadd71474 add 1.123456789987654321123456789012345E-14 0 -> 1.123456789987654321123456789012345E-14
-dqadd71475 add 1.123456789987654321123456789012345E-15 0 -> 1.123456789987654321123456789012345E-15
-dqadd71476 add 1.123456789987654321123456789012345E-16 0 -> 1.123456789987654321123456789012345E-16
-dqadd71477 add 1.123456789987654321123456789012345E-17 0 -> 1.123456789987654321123456789012345E-17
-dqadd71478 add 1.123456789987654321123456789012345E-18 0 -> 1.123456789987654321123456789012345E-18
-dqadd71479 add 1.123456789987654321123456789012345E-19 0 -> 1.123456789987654321123456789012345E-19
-dqadd71480 add 1.123456789987654321123456789012345E-20 0 -> 1.123456789987654321123456789012345E-20
-dqadd71481 add 1.123456789987654321123456789012345E-21 0 -> 1.123456789987654321123456789012345E-21
-dqadd71482 add 1.123456789987654321123456789012345E-22 0 -> 1.123456789987654321123456789012345E-22
-dqadd71483 add 1.123456789987654321123456789012345E-23 0 -> 1.123456789987654321123456789012345E-23
-dqadd71484 add 1.123456789987654321123456789012345E-24 0 -> 1.123456789987654321123456789012345E-24
-dqadd71485 add 1.123456789987654321123456789012345E-25 0 -> 1.123456789987654321123456789012345E-25
-dqadd71486 add 1.123456789987654321123456789012345E-26 0 -> 1.123456789987654321123456789012345E-26
-dqadd71487 add 1.123456789987654321123456789012345E-27 0 -> 1.123456789987654321123456789012345E-27
-dqadd71488 add 1.123456789987654321123456789012345E-28 0 -> 1.123456789987654321123456789012345E-28
-dqadd71489 add 1.123456789987654321123456789012345E-29 0 -> 1.123456789987654321123456789012345E-29
-dqadd71490 add 1.123456789987654321123456789012345E-30 0 -> 1.123456789987654321123456789012345E-30
-dqadd71491 add 1.123456789987654321123456789012345E-31 0 -> 1.123456789987654321123456789012345E-31
-dqadd71492 add 1.123456789987654321123456789012345E-32 0 -> 1.123456789987654321123456789012345E-32
-dqadd71493 add 1.123456789987654321123456789012345E-33 0 -> 1.123456789987654321123456789012345E-33
-dqadd71494 add 1.123456789987654321123456789012345E-34 0 -> 1.123456789987654321123456789012345E-34
-dqadd71495 add 1.123456789987654321123456789012345E-35 0 -> 1.123456789987654321123456789012345E-35
-dqadd71496 add 1.123456789987654321123456789012345E-36 0 -> 1.123456789987654321123456789012345E-36
-
--- same, Es on the 0
-dqadd71500 add 1.123456789987654321123456789012345 0E-0 -> 1.123456789987654321123456789012345
-dqadd71501 add 1.123456789987654321123456789012345 0E-1 -> 1.123456789987654321123456789012345
-dqadd71502 add 1.123456789987654321123456789012345 0E-2 -> 1.123456789987654321123456789012345
-dqadd71503 add 1.123456789987654321123456789012345 0E-3 -> 1.123456789987654321123456789012345
-dqadd71504 add 1.123456789987654321123456789012345 0E-4 -> 1.123456789987654321123456789012345
-dqadd71505 add 1.123456789987654321123456789012345 0E-5 -> 1.123456789987654321123456789012345
-dqadd71506 add 1.123456789987654321123456789012345 0E-6 -> 1.123456789987654321123456789012345
-dqadd71507 add 1.123456789987654321123456789012345 0E-7 -> 1.123456789987654321123456789012345
-dqadd71508 add 1.123456789987654321123456789012345 0E-8 -> 1.123456789987654321123456789012345
-dqadd71509 add 1.123456789987654321123456789012345 0E-9 -> 1.123456789987654321123456789012345
-dqadd71510 add 1.123456789987654321123456789012345 0E-10 -> 1.123456789987654321123456789012345
-dqadd71511 add 1.123456789987654321123456789012345 0E-11 -> 1.123456789987654321123456789012345
-dqadd71512 add 1.123456789987654321123456789012345 0E-12 -> 1.123456789987654321123456789012345
-dqadd71513 add 1.123456789987654321123456789012345 0E-13 -> 1.123456789987654321123456789012345
-dqadd71514 add 1.123456789987654321123456789012345 0E-14 -> 1.123456789987654321123456789012345
-dqadd71515 add 1.123456789987654321123456789012345 0E-15 -> 1.123456789987654321123456789012345
-dqadd71516 add 1.123456789987654321123456789012345 0E-16 -> 1.123456789987654321123456789012345
-dqadd71517 add 1.123456789987654321123456789012345 0E-17 -> 1.123456789987654321123456789012345
-dqadd71518 add 1.123456789987654321123456789012345 0E-18 -> 1.123456789987654321123456789012345
-dqadd71519 add 1.123456789987654321123456789012345 0E-19 -> 1.123456789987654321123456789012345
-dqadd71520 add 1.123456789987654321123456789012345 0E-20 -> 1.123456789987654321123456789012345
-dqadd71521 add 1.123456789987654321123456789012345 0E-21 -> 1.123456789987654321123456789012345
-dqadd71522 add 1.123456789987654321123456789012345 0E-22 -> 1.123456789987654321123456789012345
-dqadd71523 add 1.123456789987654321123456789012345 0E-23 -> 1.123456789987654321123456789012345
-dqadd71524 add 1.123456789987654321123456789012345 0E-24 -> 1.123456789987654321123456789012345
-dqadd71525 add 1.123456789987654321123456789012345 0E-25 -> 1.123456789987654321123456789012345
-dqadd71526 add 1.123456789987654321123456789012345 0E-26 -> 1.123456789987654321123456789012345
-dqadd71527 add 1.123456789987654321123456789012345 0E-27 -> 1.123456789987654321123456789012345
-dqadd71528 add 1.123456789987654321123456789012345 0E-28 -> 1.123456789987654321123456789012345
-dqadd71529 add 1.123456789987654321123456789012345 0E-29 -> 1.123456789987654321123456789012345
-dqadd71530 add 1.123456789987654321123456789012345 0E-30 -> 1.123456789987654321123456789012345
-dqadd71531 add 1.123456789987654321123456789012345 0E-31 -> 1.123456789987654321123456789012345
-dqadd71532 add 1.123456789987654321123456789012345 0E-32 -> 1.123456789987654321123456789012345
-dqadd71533 add 1.123456789987654321123456789012345 0E-33 -> 1.123456789987654321123456789012345
--- next four flag Rounded because the 0 extends the result
-dqadd71534 add 1.123456789987654321123456789012345 0E-34 -> 1.123456789987654321123456789012345 Rounded
-dqadd71535 add 1.123456789987654321123456789012345 0E-35 -> 1.123456789987654321123456789012345 Rounded
-dqadd71536 add 1.123456789987654321123456789012345 0E-36 -> 1.123456789987654321123456789012345 Rounded
-dqadd71537 add 1.123456789987654321123456789012345 0E-37 -> 1.123456789987654321123456789012345 Rounded
-
--- sum of two opposite-sign operands is exactly 0 and floor => -0
-rounding: half_up
--- exact zeros from zeros
-dqadd71600 add 0 0E-19 -> 0E-19
-dqadd71601 add -0 0E-19 -> 0E-19
-dqadd71602 add 0 -0E-19 -> 0E-19
-dqadd71603 add -0 -0E-19 -> -0E-19
--- exact zeros from non-zeros
-dqadd71611 add -11 11 -> 0
-dqadd71612 add 11 -11 -> 0
-
-rounding: half_down
--- exact zeros from zeros
-dqadd71620 add 0 0E-19 -> 0E-19
-dqadd71621 add -0 0E-19 -> 0E-19
-dqadd71622 add 0 -0E-19 -> 0E-19
-dqadd71623 add -0 -0E-19 -> -0E-19
--- exact zeros from non-zeros
-dqadd71631 add -11 11 -> 0
-dqadd71632 add 11 -11 -> 0
-
-rounding: half_even
--- exact zeros from zeros
-dqadd71640 add 0 0E-19 -> 0E-19
-dqadd71641 add -0 0E-19 -> 0E-19
-dqadd71642 add 0 -0E-19 -> 0E-19
-dqadd71643 add -0 -0E-19 -> -0E-19
--- exact zeros from non-zeros
-dqadd71651 add -11 11 -> 0
-dqadd71652 add 11 -11 -> 0
-
-rounding: up
--- exact zeros from zeros
-dqadd71660 add 0 0E-19 -> 0E-19
-dqadd71661 add -0 0E-19 -> 0E-19
-dqadd71662 add 0 -0E-19 -> 0E-19
-dqadd71663 add -0 -0E-19 -> -0E-19
--- exact zeros from non-zeros
-dqadd71671 add -11 11 -> 0
-dqadd71672 add 11 -11 -> 0
-
-rounding: down
--- exact zeros from zeros
-dqadd71680 add 0 0E-19 -> 0E-19
-dqadd71681 add -0 0E-19 -> 0E-19
-dqadd71682 add 0 -0E-19 -> 0E-19
-dqadd71683 add -0 -0E-19 -> -0E-19
--- exact zeros from non-zeros
-dqadd71691 add -11 11 -> 0
-dqadd71692 add 11 -11 -> 0
-
-rounding: ceiling
--- exact zeros from zeros
-dqadd71700 add 0 0E-19 -> 0E-19
-dqadd71701 add -0 0E-19 -> 0E-19
-dqadd71702 add 0 -0E-19 -> 0E-19
-dqadd71703 add -0 -0E-19 -> -0E-19
--- exact zeros from non-zeros
-dqadd71711 add -11 11 -> 0
-dqadd71712 add 11 -11 -> 0
-
--- and the extra-special ugly case; unusual minuses marked by -- *
-rounding: floor
--- exact zeros from zeros
-dqadd71720 add 0 0E-19 -> 0E-19
-dqadd71721 add -0 0E-19 -> -0E-19 -- *
-dqadd71722 add 0 -0E-19 -> -0E-19 -- *
-dqadd71723 add -0 -0E-19 -> -0E-19
--- exact zeros from non-zeros
-dqadd71731 add -11 11 -> -0 -- *
-dqadd71732 add 11 -11 -> -0 -- *
-
--- Examples from SQL proposal (Krishna Kulkarni)
-dqadd71741 add 130E-2 120E-2 -> 2.50
-dqadd71742 add 130E-2 12E-1 -> 2.50
-dqadd71743 add 130E-2 1E0 -> 2.30
-dqadd71744 add 1E2 1E4 -> 1.01E+4
-dqadd71745 add 130E-2 -120E-2 -> 0.10
-dqadd71746 add 130E-2 -12E-1 -> 0.10
-dqadd71747 add 130E-2 -1E0 -> 0.30
-dqadd71748 add 1E2 -1E4 -> -9.9E+3
-
--- Gappy coefficients; check residue handling even with full coefficient gap
-rounding: half_even
-
-dqadd75001 add 1239876543211234567894567890123456 1 -> 1239876543211234567894567890123457
-dqadd75002 add 1239876543211234567894567890123456 0.6 -> 1239876543211234567894567890123457 Inexact Rounded
-dqadd75003 add 1239876543211234567894567890123456 0.06 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd75004 add 1239876543211234567894567890123456 6E-3 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd75005 add 1239876543211234567894567890123456 6E-4 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd75006 add 1239876543211234567894567890123456 6E-5 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd75007 add 1239876543211234567894567890123456 6E-6 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd75008 add 1239876543211234567894567890123456 6E-7 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd75009 add 1239876543211234567894567890123456 6E-8 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd75010 add 1239876543211234567894567890123456 6E-9 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd75011 add 1239876543211234567894567890123456 6E-10 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd75012 add 1239876543211234567894567890123456 6E-11 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd75013 add 1239876543211234567894567890123456 6E-12 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd75014 add 1239876543211234567894567890123456 6E-13 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd75015 add 1239876543211234567894567890123456 6E-14 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd75016 add 1239876543211234567894567890123456 6E-15 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd75017 add 1239876543211234567894567890123456 6E-16 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd75018 add 1239876543211234567894567890123456 6E-17 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd75019 add 1239876543211234567894567890123456 6E-18 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd75020 add 1239876543211234567894567890123456 6E-19 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd75021 add 1239876543211234567894567890123456 6E-20 -> 1239876543211234567894567890123456 Inexact Rounded
-
--- widening second argument at gap
-dqadd75030 add 12398765432112345678945678 1 -> 12398765432112345678945679
-dqadd75031 add 12398765432112345678945678 0.1 -> 12398765432112345678945678.1
-dqadd75032 add 12398765432112345678945678 0.12 -> 12398765432112345678945678.12
-dqadd75033 add 12398765432112345678945678 0.123 -> 12398765432112345678945678.123
-dqadd75034 add 12398765432112345678945678 0.1234 -> 12398765432112345678945678.1234
-dqadd75035 add 12398765432112345678945678 0.12345 -> 12398765432112345678945678.12345
-dqadd75036 add 12398765432112345678945678 0.123456 -> 12398765432112345678945678.123456
-dqadd75037 add 12398765432112345678945678 0.1234567 -> 12398765432112345678945678.1234567
-dqadd75038 add 12398765432112345678945678 0.12345678 -> 12398765432112345678945678.12345678
-dqadd75039 add 12398765432112345678945678 0.123456789 -> 12398765432112345678945678.12345679 Inexact Rounded
-dqadd75040 add 12398765432112345678945678 0.123456785 -> 12398765432112345678945678.12345678 Inexact Rounded
-dqadd75041 add 12398765432112345678945678 0.1234567850 -> 12398765432112345678945678.12345678 Inexact Rounded
-dqadd75042 add 12398765432112345678945678 0.1234567851 -> 12398765432112345678945678.12345679 Inexact Rounded
-dqadd75043 add 12398765432112345678945678 0.12345678501 -> 12398765432112345678945678.12345679 Inexact Rounded
-dqadd75044 add 12398765432112345678945678 0.123456785001 -> 12398765432112345678945678.12345679 Inexact Rounded
-dqadd75045 add 12398765432112345678945678 0.1234567850001 -> 12398765432112345678945678.12345679 Inexact Rounded
-dqadd75046 add 12398765432112345678945678 0.12345678500001 -> 12398765432112345678945678.12345679 Inexact Rounded
-dqadd75047 add 12398765432112345678945678 0.123456785000001 -> 12398765432112345678945678.12345679 Inexact Rounded
-dqadd75048 add 12398765432112345678945678 0.1234567850000001 -> 12398765432112345678945678.12345679 Inexact Rounded
-dqadd75049 add 12398765432112345678945678 0.1234567850000000 -> 12398765432112345678945678.12345678 Inexact Rounded
--- 90123456
-rounding: half_even
-dqadd75050 add 12398765432112345678945678 0.0234567750000000 -> 12398765432112345678945678.02345678 Inexact Rounded
-dqadd75051 add 12398765432112345678945678 0.0034567750000000 -> 12398765432112345678945678.00345678 Inexact Rounded
-dqadd75052 add 12398765432112345678945678 0.0004567750000000 -> 12398765432112345678945678.00045678 Inexact Rounded
-dqadd75053 add 12398765432112345678945678 0.0000567750000000 -> 12398765432112345678945678.00005678 Inexact Rounded
-dqadd75054 add 12398765432112345678945678 0.0000067750000000 -> 12398765432112345678945678.00000678 Inexact Rounded
-dqadd75055 add 12398765432112345678945678 0.0000007750000000 -> 12398765432112345678945678.00000078 Inexact Rounded
-dqadd75056 add 12398765432112345678945678 0.0000000750000000 -> 12398765432112345678945678.00000008 Inexact Rounded
-dqadd75057 add 12398765432112345678945678 0.0000000050000000 -> 12398765432112345678945678.00000000 Inexact Rounded
-dqadd75060 add 12398765432112345678945678 0.0234567750000001 -> 12398765432112345678945678.02345678 Inexact Rounded
-dqadd75061 add 12398765432112345678945678 0.0034567750000001 -> 12398765432112345678945678.00345678 Inexact Rounded
-dqadd75062 add 12398765432112345678945678 0.0004567750000001 -> 12398765432112345678945678.00045678 Inexact Rounded
-dqadd75063 add 12398765432112345678945678 0.0000567750000001 -> 12398765432112345678945678.00005678 Inexact Rounded
-dqadd75064 add 12398765432112345678945678 0.0000067750000001 -> 12398765432112345678945678.00000678 Inexact Rounded
-dqadd75065 add 12398765432112345678945678 0.0000007750000001 -> 12398765432112345678945678.00000078 Inexact Rounded
-dqadd75066 add 12398765432112345678945678 0.0000000750000001 -> 12398765432112345678945678.00000008 Inexact Rounded
-dqadd75067 add 12398765432112345678945678 0.0000000050000001 -> 12398765432112345678945678.00000001 Inexact Rounded
--- far-out residues (full coefficient gap is 16+15 digits)
-rounding: up
-dqadd75070 add 12398765432112345678945678 1E-8 -> 12398765432112345678945678.00000001
-dqadd75071 add 12398765432112345678945678 1E-9 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd75072 add 12398765432112345678945678 1E-10 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd75073 add 12398765432112345678945678 1E-11 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd75074 add 12398765432112345678945678 1E-12 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd75075 add 12398765432112345678945678 1E-13 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd75076 add 12398765432112345678945678 1E-14 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd75077 add 12398765432112345678945678 1E-15 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd75078 add 12398765432112345678945678 1E-16 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd75079 add 12398765432112345678945678 1E-17 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd75080 add 12398765432112345678945678 1E-18 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd75081 add 12398765432112345678945678 1E-19 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd75082 add 12398765432112345678945678 1E-20 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd75083 add 12398765432112345678945678 1E-25 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd75084 add 12398765432112345678945678 1E-30 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd75085 add 12398765432112345678945678 1E-31 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd75086 add 12398765432112345678945678 1E-32 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd75087 add 12398765432112345678945678 1E-33 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd75088 add 12398765432112345678945678 1E-34 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd75089 add 12398765432112345678945678 1E-35 -> 12398765432112345678945678.00000001 Inexact Rounded
-
--- Null tests
-dqadd9990 add 10 # -> NaN Invalid_operation
-dqadd9991 add # 10 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- dqAdd.decTest -- decQuad addition -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- This set of tests are for decQuads only; all arguments are +-- representable in a decQuad +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +-- [first group are 'quick confidence check'] +dqadd001 add 1 1 -> 2 +dqadd002 add 2 3 -> 5 +dqadd003 add '5.75' '3.3' -> 9.05 +dqadd004 add '5' '-3' -> 2 +dqadd005 add '-5' '-3' -> -8 +dqadd006 add '-7' '2.5' -> -4.5 +dqadd007 add '0.7' '0.3' -> 1.0 +dqadd008 add '1.25' '1.25' -> 2.50 +dqadd009 add '1.23456789' '1.00000000' -> '2.23456789' +dqadd010 add '1.23456789' '1.00000011' -> '2.23456800' + +-- 1234567890123456 1234567890123456 +dqadd011 add '0.4444444444444444444444444444444446' '0.5555555555555555555555555555555555' -> '1.000000000000000000000000000000000' Inexact Rounded +dqadd012 add '0.4444444444444444444444444444444445' '0.5555555555555555555555555555555555' -> '1.000000000000000000000000000000000' Rounded +dqadd013 add '0.4444444444444444444444444444444444' '0.5555555555555555555555555555555555' -> '0.9999999999999999999999999999999999' +dqadd014 add '4444444444444444444444444444444444' '0.49' -> '4444444444444444444444444444444444' Inexact Rounded +dqadd015 add '4444444444444444444444444444444444' '0.499' -> '4444444444444444444444444444444444' Inexact Rounded +dqadd016 add '4444444444444444444444444444444444' '0.4999' -> '4444444444444444444444444444444444' Inexact Rounded +dqadd017 add '4444444444444444444444444444444444' '0.5000' -> '4444444444444444444444444444444444' Inexact Rounded +dqadd018 add '4444444444444444444444444444444444' '0.5001' -> '4444444444444444444444444444444445' Inexact Rounded +dqadd019 add '4444444444444444444444444444444444' '0.501' -> '4444444444444444444444444444444445' Inexact Rounded +dqadd020 add '4444444444444444444444444444444444' '0.51' -> '4444444444444444444444444444444445' Inexact Rounded + +dqadd021 add 0 1 -> 1 +dqadd022 add 1 1 -> 2 +dqadd023 add 2 1 -> 3 +dqadd024 add 3 1 -> 4 +dqadd025 add 4 1 -> 5 +dqadd026 add 5 1 -> 6 +dqadd027 add 6 1 -> 7 +dqadd028 add 7 1 -> 8 +dqadd029 add 8 1 -> 9 +dqadd030 add 9 1 -> 10 + +-- some carrying effects +dqadd031 add '0.9998' '0.0000' -> '0.9998' +dqadd032 add '0.9998' '0.0001' -> '0.9999' +dqadd033 add '0.9998' '0.0002' -> '1.0000' +dqadd034 add '0.9998' '0.0003' -> '1.0001' + +dqadd035 add '70' '10000e+34' -> '1.000000000000000000000000000000000E+38' Inexact Rounded +dqadd036 add '700' '10000e+34' -> '1.000000000000000000000000000000000E+38' Inexact Rounded +dqadd037 add '7000' '10000e+34' -> '1.000000000000000000000000000000000E+38' Inexact Rounded +dqadd038 add '70000' '10000e+34' -> '1.000000000000000000000000000000001E+38' Inexact Rounded +dqadd039 add '700000' '10000e+34' -> '1.000000000000000000000000000000007E+38' Rounded + +-- symmetry: +dqadd040 add '10000e+34' '70' -> '1.000000000000000000000000000000000E+38' Inexact Rounded +dqadd041 add '10000e+34' '700' -> '1.000000000000000000000000000000000E+38' Inexact Rounded +dqadd042 add '10000e+34' '7000' -> '1.000000000000000000000000000000000E+38' Inexact Rounded +dqadd044 add '10000e+34' '70000' -> '1.000000000000000000000000000000001E+38' Inexact Rounded +dqadd045 add '10000e+34' '700000' -> '1.000000000000000000000000000000007E+38' Rounded + +-- same, without rounding +dqadd046 add '10000e+9' '7' -> '10000000000007' +dqadd047 add '10000e+9' '70' -> '10000000000070' +dqadd048 add '10000e+9' '700' -> '10000000000700' +dqadd049 add '10000e+9' '7000' -> '10000000007000' +dqadd050 add '10000e+9' '70000' -> '10000000070000' +dqadd051 add '10000e+9' '700000' -> '10000000700000' +dqadd052 add '10000e+9' '7000000' -> '10000007000000' + +-- examples from decarith +dqadd053 add '12' '7.00' -> '19.00' +dqadd054 add '1.3' '-1.07' -> '0.23' +dqadd055 add '1.3' '-1.30' -> '0.00' +dqadd056 add '1.3' '-2.07' -> '-0.77' +dqadd057 add '1E+2' '1E+4' -> '1.01E+4' + +-- leading zero preservation +dqadd061 add 1 '0.0001' -> '1.0001' +dqadd062 add 1 '0.00001' -> '1.00001' +dqadd063 add 1 '0.000001' -> '1.000001' +dqadd064 add 1 '0.0000001' -> '1.0000001' +dqadd065 add 1 '0.00000001' -> '1.00000001' + +-- some funny zeros [in case of bad signum] +dqadd070 add 1 0 -> 1 +dqadd071 add 1 0. -> 1 +dqadd072 add 1 .0 -> 1.0 +dqadd073 add 1 0.0 -> 1.0 +dqadd074 add 1 0.00 -> 1.00 +dqadd075 add 0 1 -> 1 +dqadd076 add 0. 1 -> 1 +dqadd077 add .0 1 -> 1.0 +dqadd078 add 0.0 1 -> 1.0 +dqadd079 add 0.00 1 -> 1.00 + +-- some carries +dqadd080 add 999999998 1 -> 999999999 +dqadd081 add 999999999 1 -> 1000000000 +dqadd082 add 99999999 1 -> 100000000 +dqadd083 add 9999999 1 -> 10000000 +dqadd084 add 999999 1 -> 1000000 +dqadd085 add 99999 1 -> 100000 +dqadd086 add 9999 1 -> 10000 +dqadd087 add 999 1 -> 1000 +dqadd088 add 99 1 -> 100 +dqadd089 add 9 1 -> 10 + + +-- more LHS swaps +dqadd090 add '-56267E-10' 0 -> '-0.0000056267' +dqadd091 add '-56267E-6' 0 -> '-0.056267' +dqadd092 add '-56267E-5' 0 -> '-0.56267' +dqadd093 add '-56267E-4' 0 -> '-5.6267' +dqadd094 add '-56267E-3' 0 -> '-56.267' +dqadd095 add '-56267E-2' 0 -> '-562.67' +dqadd096 add '-56267E-1' 0 -> '-5626.7' +dqadd097 add '-56267E-0' 0 -> '-56267' +dqadd098 add '-5E-10' 0 -> '-5E-10' +dqadd099 add '-5E-7' 0 -> '-5E-7' +dqadd100 add '-5E-6' 0 -> '-0.000005' +dqadd101 add '-5E-5' 0 -> '-0.00005' +dqadd102 add '-5E-4' 0 -> '-0.0005' +dqadd103 add '-5E-1' 0 -> '-0.5' +dqadd104 add '-5E0' 0 -> '-5' +dqadd105 add '-5E1' 0 -> '-50' +dqadd106 add '-5E5' 0 -> '-500000' +dqadd107 add '-5E33' 0 -> '-5000000000000000000000000000000000' +dqadd108 add '-5E34' 0 -> '-5.000000000000000000000000000000000E+34' Rounded +dqadd109 add '-5E35' 0 -> '-5.000000000000000000000000000000000E+35' Rounded +dqadd110 add '-5E36' 0 -> '-5.000000000000000000000000000000000E+36' Rounded +dqadd111 add '-5E100' 0 -> '-5.000000000000000000000000000000000E+100' Rounded + +-- more RHS swaps +dqadd113 add 0 '-56267E-10' -> '-0.0000056267' +dqadd114 add 0 '-56267E-6' -> '-0.056267' +dqadd116 add 0 '-56267E-5' -> '-0.56267' +dqadd117 add 0 '-56267E-4' -> '-5.6267' +dqadd119 add 0 '-56267E-3' -> '-56.267' +dqadd120 add 0 '-56267E-2' -> '-562.67' +dqadd121 add 0 '-56267E-1' -> '-5626.7' +dqadd122 add 0 '-56267E-0' -> '-56267' +dqadd123 add 0 '-5E-10' -> '-5E-10' +dqadd124 add 0 '-5E-7' -> '-5E-7' +dqadd125 add 0 '-5E-6' -> '-0.000005' +dqadd126 add 0 '-5E-5' -> '-0.00005' +dqadd127 add 0 '-5E-4' -> '-0.0005' +dqadd128 add 0 '-5E-1' -> '-0.5' +dqadd129 add 0 '-5E0' -> '-5' +dqadd130 add 0 '-5E1' -> '-50' +dqadd131 add 0 '-5E5' -> '-500000' +dqadd132 add 0 '-5E33' -> '-5000000000000000000000000000000000' +dqadd133 add 0 '-5E34' -> '-5.000000000000000000000000000000000E+34' Rounded +dqadd134 add 0 '-5E35' -> '-5.000000000000000000000000000000000E+35' Rounded +dqadd135 add 0 '-5E36' -> '-5.000000000000000000000000000000000E+36' Rounded +dqadd136 add 0 '-5E100' -> '-5.000000000000000000000000000000000E+100' Rounded + +-- related +dqadd137 add 1 '0E-39' -> '1.000000000000000000000000000000000' Rounded +dqadd138 add -1 '0E-39' -> '-1.000000000000000000000000000000000' Rounded +dqadd139 add '0E-39' 1 -> '1.000000000000000000000000000000000' Rounded +dqadd140 add '0E-39' -1 -> '-1.000000000000000000000000000000000' Rounded +dqadd141 add 1E+29 0.0000 -> '100000000000000000000000000000.0000' +dqadd142 add 1E+29 0.00000 -> '100000000000000000000000000000.0000' Rounded +dqadd143 add 0.000 1E+30 -> '1000000000000000000000000000000.000' +dqadd144 add 0.0000 1E+30 -> '1000000000000000000000000000000.000' Rounded + +-- [some of the next group are really constructor tests] +dqadd146 add '00.0' 0 -> '0.0' +dqadd147 add '0.00' 0 -> '0.00' +dqadd148 add 0 '0.00' -> '0.00' +dqadd149 add 0 '00.0' -> '0.0' +dqadd150 add '00.0' '0.00' -> '0.00' +dqadd151 add '0.00' '00.0' -> '0.00' +dqadd152 add '3' '.3' -> '3.3' +dqadd153 add '3.' '.3' -> '3.3' +dqadd154 add '3.0' '.3' -> '3.3' +dqadd155 add '3.00' '.3' -> '3.30' +dqadd156 add '3' '3' -> '6' +dqadd157 add '3' '+3' -> '6' +dqadd158 add '3' '-3' -> '0' +dqadd159 add '0.3' '-0.3' -> '0.0' +dqadd160 add '0.03' '-0.03' -> '0.00' + +-- try borderline precision, with carries, etc. +dqadd161 add '1E+12' '-1' -> '999999999999' +dqadd162 add '1E+12' '1.11' -> '1000000000001.11' +dqadd163 add '1.11' '1E+12' -> '1000000000001.11' +dqadd164 add '-1' '1E+12' -> '999999999999' +dqadd165 add '7E+12' '-1' -> '6999999999999' +dqadd166 add '7E+12' '1.11' -> '7000000000001.11' +dqadd167 add '1.11' '7E+12' -> '7000000000001.11' +dqadd168 add '-1' '7E+12' -> '6999999999999' + +rounding: half_up +dqadd170 add '4.444444444444444444444444444444444' '0.5555555555555555555555555555555567' -> '5.000000000000000000000000000000001' Inexact Rounded +dqadd171 add '4.444444444444444444444444444444444' '0.5555555555555555555555555555555566' -> '5.000000000000000000000000000000001' Inexact Rounded +dqadd172 add '4.444444444444444444444444444444444' '0.5555555555555555555555555555555565' -> '5.000000000000000000000000000000001' Inexact Rounded +dqadd173 add '4.444444444444444444444444444444444' '0.5555555555555555555555555555555564' -> '5.000000000000000000000000000000000' Inexact Rounded +dqadd174 add '4.444444444444444444444444444444444' '0.5555555555555555555555555555555553' -> '4.999999999999999999999999999999999' Inexact Rounded +dqadd175 add '4.444444444444444444444444444444444' '0.5555555555555555555555555555555552' -> '4.999999999999999999999999999999999' Inexact Rounded +dqadd176 add '4.444444444444444444444444444444444' '0.5555555555555555555555555555555551' -> '4.999999999999999999999999999999999' Inexact Rounded +dqadd177 add '4.444444444444444444444444444444444' '0.5555555555555555555555555555555550' -> '4.999999999999999999999999999999999' Rounded +dqadd178 add '4.444444444444444444444444444444444' '0.5555555555555555555555555555555545' -> '4.999999999999999999999999999999999' Inexact Rounded +dqadd179 add '4.444444444444444444444444444444444' '0.5555555555555555555555555555555544' -> '4.999999999999999999999999999999998' Inexact Rounded +dqadd180 add '4.444444444444444444444444444444444' '0.5555555555555555555555555555555543' -> '4.999999999999999999999999999999998' Inexact Rounded +dqadd181 add '4.444444444444444444444444444444444' '0.5555555555555555555555555555555542' -> '4.999999999999999999999999999999998' Inexact Rounded +dqadd182 add '4.444444444444444444444444444444444' '0.5555555555555555555555555555555541' -> '4.999999999999999999999999999999998' Inexact Rounded +dqadd183 add '4.444444444444444444444444444444444' '0.5555555555555555555555555555555540' -> '4.999999999999999999999999999999998' Rounded + +-- and some more, including residue effects and different roundings +rounding: half_up +dqadd200 add '1231234567890123456784560123456789' 0 -> '1231234567890123456784560123456789' +dqadd201 add '1231234567890123456784560123456789' 0.000000001 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd202 add '1231234567890123456784560123456789' 0.000001 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd203 add '1231234567890123456784560123456789' 0.1 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd204 add '1231234567890123456784560123456789' 0.4 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd205 add '1231234567890123456784560123456789' 0.49 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd206 add '1231234567890123456784560123456789' 0.499999 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd207 add '1231234567890123456784560123456789' 0.499999999 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd208 add '1231234567890123456784560123456789' 0.5 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd209 add '1231234567890123456784560123456789' 0.500000001 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd210 add '1231234567890123456784560123456789' 0.500001 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd211 add '1231234567890123456784560123456789' 0.51 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd212 add '1231234567890123456784560123456789' 0.6 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd213 add '1231234567890123456784560123456789' 0.9 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd214 add '1231234567890123456784560123456789' 0.99999 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd215 add '1231234567890123456784560123456789' 0.999999999 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd216 add '1231234567890123456784560123456789' 1 -> '1231234567890123456784560123456790' +dqadd217 add '1231234567890123456784560123456789' 1.000000001 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd218 add '1231234567890123456784560123456789' 1.00001 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd219 add '1231234567890123456784560123456789' 1.1 -> '1231234567890123456784560123456790' Inexact Rounded + +rounding: half_even +dqadd220 add '1231234567890123456784560123456789' 0 -> '1231234567890123456784560123456789' +dqadd221 add '1231234567890123456784560123456789' 0.000000001 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd222 add '1231234567890123456784560123456789' 0.000001 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd223 add '1231234567890123456784560123456789' 0.1 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd224 add '1231234567890123456784560123456789' 0.4 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd225 add '1231234567890123456784560123456789' 0.49 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd226 add '1231234567890123456784560123456789' 0.499999 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd227 add '1231234567890123456784560123456789' 0.499999999 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd228 add '1231234567890123456784560123456789' 0.5 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd229 add '1231234567890123456784560123456789' 0.500000001 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd230 add '1231234567890123456784560123456789' 0.500001 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd231 add '1231234567890123456784560123456789' 0.51 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd232 add '1231234567890123456784560123456789' 0.6 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd233 add '1231234567890123456784560123456789' 0.9 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd234 add '1231234567890123456784560123456789' 0.99999 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd235 add '1231234567890123456784560123456789' 0.999999999 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd236 add '1231234567890123456784560123456789' 1 -> '1231234567890123456784560123456790' +dqadd237 add '1231234567890123456784560123456789' 1.00000001 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd238 add '1231234567890123456784560123456789' 1.00001 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd239 add '1231234567890123456784560123456789' 1.1 -> '1231234567890123456784560123456790' Inexact Rounded +-- critical few with even bottom digit... +dqadd240 add '1231234567890123456784560123456788' 0.499999999 -> '1231234567890123456784560123456788' Inexact Rounded +dqadd241 add '1231234567890123456784560123456788' 0.5 -> '1231234567890123456784560123456788' Inexact Rounded +dqadd242 add '1231234567890123456784560123456788' 0.500000001 -> '1231234567890123456784560123456789' Inexact Rounded + +rounding: down +dqadd250 add '1231234567890123456784560123456789' 0 -> '1231234567890123456784560123456789' +dqadd251 add '1231234567890123456784560123456789' 0.000000001 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd252 add '1231234567890123456784560123456789' 0.000001 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd253 add '1231234567890123456784560123456789' 0.1 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd254 add '1231234567890123456784560123456789' 0.4 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd255 add '1231234567890123456784560123456789' 0.49 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd256 add '1231234567890123456784560123456789' 0.499999 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd257 add '1231234567890123456784560123456789' 0.499999999 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd258 add '1231234567890123456784560123456789' 0.5 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd259 add '1231234567890123456784560123456789' 0.500000001 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd260 add '1231234567890123456784560123456789' 0.500001 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd261 add '1231234567890123456784560123456789' 0.51 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd262 add '1231234567890123456784560123456789' 0.6 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd263 add '1231234567890123456784560123456789' 0.9 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd264 add '1231234567890123456784560123456789' 0.99999 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd265 add '1231234567890123456784560123456789' 0.999999999 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd266 add '1231234567890123456784560123456789' 1 -> '1231234567890123456784560123456790' +dqadd267 add '1231234567890123456784560123456789' 1.00000001 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd268 add '1231234567890123456784560123456789' 1.00001 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd269 add '1231234567890123456784560123456789' 1.1 -> '1231234567890123456784560123456790' Inexact Rounded + +-- 1 in last place tests +rounding: half_up +dqadd301 add -1 1 -> 0 +dqadd302 add 0 1 -> 1 +dqadd303 add 1 1 -> 2 +dqadd304 add 12 1 -> 13 +dqadd305 add 98 1 -> 99 +dqadd306 add 99 1 -> 100 +dqadd307 add 100 1 -> 101 +dqadd308 add 101 1 -> 102 +dqadd309 add -1 -1 -> -2 +dqadd310 add 0 -1 -> -1 +dqadd311 add 1 -1 -> 0 +dqadd312 add 12 -1 -> 11 +dqadd313 add 98 -1 -> 97 +dqadd314 add 99 -1 -> 98 +dqadd315 add 100 -1 -> 99 +dqadd316 add 101 -1 -> 100 + +dqadd321 add -0.01 0.01 -> 0.00 +dqadd322 add 0.00 0.01 -> 0.01 +dqadd323 add 0.01 0.01 -> 0.02 +dqadd324 add 0.12 0.01 -> 0.13 +dqadd325 add 0.98 0.01 -> 0.99 +dqadd326 add 0.99 0.01 -> 1.00 +dqadd327 add 1.00 0.01 -> 1.01 +dqadd328 add 1.01 0.01 -> 1.02 +dqadd329 add -0.01 -0.01 -> -0.02 +dqadd330 add 0.00 -0.01 -> -0.01 +dqadd331 add 0.01 -0.01 -> 0.00 +dqadd332 add 0.12 -0.01 -> 0.11 +dqadd333 add 0.98 -0.01 -> 0.97 +dqadd334 add 0.99 -0.01 -> 0.98 +dqadd335 add 1.00 -0.01 -> 0.99 +dqadd336 add 1.01 -0.01 -> 1.00 + +-- some more cases where adding 0 affects the coefficient +dqadd340 add 1E+3 0 -> 1000 +dqadd341 add 1E+33 0 -> 1000000000000000000000000000000000 +dqadd342 add 1E+34 0 -> 1.000000000000000000000000000000000E+34 Rounded +dqadd343 add 1E+35 0 -> 1.000000000000000000000000000000000E+35 Rounded +-- which simply follow from these cases ... +dqadd344 add 1E+3 1 -> 1001 +dqadd345 add 1E+33 1 -> 1000000000000000000000000000000001 +dqadd346 add 1E+34 1 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd347 add 1E+35 1 -> 1.000000000000000000000000000000000E+35 Inexact Rounded +dqadd348 add 1E+3 7 -> 1007 +dqadd349 add 1E+33 7 -> 1000000000000000000000000000000007 +dqadd350 add 1E+34 7 -> 1.000000000000000000000000000000001E+34 Inexact Rounded +dqadd351 add 1E+35 7 -> 1.000000000000000000000000000000000E+35 Inexact Rounded + +-- tryzeros cases +rounding: half_up +dqadd360 add 0E+50 10000E+1 -> 1.0000E+5 +dqadd361 add 0E-50 10000E+1 -> 100000.0000000000000000000000000000 Rounded +dqadd362 add 10000E+1 0E-50 -> 100000.0000000000000000000000000000 Rounded +dqadd363 add 10000E+1 10000E-50 -> 100000.0000000000000000000000000000 Rounded Inexact +dqadd364 add 9.999999999999999999999999999999999E+6144 -9.999999999999999999999999999999999E+6144 -> 0E+6111 +-- 1 234567890123456789012345678901234 + +-- a curiosity from JSR 13 testing +rounding: half_down +dqadd370 add 999999999999999999999999999999999 815 -> 1000000000000000000000000000000814 +dqadd371 add 9999999999999999999999999999999999 815 -> 1.000000000000000000000000000000081E+34 Rounded Inexact +rounding: half_up +dqadd372 add 999999999999999999999999999999999 815 -> 1000000000000000000000000000000814 +dqadd373 add 9999999999999999999999999999999999 815 -> 1.000000000000000000000000000000081E+34 Rounded Inexact +rounding: half_even +dqadd374 add 999999999999999999999999999999999 815 -> 1000000000000000000000000000000814 +dqadd375 add 9999999999999999999999999999999999 815 -> 1.000000000000000000000000000000081E+34 Rounded Inexact + +-- ulp replacement tests +dqadd400 add 1 77e-32 -> 1.00000000000000000000000000000077 +dqadd401 add 1 77e-33 -> 1.000000000000000000000000000000077 +dqadd402 add 1 77e-34 -> 1.000000000000000000000000000000008 Inexact Rounded +dqadd403 add 1 77e-35 -> 1.000000000000000000000000000000001 Inexact Rounded +dqadd404 add 1 77e-36 -> 1.000000000000000000000000000000000 Inexact Rounded +dqadd405 add 1 77e-37 -> 1.000000000000000000000000000000000 Inexact Rounded +dqadd406 add 1 77e-299 -> 1.000000000000000000000000000000000 Inexact Rounded + +dqadd410 add 10 77e-32 -> 10.00000000000000000000000000000077 +dqadd411 add 10 77e-33 -> 10.00000000000000000000000000000008 Inexact Rounded +dqadd412 add 10 77e-34 -> 10.00000000000000000000000000000001 Inexact Rounded +dqadd413 add 10 77e-35 -> 10.00000000000000000000000000000000 Inexact Rounded +dqadd414 add 10 77e-36 -> 10.00000000000000000000000000000000 Inexact Rounded +dqadd415 add 10 77e-37 -> 10.00000000000000000000000000000000 Inexact Rounded +dqadd416 add 10 77e-299 -> 10.00000000000000000000000000000000 Inexact Rounded + +dqadd420 add 77e-32 1 -> 1.00000000000000000000000000000077 +dqadd421 add 77e-33 1 -> 1.000000000000000000000000000000077 +dqadd422 add 77e-34 1 -> 1.000000000000000000000000000000008 Inexact Rounded +dqadd423 add 77e-35 1 -> 1.000000000000000000000000000000001 Inexact Rounded +dqadd424 add 77e-36 1 -> 1.000000000000000000000000000000000 Inexact Rounded +dqadd425 add 77e-37 1 -> 1.000000000000000000000000000000000 Inexact Rounded +dqadd426 add 77e-299 1 -> 1.000000000000000000000000000000000 Inexact Rounded + +dqadd430 add 77e-32 10 -> 10.00000000000000000000000000000077 +dqadd431 add 77e-33 10 -> 10.00000000000000000000000000000008 Inexact Rounded +dqadd432 add 77e-34 10 -> 10.00000000000000000000000000000001 Inexact Rounded +dqadd433 add 77e-35 10 -> 10.00000000000000000000000000000000 Inexact Rounded +dqadd434 add 77e-36 10 -> 10.00000000000000000000000000000000 Inexact Rounded +dqadd435 add 77e-37 10 -> 10.00000000000000000000000000000000 Inexact Rounded +dqadd436 add 77e-299 10 -> 10.00000000000000000000000000000000 Inexact Rounded + +-- fastpath boundaries +-- 1234567890123456789012345678901234 +dqadd501 add '4444444444444444444444444444444444' '5555555555555555555555555555555555' -> '9999999999999999999999999999999999' +dqadd502 add '4444444444444444444444444444444444' '4555555555555555555555555555555555' -> '8999999999999999999999999999999999' +dqadd503 add '4444444444444444444444444444444444' '3555555555555555555055555555555555' -> '7999999999999999999499999999999999' +dqadd504 add '4444444444444444444444444444444444' '3955555555555555555555555555555555' -> '8399999999999999999999999999999999' +dqadd505 add '4444444444444444444444444444444444' '4955555555555555555555555555555555' -> '9399999999999999999999999999999999' +dqadd506 add '4444444444444444444444444444444444' '5955555555555555555555555555555555' -> 1.040000000000000000000000000000000E+34 Inexact Rounded +dqadd511 add '344444444444444444444444444444444' '555555555555555555555555555555555' -> '899999999999999999999999999999999' +dqadd512 add '34444444444444444444444444444444' '55555555555555555555555555555555' -> '89999999999999999999999999999999' +dqadd513 add '3444444444444444444444444444444' '5555555555555555555555555555555' -> '8999999999999999999999999999999' +dqadd514 add '344444444444444444444444444444' '555555555555555555555555555555' -> '899999999999999999999999999999' +dqadd515 add '34444444444444444444444444444' '55555555555555555555555555555' -> '89999999999999999999999999999' +dqadd516 add '3444444444444444444444444444' '5555555555555555555555555555' -> '8999999999999999999999999999' +dqadd517 add '344444444444444444444444444' '555555555555555555555555555' -> '899999999999999999999999999' +dqadd518 add '34444444444444444444444444' '55555555555555555555555555' -> '89999999999999999999999999' +dqadd519 add '3444444444444444444444444' '5555555555555555555555555' -> '8999999999999999999999999' +dqadd520 add '344444444444444444444444' '555555555555555555555555' -> '899999999999999999999999' +dqadd521 add '34444444444444444444444' '55555555555555555555555' -> '89999999999999999999999' +dqadd522 add '3444444444444444444444' '5555555555555555555555' -> '8999999999999999999999' +dqadd523 add '4444444444444444444444' '3333333333333333333333' -> '7777777777777777777777' +dqadd524 add '344444444444444444444' '555555555555555555555' -> '899999999999999999999' +dqadd525 add '34444444444444444444' '55555555555555555555' -> '89999999999999999999' +dqadd526 add '3444444444444444444' '5555555555555555555' -> '8999999999999999999' +dqadd527 add '344444444444444444' '555555555555555555' -> '899999999999999999' +dqadd528 add '34444444444444444' '55555555555555555' -> '89999999999999999' +dqadd529 add '3444444444444444' '5555555555555555' -> '8999999999999999' +dqadd530 add '344444444444444' '555555555555555' -> '899999999999999' +dqadd531 add '34444444444444' '55555555555555' -> '89999999999999' +dqadd532 add '3444444444444' '5555555555555' -> '8999999999999' +dqadd533 add '344444444444' '555555555555' -> '899999999999' +dqadd534 add '34444444444' '55555555555' -> '89999999999' +dqadd535 add '3444444444' '5555555555' -> '8999999999' +dqadd536 add '344444444' '555555555' -> '899999999' +dqadd537 add '34444444' '55555555' -> '89999999' +dqadd538 add '3444444' '5555555' -> '8999999' +dqadd539 add '344444' '555555' -> '899999' +dqadd540 add '34444' '55555' -> '89999' +dqadd541 add '3444' '5555' -> '8999' +dqadd542 add '344' '555' -> '899' +dqadd543 add '34' '55' -> '89' +dqadd544 add '3' '5' -> '8' + +dqadd545 add '3000004000000000000000000000000000' '3000000000000040000000000000000000' -> '6000004000000040000000000000000000' +dqadd546 add '3000000400000000000000000000000000' '4000000000000400000000000000000000' -> '7000000400000400000000000000000000' +dqadd547 add '3000000040000000000000000000000000' '5000000000004000000000000000000000' -> '8000000040004000000000000000000000' +dqadd548 add '4000000004000000000000000000000000' '3000000000040000000000000000000000' -> '7000000004040000000000000000000000' +dqadd549 add '4000000000400000000000000000000000' '4000000000400000000000000000000000' -> '8000000000800000000000000000000000' +dqadd550 add '4000000000040000000000000000000000' '5000000004000000000000000000000000' -> '9000000004040000000000000000000000' +dqadd551 add '5000000000004000000000000000000000' '3000000040000000000000000000000000' -> '8000000040004000000000000000000000' +dqadd552 add '5000000000000400000000000000000000' '4000000400000000000000000000000000' -> '9000000400000400000000000000000000' +dqadd553 add '5000000000000040000000000000000000' '5000004000000000000000000000000000' -> 1.000000400000004000000000000000000E+34 Rounded +-- check propagation +dqadd554 add '8999999999999999999999999999999999' '0000000000000000000000000000000001' -> 9000000000000000000000000000000000 +dqadd555 add '0000000000000000000000000000000001' '8999999999999999999999999999999999' -> 9000000000000000000000000000000000 +dqadd556 add '4444444444444444444444444444444444' '4555555555555555555555555555555556' -> 9000000000000000000000000000000000 +dqadd557 add '4555555555555555555555555555555556' '4444444444444444444444444444444444' -> 9000000000000000000000000000000000 + +-- negative ulps +dqadd6440 add 1 -77e-32 -> 0.99999999999999999999999999999923 +dqadd6441 add 1 -77e-33 -> 0.999999999999999999999999999999923 +dqadd6442 add 1 -77e-34 -> 0.9999999999999999999999999999999923 +dqadd6443 add 1 -77e-35 -> 0.9999999999999999999999999999999992 Inexact Rounded +dqadd6444 add 1 -77e-36 -> 0.9999999999999999999999999999999999 Inexact Rounded +dqadd6445 add 1 -77e-37 -> 1.000000000000000000000000000000000 Inexact Rounded +dqadd6446 add 1 -77e-99 -> 1.000000000000000000000000000000000 Inexact Rounded + +dqadd6450 add 10 -77e-32 -> 9.99999999999999999999999999999923 +dqadd6451 add 10 -77e-33 -> 9.999999999999999999999999999999923 +dqadd6452 add 10 -77e-34 -> 9.999999999999999999999999999999992 Inexact Rounded +dqadd6453 add 10 -77e-35 -> 9.999999999999999999999999999999999 Inexact Rounded +dqadd6454 add 10 -77e-36 -> 10.00000000000000000000000000000000 Inexact Rounded +dqadd6455 add 10 -77e-37 -> 10.00000000000000000000000000000000 Inexact Rounded +dqadd6456 add 10 -77e-99 -> 10.00000000000000000000000000000000 Inexact Rounded + +dqadd6460 add -77e-32 1 -> 0.99999999999999999999999999999923 +dqadd6461 add -77e-33 1 -> 0.999999999999999999999999999999923 +dqadd6462 add -77e-34 1 -> 0.9999999999999999999999999999999923 +dqadd6463 add -77e-35 1 -> 0.9999999999999999999999999999999992 Inexact Rounded +dqadd6464 add -77e-36 1 -> 0.9999999999999999999999999999999999 Inexact Rounded +dqadd6465 add -77e-37 1 -> 1.000000000000000000000000000000000 Inexact Rounded +dqadd6466 add -77e-99 1 -> 1.000000000000000000000000000000000 Inexact Rounded + +dqadd6470 add -77e-32 10 -> 9.99999999999999999999999999999923 +dqadd6471 add -77e-33 10 -> 9.999999999999999999999999999999923 +dqadd6472 add -77e-34 10 -> 9.999999999999999999999999999999992 Inexact Rounded +dqadd6473 add -77e-35 10 -> 9.999999999999999999999999999999999 Inexact Rounded +dqadd6474 add -77e-36 10 -> 10.00000000000000000000000000000000 Inexact Rounded +dqadd6475 add -77e-37 10 -> 10.00000000000000000000000000000000 Inexact Rounded +dqadd6476 add -77e-99 10 -> 10.00000000000000000000000000000000 Inexact Rounded + +-- negative ulps +dqadd6480 add -1 77e-32 -> -0.99999999999999999999999999999923 +dqadd6481 add -1 77e-33 -> -0.999999999999999999999999999999923 +dqadd6482 add -1 77e-34 -> -0.9999999999999999999999999999999923 +dqadd6483 add -1 77e-35 -> -0.9999999999999999999999999999999992 Inexact Rounded +dqadd6484 add -1 77e-36 -> -0.9999999999999999999999999999999999 Inexact Rounded +dqadd6485 add -1 77e-37 -> -1.000000000000000000000000000000000 Inexact Rounded +dqadd6486 add -1 77e-99 -> -1.000000000000000000000000000000000 Inexact Rounded + +dqadd6490 add -10 77e-32 -> -9.99999999999999999999999999999923 +dqadd6491 add -10 77e-33 -> -9.999999999999999999999999999999923 +dqadd6492 add -10 77e-34 -> -9.999999999999999999999999999999992 Inexact Rounded +dqadd6493 add -10 77e-35 -> -9.999999999999999999999999999999999 Inexact Rounded +dqadd6494 add -10 77e-36 -> -10.00000000000000000000000000000000 Inexact Rounded +dqadd6495 add -10 77e-37 -> -10.00000000000000000000000000000000 Inexact Rounded +dqadd6496 add -10 77e-99 -> -10.00000000000000000000000000000000 Inexact Rounded + +dqadd6500 add 77e-32 -1 -> -0.99999999999999999999999999999923 +dqadd6501 add 77e-33 -1 -> -0.999999999999999999999999999999923 +dqadd6502 add 77e-34 -1 -> -0.9999999999999999999999999999999923 +dqadd6503 add 77e-35 -1 -> -0.9999999999999999999999999999999992 Inexact Rounded +dqadd6504 add 77e-36 -1 -> -0.9999999999999999999999999999999999 Inexact Rounded +dqadd6505 add 77e-37 -1 -> -1.000000000000000000000000000000000 Inexact Rounded +dqadd6506 add 77e-99 -1 -> -1.000000000000000000000000000000000 Inexact Rounded + +dqadd6510 add 77e-32 -10 -> -9.99999999999999999999999999999923 +dqadd6511 add 77e-33 -10 -> -9.999999999999999999999999999999923 +dqadd6512 add 77e-34 -10 -> -9.999999999999999999999999999999992 Inexact Rounded +dqadd6513 add 77e-35 -10 -> -9.999999999999999999999999999999999 Inexact Rounded +dqadd6514 add 77e-36 -10 -> -10.00000000000000000000000000000000 Inexact Rounded +dqadd6515 add 77e-37 -10 -> -10.00000000000000000000000000000000 Inexact Rounded +dqadd6516 add 77e-99 -10 -> -10.00000000000000000000000000000000 Inexact Rounded + +-- and some more residue effects and different roundings +rounding: half_up +dqadd6540 add '9876543219876543216543210123456789' 0 -> '9876543219876543216543210123456789' +dqadd6541 add '9876543219876543216543210123456789' 0.000000001 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd6542 add '9876543219876543216543210123456789' 0.000001 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd6543 add '9876543219876543216543210123456789' 0.1 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd6544 add '9876543219876543216543210123456789' 0.4 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd6545 add '9876543219876543216543210123456789' 0.49 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd6546 add '9876543219876543216543210123456789' 0.499999 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd6547 add '9876543219876543216543210123456789' 0.499999999 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd6548 add '9876543219876543216543210123456789' 0.5 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd6549 add '9876543219876543216543210123456789' 0.500000001 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd6550 add '9876543219876543216543210123456789' 0.500001 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd6551 add '9876543219876543216543210123456789' 0.51 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd6552 add '9876543219876543216543210123456789' 0.6 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd6553 add '9876543219876543216543210123456789' 0.9 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd6554 add '9876543219876543216543210123456789' 0.99999 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd6555 add '9876543219876543216543210123456789' 0.999999999 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd6556 add '9876543219876543216543210123456789' 1 -> '9876543219876543216543210123456790' +dqadd6557 add '9876543219876543216543210123456789' 1.000000001 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd6558 add '9876543219876543216543210123456789' 1.00001 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd6559 add '9876543219876543216543210123456789' 1.1 -> '9876543219876543216543210123456790' Inexact Rounded + +rounding: half_even +dqadd6560 add '9876543219876543216543210123456789' 0 -> '9876543219876543216543210123456789' +dqadd6561 add '9876543219876543216543210123456789' 0.000000001 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd6562 add '9876543219876543216543210123456789' 0.000001 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd6563 add '9876543219876543216543210123456789' 0.1 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd6564 add '9876543219876543216543210123456789' 0.4 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd6565 add '9876543219876543216543210123456789' 0.49 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd6566 add '9876543219876543216543210123456789' 0.499999 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd6567 add '9876543219876543216543210123456789' 0.499999999 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd6568 add '9876543219876543216543210123456789' 0.5 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd6569 add '9876543219876543216543210123456789' 0.500000001 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd6570 add '9876543219876543216543210123456789' 0.500001 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd6571 add '9876543219876543216543210123456789' 0.51 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd6572 add '9876543219876543216543210123456789' 0.6 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd6573 add '9876543219876543216543210123456789' 0.9 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd6574 add '9876543219876543216543210123456789' 0.99999 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd6575 add '9876543219876543216543210123456789' 0.999999999 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd6576 add '9876543219876543216543210123456789' 1 -> '9876543219876543216543210123456790' +dqadd6577 add '9876543219876543216543210123456789' 1.00000001 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd6578 add '9876543219876543216543210123456789' 1.00001 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd6579 add '9876543219876543216543210123456789' 1.1 -> '9876543219876543216543210123456790' Inexact Rounded + +-- critical few with even bottom digit... +dqadd7540 add '9876543219876543216543210123456788' 0.499999999 -> '9876543219876543216543210123456788' Inexact Rounded +dqadd7541 add '9876543219876543216543210123456788' 0.5 -> '9876543219876543216543210123456788' Inexact Rounded +dqadd7542 add '9876543219876543216543210123456788' 0.500000001 -> '9876543219876543216543210123456789' Inexact Rounded + +rounding: down +dqadd7550 add '9876543219876543216543210123456789' 0 -> '9876543219876543216543210123456789' +dqadd7551 add '9876543219876543216543210123456789' 0.000000001 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd7552 add '9876543219876543216543210123456789' 0.000001 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd7553 add '9876543219876543216543210123456789' 0.1 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd7554 add '9876543219876543216543210123456789' 0.4 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd7555 add '9876543219876543216543210123456789' 0.49 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd7556 add '9876543219876543216543210123456789' 0.499999 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd7557 add '9876543219876543216543210123456789' 0.499999999 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd7558 add '9876543219876543216543210123456789' 0.5 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd7559 add '9876543219876543216543210123456789' 0.500000001 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd7560 add '9876543219876543216543210123456789' 0.500001 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd7561 add '9876543219876543216543210123456789' 0.51 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd7562 add '9876543219876543216543210123456789' 0.6 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd7563 add '9876543219876543216543210123456789' 0.9 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd7564 add '9876543219876543216543210123456789' 0.99999 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd7565 add '9876543219876543216543210123456789' 0.999999999 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd7566 add '9876543219876543216543210123456789' 1 -> '9876543219876543216543210123456790' +dqadd7567 add '9876543219876543216543210123456789' 1.00000001 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd7568 add '9876543219876543216543210123456789' 1.00001 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd7569 add '9876543219876543216543210123456789' 1.1 -> '9876543219876543216543210123456790' Inexact Rounded + +-- more zeros, etc. +rounding: half_even + +dqadd7701 add 5.00 1.00E-3 -> 5.00100 +dqadd7702 add 00.00 0.000 -> 0.000 +dqadd7703 add 00.00 0E-3 -> 0.000 +dqadd7704 add 0E-3 00.00 -> 0.000 + +dqadd7710 add 0E+3 00.00 -> 0.00 +dqadd7711 add 0E+3 00.0 -> 0.0 +dqadd7712 add 0E+3 00. -> 0 +dqadd7713 add 0E+3 00.E+1 -> 0E+1 +dqadd7714 add 0E+3 00.E+2 -> 0E+2 +dqadd7715 add 0E+3 00.E+3 -> 0E+3 +dqadd7716 add 0E+3 00.E+4 -> 0E+3 +dqadd7717 add 0E+3 00.E+5 -> 0E+3 +dqadd7718 add 0E+3 -00.0 -> 0.0 +dqadd7719 add 0E+3 -00. -> 0 +dqadd7731 add 0E+3 -00.E+1 -> 0E+1 + +dqadd7720 add 00.00 0E+3 -> 0.00 +dqadd7721 add 00.0 0E+3 -> 0.0 +dqadd7722 add 00. 0E+3 -> 0 +dqadd7723 add 00.E+1 0E+3 -> 0E+1 +dqadd7724 add 00.E+2 0E+3 -> 0E+2 +dqadd7725 add 00.E+3 0E+3 -> 0E+3 +dqadd7726 add 00.E+4 0E+3 -> 0E+3 +dqadd7727 add 00.E+5 0E+3 -> 0E+3 +dqadd7728 add -00.00 0E+3 -> 0.00 +dqadd7729 add -00.0 0E+3 -> 0.0 +dqadd7730 add -00. 0E+3 -> 0 + +dqadd7732 add 0 0 -> 0 +dqadd7733 add 0 -0 -> 0 +dqadd7734 add -0 0 -> 0 +dqadd7735 add -0 -0 -> -0 -- IEEE 754 special case + +dqadd7736 add 1 -1 -> 0 +dqadd7737 add -1 -1 -> -2 +dqadd7738 add 1 1 -> 2 +dqadd7739 add -1 1 -> 0 + +dqadd7741 add 0 -1 -> -1 +dqadd7742 add -0 -1 -> -1 +dqadd7743 add 0 1 -> 1 +dqadd7744 add -0 1 -> 1 +dqadd7745 add -1 0 -> -1 +dqadd7746 add -1 -0 -> -1 +dqadd7747 add 1 0 -> 1 +dqadd7748 add 1 -0 -> 1 + +dqadd7751 add 0.0 -1 -> -1.0 +dqadd7752 add -0.0 -1 -> -1.0 +dqadd7753 add 0.0 1 -> 1.0 +dqadd7754 add -0.0 1 -> 1.0 +dqadd7755 add -1.0 0 -> -1.0 +dqadd7756 add -1.0 -0 -> -1.0 +dqadd7757 add 1.0 0 -> 1.0 +dqadd7758 add 1.0 -0 -> 1.0 + +dqadd7761 add 0 -1.0 -> -1.0 +dqadd7762 add -0 -1.0 -> -1.0 +dqadd7763 add 0 1.0 -> 1.0 +dqadd7764 add -0 1.0 -> 1.0 +dqadd7765 add -1 0.0 -> -1.0 +dqadd7766 add -1 -0.0 -> -1.0 +dqadd7767 add 1 0.0 -> 1.0 +dqadd7768 add 1 -0.0 -> 1.0 + +dqadd7771 add 0.0 -1.0 -> -1.0 +dqadd7772 add -0.0 -1.0 -> -1.0 +dqadd7773 add 0.0 1.0 -> 1.0 +dqadd7774 add -0.0 1.0 -> 1.0 +dqadd7775 add -1.0 0.0 -> -1.0 +dqadd7776 add -1.0 -0.0 -> -1.0 +dqadd7777 add 1.0 0.0 -> 1.0 +dqadd7778 add 1.0 -0.0 -> 1.0 + +-- Specials +dqadd7780 add -Inf -Inf -> -Infinity +dqadd7781 add -Inf -1000 -> -Infinity +dqadd7782 add -Inf -1 -> -Infinity +dqadd7783 add -Inf -0 -> -Infinity +dqadd7784 add -Inf 0 -> -Infinity +dqadd7785 add -Inf 1 -> -Infinity +dqadd7786 add -Inf 1000 -> -Infinity +dqadd7787 add -1000 -Inf -> -Infinity +dqadd7788 add -Inf -Inf -> -Infinity +dqadd7789 add -1 -Inf -> -Infinity +dqadd7790 add -0 -Inf -> -Infinity +dqadd7791 add 0 -Inf -> -Infinity +dqadd7792 add 1 -Inf -> -Infinity +dqadd7793 add 1000 -Inf -> -Infinity +dqadd7794 add Inf -Inf -> NaN Invalid_operation + +dqadd7800 add Inf -Inf -> NaN Invalid_operation +dqadd7801 add Inf -1000 -> Infinity +dqadd7802 add Inf -1 -> Infinity +dqadd7803 add Inf -0 -> Infinity +dqadd7804 add Inf 0 -> Infinity +dqadd7805 add Inf 1 -> Infinity +dqadd7806 add Inf 1000 -> Infinity +dqadd7807 add Inf Inf -> Infinity +dqadd7808 add -1000 Inf -> Infinity +dqadd7809 add -Inf Inf -> NaN Invalid_operation +dqadd7810 add -1 Inf -> Infinity +dqadd7811 add -0 Inf -> Infinity +dqadd7812 add 0 Inf -> Infinity +dqadd7813 add 1 Inf -> Infinity +dqadd7814 add 1000 Inf -> Infinity +dqadd7815 add Inf Inf -> Infinity + +dqadd7821 add NaN -Inf -> NaN +dqadd7822 add NaN -1000 -> NaN +dqadd7823 add NaN -1 -> NaN +dqadd7824 add NaN -0 -> NaN +dqadd7825 add NaN 0 -> NaN +dqadd7826 add NaN 1 -> NaN +dqadd7827 add NaN 1000 -> NaN +dqadd7828 add NaN Inf -> NaN +dqadd7829 add NaN NaN -> NaN +dqadd7830 add -Inf NaN -> NaN +dqadd7831 add -1000 NaN -> NaN +dqadd7832 add -1 NaN -> NaN +dqadd7833 add -0 NaN -> NaN +dqadd7834 add 0 NaN -> NaN +dqadd7835 add 1 NaN -> NaN +dqadd7836 add 1000 NaN -> NaN +dqadd7837 add Inf NaN -> NaN + +dqadd7841 add sNaN -Inf -> NaN Invalid_operation +dqadd7842 add sNaN -1000 -> NaN Invalid_operation +dqadd7843 add sNaN -1 -> NaN Invalid_operation +dqadd7844 add sNaN -0 -> NaN Invalid_operation +dqadd7845 add sNaN 0 -> NaN Invalid_operation +dqadd7846 add sNaN 1 -> NaN Invalid_operation +dqadd7847 add sNaN 1000 -> NaN Invalid_operation +dqadd7848 add sNaN NaN -> NaN Invalid_operation +dqadd7849 add sNaN sNaN -> NaN Invalid_operation +dqadd7850 add NaN sNaN -> NaN Invalid_operation +dqadd7851 add -Inf sNaN -> NaN Invalid_operation +dqadd7852 add -1000 sNaN -> NaN Invalid_operation +dqadd7853 add -1 sNaN -> NaN Invalid_operation +dqadd7854 add -0 sNaN -> NaN Invalid_operation +dqadd7855 add 0 sNaN -> NaN Invalid_operation +dqadd7856 add 1 sNaN -> NaN Invalid_operation +dqadd7857 add 1000 sNaN -> NaN Invalid_operation +dqadd7858 add Inf sNaN -> NaN Invalid_operation +dqadd7859 add NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +dqadd7861 add NaN1 -Inf -> NaN1 +dqadd7862 add +NaN2 -1000 -> NaN2 +dqadd7863 add NaN3 1000 -> NaN3 +dqadd7864 add NaN4 Inf -> NaN4 +dqadd7865 add NaN5 +NaN6 -> NaN5 +dqadd7866 add -Inf NaN7 -> NaN7 +dqadd7867 add -1000 NaN8 -> NaN8 +dqadd7868 add 1000 NaN9 -> NaN9 +dqadd7869 add Inf +NaN10 -> NaN10 +dqadd7871 add sNaN11 -Inf -> NaN11 Invalid_operation +dqadd7872 add sNaN12 -1000 -> NaN12 Invalid_operation +dqadd7873 add sNaN13 1000 -> NaN13 Invalid_operation +dqadd7874 add sNaN14 NaN17 -> NaN14 Invalid_operation +dqadd7875 add sNaN15 sNaN18 -> NaN15 Invalid_operation +dqadd7876 add NaN16 sNaN19 -> NaN19 Invalid_operation +dqadd7877 add -Inf +sNaN20 -> NaN20 Invalid_operation +dqadd7878 add -1000 sNaN21 -> NaN21 Invalid_operation +dqadd7879 add 1000 sNaN22 -> NaN22 Invalid_operation +dqadd7880 add Inf sNaN23 -> NaN23 Invalid_operation +dqadd7881 add +NaN25 +sNaN24 -> NaN24 Invalid_operation +dqadd7882 add -NaN26 NaN28 -> -NaN26 +dqadd7883 add -sNaN27 sNaN29 -> -NaN27 Invalid_operation +dqadd7884 add 1000 -NaN30 -> -NaN30 +dqadd7885 add 1000 -sNaN31 -> -NaN31 Invalid_operation + +-- Here we explore near the boundary of rounding a subnormal to Nmin +dqadd7575 add 1E-6143 -1E-6176 -> 9.99999999999999999999999999999999E-6144 Subnormal +dqadd7576 add -1E-6143 +1E-6176 -> -9.99999999999999999999999999999999E-6144 Subnormal + +-- check overflow edge case +-- 1234567890123456 +dqadd7972 apply 9.999999999999999999999999999999999E+6144 -> 9.999999999999999999999999999999999E+6144 +dqadd7973 add 9.999999999999999999999999999999999E+6144 1 -> 9.999999999999999999999999999999999E+6144 Inexact Rounded +dqadd7974 add 9999999999999999999999999999999999E+6111 1 -> 9.999999999999999999999999999999999E+6144 Inexact Rounded +dqadd7975 add 9999999999999999999999999999999999E+6111 1E+6111 -> Infinity Overflow Inexact Rounded +dqadd7976 add 9999999999999999999999999999999999E+6111 9E+6110 -> Infinity Overflow Inexact Rounded +dqadd7977 add 9999999999999999999999999999999999E+6111 8E+6110 -> Infinity Overflow Inexact Rounded +dqadd7978 add 9999999999999999999999999999999999E+6111 7E+6110 -> Infinity Overflow Inexact Rounded +dqadd7979 add 9999999999999999999999999999999999E+6111 6E+6110 -> Infinity Overflow Inexact Rounded +dqadd7980 add 9999999999999999999999999999999999E+6111 5E+6110 -> Infinity Overflow Inexact Rounded +dqadd7981 add 9999999999999999999999999999999999E+6111 4E+6110 -> 9.999999999999999999999999999999999E+6144 Inexact Rounded +dqadd7982 add 9999999999999999999999999999999999E+6111 3E+6110 -> 9.999999999999999999999999999999999E+6144 Inexact Rounded +dqadd7983 add 9999999999999999999999999999999999E+6111 2E+6110 -> 9.999999999999999999999999999999999E+6144 Inexact Rounded +dqadd7984 add 9999999999999999999999999999999999E+6111 1E+6110 -> 9.999999999999999999999999999999999E+6144 Inexact Rounded + +dqadd7985 apply -9.999999999999999999999999999999999E+6144 -> -9.999999999999999999999999999999999E+6144 +dqadd7986 add -9.999999999999999999999999999999999E+6144 -1 -> -9.999999999999999999999999999999999E+6144 Inexact Rounded +dqadd7987 add -9999999999999999999999999999999999E+6111 -1 -> -9.999999999999999999999999999999999E+6144 Inexact Rounded +dqadd7988 add -9999999999999999999999999999999999E+6111 -1E+6111 -> -Infinity Overflow Inexact Rounded +dqadd7989 add -9999999999999999999999999999999999E+6111 -9E+6110 -> -Infinity Overflow Inexact Rounded +dqadd7990 add -9999999999999999999999999999999999E+6111 -8E+6110 -> -Infinity Overflow Inexact Rounded +dqadd7991 add -9999999999999999999999999999999999E+6111 -7E+6110 -> -Infinity Overflow Inexact Rounded +dqadd7992 add -9999999999999999999999999999999999E+6111 -6E+6110 -> -Infinity Overflow Inexact Rounded +dqadd7993 add -9999999999999999999999999999999999E+6111 -5E+6110 -> -Infinity Overflow Inexact Rounded +dqadd7994 add -9999999999999999999999999999999999E+6111 -4E+6110 -> -9.999999999999999999999999999999999E+6144 Inexact Rounded +dqadd7995 add -9999999999999999999999999999999999E+6111 -3E+6110 -> -9.999999999999999999999999999999999E+6144 Inexact Rounded +dqadd7996 add -9999999999999999999999999999999999E+6111 -2E+6110 -> -9.999999999999999999999999999999999E+6144 Inexact Rounded +dqadd7997 add -9999999999999999999999999999999999E+6111 -1E+6110 -> -9.999999999999999999999999999999999E+6144 Inexact Rounded + +-- And for round down full and subnormal results +rounding: down +dqadd71100 add 1e+2 -1e-6143 -> 99.99999999999999999999999999999999 Rounded Inexact +dqadd71101 add 1e+1 -1e-6143 -> 9.999999999999999999999999999999999 Rounded Inexact +dqadd71103 add +1 -1e-6143 -> 0.9999999999999999999999999999999999 Rounded Inexact +dqadd71104 add 1e-1 -1e-6143 -> 0.09999999999999999999999999999999999 Rounded Inexact +dqadd71105 add 1e-2 -1e-6143 -> 0.009999999999999999999999999999999999 Rounded Inexact +dqadd71106 add 1e-3 -1e-6143 -> 0.0009999999999999999999999999999999999 Rounded Inexact +dqadd71107 add 1e-4 -1e-6143 -> 0.00009999999999999999999999999999999999 Rounded Inexact +dqadd71108 add 1e-5 -1e-6143 -> 0.000009999999999999999999999999999999999 Rounded Inexact +dqadd71109 add 1e-6 -1e-6143 -> 9.999999999999999999999999999999999E-7 Rounded Inexact + +rounding: ceiling +dqadd71110 add -1e+2 +1e-6143 -> -99.99999999999999999999999999999999 Rounded Inexact +dqadd71111 add -1e+1 +1e-6143 -> -9.999999999999999999999999999999999 Rounded Inexact +dqadd71113 add -1 +1e-6143 -> -0.9999999999999999999999999999999999 Rounded Inexact +dqadd71114 add -1e-1 +1e-6143 -> -0.09999999999999999999999999999999999 Rounded Inexact +dqadd71115 add -1e-2 +1e-6143 -> -0.009999999999999999999999999999999999 Rounded Inexact +dqadd71116 add -1e-3 +1e-6143 -> -0.0009999999999999999999999999999999999 Rounded Inexact +dqadd71117 add -1e-4 +1e-6143 -> -0.00009999999999999999999999999999999999 Rounded Inexact +dqadd71118 add -1e-5 +1e-6143 -> -0.000009999999999999999999999999999999999 Rounded Inexact +dqadd71119 add -1e-6 +1e-6143 -> -9.999999999999999999999999999999999E-7 Rounded Inexact + +-- tests based on Gunnar Degnbol's edge case +rounding: half_even + +dqadd71300 add 1E34 -0.5 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71310 add 1E34 -0.51 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd71311 add 1E34 -0.501 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd71312 add 1E34 -0.5001 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd71313 add 1E34 -0.50001 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd71314 add 1E34 -0.500001 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd71315 add 1E34 -0.5000001 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd71316 add 1E34 -0.50000001 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd71317 add 1E34 -0.500000001 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd71318 add 1E34 -0.5000000001 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd71319 add 1E34 -0.50000000001 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd71320 add 1E34 -0.500000000001 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd71321 add 1E34 -0.5000000000001 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd71322 add 1E34 -0.50000000000001 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd71323 add 1E34 -0.500000000000001 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd71324 add 1E34 -0.5000000000000001 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd71325 add 1E34 -0.5000000000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71326 add 1E34 -0.500000000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71327 add 1E34 -0.50000000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71328 add 1E34 -0.5000000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71329 add 1E34 -0.500000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71330 add 1E34 -0.50000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71331 add 1E34 -0.5000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71332 add 1E34 -0.500000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71333 add 1E34 -0.50000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71334 add 1E34 -0.5000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71335 add 1E34 -0.500000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71336 add 1E34 -0.50000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71337 add 1E34 -0.5000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71338 add 1E34 -0.500 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71339 add 1E34 -0.50 -> 1.000000000000000000000000000000000E+34 Inexact Rounded + +dqadd71340 add 1E34 -5000000.000010001 -> 9999999999999999999999999995000000 Inexact Rounded +dqadd71341 add 1E34 -5000000.000000001 -> 9999999999999999999999999995000000 Inexact Rounded + +dqadd71349 add 9999999999999999999999999999999999 0.4 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd71350 add 9999999999999999999999999999999999 0.49 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd71351 add 9999999999999999999999999999999999 0.499 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd71352 add 9999999999999999999999999999999999 0.4999 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd71353 add 9999999999999999999999999999999999 0.49999 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd71354 add 9999999999999999999999999999999999 0.499999 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd71355 add 9999999999999999999999999999999999 0.4999999 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd71356 add 9999999999999999999999999999999999 0.49999999 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd71357 add 9999999999999999999999999999999999 0.499999999 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd71358 add 9999999999999999999999999999999999 0.4999999999 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd71359 add 9999999999999999999999999999999999 0.49999999999 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd71360 add 9999999999999999999999999999999999 0.499999999999 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd71361 add 9999999999999999999999999999999999 0.4999999999999 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd71362 add 9999999999999999999999999999999999 0.49999999999999 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd71363 add 9999999999999999999999999999999999 0.499999999999999 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd71364 add 9999999999999999999999999999999999 0.4999999999999999 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd71365 add 9999999999999999999999999999999999 0.5000000000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71367 add 9999999999999999999999999999999999 0.500000000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71368 add 9999999999999999999999999999999999 0.50000000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71369 add 9999999999999999999999999999999999 0.5000000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71370 add 9999999999999999999999999999999999 0.500000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71371 add 9999999999999999999999999999999999 0.50000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71372 add 9999999999999999999999999999999999 0.5000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71373 add 9999999999999999999999999999999999 0.500000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71374 add 9999999999999999999999999999999999 0.50000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71375 add 9999999999999999999999999999999999 0.5000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71376 add 9999999999999999999999999999999999 0.500000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71377 add 9999999999999999999999999999999999 0.50000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71378 add 9999999999999999999999999999999999 0.5000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71379 add 9999999999999999999999999999999999 0.500 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71380 add 9999999999999999999999999999999999 0.50 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71381 add 9999999999999999999999999999999999 0.5 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71382 add 9999999999999999999999999999999999 0.5000000000000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71383 add 9999999999999999999999999999999999 0.500000000000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71384 add 9999999999999999999999999999999999 0.50000000000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71385 add 9999999999999999999999999999999999 0.5000000000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71386 add 9999999999999999999999999999999999 0.500000000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71387 add 9999999999999999999999999999999999 0.50000000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71388 add 9999999999999999999999999999999999 0.5000000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71389 add 9999999999999999999999999999999999 0.500000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71390 add 9999999999999999999999999999999999 0.50000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71391 add 9999999999999999999999999999999999 0.5000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71392 add 9999999999999999999999999999999999 0.500001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71393 add 9999999999999999999999999999999999 0.50001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71394 add 9999999999999999999999999999999999 0.5001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71395 add 9999999999999999999999999999999999 0.501 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd71396 add 9999999999999999999999999999999999 0.51 -> 1.000000000000000000000000000000000E+34 Inexact Rounded + +-- More GD edge cases, where difference between the unadjusted +-- exponents is larger than the maximum precision and one side is 0 +dqadd71420 add 0 1.123456789987654321123456789012345 -> 1.123456789987654321123456789012345 +dqadd71421 add 0 1.123456789987654321123456789012345E-1 -> 0.1123456789987654321123456789012345 +dqadd71422 add 0 1.123456789987654321123456789012345E-2 -> 0.01123456789987654321123456789012345 +dqadd71423 add 0 1.123456789987654321123456789012345E-3 -> 0.001123456789987654321123456789012345 +dqadd71424 add 0 1.123456789987654321123456789012345E-4 -> 0.0001123456789987654321123456789012345 +dqadd71425 add 0 1.123456789987654321123456789012345E-5 -> 0.00001123456789987654321123456789012345 +dqadd71426 add 0 1.123456789987654321123456789012345E-6 -> 0.000001123456789987654321123456789012345 +dqadd71427 add 0 1.123456789987654321123456789012345E-7 -> 1.123456789987654321123456789012345E-7 +dqadd71428 add 0 1.123456789987654321123456789012345E-8 -> 1.123456789987654321123456789012345E-8 +dqadd71429 add 0 1.123456789987654321123456789012345E-9 -> 1.123456789987654321123456789012345E-9 +dqadd71430 add 0 1.123456789987654321123456789012345E-10 -> 1.123456789987654321123456789012345E-10 +dqadd71431 add 0 1.123456789987654321123456789012345E-11 -> 1.123456789987654321123456789012345E-11 +dqadd71432 add 0 1.123456789987654321123456789012345E-12 -> 1.123456789987654321123456789012345E-12 +dqadd71433 add 0 1.123456789987654321123456789012345E-13 -> 1.123456789987654321123456789012345E-13 +dqadd71434 add 0 1.123456789987654321123456789012345E-14 -> 1.123456789987654321123456789012345E-14 +dqadd71435 add 0 1.123456789987654321123456789012345E-15 -> 1.123456789987654321123456789012345E-15 +dqadd71436 add 0 1.123456789987654321123456789012345E-16 -> 1.123456789987654321123456789012345E-16 +dqadd71437 add 0 1.123456789987654321123456789012345E-17 -> 1.123456789987654321123456789012345E-17 +dqadd71438 add 0 1.123456789987654321123456789012345E-18 -> 1.123456789987654321123456789012345E-18 +dqadd71439 add 0 1.123456789987654321123456789012345E-19 -> 1.123456789987654321123456789012345E-19 +dqadd71440 add 0 1.123456789987654321123456789012345E-20 -> 1.123456789987654321123456789012345E-20 +dqadd71441 add 0 1.123456789987654321123456789012345E-21 -> 1.123456789987654321123456789012345E-21 +dqadd71442 add 0 1.123456789987654321123456789012345E-22 -> 1.123456789987654321123456789012345E-22 +dqadd71443 add 0 1.123456789987654321123456789012345E-23 -> 1.123456789987654321123456789012345E-23 +dqadd71444 add 0 1.123456789987654321123456789012345E-24 -> 1.123456789987654321123456789012345E-24 +dqadd71445 add 0 1.123456789987654321123456789012345E-25 -> 1.123456789987654321123456789012345E-25 +dqadd71446 add 0 1.123456789987654321123456789012345E-26 -> 1.123456789987654321123456789012345E-26 +dqadd71447 add 0 1.123456789987654321123456789012345E-27 -> 1.123456789987654321123456789012345E-27 +dqadd71448 add 0 1.123456789987654321123456789012345E-28 -> 1.123456789987654321123456789012345E-28 +dqadd71449 add 0 1.123456789987654321123456789012345E-29 -> 1.123456789987654321123456789012345E-29 +dqadd71450 add 0 1.123456789987654321123456789012345E-30 -> 1.123456789987654321123456789012345E-30 +dqadd71451 add 0 1.123456789987654321123456789012345E-31 -> 1.123456789987654321123456789012345E-31 +dqadd71452 add 0 1.123456789987654321123456789012345E-32 -> 1.123456789987654321123456789012345E-32 +dqadd71453 add 0 1.123456789987654321123456789012345E-33 -> 1.123456789987654321123456789012345E-33 +dqadd71454 add 0 1.123456789987654321123456789012345E-34 -> 1.123456789987654321123456789012345E-34 +dqadd71455 add 0 1.123456789987654321123456789012345E-35 -> 1.123456789987654321123456789012345E-35 +dqadd71456 add 0 1.123456789987654321123456789012345E-36 -> 1.123456789987654321123456789012345E-36 + +-- same, reversed 0 +dqadd71460 add 1.123456789987654321123456789012345 0 -> 1.123456789987654321123456789012345 +dqadd71461 add 1.123456789987654321123456789012345E-1 0 -> 0.1123456789987654321123456789012345 +dqadd71462 add 1.123456789987654321123456789012345E-2 0 -> 0.01123456789987654321123456789012345 +dqadd71463 add 1.123456789987654321123456789012345E-3 0 -> 0.001123456789987654321123456789012345 +dqadd71464 add 1.123456789987654321123456789012345E-4 0 -> 0.0001123456789987654321123456789012345 +dqadd71465 add 1.123456789987654321123456789012345E-5 0 -> 0.00001123456789987654321123456789012345 +dqadd71466 add 1.123456789987654321123456789012345E-6 0 -> 0.000001123456789987654321123456789012345 +dqadd71467 add 1.123456789987654321123456789012345E-7 0 -> 1.123456789987654321123456789012345E-7 +dqadd71468 add 1.123456789987654321123456789012345E-8 0 -> 1.123456789987654321123456789012345E-8 +dqadd71469 add 1.123456789987654321123456789012345E-9 0 -> 1.123456789987654321123456789012345E-9 +dqadd71470 add 1.123456789987654321123456789012345E-10 0 -> 1.123456789987654321123456789012345E-10 +dqadd71471 add 1.123456789987654321123456789012345E-11 0 -> 1.123456789987654321123456789012345E-11 +dqadd71472 add 1.123456789987654321123456789012345E-12 0 -> 1.123456789987654321123456789012345E-12 +dqadd71473 add 1.123456789987654321123456789012345E-13 0 -> 1.123456789987654321123456789012345E-13 +dqadd71474 add 1.123456789987654321123456789012345E-14 0 -> 1.123456789987654321123456789012345E-14 +dqadd71475 add 1.123456789987654321123456789012345E-15 0 -> 1.123456789987654321123456789012345E-15 +dqadd71476 add 1.123456789987654321123456789012345E-16 0 -> 1.123456789987654321123456789012345E-16 +dqadd71477 add 1.123456789987654321123456789012345E-17 0 -> 1.123456789987654321123456789012345E-17 +dqadd71478 add 1.123456789987654321123456789012345E-18 0 -> 1.123456789987654321123456789012345E-18 +dqadd71479 add 1.123456789987654321123456789012345E-19 0 -> 1.123456789987654321123456789012345E-19 +dqadd71480 add 1.123456789987654321123456789012345E-20 0 -> 1.123456789987654321123456789012345E-20 +dqadd71481 add 1.123456789987654321123456789012345E-21 0 -> 1.123456789987654321123456789012345E-21 +dqadd71482 add 1.123456789987654321123456789012345E-22 0 -> 1.123456789987654321123456789012345E-22 +dqadd71483 add 1.123456789987654321123456789012345E-23 0 -> 1.123456789987654321123456789012345E-23 +dqadd71484 add 1.123456789987654321123456789012345E-24 0 -> 1.123456789987654321123456789012345E-24 +dqadd71485 add 1.123456789987654321123456789012345E-25 0 -> 1.123456789987654321123456789012345E-25 +dqadd71486 add 1.123456789987654321123456789012345E-26 0 -> 1.123456789987654321123456789012345E-26 +dqadd71487 add 1.123456789987654321123456789012345E-27 0 -> 1.123456789987654321123456789012345E-27 +dqadd71488 add 1.123456789987654321123456789012345E-28 0 -> 1.123456789987654321123456789012345E-28 +dqadd71489 add 1.123456789987654321123456789012345E-29 0 -> 1.123456789987654321123456789012345E-29 +dqadd71490 add 1.123456789987654321123456789012345E-30 0 -> 1.123456789987654321123456789012345E-30 +dqadd71491 add 1.123456789987654321123456789012345E-31 0 -> 1.123456789987654321123456789012345E-31 +dqadd71492 add 1.123456789987654321123456789012345E-32 0 -> 1.123456789987654321123456789012345E-32 +dqadd71493 add 1.123456789987654321123456789012345E-33 0 -> 1.123456789987654321123456789012345E-33 +dqadd71494 add 1.123456789987654321123456789012345E-34 0 -> 1.123456789987654321123456789012345E-34 +dqadd71495 add 1.123456789987654321123456789012345E-35 0 -> 1.123456789987654321123456789012345E-35 +dqadd71496 add 1.123456789987654321123456789012345E-36 0 -> 1.123456789987654321123456789012345E-36 + +-- same, Es on the 0 +dqadd71500 add 1.123456789987654321123456789012345 0E-0 -> 1.123456789987654321123456789012345 +dqadd71501 add 1.123456789987654321123456789012345 0E-1 -> 1.123456789987654321123456789012345 +dqadd71502 add 1.123456789987654321123456789012345 0E-2 -> 1.123456789987654321123456789012345 +dqadd71503 add 1.123456789987654321123456789012345 0E-3 -> 1.123456789987654321123456789012345 +dqadd71504 add 1.123456789987654321123456789012345 0E-4 -> 1.123456789987654321123456789012345 +dqadd71505 add 1.123456789987654321123456789012345 0E-5 -> 1.123456789987654321123456789012345 +dqadd71506 add 1.123456789987654321123456789012345 0E-6 -> 1.123456789987654321123456789012345 +dqadd71507 add 1.123456789987654321123456789012345 0E-7 -> 1.123456789987654321123456789012345 +dqadd71508 add 1.123456789987654321123456789012345 0E-8 -> 1.123456789987654321123456789012345 +dqadd71509 add 1.123456789987654321123456789012345 0E-9 -> 1.123456789987654321123456789012345 +dqadd71510 add 1.123456789987654321123456789012345 0E-10 -> 1.123456789987654321123456789012345 +dqadd71511 add 1.123456789987654321123456789012345 0E-11 -> 1.123456789987654321123456789012345 +dqadd71512 add 1.123456789987654321123456789012345 0E-12 -> 1.123456789987654321123456789012345 +dqadd71513 add 1.123456789987654321123456789012345 0E-13 -> 1.123456789987654321123456789012345 +dqadd71514 add 1.123456789987654321123456789012345 0E-14 -> 1.123456789987654321123456789012345 +dqadd71515 add 1.123456789987654321123456789012345 0E-15 -> 1.123456789987654321123456789012345 +dqadd71516 add 1.123456789987654321123456789012345 0E-16 -> 1.123456789987654321123456789012345 +dqadd71517 add 1.123456789987654321123456789012345 0E-17 -> 1.123456789987654321123456789012345 +dqadd71518 add 1.123456789987654321123456789012345 0E-18 -> 1.123456789987654321123456789012345 +dqadd71519 add 1.123456789987654321123456789012345 0E-19 -> 1.123456789987654321123456789012345 +dqadd71520 add 1.123456789987654321123456789012345 0E-20 -> 1.123456789987654321123456789012345 +dqadd71521 add 1.123456789987654321123456789012345 0E-21 -> 1.123456789987654321123456789012345 +dqadd71522 add 1.123456789987654321123456789012345 0E-22 -> 1.123456789987654321123456789012345 +dqadd71523 add 1.123456789987654321123456789012345 0E-23 -> 1.123456789987654321123456789012345 +dqadd71524 add 1.123456789987654321123456789012345 0E-24 -> 1.123456789987654321123456789012345 +dqadd71525 add 1.123456789987654321123456789012345 0E-25 -> 1.123456789987654321123456789012345 +dqadd71526 add 1.123456789987654321123456789012345 0E-26 -> 1.123456789987654321123456789012345 +dqadd71527 add 1.123456789987654321123456789012345 0E-27 -> 1.123456789987654321123456789012345 +dqadd71528 add 1.123456789987654321123456789012345 0E-28 -> 1.123456789987654321123456789012345 +dqadd71529 add 1.123456789987654321123456789012345 0E-29 -> 1.123456789987654321123456789012345 +dqadd71530 add 1.123456789987654321123456789012345 0E-30 -> 1.123456789987654321123456789012345 +dqadd71531 add 1.123456789987654321123456789012345 0E-31 -> 1.123456789987654321123456789012345 +dqadd71532 add 1.123456789987654321123456789012345 0E-32 -> 1.123456789987654321123456789012345 +dqadd71533 add 1.123456789987654321123456789012345 0E-33 -> 1.123456789987654321123456789012345 +-- next four flag Rounded because the 0 extends the result +dqadd71534 add 1.123456789987654321123456789012345 0E-34 -> 1.123456789987654321123456789012345 Rounded +dqadd71535 add 1.123456789987654321123456789012345 0E-35 -> 1.123456789987654321123456789012345 Rounded +dqadd71536 add 1.123456789987654321123456789012345 0E-36 -> 1.123456789987654321123456789012345 Rounded +dqadd71537 add 1.123456789987654321123456789012345 0E-37 -> 1.123456789987654321123456789012345 Rounded + +-- sum of two opposite-sign operands is exactly 0 and floor => -0 +rounding: half_up +-- exact zeros from zeros +dqadd71600 add 0 0E-19 -> 0E-19 +dqadd71601 add -0 0E-19 -> 0E-19 +dqadd71602 add 0 -0E-19 -> 0E-19 +dqadd71603 add -0 -0E-19 -> -0E-19 +-- exact zeros from non-zeros +dqadd71611 add -11 11 -> 0 +dqadd71612 add 11 -11 -> 0 + +rounding: half_down +-- exact zeros from zeros +dqadd71620 add 0 0E-19 -> 0E-19 +dqadd71621 add -0 0E-19 -> 0E-19 +dqadd71622 add 0 -0E-19 -> 0E-19 +dqadd71623 add -0 -0E-19 -> -0E-19 +-- exact zeros from non-zeros +dqadd71631 add -11 11 -> 0 +dqadd71632 add 11 -11 -> 0 + +rounding: half_even +-- exact zeros from zeros +dqadd71640 add 0 0E-19 -> 0E-19 +dqadd71641 add -0 0E-19 -> 0E-19 +dqadd71642 add 0 -0E-19 -> 0E-19 +dqadd71643 add -0 -0E-19 -> -0E-19 +-- exact zeros from non-zeros +dqadd71651 add -11 11 -> 0 +dqadd71652 add 11 -11 -> 0 + +rounding: up +-- exact zeros from zeros +dqadd71660 add 0 0E-19 -> 0E-19 +dqadd71661 add -0 0E-19 -> 0E-19 +dqadd71662 add 0 -0E-19 -> 0E-19 +dqadd71663 add -0 -0E-19 -> -0E-19 +-- exact zeros from non-zeros +dqadd71671 add -11 11 -> 0 +dqadd71672 add 11 -11 -> 0 + +rounding: down +-- exact zeros from zeros +dqadd71680 add 0 0E-19 -> 0E-19 +dqadd71681 add -0 0E-19 -> 0E-19 +dqadd71682 add 0 -0E-19 -> 0E-19 +dqadd71683 add -0 -0E-19 -> -0E-19 +-- exact zeros from non-zeros +dqadd71691 add -11 11 -> 0 +dqadd71692 add 11 -11 -> 0 + +rounding: ceiling +-- exact zeros from zeros +dqadd71700 add 0 0E-19 -> 0E-19 +dqadd71701 add -0 0E-19 -> 0E-19 +dqadd71702 add 0 -0E-19 -> 0E-19 +dqadd71703 add -0 -0E-19 -> -0E-19 +-- exact zeros from non-zeros +dqadd71711 add -11 11 -> 0 +dqadd71712 add 11 -11 -> 0 + +-- and the extra-special ugly case; unusual minuses marked by -- * +rounding: floor +-- exact zeros from zeros +dqadd71720 add 0 0E-19 -> 0E-19 +dqadd71721 add -0 0E-19 -> -0E-19 -- * +dqadd71722 add 0 -0E-19 -> -0E-19 -- * +dqadd71723 add -0 -0E-19 -> -0E-19 +-- exact zeros from non-zeros +dqadd71731 add -11 11 -> -0 -- * +dqadd71732 add 11 -11 -> -0 -- * + +-- Examples from SQL proposal (Krishna Kulkarni) +dqadd71741 add 130E-2 120E-2 -> 2.50 +dqadd71742 add 130E-2 12E-1 -> 2.50 +dqadd71743 add 130E-2 1E0 -> 2.30 +dqadd71744 add 1E2 1E4 -> 1.01E+4 +dqadd71745 add 130E-2 -120E-2 -> 0.10 +dqadd71746 add 130E-2 -12E-1 -> 0.10 +dqadd71747 add 130E-2 -1E0 -> 0.30 +dqadd71748 add 1E2 -1E4 -> -9.9E+3 + +-- Gappy coefficients; check residue handling even with full coefficient gap +rounding: half_even + +dqadd75001 add 1239876543211234567894567890123456 1 -> 1239876543211234567894567890123457 +dqadd75002 add 1239876543211234567894567890123456 0.6 -> 1239876543211234567894567890123457 Inexact Rounded +dqadd75003 add 1239876543211234567894567890123456 0.06 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd75004 add 1239876543211234567894567890123456 6E-3 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd75005 add 1239876543211234567894567890123456 6E-4 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd75006 add 1239876543211234567894567890123456 6E-5 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd75007 add 1239876543211234567894567890123456 6E-6 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd75008 add 1239876543211234567894567890123456 6E-7 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd75009 add 1239876543211234567894567890123456 6E-8 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd75010 add 1239876543211234567894567890123456 6E-9 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd75011 add 1239876543211234567894567890123456 6E-10 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd75012 add 1239876543211234567894567890123456 6E-11 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd75013 add 1239876543211234567894567890123456 6E-12 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd75014 add 1239876543211234567894567890123456 6E-13 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd75015 add 1239876543211234567894567890123456 6E-14 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd75016 add 1239876543211234567894567890123456 6E-15 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd75017 add 1239876543211234567894567890123456 6E-16 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd75018 add 1239876543211234567894567890123456 6E-17 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd75019 add 1239876543211234567894567890123456 6E-18 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd75020 add 1239876543211234567894567890123456 6E-19 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd75021 add 1239876543211234567894567890123456 6E-20 -> 1239876543211234567894567890123456 Inexact Rounded + +-- widening second argument at gap +dqadd75030 add 12398765432112345678945678 1 -> 12398765432112345678945679 +dqadd75031 add 12398765432112345678945678 0.1 -> 12398765432112345678945678.1 +dqadd75032 add 12398765432112345678945678 0.12 -> 12398765432112345678945678.12 +dqadd75033 add 12398765432112345678945678 0.123 -> 12398765432112345678945678.123 +dqadd75034 add 12398765432112345678945678 0.1234 -> 12398765432112345678945678.1234 +dqadd75035 add 12398765432112345678945678 0.12345 -> 12398765432112345678945678.12345 +dqadd75036 add 12398765432112345678945678 0.123456 -> 12398765432112345678945678.123456 +dqadd75037 add 12398765432112345678945678 0.1234567 -> 12398765432112345678945678.1234567 +dqadd75038 add 12398765432112345678945678 0.12345678 -> 12398765432112345678945678.12345678 +dqadd75039 add 12398765432112345678945678 0.123456789 -> 12398765432112345678945678.12345679 Inexact Rounded +dqadd75040 add 12398765432112345678945678 0.123456785 -> 12398765432112345678945678.12345678 Inexact Rounded +dqadd75041 add 12398765432112345678945678 0.1234567850 -> 12398765432112345678945678.12345678 Inexact Rounded +dqadd75042 add 12398765432112345678945678 0.1234567851 -> 12398765432112345678945678.12345679 Inexact Rounded +dqadd75043 add 12398765432112345678945678 0.12345678501 -> 12398765432112345678945678.12345679 Inexact Rounded +dqadd75044 add 12398765432112345678945678 0.123456785001 -> 12398765432112345678945678.12345679 Inexact Rounded +dqadd75045 add 12398765432112345678945678 0.1234567850001 -> 12398765432112345678945678.12345679 Inexact Rounded +dqadd75046 add 12398765432112345678945678 0.12345678500001 -> 12398765432112345678945678.12345679 Inexact Rounded +dqadd75047 add 12398765432112345678945678 0.123456785000001 -> 12398765432112345678945678.12345679 Inexact Rounded +dqadd75048 add 12398765432112345678945678 0.1234567850000001 -> 12398765432112345678945678.12345679 Inexact Rounded +dqadd75049 add 12398765432112345678945678 0.1234567850000000 -> 12398765432112345678945678.12345678 Inexact Rounded +-- 90123456 +rounding: half_even +dqadd75050 add 12398765432112345678945678 0.0234567750000000 -> 12398765432112345678945678.02345678 Inexact Rounded +dqadd75051 add 12398765432112345678945678 0.0034567750000000 -> 12398765432112345678945678.00345678 Inexact Rounded +dqadd75052 add 12398765432112345678945678 0.0004567750000000 -> 12398765432112345678945678.00045678 Inexact Rounded +dqadd75053 add 12398765432112345678945678 0.0000567750000000 -> 12398765432112345678945678.00005678 Inexact Rounded +dqadd75054 add 12398765432112345678945678 0.0000067750000000 -> 12398765432112345678945678.00000678 Inexact Rounded +dqadd75055 add 12398765432112345678945678 0.0000007750000000 -> 12398765432112345678945678.00000078 Inexact Rounded +dqadd75056 add 12398765432112345678945678 0.0000000750000000 -> 12398765432112345678945678.00000008 Inexact Rounded +dqadd75057 add 12398765432112345678945678 0.0000000050000000 -> 12398765432112345678945678.00000000 Inexact Rounded +dqadd75060 add 12398765432112345678945678 0.0234567750000001 -> 12398765432112345678945678.02345678 Inexact Rounded +dqadd75061 add 12398765432112345678945678 0.0034567750000001 -> 12398765432112345678945678.00345678 Inexact Rounded +dqadd75062 add 12398765432112345678945678 0.0004567750000001 -> 12398765432112345678945678.00045678 Inexact Rounded +dqadd75063 add 12398765432112345678945678 0.0000567750000001 -> 12398765432112345678945678.00005678 Inexact Rounded +dqadd75064 add 12398765432112345678945678 0.0000067750000001 -> 12398765432112345678945678.00000678 Inexact Rounded +dqadd75065 add 12398765432112345678945678 0.0000007750000001 -> 12398765432112345678945678.00000078 Inexact Rounded +dqadd75066 add 12398765432112345678945678 0.0000000750000001 -> 12398765432112345678945678.00000008 Inexact Rounded +dqadd75067 add 12398765432112345678945678 0.0000000050000001 -> 12398765432112345678945678.00000001 Inexact Rounded +-- far-out residues (full coefficient gap is 16+15 digits) +rounding: up +dqadd75070 add 12398765432112345678945678 1E-8 -> 12398765432112345678945678.00000001 +dqadd75071 add 12398765432112345678945678 1E-9 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd75072 add 12398765432112345678945678 1E-10 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd75073 add 12398765432112345678945678 1E-11 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd75074 add 12398765432112345678945678 1E-12 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd75075 add 12398765432112345678945678 1E-13 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd75076 add 12398765432112345678945678 1E-14 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd75077 add 12398765432112345678945678 1E-15 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd75078 add 12398765432112345678945678 1E-16 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd75079 add 12398765432112345678945678 1E-17 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd75080 add 12398765432112345678945678 1E-18 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd75081 add 12398765432112345678945678 1E-19 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd75082 add 12398765432112345678945678 1E-20 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd75083 add 12398765432112345678945678 1E-25 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd75084 add 12398765432112345678945678 1E-30 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd75085 add 12398765432112345678945678 1E-31 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd75086 add 12398765432112345678945678 1E-32 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd75087 add 12398765432112345678945678 1E-33 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd75088 add 12398765432112345678945678 1E-34 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd75089 add 12398765432112345678945678 1E-35 -> 12398765432112345678945678.00000001 Inexact Rounded + +-- Null tests +dqadd9990 add 10 # -> NaN Invalid_operation +dqadd9991 add # 10 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/dqAnd.decTest b/Lib/test/decimaltestdata/dqAnd.decTest index 57c416b48c..d609bc1c3b 100644 --- a/Lib/test/decimaltestdata/dqAnd.decTest +++ b/Lib/test/decimaltestdata/dqAnd.decTest @@ -1,420 +1,420 @@ -------------------------------------------------------------------------
--- dqAnd.decTest -- digitwise logical AND for decQuads --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
--- Sanity check (truth table)
-dqand001 and 0 0 -> 0
-dqand002 and 0 1 -> 0
-dqand003 and 1 0 -> 0
-dqand004 and 1 1 -> 1
-dqand005 and 1100 1010 -> 1000
--- and at msd and msd-1
--- 1234567890123456789012345678901234
-dqand006 and 0000000000000000000000000000000000 0000000000000000000000000000000000 -> 0
-dqand007 and 0000000000000000000000000000000000 1000000000000000000000000000000000 -> 0
-dqand008 and 1000000000000000000000000000000000 0000000000000000000000000000000000 -> 0
-dqand009 and 1000000000000000000000000000000000 1000000000000000000000000000000000 -> 1000000000000000000000000000000000
-dqand010 and 0000000000000000000000000000000000 0000000000000000000000000000000000 -> 0
-dqand011 and 0000000000000000000000000000000000 0100000000000000000000000000000000 -> 0
-dqand012 and 0100000000000000000000000000000000 0000000000000000000000000000000000 -> 0
-dqand013 and 0100000000000000000000000000000000 0100000000000000000000000000000000 -> 100000000000000000000000000000000
-
--- Various lengths
--- 1234567890123456789012345678901234
-
-dqand601 and 0111111111111111111111111111111111 1111111111111111111111111111111111 -> 111111111111111111111111111111111
-dqand602 and 1011111111111111111111111111111111 1111111111111111111111111111111111 -> 1011111111111111111111111111111111
-dqand603 and 1101111111111111111111111111111111 1111111111111111111111111111111111 -> 1101111111111111111111111111111111
-dqand604 and 1110111111111111111111111111111111 1111111111111111111111111111111111 -> 1110111111111111111111111111111111
-dqand605 and 1111011111111111111111111111111111 1111111111111111111111111111111111 -> 1111011111111111111111111111111111
-dqand606 and 1111101111111111111111111111111111 1111111111111111111111111111111111 -> 1111101111111111111111111111111111
-dqand607 and 1111110111111111111111111111111111 1111111111111111111111111111111111 -> 1111110111111111111111111111111111
-dqand608 and 1111111011111111111111111111111111 1111111111111111111111111111111111 -> 1111111011111111111111111111111111
-dqand609 and 1111111101111111111111111111111111 1111111111111111111111111111111111 -> 1111111101111111111111111111111111
-dqand610 and 1111111110111111111111111111111111 1111111111111111111111111111111111 -> 1111111110111111111111111111111111
-dqand611 and 1111111111011111111111111111111111 1111111111111111111111111111111111 -> 1111111111011111111111111111111111
-dqand612 and 1111111111101111111111111111111111 1111111111111111111111111111111111 -> 1111111111101111111111111111111111
-dqand613 and 1111111111110111111111111111111111 1111111111111111111111111111111111 -> 1111111111110111111111111111111111
-dqand614 and 1111111111111011111111111111111111 1111111111111111111111111111111111 -> 1111111111111011111111111111111111
-dqand615 and 1111111111111101111111111111111111 1111111111111111111111111111111111 -> 1111111111111101111111111111111111
-dqand616 and 1111111111111110111111111111111111 1111111111111111111111111111111111 -> 1111111111111110111111111111111111
-dqand617 and 1111111111111111011111111111111111 1111111111111111111111111111111111 -> 1111111111111111011111111111111111
-dqand618 and 1111111111111111101111111111111111 1111111111111111111111111111111111 -> 1111111111111111101111111111111111
-dqand619 and 1111111111111111110111111111111111 1111111111111111111111111111111111 -> 1111111111111111110111111111111111
-dqand620 and 1111111111111111111011111111111111 1111111111111111111111111111111111 -> 1111111111111111111011111111111111
-dqand621 and 1111111111111111111101111111111111 1111111111111111111111111111111111 -> 1111111111111111111101111111111111
-dqand622 and 1111111111111111111110111111111111 1111111111111111111111111111111111 -> 1111111111111111111110111111111111
-dqand623 and 1111111111111111111111011111111111 1111111111111111111111111111111111 -> 1111111111111111111111011111111111
-dqand624 and 1111111111111111111111101111111111 1111111111111111111111111111111111 -> 1111111111111111111111101111111111
-dqand625 and 1111111111111111111111110111111111 1111111111111111111111111111111111 -> 1111111111111111111111110111111111
-dqand626 and 1111111111111111111111111011111111 1111111111111111111111111111111111 -> 1111111111111111111111111011111111
-dqand627 and 1111111111111111111111111101111111 1111111111111111111111111111111111 -> 1111111111111111111111111101111111
-dqand628 and 1111111111111111111111111110111111 1111111111111111111111111111111111 -> 1111111111111111111111111110111111
-dqand629 and 1111111111111111111111111111011111 1111111111111111111111111111111111 -> 1111111111111111111111111111011111
-dqand630 and 1111111111111111111111111111101111 1111111111111111111111111111111111 -> 1111111111111111111111111111101111
-dqand631 and 1111111111111111111111111111110111 1111111111111111111111111111111111 -> 1111111111111111111111111111110111
-dqand632 and 1111111111111111111111111111111011 1111111111111111111111111111111111 -> 1111111111111111111111111111111011
-dqand633 and 1111111111111111111111111111111101 1111111111111111111111111111111111 -> 1111111111111111111111111111111101
-dqand634 and 1111111111111111111111111111111110 1111111111111111111111111111111111 -> 1111111111111111111111111111111110
-
-dqand641 and 1111111111111111111111111111111111 0111111111111111111111111111111111 -> 111111111111111111111111111111111
-dqand642 and 1111111111111111111111111111111111 1011111111111111111111111111111111 -> 1011111111111111111111111111111111
-dqand643 and 1111111111111111111111111111111111 1101111111111111111111111111111111 -> 1101111111111111111111111111111111
-dqand644 and 1111111111111111111111111111111111 1110111111111111111111111111111111 -> 1110111111111111111111111111111111
-dqand645 and 1111111111111111111111111111111111 1111011111111111111111111111111111 -> 1111011111111111111111111111111111
-dqand646 and 1111111111111111111111111111111111 1111101111111111111111111111111111 -> 1111101111111111111111111111111111
-dqand647 and 1111111111111111111111111111111111 1111110111111111111111111111111111 -> 1111110111111111111111111111111111
-dqand648 and 1111111111111111111111111111111111 1111111011111111111111111111111111 -> 1111111011111111111111111111111111
-dqand649 and 1111111111111111111111111111111111 1111111101111111111111111111111111 -> 1111111101111111111111111111111111
-dqand650 and 1111111111111111111111111111111111 1111111110111111111111111111111111 -> 1111111110111111111111111111111111
-dqand651 and 1111111111111111111111111111111111 1111111111011111111111111111111111 -> 1111111111011111111111111111111111
-dqand652 and 1111111111111111111111111111111111 1111111111101111111111111111111111 -> 1111111111101111111111111111111111
-dqand653 and 1111111111111111111111111111111111 1111111111110111111111111111111111 -> 1111111111110111111111111111111111
-dqand654 and 1111111111111111111111111111111111 1111111111111011111111111111111111 -> 1111111111111011111111111111111111
-dqand655 and 1111111111111111111111111111111111 1111111111111101111111111111111111 -> 1111111111111101111111111111111111
-dqand656 and 1111111111111111111111111111111111 1111111111111110111111111111111111 -> 1111111111111110111111111111111111
-dqand657 and 1111111111111111111111111111111111 1111111111111111011111111111111111 -> 1111111111111111011111111111111111
-dqand658 and 1111111111111111111111111111111111 1111111111111111101111111111111111 -> 1111111111111111101111111111111111
-dqand659 and 1111111111111111111111111111111111 1111111111111111110111111111111111 -> 1111111111111111110111111111111111
-dqand660 and 1111111111111111111111111111111111 1111111111111111111011111111111111 -> 1111111111111111111011111111111111
-dqand661 and 1111111111111111111111111111111111 1111111111111111111101111111111111 -> 1111111111111111111101111111111111
-dqand662 and 1111111111111111111111111111111111 1111111111111111111110111111111111 -> 1111111111111111111110111111111111
-dqand663 and 1111111111111111111111111111111111 1111111111111111111111011111111111 -> 1111111111111111111111011111111111
-dqand664 and 1111111111111111111111111111111111 1111111111111111111111101111111111 -> 1111111111111111111111101111111111
-dqand665 and 1111111111111111111111111111111111 1111111111111111111111110111111111 -> 1111111111111111111111110111111111
-dqand666 and 1111111111111111111111111111111111 1111111111111111111111111011111111 -> 1111111111111111111111111011111111
-dqand667 and 1111111111111111111111111111111111 1111111111111111111111111101111111 -> 1111111111111111111111111101111111
-dqand668 and 1111111111111111111111111111111111 1111111111111111111111111110111111 -> 1111111111111111111111111110111111
-dqand669 and 1111111111111111111111111111111111 1111111111111111111111111111011111 -> 1111111111111111111111111111011111
-dqand670 and 1111111111111111111111111111111111 1111111111111111111111111111101111 -> 1111111111111111111111111111101111
-dqand671 and 1111111111111111111111111111111111 1111111111111111111111111111110111 -> 1111111111111111111111111111110111
-dqand672 and 1111111111111111111111111111111111 1111111111111111111111111111111011 -> 1111111111111111111111111111111011
-dqand673 and 1111111111111111111111111111111111 1111111111111111111111111111111101 -> 1111111111111111111111111111111101
-dqand674 and 1111111111111111111111111111111111 1111111111111111111111111111111110 -> 1111111111111111111111111111111110
-dqand675 and 0111111111111111111111111111111111 1111111111111111111111111111111110 -> 111111111111111111111111111111110
-dqand676 and 1111111111111111111111111111111111 1111111111111111111111111111111110 -> 1111111111111111111111111111111110
-
-dqand021 and 1111111111111111 1111111111111111 -> 1111111111111111
-dqand024 and 1111111111111111 111111111111111 -> 111111111111111
-dqand025 and 1111111111111111 11111111111111 -> 11111111111111
-dqand026 and 1111111111111111 1111111111111 -> 1111111111111
-dqand027 and 1111111111111111 111111111111 -> 111111111111
-dqand028 and 1111111111111111 11111111111 -> 11111111111
-dqand029 and 1111111111111111 1111111111 -> 1111111111
-dqand030 and 1111111111111111 111111111 -> 111111111
-dqand031 and 1111111111111111 11111111 -> 11111111
-dqand032 and 1111111111111111 1111111 -> 1111111
-dqand033 and 1111111111111111 111111 -> 111111
-dqand034 and 1111111111111111 11111 -> 11111
-dqand035 and 1111111111111111 1111 -> 1111
-dqand036 and 1111111111111111 111 -> 111
-dqand037 and 1111111111111111 11 -> 11
-dqand038 and 1111111111111111 1 -> 1
-dqand039 and 1111111111111111 0 -> 0
-
-dqand040 and 1111111111111111 1111111111111111 -> 1111111111111111
-dqand041 and 111111111111111 1111111111111111 -> 111111111111111
-dqand042 and 111111111111111 1111111111111111 -> 111111111111111
-dqand043 and 11111111111111 1111111111111111 -> 11111111111111
-dqand044 and 1111111111111 1111111111111111 -> 1111111111111
-dqand045 and 111111111111 1111111111111111 -> 111111111111
-dqand046 and 11111111111 1111111111111111 -> 11111111111
-dqand047 and 1111111111 1111111111111111 -> 1111111111
-dqand048 and 111111111 1111111111111111 -> 111111111
-dqand049 and 11111111 1111111111111111 -> 11111111
-dqand050 and 1111111 1111111111111111 -> 1111111
-dqand051 and 111111 1111111111111111 -> 111111
-dqand052 and 11111 1111111111111111 -> 11111
-dqand053 and 1111 1111111111111111 -> 1111
-dqand054 and 111 1111111111111111 -> 111
-dqand055 and 11 1111111111111111 -> 11
-dqand056 and 1 1111111111111111 -> 1
-dqand057 and 0 1111111111111111 -> 0
-
-dqand150 and 1111111111 1 -> 1
-dqand151 and 111111111 1 -> 1
-dqand152 and 11111111 1 -> 1
-dqand153 and 1111111 1 -> 1
-dqand154 and 111111 1 -> 1
-dqand155 and 11111 1 -> 1
-dqand156 and 1111 1 -> 1
-dqand157 and 111 1 -> 1
-dqand158 and 11 1 -> 1
-dqand159 and 1 1 -> 1
-
-dqand160 and 1111111111 0 -> 0
-dqand161 and 111111111 0 -> 0
-dqand162 and 11111111 0 -> 0
-dqand163 and 1111111 0 -> 0
-dqand164 and 111111 0 -> 0
-dqand165 and 11111 0 -> 0
-dqand166 and 1111 0 -> 0
-dqand167 and 111 0 -> 0
-dqand168 and 11 0 -> 0
-dqand169 and 1 0 -> 0
-
-dqand170 and 1 1111111111 -> 1
-dqand171 and 1 111111111 -> 1
-dqand172 and 1 11111111 -> 1
-dqand173 and 1 1111111 -> 1
-dqand174 and 1 111111 -> 1
-dqand175 and 1 11111 -> 1
-dqand176 and 1 1111 -> 1
-dqand177 and 1 111 -> 1
-dqand178 and 1 11 -> 1
-dqand179 and 1 1 -> 1
-
-dqand180 and 0 1111111111 -> 0
-dqand181 and 0 111111111 -> 0
-dqand182 and 0 11111111 -> 0
-dqand183 and 0 1111111 -> 0
-dqand184 and 0 111111 -> 0
-dqand185 and 0 11111 -> 0
-dqand186 and 0 1111 -> 0
-dqand187 and 0 111 -> 0
-dqand188 and 0 11 -> 0
-dqand189 and 0 1 -> 0
-
-dqand090 and 011111111 111111111 -> 11111111
-dqand091 and 101111111 111111111 -> 101111111
-dqand092 and 110111111 111111111 -> 110111111
-dqand093 and 111011111 111111111 -> 111011111
-dqand094 and 111101111 111111111 -> 111101111
-dqand095 and 111110111 111111111 -> 111110111
-dqand096 and 111111011 111111111 -> 111111011
-dqand097 and 111111101 111111111 -> 111111101
-dqand098 and 111111110 111111111 -> 111111110
-
-dqand100 and 111111111 011111111 -> 11111111
-dqand101 and 111111111 101111111 -> 101111111
-dqand102 and 111111111 110111111 -> 110111111
-dqand103 and 111111111 111011111 -> 111011111
-dqand104 and 111111111 111101111 -> 111101111
-dqand105 and 111111111 111110111 -> 111110111
-dqand106 and 111111111 111111011 -> 111111011
-dqand107 and 111111111 111111101 -> 111111101
-dqand108 and 111111111 111111110 -> 111111110
-
--- non-0/1 should not be accepted, nor should signs
-dqand220 and 111111112 111111111 -> NaN Invalid_operation
-dqand221 and 333333333 333333333 -> NaN Invalid_operation
-dqand222 and 555555555 555555555 -> NaN Invalid_operation
-dqand223 and 777777777 777777777 -> NaN Invalid_operation
-dqand224 and 999999999 999999999 -> NaN Invalid_operation
-dqand225 and 222222222 999999999 -> NaN Invalid_operation
-dqand226 and 444444444 999999999 -> NaN Invalid_operation
-dqand227 and 666666666 999999999 -> NaN Invalid_operation
-dqand228 and 888888888 999999999 -> NaN Invalid_operation
-dqand229 and 999999999 222222222 -> NaN Invalid_operation
-dqand230 and 999999999 444444444 -> NaN Invalid_operation
-dqand231 and 999999999 666666666 -> NaN Invalid_operation
-dqand232 and 999999999 888888888 -> NaN Invalid_operation
--- a few randoms
-dqand240 and 567468689 -934981942 -> NaN Invalid_operation
-dqand241 and 567367689 934981942 -> NaN Invalid_operation
-dqand242 and -631917772 -706014634 -> NaN Invalid_operation
-dqand243 and -756253257 138579234 -> NaN Invalid_operation
-dqand244 and 835590149 567435400 -> NaN Invalid_operation
--- test MSD
-dqand250 and 2000000111000111000111000000000000 1000000111000111000111000000000000 -> NaN Invalid_operation
-dqand251 and 7000000111000111000111000000000000 1000000111000111000111000000000000 -> NaN Invalid_operation
-dqand252 and 8000000111000111000111000000000000 1000000111000111000111000000000000 -> NaN Invalid_operation
-dqand253 and 9000000111000111000111000000000000 1000000111000111000111000000000000 -> NaN Invalid_operation
-dqand254 and 2000000111000111000111000000000000 0000000111000111000111000000000000 -> NaN Invalid_operation
-dqand255 and 7000000111000111000111000000000000 0000000111000111000111000000000000 -> NaN Invalid_operation
-dqand256 and 8000000111000111000111000000000000 0000000111000111000111000000000000 -> NaN Invalid_operation
-dqand257 and 9000000111000111000111000000000000 0000000111000111000111000000000000 -> NaN Invalid_operation
-dqand258 and 1000000111000111000111000000000000 2000000111000111000111000000000000 -> NaN Invalid_operation
-dqand259 and 1000000111000111000111000000000000 7000000111000111000111000000000000 -> NaN Invalid_operation
-dqand260 and 1000000111000111000111000000000000 8000000111000111000111000000000000 -> NaN Invalid_operation
-dqand261 and 1000000111000111000111000000000000 9000000111000111000111000000000000 -> NaN Invalid_operation
-dqand262 and 0000000111000111000111000000000000 2000000111000111000111000000000000 -> NaN Invalid_operation
-dqand263 and 0000000111000111000111000000000000 7000000111000111000111000000000000 -> NaN Invalid_operation
-dqand264 and 0000000111000111000111000000000000 8000000111000111000111000000000000 -> NaN Invalid_operation
-dqand265 and 0000000111000111000111000000000000 9000000111000111000111000000000000 -> NaN Invalid_operation
--- test MSD-1
-dqand270 and 0200000111000111000111001000000000 1000000111000111000111100000000010 -> NaN Invalid_operation
-dqand271 and 0700000111000111000111000100000000 1000000111000111000111010000000100 -> NaN Invalid_operation
-dqand272 and 0800000111000111000111000010000000 1000000111000111000111001000001000 -> NaN Invalid_operation
-dqand273 and 0900000111000111000111000001000000 1000000111000111000111000100010000 -> NaN Invalid_operation
-dqand274 and 1000000111000111000111000000100000 0200000111000111000111000010100000 -> NaN Invalid_operation
-dqand275 and 1000000111000111000111000000010000 0700000111000111000111000001000000 -> NaN Invalid_operation
-dqand276 and 1000000111000111000111000000001000 0800000111000111000111000010100000 -> NaN Invalid_operation
-dqand277 and 1000000111000111000111000000000100 0900000111000111000111000000010000 -> NaN Invalid_operation
--- test LSD
-dqand280 and 0010000111000111000111000000000002 1000000111000111000111000100000001 -> NaN Invalid_operation
-dqand281 and 0001000111000111000111000000000007 1000000111000111000111001000000011 -> NaN Invalid_operation
-dqand282 and 0000000111000111000111100000000008 1000000111000111000111010000000001 -> NaN Invalid_operation
-dqand283 and 0000000111000111000111010000000009 1000000111000111000111100000000001 -> NaN Invalid_operation
-dqand284 and 1000000111000111000111001000000000 0001000111000111000111000000000002 -> NaN Invalid_operation
-dqand285 and 1000000111000111000111000100000000 0010000111000111000111000000000007 -> NaN Invalid_operation
-dqand286 and 1000000111000111000111000010000000 0100000111000111000111000000000008 -> NaN Invalid_operation
-dqand287 and 1000000111000111000111000001000000 1000000111000111000111000000000009 -> NaN Invalid_operation
--- test Middie
-dqand288 and 0010000111000111000111000020000000 1000000111000111000111001000000000 -> NaN Invalid_operation
-dqand289 and 0001000111000111000111000070000001 1000000111000111000111000100000000 -> NaN Invalid_operation
-dqand290 and 0000000111000111000111100080000010 1000000111000111000111000010000000 -> NaN Invalid_operation
-dqand291 and 0000000111000111000111010090000100 1000000111000111000111000001000000 -> NaN Invalid_operation
-dqand292 and 1000000111000111000111001000001000 0000000111000111000111000020100000 -> NaN Invalid_operation
-dqand293 and 1000000111000111000111000100010000 0000000111000111000111000070010000 -> NaN Invalid_operation
-dqand294 and 1000000111000111000111000010100000 0000000111000111000111000080001000 -> NaN Invalid_operation
-dqand295 and 1000000111000111000111000001000000 0000000111000111000111000090000100 -> NaN Invalid_operation
--- signs
-dqand296 and -1000000111000111000111000001000000 -0000001110001110001110010000000100 -> NaN Invalid_operation
-dqand297 and -1000000111000111000111000001000000 0000001110001110001110000010000100 -> NaN Invalid_operation
-dqand298 and 1000000111000111000111000001000000 -0000001110001110001110001000000100 -> NaN Invalid_operation
-dqand299 and 1000000111000111000111000001000000 0000001110001110001110000011000100 -> 110000110000110000001000000
-
--- Nmax, Nmin, Ntiny-like
-dqand331 and 2 9.99999999E+999 -> NaN Invalid_operation
-dqand332 and 3 1E-999 -> NaN Invalid_operation
-dqand333 and 4 1.00000000E-999 -> NaN Invalid_operation
-dqand334 and 5 1E-900 -> NaN Invalid_operation
-dqand335 and 6 -1E-900 -> NaN Invalid_operation
-dqand336 and 7 -1.00000000E-999 -> NaN Invalid_operation
-dqand337 and 8 -1E-999 -> NaN Invalid_operation
-dqand338 and 9 -9.99999999E+999 -> NaN Invalid_operation
-dqand341 and 9.99999999E+999 -18 -> NaN Invalid_operation
-dqand342 and 1E-999 01 -> NaN Invalid_operation
-dqand343 and 1.00000000E-999 -18 -> NaN Invalid_operation
-dqand344 and 1E-900 18 -> NaN Invalid_operation
-dqand345 and -1E-900 -10 -> NaN Invalid_operation
-dqand346 and -1.00000000E-999 18 -> NaN Invalid_operation
-dqand347 and -1E-999 10 -> NaN Invalid_operation
-dqand348 and -9.99999999E+999 -18 -> NaN Invalid_operation
-
--- A few other non-integers
-dqand361 and 1.0 1 -> NaN Invalid_operation
-dqand362 and 1E+1 1 -> NaN Invalid_operation
-dqand363 and 0.0 1 -> NaN Invalid_operation
-dqand364 and 0E+1 1 -> NaN Invalid_operation
-dqand365 and 9.9 1 -> NaN Invalid_operation
-dqand366 and 9E+1 1 -> NaN Invalid_operation
-dqand371 and 0 1.0 -> NaN Invalid_operation
-dqand372 and 0 1E+1 -> NaN Invalid_operation
-dqand373 and 0 0.0 -> NaN Invalid_operation
-dqand374 and 0 0E+1 -> NaN Invalid_operation
-dqand375 and 0 9.9 -> NaN Invalid_operation
-dqand376 and 0 9E+1 -> NaN Invalid_operation
-
--- All Specials are in error
-dqand780 and -Inf -Inf -> NaN Invalid_operation
-dqand781 and -Inf -1000 -> NaN Invalid_operation
-dqand782 and -Inf -1 -> NaN Invalid_operation
-dqand783 and -Inf -0 -> NaN Invalid_operation
-dqand784 and -Inf 0 -> NaN Invalid_operation
-dqand785 and -Inf 1 -> NaN Invalid_operation
-dqand786 and -Inf 1000 -> NaN Invalid_operation
-dqand787 and -1000 -Inf -> NaN Invalid_operation
-dqand788 and -Inf -Inf -> NaN Invalid_operation
-dqand789 and -1 -Inf -> NaN Invalid_operation
-dqand790 and -0 -Inf -> NaN Invalid_operation
-dqand791 and 0 -Inf -> NaN Invalid_operation
-dqand792 and 1 -Inf -> NaN Invalid_operation
-dqand793 and 1000 -Inf -> NaN Invalid_operation
-dqand794 and Inf -Inf -> NaN Invalid_operation
-
-dqand800 and Inf -Inf -> NaN Invalid_operation
-dqand801 and Inf -1000 -> NaN Invalid_operation
-dqand802 and Inf -1 -> NaN Invalid_operation
-dqand803 and Inf -0 -> NaN Invalid_operation
-dqand804 and Inf 0 -> NaN Invalid_operation
-dqand805 and Inf 1 -> NaN Invalid_operation
-dqand806 and Inf 1000 -> NaN Invalid_operation
-dqand807 and Inf Inf -> NaN Invalid_operation
-dqand808 and -1000 Inf -> NaN Invalid_operation
-dqand809 and -Inf Inf -> NaN Invalid_operation
-dqand810 and -1 Inf -> NaN Invalid_operation
-dqand811 and -0 Inf -> NaN Invalid_operation
-dqand812 and 0 Inf -> NaN Invalid_operation
-dqand813 and 1 Inf -> NaN Invalid_operation
-dqand814 and 1000 Inf -> NaN Invalid_operation
-dqand815 and Inf Inf -> NaN Invalid_operation
-
-dqand821 and NaN -Inf -> NaN Invalid_operation
-dqand822 and NaN -1000 -> NaN Invalid_operation
-dqand823 and NaN -1 -> NaN Invalid_operation
-dqand824 and NaN -0 -> NaN Invalid_operation
-dqand825 and NaN 0 -> NaN Invalid_operation
-dqand826 and NaN 1 -> NaN Invalid_operation
-dqand827 and NaN 1000 -> NaN Invalid_operation
-dqand828 and NaN Inf -> NaN Invalid_operation
-dqand829 and NaN NaN -> NaN Invalid_operation
-dqand830 and -Inf NaN -> NaN Invalid_operation
-dqand831 and -1000 NaN -> NaN Invalid_operation
-dqand832 and -1 NaN -> NaN Invalid_operation
-dqand833 and -0 NaN -> NaN Invalid_operation
-dqand834 and 0 NaN -> NaN Invalid_operation
-dqand835 and 1 NaN -> NaN Invalid_operation
-dqand836 and 1000 NaN -> NaN Invalid_operation
-dqand837 and Inf NaN -> NaN Invalid_operation
-
-dqand841 and sNaN -Inf -> NaN Invalid_operation
-dqand842 and sNaN -1000 -> NaN Invalid_operation
-dqand843 and sNaN -1 -> NaN Invalid_operation
-dqand844 and sNaN -0 -> NaN Invalid_operation
-dqand845 and sNaN 0 -> NaN Invalid_operation
-dqand846 and sNaN 1 -> NaN Invalid_operation
-dqand847 and sNaN 1000 -> NaN Invalid_operation
-dqand848 and sNaN NaN -> NaN Invalid_operation
-dqand849 and sNaN sNaN -> NaN Invalid_operation
-dqand850 and NaN sNaN -> NaN Invalid_operation
-dqand851 and -Inf sNaN -> NaN Invalid_operation
-dqand852 and -1000 sNaN -> NaN Invalid_operation
-dqand853 and -1 sNaN -> NaN Invalid_operation
-dqand854 and -0 sNaN -> NaN Invalid_operation
-dqand855 and 0 sNaN -> NaN Invalid_operation
-dqand856 and 1 sNaN -> NaN Invalid_operation
-dqand857 and 1000 sNaN -> NaN Invalid_operation
-dqand858 and Inf sNaN -> NaN Invalid_operation
-dqand859 and NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-dqand861 and NaN1 -Inf -> NaN Invalid_operation
-dqand862 and +NaN2 -1000 -> NaN Invalid_operation
-dqand863 and NaN3 1000 -> NaN Invalid_operation
-dqand864 and NaN4 Inf -> NaN Invalid_operation
-dqand865 and NaN5 +NaN6 -> NaN Invalid_operation
-dqand866 and -Inf NaN7 -> NaN Invalid_operation
-dqand867 and -1000 NaN8 -> NaN Invalid_operation
-dqand868 and 1000 NaN9 -> NaN Invalid_operation
-dqand869 and Inf +NaN10 -> NaN Invalid_operation
-dqand871 and sNaN11 -Inf -> NaN Invalid_operation
-dqand872 and sNaN12 -1000 -> NaN Invalid_operation
-dqand873 and sNaN13 1000 -> NaN Invalid_operation
-dqand874 and sNaN14 NaN17 -> NaN Invalid_operation
-dqand875 and sNaN15 sNaN18 -> NaN Invalid_operation
-dqand876 and NaN16 sNaN19 -> NaN Invalid_operation
-dqand877 and -Inf +sNaN20 -> NaN Invalid_operation
-dqand878 and -1000 sNaN21 -> NaN Invalid_operation
-dqand879 and 1000 sNaN22 -> NaN Invalid_operation
-dqand880 and Inf sNaN23 -> NaN Invalid_operation
-dqand881 and +NaN25 +sNaN24 -> NaN Invalid_operation
-dqand882 and -NaN26 NaN28 -> NaN Invalid_operation
-dqand883 and -sNaN27 sNaN29 -> NaN Invalid_operation
-dqand884 and 1000 -NaN30 -> NaN Invalid_operation
-dqand885 and 1000 -sNaN31 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- dqAnd.decTest -- digitwise logical AND for decQuads -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +-- Sanity check (truth table) +dqand001 and 0 0 -> 0 +dqand002 and 0 1 -> 0 +dqand003 and 1 0 -> 0 +dqand004 and 1 1 -> 1 +dqand005 and 1100 1010 -> 1000 +-- and at msd and msd-1 +-- 1234567890123456789012345678901234 +dqand006 and 0000000000000000000000000000000000 0000000000000000000000000000000000 -> 0 +dqand007 and 0000000000000000000000000000000000 1000000000000000000000000000000000 -> 0 +dqand008 and 1000000000000000000000000000000000 0000000000000000000000000000000000 -> 0 +dqand009 and 1000000000000000000000000000000000 1000000000000000000000000000000000 -> 1000000000000000000000000000000000 +dqand010 and 0000000000000000000000000000000000 0000000000000000000000000000000000 -> 0 +dqand011 and 0000000000000000000000000000000000 0100000000000000000000000000000000 -> 0 +dqand012 and 0100000000000000000000000000000000 0000000000000000000000000000000000 -> 0 +dqand013 and 0100000000000000000000000000000000 0100000000000000000000000000000000 -> 100000000000000000000000000000000 + +-- Various lengths +-- 1234567890123456789012345678901234 + +dqand601 and 0111111111111111111111111111111111 1111111111111111111111111111111111 -> 111111111111111111111111111111111 +dqand602 and 1011111111111111111111111111111111 1111111111111111111111111111111111 -> 1011111111111111111111111111111111 +dqand603 and 1101111111111111111111111111111111 1111111111111111111111111111111111 -> 1101111111111111111111111111111111 +dqand604 and 1110111111111111111111111111111111 1111111111111111111111111111111111 -> 1110111111111111111111111111111111 +dqand605 and 1111011111111111111111111111111111 1111111111111111111111111111111111 -> 1111011111111111111111111111111111 +dqand606 and 1111101111111111111111111111111111 1111111111111111111111111111111111 -> 1111101111111111111111111111111111 +dqand607 and 1111110111111111111111111111111111 1111111111111111111111111111111111 -> 1111110111111111111111111111111111 +dqand608 and 1111111011111111111111111111111111 1111111111111111111111111111111111 -> 1111111011111111111111111111111111 +dqand609 and 1111111101111111111111111111111111 1111111111111111111111111111111111 -> 1111111101111111111111111111111111 +dqand610 and 1111111110111111111111111111111111 1111111111111111111111111111111111 -> 1111111110111111111111111111111111 +dqand611 and 1111111111011111111111111111111111 1111111111111111111111111111111111 -> 1111111111011111111111111111111111 +dqand612 and 1111111111101111111111111111111111 1111111111111111111111111111111111 -> 1111111111101111111111111111111111 +dqand613 and 1111111111110111111111111111111111 1111111111111111111111111111111111 -> 1111111111110111111111111111111111 +dqand614 and 1111111111111011111111111111111111 1111111111111111111111111111111111 -> 1111111111111011111111111111111111 +dqand615 and 1111111111111101111111111111111111 1111111111111111111111111111111111 -> 1111111111111101111111111111111111 +dqand616 and 1111111111111110111111111111111111 1111111111111111111111111111111111 -> 1111111111111110111111111111111111 +dqand617 and 1111111111111111011111111111111111 1111111111111111111111111111111111 -> 1111111111111111011111111111111111 +dqand618 and 1111111111111111101111111111111111 1111111111111111111111111111111111 -> 1111111111111111101111111111111111 +dqand619 and 1111111111111111110111111111111111 1111111111111111111111111111111111 -> 1111111111111111110111111111111111 +dqand620 and 1111111111111111111011111111111111 1111111111111111111111111111111111 -> 1111111111111111111011111111111111 +dqand621 and 1111111111111111111101111111111111 1111111111111111111111111111111111 -> 1111111111111111111101111111111111 +dqand622 and 1111111111111111111110111111111111 1111111111111111111111111111111111 -> 1111111111111111111110111111111111 +dqand623 and 1111111111111111111111011111111111 1111111111111111111111111111111111 -> 1111111111111111111111011111111111 +dqand624 and 1111111111111111111111101111111111 1111111111111111111111111111111111 -> 1111111111111111111111101111111111 +dqand625 and 1111111111111111111111110111111111 1111111111111111111111111111111111 -> 1111111111111111111111110111111111 +dqand626 and 1111111111111111111111111011111111 1111111111111111111111111111111111 -> 1111111111111111111111111011111111 +dqand627 and 1111111111111111111111111101111111 1111111111111111111111111111111111 -> 1111111111111111111111111101111111 +dqand628 and 1111111111111111111111111110111111 1111111111111111111111111111111111 -> 1111111111111111111111111110111111 +dqand629 and 1111111111111111111111111111011111 1111111111111111111111111111111111 -> 1111111111111111111111111111011111 +dqand630 and 1111111111111111111111111111101111 1111111111111111111111111111111111 -> 1111111111111111111111111111101111 +dqand631 and 1111111111111111111111111111110111 1111111111111111111111111111111111 -> 1111111111111111111111111111110111 +dqand632 and 1111111111111111111111111111111011 1111111111111111111111111111111111 -> 1111111111111111111111111111111011 +dqand633 and 1111111111111111111111111111111101 1111111111111111111111111111111111 -> 1111111111111111111111111111111101 +dqand634 and 1111111111111111111111111111111110 1111111111111111111111111111111111 -> 1111111111111111111111111111111110 + +dqand641 and 1111111111111111111111111111111111 0111111111111111111111111111111111 -> 111111111111111111111111111111111 +dqand642 and 1111111111111111111111111111111111 1011111111111111111111111111111111 -> 1011111111111111111111111111111111 +dqand643 and 1111111111111111111111111111111111 1101111111111111111111111111111111 -> 1101111111111111111111111111111111 +dqand644 and 1111111111111111111111111111111111 1110111111111111111111111111111111 -> 1110111111111111111111111111111111 +dqand645 and 1111111111111111111111111111111111 1111011111111111111111111111111111 -> 1111011111111111111111111111111111 +dqand646 and 1111111111111111111111111111111111 1111101111111111111111111111111111 -> 1111101111111111111111111111111111 +dqand647 and 1111111111111111111111111111111111 1111110111111111111111111111111111 -> 1111110111111111111111111111111111 +dqand648 and 1111111111111111111111111111111111 1111111011111111111111111111111111 -> 1111111011111111111111111111111111 +dqand649 and 1111111111111111111111111111111111 1111111101111111111111111111111111 -> 1111111101111111111111111111111111 +dqand650 and 1111111111111111111111111111111111 1111111110111111111111111111111111 -> 1111111110111111111111111111111111 +dqand651 and 1111111111111111111111111111111111 1111111111011111111111111111111111 -> 1111111111011111111111111111111111 +dqand652 and 1111111111111111111111111111111111 1111111111101111111111111111111111 -> 1111111111101111111111111111111111 +dqand653 and 1111111111111111111111111111111111 1111111111110111111111111111111111 -> 1111111111110111111111111111111111 +dqand654 and 1111111111111111111111111111111111 1111111111111011111111111111111111 -> 1111111111111011111111111111111111 +dqand655 and 1111111111111111111111111111111111 1111111111111101111111111111111111 -> 1111111111111101111111111111111111 +dqand656 and 1111111111111111111111111111111111 1111111111111110111111111111111111 -> 1111111111111110111111111111111111 +dqand657 and 1111111111111111111111111111111111 1111111111111111011111111111111111 -> 1111111111111111011111111111111111 +dqand658 and 1111111111111111111111111111111111 1111111111111111101111111111111111 -> 1111111111111111101111111111111111 +dqand659 and 1111111111111111111111111111111111 1111111111111111110111111111111111 -> 1111111111111111110111111111111111 +dqand660 and 1111111111111111111111111111111111 1111111111111111111011111111111111 -> 1111111111111111111011111111111111 +dqand661 and 1111111111111111111111111111111111 1111111111111111111101111111111111 -> 1111111111111111111101111111111111 +dqand662 and 1111111111111111111111111111111111 1111111111111111111110111111111111 -> 1111111111111111111110111111111111 +dqand663 and 1111111111111111111111111111111111 1111111111111111111111011111111111 -> 1111111111111111111111011111111111 +dqand664 and 1111111111111111111111111111111111 1111111111111111111111101111111111 -> 1111111111111111111111101111111111 +dqand665 and 1111111111111111111111111111111111 1111111111111111111111110111111111 -> 1111111111111111111111110111111111 +dqand666 and 1111111111111111111111111111111111 1111111111111111111111111011111111 -> 1111111111111111111111111011111111 +dqand667 and 1111111111111111111111111111111111 1111111111111111111111111101111111 -> 1111111111111111111111111101111111 +dqand668 and 1111111111111111111111111111111111 1111111111111111111111111110111111 -> 1111111111111111111111111110111111 +dqand669 and 1111111111111111111111111111111111 1111111111111111111111111111011111 -> 1111111111111111111111111111011111 +dqand670 and 1111111111111111111111111111111111 1111111111111111111111111111101111 -> 1111111111111111111111111111101111 +dqand671 and 1111111111111111111111111111111111 1111111111111111111111111111110111 -> 1111111111111111111111111111110111 +dqand672 and 1111111111111111111111111111111111 1111111111111111111111111111111011 -> 1111111111111111111111111111111011 +dqand673 and 1111111111111111111111111111111111 1111111111111111111111111111111101 -> 1111111111111111111111111111111101 +dqand674 and 1111111111111111111111111111111111 1111111111111111111111111111111110 -> 1111111111111111111111111111111110 +dqand675 and 0111111111111111111111111111111111 1111111111111111111111111111111110 -> 111111111111111111111111111111110 +dqand676 and 1111111111111111111111111111111111 1111111111111111111111111111111110 -> 1111111111111111111111111111111110 + +dqand021 and 1111111111111111 1111111111111111 -> 1111111111111111 +dqand024 and 1111111111111111 111111111111111 -> 111111111111111 +dqand025 and 1111111111111111 11111111111111 -> 11111111111111 +dqand026 and 1111111111111111 1111111111111 -> 1111111111111 +dqand027 and 1111111111111111 111111111111 -> 111111111111 +dqand028 and 1111111111111111 11111111111 -> 11111111111 +dqand029 and 1111111111111111 1111111111 -> 1111111111 +dqand030 and 1111111111111111 111111111 -> 111111111 +dqand031 and 1111111111111111 11111111 -> 11111111 +dqand032 and 1111111111111111 1111111 -> 1111111 +dqand033 and 1111111111111111 111111 -> 111111 +dqand034 and 1111111111111111 11111 -> 11111 +dqand035 and 1111111111111111 1111 -> 1111 +dqand036 and 1111111111111111 111 -> 111 +dqand037 and 1111111111111111 11 -> 11 +dqand038 and 1111111111111111 1 -> 1 +dqand039 and 1111111111111111 0 -> 0 + +dqand040 and 1111111111111111 1111111111111111 -> 1111111111111111 +dqand041 and 111111111111111 1111111111111111 -> 111111111111111 +dqand042 and 111111111111111 1111111111111111 -> 111111111111111 +dqand043 and 11111111111111 1111111111111111 -> 11111111111111 +dqand044 and 1111111111111 1111111111111111 -> 1111111111111 +dqand045 and 111111111111 1111111111111111 -> 111111111111 +dqand046 and 11111111111 1111111111111111 -> 11111111111 +dqand047 and 1111111111 1111111111111111 -> 1111111111 +dqand048 and 111111111 1111111111111111 -> 111111111 +dqand049 and 11111111 1111111111111111 -> 11111111 +dqand050 and 1111111 1111111111111111 -> 1111111 +dqand051 and 111111 1111111111111111 -> 111111 +dqand052 and 11111 1111111111111111 -> 11111 +dqand053 and 1111 1111111111111111 -> 1111 +dqand054 and 111 1111111111111111 -> 111 +dqand055 and 11 1111111111111111 -> 11 +dqand056 and 1 1111111111111111 -> 1 +dqand057 and 0 1111111111111111 -> 0 + +dqand150 and 1111111111 1 -> 1 +dqand151 and 111111111 1 -> 1 +dqand152 and 11111111 1 -> 1 +dqand153 and 1111111 1 -> 1 +dqand154 and 111111 1 -> 1 +dqand155 and 11111 1 -> 1 +dqand156 and 1111 1 -> 1 +dqand157 and 111 1 -> 1 +dqand158 and 11 1 -> 1 +dqand159 and 1 1 -> 1 + +dqand160 and 1111111111 0 -> 0 +dqand161 and 111111111 0 -> 0 +dqand162 and 11111111 0 -> 0 +dqand163 and 1111111 0 -> 0 +dqand164 and 111111 0 -> 0 +dqand165 and 11111 0 -> 0 +dqand166 and 1111 0 -> 0 +dqand167 and 111 0 -> 0 +dqand168 and 11 0 -> 0 +dqand169 and 1 0 -> 0 + +dqand170 and 1 1111111111 -> 1 +dqand171 and 1 111111111 -> 1 +dqand172 and 1 11111111 -> 1 +dqand173 and 1 1111111 -> 1 +dqand174 and 1 111111 -> 1 +dqand175 and 1 11111 -> 1 +dqand176 and 1 1111 -> 1 +dqand177 and 1 111 -> 1 +dqand178 and 1 11 -> 1 +dqand179 and 1 1 -> 1 + +dqand180 and 0 1111111111 -> 0 +dqand181 and 0 111111111 -> 0 +dqand182 and 0 11111111 -> 0 +dqand183 and 0 1111111 -> 0 +dqand184 and 0 111111 -> 0 +dqand185 and 0 11111 -> 0 +dqand186 and 0 1111 -> 0 +dqand187 and 0 111 -> 0 +dqand188 and 0 11 -> 0 +dqand189 and 0 1 -> 0 + +dqand090 and 011111111 111111111 -> 11111111 +dqand091 and 101111111 111111111 -> 101111111 +dqand092 and 110111111 111111111 -> 110111111 +dqand093 and 111011111 111111111 -> 111011111 +dqand094 and 111101111 111111111 -> 111101111 +dqand095 and 111110111 111111111 -> 111110111 +dqand096 and 111111011 111111111 -> 111111011 +dqand097 and 111111101 111111111 -> 111111101 +dqand098 and 111111110 111111111 -> 111111110 + +dqand100 and 111111111 011111111 -> 11111111 +dqand101 and 111111111 101111111 -> 101111111 +dqand102 and 111111111 110111111 -> 110111111 +dqand103 and 111111111 111011111 -> 111011111 +dqand104 and 111111111 111101111 -> 111101111 +dqand105 and 111111111 111110111 -> 111110111 +dqand106 and 111111111 111111011 -> 111111011 +dqand107 and 111111111 111111101 -> 111111101 +dqand108 and 111111111 111111110 -> 111111110 + +-- non-0/1 should not be accepted, nor should signs +dqand220 and 111111112 111111111 -> NaN Invalid_operation +dqand221 and 333333333 333333333 -> NaN Invalid_operation +dqand222 and 555555555 555555555 -> NaN Invalid_operation +dqand223 and 777777777 777777777 -> NaN Invalid_operation +dqand224 and 999999999 999999999 -> NaN Invalid_operation +dqand225 and 222222222 999999999 -> NaN Invalid_operation +dqand226 and 444444444 999999999 -> NaN Invalid_operation +dqand227 and 666666666 999999999 -> NaN Invalid_operation +dqand228 and 888888888 999999999 -> NaN Invalid_operation +dqand229 and 999999999 222222222 -> NaN Invalid_operation +dqand230 and 999999999 444444444 -> NaN Invalid_operation +dqand231 and 999999999 666666666 -> NaN Invalid_operation +dqand232 and 999999999 888888888 -> NaN Invalid_operation +-- a few randoms +dqand240 and 567468689 -934981942 -> NaN Invalid_operation +dqand241 and 567367689 934981942 -> NaN Invalid_operation +dqand242 and -631917772 -706014634 -> NaN Invalid_operation +dqand243 and -756253257 138579234 -> NaN Invalid_operation +dqand244 and 835590149 567435400 -> NaN Invalid_operation +-- test MSD +dqand250 and 2000000111000111000111000000000000 1000000111000111000111000000000000 -> NaN Invalid_operation +dqand251 and 7000000111000111000111000000000000 1000000111000111000111000000000000 -> NaN Invalid_operation +dqand252 and 8000000111000111000111000000000000 1000000111000111000111000000000000 -> NaN Invalid_operation +dqand253 and 9000000111000111000111000000000000 1000000111000111000111000000000000 -> NaN Invalid_operation +dqand254 and 2000000111000111000111000000000000 0000000111000111000111000000000000 -> NaN Invalid_operation +dqand255 and 7000000111000111000111000000000000 0000000111000111000111000000000000 -> NaN Invalid_operation +dqand256 and 8000000111000111000111000000000000 0000000111000111000111000000000000 -> NaN Invalid_operation +dqand257 and 9000000111000111000111000000000000 0000000111000111000111000000000000 -> NaN Invalid_operation +dqand258 and 1000000111000111000111000000000000 2000000111000111000111000000000000 -> NaN Invalid_operation +dqand259 and 1000000111000111000111000000000000 7000000111000111000111000000000000 -> NaN Invalid_operation +dqand260 and 1000000111000111000111000000000000 8000000111000111000111000000000000 -> NaN Invalid_operation +dqand261 and 1000000111000111000111000000000000 9000000111000111000111000000000000 -> NaN Invalid_operation +dqand262 and 0000000111000111000111000000000000 2000000111000111000111000000000000 -> NaN Invalid_operation +dqand263 and 0000000111000111000111000000000000 7000000111000111000111000000000000 -> NaN Invalid_operation +dqand264 and 0000000111000111000111000000000000 8000000111000111000111000000000000 -> NaN Invalid_operation +dqand265 and 0000000111000111000111000000000000 9000000111000111000111000000000000 -> NaN Invalid_operation +-- test MSD-1 +dqand270 and 0200000111000111000111001000000000 1000000111000111000111100000000010 -> NaN Invalid_operation +dqand271 and 0700000111000111000111000100000000 1000000111000111000111010000000100 -> NaN Invalid_operation +dqand272 and 0800000111000111000111000010000000 1000000111000111000111001000001000 -> NaN Invalid_operation +dqand273 and 0900000111000111000111000001000000 1000000111000111000111000100010000 -> NaN Invalid_operation +dqand274 and 1000000111000111000111000000100000 0200000111000111000111000010100000 -> NaN Invalid_operation +dqand275 and 1000000111000111000111000000010000 0700000111000111000111000001000000 -> NaN Invalid_operation +dqand276 and 1000000111000111000111000000001000 0800000111000111000111000010100000 -> NaN Invalid_operation +dqand277 and 1000000111000111000111000000000100 0900000111000111000111000000010000 -> NaN Invalid_operation +-- test LSD +dqand280 and 0010000111000111000111000000000002 1000000111000111000111000100000001 -> NaN Invalid_operation +dqand281 and 0001000111000111000111000000000007 1000000111000111000111001000000011 -> NaN Invalid_operation +dqand282 and 0000000111000111000111100000000008 1000000111000111000111010000000001 -> NaN Invalid_operation +dqand283 and 0000000111000111000111010000000009 1000000111000111000111100000000001 -> NaN Invalid_operation +dqand284 and 1000000111000111000111001000000000 0001000111000111000111000000000002 -> NaN Invalid_operation +dqand285 and 1000000111000111000111000100000000 0010000111000111000111000000000007 -> NaN Invalid_operation +dqand286 and 1000000111000111000111000010000000 0100000111000111000111000000000008 -> NaN Invalid_operation +dqand287 and 1000000111000111000111000001000000 1000000111000111000111000000000009 -> NaN Invalid_operation +-- test Middie +dqand288 and 0010000111000111000111000020000000 1000000111000111000111001000000000 -> NaN Invalid_operation +dqand289 and 0001000111000111000111000070000001 1000000111000111000111000100000000 -> NaN Invalid_operation +dqand290 and 0000000111000111000111100080000010 1000000111000111000111000010000000 -> NaN Invalid_operation +dqand291 and 0000000111000111000111010090000100 1000000111000111000111000001000000 -> NaN Invalid_operation +dqand292 and 1000000111000111000111001000001000 0000000111000111000111000020100000 -> NaN Invalid_operation +dqand293 and 1000000111000111000111000100010000 0000000111000111000111000070010000 -> NaN Invalid_operation +dqand294 and 1000000111000111000111000010100000 0000000111000111000111000080001000 -> NaN Invalid_operation +dqand295 and 1000000111000111000111000001000000 0000000111000111000111000090000100 -> NaN Invalid_operation +-- signs +dqand296 and -1000000111000111000111000001000000 -0000001110001110001110010000000100 -> NaN Invalid_operation +dqand297 and -1000000111000111000111000001000000 0000001110001110001110000010000100 -> NaN Invalid_operation +dqand298 and 1000000111000111000111000001000000 -0000001110001110001110001000000100 -> NaN Invalid_operation +dqand299 and 1000000111000111000111000001000000 0000001110001110001110000011000100 -> 110000110000110000001000000 + +-- Nmax, Nmin, Ntiny-like +dqand331 and 2 9.99999999E+999 -> NaN Invalid_operation +dqand332 and 3 1E-999 -> NaN Invalid_operation +dqand333 and 4 1.00000000E-999 -> NaN Invalid_operation +dqand334 and 5 1E-900 -> NaN Invalid_operation +dqand335 and 6 -1E-900 -> NaN Invalid_operation +dqand336 and 7 -1.00000000E-999 -> NaN Invalid_operation +dqand337 and 8 -1E-999 -> NaN Invalid_operation +dqand338 and 9 -9.99999999E+999 -> NaN Invalid_operation +dqand341 and 9.99999999E+999 -18 -> NaN Invalid_operation +dqand342 and 1E-999 01 -> NaN Invalid_operation +dqand343 and 1.00000000E-999 -18 -> NaN Invalid_operation +dqand344 and 1E-900 18 -> NaN Invalid_operation +dqand345 and -1E-900 -10 -> NaN Invalid_operation +dqand346 and -1.00000000E-999 18 -> NaN Invalid_operation +dqand347 and -1E-999 10 -> NaN Invalid_operation +dqand348 and -9.99999999E+999 -18 -> NaN Invalid_operation + +-- A few other non-integers +dqand361 and 1.0 1 -> NaN Invalid_operation +dqand362 and 1E+1 1 -> NaN Invalid_operation +dqand363 and 0.0 1 -> NaN Invalid_operation +dqand364 and 0E+1 1 -> NaN Invalid_operation +dqand365 and 9.9 1 -> NaN Invalid_operation +dqand366 and 9E+1 1 -> NaN Invalid_operation +dqand371 and 0 1.0 -> NaN Invalid_operation +dqand372 and 0 1E+1 -> NaN Invalid_operation +dqand373 and 0 0.0 -> NaN Invalid_operation +dqand374 and 0 0E+1 -> NaN Invalid_operation +dqand375 and 0 9.9 -> NaN Invalid_operation +dqand376 and 0 9E+1 -> NaN Invalid_operation + +-- All Specials are in error +dqand780 and -Inf -Inf -> NaN Invalid_operation +dqand781 and -Inf -1000 -> NaN Invalid_operation +dqand782 and -Inf -1 -> NaN Invalid_operation +dqand783 and -Inf -0 -> NaN Invalid_operation +dqand784 and -Inf 0 -> NaN Invalid_operation +dqand785 and -Inf 1 -> NaN Invalid_operation +dqand786 and -Inf 1000 -> NaN Invalid_operation +dqand787 and -1000 -Inf -> NaN Invalid_operation +dqand788 and -Inf -Inf -> NaN Invalid_operation +dqand789 and -1 -Inf -> NaN Invalid_operation +dqand790 and -0 -Inf -> NaN Invalid_operation +dqand791 and 0 -Inf -> NaN Invalid_operation +dqand792 and 1 -Inf -> NaN Invalid_operation +dqand793 and 1000 -Inf -> NaN Invalid_operation +dqand794 and Inf -Inf -> NaN Invalid_operation + +dqand800 and Inf -Inf -> NaN Invalid_operation +dqand801 and Inf -1000 -> NaN Invalid_operation +dqand802 and Inf -1 -> NaN Invalid_operation +dqand803 and Inf -0 -> NaN Invalid_operation +dqand804 and Inf 0 -> NaN Invalid_operation +dqand805 and Inf 1 -> NaN Invalid_operation +dqand806 and Inf 1000 -> NaN Invalid_operation +dqand807 and Inf Inf -> NaN Invalid_operation +dqand808 and -1000 Inf -> NaN Invalid_operation +dqand809 and -Inf Inf -> NaN Invalid_operation +dqand810 and -1 Inf -> NaN Invalid_operation +dqand811 and -0 Inf -> NaN Invalid_operation +dqand812 and 0 Inf -> NaN Invalid_operation +dqand813 and 1 Inf -> NaN Invalid_operation +dqand814 and 1000 Inf -> NaN Invalid_operation +dqand815 and Inf Inf -> NaN Invalid_operation + +dqand821 and NaN -Inf -> NaN Invalid_operation +dqand822 and NaN -1000 -> NaN Invalid_operation +dqand823 and NaN -1 -> NaN Invalid_operation +dqand824 and NaN -0 -> NaN Invalid_operation +dqand825 and NaN 0 -> NaN Invalid_operation +dqand826 and NaN 1 -> NaN Invalid_operation +dqand827 and NaN 1000 -> NaN Invalid_operation +dqand828 and NaN Inf -> NaN Invalid_operation +dqand829 and NaN NaN -> NaN Invalid_operation +dqand830 and -Inf NaN -> NaN Invalid_operation +dqand831 and -1000 NaN -> NaN Invalid_operation +dqand832 and -1 NaN -> NaN Invalid_operation +dqand833 and -0 NaN -> NaN Invalid_operation +dqand834 and 0 NaN -> NaN Invalid_operation +dqand835 and 1 NaN -> NaN Invalid_operation +dqand836 and 1000 NaN -> NaN Invalid_operation +dqand837 and Inf NaN -> NaN Invalid_operation + +dqand841 and sNaN -Inf -> NaN Invalid_operation +dqand842 and sNaN -1000 -> NaN Invalid_operation +dqand843 and sNaN -1 -> NaN Invalid_operation +dqand844 and sNaN -0 -> NaN Invalid_operation +dqand845 and sNaN 0 -> NaN Invalid_operation +dqand846 and sNaN 1 -> NaN Invalid_operation +dqand847 and sNaN 1000 -> NaN Invalid_operation +dqand848 and sNaN NaN -> NaN Invalid_operation +dqand849 and sNaN sNaN -> NaN Invalid_operation +dqand850 and NaN sNaN -> NaN Invalid_operation +dqand851 and -Inf sNaN -> NaN Invalid_operation +dqand852 and -1000 sNaN -> NaN Invalid_operation +dqand853 and -1 sNaN -> NaN Invalid_operation +dqand854 and -0 sNaN -> NaN Invalid_operation +dqand855 and 0 sNaN -> NaN Invalid_operation +dqand856 and 1 sNaN -> NaN Invalid_operation +dqand857 and 1000 sNaN -> NaN Invalid_operation +dqand858 and Inf sNaN -> NaN Invalid_operation +dqand859 and NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +dqand861 and NaN1 -Inf -> NaN Invalid_operation +dqand862 and +NaN2 -1000 -> NaN Invalid_operation +dqand863 and NaN3 1000 -> NaN Invalid_operation +dqand864 and NaN4 Inf -> NaN Invalid_operation +dqand865 and NaN5 +NaN6 -> NaN Invalid_operation +dqand866 and -Inf NaN7 -> NaN Invalid_operation +dqand867 and -1000 NaN8 -> NaN Invalid_operation +dqand868 and 1000 NaN9 -> NaN Invalid_operation +dqand869 and Inf +NaN10 -> NaN Invalid_operation +dqand871 and sNaN11 -Inf -> NaN Invalid_operation +dqand872 and sNaN12 -1000 -> NaN Invalid_operation +dqand873 and sNaN13 1000 -> NaN Invalid_operation +dqand874 and sNaN14 NaN17 -> NaN Invalid_operation +dqand875 and sNaN15 sNaN18 -> NaN Invalid_operation +dqand876 and NaN16 sNaN19 -> NaN Invalid_operation +dqand877 and -Inf +sNaN20 -> NaN Invalid_operation +dqand878 and -1000 sNaN21 -> NaN Invalid_operation +dqand879 and 1000 sNaN22 -> NaN Invalid_operation +dqand880 and Inf sNaN23 -> NaN Invalid_operation +dqand881 and +NaN25 +sNaN24 -> NaN Invalid_operation +dqand882 and -NaN26 NaN28 -> NaN Invalid_operation +dqand883 and -sNaN27 sNaN29 -> NaN Invalid_operation +dqand884 and 1000 -NaN30 -> NaN Invalid_operation +dqand885 and 1000 -sNaN31 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/dqBase.decTest b/Lib/test/decimaltestdata/dqBase.decTest index 6bb463388e..d09c6bf02c 100644 --- a/Lib/test/decimaltestdata/dqBase.decTest +++ b/Lib/test/decimaltestdata/dqBase.decTest @@ -1,1081 +1,1081 @@ -------------------------------------------------------------------------
--- dqBase.decTest -- base decQuad <--> string conversions --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- This file tests base conversions from string to a decimal number
--- and back to a string (in Scientific form)
-
--- Note that unlike other operations the operand is subject to rounding
--- to conform to emax and precision settings (that is, numbers will
--- conform to rules and exponent will be in permitted range). The
--- 'left hand side', therefore, may have numbers that cannot be
--- represented in a decQuad. Some testcases go to the limit of the
--- next-wider format, and hence these testcases may also be used to
--- test narrowing and widening operations.
-
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
-dqbas001 toSci 0 -> 0
-dqbas002 toSci 1 -> 1
-dqbas003 toSci 1.0 -> 1.0
-dqbas004 toSci 1.00 -> 1.00
-dqbas005 toSci 10 -> 10
-dqbas006 toSci 1000 -> 1000
-dqbas007 toSci 10.0 -> 10.0
-dqbas008 toSci 10.1 -> 10.1
-dqbas009 toSci 10.4 -> 10.4
-dqbas010 toSci 10.5 -> 10.5
-dqbas011 toSci 10.6 -> 10.6
-dqbas012 toSci 10.9 -> 10.9
-dqbas013 toSci 11.0 -> 11.0
-dqbas014 toSci 1.234 -> 1.234
-dqbas015 toSci 0.123 -> 0.123
-dqbas016 toSci 0.012 -> 0.012
-dqbas017 toSci -0 -> -0
-dqbas018 toSci -0.0 -> -0.0
-dqbas019 toSci -00.00 -> -0.00
-
-dqbas021 toSci -1 -> -1
-dqbas022 toSci -1.0 -> -1.0
-dqbas023 toSci -0.1 -> -0.1
-dqbas024 toSci -9.1 -> -9.1
-dqbas025 toSci -9.11 -> -9.11
-dqbas026 toSci -9.119 -> -9.119
-dqbas027 toSci -9.999 -> -9.999
-
-dqbas030 toSci '123456789.123456' -> '123456789.123456'
-dqbas031 toSci '123456789.000000' -> '123456789.000000'
-dqbas032 toSci '123456789123456' -> '123456789123456'
-dqbas033 toSci '0.0000123456789' -> '0.0000123456789'
-dqbas034 toSci '0.00000123456789' -> '0.00000123456789'
-dqbas035 toSci '0.000000123456789' -> '1.23456789E-7'
-dqbas036 toSci '0.0000000123456789' -> '1.23456789E-8'
-
-dqbas037 toSci '0.123456789012344' -> '0.123456789012344'
-dqbas038 toSci '0.123456789012345' -> '0.123456789012345'
-
--- test finite bounds (Negs of, then 0, Ntiny, Nmin, other, Nmax)
-dqbsn001 toSci -9.999999999999999999999999999999999E+6144 -> -9.999999999999999999999999999999999E+6144
-dqbsn002 toSci -1E-6143 -> -1E-6143
-dqbsn003 toSci -1E-6176 -> -1E-6176 Subnormal
-dqbsn004 toSci -0 -> -0
-dqbsn005 toSci +0 -> 0
-dqbsn006 toSci +1E-6176 -> 1E-6176 Subnormal
-dqbsn007 toSci +1E-6143 -> 1E-6143
-dqbsn008 toSci +9.999999999999999999999999999999999E+6144 -> 9.999999999999999999999999999999999E+6144
-
--- String [many more examples are implicitly tested elsewhere]
--- strings without E cannot generate E in result
-dqbas040 toSci "12" -> '12'
-dqbas041 toSci "-76" -> '-76'
-dqbas042 toSci "12.76" -> '12.76'
-dqbas043 toSci "+12.76" -> '12.76'
-dqbas044 toSci "012.76" -> '12.76'
-dqbas045 toSci "+0.003" -> '0.003'
-dqbas046 toSci "17." -> '17'
-dqbas047 toSci ".5" -> '0.5'
-dqbas048 toSci "044" -> '44'
-dqbas049 toSci "0044" -> '44'
-dqbas050 toSci "0.0005" -> '0.0005'
-dqbas051 toSci "00.00005" -> '0.00005'
-dqbas052 toSci "0.000005" -> '0.000005'
-dqbas053 toSci "0.0000050" -> '0.0000050'
-dqbas054 toSci "0.0000005" -> '5E-7'
-dqbas055 toSci "0.00000005" -> '5E-8'
-dqbas056 toSci "12345678.543210" -> '12345678.543210'
-dqbas057 toSci "2345678.543210" -> '2345678.543210'
-dqbas058 toSci "345678.543210" -> '345678.543210'
-dqbas059 toSci "0345678.54321" -> '345678.54321'
-dqbas060 toSci "345678.5432" -> '345678.5432'
-dqbas061 toSci "+345678.5432" -> '345678.5432'
-dqbas062 toSci "+0345678.5432" -> '345678.5432'
-dqbas063 toSci "+00345678.5432" -> '345678.5432'
-dqbas064 toSci "-345678.5432" -> '-345678.5432'
-dqbas065 toSci "-0345678.5432" -> '-345678.5432'
-dqbas066 toSci "-00345678.5432" -> '-345678.5432'
--- examples
-dqbas067 toSci "5E-6" -> '0.000005'
-dqbas068 toSci "50E-7" -> '0.0000050'
-dqbas069 toSci "5E-7" -> '5E-7'
-
--- [No exotics as no Unicode]
-
--- rounded with dots in all (including edge) places
-dqbas071 toSci .1234567891234567890123456780123456123 -> 0.1234567891234567890123456780123456 Inexact Rounded
-dqbas072 toSci 1.234567891234567890123456780123456123 -> 1.234567891234567890123456780123456 Inexact Rounded
-dqbas073 toSci 12.34567891234567890123456780123456123 -> 12.34567891234567890123456780123456 Inexact Rounded
-dqbas074 toSci 123.4567891234567890123456780123456123 -> 123.4567891234567890123456780123456 Inexact Rounded
-dqbas075 toSci 1234.567891234567890123456780123456123 -> 1234.567891234567890123456780123456 Inexact Rounded
-dqbas076 toSci 12345.67891234567890123456780123456123 -> 12345.67891234567890123456780123456 Inexact Rounded
-dqbas077 toSci 123456.7891234567890123456780123456123 -> 123456.7891234567890123456780123456 Inexact Rounded
-dqbas078 toSci 1234567.891234567890123456780123456123 -> 1234567.891234567890123456780123456 Inexact Rounded
-dqbas079 toSci 12345678.91234567890123456780123456123 -> 12345678.91234567890123456780123456 Inexact Rounded
-dqbas080 toSci 123456789.1234567890123456780123456123 -> 123456789.1234567890123456780123456 Inexact Rounded
-dqbas081 toSci 1234567891.234567890123456780123456123 -> 1234567891.234567890123456780123456 Inexact Rounded
-dqbas082 toSci 12345678912.34567890123456780123456123 -> 12345678912.34567890123456780123456 Inexact Rounded
-dqbas083 toSci 123456789123.4567890123456780123456123 -> 123456789123.4567890123456780123456 Inexact Rounded
-dqbas084 toSci 1234567891234.567890123456780123456123 -> 1234567891234.567890123456780123456 Inexact Rounded
-dqbas085 toSci 12345678912345.67890123456780123456123 -> 12345678912345.67890123456780123456 Inexact Rounded
-dqbas086 toSci 123456789123456.7890123456780123456123 -> 123456789123456.7890123456780123456 Inexact Rounded
-dqbas087 toSci 1234567891234567.890123456780123456123 -> 1234567891234567.890123456780123456 Inexact Rounded
-dqbas088 toSci 12345678912345678.90123456780123456123 -> 12345678912345678.90123456780123456 Inexact Rounded
-dqbas089 toSci 123456789123456789.0123456780123456123 -> 123456789123456789.0123456780123456 Inexact Rounded
-dqbas090 toSci 1234567891234567890.123456780123456123 -> 1234567891234567890.123456780123456 Inexact Rounded
-dqbas091 toSci 12345678912345678901.23456780123456123 -> 12345678912345678901.23456780123456 Inexact Rounded
-dqbas092 toSci 123456789123456789012.3456780123456123 -> 123456789123456789012.3456780123456 Inexact Rounded
-dqbas093 toSci 1234567891234567890123.456780123456123 -> 1234567891234567890123.456780123456 Inexact Rounded
-dqbas094 toSci 12345678912345678901234.56780123456123 -> 12345678912345678901234.56780123456 Inexact Rounded
-dqbas095 toSci 123456789123456789012345.6780123456123 -> 123456789123456789012345.6780123456 Inexact Rounded
-dqbas096 toSci 1234567891234567890123456.780123456123 -> 1234567891234567890123456.780123456 Inexact Rounded
-dqbas097 toSci 12345678912345678901234567.80123456123 -> 12345678912345678901234567.80123456 Inexact Rounded
-dqbas098 toSci 123456789123456789012345678.0123456123 -> 123456789123456789012345678.0123456 Inexact Rounded
-dqbas099 toSci 1234567891234567890123456780.123456123 -> 1234567891234567890123456780.123456 Inexact Rounded
-dqbas100 toSci 12345678912345678901234567801.23456123 -> 12345678912345678901234567801.23456 Inexact Rounded
-dqbas101 toSci 123456789123456789012345678012.3456123 -> 123456789123456789012345678012.3456 Inexact Rounded
-dqbas102 toSci 1234567891234567890123456780123.456123 -> 1234567891234567890123456780123.456 Inexact Rounded
-dqbas103 toSci 12345678912345678901234567801234.56123 -> 12345678912345678901234567801234.56 Inexact Rounded
-dqbas104 toSci 123456789123456789012345678012345.6123 -> 123456789123456789012345678012345.6 Inexact Rounded
-dqbas105 toSci 1234567891234567890123456780123456.123 -> 1234567891234567890123456780123456 Inexact Rounded
-dqbas106 toSci 12345678912345678901234567801234561.23 -> 1.234567891234567890123456780123456E+34 Inexact Rounded
-dqbas107 toSci 123456789123456789012345678012345612.3 -> 1.234567891234567890123456780123456E+35 Inexact Rounded
-dqbas108 toSci 1234567891234567890123456780123456123. -> 1.234567891234567890123456780123456E+36 Inexact Rounded
--- 123456789012345678
-
--- Numbers with E
-dqbas130 toSci "0.000E-1" -> '0.0000'
-dqbas131 toSci "0.000E-2" -> '0.00000'
-dqbas132 toSci "0.000E-3" -> '0.000000'
-dqbas133 toSci "0.000E-4" -> '0E-7'
-dqbas134 toSci "0.00E-2" -> '0.0000'
-dqbas135 toSci "0.00E-3" -> '0.00000'
-dqbas136 toSci "0.00E-4" -> '0.000000'
-dqbas137 toSci "0.00E-5" -> '0E-7'
-dqbas138 toSci "+0E+9" -> '0E+9'
-dqbas139 toSci "-0E+9" -> '-0E+9'
-dqbas140 toSci "1E+9" -> '1E+9'
-dqbas141 toSci "1e+09" -> '1E+9'
-dqbas142 toSci "1E+90" -> '1E+90'
-dqbas143 toSci "+1E+009" -> '1E+9'
-dqbas144 toSci "0E+9" -> '0E+9'
-dqbas145 toSci "1E+9" -> '1E+9'
-dqbas146 toSci "1E+09" -> '1E+9'
-dqbas147 toSci "1e+90" -> '1E+90'
-dqbas148 toSci "1E+009" -> '1E+9'
-dqbas149 toSci "000E+9" -> '0E+9'
-dqbas150 toSci "1E9" -> '1E+9'
-dqbas151 toSci "1e09" -> '1E+9'
-dqbas152 toSci "1E90" -> '1E+90'
-dqbas153 toSci "1E009" -> '1E+9'
-dqbas154 toSci "0E9" -> '0E+9'
-dqbas155 toSci "0.000e+0" -> '0.000'
-dqbas156 toSci "0.000E-1" -> '0.0000'
-dqbas157 toSci "4E+9" -> '4E+9'
-dqbas158 toSci "44E+9" -> '4.4E+10'
-dqbas159 toSci "0.73e-7" -> '7.3E-8'
-dqbas160 toSci "00E+9" -> '0E+9'
-dqbas161 toSci "00E-9" -> '0E-9'
-dqbas162 toSci "10E+9" -> '1.0E+10'
-dqbas163 toSci "10E+09" -> '1.0E+10'
-dqbas164 toSci "10e+90" -> '1.0E+91'
-dqbas165 toSci "10E+009" -> '1.0E+10'
-dqbas166 toSci "100e+9" -> '1.00E+11'
-dqbas167 toSci "100e+09" -> '1.00E+11'
-dqbas168 toSci "100E+90" -> '1.00E+92'
-dqbas169 toSci "100e+009" -> '1.00E+11'
-
-dqbas170 toSci "1.265" -> '1.265'
-dqbas171 toSci "1.265E-20" -> '1.265E-20'
-dqbas172 toSci "1.265E-8" -> '1.265E-8'
-dqbas173 toSci "1.265E-4" -> '0.0001265'
-dqbas174 toSci "1.265E-3" -> '0.001265'
-dqbas175 toSci "1.265E-2" -> '0.01265'
-dqbas176 toSci "1.265E-1" -> '0.1265'
-dqbas177 toSci "1.265E-0" -> '1.265'
-dqbas178 toSci "1.265E+1" -> '12.65'
-dqbas179 toSci "1.265E+2" -> '126.5'
-dqbas180 toSci "1.265E+3" -> '1265'
-dqbas181 toSci "1.265E+4" -> '1.265E+4'
-dqbas182 toSci "1.265E+8" -> '1.265E+8'
-dqbas183 toSci "1.265E+20" -> '1.265E+20'
-
-dqbas190 toSci "12.65" -> '12.65'
-dqbas191 toSci "12.65E-20" -> '1.265E-19'
-dqbas192 toSci "12.65E-8" -> '1.265E-7'
-dqbas193 toSci "12.65E-4" -> '0.001265'
-dqbas194 toSci "12.65E-3" -> '0.01265'
-dqbas195 toSci "12.65E-2" -> '0.1265'
-dqbas196 toSci "12.65E-1" -> '1.265'
-dqbas197 toSci "12.65E-0" -> '12.65'
-dqbas198 toSci "12.65E+1" -> '126.5'
-dqbas199 toSci "12.65E+2" -> '1265'
-dqbas200 toSci "12.65E+3" -> '1.265E+4'
-dqbas201 toSci "12.65E+4" -> '1.265E+5'
-dqbas202 toSci "12.65E+8" -> '1.265E+9'
-dqbas203 toSci "12.65E+20" -> '1.265E+21'
-
-dqbas210 toSci "126.5" -> '126.5'
-dqbas211 toSci "126.5E-20" -> '1.265E-18'
-dqbas212 toSci "126.5E-8" -> '0.000001265'
-dqbas213 toSci "126.5E-4" -> '0.01265'
-dqbas214 toSci "126.5E-3" -> '0.1265'
-dqbas215 toSci "126.5E-2" -> '1.265'
-dqbas216 toSci "126.5E-1" -> '12.65'
-dqbas217 toSci "126.5E-0" -> '126.5'
-dqbas218 toSci "126.5E+1" -> '1265'
-dqbas219 toSci "126.5E+2" -> '1.265E+4'
-dqbas220 toSci "126.5E+3" -> '1.265E+5'
-dqbas221 toSci "126.5E+4" -> '1.265E+6'
-dqbas222 toSci "126.5E+8" -> '1.265E+10'
-dqbas223 toSci "126.5E+20" -> '1.265E+22'
-
-dqbas230 toSci "1265" -> '1265'
-dqbas231 toSci "1265E-20" -> '1.265E-17'
-dqbas232 toSci "1265E-8" -> '0.00001265'
-dqbas233 toSci "1265E-4" -> '0.1265'
-dqbas234 toSci "1265E-3" -> '1.265'
-dqbas235 toSci "1265E-2" -> '12.65'
-dqbas236 toSci "1265E-1" -> '126.5'
-dqbas237 toSci "1265E-0" -> '1265'
-dqbas238 toSci "1265E+1" -> '1.265E+4'
-dqbas239 toSci "1265E+2" -> '1.265E+5'
-dqbas240 toSci "1265E+3" -> '1.265E+6'
-dqbas241 toSci "1265E+4" -> '1.265E+7'
-dqbas242 toSci "1265E+8" -> '1.265E+11'
-dqbas243 toSci "1265E+20" -> '1.265E+23'
-
-dqbas250 toSci "0.1265" -> '0.1265'
-dqbas251 toSci "0.1265E-20" -> '1.265E-21'
-dqbas252 toSci "0.1265E-8" -> '1.265E-9'
-dqbas253 toSci "0.1265E-4" -> '0.00001265'
-dqbas254 toSci "0.1265E-3" -> '0.0001265'
-dqbas255 toSci "0.1265E-2" -> '0.001265'
-dqbas256 toSci "0.1265E-1" -> '0.01265'
-dqbas257 toSci "0.1265E-0" -> '0.1265'
-dqbas258 toSci "0.1265E+1" -> '1.265'
-dqbas259 toSci "0.1265E+2" -> '12.65'
-dqbas260 toSci "0.1265E+3" -> '126.5'
-dqbas261 toSci "0.1265E+4" -> '1265'
-dqbas262 toSci "0.1265E+8" -> '1.265E+7'
-dqbas263 toSci "0.1265E+20" -> '1.265E+19'
-
--- some more negative zeros [systematic tests below]
-dqbas290 toSci "-0.000E-1" -> '-0.0000'
-dqbas291 toSci "-0.000E-2" -> '-0.00000'
-dqbas292 toSci "-0.000E-3" -> '-0.000000'
-dqbas293 toSci "-0.000E-4" -> '-0E-7'
-dqbas294 toSci "-0.00E-2" -> '-0.0000'
-dqbas295 toSci "-0.00E-3" -> '-0.00000'
-dqbas296 toSci "-0.0E-2" -> '-0.000'
-dqbas297 toSci "-0.0E-3" -> '-0.0000'
-dqbas298 toSci "-0E-2" -> '-0.00'
-dqbas299 toSci "-0E-3" -> '-0.000'
-
--- Engineering notation tests
-dqbas301 toSci 10e12 -> 1.0E+13
-dqbas302 toEng 10e12 -> 10E+12
-dqbas303 toSci 10e11 -> 1.0E+12
-dqbas304 toEng 10e11 -> 1.0E+12
-dqbas305 toSci 10e10 -> 1.0E+11
-dqbas306 toEng 10e10 -> 100E+9
-dqbas307 toSci 10e9 -> 1.0E+10
-dqbas308 toEng 10e9 -> 10E+9
-dqbas309 toSci 10e8 -> 1.0E+9
-dqbas310 toEng 10e8 -> 1.0E+9
-dqbas311 toSci 10e7 -> 1.0E+8
-dqbas312 toEng 10e7 -> 100E+6
-dqbas313 toSci 10e6 -> 1.0E+7
-dqbas314 toEng 10e6 -> 10E+6
-dqbas315 toSci 10e5 -> 1.0E+6
-dqbas316 toEng 10e5 -> 1.0E+6
-dqbas317 toSci 10e4 -> 1.0E+5
-dqbas318 toEng 10e4 -> 100E+3
-dqbas319 toSci 10e3 -> 1.0E+4
-dqbas320 toEng 10e3 -> 10E+3
-dqbas321 toSci 10e2 -> 1.0E+3
-dqbas322 toEng 10e2 -> 1.0E+3
-dqbas323 toSci 10e1 -> 1.0E+2
-dqbas324 toEng 10e1 -> 100
-dqbas325 toSci 10e0 -> 10
-dqbas326 toEng 10e0 -> 10
-dqbas327 toSci 10e-1 -> 1.0
-dqbas328 toEng 10e-1 -> 1.0
-dqbas329 toSci 10e-2 -> 0.10
-dqbas330 toEng 10e-2 -> 0.10
-dqbas331 toSci 10e-3 -> 0.010
-dqbas332 toEng 10e-3 -> 0.010
-dqbas333 toSci 10e-4 -> 0.0010
-dqbas334 toEng 10e-4 -> 0.0010
-dqbas335 toSci 10e-5 -> 0.00010
-dqbas336 toEng 10e-5 -> 0.00010
-dqbas337 toSci 10e-6 -> 0.000010
-dqbas338 toEng 10e-6 -> 0.000010
-dqbas339 toSci 10e-7 -> 0.0000010
-dqbas340 toEng 10e-7 -> 0.0000010
-dqbas341 toSci 10e-8 -> 1.0E-7
-dqbas342 toEng 10e-8 -> 100E-9
-dqbas343 toSci 10e-9 -> 1.0E-8
-dqbas344 toEng 10e-9 -> 10E-9
-dqbas345 toSci 10e-10 -> 1.0E-9
-dqbas346 toEng 10e-10 -> 1.0E-9
-dqbas347 toSci 10e-11 -> 1.0E-10
-dqbas348 toEng 10e-11 -> 100E-12
-dqbas349 toSci 10e-12 -> 1.0E-11
-dqbas350 toEng 10e-12 -> 10E-12
-dqbas351 toSci 10e-13 -> 1.0E-12
-dqbas352 toEng 10e-13 -> 1.0E-12
-
-dqbas361 toSci 7E12 -> 7E+12
-dqbas362 toEng 7E12 -> 7E+12
-dqbas363 toSci 7E11 -> 7E+11
-dqbas364 toEng 7E11 -> 700E+9
-dqbas365 toSci 7E10 -> 7E+10
-dqbas366 toEng 7E10 -> 70E+9
-dqbas367 toSci 7E9 -> 7E+9
-dqbas368 toEng 7E9 -> 7E+9
-dqbas369 toSci 7E8 -> 7E+8
-dqbas370 toEng 7E8 -> 700E+6
-dqbas371 toSci 7E7 -> 7E+7
-dqbas372 toEng 7E7 -> 70E+6
-dqbas373 toSci 7E6 -> 7E+6
-dqbas374 toEng 7E6 -> 7E+6
-dqbas375 toSci 7E5 -> 7E+5
-dqbas376 toEng 7E5 -> 700E+3
-dqbas377 toSci 7E4 -> 7E+4
-dqbas378 toEng 7E4 -> 70E+3
-dqbas379 toSci 7E3 -> 7E+3
-dqbas380 toEng 7E3 -> 7E+3
-dqbas381 toSci 7E2 -> 7E+2
-dqbas382 toEng 7E2 -> 700
-dqbas383 toSci 7E1 -> 7E+1
-dqbas384 toEng 7E1 -> 70
-dqbas385 toSci 7E0 -> 7
-dqbas386 toEng 7E0 -> 7
-dqbas387 toSci 7E-1 -> 0.7
-dqbas388 toEng 7E-1 -> 0.7
-dqbas389 toSci 7E-2 -> 0.07
-dqbas390 toEng 7E-2 -> 0.07
-dqbas391 toSci 7E-3 -> 0.007
-dqbas392 toEng 7E-3 -> 0.007
-dqbas393 toSci 7E-4 -> 0.0007
-dqbas394 toEng 7E-4 -> 0.0007
-dqbas395 toSci 7E-5 -> 0.00007
-dqbas396 toEng 7E-5 -> 0.00007
-dqbas397 toSci 7E-6 -> 0.000007
-dqbas398 toEng 7E-6 -> 0.000007
-dqbas399 toSci 7E-7 -> 7E-7
-dqbas400 toEng 7E-7 -> 700E-9
-dqbas401 toSci 7E-8 -> 7E-8
-dqbas402 toEng 7E-8 -> 70E-9
-dqbas403 toSci 7E-9 -> 7E-9
-dqbas404 toEng 7E-9 -> 7E-9
-dqbas405 toSci 7E-10 -> 7E-10
-dqbas406 toEng 7E-10 -> 700E-12
-dqbas407 toSci 7E-11 -> 7E-11
-dqbas408 toEng 7E-11 -> 70E-12
-dqbas409 toSci 7E-12 -> 7E-12
-dqbas410 toEng 7E-12 -> 7E-12
-dqbas411 toSci 7E-13 -> 7E-13
-dqbas412 toEng 7E-13 -> 700E-15
-
--- Exacts remain exact up to precision ..
-dqbas420 toSci 100 -> 100
-dqbas422 toSci 1000 -> 1000
-dqbas424 toSci 999.9 -> 999.9
-dqbas426 toSci 1000.0 -> 1000.0
-dqbas428 toSci 1000.1 -> 1000.1
-dqbas430 toSci 10000 -> 10000
-dqbas432 toSci 1000000000000000000000000000000 -> 1000000000000000000000000000000
-dqbas434 toSci 10000000000000000000000000000000 -> 10000000000000000000000000000000
-dqbas436 toSci 100000000000000000000000000000000 -> 100000000000000000000000000000000
-dqbas438 toSci 1000000000000000000000000000000000 -> 1000000000000000000000000000000000
-dqbas440 toSci 10000000000000000000000000000000000 -> 1.000000000000000000000000000000000E+34 Rounded
-dqbas442 toSci 10000000000000000000000000000000000 -> 1.000000000000000000000000000000000E+34 Rounded
-dqbas444 toSci 10000000000000000000000000000000003 -> 1.000000000000000000000000000000000E+34 Rounded Inexact
-dqbas446 toSci 10000000000000000000000000000000005 -> 1.000000000000000000000000000000000E+34 Rounded Inexact
-dqbas448 toSci 100000000000000000000000000000000050 -> 1.000000000000000000000000000000000E+35 Rounded Inexact
-dqbas450 toSci 10000000000000000000000000000000009 -> 1.000000000000000000000000000000001E+34 Rounded Inexact
-dqbas452 toSci 100000000000000000000000000000000000 -> 1.000000000000000000000000000000000E+35 Rounded
-dqbas454 toSci 100000000000000000000000000000000003 -> 1.000000000000000000000000000000000E+35 Rounded Inexact
-dqbas456 toSci 100000000000000000000000000000000005 -> 1.000000000000000000000000000000000E+35 Rounded Inexact
-dqbas458 toSci 100000000000000000000000000000000009 -> 1.000000000000000000000000000000000E+35 Rounded Inexact
-dqbas460 toSci 1000000000000000000000000000000000000 -> 1.000000000000000000000000000000000E+36 Rounded
-dqbas462 toSci 1000000000000000000000000000000000300 -> 1.000000000000000000000000000000000E+36 Rounded Inexact
-dqbas464 toSci 1000000000000000000000000000000000500 -> 1.000000000000000000000000000000000E+36 Rounded Inexact
-dqbas466 toSci 1000000000000000000000000000000000900 -> 1.000000000000000000000000000000001E+36 Rounded Inexact
-dqbas468 toSci 10000000000000000000000000000000000000 -> 1.000000000000000000000000000000000E+37 Rounded
-dqbas470 toSci 10000000000000000000000000000000003000 -> 1.000000000000000000000000000000000E+37 Rounded Inexact
-dqbas472 toSci 10000000000000000000000000000000005000 -> 1.000000000000000000000000000000000E+37 Rounded Inexact
-dqbas474 toSci 10000000000000000000000000000000009000 -> 1.000000000000000000000000000000001E+37 Rounded Inexact
-
--- check rounding modes heeded
-rounding: ceiling
-dqbsr401 toSci 1.1111111111111111111111111111123450 -> 1.111111111111111111111111111112345 Rounded
-dqbsr402 toSci 1.11111111111111111111111111111234549 -> 1.111111111111111111111111111112346 Rounded Inexact
-dqbsr403 toSci 1.11111111111111111111111111111234550 -> 1.111111111111111111111111111112346 Rounded Inexact
-dqbsr404 toSci 1.11111111111111111111111111111234551 -> 1.111111111111111111111111111112346 Rounded Inexact
-rounding: up
-dqbsr405 toSci 1.1111111111111111111111111111123450 -> 1.111111111111111111111111111112345 Rounded
-dqbsr406 toSci 1.11111111111111111111111111111234549 -> 1.111111111111111111111111111112346 Rounded Inexact
-dqbsr407 toSci 1.11111111111111111111111111111234550 -> 1.111111111111111111111111111112346 Rounded Inexact
-dqbsr408 toSci 1.11111111111111111111111111111234551 -> 1.111111111111111111111111111112346 Rounded Inexact
-rounding: floor
-dqbsr410 toSci 1.1111111111111111111111111111123450 -> 1.111111111111111111111111111112345 Rounded
-dqbsr411 toSci 1.11111111111111111111111111111234549 -> 1.111111111111111111111111111112345 Rounded Inexact
-dqbsr412 toSci 1.11111111111111111111111111111234550 -> 1.111111111111111111111111111112345 Rounded Inexact
-dqbsr413 toSci 1.11111111111111111111111111111234551 -> 1.111111111111111111111111111112345 Rounded Inexact
-rounding: half_down
-dqbsr415 toSci 1.1111111111111111111111111111123450 -> 1.111111111111111111111111111112345 Rounded
-dqbsr416 toSci 1.11111111111111111111111111111234549 -> 1.111111111111111111111111111112345 Rounded Inexact
-dqbsr417 toSci 1.11111111111111111111111111111234550 -> 1.111111111111111111111111111112345 Rounded Inexact
-dqbsr418 toSci 1.11111111111111111111111111111234650 -> 1.111111111111111111111111111112346 Rounded Inexact
-dqbsr419 toSci 1.11111111111111111111111111111234551 -> 1.111111111111111111111111111112346 Rounded Inexact
-rounding: half_even
-dqbsr421 toSci 1.1111111111111111111111111111123450 -> 1.111111111111111111111111111112345 Rounded
-dqbsr422 toSci 1.11111111111111111111111111111234549 -> 1.111111111111111111111111111112345 Rounded Inexact
-dqbsr423 toSci 1.11111111111111111111111111111234550 -> 1.111111111111111111111111111112346 Rounded Inexact
-dqbsr424 toSci 1.11111111111111111111111111111234650 -> 1.111111111111111111111111111112346 Rounded Inexact
-dqbsr425 toSci 1.11111111111111111111111111111234551 -> 1.111111111111111111111111111112346 Rounded Inexact
-rounding: down
-dqbsr426 toSci 1.1111111111111111111111111111123450 -> 1.111111111111111111111111111112345 Rounded
-dqbsr427 toSci 1.11111111111111111111111111111234549 -> 1.111111111111111111111111111112345 Rounded Inexact
-dqbsr428 toSci 1.11111111111111111111111111111234550 -> 1.111111111111111111111111111112345 Rounded Inexact
-dqbsr429 toSci 1.11111111111111111111111111111234551 -> 1.111111111111111111111111111112345 Rounded Inexact
-rounding: half_up
-dqbsr431 toSci 1.1111111111111111111111111111123450 -> 1.111111111111111111111111111112345 Rounded
-dqbsr432 toSci 1.11111111111111111111111111111234549 -> 1.111111111111111111111111111112345 Rounded Inexact
-dqbsr433 toSci 1.11111111111111111111111111111234550 -> 1.111111111111111111111111111112346 Rounded Inexact
-dqbsr434 toSci 1.11111111111111111111111111111234650 -> 1.111111111111111111111111111112347 Rounded Inexact
-dqbsr435 toSci 1.11111111111111111111111111111234551 -> 1.111111111111111111111111111112346 Rounded Inexact
--- negatives
-rounding: ceiling
-dqbsr501 toSci -1.1111111111111111111111111111123450 -> -1.111111111111111111111111111112345 Rounded
-dqbsr502 toSci -1.11111111111111111111111111111234549 -> -1.111111111111111111111111111112345 Rounded Inexact
-dqbsr503 toSci -1.11111111111111111111111111111234550 -> -1.111111111111111111111111111112345 Rounded Inexact
-dqbsr504 toSci -1.11111111111111111111111111111234551 -> -1.111111111111111111111111111112345 Rounded Inexact
-rounding: up
-dqbsr505 toSci -1.1111111111111111111111111111123450 -> -1.111111111111111111111111111112345 Rounded
-dqbsr506 toSci -1.11111111111111111111111111111234549 -> -1.111111111111111111111111111112346 Rounded Inexact
-dqbsr507 toSci -1.11111111111111111111111111111234550 -> -1.111111111111111111111111111112346 Rounded Inexact
-dqbsr508 toSci -1.11111111111111111111111111111234551 -> -1.111111111111111111111111111112346 Rounded Inexact
-rounding: floor
-dqbsr510 toSci -1.1111111111111111111111111111123450 -> -1.111111111111111111111111111112345 Rounded
-dqbsr511 toSci -1.11111111111111111111111111111234549 -> -1.111111111111111111111111111112346 Rounded Inexact
-dqbsr512 toSci -1.11111111111111111111111111111234550 -> -1.111111111111111111111111111112346 Rounded Inexact
-dqbsr513 toSci -1.11111111111111111111111111111234551 -> -1.111111111111111111111111111112346 Rounded Inexact
-rounding: half_down
-dqbsr515 toSci -1.1111111111111111111111111111123450 -> -1.111111111111111111111111111112345 Rounded
-dqbsr516 toSci -1.11111111111111111111111111111234549 -> -1.111111111111111111111111111112345 Rounded Inexact
-dqbsr517 toSci -1.11111111111111111111111111111234550 -> -1.111111111111111111111111111112345 Rounded Inexact
-dqbsr518 toSci -1.11111111111111111111111111111234650 -> -1.111111111111111111111111111112346 Rounded Inexact
-dqbsr519 toSci -1.11111111111111111111111111111234551 -> -1.111111111111111111111111111112346 Rounded Inexact
-rounding: half_even
-dqbsr521 toSci -1.1111111111111111111111111111123450 -> -1.111111111111111111111111111112345 Rounded
-dqbsr522 toSci -1.11111111111111111111111111111234549 -> -1.111111111111111111111111111112345 Rounded Inexact
-dqbsr523 toSci -1.11111111111111111111111111111234550 -> -1.111111111111111111111111111112346 Rounded Inexact
-dqbsr524 toSci -1.11111111111111111111111111111234650 -> -1.111111111111111111111111111112346 Rounded Inexact
-dqbsr525 toSci -1.11111111111111111111111111111234551 -> -1.111111111111111111111111111112346 Rounded Inexact
-rounding: down
-dqbsr526 toSci -1.1111111111111111111111111111123450 -> -1.111111111111111111111111111112345 Rounded
-dqbsr527 toSci -1.11111111111111111111111111111234549 -> -1.111111111111111111111111111112345 Rounded Inexact
-dqbsr528 toSci -1.11111111111111111111111111111234550 -> -1.111111111111111111111111111112345 Rounded Inexact
-dqbsr529 toSci -1.11111111111111111111111111111234551 -> -1.111111111111111111111111111112345 Rounded Inexact
-rounding: half_up
-dqbsr531 toSci -1.1111111111111111111111111111123450 -> -1.111111111111111111111111111112345 Rounded
-dqbsr532 toSci -1.11111111111111111111111111111234549 -> -1.111111111111111111111111111112345 Rounded Inexact
-dqbsr533 toSci -1.11111111111111111111111111111234550 -> -1.111111111111111111111111111112346 Rounded Inexact
-dqbsr534 toSci -1.11111111111111111111111111111234650 -> -1.111111111111111111111111111112347 Rounded Inexact
-dqbsr535 toSci -1.11111111111111111111111111111234551 -> -1.111111111111111111111111111112346 Rounded Inexact
-
-rounding: half_even
-
--- The 'baddies' tests from DiagBigDecimal, plus some new ones
-dqbas500 toSci '1..2' -> NaN Conversion_syntax
-dqbas501 toSci '.' -> NaN Conversion_syntax
-dqbas502 toSci '..' -> NaN Conversion_syntax
-dqbas503 toSci '++1' -> NaN Conversion_syntax
-dqbas504 toSci '--1' -> NaN Conversion_syntax
-dqbas505 toSci '-+1' -> NaN Conversion_syntax
-dqbas506 toSci '+-1' -> NaN Conversion_syntax
-dqbas507 toSci '12e' -> NaN Conversion_syntax
-dqbas508 toSci '12e++' -> NaN Conversion_syntax
-dqbas509 toSci '12f4' -> NaN Conversion_syntax
-dqbas510 toSci ' +1' -> NaN Conversion_syntax
-dqbas511 toSci '+ 1' -> NaN Conversion_syntax
-dqbas512 toSci '12 ' -> NaN Conversion_syntax
-dqbas513 toSci ' + 1' -> NaN Conversion_syntax
-dqbas514 toSci ' - 1 ' -> NaN Conversion_syntax
-dqbas515 toSci 'x' -> NaN Conversion_syntax
-dqbas516 toSci '-1-' -> NaN Conversion_syntax
-dqbas517 toSci '12-' -> NaN Conversion_syntax
-dqbas518 toSci '3+' -> NaN Conversion_syntax
-dqbas519 toSci '' -> NaN Conversion_syntax
-dqbas520 toSci '1e-' -> NaN Conversion_syntax
-dqbas521 toSci '7e99999a' -> NaN Conversion_syntax
-dqbas522 toSci '7e123567890x' -> NaN Conversion_syntax
-dqbas523 toSci '7e12356789012x' -> NaN Conversion_syntax
-dqbas524 toSci '' -> NaN Conversion_syntax
-dqbas525 toSci 'e100' -> NaN Conversion_syntax
-dqbas526 toSci '\u0e5a' -> NaN Conversion_syntax
-dqbas527 toSci '\u0b65' -> NaN Conversion_syntax
-dqbas528 toSci '123,65' -> NaN Conversion_syntax
-dqbas529 toSci '1.34.5' -> NaN Conversion_syntax
-dqbas530 toSci '.123.5' -> NaN Conversion_syntax
-dqbas531 toSci '01.35.' -> NaN Conversion_syntax
-dqbas532 toSci '01.35-' -> NaN Conversion_syntax
-dqbas533 toSci '0000..' -> NaN Conversion_syntax
-dqbas534 toSci '.0000.' -> NaN Conversion_syntax
-dqbas535 toSci '00..00' -> NaN Conversion_syntax
-dqbas536 toSci '111e*123' -> NaN Conversion_syntax
-dqbas537 toSci '111e123-' -> NaN Conversion_syntax
-dqbas538 toSci '111e+12+' -> NaN Conversion_syntax
-dqbas539 toSci '111e1-3-' -> NaN Conversion_syntax
-dqbas540 toSci '111e1*23' -> NaN Conversion_syntax
-dqbas541 toSci '111e1e+3' -> NaN Conversion_syntax
-dqbas542 toSci '1e1.0' -> NaN Conversion_syntax
-dqbas543 toSci '1e123e' -> NaN Conversion_syntax
-dqbas544 toSci 'ten' -> NaN Conversion_syntax
-dqbas545 toSci 'ONE' -> NaN Conversion_syntax
-dqbas546 toSci '1e.1' -> NaN Conversion_syntax
-dqbas547 toSci '1e1.' -> NaN Conversion_syntax
-dqbas548 toSci '1ee' -> NaN Conversion_syntax
-dqbas549 toSci 'e+1' -> NaN Conversion_syntax
-dqbas550 toSci '1.23.4' -> NaN Conversion_syntax
-dqbas551 toSci '1.2.1' -> NaN Conversion_syntax
-dqbas552 toSci '1E+1.2' -> NaN Conversion_syntax
-dqbas553 toSci '1E+1.2.3' -> NaN Conversion_syntax
-dqbas554 toSci '1E++1' -> NaN Conversion_syntax
-dqbas555 toSci '1E--1' -> NaN Conversion_syntax
-dqbas556 toSci '1E+-1' -> NaN Conversion_syntax
-dqbas557 toSci '1E-+1' -> NaN Conversion_syntax
-dqbas558 toSci '1E''1' -> NaN Conversion_syntax
-dqbas559 toSci "1E""1" -> NaN Conversion_syntax
-dqbas560 toSci "1E""""" -> NaN Conversion_syntax
--- Near-specials
-dqbas561 toSci "qNaN" -> NaN Conversion_syntax
-dqbas562 toSci "NaNq" -> NaN Conversion_syntax
-dqbas563 toSci "NaNs" -> NaN Conversion_syntax
-dqbas564 toSci "Infi" -> NaN Conversion_syntax
-dqbas565 toSci "Infin" -> NaN Conversion_syntax
-dqbas566 toSci "Infini" -> NaN Conversion_syntax
-dqbas567 toSci "Infinit" -> NaN Conversion_syntax
-dqbas568 toSci "-Infinit" -> NaN Conversion_syntax
-dqbas569 toSci "0Inf" -> NaN Conversion_syntax
-dqbas570 toSci "9Inf" -> NaN Conversion_syntax
-dqbas571 toSci "-0Inf" -> NaN Conversion_syntax
-dqbas572 toSci "-9Inf" -> NaN Conversion_syntax
-dqbas573 toSci "-sNa" -> NaN Conversion_syntax
-dqbas574 toSci "xNaN" -> NaN Conversion_syntax
-dqbas575 toSci "0sNaN" -> NaN Conversion_syntax
-
--- some baddies with dots and Es and dots and specials
-dqbas576 toSci 'e+1' -> NaN Conversion_syntax
-dqbas577 toSci '.e+1' -> NaN Conversion_syntax
-dqbas578 toSci '+.e+1' -> NaN Conversion_syntax
-dqbas579 toSci '-.e+' -> NaN Conversion_syntax
-dqbas580 toSci '-.e' -> NaN Conversion_syntax
-dqbas581 toSci 'E+1' -> NaN Conversion_syntax
-dqbas582 toSci '.E+1' -> NaN Conversion_syntax
-dqbas583 toSci '+.E+1' -> NaN Conversion_syntax
-dqbas584 toSci '-.E+' -> NaN Conversion_syntax
-dqbas585 toSci '-.E' -> NaN Conversion_syntax
-
-dqbas586 toSci '.NaN' -> NaN Conversion_syntax
-dqbas587 toSci '-.NaN' -> NaN Conversion_syntax
-dqbas588 toSci '+.sNaN' -> NaN Conversion_syntax
-dqbas589 toSci '+.Inf' -> NaN Conversion_syntax
-dqbas590 toSci '.Infinity' -> NaN Conversion_syntax
-
--- Zeros
-dqbas601 toSci 0.000000000 -> 0E-9
-dqbas602 toSci 0.00000000 -> 0E-8
-dqbas603 toSci 0.0000000 -> 0E-7
-dqbas604 toSci 0.000000 -> 0.000000
-dqbas605 toSci 0.00000 -> 0.00000
-dqbas606 toSci 0.0000 -> 0.0000
-dqbas607 toSci 0.000 -> 0.000
-dqbas608 toSci 0.00 -> 0.00
-dqbas609 toSci 0.0 -> 0.0
-dqbas610 toSci .0 -> 0.0
-dqbas611 toSci 0. -> 0
-dqbas612 toSci -.0 -> -0.0
-dqbas613 toSci -0. -> -0
-dqbas614 toSci -0.0 -> -0.0
-dqbas615 toSci -0.00 -> -0.00
-dqbas616 toSci -0.000 -> -0.000
-dqbas617 toSci -0.0000 -> -0.0000
-dqbas618 toSci -0.00000 -> -0.00000
-dqbas619 toSci -0.000000 -> -0.000000
-dqbas620 toSci -0.0000000 -> -0E-7
-dqbas621 toSci -0.00000000 -> -0E-8
-dqbas622 toSci -0.000000000 -> -0E-9
-
-dqbas630 toSci 0.00E+0 -> 0.00
-dqbas631 toSci 0.00E+1 -> 0.0
-dqbas632 toSci 0.00E+2 -> 0
-dqbas633 toSci 0.00E+3 -> 0E+1
-dqbas634 toSci 0.00E+4 -> 0E+2
-dqbas635 toSci 0.00E+5 -> 0E+3
-dqbas636 toSci 0.00E+6 -> 0E+4
-dqbas637 toSci 0.00E+7 -> 0E+5
-dqbas638 toSci 0.00E+8 -> 0E+6
-dqbas639 toSci 0.00E+9 -> 0E+7
-
-dqbas640 toSci 0.0E+0 -> 0.0
-dqbas641 toSci 0.0E+1 -> 0
-dqbas642 toSci 0.0E+2 -> 0E+1
-dqbas643 toSci 0.0E+3 -> 0E+2
-dqbas644 toSci 0.0E+4 -> 0E+3
-dqbas645 toSci 0.0E+5 -> 0E+4
-dqbas646 toSci 0.0E+6 -> 0E+5
-dqbas647 toSci 0.0E+7 -> 0E+6
-dqbas648 toSci 0.0E+8 -> 0E+7
-dqbas649 toSci 0.0E+9 -> 0E+8
-
-dqbas650 toSci 0E+0 -> 0
-dqbas651 toSci 0E+1 -> 0E+1
-dqbas652 toSci 0E+2 -> 0E+2
-dqbas653 toSci 0E+3 -> 0E+3
-dqbas654 toSci 0E+4 -> 0E+4
-dqbas655 toSci 0E+5 -> 0E+5
-dqbas656 toSci 0E+6 -> 0E+6
-dqbas657 toSci 0E+7 -> 0E+7
-dqbas658 toSci 0E+8 -> 0E+8
-dqbas659 toSci 0E+9 -> 0E+9
-
-dqbas660 toSci 0.0E-0 -> 0.0
-dqbas661 toSci 0.0E-1 -> 0.00
-dqbas662 toSci 0.0E-2 -> 0.000
-dqbas663 toSci 0.0E-3 -> 0.0000
-dqbas664 toSci 0.0E-4 -> 0.00000
-dqbas665 toSci 0.0E-5 -> 0.000000
-dqbas666 toSci 0.0E-6 -> 0E-7
-dqbas667 toSci 0.0E-7 -> 0E-8
-dqbas668 toSci 0.0E-8 -> 0E-9
-dqbas669 toSci 0.0E-9 -> 0E-10
-
-dqbas670 toSci 0.00E-0 -> 0.00
-dqbas671 toSci 0.00E-1 -> 0.000
-dqbas672 toSci 0.00E-2 -> 0.0000
-dqbas673 toSci 0.00E-3 -> 0.00000
-dqbas674 toSci 0.00E-4 -> 0.000000
-dqbas675 toSci 0.00E-5 -> 0E-7
-dqbas676 toSci 0.00E-6 -> 0E-8
-dqbas677 toSci 0.00E-7 -> 0E-9
-dqbas678 toSci 0.00E-8 -> 0E-10
-dqbas679 toSci 0.00E-9 -> 0E-11
-
-dqbas680 toSci 000000. -> 0
-dqbas681 toSci 00000. -> 0
-dqbas682 toSci 0000. -> 0
-dqbas683 toSci 000. -> 0
-dqbas684 toSci 00. -> 0
-dqbas685 toSci 0. -> 0
-dqbas686 toSci +00000. -> 0
-dqbas687 toSci -00000. -> -0
-dqbas688 toSci +0. -> 0
-dqbas689 toSci -0. -> -0
-
--- Specials
-dqbas700 toSci "NaN" -> NaN
-dqbas701 toSci "nan" -> NaN
-dqbas702 toSci "nAn" -> NaN
-dqbas703 toSci "NAN" -> NaN
-dqbas704 toSci "+NaN" -> NaN
-dqbas705 toSci "+nan" -> NaN
-dqbas706 toSci "+nAn" -> NaN
-dqbas707 toSci "+NAN" -> NaN
-dqbas708 toSci "-NaN" -> -NaN
-dqbas709 toSci "-nan" -> -NaN
-dqbas710 toSci "-nAn" -> -NaN
-dqbas711 toSci "-NAN" -> -NaN
-dqbas712 toSci 'NaN0' -> NaN
-dqbas713 toSci 'NaN1' -> NaN1
-dqbas714 toSci 'NaN12' -> NaN12
-dqbas715 toSci 'NaN123' -> NaN123
-dqbas716 toSci 'NaN1234' -> NaN1234
-dqbas717 toSci 'NaN01' -> NaN1
-dqbas718 toSci 'NaN012' -> NaN12
-dqbas719 toSci 'NaN0123' -> NaN123
-dqbas720 toSci 'NaN01234' -> NaN1234
-dqbas721 toSci 'NaN001' -> NaN1
-dqbas722 toSci 'NaN0012' -> NaN12
-dqbas723 toSci 'NaN00123' -> NaN123
-dqbas724 toSci 'NaN001234' -> NaN1234
-dqbas725 toSci 'NaN1234567890123456781234567890123456' -> NaN Conversion_syntax
-dqbas726 toSci 'NaN123e+1' -> NaN Conversion_syntax
-dqbas727 toSci 'NaN12.45' -> NaN Conversion_syntax
-dqbas728 toSci 'NaN-12' -> NaN Conversion_syntax
-dqbas729 toSci 'NaN+12' -> NaN Conversion_syntax
-
-dqbas730 toSci "sNaN" -> sNaN
-dqbas731 toSci "snan" -> sNaN
-dqbas732 toSci "SnAn" -> sNaN
-dqbas733 toSci "SNAN" -> sNaN
-dqbas734 toSci "+sNaN" -> sNaN
-dqbas735 toSci "+snan" -> sNaN
-dqbas736 toSci "+SnAn" -> sNaN
-dqbas737 toSci "+SNAN" -> sNaN
-dqbas738 toSci "-sNaN" -> -sNaN
-dqbas739 toSci "-snan" -> -sNaN
-dqbas740 toSci "-SnAn" -> -sNaN
-dqbas741 toSci "-SNAN" -> -sNaN
-dqbas742 toSci 'sNaN0000' -> sNaN
-dqbas743 toSci 'sNaN7' -> sNaN7
-dqbas744 toSci 'sNaN007234' -> sNaN7234
-dqbas745 toSci 'sNaN1234567890123456787234561234567890' -> NaN Conversion_syntax
-dqbas746 toSci 'sNaN72.45' -> NaN Conversion_syntax
-dqbas747 toSci 'sNaN-72' -> NaN Conversion_syntax
-
-dqbas748 toSci "Inf" -> Infinity
-dqbas749 toSci "inf" -> Infinity
-dqbas750 toSci "iNf" -> Infinity
-dqbas751 toSci "INF" -> Infinity
-dqbas752 toSci "+Inf" -> Infinity
-dqbas753 toSci "+inf" -> Infinity
-dqbas754 toSci "+iNf" -> Infinity
-dqbas755 toSci "+INF" -> Infinity
-dqbas756 toSci "-Inf" -> -Infinity
-dqbas757 toSci "-inf" -> -Infinity
-dqbas758 toSci "-iNf" -> -Infinity
-dqbas759 toSci "-INF" -> -Infinity
-
-dqbas760 toSci "Infinity" -> Infinity
-dqbas761 toSci "infinity" -> Infinity
-dqbas762 toSci "iNfInItY" -> Infinity
-dqbas763 toSci "INFINITY" -> Infinity
-dqbas764 toSci "+Infinity" -> Infinity
-dqbas765 toSci "+infinity" -> Infinity
-dqbas766 toSci "+iNfInItY" -> Infinity
-dqbas767 toSci "+INFINITY" -> Infinity
-dqbas768 toSci "-Infinity" -> -Infinity
-dqbas769 toSci "-infinity" -> -Infinity
-dqbas770 toSci "-iNfInItY" -> -Infinity
-dqbas771 toSci "-INFINITY" -> -Infinity
-
--- Specials and zeros for toEng
-dqbast772 toEng "NaN" -> NaN
-dqbast773 toEng "-Infinity" -> -Infinity
-dqbast774 toEng "-sNaN" -> -sNaN
-dqbast775 toEng "-NaN" -> -NaN
-dqbast776 toEng "+Infinity" -> Infinity
-dqbast778 toEng "+sNaN" -> sNaN
-dqbast779 toEng "+NaN" -> NaN
-dqbast780 toEng "INFINITY" -> Infinity
-dqbast781 toEng "SNAN" -> sNaN
-dqbast782 toEng "NAN" -> NaN
-dqbast783 toEng "infinity" -> Infinity
-dqbast784 toEng "snan" -> sNaN
-dqbast785 toEng "nan" -> NaN
-dqbast786 toEng "InFINITY" -> Infinity
-dqbast787 toEng "SnAN" -> sNaN
-dqbast788 toEng "nAN" -> NaN
-dqbast789 toEng "iNfinity" -> Infinity
-dqbast790 toEng "sNan" -> sNaN
-dqbast791 toEng "Nan" -> NaN
-dqbast792 toEng "Infinity" -> Infinity
-dqbast793 toEng "sNaN" -> sNaN
-
--- Zero toEng, etc.
-dqbast800 toEng 0e+1 -> "0.00E+3" -- doc example
-
-dqbast801 toEng 0.000000000 -> 0E-9
-dqbast802 toEng 0.00000000 -> 0.00E-6
-dqbast803 toEng 0.0000000 -> 0.0E-6
-dqbast804 toEng 0.000000 -> 0.000000
-dqbast805 toEng 0.00000 -> 0.00000
-dqbast806 toEng 0.0000 -> 0.0000
-dqbast807 toEng 0.000 -> 0.000
-dqbast808 toEng 0.00 -> 0.00
-dqbast809 toEng 0.0 -> 0.0
-dqbast810 toEng .0 -> 0.0
-dqbast811 toEng 0. -> 0
-dqbast812 toEng -.0 -> -0.0
-dqbast813 toEng -0. -> -0
-dqbast814 toEng -0.0 -> -0.0
-dqbast815 toEng -0.00 -> -0.00
-dqbast816 toEng -0.000 -> -0.000
-dqbast817 toEng -0.0000 -> -0.0000
-dqbast818 toEng -0.00000 -> -0.00000
-dqbast819 toEng -0.000000 -> -0.000000
-dqbast820 toEng -0.0000000 -> -0.0E-6
-dqbast821 toEng -0.00000000 -> -0.00E-6
-dqbast822 toEng -0.000000000 -> -0E-9
-
-dqbast830 toEng 0.00E+0 -> 0.00
-dqbast831 toEng 0.00E+1 -> 0.0
-dqbast832 toEng 0.00E+2 -> 0
-dqbast833 toEng 0.00E+3 -> 0.00E+3
-dqbast834 toEng 0.00E+4 -> 0.0E+3
-dqbast835 toEng 0.00E+5 -> 0E+3
-dqbast836 toEng 0.00E+6 -> 0.00E+6
-dqbast837 toEng 0.00E+7 -> 0.0E+6
-dqbast838 toEng 0.00E+8 -> 0E+6
-dqbast839 toEng 0.00E+9 -> 0.00E+9
-
-dqbast840 toEng 0.0E+0 -> 0.0
-dqbast841 toEng 0.0E+1 -> 0
-dqbast842 toEng 0.0E+2 -> 0.00E+3
-dqbast843 toEng 0.0E+3 -> 0.0E+3
-dqbast844 toEng 0.0E+4 -> 0E+3
-dqbast845 toEng 0.0E+5 -> 0.00E+6
-dqbast846 toEng 0.0E+6 -> 0.0E+6
-dqbast847 toEng 0.0E+7 -> 0E+6
-dqbast848 toEng 0.0E+8 -> 0.00E+9
-dqbast849 toEng 0.0E+9 -> 0.0E+9
-
-dqbast850 toEng 0E+0 -> 0
-dqbast851 toEng 0E+1 -> 0.00E+3
-dqbast852 toEng 0E+2 -> 0.0E+3
-dqbast853 toEng 0E+3 -> 0E+3
-dqbast854 toEng 0E+4 -> 0.00E+6
-dqbast855 toEng 0E+5 -> 0.0E+6
-dqbast856 toEng 0E+6 -> 0E+6
-dqbast857 toEng 0E+7 -> 0.00E+9
-dqbast858 toEng 0E+8 -> 0.0E+9
-dqbast859 toEng 0E+9 -> 0E+9
-
-dqbast860 toEng 0.0E-0 -> 0.0
-dqbast861 toEng 0.0E-1 -> 0.00
-dqbast862 toEng 0.0E-2 -> 0.000
-dqbast863 toEng 0.0E-3 -> 0.0000
-dqbast864 toEng 0.0E-4 -> 0.00000
-dqbast865 toEng 0.0E-5 -> 0.000000
-dqbast866 toEng 0.0E-6 -> 0.0E-6
-dqbast867 toEng 0.0E-7 -> 0.00E-6
-dqbast868 toEng 0.0E-8 -> 0E-9
-dqbast869 toEng 0.0E-9 -> 0.0E-9
-
-dqbast870 toEng 0.00E-0 -> 0.00
-dqbast871 toEng 0.00E-1 -> 0.000
-dqbast872 toEng 0.00E-2 -> 0.0000
-dqbast873 toEng 0.00E-3 -> 0.00000
-dqbast874 toEng 0.00E-4 -> 0.000000
-dqbast875 toEng 0.00E-5 -> 0.0E-6
-dqbast876 toEng 0.00E-6 -> 0.00E-6
-dqbast877 toEng 0.00E-7 -> 0E-9
-dqbast878 toEng 0.00E-8 -> 0.0E-9
-dqbast879 toEng 0.00E-9 -> 0.00E-9
-
--- long input strings
-dqbas801 tosci '01234567890123456' -> 1234567890123456
-dqbas802 tosci '001234567890123456' -> 1234567890123456
-dqbas803 tosci '0001234567890123456' -> 1234567890123456
-dqbas804 tosci '00001234567890123456' -> 1234567890123456
-dqbas805 tosci '000001234567890123456' -> 1234567890123456
-dqbas806 tosci '0000001234567890123456' -> 1234567890123456
-dqbas807 tosci '00000001234567890123456' -> 1234567890123456
-dqbas808 tosci '000000001234567890123456' -> 1234567890123456
-dqbas809 tosci '0000000001234567890123456' -> 1234567890123456
-dqbas810 tosci '00000000001234567890123456' -> 1234567890123456
-
-dqbas811 tosci '0.1234567890123456' -> 0.1234567890123456
-dqbas812 tosci '0.01234567890123456' -> 0.01234567890123456
-dqbas813 tosci '0.001234567890123456' -> 0.001234567890123456
-dqbas814 tosci '0.0001234567890123456' -> 0.0001234567890123456
-dqbas815 tosci '0.00001234567890123456' -> 0.00001234567890123456
-dqbas816 tosci '0.000001234567890123456' -> 0.000001234567890123456
-dqbas817 tosci '0.0000001234567890123456' -> 1.234567890123456E-7
-dqbas818 tosci '0.00000001234567890123456' -> 1.234567890123456E-8
-dqbas819 tosci '0.000000001234567890123456' -> 1.234567890123456E-9
-dqbas820 tosci '0.0000000001234567890123456' -> 1.234567890123456E-10
-
-dqbas821 tosci '12345678912345678901234567801234567890' -> 1.234567891234567890123456780123457E+37 Inexact Rounded
-dqbas822 tosci '123456789123456789012345678012345678901' -> 1.234567891234567890123456780123457E+38 Inexact Rounded
-dqbas823 tosci '1234567891234567890123456780123456789012' -> 1.234567891234567890123456780123457E+39 Inexact Rounded
-dqbas824 tosci '12345678912345678901234567801234567890123' -> 1.234567891234567890123456780123457E+40 Inexact Rounded
-dqbas825 tosci '123456789123456789012345678012345678901234' -> 1.234567891234567890123456780123457E+41 Inexact Rounded
-dqbas826 tosci '1234567891234567890123456780123456789012345' -> 1.234567891234567890123456780123457E+42 Inexact Rounded
-dqbas827 tosci '12345678912345678901234567801234567890123456' -> 1.234567891234567890123456780123457E+43 Inexact Rounded
-dqbas828 tosci '123456789123456789012345678012345678901234567' -> 1.234567891234567890123456780123457E+44 Inexact Rounded
-dqbas829 tosci '1234567891234567890123456780123456789012345678' -> 1.234567891234567890123456780123457E+45 Inexact Rounded
-
--- subnormals and overflows
-dqbas906 toSci '99e999999999' -> Infinity Overflow Inexact Rounded
-dqbas907 toSci '999e999999999' -> Infinity Overflow Inexact Rounded
-dqbas908 toSci '0.9e-999999999' -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqbas909 toSci '0.09e-999999999' -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqbas910 toSci '0.1e1000000000' -> Infinity Overflow Inexact Rounded
-dqbas911 toSci '10e-1000000000' -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqbas912 toSci '0.9e9999999999' -> Infinity Overflow Inexact Rounded
-dqbas913 toSci '99e-9999999999' -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqbas914 toSci '111e9999999999' -> Infinity Overflow Inexact Rounded
-dqbas915 toSci '1111e-9999999999' -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqbas916 toSci '1111e-99999999999' -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqbas917 toSci '7e1000000000' -> Infinity Overflow Inexact Rounded
--- negatives the same
-dqbas918 toSci '-99e999999999' -> -Infinity Overflow Inexact Rounded
-dqbas919 toSci '-999e999999999' -> -Infinity Overflow Inexact Rounded
-dqbas920 toSci '-0.9e-999999999' -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqbas921 toSci '-0.09e-999999999' -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqbas922 toSci '-0.1e1000000000' -> -Infinity Overflow Inexact Rounded
-dqbas923 toSci '-10e-1000000000' -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqbas924 toSci '-0.9e9999999999' -> -Infinity Overflow Inexact Rounded
-dqbas925 toSci '-99e-9999999999' -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqbas926 toSci '-111e9999999999' -> -Infinity Overflow Inexact Rounded
-dqbas927 toSci '-1111e-9999999999' -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqbas928 toSci '-1111e-99999999999' -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqbas929 toSci '-7e1000000000' -> -Infinity Overflow Inexact Rounded
-
--- overflow results at different rounding modes
-rounding: ceiling
-dqbas930 toSci '7e10000' -> Infinity Overflow Inexact Rounded
-dqbas931 toSci '-7e10000' -> -9.999999999999999999999999999999999E+6144 Overflow Inexact Rounded
-rounding: up
-dqbas932 toSci '7e10000' -> Infinity Overflow Inexact Rounded
-dqbas933 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded
-rounding: down
-dqbas934 toSci '7e10000' -> 9.999999999999999999999999999999999E+6144 Overflow Inexact Rounded
-dqbas935 toSci '-7e10000' -> -9.999999999999999999999999999999999E+6144 Overflow Inexact Rounded
-rounding: floor
-dqbas936 toSci '7e10000' -> 9.999999999999999999999999999999999E+6144 Overflow Inexact Rounded
-dqbas937 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded
-
-rounding: half_up
-dqbas938 toSci '7e10000' -> Infinity Overflow Inexact Rounded
-dqbas939 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded
-rounding: half_even
-dqbas940 toSci '7e10000' -> Infinity Overflow Inexact Rounded
-dqbas941 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded
-rounding: half_down
-dqbas942 toSci '7e10000' -> Infinity Overflow Inexact Rounded
-dqbas943 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded
-
-rounding: half_even
-
--- Now check 854/754r some subnormals and underflow to 0
-dqbem400 toSci 1.0000E-383 -> 1.0000E-383
-dqbem401 toSci 0.1E-6172 -> 1E-6173 Subnormal
-dqbem402 toSci 0.1000E-6172 -> 1.000E-6173 Subnormal
-dqbem403 toSci 0.0100E-6172 -> 1.00E-6174 Subnormal
-dqbem404 toSci 0.0010E-6172 -> 1.0E-6175 Subnormal
-dqbem405 toSci 0.0001E-6172 -> 1E-6176 Subnormal
-dqbem406 toSci 0.00010E-6172 -> 1E-6176 Subnormal Rounded
-dqbem407 toSci 0.00013E-6172 -> 1E-6176 Underflow Subnormal Inexact Rounded
-dqbem408 toSci 0.00015E-6172 -> 2E-6176 Underflow Subnormal Inexact Rounded
-dqbem409 toSci 0.00017E-6172 -> 2E-6176 Underflow Subnormal Inexact Rounded
-dqbem410 toSci 0.00023E-6172 -> 2E-6176 Underflow Subnormal Inexact Rounded
-dqbem411 toSci 0.00025E-6172 -> 2E-6176 Underflow Subnormal Inexact Rounded
-dqbem412 toSci 0.00027E-6172 -> 3E-6176 Underflow Subnormal Inexact Rounded
-dqbem413 toSci 0.000149E-6172 -> 1E-6176 Underflow Subnormal Inexact Rounded
-dqbem414 toSci 0.000150E-6172 -> 2E-6176 Underflow Subnormal Inexact Rounded
-dqbem415 toSci 0.000151E-6172 -> 2E-6176 Underflow Subnormal Inexact Rounded
-dqbem416 toSci 0.000249E-6172 -> 2E-6176 Underflow Subnormal Inexact Rounded
-dqbem417 toSci 0.000250E-6172 -> 2E-6176 Underflow Subnormal Inexact Rounded
-dqbem418 toSci 0.000251E-6172 -> 3E-6176 Underflow Subnormal Inexact Rounded
-dqbem419 toSci 0.00009E-6172 -> 1E-6176 Underflow Subnormal Inexact Rounded
-dqbem420 toSci 0.00005E-6172 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqbem421 toSci 0.00003E-6172 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqbem422 toSci 0.000009E-6172 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqbem423 toSci 0.000005E-6172 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqbem424 toSci 0.000003E-6172 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-
-dqbem425 toSci 0.001049E-6172 -> 1.0E-6175 Underflow Subnormal Inexact Rounded
-dqbem426 toSci 0.001050E-6172 -> 1.0E-6175 Underflow Subnormal Inexact Rounded
-dqbem427 toSci 0.001051E-6172 -> 1.1E-6175 Underflow Subnormal Inexact Rounded
-dqbem428 toSci 0.001149E-6172 -> 1.1E-6175 Underflow Subnormal Inexact Rounded
-dqbem429 toSci 0.001150E-6172 -> 1.2E-6175 Underflow Subnormal Inexact Rounded
-dqbem430 toSci 0.001151E-6172 -> 1.2E-6175 Underflow Subnormal Inexact Rounded
-
-dqbem432 toSci 0.010049E-6172 -> 1.00E-6174 Underflow Subnormal Inexact Rounded
-dqbem433 toSci 0.010050E-6172 -> 1.00E-6174 Underflow Subnormal Inexact Rounded
-dqbem434 toSci 0.010051E-6172 -> 1.01E-6174 Underflow Subnormal Inexact Rounded
-dqbem435 toSci 0.010149E-6172 -> 1.01E-6174 Underflow Subnormal Inexact Rounded
-dqbem436 toSci 0.010150E-6172 -> 1.02E-6174 Underflow Subnormal Inexact Rounded
-dqbem437 toSci 0.010151E-6172 -> 1.02E-6174 Underflow Subnormal Inexact Rounded
-
-dqbem440 toSci 0.10103E-6172 -> 1.010E-6173 Underflow Subnormal Inexact Rounded
-dqbem441 toSci 0.10105E-6172 -> 1.010E-6173 Underflow Subnormal Inexact Rounded
-dqbem442 toSci 0.10107E-6172 -> 1.011E-6173 Underflow Subnormal Inexact Rounded
-dqbem443 toSci 0.10113E-6172 -> 1.011E-6173 Underflow Subnormal Inexact Rounded
-dqbem444 toSci 0.10115E-6172 -> 1.012E-6173 Underflow Subnormal Inexact Rounded
-dqbem445 toSci 0.10117E-6172 -> 1.012E-6173 Underflow Subnormal Inexact Rounded
-
-dqbem450 toSci 1.10730E-6173 -> 1.107E-6173 Underflow Subnormal Inexact Rounded
-dqbem451 toSci 1.10750E-6173 -> 1.108E-6173 Underflow Subnormal Inexact Rounded
-dqbem452 toSci 1.10770E-6173 -> 1.108E-6173 Underflow Subnormal Inexact Rounded
-dqbem453 toSci 1.10830E-6173 -> 1.108E-6173 Underflow Subnormal Inexact Rounded
-dqbem454 toSci 1.10850E-6173 -> 1.108E-6173 Underflow Subnormal Inexact Rounded
-dqbem455 toSci 1.10870E-6173 -> 1.109E-6173 Underflow Subnormal Inexact Rounded
-
--- make sure sign OK
-dqbem456 toSci -0.10103E-6172 -> -1.010E-6173 Underflow Subnormal Inexact Rounded
-dqbem457 toSci -0.10105E-6172 -> -1.010E-6173 Underflow Subnormal Inexact Rounded
-dqbem458 toSci -0.10107E-6172 -> -1.011E-6173 Underflow Subnormal Inexact Rounded
-dqbem459 toSci -0.10113E-6172 -> -1.011E-6173 Underflow Subnormal Inexact Rounded
-dqbem460 toSci -0.10115E-6172 -> -1.012E-6173 Underflow Subnormal Inexact Rounded
-dqbem461 toSci -0.10117E-6172 -> -1.012E-6173 Underflow Subnormal Inexact Rounded
-
--- '999s' cases
-dqbem464 toSci 999999E-6173 -> 9.99999E-6168 Subnormal
-dqbem465 toSci 99999.0E-6172 -> 9.99990E-6168 Subnormal
-dqbem466 toSci 99999.E-6172 -> 9.9999E-6168 Subnormal
-dqbem467 toSci 9999.9E-6172 -> 9.9999E-6169 Subnormal
-dqbem468 toSci 999.99E-6172 -> 9.9999E-6170 Subnormal
-dqbem469 toSci 99.999E-6172 -> 9.9999E-6171 Subnormal
-dqbem470 toSci 9.9999E-6172 -> 9.9999E-6172 Subnormal
-dqbem471 toSci 0.99999E-6172 -> 1.0000E-6172 Underflow Subnormal Inexact Rounded
-dqbem472 toSci 0.099999E-6172 -> 1.000E-6173 Underflow Subnormal Inexact Rounded
-dqbem473 toSci 0.0099999E-6172 -> 1.00E-6174 Underflow Subnormal Inexact Rounded
-dqbem474 toSci 0.00099999E-6172 -> 1.0E-6175 Underflow Subnormal Inexact Rounded
-dqbem475 toSci 0.000099999E-6172 -> 1E-6176 Underflow Subnormal Inexact Rounded
-dqbem476 toSci 0.0000099999E-6172 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqbem477 toSci 0.00000099999E-6172 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqbem478 toSci 0.000000099999E-6172 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-
--- Exponents with insignificant leading zeros
-dqbas1001 toSci 1e999999999 -> Infinity Overflow Inexact Rounded
-dqbas1002 toSci 1e0999999999 -> Infinity Overflow Inexact Rounded
-dqbas1003 toSci 1e00999999999 -> Infinity Overflow Inexact Rounded
-dqbas1004 toSci 1e000999999999 -> Infinity Overflow Inexact Rounded
-dqbas1005 toSci 1e000000000000999999999 -> Infinity Overflow Inexact Rounded
-dqbas1006 toSci 1e000000000001000000007 -> Infinity Overflow Inexact Rounded
-dqbas1007 toSci 1e-999999999 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqbas1008 toSci 1e-0999999999 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqbas1009 toSci 1e-00999999999 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqbas1010 toSci 1e-000999999999 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqbas1011 toSci 1e-000000000000999999999 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqbas1012 toSci 1e-000000000001000000007 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-
--- check for double-rounded subnormals
-dqbas1041 toSci 1.1111111111111111111111111111152444E-6144 -> 1.11111111111111111111111111111524E-6144 Inexact Rounded Subnormal Underflow
-dqbas1042 toSci 1.1111111111111111111111111111152445E-6144 -> 1.11111111111111111111111111111524E-6144 Inexact Rounded Subnormal Underflow
-dqbas1043 toSci 1.1111111111111111111111111111152446E-6144 -> 1.11111111111111111111111111111524E-6144 Inexact Rounded Subnormal Underflow
-
--- clamped zeros [see also clamp.decTest]
-dqbas1075 toSci 0e+10000 -> 0E+6111 Clamped
-dqbas1076 toSci 0e-10000 -> 0E-6176 Clamped
-dqbas1077 toSci -0e+10000 -> -0E+6111 Clamped
-dqbas1078 toSci -0e-10000 -> -0E-6176 Clamped
-
--- extreme values from next-wider
-dqbas1101 toSci -9.9999999999999999999999999999999999999999999999999999999999999999999E+1572864 -> -Infinity Overflow Inexact Rounded
-dqbas1102 toSci -1E-1572863 -> -0E-6176 Inexact Rounded Subnormal Underflow Clamped
-dqbas1103 toSci -1E-1572932 -> -0E-6176 Inexact Rounded Subnormal Underflow Clamped
-dqbas1104 toSci -0 -> -0
-dqbas1105 toSci +0 -> 0
-dqbas1106 toSci +1E-1572932 -> 0E-6176 Inexact Rounded Subnormal Underflow Clamped
-dqbas1107 toSci +1E-1572863 -> 0E-6176 Inexact Rounded Subnormal Underflow Clamped
-dqbas1108 toSci +9.9999999999999999999999999999999999999999999999999999999999999999999E+1572864 -> Infinity Overflow Inexact Rounded
-
+------------------------------------------------------------------------ +-- dqBase.decTest -- base decQuad <--> string conversions -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- This file tests base conversions from string to a decimal number +-- and back to a string (in Scientific form) + +-- Note that unlike other operations the operand is subject to rounding +-- to conform to emax and precision settings (that is, numbers will +-- conform to rules and exponent will be in permitted range). The +-- 'left hand side', therefore, may have numbers that cannot be +-- represented in a decQuad. Some testcases go to the limit of the +-- next-wider format, and hence these testcases may also be used to +-- test narrowing and widening operations. + +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +dqbas001 toSci 0 -> 0 +dqbas002 toSci 1 -> 1 +dqbas003 toSci 1.0 -> 1.0 +dqbas004 toSci 1.00 -> 1.00 +dqbas005 toSci 10 -> 10 +dqbas006 toSci 1000 -> 1000 +dqbas007 toSci 10.0 -> 10.0 +dqbas008 toSci 10.1 -> 10.1 +dqbas009 toSci 10.4 -> 10.4 +dqbas010 toSci 10.5 -> 10.5 +dqbas011 toSci 10.6 -> 10.6 +dqbas012 toSci 10.9 -> 10.9 +dqbas013 toSci 11.0 -> 11.0 +dqbas014 toSci 1.234 -> 1.234 +dqbas015 toSci 0.123 -> 0.123 +dqbas016 toSci 0.012 -> 0.012 +dqbas017 toSci -0 -> -0 +dqbas018 toSci -0.0 -> -0.0 +dqbas019 toSci -00.00 -> -0.00 + +dqbas021 toSci -1 -> -1 +dqbas022 toSci -1.0 -> -1.0 +dqbas023 toSci -0.1 -> -0.1 +dqbas024 toSci -9.1 -> -9.1 +dqbas025 toSci -9.11 -> -9.11 +dqbas026 toSci -9.119 -> -9.119 +dqbas027 toSci -9.999 -> -9.999 + +dqbas030 toSci '123456789.123456' -> '123456789.123456' +dqbas031 toSci '123456789.000000' -> '123456789.000000' +dqbas032 toSci '123456789123456' -> '123456789123456' +dqbas033 toSci '0.0000123456789' -> '0.0000123456789' +dqbas034 toSci '0.00000123456789' -> '0.00000123456789' +dqbas035 toSci '0.000000123456789' -> '1.23456789E-7' +dqbas036 toSci '0.0000000123456789' -> '1.23456789E-8' + +dqbas037 toSci '0.123456789012344' -> '0.123456789012344' +dqbas038 toSci '0.123456789012345' -> '0.123456789012345' + +-- test finite bounds (Negs of, then 0, Ntiny, Nmin, other, Nmax) +dqbsn001 toSci -9.999999999999999999999999999999999E+6144 -> -9.999999999999999999999999999999999E+6144 +dqbsn002 toSci -1E-6143 -> -1E-6143 +dqbsn003 toSci -1E-6176 -> -1E-6176 Subnormal +dqbsn004 toSci -0 -> -0 +dqbsn005 toSci +0 -> 0 +dqbsn006 toSci +1E-6176 -> 1E-6176 Subnormal +dqbsn007 toSci +1E-6143 -> 1E-6143 +dqbsn008 toSci +9.999999999999999999999999999999999E+6144 -> 9.999999999999999999999999999999999E+6144 + +-- String [many more examples are implicitly tested elsewhere] +-- strings without E cannot generate E in result +dqbas040 toSci "12" -> '12' +dqbas041 toSci "-76" -> '-76' +dqbas042 toSci "12.76" -> '12.76' +dqbas043 toSci "+12.76" -> '12.76' +dqbas044 toSci "012.76" -> '12.76' +dqbas045 toSci "+0.003" -> '0.003' +dqbas046 toSci "17." -> '17' +dqbas047 toSci ".5" -> '0.5' +dqbas048 toSci "044" -> '44' +dqbas049 toSci "0044" -> '44' +dqbas050 toSci "0.0005" -> '0.0005' +dqbas051 toSci "00.00005" -> '0.00005' +dqbas052 toSci "0.000005" -> '0.000005' +dqbas053 toSci "0.0000050" -> '0.0000050' +dqbas054 toSci "0.0000005" -> '5E-7' +dqbas055 toSci "0.00000005" -> '5E-8' +dqbas056 toSci "12345678.543210" -> '12345678.543210' +dqbas057 toSci "2345678.543210" -> '2345678.543210' +dqbas058 toSci "345678.543210" -> '345678.543210' +dqbas059 toSci "0345678.54321" -> '345678.54321' +dqbas060 toSci "345678.5432" -> '345678.5432' +dqbas061 toSci "+345678.5432" -> '345678.5432' +dqbas062 toSci "+0345678.5432" -> '345678.5432' +dqbas063 toSci "+00345678.5432" -> '345678.5432' +dqbas064 toSci "-345678.5432" -> '-345678.5432' +dqbas065 toSci "-0345678.5432" -> '-345678.5432' +dqbas066 toSci "-00345678.5432" -> '-345678.5432' +-- examples +dqbas067 toSci "5E-6" -> '0.000005' +dqbas068 toSci "50E-7" -> '0.0000050' +dqbas069 toSci "5E-7" -> '5E-7' + +-- [No exotics as no Unicode] + +-- rounded with dots in all (including edge) places +dqbas071 toSci .1234567891234567890123456780123456123 -> 0.1234567891234567890123456780123456 Inexact Rounded +dqbas072 toSci 1.234567891234567890123456780123456123 -> 1.234567891234567890123456780123456 Inexact Rounded +dqbas073 toSci 12.34567891234567890123456780123456123 -> 12.34567891234567890123456780123456 Inexact Rounded +dqbas074 toSci 123.4567891234567890123456780123456123 -> 123.4567891234567890123456780123456 Inexact Rounded +dqbas075 toSci 1234.567891234567890123456780123456123 -> 1234.567891234567890123456780123456 Inexact Rounded +dqbas076 toSci 12345.67891234567890123456780123456123 -> 12345.67891234567890123456780123456 Inexact Rounded +dqbas077 toSci 123456.7891234567890123456780123456123 -> 123456.7891234567890123456780123456 Inexact Rounded +dqbas078 toSci 1234567.891234567890123456780123456123 -> 1234567.891234567890123456780123456 Inexact Rounded +dqbas079 toSci 12345678.91234567890123456780123456123 -> 12345678.91234567890123456780123456 Inexact Rounded +dqbas080 toSci 123456789.1234567890123456780123456123 -> 123456789.1234567890123456780123456 Inexact Rounded +dqbas081 toSci 1234567891.234567890123456780123456123 -> 1234567891.234567890123456780123456 Inexact Rounded +dqbas082 toSci 12345678912.34567890123456780123456123 -> 12345678912.34567890123456780123456 Inexact Rounded +dqbas083 toSci 123456789123.4567890123456780123456123 -> 123456789123.4567890123456780123456 Inexact Rounded +dqbas084 toSci 1234567891234.567890123456780123456123 -> 1234567891234.567890123456780123456 Inexact Rounded +dqbas085 toSci 12345678912345.67890123456780123456123 -> 12345678912345.67890123456780123456 Inexact Rounded +dqbas086 toSci 123456789123456.7890123456780123456123 -> 123456789123456.7890123456780123456 Inexact Rounded +dqbas087 toSci 1234567891234567.890123456780123456123 -> 1234567891234567.890123456780123456 Inexact Rounded +dqbas088 toSci 12345678912345678.90123456780123456123 -> 12345678912345678.90123456780123456 Inexact Rounded +dqbas089 toSci 123456789123456789.0123456780123456123 -> 123456789123456789.0123456780123456 Inexact Rounded +dqbas090 toSci 1234567891234567890.123456780123456123 -> 1234567891234567890.123456780123456 Inexact Rounded +dqbas091 toSci 12345678912345678901.23456780123456123 -> 12345678912345678901.23456780123456 Inexact Rounded +dqbas092 toSci 123456789123456789012.3456780123456123 -> 123456789123456789012.3456780123456 Inexact Rounded +dqbas093 toSci 1234567891234567890123.456780123456123 -> 1234567891234567890123.456780123456 Inexact Rounded +dqbas094 toSci 12345678912345678901234.56780123456123 -> 12345678912345678901234.56780123456 Inexact Rounded +dqbas095 toSci 123456789123456789012345.6780123456123 -> 123456789123456789012345.6780123456 Inexact Rounded +dqbas096 toSci 1234567891234567890123456.780123456123 -> 1234567891234567890123456.780123456 Inexact Rounded +dqbas097 toSci 12345678912345678901234567.80123456123 -> 12345678912345678901234567.80123456 Inexact Rounded +dqbas098 toSci 123456789123456789012345678.0123456123 -> 123456789123456789012345678.0123456 Inexact Rounded +dqbas099 toSci 1234567891234567890123456780.123456123 -> 1234567891234567890123456780.123456 Inexact Rounded +dqbas100 toSci 12345678912345678901234567801.23456123 -> 12345678912345678901234567801.23456 Inexact Rounded +dqbas101 toSci 123456789123456789012345678012.3456123 -> 123456789123456789012345678012.3456 Inexact Rounded +dqbas102 toSci 1234567891234567890123456780123.456123 -> 1234567891234567890123456780123.456 Inexact Rounded +dqbas103 toSci 12345678912345678901234567801234.56123 -> 12345678912345678901234567801234.56 Inexact Rounded +dqbas104 toSci 123456789123456789012345678012345.6123 -> 123456789123456789012345678012345.6 Inexact Rounded +dqbas105 toSci 1234567891234567890123456780123456.123 -> 1234567891234567890123456780123456 Inexact Rounded +dqbas106 toSci 12345678912345678901234567801234561.23 -> 1.234567891234567890123456780123456E+34 Inexact Rounded +dqbas107 toSci 123456789123456789012345678012345612.3 -> 1.234567891234567890123456780123456E+35 Inexact Rounded +dqbas108 toSci 1234567891234567890123456780123456123. -> 1.234567891234567890123456780123456E+36 Inexact Rounded +-- 123456789012345678 + +-- Numbers with E +dqbas130 toSci "0.000E-1" -> '0.0000' +dqbas131 toSci "0.000E-2" -> '0.00000' +dqbas132 toSci "0.000E-3" -> '0.000000' +dqbas133 toSci "0.000E-4" -> '0E-7' +dqbas134 toSci "0.00E-2" -> '0.0000' +dqbas135 toSci "0.00E-3" -> '0.00000' +dqbas136 toSci "0.00E-4" -> '0.000000' +dqbas137 toSci "0.00E-5" -> '0E-7' +dqbas138 toSci "+0E+9" -> '0E+9' +dqbas139 toSci "-0E+9" -> '-0E+9' +dqbas140 toSci "1E+9" -> '1E+9' +dqbas141 toSci "1e+09" -> '1E+9' +dqbas142 toSci "1E+90" -> '1E+90' +dqbas143 toSci "+1E+009" -> '1E+9' +dqbas144 toSci "0E+9" -> '0E+9' +dqbas145 toSci "1E+9" -> '1E+9' +dqbas146 toSci "1E+09" -> '1E+9' +dqbas147 toSci "1e+90" -> '1E+90' +dqbas148 toSci "1E+009" -> '1E+9' +dqbas149 toSci "000E+9" -> '0E+9' +dqbas150 toSci "1E9" -> '1E+9' +dqbas151 toSci "1e09" -> '1E+9' +dqbas152 toSci "1E90" -> '1E+90' +dqbas153 toSci "1E009" -> '1E+9' +dqbas154 toSci "0E9" -> '0E+9' +dqbas155 toSci "0.000e+0" -> '0.000' +dqbas156 toSci "0.000E-1" -> '0.0000' +dqbas157 toSci "4E+9" -> '4E+9' +dqbas158 toSci "44E+9" -> '4.4E+10' +dqbas159 toSci "0.73e-7" -> '7.3E-8' +dqbas160 toSci "00E+9" -> '0E+9' +dqbas161 toSci "00E-9" -> '0E-9' +dqbas162 toSci "10E+9" -> '1.0E+10' +dqbas163 toSci "10E+09" -> '1.0E+10' +dqbas164 toSci "10e+90" -> '1.0E+91' +dqbas165 toSci "10E+009" -> '1.0E+10' +dqbas166 toSci "100e+9" -> '1.00E+11' +dqbas167 toSci "100e+09" -> '1.00E+11' +dqbas168 toSci "100E+90" -> '1.00E+92' +dqbas169 toSci "100e+009" -> '1.00E+11' + +dqbas170 toSci "1.265" -> '1.265' +dqbas171 toSci "1.265E-20" -> '1.265E-20' +dqbas172 toSci "1.265E-8" -> '1.265E-8' +dqbas173 toSci "1.265E-4" -> '0.0001265' +dqbas174 toSci "1.265E-3" -> '0.001265' +dqbas175 toSci "1.265E-2" -> '0.01265' +dqbas176 toSci "1.265E-1" -> '0.1265' +dqbas177 toSci "1.265E-0" -> '1.265' +dqbas178 toSci "1.265E+1" -> '12.65' +dqbas179 toSci "1.265E+2" -> '126.5' +dqbas180 toSci "1.265E+3" -> '1265' +dqbas181 toSci "1.265E+4" -> '1.265E+4' +dqbas182 toSci "1.265E+8" -> '1.265E+8' +dqbas183 toSci "1.265E+20" -> '1.265E+20' + +dqbas190 toSci "12.65" -> '12.65' +dqbas191 toSci "12.65E-20" -> '1.265E-19' +dqbas192 toSci "12.65E-8" -> '1.265E-7' +dqbas193 toSci "12.65E-4" -> '0.001265' +dqbas194 toSci "12.65E-3" -> '0.01265' +dqbas195 toSci "12.65E-2" -> '0.1265' +dqbas196 toSci "12.65E-1" -> '1.265' +dqbas197 toSci "12.65E-0" -> '12.65' +dqbas198 toSci "12.65E+1" -> '126.5' +dqbas199 toSci "12.65E+2" -> '1265' +dqbas200 toSci "12.65E+3" -> '1.265E+4' +dqbas201 toSci "12.65E+4" -> '1.265E+5' +dqbas202 toSci "12.65E+8" -> '1.265E+9' +dqbas203 toSci "12.65E+20" -> '1.265E+21' + +dqbas210 toSci "126.5" -> '126.5' +dqbas211 toSci "126.5E-20" -> '1.265E-18' +dqbas212 toSci "126.5E-8" -> '0.000001265' +dqbas213 toSci "126.5E-4" -> '0.01265' +dqbas214 toSci "126.5E-3" -> '0.1265' +dqbas215 toSci "126.5E-2" -> '1.265' +dqbas216 toSci "126.5E-1" -> '12.65' +dqbas217 toSci "126.5E-0" -> '126.5' +dqbas218 toSci "126.5E+1" -> '1265' +dqbas219 toSci "126.5E+2" -> '1.265E+4' +dqbas220 toSci "126.5E+3" -> '1.265E+5' +dqbas221 toSci "126.5E+4" -> '1.265E+6' +dqbas222 toSci "126.5E+8" -> '1.265E+10' +dqbas223 toSci "126.5E+20" -> '1.265E+22' + +dqbas230 toSci "1265" -> '1265' +dqbas231 toSci "1265E-20" -> '1.265E-17' +dqbas232 toSci "1265E-8" -> '0.00001265' +dqbas233 toSci "1265E-4" -> '0.1265' +dqbas234 toSci "1265E-3" -> '1.265' +dqbas235 toSci "1265E-2" -> '12.65' +dqbas236 toSci "1265E-1" -> '126.5' +dqbas237 toSci "1265E-0" -> '1265' +dqbas238 toSci "1265E+1" -> '1.265E+4' +dqbas239 toSci "1265E+2" -> '1.265E+5' +dqbas240 toSci "1265E+3" -> '1.265E+6' +dqbas241 toSci "1265E+4" -> '1.265E+7' +dqbas242 toSci "1265E+8" -> '1.265E+11' +dqbas243 toSci "1265E+20" -> '1.265E+23' + +dqbas250 toSci "0.1265" -> '0.1265' +dqbas251 toSci "0.1265E-20" -> '1.265E-21' +dqbas252 toSci "0.1265E-8" -> '1.265E-9' +dqbas253 toSci "0.1265E-4" -> '0.00001265' +dqbas254 toSci "0.1265E-3" -> '0.0001265' +dqbas255 toSci "0.1265E-2" -> '0.001265' +dqbas256 toSci "0.1265E-1" -> '0.01265' +dqbas257 toSci "0.1265E-0" -> '0.1265' +dqbas258 toSci "0.1265E+1" -> '1.265' +dqbas259 toSci "0.1265E+2" -> '12.65' +dqbas260 toSci "0.1265E+3" -> '126.5' +dqbas261 toSci "0.1265E+4" -> '1265' +dqbas262 toSci "0.1265E+8" -> '1.265E+7' +dqbas263 toSci "0.1265E+20" -> '1.265E+19' + +-- some more negative zeros [systematic tests below] +dqbas290 toSci "-0.000E-1" -> '-0.0000' +dqbas291 toSci "-0.000E-2" -> '-0.00000' +dqbas292 toSci "-0.000E-3" -> '-0.000000' +dqbas293 toSci "-0.000E-4" -> '-0E-7' +dqbas294 toSci "-0.00E-2" -> '-0.0000' +dqbas295 toSci "-0.00E-3" -> '-0.00000' +dqbas296 toSci "-0.0E-2" -> '-0.000' +dqbas297 toSci "-0.0E-3" -> '-0.0000' +dqbas298 toSci "-0E-2" -> '-0.00' +dqbas299 toSci "-0E-3" -> '-0.000' + +-- Engineering notation tests +dqbas301 toSci 10e12 -> 1.0E+13 +dqbas302 toEng 10e12 -> 10E+12 +dqbas303 toSci 10e11 -> 1.0E+12 +dqbas304 toEng 10e11 -> 1.0E+12 +dqbas305 toSci 10e10 -> 1.0E+11 +dqbas306 toEng 10e10 -> 100E+9 +dqbas307 toSci 10e9 -> 1.0E+10 +dqbas308 toEng 10e9 -> 10E+9 +dqbas309 toSci 10e8 -> 1.0E+9 +dqbas310 toEng 10e8 -> 1.0E+9 +dqbas311 toSci 10e7 -> 1.0E+8 +dqbas312 toEng 10e7 -> 100E+6 +dqbas313 toSci 10e6 -> 1.0E+7 +dqbas314 toEng 10e6 -> 10E+6 +dqbas315 toSci 10e5 -> 1.0E+6 +dqbas316 toEng 10e5 -> 1.0E+6 +dqbas317 toSci 10e4 -> 1.0E+5 +dqbas318 toEng 10e4 -> 100E+3 +dqbas319 toSci 10e3 -> 1.0E+4 +dqbas320 toEng 10e3 -> 10E+3 +dqbas321 toSci 10e2 -> 1.0E+3 +dqbas322 toEng 10e2 -> 1.0E+3 +dqbas323 toSci 10e1 -> 1.0E+2 +dqbas324 toEng 10e1 -> 100 +dqbas325 toSci 10e0 -> 10 +dqbas326 toEng 10e0 -> 10 +dqbas327 toSci 10e-1 -> 1.0 +dqbas328 toEng 10e-1 -> 1.0 +dqbas329 toSci 10e-2 -> 0.10 +dqbas330 toEng 10e-2 -> 0.10 +dqbas331 toSci 10e-3 -> 0.010 +dqbas332 toEng 10e-3 -> 0.010 +dqbas333 toSci 10e-4 -> 0.0010 +dqbas334 toEng 10e-4 -> 0.0010 +dqbas335 toSci 10e-5 -> 0.00010 +dqbas336 toEng 10e-5 -> 0.00010 +dqbas337 toSci 10e-6 -> 0.000010 +dqbas338 toEng 10e-6 -> 0.000010 +dqbas339 toSci 10e-7 -> 0.0000010 +dqbas340 toEng 10e-7 -> 0.0000010 +dqbas341 toSci 10e-8 -> 1.0E-7 +dqbas342 toEng 10e-8 -> 100E-9 +dqbas343 toSci 10e-9 -> 1.0E-8 +dqbas344 toEng 10e-9 -> 10E-9 +dqbas345 toSci 10e-10 -> 1.0E-9 +dqbas346 toEng 10e-10 -> 1.0E-9 +dqbas347 toSci 10e-11 -> 1.0E-10 +dqbas348 toEng 10e-11 -> 100E-12 +dqbas349 toSci 10e-12 -> 1.0E-11 +dqbas350 toEng 10e-12 -> 10E-12 +dqbas351 toSci 10e-13 -> 1.0E-12 +dqbas352 toEng 10e-13 -> 1.0E-12 + +dqbas361 toSci 7E12 -> 7E+12 +dqbas362 toEng 7E12 -> 7E+12 +dqbas363 toSci 7E11 -> 7E+11 +dqbas364 toEng 7E11 -> 700E+9 +dqbas365 toSci 7E10 -> 7E+10 +dqbas366 toEng 7E10 -> 70E+9 +dqbas367 toSci 7E9 -> 7E+9 +dqbas368 toEng 7E9 -> 7E+9 +dqbas369 toSci 7E8 -> 7E+8 +dqbas370 toEng 7E8 -> 700E+6 +dqbas371 toSci 7E7 -> 7E+7 +dqbas372 toEng 7E7 -> 70E+6 +dqbas373 toSci 7E6 -> 7E+6 +dqbas374 toEng 7E6 -> 7E+6 +dqbas375 toSci 7E5 -> 7E+5 +dqbas376 toEng 7E5 -> 700E+3 +dqbas377 toSci 7E4 -> 7E+4 +dqbas378 toEng 7E4 -> 70E+3 +dqbas379 toSci 7E3 -> 7E+3 +dqbas380 toEng 7E3 -> 7E+3 +dqbas381 toSci 7E2 -> 7E+2 +dqbas382 toEng 7E2 -> 700 +dqbas383 toSci 7E1 -> 7E+1 +dqbas384 toEng 7E1 -> 70 +dqbas385 toSci 7E0 -> 7 +dqbas386 toEng 7E0 -> 7 +dqbas387 toSci 7E-1 -> 0.7 +dqbas388 toEng 7E-1 -> 0.7 +dqbas389 toSci 7E-2 -> 0.07 +dqbas390 toEng 7E-2 -> 0.07 +dqbas391 toSci 7E-3 -> 0.007 +dqbas392 toEng 7E-3 -> 0.007 +dqbas393 toSci 7E-4 -> 0.0007 +dqbas394 toEng 7E-4 -> 0.0007 +dqbas395 toSci 7E-5 -> 0.00007 +dqbas396 toEng 7E-5 -> 0.00007 +dqbas397 toSci 7E-6 -> 0.000007 +dqbas398 toEng 7E-6 -> 0.000007 +dqbas399 toSci 7E-7 -> 7E-7 +dqbas400 toEng 7E-7 -> 700E-9 +dqbas401 toSci 7E-8 -> 7E-8 +dqbas402 toEng 7E-8 -> 70E-9 +dqbas403 toSci 7E-9 -> 7E-9 +dqbas404 toEng 7E-9 -> 7E-9 +dqbas405 toSci 7E-10 -> 7E-10 +dqbas406 toEng 7E-10 -> 700E-12 +dqbas407 toSci 7E-11 -> 7E-11 +dqbas408 toEng 7E-11 -> 70E-12 +dqbas409 toSci 7E-12 -> 7E-12 +dqbas410 toEng 7E-12 -> 7E-12 +dqbas411 toSci 7E-13 -> 7E-13 +dqbas412 toEng 7E-13 -> 700E-15 + +-- Exacts remain exact up to precision .. +dqbas420 toSci 100 -> 100 +dqbas422 toSci 1000 -> 1000 +dqbas424 toSci 999.9 -> 999.9 +dqbas426 toSci 1000.0 -> 1000.0 +dqbas428 toSci 1000.1 -> 1000.1 +dqbas430 toSci 10000 -> 10000 +dqbas432 toSci 1000000000000000000000000000000 -> 1000000000000000000000000000000 +dqbas434 toSci 10000000000000000000000000000000 -> 10000000000000000000000000000000 +dqbas436 toSci 100000000000000000000000000000000 -> 100000000000000000000000000000000 +dqbas438 toSci 1000000000000000000000000000000000 -> 1000000000000000000000000000000000 +dqbas440 toSci 10000000000000000000000000000000000 -> 1.000000000000000000000000000000000E+34 Rounded +dqbas442 toSci 10000000000000000000000000000000000 -> 1.000000000000000000000000000000000E+34 Rounded +dqbas444 toSci 10000000000000000000000000000000003 -> 1.000000000000000000000000000000000E+34 Rounded Inexact +dqbas446 toSci 10000000000000000000000000000000005 -> 1.000000000000000000000000000000000E+34 Rounded Inexact +dqbas448 toSci 100000000000000000000000000000000050 -> 1.000000000000000000000000000000000E+35 Rounded Inexact +dqbas450 toSci 10000000000000000000000000000000009 -> 1.000000000000000000000000000000001E+34 Rounded Inexact +dqbas452 toSci 100000000000000000000000000000000000 -> 1.000000000000000000000000000000000E+35 Rounded +dqbas454 toSci 100000000000000000000000000000000003 -> 1.000000000000000000000000000000000E+35 Rounded Inexact +dqbas456 toSci 100000000000000000000000000000000005 -> 1.000000000000000000000000000000000E+35 Rounded Inexact +dqbas458 toSci 100000000000000000000000000000000009 -> 1.000000000000000000000000000000000E+35 Rounded Inexact +dqbas460 toSci 1000000000000000000000000000000000000 -> 1.000000000000000000000000000000000E+36 Rounded +dqbas462 toSci 1000000000000000000000000000000000300 -> 1.000000000000000000000000000000000E+36 Rounded Inexact +dqbas464 toSci 1000000000000000000000000000000000500 -> 1.000000000000000000000000000000000E+36 Rounded Inexact +dqbas466 toSci 1000000000000000000000000000000000900 -> 1.000000000000000000000000000000001E+36 Rounded Inexact +dqbas468 toSci 10000000000000000000000000000000000000 -> 1.000000000000000000000000000000000E+37 Rounded +dqbas470 toSci 10000000000000000000000000000000003000 -> 1.000000000000000000000000000000000E+37 Rounded Inexact +dqbas472 toSci 10000000000000000000000000000000005000 -> 1.000000000000000000000000000000000E+37 Rounded Inexact +dqbas474 toSci 10000000000000000000000000000000009000 -> 1.000000000000000000000000000000001E+37 Rounded Inexact + +-- check rounding modes heeded +rounding: ceiling +dqbsr401 toSci 1.1111111111111111111111111111123450 -> 1.111111111111111111111111111112345 Rounded +dqbsr402 toSci 1.11111111111111111111111111111234549 -> 1.111111111111111111111111111112346 Rounded Inexact +dqbsr403 toSci 1.11111111111111111111111111111234550 -> 1.111111111111111111111111111112346 Rounded Inexact +dqbsr404 toSci 1.11111111111111111111111111111234551 -> 1.111111111111111111111111111112346 Rounded Inexact +rounding: up +dqbsr405 toSci 1.1111111111111111111111111111123450 -> 1.111111111111111111111111111112345 Rounded +dqbsr406 toSci 1.11111111111111111111111111111234549 -> 1.111111111111111111111111111112346 Rounded Inexact +dqbsr407 toSci 1.11111111111111111111111111111234550 -> 1.111111111111111111111111111112346 Rounded Inexact +dqbsr408 toSci 1.11111111111111111111111111111234551 -> 1.111111111111111111111111111112346 Rounded Inexact +rounding: floor +dqbsr410 toSci 1.1111111111111111111111111111123450 -> 1.111111111111111111111111111112345 Rounded +dqbsr411 toSci 1.11111111111111111111111111111234549 -> 1.111111111111111111111111111112345 Rounded Inexact +dqbsr412 toSci 1.11111111111111111111111111111234550 -> 1.111111111111111111111111111112345 Rounded Inexact +dqbsr413 toSci 1.11111111111111111111111111111234551 -> 1.111111111111111111111111111112345 Rounded Inexact +rounding: half_down +dqbsr415 toSci 1.1111111111111111111111111111123450 -> 1.111111111111111111111111111112345 Rounded +dqbsr416 toSci 1.11111111111111111111111111111234549 -> 1.111111111111111111111111111112345 Rounded Inexact +dqbsr417 toSci 1.11111111111111111111111111111234550 -> 1.111111111111111111111111111112345 Rounded Inexact +dqbsr418 toSci 1.11111111111111111111111111111234650 -> 1.111111111111111111111111111112346 Rounded Inexact +dqbsr419 toSci 1.11111111111111111111111111111234551 -> 1.111111111111111111111111111112346 Rounded Inexact +rounding: half_even +dqbsr421 toSci 1.1111111111111111111111111111123450 -> 1.111111111111111111111111111112345 Rounded +dqbsr422 toSci 1.11111111111111111111111111111234549 -> 1.111111111111111111111111111112345 Rounded Inexact +dqbsr423 toSci 1.11111111111111111111111111111234550 -> 1.111111111111111111111111111112346 Rounded Inexact +dqbsr424 toSci 1.11111111111111111111111111111234650 -> 1.111111111111111111111111111112346 Rounded Inexact +dqbsr425 toSci 1.11111111111111111111111111111234551 -> 1.111111111111111111111111111112346 Rounded Inexact +rounding: down +dqbsr426 toSci 1.1111111111111111111111111111123450 -> 1.111111111111111111111111111112345 Rounded +dqbsr427 toSci 1.11111111111111111111111111111234549 -> 1.111111111111111111111111111112345 Rounded Inexact +dqbsr428 toSci 1.11111111111111111111111111111234550 -> 1.111111111111111111111111111112345 Rounded Inexact +dqbsr429 toSci 1.11111111111111111111111111111234551 -> 1.111111111111111111111111111112345 Rounded Inexact +rounding: half_up +dqbsr431 toSci 1.1111111111111111111111111111123450 -> 1.111111111111111111111111111112345 Rounded +dqbsr432 toSci 1.11111111111111111111111111111234549 -> 1.111111111111111111111111111112345 Rounded Inexact +dqbsr433 toSci 1.11111111111111111111111111111234550 -> 1.111111111111111111111111111112346 Rounded Inexact +dqbsr434 toSci 1.11111111111111111111111111111234650 -> 1.111111111111111111111111111112347 Rounded Inexact +dqbsr435 toSci 1.11111111111111111111111111111234551 -> 1.111111111111111111111111111112346 Rounded Inexact +-- negatives +rounding: ceiling +dqbsr501 toSci -1.1111111111111111111111111111123450 -> -1.111111111111111111111111111112345 Rounded +dqbsr502 toSci -1.11111111111111111111111111111234549 -> -1.111111111111111111111111111112345 Rounded Inexact +dqbsr503 toSci -1.11111111111111111111111111111234550 -> -1.111111111111111111111111111112345 Rounded Inexact +dqbsr504 toSci -1.11111111111111111111111111111234551 -> -1.111111111111111111111111111112345 Rounded Inexact +rounding: up +dqbsr505 toSci -1.1111111111111111111111111111123450 -> -1.111111111111111111111111111112345 Rounded +dqbsr506 toSci -1.11111111111111111111111111111234549 -> -1.111111111111111111111111111112346 Rounded Inexact +dqbsr507 toSci -1.11111111111111111111111111111234550 -> -1.111111111111111111111111111112346 Rounded Inexact +dqbsr508 toSci -1.11111111111111111111111111111234551 -> -1.111111111111111111111111111112346 Rounded Inexact +rounding: floor +dqbsr510 toSci -1.1111111111111111111111111111123450 -> -1.111111111111111111111111111112345 Rounded +dqbsr511 toSci -1.11111111111111111111111111111234549 -> -1.111111111111111111111111111112346 Rounded Inexact +dqbsr512 toSci -1.11111111111111111111111111111234550 -> -1.111111111111111111111111111112346 Rounded Inexact +dqbsr513 toSci -1.11111111111111111111111111111234551 -> -1.111111111111111111111111111112346 Rounded Inexact +rounding: half_down +dqbsr515 toSci -1.1111111111111111111111111111123450 -> -1.111111111111111111111111111112345 Rounded +dqbsr516 toSci -1.11111111111111111111111111111234549 -> -1.111111111111111111111111111112345 Rounded Inexact +dqbsr517 toSci -1.11111111111111111111111111111234550 -> -1.111111111111111111111111111112345 Rounded Inexact +dqbsr518 toSci -1.11111111111111111111111111111234650 -> -1.111111111111111111111111111112346 Rounded Inexact +dqbsr519 toSci -1.11111111111111111111111111111234551 -> -1.111111111111111111111111111112346 Rounded Inexact +rounding: half_even +dqbsr521 toSci -1.1111111111111111111111111111123450 -> -1.111111111111111111111111111112345 Rounded +dqbsr522 toSci -1.11111111111111111111111111111234549 -> -1.111111111111111111111111111112345 Rounded Inexact +dqbsr523 toSci -1.11111111111111111111111111111234550 -> -1.111111111111111111111111111112346 Rounded Inexact +dqbsr524 toSci -1.11111111111111111111111111111234650 -> -1.111111111111111111111111111112346 Rounded Inexact +dqbsr525 toSci -1.11111111111111111111111111111234551 -> -1.111111111111111111111111111112346 Rounded Inexact +rounding: down +dqbsr526 toSci -1.1111111111111111111111111111123450 -> -1.111111111111111111111111111112345 Rounded +dqbsr527 toSci -1.11111111111111111111111111111234549 -> -1.111111111111111111111111111112345 Rounded Inexact +dqbsr528 toSci -1.11111111111111111111111111111234550 -> -1.111111111111111111111111111112345 Rounded Inexact +dqbsr529 toSci -1.11111111111111111111111111111234551 -> -1.111111111111111111111111111112345 Rounded Inexact +rounding: half_up +dqbsr531 toSci -1.1111111111111111111111111111123450 -> -1.111111111111111111111111111112345 Rounded +dqbsr532 toSci -1.11111111111111111111111111111234549 -> -1.111111111111111111111111111112345 Rounded Inexact +dqbsr533 toSci -1.11111111111111111111111111111234550 -> -1.111111111111111111111111111112346 Rounded Inexact +dqbsr534 toSci -1.11111111111111111111111111111234650 -> -1.111111111111111111111111111112347 Rounded Inexact +dqbsr535 toSci -1.11111111111111111111111111111234551 -> -1.111111111111111111111111111112346 Rounded Inexact + +rounding: half_even + +-- The 'baddies' tests from DiagBigDecimal, plus some new ones +dqbas500 toSci '1..2' -> NaN Conversion_syntax +dqbas501 toSci '.' -> NaN Conversion_syntax +dqbas502 toSci '..' -> NaN Conversion_syntax +dqbas503 toSci '++1' -> NaN Conversion_syntax +dqbas504 toSci '--1' -> NaN Conversion_syntax +dqbas505 toSci '-+1' -> NaN Conversion_syntax +dqbas506 toSci '+-1' -> NaN Conversion_syntax +dqbas507 toSci '12e' -> NaN Conversion_syntax +dqbas508 toSci '12e++' -> NaN Conversion_syntax +dqbas509 toSci '12f4' -> NaN Conversion_syntax +dqbas510 toSci ' +1' -> NaN Conversion_syntax +dqbas511 toSci '+ 1' -> NaN Conversion_syntax +dqbas512 toSci '12 ' -> NaN Conversion_syntax +dqbas513 toSci ' + 1' -> NaN Conversion_syntax +dqbas514 toSci ' - 1 ' -> NaN Conversion_syntax +dqbas515 toSci 'x' -> NaN Conversion_syntax +dqbas516 toSci '-1-' -> NaN Conversion_syntax +dqbas517 toSci '12-' -> NaN Conversion_syntax +dqbas518 toSci '3+' -> NaN Conversion_syntax +dqbas519 toSci '' -> NaN Conversion_syntax +dqbas520 toSci '1e-' -> NaN Conversion_syntax +dqbas521 toSci '7e99999a' -> NaN Conversion_syntax +dqbas522 toSci '7e123567890x' -> NaN Conversion_syntax +dqbas523 toSci '7e12356789012x' -> NaN Conversion_syntax +dqbas524 toSci '' -> NaN Conversion_syntax +dqbas525 toSci 'e100' -> NaN Conversion_syntax +dqbas526 toSci '\u0e5a' -> NaN Conversion_syntax +dqbas527 toSci '\u0b65' -> NaN Conversion_syntax +dqbas528 toSci '123,65' -> NaN Conversion_syntax +dqbas529 toSci '1.34.5' -> NaN Conversion_syntax +dqbas530 toSci '.123.5' -> NaN Conversion_syntax +dqbas531 toSci '01.35.' -> NaN Conversion_syntax +dqbas532 toSci '01.35-' -> NaN Conversion_syntax +dqbas533 toSci '0000..' -> NaN Conversion_syntax +dqbas534 toSci '.0000.' -> NaN Conversion_syntax +dqbas535 toSci '00..00' -> NaN Conversion_syntax +dqbas536 toSci '111e*123' -> NaN Conversion_syntax +dqbas537 toSci '111e123-' -> NaN Conversion_syntax +dqbas538 toSci '111e+12+' -> NaN Conversion_syntax +dqbas539 toSci '111e1-3-' -> NaN Conversion_syntax +dqbas540 toSci '111e1*23' -> NaN Conversion_syntax +dqbas541 toSci '111e1e+3' -> NaN Conversion_syntax +dqbas542 toSci '1e1.0' -> NaN Conversion_syntax +dqbas543 toSci '1e123e' -> NaN Conversion_syntax +dqbas544 toSci 'ten' -> NaN Conversion_syntax +dqbas545 toSci 'ONE' -> NaN Conversion_syntax +dqbas546 toSci '1e.1' -> NaN Conversion_syntax +dqbas547 toSci '1e1.' -> NaN Conversion_syntax +dqbas548 toSci '1ee' -> NaN Conversion_syntax +dqbas549 toSci 'e+1' -> NaN Conversion_syntax +dqbas550 toSci '1.23.4' -> NaN Conversion_syntax +dqbas551 toSci '1.2.1' -> NaN Conversion_syntax +dqbas552 toSci '1E+1.2' -> NaN Conversion_syntax +dqbas553 toSci '1E+1.2.3' -> NaN Conversion_syntax +dqbas554 toSci '1E++1' -> NaN Conversion_syntax +dqbas555 toSci '1E--1' -> NaN Conversion_syntax +dqbas556 toSci '1E+-1' -> NaN Conversion_syntax +dqbas557 toSci '1E-+1' -> NaN Conversion_syntax +dqbas558 toSci '1E''1' -> NaN Conversion_syntax +dqbas559 toSci "1E""1" -> NaN Conversion_syntax +dqbas560 toSci "1E""""" -> NaN Conversion_syntax +-- Near-specials +dqbas561 toSci "qNaN" -> NaN Conversion_syntax +dqbas562 toSci "NaNq" -> NaN Conversion_syntax +dqbas563 toSci "NaNs" -> NaN Conversion_syntax +dqbas564 toSci "Infi" -> NaN Conversion_syntax +dqbas565 toSci "Infin" -> NaN Conversion_syntax +dqbas566 toSci "Infini" -> NaN Conversion_syntax +dqbas567 toSci "Infinit" -> NaN Conversion_syntax +dqbas568 toSci "-Infinit" -> NaN Conversion_syntax +dqbas569 toSci "0Inf" -> NaN Conversion_syntax +dqbas570 toSci "9Inf" -> NaN Conversion_syntax +dqbas571 toSci "-0Inf" -> NaN Conversion_syntax +dqbas572 toSci "-9Inf" -> NaN Conversion_syntax +dqbas573 toSci "-sNa" -> NaN Conversion_syntax +dqbas574 toSci "xNaN" -> NaN Conversion_syntax +dqbas575 toSci "0sNaN" -> NaN Conversion_syntax + +-- some baddies with dots and Es and dots and specials +dqbas576 toSci 'e+1' -> NaN Conversion_syntax +dqbas577 toSci '.e+1' -> NaN Conversion_syntax +dqbas578 toSci '+.e+1' -> NaN Conversion_syntax +dqbas579 toSci '-.e+' -> NaN Conversion_syntax +dqbas580 toSci '-.e' -> NaN Conversion_syntax +dqbas581 toSci 'E+1' -> NaN Conversion_syntax +dqbas582 toSci '.E+1' -> NaN Conversion_syntax +dqbas583 toSci '+.E+1' -> NaN Conversion_syntax +dqbas584 toSci '-.E+' -> NaN Conversion_syntax +dqbas585 toSci '-.E' -> NaN Conversion_syntax + +dqbas586 toSci '.NaN' -> NaN Conversion_syntax +dqbas587 toSci '-.NaN' -> NaN Conversion_syntax +dqbas588 toSci '+.sNaN' -> NaN Conversion_syntax +dqbas589 toSci '+.Inf' -> NaN Conversion_syntax +dqbas590 toSci '.Infinity' -> NaN Conversion_syntax + +-- Zeros +dqbas601 toSci 0.000000000 -> 0E-9 +dqbas602 toSci 0.00000000 -> 0E-8 +dqbas603 toSci 0.0000000 -> 0E-7 +dqbas604 toSci 0.000000 -> 0.000000 +dqbas605 toSci 0.00000 -> 0.00000 +dqbas606 toSci 0.0000 -> 0.0000 +dqbas607 toSci 0.000 -> 0.000 +dqbas608 toSci 0.00 -> 0.00 +dqbas609 toSci 0.0 -> 0.0 +dqbas610 toSci .0 -> 0.0 +dqbas611 toSci 0. -> 0 +dqbas612 toSci -.0 -> -0.0 +dqbas613 toSci -0. -> -0 +dqbas614 toSci -0.0 -> -0.0 +dqbas615 toSci -0.00 -> -0.00 +dqbas616 toSci -0.000 -> -0.000 +dqbas617 toSci -0.0000 -> -0.0000 +dqbas618 toSci -0.00000 -> -0.00000 +dqbas619 toSci -0.000000 -> -0.000000 +dqbas620 toSci -0.0000000 -> -0E-7 +dqbas621 toSci -0.00000000 -> -0E-8 +dqbas622 toSci -0.000000000 -> -0E-9 + +dqbas630 toSci 0.00E+0 -> 0.00 +dqbas631 toSci 0.00E+1 -> 0.0 +dqbas632 toSci 0.00E+2 -> 0 +dqbas633 toSci 0.00E+3 -> 0E+1 +dqbas634 toSci 0.00E+4 -> 0E+2 +dqbas635 toSci 0.00E+5 -> 0E+3 +dqbas636 toSci 0.00E+6 -> 0E+4 +dqbas637 toSci 0.00E+7 -> 0E+5 +dqbas638 toSci 0.00E+8 -> 0E+6 +dqbas639 toSci 0.00E+9 -> 0E+7 + +dqbas640 toSci 0.0E+0 -> 0.0 +dqbas641 toSci 0.0E+1 -> 0 +dqbas642 toSci 0.0E+2 -> 0E+1 +dqbas643 toSci 0.0E+3 -> 0E+2 +dqbas644 toSci 0.0E+4 -> 0E+3 +dqbas645 toSci 0.0E+5 -> 0E+4 +dqbas646 toSci 0.0E+6 -> 0E+5 +dqbas647 toSci 0.0E+7 -> 0E+6 +dqbas648 toSci 0.0E+8 -> 0E+7 +dqbas649 toSci 0.0E+9 -> 0E+8 + +dqbas650 toSci 0E+0 -> 0 +dqbas651 toSci 0E+1 -> 0E+1 +dqbas652 toSci 0E+2 -> 0E+2 +dqbas653 toSci 0E+3 -> 0E+3 +dqbas654 toSci 0E+4 -> 0E+4 +dqbas655 toSci 0E+5 -> 0E+5 +dqbas656 toSci 0E+6 -> 0E+6 +dqbas657 toSci 0E+7 -> 0E+7 +dqbas658 toSci 0E+8 -> 0E+8 +dqbas659 toSci 0E+9 -> 0E+9 + +dqbas660 toSci 0.0E-0 -> 0.0 +dqbas661 toSci 0.0E-1 -> 0.00 +dqbas662 toSci 0.0E-2 -> 0.000 +dqbas663 toSci 0.0E-3 -> 0.0000 +dqbas664 toSci 0.0E-4 -> 0.00000 +dqbas665 toSci 0.0E-5 -> 0.000000 +dqbas666 toSci 0.0E-6 -> 0E-7 +dqbas667 toSci 0.0E-7 -> 0E-8 +dqbas668 toSci 0.0E-8 -> 0E-9 +dqbas669 toSci 0.0E-9 -> 0E-10 + +dqbas670 toSci 0.00E-0 -> 0.00 +dqbas671 toSci 0.00E-1 -> 0.000 +dqbas672 toSci 0.00E-2 -> 0.0000 +dqbas673 toSci 0.00E-3 -> 0.00000 +dqbas674 toSci 0.00E-4 -> 0.000000 +dqbas675 toSci 0.00E-5 -> 0E-7 +dqbas676 toSci 0.00E-6 -> 0E-8 +dqbas677 toSci 0.00E-7 -> 0E-9 +dqbas678 toSci 0.00E-8 -> 0E-10 +dqbas679 toSci 0.00E-9 -> 0E-11 + +dqbas680 toSci 000000. -> 0 +dqbas681 toSci 00000. -> 0 +dqbas682 toSci 0000. -> 0 +dqbas683 toSci 000. -> 0 +dqbas684 toSci 00. -> 0 +dqbas685 toSci 0. -> 0 +dqbas686 toSci +00000. -> 0 +dqbas687 toSci -00000. -> -0 +dqbas688 toSci +0. -> 0 +dqbas689 toSci -0. -> -0 + +-- Specials +dqbas700 toSci "NaN" -> NaN +dqbas701 toSci "nan" -> NaN +dqbas702 toSci "nAn" -> NaN +dqbas703 toSci "NAN" -> NaN +dqbas704 toSci "+NaN" -> NaN +dqbas705 toSci "+nan" -> NaN +dqbas706 toSci "+nAn" -> NaN +dqbas707 toSci "+NAN" -> NaN +dqbas708 toSci "-NaN" -> -NaN +dqbas709 toSci "-nan" -> -NaN +dqbas710 toSci "-nAn" -> -NaN +dqbas711 toSci "-NAN" -> -NaN +dqbas712 toSci 'NaN0' -> NaN +dqbas713 toSci 'NaN1' -> NaN1 +dqbas714 toSci 'NaN12' -> NaN12 +dqbas715 toSci 'NaN123' -> NaN123 +dqbas716 toSci 'NaN1234' -> NaN1234 +dqbas717 toSci 'NaN01' -> NaN1 +dqbas718 toSci 'NaN012' -> NaN12 +dqbas719 toSci 'NaN0123' -> NaN123 +dqbas720 toSci 'NaN01234' -> NaN1234 +dqbas721 toSci 'NaN001' -> NaN1 +dqbas722 toSci 'NaN0012' -> NaN12 +dqbas723 toSci 'NaN00123' -> NaN123 +dqbas724 toSci 'NaN001234' -> NaN1234 +dqbas725 toSci 'NaN1234567890123456781234567890123456' -> NaN Conversion_syntax +dqbas726 toSci 'NaN123e+1' -> NaN Conversion_syntax +dqbas727 toSci 'NaN12.45' -> NaN Conversion_syntax +dqbas728 toSci 'NaN-12' -> NaN Conversion_syntax +dqbas729 toSci 'NaN+12' -> NaN Conversion_syntax + +dqbas730 toSci "sNaN" -> sNaN +dqbas731 toSci "snan" -> sNaN +dqbas732 toSci "SnAn" -> sNaN +dqbas733 toSci "SNAN" -> sNaN +dqbas734 toSci "+sNaN" -> sNaN +dqbas735 toSci "+snan" -> sNaN +dqbas736 toSci "+SnAn" -> sNaN +dqbas737 toSci "+SNAN" -> sNaN +dqbas738 toSci "-sNaN" -> -sNaN +dqbas739 toSci "-snan" -> -sNaN +dqbas740 toSci "-SnAn" -> -sNaN +dqbas741 toSci "-SNAN" -> -sNaN +dqbas742 toSci 'sNaN0000' -> sNaN +dqbas743 toSci 'sNaN7' -> sNaN7 +dqbas744 toSci 'sNaN007234' -> sNaN7234 +dqbas745 toSci 'sNaN1234567890123456787234561234567890' -> NaN Conversion_syntax +dqbas746 toSci 'sNaN72.45' -> NaN Conversion_syntax +dqbas747 toSci 'sNaN-72' -> NaN Conversion_syntax + +dqbas748 toSci "Inf" -> Infinity +dqbas749 toSci "inf" -> Infinity +dqbas750 toSci "iNf" -> Infinity +dqbas751 toSci "INF" -> Infinity +dqbas752 toSci "+Inf" -> Infinity +dqbas753 toSci "+inf" -> Infinity +dqbas754 toSci "+iNf" -> Infinity +dqbas755 toSci "+INF" -> Infinity +dqbas756 toSci "-Inf" -> -Infinity +dqbas757 toSci "-inf" -> -Infinity +dqbas758 toSci "-iNf" -> -Infinity +dqbas759 toSci "-INF" -> -Infinity + +dqbas760 toSci "Infinity" -> Infinity +dqbas761 toSci "infinity" -> Infinity +dqbas762 toSci "iNfInItY" -> Infinity +dqbas763 toSci "INFINITY" -> Infinity +dqbas764 toSci "+Infinity" -> Infinity +dqbas765 toSci "+infinity" -> Infinity +dqbas766 toSci "+iNfInItY" -> Infinity +dqbas767 toSci "+INFINITY" -> Infinity +dqbas768 toSci "-Infinity" -> -Infinity +dqbas769 toSci "-infinity" -> -Infinity +dqbas770 toSci "-iNfInItY" -> -Infinity +dqbas771 toSci "-INFINITY" -> -Infinity + +-- Specials and zeros for toEng +dqbast772 toEng "NaN" -> NaN +dqbast773 toEng "-Infinity" -> -Infinity +dqbast774 toEng "-sNaN" -> -sNaN +dqbast775 toEng "-NaN" -> -NaN +dqbast776 toEng "+Infinity" -> Infinity +dqbast778 toEng "+sNaN" -> sNaN +dqbast779 toEng "+NaN" -> NaN +dqbast780 toEng "INFINITY" -> Infinity +dqbast781 toEng "SNAN" -> sNaN +dqbast782 toEng "NAN" -> NaN +dqbast783 toEng "infinity" -> Infinity +dqbast784 toEng "snan" -> sNaN +dqbast785 toEng "nan" -> NaN +dqbast786 toEng "InFINITY" -> Infinity +dqbast787 toEng "SnAN" -> sNaN +dqbast788 toEng "nAN" -> NaN +dqbast789 toEng "iNfinity" -> Infinity +dqbast790 toEng "sNan" -> sNaN +dqbast791 toEng "Nan" -> NaN +dqbast792 toEng "Infinity" -> Infinity +dqbast793 toEng "sNaN" -> sNaN + +-- Zero toEng, etc. +dqbast800 toEng 0e+1 -> "0.00E+3" -- doc example + +dqbast801 toEng 0.000000000 -> 0E-9 +dqbast802 toEng 0.00000000 -> 0.00E-6 +dqbast803 toEng 0.0000000 -> 0.0E-6 +dqbast804 toEng 0.000000 -> 0.000000 +dqbast805 toEng 0.00000 -> 0.00000 +dqbast806 toEng 0.0000 -> 0.0000 +dqbast807 toEng 0.000 -> 0.000 +dqbast808 toEng 0.00 -> 0.00 +dqbast809 toEng 0.0 -> 0.0 +dqbast810 toEng .0 -> 0.0 +dqbast811 toEng 0. -> 0 +dqbast812 toEng -.0 -> -0.0 +dqbast813 toEng -0. -> -0 +dqbast814 toEng -0.0 -> -0.0 +dqbast815 toEng -0.00 -> -0.00 +dqbast816 toEng -0.000 -> -0.000 +dqbast817 toEng -0.0000 -> -0.0000 +dqbast818 toEng -0.00000 -> -0.00000 +dqbast819 toEng -0.000000 -> -0.000000 +dqbast820 toEng -0.0000000 -> -0.0E-6 +dqbast821 toEng -0.00000000 -> -0.00E-6 +dqbast822 toEng -0.000000000 -> -0E-9 + +dqbast830 toEng 0.00E+0 -> 0.00 +dqbast831 toEng 0.00E+1 -> 0.0 +dqbast832 toEng 0.00E+2 -> 0 +dqbast833 toEng 0.00E+3 -> 0.00E+3 +dqbast834 toEng 0.00E+4 -> 0.0E+3 +dqbast835 toEng 0.00E+5 -> 0E+3 +dqbast836 toEng 0.00E+6 -> 0.00E+6 +dqbast837 toEng 0.00E+7 -> 0.0E+6 +dqbast838 toEng 0.00E+8 -> 0E+6 +dqbast839 toEng 0.00E+9 -> 0.00E+9 + +dqbast840 toEng 0.0E+0 -> 0.0 +dqbast841 toEng 0.0E+1 -> 0 +dqbast842 toEng 0.0E+2 -> 0.00E+3 +dqbast843 toEng 0.0E+3 -> 0.0E+3 +dqbast844 toEng 0.0E+4 -> 0E+3 +dqbast845 toEng 0.0E+5 -> 0.00E+6 +dqbast846 toEng 0.0E+6 -> 0.0E+6 +dqbast847 toEng 0.0E+7 -> 0E+6 +dqbast848 toEng 0.0E+8 -> 0.00E+9 +dqbast849 toEng 0.0E+9 -> 0.0E+9 + +dqbast850 toEng 0E+0 -> 0 +dqbast851 toEng 0E+1 -> 0.00E+3 +dqbast852 toEng 0E+2 -> 0.0E+3 +dqbast853 toEng 0E+3 -> 0E+3 +dqbast854 toEng 0E+4 -> 0.00E+6 +dqbast855 toEng 0E+5 -> 0.0E+6 +dqbast856 toEng 0E+6 -> 0E+6 +dqbast857 toEng 0E+7 -> 0.00E+9 +dqbast858 toEng 0E+8 -> 0.0E+9 +dqbast859 toEng 0E+9 -> 0E+9 + +dqbast860 toEng 0.0E-0 -> 0.0 +dqbast861 toEng 0.0E-1 -> 0.00 +dqbast862 toEng 0.0E-2 -> 0.000 +dqbast863 toEng 0.0E-3 -> 0.0000 +dqbast864 toEng 0.0E-4 -> 0.00000 +dqbast865 toEng 0.0E-5 -> 0.000000 +dqbast866 toEng 0.0E-6 -> 0.0E-6 +dqbast867 toEng 0.0E-7 -> 0.00E-6 +dqbast868 toEng 0.0E-8 -> 0E-9 +dqbast869 toEng 0.0E-9 -> 0.0E-9 + +dqbast870 toEng 0.00E-0 -> 0.00 +dqbast871 toEng 0.00E-1 -> 0.000 +dqbast872 toEng 0.00E-2 -> 0.0000 +dqbast873 toEng 0.00E-3 -> 0.00000 +dqbast874 toEng 0.00E-4 -> 0.000000 +dqbast875 toEng 0.00E-5 -> 0.0E-6 +dqbast876 toEng 0.00E-6 -> 0.00E-6 +dqbast877 toEng 0.00E-7 -> 0E-9 +dqbast878 toEng 0.00E-8 -> 0.0E-9 +dqbast879 toEng 0.00E-9 -> 0.00E-9 + +-- long input strings +dqbas801 tosci '01234567890123456' -> 1234567890123456 +dqbas802 tosci '001234567890123456' -> 1234567890123456 +dqbas803 tosci '0001234567890123456' -> 1234567890123456 +dqbas804 tosci '00001234567890123456' -> 1234567890123456 +dqbas805 tosci '000001234567890123456' -> 1234567890123456 +dqbas806 tosci '0000001234567890123456' -> 1234567890123456 +dqbas807 tosci '00000001234567890123456' -> 1234567890123456 +dqbas808 tosci '000000001234567890123456' -> 1234567890123456 +dqbas809 tosci '0000000001234567890123456' -> 1234567890123456 +dqbas810 tosci '00000000001234567890123456' -> 1234567890123456 + +dqbas811 tosci '0.1234567890123456' -> 0.1234567890123456 +dqbas812 tosci '0.01234567890123456' -> 0.01234567890123456 +dqbas813 tosci '0.001234567890123456' -> 0.001234567890123456 +dqbas814 tosci '0.0001234567890123456' -> 0.0001234567890123456 +dqbas815 tosci '0.00001234567890123456' -> 0.00001234567890123456 +dqbas816 tosci '0.000001234567890123456' -> 0.000001234567890123456 +dqbas817 tosci '0.0000001234567890123456' -> 1.234567890123456E-7 +dqbas818 tosci '0.00000001234567890123456' -> 1.234567890123456E-8 +dqbas819 tosci '0.000000001234567890123456' -> 1.234567890123456E-9 +dqbas820 tosci '0.0000000001234567890123456' -> 1.234567890123456E-10 + +dqbas821 tosci '12345678912345678901234567801234567890' -> 1.234567891234567890123456780123457E+37 Inexact Rounded +dqbas822 tosci '123456789123456789012345678012345678901' -> 1.234567891234567890123456780123457E+38 Inexact Rounded +dqbas823 tosci '1234567891234567890123456780123456789012' -> 1.234567891234567890123456780123457E+39 Inexact Rounded +dqbas824 tosci '12345678912345678901234567801234567890123' -> 1.234567891234567890123456780123457E+40 Inexact Rounded +dqbas825 tosci '123456789123456789012345678012345678901234' -> 1.234567891234567890123456780123457E+41 Inexact Rounded +dqbas826 tosci '1234567891234567890123456780123456789012345' -> 1.234567891234567890123456780123457E+42 Inexact Rounded +dqbas827 tosci '12345678912345678901234567801234567890123456' -> 1.234567891234567890123456780123457E+43 Inexact Rounded +dqbas828 tosci '123456789123456789012345678012345678901234567' -> 1.234567891234567890123456780123457E+44 Inexact Rounded +dqbas829 tosci '1234567891234567890123456780123456789012345678' -> 1.234567891234567890123456780123457E+45 Inexact Rounded + +-- subnormals and overflows +dqbas906 toSci '99e999999999' -> Infinity Overflow Inexact Rounded +dqbas907 toSci '999e999999999' -> Infinity Overflow Inexact Rounded +dqbas908 toSci '0.9e-999999999' -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqbas909 toSci '0.09e-999999999' -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqbas910 toSci '0.1e1000000000' -> Infinity Overflow Inexact Rounded +dqbas911 toSci '10e-1000000000' -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqbas912 toSci '0.9e9999999999' -> Infinity Overflow Inexact Rounded +dqbas913 toSci '99e-9999999999' -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqbas914 toSci '111e9999999999' -> Infinity Overflow Inexact Rounded +dqbas915 toSci '1111e-9999999999' -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqbas916 toSci '1111e-99999999999' -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqbas917 toSci '7e1000000000' -> Infinity Overflow Inexact Rounded +-- negatives the same +dqbas918 toSci '-99e999999999' -> -Infinity Overflow Inexact Rounded +dqbas919 toSci '-999e999999999' -> -Infinity Overflow Inexact Rounded +dqbas920 toSci '-0.9e-999999999' -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqbas921 toSci '-0.09e-999999999' -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqbas922 toSci '-0.1e1000000000' -> -Infinity Overflow Inexact Rounded +dqbas923 toSci '-10e-1000000000' -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqbas924 toSci '-0.9e9999999999' -> -Infinity Overflow Inexact Rounded +dqbas925 toSci '-99e-9999999999' -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqbas926 toSci '-111e9999999999' -> -Infinity Overflow Inexact Rounded +dqbas927 toSci '-1111e-9999999999' -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqbas928 toSci '-1111e-99999999999' -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqbas929 toSci '-7e1000000000' -> -Infinity Overflow Inexact Rounded + +-- overflow results at different rounding modes +rounding: ceiling +dqbas930 toSci '7e10000' -> Infinity Overflow Inexact Rounded +dqbas931 toSci '-7e10000' -> -9.999999999999999999999999999999999E+6144 Overflow Inexact Rounded +rounding: up +dqbas932 toSci '7e10000' -> Infinity Overflow Inexact Rounded +dqbas933 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded +rounding: down +dqbas934 toSci '7e10000' -> 9.999999999999999999999999999999999E+6144 Overflow Inexact Rounded +dqbas935 toSci '-7e10000' -> -9.999999999999999999999999999999999E+6144 Overflow Inexact Rounded +rounding: floor +dqbas936 toSci '7e10000' -> 9.999999999999999999999999999999999E+6144 Overflow Inexact Rounded +dqbas937 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded + +rounding: half_up +dqbas938 toSci '7e10000' -> Infinity Overflow Inexact Rounded +dqbas939 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded +rounding: half_even +dqbas940 toSci '7e10000' -> Infinity Overflow Inexact Rounded +dqbas941 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded +rounding: half_down +dqbas942 toSci '7e10000' -> Infinity Overflow Inexact Rounded +dqbas943 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded + +rounding: half_even + +-- Now check 854/754r some subnormals and underflow to 0 +dqbem400 toSci 1.0000E-383 -> 1.0000E-383 +dqbem401 toSci 0.1E-6172 -> 1E-6173 Subnormal +dqbem402 toSci 0.1000E-6172 -> 1.000E-6173 Subnormal +dqbem403 toSci 0.0100E-6172 -> 1.00E-6174 Subnormal +dqbem404 toSci 0.0010E-6172 -> 1.0E-6175 Subnormal +dqbem405 toSci 0.0001E-6172 -> 1E-6176 Subnormal +dqbem406 toSci 0.00010E-6172 -> 1E-6176 Subnormal Rounded +dqbem407 toSci 0.00013E-6172 -> 1E-6176 Underflow Subnormal Inexact Rounded +dqbem408 toSci 0.00015E-6172 -> 2E-6176 Underflow Subnormal Inexact Rounded +dqbem409 toSci 0.00017E-6172 -> 2E-6176 Underflow Subnormal Inexact Rounded +dqbem410 toSci 0.00023E-6172 -> 2E-6176 Underflow Subnormal Inexact Rounded +dqbem411 toSci 0.00025E-6172 -> 2E-6176 Underflow Subnormal Inexact Rounded +dqbem412 toSci 0.00027E-6172 -> 3E-6176 Underflow Subnormal Inexact Rounded +dqbem413 toSci 0.000149E-6172 -> 1E-6176 Underflow Subnormal Inexact Rounded +dqbem414 toSci 0.000150E-6172 -> 2E-6176 Underflow Subnormal Inexact Rounded +dqbem415 toSci 0.000151E-6172 -> 2E-6176 Underflow Subnormal Inexact Rounded +dqbem416 toSci 0.000249E-6172 -> 2E-6176 Underflow Subnormal Inexact Rounded +dqbem417 toSci 0.000250E-6172 -> 2E-6176 Underflow Subnormal Inexact Rounded +dqbem418 toSci 0.000251E-6172 -> 3E-6176 Underflow Subnormal Inexact Rounded +dqbem419 toSci 0.00009E-6172 -> 1E-6176 Underflow Subnormal Inexact Rounded +dqbem420 toSci 0.00005E-6172 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqbem421 toSci 0.00003E-6172 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqbem422 toSci 0.000009E-6172 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqbem423 toSci 0.000005E-6172 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqbem424 toSci 0.000003E-6172 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped + +dqbem425 toSci 0.001049E-6172 -> 1.0E-6175 Underflow Subnormal Inexact Rounded +dqbem426 toSci 0.001050E-6172 -> 1.0E-6175 Underflow Subnormal Inexact Rounded +dqbem427 toSci 0.001051E-6172 -> 1.1E-6175 Underflow Subnormal Inexact Rounded +dqbem428 toSci 0.001149E-6172 -> 1.1E-6175 Underflow Subnormal Inexact Rounded +dqbem429 toSci 0.001150E-6172 -> 1.2E-6175 Underflow Subnormal Inexact Rounded +dqbem430 toSci 0.001151E-6172 -> 1.2E-6175 Underflow Subnormal Inexact Rounded + +dqbem432 toSci 0.010049E-6172 -> 1.00E-6174 Underflow Subnormal Inexact Rounded +dqbem433 toSci 0.010050E-6172 -> 1.00E-6174 Underflow Subnormal Inexact Rounded +dqbem434 toSci 0.010051E-6172 -> 1.01E-6174 Underflow Subnormal Inexact Rounded +dqbem435 toSci 0.010149E-6172 -> 1.01E-6174 Underflow Subnormal Inexact Rounded +dqbem436 toSci 0.010150E-6172 -> 1.02E-6174 Underflow Subnormal Inexact Rounded +dqbem437 toSci 0.010151E-6172 -> 1.02E-6174 Underflow Subnormal Inexact Rounded + +dqbem440 toSci 0.10103E-6172 -> 1.010E-6173 Underflow Subnormal Inexact Rounded +dqbem441 toSci 0.10105E-6172 -> 1.010E-6173 Underflow Subnormal Inexact Rounded +dqbem442 toSci 0.10107E-6172 -> 1.011E-6173 Underflow Subnormal Inexact Rounded +dqbem443 toSci 0.10113E-6172 -> 1.011E-6173 Underflow Subnormal Inexact Rounded +dqbem444 toSci 0.10115E-6172 -> 1.012E-6173 Underflow Subnormal Inexact Rounded +dqbem445 toSci 0.10117E-6172 -> 1.012E-6173 Underflow Subnormal Inexact Rounded + +dqbem450 toSci 1.10730E-6173 -> 1.107E-6173 Underflow Subnormal Inexact Rounded +dqbem451 toSci 1.10750E-6173 -> 1.108E-6173 Underflow Subnormal Inexact Rounded +dqbem452 toSci 1.10770E-6173 -> 1.108E-6173 Underflow Subnormal Inexact Rounded +dqbem453 toSci 1.10830E-6173 -> 1.108E-6173 Underflow Subnormal Inexact Rounded +dqbem454 toSci 1.10850E-6173 -> 1.108E-6173 Underflow Subnormal Inexact Rounded +dqbem455 toSci 1.10870E-6173 -> 1.109E-6173 Underflow Subnormal Inexact Rounded + +-- make sure sign OK +dqbem456 toSci -0.10103E-6172 -> -1.010E-6173 Underflow Subnormal Inexact Rounded +dqbem457 toSci -0.10105E-6172 -> -1.010E-6173 Underflow Subnormal Inexact Rounded +dqbem458 toSci -0.10107E-6172 -> -1.011E-6173 Underflow Subnormal Inexact Rounded +dqbem459 toSci -0.10113E-6172 -> -1.011E-6173 Underflow Subnormal Inexact Rounded +dqbem460 toSci -0.10115E-6172 -> -1.012E-6173 Underflow Subnormal Inexact Rounded +dqbem461 toSci -0.10117E-6172 -> -1.012E-6173 Underflow Subnormal Inexact Rounded + +-- '999s' cases +dqbem464 toSci 999999E-6173 -> 9.99999E-6168 Subnormal +dqbem465 toSci 99999.0E-6172 -> 9.99990E-6168 Subnormal +dqbem466 toSci 99999.E-6172 -> 9.9999E-6168 Subnormal +dqbem467 toSci 9999.9E-6172 -> 9.9999E-6169 Subnormal +dqbem468 toSci 999.99E-6172 -> 9.9999E-6170 Subnormal +dqbem469 toSci 99.999E-6172 -> 9.9999E-6171 Subnormal +dqbem470 toSci 9.9999E-6172 -> 9.9999E-6172 Subnormal +dqbem471 toSci 0.99999E-6172 -> 1.0000E-6172 Underflow Subnormal Inexact Rounded +dqbem472 toSci 0.099999E-6172 -> 1.000E-6173 Underflow Subnormal Inexact Rounded +dqbem473 toSci 0.0099999E-6172 -> 1.00E-6174 Underflow Subnormal Inexact Rounded +dqbem474 toSci 0.00099999E-6172 -> 1.0E-6175 Underflow Subnormal Inexact Rounded +dqbem475 toSci 0.000099999E-6172 -> 1E-6176 Underflow Subnormal Inexact Rounded +dqbem476 toSci 0.0000099999E-6172 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqbem477 toSci 0.00000099999E-6172 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqbem478 toSci 0.000000099999E-6172 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped + +-- Exponents with insignificant leading zeros +dqbas1001 toSci 1e999999999 -> Infinity Overflow Inexact Rounded +dqbas1002 toSci 1e0999999999 -> Infinity Overflow Inexact Rounded +dqbas1003 toSci 1e00999999999 -> Infinity Overflow Inexact Rounded +dqbas1004 toSci 1e000999999999 -> Infinity Overflow Inexact Rounded +dqbas1005 toSci 1e000000000000999999999 -> Infinity Overflow Inexact Rounded +dqbas1006 toSci 1e000000000001000000007 -> Infinity Overflow Inexact Rounded +dqbas1007 toSci 1e-999999999 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqbas1008 toSci 1e-0999999999 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqbas1009 toSci 1e-00999999999 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqbas1010 toSci 1e-000999999999 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqbas1011 toSci 1e-000000000000999999999 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqbas1012 toSci 1e-000000000001000000007 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped + +-- check for double-rounded subnormals +dqbas1041 toSci 1.1111111111111111111111111111152444E-6144 -> 1.11111111111111111111111111111524E-6144 Inexact Rounded Subnormal Underflow +dqbas1042 toSci 1.1111111111111111111111111111152445E-6144 -> 1.11111111111111111111111111111524E-6144 Inexact Rounded Subnormal Underflow +dqbas1043 toSci 1.1111111111111111111111111111152446E-6144 -> 1.11111111111111111111111111111524E-6144 Inexact Rounded Subnormal Underflow + +-- clamped zeros [see also clamp.decTest] +dqbas1075 toSci 0e+10000 -> 0E+6111 Clamped +dqbas1076 toSci 0e-10000 -> 0E-6176 Clamped +dqbas1077 toSci -0e+10000 -> -0E+6111 Clamped +dqbas1078 toSci -0e-10000 -> -0E-6176 Clamped + +-- extreme values from next-wider +dqbas1101 toSci -9.9999999999999999999999999999999999999999999999999999999999999999999E+1572864 -> -Infinity Overflow Inexact Rounded +dqbas1102 toSci -1E-1572863 -> -0E-6176 Inexact Rounded Subnormal Underflow Clamped +dqbas1103 toSci -1E-1572932 -> -0E-6176 Inexact Rounded Subnormal Underflow Clamped +dqbas1104 toSci -0 -> -0 +dqbas1105 toSci +0 -> 0 +dqbas1106 toSci +1E-1572932 -> 0E-6176 Inexact Rounded Subnormal Underflow Clamped +dqbas1107 toSci +1E-1572863 -> 0E-6176 Inexact Rounded Subnormal Underflow Clamped +dqbas1108 toSci +9.9999999999999999999999999999999999999999999999999999999999999999999E+1572864 -> Infinity Overflow Inexact Rounded + diff --git a/Lib/test/decimaltestdata/dqCanonical.decTest b/Lib/test/decimaltestdata/dqCanonical.decTest index 3ddf6eab2d..006db8595c 100644 --- a/Lib/test/decimaltestdata/dqCanonical.decTest +++ b/Lib/test/decimaltestdata/dqCanonical.decTest @@ -1,372 +1,372 @@ -------------------------------------------------------------------------
--- dqCanonical.decTest -- test decQuad canonical results --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- This file tests that copy operations leave uncanonical operands
--- unchanged, and vice versa
-
--- All operands and results are decQuads.
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
--- Uncanonical declets are: abc, where:
--- a=1,2,3
--- b=6,7,e,f
--- c=e,f
-
--- assert some standard (canonical) values; this tests that FromString
--- produces canonical results (many more in decimalNN)
-dqcan001 apply 9.999999999999999999999999999999999E+6144 -> #77ffcff3fcff3fcff3fcff3fcff3fcff
-dqcan002 apply 0 -> #22080000000000000000000000000000
-dqcan003 apply 1 -> #22080000000000000000000000000001
-dqcan004 apply -1 -> #a2080000000000000000000000000001
-dqcan005 apply Infinity -> #78000000000000000000000000000000
-dqcan006 apply -Infinity -> #f8000000000000000000000000000000
-dqcan007 apply -NaN -> #fc000000000000000000000000000000
-dqcan008 apply -sNaN -> #fe000000000000000000000000000000
-dqcan009 apply NaN999999999999999999999999999999999 -> #7c000ff3fcff3fcff3fcff3fcff3fcff
-dqcan010 apply sNaN999999999999999999999999999999999 -> #7e000ff3fcff3fcff3fcff3fcff3fcff
-decan011 apply 9999999999999999999999999999999999 -> #6e080ff3fcff3fcff3fcff3fcff3fcff
-dqcan012 apply 7.50 -> #220780000000000000000000000003d0
-dqcan013 apply 9.99 -> #220780000000000000000000000000ff
-
--- Base tests for canonical encodings (individual operator
--- propagation is tested later)
-
--- Finites: declets in coefficient
-dqcan021 canonical #77ffcff3fcff3fcff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
-dqcan022 canonical #77fffff3fcff3fcff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
-dqcan023 canonical #77ffcffffcff3fcff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
-dqcan024 canonical #77ffcff3ffff3fcff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
-dqcan025 canonical #77ffcff3fcffffcff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
-dqcan026 canonical #77ffcff3fcff3ffff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
-dqcan027 canonical #77ffcff3fcff3fcffffcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
-dqcan028 canonical #77ffcff3fcff3fcff3ffff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
-dqcan029 canonical #77ffcff3fcff3fcff3fcffffcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
-dqcan030 canonical #77ffcff3fcff3fcff3fcff3ffff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
-dqcan031 canonical #77ffcff3fcff3fcff3fcff3fcffffcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
-dqcan032 canonical #77ffcff3fcff3fcff3fcff3fcff3ffff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
-
--- NaN: declets in payload
-dqcan061 canonical #7c000ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
-dqcan062 canonical #7c000ffffcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
-dqcan063 canonical #7c000ff3ffff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
-dqcan064 canonical #7c000ff3fcffffcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
-dqcan065 canonical #7c000ff3fcff3ffff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
-dqcan066 canonical #7c000ff3fcff3fcffffcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
-dqcan067 canonical #7c000ff3fcff3fcff3ffff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
-dqcan068 canonical #7c000ff3fcff3fcff3fcffffcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
-dqcan069 canonical #7c000ff3fcff3fcff3fcff3ffff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
-dqcan070 canonical #7c000ff3fcff3fcff3fcff3fcffffcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
-dqcan071 canonical #7c000ff3fcff3fcff3fcff3fcff3ffff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
--- NaN: exponent continuation bits [excluding sNaN selector]
-dqcan081 canonical #7d000ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
-dqcan082 canonical #7c800ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
-dqcan083 canonical #7c400ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
-dqcan084 canonical #7c200ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
-dqcan085 canonical #7c100ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
-dqcan086 canonical #7c080ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
-dqcan087 canonical #7c040ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
-dqcan088 canonical #7c020ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
-dqcan089 canonical #7c010ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
-dqcan090 canonical #7c008ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
-dqcan091 canonical #7c004ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
-
--- sNaN: declets in payload
-dqcan101 canonical #7e000ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
-dqcan102 canonical #7e000ffffcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
-dqcan103 canonical #7e000ff3ffff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
-dqcan104 canonical #7e000ff3fcffffcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
-dqcan105 canonical #7e000ff3fcff3ffff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
-dqcan106 canonical #7e000ff3fcff3fcffffcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
-dqcan107 canonical #7e000ff3fcff3fcff3ffff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
-dqcan108 canonical #7e000ff3fcff3fcff3fcffffcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
-dqcan109 canonical #7e000ff3fcff3fcff3fcff3ffff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
-dqcan100 canonical #7e000ff3fcff3fcff3fcff3fcffffcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
-dqcan111 canonical #7e000ff3fcff3fcff3fcff3fcff3ffff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
--- sNaN: exponent continuation bits [excluding sNaN selector]
-dqcan121 canonical #7f000ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
-dqcan122 canonical #7e800ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
-dqcan123 canonical #7e400ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
-dqcan124 canonical #7e200ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
-dqcan125 canonical #7e100ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
-dqcan126 canonical #7e080ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
-dqcan127 canonical #7e040ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
-dqcan128 canonical #7e020ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
-dqcan129 canonical #7e010ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
-dqcan130 canonical #7e008ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
-dqcan131 canonical #7e004ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
-
--- Inf: exponent continuation bits
-dqcan137 canonical #78000000000000000000000000000000 -> #78000000000000000000000000000000
-dqcan138 canonical #79000000000000000000000000000000 -> #78000000000000000000000000000000
-dqcan139 canonical #7a000000000000000000000000000000 -> #78000000000000000000000000000000
-dqcan140 canonical #78800000000000000000000000000000 -> #78000000000000000000000000000000
-dqcan141 canonical #78400000000000000000000000000000 -> #78000000000000000000000000000000
-dqcan142 canonical #78200000000000000000000000000000 -> #78000000000000000000000000000000
-dqcan143 canonical #78100000000000000000000000000000 -> #78000000000000000000000000000000
-dqcan144 canonical #78080000000000000000000000000000 -> #78000000000000000000000000000000
-dqcan145 canonical #78040000000000000000000000000000 -> #78000000000000000000000000000000
-dqcan146 canonical #78020000000000000000000000000000 -> #78000000000000000000000000000000
-dqcan147 canonical #78010000000000000000000000000000 -> #78000000000000000000000000000000
-dqcan148 canonical #78008000000000000000000000000000 -> #78000000000000000000000000000000
-dqcan149 canonical #78004000000000000000000000000000 -> #78000000000000000000000000000000
-
--- Inf: coefficient continuation bits (first, last, and a few others)
-dqcan150 canonical #78000000000000000000000000000000 -> #78000000000000000000000000000000
-dqcan151 canonical #78020000000000000000000000000000 -> #78000000000000000000000000000000
-dqcan152 canonical #78000000000000000000000000000001 -> #78000000000000000000000000000000
-dqcan153 canonical #78010000000000000000000000000000 -> #78000000000000000000000000000000
-dqcan154 canonical #78002000000000000000000000000000 -> #78000000000000000000000000000000
-dqcan155 canonical #78000800000000000000000000000000 -> #78000000000000000000000000000000
-dqcan156 canonical #78000020000000000000000000000000 -> #78000000000000000000000000000000
-dqcan157 canonical #78000004000000000000000000000000 -> #78000000000000000000000000000000
-dqcan158 canonical #78000000400000000000000000000000 -> #78000000000000000000000000000000
-dqcan159 canonical #78000000080000000000000000000000 -> #78000000000000000000000000000000
-dqcan160 canonical #78000000004000000000000000000000 -> #78000000000000000000000000000000
-dqcan161 canonical #78000000000200000000000000000000 -> #78000000000000000000000000000000
-dqcan162 canonical #78000000000080000000000000000000 -> #78000000000000000000000000000000
-dqcan163 canonical #78000000000002000000000000000000 -> #78000000000000000000000000000000
-dqcan164 canonical #78000000000000400000000000000000 -> #78000000000000000000000000000000
-dqcan165 canonical #78000000000000080000000000000000 -> #78000000000000000000000000000000
-dqcan166 canonical #78000000000000001000000000000000 -> #78000000000000000000000000000000
-dqcan167 canonical #78000000000000000200000000000000 -> #78000000000000000000000000000000
-dqcan168 canonical #78000000000000000080000000000000 -> #78000000000000000000000000000000
-dqcan169 canonical #78000000000000000004000000000000 -> #78000000000000000000000000000000
-dqcan170 canonical #78000000000000000000400000000000 -> #78000000000000000000000000000000
-dqcan171 canonical #78000000000000000000010000000000 -> #78000000000000000000000000000000
-dqcan172 canonical #78000000000000000000002000000000 -> #78000000000000000000000000000000
-dqcan173 canonical #78000000000000000000000400000000 -> #78000000000000000000000000000000
-dqcan174 canonical #78000000000000000000000080000000 -> #78000000000000000000000000000000
-dqcan175 canonical #78000000000000000000000002000000 -> #78000000000000000000000000000000
-dqcan176 canonical #78000000000000000000000000400000 -> #78000000000000000000000000000000
-dqcan177 canonical #78000000000000000000000000020000 -> #78000000000000000000000000000000
-dqcan178 canonical #78000000000000000000000000001000 -> #78000000000000000000000000000000
-dqcan179 canonical #78000000000000000000000000000400 -> #78000000000000000000000000000000
-dqcan180 canonical #78000000000000000000000000000020 -> #78000000000000000000000000000000
-dqcan181 canonical #78000000000000000000000000000008 -> #78000000000000000000000000000000
-
-
--- Now the operators -- trying to check paths that might fail to
--- canonicalize propagated operands
-
------ Add:
--- Finites: neutral 0
-dqcan202 add 0E+6144 #77ffcff3fcff3fcffffcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
-dqcan203 add #77ffcff3fcff3fcff3fcff3ffff3fcff 0E+6144 -> #77ffcff3fcff3fcff3fcff3fcff3fcff
--- tiny zero
-dqcan204 add 0E-6176 #77ffcff3ffff3fcff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff Rounded
-dqcan205 add #77ffcff3fcff3fcff3fcff3fcff3ffff 0E-6176 -> #77ffcff3fcff3fcff3fcff3fcff3fcff Rounded
--- tiny non zero
-dqcan206 add -1E-6176 #77ffcff3fcff3fcff3fcff3fcfffffff -> #77ffcff3fcff3fcff3fcff3fcff3fcff Inexact Rounded
-dqcan207 add #77ffcffffffffffffffffffffff3fcff -1E-6176 -> #77ffcff3fcff3fcff3fcff3fcff3fcff Inexact Rounded
--- NaN: declets in payload
-dqcan211 add 0 #7c000ff3fcff3fcff3fcfffffff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
-dqcan212 add #7c000ff3fcff3fcfffffff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff
--- NaN: exponent continuation bits [excluding sNaN selector]
-dqcan213 add 0 #7c400ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
-dqcan214 add #7c020ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff
--- sNaN: declets in payload
-dqcan215 add 0 #7e000ff3fcffffcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
-dqcan216 add #7e003ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
--- sNaN: exponent continuation bits [excluding sNaN selector]
-dqcan217 add 0 #7e500ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
-dqcan218 add #7e0e0ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
--- Inf: exponent continuation bits
-dqcan220 add 0 #78010000000000000000000000000000 -> #78000000000000000000000000000000
-dqcan221 add #78680000000000000000000000000000 0 -> #78000000000000000000000000000000
--- Inf: coefficient continuation bits
-dqcan222 add 0 #78002000000000000000000000000000 -> #78000000000000000000000000000000
-dqcan223 add #78000000000000000000000000000001 0 -> #78000000000000000000000000000000
-dqcan224 add 0 #78000002000000000000000000000000 -> #78000000000000000000000000000000
-dqcan225 add #780000000000f0000000000000000000 0 -> #78000000000000000000000000000000
-dqcan226 add 0 #78000000000000000005000000000000 -> #78000000000000000000000000000000
-dqcan227 add #780000000000000000000000000a0000 0 -> #78000000000000000000000000000000
-
------ Class: [does not return encoded]
-
------ Compare:
-dqcan231 compare -Inf 1 -> #a2080000000000000000000000000001
-dqcan232 compare -Inf -Inf -> #22080000000000000000000000000000
-dqcan233 compare 1 -Inf -> #22080000000000000000000000000001
-dqcan234 compare #7c010ff3fcff3fcff3fcff3ffffffcff -1000 -> #7c000ff3fcff3fcff3fcff3fcff3fcff
-dqcan235 compare #7e004ff3fcff3fcff3ffffffcff3fcff -1000 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
-
------ CompareSig:
-dqcan241 comparesig -Inf 1 -> #a2080000000000000000000000000001
-dqcan242 comparesig -Inf -Inf -> #22080000000000000000000000000000
-dqcan243 comparesig 1 -Inf -> #22080000000000000000000000000001
-dqcan244 comparesig #7c400ff3ffff3fcff3fcff3fcff3fcff -1000 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
-dqcan245 comparesig #7e050ff3fcfffffff3fcff3fcff3fcff -1000 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
-
------ Copy: [does not usually canonicalize]
--- finites
-dqcan250 copy #6e080ff3fcff3fcfffffff3fcfffffff -> #6e080ff3fcff3fcfffffff3fcfffffff
-dqcan251 copy #ee080ff3fcff3ffff3fcff3ffff3fcff -> #ee080ff3fcff3ffff3fcff3ffff3fcff
--- NaNs
-dqcan252 copy #7c000ff3fcffffffffffffffcff3fcff -> #7c000ff3fcffffffffffffffcff3fcff
-dqcan253 copy #7c080ff3fcff3fcff3fcff3fcff3fcff -> #7c080ff3fcff3fcff3fcff3fcff3fcff
--- sNaN
-dqcan254 copy #7e003ff3fcffffffffffffffcff3fcff -> #7e003ff3fcffffffffffffffcff3fcff
-dqcan255 copy #7e100ff3fcff3fcff3fcff3fcff3fcff -> #7e100ff3fcff3fcff3fcff3fcff3fcff
--- Inf
-dqcan258 copy #78002000000000000000000000000000 -> #78002000000000000000000000000000
-dqcan259 copy #78000000000010000000000000100000 -> #78000000000010000000000000100000
-
------ CopyAbs: [does not usually canonicalize]
--- finites
-dqcan260 copyabs #6e080ff3fcff3fcfffffff3fcfffffff -> #6e080ff3fcff3fcfffffff3fcfffffff
-dqcan261 copyabs #ee080ff3fcff3ffff3fcff3ffff3fcff -> #6e080ff3fcff3ffff3fcff3ffff3fcff
--- NaNs
-dqcan262 copyabs #fc000ff3fcffffffffffffffcff3fcff -> #7c000ff3fcffffffffffffffcff3fcff
-dqcan263 copyabs #fc080ff3fcff3fcff3fcff3fcff3fcff -> #7c080ff3fcff3fcff3fcff3fcff3fcff
--- sNaN
-dqcan264 copyabs #fe003ff3fcffffffffffffffcff3fcff -> #7e003ff3fcffffffffffffffcff3fcff
-dqcan265 copyabs #fe100ff3fcff3fcff3fcff3fcff3fcff -> #7e100ff3fcff3fcff3fcff3fcff3fcff
--- Inf
-dqcan268 copyabs #f8002000000000000000000000000000 -> #78002000000000000000000000000000
-dqcan269 copyabs #f8000000000000700700700000000000 -> #78000000000000700700700000000000
-
------ CopyNegate: [does not usually canonicalize]
--- finites
-dqcan270 copynegate #6e080ff3fcff3fcfffffff3fcfffffff -> #ee080ff3fcff3fcfffffff3fcfffffff
-dqcan271 copynegate #ee080ff3fcff3ffff3fcff3ffff3fcff -> #6e080ff3fcff3ffff3fcff3ffff3fcff
--- NaNs
-dqcan272 copynegate #7c000ff3fcffffffffffff3fcff3fcff -> #fc000ff3fcffffffffffff3fcff3fcff
-dqcan273 copynegate #7c080ff3fcff3fcff3fcff3fcff3fcff -> #fc080ff3fcff3fcff3fcff3fcff3fcff
--- sNaN
-dqcan274 copynegate #7e003ff3fcffffffffffffffcff3fcff -> #fe003ff3fcffffffffffffffcff3fcff
-dqcan275 copynegate #7e100ff3fcff3fcff3fcff3fcff3fcff -> #fe100ff3fcff3fcff3fcff3fcff3fcff
--- Inf
-dqcan278 copynegate #78002000000000000000000000000000 -> #f8002000000000000000000000000000
-dqcan279 copynegate #78000000000010000000000000100000 -> #f8000000000010000000000000100000
-
------ CopySign: [does not usually canonicalize]
--- finites
-dqcan280 copysign #6e080ff3fcff3fcfffffff3fcfffffff -1 -> #ee080ff3fcff3fcfffffff3fcfffffff
-dqcan281 copysign #ee080ff3fcff3ffff3fcff3ffff3fcff 1 -> #6e080ff3fcff3ffff3fcff3ffff3fcff
--- NaNs
-dqcan282 copysign #7c000ff3fcffffffffffffffcff3fcff -1 -> #fc000ff3fcffffffffffffffcff3fcff
-dqcan283 copysign #7c080ff3fcff3fcff3fcff3fcff3fcff 1 -> #7c080ff3fcff3fcff3fcff3fcff3fcff
--- sNaN
-dqcan284 copysign #7e003ff3fcffffffffffffffcff3fcff -1 -> #fe003ff3fcffffffffffffffcff3fcff
-dqcan285 copysign #7e100ff3fcff3fcff3fcff3fcff3fcff 1 -> #7e100ff3fcff3fcff3fcff3fcff3fcff
--- Inf
-dqcan288 copysign #78002000000000000000000000000000 -1 -> #f8002000000000000000000000000000
-dqcan289 copysign #78000000000010000000000000100000 1 -> #78000000000010000000000000100000
-
------ Multiply:
--- Finites: neutral 0
-dqcan302 multiply 1 #77ffff3fcff3fcff0000000000000000 -> #77ffff3fcff3fcff0000000000000000
-dqcan303 multiply #77fcffffcff3fcff0000000000000000 1 -> #77fccfffcff3fcff0000000000000000
--- negative
-dqcan306 multiply -1 #77ffff3fcff3fcff0000000000000000 -> #f7ffff3fcff3fcff0000000000000000
-dqcan307 multiply #77fcffffcff3fcff0000000000000000 -1 -> #f7fccfffcff3fcff0000000000000000
--- NaN: declets in payload
-dqcan311 multiply 1 #7c03ff3fcff3fcff0000000000000000 -> #7c003f3fcff3fcff0000000000000000
-dqcan312 multiply #7c03ff3fcff3fcff0000000000000000 1 -> #7c003f3fcff3fcff0000000000000000
--- NaN: exponent continuation bits [excluding sNaN selector]
-dqcan313 multiply 1 #7c40ff3fcff3fcff0000000000000000 -> #7c003f3fcff3fcff0000000000000000
-dqcan314 multiply #7c40ff3fcff3fcff0000000000000000 1 -> #7c003f3fcff3fcff0000000000000000
--- sNaN: declets in payload
-dqcan315 multiply 1 #7e00ffffcff3fcff0000000000000000 -> #7c000fffcff3fcff0000000000000000 Invalid_operation
-dqcan316 multiply #7e00ffffcff3fcff0000000000000000 1 -> #7c000fffcff3fcff0000000000000000 Invalid_operation
--- sNaN: exponent continuation bits [excluding sNaN selector]
-dqcan317 multiply 1 #7e80ff3fcff3fcff0000000000000000 -> #7c003f3fcff3fcff0000000000000000 Invalid_operation
-dqcan318 multiply #7e80ff3fcff3fcff0000000000000000 1 -> #7c003f3fcff3fcff0000000000000000 Invalid_operation
--- Inf: exponent continuation bits
-dqcan320 multiply 1 #78800000000000000000000000000000 -> #78000000000000000000000000000000
-dqcan321 multiply #78800000000000000000000000000000 1 -> #78000000000000000000000000000000
--- Inf: coefficient continuation bits
-dqcan322 multiply 1 #78020000000000000000000000000000 -> #78000000000000000000000000000000
-dqcan323 multiply #78020000000000000000000000000000 1 -> #78000000000000000000000000000000
-dqcan324 multiply 1 #78000000000000010000000000000000 -> #78000000000000000000000000000000
-dqcan325 multiply #78000000000000010000000000000000 1 -> #78000000000000000000000000000000
-dqcan326 multiply 1 #78000020000000000000000000000000 -> #78000000000000000000000000000000
-dqcan327 multiply #78000020000000000000000000000000 1 -> #78000000000000000000000000000000
-
------ Quantize:
-dqcan401 quantize #ee080ff3fcff3fcff3fffffffff3fcff 0 -> #ee080ff3fcff3fcff3fcff3fcff3fcff
-dqcan402 quantize #ee080ff3fffffffffffcff3fcff3fcff 0 -> #ee080ff3fcff3fcff3fcff3fcff3fcff
-dqcan403 quantize #78800000000000000000000000000000 Inf -> #78000000000000000000000000000000
-dqcan404 quantize #78020000000000000000000000000000 -Inf -> #78000000000000000000000000000000
-dqcan410 quantize #7c080ff3fcff3fcff3fcff3fcff3fcff 1 -> #7c000ff3fcff3fcff3fcff3fcff3fcff
-dqcan411 quantize #fc000ff3fcfffffff3fcff3fcff3fcff 1 -> #fc000ff3fcff3fcff3fcff3fcff3fcff
-dqcan412 quantize #7e100ff3fcff3fcff3fcff3fcff3fcff 1 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
-dqcan413 quantize #fe000ff3fcff3fcff3ffffffcff3fcff 1 -> #fc000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
-
------ Subtract:
--- Finites: neutral 0
-dqcan502 subtract 0E+6144 #77ffcff3fcff3fcffffcff3fcff3fcff -> #f7ffcff3fcff3fcff3fcff3fcff3fcff
-dqcan503 subtract #77ffcff3fcff3fcff3fcff3ffff3fcff 0E+6144 -> #77ffcff3fcff3fcff3fcff3fcff3fcff
--- tiny zero
-dqcan504 subtract 0E-6176 #77ffcff3ffff3fcff3fcff3fcff3fcff -> #f7ffcff3fcff3fcff3fcff3fcff3fcff Rounded
-dqcan505 subtract #77ffcff3fcff3fcff3fcff3fcff3ffff 0E-6176 -> #77ffcff3fcff3fcff3fcff3fcff3fcff Rounded
--- tiny non zero
-dqcan506 subtract -1E-6176 #77ffcff3fcff3fcff3fcff3fcfffffff -> #f7ffcff3fcff3fcff3fcff3fcff3fcff Inexact Rounded
-dqcan507 subtract #77ffcffffffffffffffffffffff3fcff -1E-6176 -> #77ffcff3fcff3fcff3fcff3fcff3fcff Inexact Rounded
--- NaN: declets in payload
-dqcan511 subtract 0 #7c000ff3fcff3fcff3fcfffffff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
-dqcan512 subtract #7c000ff3fcff3fcfffffff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff
--- NaN: exponent continuation bits [excluding sNaN selector]
-dqcan513 subtract 0 #7c400ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
-dqcan514 subtract #7c020ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff
--- sNaN: declets in payload
-dqcan515 subtract 0 #7e000ff3fcffffcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
-dqcan516 subtract #7e003ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
--- sNaN: exponent continuation bits [excluding sNaN selector]
-dqcan517 subtract 0 #7e500ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
-dqcan518 subtract #7e0e0ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
--- Inf: exponent continuation bits
-dqcan520 subtract 0 #78010000000000000000000000000000 -> #f8000000000000000000000000000000
-dqcan521 subtract #78680000000000000000000000000000 0 -> #78000000000000000000000000000000
--- Inf: coefficient continuation bits
-dqcan522 subtract 0 #78002000000000000000000000000000 -> #f8000000000000000000000000000000
-dqcan523 subtract #78000000000000000000000000000001 0 -> #78000000000000000000000000000000
-dqcan524 subtract 0 #78000002000000000000000000000000 -> #f8000000000000000000000000000000
-dqcan525 subtract #780000000000f0000000000000000000 0 -> #78000000000000000000000000000000
-dqcan526 subtract 0 #78000000000000000005000000000000 -> #f8000000000000000000000000000000
-dqcan527 subtract #780000000000000000000000000a0000 0 -> #78000000000000000000000000000000
-
------ ToIntegral:
-dqcan601 tointegralx #6e080ff3fdff3fcff3fcff3fcff3fcff -> #6e080ff3fcff3fcff3fcff3fcff3fcff
-dqcan602 tointegralx #ee080ff3fcff3ffff3fcff3fcff3fcff -> #ee080ff3fcff3fcff3fcff3fcff3fcff
-dqcan603 tointegralx #78800000000000000000000000000000 -> #78000000000000000000000000000000
-dqcan604 tointegralx #78020000000000000000000000000000 -> #78000000000000000000000000000000
-dqcan614 tointegralx #7c100ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
-dqcan615 tointegralx #fc000ff3fcff3fcff3fcffffcff3fcff -> #fc000ff3fcff3fcff3fcff3fcff3fcff
-dqcan616 tointegralx #7e010ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
-dqcan617 tointegralx #fe000ff3fcff3fcff3fdff3fcff3fcff -> #fc000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
--- uncanonical 3999, 39.99, 3.99, 0.399, and negatives
-dqcan618 tointegralx #22080000000000000000000000000fff -> #22080000000000000000000000000cff
-dqcan619 tointegralx #22078000000000000000000000000fff -> #22080000000000000000000000000040 Inexact Rounded
-dqcan620 tointegralx #22074000000000000000000000000fff -> #22080000000000000000000000000004 Inexact Rounded
-dqcan621 tointegralx #22070000000000000000000000000fff -> #22080000000000000000000000000000 Inexact Rounded
-dqcan622 tointegralx #a2080000000000000000000000000fff -> #a2080000000000000000000000000cff
-dqcan623 tointegralx #a2078000000000000000000000000fff -> #a2080000000000000000000000000040 Inexact Rounded
-dqcan624 tointegralx #a2074000000000000000000000000fff -> #a2080000000000000000000000000004 Inexact Rounded
-dqcan625 tointegralx #a2070000000000000000000000000fff -> #a2080000000000000000000000000000 Inexact Rounded
-
-
-
+------------------------------------------------------------------------ +-- dqCanonical.decTest -- test decQuad canonical results -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- This file tests that copy operations leave uncanonical operands +-- unchanged, and vice versa + +-- All operands and results are decQuads. +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +-- Uncanonical declets are: abc, where: +-- a=1,2,3 +-- b=6,7,e,f +-- c=e,f + +-- assert some standard (canonical) values; this tests that FromString +-- produces canonical results (many more in decimalNN) +dqcan001 apply 9.999999999999999999999999999999999E+6144 -> #77ffcff3fcff3fcff3fcff3fcff3fcff +dqcan002 apply 0 -> #22080000000000000000000000000000 +dqcan003 apply 1 -> #22080000000000000000000000000001 +dqcan004 apply -1 -> #a2080000000000000000000000000001 +dqcan005 apply Infinity -> #78000000000000000000000000000000 +dqcan006 apply -Infinity -> #f8000000000000000000000000000000 +dqcan007 apply -NaN -> #fc000000000000000000000000000000 +dqcan008 apply -sNaN -> #fe000000000000000000000000000000 +dqcan009 apply NaN999999999999999999999999999999999 -> #7c000ff3fcff3fcff3fcff3fcff3fcff +dqcan010 apply sNaN999999999999999999999999999999999 -> #7e000ff3fcff3fcff3fcff3fcff3fcff +decan011 apply 9999999999999999999999999999999999 -> #6e080ff3fcff3fcff3fcff3fcff3fcff +dqcan012 apply 7.50 -> #220780000000000000000000000003d0 +dqcan013 apply 9.99 -> #220780000000000000000000000000ff + +-- Base tests for canonical encodings (individual operator +-- propagation is tested later) + +-- Finites: declets in coefficient +dqcan021 canonical #77ffcff3fcff3fcff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff +dqcan022 canonical #77fffff3fcff3fcff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff +dqcan023 canonical #77ffcffffcff3fcff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff +dqcan024 canonical #77ffcff3ffff3fcff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff +dqcan025 canonical #77ffcff3fcffffcff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff +dqcan026 canonical #77ffcff3fcff3ffff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff +dqcan027 canonical #77ffcff3fcff3fcffffcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff +dqcan028 canonical #77ffcff3fcff3fcff3ffff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff +dqcan029 canonical #77ffcff3fcff3fcff3fcffffcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff +dqcan030 canonical #77ffcff3fcff3fcff3fcff3ffff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff +dqcan031 canonical #77ffcff3fcff3fcff3fcff3fcffffcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff +dqcan032 canonical #77ffcff3fcff3fcff3fcff3fcff3ffff -> #77ffcff3fcff3fcff3fcff3fcff3fcff + +-- NaN: declets in payload +dqcan061 canonical #7c000ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff +dqcan062 canonical #7c000ffffcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff +dqcan063 canonical #7c000ff3ffff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff +dqcan064 canonical #7c000ff3fcffffcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff +dqcan065 canonical #7c000ff3fcff3ffff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff +dqcan066 canonical #7c000ff3fcff3fcffffcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff +dqcan067 canonical #7c000ff3fcff3fcff3ffff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff +dqcan068 canonical #7c000ff3fcff3fcff3fcffffcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff +dqcan069 canonical #7c000ff3fcff3fcff3fcff3ffff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff +dqcan070 canonical #7c000ff3fcff3fcff3fcff3fcffffcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff +dqcan071 canonical #7c000ff3fcff3fcff3fcff3fcff3ffff -> #7c000ff3fcff3fcff3fcff3fcff3fcff +-- NaN: exponent continuation bits [excluding sNaN selector] +dqcan081 canonical #7d000ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff +dqcan082 canonical #7c800ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff +dqcan083 canonical #7c400ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff +dqcan084 canonical #7c200ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff +dqcan085 canonical #7c100ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff +dqcan086 canonical #7c080ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff +dqcan087 canonical #7c040ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff +dqcan088 canonical #7c020ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff +dqcan089 canonical #7c010ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff +dqcan090 canonical #7c008ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff +dqcan091 canonical #7c004ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff + +-- sNaN: declets in payload +dqcan101 canonical #7e000ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff +dqcan102 canonical #7e000ffffcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff +dqcan103 canonical #7e000ff3ffff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff +dqcan104 canonical #7e000ff3fcffffcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff +dqcan105 canonical #7e000ff3fcff3ffff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff +dqcan106 canonical #7e000ff3fcff3fcffffcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff +dqcan107 canonical #7e000ff3fcff3fcff3ffff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff +dqcan108 canonical #7e000ff3fcff3fcff3fcffffcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff +dqcan109 canonical #7e000ff3fcff3fcff3fcff3ffff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff +dqcan100 canonical #7e000ff3fcff3fcff3fcff3fcffffcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff +dqcan111 canonical #7e000ff3fcff3fcff3fcff3fcff3ffff -> #7e000ff3fcff3fcff3fcff3fcff3fcff +-- sNaN: exponent continuation bits [excluding sNaN selector] +dqcan121 canonical #7f000ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff +dqcan122 canonical #7e800ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff +dqcan123 canonical #7e400ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff +dqcan124 canonical #7e200ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff +dqcan125 canonical #7e100ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff +dqcan126 canonical #7e080ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff +dqcan127 canonical #7e040ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff +dqcan128 canonical #7e020ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff +dqcan129 canonical #7e010ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff +dqcan130 canonical #7e008ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff +dqcan131 canonical #7e004ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff + +-- Inf: exponent continuation bits +dqcan137 canonical #78000000000000000000000000000000 -> #78000000000000000000000000000000 +dqcan138 canonical #79000000000000000000000000000000 -> #78000000000000000000000000000000 +dqcan139 canonical #7a000000000000000000000000000000 -> #78000000000000000000000000000000 +dqcan140 canonical #78800000000000000000000000000000 -> #78000000000000000000000000000000 +dqcan141 canonical #78400000000000000000000000000000 -> #78000000000000000000000000000000 +dqcan142 canonical #78200000000000000000000000000000 -> #78000000000000000000000000000000 +dqcan143 canonical #78100000000000000000000000000000 -> #78000000000000000000000000000000 +dqcan144 canonical #78080000000000000000000000000000 -> #78000000000000000000000000000000 +dqcan145 canonical #78040000000000000000000000000000 -> #78000000000000000000000000000000 +dqcan146 canonical #78020000000000000000000000000000 -> #78000000000000000000000000000000 +dqcan147 canonical #78010000000000000000000000000000 -> #78000000000000000000000000000000 +dqcan148 canonical #78008000000000000000000000000000 -> #78000000000000000000000000000000 +dqcan149 canonical #78004000000000000000000000000000 -> #78000000000000000000000000000000 + +-- Inf: coefficient continuation bits (first, last, and a few others) +dqcan150 canonical #78000000000000000000000000000000 -> #78000000000000000000000000000000 +dqcan151 canonical #78020000000000000000000000000000 -> #78000000000000000000000000000000 +dqcan152 canonical #78000000000000000000000000000001 -> #78000000000000000000000000000000 +dqcan153 canonical #78010000000000000000000000000000 -> #78000000000000000000000000000000 +dqcan154 canonical #78002000000000000000000000000000 -> #78000000000000000000000000000000 +dqcan155 canonical #78000800000000000000000000000000 -> #78000000000000000000000000000000 +dqcan156 canonical #78000020000000000000000000000000 -> #78000000000000000000000000000000 +dqcan157 canonical #78000004000000000000000000000000 -> #78000000000000000000000000000000 +dqcan158 canonical #78000000400000000000000000000000 -> #78000000000000000000000000000000 +dqcan159 canonical #78000000080000000000000000000000 -> #78000000000000000000000000000000 +dqcan160 canonical #78000000004000000000000000000000 -> #78000000000000000000000000000000 +dqcan161 canonical #78000000000200000000000000000000 -> #78000000000000000000000000000000 +dqcan162 canonical #78000000000080000000000000000000 -> #78000000000000000000000000000000 +dqcan163 canonical #78000000000002000000000000000000 -> #78000000000000000000000000000000 +dqcan164 canonical #78000000000000400000000000000000 -> #78000000000000000000000000000000 +dqcan165 canonical #78000000000000080000000000000000 -> #78000000000000000000000000000000 +dqcan166 canonical #78000000000000001000000000000000 -> #78000000000000000000000000000000 +dqcan167 canonical #78000000000000000200000000000000 -> #78000000000000000000000000000000 +dqcan168 canonical #78000000000000000080000000000000 -> #78000000000000000000000000000000 +dqcan169 canonical #78000000000000000004000000000000 -> #78000000000000000000000000000000 +dqcan170 canonical #78000000000000000000400000000000 -> #78000000000000000000000000000000 +dqcan171 canonical #78000000000000000000010000000000 -> #78000000000000000000000000000000 +dqcan172 canonical #78000000000000000000002000000000 -> #78000000000000000000000000000000 +dqcan173 canonical #78000000000000000000000400000000 -> #78000000000000000000000000000000 +dqcan174 canonical #78000000000000000000000080000000 -> #78000000000000000000000000000000 +dqcan175 canonical #78000000000000000000000002000000 -> #78000000000000000000000000000000 +dqcan176 canonical #78000000000000000000000000400000 -> #78000000000000000000000000000000 +dqcan177 canonical #78000000000000000000000000020000 -> #78000000000000000000000000000000 +dqcan178 canonical #78000000000000000000000000001000 -> #78000000000000000000000000000000 +dqcan179 canonical #78000000000000000000000000000400 -> #78000000000000000000000000000000 +dqcan180 canonical #78000000000000000000000000000020 -> #78000000000000000000000000000000 +dqcan181 canonical #78000000000000000000000000000008 -> #78000000000000000000000000000000 + + +-- Now the operators -- trying to check paths that might fail to +-- canonicalize propagated operands + +----- Add: +-- Finites: neutral 0 +dqcan202 add 0E+6144 #77ffcff3fcff3fcffffcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff +dqcan203 add #77ffcff3fcff3fcff3fcff3ffff3fcff 0E+6144 -> #77ffcff3fcff3fcff3fcff3fcff3fcff +-- tiny zero +dqcan204 add 0E-6176 #77ffcff3ffff3fcff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff Rounded +dqcan205 add #77ffcff3fcff3fcff3fcff3fcff3ffff 0E-6176 -> #77ffcff3fcff3fcff3fcff3fcff3fcff Rounded +-- tiny non zero +dqcan206 add -1E-6176 #77ffcff3fcff3fcff3fcff3fcfffffff -> #77ffcff3fcff3fcff3fcff3fcff3fcff Inexact Rounded +dqcan207 add #77ffcffffffffffffffffffffff3fcff -1E-6176 -> #77ffcff3fcff3fcff3fcff3fcff3fcff Inexact Rounded +-- NaN: declets in payload +dqcan211 add 0 #7c000ff3fcff3fcff3fcfffffff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff +dqcan212 add #7c000ff3fcff3fcfffffff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff +-- NaN: exponent continuation bits [excluding sNaN selector] +dqcan213 add 0 #7c400ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff +dqcan214 add #7c020ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff +-- sNaN: declets in payload +dqcan215 add 0 #7e000ff3fcffffcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation +dqcan216 add #7e003ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation +-- sNaN: exponent continuation bits [excluding sNaN selector] +dqcan217 add 0 #7e500ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation +dqcan218 add #7e0e0ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation +-- Inf: exponent continuation bits +dqcan220 add 0 #78010000000000000000000000000000 -> #78000000000000000000000000000000 +dqcan221 add #78680000000000000000000000000000 0 -> #78000000000000000000000000000000 +-- Inf: coefficient continuation bits +dqcan222 add 0 #78002000000000000000000000000000 -> #78000000000000000000000000000000 +dqcan223 add #78000000000000000000000000000001 0 -> #78000000000000000000000000000000 +dqcan224 add 0 #78000002000000000000000000000000 -> #78000000000000000000000000000000 +dqcan225 add #780000000000f0000000000000000000 0 -> #78000000000000000000000000000000 +dqcan226 add 0 #78000000000000000005000000000000 -> #78000000000000000000000000000000 +dqcan227 add #780000000000000000000000000a0000 0 -> #78000000000000000000000000000000 + +----- Class: [does not return encoded] + +----- Compare: +dqcan231 compare -Inf 1 -> #a2080000000000000000000000000001 +dqcan232 compare -Inf -Inf -> #22080000000000000000000000000000 +dqcan233 compare 1 -Inf -> #22080000000000000000000000000001 +dqcan234 compare #7c010ff3fcff3fcff3fcff3ffffffcff -1000 -> #7c000ff3fcff3fcff3fcff3fcff3fcff +dqcan235 compare #7e004ff3fcff3fcff3ffffffcff3fcff -1000 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation + +----- CompareSig: +dqcan241 comparesig -Inf 1 -> #a2080000000000000000000000000001 +dqcan242 comparesig -Inf -Inf -> #22080000000000000000000000000000 +dqcan243 comparesig 1 -Inf -> #22080000000000000000000000000001 +dqcan244 comparesig #7c400ff3ffff3fcff3fcff3fcff3fcff -1000 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation +dqcan245 comparesig #7e050ff3fcfffffff3fcff3fcff3fcff -1000 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation + +----- Copy: [does not usually canonicalize] +-- finites +dqcan250 copy #6e080ff3fcff3fcfffffff3fcfffffff -> #6e080ff3fcff3fcfffffff3fcfffffff +dqcan251 copy #ee080ff3fcff3ffff3fcff3ffff3fcff -> #ee080ff3fcff3ffff3fcff3ffff3fcff +-- NaNs +dqcan252 copy #7c000ff3fcffffffffffffffcff3fcff -> #7c000ff3fcffffffffffffffcff3fcff +dqcan253 copy #7c080ff3fcff3fcff3fcff3fcff3fcff -> #7c080ff3fcff3fcff3fcff3fcff3fcff +-- sNaN +dqcan254 copy #7e003ff3fcffffffffffffffcff3fcff -> #7e003ff3fcffffffffffffffcff3fcff +dqcan255 copy #7e100ff3fcff3fcff3fcff3fcff3fcff -> #7e100ff3fcff3fcff3fcff3fcff3fcff +-- Inf +dqcan258 copy #78002000000000000000000000000000 -> #78002000000000000000000000000000 +dqcan259 copy #78000000000010000000000000100000 -> #78000000000010000000000000100000 + +----- CopyAbs: [does not usually canonicalize] +-- finites +dqcan260 copyabs #6e080ff3fcff3fcfffffff3fcfffffff -> #6e080ff3fcff3fcfffffff3fcfffffff +dqcan261 copyabs #ee080ff3fcff3ffff3fcff3ffff3fcff -> #6e080ff3fcff3ffff3fcff3ffff3fcff +-- NaNs +dqcan262 copyabs #fc000ff3fcffffffffffffffcff3fcff -> #7c000ff3fcffffffffffffffcff3fcff +dqcan263 copyabs #fc080ff3fcff3fcff3fcff3fcff3fcff -> #7c080ff3fcff3fcff3fcff3fcff3fcff +-- sNaN +dqcan264 copyabs #fe003ff3fcffffffffffffffcff3fcff -> #7e003ff3fcffffffffffffffcff3fcff +dqcan265 copyabs #fe100ff3fcff3fcff3fcff3fcff3fcff -> #7e100ff3fcff3fcff3fcff3fcff3fcff +-- Inf +dqcan268 copyabs #f8002000000000000000000000000000 -> #78002000000000000000000000000000 +dqcan269 copyabs #f8000000000000700700700000000000 -> #78000000000000700700700000000000 + +----- CopyNegate: [does not usually canonicalize] +-- finites +dqcan270 copynegate #6e080ff3fcff3fcfffffff3fcfffffff -> #ee080ff3fcff3fcfffffff3fcfffffff +dqcan271 copynegate #ee080ff3fcff3ffff3fcff3ffff3fcff -> #6e080ff3fcff3ffff3fcff3ffff3fcff +-- NaNs +dqcan272 copynegate #7c000ff3fcffffffffffff3fcff3fcff -> #fc000ff3fcffffffffffff3fcff3fcff +dqcan273 copynegate #7c080ff3fcff3fcff3fcff3fcff3fcff -> #fc080ff3fcff3fcff3fcff3fcff3fcff +-- sNaN +dqcan274 copynegate #7e003ff3fcffffffffffffffcff3fcff -> #fe003ff3fcffffffffffffffcff3fcff +dqcan275 copynegate #7e100ff3fcff3fcff3fcff3fcff3fcff -> #fe100ff3fcff3fcff3fcff3fcff3fcff +-- Inf +dqcan278 copynegate #78002000000000000000000000000000 -> #f8002000000000000000000000000000 +dqcan279 copynegate #78000000000010000000000000100000 -> #f8000000000010000000000000100000 + +----- CopySign: [does not usually canonicalize] +-- finites +dqcan280 copysign #6e080ff3fcff3fcfffffff3fcfffffff -1 -> #ee080ff3fcff3fcfffffff3fcfffffff +dqcan281 copysign #ee080ff3fcff3ffff3fcff3ffff3fcff 1 -> #6e080ff3fcff3ffff3fcff3ffff3fcff +-- NaNs +dqcan282 copysign #7c000ff3fcffffffffffffffcff3fcff -1 -> #fc000ff3fcffffffffffffffcff3fcff +dqcan283 copysign #7c080ff3fcff3fcff3fcff3fcff3fcff 1 -> #7c080ff3fcff3fcff3fcff3fcff3fcff +-- sNaN +dqcan284 copysign #7e003ff3fcffffffffffffffcff3fcff -1 -> #fe003ff3fcffffffffffffffcff3fcff +dqcan285 copysign #7e100ff3fcff3fcff3fcff3fcff3fcff 1 -> #7e100ff3fcff3fcff3fcff3fcff3fcff +-- Inf +dqcan288 copysign #78002000000000000000000000000000 -1 -> #f8002000000000000000000000000000 +dqcan289 copysign #78000000000010000000000000100000 1 -> #78000000000010000000000000100000 + +----- Multiply: +-- Finites: neutral 0 +dqcan302 multiply 1 #77ffff3fcff3fcff0000000000000000 -> #77ffff3fcff3fcff0000000000000000 +dqcan303 multiply #77fcffffcff3fcff0000000000000000 1 -> #77fccfffcff3fcff0000000000000000 +-- negative +dqcan306 multiply -1 #77ffff3fcff3fcff0000000000000000 -> #f7ffff3fcff3fcff0000000000000000 +dqcan307 multiply #77fcffffcff3fcff0000000000000000 -1 -> #f7fccfffcff3fcff0000000000000000 +-- NaN: declets in payload +dqcan311 multiply 1 #7c03ff3fcff3fcff0000000000000000 -> #7c003f3fcff3fcff0000000000000000 +dqcan312 multiply #7c03ff3fcff3fcff0000000000000000 1 -> #7c003f3fcff3fcff0000000000000000 +-- NaN: exponent continuation bits [excluding sNaN selector] +dqcan313 multiply 1 #7c40ff3fcff3fcff0000000000000000 -> #7c003f3fcff3fcff0000000000000000 +dqcan314 multiply #7c40ff3fcff3fcff0000000000000000 1 -> #7c003f3fcff3fcff0000000000000000 +-- sNaN: declets in payload +dqcan315 multiply 1 #7e00ffffcff3fcff0000000000000000 -> #7c000fffcff3fcff0000000000000000 Invalid_operation +dqcan316 multiply #7e00ffffcff3fcff0000000000000000 1 -> #7c000fffcff3fcff0000000000000000 Invalid_operation +-- sNaN: exponent continuation bits [excluding sNaN selector] +dqcan317 multiply 1 #7e80ff3fcff3fcff0000000000000000 -> #7c003f3fcff3fcff0000000000000000 Invalid_operation +dqcan318 multiply #7e80ff3fcff3fcff0000000000000000 1 -> #7c003f3fcff3fcff0000000000000000 Invalid_operation +-- Inf: exponent continuation bits +dqcan320 multiply 1 #78800000000000000000000000000000 -> #78000000000000000000000000000000 +dqcan321 multiply #78800000000000000000000000000000 1 -> #78000000000000000000000000000000 +-- Inf: coefficient continuation bits +dqcan322 multiply 1 #78020000000000000000000000000000 -> #78000000000000000000000000000000 +dqcan323 multiply #78020000000000000000000000000000 1 -> #78000000000000000000000000000000 +dqcan324 multiply 1 #78000000000000010000000000000000 -> #78000000000000000000000000000000 +dqcan325 multiply #78000000000000010000000000000000 1 -> #78000000000000000000000000000000 +dqcan326 multiply 1 #78000020000000000000000000000000 -> #78000000000000000000000000000000 +dqcan327 multiply #78000020000000000000000000000000 1 -> #78000000000000000000000000000000 + +----- Quantize: +dqcan401 quantize #ee080ff3fcff3fcff3fffffffff3fcff 0 -> #ee080ff3fcff3fcff3fcff3fcff3fcff +dqcan402 quantize #ee080ff3fffffffffffcff3fcff3fcff 0 -> #ee080ff3fcff3fcff3fcff3fcff3fcff +dqcan403 quantize #78800000000000000000000000000000 Inf -> #78000000000000000000000000000000 +dqcan404 quantize #78020000000000000000000000000000 -Inf -> #78000000000000000000000000000000 +dqcan410 quantize #7c080ff3fcff3fcff3fcff3fcff3fcff 1 -> #7c000ff3fcff3fcff3fcff3fcff3fcff +dqcan411 quantize #fc000ff3fcfffffff3fcff3fcff3fcff 1 -> #fc000ff3fcff3fcff3fcff3fcff3fcff +dqcan412 quantize #7e100ff3fcff3fcff3fcff3fcff3fcff 1 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation +dqcan413 quantize #fe000ff3fcff3fcff3ffffffcff3fcff 1 -> #fc000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation + +----- Subtract: +-- Finites: neutral 0 +dqcan502 subtract 0E+6144 #77ffcff3fcff3fcffffcff3fcff3fcff -> #f7ffcff3fcff3fcff3fcff3fcff3fcff +dqcan503 subtract #77ffcff3fcff3fcff3fcff3ffff3fcff 0E+6144 -> #77ffcff3fcff3fcff3fcff3fcff3fcff +-- tiny zero +dqcan504 subtract 0E-6176 #77ffcff3ffff3fcff3fcff3fcff3fcff -> #f7ffcff3fcff3fcff3fcff3fcff3fcff Rounded +dqcan505 subtract #77ffcff3fcff3fcff3fcff3fcff3ffff 0E-6176 -> #77ffcff3fcff3fcff3fcff3fcff3fcff Rounded +-- tiny non zero +dqcan506 subtract -1E-6176 #77ffcff3fcff3fcff3fcff3fcfffffff -> #f7ffcff3fcff3fcff3fcff3fcff3fcff Inexact Rounded +dqcan507 subtract #77ffcffffffffffffffffffffff3fcff -1E-6176 -> #77ffcff3fcff3fcff3fcff3fcff3fcff Inexact Rounded +-- NaN: declets in payload +dqcan511 subtract 0 #7c000ff3fcff3fcff3fcfffffff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff +dqcan512 subtract #7c000ff3fcff3fcfffffff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff +-- NaN: exponent continuation bits [excluding sNaN selector] +dqcan513 subtract 0 #7c400ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff +dqcan514 subtract #7c020ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff +-- sNaN: declets in payload +dqcan515 subtract 0 #7e000ff3fcffffcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation +dqcan516 subtract #7e003ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation +-- sNaN: exponent continuation bits [excluding sNaN selector] +dqcan517 subtract 0 #7e500ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation +dqcan518 subtract #7e0e0ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation +-- Inf: exponent continuation bits +dqcan520 subtract 0 #78010000000000000000000000000000 -> #f8000000000000000000000000000000 +dqcan521 subtract #78680000000000000000000000000000 0 -> #78000000000000000000000000000000 +-- Inf: coefficient continuation bits +dqcan522 subtract 0 #78002000000000000000000000000000 -> #f8000000000000000000000000000000 +dqcan523 subtract #78000000000000000000000000000001 0 -> #78000000000000000000000000000000 +dqcan524 subtract 0 #78000002000000000000000000000000 -> #f8000000000000000000000000000000 +dqcan525 subtract #780000000000f0000000000000000000 0 -> #78000000000000000000000000000000 +dqcan526 subtract 0 #78000000000000000005000000000000 -> #f8000000000000000000000000000000 +dqcan527 subtract #780000000000000000000000000a0000 0 -> #78000000000000000000000000000000 + +----- ToIntegral: +dqcan601 tointegralx #6e080ff3fdff3fcff3fcff3fcff3fcff -> #6e080ff3fcff3fcff3fcff3fcff3fcff +dqcan602 tointegralx #ee080ff3fcff3ffff3fcff3fcff3fcff -> #ee080ff3fcff3fcff3fcff3fcff3fcff +dqcan603 tointegralx #78800000000000000000000000000000 -> #78000000000000000000000000000000 +dqcan604 tointegralx #78020000000000000000000000000000 -> #78000000000000000000000000000000 +dqcan614 tointegralx #7c100ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff +dqcan615 tointegralx #fc000ff3fcff3fcff3fcffffcff3fcff -> #fc000ff3fcff3fcff3fcff3fcff3fcff +dqcan616 tointegralx #7e010ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation +dqcan617 tointegralx #fe000ff3fcff3fcff3fdff3fcff3fcff -> #fc000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation +-- uncanonical 3999, 39.99, 3.99, 0.399, and negatives +dqcan618 tointegralx #22080000000000000000000000000fff -> #22080000000000000000000000000cff +dqcan619 tointegralx #22078000000000000000000000000fff -> #22080000000000000000000000000040 Inexact Rounded +dqcan620 tointegralx #22074000000000000000000000000fff -> #22080000000000000000000000000004 Inexact Rounded +dqcan621 tointegralx #22070000000000000000000000000fff -> #22080000000000000000000000000000 Inexact Rounded +dqcan622 tointegralx #a2080000000000000000000000000fff -> #a2080000000000000000000000000cff +dqcan623 tointegralx #a2078000000000000000000000000fff -> #a2080000000000000000000000000040 Inexact Rounded +dqcan624 tointegralx #a2074000000000000000000000000fff -> #a2080000000000000000000000000004 Inexact Rounded +dqcan625 tointegralx #a2070000000000000000000000000fff -> #a2080000000000000000000000000000 Inexact Rounded + + + diff --git a/Lib/test/decimaltestdata/dqClass.decTest b/Lib/test/decimaltestdata/dqClass.decTest index f341933878..d7e19b3829 100644 --- a/Lib/test/decimaltestdata/dqClass.decTest +++ b/Lib/test/decimaltestdata/dqClass.decTest @@ -1,77 +1,77 @@ -------------------------------------------------------------------------
--- dqClass.decTest -- decQuad Class operations --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- [New 2006.11.27]
-
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
-dqcla001 class 0 -> +Zero
-dqcla002 class 0.00 -> +Zero
-dqcla003 class 0E+5 -> +Zero
-dqcla004 class 1E-6176 -> +Subnormal
-dqcla005 class 0.1E-6143 -> +Subnormal
-dqcla006 class 0.99999999999999999999999999999999E-6143 -> +Subnormal
-dqcla007 class 1.00000000000000000000000000000000E-6143 -> +Normal
-dqcla008 class 1E-6143 -> +Normal
-dqcla009 class 1E-100 -> +Normal
-dqcla010 class 1E-10 -> +Normal
-dqcla012 class 1E-1 -> +Normal
-dqcla013 class 1 -> +Normal
-dqcla014 class 2.50 -> +Normal
-dqcla015 class 100.100 -> +Normal
-dqcla016 class 1E+30 -> +Normal
-dqcla017 class 1E+6144 -> +Normal
-dqcla018 class 9.99999999999999999999999999999999E+6144 -> +Normal
-dqcla019 class Inf -> +Infinity
-
-dqcla021 class -0 -> -Zero
-dqcla022 class -0.00 -> -Zero
-dqcla023 class -0E+5 -> -Zero
-dqcla024 class -1E-6176 -> -Subnormal
-dqcla025 class -0.1E-6143 -> -Subnormal
-dqcla026 class -0.99999999999999999999999999999999E-6143 -> -Subnormal
-dqcla027 class -1.00000000000000000000000000000000E-6143 -> -Normal
-dqcla028 class -1E-6143 -> -Normal
-dqcla029 class -1E-100 -> -Normal
-dqcla030 class -1E-10 -> -Normal
-dqcla032 class -1E-1 -> -Normal
-dqcla033 class -1 -> -Normal
-dqcla034 class -2.50 -> -Normal
-dqcla035 class -100.100 -> -Normal
-dqcla036 class -1E+30 -> -Normal
-dqcla037 class -1E+6144 -> -Normal
-dqcla0614 class -9.99999999999999999999999999999999E+6144 -> -Normal
-dqcla039 class -Inf -> -Infinity
-
-dqcla041 class NaN -> NaN
-dqcla042 class -NaN -> NaN
-dqcla043 class +NaN12345 -> NaN
-dqcla044 class sNaN -> sNaN
-dqcla045 class -sNaN -> sNaN
-dqcla046 class +sNaN12345 -> sNaN
-
-
-
+------------------------------------------------------------------------ +-- dqClass.decTest -- decQuad Class operations -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- [New 2006.11.27] + +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +dqcla001 class 0 -> +Zero +dqcla002 class 0.00 -> +Zero +dqcla003 class 0E+5 -> +Zero +dqcla004 class 1E-6176 -> +Subnormal +dqcla005 class 0.1E-6143 -> +Subnormal +dqcla006 class 0.99999999999999999999999999999999E-6143 -> +Subnormal +dqcla007 class 1.00000000000000000000000000000000E-6143 -> +Normal +dqcla008 class 1E-6143 -> +Normal +dqcla009 class 1E-100 -> +Normal +dqcla010 class 1E-10 -> +Normal +dqcla012 class 1E-1 -> +Normal +dqcla013 class 1 -> +Normal +dqcla014 class 2.50 -> +Normal +dqcla015 class 100.100 -> +Normal +dqcla016 class 1E+30 -> +Normal +dqcla017 class 1E+6144 -> +Normal +dqcla018 class 9.99999999999999999999999999999999E+6144 -> +Normal +dqcla019 class Inf -> +Infinity + +dqcla021 class -0 -> -Zero +dqcla022 class -0.00 -> -Zero +dqcla023 class -0E+5 -> -Zero +dqcla024 class -1E-6176 -> -Subnormal +dqcla025 class -0.1E-6143 -> -Subnormal +dqcla026 class -0.99999999999999999999999999999999E-6143 -> -Subnormal +dqcla027 class -1.00000000000000000000000000000000E-6143 -> -Normal +dqcla028 class -1E-6143 -> -Normal +dqcla029 class -1E-100 -> -Normal +dqcla030 class -1E-10 -> -Normal +dqcla032 class -1E-1 -> -Normal +dqcla033 class -1 -> -Normal +dqcla034 class -2.50 -> -Normal +dqcla035 class -100.100 -> -Normal +dqcla036 class -1E+30 -> -Normal +dqcla037 class -1E+6144 -> -Normal +dqcla0614 class -9.99999999999999999999999999999999E+6144 -> -Normal +dqcla039 class -Inf -> -Infinity + +dqcla041 class NaN -> NaN +dqcla042 class -NaN -> NaN +dqcla043 class +NaN12345 -> NaN +dqcla044 class sNaN -> sNaN +dqcla045 class -sNaN -> sNaN +dqcla046 class +sNaN12345 -> sNaN + + + diff --git a/Lib/test/decimaltestdata/dqCompare.decTest b/Lib/test/decimaltestdata/dqCompare.decTest index a617ad110a..b7b5ee6b8e 100644 --- a/Lib/test/decimaltestdata/dqCompare.decTest +++ b/Lib/test/decimaltestdata/dqCompare.decTest @@ -1,753 +1,753 @@ -------------------------------------------------------------------------
--- dqCompare.decTest -- decQuad comparison that allows quiet NaNs --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- Note that we cannot assume add/subtract tests cover paths adequately,
--- here, because the code might be quite different (comparison cannot
--- overflow or underflow, so actual subtractions are not necessary).
-
--- All operands and results are decQuads.
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
--- sanity checks
-dqcom001 compare -2 -2 -> 0
-dqcom002 compare -2 -1 -> -1
-dqcom003 compare -2 0 -> -1
-dqcom004 compare -2 1 -> -1
-dqcom005 compare -2 2 -> -1
-dqcom006 compare -1 -2 -> 1
-dqcom007 compare -1 -1 -> 0
-dqcom008 compare -1 0 -> -1
-dqcom009 compare -1 1 -> -1
-dqcom010 compare -1 2 -> -1
-dqcom011 compare 0 -2 -> 1
-dqcom012 compare 0 -1 -> 1
-dqcom013 compare 0 0 -> 0
-dqcom014 compare 0 1 -> -1
-dqcom015 compare 0 2 -> -1
-dqcom016 compare 1 -2 -> 1
-dqcom017 compare 1 -1 -> 1
-dqcom018 compare 1 0 -> 1
-dqcom019 compare 1 1 -> 0
-dqcom020 compare 1 2 -> -1
-dqcom021 compare 2 -2 -> 1
-dqcom022 compare 2 -1 -> 1
-dqcom023 compare 2 0 -> 1
-dqcom025 compare 2 1 -> 1
-dqcom026 compare 2 2 -> 0
-
-dqcom031 compare -20 -20 -> 0
-dqcom032 compare -20 -10 -> -1
-dqcom033 compare -20 00 -> -1
-dqcom034 compare -20 10 -> -1
-dqcom035 compare -20 20 -> -1
-dqcom036 compare -10 -20 -> 1
-dqcom037 compare -10 -10 -> 0
-dqcom038 compare -10 00 -> -1
-dqcom039 compare -10 10 -> -1
-dqcom040 compare -10 20 -> -1
-dqcom041 compare 00 -20 -> 1
-dqcom042 compare 00 -10 -> 1
-dqcom043 compare 00 00 -> 0
-dqcom044 compare 00 10 -> -1
-dqcom045 compare 00 20 -> -1
-dqcom046 compare 10 -20 -> 1
-dqcom047 compare 10 -10 -> 1
-dqcom048 compare 10 00 -> 1
-dqcom049 compare 10 10 -> 0
-dqcom050 compare 10 20 -> -1
-dqcom051 compare 20 -20 -> 1
-dqcom052 compare 20 -10 -> 1
-dqcom053 compare 20 00 -> 1
-dqcom055 compare 20 10 -> 1
-dqcom056 compare 20 20 -> 0
-
-dqcom061 compare -2.0 -2.0 -> 0
-dqcom062 compare -2.0 -1.0 -> -1
-dqcom063 compare -2.0 0.0 -> -1
-dqcom064 compare -2.0 1.0 -> -1
-dqcom065 compare -2.0 2.0 -> -1
-dqcom066 compare -1.0 -2.0 -> 1
-dqcom067 compare -1.0 -1.0 -> 0
-dqcom068 compare -1.0 0.0 -> -1
-dqcom069 compare -1.0 1.0 -> -1
-dqcom070 compare -1.0 2.0 -> -1
-dqcom071 compare 0.0 -2.0 -> 1
-dqcom072 compare 0.0 -1.0 -> 1
-dqcom073 compare 0.0 0.0 -> 0
-dqcom074 compare 0.0 1.0 -> -1
-dqcom075 compare 0.0 2.0 -> -1
-dqcom076 compare 1.0 -2.0 -> 1
-dqcom077 compare 1.0 -1.0 -> 1
-dqcom078 compare 1.0 0.0 -> 1
-dqcom079 compare 1.0 1.0 -> 0
-dqcom080 compare 1.0 2.0 -> -1
-dqcom081 compare 2.0 -2.0 -> 1
-dqcom082 compare 2.0 -1.0 -> 1
-dqcom083 compare 2.0 0.0 -> 1
-dqcom085 compare 2.0 1.0 -> 1
-dqcom086 compare 2.0 2.0 -> 0
-
--- now some cases which might overflow if subtract were used
-dqcom090 compare 9.999999999999999999999999999999999E+6144 9.999999999999999999999999999999999E+6144 -> 0
-dqcom091 compare -9.999999999999999999999999999999999E+6144 9.999999999999999999999999999999999E+6144 -> -1
-dqcom092 compare 9.999999999999999999999999999999999E+6144 -9.999999999999999999999999999999999E+6144 -> 1
-dqcom093 compare -9.999999999999999999999999999999999E+6144 -9.999999999999999999999999999999999E+6144 -> 0
-
--- some differing length/exponent cases
-dqcom100 compare 7.0 7.0 -> 0
-dqcom101 compare 7.0 7 -> 0
-dqcom102 compare 7 7.0 -> 0
-dqcom103 compare 7E+0 7.0 -> 0
-dqcom104 compare 70E-1 7.0 -> 0
-dqcom105 compare 0.7E+1 7 -> 0
-dqcom106 compare 70E-1 7 -> 0
-dqcom107 compare 7.0 7E+0 -> 0
-dqcom108 compare 7.0 70E-1 -> 0
-dqcom109 compare 7 0.7E+1 -> 0
-dqcom110 compare 7 70E-1 -> 0
-
-dqcom120 compare 8.0 7.0 -> 1
-dqcom121 compare 8.0 7 -> 1
-dqcom122 compare 8 7.0 -> 1
-dqcom123 compare 8E+0 7.0 -> 1
-dqcom124 compare 80E-1 7.0 -> 1
-dqcom125 compare 0.8E+1 7 -> 1
-dqcom126 compare 80E-1 7 -> 1
-dqcom127 compare 8.0 7E+0 -> 1
-dqcom128 compare 8.0 70E-1 -> 1
-dqcom129 compare 8 0.7E+1 -> 1
-dqcom130 compare 8 70E-1 -> 1
-
-dqcom140 compare 8.0 9.0 -> -1
-dqcom141 compare 8.0 9 -> -1
-dqcom142 compare 8 9.0 -> -1
-dqcom143 compare 8E+0 9.0 -> -1
-dqcom144 compare 80E-1 9.0 -> -1
-dqcom145 compare 0.8E+1 9 -> -1
-dqcom146 compare 80E-1 9 -> -1
-dqcom147 compare 8.0 9E+0 -> -1
-dqcom148 compare 8.0 90E-1 -> -1
-dqcom149 compare 8 0.9E+1 -> -1
-dqcom150 compare 8 90E-1 -> -1
-
--- and again, with sign changes -+ ..
-dqcom200 compare -7.0 7.0 -> -1
-dqcom201 compare -7.0 7 -> -1
-dqcom202 compare -7 7.0 -> -1
-dqcom203 compare -7E+0 7.0 -> -1
-dqcom204 compare -70E-1 7.0 -> -1
-dqcom205 compare -0.7E+1 7 -> -1
-dqcom206 compare -70E-1 7 -> -1
-dqcom207 compare -7.0 7E+0 -> -1
-dqcom208 compare -7.0 70E-1 -> -1
-dqcom209 compare -7 0.7E+1 -> -1
-dqcom210 compare -7 70E-1 -> -1
-
-dqcom220 compare -8.0 7.0 -> -1
-dqcom221 compare -8.0 7 -> -1
-dqcom222 compare -8 7.0 -> -1
-dqcom223 compare -8E+0 7.0 -> -1
-dqcom224 compare -80E-1 7.0 -> -1
-dqcom225 compare -0.8E+1 7 -> -1
-dqcom226 compare -80E-1 7 -> -1
-dqcom227 compare -8.0 7E+0 -> -1
-dqcom228 compare -8.0 70E-1 -> -1
-dqcom229 compare -8 0.7E+1 -> -1
-dqcom230 compare -8 70E-1 -> -1
-
-dqcom240 compare -8.0 9.0 -> -1
-dqcom241 compare -8.0 9 -> -1
-dqcom242 compare -8 9.0 -> -1
-dqcom243 compare -8E+0 9.0 -> -1
-dqcom244 compare -80E-1 9.0 -> -1
-dqcom245 compare -0.8E+1 9 -> -1
-dqcom246 compare -80E-1 9 -> -1
-dqcom247 compare -8.0 9E+0 -> -1
-dqcom248 compare -8.0 90E-1 -> -1
-dqcom249 compare -8 0.9E+1 -> -1
-dqcom250 compare -8 90E-1 -> -1
-
--- and again, with sign changes +- ..
-dqcom300 compare 7.0 -7.0 -> 1
-dqcom301 compare 7.0 -7 -> 1
-dqcom302 compare 7 -7.0 -> 1
-dqcom303 compare 7E+0 -7.0 -> 1
-dqcom304 compare 70E-1 -7.0 -> 1
-dqcom305 compare .7E+1 -7 -> 1
-dqcom306 compare 70E-1 -7 -> 1
-dqcom307 compare 7.0 -7E+0 -> 1
-dqcom308 compare 7.0 -70E-1 -> 1
-dqcom309 compare 7 -.7E+1 -> 1
-dqcom310 compare 7 -70E-1 -> 1
-
-dqcom320 compare 8.0 -7.0 -> 1
-dqcom321 compare 8.0 -7 -> 1
-dqcom322 compare 8 -7.0 -> 1
-dqcom323 compare 8E+0 -7.0 -> 1
-dqcom324 compare 80E-1 -7.0 -> 1
-dqcom325 compare .8E+1 -7 -> 1
-dqcom326 compare 80E-1 -7 -> 1
-dqcom327 compare 8.0 -7E+0 -> 1
-dqcom328 compare 8.0 -70E-1 -> 1
-dqcom329 compare 8 -.7E+1 -> 1
-dqcom330 compare 8 -70E-1 -> 1
-
-dqcom340 compare 8.0 -9.0 -> 1
-dqcom341 compare 8.0 -9 -> 1
-dqcom342 compare 8 -9.0 -> 1
-dqcom343 compare 8E+0 -9.0 -> 1
-dqcom344 compare 80E-1 -9.0 -> 1
-dqcom345 compare .8E+1 -9 -> 1
-dqcom346 compare 80E-1 -9 -> 1
-dqcom347 compare 8.0 -9E+0 -> 1
-dqcom348 compare 8.0 -90E-1 -> 1
-dqcom349 compare 8 -.9E+1 -> 1
-dqcom350 compare 8 -90E-1 -> 1
-
--- and again, with sign changes -- ..
-dqcom400 compare -7.0 -7.0 -> 0
-dqcom401 compare -7.0 -7 -> 0
-dqcom402 compare -7 -7.0 -> 0
-dqcom403 compare -7E+0 -7.0 -> 0
-dqcom404 compare -70E-1 -7.0 -> 0
-dqcom405 compare -.7E+1 -7 -> 0
-dqcom406 compare -70E-1 -7 -> 0
-dqcom407 compare -7.0 -7E+0 -> 0
-dqcom408 compare -7.0 -70E-1 -> 0
-dqcom409 compare -7 -.7E+1 -> 0
-dqcom410 compare -7 -70E-1 -> 0
-
-dqcom420 compare -8.0 -7.0 -> -1
-dqcom421 compare -8.0 -7 -> -1
-dqcom422 compare -8 -7.0 -> -1
-dqcom423 compare -8E+0 -7.0 -> -1
-dqcom424 compare -80E-1 -7.0 -> -1
-dqcom425 compare -.8E+1 -7 -> -1
-dqcom426 compare -80E-1 -7 -> -1
-dqcom427 compare -8.0 -7E+0 -> -1
-dqcom428 compare -8.0 -70E-1 -> -1
-dqcom429 compare -8 -.7E+1 -> -1
-dqcom430 compare -8 -70E-1 -> -1
-
-dqcom440 compare -8.0 -9.0 -> 1
-dqcom441 compare -8.0 -9 -> 1
-dqcom442 compare -8 -9.0 -> 1
-dqcom443 compare -8E+0 -9.0 -> 1
-dqcom444 compare -80E-1 -9.0 -> 1
-dqcom445 compare -.8E+1 -9 -> 1
-dqcom446 compare -80E-1 -9 -> 1
-dqcom447 compare -8.0 -9E+0 -> 1
-dqcom448 compare -8.0 -90E-1 -> 1
-dqcom449 compare -8 -.9E+1 -> 1
-dqcom450 compare -8 -90E-1 -> 1
-
--- misalignment traps for little-endian
-dqcom451 compare 1.0 0.1 -> 1
-dqcom452 compare 0.1 1.0 -> -1
-dqcom453 compare 10.0 0.1 -> 1
-dqcom454 compare 0.1 10.0 -> -1
-dqcom455 compare 100 1.0 -> 1
-dqcom456 compare 1.0 100 -> -1
-dqcom457 compare 1000 10.0 -> 1
-dqcom458 compare 10.0 1000 -> -1
-dqcom459 compare 10000 100.0 -> 1
-dqcom460 compare 100.0 10000 -> -1
-dqcom461 compare 100000 1000.0 -> 1
-dqcom462 compare 1000.0 100000 -> -1
-dqcom463 compare 1000000 10000.0 -> 1
-dqcom464 compare 10000.0 1000000 -> -1
-
--- testcases that subtract to lots of zeros at boundaries [pgr]
-dqcom473 compare 123.9999999999999999994560000000000E-89 123.999999999999999999456E-89 -> 0
-dqcom474 compare 123.999999999999999999456000000000E+89 123.999999999999999999456E+89 -> 0
-dqcom475 compare 123.99999999999999999945600000000E-89 123.999999999999999999456E-89 -> 0
-dqcom476 compare 123.9999999999999999994560000000E+89 123.999999999999999999456E+89 -> 0
-dqcom477 compare 123.999999999999999999456000000E-89 123.999999999999999999456E-89 -> 0
-dqcom478 compare 123.99999999999999999945600000E+89 123.999999999999999999456E+89 -> 0
-dqcom479 compare 123.9999999999999999994560000E-89 123.999999999999999999456E-89 -> 0
-dqcom480 compare 123.999999999999999999456000E+89 123.999999999999999999456E+89 -> 0
-dqcom481 compare 123.99999999999999999945600E-89 123.999999999999999999456E-89 -> 0
-dqcom482 compare 123.9999999999999999994560E+89 123.999999999999999999456E+89 -> 0
-dqcom483 compare 123.999999999999999999456E-89 123.999999999999999999456E-89 -> 0
-dqcom487 compare 123.999999999999999999456E+89 123.9999999999999999994560000000000E+89 -> 0
-dqcom488 compare 123.999999999999999999456E-89 123.999999999999999999456000000000E-89 -> 0
-dqcom489 compare 123.999999999999999999456E+89 123.99999999999999999945600000000E+89 -> 0
-dqcom490 compare 123.999999999999999999456E-89 123.9999999999999999994560000000E-89 -> 0
-dqcom491 compare 123.999999999999999999456E+89 123.999999999999999999456000000E+89 -> 0
-dqcom492 compare 123.999999999999999999456E-89 123.99999999999999999945600000E-89 -> 0
-dqcom493 compare 123.999999999999999999456E+89 123.9999999999999999994560000E+89 -> 0
-dqcom494 compare 123.999999999999999999456E-89 123.999999999999999999456000E-89 -> 0
-dqcom495 compare 123.999999999999999999456E+89 123.99999999999999999945600E+89 -> 0
-dqcom496 compare 123.999999999999999999456E-89 123.9999999999999999994560E-89 -> 0
-dqcom497 compare 123.999999999999999999456E+89 123.999999999999999999456E+89 -> 0
-
--- wide-ranging, around precision; signs equal
-dqcom500 compare 1 1E-15 -> 1
-dqcom501 compare 1 1E-14 -> 1
-dqcom502 compare 1 1E-13 -> 1
-dqcom503 compare 1 1E-12 -> 1
-dqcom504 compare 1 1E-11 -> 1
-dqcom505 compare 1 1E-10 -> 1
-dqcom506 compare 1 1E-9 -> 1
-dqcom507 compare 1 1E-8 -> 1
-dqcom508 compare 1 1E-7 -> 1
-dqcom509 compare 1 1E-6 -> 1
-dqcom510 compare 1 1E-5 -> 1
-dqcom511 compare 1 1E-4 -> 1
-dqcom512 compare 1 1E-3 -> 1
-dqcom513 compare 1 1E-2 -> 1
-dqcom514 compare 1 1E-1 -> 1
-dqcom515 compare 1 1E-0 -> 0
-dqcom516 compare 1 1E+1 -> -1
-dqcom517 compare 1 1E+2 -> -1
-dqcom518 compare 1 1E+3 -> -1
-dqcom519 compare 1 1E+4 -> -1
-dqcom521 compare 1 1E+5 -> -1
-dqcom522 compare 1 1E+6 -> -1
-dqcom523 compare 1 1E+7 -> -1
-dqcom524 compare 1 1E+8 -> -1
-dqcom525 compare 1 1E+9 -> -1
-dqcom526 compare 1 1E+10 -> -1
-dqcom527 compare 1 1E+11 -> -1
-dqcom528 compare 1 1E+12 -> -1
-dqcom529 compare 1 1E+13 -> -1
-dqcom530 compare 1 1E+14 -> -1
-dqcom531 compare 1 1E+15 -> -1
--- LR swap
-dqcom540 compare 1E-15 1 -> -1
-dqcom541 compare 1E-14 1 -> -1
-dqcom542 compare 1E-13 1 -> -1
-dqcom543 compare 1E-12 1 -> -1
-dqcom544 compare 1E-11 1 -> -1
-dqcom545 compare 1E-10 1 -> -1
-dqcom546 compare 1E-9 1 -> -1
-dqcom547 compare 1E-8 1 -> -1
-dqcom548 compare 1E-7 1 -> -1
-dqcom549 compare 1E-6 1 -> -1
-dqcom550 compare 1E-5 1 -> -1
-dqcom551 compare 1E-4 1 -> -1
-dqcom552 compare 1E-3 1 -> -1
-dqcom553 compare 1E-2 1 -> -1
-dqcom554 compare 1E-1 1 -> -1
-dqcom555 compare 1E-0 1 -> 0
-dqcom556 compare 1E+1 1 -> 1
-dqcom557 compare 1E+2 1 -> 1
-dqcom558 compare 1E+3 1 -> 1
-dqcom559 compare 1E+4 1 -> 1
-dqcom561 compare 1E+5 1 -> 1
-dqcom562 compare 1E+6 1 -> 1
-dqcom563 compare 1E+7 1 -> 1
-dqcom564 compare 1E+8 1 -> 1
-dqcom565 compare 1E+9 1 -> 1
-dqcom566 compare 1E+10 1 -> 1
-dqcom567 compare 1E+11 1 -> 1
-dqcom568 compare 1E+12 1 -> 1
-dqcom569 compare 1E+13 1 -> 1
-dqcom570 compare 1E+14 1 -> 1
-dqcom571 compare 1E+15 1 -> 1
--- similar with a useful coefficient, one side only
-dqcom580 compare 0.000000987654321 1E-15 -> 1
-dqcom581 compare 0.000000987654321 1E-14 -> 1
-dqcom582 compare 0.000000987654321 1E-13 -> 1
-dqcom583 compare 0.000000987654321 1E-12 -> 1
-dqcom584 compare 0.000000987654321 1E-11 -> 1
-dqcom585 compare 0.000000987654321 1E-10 -> 1
-dqcom586 compare 0.000000987654321 1E-9 -> 1
-dqcom587 compare 0.000000987654321 1E-8 -> 1
-dqcom588 compare 0.000000987654321 1E-7 -> 1
-dqcom589 compare 0.000000987654321 1E-6 -> -1
-dqcom590 compare 0.000000987654321 1E-5 -> -1
-dqcom591 compare 0.000000987654321 1E-4 -> -1
-dqcom592 compare 0.000000987654321 1E-3 -> -1
-dqcom593 compare 0.000000987654321 1E-2 -> -1
-dqcom594 compare 0.000000987654321 1E-1 -> -1
-dqcom595 compare 0.000000987654321 1E-0 -> -1
-dqcom596 compare 0.000000987654321 1E+1 -> -1
-dqcom597 compare 0.000000987654321 1E+2 -> -1
-dqcom598 compare 0.000000987654321 1E+3 -> -1
-dqcom599 compare 0.000000987654321 1E+4 -> -1
-
--- check some unit-y traps
-dqcom600 compare 12 12.2345 -> -1
-dqcom601 compare 12.0 12.2345 -> -1
-dqcom602 compare 12.00 12.2345 -> -1
-dqcom603 compare 12.000 12.2345 -> -1
-dqcom604 compare 12.0000 12.2345 -> -1
-dqcom605 compare 12.00000 12.2345 -> -1
-dqcom606 compare 12.000000 12.2345 -> -1
-dqcom607 compare 12.0000000 12.2345 -> -1
-dqcom608 compare 12.00000000 12.2345 -> -1
-dqcom609 compare 12.000000000 12.2345 -> -1
-dqcom610 compare 12.1234 12 -> 1
-dqcom611 compare 12.1234 12.0 -> 1
-dqcom612 compare 12.1234 12.00 -> 1
-dqcom613 compare 12.1234 12.000 -> 1
-dqcom614 compare 12.1234 12.0000 -> 1
-dqcom615 compare 12.1234 12.00000 -> 1
-dqcom616 compare 12.1234 12.000000 -> 1
-dqcom617 compare 12.1234 12.0000000 -> 1
-dqcom618 compare 12.1234 12.00000000 -> 1
-dqcom619 compare 12.1234 12.000000000 -> 1
-dqcom620 compare -12 -12.2345 -> 1
-dqcom621 compare -12.0 -12.2345 -> 1
-dqcom622 compare -12.00 -12.2345 -> 1
-dqcom623 compare -12.000 -12.2345 -> 1
-dqcom624 compare -12.0000 -12.2345 -> 1
-dqcom625 compare -12.00000 -12.2345 -> 1
-dqcom626 compare -12.000000 -12.2345 -> 1
-dqcom627 compare -12.0000000 -12.2345 -> 1
-dqcom628 compare -12.00000000 -12.2345 -> 1
-dqcom629 compare -12.000000000 -12.2345 -> 1
-dqcom630 compare -12.1234 -12 -> -1
-dqcom631 compare -12.1234 -12.0 -> -1
-dqcom632 compare -12.1234 -12.00 -> -1
-dqcom633 compare -12.1234 -12.000 -> -1
-dqcom634 compare -12.1234 -12.0000 -> -1
-dqcom635 compare -12.1234 -12.00000 -> -1
-dqcom636 compare -12.1234 -12.000000 -> -1
-dqcom637 compare -12.1234 -12.0000000 -> -1
-dqcom638 compare -12.1234 -12.00000000 -> -1
-dqcom639 compare -12.1234 -12.000000000 -> -1
-
--- extended zeros
-dqcom640 compare 0 0 -> 0
-dqcom641 compare 0 -0 -> 0
-dqcom642 compare 0 -0.0 -> 0
-dqcom643 compare 0 0.0 -> 0
-dqcom644 compare -0 0 -> 0
-dqcom645 compare -0 -0 -> 0
-dqcom646 compare -0 -0.0 -> 0
-dqcom647 compare -0 0.0 -> 0
-dqcom648 compare 0.0 0 -> 0
-dqcom649 compare 0.0 -0 -> 0
-dqcom650 compare 0.0 -0.0 -> 0
-dqcom651 compare 0.0 0.0 -> 0
-dqcom652 compare -0.0 0 -> 0
-dqcom653 compare -0.0 -0 -> 0
-dqcom654 compare -0.0 -0.0 -> 0
-dqcom655 compare -0.0 0.0 -> 0
-
-dqcom656 compare -0E1 0.0 -> 0
-dqcom657 compare -0E2 0.0 -> 0
-dqcom658 compare 0E1 0.0 -> 0
-dqcom659 compare 0E2 0.0 -> 0
-dqcom660 compare -0E1 0 -> 0
-dqcom661 compare -0E2 0 -> 0
-dqcom662 compare 0E1 0 -> 0
-dqcom663 compare 0E2 0 -> 0
-dqcom664 compare -0E1 -0E1 -> 0
-dqcom665 compare -0E2 -0E1 -> 0
-dqcom666 compare 0E1 -0E1 -> 0
-dqcom667 compare 0E2 -0E1 -> 0
-dqcom668 compare -0E1 -0E2 -> 0
-dqcom669 compare -0E2 -0E2 -> 0
-dqcom670 compare 0E1 -0E2 -> 0
-dqcom671 compare 0E2 -0E2 -> 0
-dqcom672 compare -0E1 0E1 -> 0
-dqcom673 compare -0E2 0E1 -> 0
-dqcom674 compare 0E1 0E1 -> 0
-dqcom675 compare 0E2 0E1 -> 0
-dqcom676 compare -0E1 0E2 -> 0
-dqcom677 compare -0E2 0E2 -> 0
-dqcom678 compare 0E1 0E2 -> 0
-dqcom679 compare 0E2 0E2 -> 0
-
--- trailing zeros; unit-y
-dqcom680 compare 12 12 -> 0
-dqcom681 compare 12 12.0 -> 0
-dqcom682 compare 12 12.00 -> 0
-dqcom683 compare 12 12.000 -> 0
-dqcom684 compare 12 12.0000 -> 0
-dqcom685 compare 12 12.00000 -> 0
-dqcom686 compare 12 12.000000 -> 0
-dqcom687 compare 12 12.0000000 -> 0
-dqcom688 compare 12 12.00000000 -> 0
-dqcom689 compare 12 12.000000000 -> 0
-dqcom690 compare 12 12 -> 0
-dqcom691 compare 12.0 12 -> 0
-dqcom692 compare 12.00 12 -> 0
-dqcom693 compare 12.000 12 -> 0
-dqcom694 compare 12.0000 12 -> 0
-dqcom695 compare 12.00000 12 -> 0
-dqcom696 compare 12.000000 12 -> 0
-dqcom697 compare 12.0000000 12 -> 0
-dqcom698 compare 12.00000000 12 -> 0
-dqcom699 compare 12.000000000 12 -> 0
-
--- first, second, & last digit
-dqcom700 compare 1234567899999999999999999990123456 1234567899999999999999999990123455 -> 1
-dqcom701 compare 1234567899999999999999999990123456 1234567899999999999999999990123456 -> 0
-dqcom702 compare 1234567899999999999999999990123456 1234567899999999999999999990123457 -> -1
-dqcom703 compare 1234567899999999999999999990123456 0234567899999999999999999990123456 -> 1
-dqcom704 compare 1234567899999999999999999990123456 1234567899999999999999999990123456 -> 0
-dqcom705 compare 1234567899999999999999999990123456 2234567899999999999999999990123456 -> -1
-dqcom706 compare 1134567899999999999999999990123456 1034567899999999999999999990123456 -> 1
-dqcom707 compare 1134567899999999999999999990123456 1134567899999999999999999990123456 -> 0
-dqcom708 compare 1134567899999999999999999990123456 1234567899999999999999999990123456 -> -1
-
--- miscellaneous
-dqcom721 compare 12345678000 1 -> 1
-dqcom722 compare 1 12345678000 -> -1
-dqcom723 compare 1234567800 1 -> 1
-dqcom724 compare 1 1234567800 -> -1
-dqcom725 compare 1234567890 1 -> 1
-dqcom726 compare 1 1234567890 -> -1
-dqcom727 compare 1234567891 1 -> 1
-dqcom728 compare 1 1234567891 -> -1
-dqcom729 compare 12345678901 1 -> 1
-dqcom730 compare 1 12345678901 -> -1
-dqcom731 compare 1234567896 1 -> 1
-dqcom732 compare 1 1234567896 -> -1
-
--- residue cases at lower precision
-dqcom740 compare 1 0.9999999 -> 1
-dqcom741 compare 1 0.999999 -> 1
-dqcom742 compare 1 0.99999 -> 1
-dqcom743 compare 1 1.0000 -> 0
-dqcom744 compare 1 1.00001 -> -1
-dqcom745 compare 1 1.000001 -> -1
-dqcom746 compare 1 1.0000001 -> -1
-dqcom750 compare 0.9999999 1 -> -1
-dqcom751 compare 0.999999 1 -> -1
-dqcom752 compare 0.99999 1 -> -1
-dqcom753 compare 1.0000 1 -> 0
-dqcom754 compare 1.00001 1 -> 1
-dqcom755 compare 1.000001 1 -> 1
-dqcom756 compare 1.0000001 1 -> 1
-
--- Specials
-dqcom780 compare Inf -Inf -> 1
-dqcom781 compare Inf -1000 -> 1
-dqcom782 compare Inf -1 -> 1
-dqcom783 compare Inf -0 -> 1
-dqcom784 compare Inf 0 -> 1
-dqcom785 compare Inf 1 -> 1
-dqcom786 compare Inf 1000 -> 1
-dqcom787 compare Inf Inf -> 0
-dqcom788 compare -1000 Inf -> -1
-dqcom789 compare -Inf Inf -> -1
-dqcom790 compare -1 Inf -> -1
-dqcom791 compare -0 Inf -> -1
-dqcom792 compare 0 Inf -> -1
-dqcom793 compare 1 Inf -> -1
-dqcom794 compare 1000 Inf -> -1
-dqcom795 compare Inf Inf -> 0
-
-dqcom800 compare -Inf -Inf -> 0
-dqcom801 compare -Inf -1000 -> -1
-dqcom802 compare -Inf -1 -> -1
-dqcom803 compare -Inf -0 -> -1
-dqcom804 compare -Inf 0 -> -1
-dqcom805 compare -Inf 1 -> -1
-dqcom806 compare -Inf 1000 -> -1
-dqcom807 compare -Inf Inf -> -1
-dqcom808 compare -Inf -Inf -> 0
-dqcom809 compare -1000 -Inf -> 1
-dqcom810 compare -1 -Inf -> 1
-dqcom811 compare -0 -Inf -> 1
-dqcom812 compare 0 -Inf -> 1
-dqcom813 compare 1 -Inf -> 1
-dqcom814 compare 1000 -Inf -> 1
-dqcom815 compare Inf -Inf -> 1
-
-dqcom821 compare NaN -Inf -> NaN
-dqcom822 compare NaN -1000 -> NaN
-dqcom823 compare NaN -1 -> NaN
-dqcom824 compare NaN -0 -> NaN
-dqcom825 compare NaN 0 -> NaN
-dqcom826 compare NaN 1 -> NaN
-dqcom827 compare NaN 1000 -> NaN
-dqcom828 compare NaN Inf -> NaN
-dqcom829 compare NaN NaN -> NaN
-dqcom830 compare -Inf NaN -> NaN
-dqcom831 compare -1000 NaN -> NaN
-dqcom832 compare -1 NaN -> NaN
-dqcom833 compare -0 NaN -> NaN
-dqcom834 compare 0 NaN -> NaN
-dqcom835 compare 1 NaN -> NaN
-dqcom836 compare 1000 NaN -> NaN
-dqcom837 compare Inf NaN -> NaN
-dqcom838 compare -NaN -NaN -> -NaN
-dqcom839 compare +NaN -NaN -> NaN
-dqcom840 compare -NaN +NaN -> -NaN
-
-dqcom841 compare sNaN -Inf -> NaN Invalid_operation
-dqcom842 compare sNaN -1000 -> NaN Invalid_operation
-dqcom843 compare sNaN -1 -> NaN Invalid_operation
-dqcom844 compare sNaN -0 -> NaN Invalid_operation
-dqcom845 compare sNaN 0 -> NaN Invalid_operation
-dqcom846 compare sNaN 1 -> NaN Invalid_operation
-dqcom847 compare sNaN 1000 -> NaN Invalid_operation
-dqcom848 compare sNaN NaN -> NaN Invalid_operation
-dqcom849 compare sNaN sNaN -> NaN Invalid_operation
-dqcom850 compare NaN sNaN -> NaN Invalid_operation
-dqcom851 compare -Inf sNaN -> NaN Invalid_operation
-dqcom852 compare -1000 sNaN -> NaN Invalid_operation
-dqcom853 compare -1 sNaN -> NaN Invalid_operation
-dqcom854 compare -0 sNaN -> NaN Invalid_operation
-dqcom855 compare 0 sNaN -> NaN Invalid_operation
-dqcom856 compare 1 sNaN -> NaN Invalid_operation
-dqcom857 compare 1000 sNaN -> NaN Invalid_operation
-dqcom858 compare Inf sNaN -> NaN Invalid_operation
-dqcom859 compare NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-dqcom860 compare NaN9 -Inf -> NaN9
-dqcom861 compare NaN8 999 -> NaN8
-dqcom862 compare NaN77 Inf -> NaN77
-dqcom863 compare -NaN67 NaN5 -> -NaN67
-dqcom864 compare -Inf -NaN4 -> -NaN4
-dqcom865 compare -999 -NaN33 -> -NaN33
-dqcom866 compare Inf NaN2 -> NaN2
-dqcom867 compare -NaN41 -NaN42 -> -NaN41
-dqcom868 compare +NaN41 -NaN42 -> NaN41
-dqcom869 compare -NaN41 +NaN42 -> -NaN41
-dqcom870 compare +NaN41 +NaN42 -> NaN41
-
-dqcom871 compare -sNaN99 -Inf -> -NaN99 Invalid_operation
-dqcom872 compare sNaN98 -11 -> NaN98 Invalid_operation
-dqcom873 compare sNaN97 NaN -> NaN97 Invalid_operation
-dqcom874 compare sNaN16 sNaN94 -> NaN16 Invalid_operation
-dqcom875 compare NaN85 sNaN83 -> NaN83 Invalid_operation
-dqcom876 compare -Inf sNaN92 -> NaN92 Invalid_operation
-dqcom877 compare 088 sNaN81 -> NaN81 Invalid_operation
-dqcom878 compare Inf sNaN90 -> NaN90 Invalid_operation
-dqcom879 compare NaN -sNaN89 -> -NaN89 Invalid_operation
-
--- wide range
-dqcom880 compare +1.23456789012345E-0 9E+6144 -> -1
-dqcom881 compare 9E+6144 +1.23456789012345E-0 -> 1
-dqcom882 compare +0.100 9E-6143 -> 1
-dqcom883 compare 9E-6143 +0.100 -> -1
-dqcom885 compare -1.23456789012345E-0 9E+6144 -> -1
-dqcom886 compare 9E+6144 -1.23456789012345E-0 -> 1
-dqcom887 compare -0.100 9E-6143 -> -1
-dqcom888 compare 9E-6143 -0.100 -> 1
-
--- signs
-dqcom901 compare 1e+77 1e+11 -> 1
-dqcom902 compare 1e+77 -1e+11 -> 1
-dqcom903 compare -1e+77 1e+11 -> -1
-dqcom904 compare -1e+77 -1e+11 -> -1
-dqcom905 compare 1e-77 1e-11 -> -1
-dqcom906 compare 1e-77 -1e-11 -> 1
-dqcom907 compare -1e-77 1e-11 -> -1
-dqcom908 compare -1e-77 -1e-11 -> 1
-
--- full alignment range, both ways
-dqcomp1001 compare 1 1.000000000000000000000000000000000 -> 0
-dqcomp1002 compare 1 1.00000000000000000000000000000000 -> 0
-dqcomp1003 compare 1 1.0000000000000000000000000000000 -> 0
-dqcomp1004 compare 1 1.000000000000000000000000000000 -> 0
-dqcomp1005 compare 1 1.00000000000000000000000000000 -> 0
-dqcomp1006 compare 1 1.0000000000000000000000000000 -> 0
-dqcomp1007 compare 1 1.000000000000000000000000000 -> 0
-dqcomp1008 compare 1 1.00000000000000000000000000 -> 0
-dqcomp1009 compare 1 1.0000000000000000000000000 -> 0
-dqcomp1010 compare 1 1.000000000000000000000000 -> 0
-dqcomp1011 compare 1 1.00000000000000000000000 -> 0
-dqcomp1012 compare 1 1.0000000000000000000000 -> 0
-dqcomp1013 compare 1 1.000000000000000000000 -> 0
-dqcomp1014 compare 1 1.00000000000000000000 -> 0
-dqcomp1015 compare 1 1.0000000000000000000 -> 0
-dqcomp1016 compare 1 1.000000000000000000 -> 0
-dqcomp1017 compare 1 1.00000000000000000 -> 0
-dqcomp1018 compare 1 1.0000000000000000 -> 0
-dqcomp1019 compare 1 1.000000000000000 -> 0
-dqcomp1020 compare 1 1.00000000000000 -> 0
-dqcomp1021 compare 1 1.0000000000000 -> 0
-dqcomp1022 compare 1 1.000000000000 -> 0
-dqcomp1023 compare 1 1.00000000000 -> 0
-dqcomp1024 compare 1 1.0000000000 -> 0
-dqcomp1025 compare 1 1.000000000 -> 0
-dqcomp1026 compare 1 1.00000000 -> 0
-dqcomp1027 compare 1 1.0000000 -> 0
-dqcomp1028 compare 1 1.000000 -> 0
-dqcomp1029 compare 1 1.00000 -> 0
-dqcomp1030 compare 1 1.0000 -> 0
-dqcomp1031 compare 1 1.000 -> 0
-dqcomp1032 compare 1 1.00 -> 0
-dqcomp1033 compare 1 1.0 -> 0
-
-dqcomp1041 compare 1.000000000000000000000000000000000 1 -> 0
-dqcomp1042 compare 1.00000000000000000000000000000000 1 -> 0
-dqcomp1043 compare 1.0000000000000000000000000000000 1 -> 0
-dqcomp1044 compare 1.000000000000000000000000000000 1 -> 0
-dqcomp1045 compare 1.00000000000000000000000000000 1 -> 0
-dqcomp1046 compare 1.0000000000000000000000000000 1 -> 0
-dqcomp1047 compare 1.000000000000000000000000000 1 -> 0
-dqcomp1048 compare 1.00000000000000000000000000 1 -> 0
-dqcomp1049 compare 1.0000000000000000000000000 1 -> 0
-dqcomp1050 compare 1.000000000000000000000000 1 -> 0
-dqcomp1051 compare 1.00000000000000000000000 1 -> 0
-dqcomp1052 compare 1.0000000000000000000000 1 -> 0
-dqcomp1053 compare 1.000000000000000000000 1 -> 0
-dqcomp1054 compare 1.00000000000000000000 1 -> 0
-dqcomp1055 compare 1.0000000000000000000 1 -> 0
-dqcomp1056 compare 1.000000000000000000 1 -> 0
-dqcomp1057 compare 1.00000000000000000 1 -> 0
-dqcomp1058 compare 1.0000000000000000 1 -> 0
-dqcomp1059 compare 1.000000000000000 1 -> 0
-dqcomp1060 compare 1.00000000000000 1 -> 0
-dqcomp1061 compare 1.0000000000000 1 -> 0
-dqcomp1062 compare 1.000000000000 1 -> 0
-dqcomp1063 compare 1.00000000000 1 -> 0
-dqcomp1064 compare 1.0000000000 1 -> 0
-dqcomp1065 compare 1.000000000 1 -> 0
-dqcomp1066 compare 1.00000000 1 -> 0
-dqcomp1067 compare 1.0000000 1 -> 0
-dqcomp1068 compare 1.000000 1 -> 0
-dqcomp1069 compare 1.00000 1 -> 0
-dqcomp1070 compare 1.0000 1 -> 0
-dqcomp1071 compare 1.000 1 -> 0
-dqcomp1072 compare 1.00 1 -> 0
-dqcomp1073 compare 1.0 1 -> 0
-
--- check MSD always detected non-zero
-dqcomp1080 compare 0 0.000000000000000000000000000000000 -> 0
-dqcomp1081 compare 0 1.000000000000000000000000000000000 -> -1
-dqcomp1082 compare 0 2.000000000000000000000000000000000 -> -1
-dqcomp1083 compare 0 3.000000000000000000000000000000000 -> -1
-dqcomp1084 compare 0 4.000000000000000000000000000000000 -> -1
-dqcomp1085 compare 0 5.000000000000000000000000000000000 -> -1
-dqcomp1086 compare 0 6.000000000000000000000000000000000 -> -1
-dqcomp1087 compare 0 7.000000000000000000000000000000000 -> -1
-dqcomp1088 compare 0 8.000000000000000000000000000000000 -> -1
-dqcomp1089 compare 0 9.000000000000000000000000000000000 -> -1
-dqcomp1090 compare 0.000000000000000000000000000000000 0 -> 0
-dqcomp1091 compare 1.000000000000000000000000000000000 0 -> 1
-dqcomp1092 compare 2.000000000000000000000000000000000 0 -> 1
-dqcomp1093 compare 3.000000000000000000000000000000000 0 -> 1
-dqcomp1094 compare 4.000000000000000000000000000000000 0 -> 1
-dqcomp1095 compare 5.000000000000000000000000000000000 0 -> 1
-dqcomp1096 compare 6.000000000000000000000000000000000 0 -> 1
-dqcomp1097 compare 7.000000000000000000000000000000000 0 -> 1
-dqcomp1098 compare 8.000000000000000000000000000000000 0 -> 1
-dqcomp1099 compare 9.000000000000000000000000000000000 0 -> 1
-
--- Null tests
-dqcom990 compare 10 # -> NaN Invalid_operation
-dqcom991 compare # 10 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- dqCompare.decTest -- decQuad comparison that allows quiet NaNs -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- Note that we cannot assume add/subtract tests cover paths adequately, +-- here, because the code might be quite different (comparison cannot +-- overflow or underflow, so actual subtractions are not necessary). + +-- All operands and results are decQuads. +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +-- sanity checks +dqcom001 compare -2 -2 -> 0 +dqcom002 compare -2 -1 -> -1 +dqcom003 compare -2 0 -> -1 +dqcom004 compare -2 1 -> -1 +dqcom005 compare -2 2 -> -1 +dqcom006 compare -1 -2 -> 1 +dqcom007 compare -1 -1 -> 0 +dqcom008 compare -1 0 -> -1 +dqcom009 compare -1 1 -> -1 +dqcom010 compare -1 2 -> -1 +dqcom011 compare 0 -2 -> 1 +dqcom012 compare 0 -1 -> 1 +dqcom013 compare 0 0 -> 0 +dqcom014 compare 0 1 -> -1 +dqcom015 compare 0 2 -> -1 +dqcom016 compare 1 -2 -> 1 +dqcom017 compare 1 -1 -> 1 +dqcom018 compare 1 0 -> 1 +dqcom019 compare 1 1 -> 0 +dqcom020 compare 1 2 -> -1 +dqcom021 compare 2 -2 -> 1 +dqcom022 compare 2 -1 -> 1 +dqcom023 compare 2 0 -> 1 +dqcom025 compare 2 1 -> 1 +dqcom026 compare 2 2 -> 0 + +dqcom031 compare -20 -20 -> 0 +dqcom032 compare -20 -10 -> -1 +dqcom033 compare -20 00 -> -1 +dqcom034 compare -20 10 -> -1 +dqcom035 compare -20 20 -> -1 +dqcom036 compare -10 -20 -> 1 +dqcom037 compare -10 -10 -> 0 +dqcom038 compare -10 00 -> -1 +dqcom039 compare -10 10 -> -1 +dqcom040 compare -10 20 -> -1 +dqcom041 compare 00 -20 -> 1 +dqcom042 compare 00 -10 -> 1 +dqcom043 compare 00 00 -> 0 +dqcom044 compare 00 10 -> -1 +dqcom045 compare 00 20 -> -1 +dqcom046 compare 10 -20 -> 1 +dqcom047 compare 10 -10 -> 1 +dqcom048 compare 10 00 -> 1 +dqcom049 compare 10 10 -> 0 +dqcom050 compare 10 20 -> -1 +dqcom051 compare 20 -20 -> 1 +dqcom052 compare 20 -10 -> 1 +dqcom053 compare 20 00 -> 1 +dqcom055 compare 20 10 -> 1 +dqcom056 compare 20 20 -> 0 + +dqcom061 compare -2.0 -2.0 -> 0 +dqcom062 compare -2.0 -1.0 -> -1 +dqcom063 compare -2.0 0.0 -> -1 +dqcom064 compare -2.0 1.0 -> -1 +dqcom065 compare -2.0 2.0 -> -1 +dqcom066 compare -1.0 -2.0 -> 1 +dqcom067 compare -1.0 -1.0 -> 0 +dqcom068 compare -1.0 0.0 -> -1 +dqcom069 compare -1.0 1.0 -> -1 +dqcom070 compare -1.0 2.0 -> -1 +dqcom071 compare 0.0 -2.0 -> 1 +dqcom072 compare 0.0 -1.0 -> 1 +dqcom073 compare 0.0 0.0 -> 0 +dqcom074 compare 0.0 1.0 -> -1 +dqcom075 compare 0.0 2.0 -> -1 +dqcom076 compare 1.0 -2.0 -> 1 +dqcom077 compare 1.0 -1.0 -> 1 +dqcom078 compare 1.0 0.0 -> 1 +dqcom079 compare 1.0 1.0 -> 0 +dqcom080 compare 1.0 2.0 -> -1 +dqcom081 compare 2.0 -2.0 -> 1 +dqcom082 compare 2.0 -1.0 -> 1 +dqcom083 compare 2.0 0.0 -> 1 +dqcom085 compare 2.0 1.0 -> 1 +dqcom086 compare 2.0 2.0 -> 0 + +-- now some cases which might overflow if subtract were used +dqcom090 compare 9.999999999999999999999999999999999E+6144 9.999999999999999999999999999999999E+6144 -> 0 +dqcom091 compare -9.999999999999999999999999999999999E+6144 9.999999999999999999999999999999999E+6144 -> -1 +dqcom092 compare 9.999999999999999999999999999999999E+6144 -9.999999999999999999999999999999999E+6144 -> 1 +dqcom093 compare -9.999999999999999999999999999999999E+6144 -9.999999999999999999999999999999999E+6144 -> 0 + +-- some differing length/exponent cases +dqcom100 compare 7.0 7.0 -> 0 +dqcom101 compare 7.0 7 -> 0 +dqcom102 compare 7 7.0 -> 0 +dqcom103 compare 7E+0 7.0 -> 0 +dqcom104 compare 70E-1 7.0 -> 0 +dqcom105 compare 0.7E+1 7 -> 0 +dqcom106 compare 70E-1 7 -> 0 +dqcom107 compare 7.0 7E+0 -> 0 +dqcom108 compare 7.0 70E-1 -> 0 +dqcom109 compare 7 0.7E+1 -> 0 +dqcom110 compare 7 70E-1 -> 0 + +dqcom120 compare 8.0 7.0 -> 1 +dqcom121 compare 8.0 7 -> 1 +dqcom122 compare 8 7.0 -> 1 +dqcom123 compare 8E+0 7.0 -> 1 +dqcom124 compare 80E-1 7.0 -> 1 +dqcom125 compare 0.8E+1 7 -> 1 +dqcom126 compare 80E-1 7 -> 1 +dqcom127 compare 8.0 7E+0 -> 1 +dqcom128 compare 8.0 70E-1 -> 1 +dqcom129 compare 8 0.7E+1 -> 1 +dqcom130 compare 8 70E-1 -> 1 + +dqcom140 compare 8.0 9.0 -> -1 +dqcom141 compare 8.0 9 -> -1 +dqcom142 compare 8 9.0 -> -1 +dqcom143 compare 8E+0 9.0 -> -1 +dqcom144 compare 80E-1 9.0 -> -1 +dqcom145 compare 0.8E+1 9 -> -1 +dqcom146 compare 80E-1 9 -> -1 +dqcom147 compare 8.0 9E+0 -> -1 +dqcom148 compare 8.0 90E-1 -> -1 +dqcom149 compare 8 0.9E+1 -> -1 +dqcom150 compare 8 90E-1 -> -1 + +-- and again, with sign changes -+ .. +dqcom200 compare -7.0 7.0 -> -1 +dqcom201 compare -7.0 7 -> -1 +dqcom202 compare -7 7.0 -> -1 +dqcom203 compare -7E+0 7.0 -> -1 +dqcom204 compare -70E-1 7.0 -> -1 +dqcom205 compare -0.7E+1 7 -> -1 +dqcom206 compare -70E-1 7 -> -1 +dqcom207 compare -7.0 7E+0 -> -1 +dqcom208 compare -7.0 70E-1 -> -1 +dqcom209 compare -7 0.7E+1 -> -1 +dqcom210 compare -7 70E-1 -> -1 + +dqcom220 compare -8.0 7.0 -> -1 +dqcom221 compare -8.0 7 -> -1 +dqcom222 compare -8 7.0 -> -1 +dqcom223 compare -8E+0 7.0 -> -1 +dqcom224 compare -80E-1 7.0 -> -1 +dqcom225 compare -0.8E+1 7 -> -1 +dqcom226 compare -80E-1 7 -> -1 +dqcom227 compare -8.0 7E+0 -> -1 +dqcom228 compare -8.0 70E-1 -> -1 +dqcom229 compare -8 0.7E+1 -> -1 +dqcom230 compare -8 70E-1 -> -1 + +dqcom240 compare -8.0 9.0 -> -1 +dqcom241 compare -8.0 9 -> -1 +dqcom242 compare -8 9.0 -> -1 +dqcom243 compare -8E+0 9.0 -> -1 +dqcom244 compare -80E-1 9.0 -> -1 +dqcom245 compare -0.8E+1 9 -> -1 +dqcom246 compare -80E-1 9 -> -1 +dqcom247 compare -8.0 9E+0 -> -1 +dqcom248 compare -8.0 90E-1 -> -1 +dqcom249 compare -8 0.9E+1 -> -1 +dqcom250 compare -8 90E-1 -> -1 + +-- and again, with sign changes +- .. +dqcom300 compare 7.0 -7.0 -> 1 +dqcom301 compare 7.0 -7 -> 1 +dqcom302 compare 7 -7.0 -> 1 +dqcom303 compare 7E+0 -7.0 -> 1 +dqcom304 compare 70E-1 -7.0 -> 1 +dqcom305 compare .7E+1 -7 -> 1 +dqcom306 compare 70E-1 -7 -> 1 +dqcom307 compare 7.0 -7E+0 -> 1 +dqcom308 compare 7.0 -70E-1 -> 1 +dqcom309 compare 7 -.7E+1 -> 1 +dqcom310 compare 7 -70E-1 -> 1 + +dqcom320 compare 8.0 -7.0 -> 1 +dqcom321 compare 8.0 -7 -> 1 +dqcom322 compare 8 -7.0 -> 1 +dqcom323 compare 8E+0 -7.0 -> 1 +dqcom324 compare 80E-1 -7.0 -> 1 +dqcom325 compare .8E+1 -7 -> 1 +dqcom326 compare 80E-1 -7 -> 1 +dqcom327 compare 8.0 -7E+0 -> 1 +dqcom328 compare 8.0 -70E-1 -> 1 +dqcom329 compare 8 -.7E+1 -> 1 +dqcom330 compare 8 -70E-1 -> 1 + +dqcom340 compare 8.0 -9.0 -> 1 +dqcom341 compare 8.0 -9 -> 1 +dqcom342 compare 8 -9.0 -> 1 +dqcom343 compare 8E+0 -9.0 -> 1 +dqcom344 compare 80E-1 -9.0 -> 1 +dqcom345 compare .8E+1 -9 -> 1 +dqcom346 compare 80E-1 -9 -> 1 +dqcom347 compare 8.0 -9E+0 -> 1 +dqcom348 compare 8.0 -90E-1 -> 1 +dqcom349 compare 8 -.9E+1 -> 1 +dqcom350 compare 8 -90E-1 -> 1 + +-- and again, with sign changes -- .. +dqcom400 compare -7.0 -7.0 -> 0 +dqcom401 compare -7.0 -7 -> 0 +dqcom402 compare -7 -7.0 -> 0 +dqcom403 compare -7E+0 -7.0 -> 0 +dqcom404 compare -70E-1 -7.0 -> 0 +dqcom405 compare -.7E+1 -7 -> 0 +dqcom406 compare -70E-1 -7 -> 0 +dqcom407 compare -7.0 -7E+0 -> 0 +dqcom408 compare -7.0 -70E-1 -> 0 +dqcom409 compare -7 -.7E+1 -> 0 +dqcom410 compare -7 -70E-1 -> 0 + +dqcom420 compare -8.0 -7.0 -> -1 +dqcom421 compare -8.0 -7 -> -1 +dqcom422 compare -8 -7.0 -> -1 +dqcom423 compare -8E+0 -7.0 -> -1 +dqcom424 compare -80E-1 -7.0 -> -1 +dqcom425 compare -.8E+1 -7 -> -1 +dqcom426 compare -80E-1 -7 -> -1 +dqcom427 compare -8.0 -7E+0 -> -1 +dqcom428 compare -8.0 -70E-1 -> -1 +dqcom429 compare -8 -.7E+1 -> -1 +dqcom430 compare -8 -70E-1 -> -1 + +dqcom440 compare -8.0 -9.0 -> 1 +dqcom441 compare -8.0 -9 -> 1 +dqcom442 compare -8 -9.0 -> 1 +dqcom443 compare -8E+0 -9.0 -> 1 +dqcom444 compare -80E-1 -9.0 -> 1 +dqcom445 compare -.8E+1 -9 -> 1 +dqcom446 compare -80E-1 -9 -> 1 +dqcom447 compare -8.0 -9E+0 -> 1 +dqcom448 compare -8.0 -90E-1 -> 1 +dqcom449 compare -8 -.9E+1 -> 1 +dqcom450 compare -8 -90E-1 -> 1 + +-- misalignment traps for little-endian +dqcom451 compare 1.0 0.1 -> 1 +dqcom452 compare 0.1 1.0 -> -1 +dqcom453 compare 10.0 0.1 -> 1 +dqcom454 compare 0.1 10.0 -> -1 +dqcom455 compare 100 1.0 -> 1 +dqcom456 compare 1.0 100 -> -1 +dqcom457 compare 1000 10.0 -> 1 +dqcom458 compare 10.0 1000 -> -1 +dqcom459 compare 10000 100.0 -> 1 +dqcom460 compare 100.0 10000 -> -1 +dqcom461 compare 100000 1000.0 -> 1 +dqcom462 compare 1000.0 100000 -> -1 +dqcom463 compare 1000000 10000.0 -> 1 +dqcom464 compare 10000.0 1000000 -> -1 + +-- testcases that subtract to lots of zeros at boundaries [pgr] +dqcom473 compare 123.9999999999999999994560000000000E-89 123.999999999999999999456E-89 -> 0 +dqcom474 compare 123.999999999999999999456000000000E+89 123.999999999999999999456E+89 -> 0 +dqcom475 compare 123.99999999999999999945600000000E-89 123.999999999999999999456E-89 -> 0 +dqcom476 compare 123.9999999999999999994560000000E+89 123.999999999999999999456E+89 -> 0 +dqcom477 compare 123.999999999999999999456000000E-89 123.999999999999999999456E-89 -> 0 +dqcom478 compare 123.99999999999999999945600000E+89 123.999999999999999999456E+89 -> 0 +dqcom479 compare 123.9999999999999999994560000E-89 123.999999999999999999456E-89 -> 0 +dqcom480 compare 123.999999999999999999456000E+89 123.999999999999999999456E+89 -> 0 +dqcom481 compare 123.99999999999999999945600E-89 123.999999999999999999456E-89 -> 0 +dqcom482 compare 123.9999999999999999994560E+89 123.999999999999999999456E+89 -> 0 +dqcom483 compare 123.999999999999999999456E-89 123.999999999999999999456E-89 -> 0 +dqcom487 compare 123.999999999999999999456E+89 123.9999999999999999994560000000000E+89 -> 0 +dqcom488 compare 123.999999999999999999456E-89 123.999999999999999999456000000000E-89 -> 0 +dqcom489 compare 123.999999999999999999456E+89 123.99999999999999999945600000000E+89 -> 0 +dqcom490 compare 123.999999999999999999456E-89 123.9999999999999999994560000000E-89 -> 0 +dqcom491 compare 123.999999999999999999456E+89 123.999999999999999999456000000E+89 -> 0 +dqcom492 compare 123.999999999999999999456E-89 123.99999999999999999945600000E-89 -> 0 +dqcom493 compare 123.999999999999999999456E+89 123.9999999999999999994560000E+89 -> 0 +dqcom494 compare 123.999999999999999999456E-89 123.999999999999999999456000E-89 -> 0 +dqcom495 compare 123.999999999999999999456E+89 123.99999999999999999945600E+89 -> 0 +dqcom496 compare 123.999999999999999999456E-89 123.9999999999999999994560E-89 -> 0 +dqcom497 compare 123.999999999999999999456E+89 123.999999999999999999456E+89 -> 0 + +-- wide-ranging, around precision; signs equal +dqcom500 compare 1 1E-15 -> 1 +dqcom501 compare 1 1E-14 -> 1 +dqcom502 compare 1 1E-13 -> 1 +dqcom503 compare 1 1E-12 -> 1 +dqcom504 compare 1 1E-11 -> 1 +dqcom505 compare 1 1E-10 -> 1 +dqcom506 compare 1 1E-9 -> 1 +dqcom507 compare 1 1E-8 -> 1 +dqcom508 compare 1 1E-7 -> 1 +dqcom509 compare 1 1E-6 -> 1 +dqcom510 compare 1 1E-5 -> 1 +dqcom511 compare 1 1E-4 -> 1 +dqcom512 compare 1 1E-3 -> 1 +dqcom513 compare 1 1E-2 -> 1 +dqcom514 compare 1 1E-1 -> 1 +dqcom515 compare 1 1E-0 -> 0 +dqcom516 compare 1 1E+1 -> -1 +dqcom517 compare 1 1E+2 -> -1 +dqcom518 compare 1 1E+3 -> -1 +dqcom519 compare 1 1E+4 -> -1 +dqcom521 compare 1 1E+5 -> -1 +dqcom522 compare 1 1E+6 -> -1 +dqcom523 compare 1 1E+7 -> -1 +dqcom524 compare 1 1E+8 -> -1 +dqcom525 compare 1 1E+9 -> -1 +dqcom526 compare 1 1E+10 -> -1 +dqcom527 compare 1 1E+11 -> -1 +dqcom528 compare 1 1E+12 -> -1 +dqcom529 compare 1 1E+13 -> -1 +dqcom530 compare 1 1E+14 -> -1 +dqcom531 compare 1 1E+15 -> -1 +-- LR swap +dqcom540 compare 1E-15 1 -> -1 +dqcom541 compare 1E-14 1 -> -1 +dqcom542 compare 1E-13 1 -> -1 +dqcom543 compare 1E-12 1 -> -1 +dqcom544 compare 1E-11 1 -> -1 +dqcom545 compare 1E-10 1 -> -1 +dqcom546 compare 1E-9 1 -> -1 +dqcom547 compare 1E-8 1 -> -1 +dqcom548 compare 1E-7 1 -> -1 +dqcom549 compare 1E-6 1 -> -1 +dqcom550 compare 1E-5 1 -> -1 +dqcom551 compare 1E-4 1 -> -1 +dqcom552 compare 1E-3 1 -> -1 +dqcom553 compare 1E-2 1 -> -1 +dqcom554 compare 1E-1 1 -> -1 +dqcom555 compare 1E-0 1 -> 0 +dqcom556 compare 1E+1 1 -> 1 +dqcom557 compare 1E+2 1 -> 1 +dqcom558 compare 1E+3 1 -> 1 +dqcom559 compare 1E+4 1 -> 1 +dqcom561 compare 1E+5 1 -> 1 +dqcom562 compare 1E+6 1 -> 1 +dqcom563 compare 1E+7 1 -> 1 +dqcom564 compare 1E+8 1 -> 1 +dqcom565 compare 1E+9 1 -> 1 +dqcom566 compare 1E+10 1 -> 1 +dqcom567 compare 1E+11 1 -> 1 +dqcom568 compare 1E+12 1 -> 1 +dqcom569 compare 1E+13 1 -> 1 +dqcom570 compare 1E+14 1 -> 1 +dqcom571 compare 1E+15 1 -> 1 +-- similar with a useful coefficient, one side only +dqcom580 compare 0.000000987654321 1E-15 -> 1 +dqcom581 compare 0.000000987654321 1E-14 -> 1 +dqcom582 compare 0.000000987654321 1E-13 -> 1 +dqcom583 compare 0.000000987654321 1E-12 -> 1 +dqcom584 compare 0.000000987654321 1E-11 -> 1 +dqcom585 compare 0.000000987654321 1E-10 -> 1 +dqcom586 compare 0.000000987654321 1E-9 -> 1 +dqcom587 compare 0.000000987654321 1E-8 -> 1 +dqcom588 compare 0.000000987654321 1E-7 -> 1 +dqcom589 compare 0.000000987654321 1E-6 -> -1 +dqcom590 compare 0.000000987654321 1E-5 -> -1 +dqcom591 compare 0.000000987654321 1E-4 -> -1 +dqcom592 compare 0.000000987654321 1E-3 -> -1 +dqcom593 compare 0.000000987654321 1E-2 -> -1 +dqcom594 compare 0.000000987654321 1E-1 -> -1 +dqcom595 compare 0.000000987654321 1E-0 -> -1 +dqcom596 compare 0.000000987654321 1E+1 -> -1 +dqcom597 compare 0.000000987654321 1E+2 -> -1 +dqcom598 compare 0.000000987654321 1E+3 -> -1 +dqcom599 compare 0.000000987654321 1E+4 -> -1 + +-- check some unit-y traps +dqcom600 compare 12 12.2345 -> -1 +dqcom601 compare 12.0 12.2345 -> -1 +dqcom602 compare 12.00 12.2345 -> -1 +dqcom603 compare 12.000 12.2345 -> -1 +dqcom604 compare 12.0000 12.2345 -> -1 +dqcom605 compare 12.00000 12.2345 -> -1 +dqcom606 compare 12.000000 12.2345 -> -1 +dqcom607 compare 12.0000000 12.2345 -> -1 +dqcom608 compare 12.00000000 12.2345 -> -1 +dqcom609 compare 12.000000000 12.2345 -> -1 +dqcom610 compare 12.1234 12 -> 1 +dqcom611 compare 12.1234 12.0 -> 1 +dqcom612 compare 12.1234 12.00 -> 1 +dqcom613 compare 12.1234 12.000 -> 1 +dqcom614 compare 12.1234 12.0000 -> 1 +dqcom615 compare 12.1234 12.00000 -> 1 +dqcom616 compare 12.1234 12.000000 -> 1 +dqcom617 compare 12.1234 12.0000000 -> 1 +dqcom618 compare 12.1234 12.00000000 -> 1 +dqcom619 compare 12.1234 12.000000000 -> 1 +dqcom620 compare -12 -12.2345 -> 1 +dqcom621 compare -12.0 -12.2345 -> 1 +dqcom622 compare -12.00 -12.2345 -> 1 +dqcom623 compare -12.000 -12.2345 -> 1 +dqcom624 compare -12.0000 -12.2345 -> 1 +dqcom625 compare -12.00000 -12.2345 -> 1 +dqcom626 compare -12.000000 -12.2345 -> 1 +dqcom627 compare -12.0000000 -12.2345 -> 1 +dqcom628 compare -12.00000000 -12.2345 -> 1 +dqcom629 compare -12.000000000 -12.2345 -> 1 +dqcom630 compare -12.1234 -12 -> -1 +dqcom631 compare -12.1234 -12.0 -> -1 +dqcom632 compare -12.1234 -12.00 -> -1 +dqcom633 compare -12.1234 -12.000 -> -1 +dqcom634 compare -12.1234 -12.0000 -> -1 +dqcom635 compare -12.1234 -12.00000 -> -1 +dqcom636 compare -12.1234 -12.000000 -> -1 +dqcom637 compare -12.1234 -12.0000000 -> -1 +dqcom638 compare -12.1234 -12.00000000 -> -1 +dqcom639 compare -12.1234 -12.000000000 -> -1 + +-- extended zeros +dqcom640 compare 0 0 -> 0 +dqcom641 compare 0 -0 -> 0 +dqcom642 compare 0 -0.0 -> 0 +dqcom643 compare 0 0.0 -> 0 +dqcom644 compare -0 0 -> 0 +dqcom645 compare -0 -0 -> 0 +dqcom646 compare -0 -0.0 -> 0 +dqcom647 compare -0 0.0 -> 0 +dqcom648 compare 0.0 0 -> 0 +dqcom649 compare 0.0 -0 -> 0 +dqcom650 compare 0.0 -0.0 -> 0 +dqcom651 compare 0.0 0.0 -> 0 +dqcom652 compare -0.0 0 -> 0 +dqcom653 compare -0.0 -0 -> 0 +dqcom654 compare -0.0 -0.0 -> 0 +dqcom655 compare -0.0 0.0 -> 0 + +dqcom656 compare -0E1 0.0 -> 0 +dqcom657 compare -0E2 0.0 -> 0 +dqcom658 compare 0E1 0.0 -> 0 +dqcom659 compare 0E2 0.0 -> 0 +dqcom660 compare -0E1 0 -> 0 +dqcom661 compare -0E2 0 -> 0 +dqcom662 compare 0E1 0 -> 0 +dqcom663 compare 0E2 0 -> 0 +dqcom664 compare -0E1 -0E1 -> 0 +dqcom665 compare -0E2 -0E1 -> 0 +dqcom666 compare 0E1 -0E1 -> 0 +dqcom667 compare 0E2 -0E1 -> 0 +dqcom668 compare -0E1 -0E2 -> 0 +dqcom669 compare -0E2 -0E2 -> 0 +dqcom670 compare 0E1 -0E2 -> 0 +dqcom671 compare 0E2 -0E2 -> 0 +dqcom672 compare -0E1 0E1 -> 0 +dqcom673 compare -0E2 0E1 -> 0 +dqcom674 compare 0E1 0E1 -> 0 +dqcom675 compare 0E2 0E1 -> 0 +dqcom676 compare -0E1 0E2 -> 0 +dqcom677 compare -0E2 0E2 -> 0 +dqcom678 compare 0E1 0E2 -> 0 +dqcom679 compare 0E2 0E2 -> 0 + +-- trailing zeros; unit-y +dqcom680 compare 12 12 -> 0 +dqcom681 compare 12 12.0 -> 0 +dqcom682 compare 12 12.00 -> 0 +dqcom683 compare 12 12.000 -> 0 +dqcom684 compare 12 12.0000 -> 0 +dqcom685 compare 12 12.00000 -> 0 +dqcom686 compare 12 12.000000 -> 0 +dqcom687 compare 12 12.0000000 -> 0 +dqcom688 compare 12 12.00000000 -> 0 +dqcom689 compare 12 12.000000000 -> 0 +dqcom690 compare 12 12 -> 0 +dqcom691 compare 12.0 12 -> 0 +dqcom692 compare 12.00 12 -> 0 +dqcom693 compare 12.000 12 -> 0 +dqcom694 compare 12.0000 12 -> 0 +dqcom695 compare 12.00000 12 -> 0 +dqcom696 compare 12.000000 12 -> 0 +dqcom697 compare 12.0000000 12 -> 0 +dqcom698 compare 12.00000000 12 -> 0 +dqcom699 compare 12.000000000 12 -> 0 + +-- first, second, & last digit +dqcom700 compare 1234567899999999999999999990123456 1234567899999999999999999990123455 -> 1 +dqcom701 compare 1234567899999999999999999990123456 1234567899999999999999999990123456 -> 0 +dqcom702 compare 1234567899999999999999999990123456 1234567899999999999999999990123457 -> -1 +dqcom703 compare 1234567899999999999999999990123456 0234567899999999999999999990123456 -> 1 +dqcom704 compare 1234567899999999999999999990123456 1234567899999999999999999990123456 -> 0 +dqcom705 compare 1234567899999999999999999990123456 2234567899999999999999999990123456 -> -1 +dqcom706 compare 1134567899999999999999999990123456 1034567899999999999999999990123456 -> 1 +dqcom707 compare 1134567899999999999999999990123456 1134567899999999999999999990123456 -> 0 +dqcom708 compare 1134567899999999999999999990123456 1234567899999999999999999990123456 -> -1 + +-- miscellaneous +dqcom721 compare 12345678000 1 -> 1 +dqcom722 compare 1 12345678000 -> -1 +dqcom723 compare 1234567800 1 -> 1 +dqcom724 compare 1 1234567800 -> -1 +dqcom725 compare 1234567890 1 -> 1 +dqcom726 compare 1 1234567890 -> -1 +dqcom727 compare 1234567891 1 -> 1 +dqcom728 compare 1 1234567891 -> -1 +dqcom729 compare 12345678901 1 -> 1 +dqcom730 compare 1 12345678901 -> -1 +dqcom731 compare 1234567896 1 -> 1 +dqcom732 compare 1 1234567896 -> -1 + +-- residue cases at lower precision +dqcom740 compare 1 0.9999999 -> 1 +dqcom741 compare 1 0.999999 -> 1 +dqcom742 compare 1 0.99999 -> 1 +dqcom743 compare 1 1.0000 -> 0 +dqcom744 compare 1 1.00001 -> -1 +dqcom745 compare 1 1.000001 -> -1 +dqcom746 compare 1 1.0000001 -> -1 +dqcom750 compare 0.9999999 1 -> -1 +dqcom751 compare 0.999999 1 -> -1 +dqcom752 compare 0.99999 1 -> -1 +dqcom753 compare 1.0000 1 -> 0 +dqcom754 compare 1.00001 1 -> 1 +dqcom755 compare 1.000001 1 -> 1 +dqcom756 compare 1.0000001 1 -> 1 + +-- Specials +dqcom780 compare Inf -Inf -> 1 +dqcom781 compare Inf -1000 -> 1 +dqcom782 compare Inf -1 -> 1 +dqcom783 compare Inf -0 -> 1 +dqcom784 compare Inf 0 -> 1 +dqcom785 compare Inf 1 -> 1 +dqcom786 compare Inf 1000 -> 1 +dqcom787 compare Inf Inf -> 0 +dqcom788 compare -1000 Inf -> -1 +dqcom789 compare -Inf Inf -> -1 +dqcom790 compare -1 Inf -> -1 +dqcom791 compare -0 Inf -> -1 +dqcom792 compare 0 Inf -> -1 +dqcom793 compare 1 Inf -> -1 +dqcom794 compare 1000 Inf -> -1 +dqcom795 compare Inf Inf -> 0 + +dqcom800 compare -Inf -Inf -> 0 +dqcom801 compare -Inf -1000 -> -1 +dqcom802 compare -Inf -1 -> -1 +dqcom803 compare -Inf -0 -> -1 +dqcom804 compare -Inf 0 -> -1 +dqcom805 compare -Inf 1 -> -1 +dqcom806 compare -Inf 1000 -> -1 +dqcom807 compare -Inf Inf -> -1 +dqcom808 compare -Inf -Inf -> 0 +dqcom809 compare -1000 -Inf -> 1 +dqcom810 compare -1 -Inf -> 1 +dqcom811 compare -0 -Inf -> 1 +dqcom812 compare 0 -Inf -> 1 +dqcom813 compare 1 -Inf -> 1 +dqcom814 compare 1000 -Inf -> 1 +dqcom815 compare Inf -Inf -> 1 + +dqcom821 compare NaN -Inf -> NaN +dqcom822 compare NaN -1000 -> NaN +dqcom823 compare NaN -1 -> NaN +dqcom824 compare NaN -0 -> NaN +dqcom825 compare NaN 0 -> NaN +dqcom826 compare NaN 1 -> NaN +dqcom827 compare NaN 1000 -> NaN +dqcom828 compare NaN Inf -> NaN +dqcom829 compare NaN NaN -> NaN +dqcom830 compare -Inf NaN -> NaN +dqcom831 compare -1000 NaN -> NaN +dqcom832 compare -1 NaN -> NaN +dqcom833 compare -0 NaN -> NaN +dqcom834 compare 0 NaN -> NaN +dqcom835 compare 1 NaN -> NaN +dqcom836 compare 1000 NaN -> NaN +dqcom837 compare Inf NaN -> NaN +dqcom838 compare -NaN -NaN -> -NaN +dqcom839 compare +NaN -NaN -> NaN +dqcom840 compare -NaN +NaN -> -NaN + +dqcom841 compare sNaN -Inf -> NaN Invalid_operation +dqcom842 compare sNaN -1000 -> NaN Invalid_operation +dqcom843 compare sNaN -1 -> NaN Invalid_operation +dqcom844 compare sNaN -0 -> NaN Invalid_operation +dqcom845 compare sNaN 0 -> NaN Invalid_operation +dqcom846 compare sNaN 1 -> NaN Invalid_operation +dqcom847 compare sNaN 1000 -> NaN Invalid_operation +dqcom848 compare sNaN NaN -> NaN Invalid_operation +dqcom849 compare sNaN sNaN -> NaN Invalid_operation +dqcom850 compare NaN sNaN -> NaN Invalid_operation +dqcom851 compare -Inf sNaN -> NaN Invalid_operation +dqcom852 compare -1000 sNaN -> NaN Invalid_operation +dqcom853 compare -1 sNaN -> NaN Invalid_operation +dqcom854 compare -0 sNaN -> NaN Invalid_operation +dqcom855 compare 0 sNaN -> NaN Invalid_operation +dqcom856 compare 1 sNaN -> NaN Invalid_operation +dqcom857 compare 1000 sNaN -> NaN Invalid_operation +dqcom858 compare Inf sNaN -> NaN Invalid_operation +dqcom859 compare NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +dqcom860 compare NaN9 -Inf -> NaN9 +dqcom861 compare NaN8 999 -> NaN8 +dqcom862 compare NaN77 Inf -> NaN77 +dqcom863 compare -NaN67 NaN5 -> -NaN67 +dqcom864 compare -Inf -NaN4 -> -NaN4 +dqcom865 compare -999 -NaN33 -> -NaN33 +dqcom866 compare Inf NaN2 -> NaN2 +dqcom867 compare -NaN41 -NaN42 -> -NaN41 +dqcom868 compare +NaN41 -NaN42 -> NaN41 +dqcom869 compare -NaN41 +NaN42 -> -NaN41 +dqcom870 compare +NaN41 +NaN42 -> NaN41 + +dqcom871 compare -sNaN99 -Inf -> -NaN99 Invalid_operation +dqcom872 compare sNaN98 -11 -> NaN98 Invalid_operation +dqcom873 compare sNaN97 NaN -> NaN97 Invalid_operation +dqcom874 compare sNaN16 sNaN94 -> NaN16 Invalid_operation +dqcom875 compare NaN85 sNaN83 -> NaN83 Invalid_operation +dqcom876 compare -Inf sNaN92 -> NaN92 Invalid_operation +dqcom877 compare 088 sNaN81 -> NaN81 Invalid_operation +dqcom878 compare Inf sNaN90 -> NaN90 Invalid_operation +dqcom879 compare NaN -sNaN89 -> -NaN89 Invalid_operation + +-- wide range +dqcom880 compare +1.23456789012345E-0 9E+6144 -> -1 +dqcom881 compare 9E+6144 +1.23456789012345E-0 -> 1 +dqcom882 compare +0.100 9E-6143 -> 1 +dqcom883 compare 9E-6143 +0.100 -> -1 +dqcom885 compare -1.23456789012345E-0 9E+6144 -> -1 +dqcom886 compare 9E+6144 -1.23456789012345E-0 -> 1 +dqcom887 compare -0.100 9E-6143 -> -1 +dqcom888 compare 9E-6143 -0.100 -> 1 + +-- signs +dqcom901 compare 1e+77 1e+11 -> 1 +dqcom902 compare 1e+77 -1e+11 -> 1 +dqcom903 compare -1e+77 1e+11 -> -1 +dqcom904 compare -1e+77 -1e+11 -> -1 +dqcom905 compare 1e-77 1e-11 -> -1 +dqcom906 compare 1e-77 -1e-11 -> 1 +dqcom907 compare -1e-77 1e-11 -> -1 +dqcom908 compare -1e-77 -1e-11 -> 1 + +-- full alignment range, both ways +dqcomp1001 compare 1 1.000000000000000000000000000000000 -> 0 +dqcomp1002 compare 1 1.00000000000000000000000000000000 -> 0 +dqcomp1003 compare 1 1.0000000000000000000000000000000 -> 0 +dqcomp1004 compare 1 1.000000000000000000000000000000 -> 0 +dqcomp1005 compare 1 1.00000000000000000000000000000 -> 0 +dqcomp1006 compare 1 1.0000000000000000000000000000 -> 0 +dqcomp1007 compare 1 1.000000000000000000000000000 -> 0 +dqcomp1008 compare 1 1.00000000000000000000000000 -> 0 +dqcomp1009 compare 1 1.0000000000000000000000000 -> 0 +dqcomp1010 compare 1 1.000000000000000000000000 -> 0 +dqcomp1011 compare 1 1.00000000000000000000000 -> 0 +dqcomp1012 compare 1 1.0000000000000000000000 -> 0 +dqcomp1013 compare 1 1.000000000000000000000 -> 0 +dqcomp1014 compare 1 1.00000000000000000000 -> 0 +dqcomp1015 compare 1 1.0000000000000000000 -> 0 +dqcomp1016 compare 1 1.000000000000000000 -> 0 +dqcomp1017 compare 1 1.00000000000000000 -> 0 +dqcomp1018 compare 1 1.0000000000000000 -> 0 +dqcomp1019 compare 1 1.000000000000000 -> 0 +dqcomp1020 compare 1 1.00000000000000 -> 0 +dqcomp1021 compare 1 1.0000000000000 -> 0 +dqcomp1022 compare 1 1.000000000000 -> 0 +dqcomp1023 compare 1 1.00000000000 -> 0 +dqcomp1024 compare 1 1.0000000000 -> 0 +dqcomp1025 compare 1 1.000000000 -> 0 +dqcomp1026 compare 1 1.00000000 -> 0 +dqcomp1027 compare 1 1.0000000 -> 0 +dqcomp1028 compare 1 1.000000 -> 0 +dqcomp1029 compare 1 1.00000 -> 0 +dqcomp1030 compare 1 1.0000 -> 0 +dqcomp1031 compare 1 1.000 -> 0 +dqcomp1032 compare 1 1.00 -> 0 +dqcomp1033 compare 1 1.0 -> 0 + +dqcomp1041 compare 1.000000000000000000000000000000000 1 -> 0 +dqcomp1042 compare 1.00000000000000000000000000000000 1 -> 0 +dqcomp1043 compare 1.0000000000000000000000000000000 1 -> 0 +dqcomp1044 compare 1.000000000000000000000000000000 1 -> 0 +dqcomp1045 compare 1.00000000000000000000000000000 1 -> 0 +dqcomp1046 compare 1.0000000000000000000000000000 1 -> 0 +dqcomp1047 compare 1.000000000000000000000000000 1 -> 0 +dqcomp1048 compare 1.00000000000000000000000000 1 -> 0 +dqcomp1049 compare 1.0000000000000000000000000 1 -> 0 +dqcomp1050 compare 1.000000000000000000000000 1 -> 0 +dqcomp1051 compare 1.00000000000000000000000 1 -> 0 +dqcomp1052 compare 1.0000000000000000000000 1 -> 0 +dqcomp1053 compare 1.000000000000000000000 1 -> 0 +dqcomp1054 compare 1.00000000000000000000 1 -> 0 +dqcomp1055 compare 1.0000000000000000000 1 -> 0 +dqcomp1056 compare 1.000000000000000000 1 -> 0 +dqcomp1057 compare 1.00000000000000000 1 -> 0 +dqcomp1058 compare 1.0000000000000000 1 -> 0 +dqcomp1059 compare 1.000000000000000 1 -> 0 +dqcomp1060 compare 1.00000000000000 1 -> 0 +dqcomp1061 compare 1.0000000000000 1 -> 0 +dqcomp1062 compare 1.000000000000 1 -> 0 +dqcomp1063 compare 1.00000000000 1 -> 0 +dqcomp1064 compare 1.0000000000 1 -> 0 +dqcomp1065 compare 1.000000000 1 -> 0 +dqcomp1066 compare 1.00000000 1 -> 0 +dqcomp1067 compare 1.0000000 1 -> 0 +dqcomp1068 compare 1.000000 1 -> 0 +dqcomp1069 compare 1.00000 1 -> 0 +dqcomp1070 compare 1.0000 1 -> 0 +dqcomp1071 compare 1.000 1 -> 0 +dqcomp1072 compare 1.00 1 -> 0 +dqcomp1073 compare 1.0 1 -> 0 + +-- check MSD always detected non-zero +dqcomp1080 compare 0 0.000000000000000000000000000000000 -> 0 +dqcomp1081 compare 0 1.000000000000000000000000000000000 -> -1 +dqcomp1082 compare 0 2.000000000000000000000000000000000 -> -1 +dqcomp1083 compare 0 3.000000000000000000000000000000000 -> -1 +dqcomp1084 compare 0 4.000000000000000000000000000000000 -> -1 +dqcomp1085 compare 0 5.000000000000000000000000000000000 -> -1 +dqcomp1086 compare 0 6.000000000000000000000000000000000 -> -1 +dqcomp1087 compare 0 7.000000000000000000000000000000000 -> -1 +dqcomp1088 compare 0 8.000000000000000000000000000000000 -> -1 +dqcomp1089 compare 0 9.000000000000000000000000000000000 -> -1 +dqcomp1090 compare 0.000000000000000000000000000000000 0 -> 0 +dqcomp1091 compare 1.000000000000000000000000000000000 0 -> 1 +dqcomp1092 compare 2.000000000000000000000000000000000 0 -> 1 +dqcomp1093 compare 3.000000000000000000000000000000000 0 -> 1 +dqcomp1094 compare 4.000000000000000000000000000000000 0 -> 1 +dqcomp1095 compare 5.000000000000000000000000000000000 0 -> 1 +dqcomp1096 compare 6.000000000000000000000000000000000 0 -> 1 +dqcomp1097 compare 7.000000000000000000000000000000000 0 -> 1 +dqcomp1098 compare 8.000000000000000000000000000000000 0 -> 1 +dqcomp1099 compare 9.000000000000000000000000000000000 0 -> 1 + +-- Null tests +dqcom990 compare 10 # -> NaN Invalid_operation +dqcom991 compare # 10 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/dqCompareSig.decTest b/Lib/test/decimaltestdata/dqCompareSig.decTest index c068d471c1..795f0916dd 100644 --- a/Lib/test/decimaltestdata/dqCompareSig.decTest +++ b/Lib/test/decimaltestdata/dqCompareSig.decTest @@ -1,647 +1,647 @@ -------------------------------------------------------------------------
--- dqCompareSig.decTest -- decQuad comparison; all NaNs signal --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- Note that we cannot assume add/subtract tests cover paths adequately,
--- here, because the code might be quite different (comparison cannot
--- overflow or underflow, so actual subtractions are not necessary).
-
--- All operands and results are decQuads.
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
--- sanity checks
-dqcms001 comparesig -2 -2 -> 0
-dqcms002 comparesig -2 -1 -> -1
-dqcms003 comparesig -2 0 -> -1
-dqcms004 comparesig -2 1 -> -1
-dqcms005 comparesig -2 2 -> -1
-dqcms006 comparesig -1 -2 -> 1
-dqcms007 comparesig -1 -1 -> 0
-dqcms008 comparesig -1 0 -> -1
-dqcms009 comparesig -1 1 -> -1
-dqcms010 comparesig -1 2 -> -1
-dqcms011 comparesig 0 -2 -> 1
-dqcms012 comparesig 0 -1 -> 1
-dqcms013 comparesig 0 0 -> 0
-dqcms014 comparesig 0 1 -> -1
-dqcms015 comparesig 0 2 -> -1
-dqcms016 comparesig 1 -2 -> 1
-dqcms017 comparesig 1 -1 -> 1
-dqcms018 comparesig 1 0 -> 1
-dqcms019 comparesig 1 1 -> 0
-dqcms020 comparesig 1 2 -> -1
-dqcms021 comparesig 2 -2 -> 1
-dqcms022 comparesig 2 -1 -> 1
-dqcms023 comparesig 2 0 -> 1
-dqcms025 comparesig 2 1 -> 1
-dqcms026 comparesig 2 2 -> 0
-
-dqcms031 comparesig -20 -20 -> 0
-dqcms032 comparesig -20 -10 -> -1
-dqcms033 comparesig -20 00 -> -1
-dqcms034 comparesig -20 10 -> -1
-dqcms035 comparesig -20 20 -> -1
-dqcms036 comparesig -10 -20 -> 1
-dqcms037 comparesig -10 -10 -> 0
-dqcms038 comparesig -10 00 -> -1
-dqcms039 comparesig -10 10 -> -1
-dqcms040 comparesig -10 20 -> -1
-dqcms041 comparesig 00 -20 -> 1
-dqcms042 comparesig 00 -10 -> 1
-dqcms043 comparesig 00 00 -> 0
-dqcms044 comparesig 00 10 -> -1
-dqcms045 comparesig 00 20 -> -1
-dqcms046 comparesig 10 -20 -> 1
-dqcms047 comparesig 10 -10 -> 1
-dqcms048 comparesig 10 00 -> 1
-dqcms049 comparesig 10 10 -> 0
-dqcms050 comparesig 10 20 -> -1
-dqcms051 comparesig 20 -20 -> 1
-dqcms052 comparesig 20 -10 -> 1
-dqcms053 comparesig 20 00 -> 1
-dqcms055 comparesig 20 10 -> 1
-dqcms056 comparesig 20 20 -> 0
-
-dqcms061 comparesig -2.0 -2.0 -> 0
-dqcms062 comparesig -2.0 -1.0 -> -1
-dqcms063 comparesig -2.0 0.0 -> -1
-dqcms064 comparesig -2.0 1.0 -> -1
-dqcms065 comparesig -2.0 2.0 -> -1
-dqcms066 comparesig -1.0 -2.0 -> 1
-dqcms067 comparesig -1.0 -1.0 -> 0
-dqcms068 comparesig -1.0 0.0 -> -1
-dqcms069 comparesig -1.0 1.0 -> -1
-dqcms070 comparesig -1.0 2.0 -> -1
-dqcms071 comparesig 0.0 -2.0 -> 1
-dqcms072 comparesig 0.0 -1.0 -> 1
-dqcms073 comparesig 0.0 0.0 -> 0
-dqcms074 comparesig 0.0 1.0 -> -1
-dqcms075 comparesig 0.0 2.0 -> -1
-dqcms076 comparesig 1.0 -2.0 -> 1
-dqcms077 comparesig 1.0 -1.0 -> 1
-dqcms078 comparesig 1.0 0.0 -> 1
-dqcms079 comparesig 1.0 1.0 -> 0
-dqcms080 comparesig 1.0 2.0 -> -1
-dqcms081 comparesig 2.0 -2.0 -> 1
-dqcms082 comparesig 2.0 -1.0 -> 1
-dqcms083 comparesig 2.0 0.0 -> 1
-dqcms085 comparesig 2.0 1.0 -> 1
-dqcms086 comparesig 2.0 2.0 -> 0
-
--- now some cases which might overflow if subtract were used
-dqcms090 comparesig 9.999999999999999999999999999999999E+6144 9.999999999999999999999999999999999E+6144 -> 0
-dqcms091 comparesig -9.999999999999999999999999999999999E+6144 9.999999999999999999999999999999999E+6144 -> -1
-dqcms092 comparesig 9.999999999999999999999999999999999E+6144 -9.999999999999999999999999999999999E+6144 -> 1
-dqcms093 comparesig -9.999999999999999999999999999999999E+6144 -9.999999999999999999999999999999999E+6144 -> 0
-
--- some differing length/exponent cases
-dqcms100 comparesig 7.0 7.0 -> 0
-dqcms101 comparesig 7.0 7 -> 0
-dqcms102 comparesig 7 7.0 -> 0
-dqcms103 comparesig 7E+0 7.0 -> 0
-dqcms104 comparesig 70E-1 7.0 -> 0
-dqcms105 comparesig 0.7E+1 7 -> 0
-dqcms106 comparesig 70E-1 7 -> 0
-dqcms107 comparesig 7.0 7E+0 -> 0
-dqcms108 comparesig 7.0 70E-1 -> 0
-dqcms109 comparesig 7 0.7E+1 -> 0
-dqcms110 comparesig 7 70E-1 -> 0
-
-dqcms120 comparesig 8.0 7.0 -> 1
-dqcms121 comparesig 8.0 7 -> 1
-dqcms122 comparesig 8 7.0 -> 1
-dqcms123 comparesig 8E+0 7.0 -> 1
-dqcms124 comparesig 80E-1 7.0 -> 1
-dqcms125 comparesig 0.8E+1 7 -> 1
-dqcms126 comparesig 80E-1 7 -> 1
-dqcms127 comparesig 8.0 7E+0 -> 1
-dqcms128 comparesig 8.0 70E-1 -> 1
-dqcms129 comparesig 8 0.7E+1 -> 1
-dqcms130 comparesig 8 70E-1 -> 1
-
-dqcms140 comparesig 8.0 9.0 -> -1
-dqcms141 comparesig 8.0 9 -> -1
-dqcms142 comparesig 8 9.0 -> -1
-dqcms143 comparesig 8E+0 9.0 -> -1
-dqcms144 comparesig 80E-1 9.0 -> -1
-dqcms145 comparesig 0.8E+1 9 -> -1
-dqcms146 comparesig 80E-1 9 -> -1
-dqcms147 comparesig 8.0 9E+0 -> -1
-dqcms148 comparesig 8.0 90E-1 -> -1
-dqcms149 comparesig 8 0.9E+1 -> -1
-dqcms150 comparesig 8 90E-1 -> -1
-
--- and again, with sign changes -+ ..
-dqcms200 comparesig -7.0 7.0 -> -1
-dqcms201 comparesig -7.0 7 -> -1
-dqcms202 comparesig -7 7.0 -> -1
-dqcms203 comparesig -7E+0 7.0 -> -1
-dqcms204 comparesig -70E-1 7.0 -> -1
-dqcms205 comparesig -0.7E+1 7 -> -1
-dqcms206 comparesig -70E-1 7 -> -1
-dqcms207 comparesig -7.0 7E+0 -> -1
-dqcms208 comparesig -7.0 70E-1 -> -1
-dqcms209 comparesig -7 0.7E+1 -> -1
-dqcms210 comparesig -7 70E-1 -> -1
-
-dqcms220 comparesig -8.0 7.0 -> -1
-dqcms221 comparesig -8.0 7 -> -1
-dqcms222 comparesig -8 7.0 -> -1
-dqcms223 comparesig -8E+0 7.0 -> -1
-dqcms224 comparesig -80E-1 7.0 -> -1
-dqcms225 comparesig -0.8E+1 7 -> -1
-dqcms226 comparesig -80E-1 7 -> -1
-dqcms227 comparesig -8.0 7E+0 -> -1
-dqcms228 comparesig -8.0 70E-1 -> -1
-dqcms229 comparesig -8 0.7E+1 -> -1
-dqcms230 comparesig -8 70E-1 -> -1
-
-dqcms240 comparesig -8.0 9.0 -> -1
-dqcms241 comparesig -8.0 9 -> -1
-dqcms242 comparesig -8 9.0 -> -1
-dqcms243 comparesig -8E+0 9.0 -> -1
-dqcms244 comparesig -80E-1 9.0 -> -1
-dqcms245 comparesig -0.8E+1 9 -> -1
-dqcms246 comparesig -80E-1 9 -> -1
-dqcms247 comparesig -8.0 9E+0 -> -1
-dqcms248 comparesig -8.0 90E-1 -> -1
-dqcms249 comparesig -8 0.9E+1 -> -1
-dqcms250 comparesig -8 90E-1 -> -1
-
--- and again, with sign changes +- ..
-dqcms300 comparesig 7.0 -7.0 -> 1
-dqcms301 comparesig 7.0 -7 -> 1
-dqcms302 comparesig 7 -7.0 -> 1
-dqcms303 comparesig 7E+0 -7.0 -> 1
-dqcms304 comparesig 70E-1 -7.0 -> 1
-dqcms305 comparesig .7E+1 -7 -> 1
-dqcms306 comparesig 70E-1 -7 -> 1
-dqcms307 comparesig 7.0 -7E+0 -> 1
-dqcms308 comparesig 7.0 -70E-1 -> 1
-dqcms309 comparesig 7 -.7E+1 -> 1
-dqcms310 comparesig 7 -70E-1 -> 1
-
-dqcms320 comparesig 8.0 -7.0 -> 1
-dqcms321 comparesig 8.0 -7 -> 1
-dqcms322 comparesig 8 -7.0 -> 1
-dqcms323 comparesig 8E+0 -7.0 -> 1
-dqcms324 comparesig 80E-1 -7.0 -> 1
-dqcms325 comparesig .8E+1 -7 -> 1
-dqcms326 comparesig 80E-1 -7 -> 1
-dqcms327 comparesig 8.0 -7E+0 -> 1
-dqcms328 comparesig 8.0 -70E-1 -> 1
-dqcms329 comparesig 8 -.7E+1 -> 1
-dqcms330 comparesig 8 -70E-1 -> 1
-
-dqcms340 comparesig 8.0 -9.0 -> 1
-dqcms341 comparesig 8.0 -9 -> 1
-dqcms342 comparesig 8 -9.0 -> 1
-dqcms343 comparesig 8E+0 -9.0 -> 1
-dqcms344 comparesig 80E-1 -9.0 -> 1
-dqcms345 comparesig .8E+1 -9 -> 1
-dqcms346 comparesig 80E-1 -9 -> 1
-dqcms347 comparesig 8.0 -9E+0 -> 1
-dqcms348 comparesig 8.0 -90E-1 -> 1
-dqcms349 comparesig 8 -.9E+1 -> 1
-dqcms350 comparesig 8 -90E-1 -> 1
-
--- and again, with sign changes -- ..
-dqcms400 comparesig -7.0 -7.0 -> 0
-dqcms401 comparesig -7.0 -7 -> 0
-dqcms402 comparesig -7 -7.0 -> 0
-dqcms403 comparesig -7E+0 -7.0 -> 0
-dqcms404 comparesig -70E-1 -7.0 -> 0
-dqcms405 comparesig -.7E+1 -7 -> 0
-dqcms406 comparesig -70E-1 -7 -> 0
-dqcms407 comparesig -7.0 -7E+0 -> 0
-dqcms408 comparesig -7.0 -70E-1 -> 0
-dqcms409 comparesig -7 -.7E+1 -> 0
-dqcms410 comparesig -7 -70E-1 -> 0
-
-dqcms420 comparesig -8.0 -7.0 -> -1
-dqcms421 comparesig -8.0 -7 -> -1
-dqcms422 comparesig -8 -7.0 -> -1
-dqcms423 comparesig -8E+0 -7.0 -> -1
-dqcms424 comparesig -80E-1 -7.0 -> -1
-dqcms425 comparesig -.8E+1 -7 -> -1
-dqcms426 comparesig -80E-1 -7 -> -1
-dqcms427 comparesig -8.0 -7E+0 -> -1
-dqcms428 comparesig -8.0 -70E-1 -> -1
-dqcms429 comparesig -8 -.7E+1 -> -1
-dqcms430 comparesig -8 -70E-1 -> -1
-
-dqcms440 comparesig -8.0 -9.0 -> 1
-dqcms441 comparesig -8.0 -9 -> 1
-dqcms442 comparesig -8 -9.0 -> 1
-dqcms443 comparesig -8E+0 -9.0 -> 1
-dqcms444 comparesig -80E-1 -9.0 -> 1
-dqcms445 comparesig -.8E+1 -9 -> 1
-dqcms446 comparesig -80E-1 -9 -> 1
-dqcms447 comparesig -8.0 -9E+0 -> 1
-dqcms448 comparesig -8.0 -90E-1 -> 1
-dqcms449 comparesig -8 -.9E+1 -> 1
-dqcms450 comparesig -8 -90E-1 -> 1
-
-
--- testcases that subtract to lots of zeros at boundaries [pgr]
-dqcms473 comparesig 123.9999999999999999994560000000000E-89 123.999999999999999999456E-89 -> 0
-dqcms474 comparesig 123.999999999999999999456000000000E+89 123.999999999999999999456E+89 -> 0
-dqcms475 comparesig 123.99999999999999999945600000000E-89 123.999999999999999999456E-89 -> 0
-dqcms476 comparesig 123.9999999999999999994560000000E+89 123.999999999999999999456E+89 -> 0
-dqcms477 comparesig 123.999999999999999999456000000E-89 123.999999999999999999456E-89 -> 0
-dqcms478 comparesig 123.99999999999999999945600000E+89 123.999999999999999999456E+89 -> 0
-dqcms479 comparesig 123.9999999999999999994560000E-89 123.999999999999999999456E-89 -> 0
-dqcms480 comparesig 123.999999999999999999456000E+89 123.999999999999999999456E+89 -> 0
-dqcms481 comparesig 123.99999999999999999945600E-89 123.999999999999999999456E-89 -> 0
-dqcms482 comparesig 123.9999999999999999994560E+89 123.999999999999999999456E+89 -> 0
-dqcms483 comparesig 123.999999999999999999456E-89 123.999999999999999999456E-89 -> 0
-dqcms487 comparesig 123.999999999999999999456E+89 123.9999999999999999994560000000000E+89 -> 0
-dqcms488 comparesig 123.999999999999999999456E-89 123.999999999999999999456000000000E-89 -> 0
-dqcms489 comparesig 123.999999999999999999456E+89 123.99999999999999999945600000000E+89 -> 0
-dqcms490 comparesig 123.999999999999999999456E-89 123.9999999999999999994560000000E-89 -> 0
-dqcms491 comparesig 123.999999999999999999456E+89 123.999999999999999999456000000E+89 -> 0
-dqcms492 comparesig 123.999999999999999999456E-89 123.99999999999999999945600000E-89 -> 0
-dqcms493 comparesig 123.999999999999999999456E+89 123.9999999999999999994560000E+89 -> 0
-dqcms494 comparesig 123.999999999999999999456E-89 123.999999999999999999456000E-89 -> 0
-dqcms495 comparesig 123.999999999999999999456E+89 123.99999999999999999945600E+89 -> 0
-dqcms496 comparesig 123.999999999999999999456E-89 123.9999999999999999994560E-89 -> 0
-dqcms497 comparesig 123.999999999999999999456E+89 123.999999999999999999456E+89 -> 0
-
--- wide-ranging, around precision; signs equal
-dqcms500 comparesig 1 1E-15 -> 1
-dqcms501 comparesig 1 1E-14 -> 1
-dqcms502 comparesig 1 1E-13 -> 1
-dqcms503 comparesig 1 1E-12 -> 1
-dqcms504 comparesig 1 1E-11 -> 1
-dqcms505 comparesig 1 1E-10 -> 1
-dqcms506 comparesig 1 1E-9 -> 1
-dqcms507 comparesig 1 1E-8 -> 1
-dqcms508 comparesig 1 1E-7 -> 1
-dqcms509 comparesig 1 1E-6 -> 1
-dqcms510 comparesig 1 1E-5 -> 1
-dqcms511 comparesig 1 1E-4 -> 1
-dqcms512 comparesig 1 1E-3 -> 1
-dqcms513 comparesig 1 1E-2 -> 1
-dqcms514 comparesig 1 1E-1 -> 1
-dqcms515 comparesig 1 1E-0 -> 0
-dqcms516 comparesig 1 1E+1 -> -1
-dqcms517 comparesig 1 1E+2 -> -1
-dqcms518 comparesig 1 1E+3 -> -1
-dqcms519 comparesig 1 1E+4 -> -1
-dqcms521 comparesig 1 1E+5 -> -1
-dqcms522 comparesig 1 1E+6 -> -1
-dqcms523 comparesig 1 1E+7 -> -1
-dqcms524 comparesig 1 1E+8 -> -1
-dqcms525 comparesig 1 1E+9 -> -1
-dqcms526 comparesig 1 1E+10 -> -1
-dqcms527 comparesig 1 1E+11 -> -1
-dqcms528 comparesig 1 1E+12 -> -1
-dqcms529 comparesig 1 1E+13 -> -1
-dqcms530 comparesig 1 1E+14 -> -1
-dqcms531 comparesig 1 1E+15 -> -1
--- LR swap
-dqcms540 comparesig 1E-15 1 -> -1
-dqcms541 comparesig 1E-14 1 -> -1
-dqcms542 comparesig 1E-13 1 -> -1
-dqcms543 comparesig 1E-12 1 -> -1
-dqcms544 comparesig 1E-11 1 -> -1
-dqcms545 comparesig 1E-10 1 -> -1
-dqcms546 comparesig 1E-9 1 -> -1
-dqcms547 comparesig 1E-8 1 -> -1
-dqcms548 comparesig 1E-7 1 -> -1
-dqcms549 comparesig 1E-6 1 -> -1
-dqcms550 comparesig 1E-5 1 -> -1
-dqcms551 comparesig 1E-4 1 -> -1
-dqcms552 comparesig 1E-3 1 -> -1
-dqcms553 comparesig 1E-2 1 -> -1
-dqcms554 comparesig 1E-1 1 -> -1
-dqcms555 comparesig 1E-0 1 -> 0
-dqcms556 comparesig 1E+1 1 -> 1
-dqcms557 comparesig 1E+2 1 -> 1
-dqcms558 comparesig 1E+3 1 -> 1
-dqcms559 comparesig 1E+4 1 -> 1
-dqcms561 comparesig 1E+5 1 -> 1
-dqcms562 comparesig 1E+6 1 -> 1
-dqcms563 comparesig 1E+7 1 -> 1
-dqcms564 comparesig 1E+8 1 -> 1
-dqcms565 comparesig 1E+9 1 -> 1
-dqcms566 comparesig 1E+10 1 -> 1
-dqcms567 comparesig 1E+11 1 -> 1
-dqcms568 comparesig 1E+12 1 -> 1
-dqcms569 comparesig 1E+13 1 -> 1
-dqcms570 comparesig 1E+14 1 -> 1
-dqcms571 comparesig 1E+15 1 -> 1
--- similar with a useful coefficient, one side only
-dqcms580 comparesig 0.000000987654321 1E-15 -> 1
-dqcms581 comparesig 0.000000987654321 1E-14 -> 1
-dqcms582 comparesig 0.000000987654321 1E-13 -> 1
-dqcms583 comparesig 0.000000987654321 1E-12 -> 1
-dqcms584 comparesig 0.000000987654321 1E-11 -> 1
-dqcms585 comparesig 0.000000987654321 1E-10 -> 1
-dqcms586 comparesig 0.000000987654321 1E-9 -> 1
-dqcms587 comparesig 0.000000987654321 1E-8 -> 1
-dqcms588 comparesig 0.000000987654321 1E-7 -> 1
-dqcms589 comparesig 0.000000987654321 1E-6 -> -1
-dqcms590 comparesig 0.000000987654321 1E-5 -> -1
-dqcms591 comparesig 0.000000987654321 1E-4 -> -1
-dqcms592 comparesig 0.000000987654321 1E-3 -> -1
-dqcms593 comparesig 0.000000987654321 1E-2 -> -1
-dqcms594 comparesig 0.000000987654321 1E-1 -> -1
-dqcms595 comparesig 0.000000987654321 1E-0 -> -1
-dqcms596 comparesig 0.000000987654321 1E+1 -> -1
-dqcms597 comparesig 0.000000987654321 1E+2 -> -1
-dqcms598 comparesig 0.000000987654321 1E+3 -> -1
-dqcms599 comparesig 0.000000987654321 1E+4 -> -1
-
--- check some unit-y traps
-dqcms600 comparesig 12 12.2345 -> -1
-dqcms601 comparesig 12.0 12.2345 -> -1
-dqcms602 comparesig 12.00 12.2345 -> -1
-dqcms603 comparesig 12.000 12.2345 -> -1
-dqcms604 comparesig 12.0000 12.2345 -> -1
-dqcms605 comparesig 12.00000 12.2345 -> -1
-dqcms606 comparesig 12.000000 12.2345 -> -1
-dqcms607 comparesig 12.0000000 12.2345 -> -1
-dqcms608 comparesig 12.00000000 12.2345 -> -1
-dqcms609 comparesig 12.000000000 12.2345 -> -1
-dqcms610 comparesig 12.1234 12 -> 1
-dqcms611 comparesig 12.1234 12.0 -> 1
-dqcms612 comparesig 12.1234 12.00 -> 1
-dqcms613 comparesig 12.1234 12.000 -> 1
-dqcms614 comparesig 12.1234 12.0000 -> 1
-dqcms615 comparesig 12.1234 12.00000 -> 1
-dqcms616 comparesig 12.1234 12.000000 -> 1
-dqcms617 comparesig 12.1234 12.0000000 -> 1
-dqcms618 comparesig 12.1234 12.00000000 -> 1
-dqcms619 comparesig 12.1234 12.000000000 -> 1
-dqcms620 comparesig -12 -12.2345 -> 1
-dqcms621 comparesig -12.0 -12.2345 -> 1
-dqcms622 comparesig -12.00 -12.2345 -> 1
-dqcms623 comparesig -12.000 -12.2345 -> 1
-dqcms624 comparesig -12.0000 -12.2345 -> 1
-dqcms625 comparesig -12.00000 -12.2345 -> 1
-dqcms626 comparesig -12.000000 -12.2345 -> 1
-dqcms627 comparesig -12.0000000 -12.2345 -> 1
-dqcms628 comparesig -12.00000000 -12.2345 -> 1
-dqcms629 comparesig -12.000000000 -12.2345 -> 1
-dqcms630 comparesig -12.1234 -12 -> -1
-dqcms631 comparesig -12.1234 -12.0 -> -1
-dqcms632 comparesig -12.1234 -12.00 -> -1
-dqcms633 comparesig -12.1234 -12.000 -> -1
-dqcms634 comparesig -12.1234 -12.0000 -> -1
-dqcms635 comparesig -12.1234 -12.00000 -> -1
-dqcms636 comparesig -12.1234 -12.000000 -> -1
-dqcms637 comparesig -12.1234 -12.0000000 -> -1
-dqcms638 comparesig -12.1234 -12.00000000 -> -1
-dqcms639 comparesig -12.1234 -12.000000000 -> -1
-
--- extended zeros
-dqcms640 comparesig 0 0 -> 0
-dqcms641 comparesig 0 -0 -> 0
-dqcms642 comparesig 0 -0.0 -> 0
-dqcms643 comparesig 0 0.0 -> 0
-dqcms644 comparesig -0 0 -> 0
-dqcms645 comparesig -0 -0 -> 0
-dqcms646 comparesig -0 -0.0 -> 0
-dqcms647 comparesig -0 0.0 -> 0
-dqcms648 comparesig 0.0 0 -> 0
-dqcms649 comparesig 0.0 -0 -> 0
-dqcms650 comparesig 0.0 -0.0 -> 0
-dqcms651 comparesig 0.0 0.0 -> 0
-dqcms652 comparesig -0.0 0 -> 0
-dqcms653 comparesig -0.0 -0 -> 0
-dqcms654 comparesig -0.0 -0.0 -> 0
-dqcms655 comparesig -0.0 0.0 -> 0
-
-dqcms656 comparesig -0E1 0.0 -> 0
-dqcms657 comparesig -0E2 0.0 -> 0
-dqcms658 comparesig 0E1 0.0 -> 0
-dqcms659 comparesig 0E2 0.0 -> 0
-dqcms660 comparesig -0E1 0 -> 0
-dqcms661 comparesig -0E2 0 -> 0
-dqcms662 comparesig 0E1 0 -> 0
-dqcms663 comparesig 0E2 0 -> 0
-dqcms664 comparesig -0E1 -0E1 -> 0
-dqcms665 comparesig -0E2 -0E1 -> 0
-dqcms666 comparesig 0E1 -0E1 -> 0
-dqcms667 comparesig 0E2 -0E1 -> 0
-dqcms668 comparesig -0E1 -0E2 -> 0
-dqcms669 comparesig -0E2 -0E2 -> 0
-dqcms670 comparesig 0E1 -0E2 -> 0
-dqcms671 comparesig 0E2 -0E2 -> 0
-dqcms672 comparesig -0E1 0E1 -> 0
-dqcms673 comparesig -0E2 0E1 -> 0
-dqcms674 comparesig 0E1 0E1 -> 0
-dqcms675 comparesig 0E2 0E1 -> 0
-dqcms676 comparesig -0E1 0E2 -> 0
-dqcms677 comparesig -0E2 0E2 -> 0
-dqcms678 comparesig 0E1 0E2 -> 0
-dqcms679 comparesig 0E2 0E2 -> 0
-
--- trailing zeros; unit-y
-dqcms680 comparesig 12 12 -> 0
-dqcms681 comparesig 12 12.0 -> 0
-dqcms682 comparesig 12 12.00 -> 0
-dqcms683 comparesig 12 12.000 -> 0
-dqcms684 comparesig 12 12.0000 -> 0
-dqcms685 comparesig 12 12.00000 -> 0
-dqcms686 comparesig 12 12.000000 -> 0
-dqcms687 comparesig 12 12.0000000 -> 0
-dqcms688 comparesig 12 12.00000000 -> 0
-dqcms689 comparesig 12 12.000000000 -> 0
-dqcms690 comparesig 12 12 -> 0
-dqcms691 comparesig 12.0 12 -> 0
-dqcms692 comparesig 12.00 12 -> 0
-dqcms693 comparesig 12.000 12 -> 0
-dqcms694 comparesig 12.0000 12 -> 0
-dqcms695 comparesig 12.00000 12 -> 0
-dqcms696 comparesig 12.000000 12 -> 0
-dqcms697 comparesig 12.0000000 12 -> 0
-dqcms698 comparesig 12.00000000 12 -> 0
-dqcms699 comparesig 12.000000000 12 -> 0
-
--- first, second, & last digit
-dqcms700 comparesig 1234567899999999999999999990123456 1234567899999999999999999990123455 -> 1
-dqcms701 comparesig 1234567899999999999999999990123456 1234567899999999999999999990123456 -> 0
-dqcms702 comparesig 1234567899999999999999999990123456 1234567899999999999999999990123457 -> -1
-dqcms703 comparesig 1234567899999999999999999990123456 0234567899999999999999999990123456 -> 1
-dqcms704 comparesig 1234567899999999999999999990123456 1234567899999999999999999990123456 -> 0
-dqcms705 comparesig 1234567899999999999999999990123456 2234567899999999999999999990123456 -> -1
-dqcms706 comparesig 1134567899999999999999999990123456 1034567899999999999999999990123456 -> 1
-dqcms707 comparesig 1134567899999999999999999990123456 1134567899999999999999999990123456 -> 0
-dqcms708 comparesig 1134567899999999999999999990123456 1234567899999999999999999990123456 -> -1
-
--- miscellaneous
-dqcms721 comparesig 12345678000 1 -> 1
-dqcms722 comparesig 1 12345678000 -> -1
-dqcms723 comparesig 1234567800 1 -> 1
-dqcms724 comparesig 1 1234567800 -> -1
-dqcms725 comparesig 1234567890 1 -> 1
-dqcms726 comparesig 1 1234567890 -> -1
-dqcms727 comparesig 1234567891 1 -> 1
-dqcms728 comparesig 1 1234567891 -> -1
-dqcms729 comparesig 12345678901 1 -> 1
-dqcms730 comparesig 1 12345678901 -> -1
-dqcms731 comparesig 1234567896 1 -> 1
-dqcms732 comparesig 1 1234567896 -> -1
-
--- residue cases at lower precision
-dqcms740 comparesig 1 0.9999999 -> 1
-dqcms741 comparesig 1 0.999999 -> 1
-dqcms742 comparesig 1 0.99999 -> 1
-dqcms743 comparesig 1 1.0000 -> 0
-dqcms744 comparesig 1 1.00001 -> -1
-dqcms745 comparesig 1 1.000001 -> -1
-dqcms746 comparesig 1 1.0000001 -> -1
-dqcms750 comparesig 0.9999999 1 -> -1
-dqcms751 comparesig 0.999999 1 -> -1
-dqcms752 comparesig 0.99999 1 -> -1
-dqcms753 comparesig 1.0000 1 -> 0
-dqcms754 comparesig 1.00001 1 -> 1
-dqcms755 comparesig 1.000001 1 -> 1
-dqcms756 comparesig 1.0000001 1 -> 1
-
--- Specials
-dqcms780 comparesig Inf -Inf -> 1
-dqcms781 comparesig Inf -1000 -> 1
-dqcms782 comparesig Inf -1 -> 1
-dqcms783 comparesig Inf -0 -> 1
-dqcms784 comparesig Inf 0 -> 1
-dqcms785 comparesig Inf 1 -> 1
-dqcms786 comparesig Inf 1000 -> 1
-dqcms787 comparesig Inf Inf -> 0
-dqcms788 comparesig -1000 Inf -> -1
-dqcms789 comparesig -Inf Inf -> -1
-dqcms790 comparesig -1 Inf -> -1
-dqcms791 comparesig -0 Inf -> -1
-dqcms792 comparesig 0 Inf -> -1
-dqcms793 comparesig 1 Inf -> -1
-dqcms794 comparesig 1000 Inf -> -1
-dqcms795 comparesig Inf Inf -> 0
-
-dqcms800 comparesig -Inf -Inf -> 0
-dqcms801 comparesig -Inf -1000 -> -1
-dqcms802 comparesig -Inf -1 -> -1
-dqcms803 comparesig -Inf -0 -> -1
-dqcms804 comparesig -Inf 0 -> -1
-dqcms805 comparesig -Inf 1 -> -1
-dqcms806 comparesig -Inf 1000 -> -1
-dqcms807 comparesig -Inf Inf -> -1
-dqcms808 comparesig -Inf -Inf -> 0
-dqcms809 comparesig -1000 -Inf -> 1
-dqcms810 comparesig -1 -Inf -> 1
-dqcms811 comparesig -0 -Inf -> 1
-dqcms812 comparesig 0 -Inf -> 1
-dqcms813 comparesig 1 -Inf -> 1
-dqcms814 comparesig 1000 -Inf -> 1
-dqcms815 comparesig Inf -Inf -> 1
-
-dqcms821 comparesig NaN -Inf -> NaN Invalid_operation
-dqcms822 comparesig NaN -1000 -> NaN Invalid_operation
-dqcms823 comparesig NaN -1 -> NaN Invalid_operation
-dqcms824 comparesig NaN -0 -> NaN Invalid_operation
-dqcms825 comparesig NaN 0 -> NaN Invalid_operation
-dqcms826 comparesig NaN 1 -> NaN Invalid_operation
-dqcms827 comparesig NaN 1000 -> NaN Invalid_operation
-dqcms828 comparesig NaN Inf -> NaN Invalid_operation
-dqcms829 comparesig NaN NaN -> NaN Invalid_operation
-dqcms830 comparesig -Inf NaN -> NaN Invalid_operation
-dqcms831 comparesig -1000 NaN -> NaN Invalid_operation
-dqcms832 comparesig -1 NaN -> NaN Invalid_operation
-dqcms833 comparesig -0 NaN -> NaN Invalid_operation
-dqcms834 comparesig 0 NaN -> NaN Invalid_operation
-dqcms835 comparesig 1 NaN -> NaN Invalid_operation
-dqcms836 comparesig 1000 NaN -> NaN Invalid_operation
-dqcms837 comparesig Inf NaN -> NaN Invalid_operation
-dqcms838 comparesig -NaN -NaN -> -NaN Invalid_operation
-dqcms839 comparesig +NaN -NaN -> NaN Invalid_operation
-dqcms840 comparesig -NaN +NaN -> -NaN Invalid_operation
-
-dqcms841 comparesig sNaN -Inf -> NaN Invalid_operation
-dqcms842 comparesig sNaN -1000 -> NaN Invalid_operation
-dqcms843 comparesig sNaN -1 -> NaN Invalid_operation
-dqcms844 comparesig sNaN -0 -> NaN Invalid_operation
-dqcms845 comparesig sNaN 0 -> NaN Invalid_operation
-dqcms846 comparesig sNaN 1 -> NaN Invalid_operation
-dqcms847 comparesig sNaN 1000 -> NaN Invalid_operation
-dqcms848 comparesig sNaN NaN -> NaN Invalid_operation
-dqcms849 comparesig sNaN sNaN -> NaN Invalid_operation
-dqcms850 comparesig NaN sNaN -> NaN Invalid_operation
-dqcms851 comparesig -Inf sNaN -> NaN Invalid_operation
-dqcms852 comparesig -1000 sNaN -> NaN Invalid_operation
-dqcms853 comparesig -1 sNaN -> NaN Invalid_operation
-dqcms854 comparesig -0 sNaN -> NaN Invalid_operation
-dqcms855 comparesig 0 sNaN -> NaN Invalid_operation
-dqcms856 comparesig 1 sNaN -> NaN Invalid_operation
-dqcms857 comparesig 1000 sNaN -> NaN Invalid_operation
-dqcms858 comparesig Inf sNaN -> NaN Invalid_operation
-dqcms859 comparesig NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-dqcms860 comparesig NaN9 -Inf -> NaN9 Invalid_operation
-dqcms861 comparesig NaN8 999 -> NaN8 Invalid_operation
-dqcms862 comparesig NaN77 Inf -> NaN77 Invalid_operation
-dqcms863 comparesig -NaN67 NaN5 -> -NaN67 Invalid_operation
-dqcms864 comparesig -Inf -NaN4 -> -NaN4 Invalid_operation
-dqcms865 comparesig -999 -NaN33 -> -NaN33 Invalid_operation
-dqcms866 comparesig Inf NaN2 -> NaN2 Invalid_operation
-dqcms867 comparesig -NaN41 -NaN42 -> -NaN41 Invalid_operation
-dqcms868 comparesig +NaN41 -NaN42 -> NaN41 Invalid_operation
-dqcms869 comparesig -NaN41 +NaN42 -> -NaN41 Invalid_operation
-dqcms870 comparesig +NaN41 +NaN42 -> NaN41 Invalid_operation
-
-dqcms871 comparesig -sNaN99 -Inf -> -NaN99 Invalid_operation
-dqcms872 comparesig sNaN98 -11 -> NaN98 Invalid_operation
-dqcms873 comparesig sNaN97 NaN -> NaN97 Invalid_operation
-dqcms874 comparesig sNaN16 sNaN94 -> NaN16 Invalid_operation
-dqcms875 comparesig NaN85 sNaN83 -> NaN83 Invalid_operation
-dqcms876 comparesig -Inf sNaN92 -> NaN92 Invalid_operation
-dqcms877 comparesig 088 sNaN81 -> NaN81 Invalid_operation
-dqcms878 comparesig Inf sNaN90 -> NaN90 Invalid_operation
-dqcms879 comparesig NaN -sNaN89 -> -NaN89 Invalid_operation
-
--- wide range
-dqcms880 comparesig +1.23456789012345E-0 9E+6144 -> -1
-dqcms881 comparesig 9E+6144 +1.23456789012345E-0 -> 1
-dqcms882 comparesig +0.100 9E-6143 -> 1
-dqcms883 comparesig 9E-6143 +0.100 -> -1
-dqcms885 comparesig -1.23456789012345E-0 9E+6144 -> -1
-dqcms886 comparesig 9E+6144 -1.23456789012345E-0 -> 1
-dqcms887 comparesig -0.100 9E-6143 -> -1
-dqcms888 comparesig 9E-6143 -0.100 -> 1
-
--- signs
-dqcms901 comparesig 1e+77 1e+11 -> 1
-dqcms902 comparesig 1e+77 -1e+11 -> 1
-dqcms903 comparesig -1e+77 1e+11 -> -1
-dqcms904 comparesig -1e+77 -1e+11 -> -1
-dqcms905 comparesig 1e-77 1e-11 -> -1
-dqcms906 comparesig 1e-77 -1e-11 -> 1
-dqcms907 comparesig -1e-77 1e-11 -> -1
-dqcms908 comparesig -1e-77 -1e-11 -> 1
-
--- Null tests
-dqcms990 comparesig 10 # -> NaN Invalid_operation
-dqcms991 comparesig # 10 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- dqCompareSig.decTest -- decQuad comparison; all NaNs signal -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- Note that we cannot assume add/subtract tests cover paths adequately, +-- here, because the code might be quite different (comparison cannot +-- overflow or underflow, so actual subtractions are not necessary). + +-- All operands and results are decQuads. +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +-- sanity checks +dqcms001 comparesig -2 -2 -> 0 +dqcms002 comparesig -2 -1 -> -1 +dqcms003 comparesig -2 0 -> -1 +dqcms004 comparesig -2 1 -> -1 +dqcms005 comparesig -2 2 -> -1 +dqcms006 comparesig -1 -2 -> 1 +dqcms007 comparesig -1 -1 -> 0 +dqcms008 comparesig -1 0 -> -1 +dqcms009 comparesig -1 1 -> -1 +dqcms010 comparesig -1 2 -> -1 +dqcms011 comparesig 0 -2 -> 1 +dqcms012 comparesig 0 -1 -> 1 +dqcms013 comparesig 0 0 -> 0 +dqcms014 comparesig 0 1 -> -1 +dqcms015 comparesig 0 2 -> -1 +dqcms016 comparesig 1 -2 -> 1 +dqcms017 comparesig 1 -1 -> 1 +dqcms018 comparesig 1 0 -> 1 +dqcms019 comparesig 1 1 -> 0 +dqcms020 comparesig 1 2 -> -1 +dqcms021 comparesig 2 -2 -> 1 +dqcms022 comparesig 2 -1 -> 1 +dqcms023 comparesig 2 0 -> 1 +dqcms025 comparesig 2 1 -> 1 +dqcms026 comparesig 2 2 -> 0 + +dqcms031 comparesig -20 -20 -> 0 +dqcms032 comparesig -20 -10 -> -1 +dqcms033 comparesig -20 00 -> -1 +dqcms034 comparesig -20 10 -> -1 +dqcms035 comparesig -20 20 -> -1 +dqcms036 comparesig -10 -20 -> 1 +dqcms037 comparesig -10 -10 -> 0 +dqcms038 comparesig -10 00 -> -1 +dqcms039 comparesig -10 10 -> -1 +dqcms040 comparesig -10 20 -> -1 +dqcms041 comparesig 00 -20 -> 1 +dqcms042 comparesig 00 -10 -> 1 +dqcms043 comparesig 00 00 -> 0 +dqcms044 comparesig 00 10 -> -1 +dqcms045 comparesig 00 20 -> -1 +dqcms046 comparesig 10 -20 -> 1 +dqcms047 comparesig 10 -10 -> 1 +dqcms048 comparesig 10 00 -> 1 +dqcms049 comparesig 10 10 -> 0 +dqcms050 comparesig 10 20 -> -1 +dqcms051 comparesig 20 -20 -> 1 +dqcms052 comparesig 20 -10 -> 1 +dqcms053 comparesig 20 00 -> 1 +dqcms055 comparesig 20 10 -> 1 +dqcms056 comparesig 20 20 -> 0 + +dqcms061 comparesig -2.0 -2.0 -> 0 +dqcms062 comparesig -2.0 -1.0 -> -1 +dqcms063 comparesig -2.0 0.0 -> -1 +dqcms064 comparesig -2.0 1.0 -> -1 +dqcms065 comparesig -2.0 2.0 -> -1 +dqcms066 comparesig -1.0 -2.0 -> 1 +dqcms067 comparesig -1.0 -1.0 -> 0 +dqcms068 comparesig -1.0 0.0 -> -1 +dqcms069 comparesig -1.0 1.0 -> -1 +dqcms070 comparesig -1.0 2.0 -> -1 +dqcms071 comparesig 0.0 -2.0 -> 1 +dqcms072 comparesig 0.0 -1.0 -> 1 +dqcms073 comparesig 0.0 0.0 -> 0 +dqcms074 comparesig 0.0 1.0 -> -1 +dqcms075 comparesig 0.0 2.0 -> -1 +dqcms076 comparesig 1.0 -2.0 -> 1 +dqcms077 comparesig 1.0 -1.0 -> 1 +dqcms078 comparesig 1.0 0.0 -> 1 +dqcms079 comparesig 1.0 1.0 -> 0 +dqcms080 comparesig 1.0 2.0 -> -1 +dqcms081 comparesig 2.0 -2.0 -> 1 +dqcms082 comparesig 2.0 -1.0 -> 1 +dqcms083 comparesig 2.0 0.0 -> 1 +dqcms085 comparesig 2.0 1.0 -> 1 +dqcms086 comparesig 2.0 2.0 -> 0 + +-- now some cases which might overflow if subtract were used +dqcms090 comparesig 9.999999999999999999999999999999999E+6144 9.999999999999999999999999999999999E+6144 -> 0 +dqcms091 comparesig -9.999999999999999999999999999999999E+6144 9.999999999999999999999999999999999E+6144 -> -1 +dqcms092 comparesig 9.999999999999999999999999999999999E+6144 -9.999999999999999999999999999999999E+6144 -> 1 +dqcms093 comparesig -9.999999999999999999999999999999999E+6144 -9.999999999999999999999999999999999E+6144 -> 0 + +-- some differing length/exponent cases +dqcms100 comparesig 7.0 7.0 -> 0 +dqcms101 comparesig 7.0 7 -> 0 +dqcms102 comparesig 7 7.0 -> 0 +dqcms103 comparesig 7E+0 7.0 -> 0 +dqcms104 comparesig 70E-1 7.0 -> 0 +dqcms105 comparesig 0.7E+1 7 -> 0 +dqcms106 comparesig 70E-1 7 -> 0 +dqcms107 comparesig 7.0 7E+0 -> 0 +dqcms108 comparesig 7.0 70E-1 -> 0 +dqcms109 comparesig 7 0.7E+1 -> 0 +dqcms110 comparesig 7 70E-1 -> 0 + +dqcms120 comparesig 8.0 7.0 -> 1 +dqcms121 comparesig 8.0 7 -> 1 +dqcms122 comparesig 8 7.0 -> 1 +dqcms123 comparesig 8E+0 7.0 -> 1 +dqcms124 comparesig 80E-1 7.0 -> 1 +dqcms125 comparesig 0.8E+1 7 -> 1 +dqcms126 comparesig 80E-1 7 -> 1 +dqcms127 comparesig 8.0 7E+0 -> 1 +dqcms128 comparesig 8.0 70E-1 -> 1 +dqcms129 comparesig 8 0.7E+1 -> 1 +dqcms130 comparesig 8 70E-1 -> 1 + +dqcms140 comparesig 8.0 9.0 -> -1 +dqcms141 comparesig 8.0 9 -> -1 +dqcms142 comparesig 8 9.0 -> -1 +dqcms143 comparesig 8E+0 9.0 -> -1 +dqcms144 comparesig 80E-1 9.0 -> -1 +dqcms145 comparesig 0.8E+1 9 -> -1 +dqcms146 comparesig 80E-1 9 -> -1 +dqcms147 comparesig 8.0 9E+0 -> -1 +dqcms148 comparesig 8.0 90E-1 -> -1 +dqcms149 comparesig 8 0.9E+1 -> -1 +dqcms150 comparesig 8 90E-1 -> -1 + +-- and again, with sign changes -+ .. +dqcms200 comparesig -7.0 7.0 -> -1 +dqcms201 comparesig -7.0 7 -> -1 +dqcms202 comparesig -7 7.0 -> -1 +dqcms203 comparesig -7E+0 7.0 -> -1 +dqcms204 comparesig -70E-1 7.0 -> -1 +dqcms205 comparesig -0.7E+1 7 -> -1 +dqcms206 comparesig -70E-1 7 -> -1 +dqcms207 comparesig -7.0 7E+0 -> -1 +dqcms208 comparesig -7.0 70E-1 -> -1 +dqcms209 comparesig -7 0.7E+1 -> -1 +dqcms210 comparesig -7 70E-1 -> -1 + +dqcms220 comparesig -8.0 7.0 -> -1 +dqcms221 comparesig -8.0 7 -> -1 +dqcms222 comparesig -8 7.0 -> -1 +dqcms223 comparesig -8E+0 7.0 -> -1 +dqcms224 comparesig -80E-1 7.0 -> -1 +dqcms225 comparesig -0.8E+1 7 -> -1 +dqcms226 comparesig -80E-1 7 -> -1 +dqcms227 comparesig -8.0 7E+0 -> -1 +dqcms228 comparesig -8.0 70E-1 -> -1 +dqcms229 comparesig -8 0.7E+1 -> -1 +dqcms230 comparesig -8 70E-1 -> -1 + +dqcms240 comparesig -8.0 9.0 -> -1 +dqcms241 comparesig -8.0 9 -> -1 +dqcms242 comparesig -8 9.0 -> -1 +dqcms243 comparesig -8E+0 9.0 -> -1 +dqcms244 comparesig -80E-1 9.0 -> -1 +dqcms245 comparesig -0.8E+1 9 -> -1 +dqcms246 comparesig -80E-1 9 -> -1 +dqcms247 comparesig -8.0 9E+0 -> -1 +dqcms248 comparesig -8.0 90E-1 -> -1 +dqcms249 comparesig -8 0.9E+1 -> -1 +dqcms250 comparesig -8 90E-1 -> -1 + +-- and again, with sign changes +- .. +dqcms300 comparesig 7.0 -7.0 -> 1 +dqcms301 comparesig 7.0 -7 -> 1 +dqcms302 comparesig 7 -7.0 -> 1 +dqcms303 comparesig 7E+0 -7.0 -> 1 +dqcms304 comparesig 70E-1 -7.0 -> 1 +dqcms305 comparesig .7E+1 -7 -> 1 +dqcms306 comparesig 70E-1 -7 -> 1 +dqcms307 comparesig 7.0 -7E+0 -> 1 +dqcms308 comparesig 7.0 -70E-1 -> 1 +dqcms309 comparesig 7 -.7E+1 -> 1 +dqcms310 comparesig 7 -70E-1 -> 1 + +dqcms320 comparesig 8.0 -7.0 -> 1 +dqcms321 comparesig 8.0 -7 -> 1 +dqcms322 comparesig 8 -7.0 -> 1 +dqcms323 comparesig 8E+0 -7.0 -> 1 +dqcms324 comparesig 80E-1 -7.0 -> 1 +dqcms325 comparesig .8E+1 -7 -> 1 +dqcms326 comparesig 80E-1 -7 -> 1 +dqcms327 comparesig 8.0 -7E+0 -> 1 +dqcms328 comparesig 8.0 -70E-1 -> 1 +dqcms329 comparesig 8 -.7E+1 -> 1 +dqcms330 comparesig 8 -70E-1 -> 1 + +dqcms340 comparesig 8.0 -9.0 -> 1 +dqcms341 comparesig 8.0 -9 -> 1 +dqcms342 comparesig 8 -9.0 -> 1 +dqcms343 comparesig 8E+0 -9.0 -> 1 +dqcms344 comparesig 80E-1 -9.0 -> 1 +dqcms345 comparesig .8E+1 -9 -> 1 +dqcms346 comparesig 80E-1 -9 -> 1 +dqcms347 comparesig 8.0 -9E+0 -> 1 +dqcms348 comparesig 8.0 -90E-1 -> 1 +dqcms349 comparesig 8 -.9E+1 -> 1 +dqcms350 comparesig 8 -90E-1 -> 1 + +-- and again, with sign changes -- .. +dqcms400 comparesig -7.0 -7.0 -> 0 +dqcms401 comparesig -7.0 -7 -> 0 +dqcms402 comparesig -7 -7.0 -> 0 +dqcms403 comparesig -7E+0 -7.0 -> 0 +dqcms404 comparesig -70E-1 -7.0 -> 0 +dqcms405 comparesig -.7E+1 -7 -> 0 +dqcms406 comparesig -70E-1 -7 -> 0 +dqcms407 comparesig -7.0 -7E+0 -> 0 +dqcms408 comparesig -7.0 -70E-1 -> 0 +dqcms409 comparesig -7 -.7E+1 -> 0 +dqcms410 comparesig -7 -70E-1 -> 0 + +dqcms420 comparesig -8.0 -7.0 -> -1 +dqcms421 comparesig -8.0 -7 -> -1 +dqcms422 comparesig -8 -7.0 -> -1 +dqcms423 comparesig -8E+0 -7.0 -> -1 +dqcms424 comparesig -80E-1 -7.0 -> -1 +dqcms425 comparesig -.8E+1 -7 -> -1 +dqcms426 comparesig -80E-1 -7 -> -1 +dqcms427 comparesig -8.0 -7E+0 -> -1 +dqcms428 comparesig -8.0 -70E-1 -> -1 +dqcms429 comparesig -8 -.7E+1 -> -1 +dqcms430 comparesig -8 -70E-1 -> -1 + +dqcms440 comparesig -8.0 -9.0 -> 1 +dqcms441 comparesig -8.0 -9 -> 1 +dqcms442 comparesig -8 -9.0 -> 1 +dqcms443 comparesig -8E+0 -9.0 -> 1 +dqcms444 comparesig -80E-1 -9.0 -> 1 +dqcms445 comparesig -.8E+1 -9 -> 1 +dqcms446 comparesig -80E-1 -9 -> 1 +dqcms447 comparesig -8.0 -9E+0 -> 1 +dqcms448 comparesig -8.0 -90E-1 -> 1 +dqcms449 comparesig -8 -.9E+1 -> 1 +dqcms450 comparesig -8 -90E-1 -> 1 + + +-- testcases that subtract to lots of zeros at boundaries [pgr] +dqcms473 comparesig 123.9999999999999999994560000000000E-89 123.999999999999999999456E-89 -> 0 +dqcms474 comparesig 123.999999999999999999456000000000E+89 123.999999999999999999456E+89 -> 0 +dqcms475 comparesig 123.99999999999999999945600000000E-89 123.999999999999999999456E-89 -> 0 +dqcms476 comparesig 123.9999999999999999994560000000E+89 123.999999999999999999456E+89 -> 0 +dqcms477 comparesig 123.999999999999999999456000000E-89 123.999999999999999999456E-89 -> 0 +dqcms478 comparesig 123.99999999999999999945600000E+89 123.999999999999999999456E+89 -> 0 +dqcms479 comparesig 123.9999999999999999994560000E-89 123.999999999999999999456E-89 -> 0 +dqcms480 comparesig 123.999999999999999999456000E+89 123.999999999999999999456E+89 -> 0 +dqcms481 comparesig 123.99999999999999999945600E-89 123.999999999999999999456E-89 -> 0 +dqcms482 comparesig 123.9999999999999999994560E+89 123.999999999999999999456E+89 -> 0 +dqcms483 comparesig 123.999999999999999999456E-89 123.999999999999999999456E-89 -> 0 +dqcms487 comparesig 123.999999999999999999456E+89 123.9999999999999999994560000000000E+89 -> 0 +dqcms488 comparesig 123.999999999999999999456E-89 123.999999999999999999456000000000E-89 -> 0 +dqcms489 comparesig 123.999999999999999999456E+89 123.99999999999999999945600000000E+89 -> 0 +dqcms490 comparesig 123.999999999999999999456E-89 123.9999999999999999994560000000E-89 -> 0 +dqcms491 comparesig 123.999999999999999999456E+89 123.999999999999999999456000000E+89 -> 0 +dqcms492 comparesig 123.999999999999999999456E-89 123.99999999999999999945600000E-89 -> 0 +dqcms493 comparesig 123.999999999999999999456E+89 123.9999999999999999994560000E+89 -> 0 +dqcms494 comparesig 123.999999999999999999456E-89 123.999999999999999999456000E-89 -> 0 +dqcms495 comparesig 123.999999999999999999456E+89 123.99999999999999999945600E+89 -> 0 +dqcms496 comparesig 123.999999999999999999456E-89 123.9999999999999999994560E-89 -> 0 +dqcms497 comparesig 123.999999999999999999456E+89 123.999999999999999999456E+89 -> 0 + +-- wide-ranging, around precision; signs equal +dqcms500 comparesig 1 1E-15 -> 1 +dqcms501 comparesig 1 1E-14 -> 1 +dqcms502 comparesig 1 1E-13 -> 1 +dqcms503 comparesig 1 1E-12 -> 1 +dqcms504 comparesig 1 1E-11 -> 1 +dqcms505 comparesig 1 1E-10 -> 1 +dqcms506 comparesig 1 1E-9 -> 1 +dqcms507 comparesig 1 1E-8 -> 1 +dqcms508 comparesig 1 1E-7 -> 1 +dqcms509 comparesig 1 1E-6 -> 1 +dqcms510 comparesig 1 1E-5 -> 1 +dqcms511 comparesig 1 1E-4 -> 1 +dqcms512 comparesig 1 1E-3 -> 1 +dqcms513 comparesig 1 1E-2 -> 1 +dqcms514 comparesig 1 1E-1 -> 1 +dqcms515 comparesig 1 1E-0 -> 0 +dqcms516 comparesig 1 1E+1 -> -1 +dqcms517 comparesig 1 1E+2 -> -1 +dqcms518 comparesig 1 1E+3 -> -1 +dqcms519 comparesig 1 1E+4 -> -1 +dqcms521 comparesig 1 1E+5 -> -1 +dqcms522 comparesig 1 1E+6 -> -1 +dqcms523 comparesig 1 1E+7 -> -1 +dqcms524 comparesig 1 1E+8 -> -1 +dqcms525 comparesig 1 1E+9 -> -1 +dqcms526 comparesig 1 1E+10 -> -1 +dqcms527 comparesig 1 1E+11 -> -1 +dqcms528 comparesig 1 1E+12 -> -1 +dqcms529 comparesig 1 1E+13 -> -1 +dqcms530 comparesig 1 1E+14 -> -1 +dqcms531 comparesig 1 1E+15 -> -1 +-- LR swap +dqcms540 comparesig 1E-15 1 -> -1 +dqcms541 comparesig 1E-14 1 -> -1 +dqcms542 comparesig 1E-13 1 -> -1 +dqcms543 comparesig 1E-12 1 -> -1 +dqcms544 comparesig 1E-11 1 -> -1 +dqcms545 comparesig 1E-10 1 -> -1 +dqcms546 comparesig 1E-9 1 -> -1 +dqcms547 comparesig 1E-8 1 -> -1 +dqcms548 comparesig 1E-7 1 -> -1 +dqcms549 comparesig 1E-6 1 -> -1 +dqcms550 comparesig 1E-5 1 -> -1 +dqcms551 comparesig 1E-4 1 -> -1 +dqcms552 comparesig 1E-3 1 -> -1 +dqcms553 comparesig 1E-2 1 -> -1 +dqcms554 comparesig 1E-1 1 -> -1 +dqcms555 comparesig 1E-0 1 -> 0 +dqcms556 comparesig 1E+1 1 -> 1 +dqcms557 comparesig 1E+2 1 -> 1 +dqcms558 comparesig 1E+3 1 -> 1 +dqcms559 comparesig 1E+4 1 -> 1 +dqcms561 comparesig 1E+5 1 -> 1 +dqcms562 comparesig 1E+6 1 -> 1 +dqcms563 comparesig 1E+7 1 -> 1 +dqcms564 comparesig 1E+8 1 -> 1 +dqcms565 comparesig 1E+9 1 -> 1 +dqcms566 comparesig 1E+10 1 -> 1 +dqcms567 comparesig 1E+11 1 -> 1 +dqcms568 comparesig 1E+12 1 -> 1 +dqcms569 comparesig 1E+13 1 -> 1 +dqcms570 comparesig 1E+14 1 -> 1 +dqcms571 comparesig 1E+15 1 -> 1 +-- similar with a useful coefficient, one side only +dqcms580 comparesig 0.000000987654321 1E-15 -> 1 +dqcms581 comparesig 0.000000987654321 1E-14 -> 1 +dqcms582 comparesig 0.000000987654321 1E-13 -> 1 +dqcms583 comparesig 0.000000987654321 1E-12 -> 1 +dqcms584 comparesig 0.000000987654321 1E-11 -> 1 +dqcms585 comparesig 0.000000987654321 1E-10 -> 1 +dqcms586 comparesig 0.000000987654321 1E-9 -> 1 +dqcms587 comparesig 0.000000987654321 1E-8 -> 1 +dqcms588 comparesig 0.000000987654321 1E-7 -> 1 +dqcms589 comparesig 0.000000987654321 1E-6 -> -1 +dqcms590 comparesig 0.000000987654321 1E-5 -> -1 +dqcms591 comparesig 0.000000987654321 1E-4 -> -1 +dqcms592 comparesig 0.000000987654321 1E-3 -> -1 +dqcms593 comparesig 0.000000987654321 1E-2 -> -1 +dqcms594 comparesig 0.000000987654321 1E-1 -> -1 +dqcms595 comparesig 0.000000987654321 1E-0 -> -1 +dqcms596 comparesig 0.000000987654321 1E+1 -> -1 +dqcms597 comparesig 0.000000987654321 1E+2 -> -1 +dqcms598 comparesig 0.000000987654321 1E+3 -> -1 +dqcms599 comparesig 0.000000987654321 1E+4 -> -1 + +-- check some unit-y traps +dqcms600 comparesig 12 12.2345 -> -1 +dqcms601 comparesig 12.0 12.2345 -> -1 +dqcms602 comparesig 12.00 12.2345 -> -1 +dqcms603 comparesig 12.000 12.2345 -> -1 +dqcms604 comparesig 12.0000 12.2345 -> -1 +dqcms605 comparesig 12.00000 12.2345 -> -1 +dqcms606 comparesig 12.000000 12.2345 -> -1 +dqcms607 comparesig 12.0000000 12.2345 -> -1 +dqcms608 comparesig 12.00000000 12.2345 -> -1 +dqcms609 comparesig 12.000000000 12.2345 -> -1 +dqcms610 comparesig 12.1234 12 -> 1 +dqcms611 comparesig 12.1234 12.0 -> 1 +dqcms612 comparesig 12.1234 12.00 -> 1 +dqcms613 comparesig 12.1234 12.000 -> 1 +dqcms614 comparesig 12.1234 12.0000 -> 1 +dqcms615 comparesig 12.1234 12.00000 -> 1 +dqcms616 comparesig 12.1234 12.000000 -> 1 +dqcms617 comparesig 12.1234 12.0000000 -> 1 +dqcms618 comparesig 12.1234 12.00000000 -> 1 +dqcms619 comparesig 12.1234 12.000000000 -> 1 +dqcms620 comparesig -12 -12.2345 -> 1 +dqcms621 comparesig -12.0 -12.2345 -> 1 +dqcms622 comparesig -12.00 -12.2345 -> 1 +dqcms623 comparesig -12.000 -12.2345 -> 1 +dqcms624 comparesig -12.0000 -12.2345 -> 1 +dqcms625 comparesig -12.00000 -12.2345 -> 1 +dqcms626 comparesig -12.000000 -12.2345 -> 1 +dqcms627 comparesig -12.0000000 -12.2345 -> 1 +dqcms628 comparesig -12.00000000 -12.2345 -> 1 +dqcms629 comparesig -12.000000000 -12.2345 -> 1 +dqcms630 comparesig -12.1234 -12 -> -1 +dqcms631 comparesig -12.1234 -12.0 -> -1 +dqcms632 comparesig -12.1234 -12.00 -> -1 +dqcms633 comparesig -12.1234 -12.000 -> -1 +dqcms634 comparesig -12.1234 -12.0000 -> -1 +dqcms635 comparesig -12.1234 -12.00000 -> -1 +dqcms636 comparesig -12.1234 -12.000000 -> -1 +dqcms637 comparesig -12.1234 -12.0000000 -> -1 +dqcms638 comparesig -12.1234 -12.00000000 -> -1 +dqcms639 comparesig -12.1234 -12.000000000 -> -1 + +-- extended zeros +dqcms640 comparesig 0 0 -> 0 +dqcms641 comparesig 0 -0 -> 0 +dqcms642 comparesig 0 -0.0 -> 0 +dqcms643 comparesig 0 0.0 -> 0 +dqcms644 comparesig -0 0 -> 0 +dqcms645 comparesig -0 -0 -> 0 +dqcms646 comparesig -0 -0.0 -> 0 +dqcms647 comparesig -0 0.0 -> 0 +dqcms648 comparesig 0.0 0 -> 0 +dqcms649 comparesig 0.0 -0 -> 0 +dqcms650 comparesig 0.0 -0.0 -> 0 +dqcms651 comparesig 0.0 0.0 -> 0 +dqcms652 comparesig -0.0 0 -> 0 +dqcms653 comparesig -0.0 -0 -> 0 +dqcms654 comparesig -0.0 -0.0 -> 0 +dqcms655 comparesig -0.0 0.0 -> 0 + +dqcms656 comparesig -0E1 0.0 -> 0 +dqcms657 comparesig -0E2 0.0 -> 0 +dqcms658 comparesig 0E1 0.0 -> 0 +dqcms659 comparesig 0E2 0.0 -> 0 +dqcms660 comparesig -0E1 0 -> 0 +dqcms661 comparesig -0E2 0 -> 0 +dqcms662 comparesig 0E1 0 -> 0 +dqcms663 comparesig 0E2 0 -> 0 +dqcms664 comparesig -0E1 -0E1 -> 0 +dqcms665 comparesig -0E2 -0E1 -> 0 +dqcms666 comparesig 0E1 -0E1 -> 0 +dqcms667 comparesig 0E2 -0E1 -> 0 +dqcms668 comparesig -0E1 -0E2 -> 0 +dqcms669 comparesig -0E2 -0E2 -> 0 +dqcms670 comparesig 0E1 -0E2 -> 0 +dqcms671 comparesig 0E2 -0E2 -> 0 +dqcms672 comparesig -0E1 0E1 -> 0 +dqcms673 comparesig -0E2 0E1 -> 0 +dqcms674 comparesig 0E1 0E1 -> 0 +dqcms675 comparesig 0E2 0E1 -> 0 +dqcms676 comparesig -0E1 0E2 -> 0 +dqcms677 comparesig -0E2 0E2 -> 0 +dqcms678 comparesig 0E1 0E2 -> 0 +dqcms679 comparesig 0E2 0E2 -> 0 + +-- trailing zeros; unit-y +dqcms680 comparesig 12 12 -> 0 +dqcms681 comparesig 12 12.0 -> 0 +dqcms682 comparesig 12 12.00 -> 0 +dqcms683 comparesig 12 12.000 -> 0 +dqcms684 comparesig 12 12.0000 -> 0 +dqcms685 comparesig 12 12.00000 -> 0 +dqcms686 comparesig 12 12.000000 -> 0 +dqcms687 comparesig 12 12.0000000 -> 0 +dqcms688 comparesig 12 12.00000000 -> 0 +dqcms689 comparesig 12 12.000000000 -> 0 +dqcms690 comparesig 12 12 -> 0 +dqcms691 comparesig 12.0 12 -> 0 +dqcms692 comparesig 12.00 12 -> 0 +dqcms693 comparesig 12.000 12 -> 0 +dqcms694 comparesig 12.0000 12 -> 0 +dqcms695 comparesig 12.00000 12 -> 0 +dqcms696 comparesig 12.000000 12 -> 0 +dqcms697 comparesig 12.0000000 12 -> 0 +dqcms698 comparesig 12.00000000 12 -> 0 +dqcms699 comparesig 12.000000000 12 -> 0 + +-- first, second, & last digit +dqcms700 comparesig 1234567899999999999999999990123456 1234567899999999999999999990123455 -> 1 +dqcms701 comparesig 1234567899999999999999999990123456 1234567899999999999999999990123456 -> 0 +dqcms702 comparesig 1234567899999999999999999990123456 1234567899999999999999999990123457 -> -1 +dqcms703 comparesig 1234567899999999999999999990123456 0234567899999999999999999990123456 -> 1 +dqcms704 comparesig 1234567899999999999999999990123456 1234567899999999999999999990123456 -> 0 +dqcms705 comparesig 1234567899999999999999999990123456 2234567899999999999999999990123456 -> -1 +dqcms706 comparesig 1134567899999999999999999990123456 1034567899999999999999999990123456 -> 1 +dqcms707 comparesig 1134567899999999999999999990123456 1134567899999999999999999990123456 -> 0 +dqcms708 comparesig 1134567899999999999999999990123456 1234567899999999999999999990123456 -> -1 + +-- miscellaneous +dqcms721 comparesig 12345678000 1 -> 1 +dqcms722 comparesig 1 12345678000 -> -1 +dqcms723 comparesig 1234567800 1 -> 1 +dqcms724 comparesig 1 1234567800 -> -1 +dqcms725 comparesig 1234567890 1 -> 1 +dqcms726 comparesig 1 1234567890 -> -1 +dqcms727 comparesig 1234567891 1 -> 1 +dqcms728 comparesig 1 1234567891 -> -1 +dqcms729 comparesig 12345678901 1 -> 1 +dqcms730 comparesig 1 12345678901 -> -1 +dqcms731 comparesig 1234567896 1 -> 1 +dqcms732 comparesig 1 1234567896 -> -1 + +-- residue cases at lower precision +dqcms740 comparesig 1 0.9999999 -> 1 +dqcms741 comparesig 1 0.999999 -> 1 +dqcms742 comparesig 1 0.99999 -> 1 +dqcms743 comparesig 1 1.0000 -> 0 +dqcms744 comparesig 1 1.00001 -> -1 +dqcms745 comparesig 1 1.000001 -> -1 +dqcms746 comparesig 1 1.0000001 -> -1 +dqcms750 comparesig 0.9999999 1 -> -1 +dqcms751 comparesig 0.999999 1 -> -1 +dqcms752 comparesig 0.99999 1 -> -1 +dqcms753 comparesig 1.0000 1 -> 0 +dqcms754 comparesig 1.00001 1 -> 1 +dqcms755 comparesig 1.000001 1 -> 1 +dqcms756 comparesig 1.0000001 1 -> 1 + +-- Specials +dqcms780 comparesig Inf -Inf -> 1 +dqcms781 comparesig Inf -1000 -> 1 +dqcms782 comparesig Inf -1 -> 1 +dqcms783 comparesig Inf -0 -> 1 +dqcms784 comparesig Inf 0 -> 1 +dqcms785 comparesig Inf 1 -> 1 +dqcms786 comparesig Inf 1000 -> 1 +dqcms787 comparesig Inf Inf -> 0 +dqcms788 comparesig -1000 Inf -> -1 +dqcms789 comparesig -Inf Inf -> -1 +dqcms790 comparesig -1 Inf -> -1 +dqcms791 comparesig -0 Inf -> -1 +dqcms792 comparesig 0 Inf -> -1 +dqcms793 comparesig 1 Inf -> -1 +dqcms794 comparesig 1000 Inf -> -1 +dqcms795 comparesig Inf Inf -> 0 + +dqcms800 comparesig -Inf -Inf -> 0 +dqcms801 comparesig -Inf -1000 -> -1 +dqcms802 comparesig -Inf -1 -> -1 +dqcms803 comparesig -Inf -0 -> -1 +dqcms804 comparesig -Inf 0 -> -1 +dqcms805 comparesig -Inf 1 -> -1 +dqcms806 comparesig -Inf 1000 -> -1 +dqcms807 comparesig -Inf Inf -> -1 +dqcms808 comparesig -Inf -Inf -> 0 +dqcms809 comparesig -1000 -Inf -> 1 +dqcms810 comparesig -1 -Inf -> 1 +dqcms811 comparesig -0 -Inf -> 1 +dqcms812 comparesig 0 -Inf -> 1 +dqcms813 comparesig 1 -Inf -> 1 +dqcms814 comparesig 1000 -Inf -> 1 +dqcms815 comparesig Inf -Inf -> 1 + +dqcms821 comparesig NaN -Inf -> NaN Invalid_operation +dqcms822 comparesig NaN -1000 -> NaN Invalid_operation +dqcms823 comparesig NaN -1 -> NaN Invalid_operation +dqcms824 comparesig NaN -0 -> NaN Invalid_operation +dqcms825 comparesig NaN 0 -> NaN Invalid_operation +dqcms826 comparesig NaN 1 -> NaN Invalid_operation +dqcms827 comparesig NaN 1000 -> NaN Invalid_operation +dqcms828 comparesig NaN Inf -> NaN Invalid_operation +dqcms829 comparesig NaN NaN -> NaN Invalid_operation +dqcms830 comparesig -Inf NaN -> NaN Invalid_operation +dqcms831 comparesig -1000 NaN -> NaN Invalid_operation +dqcms832 comparesig -1 NaN -> NaN Invalid_operation +dqcms833 comparesig -0 NaN -> NaN Invalid_operation +dqcms834 comparesig 0 NaN -> NaN Invalid_operation +dqcms835 comparesig 1 NaN -> NaN Invalid_operation +dqcms836 comparesig 1000 NaN -> NaN Invalid_operation +dqcms837 comparesig Inf NaN -> NaN Invalid_operation +dqcms838 comparesig -NaN -NaN -> -NaN Invalid_operation +dqcms839 comparesig +NaN -NaN -> NaN Invalid_operation +dqcms840 comparesig -NaN +NaN -> -NaN Invalid_operation + +dqcms841 comparesig sNaN -Inf -> NaN Invalid_operation +dqcms842 comparesig sNaN -1000 -> NaN Invalid_operation +dqcms843 comparesig sNaN -1 -> NaN Invalid_operation +dqcms844 comparesig sNaN -0 -> NaN Invalid_operation +dqcms845 comparesig sNaN 0 -> NaN Invalid_operation +dqcms846 comparesig sNaN 1 -> NaN Invalid_operation +dqcms847 comparesig sNaN 1000 -> NaN Invalid_operation +dqcms848 comparesig sNaN NaN -> NaN Invalid_operation +dqcms849 comparesig sNaN sNaN -> NaN Invalid_operation +dqcms850 comparesig NaN sNaN -> NaN Invalid_operation +dqcms851 comparesig -Inf sNaN -> NaN Invalid_operation +dqcms852 comparesig -1000 sNaN -> NaN Invalid_operation +dqcms853 comparesig -1 sNaN -> NaN Invalid_operation +dqcms854 comparesig -0 sNaN -> NaN Invalid_operation +dqcms855 comparesig 0 sNaN -> NaN Invalid_operation +dqcms856 comparesig 1 sNaN -> NaN Invalid_operation +dqcms857 comparesig 1000 sNaN -> NaN Invalid_operation +dqcms858 comparesig Inf sNaN -> NaN Invalid_operation +dqcms859 comparesig NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +dqcms860 comparesig NaN9 -Inf -> NaN9 Invalid_operation +dqcms861 comparesig NaN8 999 -> NaN8 Invalid_operation +dqcms862 comparesig NaN77 Inf -> NaN77 Invalid_operation +dqcms863 comparesig -NaN67 NaN5 -> -NaN67 Invalid_operation +dqcms864 comparesig -Inf -NaN4 -> -NaN4 Invalid_operation +dqcms865 comparesig -999 -NaN33 -> -NaN33 Invalid_operation +dqcms866 comparesig Inf NaN2 -> NaN2 Invalid_operation +dqcms867 comparesig -NaN41 -NaN42 -> -NaN41 Invalid_operation +dqcms868 comparesig +NaN41 -NaN42 -> NaN41 Invalid_operation +dqcms869 comparesig -NaN41 +NaN42 -> -NaN41 Invalid_operation +dqcms870 comparesig +NaN41 +NaN42 -> NaN41 Invalid_operation + +dqcms871 comparesig -sNaN99 -Inf -> -NaN99 Invalid_operation +dqcms872 comparesig sNaN98 -11 -> NaN98 Invalid_operation +dqcms873 comparesig sNaN97 NaN -> NaN97 Invalid_operation +dqcms874 comparesig sNaN16 sNaN94 -> NaN16 Invalid_operation +dqcms875 comparesig NaN85 sNaN83 -> NaN83 Invalid_operation +dqcms876 comparesig -Inf sNaN92 -> NaN92 Invalid_operation +dqcms877 comparesig 088 sNaN81 -> NaN81 Invalid_operation +dqcms878 comparesig Inf sNaN90 -> NaN90 Invalid_operation +dqcms879 comparesig NaN -sNaN89 -> -NaN89 Invalid_operation + +-- wide range +dqcms880 comparesig +1.23456789012345E-0 9E+6144 -> -1 +dqcms881 comparesig 9E+6144 +1.23456789012345E-0 -> 1 +dqcms882 comparesig +0.100 9E-6143 -> 1 +dqcms883 comparesig 9E-6143 +0.100 -> -1 +dqcms885 comparesig -1.23456789012345E-0 9E+6144 -> -1 +dqcms886 comparesig 9E+6144 -1.23456789012345E-0 -> 1 +dqcms887 comparesig -0.100 9E-6143 -> -1 +dqcms888 comparesig 9E-6143 -0.100 -> 1 + +-- signs +dqcms901 comparesig 1e+77 1e+11 -> 1 +dqcms902 comparesig 1e+77 -1e+11 -> 1 +dqcms903 comparesig -1e+77 1e+11 -> -1 +dqcms904 comparesig -1e+77 -1e+11 -> -1 +dqcms905 comparesig 1e-77 1e-11 -> -1 +dqcms906 comparesig 1e-77 -1e-11 -> 1 +dqcms907 comparesig -1e-77 1e-11 -> -1 +dqcms908 comparesig -1e-77 -1e-11 -> 1 + +-- Null tests +dqcms990 comparesig 10 # -> NaN Invalid_operation +dqcms991 comparesig # 10 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/dqCompareTotal.decTest b/Lib/test/decimaltestdata/dqCompareTotal.decTest index bae3761909..13701ccb57 100644 --- a/Lib/test/decimaltestdata/dqCompareTotal.decTest +++ b/Lib/test/decimaltestdata/dqCompareTotal.decTest @@ -1,706 +1,706 @@ -------------------------------------------------------------------------
--- dqCompareTotal.decTest -- decQuad comparison using total ordering --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- Note that we cannot assume add/subtract tests cover paths adequately,
--- here, because the code might be quite different (comparison cannot
--- overflow or underflow, so actual subtractions are not necessary).
--- Similarly, comparetotal will have some radically different paths
--- than compare.
-
--- All operands and results are decQuads.
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
--- sanity checks
-dqcot001 comparetotal -2 -2 -> 0
-dqcot002 comparetotal -2 -1 -> -1
-dqcot003 comparetotal -2 0 -> -1
-dqcot004 comparetotal -2 1 -> -1
-dqcot005 comparetotal -2 2 -> -1
-dqcot006 comparetotal -1 -2 -> 1
-dqcot007 comparetotal -1 -1 -> 0
-dqcot008 comparetotal -1 0 -> -1
-dqcot009 comparetotal -1 1 -> -1
-dqcot010 comparetotal -1 2 -> -1
-dqcot011 comparetotal 0 -2 -> 1
-dqcot012 comparetotal 0 -1 -> 1
-dqcot013 comparetotal 0 0 -> 0
-dqcot014 comparetotal 0 1 -> -1
-dqcot015 comparetotal 0 2 -> -1
-dqcot016 comparetotal 1 -2 -> 1
-dqcot017 comparetotal 1 -1 -> 1
-dqcot018 comparetotal 1 0 -> 1
-dqcot019 comparetotal 1 1 -> 0
-dqcot020 comparetotal 1 2 -> -1
-dqcot021 comparetotal 2 -2 -> 1
-dqcot022 comparetotal 2 -1 -> 1
-dqcot023 comparetotal 2 0 -> 1
-dqcot025 comparetotal 2 1 -> 1
-dqcot026 comparetotal 2 2 -> 0
-
-dqcot031 comparetotal -20 -20 -> 0
-dqcot032 comparetotal -20 -10 -> -1
-dqcot033 comparetotal -20 00 -> -1
-dqcot034 comparetotal -20 10 -> -1
-dqcot035 comparetotal -20 20 -> -1
-dqcot036 comparetotal -10 -20 -> 1
-dqcot037 comparetotal -10 -10 -> 0
-dqcot038 comparetotal -10 00 -> -1
-dqcot039 comparetotal -10 10 -> -1
-dqcot040 comparetotal -10 20 -> -1
-dqcot041 comparetotal 00 -20 -> 1
-dqcot042 comparetotal 00 -10 -> 1
-dqcot043 comparetotal 00 00 -> 0
-dqcot044 comparetotal 00 10 -> -1
-dqcot045 comparetotal 00 20 -> -1
-dqcot046 comparetotal 10 -20 -> 1
-dqcot047 comparetotal 10 -10 -> 1
-dqcot048 comparetotal 10 00 -> 1
-dqcot049 comparetotal 10 10 -> 0
-dqcot050 comparetotal 10 20 -> -1
-dqcot051 comparetotal 20 -20 -> 1
-dqcot052 comparetotal 20 -10 -> 1
-dqcot053 comparetotal 20 00 -> 1
-dqcot055 comparetotal 20 10 -> 1
-dqcot056 comparetotal 20 20 -> 0
-
-dqcot061 comparetotal -2.0 -2.0 -> 0
-dqcot062 comparetotal -2.0 -1.0 -> -1
-dqcot063 comparetotal -2.0 0.0 -> -1
-dqcot064 comparetotal -2.0 1.0 -> -1
-dqcot065 comparetotal -2.0 2.0 -> -1
-dqcot066 comparetotal -1.0 -2.0 -> 1
-dqcot067 comparetotal -1.0 -1.0 -> 0
-dqcot068 comparetotal -1.0 0.0 -> -1
-dqcot069 comparetotal -1.0 1.0 -> -1
-dqcot070 comparetotal -1.0 2.0 -> -1
-dqcot071 comparetotal 0.0 -2.0 -> 1
-dqcot072 comparetotal 0.0 -1.0 -> 1
-dqcot073 comparetotal 0.0 0.0 -> 0
-dqcot074 comparetotal 0.0 1.0 -> -1
-dqcot075 comparetotal 0.0 2.0 -> -1
-dqcot076 comparetotal 1.0 -2.0 -> 1
-dqcot077 comparetotal 1.0 -1.0 -> 1
-dqcot078 comparetotal 1.0 0.0 -> 1
-dqcot079 comparetotal 1.0 1.0 -> 0
-dqcot080 comparetotal 1.0 2.0 -> -1
-dqcot081 comparetotal 2.0 -2.0 -> 1
-dqcot082 comparetotal 2.0 -1.0 -> 1
-dqcot083 comparetotal 2.0 0.0 -> 1
-dqcot085 comparetotal 2.0 1.0 -> 1
-dqcot086 comparetotal 2.0 2.0 -> 0
-
--- now some cases which might overflow if subtract were used
-dqcot090 comparetotal 9.99999999999999999999999999999E+6144 9.99999999999999999999999999999E+6144 -> 0
-dqcot091 comparetotal -9.99999999999999999999999999999E+6144 9.99999999999999999999999999999E+6144 -> -1
-dqcot092 comparetotal 9.99999999999999999999999999999E+6144 -9.99999999999999999999999999999E+6144 -> 1
-dqcot093 comparetotal -9.99999999999999999999999999999E+6144 -9.99999999999999999999999999999E+6144 -> 0
-
--- some differing length/exponent cases
--- in this first group, compare would compare all equal
-dqcot100 comparetotal 7.0 7.0 -> 0
-dqcot101 comparetotal 7.0 7 -> -1
-dqcot102 comparetotal 7 7.0 -> 1
-dqcot103 comparetotal 7E+0 7.0 -> 1
-dqcot104 comparetotal 70E-1 7.0 -> 0
-dqcot105 comparetotal 0.7E+1 7 -> 0
-dqcot106 comparetotal 70E-1 7 -> -1
-dqcot107 comparetotal 7.0 7E+0 -> -1
-dqcot108 comparetotal 7.0 70E-1 -> 0
-dqcot109 comparetotal 7 0.7E+1 -> 0
-dqcot110 comparetotal 7 70E-1 -> 1
-
-dqcot120 comparetotal 8.0 7.0 -> 1
-dqcot121 comparetotal 8.0 7 -> 1
-dqcot122 comparetotal 8 7.0 -> 1
-dqcot123 comparetotal 8E+0 7.0 -> 1
-dqcot124 comparetotal 80E-1 7.0 -> 1
-dqcot125 comparetotal 0.8E+1 7 -> 1
-dqcot126 comparetotal 80E-1 7 -> 1
-dqcot127 comparetotal 8.0 7E+0 -> 1
-dqcot128 comparetotal 8.0 70E-1 -> 1
-dqcot129 comparetotal 8 0.7E+1 -> 1
-dqcot130 comparetotal 8 70E-1 -> 1
-
-dqcot140 comparetotal 8.0 9.0 -> -1
-dqcot141 comparetotal 8.0 9 -> -1
-dqcot142 comparetotal 8 9.0 -> -1
-dqcot143 comparetotal 8E+0 9.0 -> -1
-dqcot144 comparetotal 80E-1 9.0 -> -1
-dqcot145 comparetotal 0.8E+1 9 -> -1
-dqcot146 comparetotal 80E-1 9 -> -1
-dqcot147 comparetotal 8.0 9E+0 -> -1
-dqcot148 comparetotal 8.0 90E-1 -> -1
-dqcot149 comparetotal 8 0.9E+1 -> -1
-dqcot150 comparetotal 8 90E-1 -> -1
-
--- and again, with sign changes -+ ..
-dqcot200 comparetotal -7.0 7.0 -> -1
-dqcot201 comparetotal -7.0 7 -> -1
-dqcot202 comparetotal -7 7.0 -> -1
-dqcot203 comparetotal -7E+0 7.0 -> -1
-dqcot204 comparetotal -70E-1 7.0 -> -1
-dqcot205 comparetotal -0.7E+1 7 -> -1
-dqcot206 comparetotal -70E-1 7 -> -1
-dqcot207 comparetotal -7.0 7E+0 -> -1
-dqcot208 comparetotal -7.0 70E-1 -> -1
-dqcot209 comparetotal -7 0.7E+1 -> -1
-dqcot210 comparetotal -7 70E-1 -> -1
-
-dqcot220 comparetotal -8.0 7.0 -> -1
-dqcot221 comparetotal -8.0 7 -> -1
-dqcot222 comparetotal -8 7.0 -> -1
-dqcot223 comparetotal -8E+0 7.0 -> -1
-dqcot224 comparetotal -80E-1 7.0 -> -1
-dqcot225 comparetotal -0.8E+1 7 -> -1
-dqcot226 comparetotal -80E-1 7 -> -1
-dqcot227 comparetotal -8.0 7E+0 -> -1
-dqcot228 comparetotal -8.0 70E-1 -> -1
-dqcot229 comparetotal -8 0.7E+1 -> -1
-dqcot230 comparetotal -8 70E-1 -> -1
-
-dqcot240 comparetotal -8.0 9.0 -> -1
-dqcot241 comparetotal -8.0 9 -> -1
-dqcot242 comparetotal -8 9.0 -> -1
-dqcot243 comparetotal -8E+0 9.0 -> -1
-dqcot244 comparetotal -80E-1 9.0 -> -1
-dqcot245 comparetotal -0.8E+1 9 -> -1
-dqcot246 comparetotal -80E-1 9 -> -1
-dqcot247 comparetotal -8.0 9E+0 -> -1
-dqcot248 comparetotal -8.0 90E-1 -> -1
-dqcot249 comparetotal -8 0.9E+1 -> -1
-dqcot250 comparetotal -8 90E-1 -> -1
-
--- and again, with sign changes +- ..
-dqcot300 comparetotal 7.0 -7.0 -> 1
-dqcot301 comparetotal 7.0 -7 -> 1
-dqcot302 comparetotal 7 -7.0 -> 1
-dqcot303 comparetotal 7E+0 -7.0 -> 1
-dqcot304 comparetotal 70E-1 -7.0 -> 1
-dqcot305 comparetotal .7E+1 -7 -> 1
-dqcot306 comparetotal 70E-1 -7 -> 1
-dqcot307 comparetotal 7.0 -7E+0 -> 1
-dqcot308 comparetotal 7.0 -70E-1 -> 1
-dqcot309 comparetotal 7 -.7E+1 -> 1
-dqcot310 comparetotal 7 -70E-1 -> 1
-
-dqcot320 comparetotal 8.0 -7.0 -> 1
-dqcot321 comparetotal 8.0 -7 -> 1
-dqcot322 comparetotal 8 -7.0 -> 1
-dqcot323 comparetotal 8E+0 -7.0 -> 1
-dqcot324 comparetotal 80E-1 -7.0 -> 1
-dqcot325 comparetotal .8E+1 -7 -> 1
-dqcot326 comparetotal 80E-1 -7 -> 1
-dqcot327 comparetotal 8.0 -7E+0 -> 1
-dqcot328 comparetotal 8.0 -70E-1 -> 1
-dqcot329 comparetotal 8 -.7E+1 -> 1
-dqcot330 comparetotal 8 -70E-1 -> 1
-
-dqcot340 comparetotal 8.0 -9.0 -> 1
-dqcot341 comparetotal 8.0 -9 -> 1
-dqcot342 comparetotal 8 -9.0 -> 1
-dqcot343 comparetotal 8E+0 -9.0 -> 1
-dqcot344 comparetotal 80E-1 -9.0 -> 1
-dqcot345 comparetotal .8E+1 -9 -> 1
-dqcot346 comparetotal 80E-1 -9 -> 1
-dqcot347 comparetotal 8.0 -9E+0 -> 1
-dqcot348 comparetotal 8.0 -90E-1 -> 1
-dqcot349 comparetotal 8 -.9E+1 -> 1
-dqcot350 comparetotal 8 -90E-1 -> 1
-
--- and again, with sign changes -- ..
-dqcot400 comparetotal -7.0 -7.0 -> 0
-dqcot401 comparetotal -7.0 -7 -> 1
-dqcot402 comparetotal -7 -7.0 -> -1
-dqcot403 comparetotal -7E+0 -7.0 -> -1
-dqcot404 comparetotal -70E-1 -7.0 -> 0
-dqcot405 comparetotal -.7E+1 -7 -> 0
-dqcot406 comparetotal -70E-1 -7 -> 1
-dqcot407 comparetotal -7.0 -7E+0 -> 1
-dqcot408 comparetotal -7.0 -70E-1 -> 0
-dqcot409 comparetotal -7 -.7E+1 -> 0
-dqcot410 comparetotal -7 -70E-1 -> -1
-
-dqcot420 comparetotal -8.0 -7.0 -> -1
-dqcot421 comparetotal -8.0 -7 -> -1
-dqcot422 comparetotal -8 -7.0 -> -1
-dqcot423 comparetotal -8E+0 -7.0 -> -1
-dqcot424 comparetotal -80E-1 -7.0 -> -1
-dqcot425 comparetotal -.8E+1 -7 -> -1
-dqcot426 comparetotal -80E-1 -7 -> -1
-dqcot427 comparetotal -8.0 -7E+0 -> -1
-dqcot428 comparetotal -8.0 -70E-1 -> -1
-dqcot429 comparetotal -8 -.7E+1 -> -1
-dqcot430 comparetotal -8 -70E-1 -> -1
-
-dqcot440 comparetotal -8.0 -9.0 -> 1
-dqcot441 comparetotal -8.0 -9 -> 1
-dqcot442 comparetotal -8 -9.0 -> 1
-dqcot443 comparetotal -8E+0 -9.0 -> 1
-dqcot444 comparetotal -80E-1 -9.0 -> 1
-dqcot445 comparetotal -.8E+1 -9 -> 1
-dqcot446 comparetotal -80E-1 -9 -> 1
-dqcot447 comparetotal -8.0 -9E+0 -> 1
-dqcot448 comparetotal -8.0 -90E-1 -> 1
-dqcot449 comparetotal -8 -.9E+1 -> 1
-dqcot450 comparetotal -8 -90E-1 -> 1
-
-
--- testcases that subtract to lots of zeros at boundaries [pgr]
-dqcot473 comparetotal 123.4560000000000E-89 123.456E-89 -> -1
-dqcot474 comparetotal 123.456000000000E+89 123.456E+89 -> -1
-dqcot475 comparetotal 123.45600000000E-89 123.456E-89 -> -1
-dqcot476 comparetotal 123.4560000000E+89 123.456E+89 -> -1
-dqcot477 comparetotal 123.456000000E-89 123.456E-89 -> -1
-dqcot478 comparetotal 123.45600000E+89 123.456E+89 -> -1
-dqcot479 comparetotal 123.4560000E-89 123.456E-89 -> -1
-dqcot480 comparetotal 123.456000E+89 123.456E+89 -> -1
-dqcot481 comparetotal 123.45600E-89 123.456E-89 -> -1
-dqcot482 comparetotal 123.4560E+89 123.456E+89 -> -1
-dqcot483 comparetotal 123.456E-89 123.456E-89 -> 0
-dqcot487 comparetotal 123.456E+89 123.4560000000000E+89 -> 1
-dqcot488 comparetotal 123.456E-89 123.456000000000E-89 -> 1
-dqcot489 comparetotal 123.456E+89 123.45600000000E+89 -> 1
-dqcot490 comparetotal 123.456E-89 123.4560000000E-89 -> 1
-dqcot491 comparetotal 123.456E+89 123.456000000E+89 -> 1
-dqcot492 comparetotal 123.456E-89 123.45600000E-89 -> 1
-dqcot493 comparetotal 123.456E+89 123.4560000E+89 -> 1
-dqcot494 comparetotal 123.456E-89 123.456000E-89 -> 1
-dqcot495 comparetotal 123.456E+89 123.45600E+89 -> 1
-dqcot496 comparetotal 123.456E-89 123.4560E-89 -> 1
-dqcot497 comparetotal 123.456E+89 123.456E+89 -> 0
-
--- wide-ranging, around precision; signs equal
-dqcot498 comparetotal 1 1E-17 -> 1
-dqcot499 comparetotal 1 1E-16 -> 1
-dqcot500 comparetotal 1 1E-15 -> 1
-dqcot501 comparetotal 1 1E-14 -> 1
-dqcot502 comparetotal 1 1E-13 -> 1
-dqcot503 comparetotal 1 1E-12 -> 1
-dqcot504 comparetotal 1 1E-11 -> 1
-dqcot505 comparetotal 1 1E-10 -> 1
-dqcot506 comparetotal 1 1E-9 -> 1
-dqcot507 comparetotal 1 1E-8 -> 1
-dqcot508 comparetotal 1 1E-7 -> 1
-dqcot509 comparetotal 1 1E-6 -> 1
-dqcot510 comparetotal 1 1E-5 -> 1
-dqcot511 comparetotal 1 1E-4 -> 1
-dqcot512 comparetotal 1 1E-3 -> 1
-dqcot513 comparetotal 1 1E-2 -> 1
-dqcot514 comparetotal 1 1E-1 -> 1
-dqcot515 comparetotal 1 1E-0 -> 0
-dqcot516 comparetotal 1 1E+1 -> -1
-dqcot517 comparetotal 1 1E+2 -> -1
-dqcot518 comparetotal 1 1E+3 -> -1
-dqcot519 comparetotal 1 1E+4 -> -1
-dqcot521 comparetotal 1 1E+5 -> -1
-dqcot522 comparetotal 1 1E+6 -> -1
-dqcot523 comparetotal 1 1E+7 -> -1
-dqcot524 comparetotal 1 1E+8 -> -1
-dqcot525 comparetotal 1 1E+9 -> -1
-dqcot526 comparetotal 1 1E+10 -> -1
-dqcot527 comparetotal 1 1E+11 -> -1
-dqcot528 comparetotal 1 1E+12 -> -1
-dqcot529 comparetotal 1 1E+13 -> -1
-dqcot530 comparetotal 1 1E+14 -> -1
-dqcot531 comparetotal 1 1E+15 -> -1
-dqcot532 comparetotal 1 1E+16 -> -1
-dqcot533 comparetotal 1 1E+17 -> -1
--- LR swap
-dqcot538 comparetotal 1E-17 1 -> -1
-dqcot539 comparetotal 1E-16 1 -> -1
-dqcot540 comparetotal 1E-15 1 -> -1
-dqcot541 comparetotal 1E-14 1 -> -1
-dqcot542 comparetotal 1E-13 1 -> -1
-dqcot543 comparetotal 1E-12 1 -> -1
-dqcot544 comparetotal 1E-11 1 -> -1
-dqcot545 comparetotal 1E-10 1 -> -1
-dqcot546 comparetotal 1E-9 1 -> -1
-dqcot547 comparetotal 1E-8 1 -> -1
-dqcot548 comparetotal 1E-7 1 -> -1
-dqcot549 comparetotal 1E-6 1 -> -1
-dqcot550 comparetotal 1E-5 1 -> -1
-dqcot551 comparetotal 1E-4 1 -> -1
-dqcot552 comparetotal 1E-3 1 -> -1
-dqcot553 comparetotal 1E-2 1 -> -1
-dqcot554 comparetotal 1E-1 1 -> -1
-dqcot555 comparetotal 1E-0 1 -> 0
-dqcot556 comparetotal 1E+1 1 -> 1
-dqcot557 comparetotal 1E+2 1 -> 1
-dqcot558 comparetotal 1E+3 1 -> 1
-dqcot559 comparetotal 1E+4 1 -> 1
-dqcot561 comparetotal 1E+5 1 -> 1
-dqcot562 comparetotal 1E+6 1 -> 1
-dqcot563 comparetotal 1E+7 1 -> 1
-dqcot564 comparetotal 1E+8 1 -> 1
-dqcot565 comparetotal 1E+9 1 -> 1
-dqcot566 comparetotal 1E+10 1 -> 1
-dqcot567 comparetotal 1E+11 1 -> 1
-dqcot568 comparetotal 1E+12 1 -> 1
-dqcot569 comparetotal 1E+13 1 -> 1
-dqcot570 comparetotal 1E+14 1 -> 1
-dqcot571 comparetotal 1E+15 1 -> 1
-dqcot572 comparetotal 1E+16 1 -> 1
-dqcot573 comparetotal 1E+17 1 -> 1
--- similar with a useful coefficient, one side only
-dqcot578 comparetotal 0.000000987654321 1E-17 -> 1
-dqcot579 comparetotal 0.000000987654321 1E-16 -> 1
-dqcot580 comparetotal 0.000000987654321 1E-15 -> 1
-dqcot581 comparetotal 0.000000987654321 1E-14 -> 1
-dqcot582 comparetotal 0.000000987654321 1E-13 -> 1
-dqcot583 comparetotal 0.000000987654321 1E-12 -> 1
-dqcot584 comparetotal 0.000000987654321 1E-11 -> 1
-dqcot585 comparetotal 0.000000987654321 1E-10 -> 1
-dqcot586 comparetotal 0.000000987654321 1E-9 -> 1
-dqcot587 comparetotal 0.000000987654321 1E-8 -> 1
-dqcot588 comparetotal 0.000000987654321 1E-7 -> 1
-dqcot589 comparetotal 0.000000987654321 1E-6 -> -1
-dqcot590 comparetotal 0.000000987654321 1E-5 -> -1
-dqcot591 comparetotal 0.000000987654321 1E-4 -> -1
-dqcot592 comparetotal 0.000000987654321 1E-3 -> -1
-dqcot593 comparetotal 0.000000987654321 1E-2 -> -1
-dqcot594 comparetotal 0.000000987654321 1E-1 -> -1
-dqcot595 comparetotal 0.000000987654321 1E-0 -> -1
-dqcot596 comparetotal 0.000000987654321 1E+1 -> -1
-dqcot597 comparetotal 0.000000987654321 1E+2 -> -1
-dqcot598 comparetotal 0.000000987654321 1E+3 -> -1
-dqcot599 comparetotal 0.000000987654321 1E+4 -> -1
-
--- check some unit-y traps
-dqcot600 comparetotal 12 12.2345 -> -1
-dqcot601 comparetotal 12.0 12.2345 -> -1
-dqcot602 comparetotal 12.00 12.2345 -> -1
-dqcot603 comparetotal 12.000 12.2345 -> -1
-dqcot604 comparetotal 12.0000 12.2345 -> -1
-dqcot605 comparetotal 12.00000 12.2345 -> -1
-dqcot606 comparetotal 12.000000 12.2345 -> -1
-dqcot607 comparetotal 12.0000000 12.2345 -> -1
-dqcot608 comparetotal 12.00000000 12.2345 -> -1
-dqcot609 comparetotal 12.000000000 12.2345 -> -1
-dqcot610 comparetotal 12.1234 12 -> 1
-dqcot611 comparetotal 12.1234 12.0 -> 1
-dqcot612 comparetotal 12.1234 12.00 -> 1
-dqcot613 comparetotal 12.1234 12.000 -> 1
-dqcot614 comparetotal 12.1234 12.0000 -> 1
-dqcot615 comparetotal 12.1234 12.00000 -> 1
-dqcot616 comparetotal 12.1234 12.000000 -> 1
-dqcot617 comparetotal 12.1234 12.0000000 -> 1
-dqcot618 comparetotal 12.1234 12.00000000 -> 1
-dqcot619 comparetotal 12.1234 12.000000000 -> 1
-dqcot620 comparetotal -12 -12.2345 -> 1
-dqcot621 comparetotal -12.0 -12.2345 -> 1
-dqcot622 comparetotal -12.00 -12.2345 -> 1
-dqcot623 comparetotal -12.000 -12.2345 -> 1
-dqcot624 comparetotal -12.0000 -12.2345 -> 1
-dqcot625 comparetotal -12.00000 -12.2345 -> 1
-dqcot626 comparetotal -12.000000 -12.2345 -> 1
-dqcot627 comparetotal -12.0000000 -12.2345 -> 1
-dqcot628 comparetotal -12.00000000 -12.2345 -> 1
-dqcot629 comparetotal -12.000000000 -12.2345 -> 1
-dqcot630 comparetotal -12.1234 -12 -> -1
-dqcot631 comparetotal -12.1234 -12.0 -> -1
-dqcot632 comparetotal -12.1234 -12.00 -> -1
-dqcot633 comparetotal -12.1234 -12.000 -> -1
-dqcot634 comparetotal -12.1234 -12.0000 -> -1
-dqcot635 comparetotal -12.1234 -12.00000 -> -1
-dqcot636 comparetotal -12.1234 -12.000000 -> -1
-dqcot637 comparetotal -12.1234 -12.0000000 -> -1
-dqcot638 comparetotal -12.1234 -12.00000000 -> -1
-dqcot639 comparetotal -12.1234 -12.000000000 -> -1
-
--- extended zeros
-dqcot640 comparetotal 0 0 -> 0
-dqcot641 comparetotal 0 -0 -> 1
-dqcot642 comparetotal 0 -0.0 -> 1
-dqcot643 comparetotal 0 0.0 -> 1
-dqcot644 comparetotal -0 0 -> -1
-dqcot645 comparetotal -0 -0 -> 0
-dqcot646 comparetotal -0 -0.0 -> -1
-dqcot647 comparetotal -0 0.0 -> -1
-dqcot648 comparetotal 0.0 0 -> -1
-dqcot649 comparetotal 0.0 -0 -> 1
-dqcot650 comparetotal 0.0 -0.0 -> 1
-dqcot651 comparetotal 0.0 0.0 -> 0
-dqcot652 comparetotal -0.0 0 -> -1
-dqcot653 comparetotal -0.0 -0 -> 1
-dqcot654 comparetotal -0.0 -0.0 -> 0
-dqcot655 comparetotal -0.0 0.0 -> -1
-
-dqcot656 comparetotal -0E1 0.0 -> -1
-dqcot657 comparetotal -0E2 0.0 -> -1
-dqcot658 comparetotal 0E1 0.0 -> 1
-dqcot659 comparetotal 0E2 0.0 -> 1
-dqcot660 comparetotal -0E1 0 -> -1
-dqcot661 comparetotal -0E2 0 -> -1
-dqcot662 comparetotal 0E1 0 -> 1
-dqcot663 comparetotal 0E2 0 -> 1
-dqcot664 comparetotal -0E1 -0E1 -> 0
-dqcot665 comparetotal -0E2 -0E1 -> -1
-dqcot666 comparetotal 0E1 -0E1 -> 1
-dqcot667 comparetotal 0E2 -0E1 -> 1
-dqcot668 comparetotal -0E1 -0E2 -> 1
-dqcot669 comparetotal -0E2 -0E2 -> 0
-dqcot670 comparetotal 0E1 -0E2 -> 1
-dqcot671 comparetotal 0E2 -0E2 -> 1
-dqcot672 comparetotal -0E1 0E1 -> -1
-dqcot673 comparetotal -0E2 0E1 -> -1
-dqcot674 comparetotal 0E1 0E1 -> 0
-dqcot675 comparetotal 0E2 0E1 -> 1
-dqcot676 comparetotal -0E1 0E2 -> -1
-dqcot677 comparetotal -0E2 0E2 -> -1
-dqcot678 comparetotal 0E1 0E2 -> -1
-dqcot679 comparetotal 0E2 0E2 -> 0
-
--- trailing zeros; unit-y
-dqcot680 comparetotal 12 12 -> 0
-dqcot681 comparetotal 12 12.0 -> 1
-dqcot682 comparetotal 12 12.00 -> 1
-dqcot683 comparetotal 12 12.000 -> 1
-dqcot684 comparetotal 12 12.0000 -> 1
-dqcot685 comparetotal 12 12.00000 -> 1
-dqcot686 comparetotal 12 12.000000 -> 1
-dqcot687 comparetotal 12 12.0000000 -> 1
-dqcot688 comparetotal 12 12.00000000 -> 1
-dqcot689 comparetotal 12 12.000000000 -> 1
-dqcot690 comparetotal 12 12 -> 0
-dqcot691 comparetotal 12.0 12 -> -1
-dqcot692 comparetotal 12.00 12 -> -1
-dqcot693 comparetotal 12.000 12 -> -1
-dqcot694 comparetotal 12.0000 12 -> -1
-dqcot695 comparetotal 12.00000 12 -> -1
-dqcot696 comparetotal 12.000000 12 -> -1
-dqcot697 comparetotal 12.0000000 12 -> -1
-dqcot698 comparetotal 12.00000000 12 -> -1
-dqcot699 comparetotal 12.000000000 12 -> -1
-
--- old long operand checks
-dqcot701 comparetotal 12345678000 1 -> 1
-dqcot702 comparetotal 1 12345678000 -> -1
-dqcot703 comparetotal 1234567800 1 -> 1
-dqcot704 comparetotal 1 1234567800 -> -1
-dqcot705 comparetotal 1234567890 1 -> 1
-dqcot706 comparetotal 1 1234567890 -> -1
-dqcot707 comparetotal 1234567891 1 -> 1
-dqcot708 comparetotal 1 1234567891 -> -1
-dqcot709 comparetotal 12345678901 1 -> 1
-dqcot710 comparetotal 1 12345678901 -> -1
-dqcot711 comparetotal 1234567896 1 -> 1
-dqcot712 comparetotal 1 1234567896 -> -1
-dqcot713 comparetotal -1234567891 1 -> -1
-dqcot714 comparetotal 1 -1234567891 -> 1
-dqcot715 comparetotal -12345678901 1 -> -1
-dqcot716 comparetotal 1 -12345678901 -> 1
-dqcot717 comparetotal -1234567896 1 -> -1
-dqcot718 comparetotal 1 -1234567896 -> 1
-
--- old residue cases
-dqcot740 comparetotal 1 0.9999999 -> 1
-dqcot741 comparetotal 1 0.999999 -> 1
-dqcot742 comparetotal 1 0.99999 -> 1
-dqcot743 comparetotal 1 1.0000 -> 1
-dqcot744 comparetotal 1 1.00001 -> -1
-dqcot745 comparetotal 1 1.000001 -> -1
-dqcot746 comparetotal 1 1.0000001 -> -1
-dqcot750 comparetotal 0.9999999 1 -> -1
-dqcot751 comparetotal 0.999999 1 -> -1
-dqcot752 comparetotal 0.99999 1 -> -1
-dqcot753 comparetotal 1.0000 1 -> -1
-dqcot754 comparetotal 1.00001 1 -> 1
-dqcot755 comparetotal 1.000001 1 -> 1
-dqcot756 comparetotal 1.0000001 1 -> 1
-
--- Specials
-dqcot780 comparetotal Inf -Inf -> 1
-dqcot781 comparetotal Inf -1000 -> 1
-dqcot782 comparetotal Inf -1 -> 1
-dqcot783 comparetotal Inf -0 -> 1
-dqcot784 comparetotal Inf 0 -> 1
-dqcot785 comparetotal Inf 1 -> 1
-dqcot786 comparetotal Inf 1000 -> 1
-dqcot787 comparetotal Inf Inf -> 0
-dqcot788 comparetotal -1000 Inf -> -1
-dqcot789 comparetotal -Inf Inf -> -1
-dqcot790 comparetotal -1 Inf -> -1
-dqcot791 comparetotal -0 Inf -> -1
-dqcot792 comparetotal 0 Inf -> -1
-dqcot793 comparetotal 1 Inf -> -1
-dqcot794 comparetotal 1000 Inf -> -1
-dqcot795 comparetotal Inf Inf -> 0
-
-dqcot800 comparetotal -Inf -Inf -> 0
-dqcot801 comparetotal -Inf -1000 -> -1
-dqcot802 comparetotal -Inf -1 -> -1
-dqcot803 comparetotal -Inf -0 -> -1
-dqcot804 comparetotal -Inf 0 -> -1
-dqcot805 comparetotal -Inf 1 -> -1
-dqcot806 comparetotal -Inf 1000 -> -1
-dqcot807 comparetotal -Inf Inf -> -1
-dqcot808 comparetotal -Inf -Inf -> 0
-dqcot809 comparetotal -1000 -Inf -> 1
-dqcot810 comparetotal -1 -Inf -> 1
-dqcot811 comparetotal -0 -Inf -> 1
-dqcot812 comparetotal 0 -Inf -> 1
-dqcot813 comparetotal 1 -Inf -> 1
-dqcot814 comparetotal 1000 -Inf -> 1
-dqcot815 comparetotal Inf -Inf -> 1
-
-dqcot821 comparetotal NaN -Inf -> 1
-dqcot822 comparetotal NaN -1000 -> 1
-dqcot823 comparetotal NaN -1 -> 1
-dqcot824 comparetotal NaN -0 -> 1
-dqcot825 comparetotal NaN 0 -> 1
-dqcot826 comparetotal NaN 1 -> 1
-dqcot827 comparetotal NaN 1000 -> 1
-dqcot828 comparetotal NaN Inf -> 1
-dqcot829 comparetotal NaN NaN -> 0
-dqcot830 comparetotal -Inf NaN -> -1
-dqcot831 comparetotal -1000 NaN -> -1
-dqcot832 comparetotal -1 NaN -> -1
-dqcot833 comparetotal -0 NaN -> -1
-dqcot834 comparetotal 0 NaN -> -1
-dqcot835 comparetotal 1 NaN -> -1
-dqcot836 comparetotal 1000 NaN -> -1
-dqcot837 comparetotal Inf NaN -> -1
-dqcot838 comparetotal -NaN -NaN -> 0
-dqcot839 comparetotal +NaN -NaN -> 1
-dqcot840 comparetotal -NaN +NaN -> -1
-
-dqcot841 comparetotal sNaN -sNaN -> 1
-dqcot842 comparetotal sNaN -NaN -> 1
-dqcot843 comparetotal sNaN -Inf -> 1
-dqcot844 comparetotal sNaN -1000 -> 1
-dqcot845 comparetotal sNaN -1 -> 1
-dqcot846 comparetotal sNaN -0 -> 1
-dqcot847 comparetotal sNaN 0 -> 1
-dqcot848 comparetotal sNaN 1 -> 1
-dqcot849 comparetotal sNaN 1000 -> 1
-dqcot850 comparetotal sNaN NaN -> -1
-dqcot851 comparetotal sNaN sNaN -> 0
-
-dqcot852 comparetotal -sNaN sNaN -> -1
-dqcot853 comparetotal -NaN sNaN -> -1
-dqcot854 comparetotal -Inf sNaN -> -1
-dqcot855 comparetotal -1000 sNaN -> -1
-dqcot856 comparetotal -1 sNaN -> -1
-dqcot857 comparetotal -0 sNaN -> -1
-dqcot858 comparetotal 0 sNaN -> -1
-dqcot859 comparetotal 1 sNaN -> -1
-dqcot860 comparetotal 1000 sNaN -> -1
-dqcot861 comparetotal Inf sNaN -> -1
-dqcot862 comparetotal NaN sNaN -> 1
-dqcot863 comparetotal sNaN sNaN -> 0
-
-dqcot871 comparetotal -sNaN -sNaN -> 0
-dqcot872 comparetotal -sNaN -NaN -> 1
-dqcot873 comparetotal -sNaN -Inf -> -1
-dqcot874 comparetotal -sNaN -1000 -> -1
-dqcot875 comparetotal -sNaN -1 -> -1
-dqcot876 comparetotal -sNaN -0 -> -1
-dqcot877 comparetotal -sNaN 0 -> -1
-dqcot878 comparetotal -sNaN 1 -> -1
-dqcot879 comparetotal -sNaN 1000 -> -1
-dqcot880 comparetotal -sNaN NaN -> -1
-dqcot881 comparetotal -sNaN sNaN -> -1
-
-dqcot882 comparetotal -sNaN -sNaN -> 0
-dqcot883 comparetotal -NaN -sNaN -> -1
-dqcot884 comparetotal -Inf -sNaN -> 1
-dqcot885 comparetotal -1000 -sNaN -> 1
-dqcot886 comparetotal -1 -sNaN -> 1
-dqcot887 comparetotal -0 -sNaN -> 1
-dqcot888 comparetotal 0 -sNaN -> 1
-dqcot889 comparetotal 1 -sNaN -> 1
-dqcot890 comparetotal 1000 -sNaN -> 1
-dqcot891 comparetotal Inf -sNaN -> 1
-dqcot892 comparetotal NaN -sNaN -> 1
-dqcot893 comparetotal sNaN -sNaN -> 1
-
--- NaNs with payload
-dqcot960 comparetotal NaN9 -Inf -> 1
-dqcot961 comparetotal NaN8 999 -> 1
-dqcot962 comparetotal NaN77 Inf -> 1
-dqcot963 comparetotal -NaN67 NaN5 -> -1
-dqcot964 comparetotal -Inf -NaN4 -> 1
-dqcot965 comparetotal -999 -NaN33 -> 1
-dqcot966 comparetotal Inf NaN2 -> -1
-
-dqcot970 comparetotal -NaN41 -NaN42 -> 1
-dqcot971 comparetotal +NaN41 -NaN42 -> 1
-dqcot972 comparetotal -NaN41 +NaN42 -> -1
-dqcot973 comparetotal +NaN41 +NaN42 -> -1
-dqcot974 comparetotal -NaN42 -NaN01 -> -1
-dqcot975 comparetotal +NaN42 -NaN01 -> 1
-dqcot976 comparetotal -NaN42 +NaN01 -> -1
-dqcot977 comparetotal +NaN42 +NaN01 -> 1
-
-dqcot980 comparetotal -sNaN771 -sNaN772 -> 1
-dqcot981 comparetotal +sNaN771 -sNaN772 -> 1
-dqcot982 comparetotal -sNaN771 +sNaN772 -> -1
-dqcot983 comparetotal +sNaN771 +sNaN772 -> -1
-dqcot984 comparetotal -sNaN772 -sNaN771 -> -1
-dqcot985 comparetotal +sNaN772 -sNaN771 -> 1
-dqcot986 comparetotal -sNaN772 +sNaN771 -> -1
-dqcot987 comparetotal +sNaN772 +sNaN771 -> 1
-
-dqcot991 comparetotal -sNaN99 -Inf -> -1
-dqcot992 comparetotal sNaN98 -11 -> 1
-dqcot993 comparetotal sNaN97 NaN -> -1
-dqcot994 comparetotal sNaN16 sNaN94 -> -1
-dqcot995 comparetotal NaN85 sNaN83 -> 1
-dqcot996 comparetotal -Inf sNaN92 -> -1
-dqcot997 comparetotal 088 sNaN81 -> -1
-dqcot998 comparetotal Inf sNaN90 -> -1
-dqcot999 comparetotal NaN -sNaN89 -> 1
-
--- spread zeros
-dqcot1110 comparetotal 0E-6143 0 -> -1
-dqcot1111 comparetotal 0E-6143 -0 -> 1
-dqcot1112 comparetotal -0E-6143 0 -> -1
-dqcot1113 comparetotal -0E-6143 -0 -> 1
-dqcot1114 comparetotal 0E-6143 0E+6144 -> -1
-dqcot1115 comparetotal 0E-6143 -0E+6144 -> 1
-dqcot1116 comparetotal -0E-6143 0E+6144 -> -1
-dqcot1117 comparetotal -0E-6143 -0E+6144 -> 1
-dqcot1118 comparetotal 0 0E+6144 -> -1
-dqcot1119 comparetotal 0 -0E+6144 -> 1
-dqcot1120 comparetotal -0 0E+6144 -> -1
-dqcot1121 comparetotal -0 -0E+6144 -> 1
-
-dqcot1130 comparetotal 0E+6144 0 -> 1
-dqcot1131 comparetotal 0E+6144 -0 -> 1
-dqcot1132 comparetotal -0E+6144 0 -> -1
-dqcot1133 comparetotal -0E+6144 -0 -> -1
-dqcot1134 comparetotal 0E+6144 0E-6143 -> 1
-dqcot1135 comparetotal 0E+6144 -0E-6143 -> 1
-dqcot1136 comparetotal -0E+6144 0E-6143 -> -1
-dqcot1137 comparetotal -0E+6144 -0E-6143 -> -1
-dqcot1138 comparetotal 0 0E-6143 -> 1
-dqcot1139 comparetotal 0 -0E-6143 -> 1
-dqcot1140 comparetotal -0 0E-6143 -> -1
-dqcot1141 comparetotal -0 -0E-6143 -> -1
-
--- Null tests
-dqcot9990 comparetotal 10 # -> NaN Invalid_operation
-dqcot9991 comparetotal # 10 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- dqCompareTotal.decTest -- decQuad comparison using total ordering -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- Note that we cannot assume add/subtract tests cover paths adequately, +-- here, because the code might be quite different (comparison cannot +-- overflow or underflow, so actual subtractions are not necessary). +-- Similarly, comparetotal will have some radically different paths +-- than compare. + +-- All operands and results are decQuads. +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +-- sanity checks +dqcot001 comparetotal -2 -2 -> 0 +dqcot002 comparetotal -2 -1 -> -1 +dqcot003 comparetotal -2 0 -> -1 +dqcot004 comparetotal -2 1 -> -1 +dqcot005 comparetotal -2 2 -> -1 +dqcot006 comparetotal -1 -2 -> 1 +dqcot007 comparetotal -1 -1 -> 0 +dqcot008 comparetotal -1 0 -> -1 +dqcot009 comparetotal -1 1 -> -1 +dqcot010 comparetotal -1 2 -> -1 +dqcot011 comparetotal 0 -2 -> 1 +dqcot012 comparetotal 0 -1 -> 1 +dqcot013 comparetotal 0 0 -> 0 +dqcot014 comparetotal 0 1 -> -1 +dqcot015 comparetotal 0 2 -> -1 +dqcot016 comparetotal 1 -2 -> 1 +dqcot017 comparetotal 1 -1 -> 1 +dqcot018 comparetotal 1 0 -> 1 +dqcot019 comparetotal 1 1 -> 0 +dqcot020 comparetotal 1 2 -> -1 +dqcot021 comparetotal 2 -2 -> 1 +dqcot022 comparetotal 2 -1 -> 1 +dqcot023 comparetotal 2 0 -> 1 +dqcot025 comparetotal 2 1 -> 1 +dqcot026 comparetotal 2 2 -> 0 + +dqcot031 comparetotal -20 -20 -> 0 +dqcot032 comparetotal -20 -10 -> -1 +dqcot033 comparetotal -20 00 -> -1 +dqcot034 comparetotal -20 10 -> -1 +dqcot035 comparetotal -20 20 -> -1 +dqcot036 comparetotal -10 -20 -> 1 +dqcot037 comparetotal -10 -10 -> 0 +dqcot038 comparetotal -10 00 -> -1 +dqcot039 comparetotal -10 10 -> -1 +dqcot040 comparetotal -10 20 -> -1 +dqcot041 comparetotal 00 -20 -> 1 +dqcot042 comparetotal 00 -10 -> 1 +dqcot043 comparetotal 00 00 -> 0 +dqcot044 comparetotal 00 10 -> -1 +dqcot045 comparetotal 00 20 -> -1 +dqcot046 comparetotal 10 -20 -> 1 +dqcot047 comparetotal 10 -10 -> 1 +dqcot048 comparetotal 10 00 -> 1 +dqcot049 comparetotal 10 10 -> 0 +dqcot050 comparetotal 10 20 -> -1 +dqcot051 comparetotal 20 -20 -> 1 +dqcot052 comparetotal 20 -10 -> 1 +dqcot053 comparetotal 20 00 -> 1 +dqcot055 comparetotal 20 10 -> 1 +dqcot056 comparetotal 20 20 -> 0 + +dqcot061 comparetotal -2.0 -2.0 -> 0 +dqcot062 comparetotal -2.0 -1.0 -> -1 +dqcot063 comparetotal -2.0 0.0 -> -1 +dqcot064 comparetotal -2.0 1.0 -> -1 +dqcot065 comparetotal -2.0 2.0 -> -1 +dqcot066 comparetotal -1.0 -2.0 -> 1 +dqcot067 comparetotal -1.0 -1.0 -> 0 +dqcot068 comparetotal -1.0 0.0 -> -1 +dqcot069 comparetotal -1.0 1.0 -> -1 +dqcot070 comparetotal -1.0 2.0 -> -1 +dqcot071 comparetotal 0.0 -2.0 -> 1 +dqcot072 comparetotal 0.0 -1.0 -> 1 +dqcot073 comparetotal 0.0 0.0 -> 0 +dqcot074 comparetotal 0.0 1.0 -> -1 +dqcot075 comparetotal 0.0 2.0 -> -1 +dqcot076 comparetotal 1.0 -2.0 -> 1 +dqcot077 comparetotal 1.0 -1.0 -> 1 +dqcot078 comparetotal 1.0 0.0 -> 1 +dqcot079 comparetotal 1.0 1.0 -> 0 +dqcot080 comparetotal 1.0 2.0 -> -1 +dqcot081 comparetotal 2.0 -2.0 -> 1 +dqcot082 comparetotal 2.0 -1.0 -> 1 +dqcot083 comparetotal 2.0 0.0 -> 1 +dqcot085 comparetotal 2.0 1.0 -> 1 +dqcot086 comparetotal 2.0 2.0 -> 0 + +-- now some cases which might overflow if subtract were used +dqcot090 comparetotal 9.99999999999999999999999999999E+6144 9.99999999999999999999999999999E+6144 -> 0 +dqcot091 comparetotal -9.99999999999999999999999999999E+6144 9.99999999999999999999999999999E+6144 -> -1 +dqcot092 comparetotal 9.99999999999999999999999999999E+6144 -9.99999999999999999999999999999E+6144 -> 1 +dqcot093 comparetotal -9.99999999999999999999999999999E+6144 -9.99999999999999999999999999999E+6144 -> 0 + +-- some differing length/exponent cases +-- in this first group, compare would compare all equal +dqcot100 comparetotal 7.0 7.0 -> 0 +dqcot101 comparetotal 7.0 7 -> -1 +dqcot102 comparetotal 7 7.0 -> 1 +dqcot103 comparetotal 7E+0 7.0 -> 1 +dqcot104 comparetotal 70E-1 7.0 -> 0 +dqcot105 comparetotal 0.7E+1 7 -> 0 +dqcot106 comparetotal 70E-1 7 -> -1 +dqcot107 comparetotal 7.0 7E+0 -> -1 +dqcot108 comparetotal 7.0 70E-1 -> 0 +dqcot109 comparetotal 7 0.7E+1 -> 0 +dqcot110 comparetotal 7 70E-1 -> 1 + +dqcot120 comparetotal 8.0 7.0 -> 1 +dqcot121 comparetotal 8.0 7 -> 1 +dqcot122 comparetotal 8 7.0 -> 1 +dqcot123 comparetotal 8E+0 7.0 -> 1 +dqcot124 comparetotal 80E-1 7.0 -> 1 +dqcot125 comparetotal 0.8E+1 7 -> 1 +dqcot126 comparetotal 80E-1 7 -> 1 +dqcot127 comparetotal 8.0 7E+0 -> 1 +dqcot128 comparetotal 8.0 70E-1 -> 1 +dqcot129 comparetotal 8 0.7E+1 -> 1 +dqcot130 comparetotal 8 70E-1 -> 1 + +dqcot140 comparetotal 8.0 9.0 -> -1 +dqcot141 comparetotal 8.0 9 -> -1 +dqcot142 comparetotal 8 9.0 -> -1 +dqcot143 comparetotal 8E+0 9.0 -> -1 +dqcot144 comparetotal 80E-1 9.0 -> -1 +dqcot145 comparetotal 0.8E+1 9 -> -1 +dqcot146 comparetotal 80E-1 9 -> -1 +dqcot147 comparetotal 8.0 9E+0 -> -1 +dqcot148 comparetotal 8.0 90E-1 -> -1 +dqcot149 comparetotal 8 0.9E+1 -> -1 +dqcot150 comparetotal 8 90E-1 -> -1 + +-- and again, with sign changes -+ .. +dqcot200 comparetotal -7.0 7.0 -> -1 +dqcot201 comparetotal -7.0 7 -> -1 +dqcot202 comparetotal -7 7.0 -> -1 +dqcot203 comparetotal -7E+0 7.0 -> -1 +dqcot204 comparetotal -70E-1 7.0 -> -1 +dqcot205 comparetotal -0.7E+1 7 -> -1 +dqcot206 comparetotal -70E-1 7 -> -1 +dqcot207 comparetotal -7.0 7E+0 -> -1 +dqcot208 comparetotal -7.0 70E-1 -> -1 +dqcot209 comparetotal -7 0.7E+1 -> -1 +dqcot210 comparetotal -7 70E-1 -> -1 + +dqcot220 comparetotal -8.0 7.0 -> -1 +dqcot221 comparetotal -8.0 7 -> -1 +dqcot222 comparetotal -8 7.0 -> -1 +dqcot223 comparetotal -8E+0 7.0 -> -1 +dqcot224 comparetotal -80E-1 7.0 -> -1 +dqcot225 comparetotal -0.8E+1 7 -> -1 +dqcot226 comparetotal -80E-1 7 -> -1 +dqcot227 comparetotal -8.0 7E+0 -> -1 +dqcot228 comparetotal -8.0 70E-1 -> -1 +dqcot229 comparetotal -8 0.7E+1 -> -1 +dqcot230 comparetotal -8 70E-1 -> -1 + +dqcot240 comparetotal -8.0 9.0 -> -1 +dqcot241 comparetotal -8.0 9 -> -1 +dqcot242 comparetotal -8 9.0 -> -1 +dqcot243 comparetotal -8E+0 9.0 -> -1 +dqcot244 comparetotal -80E-1 9.0 -> -1 +dqcot245 comparetotal -0.8E+1 9 -> -1 +dqcot246 comparetotal -80E-1 9 -> -1 +dqcot247 comparetotal -8.0 9E+0 -> -1 +dqcot248 comparetotal -8.0 90E-1 -> -1 +dqcot249 comparetotal -8 0.9E+1 -> -1 +dqcot250 comparetotal -8 90E-1 -> -1 + +-- and again, with sign changes +- .. +dqcot300 comparetotal 7.0 -7.0 -> 1 +dqcot301 comparetotal 7.0 -7 -> 1 +dqcot302 comparetotal 7 -7.0 -> 1 +dqcot303 comparetotal 7E+0 -7.0 -> 1 +dqcot304 comparetotal 70E-1 -7.0 -> 1 +dqcot305 comparetotal .7E+1 -7 -> 1 +dqcot306 comparetotal 70E-1 -7 -> 1 +dqcot307 comparetotal 7.0 -7E+0 -> 1 +dqcot308 comparetotal 7.0 -70E-1 -> 1 +dqcot309 comparetotal 7 -.7E+1 -> 1 +dqcot310 comparetotal 7 -70E-1 -> 1 + +dqcot320 comparetotal 8.0 -7.0 -> 1 +dqcot321 comparetotal 8.0 -7 -> 1 +dqcot322 comparetotal 8 -7.0 -> 1 +dqcot323 comparetotal 8E+0 -7.0 -> 1 +dqcot324 comparetotal 80E-1 -7.0 -> 1 +dqcot325 comparetotal .8E+1 -7 -> 1 +dqcot326 comparetotal 80E-1 -7 -> 1 +dqcot327 comparetotal 8.0 -7E+0 -> 1 +dqcot328 comparetotal 8.0 -70E-1 -> 1 +dqcot329 comparetotal 8 -.7E+1 -> 1 +dqcot330 comparetotal 8 -70E-1 -> 1 + +dqcot340 comparetotal 8.0 -9.0 -> 1 +dqcot341 comparetotal 8.0 -9 -> 1 +dqcot342 comparetotal 8 -9.0 -> 1 +dqcot343 comparetotal 8E+0 -9.0 -> 1 +dqcot344 comparetotal 80E-1 -9.0 -> 1 +dqcot345 comparetotal .8E+1 -9 -> 1 +dqcot346 comparetotal 80E-1 -9 -> 1 +dqcot347 comparetotal 8.0 -9E+0 -> 1 +dqcot348 comparetotal 8.0 -90E-1 -> 1 +dqcot349 comparetotal 8 -.9E+1 -> 1 +dqcot350 comparetotal 8 -90E-1 -> 1 + +-- and again, with sign changes -- .. +dqcot400 comparetotal -7.0 -7.0 -> 0 +dqcot401 comparetotal -7.0 -7 -> 1 +dqcot402 comparetotal -7 -7.0 -> -1 +dqcot403 comparetotal -7E+0 -7.0 -> -1 +dqcot404 comparetotal -70E-1 -7.0 -> 0 +dqcot405 comparetotal -.7E+1 -7 -> 0 +dqcot406 comparetotal -70E-1 -7 -> 1 +dqcot407 comparetotal -7.0 -7E+0 -> 1 +dqcot408 comparetotal -7.0 -70E-1 -> 0 +dqcot409 comparetotal -7 -.7E+1 -> 0 +dqcot410 comparetotal -7 -70E-1 -> -1 + +dqcot420 comparetotal -8.0 -7.0 -> -1 +dqcot421 comparetotal -8.0 -7 -> -1 +dqcot422 comparetotal -8 -7.0 -> -1 +dqcot423 comparetotal -8E+0 -7.0 -> -1 +dqcot424 comparetotal -80E-1 -7.0 -> -1 +dqcot425 comparetotal -.8E+1 -7 -> -1 +dqcot426 comparetotal -80E-1 -7 -> -1 +dqcot427 comparetotal -8.0 -7E+0 -> -1 +dqcot428 comparetotal -8.0 -70E-1 -> -1 +dqcot429 comparetotal -8 -.7E+1 -> -1 +dqcot430 comparetotal -8 -70E-1 -> -1 + +dqcot440 comparetotal -8.0 -9.0 -> 1 +dqcot441 comparetotal -8.0 -9 -> 1 +dqcot442 comparetotal -8 -9.0 -> 1 +dqcot443 comparetotal -8E+0 -9.0 -> 1 +dqcot444 comparetotal -80E-1 -9.0 -> 1 +dqcot445 comparetotal -.8E+1 -9 -> 1 +dqcot446 comparetotal -80E-1 -9 -> 1 +dqcot447 comparetotal -8.0 -9E+0 -> 1 +dqcot448 comparetotal -8.0 -90E-1 -> 1 +dqcot449 comparetotal -8 -.9E+1 -> 1 +dqcot450 comparetotal -8 -90E-1 -> 1 + + +-- testcases that subtract to lots of zeros at boundaries [pgr] +dqcot473 comparetotal 123.4560000000000E-89 123.456E-89 -> -1 +dqcot474 comparetotal 123.456000000000E+89 123.456E+89 -> -1 +dqcot475 comparetotal 123.45600000000E-89 123.456E-89 -> -1 +dqcot476 comparetotal 123.4560000000E+89 123.456E+89 -> -1 +dqcot477 comparetotal 123.456000000E-89 123.456E-89 -> -1 +dqcot478 comparetotal 123.45600000E+89 123.456E+89 -> -1 +dqcot479 comparetotal 123.4560000E-89 123.456E-89 -> -1 +dqcot480 comparetotal 123.456000E+89 123.456E+89 -> -1 +dqcot481 comparetotal 123.45600E-89 123.456E-89 -> -1 +dqcot482 comparetotal 123.4560E+89 123.456E+89 -> -1 +dqcot483 comparetotal 123.456E-89 123.456E-89 -> 0 +dqcot487 comparetotal 123.456E+89 123.4560000000000E+89 -> 1 +dqcot488 comparetotal 123.456E-89 123.456000000000E-89 -> 1 +dqcot489 comparetotal 123.456E+89 123.45600000000E+89 -> 1 +dqcot490 comparetotal 123.456E-89 123.4560000000E-89 -> 1 +dqcot491 comparetotal 123.456E+89 123.456000000E+89 -> 1 +dqcot492 comparetotal 123.456E-89 123.45600000E-89 -> 1 +dqcot493 comparetotal 123.456E+89 123.4560000E+89 -> 1 +dqcot494 comparetotal 123.456E-89 123.456000E-89 -> 1 +dqcot495 comparetotal 123.456E+89 123.45600E+89 -> 1 +dqcot496 comparetotal 123.456E-89 123.4560E-89 -> 1 +dqcot497 comparetotal 123.456E+89 123.456E+89 -> 0 + +-- wide-ranging, around precision; signs equal +dqcot498 comparetotal 1 1E-17 -> 1 +dqcot499 comparetotal 1 1E-16 -> 1 +dqcot500 comparetotal 1 1E-15 -> 1 +dqcot501 comparetotal 1 1E-14 -> 1 +dqcot502 comparetotal 1 1E-13 -> 1 +dqcot503 comparetotal 1 1E-12 -> 1 +dqcot504 comparetotal 1 1E-11 -> 1 +dqcot505 comparetotal 1 1E-10 -> 1 +dqcot506 comparetotal 1 1E-9 -> 1 +dqcot507 comparetotal 1 1E-8 -> 1 +dqcot508 comparetotal 1 1E-7 -> 1 +dqcot509 comparetotal 1 1E-6 -> 1 +dqcot510 comparetotal 1 1E-5 -> 1 +dqcot511 comparetotal 1 1E-4 -> 1 +dqcot512 comparetotal 1 1E-3 -> 1 +dqcot513 comparetotal 1 1E-2 -> 1 +dqcot514 comparetotal 1 1E-1 -> 1 +dqcot515 comparetotal 1 1E-0 -> 0 +dqcot516 comparetotal 1 1E+1 -> -1 +dqcot517 comparetotal 1 1E+2 -> -1 +dqcot518 comparetotal 1 1E+3 -> -1 +dqcot519 comparetotal 1 1E+4 -> -1 +dqcot521 comparetotal 1 1E+5 -> -1 +dqcot522 comparetotal 1 1E+6 -> -1 +dqcot523 comparetotal 1 1E+7 -> -1 +dqcot524 comparetotal 1 1E+8 -> -1 +dqcot525 comparetotal 1 1E+9 -> -1 +dqcot526 comparetotal 1 1E+10 -> -1 +dqcot527 comparetotal 1 1E+11 -> -1 +dqcot528 comparetotal 1 1E+12 -> -1 +dqcot529 comparetotal 1 1E+13 -> -1 +dqcot530 comparetotal 1 1E+14 -> -1 +dqcot531 comparetotal 1 1E+15 -> -1 +dqcot532 comparetotal 1 1E+16 -> -1 +dqcot533 comparetotal 1 1E+17 -> -1 +-- LR swap +dqcot538 comparetotal 1E-17 1 -> -1 +dqcot539 comparetotal 1E-16 1 -> -1 +dqcot540 comparetotal 1E-15 1 -> -1 +dqcot541 comparetotal 1E-14 1 -> -1 +dqcot542 comparetotal 1E-13 1 -> -1 +dqcot543 comparetotal 1E-12 1 -> -1 +dqcot544 comparetotal 1E-11 1 -> -1 +dqcot545 comparetotal 1E-10 1 -> -1 +dqcot546 comparetotal 1E-9 1 -> -1 +dqcot547 comparetotal 1E-8 1 -> -1 +dqcot548 comparetotal 1E-7 1 -> -1 +dqcot549 comparetotal 1E-6 1 -> -1 +dqcot550 comparetotal 1E-5 1 -> -1 +dqcot551 comparetotal 1E-4 1 -> -1 +dqcot552 comparetotal 1E-3 1 -> -1 +dqcot553 comparetotal 1E-2 1 -> -1 +dqcot554 comparetotal 1E-1 1 -> -1 +dqcot555 comparetotal 1E-0 1 -> 0 +dqcot556 comparetotal 1E+1 1 -> 1 +dqcot557 comparetotal 1E+2 1 -> 1 +dqcot558 comparetotal 1E+3 1 -> 1 +dqcot559 comparetotal 1E+4 1 -> 1 +dqcot561 comparetotal 1E+5 1 -> 1 +dqcot562 comparetotal 1E+6 1 -> 1 +dqcot563 comparetotal 1E+7 1 -> 1 +dqcot564 comparetotal 1E+8 1 -> 1 +dqcot565 comparetotal 1E+9 1 -> 1 +dqcot566 comparetotal 1E+10 1 -> 1 +dqcot567 comparetotal 1E+11 1 -> 1 +dqcot568 comparetotal 1E+12 1 -> 1 +dqcot569 comparetotal 1E+13 1 -> 1 +dqcot570 comparetotal 1E+14 1 -> 1 +dqcot571 comparetotal 1E+15 1 -> 1 +dqcot572 comparetotal 1E+16 1 -> 1 +dqcot573 comparetotal 1E+17 1 -> 1 +-- similar with a useful coefficient, one side only +dqcot578 comparetotal 0.000000987654321 1E-17 -> 1 +dqcot579 comparetotal 0.000000987654321 1E-16 -> 1 +dqcot580 comparetotal 0.000000987654321 1E-15 -> 1 +dqcot581 comparetotal 0.000000987654321 1E-14 -> 1 +dqcot582 comparetotal 0.000000987654321 1E-13 -> 1 +dqcot583 comparetotal 0.000000987654321 1E-12 -> 1 +dqcot584 comparetotal 0.000000987654321 1E-11 -> 1 +dqcot585 comparetotal 0.000000987654321 1E-10 -> 1 +dqcot586 comparetotal 0.000000987654321 1E-9 -> 1 +dqcot587 comparetotal 0.000000987654321 1E-8 -> 1 +dqcot588 comparetotal 0.000000987654321 1E-7 -> 1 +dqcot589 comparetotal 0.000000987654321 1E-6 -> -1 +dqcot590 comparetotal 0.000000987654321 1E-5 -> -1 +dqcot591 comparetotal 0.000000987654321 1E-4 -> -1 +dqcot592 comparetotal 0.000000987654321 1E-3 -> -1 +dqcot593 comparetotal 0.000000987654321 1E-2 -> -1 +dqcot594 comparetotal 0.000000987654321 1E-1 -> -1 +dqcot595 comparetotal 0.000000987654321 1E-0 -> -1 +dqcot596 comparetotal 0.000000987654321 1E+1 -> -1 +dqcot597 comparetotal 0.000000987654321 1E+2 -> -1 +dqcot598 comparetotal 0.000000987654321 1E+3 -> -1 +dqcot599 comparetotal 0.000000987654321 1E+4 -> -1 + +-- check some unit-y traps +dqcot600 comparetotal 12 12.2345 -> -1 +dqcot601 comparetotal 12.0 12.2345 -> -1 +dqcot602 comparetotal 12.00 12.2345 -> -1 +dqcot603 comparetotal 12.000 12.2345 -> -1 +dqcot604 comparetotal 12.0000 12.2345 -> -1 +dqcot605 comparetotal 12.00000 12.2345 -> -1 +dqcot606 comparetotal 12.000000 12.2345 -> -1 +dqcot607 comparetotal 12.0000000 12.2345 -> -1 +dqcot608 comparetotal 12.00000000 12.2345 -> -1 +dqcot609 comparetotal 12.000000000 12.2345 -> -1 +dqcot610 comparetotal 12.1234 12 -> 1 +dqcot611 comparetotal 12.1234 12.0 -> 1 +dqcot612 comparetotal 12.1234 12.00 -> 1 +dqcot613 comparetotal 12.1234 12.000 -> 1 +dqcot614 comparetotal 12.1234 12.0000 -> 1 +dqcot615 comparetotal 12.1234 12.00000 -> 1 +dqcot616 comparetotal 12.1234 12.000000 -> 1 +dqcot617 comparetotal 12.1234 12.0000000 -> 1 +dqcot618 comparetotal 12.1234 12.00000000 -> 1 +dqcot619 comparetotal 12.1234 12.000000000 -> 1 +dqcot620 comparetotal -12 -12.2345 -> 1 +dqcot621 comparetotal -12.0 -12.2345 -> 1 +dqcot622 comparetotal -12.00 -12.2345 -> 1 +dqcot623 comparetotal -12.000 -12.2345 -> 1 +dqcot624 comparetotal -12.0000 -12.2345 -> 1 +dqcot625 comparetotal -12.00000 -12.2345 -> 1 +dqcot626 comparetotal -12.000000 -12.2345 -> 1 +dqcot627 comparetotal -12.0000000 -12.2345 -> 1 +dqcot628 comparetotal -12.00000000 -12.2345 -> 1 +dqcot629 comparetotal -12.000000000 -12.2345 -> 1 +dqcot630 comparetotal -12.1234 -12 -> -1 +dqcot631 comparetotal -12.1234 -12.0 -> -1 +dqcot632 comparetotal -12.1234 -12.00 -> -1 +dqcot633 comparetotal -12.1234 -12.000 -> -1 +dqcot634 comparetotal -12.1234 -12.0000 -> -1 +dqcot635 comparetotal -12.1234 -12.00000 -> -1 +dqcot636 comparetotal -12.1234 -12.000000 -> -1 +dqcot637 comparetotal -12.1234 -12.0000000 -> -1 +dqcot638 comparetotal -12.1234 -12.00000000 -> -1 +dqcot639 comparetotal -12.1234 -12.000000000 -> -1 + +-- extended zeros +dqcot640 comparetotal 0 0 -> 0 +dqcot641 comparetotal 0 -0 -> 1 +dqcot642 comparetotal 0 -0.0 -> 1 +dqcot643 comparetotal 0 0.0 -> 1 +dqcot644 comparetotal -0 0 -> -1 +dqcot645 comparetotal -0 -0 -> 0 +dqcot646 comparetotal -0 -0.0 -> -1 +dqcot647 comparetotal -0 0.0 -> -1 +dqcot648 comparetotal 0.0 0 -> -1 +dqcot649 comparetotal 0.0 -0 -> 1 +dqcot650 comparetotal 0.0 -0.0 -> 1 +dqcot651 comparetotal 0.0 0.0 -> 0 +dqcot652 comparetotal -0.0 0 -> -1 +dqcot653 comparetotal -0.0 -0 -> 1 +dqcot654 comparetotal -0.0 -0.0 -> 0 +dqcot655 comparetotal -0.0 0.0 -> -1 + +dqcot656 comparetotal -0E1 0.0 -> -1 +dqcot657 comparetotal -0E2 0.0 -> -1 +dqcot658 comparetotal 0E1 0.0 -> 1 +dqcot659 comparetotal 0E2 0.0 -> 1 +dqcot660 comparetotal -0E1 0 -> -1 +dqcot661 comparetotal -0E2 0 -> -1 +dqcot662 comparetotal 0E1 0 -> 1 +dqcot663 comparetotal 0E2 0 -> 1 +dqcot664 comparetotal -0E1 -0E1 -> 0 +dqcot665 comparetotal -0E2 -0E1 -> -1 +dqcot666 comparetotal 0E1 -0E1 -> 1 +dqcot667 comparetotal 0E2 -0E1 -> 1 +dqcot668 comparetotal -0E1 -0E2 -> 1 +dqcot669 comparetotal -0E2 -0E2 -> 0 +dqcot670 comparetotal 0E1 -0E2 -> 1 +dqcot671 comparetotal 0E2 -0E2 -> 1 +dqcot672 comparetotal -0E1 0E1 -> -1 +dqcot673 comparetotal -0E2 0E1 -> -1 +dqcot674 comparetotal 0E1 0E1 -> 0 +dqcot675 comparetotal 0E2 0E1 -> 1 +dqcot676 comparetotal -0E1 0E2 -> -1 +dqcot677 comparetotal -0E2 0E2 -> -1 +dqcot678 comparetotal 0E1 0E2 -> -1 +dqcot679 comparetotal 0E2 0E2 -> 0 + +-- trailing zeros; unit-y +dqcot680 comparetotal 12 12 -> 0 +dqcot681 comparetotal 12 12.0 -> 1 +dqcot682 comparetotal 12 12.00 -> 1 +dqcot683 comparetotal 12 12.000 -> 1 +dqcot684 comparetotal 12 12.0000 -> 1 +dqcot685 comparetotal 12 12.00000 -> 1 +dqcot686 comparetotal 12 12.000000 -> 1 +dqcot687 comparetotal 12 12.0000000 -> 1 +dqcot688 comparetotal 12 12.00000000 -> 1 +dqcot689 comparetotal 12 12.000000000 -> 1 +dqcot690 comparetotal 12 12 -> 0 +dqcot691 comparetotal 12.0 12 -> -1 +dqcot692 comparetotal 12.00 12 -> -1 +dqcot693 comparetotal 12.000 12 -> -1 +dqcot694 comparetotal 12.0000 12 -> -1 +dqcot695 comparetotal 12.00000 12 -> -1 +dqcot696 comparetotal 12.000000 12 -> -1 +dqcot697 comparetotal 12.0000000 12 -> -1 +dqcot698 comparetotal 12.00000000 12 -> -1 +dqcot699 comparetotal 12.000000000 12 -> -1 + +-- old long operand checks +dqcot701 comparetotal 12345678000 1 -> 1 +dqcot702 comparetotal 1 12345678000 -> -1 +dqcot703 comparetotal 1234567800 1 -> 1 +dqcot704 comparetotal 1 1234567800 -> -1 +dqcot705 comparetotal 1234567890 1 -> 1 +dqcot706 comparetotal 1 1234567890 -> -1 +dqcot707 comparetotal 1234567891 1 -> 1 +dqcot708 comparetotal 1 1234567891 -> -1 +dqcot709 comparetotal 12345678901 1 -> 1 +dqcot710 comparetotal 1 12345678901 -> -1 +dqcot711 comparetotal 1234567896 1 -> 1 +dqcot712 comparetotal 1 1234567896 -> -1 +dqcot713 comparetotal -1234567891 1 -> -1 +dqcot714 comparetotal 1 -1234567891 -> 1 +dqcot715 comparetotal -12345678901 1 -> -1 +dqcot716 comparetotal 1 -12345678901 -> 1 +dqcot717 comparetotal -1234567896 1 -> -1 +dqcot718 comparetotal 1 -1234567896 -> 1 + +-- old residue cases +dqcot740 comparetotal 1 0.9999999 -> 1 +dqcot741 comparetotal 1 0.999999 -> 1 +dqcot742 comparetotal 1 0.99999 -> 1 +dqcot743 comparetotal 1 1.0000 -> 1 +dqcot744 comparetotal 1 1.00001 -> -1 +dqcot745 comparetotal 1 1.000001 -> -1 +dqcot746 comparetotal 1 1.0000001 -> -1 +dqcot750 comparetotal 0.9999999 1 -> -1 +dqcot751 comparetotal 0.999999 1 -> -1 +dqcot752 comparetotal 0.99999 1 -> -1 +dqcot753 comparetotal 1.0000 1 -> -1 +dqcot754 comparetotal 1.00001 1 -> 1 +dqcot755 comparetotal 1.000001 1 -> 1 +dqcot756 comparetotal 1.0000001 1 -> 1 + +-- Specials +dqcot780 comparetotal Inf -Inf -> 1 +dqcot781 comparetotal Inf -1000 -> 1 +dqcot782 comparetotal Inf -1 -> 1 +dqcot783 comparetotal Inf -0 -> 1 +dqcot784 comparetotal Inf 0 -> 1 +dqcot785 comparetotal Inf 1 -> 1 +dqcot786 comparetotal Inf 1000 -> 1 +dqcot787 comparetotal Inf Inf -> 0 +dqcot788 comparetotal -1000 Inf -> -1 +dqcot789 comparetotal -Inf Inf -> -1 +dqcot790 comparetotal -1 Inf -> -1 +dqcot791 comparetotal -0 Inf -> -1 +dqcot792 comparetotal 0 Inf -> -1 +dqcot793 comparetotal 1 Inf -> -1 +dqcot794 comparetotal 1000 Inf -> -1 +dqcot795 comparetotal Inf Inf -> 0 + +dqcot800 comparetotal -Inf -Inf -> 0 +dqcot801 comparetotal -Inf -1000 -> -1 +dqcot802 comparetotal -Inf -1 -> -1 +dqcot803 comparetotal -Inf -0 -> -1 +dqcot804 comparetotal -Inf 0 -> -1 +dqcot805 comparetotal -Inf 1 -> -1 +dqcot806 comparetotal -Inf 1000 -> -1 +dqcot807 comparetotal -Inf Inf -> -1 +dqcot808 comparetotal -Inf -Inf -> 0 +dqcot809 comparetotal -1000 -Inf -> 1 +dqcot810 comparetotal -1 -Inf -> 1 +dqcot811 comparetotal -0 -Inf -> 1 +dqcot812 comparetotal 0 -Inf -> 1 +dqcot813 comparetotal 1 -Inf -> 1 +dqcot814 comparetotal 1000 -Inf -> 1 +dqcot815 comparetotal Inf -Inf -> 1 + +dqcot821 comparetotal NaN -Inf -> 1 +dqcot822 comparetotal NaN -1000 -> 1 +dqcot823 comparetotal NaN -1 -> 1 +dqcot824 comparetotal NaN -0 -> 1 +dqcot825 comparetotal NaN 0 -> 1 +dqcot826 comparetotal NaN 1 -> 1 +dqcot827 comparetotal NaN 1000 -> 1 +dqcot828 comparetotal NaN Inf -> 1 +dqcot829 comparetotal NaN NaN -> 0 +dqcot830 comparetotal -Inf NaN -> -1 +dqcot831 comparetotal -1000 NaN -> -1 +dqcot832 comparetotal -1 NaN -> -1 +dqcot833 comparetotal -0 NaN -> -1 +dqcot834 comparetotal 0 NaN -> -1 +dqcot835 comparetotal 1 NaN -> -1 +dqcot836 comparetotal 1000 NaN -> -1 +dqcot837 comparetotal Inf NaN -> -1 +dqcot838 comparetotal -NaN -NaN -> 0 +dqcot839 comparetotal +NaN -NaN -> 1 +dqcot840 comparetotal -NaN +NaN -> -1 + +dqcot841 comparetotal sNaN -sNaN -> 1 +dqcot842 comparetotal sNaN -NaN -> 1 +dqcot843 comparetotal sNaN -Inf -> 1 +dqcot844 comparetotal sNaN -1000 -> 1 +dqcot845 comparetotal sNaN -1 -> 1 +dqcot846 comparetotal sNaN -0 -> 1 +dqcot847 comparetotal sNaN 0 -> 1 +dqcot848 comparetotal sNaN 1 -> 1 +dqcot849 comparetotal sNaN 1000 -> 1 +dqcot850 comparetotal sNaN NaN -> -1 +dqcot851 comparetotal sNaN sNaN -> 0 + +dqcot852 comparetotal -sNaN sNaN -> -1 +dqcot853 comparetotal -NaN sNaN -> -1 +dqcot854 comparetotal -Inf sNaN -> -1 +dqcot855 comparetotal -1000 sNaN -> -1 +dqcot856 comparetotal -1 sNaN -> -1 +dqcot857 comparetotal -0 sNaN -> -1 +dqcot858 comparetotal 0 sNaN -> -1 +dqcot859 comparetotal 1 sNaN -> -1 +dqcot860 comparetotal 1000 sNaN -> -1 +dqcot861 comparetotal Inf sNaN -> -1 +dqcot862 comparetotal NaN sNaN -> 1 +dqcot863 comparetotal sNaN sNaN -> 0 + +dqcot871 comparetotal -sNaN -sNaN -> 0 +dqcot872 comparetotal -sNaN -NaN -> 1 +dqcot873 comparetotal -sNaN -Inf -> -1 +dqcot874 comparetotal -sNaN -1000 -> -1 +dqcot875 comparetotal -sNaN -1 -> -1 +dqcot876 comparetotal -sNaN -0 -> -1 +dqcot877 comparetotal -sNaN 0 -> -1 +dqcot878 comparetotal -sNaN 1 -> -1 +dqcot879 comparetotal -sNaN 1000 -> -1 +dqcot880 comparetotal -sNaN NaN -> -1 +dqcot881 comparetotal -sNaN sNaN -> -1 + +dqcot882 comparetotal -sNaN -sNaN -> 0 +dqcot883 comparetotal -NaN -sNaN -> -1 +dqcot884 comparetotal -Inf -sNaN -> 1 +dqcot885 comparetotal -1000 -sNaN -> 1 +dqcot886 comparetotal -1 -sNaN -> 1 +dqcot887 comparetotal -0 -sNaN -> 1 +dqcot888 comparetotal 0 -sNaN -> 1 +dqcot889 comparetotal 1 -sNaN -> 1 +dqcot890 comparetotal 1000 -sNaN -> 1 +dqcot891 comparetotal Inf -sNaN -> 1 +dqcot892 comparetotal NaN -sNaN -> 1 +dqcot893 comparetotal sNaN -sNaN -> 1 + +-- NaNs with payload +dqcot960 comparetotal NaN9 -Inf -> 1 +dqcot961 comparetotal NaN8 999 -> 1 +dqcot962 comparetotal NaN77 Inf -> 1 +dqcot963 comparetotal -NaN67 NaN5 -> -1 +dqcot964 comparetotal -Inf -NaN4 -> 1 +dqcot965 comparetotal -999 -NaN33 -> 1 +dqcot966 comparetotal Inf NaN2 -> -1 + +dqcot970 comparetotal -NaN41 -NaN42 -> 1 +dqcot971 comparetotal +NaN41 -NaN42 -> 1 +dqcot972 comparetotal -NaN41 +NaN42 -> -1 +dqcot973 comparetotal +NaN41 +NaN42 -> -1 +dqcot974 comparetotal -NaN42 -NaN01 -> -1 +dqcot975 comparetotal +NaN42 -NaN01 -> 1 +dqcot976 comparetotal -NaN42 +NaN01 -> -1 +dqcot977 comparetotal +NaN42 +NaN01 -> 1 + +dqcot980 comparetotal -sNaN771 -sNaN772 -> 1 +dqcot981 comparetotal +sNaN771 -sNaN772 -> 1 +dqcot982 comparetotal -sNaN771 +sNaN772 -> -1 +dqcot983 comparetotal +sNaN771 +sNaN772 -> -1 +dqcot984 comparetotal -sNaN772 -sNaN771 -> -1 +dqcot985 comparetotal +sNaN772 -sNaN771 -> 1 +dqcot986 comparetotal -sNaN772 +sNaN771 -> -1 +dqcot987 comparetotal +sNaN772 +sNaN771 -> 1 + +dqcot991 comparetotal -sNaN99 -Inf -> -1 +dqcot992 comparetotal sNaN98 -11 -> 1 +dqcot993 comparetotal sNaN97 NaN -> -1 +dqcot994 comparetotal sNaN16 sNaN94 -> -1 +dqcot995 comparetotal NaN85 sNaN83 -> 1 +dqcot996 comparetotal -Inf sNaN92 -> -1 +dqcot997 comparetotal 088 sNaN81 -> -1 +dqcot998 comparetotal Inf sNaN90 -> -1 +dqcot999 comparetotal NaN -sNaN89 -> 1 + +-- spread zeros +dqcot1110 comparetotal 0E-6143 0 -> -1 +dqcot1111 comparetotal 0E-6143 -0 -> 1 +dqcot1112 comparetotal -0E-6143 0 -> -1 +dqcot1113 comparetotal -0E-6143 -0 -> 1 +dqcot1114 comparetotal 0E-6143 0E+6144 -> -1 +dqcot1115 comparetotal 0E-6143 -0E+6144 -> 1 +dqcot1116 comparetotal -0E-6143 0E+6144 -> -1 +dqcot1117 comparetotal -0E-6143 -0E+6144 -> 1 +dqcot1118 comparetotal 0 0E+6144 -> -1 +dqcot1119 comparetotal 0 -0E+6144 -> 1 +dqcot1120 comparetotal -0 0E+6144 -> -1 +dqcot1121 comparetotal -0 -0E+6144 -> 1 + +dqcot1130 comparetotal 0E+6144 0 -> 1 +dqcot1131 comparetotal 0E+6144 -0 -> 1 +dqcot1132 comparetotal -0E+6144 0 -> -1 +dqcot1133 comparetotal -0E+6144 -0 -> -1 +dqcot1134 comparetotal 0E+6144 0E-6143 -> 1 +dqcot1135 comparetotal 0E+6144 -0E-6143 -> 1 +dqcot1136 comparetotal -0E+6144 0E-6143 -> -1 +dqcot1137 comparetotal -0E+6144 -0E-6143 -> -1 +dqcot1138 comparetotal 0 0E-6143 -> 1 +dqcot1139 comparetotal 0 -0E-6143 -> 1 +dqcot1140 comparetotal -0 0E-6143 -> -1 +dqcot1141 comparetotal -0 -0E-6143 -> -1 + +-- Null tests +dqcot9990 comparetotal 10 # -> NaN Invalid_operation +dqcot9991 comparetotal # 10 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/dqCompareTotalMag.decTest b/Lib/test/decimaltestdata/dqCompareTotalMag.decTest index 48b3e086b1..0b81bfbc24 100644 --- a/Lib/test/decimaltestdata/dqCompareTotalMag.decTest +++ b/Lib/test/decimaltestdata/dqCompareTotalMag.decTest @@ -1,706 +1,706 @@ -------------------------------------------------------------------------
--- dqCompareTotalMag.decTest -- decQuad comparison; abs. total order --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- Note that we cannot assume add/subtract tests cover paths adequately,
--- here, because the code might be quite different (comparison cannot
--- overflow or underflow, so actual subtractions are not necessary).
--- Similarly, comparetotal will have some radically different paths
--- than compare.
-
--- All operands and results are decQuads.
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
--- sanity checks
-dqctm001 comparetotmag -2 -2 -> 0
-dqctm002 comparetotmag -2 -1 -> 1
-dqctm003 comparetotmag -2 0 -> 1
-dqctm004 comparetotmag -2 1 -> 1
-dqctm005 comparetotmag -2 2 -> 0
-dqctm006 comparetotmag -1 -2 -> -1
-dqctm007 comparetotmag -1 -1 -> 0
-dqctm008 comparetotmag -1 0 -> 1
-dqctm009 comparetotmag -1 1 -> 0
-dqctm010 comparetotmag -1 2 -> -1
-dqctm011 comparetotmag 0 -2 -> -1
-dqctm012 comparetotmag 0 -1 -> -1
-dqctm013 comparetotmag 0 0 -> 0
-dqctm014 comparetotmag 0 1 -> -1
-dqctm015 comparetotmag 0 2 -> -1
-dqctm016 comparetotmag 1 -2 -> -1
-dqctm017 comparetotmag 1 -1 -> 0
-dqctm018 comparetotmag 1 0 -> 1
-dqctm019 comparetotmag 1 1 -> 0
-dqctm020 comparetotmag 1 2 -> -1
-dqctm021 comparetotmag 2 -2 -> 0
-dqctm022 comparetotmag 2 -1 -> 1
-dqctm023 comparetotmag 2 0 -> 1
-dqctm025 comparetotmag 2 1 -> 1
-dqctm026 comparetotmag 2 2 -> 0
-
-dqctm031 comparetotmag -20 -20 -> 0
-dqctm032 comparetotmag -20 -10 -> 1
-dqctm033 comparetotmag -20 00 -> 1
-dqctm034 comparetotmag -20 10 -> 1
-dqctm035 comparetotmag -20 20 -> 0
-dqctm036 comparetotmag -10 -20 -> -1
-dqctm037 comparetotmag -10 -10 -> 0
-dqctm038 comparetotmag -10 00 -> 1
-dqctm039 comparetotmag -10 10 -> 0
-dqctm040 comparetotmag -10 20 -> -1
-dqctm041 comparetotmag 00 -20 -> -1
-dqctm042 comparetotmag 00 -10 -> -1
-dqctm043 comparetotmag 00 00 -> 0
-dqctm044 comparetotmag 00 10 -> -1
-dqctm045 comparetotmag 00 20 -> -1
-dqctm046 comparetotmag 10 -20 -> -1
-dqctm047 comparetotmag 10 -10 -> 0
-dqctm048 comparetotmag 10 00 -> 1
-dqctm049 comparetotmag 10 10 -> 0
-dqctm050 comparetotmag 10 20 -> -1
-dqctm051 comparetotmag 20 -20 -> 0
-dqctm052 comparetotmag 20 -10 -> 1
-dqctm053 comparetotmag 20 00 -> 1
-dqctm055 comparetotmag 20 10 -> 1
-dqctm056 comparetotmag 20 20 -> 0
-
-dqctm061 comparetotmag -2.0 -2.0 -> 0
-dqctm062 comparetotmag -2.0 -1.0 -> 1
-dqctm063 comparetotmag -2.0 0.0 -> 1
-dqctm064 comparetotmag -2.0 1.0 -> 1
-dqctm065 comparetotmag -2.0 2.0 -> 0
-dqctm066 comparetotmag -1.0 -2.0 -> -1
-dqctm067 comparetotmag -1.0 -1.0 -> 0
-dqctm068 comparetotmag -1.0 0.0 -> 1
-dqctm069 comparetotmag -1.0 1.0 -> 0
-dqctm070 comparetotmag -1.0 2.0 -> -1
-dqctm071 comparetotmag 0.0 -2.0 -> -1
-dqctm072 comparetotmag 0.0 -1.0 -> -1
-dqctm073 comparetotmag 0.0 0.0 -> 0
-dqctm074 comparetotmag 0.0 1.0 -> -1
-dqctm075 comparetotmag 0.0 2.0 -> -1
-dqctm076 comparetotmag 1.0 -2.0 -> -1
-dqctm077 comparetotmag 1.0 -1.0 -> 0
-dqctm078 comparetotmag 1.0 0.0 -> 1
-dqctm079 comparetotmag 1.0 1.0 -> 0
-dqctm080 comparetotmag 1.0 2.0 -> -1
-dqctm081 comparetotmag 2.0 -2.0 -> 0
-dqctm082 comparetotmag 2.0 -1.0 -> 1
-dqctm083 comparetotmag 2.0 0.0 -> 1
-dqctm085 comparetotmag 2.0 1.0 -> 1
-dqctm086 comparetotmag 2.0 2.0 -> 0
-
--- now some cases which might overflow if subtract were used
-dqctm090 comparetotmag 9.99999999999999999999999999999E+6144 9.99999999999999999999999999999E+6144 -> 0
-dqctm091 comparetotmag -9.99999999999999999999999999999E+6144 9.99999999999999999999999999999E+6144 -> 0
-dqctm092 comparetotmag 9.99999999999999999999999999999E+6144 -9.99999999999999999999999999999E+6144 -> 0
-dqctm093 comparetotmag -9.99999999999999999999999999999E+6144 -9.99999999999999999999999999999E+6144 -> 0
-
--- some differing length/exponent cases
--- in this first group, compare would compare all equal
-dqctm100 comparetotmag 7.0 7.0 -> 0
-dqctm101 comparetotmag 7.0 7 -> -1
-dqctm102 comparetotmag 7 7.0 -> 1
-dqctm103 comparetotmag 7E+0 7.0 -> 1
-dqctm104 comparetotmag 70E-1 7.0 -> 0
-dqctm105 comparetotmag 0.7E+1 7 -> 0
-dqctm106 comparetotmag 70E-1 7 -> -1
-dqctm107 comparetotmag 7.0 7E+0 -> -1
-dqctm108 comparetotmag 7.0 70E-1 -> 0
-dqctm109 comparetotmag 7 0.7E+1 -> 0
-dqctm110 comparetotmag 7 70E-1 -> 1
-
-dqctm120 comparetotmag 8.0 7.0 -> 1
-dqctm121 comparetotmag 8.0 7 -> 1
-dqctm122 comparetotmag 8 7.0 -> 1
-dqctm123 comparetotmag 8E+0 7.0 -> 1
-dqctm124 comparetotmag 80E-1 7.0 -> 1
-dqctm125 comparetotmag 0.8E+1 7 -> 1
-dqctm126 comparetotmag 80E-1 7 -> 1
-dqctm127 comparetotmag 8.0 7E+0 -> 1
-dqctm128 comparetotmag 8.0 70E-1 -> 1
-dqctm129 comparetotmag 8 0.7E+1 -> 1
-dqctm130 comparetotmag 8 70E-1 -> 1
-
-dqctm140 comparetotmag 8.0 9.0 -> -1
-dqctm141 comparetotmag 8.0 9 -> -1
-dqctm142 comparetotmag 8 9.0 -> -1
-dqctm143 comparetotmag 8E+0 9.0 -> -1
-dqctm144 comparetotmag 80E-1 9.0 -> -1
-dqctm145 comparetotmag 0.8E+1 9 -> -1
-dqctm146 comparetotmag 80E-1 9 -> -1
-dqctm147 comparetotmag 8.0 9E+0 -> -1
-dqctm148 comparetotmag 8.0 90E-1 -> -1
-dqctm149 comparetotmag 8 0.9E+1 -> -1
-dqctm150 comparetotmag 8 90E-1 -> -1
-
--- and again, with sign changes -+ ..
-dqctm200 comparetotmag -7.0 7.0 -> 0
-dqctm201 comparetotmag -7.0 7 -> -1
-dqctm202 comparetotmag -7 7.0 -> 1
-dqctm203 comparetotmag -7E+0 7.0 -> 1
-dqctm204 comparetotmag -70E-1 7.0 -> 0
-dqctm205 comparetotmag -0.7E+1 7 -> 0
-dqctm206 comparetotmag -70E-1 7 -> -1
-dqctm207 comparetotmag -7.0 7E+0 -> -1
-dqctm208 comparetotmag -7.0 70E-1 -> 0
-dqctm209 comparetotmag -7 0.7E+1 -> 0
-dqctm210 comparetotmag -7 70E-1 -> 1
-
-dqctm220 comparetotmag -8.0 7.0 -> 1
-dqctm221 comparetotmag -8.0 7 -> 1
-dqctm222 comparetotmag -8 7.0 -> 1
-dqctm223 comparetotmag -8E+0 7.0 -> 1
-dqctm224 comparetotmag -80E-1 7.0 -> 1
-dqctm225 comparetotmag -0.8E+1 7 -> 1
-dqctm226 comparetotmag -80E-1 7 -> 1
-dqctm227 comparetotmag -8.0 7E+0 -> 1
-dqctm228 comparetotmag -8.0 70E-1 -> 1
-dqctm229 comparetotmag -8 0.7E+1 -> 1
-dqctm230 comparetotmag -8 70E-1 -> 1
-
-dqctm240 comparetotmag -8.0 9.0 -> -1
-dqctm241 comparetotmag -8.0 9 -> -1
-dqctm242 comparetotmag -8 9.0 -> -1
-dqctm243 comparetotmag -8E+0 9.0 -> -1
-dqctm244 comparetotmag -80E-1 9.0 -> -1
-dqctm245 comparetotmag -0.8E+1 9 -> -1
-dqctm246 comparetotmag -80E-1 9 -> -1
-dqctm247 comparetotmag -8.0 9E+0 -> -1
-dqctm248 comparetotmag -8.0 90E-1 -> -1
-dqctm249 comparetotmag -8 0.9E+1 -> -1
-dqctm250 comparetotmag -8 90E-1 -> -1
-
--- and again, with sign changes +- ..
-dqctm300 comparetotmag 7.0 -7.0 -> 0
-dqctm301 comparetotmag 7.0 -7 -> -1
-dqctm302 comparetotmag 7 -7.0 -> 1
-dqctm303 comparetotmag 7E+0 -7.0 -> 1
-dqctm304 comparetotmag 70E-1 -7.0 -> 0
-dqctm305 comparetotmag .7E+1 -7 -> 0
-dqctm306 comparetotmag 70E-1 -7 -> -1
-dqctm307 comparetotmag 7.0 -7E+0 -> -1
-dqctm308 comparetotmag 7.0 -70E-1 -> 0
-dqctm309 comparetotmag 7 -.7E+1 -> 0
-dqctm310 comparetotmag 7 -70E-1 -> 1
-
-dqctm320 comparetotmag 8.0 -7.0 -> 1
-dqctm321 comparetotmag 8.0 -7 -> 1
-dqctm322 comparetotmag 8 -7.0 -> 1
-dqctm323 comparetotmag 8E+0 -7.0 -> 1
-dqctm324 comparetotmag 80E-1 -7.0 -> 1
-dqctm325 comparetotmag .8E+1 -7 -> 1
-dqctm326 comparetotmag 80E-1 -7 -> 1
-dqctm327 comparetotmag 8.0 -7E+0 -> 1
-dqctm328 comparetotmag 8.0 -70E-1 -> 1
-dqctm329 comparetotmag 8 -.7E+1 -> 1
-dqctm330 comparetotmag 8 -70E-1 -> 1
-
-dqctm340 comparetotmag 8.0 -9.0 -> -1
-dqctm341 comparetotmag 8.0 -9 -> -1
-dqctm342 comparetotmag 8 -9.0 -> -1
-dqctm343 comparetotmag 8E+0 -9.0 -> -1
-dqctm344 comparetotmag 80E-1 -9.0 -> -1
-dqctm345 comparetotmag .8E+1 -9 -> -1
-dqctm346 comparetotmag 80E-1 -9 -> -1
-dqctm347 comparetotmag 8.0 -9E+0 -> -1
-dqctm348 comparetotmag 8.0 -90E-1 -> -1
-dqctm349 comparetotmag 8 -.9E+1 -> -1
-dqctm350 comparetotmag 8 -90E-1 -> -1
-
--- and again, with sign changes -- ..
-dqctm400 comparetotmag -7.0 -7.0 -> 0
-dqctm401 comparetotmag -7.0 -7 -> -1
-dqctm402 comparetotmag -7 -7.0 -> 1
-dqctm403 comparetotmag -7E+0 -7.0 -> 1
-dqctm404 comparetotmag -70E-1 -7.0 -> 0
-dqctm405 comparetotmag -.7E+1 -7 -> 0
-dqctm406 comparetotmag -70E-1 -7 -> -1
-dqctm407 comparetotmag -7.0 -7E+0 -> -1
-dqctm408 comparetotmag -7.0 -70E-1 -> 0
-dqctm409 comparetotmag -7 -.7E+1 -> 0
-dqctm410 comparetotmag -7 -70E-1 -> 1
-
-dqctm420 comparetotmag -8.0 -7.0 -> 1
-dqctm421 comparetotmag -8.0 -7 -> 1
-dqctm422 comparetotmag -8 -7.0 -> 1
-dqctm423 comparetotmag -8E+0 -7.0 -> 1
-dqctm424 comparetotmag -80E-1 -7.0 -> 1
-dqctm425 comparetotmag -.8E+1 -7 -> 1
-dqctm426 comparetotmag -80E-1 -7 -> 1
-dqctm427 comparetotmag -8.0 -7E+0 -> 1
-dqctm428 comparetotmag -8.0 -70E-1 -> 1
-dqctm429 comparetotmag -8 -.7E+1 -> 1
-dqctm430 comparetotmag -8 -70E-1 -> 1
-
-dqctm440 comparetotmag -8.0 -9.0 -> -1
-dqctm441 comparetotmag -8.0 -9 -> -1
-dqctm442 comparetotmag -8 -9.0 -> -1
-dqctm443 comparetotmag -8E+0 -9.0 -> -1
-dqctm444 comparetotmag -80E-1 -9.0 -> -1
-dqctm445 comparetotmag -.8E+1 -9 -> -1
-dqctm446 comparetotmag -80E-1 -9 -> -1
-dqctm447 comparetotmag -8.0 -9E+0 -> -1
-dqctm448 comparetotmag -8.0 -90E-1 -> -1
-dqctm449 comparetotmag -8 -.9E+1 -> -1
-dqctm450 comparetotmag -8 -90E-1 -> -1
-
-
--- testcases that subtract to lots of zeros at boundaries [pgr]
-dqctm473 comparetotmag 123.4560000000000E-89 123.456E-89 -> -1
-dqctm474 comparetotmag 123.456000000000E+89 123.456E+89 -> -1
-dqctm475 comparetotmag 123.45600000000E-89 123.456E-89 -> -1
-dqctm476 comparetotmag 123.4560000000E+89 123.456E+89 -> -1
-dqctm477 comparetotmag 123.456000000E-89 123.456E-89 -> -1
-dqctm478 comparetotmag 123.45600000E+89 123.456E+89 -> -1
-dqctm479 comparetotmag 123.4560000E-89 123.456E-89 -> -1
-dqctm480 comparetotmag 123.456000E+89 123.456E+89 -> -1
-dqctm481 comparetotmag 123.45600E-89 123.456E-89 -> -1
-dqctm482 comparetotmag 123.4560E+89 123.456E+89 -> -1
-dqctm483 comparetotmag 123.456E-89 123.456E-89 -> 0
-dqctm487 comparetotmag 123.456E+89 123.4560000000000E+89 -> 1
-dqctm488 comparetotmag 123.456E-89 123.456000000000E-89 -> 1
-dqctm489 comparetotmag 123.456E+89 123.45600000000E+89 -> 1
-dqctm490 comparetotmag 123.456E-89 123.4560000000E-89 -> 1
-dqctm491 comparetotmag 123.456E+89 123.456000000E+89 -> 1
-dqctm492 comparetotmag 123.456E-89 123.45600000E-89 -> 1
-dqctm493 comparetotmag 123.456E+89 123.4560000E+89 -> 1
-dqctm494 comparetotmag 123.456E-89 123.456000E-89 -> 1
-dqctm495 comparetotmag 123.456E+89 123.45600E+89 -> 1
-dqctm496 comparetotmag 123.456E-89 123.4560E-89 -> 1
-dqctm497 comparetotmag 123.456E+89 123.456E+89 -> 0
-
--- wide-ranging, around precision; signs equal
-dqctm498 comparetotmag 1 1E-17 -> 1
-dqctm499 comparetotmag 1 1E-16 -> 1
-dqctm500 comparetotmag 1 1E-15 -> 1
-dqctm501 comparetotmag 1 1E-14 -> 1
-dqctm502 comparetotmag 1 1E-13 -> 1
-dqctm503 comparetotmag 1 1E-12 -> 1
-dqctm504 comparetotmag 1 1E-11 -> 1
-dqctm505 comparetotmag 1 1E-10 -> 1
-dqctm506 comparetotmag 1 1E-9 -> 1
-dqctm507 comparetotmag 1 1E-8 -> 1
-dqctm508 comparetotmag 1 1E-7 -> 1
-dqctm509 comparetotmag 1 1E-6 -> 1
-dqctm510 comparetotmag 1 1E-5 -> 1
-dqctm511 comparetotmag 1 1E-4 -> 1
-dqctm512 comparetotmag 1 1E-3 -> 1
-dqctm513 comparetotmag 1 1E-2 -> 1
-dqctm514 comparetotmag 1 1E-1 -> 1
-dqctm515 comparetotmag 1 1E-0 -> 0
-dqctm516 comparetotmag 1 1E+1 -> -1
-dqctm517 comparetotmag 1 1E+2 -> -1
-dqctm518 comparetotmag 1 1E+3 -> -1
-dqctm519 comparetotmag 1 1E+4 -> -1
-dqctm521 comparetotmag 1 1E+5 -> -1
-dqctm522 comparetotmag 1 1E+6 -> -1
-dqctm523 comparetotmag 1 1E+7 -> -1
-dqctm524 comparetotmag 1 1E+8 -> -1
-dqctm525 comparetotmag 1 1E+9 -> -1
-dqctm526 comparetotmag 1 1E+10 -> -1
-dqctm527 comparetotmag 1 1E+11 -> -1
-dqctm528 comparetotmag 1 1E+12 -> -1
-dqctm529 comparetotmag 1 1E+13 -> -1
-dqctm530 comparetotmag 1 1E+14 -> -1
-dqctm531 comparetotmag 1 1E+15 -> -1
-dqctm532 comparetotmag 1 1E+16 -> -1
-dqctm533 comparetotmag 1 1E+17 -> -1
--- LR swap
-dqctm538 comparetotmag 1E-17 1 -> -1
-dqctm539 comparetotmag 1E-16 1 -> -1
-dqctm540 comparetotmag 1E-15 1 -> -1
-dqctm541 comparetotmag 1E-14 1 -> -1
-dqctm542 comparetotmag 1E-13 1 -> -1
-dqctm543 comparetotmag 1E-12 1 -> -1
-dqctm544 comparetotmag 1E-11 1 -> -1
-dqctm545 comparetotmag 1E-10 1 -> -1
-dqctm546 comparetotmag 1E-9 1 -> -1
-dqctm547 comparetotmag 1E-8 1 -> -1
-dqctm548 comparetotmag 1E-7 1 -> -1
-dqctm549 comparetotmag 1E-6 1 -> -1
-dqctm550 comparetotmag 1E-5 1 -> -1
-dqctm551 comparetotmag 1E-4 1 -> -1
-dqctm552 comparetotmag 1E-3 1 -> -1
-dqctm553 comparetotmag 1E-2 1 -> -1
-dqctm554 comparetotmag 1E-1 1 -> -1
-dqctm555 comparetotmag 1E-0 1 -> 0
-dqctm556 comparetotmag 1E+1 1 -> 1
-dqctm557 comparetotmag 1E+2 1 -> 1
-dqctm558 comparetotmag 1E+3 1 -> 1
-dqctm559 comparetotmag 1E+4 1 -> 1
-dqctm561 comparetotmag 1E+5 1 -> 1
-dqctm562 comparetotmag 1E+6 1 -> 1
-dqctm563 comparetotmag 1E+7 1 -> 1
-dqctm564 comparetotmag 1E+8 1 -> 1
-dqctm565 comparetotmag 1E+9 1 -> 1
-dqctm566 comparetotmag 1E+10 1 -> 1
-dqctm567 comparetotmag 1E+11 1 -> 1
-dqctm568 comparetotmag 1E+12 1 -> 1
-dqctm569 comparetotmag 1E+13 1 -> 1
-dqctm570 comparetotmag 1E+14 1 -> 1
-dqctm571 comparetotmag 1E+15 1 -> 1
-dqctm572 comparetotmag 1E+16 1 -> 1
-dqctm573 comparetotmag 1E+17 1 -> 1
--- similar with a useful coefficient, one side only
-dqctm578 comparetotmag 0.000000987654321 1E-17 -> 1
-dqctm579 comparetotmag 0.000000987654321 1E-16 -> 1
-dqctm580 comparetotmag 0.000000987654321 1E-15 -> 1
-dqctm581 comparetotmag 0.000000987654321 1E-14 -> 1
-dqctm582 comparetotmag 0.000000987654321 1E-13 -> 1
-dqctm583 comparetotmag 0.000000987654321 1E-12 -> 1
-dqctm584 comparetotmag 0.000000987654321 1E-11 -> 1
-dqctm585 comparetotmag 0.000000987654321 1E-10 -> 1
-dqctm586 comparetotmag 0.000000987654321 1E-9 -> 1
-dqctm587 comparetotmag 0.000000987654321 1E-8 -> 1
-dqctm588 comparetotmag 0.000000987654321 1E-7 -> 1
-dqctm589 comparetotmag 0.000000987654321 1E-6 -> -1
-dqctm590 comparetotmag 0.000000987654321 1E-5 -> -1
-dqctm591 comparetotmag 0.000000987654321 1E-4 -> -1
-dqctm592 comparetotmag 0.000000987654321 1E-3 -> -1
-dqctm593 comparetotmag 0.000000987654321 1E-2 -> -1
-dqctm594 comparetotmag 0.000000987654321 1E-1 -> -1
-dqctm595 comparetotmag 0.000000987654321 1E-0 -> -1
-dqctm596 comparetotmag 0.000000987654321 1E+1 -> -1
-dqctm597 comparetotmag 0.000000987654321 1E+2 -> -1
-dqctm598 comparetotmag 0.000000987654321 1E+3 -> -1
-dqctm599 comparetotmag 0.000000987654321 1E+4 -> -1
-
--- check some unit-y traps
-dqctm600 comparetotmag 12 12.2345 -> -1
-dqctm601 comparetotmag 12.0 12.2345 -> -1
-dqctm602 comparetotmag 12.00 12.2345 -> -1
-dqctm603 comparetotmag 12.000 12.2345 -> -1
-dqctm604 comparetotmag 12.0000 12.2345 -> -1
-dqctm605 comparetotmag 12.00000 12.2345 -> -1
-dqctm606 comparetotmag 12.000000 12.2345 -> -1
-dqctm607 comparetotmag 12.0000000 12.2345 -> -1
-dqctm608 comparetotmag 12.00000000 12.2345 -> -1
-dqctm609 comparetotmag 12.000000000 12.2345 -> -1
-dqctm610 comparetotmag 12.1234 12 -> 1
-dqctm611 comparetotmag 12.1234 12.0 -> 1
-dqctm612 comparetotmag 12.1234 12.00 -> 1
-dqctm613 comparetotmag 12.1234 12.000 -> 1
-dqctm614 comparetotmag 12.1234 12.0000 -> 1
-dqctm615 comparetotmag 12.1234 12.00000 -> 1
-dqctm616 comparetotmag 12.1234 12.000000 -> 1
-dqctm617 comparetotmag 12.1234 12.0000000 -> 1
-dqctm618 comparetotmag 12.1234 12.00000000 -> 1
-dqctm619 comparetotmag 12.1234 12.000000000 -> 1
-dqctm620 comparetotmag -12 -12.2345 -> -1
-dqctm621 comparetotmag -12.0 -12.2345 -> -1
-dqctm622 comparetotmag -12.00 -12.2345 -> -1
-dqctm623 comparetotmag -12.000 -12.2345 -> -1
-dqctm624 comparetotmag -12.0000 -12.2345 -> -1
-dqctm625 comparetotmag -12.00000 -12.2345 -> -1
-dqctm626 comparetotmag -12.000000 -12.2345 -> -1
-dqctm627 comparetotmag -12.0000000 -12.2345 -> -1
-dqctm628 comparetotmag -12.00000000 -12.2345 -> -1
-dqctm629 comparetotmag -12.000000000 -12.2345 -> -1
-dqctm630 comparetotmag -12.1234 -12 -> 1
-dqctm631 comparetotmag -12.1234 -12.0 -> 1
-dqctm632 comparetotmag -12.1234 -12.00 -> 1
-dqctm633 comparetotmag -12.1234 -12.000 -> 1
-dqctm634 comparetotmag -12.1234 -12.0000 -> 1
-dqctm635 comparetotmag -12.1234 -12.00000 -> 1
-dqctm636 comparetotmag -12.1234 -12.000000 -> 1
-dqctm637 comparetotmag -12.1234 -12.0000000 -> 1
-dqctm638 comparetotmag -12.1234 -12.00000000 -> 1
-dqctm639 comparetotmag -12.1234 -12.000000000 -> 1
-
--- extended zeros
-dqctm640 comparetotmag 0 0 -> 0
-dqctm641 comparetotmag 0 -0 -> 0
-dqctm642 comparetotmag 0 -0.0 -> 1
-dqctm643 comparetotmag 0 0.0 -> 1
-dqctm644 comparetotmag -0 0 -> 0
-dqctm645 comparetotmag -0 -0 -> 0
-dqctm646 comparetotmag -0 -0.0 -> 1
-dqctm647 comparetotmag -0 0.0 -> 1
-dqctm648 comparetotmag 0.0 0 -> -1
-dqctm649 comparetotmag 0.0 -0 -> -1
-dqctm650 comparetotmag 0.0 -0.0 -> 0
-dqctm651 comparetotmag 0.0 0.0 -> 0
-dqctm652 comparetotmag -0.0 0 -> -1
-dqctm653 comparetotmag -0.0 -0 -> -1
-dqctm654 comparetotmag -0.0 -0.0 -> 0
-dqctm655 comparetotmag -0.0 0.0 -> 0
-
-dqctm656 comparetotmag -0E1 0.0 -> 1
-dqctm657 comparetotmag -0E2 0.0 -> 1
-dqctm658 comparetotmag 0E1 0.0 -> 1
-dqctm659 comparetotmag 0E2 0.0 -> 1
-dqctm660 comparetotmag -0E1 0 -> 1
-dqctm661 comparetotmag -0E2 0 -> 1
-dqctm662 comparetotmag 0E1 0 -> 1
-dqctm663 comparetotmag 0E2 0 -> 1
-dqctm664 comparetotmag -0E1 -0E1 -> 0
-dqctm665 comparetotmag -0E2 -0E1 -> 1
-dqctm666 comparetotmag 0E1 -0E1 -> 0
-dqctm667 comparetotmag 0E2 -0E1 -> 1
-dqctm668 comparetotmag -0E1 -0E2 -> -1
-dqctm669 comparetotmag -0E2 -0E2 -> 0
-dqctm670 comparetotmag 0E1 -0E2 -> -1
-dqctm671 comparetotmag 0E2 -0E2 -> 0
-dqctm672 comparetotmag -0E1 0E1 -> 0
-dqctm673 comparetotmag -0E2 0E1 -> 1
-dqctm674 comparetotmag 0E1 0E1 -> 0
-dqctm675 comparetotmag 0E2 0E1 -> 1
-dqctm676 comparetotmag -0E1 0E2 -> -1
-dqctm677 comparetotmag -0E2 0E2 -> 0
-dqctm678 comparetotmag 0E1 0E2 -> -1
-dqctm679 comparetotmag 0E2 0E2 -> 0
-
--- trailing zeros; unit-y
-dqctm680 comparetotmag 12 12 -> 0
-dqctm681 comparetotmag 12 12.0 -> 1
-dqctm682 comparetotmag 12 12.00 -> 1
-dqctm683 comparetotmag 12 12.000 -> 1
-dqctm684 comparetotmag 12 12.0000 -> 1
-dqctm685 comparetotmag 12 12.00000 -> 1
-dqctm686 comparetotmag 12 12.000000 -> 1
-dqctm687 comparetotmag 12 12.0000000 -> 1
-dqctm688 comparetotmag 12 12.00000000 -> 1
-dqctm689 comparetotmag 12 12.000000000 -> 1
-dqctm690 comparetotmag 12 12 -> 0
-dqctm691 comparetotmag 12.0 12 -> -1
-dqctm692 comparetotmag 12.00 12 -> -1
-dqctm693 comparetotmag 12.000 12 -> -1
-dqctm694 comparetotmag 12.0000 12 -> -1
-dqctm695 comparetotmag 12.00000 12 -> -1
-dqctm696 comparetotmag 12.000000 12 -> -1
-dqctm697 comparetotmag 12.0000000 12 -> -1
-dqctm698 comparetotmag 12.00000000 12 -> -1
-dqctm699 comparetotmag 12.000000000 12 -> -1
-
--- old long operand checks
-dqctm701 comparetotmag 12345678000 1 -> 1
-dqctm702 comparetotmag 1 12345678000 -> -1
-dqctm703 comparetotmag 1234567800 1 -> 1
-dqctm704 comparetotmag 1 1234567800 -> -1
-dqctm705 comparetotmag 1234567890 1 -> 1
-dqctm706 comparetotmag 1 1234567890 -> -1
-dqctm707 comparetotmag 1234567891 1 -> 1
-dqctm708 comparetotmag 1 1234567891 -> -1
-dqctm709 comparetotmag 12345678901 1 -> 1
-dqctm710 comparetotmag 1 12345678901 -> -1
-dqctm711 comparetotmag 1234567896 1 -> 1
-dqctm712 comparetotmag 1 1234567896 -> -1
-dqctm713 comparetotmag -1234567891 1 -> 1
-dqctm714 comparetotmag 1 -1234567891 -> -1
-dqctm715 comparetotmag -12345678901 1 -> 1
-dqctm716 comparetotmag 1 -12345678901 -> -1
-dqctm717 comparetotmag -1234567896 1 -> 1
-dqctm718 comparetotmag 1 -1234567896 -> -1
-
--- old residue cases
-dqctm740 comparetotmag 1 0.9999999 -> 1
-dqctm741 comparetotmag 1 0.999999 -> 1
-dqctm742 comparetotmag 1 0.99999 -> 1
-dqctm743 comparetotmag 1 1.0000 -> 1
-dqctm744 comparetotmag 1 1.00001 -> -1
-dqctm745 comparetotmag 1 1.000001 -> -1
-dqctm746 comparetotmag 1 1.0000001 -> -1
-dqctm750 comparetotmag 0.9999999 1 -> -1
-dqctm751 comparetotmag 0.999999 1 -> -1
-dqctm752 comparetotmag 0.99999 1 -> -1
-dqctm753 comparetotmag 1.0000 1 -> -1
-dqctm754 comparetotmag 1.00001 1 -> 1
-dqctm755 comparetotmag 1.000001 1 -> 1
-dqctm756 comparetotmag 1.0000001 1 -> 1
-
--- Specials
-dqctm780 comparetotmag Inf -Inf -> 0
-dqctm781 comparetotmag Inf -1000 -> 1
-dqctm782 comparetotmag Inf -1 -> 1
-dqctm783 comparetotmag Inf -0 -> 1
-dqctm784 comparetotmag Inf 0 -> 1
-dqctm785 comparetotmag Inf 1 -> 1
-dqctm786 comparetotmag Inf 1000 -> 1
-dqctm787 comparetotmag Inf Inf -> 0
-dqctm788 comparetotmag -1000 Inf -> -1
-dqctm789 comparetotmag -Inf Inf -> 0
-dqctm790 comparetotmag -1 Inf -> -1
-dqctm791 comparetotmag -0 Inf -> -1
-dqctm792 comparetotmag 0 Inf -> -1
-dqctm793 comparetotmag 1 Inf -> -1
-dqctm794 comparetotmag 1000 Inf -> -1
-dqctm795 comparetotmag Inf Inf -> 0
-
-dqctm800 comparetotmag -Inf -Inf -> 0
-dqctm801 comparetotmag -Inf -1000 -> 1
-dqctm802 comparetotmag -Inf -1 -> 1
-dqctm803 comparetotmag -Inf -0 -> 1
-dqctm804 comparetotmag -Inf 0 -> 1
-dqctm805 comparetotmag -Inf 1 -> 1
-dqctm806 comparetotmag -Inf 1000 -> 1
-dqctm807 comparetotmag -Inf Inf -> 0
-dqctm808 comparetotmag -Inf -Inf -> 0
-dqctm809 comparetotmag -1000 -Inf -> -1
-dqctm810 comparetotmag -1 -Inf -> -1
-dqctm811 comparetotmag -0 -Inf -> -1
-dqctm812 comparetotmag 0 -Inf -> -1
-dqctm813 comparetotmag 1 -Inf -> -1
-dqctm814 comparetotmag 1000 -Inf -> -1
-dqctm815 comparetotmag Inf -Inf -> 0
-
-dqctm821 comparetotmag NaN -Inf -> 1
-dqctm822 comparetotmag NaN -1000 -> 1
-dqctm823 comparetotmag NaN -1 -> 1
-dqctm824 comparetotmag NaN -0 -> 1
-dqctm825 comparetotmag NaN 0 -> 1
-dqctm826 comparetotmag NaN 1 -> 1
-dqctm827 comparetotmag NaN 1000 -> 1
-dqctm828 comparetotmag NaN Inf -> 1
-dqctm829 comparetotmag NaN NaN -> 0
-dqctm830 comparetotmag -Inf NaN -> -1
-dqctm831 comparetotmag -1000 NaN -> -1
-dqctm832 comparetotmag -1 NaN -> -1
-dqctm833 comparetotmag -0 NaN -> -1
-dqctm834 comparetotmag 0 NaN -> -1
-dqctm835 comparetotmag 1 NaN -> -1
-dqctm836 comparetotmag 1000 NaN -> -1
-dqctm837 comparetotmag Inf NaN -> -1
-dqctm838 comparetotmag -NaN -NaN -> 0
-dqctm839 comparetotmag +NaN -NaN -> 0
-dqctm840 comparetotmag -NaN +NaN -> 0
-
-dqctm841 comparetotmag sNaN -sNaN -> 0
-dqctm842 comparetotmag sNaN -NaN -> -1
-dqctm843 comparetotmag sNaN -Inf -> 1
-dqctm844 comparetotmag sNaN -1000 -> 1
-dqctm845 comparetotmag sNaN -1 -> 1
-dqctm846 comparetotmag sNaN -0 -> 1
-dqctm847 comparetotmag sNaN 0 -> 1
-dqctm848 comparetotmag sNaN 1 -> 1
-dqctm849 comparetotmag sNaN 1000 -> 1
-dqctm850 comparetotmag sNaN NaN -> -1
-dqctm851 comparetotmag sNaN sNaN -> 0
-
-dqctm852 comparetotmag -sNaN sNaN -> 0
-dqctm853 comparetotmag -NaN sNaN -> 1
-dqctm854 comparetotmag -Inf sNaN -> -1
-dqctm855 comparetotmag -1000 sNaN -> -1
-dqctm856 comparetotmag -1 sNaN -> -1
-dqctm857 comparetotmag -0 sNaN -> -1
-dqctm858 comparetotmag 0 sNaN -> -1
-dqctm859 comparetotmag 1 sNaN -> -1
-dqctm860 comparetotmag 1000 sNaN -> -1
-dqctm861 comparetotmag Inf sNaN -> -1
-dqctm862 comparetotmag NaN sNaN -> 1
-dqctm863 comparetotmag sNaN sNaN -> 0
-
-dqctm871 comparetotmag -sNaN -sNaN -> 0
-dqctm872 comparetotmag -sNaN -NaN -> -1
-dqctm873 comparetotmag -sNaN -Inf -> 1
-dqctm874 comparetotmag -sNaN -1000 -> 1
-dqctm875 comparetotmag -sNaN -1 -> 1
-dqctm876 comparetotmag -sNaN -0 -> 1
-dqctm877 comparetotmag -sNaN 0 -> 1
-dqctm878 comparetotmag -sNaN 1 -> 1
-dqctm879 comparetotmag -sNaN 1000 -> 1
-dqctm880 comparetotmag -sNaN NaN -> -1
-dqctm881 comparetotmag -sNaN sNaN -> 0
-
-dqctm882 comparetotmag -sNaN -sNaN -> 0
-dqctm883 comparetotmag -NaN -sNaN -> 1
-dqctm884 comparetotmag -Inf -sNaN -> -1
-dqctm885 comparetotmag -1000 -sNaN -> -1
-dqctm886 comparetotmag -1 -sNaN -> -1
-dqctm887 comparetotmag -0 -sNaN -> -1
-dqctm888 comparetotmag 0 -sNaN -> -1
-dqctm889 comparetotmag 1 -sNaN -> -1
-dqctm890 comparetotmag 1000 -sNaN -> -1
-dqctm891 comparetotmag Inf -sNaN -> -1
-dqctm892 comparetotmag NaN -sNaN -> 1
-dqctm893 comparetotmag sNaN -sNaN -> 0
-
--- NaNs with payload
-dqctm960 comparetotmag NaN9 -Inf -> 1
-dqctm961 comparetotmag NaN8 999 -> 1
-dqctm962 comparetotmag NaN77 Inf -> 1
-dqctm963 comparetotmag -NaN67 NaN5 -> 1
-dqctm964 comparetotmag -Inf -NaN4 -> -1
-dqctm965 comparetotmag -999 -NaN33 -> -1
-dqctm966 comparetotmag Inf NaN2 -> -1
-
-dqctm970 comparetotmag -NaN41 -NaN42 -> -1
-dqctm971 comparetotmag +NaN41 -NaN42 -> -1
-dqctm972 comparetotmag -NaN41 +NaN42 -> -1
-dqctm973 comparetotmag +NaN41 +NaN42 -> -1
-dqctm974 comparetotmag -NaN42 -NaN01 -> 1
-dqctm975 comparetotmag +NaN42 -NaN01 -> 1
-dqctm976 comparetotmag -NaN42 +NaN01 -> 1
-dqctm977 comparetotmag +NaN42 +NaN01 -> 1
-
-dqctm980 comparetotmag -sNaN771 -sNaN772 -> -1
-dqctm981 comparetotmag +sNaN771 -sNaN772 -> -1
-dqctm982 comparetotmag -sNaN771 +sNaN772 -> -1
-dqctm983 comparetotmag +sNaN771 +sNaN772 -> -1
-dqctm984 comparetotmag -sNaN772 -sNaN771 -> 1
-dqctm985 comparetotmag +sNaN772 -sNaN771 -> 1
-dqctm986 comparetotmag -sNaN772 +sNaN771 -> 1
-dqctm987 comparetotmag +sNaN772 +sNaN771 -> 1
-
-dqctm991 comparetotmag -sNaN99 -Inf -> 1
-dqctm992 comparetotmag sNaN98 -11 -> 1
-dqctm993 comparetotmag sNaN97 NaN -> -1
-dqctm994 comparetotmag sNaN16 sNaN94 -> -1
-dqctm995 comparetotmag NaN85 sNaN83 -> 1
-dqctm996 comparetotmag -Inf sNaN92 -> -1
-dqctm997 comparetotmag 088 sNaN81 -> -1
-dqctm998 comparetotmag Inf sNaN90 -> -1
-dqctm999 comparetotmag NaN -sNaN89 -> 1
-
--- spread zeros
-dqctm1110 comparetotmag 0E-6143 0 -> -1
-dqctm1111 comparetotmag 0E-6143 -0 -> -1
-dqctm1112 comparetotmag -0E-6143 0 -> -1
-dqctm1113 comparetotmag -0E-6143 -0 -> -1
-dqctm1114 comparetotmag 0E-6143 0E+6144 -> -1
-dqctm1115 comparetotmag 0E-6143 -0E+6144 -> -1
-dqctm1116 comparetotmag -0E-6143 0E+6144 -> -1
-dqctm1117 comparetotmag -0E-6143 -0E+6144 -> -1
-dqctm1118 comparetotmag 0 0E+6144 -> -1
-dqctm1119 comparetotmag 0 -0E+6144 -> -1
-dqctm1120 comparetotmag -0 0E+6144 -> -1
-dqctm1121 comparetotmag -0 -0E+6144 -> -1
-
-dqctm1130 comparetotmag 0E+6144 0 -> 1
-dqctm1131 comparetotmag 0E+6144 -0 -> 1
-dqctm1132 comparetotmag -0E+6144 0 -> 1
-dqctm1133 comparetotmag -0E+6144 -0 -> 1
-dqctm1134 comparetotmag 0E+6144 0E-6143 -> 1
-dqctm1135 comparetotmag 0E+6144 -0E-6143 -> 1
-dqctm1136 comparetotmag -0E+6144 0E-6143 -> 1
-dqctm1137 comparetotmag -0E+6144 -0E-6143 -> 1
-dqctm1138 comparetotmag 0 0E-6143 -> 1
-dqctm1139 comparetotmag 0 -0E-6143 -> 1
-dqctm1140 comparetotmag -0 0E-6143 -> 1
-dqctm1141 comparetotmag -0 -0E-6143 -> 1
-
--- Null tests
-dqctm9990 comparetotmag 10 # -> NaN Invalid_operation
-dqctm9991 comparetotmag # 10 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- dqCompareTotalMag.decTest -- decQuad comparison; abs. total order -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- Note that we cannot assume add/subtract tests cover paths adequately, +-- here, because the code might be quite different (comparison cannot +-- overflow or underflow, so actual subtractions are not necessary). +-- Similarly, comparetotal will have some radically different paths +-- than compare. + +-- All operands and results are decQuads. +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +-- sanity checks +dqctm001 comparetotmag -2 -2 -> 0 +dqctm002 comparetotmag -2 -1 -> 1 +dqctm003 comparetotmag -2 0 -> 1 +dqctm004 comparetotmag -2 1 -> 1 +dqctm005 comparetotmag -2 2 -> 0 +dqctm006 comparetotmag -1 -2 -> -1 +dqctm007 comparetotmag -1 -1 -> 0 +dqctm008 comparetotmag -1 0 -> 1 +dqctm009 comparetotmag -1 1 -> 0 +dqctm010 comparetotmag -1 2 -> -1 +dqctm011 comparetotmag 0 -2 -> -1 +dqctm012 comparetotmag 0 -1 -> -1 +dqctm013 comparetotmag 0 0 -> 0 +dqctm014 comparetotmag 0 1 -> -1 +dqctm015 comparetotmag 0 2 -> -1 +dqctm016 comparetotmag 1 -2 -> -1 +dqctm017 comparetotmag 1 -1 -> 0 +dqctm018 comparetotmag 1 0 -> 1 +dqctm019 comparetotmag 1 1 -> 0 +dqctm020 comparetotmag 1 2 -> -1 +dqctm021 comparetotmag 2 -2 -> 0 +dqctm022 comparetotmag 2 -1 -> 1 +dqctm023 comparetotmag 2 0 -> 1 +dqctm025 comparetotmag 2 1 -> 1 +dqctm026 comparetotmag 2 2 -> 0 + +dqctm031 comparetotmag -20 -20 -> 0 +dqctm032 comparetotmag -20 -10 -> 1 +dqctm033 comparetotmag -20 00 -> 1 +dqctm034 comparetotmag -20 10 -> 1 +dqctm035 comparetotmag -20 20 -> 0 +dqctm036 comparetotmag -10 -20 -> -1 +dqctm037 comparetotmag -10 -10 -> 0 +dqctm038 comparetotmag -10 00 -> 1 +dqctm039 comparetotmag -10 10 -> 0 +dqctm040 comparetotmag -10 20 -> -1 +dqctm041 comparetotmag 00 -20 -> -1 +dqctm042 comparetotmag 00 -10 -> -1 +dqctm043 comparetotmag 00 00 -> 0 +dqctm044 comparetotmag 00 10 -> -1 +dqctm045 comparetotmag 00 20 -> -1 +dqctm046 comparetotmag 10 -20 -> -1 +dqctm047 comparetotmag 10 -10 -> 0 +dqctm048 comparetotmag 10 00 -> 1 +dqctm049 comparetotmag 10 10 -> 0 +dqctm050 comparetotmag 10 20 -> -1 +dqctm051 comparetotmag 20 -20 -> 0 +dqctm052 comparetotmag 20 -10 -> 1 +dqctm053 comparetotmag 20 00 -> 1 +dqctm055 comparetotmag 20 10 -> 1 +dqctm056 comparetotmag 20 20 -> 0 + +dqctm061 comparetotmag -2.0 -2.0 -> 0 +dqctm062 comparetotmag -2.0 -1.0 -> 1 +dqctm063 comparetotmag -2.0 0.0 -> 1 +dqctm064 comparetotmag -2.0 1.0 -> 1 +dqctm065 comparetotmag -2.0 2.0 -> 0 +dqctm066 comparetotmag -1.0 -2.0 -> -1 +dqctm067 comparetotmag -1.0 -1.0 -> 0 +dqctm068 comparetotmag -1.0 0.0 -> 1 +dqctm069 comparetotmag -1.0 1.0 -> 0 +dqctm070 comparetotmag -1.0 2.0 -> -1 +dqctm071 comparetotmag 0.0 -2.0 -> -1 +dqctm072 comparetotmag 0.0 -1.0 -> -1 +dqctm073 comparetotmag 0.0 0.0 -> 0 +dqctm074 comparetotmag 0.0 1.0 -> -1 +dqctm075 comparetotmag 0.0 2.0 -> -1 +dqctm076 comparetotmag 1.0 -2.0 -> -1 +dqctm077 comparetotmag 1.0 -1.0 -> 0 +dqctm078 comparetotmag 1.0 0.0 -> 1 +dqctm079 comparetotmag 1.0 1.0 -> 0 +dqctm080 comparetotmag 1.0 2.0 -> -1 +dqctm081 comparetotmag 2.0 -2.0 -> 0 +dqctm082 comparetotmag 2.0 -1.0 -> 1 +dqctm083 comparetotmag 2.0 0.0 -> 1 +dqctm085 comparetotmag 2.0 1.0 -> 1 +dqctm086 comparetotmag 2.0 2.0 -> 0 + +-- now some cases which might overflow if subtract were used +dqctm090 comparetotmag 9.99999999999999999999999999999E+6144 9.99999999999999999999999999999E+6144 -> 0 +dqctm091 comparetotmag -9.99999999999999999999999999999E+6144 9.99999999999999999999999999999E+6144 -> 0 +dqctm092 comparetotmag 9.99999999999999999999999999999E+6144 -9.99999999999999999999999999999E+6144 -> 0 +dqctm093 comparetotmag -9.99999999999999999999999999999E+6144 -9.99999999999999999999999999999E+6144 -> 0 + +-- some differing length/exponent cases +-- in this first group, compare would compare all equal +dqctm100 comparetotmag 7.0 7.0 -> 0 +dqctm101 comparetotmag 7.0 7 -> -1 +dqctm102 comparetotmag 7 7.0 -> 1 +dqctm103 comparetotmag 7E+0 7.0 -> 1 +dqctm104 comparetotmag 70E-1 7.0 -> 0 +dqctm105 comparetotmag 0.7E+1 7 -> 0 +dqctm106 comparetotmag 70E-1 7 -> -1 +dqctm107 comparetotmag 7.0 7E+0 -> -1 +dqctm108 comparetotmag 7.0 70E-1 -> 0 +dqctm109 comparetotmag 7 0.7E+1 -> 0 +dqctm110 comparetotmag 7 70E-1 -> 1 + +dqctm120 comparetotmag 8.0 7.0 -> 1 +dqctm121 comparetotmag 8.0 7 -> 1 +dqctm122 comparetotmag 8 7.0 -> 1 +dqctm123 comparetotmag 8E+0 7.0 -> 1 +dqctm124 comparetotmag 80E-1 7.0 -> 1 +dqctm125 comparetotmag 0.8E+1 7 -> 1 +dqctm126 comparetotmag 80E-1 7 -> 1 +dqctm127 comparetotmag 8.0 7E+0 -> 1 +dqctm128 comparetotmag 8.0 70E-1 -> 1 +dqctm129 comparetotmag 8 0.7E+1 -> 1 +dqctm130 comparetotmag 8 70E-1 -> 1 + +dqctm140 comparetotmag 8.0 9.0 -> -1 +dqctm141 comparetotmag 8.0 9 -> -1 +dqctm142 comparetotmag 8 9.0 -> -1 +dqctm143 comparetotmag 8E+0 9.0 -> -1 +dqctm144 comparetotmag 80E-1 9.0 -> -1 +dqctm145 comparetotmag 0.8E+1 9 -> -1 +dqctm146 comparetotmag 80E-1 9 -> -1 +dqctm147 comparetotmag 8.0 9E+0 -> -1 +dqctm148 comparetotmag 8.0 90E-1 -> -1 +dqctm149 comparetotmag 8 0.9E+1 -> -1 +dqctm150 comparetotmag 8 90E-1 -> -1 + +-- and again, with sign changes -+ .. +dqctm200 comparetotmag -7.0 7.0 -> 0 +dqctm201 comparetotmag -7.0 7 -> -1 +dqctm202 comparetotmag -7 7.0 -> 1 +dqctm203 comparetotmag -7E+0 7.0 -> 1 +dqctm204 comparetotmag -70E-1 7.0 -> 0 +dqctm205 comparetotmag -0.7E+1 7 -> 0 +dqctm206 comparetotmag -70E-1 7 -> -1 +dqctm207 comparetotmag -7.0 7E+0 -> -1 +dqctm208 comparetotmag -7.0 70E-1 -> 0 +dqctm209 comparetotmag -7 0.7E+1 -> 0 +dqctm210 comparetotmag -7 70E-1 -> 1 + +dqctm220 comparetotmag -8.0 7.0 -> 1 +dqctm221 comparetotmag -8.0 7 -> 1 +dqctm222 comparetotmag -8 7.0 -> 1 +dqctm223 comparetotmag -8E+0 7.0 -> 1 +dqctm224 comparetotmag -80E-1 7.0 -> 1 +dqctm225 comparetotmag -0.8E+1 7 -> 1 +dqctm226 comparetotmag -80E-1 7 -> 1 +dqctm227 comparetotmag -8.0 7E+0 -> 1 +dqctm228 comparetotmag -8.0 70E-1 -> 1 +dqctm229 comparetotmag -8 0.7E+1 -> 1 +dqctm230 comparetotmag -8 70E-1 -> 1 + +dqctm240 comparetotmag -8.0 9.0 -> -1 +dqctm241 comparetotmag -8.0 9 -> -1 +dqctm242 comparetotmag -8 9.0 -> -1 +dqctm243 comparetotmag -8E+0 9.0 -> -1 +dqctm244 comparetotmag -80E-1 9.0 -> -1 +dqctm245 comparetotmag -0.8E+1 9 -> -1 +dqctm246 comparetotmag -80E-1 9 -> -1 +dqctm247 comparetotmag -8.0 9E+0 -> -1 +dqctm248 comparetotmag -8.0 90E-1 -> -1 +dqctm249 comparetotmag -8 0.9E+1 -> -1 +dqctm250 comparetotmag -8 90E-1 -> -1 + +-- and again, with sign changes +- .. +dqctm300 comparetotmag 7.0 -7.0 -> 0 +dqctm301 comparetotmag 7.0 -7 -> -1 +dqctm302 comparetotmag 7 -7.0 -> 1 +dqctm303 comparetotmag 7E+0 -7.0 -> 1 +dqctm304 comparetotmag 70E-1 -7.0 -> 0 +dqctm305 comparetotmag .7E+1 -7 -> 0 +dqctm306 comparetotmag 70E-1 -7 -> -1 +dqctm307 comparetotmag 7.0 -7E+0 -> -1 +dqctm308 comparetotmag 7.0 -70E-1 -> 0 +dqctm309 comparetotmag 7 -.7E+1 -> 0 +dqctm310 comparetotmag 7 -70E-1 -> 1 + +dqctm320 comparetotmag 8.0 -7.0 -> 1 +dqctm321 comparetotmag 8.0 -7 -> 1 +dqctm322 comparetotmag 8 -7.0 -> 1 +dqctm323 comparetotmag 8E+0 -7.0 -> 1 +dqctm324 comparetotmag 80E-1 -7.0 -> 1 +dqctm325 comparetotmag .8E+1 -7 -> 1 +dqctm326 comparetotmag 80E-1 -7 -> 1 +dqctm327 comparetotmag 8.0 -7E+0 -> 1 +dqctm328 comparetotmag 8.0 -70E-1 -> 1 +dqctm329 comparetotmag 8 -.7E+1 -> 1 +dqctm330 comparetotmag 8 -70E-1 -> 1 + +dqctm340 comparetotmag 8.0 -9.0 -> -1 +dqctm341 comparetotmag 8.0 -9 -> -1 +dqctm342 comparetotmag 8 -9.0 -> -1 +dqctm343 comparetotmag 8E+0 -9.0 -> -1 +dqctm344 comparetotmag 80E-1 -9.0 -> -1 +dqctm345 comparetotmag .8E+1 -9 -> -1 +dqctm346 comparetotmag 80E-1 -9 -> -1 +dqctm347 comparetotmag 8.0 -9E+0 -> -1 +dqctm348 comparetotmag 8.0 -90E-1 -> -1 +dqctm349 comparetotmag 8 -.9E+1 -> -1 +dqctm350 comparetotmag 8 -90E-1 -> -1 + +-- and again, with sign changes -- .. +dqctm400 comparetotmag -7.0 -7.0 -> 0 +dqctm401 comparetotmag -7.0 -7 -> -1 +dqctm402 comparetotmag -7 -7.0 -> 1 +dqctm403 comparetotmag -7E+0 -7.0 -> 1 +dqctm404 comparetotmag -70E-1 -7.0 -> 0 +dqctm405 comparetotmag -.7E+1 -7 -> 0 +dqctm406 comparetotmag -70E-1 -7 -> -1 +dqctm407 comparetotmag -7.0 -7E+0 -> -1 +dqctm408 comparetotmag -7.0 -70E-1 -> 0 +dqctm409 comparetotmag -7 -.7E+1 -> 0 +dqctm410 comparetotmag -7 -70E-1 -> 1 + +dqctm420 comparetotmag -8.0 -7.0 -> 1 +dqctm421 comparetotmag -8.0 -7 -> 1 +dqctm422 comparetotmag -8 -7.0 -> 1 +dqctm423 comparetotmag -8E+0 -7.0 -> 1 +dqctm424 comparetotmag -80E-1 -7.0 -> 1 +dqctm425 comparetotmag -.8E+1 -7 -> 1 +dqctm426 comparetotmag -80E-1 -7 -> 1 +dqctm427 comparetotmag -8.0 -7E+0 -> 1 +dqctm428 comparetotmag -8.0 -70E-1 -> 1 +dqctm429 comparetotmag -8 -.7E+1 -> 1 +dqctm430 comparetotmag -8 -70E-1 -> 1 + +dqctm440 comparetotmag -8.0 -9.0 -> -1 +dqctm441 comparetotmag -8.0 -9 -> -1 +dqctm442 comparetotmag -8 -9.0 -> -1 +dqctm443 comparetotmag -8E+0 -9.0 -> -1 +dqctm444 comparetotmag -80E-1 -9.0 -> -1 +dqctm445 comparetotmag -.8E+1 -9 -> -1 +dqctm446 comparetotmag -80E-1 -9 -> -1 +dqctm447 comparetotmag -8.0 -9E+0 -> -1 +dqctm448 comparetotmag -8.0 -90E-1 -> -1 +dqctm449 comparetotmag -8 -.9E+1 -> -1 +dqctm450 comparetotmag -8 -90E-1 -> -1 + + +-- testcases that subtract to lots of zeros at boundaries [pgr] +dqctm473 comparetotmag 123.4560000000000E-89 123.456E-89 -> -1 +dqctm474 comparetotmag 123.456000000000E+89 123.456E+89 -> -1 +dqctm475 comparetotmag 123.45600000000E-89 123.456E-89 -> -1 +dqctm476 comparetotmag 123.4560000000E+89 123.456E+89 -> -1 +dqctm477 comparetotmag 123.456000000E-89 123.456E-89 -> -1 +dqctm478 comparetotmag 123.45600000E+89 123.456E+89 -> -1 +dqctm479 comparetotmag 123.4560000E-89 123.456E-89 -> -1 +dqctm480 comparetotmag 123.456000E+89 123.456E+89 -> -1 +dqctm481 comparetotmag 123.45600E-89 123.456E-89 -> -1 +dqctm482 comparetotmag 123.4560E+89 123.456E+89 -> -1 +dqctm483 comparetotmag 123.456E-89 123.456E-89 -> 0 +dqctm487 comparetotmag 123.456E+89 123.4560000000000E+89 -> 1 +dqctm488 comparetotmag 123.456E-89 123.456000000000E-89 -> 1 +dqctm489 comparetotmag 123.456E+89 123.45600000000E+89 -> 1 +dqctm490 comparetotmag 123.456E-89 123.4560000000E-89 -> 1 +dqctm491 comparetotmag 123.456E+89 123.456000000E+89 -> 1 +dqctm492 comparetotmag 123.456E-89 123.45600000E-89 -> 1 +dqctm493 comparetotmag 123.456E+89 123.4560000E+89 -> 1 +dqctm494 comparetotmag 123.456E-89 123.456000E-89 -> 1 +dqctm495 comparetotmag 123.456E+89 123.45600E+89 -> 1 +dqctm496 comparetotmag 123.456E-89 123.4560E-89 -> 1 +dqctm497 comparetotmag 123.456E+89 123.456E+89 -> 0 + +-- wide-ranging, around precision; signs equal +dqctm498 comparetotmag 1 1E-17 -> 1 +dqctm499 comparetotmag 1 1E-16 -> 1 +dqctm500 comparetotmag 1 1E-15 -> 1 +dqctm501 comparetotmag 1 1E-14 -> 1 +dqctm502 comparetotmag 1 1E-13 -> 1 +dqctm503 comparetotmag 1 1E-12 -> 1 +dqctm504 comparetotmag 1 1E-11 -> 1 +dqctm505 comparetotmag 1 1E-10 -> 1 +dqctm506 comparetotmag 1 1E-9 -> 1 +dqctm507 comparetotmag 1 1E-8 -> 1 +dqctm508 comparetotmag 1 1E-7 -> 1 +dqctm509 comparetotmag 1 1E-6 -> 1 +dqctm510 comparetotmag 1 1E-5 -> 1 +dqctm511 comparetotmag 1 1E-4 -> 1 +dqctm512 comparetotmag 1 1E-3 -> 1 +dqctm513 comparetotmag 1 1E-2 -> 1 +dqctm514 comparetotmag 1 1E-1 -> 1 +dqctm515 comparetotmag 1 1E-0 -> 0 +dqctm516 comparetotmag 1 1E+1 -> -1 +dqctm517 comparetotmag 1 1E+2 -> -1 +dqctm518 comparetotmag 1 1E+3 -> -1 +dqctm519 comparetotmag 1 1E+4 -> -1 +dqctm521 comparetotmag 1 1E+5 -> -1 +dqctm522 comparetotmag 1 1E+6 -> -1 +dqctm523 comparetotmag 1 1E+7 -> -1 +dqctm524 comparetotmag 1 1E+8 -> -1 +dqctm525 comparetotmag 1 1E+9 -> -1 +dqctm526 comparetotmag 1 1E+10 -> -1 +dqctm527 comparetotmag 1 1E+11 -> -1 +dqctm528 comparetotmag 1 1E+12 -> -1 +dqctm529 comparetotmag 1 1E+13 -> -1 +dqctm530 comparetotmag 1 1E+14 -> -1 +dqctm531 comparetotmag 1 1E+15 -> -1 +dqctm532 comparetotmag 1 1E+16 -> -1 +dqctm533 comparetotmag 1 1E+17 -> -1 +-- LR swap +dqctm538 comparetotmag 1E-17 1 -> -1 +dqctm539 comparetotmag 1E-16 1 -> -1 +dqctm540 comparetotmag 1E-15 1 -> -1 +dqctm541 comparetotmag 1E-14 1 -> -1 +dqctm542 comparetotmag 1E-13 1 -> -1 +dqctm543 comparetotmag 1E-12 1 -> -1 +dqctm544 comparetotmag 1E-11 1 -> -1 +dqctm545 comparetotmag 1E-10 1 -> -1 +dqctm546 comparetotmag 1E-9 1 -> -1 +dqctm547 comparetotmag 1E-8 1 -> -1 +dqctm548 comparetotmag 1E-7 1 -> -1 +dqctm549 comparetotmag 1E-6 1 -> -1 +dqctm550 comparetotmag 1E-5 1 -> -1 +dqctm551 comparetotmag 1E-4 1 -> -1 +dqctm552 comparetotmag 1E-3 1 -> -1 +dqctm553 comparetotmag 1E-2 1 -> -1 +dqctm554 comparetotmag 1E-1 1 -> -1 +dqctm555 comparetotmag 1E-0 1 -> 0 +dqctm556 comparetotmag 1E+1 1 -> 1 +dqctm557 comparetotmag 1E+2 1 -> 1 +dqctm558 comparetotmag 1E+3 1 -> 1 +dqctm559 comparetotmag 1E+4 1 -> 1 +dqctm561 comparetotmag 1E+5 1 -> 1 +dqctm562 comparetotmag 1E+6 1 -> 1 +dqctm563 comparetotmag 1E+7 1 -> 1 +dqctm564 comparetotmag 1E+8 1 -> 1 +dqctm565 comparetotmag 1E+9 1 -> 1 +dqctm566 comparetotmag 1E+10 1 -> 1 +dqctm567 comparetotmag 1E+11 1 -> 1 +dqctm568 comparetotmag 1E+12 1 -> 1 +dqctm569 comparetotmag 1E+13 1 -> 1 +dqctm570 comparetotmag 1E+14 1 -> 1 +dqctm571 comparetotmag 1E+15 1 -> 1 +dqctm572 comparetotmag 1E+16 1 -> 1 +dqctm573 comparetotmag 1E+17 1 -> 1 +-- similar with a useful coefficient, one side only +dqctm578 comparetotmag 0.000000987654321 1E-17 -> 1 +dqctm579 comparetotmag 0.000000987654321 1E-16 -> 1 +dqctm580 comparetotmag 0.000000987654321 1E-15 -> 1 +dqctm581 comparetotmag 0.000000987654321 1E-14 -> 1 +dqctm582 comparetotmag 0.000000987654321 1E-13 -> 1 +dqctm583 comparetotmag 0.000000987654321 1E-12 -> 1 +dqctm584 comparetotmag 0.000000987654321 1E-11 -> 1 +dqctm585 comparetotmag 0.000000987654321 1E-10 -> 1 +dqctm586 comparetotmag 0.000000987654321 1E-9 -> 1 +dqctm587 comparetotmag 0.000000987654321 1E-8 -> 1 +dqctm588 comparetotmag 0.000000987654321 1E-7 -> 1 +dqctm589 comparetotmag 0.000000987654321 1E-6 -> -1 +dqctm590 comparetotmag 0.000000987654321 1E-5 -> -1 +dqctm591 comparetotmag 0.000000987654321 1E-4 -> -1 +dqctm592 comparetotmag 0.000000987654321 1E-3 -> -1 +dqctm593 comparetotmag 0.000000987654321 1E-2 -> -1 +dqctm594 comparetotmag 0.000000987654321 1E-1 -> -1 +dqctm595 comparetotmag 0.000000987654321 1E-0 -> -1 +dqctm596 comparetotmag 0.000000987654321 1E+1 -> -1 +dqctm597 comparetotmag 0.000000987654321 1E+2 -> -1 +dqctm598 comparetotmag 0.000000987654321 1E+3 -> -1 +dqctm599 comparetotmag 0.000000987654321 1E+4 -> -1 + +-- check some unit-y traps +dqctm600 comparetotmag 12 12.2345 -> -1 +dqctm601 comparetotmag 12.0 12.2345 -> -1 +dqctm602 comparetotmag 12.00 12.2345 -> -1 +dqctm603 comparetotmag 12.000 12.2345 -> -1 +dqctm604 comparetotmag 12.0000 12.2345 -> -1 +dqctm605 comparetotmag 12.00000 12.2345 -> -1 +dqctm606 comparetotmag 12.000000 12.2345 -> -1 +dqctm607 comparetotmag 12.0000000 12.2345 -> -1 +dqctm608 comparetotmag 12.00000000 12.2345 -> -1 +dqctm609 comparetotmag 12.000000000 12.2345 -> -1 +dqctm610 comparetotmag 12.1234 12 -> 1 +dqctm611 comparetotmag 12.1234 12.0 -> 1 +dqctm612 comparetotmag 12.1234 12.00 -> 1 +dqctm613 comparetotmag 12.1234 12.000 -> 1 +dqctm614 comparetotmag 12.1234 12.0000 -> 1 +dqctm615 comparetotmag 12.1234 12.00000 -> 1 +dqctm616 comparetotmag 12.1234 12.000000 -> 1 +dqctm617 comparetotmag 12.1234 12.0000000 -> 1 +dqctm618 comparetotmag 12.1234 12.00000000 -> 1 +dqctm619 comparetotmag 12.1234 12.000000000 -> 1 +dqctm620 comparetotmag -12 -12.2345 -> -1 +dqctm621 comparetotmag -12.0 -12.2345 -> -1 +dqctm622 comparetotmag -12.00 -12.2345 -> -1 +dqctm623 comparetotmag -12.000 -12.2345 -> -1 +dqctm624 comparetotmag -12.0000 -12.2345 -> -1 +dqctm625 comparetotmag -12.00000 -12.2345 -> -1 +dqctm626 comparetotmag -12.000000 -12.2345 -> -1 +dqctm627 comparetotmag -12.0000000 -12.2345 -> -1 +dqctm628 comparetotmag -12.00000000 -12.2345 -> -1 +dqctm629 comparetotmag -12.000000000 -12.2345 -> -1 +dqctm630 comparetotmag -12.1234 -12 -> 1 +dqctm631 comparetotmag -12.1234 -12.0 -> 1 +dqctm632 comparetotmag -12.1234 -12.00 -> 1 +dqctm633 comparetotmag -12.1234 -12.000 -> 1 +dqctm634 comparetotmag -12.1234 -12.0000 -> 1 +dqctm635 comparetotmag -12.1234 -12.00000 -> 1 +dqctm636 comparetotmag -12.1234 -12.000000 -> 1 +dqctm637 comparetotmag -12.1234 -12.0000000 -> 1 +dqctm638 comparetotmag -12.1234 -12.00000000 -> 1 +dqctm639 comparetotmag -12.1234 -12.000000000 -> 1 + +-- extended zeros +dqctm640 comparetotmag 0 0 -> 0 +dqctm641 comparetotmag 0 -0 -> 0 +dqctm642 comparetotmag 0 -0.0 -> 1 +dqctm643 comparetotmag 0 0.0 -> 1 +dqctm644 comparetotmag -0 0 -> 0 +dqctm645 comparetotmag -0 -0 -> 0 +dqctm646 comparetotmag -0 -0.0 -> 1 +dqctm647 comparetotmag -0 0.0 -> 1 +dqctm648 comparetotmag 0.0 0 -> -1 +dqctm649 comparetotmag 0.0 -0 -> -1 +dqctm650 comparetotmag 0.0 -0.0 -> 0 +dqctm651 comparetotmag 0.0 0.0 -> 0 +dqctm652 comparetotmag -0.0 0 -> -1 +dqctm653 comparetotmag -0.0 -0 -> -1 +dqctm654 comparetotmag -0.0 -0.0 -> 0 +dqctm655 comparetotmag -0.0 0.0 -> 0 + +dqctm656 comparetotmag -0E1 0.0 -> 1 +dqctm657 comparetotmag -0E2 0.0 -> 1 +dqctm658 comparetotmag 0E1 0.0 -> 1 +dqctm659 comparetotmag 0E2 0.0 -> 1 +dqctm660 comparetotmag -0E1 0 -> 1 +dqctm661 comparetotmag -0E2 0 -> 1 +dqctm662 comparetotmag 0E1 0 -> 1 +dqctm663 comparetotmag 0E2 0 -> 1 +dqctm664 comparetotmag -0E1 -0E1 -> 0 +dqctm665 comparetotmag -0E2 -0E1 -> 1 +dqctm666 comparetotmag 0E1 -0E1 -> 0 +dqctm667 comparetotmag 0E2 -0E1 -> 1 +dqctm668 comparetotmag -0E1 -0E2 -> -1 +dqctm669 comparetotmag -0E2 -0E2 -> 0 +dqctm670 comparetotmag 0E1 -0E2 -> -1 +dqctm671 comparetotmag 0E2 -0E2 -> 0 +dqctm672 comparetotmag -0E1 0E1 -> 0 +dqctm673 comparetotmag -0E2 0E1 -> 1 +dqctm674 comparetotmag 0E1 0E1 -> 0 +dqctm675 comparetotmag 0E2 0E1 -> 1 +dqctm676 comparetotmag -0E1 0E2 -> -1 +dqctm677 comparetotmag -0E2 0E2 -> 0 +dqctm678 comparetotmag 0E1 0E2 -> -1 +dqctm679 comparetotmag 0E2 0E2 -> 0 + +-- trailing zeros; unit-y +dqctm680 comparetotmag 12 12 -> 0 +dqctm681 comparetotmag 12 12.0 -> 1 +dqctm682 comparetotmag 12 12.00 -> 1 +dqctm683 comparetotmag 12 12.000 -> 1 +dqctm684 comparetotmag 12 12.0000 -> 1 +dqctm685 comparetotmag 12 12.00000 -> 1 +dqctm686 comparetotmag 12 12.000000 -> 1 +dqctm687 comparetotmag 12 12.0000000 -> 1 +dqctm688 comparetotmag 12 12.00000000 -> 1 +dqctm689 comparetotmag 12 12.000000000 -> 1 +dqctm690 comparetotmag 12 12 -> 0 +dqctm691 comparetotmag 12.0 12 -> -1 +dqctm692 comparetotmag 12.00 12 -> -1 +dqctm693 comparetotmag 12.000 12 -> -1 +dqctm694 comparetotmag 12.0000 12 -> -1 +dqctm695 comparetotmag 12.00000 12 -> -1 +dqctm696 comparetotmag 12.000000 12 -> -1 +dqctm697 comparetotmag 12.0000000 12 -> -1 +dqctm698 comparetotmag 12.00000000 12 -> -1 +dqctm699 comparetotmag 12.000000000 12 -> -1 + +-- old long operand checks +dqctm701 comparetotmag 12345678000 1 -> 1 +dqctm702 comparetotmag 1 12345678000 -> -1 +dqctm703 comparetotmag 1234567800 1 -> 1 +dqctm704 comparetotmag 1 1234567800 -> -1 +dqctm705 comparetotmag 1234567890 1 -> 1 +dqctm706 comparetotmag 1 1234567890 -> -1 +dqctm707 comparetotmag 1234567891 1 -> 1 +dqctm708 comparetotmag 1 1234567891 -> -1 +dqctm709 comparetotmag 12345678901 1 -> 1 +dqctm710 comparetotmag 1 12345678901 -> -1 +dqctm711 comparetotmag 1234567896 1 -> 1 +dqctm712 comparetotmag 1 1234567896 -> -1 +dqctm713 comparetotmag -1234567891 1 -> 1 +dqctm714 comparetotmag 1 -1234567891 -> -1 +dqctm715 comparetotmag -12345678901 1 -> 1 +dqctm716 comparetotmag 1 -12345678901 -> -1 +dqctm717 comparetotmag -1234567896 1 -> 1 +dqctm718 comparetotmag 1 -1234567896 -> -1 + +-- old residue cases +dqctm740 comparetotmag 1 0.9999999 -> 1 +dqctm741 comparetotmag 1 0.999999 -> 1 +dqctm742 comparetotmag 1 0.99999 -> 1 +dqctm743 comparetotmag 1 1.0000 -> 1 +dqctm744 comparetotmag 1 1.00001 -> -1 +dqctm745 comparetotmag 1 1.000001 -> -1 +dqctm746 comparetotmag 1 1.0000001 -> -1 +dqctm750 comparetotmag 0.9999999 1 -> -1 +dqctm751 comparetotmag 0.999999 1 -> -1 +dqctm752 comparetotmag 0.99999 1 -> -1 +dqctm753 comparetotmag 1.0000 1 -> -1 +dqctm754 comparetotmag 1.00001 1 -> 1 +dqctm755 comparetotmag 1.000001 1 -> 1 +dqctm756 comparetotmag 1.0000001 1 -> 1 + +-- Specials +dqctm780 comparetotmag Inf -Inf -> 0 +dqctm781 comparetotmag Inf -1000 -> 1 +dqctm782 comparetotmag Inf -1 -> 1 +dqctm783 comparetotmag Inf -0 -> 1 +dqctm784 comparetotmag Inf 0 -> 1 +dqctm785 comparetotmag Inf 1 -> 1 +dqctm786 comparetotmag Inf 1000 -> 1 +dqctm787 comparetotmag Inf Inf -> 0 +dqctm788 comparetotmag -1000 Inf -> -1 +dqctm789 comparetotmag -Inf Inf -> 0 +dqctm790 comparetotmag -1 Inf -> -1 +dqctm791 comparetotmag -0 Inf -> -1 +dqctm792 comparetotmag 0 Inf -> -1 +dqctm793 comparetotmag 1 Inf -> -1 +dqctm794 comparetotmag 1000 Inf -> -1 +dqctm795 comparetotmag Inf Inf -> 0 + +dqctm800 comparetotmag -Inf -Inf -> 0 +dqctm801 comparetotmag -Inf -1000 -> 1 +dqctm802 comparetotmag -Inf -1 -> 1 +dqctm803 comparetotmag -Inf -0 -> 1 +dqctm804 comparetotmag -Inf 0 -> 1 +dqctm805 comparetotmag -Inf 1 -> 1 +dqctm806 comparetotmag -Inf 1000 -> 1 +dqctm807 comparetotmag -Inf Inf -> 0 +dqctm808 comparetotmag -Inf -Inf -> 0 +dqctm809 comparetotmag -1000 -Inf -> -1 +dqctm810 comparetotmag -1 -Inf -> -1 +dqctm811 comparetotmag -0 -Inf -> -1 +dqctm812 comparetotmag 0 -Inf -> -1 +dqctm813 comparetotmag 1 -Inf -> -1 +dqctm814 comparetotmag 1000 -Inf -> -1 +dqctm815 comparetotmag Inf -Inf -> 0 + +dqctm821 comparetotmag NaN -Inf -> 1 +dqctm822 comparetotmag NaN -1000 -> 1 +dqctm823 comparetotmag NaN -1 -> 1 +dqctm824 comparetotmag NaN -0 -> 1 +dqctm825 comparetotmag NaN 0 -> 1 +dqctm826 comparetotmag NaN 1 -> 1 +dqctm827 comparetotmag NaN 1000 -> 1 +dqctm828 comparetotmag NaN Inf -> 1 +dqctm829 comparetotmag NaN NaN -> 0 +dqctm830 comparetotmag -Inf NaN -> -1 +dqctm831 comparetotmag -1000 NaN -> -1 +dqctm832 comparetotmag -1 NaN -> -1 +dqctm833 comparetotmag -0 NaN -> -1 +dqctm834 comparetotmag 0 NaN -> -1 +dqctm835 comparetotmag 1 NaN -> -1 +dqctm836 comparetotmag 1000 NaN -> -1 +dqctm837 comparetotmag Inf NaN -> -1 +dqctm838 comparetotmag -NaN -NaN -> 0 +dqctm839 comparetotmag +NaN -NaN -> 0 +dqctm840 comparetotmag -NaN +NaN -> 0 + +dqctm841 comparetotmag sNaN -sNaN -> 0 +dqctm842 comparetotmag sNaN -NaN -> -1 +dqctm843 comparetotmag sNaN -Inf -> 1 +dqctm844 comparetotmag sNaN -1000 -> 1 +dqctm845 comparetotmag sNaN -1 -> 1 +dqctm846 comparetotmag sNaN -0 -> 1 +dqctm847 comparetotmag sNaN 0 -> 1 +dqctm848 comparetotmag sNaN 1 -> 1 +dqctm849 comparetotmag sNaN 1000 -> 1 +dqctm850 comparetotmag sNaN NaN -> -1 +dqctm851 comparetotmag sNaN sNaN -> 0 + +dqctm852 comparetotmag -sNaN sNaN -> 0 +dqctm853 comparetotmag -NaN sNaN -> 1 +dqctm854 comparetotmag -Inf sNaN -> -1 +dqctm855 comparetotmag -1000 sNaN -> -1 +dqctm856 comparetotmag -1 sNaN -> -1 +dqctm857 comparetotmag -0 sNaN -> -1 +dqctm858 comparetotmag 0 sNaN -> -1 +dqctm859 comparetotmag 1 sNaN -> -1 +dqctm860 comparetotmag 1000 sNaN -> -1 +dqctm861 comparetotmag Inf sNaN -> -1 +dqctm862 comparetotmag NaN sNaN -> 1 +dqctm863 comparetotmag sNaN sNaN -> 0 + +dqctm871 comparetotmag -sNaN -sNaN -> 0 +dqctm872 comparetotmag -sNaN -NaN -> -1 +dqctm873 comparetotmag -sNaN -Inf -> 1 +dqctm874 comparetotmag -sNaN -1000 -> 1 +dqctm875 comparetotmag -sNaN -1 -> 1 +dqctm876 comparetotmag -sNaN -0 -> 1 +dqctm877 comparetotmag -sNaN 0 -> 1 +dqctm878 comparetotmag -sNaN 1 -> 1 +dqctm879 comparetotmag -sNaN 1000 -> 1 +dqctm880 comparetotmag -sNaN NaN -> -1 +dqctm881 comparetotmag -sNaN sNaN -> 0 + +dqctm882 comparetotmag -sNaN -sNaN -> 0 +dqctm883 comparetotmag -NaN -sNaN -> 1 +dqctm884 comparetotmag -Inf -sNaN -> -1 +dqctm885 comparetotmag -1000 -sNaN -> -1 +dqctm886 comparetotmag -1 -sNaN -> -1 +dqctm887 comparetotmag -0 -sNaN -> -1 +dqctm888 comparetotmag 0 -sNaN -> -1 +dqctm889 comparetotmag 1 -sNaN -> -1 +dqctm890 comparetotmag 1000 -sNaN -> -1 +dqctm891 comparetotmag Inf -sNaN -> -1 +dqctm892 comparetotmag NaN -sNaN -> 1 +dqctm893 comparetotmag sNaN -sNaN -> 0 + +-- NaNs with payload +dqctm960 comparetotmag NaN9 -Inf -> 1 +dqctm961 comparetotmag NaN8 999 -> 1 +dqctm962 comparetotmag NaN77 Inf -> 1 +dqctm963 comparetotmag -NaN67 NaN5 -> 1 +dqctm964 comparetotmag -Inf -NaN4 -> -1 +dqctm965 comparetotmag -999 -NaN33 -> -1 +dqctm966 comparetotmag Inf NaN2 -> -1 + +dqctm970 comparetotmag -NaN41 -NaN42 -> -1 +dqctm971 comparetotmag +NaN41 -NaN42 -> -1 +dqctm972 comparetotmag -NaN41 +NaN42 -> -1 +dqctm973 comparetotmag +NaN41 +NaN42 -> -1 +dqctm974 comparetotmag -NaN42 -NaN01 -> 1 +dqctm975 comparetotmag +NaN42 -NaN01 -> 1 +dqctm976 comparetotmag -NaN42 +NaN01 -> 1 +dqctm977 comparetotmag +NaN42 +NaN01 -> 1 + +dqctm980 comparetotmag -sNaN771 -sNaN772 -> -1 +dqctm981 comparetotmag +sNaN771 -sNaN772 -> -1 +dqctm982 comparetotmag -sNaN771 +sNaN772 -> -1 +dqctm983 comparetotmag +sNaN771 +sNaN772 -> -1 +dqctm984 comparetotmag -sNaN772 -sNaN771 -> 1 +dqctm985 comparetotmag +sNaN772 -sNaN771 -> 1 +dqctm986 comparetotmag -sNaN772 +sNaN771 -> 1 +dqctm987 comparetotmag +sNaN772 +sNaN771 -> 1 + +dqctm991 comparetotmag -sNaN99 -Inf -> 1 +dqctm992 comparetotmag sNaN98 -11 -> 1 +dqctm993 comparetotmag sNaN97 NaN -> -1 +dqctm994 comparetotmag sNaN16 sNaN94 -> -1 +dqctm995 comparetotmag NaN85 sNaN83 -> 1 +dqctm996 comparetotmag -Inf sNaN92 -> -1 +dqctm997 comparetotmag 088 sNaN81 -> -1 +dqctm998 comparetotmag Inf sNaN90 -> -1 +dqctm999 comparetotmag NaN -sNaN89 -> 1 + +-- spread zeros +dqctm1110 comparetotmag 0E-6143 0 -> -1 +dqctm1111 comparetotmag 0E-6143 -0 -> -1 +dqctm1112 comparetotmag -0E-6143 0 -> -1 +dqctm1113 comparetotmag -0E-6143 -0 -> -1 +dqctm1114 comparetotmag 0E-6143 0E+6144 -> -1 +dqctm1115 comparetotmag 0E-6143 -0E+6144 -> -1 +dqctm1116 comparetotmag -0E-6143 0E+6144 -> -1 +dqctm1117 comparetotmag -0E-6143 -0E+6144 -> -1 +dqctm1118 comparetotmag 0 0E+6144 -> -1 +dqctm1119 comparetotmag 0 -0E+6144 -> -1 +dqctm1120 comparetotmag -0 0E+6144 -> -1 +dqctm1121 comparetotmag -0 -0E+6144 -> -1 + +dqctm1130 comparetotmag 0E+6144 0 -> 1 +dqctm1131 comparetotmag 0E+6144 -0 -> 1 +dqctm1132 comparetotmag -0E+6144 0 -> 1 +dqctm1133 comparetotmag -0E+6144 -0 -> 1 +dqctm1134 comparetotmag 0E+6144 0E-6143 -> 1 +dqctm1135 comparetotmag 0E+6144 -0E-6143 -> 1 +dqctm1136 comparetotmag -0E+6144 0E-6143 -> 1 +dqctm1137 comparetotmag -0E+6144 -0E-6143 -> 1 +dqctm1138 comparetotmag 0 0E-6143 -> 1 +dqctm1139 comparetotmag 0 -0E-6143 -> 1 +dqctm1140 comparetotmag -0 0E-6143 -> 1 +dqctm1141 comparetotmag -0 -0E-6143 -> 1 + +-- Null tests +dqctm9990 comparetotmag 10 # -> NaN Invalid_operation +dqctm9991 comparetotmag # 10 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/dqCopy.decTest b/Lib/test/decimaltestdata/dqCopy.decTest index 7254d68bb7..0c6243158f 100644 --- a/Lib/test/decimaltestdata/dqCopy.decTest +++ b/Lib/test/decimaltestdata/dqCopy.decTest @@ -1,88 +1,88 @@ -------------------------------------------------------------------------
--- dqCopy.decTest -- quiet decQuad copy --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- All operands and results are decQuads.
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
--- Sanity check
-dqcpy001 copy +7.50 -> 7.50
-
--- Infinities
-dqcpy011 copy Infinity -> Infinity
-dqcpy012 copy -Infinity -> -Infinity
-
--- NaNs, 0 payload
-dqcpy021 copy NaN -> NaN
-dqcpy022 copy -NaN -> -NaN
-dqcpy023 copy sNaN -> sNaN
-dqcpy024 copy -sNaN -> -sNaN
-
--- NaNs, non-0 payload
-dqcpy031 copy NaN10 -> NaN10
-dqcpy032 copy -NaN10 -> -NaN10
-dqcpy033 copy sNaN10 -> sNaN10
-dqcpy034 copy -sNaN10 -> -sNaN10
-dqcpy035 copy NaN7 -> NaN7
-dqcpy036 copy -NaN7 -> -NaN7
-dqcpy037 copy sNaN101 -> sNaN101
-dqcpy038 copy -sNaN101 -> -sNaN101
-
--- finites
-dqcpy101 copy 7 -> 7
-dqcpy102 copy -7 -> -7
-dqcpy103 copy 75 -> 75
-dqcpy104 copy -75 -> -75
-dqcpy105 copy 7.50 -> 7.50
-dqcpy106 copy -7.50 -> -7.50
-dqcpy107 copy 7.500 -> 7.500
-dqcpy108 copy -7.500 -> -7.500
-
--- zeros
-dqcpy111 copy 0 -> 0
-dqcpy112 copy -0 -> -0
-dqcpy113 copy 0E+4 -> 0E+4
-dqcpy114 copy -0E+4 -> -0E+4
-dqcpy115 copy 0.0000 -> 0.0000
-dqcpy116 copy -0.0000 -> -0.0000
-dqcpy117 copy 0E-141 -> 0E-141
-dqcpy118 copy -0E-141 -> -0E-141
-
--- full coefficients, alternating bits
-dqcpy121 copy 2682682682682682682682682682682682 -> 2682682682682682682682682682682682
-dqcpy122 copy -2682682682682682682682682682682682 -> -2682682682682682682682682682682682
-dqcpy123 copy 1341341341341341341341341341341341 -> 1341341341341341341341341341341341
-dqcpy124 copy -1341341341341341341341341341341341 -> -1341341341341341341341341341341341
-
--- Nmax, Nmin, Ntiny
-dqcpy131 copy 9.999999999999999999999999999999999E+6144 -> 9.999999999999999999999999999999999E+6144
-dqcpy132 copy 1E-6143 -> 1E-6143
-dqcpy133 copy 1.000000000000000000000000000000000E-6143 -> 1.000000000000000000000000000000000E-6143
-dqcpy134 copy 1E-6176 -> 1E-6176
-
-dqcpy135 copy -1E-6176 -> -1E-6176
-dqcpy136 copy -1.000000000000000000000000000000000E-6143 -> -1.000000000000000000000000000000000E-6143
-dqcpy137 copy -1E-6143 -> -1E-6143
-dqcpy138 copy -9.999999999999999999999999999999999E+6144 -> -9.999999999999999999999999999999999E+6144
+------------------------------------------------------------------------ +-- dqCopy.decTest -- quiet decQuad copy -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- All operands and results are decQuads. +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +-- Sanity check +dqcpy001 copy +7.50 -> 7.50 + +-- Infinities +dqcpy011 copy Infinity -> Infinity +dqcpy012 copy -Infinity -> -Infinity + +-- NaNs, 0 payload +dqcpy021 copy NaN -> NaN +dqcpy022 copy -NaN -> -NaN +dqcpy023 copy sNaN -> sNaN +dqcpy024 copy -sNaN -> -sNaN + +-- NaNs, non-0 payload +dqcpy031 copy NaN10 -> NaN10 +dqcpy032 copy -NaN10 -> -NaN10 +dqcpy033 copy sNaN10 -> sNaN10 +dqcpy034 copy -sNaN10 -> -sNaN10 +dqcpy035 copy NaN7 -> NaN7 +dqcpy036 copy -NaN7 -> -NaN7 +dqcpy037 copy sNaN101 -> sNaN101 +dqcpy038 copy -sNaN101 -> -sNaN101 + +-- finites +dqcpy101 copy 7 -> 7 +dqcpy102 copy -7 -> -7 +dqcpy103 copy 75 -> 75 +dqcpy104 copy -75 -> -75 +dqcpy105 copy 7.50 -> 7.50 +dqcpy106 copy -7.50 -> -7.50 +dqcpy107 copy 7.500 -> 7.500 +dqcpy108 copy -7.500 -> -7.500 + +-- zeros +dqcpy111 copy 0 -> 0 +dqcpy112 copy -0 -> -0 +dqcpy113 copy 0E+4 -> 0E+4 +dqcpy114 copy -0E+4 -> -0E+4 +dqcpy115 copy 0.0000 -> 0.0000 +dqcpy116 copy -0.0000 -> -0.0000 +dqcpy117 copy 0E-141 -> 0E-141 +dqcpy118 copy -0E-141 -> -0E-141 + +-- full coefficients, alternating bits +dqcpy121 copy 2682682682682682682682682682682682 -> 2682682682682682682682682682682682 +dqcpy122 copy -2682682682682682682682682682682682 -> -2682682682682682682682682682682682 +dqcpy123 copy 1341341341341341341341341341341341 -> 1341341341341341341341341341341341 +dqcpy124 copy -1341341341341341341341341341341341 -> -1341341341341341341341341341341341 + +-- Nmax, Nmin, Ntiny +dqcpy131 copy 9.999999999999999999999999999999999E+6144 -> 9.999999999999999999999999999999999E+6144 +dqcpy132 copy 1E-6143 -> 1E-6143 +dqcpy133 copy 1.000000000000000000000000000000000E-6143 -> 1.000000000000000000000000000000000E-6143 +dqcpy134 copy 1E-6176 -> 1E-6176 + +dqcpy135 copy -1E-6176 -> -1E-6176 +dqcpy136 copy -1.000000000000000000000000000000000E-6143 -> -1.000000000000000000000000000000000E-6143 +dqcpy137 copy -1E-6143 -> -1E-6143 +dqcpy138 copy -9.999999999999999999999999999999999E+6144 -> -9.999999999999999999999999999999999E+6144 diff --git a/Lib/test/decimaltestdata/dqCopyAbs.decTest b/Lib/test/decimaltestdata/dqCopyAbs.decTest index bdec0206de..16bcb4eaed 100644 --- a/Lib/test/decimaltestdata/dqCopyAbs.decTest +++ b/Lib/test/decimaltestdata/dqCopyAbs.decTest @@ -1,88 +1,88 @@ -------------------------------------------------------------------------
--- dqCopyAbs.decTest -- quiet decQuad copy and set sign to zero --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- All operands and results are decQuads.
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
--- Sanity check
-dqcpa001 copyabs +7.50 -> 7.50
-
--- Infinities
-dqcpa011 copyabs Infinity -> Infinity
-dqcpa012 copyabs -Infinity -> Infinity
-
--- NaNs, 0 payload
-dqcpa021 copyabs NaN -> NaN
-dqcpa022 copyabs -NaN -> NaN
-dqcpa023 copyabs sNaN -> sNaN
-dqcpa024 copyabs -sNaN -> sNaN
-
--- NaNs, non-0 payload
-dqcpa031 copyabs NaN10 -> NaN10
-dqcpa032 copyabs -NaN15 -> NaN15
-dqcpa033 copyabs sNaN15 -> sNaN15
-dqcpa034 copyabs -sNaN10 -> sNaN10
-dqcpa035 copyabs NaN7 -> NaN7
-dqcpa036 copyabs -NaN7 -> NaN7
-dqcpa037 copyabs sNaN101 -> sNaN101
-dqcpa038 copyabs -sNaN101 -> sNaN101
-
--- finites
-dqcpa101 copyabs 7 -> 7
-dqcpa102 copyabs -7 -> 7
-dqcpa103 copyabs 75 -> 75
-dqcpa104 copyabs -75 -> 75
-dqcpa105 copyabs 7.10 -> 7.10
-dqcpa106 copyabs -7.10 -> 7.10
-dqcpa107 copyabs 7.500 -> 7.500
-dqcpa108 copyabs -7.500 -> 7.500
-
--- zeros
-dqcpa111 copyabs 0 -> 0
-dqcpa112 copyabs -0 -> 0
-dqcpa113 copyabs 0E+6 -> 0E+6
-dqcpa114 copyabs -0E+6 -> 0E+6
-dqcpa115 copyabs 0.0000 -> 0.0000
-dqcpa116 copyabs -0.0000 -> 0.0000
-dqcpa117 copyabs 0E-141 -> 0E-141
-dqcpa118 copyabs -0E-141 -> 0E-141
-
--- full coefficients, alternating bits
-dqcpa121 copyabs 2682682682682682682682682682682682 -> 2682682682682682682682682682682682
-dqcpa122 copyabs -2682682682682682682682682682682682 -> 2682682682682682682682682682682682
-dqcpa123 copyabs 1341341341341341341341341341341341 -> 1341341341341341341341341341341341
-dqcpa124 copyabs -1341341341341341341341341341341341 -> 1341341341341341341341341341341341
-
--- Nmax, Nmin, Ntiny
-dqcpa131 copyabs 9.999999999999999999999999999999999E+6144 -> 9.999999999999999999999999999999999E+6144
-dqcpa132 copyabs 1E-6143 -> 1E-6143
-dqcpa133 copyabs 1.000000000000000000000000000000000E-6143 -> 1.000000000000000000000000000000000E-6143
-dqcpa134 copyabs 1E-6176 -> 1E-6176
-
-dqcpa135 copyabs -1E-6176 -> 1E-6176
-dqcpa136 copyabs -1.000000000000000000000000000000000E-6143 -> 1.000000000000000000000000000000000E-6143
-dqcpa137 copyabs -1E-6143 -> 1E-6143
-dqcpa138 copyabs -9.999999999999999999999999999999999E+6144 -> 9.999999999999999999999999999999999E+6144
+------------------------------------------------------------------------ +-- dqCopyAbs.decTest -- quiet decQuad copy and set sign to zero -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- All operands and results are decQuads. +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +-- Sanity check +dqcpa001 copyabs +7.50 -> 7.50 + +-- Infinities +dqcpa011 copyabs Infinity -> Infinity +dqcpa012 copyabs -Infinity -> Infinity + +-- NaNs, 0 payload +dqcpa021 copyabs NaN -> NaN +dqcpa022 copyabs -NaN -> NaN +dqcpa023 copyabs sNaN -> sNaN +dqcpa024 copyabs -sNaN -> sNaN + +-- NaNs, non-0 payload +dqcpa031 copyabs NaN10 -> NaN10 +dqcpa032 copyabs -NaN15 -> NaN15 +dqcpa033 copyabs sNaN15 -> sNaN15 +dqcpa034 copyabs -sNaN10 -> sNaN10 +dqcpa035 copyabs NaN7 -> NaN7 +dqcpa036 copyabs -NaN7 -> NaN7 +dqcpa037 copyabs sNaN101 -> sNaN101 +dqcpa038 copyabs -sNaN101 -> sNaN101 + +-- finites +dqcpa101 copyabs 7 -> 7 +dqcpa102 copyabs -7 -> 7 +dqcpa103 copyabs 75 -> 75 +dqcpa104 copyabs -75 -> 75 +dqcpa105 copyabs 7.10 -> 7.10 +dqcpa106 copyabs -7.10 -> 7.10 +dqcpa107 copyabs 7.500 -> 7.500 +dqcpa108 copyabs -7.500 -> 7.500 + +-- zeros +dqcpa111 copyabs 0 -> 0 +dqcpa112 copyabs -0 -> 0 +dqcpa113 copyabs 0E+6 -> 0E+6 +dqcpa114 copyabs -0E+6 -> 0E+6 +dqcpa115 copyabs 0.0000 -> 0.0000 +dqcpa116 copyabs -0.0000 -> 0.0000 +dqcpa117 copyabs 0E-141 -> 0E-141 +dqcpa118 copyabs -0E-141 -> 0E-141 + +-- full coefficients, alternating bits +dqcpa121 copyabs 2682682682682682682682682682682682 -> 2682682682682682682682682682682682 +dqcpa122 copyabs -2682682682682682682682682682682682 -> 2682682682682682682682682682682682 +dqcpa123 copyabs 1341341341341341341341341341341341 -> 1341341341341341341341341341341341 +dqcpa124 copyabs -1341341341341341341341341341341341 -> 1341341341341341341341341341341341 + +-- Nmax, Nmin, Ntiny +dqcpa131 copyabs 9.999999999999999999999999999999999E+6144 -> 9.999999999999999999999999999999999E+6144 +dqcpa132 copyabs 1E-6143 -> 1E-6143 +dqcpa133 copyabs 1.000000000000000000000000000000000E-6143 -> 1.000000000000000000000000000000000E-6143 +dqcpa134 copyabs 1E-6176 -> 1E-6176 + +dqcpa135 copyabs -1E-6176 -> 1E-6176 +dqcpa136 copyabs -1.000000000000000000000000000000000E-6143 -> 1.000000000000000000000000000000000E-6143 +dqcpa137 copyabs -1E-6143 -> 1E-6143 +dqcpa138 copyabs -9.999999999999999999999999999999999E+6144 -> 9.999999999999999999999999999999999E+6144 diff --git a/Lib/test/decimaltestdata/dqCopyNegate.decTest b/Lib/test/decimaltestdata/dqCopyNegate.decTest index ea00855772..6253f5a355 100644 --- a/Lib/test/decimaltestdata/dqCopyNegate.decTest +++ b/Lib/test/decimaltestdata/dqCopyNegate.decTest @@ -1,88 +1,88 @@ -------------------------------------------------------------------------
--- dqCopyNegate.decTest -- quiet decQuad copy and negate --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- All operands and results are decQuads.
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
--- Sanity check
-dqcpn001 copynegate +7.50 -> -7.50
-
--- Infinities
-dqcpn011 copynegate Infinity -> -Infinity
-dqcpn012 copynegate -Infinity -> Infinity
-
--- NaNs, 0 payload
-dqcpn021 copynegate NaN -> -NaN
-dqcpn022 copynegate -NaN -> NaN
-dqcpn023 copynegate sNaN -> -sNaN
-dqcpn024 copynegate -sNaN -> sNaN
-
--- NaNs, non-0 payload
-dqcpn031 copynegate NaN13 -> -NaN13
-dqcpn032 copynegate -NaN13 -> NaN13
-dqcpn033 copynegate sNaN13 -> -sNaN13
-dqcpn034 copynegate -sNaN13 -> sNaN13
-dqcpn035 copynegate NaN70 -> -NaN70
-dqcpn036 copynegate -NaN70 -> NaN70
-dqcpn037 copynegate sNaN101 -> -sNaN101
-dqcpn038 copynegate -sNaN101 -> sNaN101
-
--- finites
-dqcpn101 copynegate 7 -> -7
-dqcpn102 copynegate -7 -> 7
-dqcpn103 copynegate 75 -> -75
-dqcpn104 copynegate -75 -> 75
-dqcpn105 copynegate 7.50 -> -7.50
-dqcpn106 copynegate -7.50 -> 7.50
-dqcpn107 copynegate 7.500 -> -7.500
-dqcpn108 copynegate -7.500 -> 7.500
-
--- zeros
-dqcpn111 copynegate 0 -> -0
-dqcpn112 copynegate -0 -> 0
-dqcpn113 copynegate 0E+4 -> -0E+4
-dqcpn114 copynegate -0E+4 -> 0E+4
-dqcpn115 copynegate 0.0000 -> -0.0000
-dqcpn116 copynegate -0.0000 -> 0.0000
-dqcpn117 copynegate 0E-141 -> -0E-141
-dqcpn118 copynegate -0E-141 -> 0E-141
-
--- full coefficients, alternating bits
-dqcpn121 copynegate 2682682682682682682682682682682682 -> -2682682682682682682682682682682682
-dqcpn122 copynegate -2682682682682682682682682682682682 -> 2682682682682682682682682682682682
-dqcpn123 copynegate 1341341341341341341341341341341341 -> -1341341341341341341341341341341341
-dqcpn124 copynegate -1341341341341341341341341341341341 -> 1341341341341341341341341341341341
-
--- Nmax, Nmin, Ntiny
-dqcpn131 copynegate 9.999999999999999999999999999999999E+6144 -> -9.999999999999999999999999999999999E+6144
-dqcpn132 copynegate 1E-6143 -> -1E-6143
-dqcpn133 copynegate 1.000000000000000000000000000000000E-6143 -> -1.000000000000000000000000000000000E-6143
-dqcpn134 copynegate 1E-6176 -> -1E-6176
-
-dqcpn135 copynegate -1E-6176 -> 1E-6176
-dqcpn136 copynegate -1.000000000000000000000000000000000E-6143 -> 1.000000000000000000000000000000000E-6143
-dqcpn137 copynegate -1E-6143 -> 1E-6143
-dqcpn138 copynegate -9.999999999999999999999999999999999E+6144 -> 9.999999999999999999999999999999999E+6144
+------------------------------------------------------------------------ +-- dqCopyNegate.decTest -- quiet decQuad copy and negate -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- All operands and results are decQuads. +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +-- Sanity check +dqcpn001 copynegate +7.50 -> -7.50 + +-- Infinities +dqcpn011 copynegate Infinity -> -Infinity +dqcpn012 copynegate -Infinity -> Infinity + +-- NaNs, 0 payload +dqcpn021 copynegate NaN -> -NaN +dqcpn022 copynegate -NaN -> NaN +dqcpn023 copynegate sNaN -> -sNaN +dqcpn024 copynegate -sNaN -> sNaN + +-- NaNs, non-0 payload +dqcpn031 copynegate NaN13 -> -NaN13 +dqcpn032 copynegate -NaN13 -> NaN13 +dqcpn033 copynegate sNaN13 -> -sNaN13 +dqcpn034 copynegate -sNaN13 -> sNaN13 +dqcpn035 copynegate NaN70 -> -NaN70 +dqcpn036 copynegate -NaN70 -> NaN70 +dqcpn037 copynegate sNaN101 -> -sNaN101 +dqcpn038 copynegate -sNaN101 -> sNaN101 + +-- finites +dqcpn101 copynegate 7 -> -7 +dqcpn102 copynegate -7 -> 7 +dqcpn103 copynegate 75 -> -75 +dqcpn104 copynegate -75 -> 75 +dqcpn105 copynegate 7.50 -> -7.50 +dqcpn106 copynegate -7.50 -> 7.50 +dqcpn107 copynegate 7.500 -> -7.500 +dqcpn108 copynegate -7.500 -> 7.500 + +-- zeros +dqcpn111 copynegate 0 -> -0 +dqcpn112 copynegate -0 -> 0 +dqcpn113 copynegate 0E+4 -> -0E+4 +dqcpn114 copynegate -0E+4 -> 0E+4 +dqcpn115 copynegate 0.0000 -> -0.0000 +dqcpn116 copynegate -0.0000 -> 0.0000 +dqcpn117 copynegate 0E-141 -> -0E-141 +dqcpn118 copynegate -0E-141 -> 0E-141 + +-- full coefficients, alternating bits +dqcpn121 copynegate 2682682682682682682682682682682682 -> -2682682682682682682682682682682682 +dqcpn122 copynegate -2682682682682682682682682682682682 -> 2682682682682682682682682682682682 +dqcpn123 copynegate 1341341341341341341341341341341341 -> -1341341341341341341341341341341341 +dqcpn124 copynegate -1341341341341341341341341341341341 -> 1341341341341341341341341341341341 + +-- Nmax, Nmin, Ntiny +dqcpn131 copynegate 9.999999999999999999999999999999999E+6144 -> -9.999999999999999999999999999999999E+6144 +dqcpn132 copynegate 1E-6143 -> -1E-6143 +dqcpn133 copynegate 1.000000000000000000000000000000000E-6143 -> -1.000000000000000000000000000000000E-6143 +dqcpn134 copynegate 1E-6176 -> -1E-6176 + +dqcpn135 copynegate -1E-6176 -> 1E-6176 +dqcpn136 copynegate -1.000000000000000000000000000000000E-6143 -> 1.000000000000000000000000000000000E-6143 +dqcpn137 copynegate -1E-6143 -> 1E-6143 +dqcpn138 copynegate -9.999999999999999999999999999999999E+6144 -> 9.999999999999999999999999999999999E+6144 diff --git a/Lib/test/decimaltestdata/dqCopySign.decTest b/Lib/test/decimaltestdata/dqCopySign.decTest index ce794b7c35..97b5e6e955 100644 --- a/Lib/test/decimaltestdata/dqCopySign.decTest +++ b/Lib/test/decimaltestdata/dqCopySign.decTest @@ -1,175 +1,175 @@ -------------------------------------------------------------------------
--- dqCopySign.decTest -- quiet decQuad copy with sign from rhs --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- All operands and results are decQuads.
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
--- Sanity check
-dqcps001 copysign +7.50 11 -> 7.50
-
--- Infinities
-dqcps011 copysign Infinity 11 -> Infinity
-dqcps012 copysign -Infinity 11 -> Infinity
-
--- NaNs, 0 payload
-dqcps021 copysign NaN 11 -> NaN
-dqcps022 copysign -NaN 11 -> NaN
-dqcps023 copysign sNaN 11 -> sNaN
-dqcps024 copysign -sNaN 11 -> sNaN
-
--- NaNs, non-0 payload
-dqcps031 copysign NaN10 11 -> NaN10
-dqcps032 copysign -NaN10 11 -> NaN10
-dqcps033 copysign sNaN10 11 -> sNaN10
-dqcps034 copysign -sNaN10 11 -> sNaN10
-dqcps035 copysign NaN7 11 -> NaN7
-dqcps036 copysign -NaN7 11 -> NaN7
-dqcps037 copysign sNaN101 11 -> sNaN101
-dqcps038 copysign -sNaN101 11 -> sNaN101
-
--- finites
-dqcps101 copysign 7 11 -> 7
-dqcps102 copysign -7 11 -> 7
-dqcps103 copysign 75 11 -> 75
-dqcps104 copysign -75 11 -> 75
-dqcps105 copysign 7.50 11 -> 7.50
-dqcps106 copysign -7.50 11 -> 7.50
-dqcps107 copysign 7.500 11 -> 7.500
-dqcps108 copysign -7.500 11 -> 7.500
-
--- zeros
-dqcps111 copysign 0 11 -> 0
-dqcps112 copysign -0 11 -> 0
-dqcps113 copysign 0E+4 11 -> 0E+4
-dqcps114 copysign -0E+4 11 -> 0E+4
-dqcps115 copysign 0.0000 11 -> 0.0000
-dqcps116 copysign -0.0000 11 -> 0.0000
-dqcps117 copysign 0E-141 11 -> 0E-141
-dqcps118 copysign -0E-141 11 -> 0E-141
-
--- full coefficients, alternating bits
-dqcps121 copysign 2682682682682682682682682682682682 8 -> 2682682682682682682682682682682682
-dqcps122 copysign -2682682682682682682682682682682682 8 -> 2682682682682682682682682682682682
-dqcps123 copysign 1341341341341341341341341341341341 8 -> 1341341341341341341341341341341341
-dqcps124 copysign -1341341341341341341341341341341341 8 -> 1341341341341341341341341341341341
-
--- Nmax, Nmin, Ntiny
-dqcps131 copysign 9.999999999999999999999999999999999E+6144 8 -> 9.999999999999999999999999999999999E+6144
-dqcps132 copysign 1E-6143 8 -> 1E-6143
-dqcps133 copysign 1.000000000000000000000000000000000E-6143 8 -> 1.000000000000000000000000000000000E-6143
-dqcps134 copysign 1E-6176 8 -> 1E-6176
-
-dqcps135 copysign -1E-6176 8 -> 1E-6176
-dqcps136 copysign -1.000000000000000000000000000000000E-6143 8 -> 1.000000000000000000000000000000000E-6143
-dqcps137 copysign -1E-6143 8 -> 1E-6143
-dqcps138 copysign -9.999999999999999999999999999999999E+6144 8 -> 9.999999999999999999999999999999999E+6144
-
--- repeat with negative RHS
-
--- Infinities
-dqcps211 copysign Infinity -34 -> -Infinity
-dqcps212 copysign -Infinity -34 -> -Infinity
-
--- NaNs, 0 payload
-dqcps221 copysign NaN -34 -> -NaN
-dqcps222 copysign -NaN -34 -> -NaN
-dqcps223 copysign sNaN -34 -> -sNaN
-dqcps224 copysign -sNaN -34 -> -sNaN
-
--- NaNs, non-0 payload
-dqcps231 copysign NaN10 -34 -> -NaN10
-dqcps232 copysign -NaN10 -34 -> -NaN10
-dqcps233 copysign sNaN10 -34 -> -sNaN10
-dqcps234 copysign -sNaN10 -34 -> -sNaN10
-dqcps235 copysign NaN7 -34 -> -NaN7
-dqcps236 copysign -NaN7 -34 -> -NaN7
-dqcps237 copysign sNaN101 -34 -> -sNaN101
-dqcps238 copysign -sNaN101 -34 -> -sNaN101
-
--- finites
-dqcps301 copysign 7 -34 -> -7
-dqcps302 copysign -7 -34 -> -7
-dqcps303 copysign 75 -34 -> -75
-dqcps304 copysign -75 -34 -> -75
-dqcps305 copysign 7.50 -34 -> -7.50
-dqcps306 copysign -7.50 -34 -> -7.50
-dqcps307 copysign 7.500 -34 -> -7.500
-dqcps308 copysign -7.500 -34 -> -7.500
-
--- zeros
-dqcps311 copysign 0 -34 -> -0
-dqcps312 copysign -0 -34 -> -0
-dqcps313 copysign 0E+4 -34 -> -0E+4
-dqcps314 copysign -0E+4 -34 -> -0E+4
-dqcps315 copysign 0.0000 -34 -> -0.0000
-dqcps316 copysign -0.0000 -34 -> -0.0000
-dqcps317 copysign 0E-141 -34 -> -0E-141
-dqcps318 copysign -0E-141 -34 -> -0E-141
-
--- full coefficients, alternating bits
-dqcps321 copysign 2682682682682682682682682682682682 -9 -> -2682682682682682682682682682682682
-dqcps322 copysign -2682682682682682682682682682682682 -9 -> -2682682682682682682682682682682682
-dqcps323 copysign 1341341341341341341341341341341341 -9 -> -1341341341341341341341341341341341
-dqcps324 copysign -1341341341341341341341341341341341 -9 -> -1341341341341341341341341341341341
-
--- Nmax, Nmin, Ntiny
-dqcps331 copysign 9.999999999999999999999999999999999E+6144 -1 -> -9.999999999999999999999999999999999E+6144
-dqcps332 copysign 1E-6143 -1 -> -1E-6143
-dqcps333 copysign 1.000000000000000000000000000000000E-6143 -1 -> -1.000000000000000000000000000000000E-6143
-dqcps334 copysign 1E-6176 -1 -> -1E-6176
-
-dqcps335 copysign -1E-6176 -3 -> -1E-6176
-dqcps336 copysign -1.000000000000000000000000000000000E-6143 -3 -> -1.000000000000000000000000000000000E-6143
-dqcps337 copysign -1E-6143 -3 -> -1E-6143
-dqcps338 copysign -9.999999999999999999999999999999999E+6144 -3 -> -9.999999999999999999999999999999999E+6144
-
--- Other kinds of RHS
-dqcps401 copysign 701 -34 -> -701
-dqcps402 copysign -720 -34 -> -720
-dqcps403 copysign 701 -0 -> -701
-dqcps404 copysign -720 -0 -> -720
-dqcps405 copysign 701 +0 -> 701
-dqcps406 copysign -720 +0 -> 720
-dqcps407 copysign 701 +34 -> 701
-dqcps408 copysign -720 +34 -> 720
-
-dqcps413 copysign 701 -Inf -> -701
-dqcps414 copysign -720 -Inf -> -720
-dqcps415 copysign 701 +Inf -> 701
-dqcps416 copysign -720 +Inf -> 720
-
-dqcps420 copysign 701 -NaN -> -701
-dqcps421 copysign -720 -NaN -> -720
-dqcps422 copysign 701 +NaN -> 701
-dqcps423 copysign -720 +NaN -> 720
-dqcps425 copysign -720 +NaN8 -> 720
-
-dqcps426 copysign 701 -sNaN -> -701
-dqcps427 copysign -720 -sNaN -> -720
-dqcps428 copysign 701 +sNaN -> 701
-dqcps429 copysign -720 +sNaN -> 720
-dqcps430 copysign -720 +sNaN3 -> 720
-
+------------------------------------------------------------------------ +-- dqCopySign.decTest -- quiet decQuad copy with sign from rhs -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- All operands and results are decQuads. +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +-- Sanity check +dqcps001 copysign +7.50 11 -> 7.50 + +-- Infinities +dqcps011 copysign Infinity 11 -> Infinity +dqcps012 copysign -Infinity 11 -> Infinity + +-- NaNs, 0 payload +dqcps021 copysign NaN 11 -> NaN +dqcps022 copysign -NaN 11 -> NaN +dqcps023 copysign sNaN 11 -> sNaN +dqcps024 copysign -sNaN 11 -> sNaN + +-- NaNs, non-0 payload +dqcps031 copysign NaN10 11 -> NaN10 +dqcps032 copysign -NaN10 11 -> NaN10 +dqcps033 copysign sNaN10 11 -> sNaN10 +dqcps034 copysign -sNaN10 11 -> sNaN10 +dqcps035 copysign NaN7 11 -> NaN7 +dqcps036 copysign -NaN7 11 -> NaN7 +dqcps037 copysign sNaN101 11 -> sNaN101 +dqcps038 copysign -sNaN101 11 -> sNaN101 + +-- finites +dqcps101 copysign 7 11 -> 7 +dqcps102 copysign -7 11 -> 7 +dqcps103 copysign 75 11 -> 75 +dqcps104 copysign -75 11 -> 75 +dqcps105 copysign 7.50 11 -> 7.50 +dqcps106 copysign -7.50 11 -> 7.50 +dqcps107 copysign 7.500 11 -> 7.500 +dqcps108 copysign -7.500 11 -> 7.500 + +-- zeros +dqcps111 copysign 0 11 -> 0 +dqcps112 copysign -0 11 -> 0 +dqcps113 copysign 0E+4 11 -> 0E+4 +dqcps114 copysign -0E+4 11 -> 0E+4 +dqcps115 copysign 0.0000 11 -> 0.0000 +dqcps116 copysign -0.0000 11 -> 0.0000 +dqcps117 copysign 0E-141 11 -> 0E-141 +dqcps118 copysign -0E-141 11 -> 0E-141 + +-- full coefficients, alternating bits +dqcps121 copysign 2682682682682682682682682682682682 8 -> 2682682682682682682682682682682682 +dqcps122 copysign -2682682682682682682682682682682682 8 -> 2682682682682682682682682682682682 +dqcps123 copysign 1341341341341341341341341341341341 8 -> 1341341341341341341341341341341341 +dqcps124 copysign -1341341341341341341341341341341341 8 -> 1341341341341341341341341341341341 + +-- Nmax, Nmin, Ntiny +dqcps131 copysign 9.999999999999999999999999999999999E+6144 8 -> 9.999999999999999999999999999999999E+6144 +dqcps132 copysign 1E-6143 8 -> 1E-6143 +dqcps133 copysign 1.000000000000000000000000000000000E-6143 8 -> 1.000000000000000000000000000000000E-6143 +dqcps134 copysign 1E-6176 8 -> 1E-6176 + +dqcps135 copysign -1E-6176 8 -> 1E-6176 +dqcps136 copysign -1.000000000000000000000000000000000E-6143 8 -> 1.000000000000000000000000000000000E-6143 +dqcps137 copysign -1E-6143 8 -> 1E-6143 +dqcps138 copysign -9.999999999999999999999999999999999E+6144 8 -> 9.999999999999999999999999999999999E+6144 + +-- repeat with negative RHS + +-- Infinities +dqcps211 copysign Infinity -34 -> -Infinity +dqcps212 copysign -Infinity -34 -> -Infinity + +-- NaNs, 0 payload +dqcps221 copysign NaN -34 -> -NaN +dqcps222 copysign -NaN -34 -> -NaN +dqcps223 copysign sNaN -34 -> -sNaN +dqcps224 copysign -sNaN -34 -> -sNaN + +-- NaNs, non-0 payload +dqcps231 copysign NaN10 -34 -> -NaN10 +dqcps232 copysign -NaN10 -34 -> -NaN10 +dqcps233 copysign sNaN10 -34 -> -sNaN10 +dqcps234 copysign -sNaN10 -34 -> -sNaN10 +dqcps235 copysign NaN7 -34 -> -NaN7 +dqcps236 copysign -NaN7 -34 -> -NaN7 +dqcps237 copysign sNaN101 -34 -> -sNaN101 +dqcps238 copysign -sNaN101 -34 -> -sNaN101 + +-- finites +dqcps301 copysign 7 -34 -> -7 +dqcps302 copysign -7 -34 -> -7 +dqcps303 copysign 75 -34 -> -75 +dqcps304 copysign -75 -34 -> -75 +dqcps305 copysign 7.50 -34 -> -7.50 +dqcps306 copysign -7.50 -34 -> -7.50 +dqcps307 copysign 7.500 -34 -> -7.500 +dqcps308 copysign -7.500 -34 -> -7.500 + +-- zeros +dqcps311 copysign 0 -34 -> -0 +dqcps312 copysign -0 -34 -> -0 +dqcps313 copysign 0E+4 -34 -> -0E+4 +dqcps314 copysign -0E+4 -34 -> -0E+4 +dqcps315 copysign 0.0000 -34 -> -0.0000 +dqcps316 copysign -0.0000 -34 -> -0.0000 +dqcps317 copysign 0E-141 -34 -> -0E-141 +dqcps318 copysign -0E-141 -34 -> -0E-141 + +-- full coefficients, alternating bits +dqcps321 copysign 2682682682682682682682682682682682 -9 -> -2682682682682682682682682682682682 +dqcps322 copysign -2682682682682682682682682682682682 -9 -> -2682682682682682682682682682682682 +dqcps323 copysign 1341341341341341341341341341341341 -9 -> -1341341341341341341341341341341341 +dqcps324 copysign -1341341341341341341341341341341341 -9 -> -1341341341341341341341341341341341 + +-- Nmax, Nmin, Ntiny +dqcps331 copysign 9.999999999999999999999999999999999E+6144 -1 -> -9.999999999999999999999999999999999E+6144 +dqcps332 copysign 1E-6143 -1 -> -1E-6143 +dqcps333 copysign 1.000000000000000000000000000000000E-6143 -1 -> -1.000000000000000000000000000000000E-6143 +dqcps334 copysign 1E-6176 -1 -> -1E-6176 + +dqcps335 copysign -1E-6176 -3 -> -1E-6176 +dqcps336 copysign -1.000000000000000000000000000000000E-6143 -3 -> -1.000000000000000000000000000000000E-6143 +dqcps337 copysign -1E-6143 -3 -> -1E-6143 +dqcps338 copysign -9.999999999999999999999999999999999E+6144 -3 -> -9.999999999999999999999999999999999E+6144 + +-- Other kinds of RHS +dqcps401 copysign 701 -34 -> -701 +dqcps402 copysign -720 -34 -> -720 +dqcps403 copysign 701 -0 -> -701 +dqcps404 copysign -720 -0 -> -720 +dqcps405 copysign 701 +0 -> 701 +dqcps406 copysign -720 +0 -> 720 +dqcps407 copysign 701 +34 -> 701 +dqcps408 copysign -720 +34 -> 720 + +dqcps413 copysign 701 -Inf -> -701 +dqcps414 copysign -720 -Inf -> -720 +dqcps415 copysign 701 +Inf -> 701 +dqcps416 copysign -720 +Inf -> 720 + +dqcps420 copysign 701 -NaN -> -701 +dqcps421 copysign -720 -NaN -> -720 +dqcps422 copysign 701 +NaN -> 701 +dqcps423 copysign -720 +NaN -> 720 +dqcps425 copysign -720 +NaN8 -> 720 + +dqcps426 copysign 701 -sNaN -> -701 +dqcps427 copysign -720 -sNaN -> -720 +dqcps428 copysign 701 +sNaN -> 701 +dqcps429 copysign -720 +sNaN -> 720 +dqcps430 copysign -720 +sNaN3 -> 720 + diff --git a/Lib/test/decimaltestdata/dqDivide.decTest b/Lib/test/decimaltestdata/dqDivide.decTest index 3cf60c6024..2abb939d54 100644 --- a/Lib/test/decimaltestdata/dqDivide.decTest +++ b/Lib/test/decimaltestdata/dqDivide.decTest @@ -1,808 +1,808 @@ -------------------------------------------------------------------------
--- dqDivide.decTest -- decQuad division --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
--- sanity checks
-dqdiv001 divide 1 1 -> 1
-dqdiv002 divide 2 1 -> 2
-dqdiv003 divide 1 2 -> 0.5
-dqdiv004 divide 2 2 -> 1
-dqdiv005 divide 0 1 -> 0
-dqdiv006 divide 0 2 -> 0
-dqdiv007 divide 1 3 -> 0.3333333333333333333333333333333333 Inexact Rounded
-dqdiv008 divide 2 3 -> 0.6666666666666666666666666666666667 Inexact Rounded
-dqdiv009 divide 3 3 -> 1
-
-dqdiv010 divide 2.4 1 -> 2.4
-dqdiv011 divide 2.4 -1 -> -2.4
-dqdiv012 divide -2.4 1 -> -2.4
-dqdiv013 divide -2.4 -1 -> 2.4
-dqdiv014 divide 2.40 1 -> 2.40
-dqdiv015 divide 2.400 1 -> 2.400
-dqdiv016 divide 2.4 2 -> 1.2
-dqdiv017 divide 2.400 2 -> 1.200
-dqdiv018 divide 2. 2 -> 1
-dqdiv019 divide 20 20 -> 1
-
-dqdiv020 divide 187 187 -> 1
-dqdiv021 divide 5 2 -> 2.5
-dqdiv022 divide 50 20 -> 2.5
-dqdiv023 divide 500 200 -> 2.5
-dqdiv024 divide 50.0 20.0 -> 2.5
-dqdiv025 divide 5.00 2.00 -> 2.5
-dqdiv026 divide 5 2.0 -> 2.5
-dqdiv027 divide 5 2.000 -> 2.5
-dqdiv028 divide 5 0.20 -> 25
-dqdiv029 divide 5 0.200 -> 25
-dqdiv030 divide 10 1 -> 10
-dqdiv031 divide 100 1 -> 100
-dqdiv032 divide 1000 1 -> 1000
-dqdiv033 divide 1000 100 -> 10
-
-dqdiv035 divide 1 2 -> 0.5
-dqdiv036 divide 1 4 -> 0.25
-dqdiv037 divide 1 8 -> 0.125
-dqdiv038 divide 1 16 -> 0.0625
-dqdiv039 divide 1 32 -> 0.03125
-dqdiv040 divide 1 64 -> 0.015625
-dqdiv041 divide 1 -2 -> -0.5
-dqdiv042 divide 1 -4 -> -0.25
-dqdiv043 divide 1 -8 -> -0.125
-dqdiv044 divide 1 -16 -> -0.0625
-dqdiv045 divide 1 -32 -> -0.03125
-dqdiv046 divide 1 -64 -> -0.015625
-dqdiv047 divide -1 2 -> -0.5
-dqdiv048 divide -1 4 -> -0.25
-dqdiv049 divide -1 8 -> -0.125
-dqdiv050 divide -1 16 -> -0.0625
-dqdiv051 divide -1 32 -> -0.03125
-dqdiv052 divide -1 64 -> -0.015625
-dqdiv053 divide -1 -2 -> 0.5
-dqdiv054 divide -1 -4 -> 0.25
-dqdiv055 divide -1 -8 -> 0.125
-dqdiv056 divide -1 -16 -> 0.0625
-dqdiv057 divide -1 -32 -> 0.03125
-dqdiv058 divide -1 -64 -> 0.015625
-
--- bcdTime
-dqdiv060 divide 1 7 -> 0.1428571428571428571428571428571429 Inexact Rounded
-dqdiv061 divide 1.2345678 1.9876543 -> 0.6211179680490717123193907511985359 Inexact Rounded
-
--- 1234567890123456
-dqdiv067 divide 9999999999999999999999999999999999 1 -> 9999999999999999999999999999999999
-dqdiv068 divide 999999999999999999999999999999999 1 -> 999999999999999999999999999999999
-dqdiv069 divide 99999999999999999999999999999999 1 -> 99999999999999999999999999999999
-dqdiv070 divide 99999999999999999 1 -> 99999999999999999
-dqdiv071 divide 9999999999999999 1 -> 9999999999999999
-dqdiv072 divide 999999999999999 1 -> 999999999999999
-dqdiv073 divide 99999999999999 1 -> 99999999999999
-dqdiv074 divide 9999999999999 1 -> 9999999999999
-dqdiv075 divide 999999999999 1 -> 999999999999
-dqdiv076 divide 99999999999 1 -> 99999999999
-dqdiv077 divide 9999999999 1 -> 9999999999
-dqdiv078 divide 999999999 1 -> 999999999
-dqdiv079 divide 99999999 1 -> 99999999
-dqdiv080 divide 9999999 1 -> 9999999
-dqdiv081 divide 999999 1 -> 999999
-dqdiv082 divide 99999 1 -> 99999
-dqdiv083 divide 9999 1 -> 9999
-dqdiv084 divide 999 1 -> 999
-dqdiv085 divide 99 1 -> 99
-dqdiv086 divide 9 1 -> 9
-
-dqdiv090 divide 0. 1 -> 0
-dqdiv091 divide .0 1 -> 0.0
-dqdiv092 divide 0.00 1 -> 0.00
-dqdiv093 divide 0.00E+9 1 -> 0E+7
-dqdiv094 divide 0.0000E-50 1 -> 0E-54
-
-dqdiv095 divide 1 1E-8 -> 1E+8
-dqdiv096 divide 1 1E-9 -> 1E+9
-dqdiv097 divide 1 1E-10 -> 1E+10
-dqdiv098 divide 1 1E-11 -> 1E+11
-dqdiv099 divide 1 1E-12 -> 1E+12
-
-dqdiv100 divide 1 1 -> 1
-dqdiv101 divide 1 2 -> 0.5
-dqdiv102 divide 1 3 -> 0.3333333333333333333333333333333333 Inexact Rounded
-dqdiv103 divide 1 4 -> 0.25
-dqdiv104 divide 1 5 -> 0.2
-dqdiv105 divide 1 6 -> 0.1666666666666666666666666666666667 Inexact Rounded
-dqdiv106 divide 1 7 -> 0.1428571428571428571428571428571429 Inexact Rounded
-dqdiv107 divide 1 8 -> 0.125
-dqdiv108 divide 1 9 -> 0.1111111111111111111111111111111111 Inexact Rounded
-dqdiv109 divide 1 10 -> 0.1
-dqdiv110 divide 1 1 -> 1
-dqdiv111 divide 2 1 -> 2
-dqdiv112 divide 3 1 -> 3
-dqdiv113 divide 4 1 -> 4
-dqdiv114 divide 5 1 -> 5
-dqdiv115 divide 6 1 -> 6
-dqdiv116 divide 7 1 -> 7
-dqdiv117 divide 8 1 -> 8
-dqdiv118 divide 9 1 -> 9
-dqdiv119 divide 10 1 -> 10
-
-dqdiv120 divide 3E+1 0.001 -> 3E+4
-dqdiv121 divide 2.200 2 -> 1.100
-
-dqdiv130 divide 12345 4.999 -> 2469.493898779755951190238047609522 Inexact Rounded
-dqdiv131 divide 12345 4.99 -> 2473.947895791583166332665330661323 Inexact Rounded
-dqdiv132 divide 12345 4.9 -> 2519.387755102040816326530612244898 Inexact Rounded
-dqdiv133 divide 12345 5 -> 2469
-dqdiv134 divide 12345 5.1 -> 2420.588235294117647058823529411765 Inexact Rounded
-dqdiv135 divide 12345 5.01 -> 2464.071856287425149700598802395210 Inexact Rounded
-dqdiv136 divide 12345 5.001 -> 2468.506298740251949610077984403119 Inexact Rounded
-
--- test possibly imprecise results
-dqdiv220 divide 391 597 -> 0.6549413735343383584589614740368509 Inexact Rounded
-dqdiv221 divide 391 -597 -> -0.6549413735343383584589614740368509 Inexact Rounded
-dqdiv222 divide -391 597 -> -0.6549413735343383584589614740368509 Inexact Rounded
-dqdiv223 divide -391 -597 -> 0.6549413735343383584589614740368509 Inexact Rounded
-
--- test some cases that are close to exponent overflow
-dqdiv270 divide 1 1e6144 -> 1E-6144 Subnormal
-dqdiv271 divide 1 0.9e6144 -> 1.11111111111111111111111111111111E-6144 Rounded Inexact Subnormal Underflow
-dqdiv272 divide 1 0.99e6144 -> 1.01010101010101010101010101010101E-6144 Rounded Inexact Subnormal Underflow
-dqdiv273 divide 1 0.9999999999999999e6144 -> 1.00000000000000010000000000000001E-6144 Rounded Inexact Subnormal Underflow
-dqdiv274 divide 9e6144 1 -> 9.000000000000000000000000000000000E+6144 Clamped
-dqdiv275 divide 9.9e6144 1 -> 9.900000000000000000000000000000000E+6144 Clamped
-dqdiv276 divide 9.99e6144 1 -> 9.990000000000000000000000000000000E+6144 Clamped
-dqdiv277 divide 9.999999999999999e6144 1 -> 9.999999999999999000000000000000000E+6144 Clamped
-
-dqdiv278 divide 1 0.9999999999999999999999999999999999e6144 -> 1.00000000000000000000000000000000E-6144 Rounded Inexact Subnormal Underflow
-dqdiv279 divide 9.999999999999999999999999999999999e6144 1 -> 9.999999999999999999999999999999999E+6144
-
--- Divide into 0 tests
-dqdiv301 divide 0 7 -> 0
-dqdiv302 divide 0 7E-5 -> 0E+5
-dqdiv303 divide 0 7E-1 -> 0E+1
-dqdiv304 divide 0 7E+1 -> 0.0
-dqdiv305 divide 0 7E+5 -> 0.00000
-dqdiv306 divide 0 7E+6 -> 0.000000
-dqdiv307 divide 0 7E+7 -> 0E-7
-dqdiv308 divide 0 70E-5 -> 0E+5
-dqdiv309 divide 0 70E-1 -> 0E+1
-dqdiv310 divide 0 70E+0 -> 0
-dqdiv311 divide 0 70E+1 -> 0.0
-dqdiv312 divide 0 70E+5 -> 0.00000
-dqdiv313 divide 0 70E+6 -> 0.000000
-dqdiv314 divide 0 70E+7 -> 0E-7
-dqdiv315 divide 0 700E-5 -> 0E+5
-dqdiv316 divide 0 700E-1 -> 0E+1
-dqdiv317 divide 0 700E+0 -> 0
-dqdiv318 divide 0 700E+1 -> 0.0
-dqdiv319 divide 0 700E+5 -> 0.00000
-dqdiv320 divide 0 700E+6 -> 0.000000
-dqdiv321 divide 0 700E+7 -> 0E-7
-dqdiv322 divide 0 700E+77 -> 0E-77
-
-dqdiv331 divide 0E-3 7E-5 -> 0E+2
-dqdiv332 divide 0E-3 7E-1 -> 0.00
-dqdiv333 divide 0E-3 7E+1 -> 0.0000
-dqdiv334 divide 0E-3 7E+5 -> 0E-8
-dqdiv335 divide 0E-1 7E-5 -> 0E+4
-dqdiv336 divide 0E-1 7E-1 -> 0
-dqdiv337 divide 0E-1 7E+1 -> 0.00
-dqdiv338 divide 0E-1 7E+5 -> 0.000000
-dqdiv339 divide 0E+1 7E-5 -> 0E+6
-dqdiv340 divide 0E+1 7E-1 -> 0E+2
-dqdiv341 divide 0E+1 7E+1 -> 0
-dqdiv342 divide 0E+1 7E+5 -> 0.0000
-dqdiv343 divide 0E+3 7E-5 -> 0E+8
-dqdiv344 divide 0E+3 7E-1 -> 0E+4
-dqdiv345 divide 0E+3 7E+1 -> 0E+2
-dqdiv346 divide 0E+3 7E+5 -> 0.00
-
--- These were 'input rounding'
-dqdiv441 divide 12345678000 1 -> 12345678000
-dqdiv442 divide 1 12345678000 -> 8.100000664200054464404466081166219E-11 Inexact Rounded
-dqdiv443 divide 1234567800 1 -> 1234567800
-dqdiv444 divide 1 1234567800 -> 8.100000664200054464404466081166219E-10 Inexact Rounded
-dqdiv445 divide 1234567890 1 -> 1234567890
-dqdiv446 divide 1 1234567890 -> 8.100000073710000670761006103925156E-10 Inexact Rounded
-dqdiv447 divide 1234567891 1 -> 1234567891
-dqdiv448 divide 1 1234567891 -> 8.100000067149000556665214614754629E-10 Inexact Rounded
-dqdiv449 divide 12345678901 1 -> 12345678901
-dqdiv450 divide 1 12345678901 -> 8.100000073053900658873130042376760E-11 Inexact Rounded
-dqdiv451 divide 1234567896 1 -> 1234567896
-dqdiv452 divide 1 1234567896 -> 8.100000034344000145618560617422697E-10 Inexact Rounded
-
--- high-lows
-dqdiv453 divide 1e+1 1 -> 1E+1
-dqdiv454 divide 1e+1 1.0 -> 1E+1
-dqdiv455 divide 1e+1 1.00 -> 1E+1
-dqdiv456 divide 1e+2 2 -> 5E+1
-dqdiv457 divide 1e+2 2.0 -> 5E+1
-dqdiv458 divide 1e+2 2.00 -> 5E+1
-
--- some from IEEE discussions
-dqdiv460 divide 3e0 2e0 -> 1.5
-dqdiv461 divide 30e-1 2e0 -> 1.5
-dqdiv462 divide 300e-2 2e0 -> 1.50
-dqdiv464 divide 3000e-3 2e0 -> 1.500
-dqdiv465 divide 3e0 20e-1 -> 1.5
-dqdiv466 divide 30e-1 20e-1 -> 1.5
-dqdiv467 divide 300e-2 20e-1 -> 1.5
-dqdiv468 divide 3000e-3 20e-1 -> 1.50
-dqdiv469 divide 3e0 200e-2 -> 1.5
-dqdiv470 divide 30e-1 200e-2 -> 1.5
-dqdiv471 divide 300e-2 200e-2 -> 1.5
-dqdiv472 divide 3000e-3 200e-2 -> 1.5
-dqdiv473 divide 3e0 2000e-3 -> 1.5
-dqdiv474 divide 30e-1 2000e-3 -> 1.5
-dqdiv475 divide 300e-2 2000e-3 -> 1.5
-dqdiv476 divide 3000e-3 2000e-3 -> 1.5
-
--- some reciprocals
-dqdiv480 divide 1 1.0E+33 -> 1E-33
-dqdiv481 divide 1 10E+33 -> 1E-34
-dqdiv482 divide 1 1.0E-33 -> 1E+33
-dqdiv483 divide 1 10E-33 -> 1E+32
-
--- RMS discussion table
-dqdiv484 divide 0e5 1e3 -> 0E+2
-dqdiv485 divide 0e5 2e3 -> 0E+2
-dqdiv486 divide 0e5 10e2 -> 0E+3
-dqdiv487 divide 0e5 20e2 -> 0E+3
-dqdiv488 divide 0e5 100e1 -> 0E+4
-dqdiv489 divide 0e5 200e1 -> 0E+4
-
-dqdiv491 divide 1e5 1e3 -> 1E+2
-dqdiv492 divide 1e5 2e3 -> 5E+1
-dqdiv493 divide 1e5 10e2 -> 1E+2
-dqdiv494 divide 1e5 20e2 -> 5E+1
-dqdiv495 divide 1e5 100e1 -> 1E+2
-dqdiv496 divide 1e5 200e1 -> 5E+1
-
--- tryzeros cases
-rounding: half_up
-dqdiv497 divide 0E+6108 1000E-33 -> 0E+6111 Clamped
-dqdiv498 divide 0E-6170 1000E+33 -> 0E-6176 Clamped
-
-rounding: half_up
-
--- focus on trailing zeros issues
-dqdiv500 divide 1 9.9 -> 0.1010101010101010101010101010101010 Inexact Rounded
-dqdiv501 divide 1 9.09 -> 0.1100110011001100110011001100110011 Inexact Rounded
-dqdiv502 divide 1 9.009 -> 0.1110001110001110001110001110001110 Inexact Rounded
-
-dqdiv511 divide 1 2 -> 0.5
-dqdiv512 divide 1.0 2 -> 0.5
-dqdiv513 divide 1.00 2 -> 0.50
-dqdiv514 divide 1.000 2 -> 0.500
-dqdiv515 divide 1.0000 2 -> 0.5000
-dqdiv516 divide 1.00000 2 -> 0.50000
-dqdiv517 divide 1.000000 2 -> 0.500000
-dqdiv518 divide 1.0000000 2 -> 0.5000000
-dqdiv519 divide 1.00 2.00 -> 0.5
-
-dqdiv521 divide 2 1 -> 2
-dqdiv522 divide 2 1.0 -> 2
-dqdiv523 divide 2 1.00 -> 2
-dqdiv524 divide 2 1.000 -> 2
-dqdiv525 divide 2 1.0000 -> 2
-dqdiv526 divide 2 1.00000 -> 2
-dqdiv527 divide 2 1.000000 -> 2
-dqdiv528 divide 2 1.0000000 -> 2
-dqdiv529 divide 2.00 1.00 -> 2
-
-dqdiv530 divide 2.40 2 -> 1.20
-dqdiv531 divide 2.40 4 -> 0.60
-dqdiv532 divide 2.40 10 -> 0.24
-dqdiv533 divide 2.40 2.0 -> 1.2
-dqdiv534 divide 2.40 4.0 -> 0.6
-dqdiv535 divide 2.40 10.0 -> 0.24
-dqdiv536 divide 2.40 2.00 -> 1.2
-dqdiv537 divide 2.40 4.00 -> 0.6
-dqdiv538 divide 2.40 10.00 -> 0.24
-dqdiv539 divide 0.9 0.1 -> 9
-dqdiv540 divide 0.9 0.01 -> 9E+1
-dqdiv541 divide 0.9 0.001 -> 9E+2
-dqdiv542 divide 5 2 -> 2.5
-dqdiv543 divide 5 2.0 -> 2.5
-dqdiv544 divide 5 2.00 -> 2.5
-dqdiv545 divide 5 20 -> 0.25
-dqdiv546 divide 5 20.0 -> 0.25
-dqdiv547 divide 2.400 2 -> 1.200
-dqdiv548 divide 2.400 2.0 -> 1.20
-dqdiv549 divide 2.400 2.400 -> 1
-
-dqdiv550 divide 240 1 -> 240
-dqdiv551 divide 240 10 -> 24
-dqdiv552 divide 240 100 -> 2.4
-dqdiv553 divide 240 1000 -> 0.24
-dqdiv554 divide 2400 1 -> 2400
-dqdiv555 divide 2400 10 -> 240
-dqdiv556 divide 2400 100 -> 24
-dqdiv557 divide 2400 1000 -> 2.4
-
--- +ve exponent
-dqdiv600 divide 2.4E+9 2 -> 1.2E+9
-dqdiv601 divide 2.40E+9 2 -> 1.20E+9
-dqdiv602 divide 2.400E+9 2 -> 1.200E+9
-dqdiv603 divide 2.4000E+9 2 -> 1.2000E+9
-dqdiv604 divide 24E+8 2 -> 1.2E+9
-dqdiv605 divide 240E+7 2 -> 1.20E+9
-dqdiv606 divide 2400E+6 2 -> 1.200E+9
-dqdiv607 divide 24000E+5 2 -> 1.2000E+9
-
--- more zeros, etc.
-dqdiv731 divide 5.00 1E-3 -> 5.00E+3
-dqdiv732 divide 00.00 0.000 -> NaN Division_undefined
-dqdiv733 divide 00.00 0E-3 -> NaN Division_undefined
-dqdiv734 divide 0 -0 -> NaN Division_undefined
-dqdiv735 divide -0 0 -> NaN Division_undefined
-dqdiv736 divide -0 -0 -> NaN Division_undefined
-
-dqdiv741 divide 0 -1 -> -0
-dqdiv742 divide -0 -1 -> 0
-dqdiv743 divide 0 1 -> 0
-dqdiv744 divide -0 1 -> -0
-dqdiv745 divide -1 0 -> -Infinity Division_by_zero
-dqdiv746 divide -1 -0 -> Infinity Division_by_zero
-dqdiv747 divide 1 0 -> Infinity Division_by_zero
-dqdiv748 divide 1 -0 -> -Infinity Division_by_zero
-
-dqdiv751 divide 0.0 -1 -> -0.0
-dqdiv752 divide -0.0 -1 -> 0.0
-dqdiv753 divide 0.0 1 -> 0.0
-dqdiv754 divide -0.0 1 -> -0.0
-dqdiv755 divide -1.0 0 -> -Infinity Division_by_zero
-dqdiv756 divide -1.0 -0 -> Infinity Division_by_zero
-dqdiv757 divide 1.0 0 -> Infinity Division_by_zero
-dqdiv758 divide 1.0 -0 -> -Infinity Division_by_zero
-
-dqdiv761 divide 0 -1.0 -> -0E+1
-dqdiv762 divide -0 -1.0 -> 0E+1
-dqdiv763 divide 0 1.0 -> 0E+1
-dqdiv764 divide -0 1.0 -> -0E+1
-dqdiv765 divide -1 0.0 -> -Infinity Division_by_zero
-dqdiv766 divide -1 -0.0 -> Infinity Division_by_zero
-dqdiv767 divide 1 0.0 -> Infinity Division_by_zero
-dqdiv768 divide 1 -0.0 -> -Infinity Division_by_zero
-
-dqdiv771 divide 0.0 -1.0 -> -0
-dqdiv772 divide -0.0 -1.0 -> 0
-dqdiv773 divide 0.0 1.0 -> 0
-dqdiv774 divide -0.0 1.0 -> -0
-dqdiv775 divide -1.0 0.0 -> -Infinity Division_by_zero
-dqdiv776 divide -1.0 -0.0 -> Infinity Division_by_zero
-dqdiv777 divide 1.0 0.0 -> Infinity Division_by_zero
-dqdiv778 divide 1.0 -0.0 -> -Infinity Division_by_zero
-
--- Specials
-dqdiv780 divide Inf -Inf -> NaN Invalid_operation
-dqdiv781 divide Inf -1000 -> -Infinity
-dqdiv782 divide Inf -1 -> -Infinity
-dqdiv783 divide Inf -0 -> -Infinity
-dqdiv784 divide Inf 0 -> Infinity
-dqdiv785 divide Inf 1 -> Infinity
-dqdiv786 divide Inf 1000 -> Infinity
-dqdiv787 divide Inf Inf -> NaN Invalid_operation
-dqdiv788 divide -1000 Inf -> -0E-6176 Clamped
-dqdiv789 divide -Inf Inf -> NaN Invalid_operation
-dqdiv790 divide -1 Inf -> -0E-6176 Clamped
-dqdiv791 divide -0 Inf -> -0E-6176 Clamped
-dqdiv792 divide 0 Inf -> 0E-6176 Clamped
-dqdiv793 divide 1 Inf -> 0E-6176 Clamped
-dqdiv794 divide 1000 Inf -> 0E-6176 Clamped
-dqdiv795 divide Inf Inf -> NaN Invalid_operation
-
-dqdiv800 divide -Inf -Inf -> NaN Invalid_operation
-dqdiv801 divide -Inf -1000 -> Infinity
-dqdiv802 divide -Inf -1 -> Infinity
-dqdiv803 divide -Inf -0 -> Infinity
-dqdiv804 divide -Inf 0 -> -Infinity
-dqdiv805 divide -Inf 1 -> -Infinity
-dqdiv806 divide -Inf 1000 -> -Infinity
-dqdiv807 divide -Inf Inf -> NaN Invalid_operation
-dqdiv808 divide -1000 Inf -> -0E-6176 Clamped
-dqdiv809 divide -Inf -Inf -> NaN Invalid_operation
-dqdiv810 divide -1 -Inf -> 0E-6176 Clamped
-dqdiv811 divide -0 -Inf -> 0E-6176 Clamped
-dqdiv812 divide 0 -Inf -> -0E-6176 Clamped
-dqdiv813 divide 1 -Inf -> -0E-6176 Clamped
-dqdiv814 divide 1000 -Inf -> -0E-6176 Clamped
-dqdiv815 divide Inf -Inf -> NaN Invalid_operation
-
-dqdiv821 divide NaN -Inf -> NaN
-dqdiv822 divide NaN -1000 -> NaN
-dqdiv823 divide NaN -1 -> NaN
-dqdiv824 divide NaN -0 -> NaN
-dqdiv825 divide NaN 0 -> NaN
-dqdiv826 divide NaN 1 -> NaN
-dqdiv827 divide NaN 1000 -> NaN
-dqdiv828 divide NaN Inf -> NaN
-dqdiv829 divide NaN NaN -> NaN
-dqdiv830 divide -Inf NaN -> NaN
-dqdiv831 divide -1000 NaN -> NaN
-dqdiv832 divide -1 NaN -> NaN
-dqdiv833 divide -0 NaN -> NaN
-dqdiv834 divide 0 NaN -> NaN
-dqdiv835 divide 1 NaN -> NaN
-dqdiv836 divide 1000 NaN -> NaN
-dqdiv837 divide Inf NaN -> NaN
-
-dqdiv841 divide sNaN -Inf -> NaN Invalid_operation
-dqdiv842 divide sNaN -1000 -> NaN Invalid_operation
-dqdiv843 divide sNaN -1 -> NaN Invalid_operation
-dqdiv844 divide sNaN -0 -> NaN Invalid_operation
-dqdiv845 divide sNaN 0 -> NaN Invalid_operation
-dqdiv846 divide sNaN 1 -> NaN Invalid_operation
-dqdiv847 divide sNaN 1000 -> NaN Invalid_operation
-dqdiv848 divide sNaN NaN -> NaN Invalid_operation
-dqdiv849 divide sNaN sNaN -> NaN Invalid_operation
-dqdiv850 divide NaN sNaN -> NaN Invalid_operation
-dqdiv851 divide -Inf sNaN -> NaN Invalid_operation
-dqdiv852 divide -1000 sNaN -> NaN Invalid_operation
-dqdiv853 divide -1 sNaN -> NaN Invalid_operation
-dqdiv854 divide -0 sNaN -> NaN Invalid_operation
-dqdiv855 divide 0 sNaN -> NaN Invalid_operation
-dqdiv856 divide 1 sNaN -> NaN Invalid_operation
-dqdiv857 divide 1000 sNaN -> NaN Invalid_operation
-dqdiv858 divide Inf sNaN -> NaN Invalid_operation
-dqdiv859 divide NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-dqdiv861 divide NaN9 -Inf -> NaN9
-dqdiv862 divide NaN8 1000 -> NaN8
-dqdiv863 divide NaN7 Inf -> NaN7
-dqdiv864 divide NaN6 NaN5 -> NaN6
-dqdiv865 divide -Inf NaN4 -> NaN4
-dqdiv866 divide -1000 NaN3 -> NaN3
-dqdiv867 divide Inf NaN2 -> NaN2
-
-dqdiv871 divide sNaN99 -Inf -> NaN99 Invalid_operation
-dqdiv872 divide sNaN98 -1 -> NaN98 Invalid_operation
-dqdiv873 divide sNaN97 NaN -> NaN97 Invalid_operation
-dqdiv874 divide sNaN96 sNaN94 -> NaN96 Invalid_operation
-dqdiv875 divide NaN95 sNaN93 -> NaN93 Invalid_operation
-dqdiv876 divide -Inf sNaN92 -> NaN92 Invalid_operation
-dqdiv877 divide 0 sNaN91 -> NaN91 Invalid_operation
-dqdiv878 divide Inf sNaN90 -> NaN90 Invalid_operation
-dqdiv879 divide NaN sNaN89 -> NaN89 Invalid_operation
-
-dqdiv881 divide -NaN9 -Inf -> -NaN9
-dqdiv882 divide -NaN8 1000 -> -NaN8
-dqdiv883 divide -NaN7 Inf -> -NaN7
-dqdiv884 divide -NaN6 -NaN5 -> -NaN6
-dqdiv885 divide -Inf -NaN4 -> -NaN4
-dqdiv886 divide -1000 -NaN3 -> -NaN3
-dqdiv887 divide Inf -NaN2 -> -NaN2
-
-dqdiv891 divide -sNaN99 -Inf -> -NaN99 Invalid_operation
-dqdiv892 divide -sNaN98 -1 -> -NaN98 Invalid_operation
-dqdiv893 divide -sNaN97 NaN -> -NaN97 Invalid_operation
-dqdiv894 divide -sNaN96 -sNaN94 -> -NaN96 Invalid_operation
-dqdiv895 divide -NaN95 -sNaN93 -> -NaN93 Invalid_operation
-dqdiv896 divide -Inf -sNaN92 -> -NaN92 Invalid_operation
-dqdiv897 divide 0 -sNaN91 -> -NaN91 Invalid_operation
-dqdiv898 divide Inf -sNaN90 -> -NaN90 Invalid_operation
-dqdiv899 divide -NaN -sNaN89 -> -NaN89 Invalid_operation
-
--- Various flavours of divide by 0
-dqdiv901 divide 0 0 -> NaN Division_undefined
-dqdiv902 divide 0.0E5 0 -> NaN Division_undefined
-dqdiv903 divide 0.000 0 -> NaN Division_undefined
-dqdiv904 divide 0.0001 0 -> Infinity Division_by_zero
-dqdiv905 divide 0.01 0 -> Infinity Division_by_zero
-dqdiv906 divide 0.1 0 -> Infinity Division_by_zero
-dqdiv907 divide 1 0 -> Infinity Division_by_zero
-dqdiv908 divide 1 0.0 -> Infinity Division_by_zero
-dqdiv909 divide 10 0.0 -> Infinity Division_by_zero
-dqdiv910 divide 1E+100 0.0 -> Infinity Division_by_zero
-dqdiv911 divide 1E+100 0 -> Infinity Division_by_zero
-
-dqdiv921 divide -0.0001 0 -> -Infinity Division_by_zero
-dqdiv922 divide -0.01 0 -> -Infinity Division_by_zero
-dqdiv923 divide -0.1 0 -> -Infinity Division_by_zero
-dqdiv924 divide -1 0 -> -Infinity Division_by_zero
-dqdiv925 divide -1 0.0 -> -Infinity Division_by_zero
-dqdiv926 divide -10 0.0 -> -Infinity Division_by_zero
-dqdiv927 divide -1E+100 0.0 -> -Infinity Division_by_zero
-dqdiv928 divide -1E+100 0 -> -Infinity Division_by_zero
-
-dqdiv931 divide 0.0001 -0 -> -Infinity Division_by_zero
-dqdiv932 divide 0.01 -0 -> -Infinity Division_by_zero
-dqdiv933 divide 0.1 -0 -> -Infinity Division_by_zero
-dqdiv934 divide 1 -0 -> -Infinity Division_by_zero
-dqdiv935 divide 1 -0.0 -> -Infinity Division_by_zero
-dqdiv936 divide 10 -0.0 -> -Infinity Division_by_zero
-dqdiv937 divide 1E+100 -0.0 -> -Infinity Division_by_zero
-dqdiv938 divide 1E+100 -0 -> -Infinity Division_by_zero
-
-dqdiv941 divide -0.0001 -0 -> Infinity Division_by_zero
-dqdiv942 divide -0.01 -0 -> Infinity Division_by_zero
-dqdiv943 divide -0.1 -0 -> Infinity Division_by_zero
-dqdiv944 divide -1 -0 -> Infinity Division_by_zero
-dqdiv945 divide -1 -0.0 -> Infinity Division_by_zero
-dqdiv946 divide -10 -0.0 -> Infinity Division_by_zero
-dqdiv947 divide -1E+100 -0.0 -> Infinity Division_by_zero
-dqdiv948 divide -1E+100 -0 -> Infinity Division_by_zero
-
--- Examples from SQL proposal (Krishna Kulkarni)
-dqdiv1021 divide 1E0 1E0 -> 1
-dqdiv1022 divide 1E0 2E0 -> 0.5
-dqdiv1023 divide 1E0 3E0 -> 0.3333333333333333333333333333333333 Inexact Rounded
-dqdiv1024 divide 100E-2 1000E-3 -> 1
-dqdiv1025 divide 24E-1 2E0 -> 1.2
-dqdiv1026 divide 2400E-3 2E0 -> 1.200
-dqdiv1027 divide 5E0 2E0 -> 2.5
-dqdiv1028 divide 5E0 20E-1 -> 2.5
-dqdiv1029 divide 5E0 2000E-3 -> 2.5
-dqdiv1030 divide 5E0 2E-1 -> 25
-dqdiv1031 divide 5E0 20E-2 -> 25
-dqdiv1032 divide 480E-2 3E0 -> 1.60
-dqdiv1033 divide 47E-1 2E0 -> 2.35
-
--- ECMAScript bad examples
-rounding: half_down
-dqdiv1040 divide 5 9 -> 0.5555555555555555555555555555555556 Inexact Rounded
-rounding: half_even
-dqdiv1041 divide 6 11 -> 0.5454545454545454545454545454545455 Inexact Rounded
-
--- Gyuris example
-dqdiv1050 divide 8.336804418094040989630006819881709E-6143 8.336804418094040989630006819889000E-6143 -> 0.9999999999999999999999999999991254 Inexact Rounded
-
--- overflow and underflow tests .. note subnormal results
--- signs
-dqdiv1751 divide 1e+4277 1e-3311 -> Infinity Overflow Inexact Rounded
-dqdiv1752 divide 1e+4277 -1e-3311 -> -Infinity Overflow Inexact Rounded
-dqdiv1753 divide -1e+4277 1e-3311 -> -Infinity Overflow Inexact Rounded
-dqdiv1754 divide -1e+4277 -1e-3311 -> Infinity Overflow Inexact Rounded
-dqdiv1755 divide 1e-4277 1e+3311 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqdiv1756 divide 1e-4277 -1e+3311 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqdiv1757 divide -1e-4277 1e+3311 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqdiv1758 divide -1e-4277 -1e+3311 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-
--- 'subnormal' boundary (all hard underflow or overflow in base arithemtic)
-dqdiv1760 divide 1e-6069 1e+101 -> 1E-6170 Subnormal
-dqdiv1761 divide 1e-6069 1e+102 -> 1E-6171 Subnormal
-dqdiv1762 divide 1e-6069 1e+103 -> 1E-6172 Subnormal
-dqdiv1763 divide 1e-6069 1e+104 -> 1E-6173 Subnormal
-dqdiv1764 divide 1e-6069 1e+105 -> 1E-6174 Subnormal
-dqdiv1765 divide 1e-6069 1e+106 -> 1E-6175 Subnormal
-dqdiv1766 divide 1e-6069 1e+107 -> 1E-6176 Subnormal
-dqdiv1767 divide 1e-6069 1e+108 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqdiv1768 divide 1e-6069 1e+109 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqdiv1769 divide 1e-6069 1e+110 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
--- [no equivalent of 'subnormal' for overflow]
-dqdiv1770 divide 1e+40 1e-6101 -> 1.000000000000000000000000000000E+6141 Clamped
-dqdiv1771 divide 1e+40 1e-6102 -> 1.0000000000000000000000000000000E+6142 Clamped
-dqdiv1772 divide 1e+40 1e-6103 -> 1.00000000000000000000000000000000E+6143 Clamped
-dqdiv1773 divide 1e+40 1e-6104 -> 1.000000000000000000000000000000000E+6144 Clamped
-dqdiv1774 divide 1e+40 1e-6105 -> Infinity Overflow Inexact Rounded
-dqdiv1775 divide 1e+40 1e-6106 -> Infinity Overflow Inexact Rounded
-dqdiv1776 divide 1e+40 1e-6107 -> Infinity Overflow Inexact Rounded
-dqdiv1777 divide 1e+40 1e-6108 -> Infinity Overflow Inexact Rounded
-dqdiv1778 divide 1e+40 1e-6109 -> Infinity Overflow Inexact Rounded
-dqdiv1779 divide 1e+40 1e-6110 -> Infinity Overflow Inexact Rounded
-
-dqdiv1801 divide 1.0000E-6172 1 -> 1.0000E-6172 Subnormal
-dqdiv1802 divide 1.000E-6172 1e+1 -> 1.000E-6173 Subnormal
-dqdiv1803 divide 1.00E-6172 1e+2 -> 1.00E-6174 Subnormal
-dqdiv1804 divide 1.0E-6172 1e+3 -> 1.0E-6175 Subnormal
-dqdiv1805 divide 1.0E-6172 1e+4 -> 1E-6176 Subnormal Rounded
-dqdiv1806 divide 1.3E-6172 1e+4 -> 1E-6176 Underflow Subnormal Inexact Rounded
-dqdiv1807 divide 1.5E-6172 1e+4 -> 2E-6176 Underflow Subnormal Inexact Rounded
-dqdiv1808 divide 1.7E-6172 1e+4 -> 2E-6176 Underflow Subnormal Inexact Rounded
-dqdiv1809 divide 2.3E-6172 1e+4 -> 2E-6176 Underflow Subnormal Inexact Rounded
-dqdiv1810 divide 2.5E-6172 1e+4 -> 2E-6176 Underflow Subnormal Inexact Rounded
-dqdiv1811 divide 2.7E-6172 1e+4 -> 3E-6176 Underflow Subnormal Inexact Rounded
-dqdiv1812 divide 1.49E-6172 1e+4 -> 1E-6176 Underflow Subnormal Inexact Rounded
-dqdiv1813 divide 1.50E-6172 1e+4 -> 2E-6176 Underflow Subnormal Inexact Rounded
-dqdiv1814 divide 1.51E-6172 1e+4 -> 2E-6176 Underflow Subnormal Inexact Rounded
-dqdiv1815 divide 2.49E-6172 1e+4 -> 2E-6176 Underflow Subnormal Inexact Rounded
-dqdiv1816 divide 2.50E-6172 1e+4 -> 2E-6176 Underflow Subnormal Inexact Rounded
-dqdiv1817 divide 2.51E-6172 1e+4 -> 3E-6176 Underflow Subnormal Inexact Rounded
-
-dqdiv1818 divide 1E-6172 1e+4 -> 1E-6176 Subnormal
-dqdiv1819 divide 3E-6172 1e+5 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqdiv1820 divide 5E-6172 1e+5 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqdiv1821 divide 7E-6172 1e+5 -> 1E-6176 Underflow Subnormal Inexact Rounded
-dqdiv1822 divide 9E-6172 1e+5 -> 1E-6176 Underflow Subnormal Inexact Rounded
-dqdiv1823 divide 9.9E-6172 1e+5 -> 1E-6176 Underflow Subnormal Inexact Rounded
-
-dqdiv1824 divide 1E-6172 -1e+4 -> -1E-6176 Subnormal
-dqdiv1825 divide 3E-6172 -1e+5 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqdiv1826 divide -5E-6172 1e+5 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqdiv1827 divide 7E-6172 -1e+5 -> -1E-6176 Underflow Subnormal Inexact Rounded
-dqdiv1828 divide -9E-6172 1e+5 -> -1E-6176 Underflow Subnormal Inexact Rounded
-dqdiv1829 divide 9.9E-6172 -1e+5 -> -1E-6176 Underflow Subnormal Inexact Rounded
-dqdiv1830 divide 3.0E-6172 -1e+5 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped
-
-dqdiv1831 divide 1.0E-5977 1e+200 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqdiv1832 divide 1.0E-5977 1e+199 -> 1E-6176 Subnormal Rounded
-dqdiv1833 divide 1.0E-5977 1e+198 -> 1.0E-6175 Subnormal
-dqdiv1834 divide 2.0E-5977 2e+198 -> 1.0E-6175 Subnormal
-dqdiv1835 divide 4.0E-5977 4e+198 -> 1.0E-6175 Subnormal
-dqdiv1836 divide 10.0E-5977 10e+198 -> 1.0E-6175 Subnormal
-dqdiv1837 divide 30.0E-5977 30e+198 -> 1.0E-6175 Subnormal
-dqdiv1838 divide 40.0E-5982 40e+166 -> 1.0E-6148 Subnormal
-dqdiv1839 divide 40.0E-5982 40e+165 -> 1.0E-6147 Subnormal
-dqdiv1840 divide 40.0E-5982 40e+164 -> 1.0E-6146 Subnormal
-
--- randoms
-rounding: half_even
-dqdiv2010 divide -5231195652931651968034356117118850 -7243718664422548573203260970.34995 -> 722169.9095831284624736051460550680 Inexact Rounded
-dqdiv2011 divide -89584669773927.82711237350022515352 -42077943728529635884.21142627532985 -> 0.000002129017291146471565928125887527266 Inexact Rounded
-dqdiv2012 divide -2.828201693360723203806974891946180E-232 812596541221823960386384403089240.9 -> -3.480450075640521320040055759125120E-265 Inexact Rounded
-dqdiv2013 divide -6442775372761069267502937539408720 24904085056.69185465145182606089196 -> -258703556388226463687701.4884719589 Inexact Rounded
-dqdiv2014 divide 5.535520011272625629610079879714705 -44343664650.57203052003068113531208 -> -1.248322630728089308975940533493562E-10 Inexact Rounded
-dqdiv2015 divide 65919273712517865964325.99419625010 -314733354141381737378622515.7789054 -> -0.0002094448295521490616379784758911632 Inexact Rounded
-dqdiv2016 divide -7.779172568193197107115275140431129E+759 -140453015639.3988987652895178782143 -> 5.538629792161641534962774244238115E+748 Inexact Rounded
-dqdiv2017 divide 644314832597569.0181226067518178797 -115024585257425.1635759521565201075 -> -5.601540150356479257367687450922795 Inexact Rounded
-dqdiv2018 divide 6.898640941579611450676592553286870E-47 -11272429881407851485163914999.25943 -> -6.119923578285338689371137648319280E-75 Inexact Rounded
-dqdiv2019 divide -3591344544888727133.30819750163254 5329395.423792795661446561090331037 -> -673874662941.1968525589460533725290 Inexact Rounded
-dqdiv2020 divide -7.682356781384631313156462724425838E+747 -6.60375855512219057281922141809940E+703 -> 1.163330960279556016678379128875149E+44 Inexact Rounded
-dqdiv2021 divide -4511495596596941820863224.274679699 3365395017.263329795449661616090724 -> -1340554548115304.904166888018346299 Inexact Rounded
-dqdiv2022 divide 5.211164127840931517263639608151299 164.5566381356276567012533847006453 -> 0.03166790587655228864478260157156510 Inexact Rounded
-dqdiv2023 divide -49891.2243893458830384077684620383 -47179.9312961860747554053371171530 -> 1.057467084386767291602189656430268 Inexact Rounded
-dqdiv2024 divide 15065477.47214268488077415462413353 4366211.120892953261309529740552596 -> 3.450469309661227984244545513441359 Inexact Rounded
-dqdiv2025 divide 1.575670269440761846109602429612644E+370 653199649324740300.006185482643439 -> 2.412233795700359170904588548041481E+352 Inexact Rounded
-dqdiv2026 divide -2112422311733448924573432192.620145 -80067206.03590693153848215848613406 -> 26383115089417660175.20102646756574 Inexact Rounded
-dqdiv2027 divide -67096536051279809.32218611548721839 -869685412881941081664251990181.1049 -> 7.715035236584805921278566365231168E-14 Inexact Rounded
-dqdiv2028 divide -58612908548962047.21866913425488972 -978449597531.3873665583475633831644 -> 59903.86085991703091236507859837023 Inexact Rounded
-dqdiv2029 divide -133032412010942.1476864138213319796 -7.882059293498670705446528648201359E-428 -> 1.687787506504433064549515681693715E+441 Inexact Rounded
-dqdiv2030 divide 1.83746698338966029492299716360513E+977 -9.897926608979649951672839879128603E+154 -> -1.856416051542212552042390218062458E+822 Inexact Rounded
-dqdiv2031 divide -113742475841399236307128962.1507063 8298602.203049834732657567965262989 -> -13706221006665137826.16557393919929 Inexact Rounded
-dqdiv2032 divide 196.4787574650754152995941808331862 929.6553388472318094427422117172394 -> 0.2113458066176526651006917922814018 Inexact Rounded
-dqdiv2033 divide 71931221465.43867996282803628130350 3838685934206426257090718.402248853 -> 1.873850132527423413607199513324021E-14 Inexact Rounded
-dqdiv2034 divide 488.4282502289651653783596246312885 -80.68940956806634280078706577953188 -> -6.053189047280693318844801899473272 Inexact Rounded
-dqdiv2035 divide 9.001764344963921754981762913247394E-162 -8.585540973667205753734967645386919E-729 -> -1.048479574271827326396012573232934E+567 Inexact Rounded
-dqdiv2036 divide -7.404133959409894743706402857145471E-828 -51.38159929460289711134684843086265 -> 1.441008855516029461032061785219773E-829 Inexact Rounded
-dqdiv2037 divide 2.967520235574419794048994436040717E-613 -6252513855.91394894949879262731889 -> -4.746123405656409127572998751885338E-623 Inexact Rounded
-dqdiv2038 divide -18826852654824040505.83920366765051 -6336924877942437992590557460147340 -> 2.970976146546494669807886278519194E-15 Inexact Rounded
-dqdiv2039 divide -8.101406784809197604949584001735949E+561 4.823300306948942821076681658771635E+361 -> -1.679639721610839204738445747238987E+200 Inexact Rounded
-dqdiv2040 divide -6.11981977773094052331062585191723E+295 1.507610253755339328302779005586534E+238 -> -4.059285058911577244044418416044763E+57 Inexact Rounded
-dqdiv2041 divide 6.472638850046815880599220534274055E-596 -4.475233712083047516933911786159972 -> -1.446324207062261745520496475778879E-596 Inexact Rounded
-dqdiv2042 divide -84438593330.71277839631144509397112 -586684596204401664208947.4054879633 -> 1.439250218550041228759983937772504E-13 Inexact Rounded
-dqdiv2043 divide 9.354533233294022616695815656704369E-24 405.500390626135304252144163591746 -> 2.306911028827774549740571229736198E-26 Inexact Rounded
-dqdiv2044 divide 985606423350210.7374876650149957881 -36811563697.41925681866694859828794 -> -26774.36990864119445335813354717711 Inexact Rounded
-dqdiv2045 divide -8.187280774177715706278002247766311E-123 -38784124393.91212870828430001300068 -> 2.110987653356139147357240727794365E-133 Inexact Rounded
-dqdiv2046 divide -4.612203126350070903459245798371657E+912 7.971562182727956290901984736800519E+64 -> -5.785820922708683237098826662769748E+847 Inexact Rounded
-dqdiv2047 divide 4.661015909421485298247928967977089E+888 -6.360911253323922338737311563845581E+388 -> -7.327591478321365980156654539638836E+499 Inexact Rounded
-dqdiv2048 divide 9156078172903.257500003260710833030 7.189796653262147139071634237964074E-90 -> 1.273482215766000994365201545096026E+102 Inexact Rounded
-dqdiv2049 divide -1.710722303327476586373477781276586E-311 -3167561628260156837329323.729380695 -> 5.400754599578613984875752958645655E-336 Inexact Rounded
-dqdiv2050 divide -4.647935210881806238321616345413021E-878 209388.5431867744648177308460639582 -> -2.219765771394593733140494297388140E-883 Inexact Rounded
-dqdiv2051 divide 5958.694728395760992719084781582700 4.541510156564315632536353171846096E-746 -> 1.312051393253638664947852693005480E+749 Inexact Rounded
-dqdiv2052 divide -7.935732544649702175256699886872093E-489 -7.433329073664793138998765647467971E+360 -> 1.067587949626076917672271619664656E-849 Inexact Rounded
-dqdiv2053 divide -2746650864601157.863589959939901350 7.016684945507647528907184694359598E+548 -> -3.914456593009309529351254950429932E-534 Inexact Rounded
-dqdiv2054 divide 3605149408631197365447953.994569178 -75614025825649082.78264864428237833 -> -47678315.88472693507060063188020532 Inexact Rounded
-dqdiv2055 divide 788194320921798404906375214.196349 -6.222718148433247384932573401976337E-418 -> -1.266639918634671803982222244977287E+444 Inexact Rounded
-dqdiv2056 divide 5620722730534752.758208943447603211 6.843552841168538319123000917657759E-139 -> 8.213164800485434666629970443739554E+153 Inexact Rounded
-dqdiv2057 divide 7304534676713703938102.403949019402 -576169.3685010935108153023803590835 -> -12677756014201995.31969237144394772 Inexact Rounded
-dqdiv2058 divide 8067918762.134621639254916786945547 -8.774771480055536009105596163864758E+954 -> -9.194448858836332156766764605125245E-946 Inexact Rounded
-dqdiv2059 divide 8.702093454123046507578256899537563E-324 -5.875399733016018404580201176576293E-401 -> -1.481106622452052581470443526957335E+77 Inexact Rounded
-dqdiv2060 divide -41426.01662518451861386352415092356 90.00146621684478300510769802013464 -> -460.2815750287318692732067709176200 Inexact Rounded
-
--- random divide tests with result near 1
-dqdiv4001 divide 2003100352770753969878925664524900 2003100352770753969878925664497824 -> 1.000000000000000000000000000013517 Inexact Rounded
-dqdiv4002 divide 4817785793916490652579552318371645 4817785793916490652579552318362097 -> 1.000000000000000000000000000001982 Inexact Rounded
-dqdiv4003 divide 8299187410920067325648068439560282 8299187410920067325648068439591159 -> 0.9999999999999999999999999999962795 Inexact Rounded
-dqdiv4004 divide 5641088455897407044544461785365899 5641088455897407044544461785389965 -> 0.9999999999999999999999999999957338 Inexact Rounded
-dqdiv4005 divide 5752274694706545359326361313490424 5752274694706545359326361313502723 -> 0.9999999999999999999999999999978619 Inexact Rounded
-dqdiv4006 divide 6762079477373670594829319346099665 6762079477373670594829319346132579 -> 0.9999999999999999999999999999951326 Inexact Rounded
-dqdiv4007 divide 7286425153691890341633023222602916 7286425153691890341633023222606556 -> 0.9999999999999999999999999999995004 Inexact Rounded
-dqdiv4008 divide 9481233991901305727648306421946655 9481233991901305727648306421919124 -> 1.000000000000000000000000000002904 Inexact Rounded
-dqdiv4009 divide 4282053941893951742029444065614311 4282053941893951742029444065583077 -> 1.000000000000000000000000000007294 Inexact Rounded
-dqdiv4010 divide 626888225441250639741781850338695 626888225441250639741781850327299 -> 1.000000000000000000000000000018179 Inexact Rounded
-dqdiv4011 divide 3860973649222028009456598604468547 3860973649222028009456598604476849 -> 0.9999999999999999999999999999978498 Inexact Rounded
-dqdiv4012 divide 4753157080127468127908060607821839 4753157080127468127908060607788379 -> 1.000000000000000000000000000007040 Inexact Rounded
-dqdiv4013 divide 552448546203754062805706277880419 552448546203754062805706277881903 -> 0.9999999999999999999999999999973138 Inexact Rounded
-dqdiv4014 divide 8405954527952158455323713728917395 8405954527952158455323713728933866 -> 0.9999999999999999999999999999980406 Inexact Rounded
-dqdiv4015 divide 7554096502235321142555802238016116 7554096502235321142555802238026546 -> 0.9999999999999999999999999999986193 Inexact Rounded
-dqdiv4016 divide 4053257674127518606871054934746782 4053257674127518606871054934767355 -> 0.9999999999999999999999999999949243 Inexact Rounded
-dqdiv4017 divide 7112419420755090454716888844011582 7112419420755090454716888844038105 -> 0.9999999999999999999999999999962709 Inexact Rounded
-dqdiv4018 divide 3132302137520072728164549730911846 3132302137520072728164549730908416 -> 1.000000000000000000000000000001095 Inexact Rounded
-dqdiv4019 divide 4788374045841416355706715048161013 4788374045841416355706715048190077 -> 0.9999999999999999999999999999939303 Inexact Rounded
-dqdiv4020 divide 9466021636047630218238075099510597 9466021636047630218238075099484053 -> 1.000000000000000000000000000002804 Inexact Rounded
-dqdiv4021 divide 912742745646765625597399692138650 912742745646765625597399692139042 -> 0.9999999999999999999999999999995705 Inexact Rounded
-dqdiv4022 divide 9508402742933643208806264897188504 9508402742933643208806264897195973 -> 0.9999999999999999999999999999992145 Inexact Rounded
-dqdiv4023 divide 1186956795727233704962361914360895 1186956795727233704962361914329577 -> 1.000000000000000000000000000026385 Inexact Rounded
-dqdiv4024 divide 5972210268839014812696916170967938 5972210268839014812696916170954974 -> 1.000000000000000000000000000002171 Inexact Rounded
-dqdiv4025 divide 2303801625521619930894460139793140 2303801625521619930894460139799643 -> 0.9999999999999999999999999999971773 Inexact Rounded
-dqdiv4026 divide 6022231560002898264777393473966595 6022231560002898264777393473947198 -> 1.000000000000000000000000000003221 Inexact Rounded
-dqdiv4027 divide 8426148335801396199969346032210893 8426148335801396199969346032203179 -> 1.000000000000000000000000000000915 Inexact Rounded
-dqdiv4028 divide 8812278947028784637382847098411749 8812278947028784637382847098385317 -> 1.000000000000000000000000000002999 Inexact Rounded
-dqdiv4029 divide 8145282002348367383264197170116146 8145282002348367383264197170083988 -> 1.000000000000000000000000000003948 Inexact Rounded
-dqdiv4030 divide 6821577571876840153123510107387026 6821577571876840153123510107418008 -> 0.9999999999999999999999999999954582 Inexact Rounded
-dqdiv4031 divide 9018555319518966970480565482023720 9018555319518966970480565482013346 -> 1.000000000000000000000000000001150 Inexact Rounded
-dqdiv4032 divide 4602155712998228449640717252788864 4602155712998228449640717252818502 -> 0.9999999999999999999999999999935600 Inexact Rounded
-dqdiv4033 divide 6675607481522785614506828292264472 6675607481522785614506828292277100 -> 0.9999999999999999999999999999981083 Inexact Rounded
-dqdiv4034 divide 4015881516871833897766945836264472 4015881516871833897766945836262645 -> 1.000000000000000000000000000000455 Inexact Rounded
-dqdiv4035 divide 1415580205933411837595459716910365 1415580205933411837595459716880139 -> 1.000000000000000000000000000021352 Inexact Rounded
-dqdiv4036 divide 9432968297069542816752035276361552 9432968297069542816752035276353054 -> 1.000000000000000000000000000000901 Inexact Rounded
-dqdiv4037 divide 4799319591303848500532766682140658 4799319591303848500532766682172655 -> 0.9999999999999999999999999999933330 Inexact Rounded
-dqdiv4038 divide 316854270732839529790584284987472 316854270732839529790584285004832 -> 0.9999999999999999999999999999452114 Inexact Rounded
-dqdiv4039 divide 3598981300592490427826027975697415 3598981300592490427826027975686712 -> 1.000000000000000000000000000002974 Inexact Rounded
-dqdiv4040 divide 1664315435694461371155800682196520 1664315435694461371155800682195617 -> 1.000000000000000000000000000000543 Inexact Rounded
-dqdiv4041 divide 1680872316531128890102855316510581 1680872316531128890102855316495545 -> 1.000000000000000000000000000008945 Inexact Rounded
-dqdiv4042 divide 9881274879566405475755499281644730 9881274879566405475755499281615743 -> 1.000000000000000000000000000002934 Inexact Rounded
-dqdiv4043 divide 4737225957717466960447204232279216 4737225957717466960447204232277452 -> 1.000000000000000000000000000000372 Inexact Rounded
-dqdiv4044 divide 2482097379414867061213319346418288 2482097379414867061213319346387936 -> 1.000000000000000000000000000012228 Inexact Rounded
-dqdiv4045 divide 7406977595233762723576434122161868 7406977595233762723576434122189042 -> 0.9999999999999999999999999999963313 Inexact Rounded
-dqdiv4046 divide 228782057757566047086593281773577 228782057757566047086593281769727 -> 1.000000000000000000000000000016828 Inexact Rounded
-dqdiv4047 divide 2956594270240579648823270540367653 2956594270240579648823270540368556 -> 0.9999999999999999999999999999996946 Inexact Rounded
-dqdiv4048 divide 6326964098897620620534136767634340 6326964098897620620534136767619339 -> 1.000000000000000000000000000002371 Inexact Rounded
-dqdiv4049 divide 414586440456590215247002678327800 414586440456590215247002678316922 -> 1.000000000000000000000000000026238 Inexact Rounded
-dqdiv4050 divide 7364552208570039386220505636779125 7364552208570039386220505636803548 -> 0.9999999999999999999999999999966837 Inexact Rounded
-dqdiv4051 divide 5626266749902369710022824950590056 5626266749902369710022824950591008 -> 0.9999999999999999999999999999998308 Inexact Rounded
-dqdiv4052 divide 4863278293916197454987481343460484 4863278293916197454987481343442522 -> 1.000000000000000000000000000003693 Inexact Rounded
-dqdiv4053 divide 1170713582030637359713249796835483 1170713582030637359713249796823345 -> 1.000000000000000000000000000010368 Inexact Rounded
-dqdiv4054 divide 9838062494725965667776326556052931 9838062494725965667776326556061002 -> 0.9999999999999999999999999999991796 Inexact Rounded
-dqdiv4055 divide 4071388731298861093005687091498922 4071388731298861093005687091498278 -> 1.000000000000000000000000000000158 Inexact Rounded
-dqdiv4056 divide 8753155722324706795855038590272526 8753155722324706795855038590276656 -> 0.9999999999999999999999999999995282 Inexact Rounded
-dqdiv4057 divide 4399941911533273418844742658240485 4399941911533273418844742658219891 -> 1.000000000000000000000000000004681 Inexact Rounded
-dqdiv4058 divide 4127884159949503677776430620050269 4127884159949503677776430620026091 -> 1.000000000000000000000000000005857 Inexact Rounded
-dqdiv4059 divide 5536160822360800067042528317438808 5536160822360800067042528317450687 -> 0.9999999999999999999999999999978543 Inexact Rounded
-dqdiv4060 divide 3973234998468664936671088237710246 3973234998468664936671088237741886 -> 0.9999999999999999999999999999920367 Inexact Rounded
-dqdiv4061 divide 9824855935638263593410444142327358 9824855935638263593410444142328576 -> 0.9999999999999999999999999999998760 Inexact Rounded
-dqdiv4062 divide 5917078517340218131867327300814867 5917078517340218131867327300788701 -> 1.000000000000000000000000000004422 Inexact Rounded
-dqdiv4063 divide 4354236601830544882286139612521362 4354236601830544882286139612543223 -> 0.9999999999999999999999999999949794 Inexact Rounded
-dqdiv4064 divide 8058474772375259017342110013891294 8058474772375259017342110013906792 -> 0.9999999999999999999999999999980768 Inexact Rounded
-dqdiv4065 divide 5519604020981748170517093746166328 5519604020981748170517093746181763 -> 0.9999999999999999999999999999972036 Inexact Rounded
-dqdiv4066 divide 1502130966879805458831323782443139 1502130966879805458831323782412213 -> 1.000000000000000000000000000020588 Inexact Rounded
-dqdiv4067 divide 562795633719481212915159787980270 562795633719481212915159788007066 -> 0.9999999999999999999999999999523877 Inexact Rounded
-dqdiv4068 divide 6584743324494664273941281557268878 6584743324494664273941281557258945 -> 1.000000000000000000000000000001508 Inexact Rounded
-dqdiv4069 divide 3632000327285743997976431109416500 3632000327285743997976431109408107 -> 1.000000000000000000000000000002311 Inexact Rounded
-dqdiv4070 divide 1145827237315430089388953838561450 1145827237315430089388953838527332 -> 1.000000000000000000000000000029776 Inexact Rounded
-dqdiv4071 divide 8874431010357691869725372317350380 8874431010357691869725372317316472 -> 1.000000000000000000000000000003821 Inexact Rounded
-dqdiv4072 divide 992948718902804648119753141202196 992948718902804648119753141235222 -> 0.9999999999999999999999999999667395 Inexact Rounded
-dqdiv4073 divide 2522735183374218505142417265439989 2522735183374218505142417265453779 -> 0.9999999999999999999999999999945337 Inexact Rounded
-dqdiv4074 divide 2668419161912936508006872303501052 2668419161912936508006872303471036 -> 1.000000000000000000000000000011249 Inexact Rounded
-dqdiv4075 divide 3036169085665186712590941111775092 3036169085665186712590941111808846 -> 0.9999999999999999999999999999888827 Inexact Rounded
-dqdiv4076 divide 9441634604917231638508898934006147 9441634604917231638508898934000288 -> 1.000000000000000000000000000000621 Inexact Rounded
-dqdiv4077 divide 2677301353164377091111458811839190 2677301353164377091111458811867722 -> 0.9999999999999999999999999999893430 Inexact Rounded
-dqdiv4078 divide 6844979203112066166583765857171426 6844979203112066166583765857189682 -> 0.9999999999999999999999999999973329 Inexact Rounded
-dqdiv4079 divide 2220337435141796724323783960231661 2220337435141796724323783960208778 -> 1.000000000000000000000000000010306 Inexact Rounded
-dqdiv4080 divide 6447424700019783931569996989561380 6447424700019783931569996989572454 -> 0.9999999999999999999999999999982824 Inexact Rounded
-dqdiv4081 divide 7512856762696607119847092195587180 7512856762696607119847092195557346 -> 1.000000000000000000000000000003971 Inexact Rounded
-dqdiv4082 divide 7395261981193960399087819077237482 7395261981193960399087819077242487 -> 0.9999999999999999999999999999993232 Inexact Rounded
-dqdiv4083 divide 2253442467682584035792724884376735 2253442467682584035792724884407178 -> 0.9999999999999999999999999999864904 Inexact Rounded
-dqdiv4084 divide 8153138680300213135577336466190997 8153138680300213135577336466220607 -> 0.9999999999999999999999999999963683 Inexact Rounded
-dqdiv4085 divide 4668731252254148074041022681801390 4668731252254148074041022681778101 -> 1.000000000000000000000000000004988 Inexact Rounded
-dqdiv4086 divide 6078404557993669696040425501815056 6078404557993669696040425501797612 -> 1.000000000000000000000000000002870 Inexact Rounded
-dqdiv4087 divide 2306352359874261623223356878316278 2306352359874261623223356878335612 -> 0.9999999999999999999999999999916171 Inexact Rounded
-dqdiv4088 divide 3264842186668480362900909564091908 3264842186668480362900909564058658 -> 1.000000000000000000000000000010184 Inexact Rounded
-dqdiv4089 divide 6971985047279636878957959608612204 6971985047279636878957959608615088 -> 0.9999999999999999999999999999995863 Inexact Rounded
-dqdiv4090 divide 5262810889952721235466445973816257 5262810889952721235466445973783077 -> 1.000000000000000000000000000006305 Inexact Rounded
-dqdiv4091 divide 7947944731035267178548357070080288 7947944731035267178548357070061339 -> 1.000000000000000000000000000002384 Inexact Rounded
-dqdiv4092 divide 5071808908395375108383035800443229 5071808908395375108383035800412429 -> 1.000000000000000000000000000006073 Inexact Rounded
-dqdiv4093 divide 2043146542084503655511507209262969 2043146542084503655511507209249263 -> 1.000000000000000000000000000006708 Inexact Rounded
-dqdiv4094 divide 4097632735384534181661959731264802 4097632735384534181661959731234499 -> 1.000000000000000000000000000007395 Inexact Rounded
-dqdiv4095 divide 3061477642831387489729464587044430 3061477642831387489729464587059452 -> 0.9999999999999999999999999999950932 Inexact Rounded
-dqdiv4096 divide 3429854941039776159498802936252638 3429854941039776159498802936246415 -> 1.000000000000000000000000000001814 Inexact Rounded
-dqdiv4097 divide 4874324979578599700024133278284545 4874324979578599700024133278262131 -> 1.000000000000000000000000000004598 Inexact Rounded
-dqdiv4098 divide 5701652369691833541455978515820882 5701652369691833541455978515834854 -> 0.9999999999999999999999999999975495 Inexact Rounded
-dqdiv4099 divide 2928205728402945266953255632343113 2928205728402945266953255632373794 -> 0.9999999999999999999999999999895223 Inexact Rounded
-
--- Null tests
-dqdiv9998 divide 10 # -> NaN Invalid_operation
-dqdiv9999 divide # 10 -> NaN Invalid_operation
-
+------------------------------------------------------------------------ +-- dqDivide.decTest -- decQuad division -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +-- sanity checks +dqdiv001 divide 1 1 -> 1 +dqdiv002 divide 2 1 -> 2 +dqdiv003 divide 1 2 -> 0.5 +dqdiv004 divide 2 2 -> 1 +dqdiv005 divide 0 1 -> 0 +dqdiv006 divide 0 2 -> 0 +dqdiv007 divide 1 3 -> 0.3333333333333333333333333333333333 Inexact Rounded +dqdiv008 divide 2 3 -> 0.6666666666666666666666666666666667 Inexact Rounded +dqdiv009 divide 3 3 -> 1 + +dqdiv010 divide 2.4 1 -> 2.4 +dqdiv011 divide 2.4 -1 -> -2.4 +dqdiv012 divide -2.4 1 -> -2.4 +dqdiv013 divide -2.4 -1 -> 2.4 +dqdiv014 divide 2.40 1 -> 2.40 +dqdiv015 divide 2.400 1 -> 2.400 +dqdiv016 divide 2.4 2 -> 1.2 +dqdiv017 divide 2.400 2 -> 1.200 +dqdiv018 divide 2. 2 -> 1 +dqdiv019 divide 20 20 -> 1 + +dqdiv020 divide 187 187 -> 1 +dqdiv021 divide 5 2 -> 2.5 +dqdiv022 divide 50 20 -> 2.5 +dqdiv023 divide 500 200 -> 2.5 +dqdiv024 divide 50.0 20.0 -> 2.5 +dqdiv025 divide 5.00 2.00 -> 2.5 +dqdiv026 divide 5 2.0 -> 2.5 +dqdiv027 divide 5 2.000 -> 2.5 +dqdiv028 divide 5 0.20 -> 25 +dqdiv029 divide 5 0.200 -> 25 +dqdiv030 divide 10 1 -> 10 +dqdiv031 divide 100 1 -> 100 +dqdiv032 divide 1000 1 -> 1000 +dqdiv033 divide 1000 100 -> 10 + +dqdiv035 divide 1 2 -> 0.5 +dqdiv036 divide 1 4 -> 0.25 +dqdiv037 divide 1 8 -> 0.125 +dqdiv038 divide 1 16 -> 0.0625 +dqdiv039 divide 1 32 -> 0.03125 +dqdiv040 divide 1 64 -> 0.015625 +dqdiv041 divide 1 -2 -> -0.5 +dqdiv042 divide 1 -4 -> -0.25 +dqdiv043 divide 1 -8 -> -0.125 +dqdiv044 divide 1 -16 -> -0.0625 +dqdiv045 divide 1 -32 -> -0.03125 +dqdiv046 divide 1 -64 -> -0.015625 +dqdiv047 divide -1 2 -> -0.5 +dqdiv048 divide -1 4 -> -0.25 +dqdiv049 divide -1 8 -> -0.125 +dqdiv050 divide -1 16 -> -0.0625 +dqdiv051 divide -1 32 -> -0.03125 +dqdiv052 divide -1 64 -> -0.015625 +dqdiv053 divide -1 -2 -> 0.5 +dqdiv054 divide -1 -4 -> 0.25 +dqdiv055 divide -1 -8 -> 0.125 +dqdiv056 divide -1 -16 -> 0.0625 +dqdiv057 divide -1 -32 -> 0.03125 +dqdiv058 divide -1 -64 -> 0.015625 + +-- bcdTime +dqdiv060 divide 1 7 -> 0.1428571428571428571428571428571429 Inexact Rounded +dqdiv061 divide 1.2345678 1.9876543 -> 0.6211179680490717123193907511985359 Inexact Rounded + +-- 1234567890123456 +dqdiv067 divide 9999999999999999999999999999999999 1 -> 9999999999999999999999999999999999 +dqdiv068 divide 999999999999999999999999999999999 1 -> 999999999999999999999999999999999 +dqdiv069 divide 99999999999999999999999999999999 1 -> 99999999999999999999999999999999 +dqdiv070 divide 99999999999999999 1 -> 99999999999999999 +dqdiv071 divide 9999999999999999 1 -> 9999999999999999 +dqdiv072 divide 999999999999999 1 -> 999999999999999 +dqdiv073 divide 99999999999999 1 -> 99999999999999 +dqdiv074 divide 9999999999999 1 -> 9999999999999 +dqdiv075 divide 999999999999 1 -> 999999999999 +dqdiv076 divide 99999999999 1 -> 99999999999 +dqdiv077 divide 9999999999 1 -> 9999999999 +dqdiv078 divide 999999999 1 -> 999999999 +dqdiv079 divide 99999999 1 -> 99999999 +dqdiv080 divide 9999999 1 -> 9999999 +dqdiv081 divide 999999 1 -> 999999 +dqdiv082 divide 99999 1 -> 99999 +dqdiv083 divide 9999 1 -> 9999 +dqdiv084 divide 999 1 -> 999 +dqdiv085 divide 99 1 -> 99 +dqdiv086 divide 9 1 -> 9 + +dqdiv090 divide 0. 1 -> 0 +dqdiv091 divide .0 1 -> 0.0 +dqdiv092 divide 0.00 1 -> 0.00 +dqdiv093 divide 0.00E+9 1 -> 0E+7 +dqdiv094 divide 0.0000E-50 1 -> 0E-54 + +dqdiv095 divide 1 1E-8 -> 1E+8 +dqdiv096 divide 1 1E-9 -> 1E+9 +dqdiv097 divide 1 1E-10 -> 1E+10 +dqdiv098 divide 1 1E-11 -> 1E+11 +dqdiv099 divide 1 1E-12 -> 1E+12 + +dqdiv100 divide 1 1 -> 1 +dqdiv101 divide 1 2 -> 0.5 +dqdiv102 divide 1 3 -> 0.3333333333333333333333333333333333 Inexact Rounded +dqdiv103 divide 1 4 -> 0.25 +dqdiv104 divide 1 5 -> 0.2 +dqdiv105 divide 1 6 -> 0.1666666666666666666666666666666667 Inexact Rounded +dqdiv106 divide 1 7 -> 0.1428571428571428571428571428571429 Inexact Rounded +dqdiv107 divide 1 8 -> 0.125 +dqdiv108 divide 1 9 -> 0.1111111111111111111111111111111111 Inexact Rounded +dqdiv109 divide 1 10 -> 0.1 +dqdiv110 divide 1 1 -> 1 +dqdiv111 divide 2 1 -> 2 +dqdiv112 divide 3 1 -> 3 +dqdiv113 divide 4 1 -> 4 +dqdiv114 divide 5 1 -> 5 +dqdiv115 divide 6 1 -> 6 +dqdiv116 divide 7 1 -> 7 +dqdiv117 divide 8 1 -> 8 +dqdiv118 divide 9 1 -> 9 +dqdiv119 divide 10 1 -> 10 + +dqdiv120 divide 3E+1 0.001 -> 3E+4 +dqdiv121 divide 2.200 2 -> 1.100 + +dqdiv130 divide 12345 4.999 -> 2469.493898779755951190238047609522 Inexact Rounded +dqdiv131 divide 12345 4.99 -> 2473.947895791583166332665330661323 Inexact Rounded +dqdiv132 divide 12345 4.9 -> 2519.387755102040816326530612244898 Inexact Rounded +dqdiv133 divide 12345 5 -> 2469 +dqdiv134 divide 12345 5.1 -> 2420.588235294117647058823529411765 Inexact Rounded +dqdiv135 divide 12345 5.01 -> 2464.071856287425149700598802395210 Inexact Rounded +dqdiv136 divide 12345 5.001 -> 2468.506298740251949610077984403119 Inexact Rounded + +-- test possibly imprecise results +dqdiv220 divide 391 597 -> 0.6549413735343383584589614740368509 Inexact Rounded +dqdiv221 divide 391 -597 -> -0.6549413735343383584589614740368509 Inexact Rounded +dqdiv222 divide -391 597 -> -0.6549413735343383584589614740368509 Inexact Rounded +dqdiv223 divide -391 -597 -> 0.6549413735343383584589614740368509 Inexact Rounded + +-- test some cases that are close to exponent overflow +dqdiv270 divide 1 1e6144 -> 1E-6144 Subnormal +dqdiv271 divide 1 0.9e6144 -> 1.11111111111111111111111111111111E-6144 Rounded Inexact Subnormal Underflow +dqdiv272 divide 1 0.99e6144 -> 1.01010101010101010101010101010101E-6144 Rounded Inexact Subnormal Underflow +dqdiv273 divide 1 0.9999999999999999e6144 -> 1.00000000000000010000000000000001E-6144 Rounded Inexact Subnormal Underflow +dqdiv274 divide 9e6144 1 -> 9.000000000000000000000000000000000E+6144 Clamped +dqdiv275 divide 9.9e6144 1 -> 9.900000000000000000000000000000000E+6144 Clamped +dqdiv276 divide 9.99e6144 1 -> 9.990000000000000000000000000000000E+6144 Clamped +dqdiv277 divide 9.999999999999999e6144 1 -> 9.999999999999999000000000000000000E+6144 Clamped + +dqdiv278 divide 1 0.9999999999999999999999999999999999e6144 -> 1.00000000000000000000000000000000E-6144 Rounded Inexact Subnormal Underflow +dqdiv279 divide 9.999999999999999999999999999999999e6144 1 -> 9.999999999999999999999999999999999E+6144 + +-- Divide into 0 tests +dqdiv301 divide 0 7 -> 0 +dqdiv302 divide 0 7E-5 -> 0E+5 +dqdiv303 divide 0 7E-1 -> 0E+1 +dqdiv304 divide 0 7E+1 -> 0.0 +dqdiv305 divide 0 7E+5 -> 0.00000 +dqdiv306 divide 0 7E+6 -> 0.000000 +dqdiv307 divide 0 7E+7 -> 0E-7 +dqdiv308 divide 0 70E-5 -> 0E+5 +dqdiv309 divide 0 70E-1 -> 0E+1 +dqdiv310 divide 0 70E+0 -> 0 +dqdiv311 divide 0 70E+1 -> 0.0 +dqdiv312 divide 0 70E+5 -> 0.00000 +dqdiv313 divide 0 70E+6 -> 0.000000 +dqdiv314 divide 0 70E+7 -> 0E-7 +dqdiv315 divide 0 700E-5 -> 0E+5 +dqdiv316 divide 0 700E-1 -> 0E+1 +dqdiv317 divide 0 700E+0 -> 0 +dqdiv318 divide 0 700E+1 -> 0.0 +dqdiv319 divide 0 700E+5 -> 0.00000 +dqdiv320 divide 0 700E+6 -> 0.000000 +dqdiv321 divide 0 700E+7 -> 0E-7 +dqdiv322 divide 0 700E+77 -> 0E-77 + +dqdiv331 divide 0E-3 7E-5 -> 0E+2 +dqdiv332 divide 0E-3 7E-1 -> 0.00 +dqdiv333 divide 0E-3 7E+1 -> 0.0000 +dqdiv334 divide 0E-3 7E+5 -> 0E-8 +dqdiv335 divide 0E-1 7E-5 -> 0E+4 +dqdiv336 divide 0E-1 7E-1 -> 0 +dqdiv337 divide 0E-1 7E+1 -> 0.00 +dqdiv338 divide 0E-1 7E+5 -> 0.000000 +dqdiv339 divide 0E+1 7E-5 -> 0E+6 +dqdiv340 divide 0E+1 7E-1 -> 0E+2 +dqdiv341 divide 0E+1 7E+1 -> 0 +dqdiv342 divide 0E+1 7E+5 -> 0.0000 +dqdiv343 divide 0E+3 7E-5 -> 0E+8 +dqdiv344 divide 0E+3 7E-1 -> 0E+4 +dqdiv345 divide 0E+3 7E+1 -> 0E+2 +dqdiv346 divide 0E+3 7E+5 -> 0.00 + +-- These were 'input rounding' +dqdiv441 divide 12345678000 1 -> 12345678000 +dqdiv442 divide 1 12345678000 -> 8.100000664200054464404466081166219E-11 Inexact Rounded +dqdiv443 divide 1234567800 1 -> 1234567800 +dqdiv444 divide 1 1234567800 -> 8.100000664200054464404466081166219E-10 Inexact Rounded +dqdiv445 divide 1234567890 1 -> 1234567890 +dqdiv446 divide 1 1234567890 -> 8.100000073710000670761006103925156E-10 Inexact Rounded +dqdiv447 divide 1234567891 1 -> 1234567891 +dqdiv448 divide 1 1234567891 -> 8.100000067149000556665214614754629E-10 Inexact Rounded +dqdiv449 divide 12345678901 1 -> 12345678901 +dqdiv450 divide 1 12345678901 -> 8.100000073053900658873130042376760E-11 Inexact Rounded +dqdiv451 divide 1234567896 1 -> 1234567896 +dqdiv452 divide 1 1234567896 -> 8.100000034344000145618560617422697E-10 Inexact Rounded + +-- high-lows +dqdiv453 divide 1e+1 1 -> 1E+1 +dqdiv454 divide 1e+1 1.0 -> 1E+1 +dqdiv455 divide 1e+1 1.00 -> 1E+1 +dqdiv456 divide 1e+2 2 -> 5E+1 +dqdiv457 divide 1e+2 2.0 -> 5E+1 +dqdiv458 divide 1e+2 2.00 -> 5E+1 + +-- some from IEEE discussions +dqdiv460 divide 3e0 2e0 -> 1.5 +dqdiv461 divide 30e-1 2e0 -> 1.5 +dqdiv462 divide 300e-2 2e0 -> 1.50 +dqdiv464 divide 3000e-3 2e0 -> 1.500 +dqdiv465 divide 3e0 20e-1 -> 1.5 +dqdiv466 divide 30e-1 20e-1 -> 1.5 +dqdiv467 divide 300e-2 20e-1 -> 1.5 +dqdiv468 divide 3000e-3 20e-1 -> 1.50 +dqdiv469 divide 3e0 200e-2 -> 1.5 +dqdiv470 divide 30e-1 200e-2 -> 1.5 +dqdiv471 divide 300e-2 200e-2 -> 1.5 +dqdiv472 divide 3000e-3 200e-2 -> 1.5 +dqdiv473 divide 3e0 2000e-3 -> 1.5 +dqdiv474 divide 30e-1 2000e-3 -> 1.5 +dqdiv475 divide 300e-2 2000e-3 -> 1.5 +dqdiv476 divide 3000e-3 2000e-3 -> 1.5 + +-- some reciprocals +dqdiv480 divide 1 1.0E+33 -> 1E-33 +dqdiv481 divide 1 10E+33 -> 1E-34 +dqdiv482 divide 1 1.0E-33 -> 1E+33 +dqdiv483 divide 1 10E-33 -> 1E+32 + +-- RMS discussion table +dqdiv484 divide 0e5 1e3 -> 0E+2 +dqdiv485 divide 0e5 2e3 -> 0E+2 +dqdiv486 divide 0e5 10e2 -> 0E+3 +dqdiv487 divide 0e5 20e2 -> 0E+3 +dqdiv488 divide 0e5 100e1 -> 0E+4 +dqdiv489 divide 0e5 200e1 -> 0E+4 + +dqdiv491 divide 1e5 1e3 -> 1E+2 +dqdiv492 divide 1e5 2e3 -> 5E+1 +dqdiv493 divide 1e5 10e2 -> 1E+2 +dqdiv494 divide 1e5 20e2 -> 5E+1 +dqdiv495 divide 1e5 100e1 -> 1E+2 +dqdiv496 divide 1e5 200e1 -> 5E+1 + +-- tryzeros cases +rounding: half_up +dqdiv497 divide 0E+6108 1000E-33 -> 0E+6111 Clamped +dqdiv498 divide 0E-6170 1000E+33 -> 0E-6176 Clamped + +rounding: half_up + +-- focus on trailing zeros issues +dqdiv500 divide 1 9.9 -> 0.1010101010101010101010101010101010 Inexact Rounded +dqdiv501 divide 1 9.09 -> 0.1100110011001100110011001100110011 Inexact Rounded +dqdiv502 divide 1 9.009 -> 0.1110001110001110001110001110001110 Inexact Rounded + +dqdiv511 divide 1 2 -> 0.5 +dqdiv512 divide 1.0 2 -> 0.5 +dqdiv513 divide 1.00 2 -> 0.50 +dqdiv514 divide 1.000 2 -> 0.500 +dqdiv515 divide 1.0000 2 -> 0.5000 +dqdiv516 divide 1.00000 2 -> 0.50000 +dqdiv517 divide 1.000000 2 -> 0.500000 +dqdiv518 divide 1.0000000 2 -> 0.5000000 +dqdiv519 divide 1.00 2.00 -> 0.5 + +dqdiv521 divide 2 1 -> 2 +dqdiv522 divide 2 1.0 -> 2 +dqdiv523 divide 2 1.00 -> 2 +dqdiv524 divide 2 1.000 -> 2 +dqdiv525 divide 2 1.0000 -> 2 +dqdiv526 divide 2 1.00000 -> 2 +dqdiv527 divide 2 1.000000 -> 2 +dqdiv528 divide 2 1.0000000 -> 2 +dqdiv529 divide 2.00 1.00 -> 2 + +dqdiv530 divide 2.40 2 -> 1.20 +dqdiv531 divide 2.40 4 -> 0.60 +dqdiv532 divide 2.40 10 -> 0.24 +dqdiv533 divide 2.40 2.0 -> 1.2 +dqdiv534 divide 2.40 4.0 -> 0.6 +dqdiv535 divide 2.40 10.0 -> 0.24 +dqdiv536 divide 2.40 2.00 -> 1.2 +dqdiv537 divide 2.40 4.00 -> 0.6 +dqdiv538 divide 2.40 10.00 -> 0.24 +dqdiv539 divide 0.9 0.1 -> 9 +dqdiv540 divide 0.9 0.01 -> 9E+1 +dqdiv541 divide 0.9 0.001 -> 9E+2 +dqdiv542 divide 5 2 -> 2.5 +dqdiv543 divide 5 2.0 -> 2.5 +dqdiv544 divide 5 2.00 -> 2.5 +dqdiv545 divide 5 20 -> 0.25 +dqdiv546 divide 5 20.0 -> 0.25 +dqdiv547 divide 2.400 2 -> 1.200 +dqdiv548 divide 2.400 2.0 -> 1.20 +dqdiv549 divide 2.400 2.400 -> 1 + +dqdiv550 divide 240 1 -> 240 +dqdiv551 divide 240 10 -> 24 +dqdiv552 divide 240 100 -> 2.4 +dqdiv553 divide 240 1000 -> 0.24 +dqdiv554 divide 2400 1 -> 2400 +dqdiv555 divide 2400 10 -> 240 +dqdiv556 divide 2400 100 -> 24 +dqdiv557 divide 2400 1000 -> 2.4 + +-- +ve exponent +dqdiv600 divide 2.4E+9 2 -> 1.2E+9 +dqdiv601 divide 2.40E+9 2 -> 1.20E+9 +dqdiv602 divide 2.400E+9 2 -> 1.200E+9 +dqdiv603 divide 2.4000E+9 2 -> 1.2000E+9 +dqdiv604 divide 24E+8 2 -> 1.2E+9 +dqdiv605 divide 240E+7 2 -> 1.20E+9 +dqdiv606 divide 2400E+6 2 -> 1.200E+9 +dqdiv607 divide 24000E+5 2 -> 1.2000E+9 + +-- more zeros, etc. +dqdiv731 divide 5.00 1E-3 -> 5.00E+3 +dqdiv732 divide 00.00 0.000 -> NaN Division_undefined +dqdiv733 divide 00.00 0E-3 -> NaN Division_undefined +dqdiv734 divide 0 -0 -> NaN Division_undefined +dqdiv735 divide -0 0 -> NaN Division_undefined +dqdiv736 divide -0 -0 -> NaN Division_undefined + +dqdiv741 divide 0 -1 -> -0 +dqdiv742 divide -0 -1 -> 0 +dqdiv743 divide 0 1 -> 0 +dqdiv744 divide -0 1 -> -0 +dqdiv745 divide -1 0 -> -Infinity Division_by_zero +dqdiv746 divide -1 -0 -> Infinity Division_by_zero +dqdiv747 divide 1 0 -> Infinity Division_by_zero +dqdiv748 divide 1 -0 -> -Infinity Division_by_zero + +dqdiv751 divide 0.0 -1 -> -0.0 +dqdiv752 divide -0.0 -1 -> 0.0 +dqdiv753 divide 0.0 1 -> 0.0 +dqdiv754 divide -0.0 1 -> -0.0 +dqdiv755 divide -1.0 0 -> -Infinity Division_by_zero +dqdiv756 divide -1.0 -0 -> Infinity Division_by_zero +dqdiv757 divide 1.0 0 -> Infinity Division_by_zero +dqdiv758 divide 1.0 -0 -> -Infinity Division_by_zero + +dqdiv761 divide 0 -1.0 -> -0E+1 +dqdiv762 divide -0 -1.0 -> 0E+1 +dqdiv763 divide 0 1.0 -> 0E+1 +dqdiv764 divide -0 1.0 -> -0E+1 +dqdiv765 divide -1 0.0 -> -Infinity Division_by_zero +dqdiv766 divide -1 -0.0 -> Infinity Division_by_zero +dqdiv767 divide 1 0.0 -> Infinity Division_by_zero +dqdiv768 divide 1 -0.0 -> -Infinity Division_by_zero + +dqdiv771 divide 0.0 -1.0 -> -0 +dqdiv772 divide -0.0 -1.0 -> 0 +dqdiv773 divide 0.0 1.0 -> 0 +dqdiv774 divide -0.0 1.0 -> -0 +dqdiv775 divide -1.0 0.0 -> -Infinity Division_by_zero +dqdiv776 divide -1.0 -0.0 -> Infinity Division_by_zero +dqdiv777 divide 1.0 0.0 -> Infinity Division_by_zero +dqdiv778 divide 1.0 -0.0 -> -Infinity Division_by_zero + +-- Specials +dqdiv780 divide Inf -Inf -> NaN Invalid_operation +dqdiv781 divide Inf -1000 -> -Infinity +dqdiv782 divide Inf -1 -> -Infinity +dqdiv783 divide Inf -0 -> -Infinity +dqdiv784 divide Inf 0 -> Infinity +dqdiv785 divide Inf 1 -> Infinity +dqdiv786 divide Inf 1000 -> Infinity +dqdiv787 divide Inf Inf -> NaN Invalid_operation +dqdiv788 divide -1000 Inf -> -0E-6176 Clamped +dqdiv789 divide -Inf Inf -> NaN Invalid_operation +dqdiv790 divide -1 Inf -> -0E-6176 Clamped +dqdiv791 divide -0 Inf -> -0E-6176 Clamped +dqdiv792 divide 0 Inf -> 0E-6176 Clamped +dqdiv793 divide 1 Inf -> 0E-6176 Clamped +dqdiv794 divide 1000 Inf -> 0E-6176 Clamped +dqdiv795 divide Inf Inf -> NaN Invalid_operation + +dqdiv800 divide -Inf -Inf -> NaN Invalid_operation +dqdiv801 divide -Inf -1000 -> Infinity +dqdiv802 divide -Inf -1 -> Infinity +dqdiv803 divide -Inf -0 -> Infinity +dqdiv804 divide -Inf 0 -> -Infinity +dqdiv805 divide -Inf 1 -> -Infinity +dqdiv806 divide -Inf 1000 -> -Infinity +dqdiv807 divide -Inf Inf -> NaN Invalid_operation +dqdiv808 divide -1000 Inf -> -0E-6176 Clamped +dqdiv809 divide -Inf -Inf -> NaN Invalid_operation +dqdiv810 divide -1 -Inf -> 0E-6176 Clamped +dqdiv811 divide -0 -Inf -> 0E-6176 Clamped +dqdiv812 divide 0 -Inf -> -0E-6176 Clamped +dqdiv813 divide 1 -Inf -> -0E-6176 Clamped +dqdiv814 divide 1000 -Inf -> -0E-6176 Clamped +dqdiv815 divide Inf -Inf -> NaN Invalid_operation + +dqdiv821 divide NaN -Inf -> NaN +dqdiv822 divide NaN -1000 -> NaN +dqdiv823 divide NaN -1 -> NaN +dqdiv824 divide NaN -0 -> NaN +dqdiv825 divide NaN 0 -> NaN +dqdiv826 divide NaN 1 -> NaN +dqdiv827 divide NaN 1000 -> NaN +dqdiv828 divide NaN Inf -> NaN +dqdiv829 divide NaN NaN -> NaN +dqdiv830 divide -Inf NaN -> NaN +dqdiv831 divide -1000 NaN -> NaN +dqdiv832 divide -1 NaN -> NaN +dqdiv833 divide -0 NaN -> NaN +dqdiv834 divide 0 NaN -> NaN +dqdiv835 divide 1 NaN -> NaN +dqdiv836 divide 1000 NaN -> NaN +dqdiv837 divide Inf NaN -> NaN + +dqdiv841 divide sNaN -Inf -> NaN Invalid_operation +dqdiv842 divide sNaN -1000 -> NaN Invalid_operation +dqdiv843 divide sNaN -1 -> NaN Invalid_operation +dqdiv844 divide sNaN -0 -> NaN Invalid_operation +dqdiv845 divide sNaN 0 -> NaN Invalid_operation +dqdiv846 divide sNaN 1 -> NaN Invalid_operation +dqdiv847 divide sNaN 1000 -> NaN Invalid_operation +dqdiv848 divide sNaN NaN -> NaN Invalid_operation +dqdiv849 divide sNaN sNaN -> NaN Invalid_operation +dqdiv850 divide NaN sNaN -> NaN Invalid_operation +dqdiv851 divide -Inf sNaN -> NaN Invalid_operation +dqdiv852 divide -1000 sNaN -> NaN Invalid_operation +dqdiv853 divide -1 sNaN -> NaN Invalid_operation +dqdiv854 divide -0 sNaN -> NaN Invalid_operation +dqdiv855 divide 0 sNaN -> NaN Invalid_operation +dqdiv856 divide 1 sNaN -> NaN Invalid_operation +dqdiv857 divide 1000 sNaN -> NaN Invalid_operation +dqdiv858 divide Inf sNaN -> NaN Invalid_operation +dqdiv859 divide NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +dqdiv861 divide NaN9 -Inf -> NaN9 +dqdiv862 divide NaN8 1000 -> NaN8 +dqdiv863 divide NaN7 Inf -> NaN7 +dqdiv864 divide NaN6 NaN5 -> NaN6 +dqdiv865 divide -Inf NaN4 -> NaN4 +dqdiv866 divide -1000 NaN3 -> NaN3 +dqdiv867 divide Inf NaN2 -> NaN2 + +dqdiv871 divide sNaN99 -Inf -> NaN99 Invalid_operation +dqdiv872 divide sNaN98 -1 -> NaN98 Invalid_operation +dqdiv873 divide sNaN97 NaN -> NaN97 Invalid_operation +dqdiv874 divide sNaN96 sNaN94 -> NaN96 Invalid_operation +dqdiv875 divide NaN95 sNaN93 -> NaN93 Invalid_operation +dqdiv876 divide -Inf sNaN92 -> NaN92 Invalid_operation +dqdiv877 divide 0 sNaN91 -> NaN91 Invalid_operation +dqdiv878 divide Inf sNaN90 -> NaN90 Invalid_operation +dqdiv879 divide NaN sNaN89 -> NaN89 Invalid_operation + +dqdiv881 divide -NaN9 -Inf -> -NaN9 +dqdiv882 divide -NaN8 1000 -> -NaN8 +dqdiv883 divide -NaN7 Inf -> -NaN7 +dqdiv884 divide -NaN6 -NaN5 -> -NaN6 +dqdiv885 divide -Inf -NaN4 -> -NaN4 +dqdiv886 divide -1000 -NaN3 -> -NaN3 +dqdiv887 divide Inf -NaN2 -> -NaN2 + +dqdiv891 divide -sNaN99 -Inf -> -NaN99 Invalid_operation +dqdiv892 divide -sNaN98 -1 -> -NaN98 Invalid_operation +dqdiv893 divide -sNaN97 NaN -> -NaN97 Invalid_operation +dqdiv894 divide -sNaN96 -sNaN94 -> -NaN96 Invalid_operation +dqdiv895 divide -NaN95 -sNaN93 -> -NaN93 Invalid_operation +dqdiv896 divide -Inf -sNaN92 -> -NaN92 Invalid_operation +dqdiv897 divide 0 -sNaN91 -> -NaN91 Invalid_operation +dqdiv898 divide Inf -sNaN90 -> -NaN90 Invalid_operation +dqdiv899 divide -NaN -sNaN89 -> -NaN89 Invalid_operation + +-- Various flavours of divide by 0 +dqdiv901 divide 0 0 -> NaN Division_undefined +dqdiv902 divide 0.0E5 0 -> NaN Division_undefined +dqdiv903 divide 0.000 0 -> NaN Division_undefined +dqdiv904 divide 0.0001 0 -> Infinity Division_by_zero +dqdiv905 divide 0.01 0 -> Infinity Division_by_zero +dqdiv906 divide 0.1 0 -> Infinity Division_by_zero +dqdiv907 divide 1 0 -> Infinity Division_by_zero +dqdiv908 divide 1 0.0 -> Infinity Division_by_zero +dqdiv909 divide 10 0.0 -> Infinity Division_by_zero +dqdiv910 divide 1E+100 0.0 -> Infinity Division_by_zero +dqdiv911 divide 1E+100 0 -> Infinity Division_by_zero + +dqdiv921 divide -0.0001 0 -> -Infinity Division_by_zero +dqdiv922 divide -0.01 0 -> -Infinity Division_by_zero +dqdiv923 divide -0.1 0 -> -Infinity Division_by_zero +dqdiv924 divide -1 0 -> -Infinity Division_by_zero +dqdiv925 divide -1 0.0 -> -Infinity Division_by_zero +dqdiv926 divide -10 0.0 -> -Infinity Division_by_zero +dqdiv927 divide -1E+100 0.0 -> -Infinity Division_by_zero +dqdiv928 divide -1E+100 0 -> -Infinity Division_by_zero + +dqdiv931 divide 0.0001 -0 -> -Infinity Division_by_zero +dqdiv932 divide 0.01 -0 -> -Infinity Division_by_zero +dqdiv933 divide 0.1 -0 -> -Infinity Division_by_zero +dqdiv934 divide 1 -0 -> -Infinity Division_by_zero +dqdiv935 divide 1 -0.0 -> -Infinity Division_by_zero +dqdiv936 divide 10 -0.0 -> -Infinity Division_by_zero +dqdiv937 divide 1E+100 -0.0 -> -Infinity Division_by_zero +dqdiv938 divide 1E+100 -0 -> -Infinity Division_by_zero + +dqdiv941 divide -0.0001 -0 -> Infinity Division_by_zero +dqdiv942 divide -0.01 -0 -> Infinity Division_by_zero +dqdiv943 divide -0.1 -0 -> Infinity Division_by_zero +dqdiv944 divide -1 -0 -> Infinity Division_by_zero +dqdiv945 divide -1 -0.0 -> Infinity Division_by_zero +dqdiv946 divide -10 -0.0 -> Infinity Division_by_zero +dqdiv947 divide -1E+100 -0.0 -> Infinity Division_by_zero +dqdiv948 divide -1E+100 -0 -> Infinity Division_by_zero + +-- Examples from SQL proposal (Krishna Kulkarni) +dqdiv1021 divide 1E0 1E0 -> 1 +dqdiv1022 divide 1E0 2E0 -> 0.5 +dqdiv1023 divide 1E0 3E0 -> 0.3333333333333333333333333333333333 Inexact Rounded +dqdiv1024 divide 100E-2 1000E-3 -> 1 +dqdiv1025 divide 24E-1 2E0 -> 1.2 +dqdiv1026 divide 2400E-3 2E0 -> 1.200 +dqdiv1027 divide 5E0 2E0 -> 2.5 +dqdiv1028 divide 5E0 20E-1 -> 2.5 +dqdiv1029 divide 5E0 2000E-3 -> 2.5 +dqdiv1030 divide 5E0 2E-1 -> 25 +dqdiv1031 divide 5E0 20E-2 -> 25 +dqdiv1032 divide 480E-2 3E0 -> 1.60 +dqdiv1033 divide 47E-1 2E0 -> 2.35 + +-- ECMAScript bad examples +rounding: half_down +dqdiv1040 divide 5 9 -> 0.5555555555555555555555555555555556 Inexact Rounded +rounding: half_even +dqdiv1041 divide 6 11 -> 0.5454545454545454545454545454545455 Inexact Rounded + +-- Gyuris example +dqdiv1050 divide 8.336804418094040989630006819881709E-6143 8.336804418094040989630006819889000E-6143 -> 0.9999999999999999999999999999991254 Inexact Rounded + +-- overflow and underflow tests .. note subnormal results +-- signs +dqdiv1751 divide 1e+4277 1e-3311 -> Infinity Overflow Inexact Rounded +dqdiv1752 divide 1e+4277 -1e-3311 -> -Infinity Overflow Inexact Rounded +dqdiv1753 divide -1e+4277 1e-3311 -> -Infinity Overflow Inexact Rounded +dqdiv1754 divide -1e+4277 -1e-3311 -> Infinity Overflow Inexact Rounded +dqdiv1755 divide 1e-4277 1e+3311 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqdiv1756 divide 1e-4277 -1e+3311 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqdiv1757 divide -1e-4277 1e+3311 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqdiv1758 divide -1e-4277 -1e+3311 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped + +-- 'subnormal' boundary (all hard underflow or overflow in base arithemtic) +dqdiv1760 divide 1e-6069 1e+101 -> 1E-6170 Subnormal +dqdiv1761 divide 1e-6069 1e+102 -> 1E-6171 Subnormal +dqdiv1762 divide 1e-6069 1e+103 -> 1E-6172 Subnormal +dqdiv1763 divide 1e-6069 1e+104 -> 1E-6173 Subnormal +dqdiv1764 divide 1e-6069 1e+105 -> 1E-6174 Subnormal +dqdiv1765 divide 1e-6069 1e+106 -> 1E-6175 Subnormal +dqdiv1766 divide 1e-6069 1e+107 -> 1E-6176 Subnormal +dqdiv1767 divide 1e-6069 1e+108 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqdiv1768 divide 1e-6069 1e+109 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqdiv1769 divide 1e-6069 1e+110 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +-- [no equivalent of 'subnormal' for overflow] +dqdiv1770 divide 1e+40 1e-6101 -> 1.000000000000000000000000000000E+6141 Clamped +dqdiv1771 divide 1e+40 1e-6102 -> 1.0000000000000000000000000000000E+6142 Clamped +dqdiv1772 divide 1e+40 1e-6103 -> 1.00000000000000000000000000000000E+6143 Clamped +dqdiv1773 divide 1e+40 1e-6104 -> 1.000000000000000000000000000000000E+6144 Clamped +dqdiv1774 divide 1e+40 1e-6105 -> Infinity Overflow Inexact Rounded +dqdiv1775 divide 1e+40 1e-6106 -> Infinity Overflow Inexact Rounded +dqdiv1776 divide 1e+40 1e-6107 -> Infinity Overflow Inexact Rounded +dqdiv1777 divide 1e+40 1e-6108 -> Infinity Overflow Inexact Rounded +dqdiv1778 divide 1e+40 1e-6109 -> Infinity Overflow Inexact Rounded +dqdiv1779 divide 1e+40 1e-6110 -> Infinity Overflow Inexact Rounded + +dqdiv1801 divide 1.0000E-6172 1 -> 1.0000E-6172 Subnormal +dqdiv1802 divide 1.000E-6172 1e+1 -> 1.000E-6173 Subnormal +dqdiv1803 divide 1.00E-6172 1e+2 -> 1.00E-6174 Subnormal +dqdiv1804 divide 1.0E-6172 1e+3 -> 1.0E-6175 Subnormal +dqdiv1805 divide 1.0E-6172 1e+4 -> 1E-6176 Subnormal Rounded +dqdiv1806 divide 1.3E-6172 1e+4 -> 1E-6176 Underflow Subnormal Inexact Rounded +dqdiv1807 divide 1.5E-6172 1e+4 -> 2E-6176 Underflow Subnormal Inexact Rounded +dqdiv1808 divide 1.7E-6172 1e+4 -> 2E-6176 Underflow Subnormal Inexact Rounded +dqdiv1809 divide 2.3E-6172 1e+4 -> 2E-6176 Underflow Subnormal Inexact Rounded +dqdiv1810 divide 2.5E-6172 1e+4 -> 2E-6176 Underflow Subnormal Inexact Rounded +dqdiv1811 divide 2.7E-6172 1e+4 -> 3E-6176 Underflow Subnormal Inexact Rounded +dqdiv1812 divide 1.49E-6172 1e+4 -> 1E-6176 Underflow Subnormal Inexact Rounded +dqdiv1813 divide 1.50E-6172 1e+4 -> 2E-6176 Underflow Subnormal Inexact Rounded +dqdiv1814 divide 1.51E-6172 1e+4 -> 2E-6176 Underflow Subnormal Inexact Rounded +dqdiv1815 divide 2.49E-6172 1e+4 -> 2E-6176 Underflow Subnormal Inexact Rounded +dqdiv1816 divide 2.50E-6172 1e+4 -> 2E-6176 Underflow Subnormal Inexact Rounded +dqdiv1817 divide 2.51E-6172 1e+4 -> 3E-6176 Underflow Subnormal Inexact Rounded + +dqdiv1818 divide 1E-6172 1e+4 -> 1E-6176 Subnormal +dqdiv1819 divide 3E-6172 1e+5 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqdiv1820 divide 5E-6172 1e+5 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqdiv1821 divide 7E-6172 1e+5 -> 1E-6176 Underflow Subnormal Inexact Rounded +dqdiv1822 divide 9E-6172 1e+5 -> 1E-6176 Underflow Subnormal Inexact Rounded +dqdiv1823 divide 9.9E-6172 1e+5 -> 1E-6176 Underflow Subnormal Inexact Rounded + +dqdiv1824 divide 1E-6172 -1e+4 -> -1E-6176 Subnormal +dqdiv1825 divide 3E-6172 -1e+5 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqdiv1826 divide -5E-6172 1e+5 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqdiv1827 divide 7E-6172 -1e+5 -> -1E-6176 Underflow Subnormal Inexact Rounded +dqdiv1828 divide -9E-6172 1e+5 -> -1E-6176 Underflow Subnormal Inexact Rounded +dqdiv1829 divide 9.9E-6172 -1e+5 -> -1E-6176 Underflow Subnormal Inexact Rounded +dqdiv1830 divide 3.0E-6172 -1e+5 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped + +dqdiv1831 divide 1.0E-5977 1e+200 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqdiv1832 divide 1.0E-5977 1e+199 -> 1E-6176 Subnormal Rounded +dqdiv1833 divide 1.0E-5977 1e+198 -> 1.0E-6175 Subnormal +dqdiv1834 divide 2.0E-5977 2e+198 -> 1.0E-6175 Subnormal +dqdiv1835 divide 4.0E-5977 4e+198 -> 1.0E-6175 Subnormal +dqdiv1836 divide 10.0E-5977 10e+198 -> 1.0E-6175 Subnormal +dqdiv1837 divide 30.0E-5977 30e+198 -> 1.0E-6175 Subnormal +dqdiv1838 divide 40.0E-5982 40e+166 -> 1.0E-6148 Subnormal +dqdiv1839 divide 40.0E-5982 40e+165 -> 1.0E-6147 Subnormal +dqdiv1840 divide 40.0E-5982 40e+164 -> 1.0E-6146 Subnormal + +-- randoms +rounding: half_even +dqdiv2010 divide -5231195652931651968034356117118850 -7243718664422548573203260970.34995 -> 722169.9095831284624736051460550680 Inexact Rounded +dqdiv2011 divide -89584669773927.82711237350022515352 -42077943728529635884.21142627532985 -> 0.000002129017291146471565928125887527266 Inexact Rounded +dqdiv2012 divide -2.828201693360723203806974891946180E-232 812596541221823960386384403089240.9 -> -3.480450075640521320040055759125120E-265 Inexact Rounded +dqdiv2013 divide -6442775372761069267502937539408720 24904085056.69185465145182606089196 -> -258703556388226463687701.4884719589 Inexact Rounded +dqdiv2014 divide 5.535520011272625629610079879714705 -44343664650.57203052003068113531208 -> -1.248322630728089308975940533493562E-10 Inexact Rounded +dqdiv2015 divide 65919273712517865964325.99419625010 -314733354141381737378622515.7789054 -> -0.0002094448295521490616379784758911632 Inexact Rounded +dqdiv2016 divide -7.779172568193197107115275140431129E+759 -140453015639.3988987652895178782143 -> 5.538629792161641534962774244238115E+748 Inexact Rounded +dqdiv2017 divide 644314832597569.0181226067518178797 -115024585257425.1635759521565201075 -> -5.601540150356479257367687450922795 Inexact Rounded +dqdiv2018 divide 6.898640941579611450676592553286870E-47 -11272429881407851485163914999.25943 -> -6.119923578285338689371137648319280E-75 Inexact Rounded +dqdiv2019 divide -3591344544888727133.30819750163254 5329395.423792795661446561090331037 -> -673874662941.1968525589460533725290 Inexact Rounded +dqdiv2020 divide -7.682356781384631313156462724425838E+747 -6.60375855512219057281922141809940E+703 -> 1.163330960279556016678379128875149E+44 Inexact Rounded +dqdiv2021 divide -4511495596596941820863224.274679699 3365395017.263329795449661616090724 -> -1340554548115304.904166888018346299 Inexact Rounded +dqdiv2022 divide 5.211164127840931517263639608151299 164.5566381356276567012533847006453 -> 0.03166790587655228864478260157156510 Inexact Rounded +dqdiv2023 divide -49891.2243893458830384077684620383 -47179.9312961860747554053371171530 -> 1.057467084386767291602189656430268 Inexact Rounded +dqdiv2024 divide 15065477.47214268488077415462413353 4366211.120892953261309529740552596 -> 3.450469309661227984244545513441359 Inexact Rounded +dqdiv2025 divide 1.575670269440761846109602429612644E+370 653199649324740300.006185482643439 -> 2.412233795700359170904588548041481E+352 Inexact Rounded +dqdiv2026 divide -2112422311733448924573432192.620145 -80067206.03590693153848215848613406 -> 26383115089417660175.20102646756574 Inexact Rounded +dqdiv2027 divide -67096536051279809.32218611548721839 -869685412881941081664251990181.1049 -> 7.715035236584805921278566365231168E-14 Inexact Rounded +dqdiv2028 divide -58612908548962047.21866913425488972 -978449597531.3873665583475633831644 -> 59903.86085991703091236507859837023 Inexact Rounded +dqdiv2029 divide -133032412010942.1476864138213319796 -7.882059293498670705446528648201359E-428 -> 1.687787506504433064549515681693715E+441 Inexact Rounded +dqdiv2030 divide 1.83746698338966029492299716360513E+977 -9.897926608979649951672839879128603E+154 -> -1.856416051542212552042390218062458E+822 Inexact Rounded +dqdiv2031 divide -113742475841399236307128962.1507063 8298602.203049834732657567965262989 -> -13706221006665137826.16557393919929 Inexact Rounded +dqdiv2032 divide 196.4787574650754152995941808331862 929.6553388472318094427422117172394 -> 0.2113458066176526651006917922814018 Inexact Rounded +dqdiv2033 divide 71931221465.43867996282803628130350 3838685934206426257090718.402248853 -> 1.873850132527423413607199513324021E-14 Inexact Rounded +dqdiv2034 divide 488.4282502289651653783596246312885 -80.68940956806634280078706577953188 -> -6.053189047280693318844801899473272 Inexact Rounded +dqdiv2035 divide 9.001764344963921754981762913247394E-162 -8.585540973667205753734967645386919E-729 -> -1.048479574271827326396012573232934E+567 Inexact Rounded +dqdiv2036 divide -7.404133959409894743706402857145471E-828 -51.38159929460289711134684843086265 -> 1.441008855516029461032061785219773E-829 Inexact Rounded +dqdiv2037 divide 2.967520235574419794048994436040717E-613 -6252513855.91394894949879262731889 -> -4.746123405656409127572998751885338E-623 Inexact Rounded +dqdiv2038 divide -18826852654824040505.83920366765051 -6336924877942437992590557460147340 -> 2.970976146546494669807886278519194E-15 Inexact Rounded +dqdiv2039 divide -8.101406784809197604949584001735949E+561 4.823300306948942821076681658771635E+361 -> -1.679639721610839204738445747238987E+200 Inexact Rounded +dqdiv2040 divide -6.11981977773094052331062585191723E+295 1.507610253755339328302779005586534E+238 -> -4.059285058911577244044418416044763E+57 Inexact Rounded +dqdiv2041 divide 6.472638850046815880599220534274055E-596 -4.475233712083047516933911786159972 -> -1.446324207062261745520496475778879E-596 Inexact Rounded +dqdiv2042 divide -84438593330.71277839631144509397112 -586684596204401664208947.4054879633 -> 1.439250218550041228759983937772504E-13 Inexact Rounded +dqdiv2043 divide 9.354533233294022616695815656704369E-24 405.500390626135304252144163591746 -> 2.306911028827774549740571229736198E-26 Inexact Rounded +dqdiv2044 divide 985606423350210.7374876650149957881 -36811563697.41925681866694859828794 -> -26774.36990864119445335813354717711 Inexact Rounded +dqdiv2045 divide -8.187280774177715706278002247766311E-123 -38784124393.91212870828430001300068 -> 2.110987653356139147357240727794365E-133 Inexact Rounded +dqdiv2046 divide -4.612203126350070903459245798371657E+912 7.971562182727956290901984736800519E+64 -> -5.785820922708683237098826662769748E+847 Inexact Rounded +dqdiv2047 divide 4.661015909421485298247928967977089E+888 -6.360911253323922338737311563845581E+388 -> -7.327591478321365980156654539638836E+499 Inexact Rounded +dqdiv2048 divide 9156078172903.257500003260710833030 7.189796653262147139071634237964074E-90 -> 1.273482215766000994365201545096026E+102 Inexact Rounded +dqdiv2049 divide -1.710722303327476586373477781276586E-311 -3167561628260156837329323.729380695 -> 5.400754599578613984875752958645655E-336 Inexact Rounded +dqdiv2050 divide -4.647935210881806238321616345413021E-878 209388.5431867744648177308460639582 -> -2.219765771394593733140494297388140E-883 Inexact Rounded +dqdiv2051 divide 5958.694728395760992719084781582700 4.541510156564315632536353171846096E-746 -> 1.312051393253638664947852693005480E+749 Inexact Rounded +dqdiv2052 divide -7.935732544649702175256699886872093E-489 -7.433329073664793138998765647467971E+360 -> 1.067587949626076917672271619664656E-849 Inexact Rounded +dqdiv2053 divide -2746650864601157.863589959939901350 7.016684945507647528907184694359598E+548 -> -3.914456593009309529351254950429932E-534 Inexact Rounded +dqdiv2054 divide 3605149408631197365447953.994569178 -75614025825649082.78264864428237833 -> -47678315.88472693507060063188020532 Inexact Rounded +dqdiv2055 divide 788194320921798404906375214.196349 -6.222718148433247384932573401976337E-418 -> -1.266639918634671803982222244977287E+444 Inexact Rounded +dqdiv2056 divide 5620722730534752.758208943447603211 6.843552841168538319123000917657759E-139 -> 8.213164800485434666629970443739554E+153 Inexact Rounded +dqdiv2057 divide 7304534676713703938102.403949019402 -576169.3685010935108153023803590835 -> -12677756014201995.31969237144394772 Inexact Rounded +dqdiv2058 divide 8067918762.134621639254916786945547 -8.774771480055536009105596163864758E+954 -> -9.194448858836332156766764605125245E-946 Inexact Rounded +dqdiv2059 divide 8.702093454123046507578256899537563E-324 -5.875399733016018404580201176576293E-401 -> -1.481106622452052581470443526957335E+77 Inexact Rounded +dqdiv2060 divide -41426.01662518451861386352415092356 90.00146621684478300510769802013464 -> -460.2815750287318692732067709176200 Inexact Rounded + +-- random divide tests with result near 1 +dqdiv4001 divide 2003100352770753969878925664524900 2003100352770753969878925664497824 -> 1.000000000000000000000000000013517 Inexact Rounded +dqdiv4002 divide 4817785793916490652579552318371645 4817785793916490652579552318362097 -> 1.000000000000000000000000000001982 Inexact Rounded +dqdiv4003 divide 8299187410920067325648068439560282 8299187410920067325648068439591159 -> 0.9999999999999999999999999999962795 Inexact Rounded +dqdiv4004 divide 5641088455897407044544461785365899 5641088455897407044544461785389965 -> 0.9999999999999999999999999999957338 Inexact Rounded +dqdiv4005 divide 5752274694706545359326361313490424 5752274694706545359326361313502723 -> 0.9999999999999999999999999999978619 Inexact Rounded +dqdiv4006 divide 6762079477373670594829319346099665 6762079477373670594829319346132579 -> 0.9999999999999999999999999999951326 Inexact Rounded +dqdiv4007 divide 7286425153691890341633023222602916 7286425153691890341633023222606556 -> 0.9999999999999999999999999999995004 Inexact Rounded +dqdiv4008 divide 9481233991901305727648306421946655 9481233991901305727648306421919124 -> 1.000000000000000000000000000002904 Inexact Rounded +dqdiv4009 divide 4282053941893951742029444065614311 4282053941893951742029444065583077 -> 1.000000000000000000000000000007294 Inexact Rounded +dqdiv4010 divide 626888225441250639741781850338695 626888225441250639741781850327299 -> 1.000000000000000000000000000018179 Inexact Rounded +dqdiv4011 divide 3860973649222028009456598604468547 3860973649222028009456598604476849 -> 0.9999999999999999999999999999978498 Inexact Rounded +dqdiv4012 divide 4753157080127468127908060607821839 4753157080127468127908060607788379 -> 1.000000000000000000000000000007040 Inexact Rounded +dqdiv4013 divide 552448546203754062805706277880419 552448546203754062805706277881903 -> 0.9999999999999999999999999999973138 Inexact Rounded +dqdiv4014 divide 8405954527952158455323713728917395 8405954527952158455323713728933866 -> 0.9999999999999999999999999999980406 Inexact Rounded +dqdiv4015 divide 7554096502235321142555802238016116 7554096502235321142555802238026546 -> 0.9999999999999999999999999999986193 Inexact Rounded +dqdiv4016 divide 4053257674127518606871054934746782 4053257674127518606871054934767355 -> 0.9999999999999999999999999999949243 Inexact Rounded +dqdiv4017 divide 7112419420755090454716888844011582 7112419420755090454716888844038105 -> 0.9999999999999999999999999999962709 Inexact Rounded +dqdiv4018 divide 3132302137520072728164549730911846 3132302137520072728164549730908416 -> 1.000000000000000000000000000001095 Inexact Rounded +dqdiv4019 divide 4788374045841416355706715048161013 4788374045841416355706715048190077 -> 0.9999999999999999999999999999939303 Inexact Rounded +dqdiv4020 divide 9466021636047630218238075099510597 9466021636047630218238075099484053 -> 1.000000000000000000000000000002804 Inexact Rounded +dqdiv4021 divide 912742745646765625597399692138650 912742745646765625597399692139042 -> 0.9999999999999999999999999999995705 Inexact Rounded +dqdiv4022 divide 9508402742933643208806264897188504 9508402742933643208806264897195973 -> 0.9999999999999999999999999999992145 Inexact Rounded +dqdiv4023 divide 1186956795727233704962361914360895 1186956795727233704962361914329577 -> 1.000000000000000000000000000026385 Inexact Rounded +dqdiv4024 divide 5972210268839014812696916170967938 5972210268839014812696916170954974 -> 1.000000000000000000000000000002171 Inexact Rounded +dqdiv4025 divide 2303801625521619930894460139793140 2303801625521619930894460139799643 -> 0.9999999999999999999999999999971773 Inexact Rounded +dqdiv4026 divide 6022231560002898264777393473966595 6022231560002898264777393473947198 -> 1.000000000000000000000000000003221 Inexact Rounded +dqdiv4027 divide 8426148335801396199969346032210893 8426148335801396199969346032203179 -> 1.000000000000000000000000000000915 Inexact Rounded +dqdiv4028 divide 8812278947028784637382847098411749 8812278947028784637382847098385317 -> 1.000000000000000000000000000002999 Inexact Rounded +dqdiv4029 divide 8145282002348367383264197170116146 8145282002348367383264197170083988 -> 1.000000000000000000000000000003948 Inexact Rounded +dqdiv4030 divide 6821577571876840153123510107387026 6821577571876840153123510107418008 -> 0.9999999999999999999999999999954582 Inexact Rounded +dqdiv4031 divide 9018555319518966970480565482023720 9018555319518966970480565482013346 -> 1.000000000000000000000000000001150 Inexact Rounded +dqdiv4032 divide 4602155712998228449640717252788864 4602155712998228449640717252818502 -> 0.9999999999999999999999999999935600 Inexact Rounded +dqdiv4033 divide 6675607481522785614506828292264472 6675607481522785614506828292277100 -> 0.9999999999999999999999999999981083 Inexact Rounded +dqdiv4034 divide 4015881516871833897766945836264472 4015881516871833897766945836262645 -> 1.000000000000000000000000000000455 Inexact Rounded +dqdiv4035 divide 1415580205933411837595459716910365 1415580205933411837595459716880139 -> 1.000000000000000000000000000021352 Inexact Rounded +dqdiv4036 divide 9432968297069542816752035276361552 9432968297069542816752035276353054 -> 1.000000000000000000000000000000901 Inexact Rounded +dqdiv4037 divide 4799319591303848500532766682140658 4799319591303848500532766682172655 -> 0.9999999999999999999999999999933330 Inexact Rounded +dqdiv4038 divide 316854270732839529790584284987472 316854270732839529790584285004832 -> 0.9999999999999999999999999999452114 Inexact Rounded +dqdiv4039 divide 3598981300592490427826027975697415 3598981300592490427826027975686712 -> 1.000000000000000000000000000002974 Inexact Rounded +dqdiv4040 divide 1664315435694461371155800682196520 1664315435694461371155800682195617 -> 1.000000000000000000000000000000543 Inexact Rounded +dqdiv4041 divide 1680872316531128890102855316510581 1680872316531128890102855316495545 -> 1.000000000000000000000000000008945 Inexact Rounded +dqdiv4042 divide 9881274879566405475755499281644730 9881274879566405475755499281615743 -> 1.000000000000000000000000000002934 Inexact Rounded +dqdiv4043 divide 4737225957717466960447204232279216 4737225957717466960447204232277452 -> 1.000000000000000000000000000000372 Inexact Rounded +dqdiv4044 divide 2482097379414867061213319346418288 2482097379414867061213319346387936 -> 1.000000000000000000000000000012228 Inexact Rounded +dqdiv4045 divide 7406977595233762723576434122161868 7406977595233762723576434122189042 -> 0.9999999999999999999999999999963313 Inexact Rounded +dqdiv4046 divide 228782057757566047086593281773577 228782057757566047086593281769727 -> 1.000000000000000000000000000016828 Inexact Rounded +dqdiv4047 divide 2956594270240579648823270540367653 2956594270240579648823270540368556 -> 0.9999999999999999999999999999996946 Inexact Rounded +dqdiv4048 divide 6326964098897620620534136767634340 6326964098897620620534136767619339 -> 1.000000000000000000000000000002371 Inexact Rounded +dqdiv4049 divide 414586440456590215247002678327800 414586440456590215247002678316922 -> 1.000000000000000000000000000026238 Inexact Rounded +dqdiv4050 divide 7364552208570039386220505636779125 7364552208570039386220505636803548 -> 0.9999999999999999999999999999966837 Inexact Rounded +dqdiv4051 divide 5626266749902369710022824950590056 5626266749902369710022824950591008 -> 0.9999999999999999999999999999998308 Inexact Rounded +dqdiv4052 divide 4863278293916197454987481343460484 4863278293916197454987481343442522 -> 1.000000000000000000000000000003693 Inexact Rounded +dqdiv4053 divide 1170713582030637359713249796835483 1170713582030637359713249796823345 -> 1.000000000000000000000000000010368 Inexact Rounded +dqdiv4054 divide 9838062494725965667776326556052931 9838062494725965667776326556061002 -> 0.9999999999999999999999999999991796 Inexact Rounded +dqdiv4055 divide 4071388731298861093005687091498922 4071388731298861093005687091498278 -> 1.000000000000000000000000000000158 Inexact Rounded +dqdiv4056 divide 8753155722324706795855038590272526 8753155722324706795855038590276656 -> 0.9999999999999999999999999999995282 Inexact Rounded +dqdiv4057 divide 4399941911533273418844742658240485 4399941911533273418844742658219891 -> 1.000000000000000000000000000004681 Inexact Rounded +dqdiv4058 divide 4127884159949503677776430620050269 4127884159949503677776430620026091 -> 1.000000000000000000000000000005857 Inexact Rounded +dqdiv4059 divide 5536160822360800067042528317438808 5536160822360800067042528317450687 -> 0.9999999999999999999999999999978543 Inexact Rounded +dqdiv4060 divide 3973234998468664936671088237710246 3973234998468664936671088237741886 -> 0.9999999999999999999999999999920367 Inexact Rounded +dqdiv4061 divide 9824855935638263593410444142327358 9824855935638263593410444142328576 -> 0.9999999999999999999999999999998760 Inexact Rounded +dqdiv4062 divide 5917078517340218131867327300814867 5917078517340218131867327300788701 -> 1.000000000000000000000000000004422 Inexact Rounded +dqdiv4063 divide 4354236601830544882286139612521362 4354236601830544882286139612543223 -> 0.9999999999999999999999999999949794 Inexact Rounded +dqdiv4064 divide 8058474772375259017342110013891294 8058474772375259017342110013906792 -> 0.9999999999999999999999999999980768 Inexact Rounded +dqdiv4065 divide 5519604020981748170517093746166328 5519604020981748170517093746181763 -> 0.9999999999999999999999999999972036 Inexact Rounded +dqdiv4066 divide 1502130966879805458831323782443139 1502130966879805458831323782412213 -> 1.000000000000000000000000000020588 Inexact Rounded +dqdiv4067 divide 562795633719481212915159787980270 562795633719481212915159788007066 -> 0.9999999999999999999999999999523877 Inexact Rounded +dqdiv4068 divide 6584743324494664273941281557268878 6584743324494664273941281557258945 -> 1.000000000000000000000000000001508 Inexact Rounded +dqdiv4069 divide 3632000327285743997976431109416500 3632000327285743997976431109408107 -> 1.000000000000000000000000000002311 Inexact Rounded +dqdiv4070 divide 1145827237315430089388953838561450 1145827237315430089388953838527332 -> 1.000000000000000000000000000029776 Inexact Rounded +dqdiv4071 divide 8874431010357691869725372317350380 8874431010357691869725372317316472 -> 1.000000000000000000000000000003821 Inexact Rounded +dqdiv4072 divide 992948718902804648119753141202196 992948718902804648119753141235222 -> 0.9999999999999999999999999999667395 Inexact Rounded +dqdiv4073 divide 2522735183374218505142417265439989 2522735183374218505142417265453779 -> 0.9999999999999999999999999999945337 Inexact Rounded +dqdiv4074 divide 2668419161912936508006872303501052 2668419161912936508006872303471036 -> 1.000000000000000000000000000011249 Inexact Rounded +dqdiv4075 divide 3036169085665186712590941111775092 3036169085665186712590941111808846 -> 0.9999999999999999999999999999888827 Inexact Rounded +dqdiv4076 divide 9441634604917231638508898934006147 9441634604917231638508898934000288 -> 1.000000000000000000000000000000621 Inexact Rounded +dqdiv4077 divide 2677301353164377091111458811839190 2677301353164377091111458811867722 -> 0.9999999999999999999999999999893430 Inexact Rounded +dqdiv4078 divide 6844979203112066166583765857171426 6844979203112066166583765857189682 -> 0.9999999999999999999999999999973329 Inexact Rounded +dqdiv4079 divide 2220337435141796724323783960231661 2220337435141796724323783960208778 -> 1.000000000000000000000000000010306 Inexact Rounded +dqdiv4080 divide 6447424700019783931569996989561380 6447424700019783931569996989572454 -> 0.9999999999999999999999999999982824 Inexact Rounded +dqdiv4081 divide 7512856762696607119847092195587180 7512856762696607119847092195557346 -> 1.000000000000000000000000000003971 Inexact Rounded +dqdiv4082 divide 7395261981193960399087819077237482 7395261981193960399087819077242487 -> 0.9999999999999999999999999999993232 Inexact Rounded +dqdiv4083 divide 2253442467682584035792724884376735 2253442467682584035792724884407178 -> 0.9999999999999999999999999999864904 Inexact Rounded +dqdiv4084 divide 8153138680300213135577336466190997 8153138680300213135577336466220607 -> 0.9999999999999999999999999999963683 Inexact Rounded +dqdiv4085 divide 4668731252254148074041022681801390 4668731252254148074041022681778101 -> 1.000000000000000000000000000004988 Inexact Rounded +dqdiv4086 divide 6078404557993669696040425501815056 6078404557993669696040425501797612 -> 1.000000000000000000000000000002870 Inexact Rounded +dqdiv4087 divide 2306352359874261623223356878316278 2306352359874261623223356878335612 -> 0.9999999999999999999999999999916171 Inexact Rounded +dqdiv4088 divide 3264842186668480362900909564091908 3264842186668480362900909564058658 -> 1.000000000000000000000000000010184 Inexact Rounded +dqdiv4089 divide 6971985047279636878957959608612204 6971985047279636878957959608615088 -> 0.9999999999999999999999999999995863 Inexact Rounded +dqdiv4090 divide 5262810889952721235466445973816257 5262810889952721235466445973783077 -> 1.000000000000000000000000000006305 Inexact Rounded +dqdiv4091 divide 7947944731035267178548357070080288 7947944731035267178548357070061339 -> 1.000000000000000000000000000002384 Inexact Rounded +dqdiv4092 divide 5071808908395375108383035800443229 5071808908395375108383035800412429 -> 1.000000000000000000000000000006073 Inexact Rounded +dqdiv4093 divide 2043146542084503655511507209262969 2043146542084503655511507209249263 -> 1.000000000000000000000000000006708 Inexact Rounded +dqdiv4094 divide 4097632735384534181661959731264802 4097632735384534181661959731234499 -> 1.000000000000000000000000000007395 Inexact Rounded +dqdiv4095 divide 3061477642831387489729464587044430 3061477642831387489729464587059452 -> 0.9999999999999999999999999999950932 Inexact Rounded +dqdiv4096 divide 3429854941039776159498802936252638 3429854941039776159498802936246415 -> 1.000000000000000000000000000001814 Inexact Rounded +dqdiv4097 divide 4874324979578599700024133278284545 4874324979578599700024133278262131 -> 1.000000000000000000000000000004598 Inexact Rounded +dqdiv4098 divide 5701652369691833541455978515820882 5701652369691833541455978515834854 -> 0.9999999999999999999999999999975495 Inexact Rounded +dqdiv4099 divide 2928205728402945266953255632343113 2928205728402945266953255632373794 -> 0.9999999999999999999999999999895223 Inexact Rounded + +-- Null tests +dqdiv9998 divide 10 # -> NaN Invalid_operation +dqdiv9999 divide # 10 -> NaN Invalid_operation + diff --git a/Lib/test/decimaltestdata/dqDivideInt.decTest b/Lib/test/decimaltestdata/dqDivideInt.decTest index 3fec6dbaa3..c29035119f 100644 --- a/Lib/test/decimaltestdata/dqDivideInt.decTest +++ b/Lib/test/decimaltestdata/dqDivideInt.decTest @@ -1,453 +1,453 @@ -------------------------------------------------------------------------
--- dqDivideInt.decTest -- decQuad integer division --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
-
-dqdvi001 divideint 1 1 -> 1
-dqdvi002 divideint 2 1 -> 2
-dqdvi003 divideint 1 2 -> 0
-dqdvi004 divideint 2 2 -> 1
-dqdvi005 divideint 0 1 -> 0
-dqdvi006 divideint 0 2 -> 0
-dqdvi007 divideint 1 3 -> 0
-dqdvi008 divideint 2 3 -> 0
-dqdvi009 divideint 3 3 -> 1
-
-dqdvi010 divideint 2.4 1 -> 2
-dqdvi011 divideint 2.4 -1 -> -2
-dqdvi012 divideint -2.4 1 -> -2
-dqdvi013 divideint -2.4 -1 -> 2
-dqdvi014 divideint 2.40 1 -> 2
-dqdvi015 divideint 2.400 1 -> 2
-dqdvi016 divideint 2.4 2 -> 1
-dqdvi017 divideint 2.400 2 -> 1
-dqdvi018 divideint 2. 2 -> 1
-dqdvi019 divideint 20 20 -> 1
-
-dqdvi020 divideint 187 187 -> 1
-dqdvi021 divideint 5 2 -> 2
-dqdvi022 divideint 5 2.0 -> 2
-dqdvi023 divideint 5 2.000 -> 2
-dqdvi024 divideint 5 0.200 -> 25
-dqdvi025 divideint 5 0.200 -> 25
-
-dqdvi030 divideint 1 2 -> 0
-dqdvi031 divideint 1 4 -> 0
-dqdvi032 divideint 1 8 -> 0
-dqdvi033 divideint 1 16 -> 0
-dqdvi034 divideint 1 32 -> 0
-dqdvi035 divideint 1 64 -> 0
-dqdvi040 divideint 1 -2 -> -0
-dqdvi041 divideint 1 -4 -> -0
-dqdvi042 divideint 1 -8 -> -0
-dqdvi043 divideint 1 -16 -> -0
-dqdvi044 divideint 1 -32 -> -0
-dqdvi045 divideint 1 -64 -> -0
-dqdvi050 divideint -1 2 -> -0
-dqdvi051 divideint -1 4 -> -0
-dqdvi052 divideint -1 8 -> -0
-dqdvi053 divideint -1 16 -> -0
-dqdvi054 divideint -1 32 -> -0
-dqdvi055 divideint -1 64 -> -0
-dqdvi060 divideint -1 -2 -> 0
-dqdvi061 divideint -1 -4 -> 0
-dqdvi062 divideint -1 -8 -> 0
-dqdvi063 divideint -1 -16 -> 0
-dqdvi064 divideint -1 -32 -> 0
-dqdvi065 divideint -1 -64 -> 0
-
--- similar with powers of ten
-dqdvi160 divideint 1 1 -> 1
-dqdvi161 divideint 1 10 -> 0
-dqdvi162 divideint 1 100 -> 0
-dqdvi163 divideint 1 1000 -> 0
-dqdvi164 divideint 1 10000 -> 0
-dqdvi165 divideint 1 100000 -> 0
-dqdvi166 divideint 1 1000000 -> 0
-dqdvi167 divideint 1 10000000 -> 0
-dqdvi168 divideint 1 100000000 -> 0
-dqdvi170 divideint 1 -1 -> -1
-dqdvi171 divideint 1 -10 -> -0
-dqdvi172 divideint 1 -100 -> -0
-dqdvi173 divideint 1 -1000 -> -0
-dqdvi174 divideint 1 -10000 -> -0
-dqdvi175 divideint 1 -100000 -> -0
-dqdvi176 divideint 1 -1000000 -> -0
-dqdvi177 divideint 1 -10000000 -> -0
-dqdvi178 divideint 1 -100000000 -> -0
-dqdvi180 divideint -1 1 -> -1
-dqdvi181 divideint -1 10 -> -0
-dqdvi182 divideint -1 100 -> -0
-dqdvi183 divideint -1 1000 -> -0
-dqdvi184 divideint -1 10000 -> -0
-dqdvi185 divideint -1 100000 -> -0
-dqdvi186 divideint -1 1000000 -> -0
-dqdvi187 divideint -1 10000000 -> -0
-dqdvi188 divideint -1 100000000 -> -0
-dqdvi190 divideint -1 -1 -> 1
-dqdvi191 divideint -1 -10 -> 0
-dqdvi192 divideint -1 -100 -> 0
-dqdvi193 divideint -1 -1000 -> 0
-dqdvi194 divideint -1 -10000 -> 0
-dqdvi195 divideint -1 -100000 -> 0
-dqdvi196 divideint -1 -1000000 -> 0
-dqdvi197 divideint -1 -10000000 -> 0
-dqdvi198 divideint -1 -100000000 -> 0
-
--- some long operand (at p=9) cases
-dqdvi070 divideint 999999999 1 -> 999999999
-dqdvi071 divideint 999999999.4 1 -> 999999999
-dqdvi072 divideint 999999999.5 1 -> 999999999
-dqdvi073 divideint 999999999.9 1 -> 999999999
-dqdvi074 divideint 999999999.999 1 -> 999999999
-
-dqdvi090 divideint 0. 1 -> 0
-dqdvi091 divideint .0 1 -> 0
-dqdvi092 divideint 0.00 1 -> 0
-dqdvi093 divideint 0.00E+9 1 -> 0
-dqdvi094 divideint 0.0000E-50 1 -> 0
-
-dqdvi100 divideint 1 1 -> 1
-dqdvi101 divideint 1 2 -> 0
-dqdvi102 divideint 1 3 -> 0
-dqdvi103 divideint 1 4 -> 0
-dqdvi104 divideint 1 5 -> 0
-dqdvi105 divideint 1 6 -> 0
-dqdvi106 divideint 1 7 -> 0
-dqdvi107 divideint 1 8 -> 0
-dqdvi108 divideint 1 9 -> 0
-dqdvi109 divideint 1 10 -> 0
-dqdvi110 divideint 1 1 -> 1
-dqdvi111 divideint 2 1 -> 2
-dqdvi112 divideint 3 1 -> 3
-dqdvi113 divideint 4 1 -> 4
-dqdvi114 divideint 5 1 -> 5
-dqdvi115 divideint 6 1 -> 6
-dqdvi116 divideint 7 1 -> 7
-dqdvi117 divideint 8 1 -> 8
-dqdvi118 divideint 9 1 -> 9
-dqdvi119 divideint 10 1 -> 10
-
--- from DiagBigDecimal
-dqdvi131 divideint 101.3 1 -> 101
-dqdvi132 divideint 101.0 1 -> 101
-dqdvi133 divideint 101.3 3 -> 33
-dqdvi134 divideint 101.0 3 -> 33
-dqdvi135 divideint 2.4 1 -> 2
-dqdvi136 divideint 2.400 1 -> 2
-dqdvi137 divideint 18 18 -> 1
-dqdvi138 divideint 1120 1000 -> 1
-dqdvi139 divideint 2.4 2 -> 1
-dqdvi140 divideint 2.400 2 -> 1
-dqdvi141 divideint 0.5 2.000 -> 0
-dqdvi142 divideint 8.005 7 -> 1
-dqdvi143 divideint 5 2 -> 2
-dqdvi144 divideint 0 2 -> 0
-dqdvi145 divideint 0.00 2 -> 0
-
--- Others
-dqdvi150 divideint 12345 4.999 -> 2469
-dqdvi151 divideint 12345 4.99 -> 2473
-dqdvi152 divideint 12345 4.9 -> 2519
-dqdvi153 divideint 12345 5 -> 2469
-dqdvi154 divideint 12345 5.1 -> 2420
-dqdvi155 divideint 12345 5.01 -> 2464
-dqdvi156 divideint 12345 5.001 -> 2468
-dqdvi157 divideint 101 7.6 -> 13
-
--- Various flavours of divideint by 0
-dqdvi201 divideint 0 0 -> NaN Division_undefined
-dqdvi202 divideint 0.0E5 0 -> NaN Division_undefined
-dqdvi203 divideint 0.000 0 -> NaN Division_undefined
-dqdvi204 divideint 0.0001 0 -> Infinity Division_by_zero
-dqdvi205 divideint 0.01 0 -> Infinity Division_by_zero
-dqdvi206 divideint 0.1 0 -> Infinity Division_by_zero
-dqdvi207 divideint 1 0 -> Infinity Division_by_zero
-dqdvi208 divideint 1 0.0 -> Infinity Division_by_zero
-dqdvi209 divideint 10 0.0 -> Infinity Division_by_zero
-dqdvi210 divideint 1E+100 0.0 -> Infinity Division_by_zero
-dqdvi211 divideint 1E+380 0 -> Infinity Division_by_zero
-dqdvi214 divideint -0.0001 0 -> -Infinity Division_by_zero
-dqdvi215 divideint -0.01 0 -> -Infinity Division_by_zero
-dqdvi216 divideint -0.1 0 -> -Infinity Division_by_zero
-dqdvi217 divideint -1 0 -> -Infinity Division_by_zero
-dqdvi218 divideint -1 0.0 -> -Infinity Division_by_zero
-dqdvi219 divideint -10 0.0 -> -Infinity Division_by_zero
-dqdvi220 divideint -1E+100 0.0 -> -Infinity Division_by_zero
-dqdvi221 divideint -1E+380 0 -> -Infinity Division_by_zero
-
--- test some cases that are close to exponent overflow
-dqdvi270 divideint 1 1e384 -> 0
-dqdvi271 divideint 1 0.9e384 -> 0
-dqdvi272 divideint 1 0.99e384 -> 0
-dqdvi273 divideint 1 0.9999999999999999e384 -> 0
-dqdvi274 divideint 9e384 1 -> NaN Division_impossible
-dqdvi275 divideint 9.9e384 1 -> NaN Division_impossible
-dqdvi276 divideint 9.99e384 1 -> NaN Division_impossible
-dqdvi277 divideint 9.999999999999999e384 1 -> NaN Division_impossible
-
-dqdvi280 divideint 0.1 9e-383 -> NaN Division_impossible
-dqdvi281 divideint 0.1 99e-383 -> NaN Division_impossible
-dqdvi282 divideint 0.1 999e-383 -> NaN Division_impossible
-dqdvi283 divideint 0.1 9e-382 -> NaN Division_impossible
-dqdvi284 divideint 0.1 99e-382 -> NaN Division_impossible
-
--- GD edge cases: lhs smaller than rhs but more digits
-dqdvi301 divideint 0.9 2 -> 0
-dqdvi302 divideint 0.9 2.0 -> 0
-dqdvi303 divideint 0.9 2.1 -> 0
-dqdvi304 divideint 0.9 2.00 -> 0
-dqdvi305 divideint 0.9 2.01 -> 0
-dqdvi306 divideint 0.12 1 -> 0
-dqdvi307 divideint 0.12 1.0 -> 0
-dqdvi308 divideint 0.12 1.00 -> 0
-dqdvi309 divideint 0.12 1.0 -> 0
-dqdvi310 divideint 0.12 1.00 -> 0
-dqdvi311 divideint 0.12 2 -> 0
-dqdvi312 divideint 0.12 2.0 -> 0
-dqdvi313 divideint 0.12 2.1 -> 0
-dqdvi314 divideint 0.12 2.00 -> 0
-dqdvi315 divideint 0.12 2.01 -> 0
-
--- edge cases of impossible
-dqdvi330 divideint 1234567987654321987654321890123456 10 -> 123456798765432198765432189012345
-dqdvi331 divideint 1234567987654321987654321890123456 1 -> 1234567987654321987654321890123456
-dqdvi332 divideint 1234567987654321987654321890123456 0.1 -> NaN Division_impossible
-dqdvi333 divideint 1234567987654321987654321890123456 0.01 -> NaN Division_impossible
-
--- overflow and underflow tests [from divide]
-dqdvi1051 divideint 1e+277 1e-311 -> NaN Division_impossible
-dqdvi1052 divideint 1e+277 -1e-311 -> NaN Division_impossible
-dqdvi1053 divideint -1e+277 1e-311 -> NaN Division_impossible
-dqdvi1054 divideint -1e+277 -1e-311 -> NaN Division_impossible
-dqdvi1055 divideint 1e-277 1e+311 -> 0
-dqdvi1056 divideint 1e-277 -1e+311 -> -0
-dqdvi1057 divideint -1e-277 1e+311 -> -0
-dqdvi1058 divideint -1e-277 -1e+311 -> 0
-
--- 'subnormal' boundary (all hard underflow or overflow in base arithemtic)
-dqdvi1060 divideint 1e-291 1e+101 -> 0
-dqdvi1061 divideint 1e-291 1e+102 -> 0
-dqdvi1062 divideint 1e-291 1e+103 -> 0
-dqdvi1063 divideint 1e-291 1e+104 -> 0
-dqdvi1064 divideint 1e-291 1e+105 -> 0
-dqdvi1065 divideint 1e-291 1e+106 -> 0
-dqdvi1066 divideint 1e-291 1e+107 -> 0
-dqdvi1067 divideint 1e-291 1e+108 -> 0
-dqdvi1068 divideint 1e-291 1e+109 -> 0
-dqdvi1069 divideint 1e-291 1e+110 -> 0
-
-dqdvi1101 divideint 1.0000E-394 1 -> 0
-dqdvi1102 divideint 1.000E-394 1e+1 -> 0
-dqdvi1103 divideint 1.00E-394 1e+2 -> 0
-
-dqdvi1118 divideint 1E-394 1e+4 -> 0
-dqdvi1119 divideint 3E-394 -1e+5 -> -0
-dqdvi1120 divideint 5E-394 1e+5 -> 0
-
-dqdvi1124 divideint 1E-394 -1e+4 -> -0
-dqdvi1130 divideint 3.0E-394 -1e+5 -> -0
-
-dqdvi1131 divideint 1.0E-199 1e+200 -> 0
-dqdvi1132 divideint 1.0E-199 1e+199 -> 0
-dqdvi1133 divideint 1.0E-199 1e+198 -> 0
-dqdvi1134 divideint 2.0E-199 2e+198 -> 0
-dqdvi1135 divideint 4.0E-199 4e+198 -> 0
-
--- long operand checks
-dqdvi401 divideint 12345678000 100 -> 123456780
-dqdvi402 divideint 1 12345678000 -> 0
-dqdvi403 divideint 1234567800 10 -> 123456780
-dqdvi404 divideint 1 1234567800 -> 0
-dqdvi405 divideint 1234567890 10 -> 123456789
-dqdvi406 divideint 1 1234567890 -> 0
-dqdvi407 divideint 1234567891 10 -> 123456789
-dqdvi408 divideint 1 1234567891 -> 0
-dqdvi409 divideint 12345678901 100 -> 123456789
-dqdvi410 divideint 1 12345678901 -> 0
-dqdvi411 divideint 1234567896 10 -> 123456789
-dqdvi412 divideint 1 1234567896 -> 0
-dqdvi413 divideint 12345678948 100 -> 123456789
-dqdvi414 divideint 12345678949 100 -> 123456789
-dqdvi415 divideint 12345678950 100 -> 123456789
-dqdvi416 divideint 12345678951 100 -> 123456789
-dqdvi417 divideint 12345678999 100 -> 123456789
-dqdvi441 divideint 12345678000 1 -> 12345678000
-dqdvi442 divideint 1 12345678000 -> 0
-dqdvi443 divideint 1234567800 1 -> 1234567800
-dqdvi444 divideint 1 1234567800 -> 0
-dqdvi445 divideint 1234567890 1 -> 1234567890
-dqdvi446 divideint 1 1234567890 -> 0
-dqdvi447 divideint 1234567891 1 -> 1234567891
-dqdvi448 divideint 1 1234567891 -> 0
-dqdvi449 divideint 12345678901 1 -> 12345678901
-dqdvi450 divideint 1 12345678901 -> 0
-dqdvi451 divideint 1234567896 1 -> 1234567896
-dqdvi452 divideint 1 1234567896 -> 0
-
--- more zeros, etc.
-dqdvi531 divideint 5.00 1E-3 -> 5000
-dqdvi532 divideint 00.00 0.000 -> NaN Division_undefined
-dqdvi533 divideint 00.00 0E-3 -> NaN Division_undefined
-dqdvi534 divideint 0 -0 -> NaN Division_undefined
-dqdvi535 divideint -0 0 -> NaN Division_undefined
-dqdvi536 divideint -0 -0 -> NaN Division_undefined
-
-dqdvi541 divideint 0 -1 -> -0
-dqdvi542 divideint -0 -1 -> 0
-dqdvi543 divideint 0 1 -> 0
-dqdvi544 divideint -0 1 -> -0
-dqdvi545 divideint -1 0 -> -Infinity Division_by_zero
-dqdvi546 divideint -1 -0 -> Infinity Division_by_zero
-dqdvi547 divideint 1 0 -> Infinity Division_by_zero
-dqdvi548 divideint 1 -0 -> -Infinity Division_by_zero
-
-dqdvi551 divideint 0.0 -1 -> -0
-dqdvi552 divideint -0.0 -1 -> 0
-dqdvi553 divideint 0.0 1 -> 0
-dqdvi554 divideint -0.0 1 -> -0
-dqdvi555 divideint -1.0 0 -> -Infinity Division_by_zero
-dqdvi556 divideint -1.0 -0 -> Infinity Division_by_zero
-dqdvi557 divideint 1.0 0 -> Infinity Division_by_zero
-dqdvi558 divideint 1.0 -0 -> -Infinity Division_by_zero
-
-dqdvi561 divideint 0 -1.0 -> -0
-dqdvi562 divideint -0 -1.0 -> 0
-dqdvi563 divideint 0 1.0 -> 0
-dqdvi564 divideint -0 1.0 -> -0
-dqdvi565 divideint -1 0.0 -> -Infinity Division_by_zero
-dqdvi566 divideint -1 -0.0 -> Infinity Division_by_zero
-dqdvi567 divideint 1 0.0 -> Infinity Division_by_zero
-dqdvi568 divideint 1 -0.0 -> -Infinity Division_by_zero
-
-dqdvi571 divideint 0.0 -1.0 -> -0
-dqdvi572 divideint -0.0 -1.0 -> 0
-dqdvi573 divideint 0.0 1.0 -> 0
-dqdvi574 divideint -0.0 1.0 -> -0
-dqdvi575 divideint -1.0 0.0 -> -Infinity Division_by_zero
-dqdvi576 divideint -1.0 -0.0 -> Infinity Division_by_zero
-dqdvi577 divideint 1.0 0.0 -> Infinity Division_by_zero
-dqdvi578 divideint 1.0 -0.0 -> -Infinity Division_by_zero
-
--- Specials
-dqdvi580 divideint Inf -Inf -> NaN Invalid_operation
-dqdvi581 divideint Inf -1000 -> -Infinity
-dqdvi582 divideint Inf -1 -> -Infinity
-dqdvi583 divideint Inf -0 -> -Infinity
-dqdvi584 divideint Inf 0 -> Infinity
-dqdvi585 divideint Inf 1 -> Infinity
-dqdvi586 divideint Inf 1000 -> Infinity
-dqdvi587 divideint Inf Inf -> NaN Invalid_operation
-dqdvi588 divideint -1000 Inf -> -0
-dqdvi589 divideint -Inf Inf -> NaN Invalid_operation
-dqdvi590 divideint -1 Inf -> -0
-dqdvi591 divideint -0 Inf -> -0
-dqdvi592 divideint 0 Inf -> 0
-dqdvi593 divideint 1 Inf -> 0
-dqdvi594 divideint 1000 Inf -> 0
-dqdvi595 divideint Inf Inf -> NaN Invalid_operation
-
-dqdvi600 divideint -Inf -Inf -> NaN Invalid_operation
-dqdvi601 divideint -Inf -1000 -> Infinity
-dqdvi602 divideint -Inf -1 -> Infinity
-dqdvi603 divideint -Inf -0 -> Infinity
-dqdvi604 divideint -Inf 0 -> -Infinity
-dqdvi605 divideint -Inf 1 -> -Infinity
-dqdvi606 divideint -Inf 1000 -> -Infinity
-dqdvi607 divideint -Inf Inf -> NaN Invalid_operation
-dqdvi608 divideint -1000 Inf -> -0
-dqdvi609 divideint -Inf -Inf -> NaN Invalid_operation
-dqdvi610 divideint -1 -Inf -> 0
-dqdvi611 divideint -0 -Inf -> 0
-dqdvi612 divideint 0 -Inf -> -0
-dqdvi613 divideint 1 -Inf -> -0
-dqdvi614 divideint 1000 -Inf -> -0
-dqdvi615 divideint Inf -Inf -> NaN Invalid_operation
-
-dqdvi621 divideint NaN -Inf -> NaN
-dqdvi622 divideint NaN -1000 -> NaN
-dqdvi623 divideint NaN -1 -> NaN
-dqdvi624 divideint NaN -0 -> NaN
-dqdvi625 divideint NaN 0 -> NaN
-dqdvi626 divideint NaN 1 -> NaN
-dqdvi627 divideint NaN 1000 -> NaN
-dqdvi628 divideint NaN Inf -> NaN
-dqdvi629 divideint NaN NaN -> NaN
-dqdvi630 divideint -Inf NaN -> NaN
-dqdvi631 divideint -1000 NaN -> NaN
-dqdvi632 divideint -1 NaN -> NaN
-dqdvi633 divideint -0 NaN -> NaN
-dqdvi634 divideint 0 NaN -> NaN
-dqdvi635 divideint 1 NaN -> NaN
-dqdvi636 divideint 1000 NaN -> NaN
-dqdvi637 divideint Inf NaN -> NaN
-
-dqdvi641 divideint sNaN -Inf -> NaN Invalid_operation
-dqdvi642 divideint sNaN -1000 -> NaN Invalid_operation
-dqdvi643 divideint sNaN -1 -> NaN Invalid_operation
-dqdvi644 divideint sNaN -0 -> NaN Invalid_operation
-dqdvi645 divideint sNaN 0 -> NaN Invalid_operation
-dqdvi646 divideint sNaN 1 -> NaN Invalid_operation
-dqdvi647 divideint sNaN 1000 -> NaN Invalid_operation
-dqdvi648 divideint sNaN NaN -> NaN Invalid_operation
-dqdvi649 divideint sNaN sNaN -> NaN Invalid_operation
-dqdvi650 divideint NaN sNaN -> NaN Invalid_operation
-dqdvi651 divideint -Inf sNaN -> NaN Invalid_operation
-dqdvi652 divideint -1000 sNaN -> NaN Invalid_operation
-dqdvi653 divideint -1 sNaN -> NaN Invalid_operation
-dqdvi654 divideint -0 sNaN -> NaN Invalid_operation
-dqdvi655 divideint 0 sNaN -> NaN Invalid_operation
-dqdvi656 divideint 1 sNaN -> NaN Invalid_operation
-dqdvi657 divideint 1000 sNaN -> NaN Invalid_operation
-dqdvi658 divideint Inf sNaN -> NaN Invalid_operation
-dqdvi659 divideint NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-dqdvi661 divideint NaN9 -Inf -> NaN9
-dqdvi662 divideint NaN8 1000 -> NaN8
-dqdvi663 divideint NaN7 Inf -> NaN7
-dqdvi664 divideint -NaN6 NaN5 -> -NaN6
-dqdvi665 divideint -Inf NaN4 -> NaN4
-dqdvi666 divideint -1000 NaN3 -> NaN3
-dqdvi667 divideint Inf -NaN2 -> -NaN2
-
-dqdvi671 divideint -sNaN99 -Inf -> -NaN99 Invalid_operation
-dqdvi672 divideint sNaN98 -1 -> NaN98 Invalid_operation
-dqdvi673 divideint sNaN97 NaN -> NaN97 Invalid_operation
-dqdvi674 divideint sNaN96 sNaN94 -> NaN96 Invalid_operation
-dqdvi675 divideint NaN95 sNaN93 -> NaN93 Invalid_operation
-dqdvi676 divideint -Inf sNaN92 -> NaN92 Invalid_operation
-dqdvi677 divideint 0 sNaN91 -> NaN91 Invalid_operation
-dqdvi678 divideint Inf -sNaN90 -> -NaN90 Invalid_operation
-dqdvi679 divideint NaN sNaN89 -> NaN89 Invalid_operation
-
--- Gyuris example
-dqdvi700 divideint 8.336804418094040989630006819881709E-6143 8.336804418094040989630006819889000E-6143 -> 0
-
--- Null tests
-dqdvi900 divideint 10 # -> NaN Invalid_operation
-dqdvi901 divideint # 10 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- dqDivideInt.decTest -- decQuad integer division -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + + +dqdvi001 divideint 1 1 -> 1 +dqdvi002 divideint 2 1 -> 2 +dqdvi003 divideint 1 2 -> 0 +dqdvi004 divideint 2 2 -> 1 +dqdvi005 divideint 0 1 -> 0 +dqdvi006 divideint 0 2 -> 0 +dqdvi007 divideint 1 3 -> 0 +dqdvi008 divideint 2 3 -> 0 +dqdvi009 divideint 3 3 -> 1 + +dqdvi010 divideint 2.4 1 -> 2 +dqdvi011 divideint 2.4 -1 -> -2 +dqdvi012 divideint -2.4 1 -> -2 +dqdvi013 divideint -2.4 -1 -> 2 +dqdvi014 divideint 2.40 1 -> 2 +dqdvi015 divideint 2.400 1 -> 2 +dqdvi016 divideint 2.4 2 -> 1 +dqdvi017 divideint 2.400 2 -> 1 +dqdvi018 divideint 2. 2 -> 1 +dqdvi019 divideint 20 20 -> 1 + +dqdvi020 divideint 187 187 -> 1 +dqdvi021 divideint 5 2 -> 2 +dqdvi022 divideint 5 2.0 -> 2 +dqdvi023 divideint 5 2.000 -> 2 +dqdvi024 divideint 5 0.200 -> 25 +dqdvi025 divideint 5 0.200 -> 25 + +dqdvi030 divideint 1 2 -> 0 +dqdvi031 divideint 1 4 -> 0 +dqdvi032 divideint 1 8 -> 0 +dqdvi033 divideint 1 16 -> 0 +dqdvi034 divideint 1 32 -> 0 +dqdvi035 divideint 1 64 -> 0 +dqdvi040 divideint 1 -2 -> -0 +dqdvi041 divideint 1 -4 -> -0 +dqdvi042 divideint 1 -8 -> -0 +dqdvi043 divideint 1 -16 -> -0 +dqdvi044 divideint 1 -32 -> -0 +dqdvi045 divideint 1 -64 -> -0 +dqdvi050 divideint -1 2 -> -0 +dqdvi051 divideint -1 4 -> -0 +dqdvi052 divideint -1 8 -> -0 +dqdvi053 divideint -1 16 -> -0 +dqdvi054 divideint -1 32 -> -0 +dqdvi055 divideint -1 64 -> -0 +dqdvi060 divideint -1 -2 -> 0 +dqdvi061 divideint -1 -4 -> 0 +dqdvi062 divideint -1 -8 -> 0 +dqdvi063 divideint -1 -16 -> 0 +dqdvi064 divideint -1 -32 -> 0 +dqdvi065 divideint -1 -64 -> 0 + +-- similar with powers of ten +dqdvi160 divideint 1 1 -> 1 +dqdvi161 divideint 1 10 -> 0 +dqdvi162 divideint 1 100 -> 0 +dqdvi163 divideint 1 1000 -> 0 +dqdvi164 divideint 1 10000 -> 0 +dqdvi165 divideint 1 100000 -> 0 +dqdvi166 divideint 1 1000000 -> 0 +dqdvi167 divideint 1 10000000 -> 0 +dqdvi168 divideint 1 100000000 -> 0 +dqdvi170 divideint 1 -1 -> -1 +dqdvi171 divideint 1 -10 -> -0 +dqdvi172 divideint 1 -100 -> -0 +dqdvi173 divideint 1 -1000 -> -0 +dqdvi174 divideint 1 -10000 -> -0 +dqdvi175 divideint 1 -100000 -> -0 +dqdvi176 divideint 1 -1000000 -> -0 +dqdvi177 divideint 1 -10000000 -> -0 +dqdvi178 divideint 1 -100000000 -> -0 +dqdvi180 divideint -1 1 -> -1 +dqdvi181 divideint -1 10 -> -0 +dqdvi182 divideint -1 100 -> -0 +dqdvi183 divideint -1 1000 -> -0 +dqdvi184 divideint -1 10000 -> -0 +dqdvi185 divideint -1 100000 -> -0 +dqdvi186 divideint -1 1000000 -> -0 +dqdvi187 divideint -1 10000000 -> -0 +dqdvi188 divideint -1 100000000 -> -0 +dqdvi190 divideint -1 -1 -> 1 +dqdvi191 divideint -1 -10 -> 0 +dqdvi192 divideint -1 -100 -> 0 +dqdvi193 divideint -1 -1000 -> 0 +dqdvi194 divideint -1 -10000 -> 0 +dqdvi195 divideint -1 -100000 -> 0 +dqdvi196 divideint -1 -1000000 -> 0 +dqdvi197 divideint -1 -10000000 -> 0 +dqdvi198 divideint -1 -100000000 -> 0 + +-- some long operand (at p=9) cases +dqdvi070 divideint 999999999 1 -> 999999999 +dqdvi071 divideint 999999999.4 1 -> 999999999 +dqdvi072 divideint 999999999.5 1 -> 999999999 +dqdvi073 divideint 999999999.9 1 -> 999999999 +dqdvi074 divideint 999999999.999 1 -> 999999999 + +dqdvi090 divideint 0. 1 -> 0 +dqdvi091 divideint .0 1 -> 0 +dqdvi092 divideint 0.00 1 -> 0 +dqdvi093 divideint 0.00E+9 1 -> 0 +dqdvi094 divideint 0.0000E-50 1 -> 0 + +dqdvi100 divideint 1 1 -> 1 +dqdvi101 divideint 1 2 -> 0 +dqdvi102 divideint 1 3 -> 0 +dqdvi103 divideint 1 4 -> 0 +dqdvi104 divideint 1 5 -> 0 +dqdvi105 divideint 1 6 -> 0 +dqdvi106 divideint 1 7 -> 0 +dqdvi107 divideint 1 8 -> 0 +dqdvi108 divideint 1 9 -> 0 +dqdvi109 divideint 1 10 -> 0 +dqdvi110 divideint 1 1 -> 1 +dqdvi111 divideint 2 1 -> 2 +dqdvi112 divideint 3 1 -> 3 +dqdvi113 divideint 4 1 -> 4 +dqdvi114 divideint 5 1 -> 5 +dqdvi115 divideint 6 1 -> 6 +dqdvi116 divideint 7 1 -> 7 +dqdvi117 divideint 8 1 -> 8 +dqdvi118 divideint 9 1 -> 9 +dqdvi119 divideint 10 1 -> 10 + +-- from DiagBigDecimal +dqdvi131 divideint 101.3 1 -> 101 +dqdvi132 divideint 101.0 1 -> 101 +dqdvi133 divideint 101.3 3 -> 33 +dqdvi134 divideint 101.0 3 -> 33 +dqdvi135 divideint 2.4 1 -> 2 +dqdvi136 divideint 2.400 1 -> 2 +dqdvi137 divideint 18 18 -> 1 +dqdvi138 divideint 1120 1000 -> 1 +dqdvi139 divideint 2.4 2 -> 1 +dqdvi140 divideint 2.400 2 -> 1 +dqdvi141 divideint 0.5 2.000 -> 0 +dqdvi142 divideint 8.005 7 -> 1 +dqdvi143 divideint 5 2 -> 2 +dqdvi144 divideint 0 2 -> 0 +dqdvi145 divideint 0.00 2 -> 0 + +-- Others +dqdvi150 divideint 12345 4.999 -> 2469 +dqdvi151 divideint 12345 4.99 -> 2473 +dqdvi152 divideint 12345 4.9 -> 2519 +dqdvi153 divideint 12345 5 -> 2469 +dqdvi154 divideint 12345 5.1 -> 2420 +dqdvi155 divideint 12345 5.01 -> 2464 +dqdvi156 divideint 12345 5.001 -> 2468 +dqdvi157 divideint 101 7.6 -> 13 + +-- Various flavours of divideint by 0 +dqdvi201 divideint 0 0 -> NaN Division_undefined +dqdvi202 divideint 0.0E5 0 -> NaN Division_undefined +dqdvi203 divideint 0.000 0 -> NaN Division_undefined +dqdvi204 divideint 0.0001 0 -> Infinity Division_by_zero +dqdvi205 divideint 0.01 0 -> Infinity Division_by_zero +dqdvi206 divideint 0.1 0 -> Infinity Division_by_zero +dqdvi207 divideint 1 0 -> Infinity Division_by_zero +dqdvi208 divideint 1 0.0 -> Infinity Division_by_zero +dqdvi209 divideint 10 0.0 -> Infinity Division_by_zero +dqdvi210 divideint 1E+100 0.0 -> Infinity Division_by_zero +dqdvi211 divideint 1E+380 0 -> Infinity Division_by_zero +dqdvi214 divideint -0.0001 0 -> -Infinity Division_by_zero +dqdvi215 divideint -0.01 0 -> -Infinity Division_by_zero +dqdvi216 divideint -0.1 0 -> -Infinity Division_by_zero +dqdvi217 divideint -1 0 -> -Infinity Division_by_zero +dqdvi218 divideint -1 0.0 -> -Infinity Division_by_zero +dqdvi219 divideint -10 0.0 -> -Infinity Division_by_zero +dqdvi220 divideint -1E+100 0.0 -> -Infinity Division_by_zero +dqdvi221 divideint -1E+380 0 -> -Infinity Division_by_zero + +-- test some cases that are close to exponent overflow +dqdvi270 divideint 1 1e384 -> 0 +dqdvi271 divideint 1 0.9e384 -> 0 +dqdvi272 divideint 1 0.99e384 -> 0 +dqdvi273 divideint 1 0.9999999999999999e384 -> 0 +dqdvi274 divideint 9e384 1 -> NaN Division_impossible +dqdvi275 divideint 9.9e384 1 -> NaN Division_impossible +dqdvi276 divideint 9.99e384 1 -> NaN Division_impossible +dqdvi277 divideint 9.999999999999999e384 1 -> NaN Division_impossible + +dqdvi280 divideint 0.1 9e-383 -> NaN Division_impossible +dqdvi281 divideint 0.1 99e-383 -> NaN Division_impossible +dqdvi282 divideint 0.1 999e-383 -> NaN Division_impossible +dqdvi283 divideint 0.1 9e-382 -> NaN Division_impossible +dqdvi284 divideint 0.1 99e-382 -> NaN Division_impossible + +-- GD edge cases: lhs smaller than rhs but more digits +dqdvi301 divideint 0.9 2 -> 0 +dqdvi302 divideint 0.9 2.0 -> 0 +dqdvi303 divideint 0.9 2.1 -> 0 +dqdvi304 divideint 0.9 2.00 -> 0 +dqdvi305 divideint 0.9 2.01 -> 0 +dqdvi306 divideint 0.12 1 -> 0 +dqdvi307 divideint 0.12 1.0 -> 0 +dqdvi308 divideint 0.12 1.00 -> 0 +dqdvi309 divideint 0.12 1.0 -> 0 +dqdvi310 divideint 0.12 1.00 -> 0 +dqdvi311 divideint 0.12 2 -> 0 +dqdvi312 divideint 0.12 2.0 -> 0 +dqdvi313 divideint 0.12 2.1 -> 0 +dqdvi314 divideint 0.12 2.00 -> 0 +dqdvi315 divideint 0.12 2.01 -> 0 + +-- edge cases of impossible +dqdvi330 divideint 1234567987654321987654321890123456 10 -> 123456798765432198765432189012345 +dqdvi331 divideint 1234567987654321987654321890123456 1 -> 1234567987654321987654321890123456 +dqdvi332 divideint 1234567987654321987654321890123456 0.1 -> NaN Division_impossible +dqdvi333 divideint 1234567987654321987654321890123456 0.01 -> NaN Division_impossible + +-- overflow and underflow tests [from divide] +dqdvi1051 divideint 1e+277 1e-311 -> NaN Division_impossible +dqdvi1052 divideint 1e+277 -1e-311 -> NaN Division_impossible +dqdvi1053 divideint -1e+277 1e-311 -> NaN Division_impossible +dqdvi1054 divideint -1e+277 -1e-311 -> NaN Division_impossible +dqdvi1055 divideint 1e-277 1e+311 -> 0 +dqdvi1056 divideint 1e-277 -1e+311 -> -0 +dqdvi1057 divideint -1e-277 1e+311 -> -0 +dqdvi1058 divideint -1e-277 -1e+311 -> 0 + +-- 'subnormal' boundary (all hard underflow or overflow in base arithemtic) +dqdvi1060 divideint 1e-291 1e+101 -> 0 +dqdvi1061 divideint 1e-291 1e+102 -> 0 +dqdvi1062 divideint 1e-291 1e+103 -> 0 +dqdvi1063 divideint 1e-291 1e+104 -> 0 +dqdvi1064 divideint 1e-291 1e+105 -> 0 +dqdvi1065 divideint 1e-291 1e+106 -> 0 +dqdvi1066 divideint 1e-291 1e+107 -> 0 +dqdvi1067 divideint 1e-291 1e+108 -> 0 +dqdvi1068 divideint 1e-291 1e+109 -> 0 +dqdvi1069 divideint 1e-291 1e+110 -> 0 + +dqdvi1101 divideint 1.0000E-394 1 -> 0 +dqdvi1102 divideint 1.000E-394 1e+1 -> 0 +dqdvi1103 divideint 1.00E-394 1e+2 -> 0 + +dqdvi1118 divideint 1E-394 1e+4 -> 0 +dqdvi1119 divideint 3E-394 -1e+5 -> -0 +dqdvi1120 divideint 5E-394 1e+5 -> 0 + +dqdvi1124 divideint 1E-394 -1e+4 -> -0 +dqdvi1130 divideint 3.0E-394 -1e+5 -> -0 + +dqdvi1131 divideint 1.0E-199 1e+200 -> 0 +dqdvi1132 divideint 1.0E-199 1e+199 -> 0 +dqdvi1133 divideint 1.0E-199 1e+198 -> 0 +dqdvi1134 divideint 2.0E-199 2e+198 -> 0 +dqdvi1135 divideint 4.0E-199 4e+198 -> 0 + +-- long operand checks +dqdvi401 divideint 12345678000 100 -> 123456780 +dqdvi402 divideint 1 12345678000 -> 0 +dqdvi403 divideint 1234567800 10 -> 123456780 +dqdvi404 divideint 1 1234567800 -> 0 +dqdvi405 divideint 1234567890 10 -> 123456789 +dqdvi406 divideint 1 1234567890 -> 0 +dqdvi407 divideint 1234567891 10 -> 123456789 +dqdvi408 divideint 1 1234567891 -> 0 +dqdvi409 divideint 12345678901 100 -> 123456789 +dqdvi410 divideint 1 12345678901 -> 0 +dqdvi411 divideint 1234567896 10 -> 123456789 +dqdvi412 divideint 1 1234567896 -> 0 +dqdvi413 divideint 12345678948 100 -> 123456789 +dqdvi414 divideint 12345678949 100 -> 123456789 +dqdvi415 divideint 12345678950 100 -> 123456789 +dqdvi416 divideint 12345678951 100 -> 123456789 +dqdvi417 divideint 12345678999 100 -> 123456789 +dqdvi441 divideint 12345678000 1 -> 12345678000 +dqdvi442 divideint 1 12345678000 -> 0 +dqdvi443 divideint 1234567800 1 -> 1234567800 +dqdvi444 divideint 1 1234567800 -> 0 +dqdvi445 divideint 1234567890 1 -> 1234567890 +dqdvi446 divideint 1 1234567890 -> 0 +dqdvi447 divideint 1234567891 1 -> 1234567891 +dqdvi448 divideint 1 1234567891 -> 0 +dqdvi449 divideint 12345678901 1 -> 12345678901 +dqdvi450 divideint 1 12345678901 -> 0 +dqdvi451 divideint 1234567896 1 -> 1234567896 +dqdvi452 divideint 1 1234567896 -> 0 + +-- more zeros, etc. +dqdvi531 divideint 5.00 1E-3 -> 5000 +dqdvi532 divideint 00.00 0.000 -> NaN Division_undefined +dqdvi533 divideint 00.00 0E-3 -> NaN Division_undefined +dqdvi534 divideint 0 -0 -> NaN Division_undefined +dqdvi535 divideint -0 0 -> NaN Division_undefined +dqdvi536 divideint -0 -0 -> NaN Division_undefined + +dqdvi541 divideint 0 -1 -> -0 +dqdvi542 divideint -0 -1 -> 0 +dqdvi543 divideint 0 1 -> 0 +dqdvi544 divideint -0 1 -> -0 +dqdvi545 divideint -1 0 -> -Infinity Division_by_zero +dqdvi546 divideint -1 -0 -> Infinity Division_by_zero +dqdvi547 divideint 1 0 -> Infinity Division_by_zero +dqdvi548 divideint 1 -0 -> -Infinity Division_by_zero + +dqdvi551 divideint 0.0 -1 -> -0 +dqdvi552 divideint -0.0 -1 -> 0 +dqdvi553 divideint 0.0 1 -> 0 +dqdvi554 divideint -0.0 1 -> -0 +dqdvi555 divideint -1.0 0 -> -Infinity Division_by_zero +dqdvi556 divideint -1.0 -0 -> Infinity Division_by_zero +dqdvi557 divideint 1.0 0 -> Infinity Division_by_zero +dqdvi558 divideint 1.0 -0 -> -Infinity Division_by_zero + +dqdvi561 divideint 0 -1.0 -> -0 +dqdvi562 divideint -0 -1.0 -> 0 +dqdvi563 divideint 0 1.0 -> 0 +dqdvi564 divideint -0 1.0 -> -0 +dqdvi565 divideint -1 0.0 -> -Infinity Division_by_zero +dqdvi566 divideint -1 -0.0 -> Infinity Division_by_zero +dqdvi567 divideint 1 0.0 -> Infinity Division_by_zero +dqdvi568 divideint 1 -0.0 -> -Infinity Division_by_zero + +dqdvi571 divideint 0.0 -1.0 -> -0 +dqdvi572 divideint -0.0 -1.0 -> 0 +dqdvi573 divideint 0.0 1.0 -> 0 +dqdvi574 divideint -0.0 1.0 -> -0 +dqdvi575 divideint -1.0 0.0 -> -Infinity Division_by_zero +dqdvi576 divideint -1.0 -0.0 -> Infinity Division_by_zero +dqdvi577 divideint 1.0 0.0 -> Infinity Division_by_zero +dqdvi578 divideint 1.0 -0.0 -> -Infinity Division_by_zero + +-- Specials +dqdvi580 divideint Inf -Inf -> NaN Invalid_operation +dqdvi581 divideint Inf -1000 -> -Infinity +dqdvi582 divideint Inf -1 -> -Infinity +dqdvi583 divideint Inf -0 -> -Infinity +dqdvi584 divideint Inf 0 -> Infinity +dqdvi585 divideint Inf 1 -> Infinity +dqdvi586 divideint Inf 1000 -> Infinity +dqdvi587 divideint Inf Inf -> NaN Invalid_operation +dqdvi588 divideint -1000 Inf -> -0 +dqdvi589 divideint -Inf Inf -> NaN Invalid_operation +dqdvi590 divideint -1 Inf -> -0 +dqdvi591 divideint -0 Inf -> -0 +dqdvi592 divideint 0 Inf -> 0 +dqdvi593 divideint 1 Inf -> 0 +dqdvi594 divideint 1000 Inf -> 0 +dqdvi595 divideint Inf Inf -> NaN Invalid_operation + +dqdvi600 divideint -Inf -Inf -> NaN Invalid_operation +dqdvi601 divideint -Inf -1000 -> Infinity +dqdvi602 divideint -Inf -1 -> Infinity +dqdvi603 divideint -Inf -0 -> Infinity +dqdvi604 divideint -Inf 0 -> -Infinity +dqdvi605 divideint -Inf 1 -> -Infinity +dqdvi606 divideint -Inf 1000 -> -Infinity +dqdvi607 divideint -Inf Inf -> NaN Invalid_operation +dqdvi608 divideint -1000 Inf -> -0 +dqdvi609 divideint -Inf -Inf -> NaN Invalid_operation +dqdvi610 divideint -1 -Inf -> 0 +dqdvi611 divideint -0 -Inf -> 0 +dqdvi612 divideint 0 -Inf -> -0 +dqdvi613 divideint 1 -Inf -> -0 +dqdvi614 divideint 1000 -Inf -> -0 +dqdvi615 divideint Inf -Inf -> NaN Invalid_operation + +dqdvi621 divideint NaN -Inf -> NaN +dqdvi622 divideint NaN -1000 -> NaN +dqdvi623 divideint NaN -1 -> NaN +dqdvi624 divideint NaN -0 -> NaN +dqdvi625 divideint NaN 0 -> NaN +dqdvi626 divideint NaN 1 -> NaN +dqdvi627 divideint NaN 1000 -> NaN +dqdvi628 divideint NaN Inf -> NaN +dqdvi629 divideint NaN NaN -> NaN +dqdvi630 divideint -Inf NaN -> NaN +dqdvi631 divideint -1000 NaN -> NaN +dqdvi632 divideint -1 NaN -> NaN +dqdvi633 divideint -0 NaN -> NaN +dqdvi634 divideint 0 NaN -> NaN +dqdvi635 divideint 1 NaN -> NaN +dqdvi636 divideint 1000 NaN -> NaN +dqdvi637 divideint Inf NaN -> NaN + +dqdvi641 divideint sNaN -Inf -> NaN Invalid_operation +dqdvi642 divideint sNaN -1000 -> NaN Invalid_operation +dqdvi643 divideint sNaN -1 -> NaN Invalid_operation +dqdvi644 divideint sNaN -0 -> NaN Invalid_operation +dqdvi645 divideint sNaN 0 -> NaN Invalid_operation +dqdvi646 divideint sNaN 1 -> NaN Invalid_operation +dqdvi647 divideint sNaN 1000 -> NaN Invalid_operation +dqdvi648 divideint sNaN NaN -> NaN Invalid_operation +dqdvi649 divideint sNaN sNaN -> NaN Invalid_operation +dqdvi650 divideint NaN sNaN -> NaN Invalid_operation +dqdvi651 divideint -Inf sNaN -> NaN Invalid_operation +dqdvi652 divideint -1000 sNaN -> NaN Invalid_operation +dqdvi653 divideint -1 sNaN -> NaN Invalid_operation +dqdvi654 divideint -0 sNaN -> NaN Invalid_operation +dqdvi655 divideint 0 sNaN -> NaN Invalid_operation +dqdvi656 divideint 1 sNaN -> NaN Invalid_operation +dqdvi657 divideint 1000 sNaN -> NaN Invalid_operation +dqdvi658 divideint Inf sNaN -> NaN Invalid_operation +dqdvi659 divideint NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +dqdvi661 divideint NaN9 -Inf -> NaN9 +dqdvi662 divideint NaN8 1000 -> NaN8 +dqdvi663 divideint NaN7 Inf -> NaN7 +dqdvi664 divideint -NaN6 NaN5 -> -NaN6 +dqdvi665 divideint -Inf NaN4 -> NaN4 +dqdvi666 divideint -1000 NaN3 -> NaN3 +dqdvi667 divideint Inf -NaN2 -> -NaN2 + +dqdvi671 divideint -sNaN99 -Inf -> -NaN99 Invalid_operation +dqdvi672 divideint sNaN98 -1 -> NaN98 Invalid_operation +dqdvi673 divideint sNaN97 NaN -> NaN97 Invalid_operation +dqdvi674 divideint sNaN96 sNaN94 -> NaN96 Invalid_operation +dqdvi675 divideint NaN95 sNaN93 -> NaN93 Invalid_operation +dqdvi676 divideint -Inf sNaN92 -> NaN92 Invalid_operation +dqdvi677 divideint 0 sNaN91 -> NaN91 Invalid_operation +dqdvi678 divideint Inf -sNaN90 -> -NaN90 Invalid_operation +dqdvi679 divideint NaN sNaN89 -> NaN89 Invalid_operation + +-- Gyuris example +dqdvi700 divideint 8.336804418094040989630006819881709E-6143 8.336804418094040989630006819889000E-6143 -> 0 + +-- Null tests +dqdvi900 divideint 10 # -> NaN Invalid_operation +dqdvi901 divideint # 10 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/dqEncode.decTest b/Lib/test/decimaltestdata/dqEncode.decTest index 8c5d7b9b30..49edf5b280 100644 --- a/Lib/test/decimaltestdata/dqEncode.decTest +++ b/Lib/test/decimaltestdata/dqEncode.decTest @@ -1,477 +1,477 @@ -------------------------------------------------------------------------
--- dqEncode.decTest -- decimal sixteen-byte format testcases --
--- Copyright (c) IBM Corporation, 2000, 2008. 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 --
-------------------------------------------------------------------------
--- [Previously called decimal128.decTest]
-version: 2.59
-
--- This set of tests is for the sixteen-byte concrete representation.
--- Its characteristics are:
---
--- 1 bit sign
--- 5 bits combination field
--- 12 bits exponent continuation
--- 110 bits coefficient continuation
---
--- Total exponent length 14 bits
--- Total coefficient length 114 bits (34 digits)
---
--- Elimit = 12287 (maximum encoded exponent)
--- Emax = 6144 (largest exponent value)
--- Emin = -6143 (smallest exponent value)
--- bias = 6176 (subtracted from encoded exponent) = -Etiny
-
--- The testcases here have only exactly representable data on the
--- 'left-hand-side'; rounding from strings is tested in 'base'
--- testcase groups.
-
-extended: 1
-clamp: 1
-precision: 34
-rounding: half_up
-maxExponent: 6144
-minExponent: -6143
-
--- General testcases
--- (mostly derived from the Strawman 4 document and examples)
-decq001 apply #A20780000000000000000000000003D0 -> -7.50
-decq002 apply -7.50 -> #A20780000000000000000000000003D0
--- derivative canonical plain strings
-decq003 apply #A20840000000000000000000000003D0 -> -7.50E+3
-decq004 apply -7.50E+3 -> #A20840000000000000000000000003D0
-decq005 apply #A20800000000000000000000000003D0 -> -750
-decq006 apply -750 -> #A20800000000000000000000000003D0
-decq007 apply #A207c0000000000000000000000003D0 -> -75.0
-decq008 apply -75.0 -> #A207c0000000000000000000000003D0
-decq009 apply #A20740000000000000000000000003D0 -> -0.750
-decq010 apply -0.750 -> #A20740000000000000000000000003D0
-decq011 apply #A20700000000000000000000000003D0 -> -0.0750
-decq012 apply -0.0750 -> #A20700000000000000000000000003D0
-decq013 apply #A20680000000000000000000000003D0 -> -0.000750
-decq014 apply -0.000750 -> #A20680000000000000000000000003D0
-decq015 apply #A20600000000000000000000000003D0 -> -0.00000750
-decq016 apply -0.00000750 -> #A20600000000000000000000000003D0
-decq017 apply #A205c0000000000000000000000003D0 -> -7.50E-7
-decq018 apply -7.50E-7 -> #A205c0000000000000000000000003D0
-
--- Normality
-decq020 apply 1234567890123456789012345678901234 -> #2608134b9c1e28e56f3c127177823534
-decq021 apply -1234567890123456789012345678901234 -> #a608134b9c1e28e56f3c127177823534
-decq022 apply 1111111111111111111111111111111111 -> #26080912449124491244912449124491
-
--- Nmax and similar
-decq031 apply 9.999999999999999999999999999999999E+6144 -> #77ffcff3fcff3fcff3fcff3fcff3fcff
-decq032 apply #77ffcff3fcff3fcff3fcff3fcff3fcff -> 9.999999999999999999999999999999999E+6144
-decq033 apply 1.234567890123456789012345678901234E+6144 -> #47ffd34b9c1e28e56f3c127177823534
-decq034 apply #47ffd34b9c1e28e56f3c127177823534 -> 1.234567890123456789012345678901234E+6144
--- fold-downs (more below)
-decq035 apply 1.23E+6144 -> #47ffd300000000000000000000000000 Clamped
-decq036 apply #47ffd300000000000000000000000000 -> 1.230000000000000000000000000000000E+6144
-decq037 apply 1E+6144 -> #47ffc000000000000000000000000000 Clamped
-decq038 apply #47ffc000000000000000000000000000 -> 1.000000000000000000000000000000000E+6144
-
-decq051 apply 12345 -> #220800000000000000000000000049c5
-decq052 apply #220800000000000000000000000049c5 -> 12345
-decq053 apply 1234 -> #22080000000000000000000000000534
-decq054 apply #22080000000000000000000000000534 -> 1234
-decq055 apply 123 -> #220800000000000000000000000000a3
-decq056 apply #220800000000000000000000000000a3 -> 123
-decq057 apply 12 -> #22080000000000000000000000000012
-decq058 apply #22080000000000000000000000000012 -> 12
-decq059 apply 1 -> #22080000000000000000000000000001
-decq060 apply #22080000000000000000000000000001 -> 1
-decq061 apply 1.23 -> #220780000000000000000000000000a3
-decq062 apply #220780000000000000000000000000a3 -> 1.23
-decq063 apply 123.45 -> #220780000000000000000000000049c5
-decq064 apply #220780000000000000000000000049c5 -> 123.45
-
--- Nmin and below
-decq071 apply 1E-6143 -> #00084000000000000000000000000001
-decq072 apply #00084000000000000000000000000001 -> 1E-6143
-decq073 apply 1.000000000000000000000000000000000E-6143 -> #04000000000000000000000000000000
-decq074 apply #04000000000000000000000000000000 -> 1.000000000000000000000000000000000E-6143
-decq075 apply 1.000000000000000000000000000000001E-6143 -> #04000000000000000000000000000001
-decq076 apply #04000000000000000000000000000001 -> 1.000000000000000000000000000000001E-6143
-
-decq077 apply 0.100000000000000000000000000000000E-6143 -> #00000800000000000000000000000000 Subnormal
-decq078 apply #00000800000000000000000000000000 -> 1.00000000000000000000000000000000E-6144 Subnormal
-decq079 apply 0.000000000000000000000000000000010E-6143 -> #00000000000000000000000000000010 Subnormal
-decq080 apply #00000000000000000000000000000010 -> 1.0E-6175 Subnormal
-decq081 apply 0.00000000000000000000000000000001E-6143 -> #00004000000000000000000000000001 Subnormal
-decq082 apply #00004000000000000000000000000001 -> 1E-6175 Subnormal
-decq083 apply 0.000000000000000000000000000000001E-6143 -> #00000000000000000000000000000001 Subnormal
-decq084 apply #00000000000000000000000000000001 -> 1E-6176 Subnormal
-
--- underflows cannot be tested for simple copies, check edge cases
-decq090 apply 1e-6176 -> #00000000000000000000000000000001 Subnormal
-decq100 apply 999999999999999999999999999999999e-6176 -> #00000ff3fcff3fcff3fcff3fcff3fcff Subnormal
-
--- same again, negatives
--- Nmax and similar
-decq122 apply -9.999999999999999999999999999999999E+6144 -> #f7ffcff3fcff3fcff3fcff3fcff3fcff
-decq123 apply #f7ffcff3fcff3fcff3fcff3fcff3fcff -> -9.999999999999999999999999999999999E+6144
-decq124 apply -1.234567890123456789012345678901234E+6144 -> #c7ffd34b9c1e28e56f3c127177823534
-decq125 apply #c7ffd34b9c1e28e56f3c127177823534 -> -1.234567890123456789012345678901234E+6144
--- fold-downs (more below)
-decq130 apply -1.23E+6144 -> #c7ffd300000000000000000000000000 Clamped
-decq131 apply #c7ffd300000000000000000000000000 -> -1.230000000000000000000000000000000E+6144
-decq132 apply -1E+6144 -> #c7ffc000000000000000000000000000 Clamped
-decq133 apply #c7ffc000000000000000000000000000 -> -1.000000000000000000000000000000000E+6144
-
-decq151 apply -12345 -> #a20800000000000000000000000049c5
-decq152 apply #a20800000000000000000000000049c5 -> -12345
-decq153 apply -1234 -> #a2080000000000000000000000000534
-decq154 apply #a2080000000000000000000000000534 -> -1234
-decq155 apply -123 -> #a20800000000000000000000000000a3
-decq156 apply #a20800000000000000000000000000a3 -> -123
-decq157 apply -12 -> #a2080000000000000000000000000012
-decq158 apply #a2080000000000000000000000000012 -> -12
-decq159 apply -1 -> #a2080000000000000000000000000001
-decq160 apply #a2080000000000000000000000000001 -> -1
-decq161 apply -1.23 -> #a20780000000000000000000000000a3
-decq162 apply #a20780000000000000000000000000a3 -> -1.23
-decq163 apply -123.45 -> #a20780000000000000000000000049c5
-decq164 apply #a20780000000000000000000000049c5 -> -123.45
-
--- Nmin and below
-decq171 apply -1E-6143 -> #80084000000000000000000000000001
-decq172 apply #80084000000000000000000000000001 -> -1E-6143
-decq173 apply -1.000000000000000000000000000000000E-6143 -> #84000000000000000000000000000000
-decq174 apply #84000000000000000000000000000000 -> -1.000000000000000000000000000000000E-6143
-decq175 apply -1.000000000000000000000000000000001E-6143 -> #84000000000000000000000000000001
-decq176 apply #84000000000000000000000000000001 -> -1.000000000000000000000000000000001E-6143
-
-decq177 apply -0.100000000000000000000000000000000E-6143 -> #80000800000000000000000000000000 Subnormal
-decq178 apply #80000800000000000000000000000000 -> -1.00000000000000000000000000000000E-6144 Subnormal
-decq179 apply -0.000000000000000000000000000000010E-6143 -> #80000000000000000000000000000010 Subnormal
-decq180 apply #80000000000000000000000000000010 -> -1.0E-6175 Subnormal
-decq181 apply -0.00000000000000000000000000000001E-6143 -> #80004000000000000000000000000001 Subnormal
-decq182 apply #80004000000000000000000000000001 -> -1E-6175 Subnormal
-decq183 apply -0.000000000000000000000000000000001E-6143 -> #80000000000000000000000000000001 Subnormal
-decq184 apply #80000000000000000000000000000001 -> -1E-6176 Subnormal
-
--- underflow edge cases
-decq190 apply -1e-6176 -> #80000000000000000000000000000001 Subnormal
-decq200 apply -999999999999999999999999999999999e-6176 -> #80000ff3fcff3fcff3fcff3fcff3fcff Subnormal
-
--- zeros
-decq400 apply 0E-8000 -> #00000000000000000000000000000000 Clamped
-decq401 apply 0E-6177 -> #00000000000000000000000000000000 Clamped
-decq402 apply 0E-6176 -> #00000000000000000000000000000000
-decq403 apply #00000000000000000000000000000000 -> 0E-6176
-decq404 apply 0.000000000000000000000000000000000E-6143 -> #00000000000000000000000000000000
-decq405 apply #00000000000000000000000000000000 -> 0E-6176
-decq406 apply 0E-2 -> #22078000000000000000000000000000
-decq407 apply #22078000000000000000000000000000 -> 0.00
-decq408 apply 0 -> #22080000000000000000000000000000
-decq409 apply #22080000000000000000000000000000 -> 0
-decq410 apply 0E+3 -> #2208c000000000000000000000000000
-decq411 apply #2208c000000000000000000000000000 -> 0E+3
-decq412 apply 0E+6111 -> #43ffc000000000000000000000000000
-decq413 apply #43ffc000000000000000000000000000 -> 0E+6111
--- clamped zeros...
-decq414 apply 0E+6112 -> #43ffc000000000000000000000000000 Clamped
-decq415 apply #43ffc000000000000000000000000000 -> 0E+6111
-decq416 apply 0E+6144 -> #43ffc000000000000000000000000000 Clamped
-decq417 apply #43ffc000000000000000000000000000 -> 0E+6111
-decq418 apply 0E+8000 -> #43ffc000000000000000000000000000 Clamped
-decq419 apply #43ffc000000000000000000000000000 -> 0E+6111
-
--- negative zeros
-decq420 apply -0E-8000 -> #80000000000000000000000000000000 Clamped
-decq421 apply -0E-6177 -> #80000000000000000000000000000000 Clamped
-decq422 apply -0E-6176 -> #80000000000000000000000000000000
-decq423 apply #80000000000000000000000000000000 -> -0E-6176
-decq424 apply -0.000000000000000000000000000000000E-6143 -> #80000000000000000000000000000000
-decq425 apply #80000000000000000000000000000000 -> -0E-6176
-decq426 apply -0E-2 -> #a2078000000000000000000000000000
-decq427 apply #a2078000000000000000000000000000 -> -0.00
-decq428 apply -0 -> #a2080000000000000000000000000000
-decq429 apply #a2080000000000000000000000000000 -> -0
-decq430 apply -0E+3 -> #a208c000000000000000000000000000
-decq431 apply #a208c000000000000000000000000000 -> -0E+3
-decq432 apply -0E+6111 -> #c3ffc000000000000000000000000000
-decq433 apply #c3ffc000000000000000000000000000 -> -0E+6111
--- clamped zeros...
-decq434 apply -0E+6112 -> #c3ffc000000000000000000000000000 Clamped
-decq435 apply #c3ffc000000000000000000000000000 -> -0E+6111
-decq436 apply -0E+6144 -> #c3ffc000000000000000000000000000 Clamped
-decq437 apply #c3ffc000000000000000000000000000 -> -0E+6111
-decq438 apply -0E+8000 -> #c3ffc000000000000000000000000000 Clamped
-decq439 apply #c3ffc000000000000000000000000000 -> -0E+6111
-
--- exponent lengths
-decq440 apply #22080000000000000000000000000007 -> 7
-decq441 apply 7 -> #22080000000000000000000000000007
-decq442 apply #220a4000000000000000000000000007 -> 7E+9
-decq443 apply 7E+9 -> #220a4000000000000000000000000007
-decq444 apply #2220c000000000000000000000000007 -> 7E+99
-decq445 apply 7E+99 -> #2220c000000000000000000000000007
-decq446 apply #2301c000000000000000000000000007 -> 7E+999
-decq447 apply 7E+999 -> #2301c000000000000000000000000007
-decq448 apply #43e3c000000000000000000000000007 -> 7E+5999
-decq449 apply 7E+5999 -> #43e3c000000000000000000000000007
-
--- Specials
-decq500 apply Infinity -> #78000000000000000000000000000000
-decq501 apply #78787878787878787878787878787878 -> #78000000000000000000000000000000
-decq502 apply #78000000000000000000000000000000 -> Infinity
-decq503 apply #79797979797979797979797979797979 -> #78000000000000000000000000000000
-decq504 apply #79000000000000000000000000000000 -> Infinity
-decq505 apply #7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a -> #78000000000000000000000000000000
-decq506 apply #7a000000000000000000000000000000 -> Infinity
-decq507 apply #7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b -> #78000000000000000000000000000000
-decq508 apply #7b000000000000000000000000000000 -> Infinity
-
-decq509 apply NaN -> #7c000000000000000000000000000000
-decq510 apply #7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c -> #7c003c7c7c7c7c7c7c7c7c7c7c7c7c7c
-decq511 apply #7c000000000000000000000000000000 -> NaN
-decq512 apply #7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d -> #7c003d7d7d7d7d7d7d7d7d7d7d7d7d7d
-decq513 apply #7d000000000000000000000000000000 -> NaN
-decq514 apply #7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e -> #7e003e7e7c7e7e7e7e7c7e7e7e7e7c7e
-decq515 apply #7e000000000000000000000000000000 -> sNaN
-decq516 apply #7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f -> #7e003f7f7c7f7f7f7f7c7f7f7f7f7c7f
-decq517 apply #7f000000000000000000000000000000 -> sNaN
-decq518 apply #7fffffffffffffffffffffffffffffff -> sNaN999999999999999999999999999999999
-decq519 apply #7fffffffffffffffffffffffffffffff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
-
-decq520 apply -Infinity -> #f8000000000000000000000000000000
-decq521 apply #f8787878787878787878787878787878 -> #f8000000000000000000000000000000
-decq522 apply #f8000000000000000000000000000000 -> -Infinity
-decq523 apply #f9797979797979797979797979797979 -> #f8000000000000000000000000000000
-decq524 apply #f9000000000000000000000000000000 -> -Infinity
-decq525 apply #fa7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a -> #f8000000000000000000000000000000
-decq526 apply #fa000000000000000000000000000000 -> -Infinity
-decq527 apply #fb7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b -> #f8000000000000000000000000000000
-decq528 apply #fb000000000000000000000000000000 -> -Infinity
-
-decq529 apply -NaN -> #fc000000000000000000000000000000
-decq530 apply #fc7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c -> #fc003c7c7c7c7c7c7c7c7c7c7c7c7c7c
-decq531 apply #fc000000000000000000000000000000 -> -NaN
-decq532 apply #fd7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d -> #fc003d7d7d7d7d7d7d7d7d7d7d7d7d7d
-decq533 apply #fd000000000000000000000000000000 -> -NaN
-decq534 apply #fe7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e -> #fe003e7e7c7e7e7e7e7c7e7e7e7e7c7e
-decq535 apply #fe000000000000000000000000000000 -> -sNaN
-decq536 apply #ff7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f -> #fe003f7f7c7f7f7f7f7c7f7f7f7f7c7f
-decq537 apply #ff000000000000000000000000000000 -> -sNaN
-decq538 apply #ffffffffffffffffffffffffffffffff -> -sNaN999999999999999999999999999999999
-decq539 apply #ffffffffffffffffffffffffffffffff -> #fe000ff3fcff3fcff3fcff3fcff3fcff
-
-decq540 apply NaN -> #7c000000000000000000000000000000
-decq541 apply NaN0 -> #7c000000000000000000000000000000
-decq542 apply NaN1 -> #7c000000000000000000000000000001
-decq543 apply NaN12 -> #7c000000000000000000000000000012
-decq544 apply NaN79 -> #7c000000000000000000000000000079
-decq545 apply NaN12345 -> #7c0000000000000000000000000049c5
-decq546 apply NaN123456 -> #7c000000000000000000000000028e56
-decq547 apply NaN799799 -> #7c0000000000000000000000000f7fdf
-decq548 apply NaN799799799799799799799799799799799 -> #7c003dff7fdff7fdff7fdff7fdff7fdf
-decq549 apply NaN999999999999999999999999999999999 -> #7c000ff3fcff3fcff3fcff3fcff3fcff
-decq550 apply 9999999999999999999999999999999999 -> #6e080ff3fcff3fcff3fcff3fcff3fcff
-
--- fold-down full sequence
-decq601 apply 1E+6144 -> #47ffc000000000000000000000000000 Clamped
-decq602 apply #47ffc000000000000000000000000000 -> 1.000000000000000000000000000000000E+6144
-decq603 apply 1E+6143 -> #43ffc800000000000000000000000000 Clamped
-decq604 apply #43ffc800000000000000000000000000 -> 1.00000000000000000000000000000000E+6143
-decq605 apply 1E+6142 -> #43ffc100000000000000000000000000 Clamped
-decq606 apply #43ffc100000000000000000000000000 -> 1.0000000000000000000000000000000E+6142
-decq607 apply 1E+6141 -> #43ffc010000000000000000000000000 Clamped
-decq608 apply #43ffc010000000000000000000000000 -> 1.000000000000000000000000000000E+6141
-decq609 apply 1E+6140 -> #43ffc002000000000000000000000000 Clamped
-decq610 apply #43ffc002000000000000000000000000 -> 1.00000000000000000000000000000E+6140
-decq611 apply 1E+6139 -> #43ffc000400000000000000000000000 Clamped
-decq612 apply #43ffc000400000000000000000000000 -> 1.0000000000000000000000000000E+6139
-decq613 apply 1E+6138 -> #43ffc000040000000000000000000000 Clamped
-decq614 apply #43ffc000040000000000000000000000 -> 1.000000000000000000000000000E+6138
-decq615 apply 1E+6137 -> #43ffc000008000000000000000000000 Clamped
-decq616 apply #43ffc000008000000000000000000000 -> 1.00000000000000000000000000E+6137
-decq617 apply 1E+6136 -> #43ffc000001000000000000000000000 Clamped
-decq618 apply #43ffc000001000000000000000000000 -> 1.0000000000000000000000000E+6136
-decq619 apply 1E+6135 -> #43ffc000000100000000000000000000 Clamped
-decq620 apply #43ffc000000100000000000000000000 -> 1.000000000000000000000000E+6135
-decq621 apply 1E+6134 -> #43ffc000000020000000000000000000 Clamped
-decq622 apply #43ffc000000020000000000000000000 -> 1.00000000000000000000000E+6134
-decq623 apply 1E+6133 -> #43ffc000000004000000000000000000 Clamped
-decq624 apply #43ffc000000004000000000000000000 -> 1.0000000000000000000000E+6133
-decq625 apply 1E+6132 -> #43ffc000000000400000000000000000 Clamped
-decq626 apply #43ffc000000000400000000000000000 -> 1.000000000000000000000E+6132
-decq627 apply 1E+6131 -> #43ffc000000000080000000000000000 Clamped
-decq628 apply #43ffc000000000080000000000000000 -> 1.00000000000000000000E+6131
-decq629 apply 1E+6130 -> #43ffc000000000010000000000000000 Clamped
-decq630 apply #43ffc000000000010000000000000000 -> 1.0000000000000000000E+6130
-decq631 apply 1E+6129 -> #43ffc000000000001000000000000000 Clamped
-decq632 apply #43ffc000000000001000000000000000 -> 1.000000000000000000E+6129
-decq633 apply 1E+6128 -> #43ffc000000000000200000000000000 Clamped
-decq634 apply #43ffc000000000000200000000000000 -> 1.00000000000000000E+6128
-decq635 apply 1E+6127 -> #43ffc000000000000040000000000000 Clamped
-decq636 apply #43ffc000000000000040000000000000 -> 1.0000000000000000E+6127
-decq637 apply 1E+6126 -> #43ffc000000000000004000000000000 Clamped
-decq638 apply #43ffc000000000000004000000000000 -> 1.000000000000000E+6126
-decq639 apply 1E+6125 -> #43ffc000000000000000800000000000 Clamped
-decq640 apply #43ffc000000000000000800000000000 -> 1.00000000000000E+6125
-decq641 apply 1E+6124 -> #43ffc000000000000000100000000000 Clamped
-decq642 apply #43ffc000000000000000100000000000 -> 1.0000000000000E+6124
-decq643 apply 1E+6123 -> #43ffc000000000000000010000000000 Clamped
-decq644 apply #43ffc000000000000000010000000000 -> 1.000000000000E+6123
-decq645 apply 1E+6122 -> #43ffc000000000000000002000000000 Clamped
-decq646 apply #43ffc000000000000000002000000000 -> 1.00000000000E+6122
-decq647 apply 1E+6121 -> #43ffc000000000000000000400000000 Clamped
-decq648 apply #43ffc000000000000000000400000000 -> 1.0000000000E+6121
-decq649 apply 1E+6120 -> #43ffc000000000000000000040000000 Clamped
-decq650 apply #43ffc000000000000000000040000000 -> 1.000000000E+6120
-decq651 apply 1E+6119 -> #43ffc000000000000000000008000000 Clamped
-decq652 apply #43ffc000000000000000000008000000 -> 1.00000000E+6119
-decq653 apply 1E+6118 -> #43ffc000000000000000000001000000 Clamped
-decq654 apply #43ffc000000000000000000001000000 -> 1.0000000E+6118
-decq655 apply 1E+6117 -> #43ffc000000000000000000000100000 Clamped
-decq656 apply #43ffc000000000000000000000100000 -> 1.000000E+6117
-decq657 apply 1E+6116 -> #43ffc000000000000000000000020000 Clamped
-decq658 apply #43ffc000000000000000000000020000 -> 1.00000E+6116
-decq659 apply 1E+6115 -> #43ffc000000000000000000000004000 Clamped
-decq660 apply #43ffc000000000000000000000004000 -> 1.0000E+6115
-decq661 apply 1E+6114 -> #43ffc000000000000000000000000400 Clamped
-decq662 apply #43ffc000000000000000000000000400 -> 1.000E+6114
-decq663 apply 1E+6113 -> #43ffc000000000000000000000000080 Clamped
-decq664 apply #43ffc000000000000000000000000080 -> 1.00E+6113
-decq665 apply 1E+6112 -> #43ffc000000000000000000000000010 Clamped
-decq666 apply #43ffc000000000000000000000000010 -> 1.0E+6112
-decq667 apply 1E+6111 -> #43ffc000000000000000000000000001
-decq668 apply #43ffc000000000000000000000000001 -> 1E+6111
-decq669 apply 1E+6110 -> #43ff8000000000000000000000000001
-decq670 apply #43ff8000000000000000000000000001 -> 1E+6110
-
--- Selected DPD codes
-decq700 apply #22080000000000000000000000000000 -> 0
-decq701 apply #22080000000000000000000000000009 -> 9
-decq702 apply #22080000000000000000000000000010 -> 10
-decq703 apply #22080000000000000000000000000019 -> 19
-decq704 apply #22080000000000000000000000000020 -> 20
-decq705 apply #22080000000000000000000000000029 -> 29
-decq706 apply #22080000000000000000000000000030 -> 30
-decq707 apply #22080000000000000000000000000039 -> 39
-decq708 apply #22080000000000000000000000000040 -> 40
-decq709 apply #22080000000000000000000000000049 -> 49
-decq710 apply #22080000000000000000000000000050 -> 50
-decq711 apply #22080000000000000000000000000059 -> 59
-decq712 apply #22080000000000000000000000000060 -> 60
-decq713 apply #22080000000000000000000000000069 -> 69
-decq714 apply #22080000000000000000000000000070 -> 70
-decq715 apply #22080000000000000000000000000071 -> 71
-decq716 apply #22080000000000000000000000000072 -> 72
-decq717 apply #22080000000000000000000000000073 -> 73
-decq718 apply #22080000000000000000000000000074 -> 74
-decq719 apply #22080000000000000000000000000075 -> 75
-decq720 apply #22080000000000000000000000000076 -> 76
-decq721 apply #22080000000000000000000000000077 -> 77
-decq722 apply #22080000000000000000000000000078 -> 78
-decq723 apply #22080000000000000000000000000079 -> 79
-
-decq730 apply #2208000000000000000000000000029e -> 994
-decq731 apply #2208000000000000000000000000029f -> 995
-decq732 apply #220800000000000000000000000002a0 -> 520
-decq733 apply #220800000000000000000000000002a1 -> 521
-
--- DPD: one of each of the huffman groups
-decq740 apply #220800000000000000000000000003f7 -> 777
-decq741 apply #220800000000000000000000000003f8 -> 778
-decq742 apply #220800000000000000000000000003eb -> 787
-decq743 apply #2208000000000000000000000000037d -> 877
-decq744 apply #2208000000000000000000000000039f -> 997
-decq745 apply #220800000000000000000000000003bf -> 979
-decq746 apply #220800000000000000000000000003df -> 799
-decq747 apply #2208000000000000000000000000006e -> 888
-
-
--- DPD all-highs cases (includes the 24 redundant codes)
-decq750 apply #2208000000000000000000000000006e -> 888
-decq751 apply #2208000000000000000000000000016e -> 888
-decq752 apply #2208000000000000000000000000026e -> 888
-decq753 apply #2208000000000000000000000000036e -> 888
-decq754 apply #2208000000000000000000000000006f -> 889
-decq755 apply #2208000000000000000000000000016f -> 889
-decq756 apply #2208000000000000000000000000026f -> 889
-decq757 apply #2208000000000000000000000000036f -> 889
-
-decq760 apply #2208000000000000000000000000007e -> 898
-decq761 apply #2208000000000000000000000000017e -> 898
-decq762 apply #2208000000000000000000000000027e -> 898
-decq763 apply #2208000000000000000000000000037e -> 898
-decq764 apply #2208000000000000000000000000007f -> 899
-decq765 apply #2208000000000000000000000000017f -> 899
-decq766 apply #2208000000000000000000000000027f -> 899
-decq767 apply #2208000000000000000000000000037f -> 899
-
-decq770 apply #220800000000000000000000000000ee -> 988
-decq771 apply #220800000000000000000000000001ee -> 988
-decq772 apply #220800000000000000000000000002ee -> 988
-decq773 apply #220800000000000000000000000003ee -> 988
-decq774 apply #220800000000000000000000000000ef -> 989
-decq775 apply #220800000000000000000000000001ef -> 989
-decq776 apply #220800000000000000000000000002ef -> 989
-decq777 apply #220800000000000000000000000003ef -> 989
-
-decq780 apply #220800000000000000000000000000fe -> 998
-decq781 apply #220800000000000000000000000001fe -> 998
-decq782 apply #220800000000000000000000000002fe -> 998
-decq783 apply #220800000000000000000000000003fe -> 998
-decq784 apply #220800000000000000000000000000ff -> 999
-decq785 apply #220800000000000000000000000001ff -> 999
-decq786 apply #220800000000000000000000000002ff -> 999
-decq787 apply #220800000000000000000000000003ff -> 999
-
--- Miscellaneous (testers' queries, etc.)
-
-decq790 apply #2208000000000000000000000000c000 -> 30000
-decq791 apply #22080000000000000000000000007800 -> 890000
-decq792 apply 30000 -> #2208000000000000000000000000c000
-decq793 apply 890000 -> #22080000000000000000000000007800
-
--- values around [u]int32 edges (zeros done earlier)
-decq800 apply -2147483646 -> #a208000000000000000000008c78af46
-decq801 apply -2147483647 -> #a208000000000000000000008c78af47
-decq802 apply -2147483648 -> #a208000000000000000000008c78af48
-decq803 apply -2147483649 -> #a208000000000000000000008c78af49
-decq804 apply 2147483646 -> #2208000000000000000000008c78af46
-decq805 apply 2147483647 -> #2208000000000000000000008c78af47
-decq806 apply 2147483648 -> #2208000000000000000000008c78af48
-decq807 apply 2147483649 -> #2208000000000000000000008c78af49
-decq808 apply 4294967294 -> #22080000000000000000000115afb55a
-decq809 apply 4294967295 -> #22080000000000000000000115afb55b
-decq810 apply 4294967296 -> #22080000000000000000000115afb57a
-decq811 apply 4294967297 -> #22080000000000000000000115afb57b
-
-decq820 apply #a208000000000000000000008c78af46 -> -2147483646
-decq821 apply #a208000000000000000000008c78af47 -> -2147483647
-decq822 apply #a208000000000000000000008c78af48 -> -2147483648
-decq823 apply #a208000000000000000000008c78af49 -> -2147483649
-decq824 apply #2208000000000000000000008c78af46 -> 2147483646
-decq825 apply #2208000000000000000000008c78af47 -> 2147483647
-decq826 apply #2208000000000000000000008c78af48 -> 2147483648
-decq827 apply #2208000000000000000000008c78af49 -> 2147483649
-decq828 apply #22080000000000000000000115afb55a -> 4294967294
-decq829 apply #22080000000000000000000115afb55b -> 4294967295
-decq830 apply #22080000000000000000000115afb57a -> 4294967296
-decq831 apply #22080000000000000000000115afb57b -> 4294967297
-
--- VG testcase
-decq840 apply #2080000000000000F294000000172636 -> 8.81125000000001349436E-1548
-decq841 apply #20800000000000008000000000000000 -> 8.000000000000000000E-1550
-decq842 apply #1EF98490000000010F6E4E0000000000 -> 7.049000000000010795488000000000000E-3097
-decq843 multiply #20800000000000008000000000000000 #2080000000000000F294000000172636 -> #1EF98490000000010F6E4E0000000000 Rounded
-
+------------------------------------------------------------------------ +-- dqEncode.decTest -- decimal sixteen-byte format testcases -- +-- Copyright (c) IBM Corporation, 2000, 2008. 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 -- +------------------------------------------------------------------------ +-- [Previously called decimal128.decTest] +version: 2.59 + +-- This set of tests is for the sixteen-byte concrete representation. +-- Its characteristics are: +-- +-- 1 bit sign +-- 5 bits combination field +-- 12 bits exponent continuation +-- 110 bits coefficient continuation +-- +-- Total exponent length 14 bits +-- Total coefficient length 114 bits (34 digits) +-- +-- Elimit = 12287 (maximum encoded exponent) +-- Emax = 6144 (largest exponent value) +-- Emin = -6143 (smallest exponent value) +-- bias = 6176 (subtracted from encoded exponent) = -Etiny + +-- The testcases here have only exactly representable data on the +-- 'left-hand-side'; rounding from strings is tested in 'base' +-- testcase groups. + +extended: 1 +clamp: 1 +precision: 34 +rounding: half_up +maxExponent: 6144 +minExponent: -6143 + +-- General testcases +-- (mostly derived from the Strawman 4 document and examples) +decq001 apply #A20780000000000000000000000003D0 -> -7.50 +decq002 apply -7.50 -> #A20780000000000000000000000003D0 +-- derivative canonical plain strings +decq003 apply #A20840000000000000000000000003D0 -> -7.50E+3 +decq004 apply -7.50E+3 -> #A20840000000000000000000000003D0 +decq005 apply #A20800000000000000000000000003D0 -> -750 +decq006 apply -750 -> #A20800000000000000000000000003D0 +decq007 apply #A207c0000000000000000000000003D0 -> -75.0 +decq008 apply -75.0 -> #A207c0000000000000000000000003D0 +decq009 apply #A20740000000000000000000000003D0 -> -0.750 +decq010 apply -0.750 -> #A20740000000000000000000000003D0 +decq011 apply #A20700000000000000000000000003D0 -> -0.0750 +decq012 apply -0.0750 -> #A20700000000000000000000000003D0 +decq013 apply #A20680000000000000000000000003D0 -> -0.000750 +decq014 apply -0.000750 -> #A20680000000000000000000000003D0 +decq015 apply #A20600000000000000000000000003D0 -> -0.00000750 +decq016 apply -0.00000750 -> #A20600000000000000000000000003D0 +decq017 apply #A205c0000000000000000000000003D0 -> -7.50E-7 +decq018 apply -7.50E-7 -> #A205c0000000000000000000000003D0 + +-- Normality +decq020 apply 1234567890123456789012345678901234 -> #2608134b9c1e28e56f3c127177823534 +decq021 apply -1234567890123456789012345678901234 -> #a608134b9c1e28e56f3c127177823534 +decq022 apply 1111111111111111111111111111111111 -> #26080912449124491244912449124491 + +-- Nmax and similar +decq031 apply 9.999999999999999999999999999999999E+6144 -> #77ffcff3fcff3fcff3fcff3fcff3fcff +decq032 apply #77ffcff3fcff3fcff3fcff3fcff3fcff -> 9.999999999999999999999999999999999E+6144 +decq033 apply 1.234567890123456789012345678901234E+6144 -> #47ffd34b9c1e28e56f3c127177823534 +decq034 apply #47ffd34b9c1e28e56f3c127177823534 -> 1.234567890123456789012345678901234E+6144 +-- fold-downs (more below) +decq035 apply 1.23E+6144 -> #47ffd300000000000000000000000000 Clamped +decq036 apply #47ffd300000000000000000000000000 -> 1.230000000000000000000000000000000E+6144 +decq037 apply 1E+6144 -> #47ffc000000000000000000000000000 Clamped +decq038 apply #47ffc000000000000000000000000000 -> 1.000000000000000000000000000000000E+6144 + +decq051 apply 12345 -> #220800000000000000000000000049c5 +decq052 apply #220800000000000000000000000049c5 -> 12345 +decq053 apply 1234 -> #22080000000000000000000000000534 +decq054 apply #22080000000000000000000000000534 -> 1234 +decq055 apply 123 -> #220800000000000000000000000000a3 +decq056 apply #220800000000000000000000000000a3 -> 123 +decq057 apply 12 -> #22080000000000000000000000000012 +decq058 apply #22080000000000000000000000000012 -> 12 +decq059 apply 1 -> #22080000000000000000000000000001 +decq060 apply #22080000000000000000000000000001 -> 1 +decq061 apply 1.23 -> #220780000000000000000000000000a3 +decq062 apply #220780000000000000000000000000a3 -> 1.23 +decq063 apply 123.45 -> #220780000000000000000000000049c5 +decq064 apply #220780000000000000000000000049c5 -> 123.45 + +-- Nmin and below +decq071 apply 1E-6143 -> #00084000000000000000000000000001 +decq072 apply #00084000000000000000000000000001 -> 1E-6143 +decq073 apply 1.000000000000000000000000000000000E-6143 -> #04000000000000000000000000000000 +decq074 apply #04000000000000000000000000000000 -> 1.000000000000000000000000000000000E-6143 +decq075 apply 1.000000000000000000000000000000001E-6143 -> #04000000000000000000000000000001 +decq076 apply #04000000000000000000000000000001 -> 1.000000000000000000000000000000001E-6143 + +decq077 apply 0.100000000000000000000000000000000E-6143 -> #00000800000000000000000000000000 Subnormal +decq078 apply #00000800000000000000000000000000 -> 1.00000000000000000000000000000000E-6144 Subnormal +decq079 apply 0.000000000000000000000000000000010E-6143 -> #00000000000000000000000000000010 Subnormal +decq080 apply #00000000000000000000000000000010 -> 1.0E-6175 Subnormal +decq081 apply 0.00000000000000000000000000000001E-6143 -> #00004000000000000000000000000001 Subnormal +decq082 apply #00004000000000000000000000000001 -> 1E-6175 Subnormal +decq083 apply 0.000000000000000000000000000000001E-6143 -> #00000000000000000000000000000001 Subnormal +decq084 apply #00000000000000000000000000000001 -> 1E-6176 Subnormal + +-- underflows cannot be tested for simple copies, check edge cases +decq090 apply 1e-6176 -> #00000000000000000000000000000001 Subnormal +decq100 apply 999999999999999999999999999999999e-6176 -> #00000ff3fcff3fcff3fcff3fcff3fcff Subnormal + +-- same again, negatives +-- Nmax and similar +decq122 apply -9.999999999999999999999999999999999E+6144 -> #f7ffcff3fcff3fcff3fcff3fcff3fcff +decq123 apply #f7ffcff3fcff3fcff3fcff3fcff3fcff -> -9.999999999999999999999999999999999E+6144 +decq124 apply -1.234567890123456789012345678901234E+6144 -> #c7ffd34b9c1e28e56f3c127177823534 +decq125 apply #c7ffd34b9c1e28e56f3c127177823534 -> -1.234567890123456789012345678901234E+6144 +-- fold-downs (more below) +decq130 apply -1.23E+6144 -> #c7ffd300000000000000000000000000 Clamped +decq131 apply #c7ffd300000000000000000000000000 -> -1.230000000000000000000000000000000E+6144 +decq132 apply -1E+6144 -> #c7ffc000000000000000000000000000 Clamped +decq133 apply #c7ffc000000000000000000000000000 -> -1.000000000000000000000000000000000E+6144 + +decq151 apply -12345 -> #a20800000000000000000000000049c5 +decq152 apply #a20800000000000000000000000049c5 -> -12345 +decq153 apply -1234 -> #a2080000000000000000000000000534 +decq154 apply #a2080000000000000000000000000534 -> -1234 +decq155 apply -123 -> #a20800000000000000000000000000a3 +decq156 apply #a20800000000000000000000000000a3 -> -123 +decq157 apply -12 -> #a2080000000000000000000000000012 +decq158 apply #a2080000000000000000000000000012 -> -12 +decq159 apply -1 -> #a2080000000000000000000000000001 +decq160 apply #a2080000000000000000000000000001 -> -1 +decq161 apply -1.23 -> #a20780000000000000000000000000a3 +decq162 apply #a20780000000000000000000000000a3 -> -1.23 +decq163 apply -123.45 -> #a20780000000000000000000000049c5 +decq164 apply #a20780000000000000000000000049c5 -> -123.45 + +-- Nmin and below +decq171 apply -1E-6143 -> #80084000000000000000000000000001 +decq172 apply #80084000000000000000000000000001 -> -1E-6143 +decq173 apply -1.000000000000000000000000000000000E-6143 -> #84000000000000000000000000000000 +decq174 apply #84000000000000000000000000000000 -> -1.000000000000000000000000000000000E-6143 +decq175 apply -1.000000000000000000000000000000001E-6143 -> #84000000000000000000000000000001 +decq176 apply #84000000000000000000000000000001 -> -1.000000000000000000000000000000001E-6143 + +decq177 apply -0.100000000000000000000000000000000E-6143 -> #80000800000000000000000000000000 Subnormal +decq178 apply #80000800000000000000000000000000 -> -1.00000000000000000000000000000000E-6144 Subnormal +decq179 apply -0.000000000000000000000000000000010E-6143 -> #80000000000000000000000000000010 Subnormal +decq180 apply #80000000000000000000000000000010 -> -1.0E-6175 Subnormal +decq181 apply -0.00000000000000000000000000000001E-6143 -> #80004000000000000000000000000001 Subnormal +decq182 apply #80004000000000000000000000000001 -> -1E-6175 Subnormal +decq183 apply -0.000000000000000000000000000000001E-6143 -> #80000000000000000000000000000001 Subnormal +decq184 apply #80000000000000000000000000000001 -> -1E-6176 Subnormal + +-- underflow edge cases +decq190 apply -1e-6176 -> #80000000000000000000000000000001 Subnormal +decq200 apply -999999999999999999999999999999999e-6176 -> #80000ff3fcff3fcff3fcff3fcff3fcff Subnormal + +-- zeros +decq400 apply 0E-8000 -> #00000000000000000000000000000000 Clamped +decq401 apply 0E-6177 -> #00000000000000000000000000000000 Clamped +decq402 apply 0E-6176 -> #00000000000000000000000000000000 +decq403 apply #00000000000000000000000000000000 -> 0E-6176 +decq404 apply 0.000000000000000000000000000000000E-6143 -> #00000000000000000000000000000000 +decq405 apply #00000000000000000000000000000000 -> 0E-6176 +decq406 apply 0E-2 -> #22078000000000000000000000000000 +decq407 apply #22078000000000000000000000000000 -> 0.00 +decq408 apply 0 -> #22080000000000000000000000000000 +decq409 apply #22080000000000000000000000000000 -> 0 +decq410 apply 0E+3 -> #2208c000000000000000000000000000 +decq411 apply #2208c000000000000000000000000000 -> 0E+3 +decq412 apply 0E+6111 -> #43ffc000000000000000000000000000 +decq413 apply #43ffc000000000000000000000000000 -> 0E+6111 +-- clamped zeros... +decq414 apply 0E+6112 -> #43ffc000000000000000000000000000 Clamped +decq415 apply #43ffc000000000000000000000000000 -> 0E+6111 +decq416 apply 0E+6144 -> #43ffc000000000000000000000000000 Clamped +decq417 apply #43ffc000000000000000000000000000 -> 0E+6111 +decq418 apply 0E+8000 -> #43ffc000000000000000000000000000 Clamped +decq419 apply #43ffc000000000000000000000000000 -> 0E+6111 + +-- negative zeros +decq420 apply -0E-8000 -> #80000000000000000000000000000000 Clamped +decq421 apply -0E-6177 -> #80000000000000000000000000000000 Clamped +decq422 apply -0E-6176 -> #80000000000000000000000000000000 +decq423 apply #80000000000000000000000000000000 -> -0E-6176 +decq424 apply -0.000000000000000000000000000000000E-6143 -> #80000000000000000000000000000000 +decq425 apply #80000000000000000000000000000000 -> -0E-6176 +decq426 apply -0E-2 -> #a2078000000000000000000000000000 +decq427 apply #a2078000000000000000000000000000 -> -0.00 +decq428 apply -0 -> #a2080000000000000000000000000000 +decq429 apply #a2080000000000000000000000000000 -> -0 +decq430 apply -0E+3 -> #a208c000000000000000000000000000 +decq431 apply #a208c000000000000000000000000000 -> -0E+3 +decq432 apply -0E+6111 -> #c3ffc000000000000000000000000000 +decq433 apply #c3ffc000000000000000000000000000 -> -0E+6111 +-- clamped zeros... +decq434 apply -0E+6112 -> #c3ffc000000000000000000000000000 Clamped +decq435 apply #c3ffc000000000000000000000000000 -> -0E+6111 +decq436 apply -0E+6144 -> #c3ffc000000000000000000000000000 Clamped +decq437 apply #c3ffc000000000000000000000000000 -> -0E+6111 +decq438 apply -0E+8000 -> #c3ffc000000000000000000000000000 Clamped +decq439 apply #c3ffc000000000000000000000000000 -> -0E+6111 + +-- exponent lengths +decq440 apply #22080000000000000000000000000007 -> 7 +decq441 apply 7 -> #22080000000000000000000000000007 +decq442 apply #220a4000000000000000000000000007 -> 7E+9 +decq443 apply 7E+9 -> #220a4000000000000000000000000007 +decq444 apply #2220c000000000000000000000000007 -> 7E+99 +decq445 apply 7E+99 -> #2220c000000000000000000000000007 +decq446 apply #2301c000000000000000000000000007 -> 7E+999 +decq447 apply 7E+999 -> #2301c000000000000000000000000007 +decq448 apply #43e3c000000000000000000000000007 -> 7E+5999 +decq449 apply 7E+5999 -> #43e3c000000000000000000000000007 + +-- Specials +decq500 apply Infinity -> #78000000000000000000000000000000 +decq501 apply #78787878787878787878787878787878 -> #78000000000000000000000000000000 +decq502 apply #78000000000000000000000000000000 -> Infinity +decq503 apply #79797979797979797979797979797979 -> #78000000000000000000000000000000 +decq504 apply #79000000000000000000000000000000 -> Infinity +decq505 apply #7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a -> #78000000000000000000000000000000 +decq506 apply #7a000000000000000000000000000000 -> Infinity +decq507 apply #7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b -> #78000000000000000000000000000000 +decq508 apply #7b000000000000000000000000000000 -> Infinity + +decq509 apply NaN -> #7c000000000000000000000000000000 +decq510 apply #7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c -> #7c003c7c7c7c7c7c7c7c7c7c7c7c7c7c +decq511 apply #7c000000000000000000000000000000 -> NaN +decq512 apply #7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d -> #7c003d7d7d7d7d7d7d7d7d7d7d7d7d7d +decq513 apply #7d000000000000000000000000000000 -> NaN +decq514 apply #7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e -> #7e003e7e7c7e7e7e7e7c7e7e7e7e7c7e +decq515 apply #7e000000000000000000000000000000 -> sNaN +decq516 apply #7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f -> #7e003f7f7c7f7f7f7f7c7f7f7f7f7c7f +decq517 apply #7f000000000000000000000000000000 -> sNaN +decq518 apply #7fffffffffffffffffffffffffffffff -> sNaN999999999999999999999999999999999 +decq519 apply #7fffffffffffffffffffffffffffffff -> #7e000ff3fcff3fcff3fcff3fcff3fcff + +decq520 apply -Infinity -> #f8000000000000000000000000000000 +decq521 apply #f8787878787878787878787878787878 -> #f8000000000000000000000000000000 +decq522 apply #f8000000000000000000000000000000 -> -Infinity +decq523 apply #f9797979797979797979797979797979 -> #f8000000000000000000000000000000 +decq524 apply #f9000000000000000000000000000000 -> -Infinity +decq525 apply #fa7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a -> #f8000000000000000000000000000000 +decq526 apply #fa000000000000000000000000000000 -> -Infinity +decq527 apply #fb7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b -> #f8000000000000000000000000000000 +decq528 apply #fb000000000000000000000000000000 -> -Infinity + +decq529 apply -NaN -> #fc000000000000000000000000000000 +decq530 apply #fc7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c -> #fc003c7c7c7c7c7c7c7c7c7c7c7c7c7c +decq531 apply #fc000000000000000000000000000000 -> -NaN +decq532 apply #fd7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d -> #fc003d7d7d7d7d7d7d7d7d7d7d7d7d7d +decq533 apply #fd000000000000000000000000000000 -> -NaN +decq534 apply #fe7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e -> #fe003e7e7c7e7e7e7e7c7e7e7e7e7c7e +decq535 apply #fe000000000000000000000000000000 -> -sNaN +decq536 apply #ff7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f -> #fe003f7f7c7f7f7f7f7c7f7f7f7f7c7f +decq537 apply #ff000000000000000000000000000000 -> -sNaN +decq538 apply #ffffffffffffffffffffffffffffffff -> -sNaN999999999999999999999999999999999 +decq539 apply #ffffffffffffffffffffffffffffffff -> #fe000ff3fcff3fcff3fcff3fcff3fcff + +decq540 apply NaN -> #7c000000000000000000000000000000 +decq541 apply NaN0 -> #7c000000000000000000000000000000 +decq542 apply NaN1 -> #7c000000000000000000000000000001 +decq543 apply NaN12 -> #7c000000000000000000000000000012 +decq544 apply NaN79 -> #7c000000000000000000000000000079 +decq545 apply NaN12345 -> #7c0000000000000000000000000049c5 +decq546 apply NaN123456 -> #7c000000000000000000000000028e56 +decq547 apply NaN799799 -> #7c0000000000000000000000000f7fdf +decq548 apply NaN799799799799799799799799799799799 -> #7c003dff7fdff7fdff7fdff7fdff7fdf +decq549 apply NaN999999999999999999999999999999999 -> #7c000ff3fcff3fcff3fcff3fcff3fcff +decq550 apply 9999999999999999999999999999999999 -> #6e080ff3fcff3fcff3fcff3fcff3fcff + +-- fold-down full sequence +decq601 apply 1E+6144 -> #47ffc000000000000000000000000000 Clamped +decq602 apply #47ffc000000000000000000000000000 -> 1.000000000000000000000000000000000E+6144 +decq603 apply 1E+6143 -> #43ffc800000000000000000000000000 Clamped +decq604 apply #43ffc800000000000000000000000000 -> 1.00000000000000000000000000000000E+6143 +decq605 apply 1E+6142 -> #43ffc100000000000000000000000000 Clamped +decq606 apply #43ffc100000000000000000000000000 -> 1.0000000000000000000000000000000E+6142 +decq607 apply 1E+6141 -> #43ffc010000000000000000000000000 Clamped +decq608 apply #43ffc010000000000000000000000000 -> 1.000000000000000000000000000000E+6141 +decq609 apply 1E+6140 -> #43ffc002000000000000000000000000 Clamped +decq610 apply #43ffc002000000000000000000000000 -> 1.00000000000000000000000000000E+6140 +decq611 apply 1E+6139 -> #43ffc000400000000000000000000000 Clamped +decq612 apply #43ffc000400000000000000000000000 -> 1.0000000000000000000000000000E+6139 +decq613 apply 1E+6138 -> #43ffc000040000000000000000000000 Clamped +decq614 apply #43ffc000040000000000000000000000 -> 1.000000000000000000000000000E+6138 +decq615 apply 1E+6137 -> #43ffc000008000000000000000000000 Clamped +decq616 apply #43ffc000008000000000000000000000 -> 1.00000000000000000000000000E+6137 +decq617 apply 1E+6136 -> #43ffc000001000000000000000000000 Clamped +decq618 apply #43ffc000001000000000000000000000 -> 1.0000000000000000000000000E+6136 +decq619 apply 1E+6135 -> #43ffc000000100000000000000000000 Clamped +decq620 apply #43ffc000000100000000000000000000 -> 1.000000000000000000000000E+6135 +decq621 apply 1E+6134 -> #43ffc000000020000000000000000000 Clamped +decq622 apply #43ffc000000020000000000000000000 -> 1.00000000000000000000000E+6134 +decq623 apply 1E+6133 -> #43ffc000000004000000000000000000 Clamped +decq624 apply #43ffc000000004000000000000000000 -> 1.0000000000000000000000E+6133 +decq625 apply 1E+6132 -> #43ffc000000000400000000000000000 Clamped +decq626 apply #43ffc000000000400000000000000000 -> 1.000000000000000000000E+6132 +decq627 apply 1E+6131 -> #43ffc000000000080000000000000000 Clamped +decq628 apply #43ffc000000000080000000000000000 -> 1.00000000000000000000E+6131 +decq629 apply 1E+6130 -> #43ffc000000000010000000000000000 Clamped +decq630 apply #43ffc000000000010000000000000000 -> 1.0000000000000000000E+6130 +decq631 apply 1E+6129 -> #43ffc000000000001000000000000000 Clamped +decq632 apply #43ffc000000000001000000000000000 -> 1.000000000000000000E+6129 +decq633 apply 1E+6128 -> #43ffc000000000000200000000000000 Clamped +decq634 apply #43ffc000000000000200000000000000 -> 1.00000000000000000E+6128 +decq635 apply 1E+6127 -> #43ffc000000000000040000000000000 Clamped +decq636 apply #43ffc000000000000040000000000000 -> 1.0000000000000000E+6127 +decq637 apply 1E+6126 -> #43ffc000000000000004000000000000 Clamped +decq638 apply #43ffc000000000000004000000000000 -> 1.000000000000000E+6126 +decq639 apply 1E+6125 -> #43ffc000000000000000800000000000 Clamped +decq640 apply #43ffc000000000000000800000000000 -> 1.00000000000000E+6125 +decq641 apply 1E+6124 -> #43ffc000000000000000100000000000 Clamped +decq642 apply #43ffc000000000000000100000000000 -> 1.0000000000000E+6124 +decq643 apply 1E+6123 -> #43ffc000000000000000010000000000 Clamped +decq644 apply #43ffc000000000000000010000000000 -> 1.000000000000E+6123 +decq645 apply 1E+6122 -> #43ffc000000000000000002000000000 Clamped +decq646 apply #43ffc000000000000000002000000000 -> 1.00000000000E+6122 +decq647 apply 1E+6121 -> #43ffc000000000000000000400000000 Clamped +decq648 apply #43ffc000000000000000000400000000 -> 1.0000000000E+6121 +decq649 apply 1E+6120 -> #43ffc000000000000000000040000000 Clamped +decq650 apply #43ffc000000000000000000040000000 -> 1.000000000E+6120 +decq651 apply 1E+6119 -> #43ffc000000000000000000008000000 Clamped +decq652 apply #43ffc000000000000000000008000000 -> 1.00000000E+6119 +decq653 apply 1E+6118 -> #43ffc000000000000000000001000000 Clamped +decq654 apply #43ffc000000000000000000001000000 -> 1.0000000E+6118 +decq655 apply 1E+6117 -> #43ffc000000000000000000000100000 Clamped +decq656 apply #43ffc000000000000000000000100000 -> 1.000000E+6117 +decq657 apply 1E+6116 -> #43ffc000000000000000000000020000 Clamped +decq658 apply #43ffc000000000000000000000020000 -> 1.00000E+6116 +decq659 apply 1E+6115 -> #43ffc000000000000000000000004000 Clamped +decq660 apply #43ffc000000000000000000000004000 -> 1.0000E+6115 +decq661 apply 1E+6114 -> #43ffc000000000000000000000000400 Clamped +decq662 apply #43ffc000000000000000000000000400 -> 1.000E+6114 +decq663 apply 1E+6113 -> #43ffc000000000000000000000000080 Clamped +decq664 apply #43ffc000000000000000000000000080 -> 1.00E+6113 +decq665 apply 1E+6112 -> #43ffc000000000000000000000000010 Clamped +decq666 apply #43ffc000000000000000000000000010 -> 1.0E+6112 +decq667 apply 1E+6111 -> #43ffc000000000000000000000000001 +decq668 apply #43ffc000000000000000000000000001 -> 1E+6111 +decq669 apply 1E+6110 -> #43ff8000000000000000000000000001 +decq670 apply #43ff8000000000000000000000000001 -> 1E+6110 + +-- Selected DPD codes +decq700 apply #22080000000000000000000000000000 -> 0 +decq701 apply #22080000000000000000000000000009 -> 9 +decq702 apply #22080000000000000000000000000010 -> 10 +decq703 apply #22080000000000000000000000000019 -> 19 +decq704 apply #22080000000000000000000000000020 -> 20 +decq705 apply #22080000000000000000000000000029 -> 29 +decq706 apply #22080000000000000000000000000030 -> 30 +decq707 apply #22080000000000000000000000000039 -> 39 +decq708 apply #22080000000000000000000000000040 -> 40 +decq709 apply #22080000000000000000000000000049 -> 49 +decq710 apply #22080000000000000000000000000050 -> 50 +decq711 apply #22080000000000000000000000000059 -> 59 +decq712 apply #22080000000000000000000000000060 -> 60 +decq713 apply #22080000000000000000000000000069 -> 69 +decq714 apply #22080000000000000000000000000070 -> 70 +decq715 apply #22080000000000000000000000000071 -> 71 +decq716 apply #22080000000000000000000000000072 -> 72 +decq717 apply #22080000000000000000000000000073 -> 73 +decq718 apply #22080000000000000000000000000074 -> 74 +decq719 apply #22080000000000000000000000000075 -> 75 +decq720 apply #22080000000000000000000000000076 -> 76 +decq721 apply #22080000000000000000000000000077 -> 77 +decq722 apply #22080000000000000000000000000078 -> 78 +decq723 apply #22080000000000000000000000000079 -> 79 + +decq730 apply #2208000000000000000000000000029e -> 994 +decq731 apply #2208000000000000000000000000029f -> 995 +decq732 apply #220800000000000000000000000002a0 -> 520 +decq733 apply #220800000000000000000000000002a1 -> 521 + +-- DPD: one of each of the huffman groups +decq740 apply #220800000000000000000000000003f7 -> 777 +decq741 apply #220800000000000000000000000003f8 -> 778 +decq742 apply #220800000000000000000000000003eb -> 787 +decq743 apply #2208000000000000000000000000037d -> 877 +decq744 apply #2208000000000000000000000000039f -> 997 +decq745 apply #220800000000000000000000000003bf -> 979 +decq746 apply #220800000000000000000000000003df -> 799 +decq747 apply #2208000000000000000000000000006e -> 888 + + +-- DPD all-highs cases (includes the 24 redundant codes) +decq750 apply #2208000000000000000000000000006e -> 888 +decq751 apply #2208000000000000000000000000016e -> 888 +decq752 apply #2208000000000000000000000000026e -> 888 +decq753 apply #2208000000000000000000000000036e -> 888 +decq754 apply #2208000000000000000000000000006f -> 889 +decq755 apply #2208000000000000000000000000016f -> 889 +decq756 apply #2208000000000000000000000000026f -> 889 +decq757 apply #2208000000000000000000000000036f -> 889 + +decq760 apply #2208000000000000000000000000007e -> 898 +decq761 apply #2208000000000000000000000000017e -> 898 +decq762 apply #2208000000000000000000000000027e -> 898 +decq763 apply #2208000000000000000000000000037e -> 898 +decq764 apply #2208000000000000000000000000007f -> 899 +decq765 apply #2208000000000000000000000000017f -> 899 +decq766 apply #2208000000000000000000000000027f -> 899 +decq767 apply #2208000000000000000000000000037f -> 899 + +decq770 apply #220800000000000000000000000000ee -> 988 +decq771 apply #220800000000000000000000000001ee -> 988 +decq772 apply #220800000000000000000000000002ee -> 988 +decq773 apply #220800000000000000000000000003ee -> 988 +decq774 apply #220800000000000000000000000000ef -> 989 +decq775 apply #220800000000000000000000000001ef -> 989 +decq776 apply #220800000000000000000000000002ef -> 989 +decq777 apply #220800000000000000000000000003ef -> 989 + +decq780 apply #220800000000000000000000000000fe -> 998 +decq781 apply #220800000000000000000000000001fe -> 998 +decq782 apply #220800000000000000000000000002fe -> 998 +decq783 apply #220800000000000000000000000003fe -> 998 +decq784 apply #220800000000000000000000000000ff -> 999 +decq785 apply #220800000000000000000000000001ff -> 999 +decq786 apply #220800000000000000000000000002ff -> 999 +decq787 apply #220800000000000000000000000003ff -> 999 + +-- Miscellaneous (testers' queries, etc.) + +decq790 apply #2208000000000000000000000000c000 -> 30000 +decq791 apply #22080000000000000000000000007800 -> 890000 +decq792 apply 30000 -> #2208000000000000000000000000c000 +decq793 apply 890000 -> #22080000000000000000000000007800 + +-- values around [u]int32 edges (zeros done earlier) +decq800 apply -2147483646 -> #a208000000000000000000008c78af46 +decq801 apply -2147483647 -> #a208000000000000000000008c78af47 +decq802 apply -2147483648 -> #a208000000000000000000008c78af48 +decq803 apply -2147483649 -> #a208000000000000000000008c78af49 +decq804 apply 2147483646 -> #2208000000000000000000008c78af46 +decq805 apply 2147483647 -> #2208000000000000000000008c78af47 +decq806 apply 2147483648 -> #2208000000000000000000008c78af48 +decq807 apply 2147483649 -> #2208000000000000000000008c78af49 +decq808 apply 4294967294 -> #22080000000000000000000115afb55a +decq809 apply 4294967295 -> #22080000000000000000000115afb55b +decq810 apply 4294967296 -> #22080000000000000000000115afb57a +decq811 apply 4294967297 -> #22080000000000000000000115afb57b + +decq820 apply #a208000000000000000000008c78af46 -> -2147483646 +decq821 apply #a208000000000000000000008c78af47 -> -2147483647 +decq822 apply #a208000000000000000000008c78af48 -> -2147483648 +decq823 apply #a208000000000000000000008c78af49 -> -2147483649 +decq824 apply #2208000000000000000000008c78af46 -> 2147483646 +decq825 apply #2208000000000000000000008c78af47 -> 2147483647 +decq826 apply #2208000000000000000000008c78af48 -> 2147483648 +decq827 apply #2208000000000000000000008c78af49 -> 2147483649 +decq828 apply #22080000000000000000000115afb55a -> 4294967294 +decq829 apply #22080000000000000000000115afb55b -> 4294967295 +decq830 apply #22080000000000000000000115afb57a -> 4294967296 +decq831 apply #22080000000000000000000115afb57b -> 4294967297 + +-- VG testcase +decq840 apply #2080000000000000F294000000172636 -> 8.81125000000001349436E-1548 +decq841 apply #20800000000000008000000000000000 -> 8.000000000000000000E-1550 +decq842 apply #1EF98490000000010F6E4E0000000000 -> 7.049000000000010795488000000000000E-3097 +decq843 multiply #20800000000000008000000000000000 #2080000000000000F294000000172636 -> #1EF98490000000010F6E4E0000000000 Rounded + diff --git a/Lib/test/decimaltestdata/dqFMA.decTest b/Lib/test/decimaltestdata/dqFMA.decTest index 2353f2fa2c..d884553b8a 100644 --- a/Lib/test/decimaltestdata/dqFMA.decTest +++ b/Lib/test/decimaltestdata/dqFMA.decTest @@ -1,1786 +1,1786 @@ -------------------------------------------------------------------------
--- dqFMA.decTest -- decQuad Fused Multiply Add --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
--- 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
-dqfma0001 fma 1 1 1 -> 2
-dqfma0002 fma 1 1 2 -> 3
-dqfma0003 fma 2 2 3 -> 7
-dqfma0004 fma 9 9 9 -> 90
-dqfma0005 fma -1 1 1 -> 0
-dqfma0006 fma -1 1 2 -> 1
-dqfma0007 fma -2 2 3 -> -1
-dqfma0008 fma -9 9 9 -> -72
-dqfma0011 fma 1 -1 1 -> 0
-dqfma0012 fma 1 -1 2 -> 1
-dqfma0013 fma 2 -2 3 -> -1
-dqfma0014 fma 9 -9 9 -> -72
-dqfma0015 fma 1 1 -1 -> 0
-dqfma0016 fma 1 1 -2 -> -1
-dqfma0017 fma 2 2 -3 -> 1
-dqfma0018 fma 9 9 -9 -> 72
-
--- non-integer exacts
-dqfma0100 fma 25.2 63.6 -438 -> 1164.72
-dqfma0101 fma 0.301 0.380 334 -> 334.114380
-dqfma0102 fma 49.2 -4.8 23.3 -> -212.86
-dqfma0103 fma 4.22 0.079 -94.6 -> -94.26662
-dqfma0104 fma 903 0.797 0.887 -> 720.578
-dqfma0105 fma 6.13 -161 65.9 -> -921.03
-dqfma0106 fma 28.2 727 5.45 -> 20506.85
-dqfma0107 fma 4 605 688 -> 3108
-dqfma0108 fma 93.3 0.19 0.226 -> 17.953
-dqfma0109 fma 0.169 -341 5.61 -> -52.019
-dqfma0110 fma -72.2 30 -51.2 -> -2217.2
-dqfma0111 fma -0.409 13 20.4 -> 15.083
-dqfma0112 fma 317 77.0 19.0 -> 24428.0
-dqfma0113 fma 47 6.58 1.62 -> 310.88
-dqfma0114 fma 1.36 0.984 0.493 -> 1.83124
-dqfma0115 fma 72.7 274 1.56 -> 19921.36
-dqfma0116 fma 335 847 83 -> 283828
-dqfma0117 fma 666 0.247 25.4 -> 189.902
-dqfma0118 fma -3.87 3.06 78.0 -> 66.1578
-dqfma0119 fma 0.742 192 35.6 -> 178.064
-dqfma0120 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]
--- -> 4.500119002100000209469729375698778E+38
-dqfma0202 fma 68537985861355864457.5694 6565875762972086605.85969 35892634447236753.172812 -> 4.500119002100000209469729375698779E+38 Inexact Rounded
--- -> 5.996248469584594346858881620185514E+41
-dqfma0208 fma 89261822344727628571.9 6717595845654131383336.89 5061036497288796076266.11 -> 5.996248469584594346858881620185513E+41 Inexact Rounded
--- -> 1.899242968678256924021594770874070E+34
-dqfma0210 fma 320506237232448685.495971 59257597764017967.984448 3205615239077711589912.85 -> 1.899242968678256924021594770874071E+34 Inexact Rounded
--- -> 7.078596978842809537929699954860309E+37
-dqfma0215 fma 220247843259112263.17995 321392340287987979002.80 47533279819997167655440 -> 7.078596978842809537929699954860308E+37 Inexact Rounded
--- -> 1.224955667581427559754106862350743E+37
-dqfma0226 fma 23880729790368880412.1449 512947333827064719.55407 217117438419590824502.963 -> 1.224955667581427559754106862350744E+37 Inexact Rounded
--- -> -2.530094043253148806272276368579144E+42
-dqfma0229 fma 2539892357016099706.4126 -996142232667504817717435 53682082598315949425.937 -> -2.530094043253148806272276368579143E+42 Inexact Rounded
--- -> 1.713387085759711954319391412788454E+37
-dqfma0233 fma 4546339491341624464.0804 3768717864169205581 83578980278690395184.620 -> 1.713387085759711954319391412788453E+37 Inexact Rounded
--- -> 4.062275663405823716411579117771547E+35
-dqfma0235 fma 409242119433816131.42253 992633815166741501.477249 70179636544416756129546 -> 4.062275663405823716411579117771548E+35 Inexact Rounded
--- -> 6.002604327732568490562249875306823E+47
-dqfma0258 fma 817941336593541742159684 733867339769310729266598 78563844650942419311830.8 -> 6.002604327732568490562249875306822E+47 Inexact Rounded
--- -> -2.027022514381452197510103395283874E+39
-dqfma0264 fma 387617310169161270.737532 -5229442703414956061216.62 57665666816652967150473.5 -> -2.027022514381452197510103395283873E+39 Inexact Rounded
--- -> -7.856525039803554001144089842730361E+37
-dqfma0267 fma -847655845720565274701.210 92685316564117739.83984 22780950041376424429.5686 -> -7.856525039803554001144089842730360E+37 Inexact Rounded
--- -> 1.695515562011520746125607502237559E+38
-dqfma0268 fma 21590290365127685.3675 7853139227576541379426.8 -3275859437236180.761544 -> 1.695515562011520746125607502237558E+38 Inexact Rounded
--- -> -8.448422935783289219748115038014710E+38
-dqfma0269 fma -974320636272862697.971586 867109103641860247440.756 -9775170775902454762.98 -> -8.448422935783289219748115038014709E+38 Inexact Rounded
-
--- Cases where multiply would overflow or underflow if separate
-dqfma0300 fma 9e+6144 10 0 -> Infinity Overflow Inexact Rounded
-dqfma0301 fma 1e+6144 10 0 -> Infinity Overflow Inexact Rounded
-dqfma0302 fma 1e+6144 10 -1e+6144 -> 9.000000000000000000000000000000000E+6144 Clamped
-dqfma0303 fma 1e+6144 10 -9e+6144 -> 1.000000000000000000000000000000000E+6144 Clamped
--- subnormal etc.
-dqfma0305 fma 1e-6176 0.1 0 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqfma0306 fma 1e-6176 0.1 1 -> 1.000000000000000000000000000000000 Inexact Rounded
-dqfma0307 fma 1e-6176 0.1 1e-6176 -> 1E-6176 Underflow Subnormal Inexact Rounded
-
--- Infinite combinations
-dqfma0800 fma Inf Inf Inf -> Infinity
-dqfma0801 fma Inf Inf -Inf -> NaN Invalid_operation
-dqfma0802 fma Inf -Inf Inf -> NaN Invalid_operation
-dqfma0803 fma Inf -Inf -Inf -> -Infinity
-dqfma0804 fma -Inf Inf Inf -> NaN Invalid_operation
-dqfma0805 fma -Inf Inf -Inf -> -Infinity
-dqfma0806 fma -Inf -Inf Inf -> Infinity
-dqfma0807 fma -Inf -Inf -Inf -> NaN Invalid_operation
-
--- Triple NaN propagation
-dqfma0900 fma NaN2 NaN3 NaN5 -> NaN2
-dqfma0901 fma 0 NaN3 NaN5 -> NaN3
-dqfma0902 fma 0 0 NaN5 -> NaN5
--- first sNaN wins (consider qNaN from earlier sNaN being
--- overridden by an sNaN in third operand)
-dqfma0903 fma sNaN1 sNaN2 sNaN3 -> NaN1 Invalid_operation
-dqfma0904 fma 0 sNaN2 sNaN3 -> NaN2 Invalid_operation
-dqfma0905 fma 0 0 sNaN3 -> NaN3 Invalid_operation
-dqfma0906 fma sNaN1 sNaN2 sNaN3 -> NaN1 Invalid_operation
-dqfma0907 fma NaN7 sNaN2 sNaN3 -> NaN2 Invalid_operation
-dqfma0908 fma NaN7 NaN5 sNaN3 -> NaN3 Invalid_operation
-
--- MULTIPLICATION TESTS ------------------------------------------------
-rounding: half_even
-
--- sanity checks
-dqfma2000 fma 2 2 0e+6144 -> 4
-dqfma2001 fma 2 3 0e+6144 -> 6
-dqfma2002 fma 5 1 0e+6144 -> 5
-dqfma2003 fma 5 2 0e+6144 -> 10
-dqfma2004 fma 1.20 2 0e+6144 -> 2.40
-dqfma2005 fma 1.20 0 0e+6144 -> 0.00
-dqfma2006 fma 1.20 -2 0e+6144 -> -2.40
-dqfma2007 fma -1.20 2 0e+6144 -> -2.40
-dqfma2008 fma -1.20 0 0e+6144 -> 0.00
-dqfma2009 fma -1.20 -2 0e+6144 -> 2.40
-dqfma2010 fma 5.09 7.1 0e+6144 -> 36.139
-dqfma2011 fma 2.5 4 0e+6144 -> 10.0
-dqfma2012 fma 2.50 4 0e+6144 -> 10.00
-dqfma2013 fma 1.23456789 1.0000000000000000000000000000 0e+6144 -> 1.234567890000000000000000000000000 Rounded
-dqfma2015 fma 2.50 4 0e+6144 -> 10.00
-dqfma2016 fma 9.99999999999999999 9.99999999999999999 0e+6144 -> 99.99999999999999980000000000000000 Inexact Rounded
-dqfma2017 fma 9.99999999999999999 -9.99999999999999999 0e+6144 -> -99.99999999999999980000000000000000 Inexact Rounded
-dqfma2018 fma -9.99999999999999999 9.99999999999999999 0e+6144 -> -99.99999999999999980000000000000000 Inexact Rounded
-dqfma2019 fma -9.99999999999999999 -9.99999999999999999 0e+6144 -> 99.99999999999999980000000000000000 Inexact Rounded
-
--- zeros, etc.
-dqfma2021 fma 0 0 0e+6144 -> 0
-dqfma2022 fma 0 -0 0e+6144 -> 0
-dqfma2023 fma -0 0 0e+6144 -> 0
-dqfma2024 fma -0 -0 0e+6144 -> 0
-dqfma2025 fma -0.0 -0.0 0e+6144 -> 0.00
-dqfma2026 fma -0.0 -0.0 0e+6144 -> 0.00
-dqfma2027 fma -0.0 -0.0 0e+6144 -> 0.00
-dqfma2028 fma -0.0 -0.0 0e+6144 -> 0.00
-dqfma2030 fma 5.00 1E-3 0e+6144 -> 0.00500
-dqfma2031 fma 00.00 0.000 0e+6144 -> 0.00000
-dqfma2032 fma 00.00 0E-3 0e+6144 -> 0.00000 -- rhs is 0
-dqfma2033 fma 0E-3 00.00 0e+6144 -> 0.00000 -- lhs is 0
-dqfma2034 fma -5.00 1E-3 0e+6144 -> -0.00500
-dqfma2035 fma -00.00 0.000 0e+6144 -> 0.00000
-dqfma2036 fma -00.00 0E-3 0e+6144 -> 0.00000 -- rhs is 0
-dqfma2037 fma -0E-3 00.00 0e+6144 -> 0.00000 -- lhs is 0
-dqfma2038 fma 5.00 -1E-3 0e+6144 -> -0.00500
-dqfma2039 fma 00.00 -0.000 0e+6144 -> 0.00000
-dqfma2040 fma 00.00 -0E-3 0e+6144 -> 0.00000 -- rhs is 0
-dqfma2041 fma 0E-3 -00.00 0e+6144 -> 0.00000 -- lhs is 0
-dqfma2042 fma -5.00 -1E-3 0e+6144 -> 0.00500
-dqfma2043 fma -00.00 -0.000 0e+6144 -> 0.00000
-dqfma2044 fma -00.00 -0E-3 0e+6144 -> 0.00000 -- rhs is 0
-dqfma2045 fma -0E-3 -00.00 0e+6144 -> 0.00000 -- lhs is 0
-
--- examples from decarith
-dqfma2050 fma 1.20 3 0e+6144 -> 3.60
-dqfma2051 fma 7 3 0e+6144 -> 21
-dqfma2052 fma 0.9 0.8 0e+6144 -> 0.72
-dqfma2053 fma 0.9 -0 0e+6144 -> 0.0
-dqfma2054 fma 654321 654321 0e+6144 -> 428135971041
-
-dqfma2060 fma 123.45 1e7 0e+6144 -> 1.2345E+9
-dqfma2061 fma 123.45 1e8 0e+6144 -> 1.2345E+10
-dqfma2062 fma 123.45 1e+9 0e+6144 -> 1.2345E+11
-dqfma2063 fma 123.45 1e10 0e+6144 -> 1.2345E+12
-dqfma2064 fma 123.45 1e11 0e+6144 -> 1.2345E+13
-dqfma2065 fma 123.45 1e12 0e+6144 -> 1.2345E+14
-dqfma2066 fma 123.45 1e13 0e+6144 -> 1.2345E+15
-
-
--- test some intermediate lengths
--- 1234567890123456
-dqfma2080 fma 0.1 1230123456456789 0e+6144 -> 123012345645678.9
-dqfma2084 fma 0.1 1230123456456789 0e+6144 -> 123012345645678.9
-dqfma2090 fma 1230123456456789 0.1 0e+6144 -> 123012345645678.9
-dqfma2094 fma 1230123456456789 0.1 0e+6144 -> 123012345645678.9
-
--- test some more edge cases and carries
-dqfma2101 fma 9 9 0e+6144 -> 81
-dqfma2102 fma 9 90 0e+6144 -> 810
-dqfma2103 fma 9 900 0e+6144 -> 8100
-dqfma2104 fma 9 9000 0e+6144 -> 81000
-dqfma2105 fma 9 90000 0e+6144 -> 810000
-dqfma2106 fma 9 900000 0e+6144 -> 8100000
-dqfma2107 fma 9 9000000 0e+6144 -> 81000000
-dqfma2108 fma 9 90000000 0e+6144 -> 810000000
-dqfma2109 fma 9 900000000 0e+6144 -> 8100000000
-dqfma2110 fma 9 9000000000 0e+6144 -> 81000000000
-dqfma2111 fma 9 90000000000 0e+6144 -> 810000000000
-dqfma2112 fma 9 900000000000 0e+6144 -> 8100000000000
-dqfma2113 fma 9 9000000000000 0e+6144 -> 81000000000000
-dqfma2114 fma 9 90000000000000 0e+6144 -> 810000000000000
-dqfma2115 fma 9 900000000000000 0e+6144 -> 8100000000000000
---dqfma2116 fma 9 9000000000000000 0e+6144 -> 81000000000000000
---dqfma2117 fma 9 90000000000000000 0e+6144 -> 810000000000000000
---dqfma2118 fma 9 900000000000000000 0e+6144 -> 8100000000000000000
---dqfma2119 fma 9 9000000000000000000 0e+6144 -> 81000000000000000000
---dqfma2120 fma 9 90000000000000000000 0e+6144 -> 810000000000000000000
---dqfma2121 fma 9 900000000000000000000 0e+6144 -> 8100000000000000000000
---dqfma2122 fma 9 9000000000000000000000 0e+6144 -> 81000000000000000000000
---dqfma2123 fma 9 90000000000000000000000 0e+6144 -> 810000000000000000000000
--- test some more edge cases without carries
-dqfma2131 fma 3 3 0e+6144 -> 9
-dqfma2132 fma 3 30 0e+6144 -> 90
-dqfma2133 fma 3 300 0e+6144 -> 900
-dqfma2134 fma 3 3000 0e+6144 -> 9000
-dqfma2135 fma 3 30000 0e+6144 -> 90000
-dqfma2136 fma 3 300000 0e+6144 -> 900000
-dqfma2137 fma 3 3000000 0e+6144 -> 9000000
-dqfma2138 fma 3 30000000 0e+6144 -> 90000000
-dqfma2139 fma 3 300000000 0e+6144 -> 900000000
-dqfma2140 fma 3 3000000000 0e+6144 -> 9000000000
-dqfma2141 fma 3 30000000000 0e+6144 -> 90000000000
-dqfma2142 fma 3 300000000000 0e+6144 -> 900000000000
-dqfma2143 fma 3 3000000000000 0e+6144 -> 9000000000000
-dqfma2144 fma 3 30000000000000 0e+6144 -> 90000000000000
-dqfma2145 fma 3 300000000000000 0e+6144 -> 900000000000000
-dqfma2146 fma 3 3000000000000000 0e+6144 -> 9000000000000000
-dqfma2147 fma 3 30000000000000000 0e+6144 -> 90000000000000000
-dqfma2148 fma 3 300000000000000000 0e+6144 -> 900000000000000000
-dqfma2149 fma 3 3000000000000000000 0e+6144 -> 9000000000000000000
-dqfma2150 fma 3 30000000000000000000 0e+6144 -> 90000000000000000000
-dqfma2151 fma 3 300000000000000000000 0e+6144 -> 900000000000000000000
-dqfma2152 fma 3 3000000000000000000000 0e+6144 -> 9000000000000000000000
-dqfma2153 fma 3 30000000000000000000000 0e+6144 -> 90000000000000000000000
-
-dqfma2263 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0e+6144 -> 145433.2908011933696719165119928296 Inexact Rounded
-
--- test some edge cases with exact rounding
-dqfma2301 fma 900000000000000000 9 0e+6144 -> 8100000000000000000
-dqfma2302 fma 900000000000000000 90 0e+6144 -> 81000000000000000000
-dqfma2303 fma 900000000000000000 900 0e+6144 -> 810000000000000000000
-dqfma2304 fma 900000000000000000 9000 0e+6144 -> 8100000000000000000000
-dqfma2305 fma 900000000000000000 90000 0e+6144 -> 81000000000000000000000
-dqfma2306 fma 900000000000000000 900000 0e+6144 -> 810000000000000000000000
-dqfma2307 fma 900000000000000000 9000000 0e+6144 -> 8100000000000000000000000
-dqfma2308 fma 900000000000000000 90000000 0e+6144 -> 81000000000000000000000000
-dqfma2309 fma 900000000000000000 900000000 0e+6144 -> 810000000000000000000000000
-dqfma2310 fma 900000000000000000 9000000000 0e+6144 -> 8100000000000000000000000000
-dqfma2311 fma 900000000000000000 90000000000 0e+6144 -> 81000000000000000000000000000
-dqfma2312 fma 900000000000000000 900000000000 0e+6144 -> 810000000000000000000000000000
-dqfma2313 fma 900000000000000000 9000000000000 0e+6144 -> 8100000000000000000000000000000
-dqfma2314 fma 900000000000000000 90000000000000 0e+6144 -> 81000000000000000000000000000000
-dqfma2315 fma 900000000000000000 900000000000000 0e+6144 -> 810000000000000000000000000000000
-dqfma2316 fma 900000000000000000 9000000000000000 0e+6144 -> 8100000000000000000000000000000000
-dqfma2317 fma 9000000000000000000 9000000000000000 0e+6144 -> 8.100000000000000000000000000000000E+34 Rounded
-dqfma2318 fma 90000000000000000000 9000000000000000 0e+6144 -> 8.100000000000000000000000000000000E+35 Rounded
-dqfma2319 fma 900000000000000000000 9000000000000000 0e+6144 -> 8.100000000000000000000000000000000E+36 Rounded
-dqfma2320 fma 9000000000000000000000 9000000000000000 0e+6144 -> 8.100000000000000000000000000000000E+37 Rounded
-dqfma2321 fma 90000000000000000000000 9000000000000000 0e+6144 -> 8.100000000000000000000000000000000E+38 Rounded
-dqfma2322 fma 900000000000000000000000 9000000000000000 0e+6144 -> 8.100000000000000000000000000000000E+39 Rounded
-dqfma2323 fma 9000000000000000000000000 9000000000000000 0e+6144 -> 8.100000000000000000000000000000000E+40 Rounded
-
--- tryzeros cases
-dqfma2504 fma 0E-4260 1000E-4260 0e+6144 -> 0E-6176 Clamped
-dqfma2505 fma 100E+4260 0E+4260 0e+6144 -> 0E+6111 Clamped
-
--- mixed with zeros
-dqfma2541 fma 0 -1 0e+6144 -> 0
-dqfma2542 fma -0 -1 0e+6144 -> 0
-dqfma2543 fma 0 1 0e+6144 -> 0
-dqfma2544 fma -0 1 0e+6144 -> 0
-dqfma2545 fma -1 0 0e+6144 -> 0
-dqfma2546 fma -1 -0 0e+6144 -> 0
-dqfma2547 fma 1 0 0e+6144 -> 0
-dqfma2548 fma 1 -0 0e+6144 -> 0
-
-dqfma2551 fma 0.0 -1 0e+6144 -> 0.0
-dqfma2552 fma -0.0 -1 0e+6144 -> 0.0
-dqfma2553 fma 0.0 1 0e+6144 -> 0.0
-dqfma2554 fma -0.0 1 0e+6144 -> 0.0
-dqfma2555 fma -1.0 0 0e+6144 -> 0.0
-dqfma2556 fma -1.0 -0 0e+6144 -> 0.0
-dqfma2557 fma 1.0 0 0e+6144 -> 0.0
-dqfma2558 fma 1.0 -0 0e+6144 -> 0.0
-
-dqfma2561 fma 0 -1.0 0e+6144 -> 0.0
-dqfma2562 fma -0 -1.0 0e+6144 -> 0.0
-dqfma2563 fma 0 1.0 0e+6144 -> 0.0
-dqfma2564 fma -0 1.0 0e+6144 -> 0.0
-dqfma2565 fma -1 0.0 0e+6144 -> 0.0
-dqfma2566 fma -1 -0.0 0e+6144 -> 0.0
-dqfma2567 fma 1 0.0 0e+6144 -> 0.0
-dqfma2568 fma 1 -0.0 0e+6144 -> 0.0
-
-dqfma2571 fma 0.0 -1.0 0e+6144 -> 0.00
-dqfma2572 fma -0.0 -1.0 0e+6144 -> 0.00
-dqfma2573 fma 0.0 1.0 0e+6144 -> 0.00
-dqfma2574 fma -0.0 1.0 0e+6144 -> 0.00
-dqfma2575 fma -1.0 0.0 0e+6144 -> 0.00
-dqfma2576 fma -1.0 -0.0 0e+6144 -> 0.00
-dqfma2577 fma 1.0 0.0 0e+6144 -> 0.00
-dqfma2578 fma 1.0 -0.0 0e+6144 -> 0.00
-dqfma2579 fma 1.0 0.0 0e+6144 -> 0.00
-dqfma2530 fma -1.0 -0.0 0e+6144 -> 0.00
-dqfma2531 fma -1.0 0.0 0e+6144 -> 0.00
-dqfma2532 fma 1.0 -0.0 -0e+6144 -> -0.00
-dqfma2533 fma 1.0 0.0 -0e+6144 -> 0.00
-dqfma2534 fma -1.0 -0.0 -0e+6144 -> 0.00
-dqfma2535 fma -1.0 0.0 -0e+6144 -> -0.00
-
-
--- Specials
-dqfma2580 fma Inf -Inf 0e+6144 -> -Infinity
-dqfma2581 fma Inf -1000 0e+6144 -> -Infinity
-dqfma2582 fma Inf -1 0e+6144 -> -Infinity
-dqfma2583 fma Inf -0 0e+6144 -> NaN Invalid_operation
-dqfma2584 fma Inf 0 0e+6144 -> NaN Invalid_operation
-dqfma2585 fma Inf 1 0e+6144 -> Infinity
-dqfma2586 fma Inf 1000 0e+6144 -> Infinity
-dqfma2587 fma Inf Inf 0e+6144 -> Infinity
-dqfma2588 fma -1000 Inf 0e+6144 -> -Infinity
-dqfma2589 fma -Inf Inf 0e+6144 -> -Infinity
-dqfma2590 fma -1 Inf 0e+6144 -> -Infinity
-dqfma2591 fma -0 Inf 0e+6144 -> NaN Invalid_operation
-dqfma2592 fma 0 Inf 0e+6144 -> NaN Invalid_operation
-dqfma2593 fma 1 Inf 0e+6144 -> Infinity
-dqfma2594 fma 1000 Inf 0e+6144 -> Infinity
-dqfma2595 fma Inf Inf 0e+6144 -> Infinity
-
-dqfma2600 fma -Inf -Inf 0e+6144 -> Infinity
-dqfma2601 fma -Inf -1000 0e+6144 -> Infinity
-dqfma2602 fma -Inf -1 0e+6144 -> Infinity
-dqfma2603 fma -Inf -0 0e+6144 -> NaN Invalid_operation
-dqfma2604 fma -Inf 0 0e+6144 -> NaN Invalid_operation
-dqfma2605 fma -Inf 1 0e+6144 -> -Infinity
-dqfma2606 fma -Inf 1000 0e+6144 -> -Infinity
-dqfma2607 fma -Inf Inf 0e+6144 -> -Infinity
-dqfma2608 fma -1000 Inf 0e+6144 -> -Infinity
-dqfma2609 fma -Inf -Inf 0e+6144 -> Infinity
-dqfma2610 fma -1 -Inf 0e+6144 -> Infinity
-dqfma2611 fma -0 -Inf 0e+6144 -> NaN Invalid_operation
-dqfma2612 fma 0 -Inf 0e+6144 -> NaN Invalid_operation
-dqfma2613 fma 1 -Inf 0e+6144 -> -Infinity
-dqfma2614 fma 1000 -Inf 0e+6144 -> -Infinity
-dqfma2615 fma Inf -Inf 0e+6144 -> -Infinity
-
-dqfma2621 fma NaN -Inf 0e+6144 -> NaN
-dqfma2622 fma NaN -1000 0e+6144 -> NaN
-dqfma2623 fma NaN -1 0e+6144 -> NaN
-dqfma2624 fma NaN -0 0e+6144 -> NaN
-dqfma2625 fma NaN 0 0e+6144 -> NaN
-dqfma2626 fma NaN 1 0e+6144 -> NaN
-dqfma2627 fma NaN 1000 0e+6144 -> NaN
-dqfma2628 fma NaN Inf 0e+6144 -> NaN
-dqfma2629 fma NaN NaN 0e+6144 -> NaN
-dqfma2630 fma -Inf NaN 0e+6144 -> NaN
-dqfma2631 fma -1000 NaN 0e+6144 -> NaN
-dqfma2632 fma -1 NaN 0e+6144 -> NaN
-dqfma2633 fma -0 NaN 0e+6144 -> NaN
-dqfma2634 fma 0 NaN 0e+6144 -> NaN
-dqfma2635 fma 1 NaN 0e+6144 -> NaN
-dqfma2636 fma 1000 NaN 0e+6144 -> NaN
-dqfma2637 fma Inf NaN 0e+6144 -> NaN
-
-dqfma2641 fma sNaN -Inf 0e+6144 -> NaN Invalid_operation
-dqfma2642 fma sNaN -1000 0e+6144 -> NaN Invalid_operation
-dqfma2643 fma sNaN -1 0e+6144 -> NaN Invalid_operation
-dqfma2644 fma sNaN -0 0e+6144 -> NaN Invalid_operation
-dqfma2645 fma sNaN 0 0e+6144 -> NaN Invalid_operation
-dqfma2646 fma sNaN 1 0e+6144 -> NaN Invalid_operation
-dqfma2647 fma sNaN 1000 0e+6144 -> NaN Invalid_operation
-dqfma2648 fma sNaN NaN 0e+6144 -> NaN Invalid_operation
-dqfma2649 fma sNaN sNaN 0e+6144 -> NaN Invalid_operation
-dqfma2650 fma NaN sNaN 0e+6144 -> NaN Invalid_operation
-dqfma2651 fma -Inf sNaN 0e+6144 -> NaN Invalid_operation
-dqfma2652 fma -1000 sNaN 0e+6144 -> NaN Invalid_operation
-dqfma2653 fma -1 sNaN 0e+6144 -> NaN Invalid_operation
-dqfma2654 fma -0 sNaN 0e+6144 -> NaN Invalid_operation
-dqfma2655 fma 0 sNaN 0e+6144 -> NaN Invalid_operation
-dqfma2656 fma 1 sNaN 0e+6144 -> NaN Invalid_operation
-dqfma2657 fma 1000 sNaN 0e+6144 -> NaN Invalid_operation
-dqfma2658 fma Inf sNaN 0e+6144 -> NaN Invalid_operation
-dqfma2659 fma NaN sNaN 0e+6144 -> NaN Invalid_operation
-
--- propagating NaNs
-dqfma2661 fma NaN9 -Inf 0e+6144 -> NaN9
-dqfma2662 fma NaN8 999 0e+6144 -> NaN8
-dqfma2663 fma NaN71 Inf 0e+6144 -> NaN71
-dqfma2664 fma NaN6 NaN5 0e+6144 -> NaN6
-dqfma2665 fma -Inf NaN4 0e+6144 -> NaN4
-dqfma2666 fma -999 NaN33 0e+6144 -> NaN33
-dqfma2667 fma Inf NaN2 0e+6144 -> NaN2
-
-dqfma2671 fma sNaN99 -Inf 0e+6144 -> NaN99 Invalid_operation
-dqfma2672 fma sNaN98 -11 0e+6144 -> NaN98 Invalid_operation
-dqfma2673 fma sNaN97 NaN 0e+6144 -> NaN97 Invalid_operation
-dqfma2674 fma sNaN16 sNaN94 0e+6144 -> NaN16 Invalid_operation
-dqfma2675 fma NaN95 sNaN93 0e+6144 -> NaN93 Invalid_operation
-dqfma2676 fma -Inf sNaN92 0e+6144 -> NaN92 Invalid_operation
-dqfma2677 fma 088 sNaN91 0e+6144 -> NaN91 Invalid_operation
-dqfma2678 fma Inf sNaN90 0e+6144 -> NaN90 Invalid_operation
-dqfma2679 fma NaN sNaN89 0e+6144 -> NaN89 Invalid_operation
-
-dqfma2681 fma -NaN9 -Inf 0e+6144 -> -NaN9
-dqfma2682 fma -NaN8 999 0e+6144 -> -NaN8
-dqfma2683 fma -NaN71 Inf 0e+6144 -> -NaN71
-dqfma2684 fma -NaN6 -NaN5 0e+6144 -> -NaN6
-dqfma2685 fma -Inf -NaN4 0e+6144 -> -NaN4
-dqfma2686 fma -999 -NaN33 0e+6144 -> -NaN33
-dqfma2687 fma Inf -NaN2 0e+6144 -> -NaN2
-
-dqfma2691 fma -sNaN99 -Inf 0e+6144 -> -NaN99 Invalid_operation
-dqfma2692 fma -sNaN98 -11 0e+6144 -> -NaN98 Invalid_operation
-dqfma2693 fma -sNaN97 NaN 0e+6144 -> -NaN97 Invalid_operation
-dqfma2694 fma -sNaN16 -sNaN94 0e+6144 -> -NaN16 Invalid_operation
-dqfma2695 fma -NaN95 -sNaN93 0e+6144 -> -NaN93 Invalid_operation
-dqfma2696 fma -Inf -sNaN92 0e+6144 -> -NaN92 Invalid_operation
-dqfma2697 fma 088 -sNaN91 0e+6144 -> -NaN91 Invalid_operation
-dqfma2698 fma Inf -sNaN90 0e+6144 -> -NaN90 Invalid_operation
-dqfma2699 fma -NaN -sNaN89 0e+6144 -> -NaN89 Invalid_operation
-
-dqfma2701 fma -NaN -Inf 0e+6144 -> -NaN
-dqfma2702 fma -NaN 999 0e+6144 -> -NaN
-dqfma2703 fma -NaN Inf 0e+6144 -> -NaN
-dqfma2704 fma -NaN -NaN 0e+6144 -> -NaN
-dqfma2705 fma -Inf -NaN0 0e+6144 -> -NaN
-dqfma2706 fma -999 -NaN 0e+6144 -> -NaN
-dqfma2707 fma Inf -NaN 0e+6144 -> -NaN
-
-dqfma2711 fma -sNaN -Inf 0e+6144 -> -NaN Invalid_operation
-dqfma2712 fma -sNaN -11 0e+6144 -> -NaN Invalid_operation
-dqfma2713 fma -sNaN00 NaN 0e+6144 -> -NaN Invalid_operation
-dqfma2714 fma -sNaN -sNaN 0e+6144 -> -NaN Invalid_operation
-dqfma2715 fma -NaN -sNaN 0e+6144 -> -NaN Invalid_operation
-dqfma2716 fma -Inf -sNaN 0e+6144 -> -NaN Invalid_operation
-dqfma2717 fma 088 -sNaN 0e+6144 -> -NaN Invalid_operation
-dqfma2718 fma Inf -sNaN 0e+6144 -> -NaN Invalid_operation
-dqfma2719 fma -NaN -sNaN 0e+6144 -> -NaN Invalid_operation
-
--- overflow and underflow tests .. note subnormal results
--- signs
-dqfma2751 fma 1e+4277 1e+3311 0e+6144 -> Infinity Overflow Inexact Rounded
-dqfma2752 fma 1e+4277 -1e+3311 0e+6144 -> -Infinity Overflow Inexact Rounded
-dqfma2753 fma -1e+4277 1e+3311 0e+6144 -> -Infinity Overflow Inexact Rounded
-dqfma2754 fma -1e+4277 -1e+3311 0e+6144 -> Infinity Overflow Inexact Rounded
-dqfma2755 fma 1e-4277 1e-3311 0e+6144 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqfma2756 fma 1e-4277 -1e-3311 0e+6144 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqfma2757 fma -1e-4277 1e-3311 0e+6144 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqfma2758 fma -1e-4277 -1e-3311 0e+6144 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-
--- 'subnormal' boundary (all hard underflow or overflow in base arithemtic)
-dqfma2760 fma 1e-6069 1e-101 0e+6144 -> 1E-6170 Subnormal
-dqfma2761 fma 1e-6069 1e-102 0e+6144 -> 1E-6171 Subnormal
-dqfma2762 fma 1e-6069 1e-103 0e+6144 -> 1E-6172 Subnormal
-dqfma2763 fma 1e-6069 1e-104 0e+6144 -> 1E-6173 Subnormal
-dqfma2764 fma 1e-6069 1e-105 0e+6144 -> 1E-6174 Subnormal
-dqfma2765 fma 1e-6069 1e-106 0e+6144 -> 1E-6175 Subnormal
-dqfma2766 fma 1e-6069 1e-107 0e+6144 -> 1E-6176 Subnormal
-dqfma2767 fma 1e-6069 1e-108 0e+6144 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqfma2768 fma 1e-6069 1e-109 0e+6144 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqfma2769 fma 1e-6069 1e-110 0e+6144 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
--- [no equivalent of 'subnormal' for overflow]
-dqfma2770 fma 1e+40 1e+6101 0e+6144 -> 1.000000000000000000000000000000E+6141 Clamped
-dqfma2771 fma 1e+40 1e+6102 0e+6144 -> 1.0000000000000000000000000000000E+6142 Clamped
-dqfma2772 fma 1e+40 1e+6103 0e+6144 -> 1.00000000000000000000000000000000E+6143 Clamped
-dqfma2773 fma 1e+40 1e+6104 0e+6144 -> 1.000000000000000000000000000000000E+6144 Clamped
-dqfma2774 fma 1e+40 1e+6105 0e+6144 -> Infinity Overflow Inexact Rounded
-dqfma2775 fma 1e+40 1e+6106 0e+6144 -> Infinity Overflow Inexact Rounded
-dqfma2776 fma 1e+40 1e+6107 0e+6144 -> Infinity Overflow Inexact Rounded
-dqfma2777 fma 1e+40 1e+6108 0e+6144 -> Infinity Overflow Inexact Rounded
-dqfma2778 fma 1e+40 1e+6109 0e+6144 -> Infinity Overflow Inexact Rounded
-dqfma2779 fma 1e+40 1e+6110 0e+6144 -> Infinity Overflow Inexact Rounded
-
-dqfma2801 fma 1.0000E-6172 1 0e+6144 -> 1.0000E-6172 Subnormal
-dqfma2802 fma 1.000E-6172 1e-1 0e+6144 -> 1.000E-6173 Subnormal
-dqfma2803 fma 1.00E-6172 1e-2 0e+6144 -> 1.00E-6174 Subnormal
-dqfma2804 fma 1.0E-6172 1e-3 0e+6144 -> 1.0E-6175 Subnormal
-dqfma2805 fma 1.0E-6172 1e-4 0e+6144 -> 1E-6176 Subnormal Rounded
-dqfma2806 fma 1.3E-6172 1e-4 0e+6144 -> 1E-6176 Underflow Subnormal Inexact Rounded
-dqfma2807 fma 1.5E-6172 1e-4 0e+6144 -> 2E-6176 Underflow Subnormal Inexact Rounded
-dqfma2808 fma 1.7E-6172 1e-4 0e+6144 -> 2E-6176 Underflow Subnormal Inexact Rounded
-dqfma2809 fma 2.3E-6172 1e-4 0e+6144 -> 2E-6176 Underflow Subnormal Inexact Rounded
-dqfma2810 fma 2.5E-6172 1e-4 0e+6144 -> 2E-6176 Underflow Subnormal Inexact Rounded
-dqfma2811 fma 2.7E-6172 1e-4 0e+6144 -> 3E-6176 Underflow Subnormal Inexact Rounded
-dqfma2812 fma 1.49E-6172 1e-4 0e+6144 -> 1E-6176 Underflow Subnormal Inexact Rounded
-dqfma2813 fma 1.50E-6172 1e-4 0e+6144 -> 2E-6176 Underflow Subnormal Inexact Rounded
-dqfma2814 fma 1.51E-6172 1e-4 0e+6144 -> 2E-6176 Underflow Subnormal Inexact Rounded
-dqfma2815 fma 2.49E-6172 1e-4 0e+6144 -> 2E-6176 Underflow Subnormal Inexact Rounded
-dqfma2816 fma 2.50E-6172 1e-4 0e+6144 -> 2E-6176 Underflow Subnormal Inexact Rounded
-dqfma2817 fma 2.51E-6172 1e-4 0e+6144 -> 3E-6176 Underflow Subnormal Inexact Rounded
-
-dqfma2818 fma 1E-6172 1e-4 0e+6144 -> 1E-6176 Subnormal
-dqfma2819 fma 3E-6172 1e-5 0e+6144 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqfma2820 fma 5E-6172 1e-5 0e+6144 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqfma2821 fma 7E-6172 1e-5 0e+6144 -> 1E-6176 Underflow Subnormal Inexact Rounded
-dqfma2822 fma 9E-6172 1e-5 0e+6144 -> 1E-6176 Underflow Subnormal Inexact Rounded
-dqfma2823 fma 9.9E-6172 1e-5 0e+6144 -> 1E-6176 Underflow Subnormal Inexact Rounded
-
-dqfma2824 fma 1E-6172 -1e-4 0e+6144 -> -1E-6176 Subnormal
-dqfma2825 fma 3E-6172 -1e-5 0e+6144 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqfma2826 fma -5E-6172 1e-5 0e+6144 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqfma2827 fma 7E-6172 -1e-5 0e+6144 -> -1E-6176 Underflow Subnormal Inexact Rounded
-dqfma2828 fma -9E-6172 1e-5 0e+6144 -> -1E-6176 Underflow Subnormal Inexact Rounded
-dqfma2829 fma 9.9E-6172 -1e-5 0e+6144 -> -1E-6176 Underflow Subnormal Inexact Rounded
-dqfma2830 fma 3.0E-6172 -1e-5 0e+6144 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped
-
-dqfma2831 fma 1.0E-5977 1e-200 0e+6144 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqfma2832 fma 1.0E-5977 1e-199 0e+6144 -> 1E-6176 Subnormal Rounded
-dqfma2833 fma 1.0E-5977 1e-198 0e+6144 -> 1.0E-6175 Subnormal
-dqfma2834 fma 2.0E-5977 2e-198 0e+6144 -> 4.0E-6175 Subnormal
-dqfma2835 fma 4.0E-5977 4e-198 0e+6144 -> 1.60E-6174 Subnormal
-dqfma2836 fma 10.0E-5977 10e-198 0e+6144 -> 1.000E-6173 Subnormal
-dqfma2837 fma 30.0E-5977 30e-198 0e+6144 -> 9.000E-6173 Subnormal
-dqfma2838 fma 40.0E-5982 40e-166 0e+6144 -> 1.6000E-6145 Subnormal
-dqfma2839 fma 40.0E-5982 40e-165 0e+6144 -> 1.6000E-6144 Subnormal
-dqfma2840 fma 40.0E-5982 40e-164 0e+6144 -> 1.6000E-6143
-
--- Long operand overflow may be a different path
-dqfma2870 fma 100 9.999E+6143 0e+6144 -> Infinity Inexact Overflow Rounded
-dqfma2871 fma 100 -9.999E+6143 0e+6144 -> -Infinity Inexact Overflow Rounded
-dqfma2872 fma 9.999E+6143 100 0e+6144 -> Infinity Inexact Overflow Rounded
-dqfma2873 fma -9.999E+6143 100 0e+6144 -> -Infinity Inexact Overflow Rounded
-
--- check for double-rounded subnormals
-dqfma2881 fma 1.2347E-6133 1.2347E-40 0e+6144 -> 1.524E-6173 Inexact Rounded Subnormal Underflow
-dqfma2882 fma 1.234E-6133 1.234E-40 0e+6144 -> 1.523E-6173 Inexact Rounded Subnormal Underflow
-dqfma2883 fma 1.23E-6133 1.23E-40 0e+6144 -> 1.513E-6173 Inexact Rounded Subnormal Underflow
-dqfma2884 fma 1.2E-6133 1.2E-40 0e+6144 -> 1.44E-6173 Subnormal
-dqfma2885 fma 1.2E-6133 1.2E-41 0e+6144 -> 1.44E-6174 Subnormal
-dqfma2886 fma 1.2E-6133 1.2E-42 0e+6144 -> 1.4E-6175 Subnormal Inexact Rounded Underflow
-dqfma2887 fma 1.2E-6133 1.3E-42 0e+6144 -> 1.6E-6175 Subnormal Inexact Rounded Underflow
-dqfma2888 fma 1.3E-6133 1.3E-42 0e+6144 -> 1.7E-6175 Subnormal Inexact Rounded Underflow
-dqfma2889 fma 1.3E-6133 1.3E-43 0e+6144 -> 2E-6176 Subnormal Inexact Rounded Underflow
-dqfma2890 fma 1.3E-6134 1.3E-43 0e+6144 -> 0E-6176 Clamped Subnormal Inexact Rounded Underflow
-
-dqfma2891 fma 1.2345E-39 1.234E-6133 0e+6144 -> 1.5234E-6172 Inexact Rounded Subnormal Underflow
-dqfma2892 fma 1.23456E-39 1.234E-6133 0e+6144 -> 1.5234E-6172 Inexact Rounded Subnormal Underflow
-dqfma2893 fma 1.2345E-40 1.234E-6133 0e+6144 -> 1.523E-6173 Inexact Rounded Subnormal Underflow
-dqfma2894 fma 1.23456E-40 1.234E-6133 0e+6144 -> 1.523E-6173 Inexact Rounded Subnormal Underflow
-dqfma2895 fma 1.2345E-41 1.234E-6133 0e+6144 -> 1.52E-6174 Inexact Rounded Subnormal Underflow
-dqfma2896 fma 1.23456E-41 1.234E-6133 0e+6144 -> 1.52E-6174 Inexact Rounded Subnormal Underflow
-
--- Now explore the case where we get a normal result with Underflow
--- prove operands are exact
-dqfma2906 fma 9.999999999999999999999999999999999E-6143 1 0e+6144 -> 9.999999999999999999999999999999999E-6143
-dqfma2907 fma 1 0.09999999999999999999999999999999999 0e+6144 -> 0.09999999999999999999999999999999999
--- the next rounds to Nmin
-dqfma2908 fma 9.999999999999999999999999999999999E-6143 0.09999999999999999999999999999999999 0e+6144 -> 1.000000000000000000000000000000000E-6143 Underflow Inexact Subnormal Rounded
-
--- hugest
-dqfma2909 fma 9999999999999999999999999999999999 9999999999999999999999999999999999 0e+6144 -> 9.999999999999999999999999999999998E+67 Inexact Rounded
-
--- Examples from SQL proposal (Krishna Kulkarni)
-precision: 34
-rounding: half_up
-maxExponent: 6144
-minExponent: -6143
-dqfma21001 fma 130E-2 120E-2 0e+6144 -> 1.5600
-dqfma21002 fma 130E-2 12E-1 0e+6144 -> 1.560
-dqfma21003 fma 130E-2 1E0 0e+6144 -> 1.30
-dqfma21004 fma 1E2 1E4 0e+6144 -> 1E+6
-
--- Null tests
-dqfma2990 fma 10 # 0e+6144 -> NaN Invalid_operation
-dqfma2991 fma # 10 0e+6144 -> NaN Invalid_operation
-
-
--- ADDITION TESTS ------------------------------------------------------
-rounding: half_even
-
--- [first group are 'quick confidence check']
-dqadd3001 fma 1 1 1 -> 2
-dqadd3002 fma 1 2 3 -> 5
-dqadd3003 fma 1 '5.75' '3.3' -> 9.05
-dqadd3004 fma 1 '5' '-3' -> 2
-dqadd3005 fma 1 '-5' '-3' -> -8
-dqadd3006 fma 1 '-7' '2.5' -> -4.5
-dqadd3007 fma 1 '0.7' '0.3' -> 1.0
-dqadd3008 fma 1 '1.25' '1.25' -> 2.50
-dqadd3009 fma 1 '1.23456789' '1.00000000' -> '2.23456789'
-dqadd3010 fma 1 '1.23456789' '1.00000011' -> '2.23456800'
-
--- 1234567890123456 1234567890123456
-dqadd3011 fma 1 '0.4444444444444444444444444444444446' '0.5555555555555555555555555555555555' -> '1.000000000000000000000000000000000' Inexact Rounded
-dqadd3012 fma 1 '0.4444444444444444444444444444444445' '0.5555555555555555555555555555555555' -> '1.000000000000000000000000000000000' Rounded
-dqadd3013 fma 1 '0.4444444444444444444444444444444444' '0.5555555555555555555555555555555555' -> '0.9999999999999999999999999999999999'
-dqadd3014 fma 1 '4444444444444444444444444444444444' '0.49' -> '4444444444444444444444444444444444' Inexact Rounded
-dqadd3015 fma 1 '4444444444444444444444444444444444' '0.499' -> '4444444444444444444444444444444444' Inexact Rounded
-dqadd3016 fma 1 '4444444444444444444444444444444444' '0.4999' -> '4444444444444444444444444444444444' Inexact Rounded
-dqadd3017 fma 1 '4444444444444444444444444444444444' '0.5000' -> '4444444444444444444444444444444444' Inexact Rounded
-dqadd3018 fma 1 '4444444444444444444444444444444444' '0.5001' -> '4444444444444444444444444444444445' Inexact Rounded
-dqadd3019 fma 1 '4444444444444444444444444444444444' '0.501' -> '4444444444444444444444444444444445' Inexact Rounded
-dqadd3020 fma 1 '4444444444444444444444444444444444' '0.51' -> '4444444444444444444444444444444445' Inexact Rounded
-
-dqadd3021 fma 1 0 1 -> 1
-dqadd3022 fma 1 1 1 -> 2
-dqadd3023 fma 1 2 1 -> 3
-dqadd3024 fma 1 3 1 -> 4
-dqadd3025 fma 1 4 1 -> 5
-dqadd3026 fma 1 5 1 -> 6
-dqadd3027 fma 1 6 1 -> 7
-dqadd3028 fma 1 7 1 -> 8
-dqadd3029 fma 1 8 1 -> 9
-dqadd3030 fma 1 9 1 -> 10
-
--- some carrying effects
-dqadd3031 fma 1 '0.9998' '0.0000' -> '0.9998'
-dqadd3032 fma 1 '0.9998' '0.0001' -> '0.9999'
-dqadd3033 fma 1 '0.9998' '0.0002' -> '1.0000'
-dqadd3034 fma 1 '0.9998' '0.0003' -> '1.0001'
-
-dqadd3035 fma 1 '70' '10000e+34' -> '1.000000000000000000000000000000000E+38' Inexact Rounded
-dqadd3036 fma 1 '700' '10000e+34' -> '1.000000000000000000000000000000000E+38' Inexact Rounded
-dqadd3037 fma 1 '7000' '10000e+34' -> '1.000000000000000000000000000000000E+38' Inexact Rounded
-dqadd3038 fma 1 '70000' '10000e+34' -> '1.000000000000000000000000000000001E+38' Inexact Rounded
-dqadd3039 fma 1 '700000' '10000e+34' -> '1.000000000000000000000000000000007E+38' Rounded
-
--- symmetry:
-dqadd3040 fma 1 '10000e+34' '70' -> '1.000000000000000000000000000000000E+38' Inexact Rounded
-dqadd3041 fma 1 '10000e+34' '700' -> '1.000000000000000000000000000000000E+38' Inexact Rounded
-dqadd3042 fma 1 '10000e+34' '7000' -> '1.000000000000000000000000000000000E+38' Inexact Rounded
-dqadd3044 fma 1 '10000e+34' '70000' -> '1.000000000000000000000000000000001E+38' Inexact Rounded
-dqadd3045 fma 1 '10000e+34' '700000' -> '1.000000000000000000000000000000007E+38' Rounded
-
--- same, without rounding
-dqadd3046 fma 1 '10000e+9' '7' -> '10000000000007'
-dqadd3047 fma 1 '10000e+9' '70' -> '10000000000070'
-dqadd3048 fma 1 '10000e+9' '700' -> '10000000000700'
-dqadd3049 fma 1 '10000e+9' '7000' -> '10000000007000'
-dqadd3050 fma 1 '10000e+9' '70000' -> '10000000070000'
-dqadd3051 fma 1 '10000e+9' '700000' -> '10000000700000'
-dqadd3052 fma 1 '10000e+9' '7000000' -> '10000007000000'
-
--- examples from decarith
-dqadd3053 fma 1 '12' '7.00' -> '19.00'
-dqadd3054 fma 1 '1.3' '-1.07' -> '0.23'
-dqadd3055 fma 1 '1.3' '-1.30' -> '0.00'
-dqadd3056 fma 1 '1.3' '-2.07' -> '-0.77'
-dqadd3057 fma 1 '1E+2' '1E+4' -> '1.01E+4'
-
--- leading zero preservation
-dqadd3061 fma 1 1 '0.0001' -> '1.0001'
-dqadd3062 fma 1 1 '0.00001' -> '1.00001'
-dqadd3063 fma 1 1 '0.000001' -> '1.000001'
-dqadd3064 fma 1 1 '0.0000001' -> '1.0000001'
-dqadd3065 fma 1 1 '0.00000001' -> '1.00000001'
-
--- some funny zeros [in case of bad signum]
-dqadd3070 fma 1 1 0 -> 1
-dqadd3071 fma 1 1 0. -> 1
-dqadd3072 fma 1 1 .0 -> 1.0
-dqadd3073 fma 1 1 0.0 -> 1.0
-dqadd3074 fma 1 1 0.00 -> 1.00
-dqadd3075 fma 1 0 1 -> 1
-dqadd3076 fma 1 0. 1 -> 1
-dqadd3077 fma 1 .0 1 -> 1.0
-dqadd3078 fma 1 0.0 1 -> 1.0
-dqadd3079 fma 1 0.00 1 -> 1.00
-
--- some carries
-dqadd3080 fma 1 999999998 1 -> 999999999
-dqadd3081 fma 1 999999999 1 -> 1000000000
-dqadd3082 fma 1 99999999 1 -> 100000000
-dqadd3083 fma 1 9999999 1 -> 10000000
-dqadd3084 fma 1 999999 1 -> 1000000
-dqadd3085 fma 1 99999 1 -> 100000
-dqadd3086 fma 1 9999 1 -> 10000
-dqadd3087 fma 1 999 1 -> 1000
-dqadd3088 fma 1 99 1 -> 100
-dqadd3089 fma 1 9 1 -> 10
-
-
--- more LHS swaps
-dqadd3090 fma 1 '-56267E-10' 0 -> '-0.0000056267'
-dqadd3091 fma 1 '-56267E-6' 0 -> '-0.056267'
-dqadd3092 fma 1 '-56267E-5' 0 -> '-0.56267'
-dqadd3093 fma 1 '-56267E-4' 0 -> '-5.6267'
-dqadd3094 fma 1 '-56267E-3' 0 -> '-56.267'
-dqadd3095 fma 1 '-56267E-2' 0 -> '-562.67'
-dqadd3096 fma 1 '-56267E-1' 0 -> '-5626.7'
-dqadd3097 fma 1 '-56267E-0' 0 -> '-56267'
-dqadd3098 fma 1 '-5E-10' 0 -> '-5E-10'
-dqadd3099 fma 1 '-5E-7' 0 -> '-5E-7'
-dqadd3100 fma 1 '-5E-6' 0 -> '-0.000005'
-dqadd3101 fma 1 '-5E-5' 0 -> '-0.00005'
-dqadd3102 fma 1 '-5E-4' 0 -> '-0.0005'
-dqadd3103 fma 1 '-5E-1' 0 -> '-0.5'
-dqadd3104 fma 1 '-5E0' 0 -> '-5'
-dqadd3105 fma 1 '-5E1' 0 -> '-50'
-dqadd3106 fma 1 '-5E5' 0 -> '-500000'
-dqadd3107 fma 1 '-5E33' 0 -> '-5000000000000000000000000000000000'
-dqadd3108 fma 1 '-5E34' 0 -> '-5.000000000000000000000000000000000E+34' Rounded
-dqadd3109 fma 1 '-5E35' 0 -> '-5.000000000000000000000000000000000E+35' Rounded
-dqadd3110 fma 1 '-5E36' 0 -> '-5.000000000000000000000000000000000E+36' Rounded
-dqadd3111 fma 1 '-5E100' 0 -> '-5.000000000000000000000000000000000E+100' Rounded
-
--- more RHS swaps
-dqadd3113 fma 1 0 '-56267E-10' -> '-0.0000056267'
-dqadd3114 fma 1 0 '-56267E-6' -> '-0.056267'
-dqadd3116 fma 1 0 '-56267E-5' -> '-0.56267'
-dqadd3117 fma 1 0 '-56267E-4' -> '-5.6267'
-dqadd3119 fma 1 0 '-56267E-3' -> '-56.267'
-dqadd3120 fma 1 0 '-56267E-2' -> '-562.67'
-dqadd3121 fma 1 0 '-56267E-1' -> '-5626.7'
-dqadd3122 fma 1 0 '-56267E-0' -> '-56267'
-dqadd3123 fma 1 0 '-5E-10' -> '-5E-10'
-dqadd3124 fma 1 0 '-5E-7' -> '-5E-7'
-dqadd3125 fma 1 0 '-5E-6' -> '-0.000005'
-dqadd3126 fma 1 0 '-5E-5' -> '-0.00005'
-dqadd3127 fma 1 0 '-5E-4' -> '-0.0005'
-dqadd3128 fma 1 0 '-5E-1' -> '-0.5'
-dqadd3129 fma 1 0 '-5E0' -> '-5'
-dqadd3130 fma 1 0 '-5E1' -> '-50'
-dqadd3131 fma 1 0 '-5E5' -> '-500000'
-dqadd3132 fma 1 0 '-5E33' -> '-5000000000000000000000000000000000'
-dqadd3133 fma 1 0 '-5E34' -> '-5.000000000000000000000000000000000E+34' Rounded
-dqadd3134 fma 1 0 '-5E35' -> '-5.000000000000000000000000000000000E+35' Rounded
-dqadd3135 fma 1 0 '-5E36' -> '-5.000000000000000000000000000000000E+36' Rounded
-dqadd3136 fma 1 0 '-5E100' -> '-5.000000000000000000000000000000000E+100' Rounded
-
--- related
-dqadd3137 fma 1 1 '0E-39' -> '1.000000000000000000000000000000000' Rounded
-dqadd3138 fma 1 -1 '0E-39' -> '-1.000000000000000000000000000000000' Rounded
-dqadd3139 fma 1 '0E-39' 1 -> '1.000000000000000000000000000000000' Rounded
-dqadd3140 fma 1 '0E-39' -1 -> '-1.000000000000000000000000000000000' Rounded
-dqadd3141 fma 1 1E+29 0.0000 -> '100000000000000000000000000000.0000'
-dqadd3142 fma 1 1E+29 0.00000 -> '100000000000000000000000000000.0000' Rounded
-dqadd3143 fma 1 0.000 1E+30 -> '1000000000000000000000000000000.000'
-dqadd3144 fma 1 0.0000 1E+30 -> '1000000000000000000000000000000.000' Rounded
-
--- [some of the next group are really constructor tests]
-dqadd3146 fma 1 '00.0' 0 -> '0.0'
-dqadd3147 fma 1 '0.00' 0 -> '0.00'
-dqadd3148 fma 1 0 '0.00' -> '0.00'
-dqadd3149 fma 1 0 '00.0' -> '0.0'
-dqadd3150 fma 1 '00.0' '0.00' -> '0.00'
-dqadd3151 fma 1 '0.00' '00.0' -> '0.00'
-dqadd3152 fma 1 '3' '.3' -> '3.3'
-dqadd3153 fma 1 '3.' '.3' -> '3.3'
-dqadd3154 fma 1 '3.0' '.3' -> '3.3'
-dqadd3155 fma 1 '3.00' '.3' -> '3.30'
-dqadd3156 fma 1 '3' '3' -> '6'
-dqadd3157 fma 1 '3' '+3' -> '6'
-dqadd3158 fma 1 '3' '-3' -> '0'
-dqadd3159 fma 1 '0.3' '-0.3' -> '0.0'
-dqadd3160 fma 1 '0.03' '-0.03' -> '0.00'
-
--- try borderline precision, with carries, etc.
-dqadd3161 fma 1 '1E+12' '-1' -> '999999999999'
-dqadd3162 fma 1 '1E+12' '1.11' -> '1000000000001.11'
-dqadd3163 fma 1 '1.11' '1E+12' -> '1000000000001.11'
-dqadd3164 fma 1 '-1' '1E+12' -> '999999999999'
-dqadd3165 fma 1 '7E+12' '-1' -> '6999999999999'
-dqadd3166 fma 1 '7E+12' '1.11' -> '7000000000001.11'
-dqadd3167 fma 1 '1.11' '7E+12' -> '7000000000001.11'
-dqadd3168 fma 1 '-1' '7E+12' -> '6999999999999'
-
-rounding: half_up
-dqadd3170 fma 1 '4.444444444444444444444444444444444' '0.5555555555555555555555555555555567' -> '5.000000000000000000000000000000001' Inexact Rounded
-dqadd3171 fma 1 '4.444444444444444444444444444444444' '0.5555555555555555555555555555555566' -> '5.000000000000000000000000000000001' Inexact Rounded
-dqadd3172 fma 1 '4.444444444444444444444444444444444' '0.5555555555555555555555555555555565' -> '5.000000000000000000000000000000001' Inexact Rounded
-dqadd3173 fma 1 '4.444444444444444444444444444444444' '0.5555555555555555555555555555555564' -> '5.000000000000000000000000000000000' Inexact Rounded
-dqadd3174 fma 1 '4.444444444444444444444444444444444' '0.5555555555555555555555555555555553' -> '4.999999999999999999999999999999999' Inexact Rounded
-dqadd3175 fma 1 '4.444444444444444444444444444444444' '0.5555555555555555555555555555555552' -> '4.999999999999999999999999999999999' Inexact Rounded
-dqadd3176 fma 1 '4.444444444444444444444444444444444' '0.5555555555555555555555555555555551' -> '4.999999999999999999999999999999999' Inexact Rounded
-dqadd3177 fma 1 '4.444444444444444444444444444444444' '0.5555555555555555555555555555555550' -> '4.999999999999999999999999999999999' Rounded
-dqadd3178 fma 1 '4.444444444444444444444444444444444' '0.5555555555555555555555555555555545' -> '4.999999999999999999999999999999999' Inexact Rounded
-dqadd3179 fma 1 '4.444444444444444444444444444444444' '0.5555555555555555555555555555555544' -> '4.999999999999999999999999999999998' Inexact Rounded
-dqadd3180 fma 1 '4.444444444444444444444444444444444' '0.5555555555555555555555555555555543' -> '4.999999999999999999999999999999998' Inexact Rounded
-dqadd3181 fma 1 '4.444444444444444444444444444444444' '0.5555555555555555555555555555555542' -> '4.999999999999999999999999999999998' Inexact Rounded
-dqadd3182 fma 1 '4.444444444444444444444444444444444' '0.5555555555555555555555555555555541' -> '4.999999999999999999999999999999998' Inexact Rounded
-dqadd3183 fma 1 '4.444444444444444444444444444444444' '0.5555555555555555555555555555555540' -> '4.999999999999999999999999999999998' Rounded
-
--- and some more, including residue effects and different roundings
-rounding: half_up
-dqadd3200 fma 1 '1231234567890123456784560123456789' 0 -> '1231234567890123456784560123456789'
-dqadd3201 fma 1 '1231234567890123456784560123456789' 0.000000001 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd3202 fma 1 '1231234567890123456784560123456789' 0.000001 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd3203 fma 1 '1231234567890123456784560123456789' 0.1 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd3204 fma 1 '1231234567890123456784560123456789' 0.4 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd3205 fma 1 '1231234567890123456784560123456789' 0.49 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd3206 fma 1 '1231234567890123456784560123456789' 0.499999 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd3207 fma 1 '1231234567890123456784560123456789' 0.499999999 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd3208 fma 1 '1231234567890123456784560123456789' 0.5 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd3209 fma 1 '1231234567890123456784560123456789' 0.500000001 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd3210 fma 1 '1231234567890123456784560123456789' 0.500001 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd3211 fma 1 '1231234567890123456784560123456789' 0.51 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd3212 fma 1 '1231234567890123456784560123456789' 0.6 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd3213 fma 1 '1231234567890123456784560123456789' 0.9 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd3214 fma 1 '1231234567890123456784560123456789' 0.99999 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd3215 fma 1 '1231234567890123456784560123456789' 0.999999999 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd3216 fma 1 '1231234567890123456784560123456789' 1 -> '1231234567890123456784560123456790'
-dqadd3217 fma 1 '1231234567890123456784560123456789' 1.000000001 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd3218 fma 1 '1231234567890123456784560123456789' 1.00001 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd3219 fma 1 '1231234567890123456784560123456789' 1.1 -> '1231234567890123456784560123456790' Inexact Rounded
-
-rounding: half_even
-dqadd3220 fma 1 '1231234567890123456784560123456789' 0 -> '1231234567890123456784560123456789'
-dqadd3221 fma 1 '1231234567890123456784560123456789' 0.000000001 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd3222 fma 1 '1231234567890123456784560123456789' 0.000001 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd3223 fma 1 '1231234567890123456784560123456789' 0.1 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd3224 fma 1 '1231234567890123456784560123456789' 0.4 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd3225 fma 1 '1231234567890123456784560123456789' 0.49 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd3226 fma 1 '1231234567890123456784560123456789' 0.499999 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd3227 fma 1 '1231234567890123456784560123456789' 0.499999999 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd3228 fma 1 '1231234567890123456784560123456789' 0.5 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd3229 fma 1 '1231234567890123456784560123456789' 0.500000001 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd3230 fma 1 '1231234567890123456784560123456789' 0.500001 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd3231 fma 1 '1231234567890123456784560123456789' 0.51 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd3232 fma 1 '1231234567890123456784560123456789' 0.6 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd3233 fma 1 '1231234567890123456784560123456789' 0.9 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd3234 fma 1 '1231234567890123456784560123456789' 0.99999 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd3235 fma 1 '1231234567890123456784560123456789' 0.999999999 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd3236 fma 1 '1231234567890123456784560123456789' 1 -> '1231234567890123456784560123456790'
-dqadd3237 fma 1 '1231234567890123456784560123456789' 1.00000001 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd3238 fma 1 '1231234567890123456784560123456789' 1.00001 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd3239 fma 1 '1231234567890123456784560123456789' 1.1 -> '1231234567890123456784560123456790' Inexact Rounded
--- critical few with even bottom digit...
-dqadd3240 fma 1 '1231234567890123456784560123456788' 0.499999999 -> '1231234567890123456784560123456788' Inexact Rounded
-dqadd3241 fma 1 '1231234567890123456784560123456788' 0.5 -> '1231234567890123456784560123456788' Inexact Rounded
-dqadd3242 fma 1 '1231234567890123456784560123456788' 0.500000001 -> '1231234567890123456784560123456789' Inexact Rounded
-
-rounding: down
-dqadd3250 fma 1 '1231234567890123456784560123456789' 0 -> '1231234567890123456784560123456789'
-dqadd3251 fma 1 '1231234567890123456784560123456789' 0.000000001 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd3252 fma 1 '1231234567890123456784560123456789' 0.000001 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd3253 fma 1 '1231234567890123456784560123456789' 0.1 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd3254 fma 1 '1231234567890123456784560123456789' 0.4 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd3255 fma 1 '1231234567890123456784560123456789' 0.49 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd3256 fma 1 '1231234567890123456784560123456789' 0.499999 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd3257 fma 1 '1231234567890123456784560123456789' 0.499999999 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd3258 fma 1 '1231234567890123456784560123456789' 0.5 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd3259 fma 1 '1231234567890123456784560123456789' 0.500000001 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd3260 fma 1 '1231234567890123456784560123456789' 0.500001 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd3261 fma 1 '1231234567890123456784560123456789' 0.51 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd3262 fma 1 '1231234567890123456784560123456789' 0.6 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd3263 fma 1 '1231234567890123456784560123456789' 0.9 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd3264 fma 1 '1231234567890123456784560123456789' 0.99999 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd3265 fma 1 '1231234567890123456784560123456789' 0.999999999 -> '1231234567890123456784560123456789' Inexact Rounded
-dqadd3266 fma 1 '1231234567890123456784560123456789' 1 -> '1231234567890123456784560123456790'
-dqadd3267 fma 1 '1231234567890123456784560123456789' 1.00000001 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd3268 fma 1 '1231234567890123456784560123456789' 1.00001 -> '1231234567890123456784560123456790' Inexact Rounded
-dqadd3269 fma 1 '1231234567890123456784560123456789' 1.1 -> '1231234567890123456784560123456790' Inexact Rounded
-
--- 1 in last place tests
-rounding: half_up
-dqadd3301 fma 1 -1 1 -> 0
-dqadd3302 fma 1 0 1 -> 1
-dqadd3303 fma 1 1 1 -> 2
-dqadd3304 fma 1 12 1 -> 13
-dqadd3305 fma 1 98 1 -> 99
-dqadd3306 fma 1 99 1 -> 100
-dqadd3307 fma 1 100 1 -> 101
-dqadd3308 fma 1 101 1 -> 102
-dqadd3309 fma 1 -1 -1 -> -2
-dqadd3310 fma 1 0 -1 -> -1
-dqadd3311 fma 1 1 -1 -> 0
-dqadd3312 fma 1 12 -1 -> 11
-dqadd3313 fma 1 98 -1 -> 97
-dqadd3314 fma 1 99 -1 -> 98
-dqadd3315 fma 1 100 -1 -> 99
-dqadd3316 fma 1 101 -1 -> 100
-
-dqadd3321 fma 1 -0.01 0.01 -> 0.00
-dqadd3322 fma 1 0.00 0.01 -> 0.01
-dqadd3323 fma 1 0.01 0.01 -> 0.02
-dqadd3324 fma 1 0.12 0.01 -> 0.13
-dqadd3325 fma 1 0.98 0.01 -> 0.99
-dqadd3326 fma 1 0.99 0.01 -> 1.00
-dqadd3327 fma 1 1.00 0.01 -> 1.01
-dqadd3328 fma 1 1.01 0.01 -> 1.02
-dqadd3329 fma 1 -0.01 -0.01 -> -0.02
-dqadd3330 fma 1 0.00 -0.01 -> -0.01
-dqadd3331 fma 1 0.01 -0.01 -> 0.00
-dqadd3332 fma 1 0.12 -0.01 -> 0.11
-dqadd3333 fma 1 0.98 -0.01 -> 0.97
-dqadd3334 fma 1 0.99 -0.01 -> 0.98
-dqadd3335 fma 1 1.00 -0.01 -> 0.99
-dqadd3336 fma 1 1.01 -0.01 -> 1.00
-
--- some more cases where adding 0 affects the coefficient
-dqadd3340 fma 1 1E+3 0 -> 1000
-dqadd3341 fma 1 1E+33 0 -> 1000000000000000000000000000000000
-dqadd3342 fma 1 1E+34 0 -> 1.000000000000000000000000000000000E+34 Rounded
-dqadd3343 fma 1 1E+35 0 -> 1.000000000000000000000000000000000E+35 Rounded
--- which simply follow from these cases ...
-dqadd3344 fma 1 1E+3 1 -> 1001
-dqadd3345 fma 1 1E+33 1 -> 1000000000000000000000000000000001
-dqadd3346 fma 1 1E+34 1 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd3347 fma 1 1E+35 1 -> 1.000000000000000000000000000000000E+35 Inexact Rounded
-dqadd3348 fma 1 1E+3 7 -> 1007
-dqadd3349 fma 1 1E+33 7 -> 1000000000000000000000000000000007
-dqadd3350 fma 1 1E+34 7 -> 1.000000000000000000000000000000001E+34 Inexact Rounded
-dqadd3351 fma 1 1E+35 7 -> 1.000000000000000000000000000000000E+35 Inexact Rounded
-
--- tryzeros cases
-rounding: half_up
-dqadd3360 fma 1 0E+50 10000E+1 -> 1.0000E+5
-dqadd3361 fma 1 0E-50 10000E+1 -> 100000.0000000000000000000000000000 Rounded
-dqadd3362 fma 1 10000E+1 0E-50 -> 100000.0000000000000000000000000000 Rounded
-dqadd3363 fma 1 10000E+1 10000E-50 -> 100000.0000000000000000000000000000 Rounded Inexact
-dqadd3364 fma 1 9.999999999999999999999999999999999E+6144 -9.999999999999999999999999999999999E+6144 -> 0E+6111
--- 1 234567890123456789012345678901234
-
--- a curiosity from JSR 13 testing
-rounding: half_down
-dqadd3370 fma 1 999999999999999999999999999999999 815 -> 1000000000000000000000000000000814
-dqadd3371 fma 1 9999999999999999999999999999999999 815 -> 1.000000000000000000000000000000081E+34 Rounded Inexact
-rounding: half_up
-dqadd3372 fma 1 999999999999999999999999999999999 815 -> 1000000000000000000000000000000814
-dqadd3373 fma 1 9999999999999999999999999999999999 815 -> 1.000000000000000000000000000000081E+34 Rounded Inexact
-rounding: half_even
-dqadd3374 fma 1 999999999999999999999999999999999 815 -> 1000000000000000000000000000000814
-dqadd3375 fma 1 9999999999999999999999999999999999 815 -> 1.000000000000000000000000000000081E+34 Rounded Inexact
-
--- ulp replacement tests
-dqadd3400 fma 1 1 77e-32 -> 1.00000000000000000000000000000077
-dqadd3401 fma 1 1 77e-33 -> 1.000000000000000000000000000000077
-dqadd3402 fma 1 1 77e-34 -> 1.000000000000000000000000000000008 Inexact Rounded
-dqadd3403 fma 1 1 77e-35 -> 1.000000000000000000000000000000001 Inexact Rounded
-dqadd3404 fma 1 1 77e-36 -> 1.000000000000000000000000000000000 Inexact Rounded
-dqadd3405 fma 1 1 77e-37 -> 1.000000000000000000000000000000000 Inexact Rounded
-dqadd3406 fma 1 1 77e-299 -> 1.000000000000000000000000000000000 Inexact Rounded
-
-dqadd3410 fma 1 10 77e-32 -> 10.00000000000000000000000000000077
-dqadd3411 fma 1 10 77e-33 -> 10.00000000000000000000000000000008 Inexact Rounded
-dqadd3412 fma 1 10 77e-34 -> 10.00000000000000000000000000000001 Inexact Rounded
-dqadd3413 fma 1 10 77e-35 -> 10.00000000000000000000000000000000 Inexact Rounded
-dqadd3414 fma 1 10 77e-36 -> 10.00000000000000000000000000000000 Inexact Rounded
-dqadd3415 fma 1 10 77e-37 -> 10.00000000000000000000000000000000 Inexact Rounded
-dqadd3416 fma 1 10 77e-299 -> 10.00000000000000000000000000000000 Inexact Rounded
-
-dqadd3420 fma 1 77e-32 1 -> 1.00000000000000000000000000000077
-dqadd3421 fma 1 77e-33 1 -> 1.000000000000000000000000000000077
-dqadd3422 fma 1 77e-34 1 -> 1.000000000000000000000000000000008 Inexact Rounded
-dqadd3423 fma 1 77e-35 1 -> 1.000000000000000000000000000000001 Inexact Rounded
-dqadd3424 fma 1 77e-36 1 -> 1.000000000000000000000000000000000 Inexact Rounded
-dqadd3425 fma 1 77e-37 1 -> 1.000000000000000000000000000000000 Inexact Rounded
-dqadd3426 fma 1 77e-299 1 -> 1.000000000000000000000000000000000 Inexact Rounded
-
-dqadd3430 fma 1 77e-32 10 -> 10.00000000000000000000000000000077
-dqadd3431 fma 1 77e-33 10 -> 10.00000000000000000000000000000008 Inexact Rounded
-dqadd3432 fma 1 77e-34 10 -> 10.00000000000000000000000000000001 Inexact Rounded
-dqadd3433 fma 1 77e-35 10 -> 10.00000000000000000000000000000000 Inexact Rounded
-dqadd3434 fma 1 77e-36 10 -> 10.00000000000000000000000000000000 Inexact Rounded
-dqadd3435 fma 1 77e-37 10 -> 10.00000000000000000000000000000000 Inexact Rounded
-dqadd3436 fma 1 77e-299 10 -> 10.00000000000000000000000000000000 Inexact Rounded
-
--- negative ulps
-dqadd36440 fma 1 1 -77e-32 -> 0.99999999999999999999999999999923
-dqadd36441 fma 1 1 -77e-33 -> 0.999999999999999999999999999999923
-dqadd36442 fma 1 1 -77e-34 -> 0.9999999999999999999999999999999923
-dqadd36443 fma 1 1 -77e-35 -> 0.9999999999999999999999999999999992 Inexact Rounded
-dqadd36444 fma 1 1 -77e-36 -> 0.9999999999999999999999999999999999 Inexact Rounded
-dqadd36445 fma 1 1 -77e-37 -> 1.000000000000000000000000000000000 Inexact Rounded
-dqadd36446 fma 1 1 -77e-99 -> 1.000000000000000000000000000000000 Inexact Rounded
-
-dqadd36450 fma 1 10 -77e-32 -> 9.99999999999999999999999999999923
-dqadd36451 fma 1 10 -77e-33 -> 9.999999999999999999999999999999923
-dqadd36452 fma 1 10 -77e-34 -> 9.999999999999999999999999999999992 Inexact Rounded
-dqadd36453 fma 1 10 -77e-35 -> 9.999999999999999999999999999999999 Inexact Rounded
-dqadd36454 fma 1 10 -77e-36 -> 10.00000000000000000000000000000000 Inexact Rounded
-dqadd36455 fma 1 10 -77e-37 -> 10.00000000000000000000000000000000 Inexact Rounded
-dqadd36456 fma 1 10 -77e-99 -> 10.00000000000000000000000000000000 Inexact Rounded
-
-dqadd36460 fma 1 -77e-32 1 -> 0.99999999999999999999999999999923
-dqadd36461 fma 1 -77e-33 1 -> 0.999999999999999999999999999999923
-dqadd36462 fma 1 -77e-34 1 -> 0.9999999999999999999999999999999923
-dqadd36463 fma 1 -77e-35 1 -> 0.9999999999999999999999999999999992 Inexact Rounded
-dqadd36464 fma 1 -77e-36 1 -> 0.9999999999999999999999999999999999 Inexact Rounded
-dqadd36465 fma 1 -77e-37 1 -> 1.000000000000000000000000000000000 Inexact Rounded
-dqadd36466 fma 1 -77e-99 1 -> 1.000000000000000000000000000000000 Inexact Rounded
-
-dqadd36470 fma 1 -77e-32 10 -> 9.99999999999999999999999999999923
-dqadd36471 fma 1 -77e-33 10 -> 9.999999999999999999999999999999923
-dqadd36472 fma 1 -77e-34 10 -> 9.999999999999999999999999999999992 Inexact Rounded
-dqadd36473 fma 1 -77e-35 10 -> 9.999999999999999999999999999999999 Inexact Rounded
-dqadd36474 fma 1 -77e-36 10 -> 10.00000000000000000000000000000000 Inexact Rounded
-dqadd36475 fma 1 -77e-37 10 -> 10.00000000000000000000000000000000 Inexact Rounded
-dqadd36476 fma 1 -77e-99 10 -> 10.00000000000000000000000000000000 Inexact Rounded
-
--- negative ulps
-dqadd36480 fma 1 -1 77e-32 -> -0.99999999999999999999999999999923
-dqadd36481 fma 1 -1 77e-33 -> -0.999999999999999999999999999999923
-dqadd36482 fma 1 -1 77e-34 -> -0.9999999999999999999999999999999923
-dqadd36483 fma 1 -1 77e-35 -> -0.9999999999999999999999999999999992 Inexact Rounded
-dqadd36484 fma 1 -1 77e-36 -> -0.9999999999999999999999999999999999 Inexact Rounded
-dqadd36485 fma 1 -1 77e-37 -> -1.000000000000000000000000000000000 Inexact Rounded
-dqadd36486 fma 1 -1 77e-99 -> -1.000000000000000000000000000000000 Inexact Rounded
-
-dqadd36490 fma 1 -10 77e-32 -> -9.99999999999999999999999999999923
-dqadd36491 fma 1 -10 77e-33 -> -9.999999999999999999999999999999923
-dqadd36492 fma 1 -10 77e-34 -> -9.999999999999999999999999999999992 Inexact Rounded
-dqadd36493 fma 1 -10 77e-35 -> -9.999999999999999999999999999999999 Inexact Rounded
-dqadd36494 fma 1 -10 77e-36 -> -10.00000000000000000000000000000000 Inexact Rounded
-dqadd36495 fma 1 -10 77e-37 -> -10.00000000000000000000000000000000 Inexact Rounded
-dqadd36496 fma 1 -10 77e-99 -> -10.00000000000000000000000000000000 Inexact Rounded
-
-dqadd36500 fma 1 77e-32 -1 -> -0.99999999999999999999999999999923
-dqadd36501 fma 1 77e-33 -1 -> -0.999999999999999999999999999999923
-dqadd36502 fma 1 77e-34 -1 -> -0.9999999999999999999999999999999923
-dqadd36503 fma 1 77e-35 -1 -> -0.9999999999999999999999999999999992 Inexact Rounded
-dqadd36504 fma 1 77e-36 -1 -> -0.9999999999999999999999999999999999 Inexact Rounded
-dqadd36505 fma 1 77e-37 -1 -> -1.000000000000000000000000000000000 Inexact Rounded
-dqadd36506 fma 1 77e-99 -1 -> -1.000000000000000000000000000000000 Inexact Rounded
-
-dqadd36510 fma 1 77e-32 -10 -> -9.99999999999999999999999999999923
-dqadd36511 fma 1 77e-33 -10 -> -9.999999999999999999999999999999923
-dqadd36512 fma 1 77e-34 -10 -> -9.999999999999999999999999999999992 Inexact Rounded
-dqadd36513 fma 1 77e-35 -10 -> -9.999999999999999999999999999999999 Inexact Rounded
-dqadd36514 fma 1 77e-36 -10 -> -10.00000000000000000000000000000000 Inexact Rounded
-dqadd36515 fma 1 77e-37 -10 -> -10.00000000000000000000000000000000 Inexact Rounded
-dqadd36516 fma 1 77e-99 -10 -> -10.00000000000000000000000000000000 Inexact Rounded
-
--- and some more residue effects and different roundings
-rounding: half_up
-dqadd36540 fma 1 '9876543219876543216543210123456789' 0 -> '9876543219876543216543210123456789'
-dqadd36541 fma 1 '9876543219876543216543210123456789' 0.000000001 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd36542 fma 1 '9876543219876543216543210123456789' 0.000001 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd36543 fma 1 '9876543219876543216543210123456789' 0.1 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd36544 fma 1 '9876543219876543216543210123456789' 0.4 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd36545 fma 1 '9876543219876543216543210123456789' 0.49 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd36546 fma 1 '9876543219876543216543210123456789' 0.499999 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd36547 fma 1 '9876543219876543216543210123456789' 0.499999999 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd36548 fma 1 '9876543219876543216543210123456789' 0.5 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd36549 fma 1 '9876543219876543216543210123456789' 0.500000001 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd36550 fma 1 '9876543219876543216543210123456789' 0.500001 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd36551 fma 1 '9876543219876543216543210123456789' 0.51 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd36552 fma 1 '9876543219876543216543210123456789' 0.6 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd36553 fma 1 '9876543219876543216543210123456789' 0.9 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd36554 fma 1 '9876543219876543216543210123456789' 0.99999 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd36555 fma 1 '9876543219876543216543210123456789' 0.999999999 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd36556 fma 1 '9876543219876543216543210123456789' 1 -> '9876543219876543216543210123456790'
-dqadd36557 fma 1 '9876543219876543216543210123456789' 1.000000001 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd36558 fma 1 '9876543219876543216543210123456789' 1.00001 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd36559 fma 1 '9876543219876543216543210123456789' 1.1 -> '9876543219876543216543210123456790' Inexact Rounded
-
-rounding: half_even
-dqadd36560 fma 1 '9876543219876543216543210123456789' 0 -> '9876543219876543216543210123456789'
-dqadd36561 fma 1 '9876543219876543216543210123456789' 0.000000001 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd36562 fma 1 '9876543219876543216543210123456789' 0.000001 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd36563 fma 1 '9876543219876543216543210123456789' 0.1 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd36564 fma 1 '9876543219876543216543210123456789' 0.4 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd36565 fma 1 '9876543219876543216543210123456789' 0.49 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd36566 fma 1 '9876543219876543216543210123456789' 0.499999 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd36567 fma 1 '9876543219876543216543210123456789' 0.499999999 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd36568 fma 1 '9876543219876543216543210123456789' 0.5 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd36569 fma 1 '9876543219876543216543210123456789' 0.500000001 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd36570 fma 1 '9876543219876543216543210123456789' 0.500001 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd36571 fma 1 '9876543219876543216543210123456789' 0.51 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd36572 fma 1 '9876543219876543216543210123456789' 0.6 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd36573 fma 1 '9876543219876543216543210123456789' 0.9 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd36574 fma 1 '9876543219876543216543210123456789' 0.99999 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd36575 fma 1 '9876543219876543216543210123456789' 0.999999999 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd36576 fma 1 '9876543219876543216543210123456789' 1 -> '9876543219876543216543210123456790'
-dqadd36577 fma 1 '9876543219876543216543210123456789' 1.00000001 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd36578 fma 1 '9876543219876543216543210123456789' 1.00001 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd36579 fma 1 '9876543219876543216543210123456789' 1.1 -> '9876543219876543216543210123456790' Inexact Rounded
-
--- critical few with even bottom digit...
-dqadd37540 fma 1 '9876543219876543216543210123456788' 0.499999999 -> '9876543219876543216543210123456788' Inexact Rounded
-dqadd37541 fma 1 '9876543219876543216543210123456788' 0.5 -> '9876543219876543216543210123456788' Inexact Rounded
-dqadd37542 fma 1 '9876543219876543216543210123456788' 0.500000001 -> '9876543219876543216543210123456789' Inexact Rounded
-
-rounding: down
-dqadd37550 fma 1 '9876543219876543216543210123456789' 0 -> '9876543219876543216543210123456789'
-dqadd37551 fma 1 '9876543219876543216543210123456789' 0.000000001 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd37552 fma 1 '9876543219876543216543210123456789' 0.000001 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd37553 fma 1 '9876543219876543216543210123456789' 0.1 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd37554 fma 1 '9876543219876543216543210123456789' 0.4 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd37555 fma 1 '9876543219876543216543210123456789' 0.49 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd37556 fma 1 '9876543219876543216543210123456789' 0.499999 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd37557 fma 1 '9876543219876543216543210123456789' 0.499999999 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd37558 fma 1 '9876543219876543216543210123456789' 0.5 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd37559 fma 1 '9876543219876543216543210123456789' 0.500000001 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd37560 fma 1 '9876543219876543216543210123456789' 0.500001 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd37561 fma 1 '9876543219876543216543210123456789' 0.51 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd37562 fma 1 '9876543219876543216543210123456789' 0.6 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd37563 fma 1 '9876543219876543216543210123456789' 0.9 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd37564 fma 1 '9876543219876543216543210123456789' 0.99999 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd37565 fma 1 '9876543219876543216543210123456789' 0.999999999 -> '9876543219876543216543210123456789' Inexact Rounded
-dqadd37566 fma 1 '9876543219876543216543210123456789' 1 -> '9876543219876543216543210123456790'
-dqadd37567 fma 1 '9876543219876543216543210123456789' 1.00000001 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd37568 fma 1 '9876543219876543216543210123456789' 1.00001 -> '9876543219876543216543210123456790' Inexact Rounded
-dqadd37569 fma 1 '9876543219876543216543210123456789' 1.1 -> '9876543219876543216543210123456790' Inexact Rounded
-
--- more zeros, etc.
-rounding: half_even
-
-dqadd37701 fma 1 5.00 1.00E-3 -> 5.00100
-dqadd37702 fma 1 00.00 0.000 -> 0.000
-dqadd37703 fma 1 00.00 0E-3 -> 0.000
-dqadd37704 fma 1 0E-3 00.00 -> 0.000
-
-dqadd37710 fma 1 0E+3 00.00 -> 0.00
-dqadd37711 fma 1 0E+3 00.0 -> 0.0
-dqadd37712 fma 1 0E+3 00. -> 0
-dqadd37713 fma 1 0E+3 00.E+1 -> 0E+1
-dqadd37714 fma 1 0E+3 00.E+2 -> 0E+2
-dqadd37715 fma 1 0E+3 00.E+3 -> 0E+3
-dqadd37716 fma 1 0E+3 00.E+4 -> 0E+3
-dqadd37717 fma 1 0E+3 00.E+5 -> 0E+3
-dqadd37718 fma 1 0E+3 -00.0 -> 0.0
-dqadd37719 fma 1 0E+3 -00. -> 0
-dqadd37731 fma 1 0E+3 -00.E+1 -> 0E+1
-
-dqadd37720 fma 1 00.00 0E+3 -> 0.00
-dqadd37721 fma 1 00.0 0E+3 -> 0.0
-dqadd37722 fma 1 00. 0E+3 -> 0
-dqadd37723 fma 1 00.E+1 0E+3 -> 0E+1
-dqadd37724 fma 1 00.E+2 0E+3 -> 0E+2
-dqadd37725 fma 1 00.E+3 0E+3 -> 0E+3
-dqadd37726 fma 1 00.E+4 0E+3 -> 0E+3
-dqadd37727 fma 1 00.E+5 0E+3 -> 0E+3
-dqadd37728 fma 1 -00.00 0E+3 -> 0.00
-dqadd37729 fma 1 -00.0 0E+3 -> 0.0
-dqadd37730 fma 1 -00. 0E+3 -> 0
-
-dqadd37732 fma 1 0 0 -> 0
-dqadd37733 fma 1 0 -0 -> 0
-dqadd37734 fma 1 -0 0 -> 0
-dqadd37735 fma 1 -0 -0 -> -0 -- IEEE 854 special case
-
-dqadd37736 fma 1 1 -1 -> 0
-dqadd37737 fma 1 -1 -1 -> -2
-dqadd37738 fma 1 1 1 -> 2
-dqadd37739 fma 1 -1 1 -> 0
-
-dqadd37741 fma 1 0 -1 -> -1
-dqadd37742 fma 1 -0 -1 -> -1
-dqadd37743 fma 1 0 1 -> 1
-dqadd37744 fma 1 -0 1 -> 1
-dqadd37745 fma 1 -1 0 -> -1
-dqadd37746 fma 1 -1 -0 -> -1
-dqadd37747 fma 1 1 0 -> 1
-dqadd37748 fma 1 1 -0 -> 1
-
-dqadd37751 fma 1 0.0 -1 -> -1.0
-dqadd37752 fma 1 -0.0 -1 -> -1.0
-dqadd37753 fma 1 0.0 1 -> 1.0
-dqadd37754 fma 1 -0.0 1 -> 1.0
-dqadd37755 fma 1 -1.0 0 -> -1.0
-dqadd37756 fma 1 -1.0 -0 -> -1.0
-dqadd37757 fma 1 1.0 0 -> 1.0
-dqadd37758 fma 1 1.0 -0 -> 1.0
-
-dqadd37761 fma 1 0 -1.0 -> -1.0
-dqadd37762 fma 1 -0 -1.0 -> -1.0
-dqadd37763 fma 1 0 1.0 -> 1.0
-dqadd37764 fma 1 -0 1.0 -> 1.0
-dqadd37765 fma 1 -1 0.0 -> -1.0
-dqadd37766 fma 1 -1 -0.0 -> -1.0
-dqadd37767 fma 1 1 0.0 -> 1.0
-dqadd37768 fma 1 1 -0.0 -> 1.0
-
-dqadd37771 fma 1 0.0 -1.0 -> -1.0
-dqadd37772 fma 1 -0.0 -1.0 -> -1.0
-dqadd37773 fma 1 0.0 1.0 -> 1.0
-dqadd37774 fma 1 -0.0 1.0 -> 1.0
-dqadd37775 fma 1 -1.0 0.0 -> -1.0
-dqadd37776 fma 1 -1.0 -0.0 -> -1.0
-dqadd37777 fma 1 1.0 0.0 -> 1.0
-dqadd37778 fma 1 1.0 -0.0 -> 1.0
-
--- Specials
-dqadd37780 fma 1 -Inf -Inf -> -Infinity
-dqadd37781 fma 1 -Inf -1000 -> -Infinity
-dqadd37782 fma 1 -Inf -1 -> -Infinity
-dqadd37783 fma 1 -Inf -0 -> -Infinity
-dqadd37784 fma 1 -Inf 0 -> -Infinity
-dqadd37785 fma 1 -Inf 1 -> -Infinity
-dqadd37786 fma 1 -Inf 1000 -> -Infinity
-dqadd37787 fma 1 -1000 -Inf -> -Infinity
-dqadd37788 fma 1 -Inf -Inf -> -Infinity
-dqadd37789 fma 1 -1 -Inf -> -Infinity
-dqadd37790 fma 1 -0 -Inf -> -Infinity
-dqadd37791 fma 1 0 -Inf -> -Infinity
-dqadd37792 fma 1 1 -Inf -> -Infinity
-dqadd37793 fma 1 1000 -Inf -> -Infinity
-dqadd37794 fma 1 Inf -Inf -> NaN Invalid_operation
-
-dqadd37800 fma 1 Inf -Inf -> NaN Invalid_operation
-dqadd37801 fma 1 Inf -1000 -> Infinity
-dqadd37802 fma 1 Inf -1 -> Infinity
-dqadd37803 fma 1 Inf -0 -> Infinity
-dqadd37804 fma 1 Inf 0 -> Infinity
-dqadd37805 fma 1 Inf 1 -> Infinity
-dqadd37806 fma 1 Inf 1000 -> Infinity
-dqadd37807 fma 1 Inf Inf -> Infinity
-dqadd37808 fma 1 -1000 Inf -> Infinity
-dqadd37809 fma 1 -Inf Inf -> NaN Invalid_operation
-dqadd37810 fma 1 -1 Inf -> Infinity
-dqadd37811 fma 1 -0 Inf -> Infinity
-dqadd37812 fma 1 0 Inf -> Infinity
-dqadd37813 fma 1 1 Inf -> Infinity
-dqadd37814 fma 1 1000 Inf -> Infinity
-dqadd37815 fma 1 Inf Inf -> Infinity
-
-dqadd37821 fma 1 NaN -Inf -> NaN
-dqadd37822 fma 1 NaN -1000 -> NaN
-dqadd37823 fma 1 NaN -1 -> NaN
-dqadd37824 fma 1 NaN -0 -> NaN
-dqadd37825 fma 1 NaN 0 -> NaN
-dqadd37826 fma 1 NaN 1 -> NaN
-dqadd37827 fma 1 NaN 1000 -> NaN
-dqadd37828 fma 1 NaN Inf -> NaN
-dqadd37829 fma 1 NaN NaN -> NaN
-dqadd37830 fma 1 -Inf NaN -> NaN
-dqadd37831 fma 1 -1000 NaN -> NaN
-dqadd37832 fma 1 -1 NaN -> NaN
-dqadd37833 fma 1 -0 NaN -> NaN
-dqadd37834 fma 1 0 NaN -> NaN
-dqadd37835 fma 1 1 NaN -> NaN
-dqadd37836 fma 1 1000 NaN -> NaN
-dqadd37837 fma 1 Inf NaN -> NaN
-
-dqadd37841 fma 1 sNaN -Inf -> NaN Invalid_operation
-dqadd37842 fma 1 sNaN -1000 -> NaN Invalid_operation
-dqadd37843 fma 1 sNaN -1 -> NaN Invalid_operation
-dqadd37844 fma 1 sNaN -0 -> NaN Invalid_operation
-dqadd37845 fma 1 sNaN 0 -> NaN Invalid_operation
-dqadd37846 fma 1 sNaN 1 -> NaN Invalid_operation
-dqadd37847 fma 1 sNaN 1000 -> NaN Invalid_operation
-dqadd37848 fma 1 sNaN NaN -> NaN Invalid_operation
-dqadd37849 fma 1 sNaN sNaN -> NaN Invalid_operation
-dqadd37850 fma 1 NaN sNaN -> NaN Invalid_operation
-dqadd37851 fma 1 -Inf sNaN -> NaN Invalid_operation
-dqadd37852 fma 1 -1000 sNaN -> NaN Invalid_operation
-dqadd37853 fma 1 -1 sNaN -> NaN Invalid_operation
-dqadd37854 fma 1 -0 sNaN -> NaN Invalid_operation
-dqadd37855 fma 1 0 sNaN -> NaN Invalid_operation
-dqadd37856 fma 1 1 sNaN -> NaN Invalid_operation
-dqadd37857 fma 1 1000 sNaN -> NaN Invalid_operation
-dqadd37858 fma 1 Inf sNaN -> NaN Invalid_operation
-dqadd37859 fma 1 NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-dqadd37861 fma 1 NaN1 -Inf -> NaN1
-dqadd37862 fma 1 +NaN2 -1000 -> NaN2
-dqadd37863 fma 1 NaN3 1000 -> NaN3
-dqadd37864 fma 1 NaN4 Inf -> NaN4
-dqadd37865 fma 1 NaN5 +NaN6 -> NaN5
-dqadd37866 fma 1 -Inf NaN7 -> NaN7
-dqadd37867 fma 1 -1000 NaN8 -> NaN8
-dqadd37868 fma 1 1000 NaN9 -> NaN9
-dqadd37869 fma 1 Inf +NaN10 -> NaN10
-dqadd37871 fma 1 sNaN11 -Inf -> NaN11 Invalid_operation
-dqadd37872 fma 1 sNaN12 -1000 -> NaN12 Invalid_operation
-dqadd37873 fma 1 sNaN13 1000 -> NaN13 Invalid_operation
-dqadd37874 fma 1 sNaN14 NaN17 -> NaN14 Invalid_operation
-dqadd37875 fma 1 sNaN15 sNaN18 -> NaN15 Invalid_operation
-dqadd37876 fma 1 NaN16 sNaN19 -> NaN19 Invalid_operation
-dqadd37877 fma 1 -Inf +sNaN20 -> NaN20 Invalid_operation
-dqadd37878 fma 1 -1000 sNaN21 -> NaN21 Invalid_operation
-dqadd37879 fma 1 1000 sNaN22 -> NaN22 Invalid_operation
-dqadd37880 fma 1 Inf sNaN23 -> NaN23 Invalid_operation
-dqadd37881 fma 1 +NaN25 +sNaN24 -> NaN24 Invalid_operation
-dqadd37882 fma 1 -NaN26 NaN28 -> -NaN26
-dqadd37883 fma 1 -sNaN27 sNaN29 -> -NaN27 Invalid_operation
-dqadd37884 fma 1 1000 -NaN30 -> -NaN30
-dqadd37885 fma 1 1000 -sNaN31 -> -NaN31 Invalid_operation
-
--- Here we explore near the boundary of rounding a subnormal to Nmin
-dqadd37575 fma 1 1E-6143 -1E-6176 -> 9.99999999999999999999999999999999E-6144 Subnormal
-dqadd37576 fma 1 -1E-6143 +1E-6176 -> -9.99999999999999999999999999999999E-6144 Subnormal
-
--- check overflow edge case
--- 1234567890123456
-dqadd37972 apply 9.999999999999999999999999999999999E+6144 -> 9.999999999999999999999999999999999E+6144
-dqadd37973 fma 1 9.999999999999999999999999999999999E+6144 1 -> 9.999999999999999999999999999999999E+6144 Inexact Rounded
-dqadd37974 fma 1 9999999999999999999999999999999999E+6111 1 -> 9.999999999999999999999999999999999E+6144 Inexact Rounded
-dqadd37975 fma 1 9999999999999999999999999999999999E+6111 1E+6111 -> Infinity Overflow Inexact Rounded
-dqadd37976 fma 1 9999999999999999999999999999999999E+6111 9E+6110 -> Infinity Overflow Inexact Rounded
-dqadd37977 fma 1 9999999999999999999999999999999999E+6111 8E+6110 -> Infinity Overflow Inexact Rounded
-dqadd37978 fma 1 9999999999999999999999999999999999E+6111 7E+6110 -> Infinity Overflow Inexact Rounded
-dqadd37979 fma 1 9999999999999999999999999999999999E+6111 6E+6110 -> Infinity Overflow Inexact Rounded
-dqadd37980 fma 1 9999999999999999999999999999999999E+6111 5E+6110 -> Infinity Overflow Inexact Rounded
-dqadd37981 fma 1 9999999999999999999999999999999999E+6111 4E+6110 -> 9.999999999999999999999999999999999E+6144 Inexact Rounded
-dqadd37982 fma 1 9999999999999999999999999999999999E+6111 3E+6110 -> 9.999999999999999999999999999999999E+6144 Inexact Rounded
-dqadd37983 fma 1 9999999999999999999999999999999999E+6111 2E+6110 -> 9.999999999999999999999999999999999E+6144 Inexact Rounded
-dqadd37984 fma 1 9999999999999999999999999999999999E+6111 1E+6110 -> 9.999999999999999999999999999999999E+6144 Inexact Rounded
-
-dqadd37985 apply -9.999999999999999999999999999999999E+6144 -> -9.999999999999999999999999999999999E+6144
-dqadd37986 fma 1 -9.999999999999999999999999999999999E+6144 -1 -> -9.999999999999999999999999999999999E+6144 Inexact Rounded
-dqadd37987 fma 1 -9999999999999999999999999999999999E+6111 -1 -> -9.999999999999999999999999999999999E+6144 Inexact Rounded
-dqadd37988 fma 1 -9999999999999999999999999999999999E+6111 -1E+6111 -> -Infinity Overflow Inexact Rounded
-dqadd37989 fma 1 -9999999999999999999999999999999999E+6111 -9E+6110 -> -Infinity Overflow Inexact Rounded
-dqadd37990 fma 1 -9999999999999999999999999999999999E+6111 -8E+6110 -> -Infinity Overflow Inexact Rounded
-dqadd37991 fma 1 -9999999999999999999999999999999999E+6111 -7E+6110 -> -Infinity Overflow Inexact Rounded
-dqadd37992 fma 1 -9999999999999999999999999999999999E+6111 -6E+6110 -> -Infinity Overflow Inexact Rounded
-dqadd37993 fma 1 -9999999999999999999999999999999999E+6111 -5E+6110 -> -Infinity Overflow Inexact Rounded
-dqadd37994 fma 1 -9999999999999999999999999999999999E+6111 -4E+6110 -> -9.999999999999999999999999999999999E+6144 Inexact Rounded
-dqadd37995 fma 1 -9999999999999999999999999999999999E+6111 -3E+6110 -> -9.999999999999999999999999999999999E+6144 Inexact Rounded
-dqadd37996 fma 1 -9999999999999999999999999999999999E+6111 -2E+6110 -> -9.999999999999999999999999999999999E+6144 Inexact Rounded
-dqadd37997 fma 1 -9999999999999999999999999999999999E+6111 -1E+6110 -> -9.999999999999999999999999999999999E+6144 Inexact Rounded
-
--- And for round down full and subnormal results
-rounding: down
-dqadd371100 fma 1 1e+2 -1e-6143 -> 99.99999999999999999999999999999999 Rounded Inexact
-dqadd371101 fma 1 1e+1 -1e-6143 -> 9.999999999999999999999999999999999 Rounded Inexact
-dqadd371103 fma 1 +1 -1e-6143 -> 0.9999999999999999999999999999999999 Rounded Inexact
-dqadd371104 fma 1 1e-1 -1e-6143 -> 0.09999999999999999999999999999999999 Rounded Inexact
-dqadd371105 fma 1 1e-2 -1e-6143 -> 0.009999999999999999999999999999999999 Rounded Inexact
-dqadd371106 fma 1 1e-3 -1e-6143 -> 0.0009999999999999999999999999999999999 Rounded Inexact
-dqadd371107 fma 1 1e-4 -1e-6143 -> 0.00009999999999999999999999999999999999 Rounded Inexact
-dqadd371108 fma 1 1e-5 -1e-6143 -> 0.000009999999999999999999999999999999999 Rounded Inexact
-dqadd371109 fma 1 1e-6 -1e-6143 -> 9.999999999999999999999999999999999E-7 Rounded Inexact
-
-rounding: ceiling
-dqadd371110 fma 1 -1e+2 +1e-6143 -> -99.99999999999999999999999999999999 Rounded Inexact
-dqadd371111 fma 1 -1e+1 +1e-6143 -> -9.999999999999999999999999999999999 Rounded Inexact
-dqadd371113 fma 1 -1 +1e-6143 -> -0.9999999999999999999999999999999999 Rounded Inexact
-dqadd371114 fma 1 -1e-1 +1e-6143 -> -0.09999999999999999999999999999999999 Rounded Inexact
-dqadd371115 fma 1 -1e-2 +1e-6143 -> -0.009999999999999999999999999999999999 Rounded Inexact
-dqadd371116 fma 1 -1e-3 +1e-6143 -> -0.0009999999999999999999999999999999999 Rounded Inexact
-dqadd371117 fma 1 -1e-4 +1e-6143 -> -0.00009999999999999999999999999999999999 Rounded Inexact
-dqadd371118 fma 1 -1e-5 +1e-6143 -> -0.000009999999999999999999999999999999999 Rounded Inexact
-dqadd371119 fma 1 -1e-6 +1e-6143 -> -9.999999999999999999999999999999999E-7 Rounded Inexact
-
--- tests based on Gunnar Degnbol's edge case
-rounding: half_even
-
-dqadd371300 fma 1 1E34 -0.5 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371310 fma 1 1E34 -0.51 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd371311 fma 1 1E34 -0.501 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd371312 fma 1 1E34 -0.5001 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd371313 fma 1 1E34 -0.50001 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd371314 fma 1 1E34 -0.500001 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd371315 fma 1 1E34 -0.5000001 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd371316 fma 1 1E34 -0.50000001 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd371317 fma 1 1E34 -0.500000001 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd371318 fma 1 1E34 -0.5000000001 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd371319 fma 1 1E34 -0.50000000001 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd371320 fma 1 1E34 -0.500000000001 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd371321 fma 1 1E34 -0.5000000000001 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd371322 fma 1 1E34 -0.50000000000001 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd371323 fma 1 1E34 -0.500000000000001 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd371324 fma 1 1E34 -0.5000000000000001 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd371325 fma 1 1E34 -0.5000000000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371326 fma 1 1E34 -0.500000000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371327 fma 1 1E34 -0.50000000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371328 fma 1 1E34 -0.5000000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371329 fma 1 1E34 -0.500000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371330 fma 1 1E34 -0.50000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371331 fma 1 1E34 -0.5000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371332 fma 1 1E34 -0.500000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371333 fma 1 1E34 -0.50000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371334 fma 1 1E34 -0.5000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371335 fma 1 1E34 -0.500000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371336 fma 1 1E34 -0.50000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371337 fma 1 1E34 -0.5000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371338 fma 1 1E34 -0.500 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371339 fma 1 1E34 -0.50 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-
-dqadd371340 fma 1 1E34 -5000000.000010001 -> 9999999999999999999999999995000000 Inexact Rounded
-dqadd371341 fma 1 1E34 -5000000.000000001 -> 9999999999999999999999999995000000 Inexact Rounded
-
-dqadd371349 fma 1 9999999999999999999999999999999999 0.4 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd371350 fma 1 9999999999999999999999999999999999 0.49 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd371351 fma 1 9999999999999999999999999999999999 0.499 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd371352 fma 1 9999999999999999999999999999999999 0.4999 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd371353 fma 1 9999999999999999999999999999999999 0.49999 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd371354 fma 1 9999999999999999999999999999999999 0.499999 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd371355 fma 1 9999999999999999999999999999999999 0.4999999 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd371356 fma 1 9999999999999999999999999999999999 0.49999999 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd371357 fma 1 9999999999999999999999999999999999 0.499999999 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd371358 fma 1 9999999999999999999999999999999999 0.4999999999 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd371359 fma 1 9999999999999999999999999999999999 0.49999999999 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd371360 fma 1 9999999999999999999999999999999999 0.499999999999 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd371361 fma 1 9999999999999999999999999999999999 0.4999999999999 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd371362 fma 1 9999999999999999999999999999999999 0.49999999999999 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd371363 fma 1 9999999999999999999999999999999999 0.499999999999999 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd371364 fma 1 9999999999999999999999999999999999 0.4999999999999999 -> 9999999999999999999999999999999999 Inexact Rounded
-dqadd371365 fma 1 9999999999999999999999999999999999 0.5000000000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371367 fma 1 9999999999999999999999999999999999 0.500000000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371368 fma 1 9999999999999999999999999999999999 0.50000000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371369 fma 1 9999999999999999999999999999999999 0.5000000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371370 fma 1 9999999999999999999999999999999999 0.500000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371371 fma 1 9999999999999999999999999999999999 0.50000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371372 fma 1 9999999999999999999999999999999999 0.5000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371373 fma 1 9999999999999999999999999999999999 0.500000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371374 fma 1 9999999999999999999999999999999999 0.50000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371375 fma 1 9999999999999999999999999999999999 0.5000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371376 fma 1 9999999999999999999999999999999999 0.500000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371377 fma 1 9999999999999999999999999999999999 0.50000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371378 fma 1 9999999999999999999999999999999999 0.5000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371379 fma 1 9999999999999999999999999999999999 0.500 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371380 fma 1 9999999999999999999999999999999999 0.50 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371381 fma 1 9999999999999999999999999999999999 0.5 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371382 fma 1 9999999999999999999999999999999999 0.5000000000000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371383 fma 1 9999999999999999999999999999999999 0.500000000000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371384 fma 1 9999999999999999999999999999999999 0.50000000000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371385 fma 1 9999999999999999999999999999999999 0.5000000000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371386 fma 1 9999999999999999999999999999999999 0.500000000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371387 fma 1 9999999999999999999999999999999999 0.50000000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371388 fma 1 9999999999999999999999999999999999 0.5000000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371389 fma 1 9999999999999999999999999999999999 0.500000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371390 fma 1 9999999999999999999999999999999999 0.50000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371391 fma 1 9999999999999999999999999999999999 0.5000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371392 fma 1 9999999999999999999999999999999999 0.500001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371393 fma 1 9999999999999999999999999999999999 0.50001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371394 fma 1 9999999999999999999999999999999999 0.5001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371395 fma 1 9999999999999999999999999999999999 0.501 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-dqadd371396 fma 1 9999999999999999999999999999999999 0.51 -> 1.000000000000000000000000000000000E+34 Inexact Rounded
-
--- More GD edge cases, where difference between the unadjusted
--- exponents is larger than the maximum precision and one side is 0
-dqadd371420 fma 1 0 1.123456789987654321123456789012345 -> 1.123456789987654321123456789012345
-dqadd371421 fma 1 0 1.123456789987654321123456789012345E-1 -> 0.1123456789987654321123456789012345
-dqadd371422 fma 1 0 1.123456789987654321123456789012345E-2 -> 0.01123456789987654321123456789012345
-dqadd371423 fma 1 0 1.123456789987654321123456789012345E-3 -> 0.001123456789987654321123456789012345
-dqadd371424 fma 1 0 1.123456789987654321123456789012345E-4 -> 0.0001123456789987654321123456789012345
-dqadd371425 fma 1 0 1.123456789987654321123456789012345E-5 -> 0.00001123456789987654321123456789012345
-dqadd371426 fma 1 0 1.123456789987654321123456789012345E-6 -> 0.000001123456789987654321123456789012345
-dqadd371427 fma 1 0 1.123456789987654321123456789012345E-7 -> 1.123456789987654321123456789012345E-7
-dqadd371428 fma 1 0 1.123456789987654321123456789012345E-8 -> 1.123456789987654321123456789012345E-8
-dqadd371429 fma 1 0 1.123456789987654321123456789012345E-9 -> 1.123456789987654321123456789012345E-9
-dqadd371430 fma 1 0 1.123456789987654321123456789012345E-10 -> 1.123456789987654321123456789012345E-10
-dqadd371431 fma 1 0 1.123456789987654321123456789012345E-11 -> 1.123456789987654321123456789012345E-11
-dqadd371432 fma 1 0 1.123456789987654321123456789012345E-12 -> 1.123456789987654321123456789012345E-12
-dqadd371433 fma 1 0 1.123456789987654321123456789012345E-13 -> 1.123456789987654321123456789012345E-13
-dqadd371434 fma 1 0 1.123456789987654321123456789012345E-14 -> 1.123456789987654321123456789012345E-14
-dqadd371435 fma 1 0 1.123456789987654321123456789012345E-15 -> 1.123456789987654321123456789012345E-15
-dqadd371436 fma 1 0 1.123456789987654321123456789012345E-16 -> 1.123456789987654321123456789012345E-16
-dqadd371437 fma 1 0 1.123456789987654321123456789012345E-17 -> 1.123456789987654321123456789012345E-17
-dqadd371438 fma 1 0 1.123456789987654321123456789012345E-18 -> 1.123456789987654321123456789012345E-18
-dqadd371439 fma 1 0 1.123456789987654321123456789012345E-19 -> 1.123456789987654321123456789012345E-19
-dqadd371440 fma 1 0 1.123456789987654321123456789012345E-20 -> 1.123456789987654321123456789012345E-20
-dqadd371441 fma 1 0 1.123456789987654321123456789012345E-21 -> 1.123456789987654321123456789012345E-21
-dqadd371442 fma 1 0 1.123456789987654321123456789012345E-22 -> 1.123456789987654321123456789012345E-22
-dqadd371443 fma 1 0 1.123456789987654321123456789012345E-23 -> 1.123456789987654321123456789012345E-23
-dqadd371444 fma 1 0 1.123456789987654321123456789012345E-24 -> 1.123456789987654321123456789012345E-24
-dqadd371445 fma 1 0 1.123456789987654321123456789012345E-25 -> 1.123456789987654321123456789012345E-25
-dqadd371446 fma 1 0 1.123456789987654321123456789012345E-26 -> 1.123456789987654321123456789012345E-26
-dqadd371447 fma 1 0 1.123456789987654321123456789012345E-27 -> 1.123456789987654321123456789012345E-27
-dqadd371448 fma 1 0 1.123456789987654321123456789012345E-28 -> 1.123456789987654321123456789012345E-28
-dqadd371449 fma 1 0 1.123456789987654321123456789012345E-29 -> 1.123456789987654321123456789012345E-29
-dqadd371450 fma 1 0 1.123456789987654321123456789012345E-30 -> 1.123456789987654321123456789012345E-30
-dqadd371451 fma 1 0 1.123456789987654321123456789012345E-31 -> 1.123456789987654321123456789012345E-31
-dqadd371452 fma 1 0 1.123456789987654321123456789012345E-32 -> 1.123456789987654321123456789012345E-32
-dqadd371453 fma 1 0 1.123456789987654321123456789012345E-33 -> 1.123456789987654321123456789012345E-33
-dqadd371454 fma 1 0 1.123456789987654321123456789012345E-34 -> 1.123456789987654321123456789012345E-34
-dqadd371455 fma 1 0 1.123456789987654321123456789012345E-35 -> 1.123456789987654321123456789012345E-35
-dqadd371456 fma 1 0 1.123456789987654321123456789012345E-36 -> 1.123456789987654321123456789012345E-36
-
--- same, reversed 0
-dqadd371460 fma 1 1.123456789987654321123456789012345 0 -> 1.123456789987654321123456789012345
-dqadd371461 fma 1 1.123456789987654321123456789012345E-1 0 -> 0.1123456789987654321123456789012345
-dqadd371462 fma 1 1.123456789987654321123456789012345E-2 0 -> 0.01123456789987654321123456789012345
-dqadd371463 fma 1 1.123456789987654321123456789012345E-3 0 -> 0.001123456789987654321123456789012345
-dqadd371464 fma 1 1.123456789987654321123456789012345E-4 0 -> 0.0001123456789987654321123456789012345
-dqadd371465 fma 1 1.123456789987654321123456789012345E-5 0 -> 0.00001123456789987654321123456789012345
-dqadd371466 fma 1 1.123456789987654321123456789012345E-6 0 -> 0.000001123456789987654321123456789012345
-dqadd371467 fma 1 1.123456789987654321123456789012345E-7 0 -> 1.123456789987654321123456789012345E-7
-dqadd371468 fma 1 1.123456789987654321123456789012345E-8 0 -> 1.123456789987654321123456789012345E-8
-dqadd371469 fma 1 1.123456789987654321123456789012345E-9 0 -> 1.123456789987654321123456789012345E-9
-dqadd371470 fma 1 1.123456789987654321123456789012345E-10 0 -> 1.123456789987654321123456789012345E-10
-dqadd371471 fma 1 1.123456789987654321123456789012345E-11 0 -> 1.123456789987654321123456789012345E-11
-dqadd371472 fma 1 1.123456789987654321123456789012345E-12 0 -> 1.123456789987654321123456789012345E-12
-dqadd371473 fma 1 1.123456789987654321123456789012345E-13 0 -> 1.123456789987654321123456789012345E-13
-dqadd371474 fma 1 1.123456789987654321123456789012345E-14 0 -> 1.123456789987654321123456789012345E-14
-dqadd371475 fma 1 1.123456789987654321123456789012345E-15 0 -> 1.123456789987654321123456789012345E-15
-dqadd371476 fma 1 1.123456789987654321123456789012345E-16 0 -> 1.123456789987654321123456789012345E-16
-dqadd371477 fma 1 1.123456789987654321123456789012345E-17 0 -> 1.123456789987654321123456789012345E-17
-dqadd371478 fma 1 1.123456789987654321123456789012345E-18 0 -> 1.123456789987654321123456789012345E-18
-dqadd371479 fma 1 1.123456789987654321123456789012345E-19 0 -> 1.123456789987654321123456789012345E-19
-dqadd371480 fma 1 1.123456789987654321123456789012345E-20 0 -> 1.123456789987654321123456789012345E-20
-dqadd371481 fma 1 1.123456789987654321123456789012345E-21 0 -> 1.123456789987654321123456789012345E-21
-dqadd371482 fma 1 1.123456789987654321123456789012345E-22 0 -> 1.123456789987654321123456789012345E-22
-dqadd371483 fma 1 1.123456789987654321123456789012345E-23 0 -> 1.123456789987654321123456789012345E-23
-dqadd371484 fma 1 1.123456789987654321123456789012345E-24 0 -> 1.123456789987654321123456789012345E-24
-dqadd371485 fma 1 1.123456789987654321123456789012345E-25 0 -> 1.123456789987654321123456789012345E-25
-dqadd371486 fma 1 1.123456789987654321123456789012345E-26 0 -> 1.123456789987654321123456789012345E-26
-dqadd371487 fma 1 1.123456789987654321123456789012345E-27 0 -> 1.123456789987654321123456789012345E-27
-dqadd371488 fma 1 1.123456789987654321123456789012345E-28 0 -> 1.123456789987654321123456789012345E-28
-dqadd371489 fma 1 1.123456789987654321123456789012345E-29 0 -> 1.123456789987654321123456789012345E-29
-dqadd371490 fma 1 1.123456789987654321123456789012345E-30 0 -> 1.123456789987654321123456789012345E-30
-dqadd371491 fma 1 1.123456789987654321123456789012345E-31 0 -> 1.123456789987654321123456789012345E-31
-dqadd371492 fma 1 1.123456789987654321123456789012345E-32 0 -> 1.123456789987654321123456789012345E-32
-dqadd371493 fma 1 1.123456789987654321123456789012345E-33 0 -> 1.123456789987654321123456789012345E-33
-dqadd371494 fma 1 1.123456789987654321123456789012345E-34 0 -> 1.123456789987654321123456789012345E-34
-dqadd371495 fma 1 1.123456789987654321123456789012345E-35 0 -> 1.123456789987654321123456789012345E-35
-dqadd371496 fma 1 1.123456789987654321123456789012345E-36 0 -> 1.123456789987654321123456789012345E-36
-
--- same, Es on the 0
-dqadd371500 fma 1 1.123456789987654321123456789012345 0E-0 -> 1.123456789987654321123456789012345
-dqadd371501 fma 1 1.123456789987654321123456789012345 0E-1 -> 1.123456789987654321123456789012345
-dqadd371502 fma 1 1.123456789987654321123456789012345 0E-2 -> 1.123456789987654321123456789012345
-dqadd371503 fma 1 1.123456789987654321123456789012345 0E-3 -> 1.123456789987654321123456789012345
-dqadd371504 fma 1 1.123456789987654321123456789012345 0E-4 -> 1.123456789987654321123456789012345
-dqadd371505 fma 1 1.123456789987654321123456789012345 0E-5 -> 1.123456789987654321123456789012345
-dqadd371506 fma 1 1.123456789987654321123456789012345 0E-6 -> 1.123456789987654321123456789012345
-dqadd371507 fma 1 1.123456789987654321123456789012345 0E-7 -> 1.123456789987654321123456789012345
-dqadd371508 fma 1 1.123456789987654321123456789012345 0E-8 -> 1.123456789987654321123456789012345
-dqadd371509 fma 1 1.123456789987654321123456789012345 0E-9 -> 1.123456789987654321123456789012345
-dqadd371510 fma 1 1.123456789987654321123456789012345 0E-10 -> 1.123456789987654321123456789012345
-dqadd371511 fma 1 1.123456789987654321123456789012345 0E-11 -> 1.123456789987654321123456789012345
-dqadd371512 fma 1 1.123456789987654321123456789012345 0E-12 -> 1.123456789987654321123456789012345
-dqadd371513 fma 1 1.123456789987654321123456789012345 0E-13 -> 1.123456789987654321123456789012345
-dqadd371514 fma 1 1.123456789987654321123456789012345 0E-14 -> 1.123456789987654321123456789012345
-dqadd371515 fma 1 1.123456789987654321123456789012345 0E-15 -> 1.123456789987654321123456789012345
-dqadd371516 fma 1 1.123456789987654321123456789012345 0E-16 -> 1.123456789987654321123456789012345
-dqadd371517 fma 1 1.123456789987654321123456789012345 0E-17 -> 1.123456789987654321123456789012345
-dqadd371518 fma 1 1.123456789987654321123456789012345 0E-18 -> 1.123456789987654321123456789012345
-dqadd371519 fma 1 1.123456789987654321123456789012345 0E-19 -> 1.123456789987654321123456789012345
-dqadd371520 fma 1 1.123456789987654321123456789012345 0E-20 -> 1.123456789987654321123456789012345
-dqadd371521 fma 1 1.123456789987654321123456789012345 0E-21 -> 1.123456789987654321123456789012345
-dqadd371522 fma 1 1.123456789987654321123456789012345 0E-22 -> 1.123456789987654321123456789012345
-dqadd371523 fma 1 1.123456789987654321123456789012345 0E-23 -> 1.123456789987654321123456789012345
-dqadd371524 fma 1 1.123456789987654321123456789012345 0E-24 -> 1.123456789987654321123456789012345
-dqadd371525 fma 1 1.123456789987654321123456789012345 0E-25 -> 1.123456789987654321123456789012345
-dqadd371526 fma 1 1.123456789987654321123456789012345 0E-26 -> 1.123456789987654321123456789012345
-dqadd371527 fma 1 1.123456789987654321123456789012345 0E-27 -> 1.123456789987654321123456789012345
-dqadd371528 fma 1 1.123456789987654321123456789012345 0E-28 -> 1.123456789987654321123456789012345
-dqadd371529 fma 1 1.123456789987654321123456789012345 0E-29 -> 1.123456789987654321123456789012345
-dqadd371530 fma 1 1.123456789987654321123456789012345 0E-30 -> 1.123456789987654321123456789012345
-dqadd371531 fma 1 1.123456789987654321123456789012345 0E-31 -> 1.123456789987654321123456789012345
-dqadd371532 fma 1 1.123456789987654321123456789012345 0E-32 -> 1.123456789987654321123456789012345
-dqadd371533 fma 1 1.123456789987654321123456789012345 0E-33 -> 1.123456789987654321123456789012345
--- next four flag Rounded because the 0 extends the result
-dqadd371534 fma 1 1.123456789987654321123456789012345 0E-34 -> 1.123456789987654321123456789012345 Rounded
-dqadd371535 fma 1 1.123456789987654321123456789012345 0E-35 -> 1.123456789987654321123456789012345 Rounded
-dqadd371536 fma 1 1.123456789987654321123456789012345 0E-36 -> 1.123456789987654321123456789012345 Rounded
-dqadd371537 fma 1 1.123456789987654321123456789012345 0E-37 -> 1.123456789987654321123456789012345 Rounded
-
--- sum of two opposite-sign operands is exactly 0 and floor => -0
-rounding: half_up
--- exact zeros from zeros
-dqadd371600 fma 1 0 0E-19 -> 0E-19
-dqadd371601 fma 1 -0 0E-19 -> 0E-19
-dqadd371602 fma 1 0 -0E-19 -> 0E-19
-dqadd371603 fma 1 -0 -0E-19 -> -0E-19
--- exact zeros from non-zeros
-dqadd371611 fma 1 -11 11 -> 0
-dqadd371612 fma 1 11 -11 -> 0
--- overflow
-dqadd371613 fma 9E6144 10 1 -> Infinity Overflow Inexact Rounded
-dqadd371614 fma -9E6144 10 1 -> -Infinity Overflow Inexact Rounded
-
-rounding: half_down
--- exact zeros from zeros
-dqadd371620 fma 1 0 0E-19 -> 0E-19
-dqadd371621 fma 1 -0 0E-19 -> 0E-19
-dqadd371622 fma 1 0 -0E-19 -> 0E-19
-dqadd371623 fma 1 -0 -0E-19 -> -0E-19
--- exact zeros from non-zeros
-dqadd371631 fma 1 -11 11 -> 0
-dqadd371632 fma 1 11 -11 -> 0
--- overflow
-dqadd371633 fma 9E6144 10 1 -> Infinity Overflow Inexact Rounded
-dqadd371634 fma -9E6144 10 1 -> -Infinity Overflow Inexact Rounded
-
-rounding: half_even
--- exact zeros from zeros
-dqadd371640 fma 1 0 0E-19 -> 0E-19
-dqadd371641 fma 1 -0 0E-19 -> 0E-19
-dqadd371642 fma 1 0 -0E-19 -> 0E-19
-dqadd371643 fma 1 -0 -0E-19 -> -0E-19
--- exact zeros from non-zeros
-dqadd371651 fma 1 -11 11 -> 0
-dqadd371652 fma 1 11 -11 -> 0
--- overflow
-dqadd371653 fma 9E6144 10 1 -> Infinity Overflow Inexact Rounded
-dqadd371654 fma -9E6144 10 1 -> -Infinity Overflow Inexact Rounded
-
-rounding: up
--- exact zeros from zeros
-dqadd371660 fma 1 0 0E-19 -> 0E-19
-dqadd371661 fma 1 -0 0E-19 -> 0E-19
-dqadd371662 fma 1 0 -0E-19 -> 0E-19
-dqadd371663 fma 1 -0 -0E-19 -> -0E-19
--- exact zeros from non-zeros
-dqadd371671 fma 1 -11 11 -> 0
-dqadd371672 fma 1 11 -11 -> 0
--- overflow
-dqadd371673 fma 9E6144 10 1 -> Infinity Overflow Inexact Rounded
-dqadd371674 fma -9E6144 10 1 -> -Infinity Overflow Inexact Rounded
-
-rounding: down
--- exact zeros from zeros
-dqadd371680 fma 1 0 0E-19 -> 0E-19
-dqadd371681 fma 1 -0 0E-19 -> 0E-19
-dqadd371682 fma 1 0 -0E-19 -> 0E-19
-dqadd371683 fma 1 -0 -0E-19 -> -0E-19
--- exact zeros from non-zeros
-dqadd371691 fma 1 -11 11 -> 0
-dqadd371692 fma 1 11 -11 -> 0
--- overflow
-dqadd371693 fma 9E6144 10 1 -> 9.999999999999999999999999999999999E+6144 Overflow Inexact Rounded
-dqadd371694 fma -9E6144 10 1 -> -9.999999999999999999999999999999999E+6144 Overflow Inexact Rounded
-
-rounding: ceiling
--- exact zeros from zeros
-dqadd371700 fma 1 0 0E-19 -> 0E-19
-dqadd371701 fma 1 -0 0E-19 -> 0E-19
-dqadd371702 fma 1 0 -0E-19 -> 0E-19
-dqadd371703 fma 1 -0 -0E-19 -> -0E-19
--- exact zeros from non-zeros
-dqadd371711 fma 1 -11 11 -> 0
-dqadd371712 fma 1 11 -11 -> 0
--- overflow
-dqadd371713 fma 9E6144 10 1 -> Infinity Overflow Inexact Rounded
-dqadd371714 fma -9E6144 10 1 -> -9.999999999999999999999999999999999E+6144 Overflow Inexact Rounded
-
--- and the extra-special ugly case; unusual minuses marked by -- *
-rounding: floor
--- exact zeros from zeros
-dqadd371720 fma 1 0 0E-19 -> 0E-19
-dqadd371721 fma 1 -0 0E-19 -> -0E-19 -- *
-dqadd371722 fma 1 0 -0E-19 -> -0E-19 -- *
-dqadd371723 fma 1 -0 -0E-19 -> -0E-19
--- exact zeros from non-zeros
-dqadd371731 fma 1 -11 11 -> -0 -- *
-dqadd371732 fma 1 11 -11 -> -0 -- *
--- overflow
-dqadd371733 fma 9E6144 10 1 -> 9.999999999999999999999999999999999E+6144 Overflow Inexact Rounded
-dqadd371734 fma -9E6144 10 1 -> -Infinity Overflow Inexact Rounded
-
-rounding: 05up
--- exact zeros from zeros
-dqadd371740 fma 1 0 0E-19 -> 0E-19
-dqadd371741 fma 1 -0 0E-19 -> 0E-19
-dqadd371742 fma 1 0 -0E-19 -> 0E-19
-dqadd371743 fma 1 -0 -0E-19 -> -0E-19
--- exact zeros from non-zeros
-dqadd371751 fma 1 -11 11 -> 0
-dqadd371752 fma 1 11 -11 -> 0
--- overflow
-dqadd371753 fma 9E6144 10 1 -> 9.999999999999999999999999999999999E+6144 Overflow Inexact Rounded
-dqadd371754 fma -9E6144 10 1 -> -9.999999999999999999999999999999999E+6144 Overflow Inexact Rounded
-
--- Examples from SQL proposal (Krishna Kulkarni)
-dqadd371761 fma 1 130E-2 120E-2 -> 2.50
-dqadd371762 fma 1 130E-2 12E-1 -> 2.50
-dqadd371763 fma 1 130E-2 1E0 -> 2.30
-dqadd371764 fma 1 1E2 1E4 -> 1.01E+4
-dqadd371765 fma 1 130E-2 -120E-2 -> 0.10
-dqadd371766 fma 1 130E-2 -12E-1 -> 0.10
-dqadd371767 fma 1 130E-2 -1E0 -> 0.30
-dqadd371768 fma 1 1E2 -1E4 -> -9.9E+3
-
--- Gappy coefficients; check residue handling even with full coefficient gap
-rounding: half_even
-
-dqadd375001 fma 1 1239876543211234567894567890123456 1 -> 1239876543211234567894567890123457
-dqadd375002 fma 1 1239876543211234567894567890123456 0.6 -> 1239876543211234567894567890123457 Inexact Rounded
-dqadd375003 fma 1 1239876543211234567894567890123456 0.06 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd375004 fma 1 1239876543211234567894567890123456 6E-3 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd375005 fma 1 1239876543211234567894567890123456 6E-4 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd375006 fma 1 1239876543211234567894567890123456 6E-5 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd375007 fma 1 1239876543211234567894567890123456 6E-6 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd375008 fma 1 1239876543211234567894567890123456 6E-7 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd375009 fma 1 1239876543211234567894567890123456 6E-8 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd375010 fma 1 1239876543211234567894567890123456 6E-9 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd375011 fma 1 1239876543211234567894567890123456 6E-10 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd375012 fma 1 1239876543211234567894567890123456 6E-11 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd375013 fma 1 1239876543211234567894567890123456 6E-12 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd375014 fma 1 1239876543211234567894567890123456 6E-13 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd375015 fma 1 1239876543211234567894567890123456 6E-14 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd375016 fma 1 1239876543211234567894567890123456 6E-15 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd375017 fma 1 1239876543211234567894567890123456 6E-16 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd375018 fma 1 1239876543211234567894567890123456 6E-17 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd375019 fma 1 1239876543211234567894567890123456 6E-18 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd375020 fma 1 1239876543211234567894567890123456 6E-19 -> 1239876543211234567894567890123456 Inexact Rounded
-dqadd375021 fma 1 1239876543211234567894567890123456 6E-20 -> 1239876543211234567894567890123456 Inexact Rounded
-
--- widening second argument at gap
-dqadd375030 fma 1 12398765432112345678945678 1 -> 12398765432112345678945679
-dqadd375031 fma 1 12398765432112345678945678 0.1 -> 12398765432112345678945678.1
-dqadd375032 fma 1 12398765432112345678945678 0.12 -> 12398765432112345678945678.12
-dqadd375033 fma 1 12398765432112345678945678 0.123 -> 12398765432112345678945678.123
-dqadd375034 fma 1 12398765432112345678945678 0.1234 -> 12398765432112345678945678.1234
-dqadd375035 fma 1 12398765432112345678945678 0.12345 -> 12398765432112345678945678.12345
-dqadd375036 fma 1 12398765432112345678945678 0.123456 -> 12398765432112345678945678.123456
-dqadd375037 fma 1 12398765432112345678945678 0.1234567 -> 12398765432112345678945678.1234567
-dqadd375038 fma 1 12398765432112345678945678 0.12345678 -> 12398765432112345678945678.12345678
-dqadd375039 fma 1 12398765432112345678945678 0.123456789 -> 12398765432112345678945678.12345679 Inexact Rounded
-dqadd375040 fma 1 12398765432112345678945678 0.123456785 -> 12398765432112345678945678.12345678 Inexact Rounded
-dqadd375041 fma 1 12398765432112345678945678 0.1234567850 -> 12398765432112345678945678.12345678 Inexact Rounded
-dqadd375042 fma 1 12398765432112345678945678 0.1234567851 -> 12398765432112345678945678.12345679 Inexact Rounded
-dqadd375043 fma 1 12398765432112345678945678 0.12345678501 -> 12398765432112345678945678.12345679 Inexact Rounded
-dqadd375044 fma 1 12398765432112345678945678 0.123456785001 -> 12398765432112345678945678.12345679 Inexact Rounded
-dqadd375045 fma 1 12398765432112345678945678 0.1234567850001 -> 12398765432112345678945678.12345679 Inexact Rounded
-dqadd375046 fma 1 12398765432112345678945678 0.12345678500001 -> 12398765432112345678945678.12345679 Inexact Rounded
-dqadd375047 fma 1 12398765432112345678945678 0.123456785000001 -> 12398765432112345678945678.12345679 Inexact Rounded
-dqadd375048 fma 1 12398765432112345678945678 0.1234567850000001 -> 12398765432112345678945678.12345679 Inexact Rounded
-dqadd375049 fma 1 12398765432112345678945678 0.1234567850000000 -> 12398765432112345678945678.12345678 Inexact Rounded
--- 90123456
-rounding: half_even
-dqadd375050 fma 1 12398765432112345678945678 0.0234567750000000 -> 12398765432112345678945678.02345678 Inexact Rounded
-dqadd375051 fma 1 12398765432112345678945678 0.0034567750000000 -> 12398765432112345678945678.00345678 Inexact Rounded
-dqadd375052 fma 1 12398765432112345678945678 0.0004567750000000 -> 12398765432112345678945678.00045678 Inexact Rounded
-dqadd375053 fma 1 12398765432112345678945678 0.0000567750000000 -> 12398765432112345678945678.00005678 Inexact Rounded
-dqadd375054 fma 1 12398765432112345678945678 0.0000067750000000 -> 12398765432112345678945678.00000678 Inexact Rounded
-dqadd375055 fma 1 12398765432112345678945678 0.0000007750000000 -> 12398765432112345678945678.00000078 Inexact Rounded
-dqadd375056 fma 1 12398765432112345678945678 0.0000000750000000 -> 12398765432112345678945678.00000008 Inexact Rounded
-dqadd375057 fma 1 12398765432112345678945678 0.0000000050000000 -> 12398765432112345678945678.00000000 Inexact Rounded
-dqadd375060 fma 1 12398765432112345678945678 0.0234567750000001 -> 12398765432112345678945678.02345678 Inexact Rounded
-dqadd375061 fma 1 12398765432112345678945678 0.0034567750000001 -> 12398765432112345678945678.00345678 Inexact Rounded
-dqadd375062 fma 1 12398765432112345678945678 0.0004567750000001 -> 12398765432112345678945678.00045678 Inexact Rounded
-dqadd375063 fma 1 12398765432112345678945678 0.0000567750000001 -> 12398765432112345678945678.00005678 Inexact Rounded
-dqadd375064 fma 1 12398765432112345678945678 0.0000067750000001 -> 12398765432112345678945678.00000678 Inexact Rounded
-dqadd375065 fma 1 12398765432112345678945678 0.0000007750000001 -> 12398765432112345678945678.00000078 Inexact Rounded
-dqadd375066 fma 1 12398765432112345678945678 0.0000000750000001 -> 12398765432112345678945678.00000008 Inexact Rounded
-dqadd375067 fma 1 12398765432112345678945678 0.0000000050000001 -> 12398765432112345678945678.00000001 Inexact Rounded
--- far-out residues (full coefficient gap is 16+15 digits)
-rounding: up
-dqadd375070 fma 1 12398765432112345678945678 1E-8 -> 12398765432112345678945678.00000001
-dqadd375071 fma 1 12398765432112345678945678 1E-9 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd375072 fma 1 12398765432112345678945678 1E-10 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd375073 fma 1 12398765432112345678945678 1E-11 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd375074 fma 1 12398765432112345678945678 1E-12 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd375075 fma 1 12398765432112345678945678 1E-13 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd375076 fma 1 12398765432112345678945678 1E-14 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd375077 fma 1 12398765432112345678945678 1E-15 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd375078 fma 1 12398765432112345678945678 1E-16 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd375079 fma 1 12398765432112345678945678 1E-17 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd375080 fma 1 12398765432112345678945678 1E-18 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd375081 fma 1 12398765432112345678945678 1E-19 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd375082 fma 1 12398765432112345678945678 1E-20 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd375083 fma 1 12398765432112345678945678 1E-25 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd375084 fma 1 12398765432112345678945678 1E-30 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd375085 fma 1 12398765432112345678945678 1E-31 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd375086 fma 1 12398765432112345678945678 1E-32 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd375087 fma 1 12398765432112345678945678 1E-33 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd375088 fma 1 12398765432112345678945678 1E-34 -> 12398765432112345678945678.00000001 Inexact Rounded
-dqadd375089 fma 1 12398765432112345678945678 1E-35 -> 12398765432112345678945678.00000001 Inexact Rounded
-
--- Destructive subtract (from remainder tests)
-
--- +++ some of these will be off-by-one remainder vs remainderNear
-
-dqfma4000 fma -1234567890123456789012345678901233 1.000000000000000000000000000000001 1234567890123456789012345678901234 -> -0.234567890123456789012345678901233
-dqfma4001 fma -1234567890123456789012345678901222 1.00000000000000000000000000000001 1234567890123456789012345678901234 -> -0.34567890123456789012345678901222
-dqfma4002 fma -1234567890123456789012345678901111 1.0000000000000000000000000000001 1234567890123456789012345678901234 -> -0.4567890123456789012345678901111
-dqfma4003 fma -308641972530864197253086419725314 4.000000000000000000000000000000001 1234567890123456789012345678901255 -> -1.308641972530864197253086419725314
-dqfma4004 fma -308641972530864197253086419725308 4.000000000000000000000000000000001 1234567890123456789012345678901234 -> 1.691358027469135802746913580274692
-dqfma4005 fma -246913578024691357802469135780252 4.9999999999999999999999999999999 1234567890123456789012345678901234 -> -1.3086421975308642197530864219748
-dqfma4006 fma -246913578024691357802469135780247 4.99999999999999999999999999999999 1234567890123456789012345678901234 -> 1.46913578024691357802469135780247
-dqfma4007 fma -246913578024691357802469135780247 4.999999999999999999999999999999999 1234567890123456789012345678901234 -> -0.753086421975308642197530864219753
-dqfma4008 fma -246913578024691357802469135780247 5.000000000000000000000000000000001 1234567890123456789012345678901234 -> -1.246913578024691357802469135780247
-dqfma4009 fma -246913578024691357802469135780246 5.00000000000000000000000000000001 1234567890123456789012345678901234 -> 1.53086421975308642197530864219754
-dqfma4010 fma -246913578024691357802469135780242 5.0000000000000000000000000000001 1234567890123456789012345678901234 -> -0.6913578024691357802469135780242
-dqfma4011 fma -1234567890123456789012345678901232 1.000000000000000000000000000000001 1234567890123456789012345678901234 -> 0.765432109876543210987654321098768
-dqfma4012 fma -1234567890123456789012345678901221 1.00000000000000000000000000000001 1234567890123456789012345678901234 -> 0.65432109876543210987654321098779
-dqfma4013 fma -1234567890123456789012345678901110 1.0000000000000000000000000000001 1234567890123456789012345678901234 -> 0.5432109876543210987654321098890
-dqfma4014 fma -308641972530864197253086419725313 4.000000000000000000000000000000001 1234567890123456789012345678901255 -> 2.691358027469135802746913580274687
-dqfma4015 fma -308641972530864197253086419725308 4.000000000000000000000000000000001 1234567890123456789012345678901234 -> 1.691358027469135802746913580274692
-dqfma4016 fma -246913578024691357802469135780251 4.9999999999999999999999999999999 1234567890123456789012345678901234 -> 3.6913578024691357802469135780251
-dqfma4017 fma -246913578024691357802469135780247 4.99999999999999999999999999999999 1234567890123456789012345678901234 -> 1.46913578024691357802469135780247
-dqfma4018 fma -246913578024691357802469135780246 4.999999999999999999999999999999999 1234567890123456789012345678901234 -> 4.246913578024691357802469135780246
-dqfma4019 fma -246913578024691357802469135780241 5.0000000000000000000000000000001 1234567890123456789012345678901234 -> 4.3086421975308642197530864219759
-
--- Null tests
-dqadd39990 fma 1 10 # -> NaN Invalid_operation
-dqadd39991 fma 1 # 10 -> NaN Invalid_operation
-
-
+------------------------------------------------------------------------ +-- dqFMA.decTest -- decQuad Fused Multiply Add -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +-- 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 +dqfma0001 fma 1 1 1 -> 2 +dqfma0002 fma 1 1 2 -> 3 +dqfma0003 fma 2 2 3 -> 7 +dqfma0004 fma 9 9 9 -> 90 +dqfma0005 fma -1 1 1 -> 0 +dqfma0006 fma -1 1 2 -> 1 +dqfma0007 fma -2 2 3 -> -1 +dqfma0008 fma -9 9 9 -> -72 +dqfma0011 fma 1 -1 1 -> 0 +dqfma0012 fma 1 -1 2 -> 1 +dqfma0013 fma 2 -2 3 -> -1 +dqfma0014 fma 9 -9 9 -> -72 +dqfma0015 fma 1 1 -1 -> 0 +dqfma0016 fma 1 1 -2 -> -1 +dqfma0017 fma 2 2 -3 -> 1 +dqfma0018 fma 9 9 -9 -> 72 + +-- non-integer exacts +dqfma0100 fma 25.2 63.6 -438 -> 1164.72 +dqfma0101 fma 0.301 0.380 334 -> 334.114380 +dqfma0102 fma 49.2 -4.8 23.3 -> -212.86 +dqfma0103 fma 4.22 0.079 -94.6 -> -94.26662 +dqfma0104 fma 903 0.797 0.887 -> 720.578 +dqfma0105 fma 6.13 -161 65.9 -> -921.03 +dqfma0106 fma 28.2 727 5.45 -> 20506.85 +dqfma0107 fma 4 605 688 -> 3108 +dqfma0108 fma 93.3 0.19 0.226 -> 17.953 +dqfma0109 fma 0.169 -341 5.61 -> -52.019 +dqfma0110 fma -72.2 30 -51.2 -> -2217.2 +dqfma0111 fma -0.409 13 20.4 -> 15.083 +dqfma0112 fma 317 77.0 19.0 -> 24428.0 +dqfma0113 fma 47 6.58 1.62 -> 310.88 +dqfma0114 fma 1.36 0.984 0.493 -> 1.83124 +dqfma0115 fma 72.7 274 1.56 -> 19921.36 +dqfma0116 fma 335 847 83 -> 283828 +dqfma0117 fma 666 0.247 25.4 -> 189.902 +dqfma0118 fma -3.87 3.06 78.0 -> 66.1578 +dqfma0119 fma 0.742 192 35.6 -> 178.064 +dqfma0120 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] +-- -> 4.500119002100000209469729375698778E+38 +dqfma0202 fma 68537985861355864457.5694 6565875762972086605.85969 35892634447236753.172812 -> 4.500119002100000209469729375698779E+38 Inexact Rounded +-- -> 5.996248469584594346858881620185514E+41 +dqfma0208 fma 89261822344727628571.9 6717595845654131383336.89 5061036497288796076266.11 -> 5.996248469584594346858881620185513E+41 Inexact Rounded +-- -> 1.899242968678256924021594770874070E+34 +dqfma0210 fma 320506237232448685.495971 59257597764017967.984448 3205615239077711589912.85 -> 1.899242968678256924021594770874071E+34 Inexact Rounded +-- -> 7.078596978842809537929699954860309E+37 +dqfma0215 fma 220247843259112263.17995 321392340287987979002.80 47533279819997167655440 -> 7.078596978842809537929699954860308E+37 Inexact Rounded +-- -> 1.224955667581427559754106862350743E+37 +dqfma0226 fma 23880729790368880412.1449 512947333827064719.55407 217117438419590824502.963 -> 1.224955667581427559754106862350744E+37 Inexact Rounded +-- -> -2.530094043253148806272276368579144E+42 +dqfma0229 fma 2539892357016099706.4126 -996142232667504817717435 53682082598315949425.937 -> -2.530094043253148806272276368579143E+42 Inexact Rounded +-- -> 1.713387085759711954319391412788454E+37 +dqfma0233 fma 4546339491341624464.0804 3768717864169205581 83578980278690395184.620 -> 1.713387085759711954319391412788453E+37 Inexact Rounded +-- -> 4.062275663405823716411579117771547E+35 +dqfma0235 fma 409242119433816131.42253 992633815166741501.477249 70179636544416756129546 -> 4.062275663405823716411579117771548E+35 Inexact Rounded +-- -> 6.002604327732568490562249875306823E+47 +dqfma0258 fma 817941336593541742159684 733867339769310729266598 78563844650942419311830.8 -> 6.002604327732568490562249875306822E+47 Inexact Rounded +-- -> -2.027022514381452197510103395283874E+39 +dqfma0264 fma 387617310169161270.737532 -5229442703414956061216.62 57665666816652967150473.5 -> -2.027022514381452197510103395283873E+39 Inexact Rounded +-- -> -7.856525039803554001144089842730361E+37 +dqfma0267 fma -847655845720565274701.210 92685316564117739.83984 22780950041376424429.5686 -> -7.856525039803554001144089842730360E+37 Inexact Rounded +-- -> 1.695515562011520746125607502237559E+38 +dqfma0268 fma 21590290365127685.3675 7853139227576541379426.8 -3275859437236180.761544 -> 1.695515562011520746125607502237558E+38 Inexact Rounded +-- -> -8.448422935783289219748115038014710E+38 +dqfma0269 fma -974320636272862697.971586 867109103641860247440.756 -9775170775902454762.98 -> -8.448422935783289219748115038014709E+38 Inexact Rounded + +-- Cases where multiply would overflow or underflow if separate +dqfma0300 fma 9e+6144 10 0 -> Infinity Overflow Inexact Rounded +dqfma0301 fma 1e+6144 10 0 -> Infinity Overflow Inexact Rounded +dqfma0302 fma 1e+6144 10 -1e+6144 -> 9.000000000000000000000000000000000E+6144 Clamped +dqfma0303 fma 1e+6144 10 -9e+6144 -> 1.000000000000000000000000000000000E+6144 Clamped +-- subnormal etc. +dqfma0305 fma 1e-6176 0.1 0 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqfma0306 fma 1e-6176 0.1 1 -> 1.000000000000000000000000000000000 Inexact Rounded +dqfma0307 fma 1e-6176 0.1 1e-6176 -> 1E-6176 Underflow Subnormal Inexact Rounded + +-- Infinite combinations +dqfma0800 fma Inf Inf Inf -> Infinity +dqfma0801 fma Inf Inf -Inf -> NaN Invalid_operation +dqfma0802 fma Inf -Inf Inf -> NaN Invalid_operation +dqfma0803 fma Inf -Inf -Inf -> -Infinity +dqfma0804 fma -Inf Inf Inf -> NaN Invalid_operation +dqfma0805 fma -Inf Inf -Inf -> -Infinity +dqfma0806 fma -Inf -Inf Inf -> Infinity +dqfma0807 fma -Inf -Inf -Inf -> NaN Invalid_operation + +-- Triple NaN propagation +dqfma0900 fma NaN2 NaN3 NaN5 -> NaN2 +dqfma0901 fma 0 NaN3 NaN5 -> NaN3 +dqfma0902 fma 0 0 NaN5 -> NaN5 +-- first sNaN wins (consider qNaN from earlier sNaN being +-- overridden by an sNaN in third operand) +dqfma0903 fma sNaN1 sNaN2 sNaN3 -> NaN1 Invalid_operation +dqfma0904 fma 0 sNaN2 sNaN3 -> NaN2 Invalid_operation +dqfma0905 fma 0 0 sNaN3 -> NaN3 Invalid_operation +dqfma0906 fma sNaN1 sNaN2 sNaN3 -> NaN1 Invalid_operation +dqfma0907 fma NaN7 sNaN2 sNaN3 -> NaN2 Invalid_operation +dqfma0908 fma NaN7 NaN5 sNaN3 -> NaN3 Invalid_operation + +-- MULTIPLICATION TESTS ------------------------------------------------ +rounding: half_even + +-- sanity checks +dqfma2000 fma 2 2 0e+6144 -> 4 +dqfma2001 fma 2 3 0e+6144 -> 6 +dqfma2002 fma 5 1 0e+6144 -> 5 +dqfma2003 fma 5 2 0e+6144 -> 10 +dqfma2004 fma 1.20 2 0e+6144 -> 2.40 +dqfma2005 fma 1.20 0 0e+6144 -> 0.00 +dqfma2006 fma 1.20 -2 0e+6144 -> -2.40 +dqfma2007 fma -1.20 2 0e+6144 -> -2.40 +dqfma2008 fma -1.20 0 0e+6144 -> 0.00 +dqfma2009 fma -1.20 -2 0e+6144 -> 2.40 +dqfma2010 fma 5.09 7.1 0e+6144 -> 36.139 +dqfma2011 fma 2.5 4 0e+6144 -> 10.0 +dqfma2012 fma 2.50 4 0e+6144 -> 10.00 +dqfma2013 fma 1.23456789 1.0000000000000000000000000000 0e+6144 -> 1.234567890000000000000000000000000 Rounded +dqfma2015 fma 2.50 4 0e+6144 -> 10.00 +dqfma2016 fma 9.99999999999999999 9.99999999999999999 0e+6144 -> 99.99999999999999980000000000000000 Inexact Rounded +dqfma2017 fma 9.99999999999999999 -9.99999999999999999 0e+6144 -> -99.99999999999999980000000000000000 Inexact Rounded +dqfma2018 fma -9.99999999999999999 9.99999999999999999 0e+6144 -> -99.99999999999999980000000000000000 Inexact Rounded +dqfma2019 fma -9.99999999999999999 -9.99999999999999999 0e+6144 -> 99.99999999999999980000000000000000 Inexact Rounded + +-- zeros, etc. +dqfma2021 fma 0 0 0e+6144 -> 0 +dqfma2022 fma 0 -0 0e+6144 -> 0 +dqfma2023 fma -0 0 0e+6144 -> 0 +dqfma2024 fma -0 -0 0e+6144 -> 0 +dqfma2025 fma -0.0 -0.0 0e+6144 -> 0.00 +dqfma2026 fma -0.0 -0.0 0e+6144 -> 0.00 +dqfma2027 fma -0.0 -0.0 0e+6144 -> 0.00 +dqfma2028 fma -0.0 -0.0 0e+6144 -> 0.00 +dqfma2030 fma 5.00 1E-3 0e+6144 -> 0.00500 +dqfma2031 fma 00.00 0.000 0e+6144 -> 0.00000 +dqfma2032 fma 00.00 0E-3 0e+6144 -> 0.00000 -- rhs is 0 +dqfma2033 fma 0E-3 00.00 0e+6144 -> 0.00000 -- lhs is 0 +dqfma2034 fma -5.00 1E-3 0e+6144 -> -0.00500 +dqfma2035 fma -00.00 0.000 0e+6144 -> 0.00000 +dqfma2036 fma -00.00 0E-3 0e+6144 -> 0.00000 -- rhs is 0 +dqfma2037 fma -0E-3 00.00 0e+6144 -> 0.00000 -- lhs is 0 +dqfma2038 fma 5.00 -1E-3 0e+6144 -> -0.00500 +dqfma2039 fma 00.00 -0.000 0e+6144 -> 0.00000 +dqfma2040 fma 00.00 -0E-3 0e+6144 -> 0.00000 -- rhs is 0 +dqfma2041 fma 0E-3 -00.00 0e+6144 -> 0.00000 -- lhs is 0 +dqfma2042 fma -5.00 -1E-3 0e+6144 -> 0.00500 +dqfma2043 fma -00.00 -0.000 0e+6144 -> 0.00000 +dqfma2044 fma -00.00 -0E-3 0e+6144 -> 0.00000 -- rhs is 0 +dqfma2045 fma -0E-3 -00.00 0e+6144 -> 0.00000 -- lhs is 0 + +-- examples from decarith +dqfma2050 fma 1.20 3 0e+6144 -> 3.60 +dqfma2051 fma 7 3 0e+6144 -> 21 +dqfma2052 fma 0.9 0.8 0e+6144 -> 0.72 +dqfma2053 fma 0.9 -0 0e+6144 -> 0.0 +dqfma2054 fma 654321 654321 0e+6144 -> 428135971041 + +dqfma2060 fma 123.45 1e7 0e+6144 -> 1.2345E+9 +dqfma2061 fma 123.45 1e8 0e+6144 -> 1.2345E+10 +dqfma2062 fma 123.45 1e+9 0e+6144 -> 1.2345E+11 +dqfma2063 fma 123.45 1e10 0e+6144 -> 1.2345E+12 +dqfma2064 fma 123.45 1e11 0e+6144 -> 1.2345E+13 +dqfma2065 fma 123.45 1e12 0e+6144 -> 1.2345E+14 +dqfma2066 fma 123.45 1e13 0e+6144 -> 1.2345E+15 + + +-- test some intermediate lengths +-- 1234567890123456 +dqfma2080 fma 0.1 1230123456456789 0e+6144 -> 123012345645678.9 +dqfma2084 fma 0.1 1230123456456789 0e+6144 -> 123012345645678.9 +dqfma2090 fma 1230123456456789 0.1 0e+6144 -> 123012345645678.9 +dqfma2094 fma 1230123456456789 0.1 0e+6144 -> 123012345645678.9 + +-- test some more edge cases and carries +dqfma2101 fma 9 9 0e+6144 -> 81 +dqfma2102 fma 9 90 0e+6144 -> 810 +dqfma2103 fma 9 900 0e+6144 -> 8100 +dqfma2104 fma 9 9000 0e+6144 -> 81000 +dqfma2105 fma 9 90000 0e+6144 -> 810000 +dqfma2106 fma 9 900000 0e+6144 -> 8100000 +dqfma2107 fma 9 9000000 0e+6144 -> 81000000 +dqfma2108 fma 9 90000000 0e+6144 -> 810000000 +dqfma2109 fma 9 900000000 0e+6144 -> 8100000000 +dqfma2110 fma 9 9000000000 0e+6144 -> 81000000000 +dqfma2111 fma 9 90000000000 0e+6144 -> 810000000000 +dqfma2112 fma 9 900000000000 0e+6144 -> 8100000000000 +dqfma2113 fma 9 9000000000000 0e+6144 -> 81000000000000 +dqfma2114 fma 9 90000000000000 0e+6144 -> 810000000000000 +dqfma2115 fma 9 900000000000000 0e+6144 -> 8100000000000000 +--dqfma2116 fma 9 9000000000000000 0e+6144 -> 81000000000000000 +--dqfma2117 fma 9 90000000000000000 0e+6144 -> 810000000000000000 +--dqfma2118 fma 9 900000000000000000 0e+6144 -> 8100000000000000000 +--dqfma2119 fma 9 9000000000000000000 0e+6144 -> 81000000000000000000 +--dqfma2120 fma 9 90000000000000000000 0e+6144 -> 810000000000000000000 +--dqfma2121 fma 9 900000000000000000000 0e+6144 -> 8100000000000000000000 +--dqfma2122 fma 9 9000000000000000000000 0e+6144 -> 81000000000000000000000 +--dqfma2123 fma 9 90000000000000000000000 0e+6144 -> 810000000000000000000000 +-- test some more edge cases without carries +dqfma2131 fma 3 3 0e+6144 -> 9 +dqfma2132 fma 3 30 0e+6144 -> 90 +dqfma2133 fma 3 300 0e+6144 -> 900 +dqfma2134 fma 3 3000 0e+6144 -> 9000 +dqfma2135 fma 3 30000 0e+6144 -> 90000 +dqfma2136 fma 3 300000 0e+6144 -> 900000 +dqfma2137 fma 3 3000000 0e+6144 -> 9000000 +dqfma2138 fma 3 30000000 0e+6144 -> 90000000 +dqfma2139 fma 3 300000000 0e+6144 -> 900000000 +dqfma2140 fma 3 3000000000 0e+6144 -> 9000000000 +dqfma2141 fma 3 30000000000 0e+6144 -> 90000000000 +dqfma2142 fma 3 300000000000 0e+6144 -> 900000000000 +dqfma2143 fma 3 3000000000000 0e+6144 -> 9000000000000 +dqfma2144 fma 3 30000000000000 0e+6144 -> 90000000000000 +dqfma2145 fma 3 300000000000000 0e+6144 -> 900000000000000 +dqfma2146 fma 3 3000000000000000 0e+6144 -> 9000000000000000 +dqfma2147 fma 3 30000000000000000 0e+6144 -> 90000000000000000 +dqfma2148 fma 3 300000000000000000 0e+6144 -> 900000000000000000 +dqfma2149 fma 3 3000000000000000000 0e+6144 -> 9000000000000000000 +dqfma2150 fma 3 30000000000000000000 0e+6144 -> 90000000000000000000 +dqfma2151 fma 3 300000000000000000000 0e+6144 -> 900000000000000000000 +dqfma2152 fma 3 3000000000000000000000 0e+6144 -> 9000000000000000000000 +dqfma2153 fma 3 30000000000000000000000 0e+6144 -> 90000000000000000000000 + +dqfma2263 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543 0e+6144 -> 145433.2908011933696719165119928296 Inexact Rounded + +-- test some edge cases with exact rounding +dqfma2301 fma 900000000000000000 9 0e+6144 -> 8100000000000000000 +dqfma2302 fma 900000000000000000 90 0e+6144 -> 81000000000000000000 +dqfma2303 fma 900000000000000000 900 0e+6144 -> 810000000000000000000 +dqfma2304 fma 900000000000000000 9000 0e+6144 -> 8100000000000000000000 +dqfma2305 fma 900000000000000000 90000 0e+6144 -> 81000000000000000000000 +dqfma2306 fma 900000000000000000 900000 0e+6144 -> 810000000000000000000000 +dqfma2307 fma 900000000000000000 9000000 0e+6144 -> 8100000000000000000000000 +dqfma2308 fma 900000000000000000 90000000 0e+6144 -> 81000000000000000000000000 +dqfma2309 fma 900000000000000000 900000000 0e+6144 -> 810000000000000000000000000 +dqfma2310 fma 900000000000000000 9000000000 0e+6144 -> 8100000000000000000000000000 +dqfma2311 fma 900000000000000000 90000000000 0e+6144 -> 81000000000000000000000000000 +dqfma2312 fma 900000000000000000 900000000000 0e+6144 -> 810000000000000000000000000000 +dqfma2313 fma 900000000000000000 9000000000000 0e+6144 -> 8100000000000000000000000000000 +dqfma2314 fma 900000000000000000 90000000000000 0e+6144 -> 81000000000000000000000000000000 +dqfma2315 fma 900000000000000000 900000000000000 0e+6144 -> 810000000000000000000000000000000 +dqfma2316 fma 900000000000000000 9000000000000000 0e+6144 -> 8100000000000000000000000000000000 +dqfma2317 fma 9000000000000000000 9000000000000000 0e+6144 -> 8.100000000000000000000000000000000E+34 Rounded +dqfma2318 fma 90000000000000000000 9000000000000000 0e+6144 -> 8.100000000000000000000000000000000E+35 Rounded +dqfma2319 fma 900000000000000000000 9000000000000000 0e+6144 -> 8.100000000000000000000000000000000E+36 Rounded +dqfma2320 fma 9000000000000000000000 9000000000000000 0e+6144 -> 8.100000000000000000000000000000000E+37 Rounded +dqfma2321 fma 90000000000000000000000 9000000000000000 0e+6144 -> 8.100000000000000000000000000000000E+38 Rounded +dqfma2322 fma 900000000000000000000000 9000000000000000 0e+6144 -> 8.100000000000000000000000000000000E+39 Rounded +dqfma2323 fma 9000000000000000000000000 9000000000000000 0e+6144 -> 8.100000000000000000000000000000000E+40 Rounded + +-- tryzeros cases +dqfma2504 fma 0E-4260 1000E-4260 0e+6144 -> 0E-6176 Clamped +dqfma2505 fma 100E+4260 0E+4260 0e+6144 -> 0E+6111 Clamped + +-- mixed with zeros +dqfma2541 fma 0 -1 0e+6144 -> 0 +dqfma2542 fma -0 -1 0e+6144 -> 0 +dqfma2543 fma 0 1 0e+6144 -> 0 +dqfma2544 fma -0 1 0e+6144 -> 0 +dqfma2545 fma -1 0 0e+6144 -> 0 +dqfma2546 fma -1 -0 0e+6144 -> 0 +dqfma2547 fma 1 0 0e+6144 -> 0 +dqfma2548 fma 1 -0 0e+6144 -> 0 + +dqfma2551 fma 0.0 -1 0e+6144 -> 0.0 +dqfma2552 fma -0.0 -1 0e+6144 -> 0.0 +dqfma2553 fma 0.0 1 0e+6144 -> 0.0 +dqfma2554 fma -0.0 1 0e+6144 -> 0.0 +dqfma2555 fma -1.0 0 0e+6144 -> 0.0 +dqfma2556 fma -1.0 -0 0e+6144 -> 0.0 +dqfma2557 fma 1.0 0 0e+6144 -> 0.0 +dqfma2558 fma 1.0 -0 0e+6144 -> 0.0 + +dqfma2561 fma 0 -1.0 0e+6144 -> 0.0 +dqfma2562 fma -0 -1.0 0e+6144 -> 0.0 +dqfma2563 fma 0 1.0 0e+6144 -> 0.0 +dqfma2564 fma -0 1.0 0e+6144 -> 0.0 +dqfma2565 fma -1 0.0 0e+6144 -> 0.0 +dqfma2566 fma -1 -0.0 0e+6144 -> 0.0 +dqfma2567 fma 1 0.0 0e+6144 -> 0.0 +dqfma2568 fma 1 -0.0 0e+6144 -> 0.0 + +dqfma2571 fma 0.0 -1.0 0e+6144 -> 0.00 +dqfma2572 fma -0.0 -1.0 0e+6144 -> 0.00 +dqfma2573 fma 0.0 1.0 0e+6144 -> 0.00 +dqfma2574 fma -0.0 1.0 0e+6144 -> 0.00 +dqfma2575 fma -1.0 0.0 0e+6144 -> 0.00 +dqfma2576 fma -1.0 -0.0 0e+6144 -> 0.00 +dqfma2577 fma 1.0 0.0 0e+6144 -> 0.00 +dqfma2578 fma 1.0 -0.0 0e+6144 -> 0.00 +dqfma2579 fma 1.0 0.0 0e+6144 -> 0.00 +dqfma2530 fma -1.0 -0.0 0e+6144 -> 0.00 +dqfma2531 fma -1.0 0.0 0e+6144 -> 0.00 +dqfma2532 fma 1.0 -0.0 -0e+6144 -> -0.00 +dqfma2533 fma 1.0 0.0 -0e+6144 -> 0.00 +dqfma2534 fma -1.0 -0.0 -0e+6144 -> 0.00 +dqfma2535 fma -1.0 0.0 -0e+6144 -> -0.00 + + +-- Specials +dqfma2580 fma Inf -Inf 0e+6144 -> -Infinity +dqfma2581 fma Inf -1000 0e+6144 -> -Infinity +dqfma2582 fma Inf -1 0e+6144 -> -Infinity +dqfma2583 fma Inf -0 0e+6144 -> NaN Invalid_operation +dqfma2584 fma Inf 0 0e+6144 -> NaN Invalid_operation +dqfma2585 fma Inf 1 0e+6144 -> Infinity +dqfma2586 fma Inf 1000 0e+6144 -> Infinity +dqfma2587 fma Inf Inf 0e+6144 -> Infinity +dqfma2588 fma -1000 Inf 0e+6144 -> -Infinity +dqfma2589 fma -Inf Inf 0e+6144 -> -Infinity +dqfma2590 fma -1 Inf 0e+6144 -> -Infinity +dqfma2591 fma -0 Inf 0e+6144 -> NaN Invalid_operation +dqfma2592 fma 0 Inf 0e+6144 -> NaN Invalid_operation +dqfma2593 fma 1 Inf 0e+6144 -> Infinity +dqfma2594 fma 1000 Inf 0e+6144 -> Infinity +dqfma2595 fma Inf Inf 0e+6144 -> Infinity + +dqfma2600 fma -Inf -Inf 0e+6144 -> Infinity +dqfma2601 fma -Inf -1000 0e+6144 -> Infinity +dqfma2602 fma -Inf -1 0e+6144 -> Infinity +dqfma2603 fma -Inf -0 0e+6144 -> NaN Invalid_operation +dqfma2604 fma -Inf 0 0e+6144 -> NaN Invalid_operation +dqfma2605 fma -Inf 1 0e+6144 -> -Infinity +dqfma2606 fma -Inf 1000 0e+6144 -> -Infinity +dqfma2607 fma -Inf Inf 0e+6144 -> -Infinity +dqfma2608 fma -1000 Inf 0e+6144 -> -Infinity +dqfma2609 fma -Inf -Inf 0e+6144 -> Infinity +dqfma2610 fma -1 -Inf 0e+6144 -> Infinity +dqfma2611 fma -0 -Inf 0e+6144 -> NaN Invalid_operation +dqfma2612 fma 0 -Inf 0e+6144 -> NaN Invalid_operation +dqfma2613 fma 1 -Inf 0e+6144 -> -Infinity +dqfma2614 fma 1000 -Inf 0e+6144 -> -Infinity +dqfma2615 fma Inf -Inf 0e+6144 -> -Infinity + +dqfma2621 fma NaN -Inf 0e+6144 -> NaN +dqfma2622 fma NaN -1000 0e+6144 -> NaN +dqfma2623 fma NaN -1 0e+6144 -> NaN +dqfma2624 fma NaN -0 0e+6144 -> NaN +dqfma2625 fma NaN 0 0e+6144 -> NaN +dqfma2626 fma NaN 1 0e+6144 -> NaN +dqfma2627 fma NaN 1000 0e+6144 -> NaN +dqfma2628 fma NaN Inf 0e+6144 -> NaN +dqfma2629 fma NaN NaN 0e+6144 -> NaN +dqfma2630 fma -Inf NaN 0e+6144 -> NaN +dqfma2631 fma -1000 NaN 0e+6144 -> NaN +dqfma2632 fma -1 NaN 0e+6144 -> NaN +dqfma2633 fma -0 NaN 0e+6144 -> NaN +dqfma2634 fma 0 NaN 0e+6144 -> NaN +dqfma2635 fma 1 NaN 0e+6144 -> NaN +dqfma2636 fma 1000 NaN 0e+6144 -> NaN +dqfma2637 fma Inf NaN 0e+6144 -> NaN + +dqfma2641 fma sNaN -Inf 0e+6144 -> NaN Invalid_operation +dqfma2642 fma sNaN -1000 0e+6144 -> NaN Invalid_operation +dqfma2643 fma sNaN -1 0e+6144 -> NaN Invalid_operation +dqfma2644 fma sNaN -0 0e+6144 -> NaN Invalid_operation +dqfma2645 fma sNaN 0 0e+6144 -> NaN Invalid_operation +dqfma2646 fma sNaN 1 0e+6144 -> NaN Invalid_operation +dqfma2647 fma sNaN 1000 0e+6144 -> NaN Invalid_operation +dqfma2648 fma sNaN NaN 0e+6144 -> NaN Invalid_operation +dqfma2649 fma sNaN sNaN 0e+6144 -> NaN Invalid_operation +dqfma2650 fma NaN sNaN 0e+6144 -> NaN Invalid_operation +dqfma2651 fma -Inf sNaN 0e+6144 -> NaN Invalid_operation +dqfma2652 fma -1000 sNaN 0e+6144 -> NaN Invalid_operation +dqfma2653 fma -1 sNaN 0e+6144 -> NaN Invalid_operation +dqfma2654 fma -0 sNaN 0e+6144 -> NaN Invalid_operation +dqfma2655 fma 0 sNaN 0e+6144 -> NaN Invalid_operation +dqfma2656 fma 1 sNaN 0e+6144 -> NaN Invalid_operation +dqfma2657 fma 1000 sNaN 0e+6144 -> NaN Invalid_operation +dqfma2658 fma Inf sNaN 0e+6144 -> NaN Invalid_operation +dqfma2659 fma NaN sNaN 0e+6144 -> NaN Invalid_operation + +-- propagating NaNs +dqfma2661 fma NaN9 -Inf 0e+6144 -> NaN9 +dqfma2662 fma NaN8 999 0e+6144 -> NaN8 +dqfma2663 fma NaN71 Inf 0e+6144 -> NaN71 +dqfma2664 fma NaN6 NaN5 0e+6144 -> NaN6 +dqfma2665 fma -Inf NaN4 0e+6144 -> NaN4 +dqfma2666 fma -999 NaN33 0e+6144 -> NaN33 +dqfma2667 fma Inf NaN2 0e+6144 -> NaN2 + +dqfma2671 fma sNaN99 -Inf 0e+6144 -> NaN99 Invalid_operation +dqfma2672 fma sNaN98 -11 0e+6144 -> NaN98 Invalid_operation +dqfma2673 fma sNaN97 NaN 0e+6144 -> NaN97 Invalid_operation +dqfma2674 fma sNaN16 sNaN94 0e+6144 -> NaN16 Invalid_operation +dqfma2675 fma NaN95 sNaN93 0e+6144 -> NaN93 Invalid_operation +dqfma2676 fma -Inf sNaN92 0e+6144 -> NaN92 Invalid_operation +dqfma2677 fma 088 sNaN91 0e+6144 -> NaN91 Invalid_operation +dqfma2678 fma Inf sNaN90 0e+6144 -> NaN90 Invalid_operation +dqfma2679 fma NaN sNaN89 0e+6144 -> NaN89 Invalid_operation + +dqfma2681 fma -NaN9 -Inf 0e+6144 -> -NaN9 +dqfma2682 fma -NaN8 999 0e+6144 -> -NaN8 +dqfma2683 fma -NaN71 Inf 0e+6144 -> -NaN71 +dqfma2684 fma -NaN6 -NaN5 0e+6144 -> -NaN6 +dqfma2685 fma -Inf -NaN4 0e+6144 -> -NaN4 +dqfma2686 fma -999 -NaN33 0e+6144 -> -NaN33 +dqfma2687 fma Inf -NaN2 0e+6144 -> -NaN2 + +dqfma2691 fma -sNaN99 -Inf 0e+6144 -> -NaN99 Invalid_operation +dqfma2692 fma -sNaN98 -11 0e+6144 -> -NaN98 Invalid_operation +dqfma2693 fma -sNaN97 NaN 0e+6144 -> -NaN97 Invalid_operation +dqfma2694 fma -sNaN16 -sNaN94 0e+6144 -> -NaN16 Invalid_operation +dqfma2695 fma -NaN95 -sNaN93 0e+6144 -> -NaN93 Invalid_operation +dqfma2696 fma -Inf -sNaN92 0e+6144 -> -NaN92 Invalid_operation +dqfma2697 fma 088 -sNaN91 0e+6144 -> -NaN91 Invalid_operation +dqfma2698 fma Inf -sNaN90 0e+6144 -> -NaN90 Invalid_operation +dqfma2699 fma -NaN -sNaN89 0e+6144 -> -NaN89 Invalid_operation + +dqfma2701 fma -NaN -Inf 0e+6144 -> -NaN +dqfma2702 fma -NaN 999 0e+6144 -> -NaN +dqfma2703 fma -NaN Inf 0e+6144 -> -NaN +dqfma2704 fma -NaN -NaN 0e+6144 -> -NaN +dqfma2705 fma -Inf -NaN0 0e+6144 -> -NaN +dqfma2706 fma -999 -NaN 0e+6144 -> -NaN +dqfma2707 fma Inf -NaN 0e+6144 -> -NaN + +dqfma2711 fma -sNaN -Inf 0e+6144 -> -NaN Invalid_operation +dqfma2712 fma -sNaN -11 0e+6144 -> -NaN Invalid_operation +dqfma2713 fma -sNaN00 NaN 0e+6144 -> -NaN Invalid_operation +dqfma2714 fma -sNaN -sNaN 0e+6144 -> -NaN Invalid_operation +dqfma2715 fma -NaN -sNaN 0e+6144 -> -NaN Invalid_operation +dqfma2716 fma -Inf -sNaN 0e+6144 -> -NaN Invalid_operation +dqfma2717 fma 088 -sNaN 0e+6144 -> -NaN Invalid_operation +dqfma2718 fma Inf -sNaN 0e+6144 -> -NaN Invalid_operation +dqfma2719 fma -NaN -sNaN 0e+6144 -> -NaN Invalid_operation + +-- overflow and underflow tests .. note subnormal results +-- signs +dqfma2751 fma 1e+4277 1e+3311 0e+6144 -> Infinity Overflow Inexact Rounded +dqfma2752 fma 1e+4277 -1e+3311 0e+6144 -> -Infinity Overflow Inexact Rounded +dqfma2753 fma -1e+4277 1e+3311 0e+6144 -> -Infinity Overflow Inexact Rounded +dqfma2754 fma -1e+4277 -1e+3311 0e+6144 -> Infinity Overflow Inexact Rounded +dqfma2755 fma 1e-4277 1e-3311 0e+6144 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqfma2756 fma 1e-4277 -1e-3311 0e+6144 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqfma2757 fma -1e-4277 1e-3311 0e+6144 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqfma2758 fma -1e-4277 -1e-3311 0e+6144 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped + +-- 'subnormal' boundary (all hard underflow or overflow in base arithemtic) +dqfma2760 fma 1e-6069 1e-101 0e+6144 -> 1E-6170 Subnormal +dqfma2761 fma 1e-6069 1e-102 0e+6144 -> 1E-6171 Subnormal +dqfma2762 fma 1e-6069 1e-103 0e+6144 -> 1E-6172 Subnormal +dqfma2763 fma 1e-6069 1e-104 0e+6144 -> 1E-6173 Subnormal +dqfma2764 fma 1e-6069 1e-105 0e+6144 -> 1E-6174 Subnormal +dqfma2765 fma 1e-6069 1e-106 0e+6144 -> 1E-6175 Subnormal +dqfma2766 fma 1e-6069 1e-107 0e+6144 -> 1E-6176 Subnormal +dqfma2767 fma 1e-6069 1e-108 0e+6144 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqfma2768 fma 1e-6069 1e-109 0e+6144 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqfma2769 fma 1e-6069 1e-110 0e+6144 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +-- [no equivalent of 'subnormal' for overflow] +dqfma2770 fma 1e+40 1e+6101 0e+6144 -> 1.000000000000000000000000000000E+6141 Clamped +dqfma2771 fma 1e+40 1e+6102 0e+6144 -> 1.0000000000000000000000000000000E+6142 Clamped +dqfma2772 fma 1e+40 1e+6103 0e+6144 -> 1.00000000000000000000000000000000E+6143 Clamped +dqfma2773 fma 1e+40 1e+6104 0e+6144 -> 1.000000000000000000000000000000000E+6144 Clamped +dqfma2774 fma 1e+40 1e+6105 0e+6144 -> Infinity Overflow Inexact Rounded +dqfma2775 fma 1e+40 1e+6106 0e+6144 -> Infinity Overflow Inexact Rounded +dqfma2776 fma 1e+40 1e+6107 0e+6144 -> Infinity Overflow Inexact Rounded +dqfma2777 fma 1e+40 1e+6108 0e+6144 -> Infinity Overflow Inexact Rounded +dqfma2778 fma 1e+40 1e+6109 0e+6144 -> Infinity Overflow Inexact Rounded +dqfma2779 fma 1e+40 1e+6110 0e+6144 -> Infinity Overflow Inexact Rounded + +dqfma2801 fma 1.0000E-6172 1 0e+6144 -> 1.0000E-6172 Subnormal +dqfma2802 fma 1.000E-6172 1e-1 0e+6144 -> 1.000E-6173 Subnormal +dqfma2803 fma 1.00E-6172 1e-2 0e+6144 -> 1.00E-6174 Subnormal +dqfma2804 fma 1.0E-6172 1e-3 0e+6144 -> 1.0E-6175 Subnormal +dqfma2805 fma 1.0E-6172 1e-4 0e+6144 -> 1E-6176 Subnormal Rounded +dqfma2806 fma 1.3E-6172 1e-4 0e+6144 -> 1E-6176 Underflow Subnormal Inexact Rounded +dqfma2807 fma 1.5E-6172 1e-4 0e+6144 -> 2E-6176 Underflow Subnormal Inexact Rounded +dqfma2808 fma 1.7E-6172 1e-4 0e+6144 -> 2E-6176 Underflow Subnormal Inexact Rounded +dqfma2809 fma 2.3E-6172 1e-4 0e+6144 -> 2E-6176 Underflow Subnormal Inexact Rounded +dqfma2810 fma 2.5E-6172 1e-4 0e+6144 -> 2E-6176 Underflow Subnormal Inexact Rounded +dqfma2811 fma 2.7E-6172 1e-4 0e+6144 -> 3E-6176 Underflow Subnormal Inexact Rounded +dqfma2812 fma 1.49E-6172 1e-4 0e+6144 -> 1E-6176 Underflow Subnormal Inexact Rounded +dqfma2813 fma 1.50E-6172 1e-4 0e+6144 -> 2E-6176 Underflow Subnormal Inexact Rounded +dqfma2814 fma 1.51E-6172 1e-4 0e+6144 -> 2E-6176 Underflow Subnormal Inexact Rounded +dqfma2815 fma 2.49E-6172 1e-4 0e+6144 -> 2E-6176 Underflow Subnormal Inexact Rounded +dqfma2816 fma 2.50E-6172 1e-4 0e+6144 -> 2E-6176 Underflow Subnormal Inexact Rounded +dqfma2817 fma 2.51E-6172 1e-4 0e+6144 -> 3E-6176 Underflow Subnormal Inexact Rounded + +dqfma2818 fma 1E-6172 1e-4 0e+6144 -> 1E-6176 Subnormal +dqfma2819 fma 3E-6172 1e-5 0e+6144 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqfma2820 fma 5E-6172 1e-5 0e+6144 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqfma2821 fma 7E-6172 1e-5 0e+6144 -> 1E-6176 Underflow Subnormal Inexact Rounded +dqfma2822 fma 9E-6172 1e-5 0e+6144 -> 1E-6176 Underflow Subnormal Inexact Rounded +dqfma2823 fma 9.9E-6172 1e-5 0e+6144 -> 1E-6176 Underflow Subnormal Inexact Rounded + +dqfma2824 fma 1E-6172 -1e-4 0e+6144 -> -1E-6176 Subnormal +dqfma2825 fma 3E-6172 -1e-5 0e+6144 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqfma2826 fma -5E-6172 1e-5 0e+6144 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqfma2827 fma 7E-6172 -1e-5 0e+6144 -> -1E-6176 Underflow Subnormal Inexact Rounded +dqfma2828 fma -9E-6172 1e-5 0e+6144 -> -1E-6176 Underflow Subnormal Inexact Rounded +dqfma2829 fma 9.9E-6172 -1e-5 0e+6144 -> -1E-6176 Underflow Subnormal Inexact Rounded +dqfma2830 fma 3.0E-6172 -1e-5 0e+6144 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped + +dqfma2831 fma 1.0E-5977 1e-200 0e+6144 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqfma2832 fma 1.0E-5977 1e-199 0e+6144 -> 1E-6176 Subnormal Rounded +dqfma2833 fma 1.0E-5977 1e-198 0e+6144 -> 1.0E-6175 Subnormal +dqfma2834 fma 2.0E-5977 2e-198 0e+6144 -> 4.0E-6175 Subnormal +dqfma2835 fma 4.0E-5977 4e-198 0e+6144 -> 1.60E-6174 Subnormal +dqfma2836 fma 10.0E-5977 10e-198 0e+6144 -> 1.000E-6173 Subnormal +dqfma2837 fma 30.0E-5977 30e-198 0e+6144 -> 9.000E-6173 Subnormal +dqfma2838 fma 40.0E-5982 40e-166 0e+6144 -> 1.6000E-6145 Subnormal +dqfma2839 fma 40.0E-5982 40e-165 0e+6144 -> 1.6000E-6144 Subnormal +dqfma2840 fma 40.0E-5982 40e-164 0e+6144 -> 1.6000E-6143 + +-- Long operand overflow may be a different path +dqfma2870 fma 100 9.999E+6143 0e+6144 -> Infinity Inexact Overflow Rounded +dqfma2871 fma 100 -9.999E+6143 0e+6144 -> -Infinity Inexact Overflow Rounded +dqfma2872 fma 9.999E+6143 100 0e+6144 -> Infinity Inexact Overflow Rounded +dqfma2873 fma -9.999E+6143 100 0e+6144 -> -Infinity Inexact Overflow Rounded + +-- check for double-rounded subnormals +dqfma2881 fma 1.2347E-6133 1.2347E-40 0e+6144 -> 1.524E-6173 Inexact Rounded Subnormal Underflow +dqfma2882 fma 1.234E-6133 1.234E-40 0e+6144 -> 1.523E-6173 Inexact Rounded Subnormal Underflow +dqfma2883 fma 1.23E-6133 1.23E-40 0e+6144 -> 1.513E-6173 Inexact Rounded Subnormal Underflow +dqfma2884 fma 1.2E-6133 1.2E-40 0e+6144 -> 1.44E-6173 Subnormal +dqfma2885 fma 1.2E-6133 1.2E-41 0e+6144 -> 1.44E-6174 Subnormal +dqfma2886 fma 1.2E-6133 1.2E-42 0e+6144 -> 1.4E-6175 Subnormal Inexact Rounded Underflow +dqfma2887 fma 1.2E-6133 1.3E-42 0e+6144 -> 1.6E-6175 Subnormal Inexact Rounded Underflow +dqfma2888 fma 1.3E-6133 1.3E-42 0e+6144 -> 1.7E-6175 Subnormal Inexact Rounded Underflow +dqfma2889 fma 1.3E-6133 1.3E-43 0e+6144 -> 2E-6176 Subnormal Inexact Rounded Underflow +dqfma2890 fma 1.3E-6134 1.3E-43 0e+6144 -> 0E-6176 Clamped Subnormal Inexact Rounded Underflow + +dqfma2891 fma 1.2345E-39 1.234E-6133 0e+6144 -> 1.5234E-6172 Inexact Rounded Subnormal Underflow +dqfma2892 fma 1.23456E-39 1.234E-6133 0e+6144 -> 1.5234E-6172 Inexact Rounded Subnormal Underflow +dqfma2893 fma 1.2345E-40 1.234E-6133 0e+6144 -> 1.523E-6173 Inexact Rounded Subnormal Underflow +dqfma2894 fma 1.23456E-40 1.234E-6133 0e+6144 -> 1.523E-6173 Inexact Rounded Subnormal Underflow +dqfma2895 fma 1.2345E-41 1.234E-6133 0e+6144 -> 1.52E-6174 Inexact Rounded Subnormal Underflow +dqfma2896 fma 1.23456E-41 1.234E-6133 0e+6144 -> 1.52E-6174 Inexact Rounded Subnormal Underflow + +-- Now explore the case where we get a normal result with Underflow +-- prove operands are exact +dqfma2906 fma 9.999999999999999999999999999999999E-6143 1 0e+6144 -> 9.999999999999999999999999999999999E-6143 +dqfma2907 fma 1 0.09999999999999999999999999999999999 0e+6144 -> 0.09999999999999999999999999999999999 +-- the next rounds to Nmin +dqfma2908 fma 9.999999999999999999999999999999999E-6143 0.09999999999999999999999999999999999 0e+6144 -> 1.000000000000000000000000000000000E-6143 Underflow Inexact Subnormal Rounded + +-- hugest +dqfma2909 fma 9999999999999999999999999999999999 9999999999999999999999999999999999 0e+6144 -> 9.999999999999999999999999999999998E+67 Inexact Rounded + +-- Examples from SQL proposal (Krishna Kulkarni) +precision: 34 +rounding: half_up +maxExponent: 6144 +minExponent: -6143 +dqfma21001 fma 130E-2 120E-2 0e+6144 -> 1.5600 +dqfma21002 fma 130E-2 12E-1 0e+6144 -> 1.560 +dqfma21003 fma 130E-2 1E0 0e+6144 -> 1.30 +dqfma21004 fma 1E2 1E4 0e+6144 -> 1E+6 + +-- Null tests +dqfma2990 fma 10 # 0e+6144 -> NaN Invalid_operation +dqfma2991 fma # 10 0e+6144 -> NaN Invalid_operation + + +-- ADDITION TESTS ------------------------------------------------------ +rounding: half_even + +-- [first group are 'quick confidence check'] +dqadd3001 fma 1 1 1 -> 2 +dqadd3002 fma 1 2 3 -> 5 +dqadd3003 fma 1 '5.75' '3.3' -> 9.05 +dqadd3004 fma 1 '5' '-3' -> 2 +dqadd3005 fma 1 '-5' '-3' -> -8 +dqadd3006 fma 1 '-7' '2.5' -> -4.5 +dqadd3007 fma 1 '0.7' '0.3' -> 1.0 +dqadd3008 fma 1 '1.25' '1.25' -> 2.50 +dqadd3009 fma 1 '1.23456789' '1.00000000' -> '2.23456789' +dqadd3010 fma 1 '1.23456789' '1.00000011' -> '2.23456800' + +-- 1234567890123456 1234567890123456 +dqadd3011 fma 1 '0.4444444444444444444444444444444446' '0.5555555555555555555555555555555555' -> '1.000000000000000000000000000000000' Inexact Rounded +dqadd3012 fma 1 '0.4444444444444444444444444444444445' '0.5555555555555555555555555555555555' -> '1.000000000000000000000000000000000' Rounded +dqadd3013 fma 1 '0.4444444444444444444444444444444444' '0.5555555555555555555555555555555555' -> '0.9999999999999999999999999999999999' +dqadd3014 fma 1 '4444444444444444444444444444444444' '0.49' -> '4444444444444444444444444444444444' Inexact Rounded +dqadd3015 fma 1 '4444444444444444444444444444444444' '0.499' -> '4444444444444444444444444444444444' Inexact Rounded +dqadd3016 fma 1 '4444444444444444444444444444444444' '0.4999' -> '4444444444444444444444444444444444' Inexact Rounded +dqadd3017 fma 1 '4444444444444444444444444444444444' '0.5000' -> '4444444444444444444444444444444444' Inexact Rounded +dqadd3018 fma 1 '4444444444444444444444444444444444' '0.5001' -> '4444444444444444444444444444444445' Inexact Rounded +dqadd3019 fma 1 '4444444444444444444444444444444444' '0.501' -> '4444444444444444444444444444444445' Inexact Rounded +dqadd3020 fma 1 '4444444444444444444444444444444444' '0.51' -> '4444444444444444444444444444444445' Inexact Rounded + +dqadd3021 fma 1 0 1 -> 1 +dqadd3022 fma 1 1 1 -> 2 +dqadd3023 fma 1 2 1 -> 3 +dqadd3024 fma 1 3 1 -> 4 +dqadd3025 fma 1 4 1 -> 5 +dqadd3026 fma 1 5 1 -> 6 +dqadd3027 fma 1 6 1 -> 7 +dqadd3028 fma 1 7 1 -> 8 +dqadd3029 fma 1 8 1 -> 9 +dqadd3030 fma 1 9 1 -> 10 + +-- some carrying effects +dqadd3031 fma 1 '0.9998' '0.0000' -> '0.9998' +dqadd3032 fma 1 '0.9998' '0.0001' -> '0.9999' +dqadd3033 fma 1 '0.9998' '0.0002' -> '1.0000' +dqadd3034 fma 1 '0.9998' '0.0003' -> '1.0001' + +dqadd3035 fma 1 '70' '10000e+34' -> '1.000000000000000000000000000000000E+38' Inexact Rounded +dqadd3036 fma 1 '700' '10000e+34' -> '1.000000000000000000000000000000000E+38' Inexact Rounded +dqadd3037 fma 1 '7000' '10000e+34' -> '1.000000000000000000000000000000000E+38' Inexact Rounded +dqadd3038 fma 1 '70000' '10000e+34' -> '1.000000000000000000000000000000001E+38' Inexact Rounded +dqadd3039 fma 1 '700000' '10000e+34' -> '1.000000000000000000000000000000007E+38' Rounded + +-- symmetry: +dqadd3040 fma 1 '10000e+34' '70' -> '1.000000000000000000000000000000000E+38' Inexact Rounded +dqadd3041 fma 1 '10000e+34' '700' -> '1.000000000000000000000000000000000E+38' Inexact Rounded +dqadd3042 fma 1 '10000e+34' '7000' -> '1.000000000000000000000000000000000E+38' Inexact Rounded +dqadd3044 fma 1 '10000e+34' '70000' -> '1.000000000000000000000000000000001E+38' Inexact Rounded +dqadd3045 fma 1 '10000e+34' '700000' -> '1.000000000000000000000000000000007E+38' Rounded + +-- same, without rounding +dqadd3046 fma 1 '10000e+9' '7' -> '10000000000007' +dqadd3047 fma 1 '10000e+9' '70' -> '10000000000070' +dqadd3048 fma 1 '10000e+9' '700' -> '10000000000700' +dqadd3049 fma 1 '10000e+9' '7000' -> '10000000007000' +dqadd3050 fma 1 '10000e+9' '70000' -> '10000000070000' +dqadd3051 fma 1 '10000e+9' '700000' -> '10000000700000' +dqadd3052 fma 1 '10000e+9' '7000000' -> '10000007000000' + +-- examples from decarith +dqadd3053 fma 1 '12' '7.00' -> '19.00' +dqadd3054 fma 1 '1.3' '-1.07' -> '0.23' +dqadd3055 fma 1 '1.3' '-1.30' -> '0.00' +dqadd3056 fma 1 '1.3' '-2.07' -> '-0.77' +dqadd3057 fma 1 '1E+2' '1E+4' -> '1.01E+4' + +-- leading zero preservation +dqadd3061 fma 1 1 '0.0001' -> '1.0001' +dqadd3062 fma 1 1 '0.00001' -> '1.00001' +dqadd3063 fma 1 1 '0.000001' -> '1.000001' +dqadd3064 fma 1 1 '0.0000001' -> '1.0000001' +dqadd3065 fma 1 1 '0.00000001' -> '1.00000001' + +-- some funny zeros [in case of bad signum] +dqadd3070 fma 1 1 0 -> 1 +dqadd3071 fma 1 1 0. -> 1 +dqadd3072 fma 1 1 .0 -> 1.0 +dqadd3073 fma 1 1 0.0 -> 1.0 +dqadd3074 fma 1 1 0.00 -> 1.00 +dqadd3075 fma 1 0 1 -> 1 +dqadd3076 fma 1 0. 1 -> 1 +dqadd3077 fma 1 .0 1 -> 1.0 +dqadd3078 fma 1 0.0 1 -> 1.0 +dqadd3079 fma 1 0.00 1 -> 1.00 + +-- some carries +dqadd3080 fma 1 999999998 1 -> 999999999 +dqadd3081 fma 1 999999999 1 -> 1000000000 +dqadd3082 fma 1 99999999 1 -> 100000000 +dqadd3083 fma 1 9999999 1 -> 10000000 +dqadd3084 fma 1 999999 1 -> 1000000 +dqadd3085 fma 1 99999 1 -> 100000 +dqadd3086 fma 1 9999 1 -> 10000 +dqadd3087 fma 1 999 1 -> 1000 +dqadd3088 fma 1 99 1 -> 100 +dqadd3089 fma 1 9 1 -> 10 + + +-- more LHS swaps +dqadd3090 fma 1 '-56267E-10' 0 -> '-0.0000056267' +dqadd3091 fma 1 '-56267E-6' 0 -> '-0.056267' +dqadd3092 fma 1 '-56267E-5' 0 -> '-0.56267' +dqadd3093 fma 1 '-56267E-4' 0 -> '-5.6267' +dqadd3094 fma 1 '-56267E-3' 0 -> '-56.267' +dqadd3095 fma 1 '-56267E-2' 0 -> '-562.67' +dqadd3096 fma 1 '-56267E-1' 0 -> '-5626.7' +dqadd3097 fma 1 '-56267E-0' 0 -> '-56267' +dqadd3098 fma 1 '-5E-10' 0 -> '-5E-10' +dqadd3099 fma 1 '-5E-7' 0 -> '-5E-7' +dqadd3100 fma 1 '-5E-6' 0 -> '-0.000005' +dqadd3101 fma 1 '-5E-5' 0 -> '-0.00005' +dqadd3102 fma 1 '-5E-4' 0 -> '-0.0005' +dqadd3103 fma 1 '-5E-1' 0 -> '-0.5' +dqadd3104 fma 1 '-5E0' 0 -> '-5' +dqadd3105 fma 1 '-5E1' 0 -> '-50' +dqadd3106 fma 1 '-5E5' 0 -> '-500000' +dqadd3107 fma 1 '-5E33' 0 -> '-5000000000000000000000000000000000' +dqadd3108 fma 1 '-5E34' 0 -> '-5.000000000000000000000000000000000E+34' Rounded +dqadd3109 fma 1 '-5E35' 0 -> '-5.000000000000000000000000000000000E+35' Rounded +dqadd3110 fma 1 '-5E36' 0 -> '-5.000000000000000000000000000000000E+36' Rounded +dqadd3111 fma 1 '-5E100' 0 -> '-5.000000000000000000000000000000000E+100' Rounded + +-- more RHS swaps +dqadd3113 fma 1 0 '-56267E-10' -> '-0.0000056267' +dqadd3114 fma 1 0 '-56267E-6' -> '-0.056267' +dqadd3116 fma 1 0 '-56267E-5' -> '-0.56267' +dqadd3117 fma 1 0 '-56267E-4' -> '-5.6267' +dqadd3119 fma 1 0 '-56267E-3' -> '-56.267' +dqadd3120 fma 1 0 '-56267E-2' -> '-562.67' +dqadd3121 fma 1 0 '-56267E-1' -> '-5626.7' +dqadd3122 fma 1 0 '-56267E-0' -> '-56267' +dqadd3123 fma 1 0 '-5E-10' -> '-5E-10' +dqadd3124 fma 1 0 '-5E-7' -> '-5E-7' +dqadd3125 fma 1 0 '-5E-6' -> '-0.000005' +dqadd3126 fma 1 0 '-5E-5' -> '-0.00005' +dqadd3127 fma 1 0 '-5E-4' -> '-0.0005' +dqadd3128 fma 1 0 '-5E-1' -> '-0.5' +dqadd3129 fma 1 0 '-5E0' -> '-5' +dqadd3130 fma 1 0 '-5E1' -> '-50' +dqadd3131 fma 1 0 '-5E5' -> '-500000' +dqadd3132 fma 1 0 '-5E33' -> '-5000000000000000000000000000000000' +dqadd3133 fma 1 0 '-5E34' -> '-5.000000000000000000000000000000000E+34' Rounded +dqadd3134 fma 1 0 '-5E35' -> '-5.000000000000000000000000000000000E+35' Rounded +dqadd3135 fma 1 0 '-5E36' -> '-5.000000000000000000000000000000000E+36' Rounded +dqadd3136 fma 1 0 '-5E100' -> '-5.000000000000000000000000000000000E+100' Rounded + +-- related +dqadd3137 fma 1 1 '0E-39' -> '1.000000000000000000000000000000000' Rounded +dqadd3138 fma 1 -1 '0E-39' -> '-1.000000000000000000000000000000000' Rounded +dqadd3139 fma 1 '0E-39' 1 -> '1.000000000000000000000000000000000' Rounded +dqadd3140 fma 1 '0E-39' -1 -> '-1.000000000000000000000000000000000' Rounded +dqadd3141 fma 1 1E+29 0.0000 -> '100000000000000000000000000000.0000' +dqadd3142 fma 1 1E+29 0.00000 -> '100000000000000000000000000000.0000' Rounded +dqadd3143 fma 1 0.000 1E+30 -> '1000000000000000000000000000000.000' +dqadd3144 fma 1 0.0000 1E+30 -> '1000000000000000000000000000000.000' Rounded + +-- [some of the next group are really constructor tests] +dqadd3146 fma 1 '00.0' 0 -> '0.0' +dqadd3147 fma 1 '0.00' 0 -> '0.00' +dqadd3148 fma 1 0 '0.00' -> '0.00' +dqadd3149 fma 1 0 '00.0' -> '0.0' +dqadd3150 fma 1 '00.0' '0.00' -> '0.00' +dqadd3151 fma 1 '0.00' '00.0' -> '0.00' +dqadd3152 fma 1 '3' '.3' -> '3.3' +dqadd3153 fma 1 '3.' '.3' -> '3.3' +dqadd3154 fma 1 '3.0' '.3' -> '3.3' +dqadd3155 fma 1 '3.00' '.3' -> '3.30' +dqadd3156 fma 1 '3' '3' -> '6' +dqadd3157 fma 1 '3' '+3' -> '6' +dqadd3158 fma 1 '3' '-3' -> '0' +dqadd3159 fma 1 '0.3' '-0.3' -> '0.0' +dqadd3160 fma 1 '0.03' '-0.03' -> '0.00' + +-- try borderline precision, with carries, etc. +dqadd3161 fma 1 '1E+12' '-1' -> '999999999999' +dqadd3162 fma 1 '1E+12' '1.11' -> '1000000000001.11' +dqadd3163 fma 1 '1.11' '1E+12' -> '1000000000001.11' +dqadd3164 fma 1 '-1' '1E+12' -> '999999999999' +dqadd3165 fma 1 '7E+12' '-1' -> '6999999999999' +dqadd3166 fma 1 '7E+12' '1.11' -> '7000000000001.11' +dqadd3167 fma 1 '1.11' '7E+12' -> '7000000000001.11' +dqadd3168 fma 1 '-1' '7E+12' -> '6999999999999' + +rounding: half_up +dqadd3170 fma 1 '4.444444444444444444444444444444444' '0.5555555555555555555555555555555567' -> '5.000000000000000000000000000000001' Inexact Rounded +dqadd3171 fma 1 '4.444444444444444444444444444444444' '0.5555555555555555555555555555555566' -> '5.000000000000000000000000000000001' Inexact Rounded +dqadd3172 fma 1 '4.444444444444444444444444444444444' '0.5555555555555555555555555555555565' -> '5.000000000000000000000000000000001' Inexact Rounded +dqadd3173 fma 1 '4.444444444444444444444444444444444' '0.5555555555555555555555555555555564' -> '5.000000000000000000000000000000000' Inexact Rounded +dqadd3174 fma 1 '4.444444444444444444444444444444444' '0.5555555555555555555555555555555553' -> '4.999999999999999999999999999999999' Inexact Rounded +dqadd3175 fma 1 '4.444444444444444444444444444444444' '0.5555555555555555555555555555555552' -> '4.999999999999999999999999999999999' Inexact Rounded +dqadd3176 fma 1 '4.444444444444444444444444444444444' '0.5555555555555555555555555555555551' -> '4.999999999999999999999999999999999' Inexact Rounded +dqadd3177 fma 1 '4.444444444444444444444444444444444' '0.5555555555555555555555555555555550' -> '4.999999999999999999999999999999999' Rounded +dqadd3178 fma 1 '4.444444444444444444444444444444444' '0.5555555555555555555555555555555545' -> '4.999999999999999999999999999999999' Inexact Rounded +dqadd3179 fma 1 '4.444444444444444444444444444444444' '0.5555555555555555555555555555555544' -> '4.999999999999999999999999999999998' Inexact Rounded +dqadd3180 fma 1 '4.444444444444444444444444444444444' '0.5555555555555555555555555555555543' -> '4.999999999999999999999999999999998' Inexact Rounded +dqadd3181 fma 1 '4.444444444444444444444444444444444' '0.5555555555555555555555555555555542' -> '4.999999999999999999999999999999998' Inexact Rounded +dqadd3182 fma 1 '4.444444444444444444444444444444444' '0.5555555555555555555555555555555541' -> '4.999999999999999999999999999999998' Inexact Rounded +dqadd3183 fma 1 '4.444444444444444444444444444444444' '0.5555555555555555555555555555555540' -> '4.999999999999999999999999999999998' Rounded + +-- and some more, including residue effects and different roundings +rounding: half_up +dqadd3200 fma 1 '1231234567890123456784560123456789' 0 -> '1231234567890123456784560123456789' +dqadd3201 fma 1 '1231234567890123456784560123456789' 0.000000001 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd3202 fma 1 '1231234567890123456784560123456789' 0.000001 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd3203 fma 1 '1231234567890123456784560123456789' 0.1 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd3204 fma 1 '1231234567890123456784560123456789' 0.4 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd3205 fma 1 '1231234567890123456784560123456789' 0.49 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd3206 fma 1 '1231234567890123456784560123456789' 0.499999 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd3207 fma 1 '1231234567890123456784560123456789' 0.499999999 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd3208 fma 1 '1231234567890123456784560123456789' 0.5 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd3209 fma 1 '1231234567890123456784560123456789' 0.500000001 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd3210 fma 1 '1231234567890123456784560123456789' 0.500001 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd3211 fma 1 '1231234567890123456784560123456789' 0.51 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd3212 fma 1 '1231234567890123456784560123456789' 0.6 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd3213 fma 1 '1231234567890123456784560123456789' 0.9 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd3214 fma 1 '1231234567890123456784560123456789' 0.99999 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd3215 fma 1 '1231234567890123456784560123456789' 0.999999999 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd3216 fma 1 '1231234567890123456784560123456789' 1 -> '1231234567890123456784560123456790' +dqadd3217 fma 1 '1231234567890123456784560123456789' 1.000000001 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd3218 fma 1 '1231234567890123456784560123456789' 1.00001 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd3219 fma 1 '1231234567890123456784560123456789' 1.1 -> '1231234567890123456784560123456790' Inexact Rounded + +rounding: half_even +dqadd3220 fma 1 '1231234567890123456784560123456789' 0 -> '1231234567890123456784560123456789' +dqadd3221 fma 1 '1231234567890123456784560123456789' 0.000000001 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd3222 fma 1 '1231234567890123456784560123456789' 0.000001 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd3223 fma 1 '1231234567890123456784560123456789' 0.1 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd3224 fma 1 '1231234567890123456784560123456789' 0.4 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd3225 fma 1 '1231234567890123456784560123456789' 0.49 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd3226 fma 1 '1231234567890123456784560123456789' 0.499999 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd3227 fma 1 '1231234567890123456784560123456789' 0.499999999 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd3228 fma 1 '1231234567890123456784560123456789' 0.5 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd3229 fma 1 '1231234567890123456784560123456789' 0.500000001 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd3230 fma 1 '1231234567890123456784560123456789' 0.500001 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd3231 fma 1 '1231234567890123456784560123456789' 0.51 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd3232 fma 1 '1231234567890123456784560123456789' 0.6 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd3233 fma 1 '1231234567890123456784560123456789' 0.9 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd3234 fma 1 '1231234567890123456784560123456789' 0.99999 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd3235 fma 1 '1231234567890123456784560123456789' 0.999999999 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd3236 fma 1 '1231234567890123456784560123456789' 1 -> '1231234567890123456784560123456790' +dqadd3237 fma 1 '1231234567890123456784560123456789' 1.00000001 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd3238 fma 1 '1231234567890123456784560123456789' 1.00001 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd3239 fma 1 '1231234567890123456784560123456789' 1.1 -> '1231234567890123456784560123456790' Inexact Rounded +-- critical few with even bottom digit... +dqadd3240 fma 1 '1231234567890123456784560123456788' 0.499999999 -> '1231234567890123456784560123456788' Inexact Rounded +dqadd3241 fma 1 '1231234567890123456784560123456788' 0.5 -> '1231234567890123456784560123456788' Inexact Rounded +dqadd3242 fma 1 '1231234567890123456784560123456788' 0.500000001 -> '1231234567890123456784560123456789' Inexact Rounded + +rounding: down +dqadd3250 fma 1 '1231234567890123456784560123456789' 0 -> '1231234567890123456784560123456789' +dqadd3251 fma 1 '1231234567890123456784560123456789' 0.000000001 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd3252 fma 1 '1231234567890123456784560123456789' 0.000001 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd3253 fma 1 '1231234567890123456784560123456789' 0.1 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd3254 fma 1 '1231234567890123456784560123456789' 0.4 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd3255 fma 1 '1231234567890123456784560123456789' 0.49 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd3256 fma 1 '1231234567890123456784560123456789' 0.499999 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd3257 fma 1 '1231234567890123456784560123456789' 0.499999999 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd3258 fma 1 '1231234567890123456784560123456789' 0.5 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd3259 fma 1 '1231234567890123456784560123456789' 0.500000001 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd3260 fma 1 '1231234567890123456784560123456789' 0.500001 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd3261 fma 1 '1231234567890123456784560123456789' 0.51 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd3262 fma 1 '1231234567890123456784560123456789' 0.6 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd3263 fma 1 '1231234567890123456784560123456789' 0.9 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd3264 fma 1 '1231234567890123456784560123456789' 0.99999 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd3265 fma 1 '1231234567890123456784560123456789' 0.999999999 -> '1231234567890123456784560123456789' Inexact Rounded +dqadd3266 fma 1 '1231234567890123456784560123456789' 1 -> '1231234567890123456784560123456790' +dqadd3267 fma 1 '1231234567890123456784560123456789' 1.00000001 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd3268 fma 1 '1231234567890123456784560123456789' 1.00001 -> '1231234567890123456784560123456790' Inexact Rounded +dqadd3269 fma 1 '1231234567890123456784560123456789' 1.1 -> '1231234567890123456784560123456790' Inexact Rounded + +-- 1 in last place tests +rounding: half_up +dqadd3301 fma 1 -1 1 -> 0 +dqadd3302 fma 1 0 1 -> 1 +dqadd3303 fma 1 1 1 -> 2 +dqadd3304 fma 1 12 1 -> 13 +dqadd3305 fma 1 98 1 -> 99 +dqadd3306 fma 1 99 1 -> 100 +dqadd3307 fma 1 100 1 -> 101 +dqadd3308 fma 1 101 1 -> 102 +dqadd3309 fma 1 -1 -1 -> -2 +dqadd3310 fma 1 0 -1 -> -1 +dqadd3311 fma 1 1 -1 -> 0 +dqadd3312 fma 1 12 -1 -> 11 +dqadd3313 fma 1 98 -1 -> 97 +dqadd3314 fma 1 99 -1 -> 98 +dqadd3315 fma 1 100 -1 -> 99 +dqadd3316 fma 1 101 -1 -> 100 + +dqadd3321 fma 1 -0.01 0.01 -> 0.00 +dqadd3322 fma 1 0.00 0.01 -> 0.01 +dqadd3323 fma 1 0.01 0.01 -> 0.02 +dqadd3324 fma 1 0.12 0.01 -> 0.13 +dqadd3325 fma 1 0.98 0.01 -> 0.99 +dqadd3326 fma 1 0.99 0.01 -> 1.00 +dqadd3327 fma 1 1.00 0.01 -> 1.01 +dqadd3328 fma 1 1.01 0.01 -> 1.02 +dqadd3329 fma 1 -0.01 -0.01 -> -0.02 +dqadd3330 fma 1 0.00 -0.01 -> -0.01 +dqadd3331 fma 1 0.01 -0.01 -> 0.00 +dqadd3332 fma 1 0.12 -0.01 -> 0.11 +dqadd3333 fma 1 0.98 -0.01 -> 0.97 +dqadd3334 fma 1 0.99 -0.01 -> 0.98 +dqadd3335 fma 1 1.00 -0.01 -> 0.99 +dqadd3336 fma 1 1.01 -0.01 -> 1.00 + +-- some more cases where adding 0 affects the coefficient +dqadd3340 fma 1 1E+3 0 -> 1000 +dqadd3341 fma 1 1E+33 0 -> 1000000000000000000000000000000000 +dqadd3342 fma 1 1E+34 0 -> 1.000000000000000000000000000000000E+34 Rounded +dqadd3343 fma 1 1E+35 0 -> 1.000000000000000000000000000000000E+35 Rounded +-- which simply follow from these cases ... +dqadd3344 fma 1 1E+3 1 -> 1001 +dqadd3345 fma 1 1E+33 1 -> 1000000000000000000000000000000001 +dqadd3346 fma 1 1E+34 1 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd3347 fma 1 1E+35 1 -> 1.000000000000000000000000000000000E+35 Inexact Rounded +dqadd3348 fma 1 1E+3 7 -> 1007 +dqadd3349 fma 1 1E+33 7 -> 1000000000000000000000000000000007 +dqadd3350 fma 1 1E+34 7 -> 1.000000000000000000000000000000001E+34 Inexact Rounded +dqadd3351 fma 1 1E+35 7 -> 1.000000000000000000000000000000000E+35 Inexact Rounded + +-- tryzeros cases +rounding: half_up +dqadd3360 fma 1 0E+50 10000E+1 -> 1.0000E+5 +dqadd3361 fma 1 0E-50 10000E+1 -> 100000.0000000000000000000000000000 Rounded +dqadd3362 fma 1 10000E+1 0E-50 -> 100000.0000000000000000000000000000 Rounded +dqadd3363 fma 1 10000E+1 10000E-50 -> 100000.0000000000000000000000000000 Rounded Inexact +dqadd3364 fma 1 9.999999999999999999999999999999999E+6144 -9.999999999999999999999999999999999E+6144 -> 0E+6111 +-- 1 234567890123456789012345678901234 + +-- a curiosity from JSR 13 testing +rounding: half_down +dqadd3370 fma 1 999999999999999999999999999999999 815 -> 1000000000000000000000000000000814 +dqadd3371 fma 1 9999999999999999999999999999999999 815 -> 1.000000000000000000000000000000081E+34 Rounded Inexact +rounding: half_up +dqadd3372 fma 1 999999999999999999999999999999999 815 -> 1000000000000000000000000000000814 +dqadd3373 fma 1 9999999999999999999999999999999999 815 -> 1.000000000000000000000000000000081E+34 Rounded Inexact +rounding: half_even +dqadd3374 fma 1 999999999999999999999999999999999 815 -> 1000000000000000000000000000000814 +dqadd3375 fma 1 9999999999999999999999999999999999 815 -> 1.000000000000000000000000000000081E+34 Rounded Inexact + +-- ulp replacement tests +dqadd3400 fma 1 1 77e-32 -> 1.00000000000000000000000000000077 +dqadd3401 fma 1 1 77e-33 -> 1.000000000000000000000000000000077 +dqadd3402 fma 1 1 77e-34 -> 1.000000000000000000000000000000008 Inexact Rounded +dqadd3403 fma 1 1 77e-35 -> 1.000000000000000000000000000000001 Inexact Rounded +dqadd3404 fma 1 1 77e-36 -> 1.000000000000000000000000000000000 Inexact Rounded +dqadd3405 fma 1 1 77e-37 -> 1.000000000000000000000000000000000 Inexact Rounded +dqadd3406 fma 1 1 77e-299 -> 1.000000000000000000000000000000000 Inexact Rounded + +dqadd3410 fma 1 10 77e-32 -> 10.00000000000000000000000000000077 +dqadd3411 fma 1 10 77e-33 -> 10.00000000000000000000000000000008 Inexact Rounded +dqadd3412 fma 1 10 77e-34 -> 10.00000000000000000000000000000001 Inexact Rounded +dqadd3413 fma 1 10 77e-35 -> 10.00000000000000000000000000000000 Inexact Rounded +dqadd3414 fma 1 10 77e-36 -> 10.00000000000000000000000000000000 Inexact Rounded +dqadd3415 fma 1 10 77e-37 -> 10.00000000000000000000000000000000 Inexact Rounded +dqadd3416 fma 1 10 77e-299 -> 10.00000000000000000000000000000000 Inexact Rounded + +dqadd3420 fma 1 77e-32 1 -> 1.00000000000000000000000000000077 +dqadd3421 fma 1 77e-33 1 -> 1.000000000000000000000000000000077 +dqadd3422 fma 1 77e-34 1 -> 1.000000000000000000000000000000008 Inexact Rounded +dqadd3423 fma 1 77e-35 1 -> 1.000000000000000000000000000000001 Inexact Rounded +dqadd3424 fma 1 77e-36 1 -> 1.000000000000000000000000000000000 Inexact Rounded +dqadd3425 fma 1 77e-37 1 -> 1.000000000000000000000000000000000 Inexact Rounded +dqadd3426 fma 1 77e-299 1 -> 1.000000000000000000000000000000000 Inexact Rounded + +dqadd3430 fma 1 77e-32 10 -> 10.00000000000000000000000000000077 +dqadd3431 fma 1 77e-33 10 -> 10.00000000000000000000000000000008 Inexact Rounded +dqadd3432 fma 1 77e-34 10 -> 10.00000000000000000000000000000001 Inexact Rounded +dqadd3433 fma 1 77e-35 10 -> 10.00000000000000000000000000000000 Inexact Rounded +dqadd3434 fma 1 77e-36 10 -> 10.00000000000000000000000000000000 Inexact Rounded +dqadd3435 fma 1 77e-37 10 -> 10.00000000000000000000000000000000 Inexact Rounded +dqadd3436 fma 1 77e-299 10 -> 10.00000000000000000000000000000000 Inexact Rounded + +-- negative ulps +dqadd36440 fma 1 1 -77e-32 -> 0.99999999999999999999999999999923 +dqadd36441 fma 1 1 -77e-33 -> 0.999999999999999999999999999999923 +dqadd36442 fma 1 1 -77e-34 -> 0.9999999999999999999999999999999923 +dqadd36443 fma 1 1 -77e-35 -> 0.9999999999999999999999999999999992 Inexact Rounded +dqadd36444 fma 1 1 -77e-36 -> 0.9999999999999999999999999999999999 Inexact Rounded +dqadd36445 fma 1 1 -77e-37 -> 1.000000000000000000000000000000000 Inexact Rounded +dqadd36446 fma 1 1 -77e-99 -> 1.000000000000000000000000000000000 Inexact Rounded + +dqadd36450 fma 1 10 -77e-32 -> 9.99999999999999999999999999999923 +dqadd36451 fma 1 10 -77e-33 -> 9.999999999999999999999999999999923 +dqadd36452 fma 1 10 -77e-34 -> 9.999999999999999999999999999999992 Inexact Rounded +dqadd36453 fma 1 10 -77e-35 -> 9.999999999999999999999999999999999 Inexact Rounded +dqadd36454 fma 1 10 -77e-36 -> 10.00000000000000000000000000000000 Inexact Rounded +dqadd36455 fma 1 10 -77e-37 -> 10.00000000000000000000000000000000 Inexact Rounded +dqadd36456 fma 1 10 -77e-99 -> 10.00000000000000000000000000000000 Inexact Rounded + +dqadd36460 fma 1 -77e-32 1 -> 0.99999999999999999999999999999923 +dqadd36461 fma 1 -77e-33 1 -> 0.999999999999999999999999999999923 +dqadd36462 fma 1 -77e-34 1 -> 0.9999999999999999999999999999999923 +dqadd36463 fma 1 -77e-35 1 -> 0.9999999999999999999999999999999992 Inexact Rounded +dqadd36464 fma 1 -77e-36 1 -> 0.9999999999999999999999999999999999 Inexact Rounded +dqadd36465 fma 1 -77e-37 1 -> 1.000000000000000000000000000000000 Inexact Rounded +dqadd36466 fma 1 -77e-99 1 -> 1.000000000000000000000000000000000 Inexact Rounded + +dqadd36470 fma 1 -77e-32 10 -> 9.99999999999999999999999999999923 +dqadd36471 fma 1 -77e-33 10 -> 9.999999999999999999999999999999923 +dqadd36472 fma 1 -77e-34 10 -> 9.999999999999999999999999999999992 Inexact Rounded +dqadd36473 fma 1 -77e-35 10 -> 9.999999999999999999999999999999999 Inexact Rounded +dqadd36474 fma 1 -77e-36 10 -> 10.00000000000000000000000000000000 Inexact Rounded +dqadd36475 fma 1 -77e-37 10 -> 10.00000000000000000000000000000000 Inexact Rounded +dqadd36476 fma 1 -77e-99 10 -> 10.00000000000000000000000000000000 Inexact Rounded + +-- negative ulps +dqadd36480 fma 1 -1 77e-32 -> -0.99999999999999999999999999999923 +dqadd36481 fma 1 -1 77e-33 -> -0.999999999999999999999999999999923 +dqadd36482 fma 1 -1 77e-34 -> -0.9999999999999999999999999999999923 +dqadd36483 fma 1 -1 77e-35 -> -0.9999999999999999999999999999999992 Inexact Rounded +dqadd36484 fma 1 -1 77e-36 -> -0.9999999999999999999999999999999999 Inexact Rounded +dqadd36485 fma 1 -1 77e-37 -> -1.000000000000000000000000000000000 Inexact Rounded +dqadd36486 fma 1 -1 77e-99 -> -1.000000000000000000000000000000000 Inexact Rounded + +dqadd36490 fma 1 -10 77e-32 -> -9.99999999999999999999999999999923 +dqadd36491 fma 1 -10 77e-33 -> -9.999999999999999999999999999999923 +dqadd36492 fma 1 -10 77e-34 -> -9.999999999999999999999999999999992 Inexact Rounded +dqadd36493 fma 1 -10 77e-35 -> -9.999999999999999999999999999999999 Inexact Rounded +dqadd36494 fma 1 -10 77e-36 -> -10.00000000000000000000000000000000 Inexact Rounded +dqadd36495 fma 1 -10 77e-37 -> -10.00000000000000000000000000000000 Inexact Rounded +dqadd36496 fma 1 -10 77e-99 -> -10.00000000000000000000000000000000 Inexact Rounded + +dqadd36500 fma 1 77e-32 -1 -> -0.99999999999999999999999999999923 +dqadd36501 fma 1 77e-33 -1 -> -0.999999999999999999999999999999923 +dqadd36502 fma 1 77e-34 -1 -> -0.9999999999999999999999999999999923 +dqadd36503 fma 1 77e-35 -1 -> -0.9999999999999999999999999999999992 Inexact Rounded +dqadd36504 fma 1 77e-36 -1 -> -0.9999999999999999999999999999999999 Inexact Rounded +dqadd36505 fma 1 77e-37 -1 -> -1.000000000000000000000000000000000 Inexact Rounded +dqadd36506 fma 1 77e-99 -1 -> -1.000000000000000000000000000000000 Inexact Rounded + +dqadd36510 fma 1 77e-32 -10 -> -9.99999999999999999999999999999923 +dqadd36511 fma 1 77e-33 -10 -> -9.999999999999999999999999999999923 +dqadd36512 fma 1 77e-34 -10 -> -9.999999999999999999999999999999992 Inexact Rounded +dqadd36513 fma 1 77e-35 -10 -> -9.999999999999999999999999999999999 Inexact Rounded +dqadd36514 fma 1 77e-36 -10 -> -10.00000000000000000000000000000000 Inexact Rounded +dqadd36515 fma 1 77e-37 -10 -> -10.00000000000000000000000000000000 Inexact Rounded +dqadd36516 fma 1 77e-99 -10 -> -10.00000000000000000000000000000000 Inexact Rounded + +-- and some more residue effects and different roundings +rounding: half_up +dqadd36540 fma 1 '9876543219876543216543210123456789' 0 -> '9876543219876543216543210123456789' +dqadd36541 fma 1 '9876543219876543216543210123456789' 0.000000001 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd36542 fma 1 '9876543219876543216543210123456789' 0.000001 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd36543 fma 1 '9876543219876543216543210123456789' 0.1 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd36544 fma 1 '9876543219876543216543210123456789' 0.4 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd36545 fma 1 '9876543219876543216543210123456789' 0.49 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd36546 fma 1 '9876543219876543216543210123456789' 0.499999 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd36547 fma 1 '9876543219876543216543210123456789' 0.499999999 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd36548 fma 1 '9876543219876543216543210123456789' 0.5 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd36549 fma 1 '9876543219876543216543210123456789' 0.500000001 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd36550 fma 1 '9876543219876543216543210123456789' 0.500001 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd36551 fma 1 '9876543219876543216543210123456789' 0.51 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd36552 fma 1 '9876543219876543216543210123456789' 0.6 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd36553 fma 1 '9876543219876543216543210123456789' 0.9 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd36554 fma 1 '9876543219876543216543210123456789' 0.99999 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd36555 fma 1 '9876543219876543216543210123456789' 0.999999999 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd36556 fma 1 '9876543219876543216543210123456789' 1 -> '9876543219876543216543210123456790' +dqadd36557 fma 1 '9876543219876543216543210123456789' 1.000000001 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd36558 fma 1 '9876543219876543216543210123456789' 1.00001 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd36559 fma 1 '9876543219876543216543210123456789' 1.1 -> '9876543219876543216543210123456790' Inexact Rounded + +rounding: half_even +dqadd36560 fma 1 '9876543219876543216543210123456789' 0 -> '9876543219876543216543210123456789' +dqadd36561 fma 1 '9876543219876543216543210123456789' 0.000000001 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd36562 fma 1 '9876543219876543216543210123456789' 0.000001 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd36563 fma 1 '9876543219876543216543210123456789' 0.1 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd36564 fma 1 '9876543219876543216543210123456789' 0.4 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd36565 fma 1 '9876543219876543216543210123456789' 0.49 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd36566 fma 1 '9876543219876543216543210123456789' 0.499999 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd36567 fma 1 '9876543219876543216543210123456789' 0.499999999 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd36568 fma 1 '9876543219876543216543210123456789' 0.5 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd36569 fma 1 '9876543219876543216543210123456789' 0.500000001 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd36570 fma 1 '9876543219876543216543210123456789' 0.500001 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd36571 fma 1 '9876543219876543216543210123456789' 0.51 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd36572 fma 1 '9876543219876543216543210123456789' 0.6 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd36573 fma 1 '9876543219876543216543210123456789' 0.9 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd36574 fma 1 '9876543219876543216543210123456789' 0.99999 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd36575 fma 1 '9876543219876543216543210123456789' 0.999999999 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd36576 fma 1 '9876543219876543216543210123456789' 1 -> '9876543219876543216543210123456790' +dqadd36577 fma 1 '9876543219876543216543210123456789' 1.00000001 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd36578 fma 1 '9876543219876543216543210123456789' 1.00001 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd36579 fma 1 '9876543219876543216543210123456789' 1.1 -> '9876543219876543216543210123456790' Inexact Rounded + +-- critical few with even bottom digit... +dqadd37540 fma 1 '9876543219876543216543210123456788' 0.499999999 -> '9876543219876543216543210123456788' Inexact Rounded +dqadd37541 fma 1 '9876543219876543216543210123456788' 0.5 -> '9876543219876543216543210123456788' Inexact Rounded +dqadd37542 fma 1 '9876543219876543216543210123456788' 0.500000001 -> '9876543219876543216543210123456789' Inexact Rounded + +rounding: down +dqadd37550 fma 1 '9876543219876543216543210123456789' 0 -> '9876543219876543216543210123456789' +dqadd37551 fma 1 '9876543219876543216543210123456789' 0.000000001 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd37552 fma 1 '9876543219876543216543210123456789' 0.000001 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd37553 fma 1 '9876543219876543216543210123456789' 0.1 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd37554 fma 1 '9876543219876543216543210123456789' 0.4 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd37555 fma 1 '9876543219876543216543210123456789' 0.49 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd37556 fma 1 '9876543219876543216543210123456789' 0.499999 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd37557 fma 1 '9876543219876543216543210123456789' 0.499999999 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd37558 fma 1 '9876543219876543216543210123456789' 0.5 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd37559 fma 1 '9876543219876543216543210123456789' 0.500000001 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd37560 fma 1 '9876543219876543216543210123456789' 0.500001 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd37561 fma 1 '9876543219876543216543210123456789' 0.51 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd37562 fma 1 '9876543219876543216543210123456789' 0.6 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd37563 fma 1 '9876543219876543216543210123456789' 0.9 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd37564 fma 1 '9876543219876543216543210123456789' 0.99999 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd37565 fma 1 '9876543219876543216543210123456789' 0.999999999 -> '9876543219876543216543210123456789' Inexact Rounded +dqadd37566 fma 1 '9876543219876543216543210123456789' 1 -> '9876543219876543216543210123456790' +dqadd37567 fma 1 '9876543219876543216543210123456789' 1.00000001 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd37568 fma 1 '9876543219876543216543210123456789' 1.00001 -> '9876543219876543216543210123456790' Inexact Rounded +dqadd37569 fma 1 '9876543219876543216543210123456789' 1.1 -> '9876543219876543216543210123456790' Inexact Rounded + +-- more zeros, etc. +rounding: half_even + +dqadd37701 fma 1 5.00 1.00E-3 -> 5.00100 +dqadd37702 fma 1 00.00 0.000 -> 0.000 +dqadd37703 fma 1 00.00 0E-3 -> 0.000 +dqadd37704 fma 1 0E-3 00.00 -> 0.000 + +dqadd37710 fma 1 0E+3 00.00 -> 0.00 +dqadd37711 fma 1 0E+3 00.0 -> 0.0 +dqadd37712 fma 1 0E+3 00. -> 0 +dqadd37713 fma 1 0E+3 00.E+1 -> 0E+1 +dqadd37714 fma 1 0E+3 00.E+2 -> 0E+2 +dqadd37715 fma 1 0E+3 00.E+3 -> 0E+3 +dqadd37716 fma 1 0E+3 00.E+4 -> 0E+3 +dqadd37717 fma 1 0E+3 00.E+5 -> 0E+3 +dqadd37718 fma 1 0E+3 -00.0 -> 0.0 +dqadd37719 fma 1 0E+3 -00. -> 0 +dqadd37731 fma 1 0E+3 -00.E+1 -> 0E+1 + +dqadd37720 fma 1 00.00 0E+3 -> 0.00 +dqadd37721 fma 1 00.0 0E+3 -> 0.0 +dqadd37722 fma 1 00. 0E+3 -> 0 +dqadd37723 fma 1 00.E+1 0E+3 -> 0E+1 +dqadd37724 fma 1 00.E+2 0E+3 -> 0E+2 +dqadd37725 fma 1 00.E+3 0E+3 -> 0E+3 +dqadd37726 fma 1 00.E+4 0E+3 -> 0E+3 +dqadd37727 fma 1 00.E+5 0E+3 -> 0E+3 +dqadd37728 fma 1 -00.00 0E+3 -> 0.00 +dqadd37729 fma 1 -00.0 0E+3 -> 0.0 +dqadd37730 fma 1 -00. 0E+3 -> 0 + +dqadd37732 fma 1 0 0 -> 0 +dqadd37733 fma 1 0 -0 -> 0 +dqadd37734 fma 1 -0 0 -> 0 +dqadd37735 fma 1 -0 -0 -> -0 -- IEEE 854 special case + +dqadd37736 fma 1 1 -1 -> 0 +dqadd37737 fma 1 -1 -1 -> -2 +dqadd37738 fma 1 1 1 -> 2 +dqadd37739 fma 1 -1 1 -> 0 + +dqadd37741 fma 1 0 -1 -> -1 +dqadd37742 fma 1 -0 -1 -> -1 +dqadd37743 fma 1 0 1 -> 1 +dqadd37744 fma 1 -0 1 -> 1 +dqadd37745 fma 1 -1 0 -> -1 +dqadd37746 fma 1 -1 -0 -> -1 +dqadd37747 fma 1 1 0 -> 1 +dqadd37748 fma 1 1 -0 -> 1 + +dqadd37751 fma 1 0.0 -1 -> -1.0 +dqadd37752 fma 1 -0.0 -1 -> -1.0 +dqadd37753 fma 1 0.0 1 -> 1.0 +dqadd37754 fma 1 -0.0 1 -> 1.0 +dqadd37755 fma 1 -1.0 0 -> -1.0 +dqadd37756 fma 1 -1.0 -0 -> -1.0 +dqadd37757 fma 1 1.0 0 -> 1.0 +dqadd37758 fma 1 1.0 -0 -> 1.0 + +dqadd37761 fma 1 0 -1.0 -> -1.0 +dqadd37762 fma 1 -0 -1.0 -> -1.0 +dqadd37763 fma 1 0 1.0 -> 1.0 +dqadd37764 fma 1 -0 1.0 -> 1.0 +dqadd37765 fma 1 -1 0.0 -> -1.0 +dqadd37766 fma 1 -1 -0.0 -> -1.0 +dqadd37767 fma 1 1 0.0 -> 1.0 +dqadd37768 fma 1 1 -0.0 -> 1.0 + +dqadd37771 fma 1 0.0 -1.0 -> -1.0 +dqadd37772 fma 1 -0.0 -1.0 -> -1.0 +dqadd37773 fma 1 0.0 1.0 -> 1.0 +dqadd37774 fma 1 -0.0 1.0 -> 1.0 +dqadd37775 fma 1 -1.0 0.0 -> -1.0 +dqadd37776 fma 1 -1.0 -0.0 -> -1.0 +dqadd37777 fma 1 1.0 0.0 -> 1.0 +dqadd37778 fma 1 1.0 -0.0 -> 1.0 + +-- Specials +dqadd37780 fma 1 -Inf -Inf -> -Infinity +dqadd37781 fma 1 -Inf -1000 -> -Infinity +dqadd37782 fma 1 -Inf -1 -> -Infinity +dqadd37783 fma 1 -Inf -0 -> -Infinity +dqadd37784 fma 1 -Inf 0 -> -Infinity +dqadd37785 fma 1 -Inf 1 -> -Infinity +dqadd37786 fma 1 -Inf 1000 -> -Infinity +dqadd37787 fma 1 -1000 -Inf -> -Infinity +dqadd37788 fma 1 -Inf -Inf -> -Infinity +dqadd37789 fma 1 -1 -Inf -> -Infinity +dqadd37790 fma 1 -0 -Inf -> -Infinity +dqadd37791 fma 1 0 -Inf -> -Infinity +dqadd37792 fma 1 1 -Inf -> -Infinity +dqadd37793 fma 1 1000 -Inf -> -Infinity +dqadd37794 fma 1 Inf -Inf -> NaN Invalid_operation + +dqadd37800 fma 1 Inf -Inf -> NaN Invalid_operation +dqadd37801 fma 1 Inf -1000 -> Infinity +dqadd37802 fma 1 Inf -1 -> Infinity +dqadd37803 fma 1 Inf -0 -> Infinity +dqadd37804 fma 1 Inf 0 -> Infinity +dqadd37805 fma 1 Inf 1 -> Infinity +dqadd37806 fma 1 Inf 1000 -> Infinity +dqadd37807 fma 1 Inf Inf -> Infinity +dqadd37808 fma 1 -1000 Inf -> Infinity +dqadd37809 fma 1 -Inf Inf -> NaN Invalid_operation +dqadd37810 fma 1 -1 Inf -> Infinity +dqadd37811 fma 1 -0 Inf -> Infinity +dqadd37812 fma 1 0 Inf -> Infinity +dqadd37813 fma 1 1 Inf -> Infinity +dqadd37814 fma 1 1000 Inf -> Infinity +dqadd37815 fma 1 Inf Inf -> Infinity + +dqadd37821 fma 1 NaN -Inf -> NaN +dqadd37822 fma 1 NaN -1000 -> NaN +dqadd37823 fma 1 NaN -1 -> NaN +dqadd37824 fma 1 NaN -0 -> NaN +dqadd37825 fma 1 NaN 0 -> NaN +dqadd37826 fma 1 NaN 1 -> NaN +dqadd37827 fma 1 NaN 1000 -> NaN +dqadd37828 fma 1 NaN Inf -> NaN +dqadd37829 fma 1 NaN NaN -> NaN +dqadd37830 fma 1 -Inf NaN -> NaN +dqadd37831 fma 1 -1000 NaN -> NaN +dqadd37832 fma 1 -1 NaN -> NaN +dqadd37833 fma 1 -0 NaN -> NaN +dqadd37834 fma 1 0 NaN -> NaN +dqadd37835 fma 1 1 NaN -> NaN +dqadd37836 fma 1 1000 NaN -> NaN +dqadd37837 fma 1 Inf NaN -> NaN + +dqadd37841 fma 1 sNaN -Inf -> NaN Invalid_operation +dqadd37842 fma 1 sNaN -1000 -> NaN Invalid_operation +dqadd37843 fma 1 sNaN -1 -> NaN Invalid_operation +dqadd37844 fma 1 sNaN -0 -> NaN Invalid_operation +dqadd37845 fma 1 sNaN 0 -> NaN Invalid_operation +dqadd37846 fma 1 sNaN 1 -> NaN Invalid_operation +dqadd37847 fma 1 sNaN 1000 -> NaN Invalid_operation +dqadd37848 fma 1 sNaN NaN -> NaN Invalid_operation +dqadd37849 fma 1 sNaN sNaN -> NaN Invalid_operation +dqadd37850 fma 1 NaN sNaN -> NaN Invalid_operation +dqadd37851 fma 1 -Inf sNaN -> NaN Invalid_operation +dqadd37852 fma 1 -1000 sNaN -> NaN Invalid_operation +dqadd37853 fma 1 -1 sNaN -> NaN Invalid_operation +dqadd37854 fma 1 -0 sNaN -> NaN Invalid_operation +dqadd37855 fma 1 0 sNaN -> NaN Invalid_operation +dqadd37856 fma 1 1 sNaN -> NaN Invalid_operation +dqadd37857 fma 1 1000 sNaN -> NaN Invalid_operation +dqadd37858 fma 1 Inf sNaN -> NaN Invalid_operation +dqadd37859 fma 1 NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +dqadd37861 fma 1 NaN1 -Inf -> NaN1 +dqadd37862 fma 1 +NaN2 -1000 -> NaN2 +dqadd37863 fma 1 NaN3 1000 -> NaN3 +dqadd37864 fma 1 NaN4 Inf -> NaN4 +dqadd37865 fma 1 NaN5 +NaN6 -> NaN5 +dqadd37866 fma 1 -Inf NaN7 -> NaN7 +dqadd37867 fma 1 -1000 NaN8 -> NaN8 +dqadd37868 fma 1 1000 NaN9 -> NaN9 +dqadd37869 fma 1 Inf +NaN10 -> NaN10 +dqadd37871 fma 1 sNaN11 -Inf -> NaN11 Invalid_operation +dqadd37872 fma 1 sNaN12 -1000 -> NaN12 Invalid_operation +dqadd37873 fma 1 sNaN13 1000 -> NaN13 Invalid_operation +dqadd37874 fma 1 sNaN14 NaN17 -> NaN14 Invalid_operation +dqadd37875 fma 1 sNaN15 sNaN18 -> NaN15 Invalid_operation +dqadd37876 fma 1 NaN16 sNaN19 -> NaN19 Invalid_operation +dqadd37877 fma 1 -Inf +sNaN20 -> NaN20 Invalid_operation +dqadd37878 fma 1 -1000 sNaN21 -> NaN21 Invalid_operation +dqadd37879 fma 1 1000 sNaN22 -> NaN22 Invalid_operation +dqadd37880 fma 1 Inf sNaN23 -> NaN23 Invalid_operation +dqadd37881 fma 1 +NaN25 +sNaN24 -> NaN24 Invalid_operation +dqadd37882 fma 1 -NaN26 NaN28 -> -NaN26 +dqadd37883 fma 1 -sNaN27 sNaN29 -> -NaN27 Invalid_operation +dqadd37884 fma 1 1000 -NaN30 -> -NaN30 +dqadd37885 fma 1 1000 -sNaN31 -> -NaN31 Invalid_operation + +-- Here we explore near the boundary of rounding a subnormal to Nmin +dqadd37575 fma 1 1E-6143 -1E-6176 -> 9.99999999999999999999999999999999E-6144 Subnormal +dqadd37576 fma 1 -1E-6143 +1E-6176 -> -9.99999999999999999999999999999999E-6144 Subnormal + +-- check overflow edge case +-- 1234567890123456 +dqadd37972 apply 9.999999999999999999999999999999999E+6144 -> 9.999999999999999999999999999999999E+6144 +dqadd37973 fma 1 9.999999999999999999999999999999999E+6144 1 -> 9.999999999999999999999999999999999E+6144 Inexact Rounded +dqadd37974 fma 1 9999999999999999999999999999999999E+6111 1 -> 9.999999999999999999999999999999999E+6144 Inexact Rounded +dqadd37975 fma 1 9999999999999999999999999999999999E+6111 1E+6111 -> Infinity Overflow Inexact Rounded +dqadd37976 fma 1 9999999999999999999999999999999999E+6111 9E+6110 -> Infinity Overflow Inexact Rounded +dqadd37977 fma 1 9999999999999999999999999999999999E+6111 8E+6110 -> Infinity Overflow Inexact Rounded +dqadd37978 fma 1 9999999999999999999999999999999999E+6111 7E+6110 -> Infinity Overflow Inexact Rounded +dqadd37979 fma 1 9999999999999999999999999999999999E+6111 6E+6110 -> Infinity Overflow Inexact Rounded +dqadd37980 fma 1 9999999999999999999999999999999999E+6111 5E+6110 -> Infinity Overflow Inexact Rounded +dqadd37981 fma 1 9999999999999999999999999999999999E+6111 4E+6110 -> 9.999999999999999999999999999999999E+6144 Inexact Rounded +dqadd37982 fma 1 9999999999999999999999999999999999E+6111 3E+6110 -> 9.999999999999999999999999999999999E+6144 Inexact Rounded +dqadd37983 fma 1 9999999999999999999999999999999999E+6111 2E+6110 -> 9.999999999999999999999999999999999E+6144 Inexact Rounded +dqadd37984 fma 1 9999999999999999999999999999999999E+6111 1E+6110 -> 9.999999999999999999999999999999999E+6144 Inexact Rounded + +dqadd37985 apply -9.999999999999999999999999999999999E+6144 -> -9.999999999999999999999999999999999E+6144 +dqadd37986 fma 1 -9.999999999999999999999999999999999E+6144 -1 -> -9.999999999999999999999999999999999E+6144 Inexact Rounded +dqadd37987 fma 1 -9999999999999999999999999999999999E+6111 -1 -> -9.999999999999999999999999999999999E+6144 Inexact Rounded +dqadd37988 fma 1 -9999999999999999999999999999999999E+6111 -1E+6111 -> -Infinity Overflow Inexact Rounded +dqadd37989 fma 1 -9999999999999999999999999999999999E+6111 -9E+6110 -> -Infinity Overflow Inexact Rounded +dqadd37990 fma 1 -9999999999999999999999999999999999E+6111 -8E+6110 -> -Infinity Overflow Inexact Rounded +dqadd37991 fma 1 -9999999999999999999999999999999999E+6111 -7E+6110 -> -Infinity Overflow Inexact Rounded +dqadd37992 fma 1 -9999999999999999999999999999999999E+6111 -6E+6110 -> -Infinity Overflow Inexact Rounded +dqadd37993 fma 1 -9999999999999999999999999999999999E+6111 -5E+6110 -> -Infinity Overflow Inexact Rounded +dqadd37994 fma 1 -9999999999999999999999999999999999E+6111 -4E+6110 -> -9.999999999999999999999999999999999E+6144 Inexact Rounded +dqadd37995 fma 1 -9999999999999999999999999999999999E+6111 -3E+6110 -> -9.999999999999999999999999999999999E+6144 Inexact Rounded +dqadd37996 fma 1 -9999999999999999999999999999999999E+6111 -2E+6110 -> -9.999999999999999999999999999999999E+6144 Inexact Rounded +dqadd37997 fma 1 -9999999999999999999999999999999999E+6111 -1E+6110 -> -9.999999999999999999999999999999999E+6144 Inexact Rounded + +-- And for round down full and subnormal results +rounding: down +dqadd371100 fma 1 1e+2 -1e-6143 -> 99.99999999999999999999999999999999 Rounded Inexact +dqadd371101 fma 1 1e+1 -1e-6143 -> 9.999999999999999999999999999999999 Rounded Inexact +dqadd371103 fma 1 +1 -1e-6143 -> 0.9999999999999999999999999999999999 Rounded Inexact +dqadd371104 fma 1 1e-1 -1e-6143 -> 0.09999999999999999999999999999999999 Rounded Inexact +dqadd371105 fma 1 1e-2 -1e-6143 -> 0.009999999999999999999999999999999999 Rounded Inexact +dqadd371106 fma 1 1e-3 -1e-6143 -> 0.0009999999999999999999999999999999999 Rounded Inexact +dqadd371107 fma 1 1e-4 -1e-6143 -> 0.00009999999999999999999999999999999999 Rounded Inexact +dqadd371108 fma 1 1e-5 -1e-6143 -> 0.000009999999999999999999999999999999999 Rounded Inexact +dqadd371109 fma 1 1e-6 -1e-6143 -> 9.999999999999999999999999999999999E-7 Rounded Inexact + +rounding: ceiling +dqadd371110 fma 1 -1e+2 +1e-6143 -> -99.99999999999999999999999999999999 Rounded Inexact +dqadd371111 fma 1 -1e+1 +1e-6143 -> -9.999999999999999999999999999999999 Rounded Inexact +dqadd371113 fma 1 -1 +1e-6143 -> -0.9999999999999999999999999999999999 Rounded Inexact +dqadd371114 fma 1 -1e-1 +1e-6143 -> -0.09999999999999999999999999999999999 Rounded Inexact +dqadd371115 fma 1 -1e-2 +1e-6143 -> -0.009999999999999999999999999999999999 Rounded Inexact +dqadd371116 fma 1 -1e-3 +1e-6143 -> -0.0009999999999999999999999999999999999 Rounded Inexact +dqadd371117 fma 1 -1e-4 +1e-6143 -> -0.00009999999999999999999999999999999999 Rounded Inexact +dqadd371118 fma 1 -1e-5 +1e-6143 -> -0.000009999999999999999999999999999999999 Rounded Inexact +dqadd371119 fma 1 -1e-6 +1e-6143 -> -9.999999999999999999999999999999999E-7 Rounded Inexact + +-- tests based on Gunnar Degnbol's edge case +rounding: half_even + +dqadd371300 fma 1 1E34 -0.5 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371310 fma 1 1E34 -0.51 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd371311 fma 1 1E34 -0.501 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd371312 fma 1 1E34 -0.5001 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd371313 fma 1 1E34 -0.50001 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd371314 fma 1 1E34 -0.500001 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd371315 fma 1 1E34 -0.5000001 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd371316 fma 1 1E34 -0.50000001 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd371317 fma 1 1E34 -0.500000001 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd371318 fma 1 1E34 -0.5000000001 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd371319 fma 1 1E34 -0.50000000001 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd371320 fma 1 1E34 -0.500000000001 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd371321 fma 1 1E34 -0.5000000000001 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd371322 fma 1 1E34 -0.50000000000001 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd371323 fma 1 1E34 -0.500000000000001 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd371324 fma 1 1E34 -0.5000000000000001 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd371325 fma 1 1E34 -0.5000000000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371326 fma 1 1E34 -0.500000000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371327 fma 1 1E34 -0.50000000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371328 fma 1 1E34 -0.5000000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371329 fma 1 1E34 -0.500000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371330 fma 1 1E34 -0.50000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371331 fma 1 1E34 -0.5000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371332 fma 1 1E34 -0.500000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371333 fma 1 1E34 -0.50000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371334 fma 1 1E34 -0.5000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371335 fma 1 1E34 -0.500000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371336 fma 1 1E34 -0.50000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371337 fma 1 1E34 -0.5000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371338 fma 1 1E34 -0.500 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371339 fma 1 1E34 -0.50 -> 1.000000000000000000000000000000000E+34 Inexact Rounded + +dqadd371340 fma 1 1E34 -5000000.000010001 -> 9999999999999999999999999995000000 Inexact Rounded +dqadd371341 fma 1 1E34 -5000000.000000001 -> 9999999999999999999999999995000000 Inexact Rounded + +dqadd371349 fma 1 9999999999999999999999999999999999 0.4 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd371350 fma 1 9999999999999999999999999999999999 0.49 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd371351 fma 1 9999999999999999999999999999999999 0.499 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd371352 fma 1 9999999999999999999999999999999999 0.4999 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd371353 fma 1 9999999999999999999999999999999999 0.49999 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd371354 fma 1 9999999999999999999999999999999999 0.499999 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd371355 fma 1 9999999999999999999999999999999999 0.4999999 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd371356 fma 1 9999999999999999999999999999999999 0.49999999 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd371357 fma 1 9999999999999999999999999999999999 0.499999999 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd371358 fma 1 9999999999999999999999999999999999 0.4999999999 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd371359 fma 1 9999999999999999999999999999999999 0.49999999999 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd371360 fma 1 9999999999999999999999999999999999 0.499999999999 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd371361 fma 1 9999999999999999999999999999999999 0.4999999999999 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd371362 fma 1 9999999999999999999999999999999999 0.49999999999999 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd371363 fma 1 9999999999999999999999999999999999 0.499999999999999 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd371364 fma 1 9999999999999999999999999999999999 0.4999999999999999 -> 9999999999999999999999999999999999 Inexact Rounded +dqadd371365 fma 1 9999999999999999999999999999999999 0.5000000000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371367 fma 1 9999999999999999999999999999999999 0.500000000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371368 fma 1 9999999999999999999999999999999999 0.50000000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371369 fma 1 9999999999999999999999999999999999 0.5000000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371370 fma 1 9999999999999999999999999999999999 0.500000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371371 fma 1 9999999999999999999999999999999999 0.50000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371372 fma 1 9999999999999999999999999999999999 0.5000000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371373 fma 1 9999999999999999999999999999999999 0.500000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371374 fma 1 9999999999999999999999999999999999 0.50000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371375 fma 1 9999999999999999999999999999999999 0.5000000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371376 fma 1 9999999999999999999999999999999999 0.500000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371377 fma 1 9999999999999999999999999999999999 0.50000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371378 fma 1 9999999999999999999999999999999999 0.5000 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371379 fma 1 9999999999999999999999999999999999 0.500 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371380 fma 1 9999999999999999999999999999999999 0.50 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371381 fma 1 9999999999999999999999999999999999 0.5 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371382 fma 1 9999999999999999999999999999999999 0.5000000000000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371383 fma 1 9999999999999999999999999999999999 0.500000000000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371384 fma 1 9999999999999999999999999999999999 0.50000000000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371385 fma 1 9999999999999999999999999999999999 0.5000000000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371386 fma 1 9999999999999999999999999999999999 0.500000000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371387 fma 1 9999999999999999999999999999999999 0.50000000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371388 fma 1 9999999999999999999999999999999999 0.5000000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371389 fma 1 9999999999999999999999999999999999 0.500000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371390 fma 1 9999999999999999999999999999999999 0.50000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371391 fma 1 9999999999999999999999999999999999 0.5000001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371392 fma 1 9999999999999999999999999999999999 0.500001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371393 fma 1 9999999999999999999999999999999999 0.50001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371394 fma 1 9999999999999999999999999999999999 0.5001 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371395 fma 1 9999999999999999999999999999999999 0.501 -> 1.000000000000000000000000000000000E+34 Inexact Rounded +dqadd371396 fma 1 9999999999999999999999999999999999 0.51 -> 1.000000000000000000000000000000000E+34 Inexact Rounded + +-- More GD edge cases, where difference between the unadjusted +-- exponents is larger than the maximum precision and one side is 0 +dqadd371420 fma 1 0 1.123456789987654321123456789012345 -> 1.123456789987654321123456789012345 +dqadd371421 fma 1 0 1.123456789987654321123456789012345E-1 -> 0.1123456789987654321123456789012345 +dqadd371422 fma 1 0 1.123456789987654321123456789012345E-2 -> 0.01123456789987654321123456789012345 +dqadd371423 fma 1 0 1.123456789987654321123456789012345E-3 -> 0.001123456789987654321123456789012345 +dqadd371424 fma 1 0 1.123456789987654321123456789012345E-4 -> 0.0001123456789987654321123456789012345 +dqadd371425 fma 1 0 1.123456789987654321123456789012345E-5 -> 0.00001123456789987654321123456789012345 +dqadd371426 fma 1 0 1.123456789987654321123456789012345E-6 -> 0.000001123456789987654321123456789012345 +dqadd371427 fma 1 0 1.123456789987654321123456789012345E-7 -> 1.123456789987654321123456789012345E-7 +dqadd371428 fma 1 0 1.123456789987654321123456789012345E-8 -> 1.123456789987654321123456789012345E-8 +dqadd371429 fma 1 0 1.123456789987654321123456789012345E-9 -> 1.123456789987654321123456789012345E-9 +dqadd371430 fma 1 0 1.123456789987654321123456789012345E-10 -> 1.123456789987654321123456789012345E-10 +dqadd371431 fma 1 0 1.123456789987654321123456789012345E-11 -> 1.123456789987654321123456789012345E-11 +dqadd371432 fma 1 0 1.123456789987654321123456789012345E-12 -> 1.123456789987654321123456789012345E-12 +dqadd371433 fma 1 0 1.123456789987654321123456789012345E-13 -> 1.123456789987654321123456789012345E-13 +dqadd371434 fma 1 0 1.123456789987654321123456789012345E-14 -> 1.123456789987654321123456789012345E-14 +dqadd371435 fma 1 0 1.123456789987654321123456789012345E-15 -> 1.123456789987654321123456789012345E-15 +dqadd371436 fma 1 0 1.123456789987654321123456789012345E-16 -> 1.123456789987654321123456789012345E-16 +dqadd371437 fma 1 0 1.123456789987654321123456789012345E-17 -> 1.123456789987654321123456789012345E-17 +dqadd371438 fma 1 0 1.123456789987654321123456789012345E-18 -> 1.123456789987654321123456789012345E-18 +dqadd371439 fma 1 0 1.123456789987654321123456789012345E-19 -> 1.123456789987654321123456789012345E-19 +dqadd371440 fma 1 0 1.123456789987654321123456789012345E-20 -> 1.123456789987654321123456789012345E-20 +dqadd371441 fma 1 0 1.123456789987654321123456789012345E-21 -> 1.123456789987654321123456789012345E-21 +dqadd371442 fma 1 0 1.123456789987654321123456789012345E-22 -> 1.123456789987654321123456789012345E-22 +dqadd371443 fma 1 0 1.123456789987654321123456789012345E-23 -> 1.123456789987654321123456789012345E-23 +dqadd371444 fma 1 0 1.123456789987654321123456789012345E-24 -> 1.123456789987654321123456789012345E-24 +dqadd371445 fma 1 0 1.123456789987654321123456789012345E-25 -> 1.123456789987654321123456789012345E-25 +dqadd371446 fma 1 0 1.123456789987654321123456789012345E-26 -> 1.123456789987654321123456789012345E-26 +dqadd371447 fma 1 0 1.123456789987654321123456789012345E-27 -> 1.123456789987654321123456789012345E-27 +dqadd371448 fma 1 0 1.123456789987654321123456789012345E-28 -> 1.123456789987654321123456789012345E-28 +dqadd371449 fma 1 0 1.123456789987654321123456789012345E-29 -> 1.123456789987654321123456789012345E-29 +dqadd371450 fma 1 0 1.123456789987654321123456789012345E-30 -> 1.123456789987654321123456789012345E-30 +dqadd371451 fma 1 0 1.123456789987654321123456789012345E-31 -> 1.123456789987654321123456789012345E-31 +dqadd371452 fma 1 0 1.123456789987654321123456789012345E-32 -> 1.123456789987654321123456789012345E-32 +dqadd371453 fma 1 0 1.123456789987654321123456789012345E-33 -> 1.123456789987654321123456789012345E-33 +dqadd371454 fma 1 0 1.123456789987654321123456789012345E-34 -> 1.123456789987654321123456789012345E-34 +dqadd371455 fma 1 0 1.123456789987654321123456789012345E-35 -> 1.123456789987654321123456789012345E-35 +dqadd371456 fma 1 0 1.123456789987654321123456789012345E-36 -> 1.123456789987654321123456789012345E-36 + +-- same, reversed 0 +dqadd371460 fma 1 1.123456789987654321123456789012345 0 -> 1.123456789987654321123456789012345 +dqadd371461 fma 1 1.123456789987654321123456789012345E-1 0 -> 0.1123456789987654321123456789012345 +dqadd371462 fma 1 1.123456789987654321123456789012345E-2 0 -> 0.01123456789987654321123456789012345 +dqadd371463 fma 1 1.123456789987654321123456789012345E-3 0 -> 0.001123456789987654321123456789012345 +dqadd371464 fma 1 1.123456789987654321123456789012345E-4 0 -> 0.0001123456789987654321123456789012345 +dqadd371465 fma 1 1.123456789987654321123456789012345E-5 0 -> 0.00001123456789987654321123456789012345 +dqadd371466 fma 1 1.123456789987654321123456789012345E-6 0 -> 0.000001123456789987654321123456789012345 +dqadd371467 fma 1 1.123456789987654321123456789012345E-7 0 -> 1.123456789987654321123456789012345E-7 +dqadd371468 fma 1 1.123456789987654321123456789012345E-8 0 -> 1.123456789987654321123456789012345E-8 +dqadd371469 fma 1 1.123456789987654321123456789012345E-9 0 -> 1.123456789987654321123456789012345E-9 +dqadd371470 fma 1 1.123456789987654321123456789012345E-10 0 -> 1.123456789987654321123456789012345E-10 +dqadd371471 fma 1 1.123456789987654321123456789012345E-11 0 -> 1.123456789987654321123456789012345E-11 +dqadd371472 fma 1 1.123456789987654321123456789012345E-12 0 -> 1.123456789987654321123456789012345E-12 +dqadd371473 fma 1 1.123456789987654321123456789012345E-13 0 -> 1.123456789987654321123456789012345E-13 +dqadd371474 fma 1 1.123456789987654321123456789012345E-14 0 -> 1.123456789987654321123456789012345E-14 +dqadd371475 fma 1 1.123456789987654321123456789012345E-15 0 -> 1.123456789987654321123456789012345E-15 +dqadd371476 fma 1 1.123456789987654321123456789012345E-16 0 -> 1.123456789987654321123456789012345E-16 +dqadd371477 fma 1 1.123456789987654321123456789012345E-17 0 -> 1.123456789987654321123456789012345E-17 +dqadd371478 fma 1 1.123456789987654321123456789012345E-18 0 -> 1.123456789987654321123456789012345E-18 +dqadd371479 fma 1 1.123456789987654321123456789012345E-19 0 -> 1.123456789987654321123456789012345E-19 +dqadd371480 fma 1 1.123456789987654321123456789012345E-20 0 -> 1.123456789987654321123456789012345E-20 +dqadd371481 fma 1 1.123456789987654321123456789012345E-21 0 -> 1.123456789987654321123456789012345E-21 +dqadd371482 fma 1 1.123456789987654321123456789012345E-22 0 -> 1.123456789987654321123456789012345E-22 +dqadd371483 fma 1 1.123456789987654321123456789012345E-23 0 -> 1.123456789987654321123456789012345E-23 +dqadd371484 fma 1 1.123456789987654321123456789012345E-24 0 -> 1.123456789987654321123456789012345E-24 +dqadd371485 fma 1 1.123456789987654321123456789012345E-25 0 -> 1.123456789987654321123456789012345E-25 +dqadd371486 fma 1 1.123456789987654321123456789012345E-26 0 -> 1.123456789987654321123456789012345E-26 +dqadd371487 fma 1 1.123456789987654321123456789012345E-27 0 -> 1.123456789987654321123456789012345E-27 +dqadd371488 fma 1 1.123456789987654321123456789012345E-28 0 -> 1.123456789987654321123456789012345E-28 +dqadd371489 fma 1 1.123456789987654321123456789012345E-29 0 -> 1.123456789987654321123456789012345E-29 +dqadd371490 fma 1 1.123456789987654321123456789012345E-30 0 -> 1.123456789987654321123456789012345E-30 +dqadd371491 fma 1 1.123456789987654321123456789012345E-31 0 -> 1.123456789987654321123456789012345E-31 +dqadd371492 fma 1 1.123456789987654321123456789012345E-32 0 -> 1.123456789987654321123456789012345E-32 +dqadd371493 fma 1 1.123456789987654321123456789012345E-33 0 -> 1.123456789987654321123456789012345E-33 +dqadd371494 fma 1 1.123456789987654321123456789012345E-34 0 -> 1.123456789987654321123456789012345E-34 +dqadd371495 fma 1 1.123456789987654321123456789012345E-35 0 -> 1.123456789987654321123456789012345E-35 +dqadd371496 fma 1 1.123456789987654321123456789012345E-36 0 -> 1.123456789987654321123456789012345E-36 + +-- same, Es on the 0 +dqadd371500 fma 1 1.123456789987654321123456789012345 0E-0 -> 1.123456789987654321123456789012345 +dqadd371501 fma 1 1.123456789987654321123456789012345 0E-1 -> 1.123456789987654321123456789012345 +dqadd371502 fma 1 1.123456789987654321123456789012345 0E-2 -> 1.123456789987654321123456789012345 +dqadd371503 fma 1 1.123456789987654321123456789012345 0E-3 -> 1.123456789987654321123456789012345 +dqadd371504 fma 1 1.123456789987654321123456789012345 0E-4 -> 1.123456789987654321123456789012345 +dqadd371505 fma 1 1.123456789987654321123456789012345 0E-5 -> 1.123456789987654321123456789012345 +dqadd371506 fma 1 1.123456789987654321123456789012345 0E-6 -> 1.123456789987654321123456789012345 +dqadd371507 fma 1 1.123456789987654321123456789012345 0E-7 -> 1.123456789987654321123456789012345 +dqadd371508 fma 1 1.123456789987654321123456789012345 0E-8 -> 1.123456789987654321123456789012345 +dqadd371509 fma 1 1.123456789987654321123456789012345 0E-9 -> 1.123456789987654321123456789012345 +dqadd371510 fma 1 1.123456789987654321123456789012345 0E-10 -> 1.123456789987654321123456789012345 +dqadd371511 fma 1 1.123456789987654321123456789012345 0E-11 -> 1.123456789987654321123456789012345 +dqadd371512 fma 1 1.123456789987654321123456789012345 0E-12 -> 1.123456789987654321123456789012345 +dqadd371513 fma 1 1.123456789987654321123456789012345 0E-13 -> 1.123456789987654321123456789012345 +dqadd371514 fma 1 1.123456789987654321123456789012345 0E-14 -> 1.123456789987654321123456789012345 +dqadd371515 fma 1 1.123456789987654321123456789012345 0E-15 -> 1.123456789987654321123456789012345 +dqadd371516 fma 1 1.123456789987654321123456789012345 0E-16 -> 1.123456789987654321123456789012345 +dqadd371517 fma 1 1.123456789987654321123456789012345 0E-17 -> 1.123456789987654321123456789012345 +dqadd371518 fma 1 1.123456789987654321123456789012345 0E-18 -> 1.123456789987654321123456789012345 +dqadd371519 fma 1 1.123456789987654321123456789012345 0E-19 -> 1.123456789987654321123456789012345 +dqadd371520 fma 1 1.123456789987654321123456789012345 0E-20 -> 1.123456789987654321123456789012345 +dqadd371521 fma 1 1.123456789987654321123456789012345 0E-21 -> 1.123456789987654321123456789012345 +dqadd371522 fma 1 1.123456789987654321123456789012345 0E-22 -> 1.123456789987654321123456789012345 +dqadd371523 fma 1 1.123456789987654321123456789012345 0E-23 -> 1.123456789987654321123456789012345 +dqadd371524 fma 1 1.123456789987654321123456789012345 0E-24 -> 1.123456789987654321123456789012345 +dqadd371525 fma 1 1.123456789987654321123456789012345 0E-25 -> 1.123456789987654321123456789012345 +dqadd371526 fma 1 1.123456789987654321123456789012345 0E-26 -> 1.123456789987654321123456789012345 +dqadd371527 fma 1 1.123456789987654321123456789012345 0E-27 -> 1.123456789987654321123456789012345 +dqadd371528 fma 1 1.123456789987654321123456789012345 0E-28 -> 1.123456789987654321123456789012345 +dqadd371529 fma 1 1.123456789987654321123456789012345 0E-29 -> 1.123456789987654321123456789012345 +dqadd371530 fma 1 1.123456789987654321123456789012345 0E-30 -> 1.123456789987654321123456789012345 +dqadd371531 fma 1 1.123456789987654321123456789012345 0E-31 -> 1.123456789987654321123456789012345 +dqadd371532 fma 1 1.123456789987654321123456789012345 0E-32 -> 1.123456789987654321123456789012345 +dqadd371533 fma 1 1.123456789987654321123456789012345 0E-33 -> 1.123456789987654321123456789012345 +-- next four flag Rounded because the 0 extends the result +dqadd371534 fma 1 1.123456789987654321123456789012345 0E-34 -> 1.123456789987654321123456789012345 Rounded +dqadd371535 fma 1 1.123456789987654321123456789012345 0E-35 -> 1.123456789987654321123456789012345 Rounded +dqadd371536 fma 1 1.123456789987654321123456789012345 0E-36 -> 1.123456789987654321123456789012345 Rounded +dqadd371537 fma 1 1.123456789987654321123456789012345 0E-37 -> 1.123456789987654321123456789012345 Rounded + +-- sum of two opposite-sign operands is exactly 0 and floor => -0 +rounding: half_up +-- exact zeros from zeros +dqadd371600 fma 1 0 0E-19 -> 0E-19 +dqadd371601 fma 1 -0 0E-19 -> 0E-19 +dqadd371602 fma 1 0 -0E-19 -> 0E-19 +dqadd371603 fma 1 -0 -0E-19 -> -0E-19 +-- exact zeros from non-zeros +dqadd371611 fma 1 -11 11 -> 0 +dqadd371612 fma 1 11 -11 -> 0 +-- overflow +dqadd371613 fma 9E6144 10 1 -> Infinity Overflow Inexact Rounded +dqadd371614 fma -9E6144 10 1 -> -Infinity Overflow Inexact Rounded + +rounding: half_down +-- exact zeros from zeros +dqadd371620 fma 1 0 0E-19 -> 0E-19 +dqadd371621 fma 1 -0 0E-19 -> 0E-19 +dqadd371622 fma 1 0 -0E-19 -> 0E-19 +dqadd371623 fma 1 -0 -0E-19 -> -0E-19 +-- exact zeros from non-zeros +dqadd371631 fma 1 -11 11 -> 0 +dqadd371632 fma 1 11 -11 -> 0 +-- overflow +dqadd371633 fma 9E6144 10 1 -> Infinity Overflow Inexact Rounded +dqadd371634 fma -9E6144 10 1 -> -Infinity Overflow Inexact Rounded + +rounding: half_even +-- exact zeros from zeros +dqadd371640 fma 1 0 0E-19 -> 0E-19 +dqadd371641 fma 1 -0 0E-19 -> 0E-19 +dqadd371642 fma 1 0 -0E-19 -> 0E-19 +dqadd371643 fma 1 -0 -0E-19 -> -0E-19 +-- exact zeros from non-zeros +dqadd371651 fma 1 -11 11 -> 0 +dqadd371652 fma 1 11 -11 -> 0 +-- overflow +dqadd371653 fma 9E6144 10 1 -> Infinity Overflow Inexact Rounded +dqadd371654 fma -9E6144 10 1 -> -Infinity Overflow Inexact Rounded + +rounding: up +-- exact zeros from zeros +dqadd371660 fma 1 0 0E-19 -> 0E-19 +dqadd371661 fma 1 -0 0E-19 -> 0E-19 +dqadd371662 fma 1 0 -0E-19 -> 0E-19 +dqadd371663 fma 1 -0 -0E-19 -> -0E-19 +-- exact zeros from non-zeros +dqadd371671 fma 1 -11 11 -> 0 +dqadd371672 fma 1 11 -11 -> 0 +-- overflow +dqadd371673 fma 9E6144 10 1 -> Infinity Overflow Inexact Rounded +dqadd371674 fma -9E6144 10 1 -> -Infinity Overflow Inexact Rounded + +rounding: down +-- exact zeros from zeros +dqadd371680 fma 1 0 0E-19 -> 0E-19 +dqadd371681 fma 1 -0 0E-19 -> 0E-19 +dqadd371682 fma 1 0 -0E-19 -> 0E-19 +dqadd371683 fma 1 -0 -0E-19 -> -0E-19 +-- exact zeros from non-zeros +dqadd371691 fma 1 -11 11 -> 0 +dqadd371692 fma 1 11 -11 -> 0 +-- overflow +dqadd371693 fma 9E6144 10 1 -> 9.999999999999999999999999999999999E+6144 Overflow Inexact Rounded +dqadd371694 fma -9E6144 10 1 -> -9.999999999999999999999999999999999E+6144 Overflow Inexact Rounded + +rounding: ceiling +-- exact zeros from zeros +dqadd371700 fma 1 0 0E-19 -> 0E-19 +dqadd371701 fma 1 -0 0E-19 -> 0E-19 +dqadd371702 fma 1 0 -0E-19 -> 0E-19 +dqadd371703 fma 1 -0 -0E-19 -> -0E-19 +-- exact zeros from non-zeros +dqadd371711 fma 1 -11 11 -> 0 +dqadd371712 fma 1 11 -11 -> 0 +-- overflow +dqadd371713 fma 9E6144 10 1 -> Infinity Overflow Inexact Rounded +dqadd371714 fma -9E6144 10 1 -> -9.999999999999999999999999999999999E+6144 Overflow Inexact Rounded + +-- and the extra-special ugly case; unusual minuses marked by -- * +rounding: floor +-- exact zeros from zeros +dqadd371720 fma 1 0 0E-19 -> 0E-19 +dqadd371721 fma 1 -0 0E-19 -> -0E-19 -- * +dqadd371722 fma 1 0 -0E-19 -> -0E-19 -- * +dqadd371723 fma 1 -0 -0E-19 -> -0E-19 +-- exact zeros from non-zeros +dqadd371731 fma 1 -11 11 -> -0 -- * +dqadd371732 fma 1 11 -11 -> -0 -- * +-- overflow +dqadd371733 fma 9E6144 10 1 -> 9.999999999999999999999999999999999E+6144 Overflow Inexact Rounded +dqadd371734 fma -9E6144 10 1 -> -Infinity Overflow Inexact Rounded + +rounding: 05up +-- exact zeros from zeros +dqadd371740 fma 1 0 0E-19 -> 0E-19 +dqadd371741 fma 1 -0 0E-19 -> 0E-19 +dqadd371742 fma 1 0 -0E-19 -> 0E-19 +dqadd371743 fma 1 -0 -0E-19 -> -0E-19 +-- exact zeros from non-zeros +dqadd371751 fma 1 -11 11 -> 0 +dqadd371752 fma 1 11 -11 -> 0 +-- overflow +dqadd371753 fma 9E6144 10 1 -> 9.999999999999999999999999999999999E+6144 Overflow Inexact Rounded +dqadd371754 fma -9E6144 10 1 -> -9.999999999999999999999999999999999E+6144 Overflow Inexact Rounded + +-- Examples from SQL proposal (Krishna Kulkarni) +dqadd371761 fma 1 130E-2 120E-2 -> 2.50 +dqadd371762 fma 1 130E-2 12E-1 -> 2.50 +dqadd371763 fma 1 130E-2 1E0 -> 2.30 +dqadd371764 fma 1 1E2 1E4 -> 1.01E+4 +dqadd371765 fma 1 130E-2 -120E-2 -> 0.10 +dqadd371766 fma 1 130E-2 -12E-1 -> 0.10 +dqadd371767 fma 1 130E-2 -1E0 -> 0.30 +dqadd371768 fma 1 1E2 -1E4 -> -9.9E+3 + +-- Gappy coefficients; check residue handling even with full coefficient gap +rounding: half_even + +dqadd375001 fma 1 1239876543211234567894567890123456 1 -> 1239876543211234567894567890123457 +dqadd375002 fma 1 1239876543211234567894567890123456 0.6 -> 1239876543211234567894567890123457 Inexact Rounded +dqadd375003 fma 1 1239876543211234567894567890123456 0.06 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd375004 fma 1 1239876543211234567894567890123456 6E-3 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd375005 fma 1 1239876543211234567894567890123456 6E-4 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd375006 fma 1 1239876543211234567894567890123456 6E-5 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd375007 fma 1 1239876543211234567894567890123456 6E-6 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd375008 fma 1 1239876543211234567894567890123456 6E-7 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd375009 fma 1 1239876543211234567894567890123456 6E-8 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd375010 fma 1 1239876543211234567894567890123456 6E-9 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd375011 fma 1 1239876543211234567894567890123456 6E-10 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd375012 fma 1 1239876543211234567894567890123456 6E-11 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd375013 fma 1 1239876543211234567894567890123456 6E-12 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd375014 fma 1 1239876543211234567894567890123456 6E-13 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd375015 fma 1 1239876543211234567894567890123456 6E-14 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd375016 fma 1 1239876543211234567894567890123456 6E-15 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd375017 fma 1 1239876543211234567894567890123456 6E-16 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd375018 fma 1 1239876543211234567894567890123456 6E-17 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd375019 fma 1 1239876543211234567894567890123456 6E-18 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd375020 fma 1 1239876543211234567894567890123456 6E-19 -> 1239876543211234567894567890123456 Inexact Rounded +dqadd375021 fma 1 1239876543211234567894567890123456 6E-20 -> 1239876543211234567894567890123456 Inexact Rounded + +-- widening second argument at gap +dqadd375030 fma 1 12398765432112345678945678 1 -> 12398765432112345678945679 +dqadd375031 fma 1 12398765432112345678945678 0.1 -> 12398765432112345678945678.1 +dqadd375032 fma 1 12398765432112345678945678 0.12 -> 12398765432112345678945678.12 +dqadd375033 fma 1 12398765432112345678945678 0.123 -> 12398765432112345678945678.123 +dqadd375034 fma 1 12398765432112345678945678 0.1234 -> 12398765432112345678945678.1234 +dqadd375035 fma 1 12398765432112345678945678 0.12345 -> 12398765432112345678945678.12345 +dqadd375036 fma 1 12398765432112345678945678 0.123456 -> 12398765432112345678945678.123456 +dqadd375037 fma 1 12398765432112345678945678 0.1234567 -> 12398765432112345678945678.1234567 +dqadd375038 fma 1 12398765432112345678945678 0.12345678 -> 12398765432112345678945678.12345678 +dqadd375039 fma 1 12398765432112345678945678 0.123456789 -> 12398765432112345678945678.12345679 Inexact Rounded +dqadd375040 fma 1 12398765432112345678945678 0.123456785 -> 12398765432112345678945678.12345678 Inexact Rounded +dqadd375041 fma 1 12398765432112345678945678 0.1234567850 -> 12398765432112345678945678.12345678 Inexact Rounded +dqadd375042 fma 1 12398765432112345678945678 0.1234567851 -> 12398765432112345678945678.12345679 Inexact Rounded +dqadd375043 fma 1 12398765432112345678945678 0.12345678501 -> 12398765432112345678945678.12345679 Inexact Rounded +dqadd375044 fma 1 12398765432112345678945678 0.123456785001 -> 12398765432112345678945678.12345679 Inexact Rounded +dqadd375045 fma 1 12398765432112345678945678 0.1234567850001 -> 12398765432112345678945678.12345679 Inexact Rounded +dqadd375046 fma 1 12398765432112345678945678 0.12345678500001 -> 12398765432112345678945678.12345679 Inexact Rounded +dqadd375047 fma 1 12398765432112345678945678 0.123456785000001 -> 12398765432112345678945678.12345679 Inexact Rounded +dqadd375048 fma 1 12398765432112345678945678 0.1234567850000001 -> 12398765432112345678945678.12345679 Inexact Rounded +dqadd375049 fma 1 12398765432112345678945678 0.1234567850000000 -> 12398765432112345678945678.12345678 Inexact Rounded +-- 90123456 +rounding: half_even +dqadd375050 fma 1 12398765432112345678945678 0.0234567750000000 -> 12398765432112345678945678.02345678 Inexact Rounded +dqadd375051 fma 1 12398765432112345678945678 0.0034567750000000 -> 12398765432112345678945678.00345678 Inexact Rounded +dqadd375052 fma 1 12398765432112345678945678 0.0004567750000000 -> 12398765432112345678945678.00045678 Inexact Rounded +dqadd375053 fma 1 12398765432112345678945678 0.0000567750000000 -> 12398765432112345678945678.00005678 Inexact Rounded +dqadd375054 fma 1 12398765432112345678945678 0.0000067750000000 -> 12398765432112345678945678.00000678 Inexact Rounded +dqadd375055 fma 1 12398765432112345678945678 0.0000007750000000 -> 12398765432112345678945678.00000078 Inexact Rounded +dqadd375056 fma 1 12398765432112345678945678 0.0000000750000000 -> 12398765432112345678945678.00000008 Inexact Rounded +dqadd375057 fma 1 12398765432112345678945678 0.0000000050000000 -> 12398765432112345678945678.00000000 Inexact Rounded +dqadd375060 fma 1 12398765432112345678945678 0.0234567750000001 -> 12398765432112345678945678.02345678 Inexact Rounded +dqadd375061 fma 1 12398765432112345678945678 0.0034567750000001 -> 12398765432112345678945678.00345678 Inexact Rounded +dqadd375062 fma 1 12398765432112345678945678 0.0004567750000001 -> 12398765432112345678945678.00045678 Inexact Rounded +dqadd375063 fma 1 12398765432112345678945678 0.0000567750000001 -> 12398765432112345678945678.00005678 Inexact Rounded +dqadd375064 fma 1 12398765432112345678945678 0.0000067750000001 -> 12398765432112345678945678.00000678 Inexact Rounded +dqadd375065 fma 1 12398765432112345678945678 0.0000007750000001 -> 12398765432112345678945678.00000078 Inexact Rounded +dqadd375066 fma 1 12398765432112345678945678 0.0000000750000001 -> 12398765432112345678945678.00000008 Inexact Rounded +dqadd375067 fma 1 12398765432112345678945678 0.0000000050000001 -> 12398765432112345678945678.00000001 Inexact Rounded +-- far-out residues (full coefficient gap is 16+15 digits) +rounding: up +dqadd375070 fma 1 12398765432112345678945678 1E-8 -> 12398765432112345678945678.00000001 +dqadd375071 fma 1 12398765432112345678945678 1E-9 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd375072 fma 1 12398765432112345678945678 1E-10 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd375073 fma 1 12398765432112345678945678 1E-11 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd375074 fma 1 12398765432112345678945678 1E-12 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd375075 fma 1 12398765432112345678945678 1E-13 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd375076 fma 1 12398765432112345678945678 1E-14 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd375077 fma 1 12398765432112345678945678 1E-15 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd375078 fma 1 12398765432112345678945678 1E-16 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd375079 fma 1 12398765432112345678945678 1E-17 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd375080 fma 1 12398765432112345678945678 1E-18 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd375081 fma 1 12398765432112345678945678 1E-19 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd375082 fma 1 12398765432112345678945678 1E-20 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd375083 fma 1 12398765432112345678945678 1E-25 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd375084 fma 1 12398765432112345678945678 1E-30 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd375085 fma 1 12398765432112345678945678 1E-31 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd375086 fma 1 12398765432112345678945678 1E-32 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd375087 fma 1 12398765432112345678945678 1E-33 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd375088 fma 1 12398765432112345678945678 1E-34 -> 12398765432112345678945678.00000001 Inexact Rounded +dqadd375089 fma 1 12398765432112345678945678 1E-35 -> 12398765432112345678945678.00000001 Inexact Rounded + +-- Destructive subtract (from remainder tests) + +-- +++ some of these will be off-by-one remainder vs remainderNear + +dqfma4000 fma -1234567890123456789012345678901233 1.000000000000000000000000000000001 1234567890123456789012345678901234 -> -0.234567890123456789012345678901233 +dqfma4001 fma -1234567890123456789012345678901222 1.00000000000000000000000000000001 1234567890123456789012345678901234 -> -0.34567890123456789012345678901222 +dqfma4002 fma -1234567890123456789012345678901111 1.0000000000000000000000000000001 1234567890123456789012345678901234 -> -0.4567890123456789012345678901111 +dqfma4003 fma -308641972530864197253086419725314 4.000000000000000000000000000000001 1234567890123456789012345678901255 -> -1.308641972530864197253086419725314 +dqfma4004 fma -308641972530864197253086419725308 4.000000000000000000000000000000001 1234567890123456789012345678901234 -> 1.691358027469135802746913580274692 +dqfma4005 fma -246913578024691357802469135780252 4.9999999999999999999999999999999 1234567890123456789012345678901234 -> -1.3086421975308642197530864219748 +dqfma4006 fma -246913578024691357802469135780247 4.99999999999999999999999999999999 1234567890123456789012345678901234 -> 1.46913578024691357802469135780247 +dqfma4007 fma -246913578024691357802469135780247 4.999999999999999999999999999999999 1234567890123456789012345678901234 -> -0.753086421975308642197530864219753 +dqfma4008 fma -246913578024691357802469135780247 5.000000000000000000000000000000001 1234567890123456789012345678901234 -> -1.246913578024691357802469135780247 +dqfma4009 fma -246913578024691357802469135780246 5.00000000000000000000000000000001 1234567890123456789012345678901234 -> 1.53086421975308642197530864219754 +dqfma4010 fma -246913578024691357802469135780242 5.0000000000000000000000000000001 1234567890123456789012345678901234 -> -0.6913578024691357802469135780242 +dqfma4011 fma -1234567890123456789012345678901232 1.000000000000000000000000000000001 1234567890123456789012345678901234 -> 0.765432109876543210987654321098768 +dqfma4012 fma -1234567890123456789012345678901221 1.00000000000000000000000000000001 1234567890123456789012345678901234 -> 0.65432109876543210987654321098779 +dqfma4013 fma -1234567890123456789012345678901110 1.0000000000000000000000000000001 1234567890123456789012345678901234 -> 0.5432109876543210987654321098890 +dqfma4014 fma -308641972530864197253086419725313 4.000000000000000000000000000000001 1234567890123456789012345678901255 -> 2.691358027469135802746913580274687 +dqfma4015 fma -308641972530864197253086419725308 4.000000000000000000000000000000001 1234567890123456789012345678901234 -> 1.691358027469135802746913580274692 +dqfma4016 fma -246913578024691357802469135780251 4.9999999999999999999999999999999 1234567890123456789012345678901234 -> 3.6913578024691357802469135780251 +dqfma4017 fma -246913578024691357802469135780247 4.99999999999999999999999999999999 1234567890123456789012345678901234 -> 1.46913578024691357802469135780247 +dqfma4018 fma -246913578024691357802469135780246 4.999999999999999999999999999999999 1234567890123456789012345678901234 -> 4.246913578024691357802469135780246 +dqfma4019 fma -246913578024691357802469135780241 5.0000000000000000000000000000001 1234567890123456789012345678901234 -> 4.3086421975308642197530864219759 + +-- Null tests +dqadd39990 fma 1 10 # -> NaN Invalid_operation +dqadd39991 fma 1 # 10 -> NaN Invalid_operation + + diff --git a/Lib/test/decimaltestdata/dqInvert.decTest b/Lib/test/decimaltestdata/dqInvert.decTest index 3a1e29e21d..522cfc80f0 100644 --- a/Lib/test/decimaltestdata/dqInvert.decTest +++ b/Lib/test/decimaltestdata/dqInvert.decTest @@ -1,245 +1,245 @@ -------------------------------------------------------------------------
--- dqInvert.decTest -- digitwise logical INVERT for decQuads --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
--- Sanity check (truth table)
-dqinv001 invert 0 -> 1111111111111111111111111111111111
-dqinv002 invert 1 -> 1111111111111111111111111111111110
-dqinv003 invert 10 -> 1111111111111111111111111111111101
-dqinv004 invert 111111111 -> 1111111111111111111111111000000000
-dqinv005 invert 000000000 -> 1111111111111111111111111111111111
--- and at msd and msd-1
-dqinv007 invert 0000000000000000000000000000000000 -> 1111111111111111111111111111111111
-dqinv008 invert 1000000000000000000000000000000000 -> 111111111111111111111111111111111
-dqinv009 invert 0000000000000000000000000000000000 -> 1111111111111111111111111111111111
-dqinv010 invert 0100000000000000000000000000000000 -> 1011111111111111111111111111111111
-dqinv011 invert 0111111111111111111111111111111111 -> 1000000000000000000000000000000000
-dqinv012 invert 1111111111111111111111111111111111 -> 0
-dqinv013 invert 0011111111111111111111111111111111 -> 1100000000000000000000000000000000
-dqinv014 invert 0111111111111111111111111111111111 -> 1000000000000000000000000000000000
-
--- Various lengths
-dqinv600 invert 0111111111111111111011111111111111 -> 1000000000000000000100000000000000
-dqinv601 invert 0011111111111111110101111111111111 -> 1100000000000000001010000000000000
-dqinv602 invert 0101111111111111101110111111111111 -> 1010000000000000010001000000000000
-dqinv603 invert 0110111111111111011111011111111111 -> 1001000000000000100000100000000000
-dqinv604 invert 0111011111111110111111101111111111 -> 1000100000000001000000010000000000
-dqinv605 invert 0111101111111101111111110111111111 -> 1000010000000010000000001000000000
-dqinv606 invert 0111110111111011111111111011111111 -> 1000001000000100000000000100000000
-dqinv607 invert 0111111011110111111111111101111111 -> 1000000100001000000000000010000000
-dqinv608 invert 0111111101101111111111111110111111 -> 1000000010010000000000000001000000
-dqinv609 invert 0111111110011111111111111111011111 -> 1000000001100000000000000000100000
-dqinv610 invert 0111111110011111111111111111101111 -> 1000000001100000000000000000010000
-dqinv611 invert 0111111101101111111111111111110111 -> 1000000010010000000000000000001000
-dqinv612 invert 0111111011110111111111111111111011 -> 1000000100001000000000000000000100
-dqinv613 invert 0111110111111011111111111111111101 -> 1000001000000100000000000000000010
-dqinv614 invert 0111101111111101111111111111111110 -> 1000010000000010000000000000000001
-dqinv615 invert 0111011111111110111111111111111111 -> 1000100000000001000000000000000000
-dqinv616 invert 0110111111111111011111111111111110 -> 1001000000000000100000000000000001
-dqinv617 invert 0101111111111111101111111111111101 -> 1010000000000000010000000000000010
-dqinv618 invert 0011111111111111110111111111111011 -> 1100000000000000001000000000000100
-dqinv619 invert 0101111111111111111011111111110111 -> 1010000000000000000100000000001000
-dqinv620 invert 0110111111111111111101111111101111 -> 1001000000000000000010000000010000
-dqinv621 invert 0111011111111111111110111111011111 -> 1000100000000000000001000000100000
-dqinv622 invert 0111101111111111111111011110111111 -> 1000010000000000000000100001000000
-dqinv623 invert 0111110111111111111111101101111111 -> 1000001000000000000000010010000000
-dqinv624 invert 0111111011111111111111110011111111 -> 1000000100000000000000001100000000
-dqinv625 invert 0111111101111111111111110011111111 -> 1000000010000000000000001100000000
-dqinv626 invert 0111111110111111111111101101111111 -> 1000000001000000000000010010000000
-dqinv627 invert 0111111111011111111111011110111111 -> 1000000000100000000000100001000000
-dqinv628 invert 0111111111101111111110111111011111 -> 1000000000010000000001000000100000
-dqinv629 invert 0111111111110111111101111111101111 -> 1000000000001000000010000000010000
-dqinv630 invert 0111111111111011111011111111110111 -> 1000000000000100000100000000001000
-dqinv631 invert 0111111111111101110111111111111011 -> 1000000000000010001000000000000100
-dqinv632 invert 0111111111111110101111111111111101 -> 1000000000000001010000000000000010
-dqinv633 invert 0111111111111111011111111111111110 -> 1000000000000000100000000000000001
-
-dqinv021 invert 111111111 -> 1111111111111111111111111000000000
-dqinv022 invert 111111111111 -> 1111111111111111111111000000000000
-dqinv023 invert 11111111 -> 1111111111111111111111111100000000
-dqinv025 invert 1111111 -> 1111111111111111111111111110000000
-dqinv026 invert 111111 -> 1111111111111111111111111111000000
-dqinv027 invert 11111 -> 1111111111111111111111111111100000
-dqinv028 invert 1111 -> 1111111111111111111111111111110000
-dqinv029 invert 111 -> 1111111111111111111111111111111000
-dqinv031 invert 11 -> 1111111111111111111111111111111100
-dqinv032 invert 1 -> 1111111111111111111111111111111110
-dqinv033 invert 111111111111 -> 1111111111111111111111000000000000
-dqinv034 invert 11111111111 -> 1111111111111111111111100000000000
-dqinv035 invert 1111111111 -> 1111111111111111111111110000000000
-dqinv036 invert 111111111 -> 1111111111111111111111111000000000
-
-dqinv040 invert 011111111 -> 1111111111111111111111111100000000
-dqinv041 invert 101111111 -> 1111111111111111111111111010000000
-dqinv042 invert 110111111 -> 1111111111111111111111111001000000
-dqinv043 invert 111011111 -> 1111111111111111111111111000100000
-dqinv044 invert 111101111 -> 1111111111111111111111111000010000
-dqinv045 invert 111110111 -> 1111111111111111111111111000001000
-dqinv046 invert 111111011 -> 1111111111111111111111111000000100
-dqinv047 invert 111111101 -> 1111111111111111111111111000000010
-dqinv048 invert 111111110 -> 1111111111111111111111111000000001
-dqinv049 invert 011111011 -> 1111111111111111111111111100000100
-dqinv050 invert 101111101 -> 1111111111111111111111111010000010
-dqinv051 invert 110111110 -> 1111111111111111111111111001000001
-dqinv052 invert 111011101 -> 1111111111111111111111111000100010
-dqinv053 invert 111101011 -> 1111111111111111111111111000010100
-dqinv054 invert 111110111 -> 1111111111111111111111111000001000
-dqinv055 invert 111101011 -> 1111111111111111111111111000010100
-dqinv056 invert 111011101 -> 1111111111111111111111111000100010
-dqinv057 invert 110111110 -> 1111111111111111111111111001000001
-dqinv058 invert 101111101 -> 1111111111111111111111111010000010
-dqinv059 invert 011111011 -> 1111111111111111111111111100000100
-
-dqinv080 invert 1000000011111111 -> 1111111111111111110111111100000000
-dqinv081 invert 0100000101111111 -> 1111111111111111111011111010000000
-dqinv082 invert 0010000110111111 -> 1111111111111111111101111001000000
-dqinv083 invert 0001000111011111 -> 1111111111111111111110111000100000
-dqinv084 invert 0000100111101111 -> 1111111111111111111111011000010000
-dqinv085 invert 0000010111110111 -> 1111111111111111111111101000001000
-dqinv086 invert 0000001111111011 -> 1111111111111111111111110000000100
-dqinv087 invert 0000010111111101 -> 1111111111111111111111101000000010
-dqinv088 invert 0000100111111110 -> 1111111111111111111111011000000001
-dqinv089 invert 0001000011111011 -> 1111111111111111111110111100000100
-dqinv090 invert 0010000101111101 -> 1111111111111111111101111010000010
-dqinv091 invert 0100000110111110 -> 1111111111111111111011111001000001
-dqinv092 invert 1000000111011101 -> 1111111111111111110111111000100010
-dqinv093 invert 0100000111101011 -> 1111111111111111111011111000010100
-dqinv094 invert 0010000111110111 -> 1111111111111111111101111000001000
-dqinv095 invert 0001000111101011 -> 1111111111111111111110111000010100
-dqinv096 invert 0000100111011101 -> 1111111111111111111111011000100010
-dqinv097 invert 0000010110111110 -> 1111111111111111111111101001000001
-dqinv098 invert 0000001101111101 -> 1111111111111111111111110010000010
-dqinv099 invert 0000010011111011 -> 1111111111111111111111101100000100
-
--- and more thorough MSD/LSD tests [8 and 9 mght be encoded differently...]
-dqinv151 invert 1111111111111111111111111111111110 -> 1
-dqinv152 invert 1111111111111111110000000000000000 -> 1111111111111111
-dqinv153 invert 1000000000000000001111111111111111 -> 111111111111111110000000000000000
-dqinv154 invert 1111111111111111111000000000000000 -> 111111111111111
-dqinv155 invert 0100000000000000000111111111111111 -> 1011111111111111111000000000000000
-dqinv156 invert 1011111111111111110100000000000000 -> 100000000000000001011111111111111
-dqinv157 invert 1101111111111111110111111111111111 -> 10000000000000001000000000000000
-dqinv158 invert 1110111111111111110011111111111111 -> 1000000000000001100000000000000
-
--- non-0/1 should not be accepted, nor should signs
-dqinv220 invert 111111112 -> NaN Invalid_operation
-dqinv221 invert 333333333 -> NaN Invalid_operation
-dqinv222 invert 555555555 -> NaN Invalid_operation
-dqinv223 invert 777777777 -> NaN Invalid_operation
-dqinv224 invert 999999999 -> NaN Invalid_operation
-dqinv225 invert 222222222 -> NaN Invalid_operation
-dqinv226 invert 444444444 -> NaN Invalid_operation
-dqinv227 invert 666666666 -> NaN Invalid_operation
-dqinv228 invert 888888888 -> NaN Invalid_operation
-dqinv229 invert 999999999 -> NaN Invalid_operation
-dqinv230 invert 999999999 -> NaN Invalid_operation
-dqinv231 invert 999999999 -> NaN Invalid_operation
-dqinv232 invert 999999999 -> NaN Invalid_operation
--- a few randoms
-dqinv240 invert 567468689 -> NaN Invalid_operation
-dqinv241 invert 567367689 -> NaN Invalid_operation
-dqinv242 invert -631917772 -> NaN Invalid_operation
-dqinv243 invert -756253257 -> NaN Invalid_operation
-dqinv244 invert 835590149 -> NaN Invalid_operation
--- test MSD
-dqinv250 invert 2000000111000111000111000000000000 -> NaN Invalid_operation
-dqinv251 invert 3000000111000111000111000000000000 -> NaN Invalid_operation
-dqinv252 invert 4000000111000111000111000000000000 -> NaN Invalid_operation
-dqinv253 invert 5000000111000111000111000000000000 -> NaN Invalid_operation
-dqinv254 invert 6000000111000111000111000000000000 -> NaN Invalid_operation
-dqinv255 invert 7000000111000111000111000000000000 -> NaN Invalid_operation
-dqinv256 invert 8000000111000111000111000000000000 -> NaN Invalid_operation
-dqinv257 invert 9000000111000111000111000000000000 -> NaN Invalid_operation
--- test MSD-1
-dqinv270 invert 0200000111000111000111001000000000 -> NaN Invalid_operation
-dqinv271 invert 0300000111000111000111000100000000 -> NaN Invalid_operation
-dqinv272 invert 0400000111000111000111000010000000 -> NaN Invalid_operation
-dqinv273 invert 0500000111000111000111000001000000 -> NaN Invalid_operation
-dqinv274 invert 1600000111000111000111000000100000 -> NaN Invalid_operation
-dqinv275 invert 1700000111000111000111000000010000 -> NaN Invalid_operation
-dqinv276 invert 1800000111000111000111000000001000 -> NaN Invalid_operation
-dqinv277 invert 1900000111000111000111000000000100 -> NaN Invalid_operation
--- test LSD
-dqinv280 invert 0010000111000111000111000000000002 -> NaN Invalid_operation
-dqinv281 invert 0001000111000111000111000000000003 -> NaN Invalid_operation
-dqinv282 invert 0000000111000111000111100000000004 -> NaN Invalid_operation
-dqinv283 invert 0000000111000111000111010000000005 -> NaN Invalid_operation
-dqinv284 invert 1000000111000111000111001000000006 -> NaN Invalid_operation
-dqinv285 invert 1000000111000111000111000100000007 -> NaN Invalid_operation
-dqinv286 invert 1000000111000111000111000010000008 -> NaN Invalid_operation
-dqinv287 invert 1000000111000111000111000001000009 -> NaN Invalid_operation
--- test Middie
-dqinv288 invert 0010000111000111000111000020000000 -> NaN Invalid_operation
-dqinv289 invert 0001000111000111000111000030000001 -> NaN Invalid_operation
-dqinv290 invert 0000000111000111000111100040000010 -> NaN Invalid_operation
-dqinv291 invert 0000000111000111000111010050000100 -> NaN Invalid_operation
-dqinv292 invert 1000000111000111000111001060001000 -> NaN Invalid_operation
-dqinv293 invert 1000000111000111000111000170010000 -> NaN Invalid_operation
-dqinv294 invert 1000000111000111000111000080100000 -> NaN Invalid_operation
-dqinv295 invert 1000000111000111000111000091000000 -> NaN Invalid_operation
--- signs
-dqinv296 invert -1000000111000111000111000001000000 -> NaN Invalid_operation
-dqinv299 invert 1000000111000111000111000001000000 -> 111111000111000111000111110111111
-
--- Nmax, Nmin, Ntiny-like
-dqinv341 invert 9.99999999E+2998 -> NaN Invalid_operation
-dqinv342 invert 1E-2998 -> NaN Invalid_operation
-dqinv343 invert 1.00000000E-2998 -> NaN Invalid_operation
-dqinv344 invert 1E-2078 -> NaN Invalid_operation
-dqinv345 invert -1E-2078 -> NaN Invalid_operation
-dqinv346 invert -1.00000000E-2998 -> NaN Invalid_operation
-dqinv347 invert -1E-2998 -> NaN Invalid_operation
-dqinv348 invert -9.99999999E+2998 -> NaN Invalid_operation
-
--- A few other non-integers
-dqinv361 invert 1.0 -> NaN Invalid_operation
-dqinv362 invert 1E+1 -> NaN Invalid_operation
-dqinv363 invert 0.0 -> NaN Invalid_operation
-dqinv364 invert 0E+1 -> NaN Invalid_operation
-dqinv365 invert 9.9 -> NaN Invalid_operation
-dqinv366 invert 9E+1 -> NaN Invalid_operation
-
--- All Specials are in error
-dqinv788 invert -Inf -> NaN Invalid_operation
-dqinv794 invert Inf -> NaN Invalid_operation
-dqinv821 invert NaN -> NaN Invalid_operation
-dqinv841 invert sNaN -> NaN Invalid_operation
--- propagating NaNs
-dqinv861 invert NaN1 -> NaN Invalid_operation
-dqinv862 invert +NaN2 -> NaN Invalid_operation
-dqinv863 invert NaN3 -> NaN Invalid_operation
-dqinv864 invert NaN4 -> NaN Invalid_operation
-dqinv865 invert NaN5 -> NaN Invalid_operation
-dqinv871 invert sNaN11 -> NaN Invalid_operation
-dqinv872 invert sNaN12 -> NaN Invalid_operation
-dqinv873 invert sNaN13 -> NaN Invalid_operation
-dqinv874 invert sNaN14 -> NaN Invalid_operation
-dqinv875 invert sNaN15 -> NaN Invalid_operation
-dqinv876 invert NaN16 -> NaN Invalid_operation
-dqinv881 invert +NaN25 -> NaN Invalid_operation
-dqinv882 invert -NaN26 -> NaN Invalid_operation
-dqinv883 invert -sNaN27 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- dqInvert.decTest -- digitwise logical INVERT for decQuads -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +-- Sanity check (truth table) +dqinv001 invert 0 -> 1111111111111111111111111111111111 +dqinv002 invert 1 -> 1111111111111111111111111111111110 +dqinv003 invert 10 -> 1111111111111111111111111111111101 +dqinv004 invert 111111111 -> 1111111111111111111111111000000000 +dqinv005 invert 000000000 -> 1111111111111111111111111111111111 +-- and at msd and msd-1 +dqinv007 invert 0000000000000000000000000000000000 -> 1111111111111111111111111111111111 +dqinv008 invert 1000000000000000000000000000000000 -> 111111111111111111111111111111111 +dqinv009 invert 0000000000000000000000000000000000 -> 1111111111111111111111111111111111 +dqinv010 invert 0100000000000000000000000000000000 -> 1011111111111111111111111111111111 +dqinv011 invert 0111111111111111111111111111111111 -> 1000000000000000000000000000000000 +dqinv012 invert 1111111111111111111111111111111111 -> 0 +dqinv013 invert 0011111111111111111111111111111111 -> 1100000000000000000000000000000000 +dqinv014 invert 0111111111111111111111111111111111 -> 1000000000000000000000000000000000 + +-- Various lengths +dqinv600 invert 0111111111111111111011111111111111 -> 1000000000000000000100000000000000 +dqinv601 invert 0011111111111111110101111111111111 -> 1100000000000000001010000000000000 +dqinv602 invert 0101111111111111101110111111111111 -> 1010000000000000010001000000000000 +dqinv603 invert 0110111111111111011111011111111111 -> 1001000000000000100000100000000000 +dqinv604 invert 0111011111111110111111101111111111 -> 1000100000000001000000010000000000 +dqinv605 invert 0111101111111101111111110111111111 -> 1000010000000010000000001000000000 +dqinv606 invert 0111110111111011111111111011111111 -> 1000001000000100000000000100000000 +dqinv607 invert 0111111011110111111111111101111111 -> 1000000100001000000000000010000000 +dqinv608 invert 0111111101101111111111111110111111 -> 1000000010010000000000000001000000 +dqinv609 invert 0111111110011111111111111111011111 -> 1000000001100000000000000000100000 +dqinv610 invert 0111111110011111111111111111101111 -> 1000000001100000000000000000010000 +dqinv611 invert 0111111101101111111111111111110111 -> 1000000010010000000000000000001000 +dqinv612 invert 0111111011110111111111111111111011 -> 1000000100001000000000000000000100 +dqinv613 invert 0111110111111011111111111111111101 -> 1000001000000100000000000000000010 +dqinv614 invert 0111101111111101111111111111111110 -> 1000010000000010000000000000000001 +dqinv615 invert 0111011111111110111111111111111111 -> 1000100000000001000000000000000000 +dqinv616 invert 0110111111111111011111111111111110 -> 1001000000000000100000000000000001 +dqinv617 invert 0101111111111111101111111111111101 -> 1010000000000000010000000000000010 +dqinv618 invert 0011111111111111110111111111111011 -> 1100000000000000001000000000000100 +dqinv619 invert 0101111111111111111011111111110111 -> 1010000000000000000100000000001000 +dqinv620 invert 0110111111111111111101111111101111 -> 1001000000000000000010000000010000 +dqinv621 invert 0111011111111111111110111111011111 -> 1000100000000000000001000000100000 +dqinv622 invert 0111101111111111111111011110111111 -> 1000010000000000000000100001000000 +dqinv623 invert 0111110111111111111111101101111111 -> 1000001000000000000000010010000000 +dqinv624 invert 0111111011111111111111110011111111 -> 1000000100000000000000001100000000 +dqinv625 invert 0111111101111111111111110011111111 -> 1000000010000000000000001100000000 +dqinv626 invert 0111111110111111111111101101111111 -> 1000000001000000000000010010000000 +dqinv627 invert 0111111111011111111111011110111111 -> 1000000000100000000000100001000000 +dqinv628 invert 0111111111101111111110111111011111 -> 1000000000010000000001000000100000 +dqinv629 invert 0111111111110111111101111111101111 -> 1000000000001000000010000000010000 +dqinv630 invert 0111111111111011111011111111110111 -> 1000000000000100000100000000001000 +dqinv631 invert 0111111111111101110111111111111011 -> 1000000000000010001000000000000100 +dqinv632 invert 0111111111111110101111111111111101 -> 1000000000000001010000000000000010 +dqinv633 invert 0111111111111111011111111111111110 -> 1000000000000000100000000000000001 + +dqinv021 invert 111111111 -> 1111111111111111111111111000000000 +dqinv022 invert 111111111111 -> 1111111111111111111111000000000000 +dqinv023 invert 11111111 -> 1111111111111111111111111100000000 +dqinv025 invert 1111111 -> 1111111111111111111111111110000000 +dqinv026 invert 111111 -> 1111111111111111111111111111000000 +dqinv027 invert 11111 -> 1111111111111111111111111111100000 +dqinv028 invert 1111 -> 1111111111111111111111111111110000 +dqinv029 invert 111 -> 1111111111111111111111111111111000 +dqinv031 invert 11 -> 1111111111111111111111111111111100 +dqinv032 invert 1 -> 1111111111111111111111111111111110 +dqinv033 invert 111111111111 -> 1111111111111111111111000000000000 +dqinv034 invert 11111111111 -> 1111111111111111111111100000000000 +dqinv035 invert 1111111111 -> 1111111111111111111111110000000000 +dqinv036 invert 111111111 -> 1111111111111111111111111000000000 + +dqinv040 invert 011111111 -> 1111111111111111111111111100000000 +dqinv041 invert 101111111 -> 1111111111111111111111111010000000 +dqinv042 invert 110111111 -> 1111111111111111111111111001000000 +dqinv043 invert 111011111 -> 1111111111111111111111111000100000 +dqinv044 invert 111101111 -> 1111111111111111111111111000010000 +dqinv045 invert 111110111 -> 1111111111111111111111111000001000 +dqinv046 invert 111111011 -> 1111111111111111111111111000000100 +dqinv047 invert 111111101 -> 1111111111111111111111111000000010 +dqinv048 invert 111111110 -> 1111111111111111111111111000000001 +dqinv049 invert 011111011 -> 1111111111111111111111111100000100 +dqinv050 invert 101111101 -> 1111111111111111111111111010000010 +dqinv051 invert 110111110 -> 1111111111111111111111111001000001 +dqinv052 invert 111011101 -> 1111111111111111111111111000100010 +dqinv053 invert 111101011 -> 1111111111111111111111111000010100 +dqinv054 invert 111110111 -> 1111111111111111111111111000001000 +dqinv055 invert 111101011 -> 1111111111111111111111111000010100 +dqinv056 invert 111011101 -> 1111111111111111111111111000100010 +dqinv057 invert 110111110 -> 1111111111111111111111111001000001 +dqinv058 invert 101111101 -> 1111111111111111111111111010000010 +dqinv059 invert 011111011 -> 1111111111111111111111111100000100 + +dqinv080 invert 1000000011111111 -> 1111111111111111110111111100000000 +dqinv081 invert 0100000101111111 -> 1111111111111111111011111010000000 +dqinv082 invert 0010000110111111 -> 1111111111111111111101111001000000 +dqinv083 invert 0001000111011111 -> 1111111111111111111110111000100000 +dqinv084 invert 0000100111101111 -> 1111111111111111111111011000010000 +dqinv085 invert 0000010111110111 -> 1111111111111111111111101000001000 +dqinv086 invert 0000001111111011 -> 1111111111111111111111110000000100 +dqinv087 invert 0000010111111101 -> 1111111111111111111111101000000010 +dqinv088 invert 0000100111111110 -> 1111111111111111111111011000000001 +dqinv089 invert 0001000011111011 -> 1111111111111111111110111100000100 +dqinv090 invert 0010000101111101 -> 1111111111111111111101111010000010 +dqinv091 invert 0100000110111110 -> 1111111111111111111011111001000001 +dqinv092 invert 1000000111011101 -> 1111111111111111110111111000100010 +dqinv093 invert 0100000111101011 -> 1111111111111111111011111000010100 +dqinv094 invert 0010000111110111 -> 1111111111111111111101111000001000 +dqinv095 invert 0001000111101011 -> 1111111111111111111110111000010100 +dqinv096 invert 0000100111011101 -> 1111111111111111111111011000100010 +dqinv097 invert 0000010110111110 -> 1111111111111111111111101001000001 +dqinv098 invert 0000001101111101 -> 1111111111111111111111110010000010 +dqinv099 invert 0000010011111011 -> 1111111111111111111111101100000100 + +-- and more thorough MSD/LSD tests [8 and 9 mght be encoded differently...] +dqinv151 invert 1111111111111111111111111111111110 -> 1 +dqinv152 invert 1111111111111111110000000000000000 -> 1111111111111111 +dqinv153 invert 1000000000000000001111111111111111 -> 111111111111111110000000000000000 +dqinv154 invert 1111111111111111111000000000000000 -> 111111111111111 +dqinv155 invert 0100000000000000000111111111111111 -> 1011111111111111111000000000000000 +dqinv156 invert 1011111111111111110100000000000000 -> 100000000000000001011111111111111 +dqinv157 invert 1101111111111111110111111111111111 -> 10000000000000001000000000000000 +dqinv158 invert 1110111111111111110011111111111111 -> 1000000000000001100000000000000 + +-- non-0/1 should not be accepted, nor should signs +dqinv220 invert 111111112 -> NaN Invalid_operation +dqinv221 invert 333333333 -> NaN Invalid_operation +dqinv222 invert 555555555 -> NaN Invalid_operation +dqinv223 invert 777777777 -> NaN Invalid_operation +dqinv224 invert 999999999 -> NaN Invalid_operation +dqinv225 invert 222222222 -> NaN Invalid_operation +dqinv226 invert 444444444 -> NaN Invalid_operation +dqinv227 invert 666666666 -> NaN Invalid_operation +dqinv228 invert 888888888 -> NaN Invalid_operation +dqinv229 invert 999999999 -> NaN Invalid_operation +dqinv230 invert 999999999 -> NaN Invalid_operation +dqinv231 invert 999999999 -> NaN Invalid_operation +dqinv232 invert 999999999 -> NaN Invalid_operation +-- a few randoms +dqinv240 invert 567468689 -> NaN Invalid_operation +dqinv241 invert 567367689 -> NaN Invalid_operation +dqinv242 invert -631917772 -> NaN Invalid_operation +dqinv243 invert -756253257 -> NaN Invalid_operation +dqinv244 invert 835590149 -> NaN Invalid_operation +-- test MSD +dqinv250 invert 2000000111000111000111000000000000 -> NaN Invalid_operation +dqinv251 invert 3000000111000111000111000000000000 -> NaN Invalid_operation +dqinv252 invert 4000000111000111000111000000000000 -> NaN Invalid_operation +dqinv253 invert 5000000111000111000111000000000000 -> NaN Invalid_operation +dqinv254 invert 6000000111000111000111000000000000 -> NaN Invalid_operation +dqinv255 invert 7000000111000111000111000000000000 -> NaN Invalid_operation +dqinv256 invert 8000000111000111000111000000000000 -> NaN Invalid_operation +dqinv257 invert 9000000111000111000111000000000000 -> NaN Invalid_operation +-- test MSD-1 +dqinv270 invert 0200000111000111000111001000000000 -> NaN Invalid_operation +dqinv271 invert 0300000111000111000111000100000000 -> NaN Invalid_operation +dqinv272 invert 0400000111000111000111000010000000 -> NaN Invalid_operation +dqinv273 invert 0500000111000111000111000001000000 -> NaN Invalid_operation +dqinv274 invert 1600000111000111000111000000100000 -> NaN Invalid_operation +dqinv275 invert 1700000111000111000111000000010000 -> NaN Invalid_operation +dqinv276 invert 1800000111000111000111000000001000 -> NaN Invalid_operation +dqinv277 invert 1900000111000111000111000000000100 -> NaN Invalid_operation +-- test LSD +dqinv280 invert 0010000111000111000111000000000002 -> NaN Invalid_operation +dqinv281 invert 0001000111000111000111000000000003 -> NaN Invalid_operation +dqinv282 invert 0000000111000111000111100000000004 -> NaN Invalid_operation +dqinv283 invert 0000000111000111000111010000000005 -> NaN Invalid_operation +dqinv284 invert 1000000111000111000111001000000006 -> NaN Invalid_operation +dqinv285 invert 1000000111000111000111000100000007 -> NaN Invalid_operation +dqinv286 invert 1000000111000111000111000010000008 -> NaN Invalid_operation +dqinv287 invert 1000000111000111000111000001000009 -> NaN Invalid_operation +-- test Middie +dqinv288 invert 0010000111000111000111000020000000 -> NaN Invalid_operation +dqinv289 invert 0001000111000111000111000030000001 -> NaN Invalid_operation +dqinv290 invert 0000000111000111000111100040000010 -> NaN Invalid_operation +dqinv291 invert 0000000111000111000111010050000100 -> NaN Invalid_operation +dqinv292 invert 1000000111000111000111001060001000 -> NaN Invalid_operation +dqinv293 invert 1000000111000111000111000170010000 -> NaN Invalid_operation +dqinv294 invert 1000000111000111000111000080100000 -> NaN Invalid_operation +dqinv295 invert 1000000111000111000111000091000000 -> NaN Invalid_operation +-- signs +dqinv296 invert -1000000111000111000111000001000000 -> NaN Invalid_operation +dqinv299 invert 1000000111000111000111000001000000 -> 111111000111000111000111110111111 + +-- Nmax, Nmin, Ntiny-like +dqinv341 invert 9.99999999E+2998 -> NaN Invalid_operation +dqinv342 invert 1E-2998 -> NaN Invalid_operation +dqinv343 invert 1.00000000E-2998 -> NaN Invalid_operation +dqinv344 invert 1E-2078 -> NaN Invalid_operation +dqinv345 invert -1E-2078 -> NaN Invalid_operation +dqinv346 invert -1.00000000E-2998 -> NaN Invalid_operation +dqinv347 invert -1E-2998 -> NaN Invalid_operation +dqinv348 invert -9.99999999E+2998 -> NaN Invalid_operation + +-- A few other non-integers +dqinv361 invert 1.0 -> NaN Invalid_operation +dqinv362 invert 1E+1 -> NaN Invalid_operation +dqinv363 invert 0.0 -> NaN Invalid_operation +dqinv364 invert 0E+1 -> NaN Invalid_operation +dqinv365 invert 9.9 -> NaN Invalid_operation +dqinv366 invert 9E+1 -> NaN Invalid_operation + +-- All Specials are in error +dqinv788 invert -Inf -> NaN Invalid_operation +dqinv794 invert Inf -> NaN Invalid_operation +dqinv821 invert NaN -> NaN Invalid_operation +dqinv841 invert sNaN -> NaN Invalid_operation +-- propagating NaNs +dqinv861 invert NaN1 -> NaN Invalid_operation +dqinv862 invert +NaN2 -> NaN Invalid_operation +dqinv863 invert NaN3 -> NaN Invalid_operation +dqinv864 invert NaN4 -> NaN Invalid_operation +dqinv865 invert NaN5 -> NaN Invalid_operation +dqinv871 invert sNaN11 -> NaN Invalid_operation +dqinv872 invert sNaN12 -> NaN Invalid_operation +dqinv873 invert sNaN13 -> NaN Invalid_operation +dqinv874 invert sNaN14 -> NaN Invalid_operation +dqinv875 invert sNaN15 -> NaN Invalid_operation +dqinv876 invert NaN16 -> NaN Invalid_operation +dqinv881 invert +NaN25 -> NaN Invalid_operation +dqinv882 invert -NaN26 -> NaN Invalid_operation +dqinv883 invert -sNaN27 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/dqLogB.decTest b/Lib/test/decimaltestdata/dqLogB.decTest index a18313dc01..449f3dcb8d 100644 --- a/Lib/test/decimaltestdata/dqLogB.decTest +++ b/Lib/test/decimaltestdata/dqLogB.decTest @@ -1,160 +1,160 @@ -------------------------------------------------------------------------
--- dqLogB.decTest -- integral 754r adjusted exponent, for decQuads --
--- Copyright (c) IBM Corporation, 2005, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
--- basics
-dqlogb000 logb 0 -> -Infinity Division_by_zero
-dqlogb001 logb 1E-6176 -> -6176
-dqlogb002 logb 1E-6143 -> -6143
-dqlogb003 logb 0.001 -> -3
-dqlogb004 logb 0.03 -> -2
-dqlogb005 logb 1 -> 0
-dqlogb006 logb 2 -> 0
-dqlogb007 logb 2.5 -> 0
-dqlogb008 logb 2.50 -> 0
-dqlogb009 logb 2.500 -> 0
-dqlogb010 logb 10 -> 1
-dqlogb011 logb 70 -> 1
-dqlogb012 logb 100 -> 2
-dqlogb013 logb 250 -> 2
-dqlogb014 logb 9E+6144 -> 6144
-dqlogb015 logb +Infinity -> Infinity
-
--- negatives appear to be treated as positives
-dqlogb021 logb -0 -> -Infinity Division_by_zero
-dqlogb022 logb -1E-6176 -> -6176
-dqlogb023 logb -9E-6143 -> -6143
-dqlogb024 logb -0.001 -> -3
-dqlogb025 logb -1 -> 0
-dqlogb026 logb -2 -> 0
-dqlogb027 logb -10 -> 1
-dqlogb028 logb -70 -> 1
-dqlogb029 logb -100 -> 2
-dqlogb030 logb -9E+6144 -> 6144
-dqlogb031 logb -Infinity -> Infinity
-
--- zeros
-dqlogb111 logb 0 -> -Infinity Division_by_zero
-dqlogb112 logb -0 -> -Infinity Division_by_zero
-dqlogb113 logb 0E+4 -> -Infinity Division_by_zero
-dqlogb114 logb -0E+4 -> -Infinity Division_by_zero
-dqlogb115 logb 0.0000 -> -Infinity Division_by_zero
-dqlogb116 logb -0.0000 -> -Infinity Division_by_zero
-dqlogb117 logb 0E-141 -> -Infinity Division_by_zero
-dqlogb118 logb -0E-141 -> -Infinity Division_by_zero
-
--- full coefficients, alternating bits
-dqlogb121 logb 268268268 -> 8
-dqlogb122 logb -268268268 -> 8
-dqlogb123 logb 134134134 -> 8
-dqlogb124 logb -134134134 -> 8
-
--- Nmax, Nmin, Ntiny
-dqlogb131 logb 9.999999999999999999999999999999999E+6144 -> 6144
-dqlogb132 logb 1E-6143 -> -6143
-dqlogb133 logb 1.000000000000000000000000000000000E-6143 -> -6143
-dqlogb134 logb 1E-6176 -> -6176
-
-dqlogb135 logb -1E-6176 -> -6176
-dqlogb136 logb -1.000000000000000000000000000000000E-6143 -> -6143
-dqlogb137 logb -1E-6143 -> -6143
-dqlogb1614 logb -9.999999999999999999999999999999999E+6144 -> 6144
-
--- ones
-dqlogb0061 logb 1 -> 0
-dqlogb0062 logb 1.0 -> 0
-dqlogb0063 logb 1.000000000000000 -> 0
-
--- notable cases -- exact powers of 10
-dqlogb1100 logb 1 -> 0
-dqlogb1101 logb 10 -> 1
-dqlogb1102 logb 100 -> 2
-dqlogb1103 logb 1000 -> 3
-dqlogb1104 logb 10000 -> 4
-dqlogb1105 logb 100000 -> 5
-dqlogb1106 logb 1000000 -> 6
-dqlogb1107 logb 10000000 -> 7
-dqlogb1108 logb 100000000 -> 8
-dqlogb1109 logb 1000000000 -> 9
-dqlogb1110 logb 10000000000 -> 10
-dqlogb1111 logb 100000000000 -> 11
-dqlogb1112 logb 1000000000000 -> 12
-dqlogb1113 logb 0.00000000001 -> -11
-dqlogb1114 logb 0.0000000001 -> -10
-dqlogb1115 logb 0.000000001 -> -9
-dqlogb1116 logb 0.00000001 -> -8
-dqlogb1117 logb 0.0000001 -> -7
-dqlogb1118 logb 0.000001 -> -6
-dqlogb1119 logb 0.00001 -> -5
-dqlogb1120 logb 0.0001 -> -4
-dqlogb1121 logb 0.001 -> -3
-dqlogb1122 logb 0.01 -> -2
-dqlogb1123 logb 0.1 -> -1
-dqlogb1124 logb 1E-99 -> -99
-dqlogb1125 logb 1E-100 -> -100
-dqlogb1127 logb 1E-299 -> -299
-dqlogb1126 logb 1E-6143 -> -6143
-
--- suggestions from Ilan Nehama
-dqlogb1400 logb 10E-3 -> -2
-dqlogb1401 logb 10E-2 -> -1
-dqlogb1402 logb 100E-2 -> 0
-dqlogb1403 logb 1000E-2 -> 1
-dqlogb1404 logb 10000E-2 -> 2
-dqlogb1405 logb 10E-1 -> 0
-dqlogb1406 logb 100E-1 -> 1
-dqlogb1407 logb 1000E-1 -> 2
-dqlogb1408 logb 10000E-1 -> 3
-dqlogb1409 logb 10E0 -> 1
-dqlogb1410 logb 100E0 -> 2
-dqlogb1411 logb 1000E0 -> 3
-dqlogb1412 logb 10000E0 -> 4
-dqlogb1413 logb 10E1 -> 2
-dqlogb1414 logb 100E1 -> 3
-dqlogb1415 logb 1000E1 -> 4
-dqlogb1416 logb 10000E1 -> 5
-dqlogb1417 logb 10E2 -> 3
-dqlogb1418 logb 100E2 -> 4
-dqlogb1419 logb 1000E2 -> 5
-dqlogb1420 logb 10000E2 -> 6
-
--- special values
-dqlogb820 logb Infinity -> Infinity
-dqlogb821 logb 0 -> -Infinity Division_by_zero
-dqlogb822 logb NaN -> NaN
-dqlogb823 logb sNaN -> NaN Invalid_operation
--- propagating NaNs
-dqlogb824 logb sNaN123 -> NaN123 Invalid_operation
-dqlogb825 logb -sNaN321 -> -NaN321 Invalid_operation
-dqlogb826 logb NaN456 -> NaN456
-dqlogb827 logb -NaN654 -> -NaN654
-dqlogb828 logb NaN1 -> NaN1
-
--- Null test
-dqlogb900 logb # -> NaN Invalid_operation
-
-
+------------------------------------------------------------------------ +-- dqLogB.decTest -- integral 754r adjusted exponent, for decQuads -- +-- Copyright (c) IBM Corporation, 2005, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +-- basics +dqlogb000 logb 0 -> -Infinity Division_by_zero +dqlogb001 logb 1E-6176 -> -6176 +dqlogb002 logb 1E-6143 -> -6143 +dqlogb003 logb 0.001 -> -3 +dqlogb004 logb 0.03 -> -2 +dqlogb005 logb 1 -> 0 +dqlogb006 logb 2 -> 0 +dqlogb007 logb 2.5 -> 0 +dqlogb008 logb 2.50 -> 0 +dqlogb009 logb 2.500 -> 0 +dqlogb010 logb 10 -> 1 +dqlogb011 logb 70 -> 1 +dqlogb012 logb 100 -> 2 +dqlogb013 logb 250 -> 2 +dqlogb014 logb 9E+6144 -> 6144 +dqlogb015 logb +Infinity -> Infinity + +-- negatives appear to be treated as positives +dqlogb021 logb -0 -> -Infinity Division_by_zero +dqlogb022 logb -1E-6176 -> -6176 +dqlogb023 logb -9E-6143 -> -6143 +dqlogb024 logb -0.001 -> -3 +dqlogb025 logb -1 -> 0 +dqlogb026 logb -2 -> 0 +dqlogb027 logb -10 -> 1 +dqlogb028 logb -70 -> 1 +dqlogb029 logb -100 -> 2 +dqlogb030 logb -9E+6144 -> 6144 +dqlogb031 logb -Infinity -> Infinity + +-- zeros +dqlogb111 logb 0 -> -Infinity Division_by_zero +dqlogb112 logb -0 -> -Infinity Division_by_zero +dqlogb113 logb 0E+4 -> -Infinity Division_by_zero +dqlogb114 logb -0E+4 -> -Infinity Division_by_zero +dqlogb115 logb 0.0000 -> -Infinity Division_by_zero +dqlogb116 logb -0.0000 -> -Infinity Division_by_zero +dqlogb117 logb 0E-141 -> -Infinity Division_by_zero +dqlogb118 logb -0E-141 -> -Infinity Division_by_zero + +-- full coefficients, alternating bits +dqlogb121 logb 268268268 -> 8 +dqlogb122 logb -268268268 -> 8 +dqlogb123 logb 134134134 -> 8 +dqlogb124 logb -134134134 -> 8 + +-- Nmax, Nmin, Ntiny +dqlogb131 logb 9.999999999999999999999999999999999E+6144 -> 6144 +dqlogb132 logb 1E-6143 -> -6143 +dqlogb133 logb 1.000000000000000000000000000000000E-6143 -> -6143 +dqlogb134 logb 1E-6176 -> -6176 + +dqlogb135 logb -1E-6176 -> -6176 +dqlogb136 logb -1.000000000000000000000000000000000E-6143 -> -6143 +dqlogb137 logb -1E-6143 -> -6143 +dqlogb1614 logb -9.999999999999999999999999999999999E+6144 -> 6144 + +-- ones +dqlogb0061 logb 1 -> 0 +dqlogb0062 logb 1.0 -> 0 +dqlogb0063 logb 1.000000000000000 -> 0 + +-- notable cases -- exact powers of 10 +dqlogb1100 logb 1 -> 0 +dqlogb1101 logb 10 -> 1 +dqlogb1102 logb 100 -> 2 +dqlogb1103 logb 1000 -> 3 +dqlogb1104 logb 10000 -> 4 +dqlogb1105 logb 100000 -> 5 +dqlogb1106 logb 1000000 -> 6 +dqlogb1107 logb 10000000 -> 7 +dqlogb1108 logb 100000000 -> 8 +dqlogb1109 logb 1000000000 -> 9 +dqlogb1110 logb 10000000000 -> 10 +dqlogb1111 logb 100000000000 -> 11 +dqlogb1112 logb 1000000000000 -> 12 +dqlogb1113 logb 0.00000000001 -> -11 +dqlogb1114 logb 0.0000000001 -> -10 +dqlogb1115 logb 0.000000001 -> -9 +dqlogb1116 logb 0.00000001 -> -8 +dqlogb1117 logb 0.0000001 -> -7 +dqlogb1118 logb 0.000001 -> -6 +dqlogb1119 logb 0.00001 -> -5 +dqlogb1120 logb 0.0001 -> -4 +dqlogb1121 logb 0.001 -> -3 +dqlogb1122 logb 0.01 -> -2 +dqlogb1123 logb 0.1 -> -1 +dqlogb1124 logb 1E-99 -> -99 +dqlogb1125 logb 1E-100 -> -100 +dqlogb1127 logb 1E-299 -> -299 +dqlogb1126 logb 1E-6143 -> -6143 + +-- suggestions from Ilan Nehama +dqlogb1400 logb 10E-3 -> -2 +dqlogb1401 logb 10E-2 -> -1 +dqlogb1402 logb 100E-2 -> 0 +dqlogb1403 logb 1000E-2 -> 1 +dqlogb1404 logb 10000E-2 -> 2 +dqlogb1405 logb 10E-1 -> 0 +dqlogb1406 logb 100E-1 -> 1 +dqlogb1407 logb 1000E-1 -> 2 +dqlogb1408 logb 10000E-1 -> 3 +dqlogb1409 logb 10E0 -> 1 +dqlogb1410 logb 100E0 -> 2 +dqlogb1411 logb 1000E0 -> 3 +dqlogb1412 logb 10000E0 -> 4 +dqlogb1413 logb 10E1 -> 2 +dqlogb1414 logb 100E1 -> 3 +dqlogb1415 logb 1000E1 -> 4 +dqlogb1416 logb 10000E1 -> 5 +dqlogb1417 logb 10E2 -> 3 +dqlogb1418 logb 100E2 -> 4 +dqlogb1419 logb 1000E2 -> 5 +dqlogb1420 logb 10000E2 -> 6 + +-- special values +dqlogb820 logb Infinity -> Infinity +dqlogb821 logb 0 -> -Infinity Division_by_zero +dqlogb822 logb NaN -> NaN +dqlogb823 logb sNaN -> NaN Invalid_operation +-- propagating NaNs +dqlogb824 logb sNaN123 -> NaN123 Invalid_operation +dqlogb825 logb -sNaN321 -> -NaN321 Invalid_operation +dqlogb826 logb NaN456 -> NaN456 +dqlogb827 logb -NaN654 -> -NaN654 +dqlogb828 logb NaN1 -> NaN1 + +-- Null test +dqlogb900 logb # -> NaN Invalid_operation + + diff --git a/Lib/test/decimaltestdata/dqMax.decTest b/Lib/test/decimaltestdata/dqMax.decTest index dc6a1ab8f8..162d4bda3d 100644 --- a/Lib/test/decimaltestdata/dqMax.decTest +++ b/Lib/test/decimaltestdata/dqMax.decTest @@ -1,322 +1,322 @@ -------------------------------------------------------------------------
--- dqMax.decTest -- decQuad maxnum --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- we assume that base comparison is tested in compare.decTest, so
--- these mainly cover special cases and rounding
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
--- sanity checks
-dqmax001 max -2 -2 -> -2
-dqmax002 max -2 -1 -> -1
-dqmax003 max -2 0 -> 0
-dqmax004 max -2 1 -> 1
-dqmax005 max -2 2 -> 2
-dqmax006 max -1 -2 -> -1
-dqmax007 max -1 -1 -> -1
-dqmax008 max -1 0 -> 0
-dqmax009 max -1 1 -> 1
-dqmax010 max -1 2 -> 2
-dqmax011 max 0 -2 -> 0
-dqmax012 max 0 -1 -> 0
-dqmax013 max 0 0 -> 0
-dqmax014 max 0 1 -> 1
-dqmax015 max 0 2 -> 2
-dqmax016 max 1 -2 -> 1
-dqmax017 max 1 -1 -> 1
-dqmax018 max 1 0 -> 1
-dqmax019 max 1 1 -> 1
-dqmax020 max 1 2 -> 2
-dqmax021 max 2 -2 -> 2
-dqmax022 max 2 -1 -> 2
-dqmax023 max 2 0 -> 2
-dqmax025 max 2 1 -> 2
-dqmax026 max 2 2 -> 2
-
--- extended zeros
-dqmax030 max 0 0 -> 0
-dqmax031 max 0 -0 -> 0
-dqmax032 max 0 -0.0 -> 0
-dqmax033 max 0 0.0 -> 0
-dqmax034 max -0 0 -> 0 -- note: -0 = 0, but 0 chosen
-dqmax035 max -0 -0 -> -0
-dqmax036 max -0 -0.0 -> -0.0
-dqmax037 max -0 0.0 -> 0.0
-dqmax038 max 0.0 0 -> 0
-dqmax039 max 0.0 -0 -> 0.0
-dqmax040 max 0.0 -0.0 -> 0.0
-dqmax041 max 0.0 0.0 -> 0.0
-dqmax042 max -0.0 0 -> 0
-dqmax043 max -0.0 -0 -> -0.0
-dqmax044 max -0.0 -0.0 -> -0.0
-dqmax045 max -0.0 0.0 -> 0.0
-
-dqmax050 max -0E1 0E1 -> 0E+1
-dqmax051 max -0E2 0E2 -> 0E+2
-dqmax052 max -0E2 0E1 -> 0E+1
-dqmax053 max -0E1 0E2 -> 0E+2
-dqmax054 max 0E1 -0E1 -> 0E+1
-dqmax055 max 0E2 -0E2 -> 0E+2
-dqmax056 max 0E2 -0E1 -> 0E+2
-dqmax057 max 0E1 -0E2 -> 0E+1
-
-dqmax058 max 0E1 0E1 -> 0E+1
-dqmax059 max 0E2 0E2 -> 0E+2
-dqmax060 max 0E2 0E1 -> 0E+2
-dqmax061 max 0E1 0E2 -> 0E+2
-dqmax062 max -0E1 -0E1 -> -0E+1
-dqmax063 max -0E2 -0E2 -> -0E+2
-dqmax064 max -0E2 -0E1 -> -0E+1
-dqmax065 max -0E1 -0E2 -> -0E+1
-
--- Specials
-dqmax090 max Inf -Inf -> Infinity
-dqmax091 max Inf -1000 -> Infinity
-dqmax092 max Inf -1 -> Infinity
-dqmax093 max Inf -0 -> Infinity
-dqmax094 max Inf 0 -> Infinity
-dqmax095 max Inf 1 -> Infinity
-dqmax096 max Inf 1000 -> Infinity
-dqmax097 max Inf Inf -> Infinity
-dqmax098 max -1000 Inf -> Infinity
-dqmax099 max -Inf Inf -> Infinity
-dqmax100 max -1 Inf -> Infinity
-dqmax101 max -0 Inf -> Infinity
-dqmax102 max 0 Inf -> Infinity
-dqmax103 max 1 Inf -> Infinity
-dqmax104 max 1000 Inf -> Infinity
-dqmax105 max Inf Inf -> Infinity
-
-dqmax120 max -Inf -Inf -> -Infinity
-dqmax121 max -Inf -1000 -> -1000
-dqmax122 max -Inf -1 -> -1
-dqmax123 max -Inf -0 -> -0
-dqmax124 max -Inf 0 -> 0
-dqmax125 max -Inf 1 -> 1
-dqmax126 max -Inf 1000 -> 1000
-dqmax127 max -Inf Inf -> Infinity
-dqmax128 max -Inf -Inf -> -Infinity
-dqmax129 max -1000 -Inf -> -1000
-dqmax130 max -1 -Inf -> -1
-dqmax131 max -0 -Inf -> -0
-dqmax132 max 0 -Inf -> 0
-dqmax133 max 1 -Inf -> 1
-dqmax134 max 1000 -Inf -> 1000
-dqmax135 max Inf -Inf -> Infinity
-
--- 2004.08.02 754r chooses number over NaN in mixed cases
-dqmax141 max NaN -Inf -> -Infinity
-dqmax142 max NaN -1000 -> -1000
-dqmax143 max NaN -1 -> -1
-dqmax144 max NaN -0 -> -0
-dqmax145 max NaN 0 -> 0
-dqmax146 max NaN 1 -> 1
-dqmax147 max NaN 1000 -> 1000
-dqmax148 max NaN Inf -> Infinity
-dqmax149 max NaN NaN -> NaN
-dqmax150 max -Inf NaN -> -Infinity
-dqmax151 max -1000 NaN -> -1000
-dqmax152 max -1 NaN -> -1
-dqmax153 max -0 NaN -> -0
-dqmax154 max 0 NaN -> 0
-dqmax155 max 1 NaN -> 1
-dqmax156 max 1000 NaN -> 1000
-dqmax157 max Inf NaN -> Infinity
-
-dqmax161 max sNaN -Inf -> NaN Invalid_operation
-dqmax162 max sNaN -1000 -> NaN Invalid_operation
-dqmax163 max sNaN -1 -> NaN Invalid_operation
-dqmax164 max sNaN -0 -> NaN Invalid_operation
-dqmax165 max sNaN 0 -> NaN Invalid_operation
-dqmax166 max sNaN 1 -> NaN Invalid_operation
-dqmax167 max sNaN 1000 -> NaN Invalid_operation
-dqmax168 max sNaN NaN -> NaN Invalid_operation
-dqmax169 max sNaN sNaN -> NaN Invalid_operation
-dqmax170 max NaN sNaN -> NaN Invalid_operation
-dqmax171 max -Inf sNaN -> NaN Invalid_operation
-dqmax172 max -1000 sNaN -> NaN Invalid_operation
-dqmax173 max -1 sNaN -> NaN Invalid_operation
-dqmax174 max -0 sNaN -> NaN Invalid_operation
-dqmax175 max 0 sNaN -> NaN Invalid_operation
-dqmax176 max 1 sNaN -> NaN Invalid_operation
-dqmax177 max 1000 sNaN -> NaN Invalid_operation
-dqmax178 max Inf sNaN -> NaN Invalid_operation
-dqmax179 max NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-dqmax181 max NaN9 -Inf -> -Infinity
-dqmax182 max NaN8 9 -> 9
-dqmax183 max -NaN7 Inf -> Infinity
-
-dqmax184 max -NaN1 NaN11 -> -NaN1
-dqmax185 max NaN2 NaN12 -> NaN2
-dqmax186 max -NaN13 -NaN7 -> -NaN13
-dqmax187 max NaN14 -NaN5 -> NaN14
-
-dqmax188 max -Inf NaN4 -> -Infinity
-dqmax189 max -9 -NaN3 -> -9
-dqmax190 max Inf NaN2 -> Infinity
-
-dqmax191 max sNaN99 -Inf -> NaN99 Invalid_operation
-dqmax192 max sNaN98 -1 -> NaN98 Invalid_operation
-dqmax193 max -sNaN97 NaN -> -NaN97 Invalid_operation
-dqmax194 max sNaN96 sNaN94 -> NaN96 Invalid_operation
-dqmax195 max NaN95 sNaN93 -> NaN93 Invalid_operation
-dqmax196 max -Inf sNaN92 -> NaN92 Invalid_operation
-dqmax197 max 0 sNaN91 -> NaN91 Invalid_operation
-dqmax198 max Inf -sNaN90 -> -NaN90 Invalid_operation
-dqmax199 max NaN sNaN89 -> NaN89 Invalid_operation
-
--- old rounding checks
-dqmax221 max 12345678000 1 -> 12345678000
-dqmax222 max 1 12345678000 -> 12345678000
-dqmax223 max 1234567800 1 -> 1234567800
-dqmax224 max 1 1234567800 -> 1234567800
-dqmax225 max 1234567890 1 -> 1234567890
-dqmax226 max 1 1234567890 -> 1234567890
-dqmax227 max 1234567891 1 -> 1234567891
-dqmax228 max 1 1234567891 -> 1234567891
-dqmax229 max 12345678901 1 -> 12345678901
-dqmax230 max 1 12345678901 -> 12345678901
-dqmax231 max 1234567896 1 -> 1234567896
-dqmax232 max 1 1234567896 -> 1234567896
-dqmax233 max -1234567891 1 -> 1
-dqmax234 max 1 -1234567891 -> 1
-dqmax235 max -12345678901 1 -> 1
-dqmax236 max 1 -12345678901 -> 1
-dqmax237 max -1234567896 1 -> 1
-dqmax238 max 1 -1234567896 -> 1
-
--- from examples
-dqmax280 max '3' '2' -> '3'
-dqmax281 max '-10' '3' -> '3'
-dqmax282 max '1.0' '1' -> '1'
-dqmax283 max '1' '1.0' -> '1'
-dqmax284 max '7' 'NaN' -> '7'
-
--- expanded list from min/max 754r purple prose
--- [explicit tests for exponent ordering]
-dqmax401 max Inf 1.1 -> Infinity
-dqmax402 max 1.1 1 -> 1.1
-dqmax403 max 1 1.0 -> 1
-dqmax404 max 1.0 0.1 -> 1.0
-dqmax405 max 0.1 0.10 -> 0.1
-dqmax406 max 0.10 0.100 -> 0.10
-dqmax407 max 0.10 0 -> 0.10
-dqmax408 max 0 0.0 -> 0
-dqmax409 max 0.0 -0 -> 0.0
-dqmax410 max 0.0 -0.0 -> 0.0
-dqmax411 max 0.00 -0.0 -> 0.00
-dqmax412 max 0.0 -0.00 -> 0.0
-dqmax413 max 0 -0.0 -> 0
-dqmax414 max 0 -0 -> 0
-dqmax415 max -0.0 -0 -> -0.0
-dqmax416 max -0 -0.100 -> -0
-dqmax417 max -0.100 -0.10 -> -0.100
-dqmax418 max -0.10 -0.1 -> -0.10
-dqmax419 max -0.1 -1.0 -> -0.1
-dqmax420 max -1.0 -1 -> -1.0
-dqmax421 max -1 -1.1 -> -1
-dqmax423 max -1.1 -Inf -> -1.1
--- same with operands reversed
-dqmax431 max 1.1 Inf -> Infinity
-dqmax432 max 1 1.1 -> 1.1
-dqmax433 max 1.0 1 -> 1
-dqmax434 max 0.1 1.0 -> 1.0
-dqmax435 max 0.10 0.1 -> 0.1
-dqmax436 max 0.100 0.10 -> 0.10
-dqmax437 max 0 0.10 -> 0.10
-dqmax438 max 0.0 0 -> 0
-dqmax439 max -0 0.0 -> 0.0
-dqmax440 max -0.0 0.0 -> 0.0
-dqmax441 max -0.0 0.00 -> 0.00
-dqmax442 max -0.00 0.0 -> 0.0
-dqmax443 max -0.0 0 -> 0
-dqmax444 max -0 0 -> 0
-dqmax445 max -0 -0.0 -> -0.0
-dqmax446 max -0.100 -0 -> -0
-dqmax447 max -0.10 -0.100 -> -0.100
-dqmax448 max -0.1 -0.10 -> -0.10
-dqmax449 max -1.0 -0.1 -> -0.1
-dqmax450 max -1 -1.0 -> -1.0
-dqmax451 max -1.1 -1 -> -1
-dqmax453 max -Inf -1.1 -> -1.1
--- largies
-dqmax460 max 1000 1E+3 -> 1E+3
-dqmax461 max 1E+3 1000 -> 1E+3
-dqmax462 max 1000 -1E+3 -> 1000
-dqmax463 max 1E+3 -1000 -> 1E+3
-dqmax464 max -1000 1E+3 -> 1E+3
-dqmax465 max -1E+3 1000 -> 1000
-dqmax466 max -1000 -1E+3 -> -1000
-dqmax467 max -1E+3 -1000 -> -1000
-
--- misalignment traps for little-endian
-dqmax471 max 1.0 0.1 -> 1.0
-dqmax472 max 0.1 1.0 -> 1.0
-dqmax473 max 10.0 0.1 -> 10.0
-dqmax474 max 0.1 10.0 -> 10.0
-dqmax475 max 100 1.0 -> 100
-dqmax476 max 1.0 100 -> 100
-dqmax477 max 1000 10.0 -> 1000
-dqmax478 max 10.0 1000 -> 1000
-dqmax479 max 10000 100.0 -> 10000
-dqmax480 max 100.0 10000 -> 10000
-dqmax481 max 100000 1000.0 -> 100000
-dqmax482 max 1000.0 100000 -> 100000
-dqmax483 max 1000000 10000.0 -> 1000000
-dqmax484 max 10000.0 1000000 -> 1000000
-
--- subnormals
-dqmax510 max 1.00E-6143 0 -> 1.00E-6143
-dqmax511 max 0.1E-6143 0 -> 1E-6144 Subnormal
-dqmax512 max 0.10E-6143 0 -> 1.0E-6144 Subnormal
-dqmax513 max 0.100E-6143 0 -> 1.00E-6144 Subnormal
-dqmax514 max 0.01E-6143 0 -> 1E-6145 Subnormal
-dqmax515 max 0.999E-6143 0 -> 9.99E-6144 Subnormal
-dqmax516 max 0.099E-6143 0 -> 9.9E-6145 Subnormal
-dqmax517 max 0.009E-6143 0 -> 9E-6146 Subnormal
-dqmax518 max 0.001E-6143 0 -> 1E-6146 Subnormal
-dqmax519 max 0.0009E-6143 0 -> 9E-6147 Subnormal
-dqmax520 max 0.0001E-6143 0 -> 1E-6147 Subnormal
-
-dqmax530 max -1.00E-6143 0 -> 0
-dqmax531 max -0.1E-6143 0 -> 0
-dqmax532 max -0.10E-6143 0 -> 0
-dqmax533 max -0.100E-6143 0 -> 0
-dqmax534 max -0.01E-6143 0 -> 0
-dqmax535 max -0.999E-6143 0 -> 0
-dqmax536 max -0.099E-6143 0 -> 0
-dqmax537 max -0.009E-6143 0 -> 0
-dqmax538 max -0.001E-6143 0 -> 0
-dqmax539 max -0.0009E-6143 0 -> 0
-dqmax540 max -0.0001E-6143 0 -> 0
-
--- Null tests
-dqmax900 max 10 # -> NaN Invalid_operation
-dqmax901 max # 10 -> NaN Invalid_operation
-
-
-
+------------------------------------------------------------------------ +-- dqMax.decTest -- decQuad maxnum -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- we assume that base comparison is tested in compare.decTest, so +-- these mainly cover special cases and rounding +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +-- sanity checks +dqmax001 max -2 -2 -> -2 +dqmax002 max -2 -1 -> -1 +dqmax003 max -2 0 -> 0 +dqmax004 max -2 1 -> 1 +dqmax005 max -2 2 -> 2 +dqmax006 max -1 -2 -> -1 +dqmax007 max -1 -1 -> -1 +dqmax008 max -1 0 -> 0 +dqmax009 max -1 1 -> 1 +dqmax010 max -1 2 -> 2 +dqmax011 max 0 -2 -> 0 +dqmax012 max 0 -1 -> 0 +dqmax013 max 0 0 -> 0 +dqmax014 max 0 1 -> 1 +dqmax015 max 0 2 -> 2 +dqmax016 max 1 -2 -> 1 +dqmax017 max 1 -1 -> 1 +dqmax018 max 1 0 -> 1 +dqmax019 max 1 1 -> 1 +dqmax020 max 1 2 -> 2 +dqmax021 max 2 -2 -> 2 +dqmax022 max 2 -1 -> 2 +dqmax023 max 2 0 -> 2 +dqmax025 max 2 1 -> 2 +dqmax026 max 2 2 -> 2 + +-- extended zeros +dqmax030 max 0 0 -> 0 +dqmax031 max 0 -0 -> 0 +dqmax032 max 0 -0.0 -> 0 +dqmax033 max 0 0.0 -> 0 +dqmax034 max -0 0 -> 0 -- note: -0 = 0, but 0 chosen +dqmax035 max -0 -0 -> -0 +dqmax036 max -0 -0.0 -> -0.0 +dqmax037 max -0 0.0 -> 0.0 +dqmax038 max 0.0 0 -> 0 +dqmax039 max 0.0 -0 -> 0.0 +dqmax040 max 0.0 -0.0 -> 0.0 +dqmax041 max 0.0 0.0 -> 0.0 +dqmax042 max -0.0 0 -> 0 +dqmax043 max -0.0 -0 -> -0.0 +dqmax044 max -0.0 -0.0 -> -0.0 +dqmax045 max -0.0 0.0 -> 0.0 + +dqmax050 max -0E1 0E1 -> 0E+1 +dqmax051 max -0E2 0E2 -> 0E+2 +dqmax052 max -0E2 0E1 -> 0E+1 +dqmax053 max -0E1 0E2 -> 0E+2 +dqmax054 max 0E1 -0E1 -> 0E+1 +dqmax055 max 0E2 -0E2 -> 0E+2 +dqmax056 max 0E2 -0E1 -> 0E+2 +dqmax057 max 0E1 -0E2 -> 0E+1 + +dqmax058 max 0E1 0E1 -> 0E+1 +dqmax059 max 0E2 0E2 -> 0E+2 +dqmax060 max 0E2 0E1 -> 0E+2 +dqmax061 max 0E1 0E2 -> 0E+2 +dqmax062 max -0E1 -0E1 -> -0E+1 +dqmax063 max -0E2 -0E2 -> -0E+2 +dqmax064 max -0E2 -0E1 -> -0E+1 +dqmax065 max -0E1 -0E2 -> -0E+1 + +-- Specials +dqmax090 max Inf -Inf -> Infinity +dqmax091 max Inf -1000 -> Infinity +dqmax092 max Inf -1 -> Infinity +dqmax093 max Inf -0 -> Infinity +dqmax094 max Inf 0 -> Infinity +dqmax095 max Inf 1 -> Infinity +dqmax096 max Inf 1000 -> Infinity +dqmax097 max Inf Inf -> Infinity +dqmax098 max -1000 Inf -> Infinity +dqmax099 max -Inf Inf -> Infinity +dqmax100 max -1 Inf -> Infinity +dqmax101 max -0 Inf -> Infinity +dqmax102 max 0 Inf -> Infinity +dqmax103 max 1 Inf -> Infinity +dqmax104 max 1000 Inf -> Infinity +dqmax105 max Inf Inf -> Infinity + +dqmax120 max -Inf -Inf -> -Infinity +dqmax121 max -Inf -1000 -> -1000 +dqmax122 max -Inf -1 -> -1 +dqmax123 max -Inf -0 -> -0 +dqmax124 max -Inf 0 -> 0 +dqmax125 max -Inf 1 -> 1 +dqmax126 max -Inf 1000 -> 1000 +dqmax127 max -Inf Inf -> Infinity +dqmax128 max -Inf -Inf -> -Infinity +dqmax129 max -1000 -Inf -> -1000 +dqmax130 max -1 -Inf -> -1 +dqmax131 max -0 -Inf -> -0 +dqmax132 max 0 -Inf -> 0 +dqmax133 max 1 -Inf -> 1 +dqmax134 max 1000 -Inf -> 1000 +dqmax135 max Inf -Inf -> Infinity + +-- 2004.08.02 754r chooses number over NaN in mixed cases +dqmax141 max NaN -Inf -> -Infinity +dqmax142 max NaN -1000 -> -1000 +dqmax143 max NaN -1 -> -1 +dqmax144 max NaN -0 -> -0 +dqmax145 max NaN 0 -> 0 +dqmax146 max NaN 1 -> 1 +dqmax147 max NaN 1000 -> 1000 +dqmax148 max NaN Inf -> Infinity +dqmax149 max NaN NaN -> NaN +dqmax150 max -Inf NaN -> -Infinity +dqmax151 max -1000 NaN -> -1000 +dqmax152 max -1 NaN -> -1 +dqmax153 max -0 NaN -> -0 +dqmax154 max 0 NaN -> 0 +dqmax155 max 1 NaN -> 1 +dqmax156 max 1000 NaN -> 1000 +dqmax157 max Inf NaN -> Infinity + +dqmax161 max sNaN -Inf -> NaN Invalid_operation +dqmax162 max sNaN -1000 -> NaN Invalid_operation +dqmax163 max sNaN -1 -> NaN Invalid_operation +dqmax164 max sNaN -0 -> NaN Invalid_operation +dqmax165 max sNaN 0 -> NaN Invalid_operation +dqmax166 max sNaN 1 -> NaN Invalid_operation +dqmax167 max sNaN 1000 -> NaN Invalid_operation +dqmax168 max sNaN NaN -> NaN Invalid_operation +dqmax169 max sNaN sNaN -> NaN Invalid_operation +dqmax170 max NaN sNaN -> NaN Invalid_operation +dqmax171 max -Inf sNaN -> NaN Invalid_operation +dqmax172 max -1000 sNaN -> NaN Invalid_operation +dqmax173 max -1 sNaN -> NaN Invalid_operation +dqmax174 max -0 sNaN -> NaN Invalid_operation +dqmax175 max 0 sNaN -> NaN Invalid_operation +dqmax176 max 1 sNaN -> NaN Invalid_operation +dqmax177 max 1000 sNaN -> NaN Invalid_operation +dqmax178 max Inf sNaN -> NaN Invalid_operation +dqmax179 max NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +dqmax181 max NaN9 -Inf -> -Infinity +dqmax182 max NaN8 9 -> 9 +dqmax183 max -NaN7 Inf -> Infinity + +dqmax184 max -NaN1 NaN11 -> -NaN1 +dqmax185 max NaN2 NaN12 -> NaN2 +dqmax186 max -NaN13 -NaN7 -> -NaN13 +dqmax187 max NaN14 -NaN5 -> NaN14 + +dqmax188 max -Inf NaN4 -> -Infinity +dqmax189 max -9 -NaN3 -> -9 +dqmax190 max Inf NaN2 -> Infinity + +dqmax191 max sNaN99 -Inf -> NaN99 Invalid_operation +dqmax192 max sNaN98 -1 -> NaN98 Invalid_operation +dqmax193 max -sNaN97 NaN -> -NaN97 Invalid_operation +dqmax194 max sNaN96 sNaN94 -> NaN96 Invalid_operation +dqmax195 max NaN95 sNaN93 -> NaN93 Invalid_operation +dqmax196 max -Inf sNaN92 -> NaN92 Invalid_operation +dqmax197 max 0 sNaN91 -> NaN91 Invalid_operation +dqmax198 max Inf -sNaN90 -> -NaN90 Invalid_operation +dqmax199 max NaN sNaN89 -> NaN89 Invalid_operation + +-- old rounding checks +dqmax221 max 12345678000 1 -> 12345678000 +dqmax222 max 1 12345678000 -> 12345678000 +dqmax223 max 1234567800 1 -> 1234567800 +dqmax224 max 1 1234567800 -> 1234567800 +dqmax225 max 1234567890 1 -> 1234567890 +dqmax226 max 1 1234567890 -> 1234567890 +dqmax227 max 1234567891 1 -> 1234567891 +dqmax228 max 1 1234567891 -> 1234567891 +dqmax229 max 12345678901 1 -> 12345678901 +dqmax230 max 1 12345678901 -> 12345678901 +dqmax231 max 1234567896 1 -> 1234567896 +dqmax232 max 1 1234567896 -> 1234567896 +dqmax233 max -1234567891 1 -> 1 +dqmax234 max 1 -1234567891 -> 1 +dqmax235 max -12345678901 1 -> 1 +dqmax236 max 1 -12345678901 -> 1 +dqmax237 max -1234567896 1 -> 1 +dqmax238 max 1 -1234567896 -> 1 + +-- from examples +dqmax280 max '3' '2' -> '3' +dqmax281 max '-10' '3' -> '3' +dqmax282 max '1.0' '1' -> '1' +dqmax283 max '1' '1.0' -> '1' +dqmax284 max '7' 'NaN' -> '7' + +-- expanded list from min/max 754r purple prose +-- [explicit tests for exponent ordering] +dqmax401 max Inf 1.1 -> Infinity +dqmax402 max 1.1 1 -> 1.1 +dqmax403 max 1 1.0 -> 1 +dqmax404 max 1.0 0.1 -> 1.0 +dqmax405 max 0.1 0.10 -> 0.1 +dqmax406 max 0.10 0.100 -> 0.10 +dqmax407 max 0.10 0 -> 0.10 +dqmax408 max 0 0.0 -> 0 +dqmax409 max 0.0 -0 -> 0.0 +dqmax410 max 0.0 -0.0 -> 0.0 +dqmax411 max 0.00 -0.0 -> 0.00 +dqmax412 max 0.0 -0.00 -> 0.0 +dqmax413 max 0 -0.0 -> 0 +dqmax414 max 0 -0 -> 0 +dqmax415 max -0.0 -0 -> -0.0 +dqmax416 max -0 -0.100 -> -0 +dqmax417 max -0.100 -0.10 -> -0.100 +dqmax418 max -0.10 -0.1 -> -0.10 +dqmax419 max -0.1 -1.0 -> -0.1 +dqmax420 max -1.0 -1 -> -1.0 +dqmax421 max -1 -1.1 -> -1 +dqmax423 max -1.1 -Inf -> -1.1 +-- same with operands reversed +dqmax431 max 1.1 Inf -> Infinity +dqmax432 max 1 1.1 -> 1.1 +dqmax433 max 1.0 1 -> 1 +dqmax434 max 0.1 1.0 -> 1.0 +dqmax435 max 0.10 0.1 -> 0.1 +dqmax436 max 0.100 0.10 -> 0.10 +dqmax437 max 0 0.10 -> 0.10 +dqmax438 max 0.0 0 -> 0 +dqmax439 max -0 0.0 -> 0.0 +dqmax440 max -0.0 0.0 -> 0.0 +dqmax441 max -0.0 0.00 -> 0.00 +dqmax442 max -0.00 0.0 -> 0.0 +dqmax443 max -0.0 0 -> 0 +dqmax444 max -0 0 -> 0 +dqmax445 max -0 -0.0 -> -0.0 +dqmax446 max -0.100 -0 -> -0 +dqmax447 max -0.10 -0.100 -> -0.100 +dqmax448 max -0.1 -0.10 -> -0.10 +dqmax449 max -1.0 -0.1 -> -0.1 +dqmax450 max -1 -1.0 -> -1.0 +dqmax451 max -1.1 -1 -> -1 +dqmax453 max -Inf -1.1 -> -1.1 +-- largies +dqmax460 max 1000 1E+3 -> 1E+3 +dqmax461 max 1E+3 1000 -> 1E+3 +dqmax462 max 1000 -1E+3 -> 1000 +dqmax463 max 1E+3 -1000 -> 1E+3 +dqmax464 max -1000 1E+3 -> 1E+3 +dqmax465 max -1E+3 1000 -> 1000 +dqmax466 max -1000 -1E+3 -> -1000 +dqmax467 max -1E+3 -1000 -> -1000 + +-- misalignment traps for little-endian +dqmax471 max 1.0 0.1 -> 1.0 +dqmax472 max 0.1 1.0 -> 1.0 +dqmax473 max 10.0 0.1 -> 10.0 +dqmax474 max 0.1 10.0 -> 10.0 +dqmax475 max 100 1.0 -> 100 +dqmax476 max 1.0 100 -> 100 +dqmax477 max 1000 10.0 -> 1000 +dqmax478 max 10.0 1000 -> 1000 +dqmax479 max 10000 100.0 -> 10000 +dqmax480 max 100.0 10000 -> 10000 +dqmax481 max 100000 1000.0 -> 100000 +dqmax482 max 1000.0 100000 -> 100000 +dqmax483 max 1000000 10000.0 -> 1000000 +dqmax484 max 10000.0 1000000 -> 1000000 + +-- subnormals +dqmax510 max 1.00E-6143 0 -> 1.00E-6143 +dqmax511 max 0.1E-6143 0 -> 1E-6144 Subnormal +dqmax512 max 0.10E-6143 0 -> 1.0E-6144 Subnormal +dqmax513 max 0.100E-6143 0 -> 1.00E-6144 Subnormal +dqmax514 max 0.01E-6143 0 -> 1E-6145 Subnormal +dqmax515 max 0.999E-6143 0 -> 9.99E-6144 Subnormal +dqmax516 max 0.099E-6143 0 -> 9.9E-6145 Subnormal +dqmax517 max 0.009E-6143 0 -> 9E-6146 Subnormal +dqmax518 max 0.001E-6143 0 -> 1E-6146 Subnormal +dqmax519 max 0.0009E-6143 0 -> 9E-6147 Subnormal +dqmax520 max 0.0001E-6143 0 -> 1E-6147 Subnormal + +dqmax530 max -1.00E-6143 0 -> 0 +dqmax531 max -0.1E-6143 0 -> 0 +dqmax532 max -0.10E-6143 0 -> 0 +dqmax533 max -0.100E-6143 0 -> 0 +dqmax534 max -0.01E-6143 0 -> 0 +dqmax535 max -0.999E-6143 0 -> 0 +dqmax536 max -0.099E-6143 0 -> 0 +dqmax537 max -0.009E-6143 0 -> 0 +dqmax538 max -0.001E-6143 0 -> 0 +dqmax539 max -0.0009E-6143 0 -> 0 +dqmax540 max -0.0001E-6143 0 -> 0 + +-- Null tests +dqmax900 max 10 # -> NaN Invalid_operation +dqmax901 max # 10 -> NaN Invalid_operation + + + diff --git a/Lib/test/decimaltestdata/dqMaxMag.decTest b/Lib/test/decimaltestdata/dqMaxMag.decTest index 6f5be24609..6621e80d92 100644 --- a/Lib/test/decimaltestdata/dqMaxMag.decTest +++ b/Lib/test/decimaltestdata/dqMaxMag.decTest @@ -1,304 +1,304 @@ -------------------------------------------------------------------------
--- dqMaxMag.decTest -- decQuad maxnummag --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- we assume that base comparison is tested in compare.decTest, so
--- these mainly cover special cases and rounding
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
--- sanity checks
-dqmxg001 maxmag -2 -2 -> -2
-dqmxg002 maxmag -2 -1 -> -2
-dqmxg003 maxmag -2 0 -> -2
-dqmxg004 maxmag -2 1 -> -2
-dqmxg005 maxmag -2 2 -> 2
-dqmxg006 maxmag -1 -2 -> -2
-dqmxg007 maxmag -1 -1 -> -1
-dqmxg008 maxmag -1 0 -> -1
-dqmxg009 maxmag -1 1 -> 1
-dqmxg010 maxmag -1 2 -> 2
-dqmxg011 maxmag 0 -2 -> -2
-dqmxg012 maxmag 0 -1 -> -1
-dqmxg013 maxmag 0 0 -> 0
-dqmxg014 maxmag 0 1 -> 1
-dqmxg015 maxmag 0 2 -> 2
-dqmxg016 maxmag 1 -2 -> -2
-dqmxg017 maxmag 1 -1 -> 1
-dqmxg018 maxmag 1 0 -> 1
-dqmxg019 maxmag 1 1 -> 1
-dqmxg020 maxmag 1 2 -> 2
-dqmxg021 maxmag 2 -2 -> 2
-dqmxg022 maxmag 2 -1 -> 2
-dqmxg023 maxmag 2 0 -> 2
-dqmxg025 maxmag 2 1 -> 2
-dqmxg026 maxmag 2 2 -> 2
-
--- extended zeros
-dqmxg030 maxmag 0 0 -> 0
-dqmxg031 maxmag 0 -0 -> 0
-dqmxg032 maxmag 0 -0.0 -> 0
-dqmxg033 maxmag 0 0.0 -> 0
-dqmxg034 maxmag -0 0 -> 0 -- note: -0 = 0, but 0 chosen
-dqmxg035 maxmag -0 -0 -> -0
-dqmxg036 maxmag -0 -0.0 -> -0.0
-dqmxg037 maxmag -0 0.0 -> 0.0
-dqmxg038 maxmag 0.0 0 -> 0
-dqmxg039 maxmag 0.0 -0 -> 0.0
-dqmxg040 maxmag 0.0 -0.0 -> 0.0
-dqmxg041 maxmag 0.0 0.0 -> 0.0
-dqmxg042 maxmag -0.0 0 -> 0
-dqmxg043 maxmag -0.0 -0 -> -0.0
-dqmxg044 maxmag -0.0 -0.0 -> -0.0
-dqmxg045 maxmag -0.0 0.0 -> 0.0
-
-dqmxg050 maxmag -0E1 0E1 -> 0E+1
-dqmxg051 maxmag -0E2 0E2 -> 0E+2
-dqmxg052 maxmag -0E2 0E1 -> 0E+1
-dqmxg053 maxmag -0E1 0E2 -> 0E+2
-dqmxg054 maxmag 0E1 -0E1 -> 0E+1
-dqmxg055 maxmag 0E2 -0E2 -> 0E+2
-dqmxg056 maxmag 0E2 -0E1 -> 0E+2
-dqmxg057 maxmag 0E1 -0E2 -> 0E+1
-
-dqmxg058 maxmag 0E1 0E1 -> 0E+1
-dqmxg059 maxmag 0E2 0E2 -> 0E+2
-dqmxg060 maxmag 0E2 0E1 -> 0E+2
-dqmxg061 maxmag 0E1 0E2 -> 0E+2
-dqmxg062 maxmag -0E1 -0E1 -> -0E+1
-dqmxg063 maxmag -0E2 -0E2 -> -0E+2
-dqmxg064 maxmag -0E2 -0E1 -> -0E+1
-dqmxg065 maxmag -0E1 -0E2 -> -0E+1
-
--- Specials
-dqmxg090 maxmag Inf -Inf -> Infinity
-dqmxg091 maxmag Inf -1000 -> Infinity
-dqmxg092 maxmag Inf -1 -> Infinity
-dqmxg093 maxmag Inf -0 -> Infinity
-dqmxg094 maxmag Inf 0 -> Infinity
-dqmxg095 maxmag Inf 1 -> Infinity
-dqmxg096 maxmag Inf 1000 -> Infinity
-dqmxg097 maxmag Inf Inf -> Infinity
-dqmxg098 maxmag -1000 Inf -> Infinity
-dqmxg099 maxmag -Inf Inf -> Infinity
-dqmxg100 maxmag -1 Inf -> Infinity
-dqmxg101 maxmag -0 Inf -> Infinity
-dqmxg102 maxmag 0 Inf -> Infinity
-dqmxg103 maxmag 1 Inf -> Infinity
-dqmxg104 maxmag 1000 Inf -> Infinity
-dqmxg105 maxmag Inf Inf -> Infinity
-
-dqmxg120 maxmag -Inf -Inf -> -Infinity
-dqmxg121 maxmag -Inf -1000 -> -Infinity
-dqmxg122 maxmag -Inf -1 -> -Infinity
-dqmxg123 maxmag -Inf -0 -> -Infinity
-dqmxg124 maxmag -Inf 0 -> -Infinity
-dqmxg125 maxmag -Inf 1 -> -Infinity
-dqmxg126 maxmag -Inf 1000 -> -Infinity
-dqmxg127 maxmag -Inf Inf -> Infinity
-dqmxg128 maxmag -Inf -Inf -> -Infinity
-dqmxg129 maxmag -1000 -Inf -> -Infinity
-dqmxg130 maxmag -1 -Inf -> -Infinity
-dqmxg131 maxmag -0 -Inf -> -Infinity
-dqmxg132 maxmag 0 -Inf -> -Infinity
-dqmxg133 maxmag 1 -Inf -> -Infinity
-dqmxg134 maxmag 1000 -Inf -> -Infinity
-dqmxg135 maxmag Inf -Inf -> Infinity
-
--- 2004.08.02 754r chooses number over NaN in mixed cases
-dqmxg141 maxmag NaN -Inf -> -Infinity
-dqmxg142 maxmag NaN -1000 -> -1000
-dqmxg143 maxmag NaN -1 -> -1
-dqmxg144 maxmag NaN -0 -> -0
-dqmxg145 maxmag NaN 0 -> 0
-dqmxg146 maxmag NaN 1 -> 1
-dqmxg147 maxmag NaN 1000 -> 1000
-dqmxg148 maxmag NaN Inf -> Infinity
-dqmxg149 maxmag NaN NaN -> NaN
-dqmxg150 maxmag -Inf NaN -> -Infinity
-dqmxg151 maxmag -1000 NaN -> -1000
-dqmxg152 maxmag -1 NaN -> -1
-dqmxg153 maxmag -0 NaN -> -0
-dqmxg154 maxmag 0 NaN -> 0
-dqmxg155 maxmag 1 NaN -> 1
-dqmxg156 maxmag 1000 NaN -> 1000
-dqmxg157 maxmag Inf NaN -> Infinity
-
-dqmxg161 maxmag sNaN -Inf -> NaN Invalid_operation
-dqmxg162 maxmag sNaN -1000 -> NaN Invalid_operation
-dqmxg163 maxmag sNaN -1 -> NaN Invalid_operation
-dqmxg164 maxmag sNaN -0 -> NaN Invalid_operation
-dqmxg165 maxmag sNaN 0 -> NaN Invalid_operation
-dqmxg166 maxmag sNaN 1 -> NaN Invalid_operation
-dqmxg167 maxmag sNaN 1000 -> NaN Invalid_operation
-dqmxg168 maxmag sNaN NaN -> NaN Invalid_operation
-dqmxg169 maxmag sNaN sNaN -> NaN Invalid_operation
-dqmxg170 maxmag NaN sNaN -> NaN Invalid_operation
-dqmxg171 maxmag -Inf sNaN -> NaN Invalid_operation
-dqmxg172 maxmag -1000 sNaN -> NaN Invalid_operation
-dqmxg173 maxmag -1 sNaN -> NaN Invalid_operation
-dqmxg174 maxmag -0 sNaN -> NaN Invalid_operation
-dqmxg175 maxmag 0 sNaN -> NaN Invalid_operation
-dqmxg176 maxmag 1 sNaN -> NaN Invalid_operation
-dqmxg177 maxmag 1000 sNaN -> NaN Invalid_operation
-dqmxg178 maxmag Inf sNaN -> NaN Invalid_operation
-dqmxg179 maxmag NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-dqmxg181 maxmag NaN9 -Inf -> -Infinity
-dqmxg182 maxmag NaN8 9 -> 9
-dqmxg183 maxmag -NaN7 Inf -> Infinity
-
-dqmxg184 maxmag -NaN1 NaN11 -> -NaN1
-dqmxg185 maxmag NaN2 NaN12 -> NaN2
-dqmxg186 maxmag -NaN13 -NaN7 -> -NaN13
-dqmxg187 maxmag NaN14 -NaN5 -> NaN14
-
-dqmxg188 maxmag -Inf NaN4 -> -Infinity
-dqmxg189 maxmag -9 -NaN3 -> -9
-dqmxg190 maxmag Inf NaN2 -> Infinity
-
-dqmxg191 maxmag sNaN99 -Inf -> NaN99 Invalid_operation
-dqmxg192 maxmag sNaN98 -1 -> NaN98 Invalid_operation
-dqmxg193 maxmag -sNaN97 NaN -> -NaN97 Invalid_operation
-dqmxg194 maxmag sNaN96 sNaN94 -> NaN96 Invalid_operation
-dqmxg195 maxmag NaN95 sNaN93 -> NaN93 Invalid_operation
-dqmxg196 maxmag -Inf sNaN92 -> NaN92 Invalid_operation
-dqmxg197 maxmag 0 sNaN91 -> NaN91 Invalid_operation
-dqmxg198 maxmag Inf -sNaN90 -> -NaN90 Invalid_operation
-dqmxg199 maxmag NaN sNaN89 -> NaN89 Invalid_operation
-
--- old rounding checks
-dqmxg221 maxmag 12345678000 1 -> 12345678000
-dqmxg222 maxmag 1 12345678000 -> 12345678000
-dqmxg223 maxmag 1234567800 1 -> 1234567800
-dqmxg224 maxmag 1 1234567800 -> 1234567800
-dqmxg225 maxmag 1234567890 1 -> 1234567890
-dqmxg226 maxmag 1 1234567890 -> 1234567890
-dqmxg227 maxmag 1234567891 1 -> 1234567891
-dqmxg228 maxmag 1 1234567891 -> 1234567891
-dqmxg229 maxmag 12345678901 1 -> 12345678901
-dqmxg230 maxmag 1 12345678901 -> 12345678901
-dqmxg231 maxmag 1234567896 1 -> 1234567896
-dqmxg232 maxmag 1 1234567896 -> 1234567896
-dqmxg233 maxmag -1234567891 1 -> -1234567891
-dqmxg234 maxmag 1 -1234567891 -> -1234567891
-dqmxg235 maxmag -12345678901 1 -> -12345678901
-dqmxg236 maxmag 1 -12345678901 -> -12345678901
-dqmxg237 maxmag -1234567896 1 -> -1234567896
-dqmxg238 maxmag 1 -1234567896 -> -1234567896
-
--- from examples
-dqmxg280 maxmag '3' '2' -> '3'
-dqmxg281 maxmag '-10' '3' -> '-10'
-dqmxg282 maxmag '1.0' '1' -> '1'
-dqmxg283 maxmag '1' '1.0' -> '1'
-dqmxg284 maxmag '7' 'NaN' -> '7'
-
--- expanded list from min/max 754r purple prose
--- [explicit tests for exponent ordering]
-dqmxg401 maxmag Inf 1.1 -> Infinity
-dqmxg402 maxmag 1.1 1 -> 1.1
-dqmxg403 maxmag 1 1.0 -> 1
-dqmxg404 maxmag 1.0 0.1 -> 1.0
-dqmxg405 maxmag 0.1 0.10 -> 0.1
-dqmxg406 maxmag 0.10 0.100 -> 0.10
-dqmxg407 maxmag 0.10 0 -> 0.10
-dqmxg408 maxmag 0 0.0 -> 0
-dqmxg409 maxmag 0.0 -0 -> 0.0
-dqmxg410 maxmag 0.0 -0.0 -> 0.0
-dqmxg411 maxmag 0.00 -0.0 -> 0.00
-dqmxg412 maxmag 0.0 -0.00 -> 0.0
-dqmxg413 maxmag 0 -0.0 -> 0
-dqmxg414 maxmag 0 -0 -> 0
-dqmxg415 maxmag -0.0 -0 -> -0.0
-dqmxg416 maxmag -0 -0.100 -> -0.100
-dqmxg417 maxmag -0.100 -0.10 -> -0.100
-dqmxg418 maxmag -0.10 -0.1 -> -0.10
-dqmxg419 maxmag -0.1 -1.0 -> -1.0
-dqmxg420 maxmag -1.0 -1 -> -1.0
-dqmxg421 maxmag -1 -1.1 -> -1.1
-dqmxg423 maxmag -1.1 -Inf -> -Infinity
--- same with operands reversed
-dqmxg431 maxmag 1.1 Inf -> Infinity
-dqmxg432 maxmag 1 1.1 -> 1.1
-dqmxg433 maxmag 1.0 1 -> 1
-dqmxg434 maxmag 0.1 1.0 -> 1.0
-dqmxg435 maxmag 0.10 0.1 -> 0.1
-dqmxg436 maxmag 0.100 0.10 -> 0.10
-dqmxg437 maxmag 0 0.10 -> 0.10
-dqmxg438 maxmag 0.0 0 -> 0
-dqmxg439 maxmag -0 0.0 -> 0.0
-dqmxg440 maxmag -0.0 0.0 -> 0.0
-dqmxg441 maxmag -0.0 0.00 -> 0.00
-dqmxg442 maxmag -0.00 0.0 -> 0.0
-dqmxg443 maxmag -0.0 0 -> 0
-dqmxg444 maxmag -0 0 -> 0
-dqmxg445 maxmag -0 -0.0 -> -0.0
-dqmxg446 maxmag -0.100 -0 -> -0.100
-dqmxg447 maxmag -0.10 -0.100 -> -0.100
-dqmxg448 maxmag -0.1 -0.10 -> -0.10
-dqmxg449 maxmag -1.0 -0.1 -> -1.0
-dqmxg450 maxmag -1 -1.0 -> -1.0
-dqmxg451 maxmag -1.1 -1 -> -1.1
-dqmxg453 maxmag -Inf -1.1 -> -Infinity
--- largies
-dqmxg460 maxmag 1000 1E+3 -> 1E+3
-dqmxg461 maxmag 1E+3 1000 -> 1E+3
-dqmxg462 maxmag 1000 -1E+3 -> 1000
-dqmxg463 maxmag 1E+3 -1000 -> 1E+3
-dqmxg464 maxmag -1000 1E+3 -> 1E+3
-dqmxg465 maxmag -1E+3 1000 -> 1000
-dqmxg466 maxmag -1000 -1E+3 -> -1000
-dqmxg467 maxmag -1E+3 -1000 -> -1000
-
--- subnormals
-dqmxg510 maxmag 1.00E-6143 0 -> 1.00E-6143
-dqmxg511 maxmag 0.1E-6143 0 -> 1E-6144 Subnormal
-dqmxg512 maxmag 0.10E-6143 0 -> 1.0E-6144 Subnormal
-dqmxg513 maxmag 0.100E-6143 0 -> 1.00E-6144 Subnormal
-dqmxg514 maxmag 0.01E-6143 0 -> 1E-6145 Subnormal
-dqmxg515 maxmag 0.999E-6143 0 -> 9.99E-6144 Subnormal
-dqmxg516 maxmag 0.099E-6143 0 -> 9.9E-6145 Subnormal
-dqmxg517 maxmag 0.009E-6143 0 -> 9E-6146 Subnormal
-dqmxg518 maxmag 0.001E-6143 0 -> 1E-6146 Subnormal
-dqmxg519 maxmag 0.0009E-6143 0 -> 9E-6147 Subnormal
-dqmxg520 maxmag 0.0001E-6143 0 -> 1E-6147 Subnormal
-
-dqmxg530 maxmag -1.00E-6143 0 -> -1.00E-6143
-dqmxg531 maxmag -0.1E-6143 0 -> -1E-6144 Subnormal
-dqmxg532 maxmag -0.10E-6143 0 -> -1.0E-6144 Subnormal
-dqmxg533 maxmag -0.100E-6143 0 -> -1.00E-6144 Subnormal
-dqmxg534 maxmag -0.01E-6143 0 -> -1E-6145 Subnormal
-dqmxg535 maxmag -0.999E-6143 0 -> -9.99E-6144 Subnormal
-dqmxg536 maxmag -0.099E-6143 0 -> -9.9E-6145 Subnormal
-dqmxg537 maxmag -0.009E-6143 0 -> -9E-6146 Subnormal
-dqmxg538 maxmag -0.001E-6143 0 -> -1E-6146 Subnormal
-dqmxg539 maxmag -0.0009E-6143 0 -> -9E-6147 Subnormal
-dqmxg540 maxmag -0.0001E-6143 0 -> -1E-6147 Subnormal
-
--- Null tests
-dqmxg900 maxmag 10 # -> NaN Invalid_operation
-dqmxg901 maxmag # 10 -> NaN Invalid_operation
-
+------------------------------------------------------------------------ +-- dqMaxMag.decTest -- decQuad maxnummag -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- we assume that base comparison is tested in compare.decTest, so +-- these mainly cover special cases and rounding +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +-- sanity checks +dqmxg001 maxmag -2 -2 -> -2 +dqmxg002 maxmag -2 -1 -> -2 +dqmxg003 maxmag -2 0 -> -2 +dqmxg004 maxmag -2 1 -> -2 +dqmxg005 maxmag -2 2 -> 2 +dqmxg006 maxmag -1 -2 -> -2 +dqmxg007 maxmag -1 -1 -> -1 +dqmxg008 maxmag -1 0 -> -1 +dqmxg009 maxmag -1 1 -> 1 +dqmxg010 maxmag -1 2 -> 2 +dqmxg011 maxmag 0 -2 -> -2 +dqmxg012 maxmag 0 -1 -> -1 +dqmxg013 maxmag 0 0 -> 0 +dqmxg014 maxmag 0 1 -> 1 +dqmxg015 maxmag 0 2 -> 2 +dqmxg016 maxmag 1 -2 -> -2 +dqmxg017 maxmag 1 -1 -> 1 +dqmxg018 maxmag 1 0 -> 1 +dqmxg019 maxmag 1 1 -> 1 +dqmxg020 maxmag 1 2 -> 2 +dqmxg021 maxmag 2 -2 -> 2 +dqmxg022 maxmag 2 -1 -> 2 +dqmxg023 maxmag 2 0 -> 2 +dqmxg025 maxmag 2 1 -> 2 +dqmxg026 maxmag 2 2 -> 2 + +-- extended zeros +dqmxg030 maxmag 0 0 -> 0 +dqmxg031 maxmag 0 -0 -> 0 +dqmxg032 maxmag 0 -0.0 -> 0 +dqmxg033 maxmag 0 0.0 -> 0 +dqmxg034 maxmag -0 0 -> 0 -- note: -0 = 0, but 0 chosen +dqmxg035 maxmag -0 -0 -> -0 +dqmxg036 maxmag -0 -0.0 -> -0.0 +dqmxg037 maxmag -0 0.0 -> 0.0 +dqmxg038 maxmag 0.0 0 -> 0 +dqmxg039 maxmag 0.0 -0 -> 0.0 +dqmxg040 maxmag 0.0 -0.0 -> 0.0 +dqmxg041 maxmag 0.0 0.0 -> 0.0 +dqmxg042 maxmag -0.0 0 -> 0 +dqmxg043 maxmag -0.0 -0 -> -0.0 +dqmxg044 maxmag -0.0 -0.0 -> -0.0 +dqmxg045 maxmag -0.0 0.0 -> 0.0 + +dqmxg050 maxmag -0E1 0E1 -> 0E+1 +dqmxg051 maxmag -0E2 0E2 -> 0E+2 +dqmxg052 maxmag -0E2 0E1 -> 0E+1 +dqmxg053 maxmag -0E1 0E2 -> 0E+2 +dqmxg054 maxmag 0E1 -0E1 -> 0E+1 +dqmxg055 maxmag 0E2 -0E2 -> 0E+2 +dqmxg056 maxmag 0E2 -0E1 -> 0E+2 +dqmxg057 maxmag 0E1 -0E2 -> 0E+1 + +dqmxg058 maxmag 0E1 0E1 -> 0E+1 +dqmxg059 maxmag 0E2 0E2 -> 0E+2 +dqmxg060 maxmag 0E2 0E1 -> 0E+2 +dqmxg061 maxmag 0E1 0E2 -> 0E+2 +dqmxg062 maxmag -0E1 -0E1 -> -0E+1 +dqmxg063 maxmag -0E2 -0E2 -> -0E+2 +dqmxg064 maxmag -0E2 -0E1 -> -0E+1 +dqmxg065 maxmag -0E1 -0E2 -> -0E+1 + +-- Specials +dqmxg090 maxmag Inf -Inf -> Infinity +dqmxg091 maxmag Inf -1000 -> Infinity +dqmxg092 maxmag Inf -1 -> Infinity +dqmxg093 maxmag Inf -0 -> Infinity +dqmxg094 maxmag Inf 0 -> Infinity +dqmxg095 maxmag Inf 1 -> Infinity +dqmxg096 maxmag Inf 1000 -> Infinity +dqmxg097 maxmag Inf Inf -> Infinity +dqmxg098 maxmag -1000 Inf -> Infinity +dqmxg099 maxmag -Inf Inf -> Infinity +dqmxg100 maxmag -1 Inf -> Infinity +dqmxg101 maxmag -0 Inf -> Infinity +dqmxg102 maxmag 0 Inf -> Infinity +dqmxg103 maxmag 1 Inf -> Infinity +dqmxg104 maxmag 1000 Inf -> Infinity +dqmxg105 maxmag Inf Inf -> Infinity + +dqmxg120 maxmag -Inf -Inf -> -Infinity +dqmxg121 maxmag -Inf -1000 -> -Infinity +dqmxg122 maxmag -Inf -1 -> -Infinity +dqmxg123 maxmag -Inf -0 -> -Infinity +dqmxg124 maxmag -Inf 0 -> -Infinity +dqmxg125 maxmag -Inf 1 -> -Infinity +dqmxg126 maxmag -Inf 1000 -> -Infinity +dqmxg127 maxmag -Inf Inf -> Infinity +dqmxg128 maxmag -Inf -Inf -> -Infinity +dqmxg129 maxmag -1000 -Inf -> -Infinity +dqmxg130 maxmag -1 -Inf -> -Infinity +dqmxg131 maxmag -0 -Inf -> -Infinity +dqmxg132 maxmag 0 -Inf -> -Infinity +dqmxg133 maxmag 1 -Inf -> -Infinity +dqmxg134 maxmag 1000 -Inf -> -Infinity +dqmxg135 maxmag Inf -Inf -> Infinity + +-- 2004.08.02 754r chooses number over NaN in mixed cases +dqmxg141 maxmag NaN -Inf -> -Infinity +dqmxg142 maxmag NaN -1000 -> -1000 +dqmxg143 maxmag NaN -1 -> -1 +dqmxg144 maxmag NaN -0 -> -0 +dqmxg145 maxmag NaN 0 -> 0 +dqmxg146 maxmag NaN 1 -> 1 +dqmxg147 maxmag NaN 1000 -> 1000 +dqmxg148 maxmag NaN Inf -> Infinity +dqmxg149 maxmag NaN NaN -> NaN +dqmxg150 maxmag -Inf NaN -> -Infinity +dqmxg151 maxmag -1000 NaN -> -1000 +dqmxg152 maxmag -1 NaN -> -1 +dqmxg153 maxmag -0 NaN -> -0 +dqmxg154 maxmag 0 NaN -> 0 +dqmxg155 maxmag 1 NaN -> 1 +dqmxg156 maxmag 1000 NaN -> 1000 +dqmxg157 maxmag Inf NaN -> Infinity + +dqmxg161 maxmag sNaN -Inf -> NaN Invalid_operation +dqmxg162 maxmag sNaN -1000 -> NaN Invalid_operation +dqmxg163 maxmag sNaN -1 -> NaN Invalid_operation +dqmxg164 maxmag sNaN -0 -> NaN Invalid_operation +dqmxg165 maxmag sNaN 0 -> NaN Invalid_operation +dqmxg166 maxmag sNaN 1 -> NaN Invalid_operation +dqmxg167 maxmag sNaN 1000 -> NaN Invalid_operation +dqmxg168 maxmag sNaN NaN -> NaN Invalid_operation +dqmxg169 maxmag sNaN sNaN -> NaN Invalid_operation +dqmxg170 maxmag NaN sNaN -> NaN Invalid_operation +dqmxg171 maxmag -Inf sNaN -> NaN Invalid_operation +dqmxg172 maxmag -1000 sNaN -> NaN Invalid_operation +dqmxg173 maxmag -1 sNaN -> NaN Invalid_operation +dqmxg174 maxmag -0 sNaN -> NaN Invalid_operation +dqmxg175 maxmag 0 sNaN -> NaN Invalid_operation +dqmxg176 maxmag 1 sNaN -> NaN Invalid_operation +dqmxg177 maxmag 1000 sNaN -> NaN Invalid_operation +dqmxg178 maxmag Inf sNaN -> NaN Invalid_operation +dqmxg179 maxmag NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +dqmxg181 maxmag NaN9 -Inf -> -Infinity +dqmxg182 maxmag NaN8 9 -> 9 +dqmxg183 maxmag -NaN7 Inf -> Infinity + +dqmxg184 maxmag -NaN1 NaN11 -> -NaN1 +dqmxg185 maxmag NaN2 NaN12 -> NaN2 +dqmxg186 maxmag -NaN13 -NaN7 -> -NaN13 +dqmxg187 maxmag NaN14 -NaN5 -> NaN14 + +dqmxg188 maxmag -Inf NaN4 -> -Infinity +dqmxg189 maxmag -9 -NaN3 -> -9 +dqmxg190 maxmag Inf NaN2 -> Infinity + +dqmxg191 maxmag sNaN99 -Inf -> NaN99 Invalid_operation +dqmxg192 maxmag sNaN98 -1 -> NaN98 Invalid_operation +dqmxg193 maxmag -sNaN97 NaN -> -NaN97 Invalid_operation +dqmxg194 maxmag sNaN96 sNaN94 -> NaN96 Invalid_operation +dqmxg195 maxmag NaN95 sNaN93 -> NaN93 Invalid_operation +dqmxg196 maxmag -Inf sNaN92 -> NaN92 Invalid_operation +dqmxg197 maxmag 0 sNaN91 -> NaN91 Invalid_operation +dqmxg198 maxmag Inf -sNaN90 -> -NaN90 Invalid_operation +dqmxg199 maxmag NaN sNaN89 -> NaN89 Invalid_operation + +-- old rounding checks +dqmxg221 maxmag 12345678000 1 -> 12345678000 +dqmxg222 maxmag 1 12345678000 -> 12345678000 +dqmxg223 maxmag 1234567800 1 -> 1234567800 +dqmxg224 maxmag 1 1234567800 -> 1234567800 +dqmxg225 maxmag 1234567890 1 -> 1234567890 +dqmxg226 maxmag 1 1234567890 -> 1234567890 +dqmxg227 maxmag 1234567891 1 -> 1234567891 +dqmxg228 maxmag 1 1234567891 -> 1234567891 +dqmxg229 maxmag 12345678901 1 -> 12345678901 +dqmxg230 maxmag 1 12345678901 -> 12345678901 +dqmxg231 maxmag 1234567896 1 -> 1234567896 +dqmxg232 maxmag 1 1234567896 -> 1234567896 +dqmxg233 maxmag -1234567891 1 -> -1234567891 +dqmxg234 maxmag 1 -1234567891 -> -1234567891 +dqmxg235 maxmag -12345678901 1 -> -12345678901 +dqmxg236 maxmag 1 -12345678901 -> -12345678901 +dqmxg237 maxmag -1234567896 1 -> -1234567896 +dqmxg238 maxmag 1 -1234567896 -> -1234567896 + +-- from examples +dqmxg280 maxmag '3' '2' -> '3' +dqmxg281 maxmag '-10' '3' -> '-10' +dqmxg282 maxmag '1.0' '1' -> '1' +dqmxg283 maxmag '1' '1.0' -> '1' +dqmxg284 maxmag '7' 'NaN' -> '7' + +-- expanded list from min/max 754r purple prose +-- [explicit tests for exponent ordering] +dqmxg401 maxmag Inf 1.1 -> Infinity +dqmxg402 maxmag 1.1 1 -> 1.1 +dqmxg403 maxmag 1 1.0 -> 1 +dqmxg404 maxmag 1.0 0.1 -> 1.0 +dqmxg405 maxmag 0.1 0.10 -> 0.1 +dqmxg406 maxmag 0.10 0.100 -> 0.10 +dqmxg407 maxmag 0.10 0 -> 0.10 +dqmxg408 maxmag 0 0.0 -> 0 +dqmxg409 maxmag 0.0 -0 -> 0.0 +dqmxg410 maxmag 0.0 -0.0 -> 0.0 +dqmxg411 maxmag 0.00 -0.0 -> 0.00 +dqmxg412 maxmag 0.0 -0.00 -> 0.0 +dqmxg413 maxmag 0 -0.0 -> 0 +dqmxg414 maxmag 0 -0 -> 0 +dqmxg415 maxmag -0.0 -0 -> -0.0 +dqmxg416 maxmag -0 -0.100 -> -0.100 +dqmxg417 maxmag -0.100 -0.10 -> -0.100 +dqmxg418 maxmag -0.10 -0.1 -> -0.10 +dqmxg419 maxmag -0.1 -1.0 -> -1.0 +dqmxg420 maxmag -1.0 -1 -> -1.0 +dqmxg421 maxmag -1 -1.1 -> -1.1 +dqmxg423 maxmag -1.1 -Inf -> -Infinity +-- same with operands reversed +dqmxg431 maxmag 1.1 Inf -> Infinity +dqmxg432 maxmag 1 1.1 -> 1.1 +dqmxg433 maxmag 1.0 1 -> 1 +dqmxg434 maxmag 0.1 1.0 -> 1.0 +dqmxg435 maxmag 0.10 0.1 -> 0.1 +dqmxg436 maxmag 0.100 0.10 -> 0.10 +dqmxg437 maxmag 0 0.10 -> 0.10 +dqmxg438 maxmag 0.0 0 -> 0 +dqmxg439 maxmag -0 0.0 -> 0.0 +dqmxg440 maxmag -0.0 0.0 -> 0.0 +dqmxg441 maxmag -0.0 0.00 -> 0.00 +dqmxg442 maxmag -0.00 0.0 -> 0.0 +dqmxg443 maxmag -0.0 0 -> 0 +dqmxg444 maxmag -0 0 -> 0 +dqmxg445 maxmag -0 -0.0 -> -0.0 +dqmxg446 maxmag -0.100 -0 -> -0.100 +dqmxg447 maxmag -0.10 -0.100 -> -0.100 +dqmxg448 maxmag -0.1 -0.10 -> -0.10 +dqmxg449 maxmag -1.0 -0.1 -> -1.0 +dqmxg450 maxmag -1 -1.0 -> -1.0 +dqmxg451 maxmag -1.1 -1 -> -1.1 +dqmxg453 maxmag -Inf -1.1 -> -Infinity +-- largies +dqmxg460 maxmag 1000 1E+3 -> 1E+3 +dqmxg461 maxmag 1E+3 1000 -> 1E+3 +dqmxg462 maxmag 1000 -1E+3 -> 1000 +dqmxg463 maxmag 1E+3 -1000 -> 1E+3 +dqmxg464 maxmag -1000 1E+3 -> 1E+3 +dqmxg465 maxmag -1E+3 1000 -> 1000 +dqmxg466 maxmag -1000 -1E+3 -> -1000 +dqmxg467 maxmag -1E+3 -1000 -> -1000 + +-- subnormals +dqmxg510 maxmag 1.00E-6143 0 -> 1.00E-6143 +dqmxg511 maxmag 0.1E-6143 0 -> 1E-6144 Subnormal +dqmxg512 maxmag 0.10E-6143 0 -> 1.0E-6144 Subnormal +dqmxg513 maxmag 0.100E-6143 0 -> 1.00E-6144 Subnormal +dqmxg514 maxmag 0.01E-6143 0 -> 1E-6145 Subnormal +dqmxg515 maxmag 0.999E-6143 0 -> 9.99E-6144 Subnormal +dqmxg516 maxmag 0.099E-6143 0 -> 9.9E-6145 Subnormal +dqmxg517 maxmag 0.009E-6143 0 -> 9E-6146 Subnormal +dqmxg518 maxmag 0.001E-6143 0 -> 1E-6146 Subnormal +dqmxg519 maxmag 0.0009E-6143 0 -> 9E-6147 Subnormal +dqmxg520 maxmag 0.0001E-6143 0 -> 1E-6147 Subnormal + +dqmxg530 maxmag -1.00E-6143 0 -> -1.00E-6143 +dqmxg531 maxmag -0.1E-6143 0 -> -1E-6144 Subnormal +dqmxg532 maxmag -0.10E-6143 0 -> -1.0E-6144 Subnormal +dqmxg533 maxmag -0.100E-6143 0 -> -1.00E-6144 Subnormal +dqmxg534 maxmag -0.01E-6143 0 -> -1E-6145 Subnormal +dqmxg535 maxmag -0.999E-6143 0 -> -9.99E-6144 Subnormal +dqmxg536 maxmag -0.099E-6143 0 -> -9.9E-6145 Subnormal +dqmxg537 maxmag -0.009E-6143 0 -> -9E-6146 Subnormal +dqmxg538 maxmag -0.001E-6143 0 -> -1E-6146 Subnormal +dqmxg539 maxmag -0.0009E-6143 0 -> -9E-6147 Subnormal +dqmxg540 maxmag -0.0001E-6143 0 -> -1E-6147 Subnormal + +-- Null tests +dqmxg900 maxmag 10 # -> NaN Invalid_operation +dqmxg901 maxmag # 10 -> NaN Invalid_operation + diff --git a/Lib/test/decimaltestdata/dqMin.decTest b/Lib/test/decimaltestdata/dqMin.decTest index 53020398c5..c87f4c54ed 100644 --- a/Lib/test/decimaltestdata/dqMin.decTest +++ b/Lib/test/decimaltestdata/dqMin.decTest @@ -1,309 +1,309 @@ -------------------------------------------------------------------------
--- dqMin.decTest -- decQuad minnum --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- we assume that base comparison is tested in compare.decTest, so
--- these mainly cover special cases and rounding
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
--- sanity checks
-dqmin001 min -2 -2 -> -2
-dqmin002 min -2 -1 -> -2
-dqmin003 min -2 0 -> -2
-dqmin004 min -2 1 -> -2
-dqmin005 min -2 2 -> -2
-dqmin006 min -1 -2 -> -2
-dqmin007 min -1 -1 -> -1
-dqmin008 min -1 0 -> -1
-dqmin009 min -1 1 -> -1
-dqmin010 min -1 2 -> -1
-dqmin011 min 0 -2 -> -2
-dqmin012 min 0 -1 -> -1
-dqmin013 min 0 0 -> 0
-dqmin014 min 0 1 -> 0
-dqmin015 min 0 2 -> 0
-dqmin016 min 1 -2 -> -2
-dqmin017 min 1 -1 -> -1
-dqmin018 min 1 0 -> 0
-dqmin019 min 1 1 -> 1
-dqmin020 min 1 2 -> 1
-dqmin021 min 2 -2 -> -2
-dqmin022 min 2 -1 -> -1
-dqmin023 min 2 0 -> 0
-dqmin025 min 2 1 -> 1
-dqmin026 min 2 2 -> 2
-
--- extended zeros
-dqmin030 min 0 0 -> 0
-dqmin031 min 0 -0 -> -0
-dqmin032 min 0 -0.0 -> -0.0
-dqmin033 min 0 0.0 -> 0.0
-dqmin034 min -0 0 -> -0
-dqmin035 min -0 -0 -> -0
-dqmin036 min -0 -0.0 -> -0
-dqmin037 min -0 0.0 -> -0
-dqmin038 min 0.0 0 -> 0.0
-dqmin039 min 0.0 -0 -> -0
-dqmin040 min 0.0 -0.0 -> -0.0
-dqmin041 min 0.0 0.0 -> 0.0
-dqmin042 min -0.0 0 -> -0.0
-dqmin043 min -0.0 -0 -> -0
-dqmin044 min -0.0 -0.0 -> -0.0
-dqmin045 min -0.0 0.0 -> -0.0
-
-dqmin046 min 0E1 -0E1 -> -0E+1
-dqmin047 min -0E1 0E2 -> -0E+1
-dqmin048 min 0E2 0E1 -> 0E+1
-dqmin049 min 0E1 0E2 -> 0E+1
-dqmin050 min -0E3 -0E2 -> -0E+3
-dqmin051 min -0E2 -0E3 -> -0E+3
-
--- Specials
-dqmin090 min Inf -Inf -> -Infinity
-dqmin091 min Inf -1000 -> -1000
-dqmin092 min Inf -1 -> -1
-dqmin093 min Inf -0 -> -0
-dqmin094 min Inf 0 -> 0
-dqmin095 min Inf 1 -> 1
-dqmin096 min Inf 1000 -> 1000
-dqmin097 min Inf Inf -> Infinity
-dqmin098 min -1000 Inf -> -1000
-dqmin099 min -Inf Inf -> -Infinity
-dqmin100 min -1 Inf -> -1
-dqmin101 min -0 Inf -> -0
-dqmin102 min 0 Inf -> 0
-dqmin103 min 1 Inf -> 1
-dqmin104 min 1000 Inf -> 1000
-dqmin105 min Inf Inf -> Infinity
-
-dqmin120 min -Inf -Inf -> -Infinity
-dqmin121 min -Inf -1000 -> -Infinity
-dqmin122 min -Inf -1 -> -Infinity
-dqmin123 min -Inf -0 -> -Infinity
-dqmin124 min -Inf 0 -> -Infinity
-dqmin125 min -Inf 1 -> -Infinity
-dqmin126 min -Inf 1000 -> -Infinity
-dqmin127 min -Inf Inf -> -Infinity
-dqmin128 min -Inf -Inf -> -Infinity
-dqmin129 min -1000 -Inf -> -Infinity
-dqmin130 min -1 -Inf -> -Infinity
-dqmin131 min -0 -Inf -> -Infinity
-dqmin132 min 0 -Inf -> -Infinity
-dqmin133 min 1 -Inf -> -Infinity
-dqmin134 min 1000 -Inf -> -Infinity
-dqmin135 min Inf -Inf -> -Infinity
-
--- 2004.08.02 754r chooses number over NaN in mixed cases
-dqmin141 min NaN -Inf -> -Infinity
-dqmin142 min NaN -1000 -> -1000
-dqmin143 min NaN -1 -> -1
-dqmin144 min NaN -0 -> -0
-dqmin145 min NaN 0 -> 0
-dqmin146 min NaN 1 -> 1
-dqmin147 min NaN 1000 -> 1000
-dqmin148 min NaN Inf -> Infinity
-dqmin149 min NaN NaN -> NaN
-dqmin150 min -Inf NaN -> -Infinity
-dqmin151 min -1000 NaN -> -1000
-dqmin152 min -1 -NaN -> -1
-dqmin153 min -0 NaN -> -0
-dqmin154 min 0 -NaN -> 0
-dqmin155 min 1 NaN -> 1
-dqmin156 min 1000 NaN -> 1000
-dqmin157 min Inf NaN -> Infinity
-
-dqmin161 min sNaN -Inf -> NaN Invalid_operation
-dqmin162 min sNaN -1000 -> NaN Invalid_operation
-dqmin163 min sNaN -1 -> NaN Invalid_operation
-dqmin164 min sNaN -0 -> NaN Invalid_operation
-dqmin165 min -sNaN 0 -> -NaN Invalid_operation
-dqmin166 min -sNaN 1 -> -NaN Invalid_operation
-dqmin167 min sNaN 1000 -> NaN Invalid_operation
-dqmin168 min sNaN NaN -> NaN Invalid_operation
-dqmin169 min sNaN sNaN -> NaN Invalid_operation
-dqmin170 min NaN sNaN -> NaN Invalid_operation
-dqmin171 min -Inf sNaN -> NaN Invalid_operation
-dqmin172 min -1000 sNaN -> NaN Invalid_operation
-dqmin173 min -1 sNaN -> NaN Invalid_operation
-dqmin174 min -0 sNaN -> NaN Invalid_operation
-dqmin175 min 0 sNaN -> NaN Invalid_operation
-dqmin176 min 1 sNaN -> NaN Invalid_operation
-dqmin177 min 1000 sNaN -> NaN Invalid_operation
-dqmin178 min Inf sNaN -> NaN Invalid_operation
-dqmin179 min NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-dqmin181 min NaN9 -Inf -> -Infinity
-dqmin182 min -NaN8 9990 -> 9990
-dqmin183 min NaN71 Inf -> Infinity
-
-dqmin184 min NaN1 NaN54 -> NaN1
-dqmin185 min NaN22 -NaN53 -> NaN22
-dqmin186 min -NaN3 NaN6 -> -NaN3
-dqmin187 min -NaN44 NaN7 -> -NaN44
-
-dqmin188 min -Inf NaN41 -> -Infinity
-dqmin189 min -9999 -NaN33 -> -9999
-dqmin190 min Inf NaN2 -> Infinity
-
-dqmin191 min sNaN99 -Inf -> NaN99 Invalid_operation
-dqmin192 min sNaN98 -11 -> NaN98 Invalid_operation
-dqmin193 min -sNaN97 NaN8 -> -NaN97 Invalid_operation
-dqmin194 min sNaN69 sNaN94 -> NaN69 Invalid_operation
-dqmin195 min NaN95 sNaN93 -> NaN93 Invalid_operation
-dqmin196 min -Inf sNaN92 -> NaN92 Invalid_operation
-dqmin197 min 088 sNaN91 -> NaN91 Invalid_operation
-dqmin198 min Inf -sNaN90 -> -NaN90 Invalid_operation
-dqmin199 min NaN sNaN86 -> NaN86 Invalid_operation
-
--- old rounding checks
-dqmin221 min -12345678000 1 -> -12345678000
-dqmin222 min 1 -12345678000 -> -12345678000
-dqmin223 min -1234567800 1 -> -1234567800
-dqmin224 min 1 -1234567800 -> -1234567800
-dqmin225 min -1234567890 1 -> -1234567890
-dqmin226 min 1 -1234567890 -> -1234567890
-dqmin227 min -1234567891 1 -> -1234567891
-dqmin228 min 1 -1234567891 -> -1234567891
-dqmin229 min -12345678901 1 -> -12345678901
-dqmin230 min 1 -12345678901 -> -12345678901
-dqmin231 min -1234567896 1 -> -1234567896
-dqmin232 min 1 -1234567896 -> -1234567896
-dqmin233 min 1234567891 1 -> 1
-dqmin234 min 1 1234567891 -> 1
-dqmin235 min 12345678901 1 -> 1
-dqmin236 min 1 12345678901 -> 1
-dqmin237 min 1234567896 1 -> 1
-dqmin238 min 1 1234567896 -> 1
-
--- from examples
-dqmin280 min '3' '2' -> '2'
-dqmin281 min '-10' '3' -> '-10'
-dqmin282 min '1.0' '1' -> '1.0'
-dqmin283 min '1' '1.0' -> '1.0'
-dqmin284 min '7' 'NaN' -> '7'
-
--- expanded list from min/max 754r purple prose
--- [explicit tests for exponent ordering]
-dqmin401 min Inf 1.1 -> 1.1
-dqmin402 min 1.1 1 -> 1
-dqmin403 min 1 1.0 -> 1.0
-dqmin404 min 1.0 0.1 -> 0.1
-dqmin405 min 0.1 0.10 -> 0.10
-dqmin406 min 0.10 0.100 -> 0.100
-dqmin407 min 0.10 0 -> 0
-dqmin408 min 0 0.0 -> 0.0
-dqmin409 min 0.0 -0 -> -0
-dqmin410 min 0.0 -0.0 -> -0.0
-dqmin411 min 0.00 -0.0 -> -0.0
-dqmin412 min 0.0 -0.00 -> -0.00
-dqmin413 min 0 -0.0 -> -0.0
-dqmin414 min 0 -0 -> -0
-dqmin415 min -0.0 -0 -> -0
-dqmin416 min -0 -0.100 -> -0.100
-dqmin417 min -0.100 -0.10 -> -0.10
-dqmin418 min -0.10 -0.1 -> -0.1
-dqmin419 min -0.1 -1.0 -> -1.0
-dqmin420 min -1.0 -1 -> -1
-dqmin421 min -1 -1.1 -> -1.1
-dqmin423 min -1.1 -Inf -> -Infinity
--- same with operands reversed
-dqmin431 min 1.1 Inf -> 1.1
-dqmin432 min 1 1.1 -> 1
-dqmin433 min 1.0 1 -> 1.0
-dqmin434 min 0.1 1.0 -> 0.1
-dqmin435 min 0.10 0.1 -> 0.10
-dqmin436 min 0.100 0.10 -> 0.100
-dqmin437 min 0 0.10 -> 0
-dqmin438 min 0.0 0 -> 0.0
-dqmin439 min -0 0.0 -> -0
-dqmin440 min -0.0 0.0 -> -0.0
-dqmin441 min -0.0 0.00 -> -0.0
-dqmin442 min -0.00 0.0 -> -0.00
-dqmin443 min -0.0 0 -> -0.0
-dqmin444 min -0 0 -> -0
-dqmin445 min -0 -0.0 -> -0
-dqmin446 min -0.100 -0 -> -0.100
-dqmin447 min -0.10 -0.100 -> -0.10
-dqmin448 min -0.1 -0.10 -> -0.1
-dqmin449 min -1.0 -0.1 -> -1.0
-dqmin450 min -1 -1.0 -> -1
-dqmin451 min -1.1 -1 -> -1.1
-dqmin453 min -Inf -1.1 -> -Infinity
--- largies
-dqmin460 min 1000 1E+3 -> 1000
-dqmin461 min 1E+3 1000 -> 1000
-dqmin462 min 1000 -1E+3 -> -1E+3
-dqmin463 min 1E+3 -384 -> -384
-dqmin464 min -384 1E+3 -> -384
-dqmin465 min -1E+3 1000 -> -1E+3
-dqmin466 min -384 -1E+3 -> -1E+3
-dqmin467 min -1E+3 -384 -> -1E+3
-
--- misalignment traps for little-endian
-dqmin471 min 1.0 0.1 -> 0.1
-dqmin472 min 0.1 1.0 -> 0.1
-dqmin473 min 10.0 0.1 -> 0.1
-dqmin474 min 0.1 10.0 -> 0.1
-dqmin475 min 100 1.0 -> 1.0
-dqmin476 min 1.0 100 -> 1.0
-dqmin477 min 1000 10.0 -> 10.0
-dqmin478 min 10.0 1000 -> 10.0
-dqmin479 min 10000 100.0 -> 100.0
-dqmin480 min 100.0 10000 -> 100.0
-dqmin481 min 100000 1000.0 -> 1000.0
-dqmin482 min 1000.0 100000 -> 1000.0
-dqmin483 min 1000000 10000.0 -> 10000.0
-dqmin484 min 10000.0 1000000 -> 10000.0
-
--- subnormals
-dqmin510 min 1.00E-6143 0 -> 0
-dqmin511 min 0.1E-6143 0 -> 0
-dqmin512 min 0.10E-6143 0 -> 0
-dqmin513 min 0.100E-6143 0 -> 0
-dqmin514 min 0.01E-6143 0 -> 0
-dqmin515 min 0.999E-6143 0 -> 0
-dqmin516 min 0.099E-6143 0 -> 0
-dqmin517 min 0.009E-6143 0 -> 0
-dqmin518 min 0.001E-6143 0 -> 0
-dqmin519 min 0.0009E-6143 0 -> 0
-dqmin520 min 0.0001E-6143 0 -> 0
-
-dqmin530 min -1.00E-6143 0 -> -1.00E-6143
-dqmin531 min -0.1E-6143 0 -> -1E-6144 Subnormal
-dqmin532 min -0.10E-6143 0 -> -1.0E-6144 Subnormal
-dqmin533 min -0.100E-6143 0 -> -1.00E-6144 Subnormal
-dqmin534 min -0.01E-6143 0 -> -1E-6145 Subnormal
-dqmin535 min -0.999E-6143 0 -> -9.99E-6144 Subnormal
-dqmin536 min -0.099E-6143 0 -> -9.9E-6145 Subnormal
-dqmin537 min -0.009E-6143 0 -> -9E-6146 Subnormal
-dqmin538 min -0.001E-6143 0 -> -1E-6146 Subnormal
-dqmin539 min -0.0009E-6143 0 -> -9E-6147 Subnormal
-dqmin540 min -0.0001E-6143 0 -> -1E-6147 Subnormal
-
-
--- Null tests
-dqmin900 min 10 # -> NaN Invalid_operation
-dqmin901 min # 10 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- dqMin.decTest -- decQuad minnum -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- we assume that base comparison is tested in compare.decTest, so +-- these mainly cover special cases and rounding +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +-- sanity checks +dqmin001 min -2 -2 -> -2 +dqmin002 min -2 -1 -> -2 +dqmin003 min -2 0 -> -2 +dqmin004 min -2 1 -> -2 +dqmin005 min -2 2 -> -2 +dqmin006 min -1 -2 -> -2 +dqmin007 min -1 -1 -> -1 +dqmin008 min -1 0 -> -1 +dqmin009 min -1 1 -> -1 +dqmin010 min -1 2 -> -1 +dqmin011 min 0 -2 -> -2 +dqmin012 min 0 -1 -> -1 +dqmin013 min 0 0 -> 0 +dqmin014 min 0 1 -> 0 +dqmin015 min 0 2 -> 0 +dqmin016 min 1 -2 -> -2 +dqmin017 min 1 -1 -> -1 +dqmin018 min 1 0 -> 0 +dqmin019 min 1 1 -> 1 +dqmin020 min 1 2 -> 1 +dqmin021 min 2 -2 -> -2 +dqmin022 min 2 -1 -> -1 +dqmin023 min 2 0 -> 0 +dqmin025 min 2 1 -> 1 +dqmin026 min 2 2 -> 2 + +-- extended zeros +dqmin030 min 0 0 -> 0 +dqmin031 min 0 -0 -> -0 +dqmin032 min 0 -0.0 -> -0.0 +dqmin033 min 0 0.0 -> 0.0 +dqmin034 min -0 0 -> -0 +dqmin035 min -0 -0 -> -0 +dqmin036 min -0 -0.0 -> -0 +dqmin037 min -0 0.0 -> -0 +dqmin038 min 0.0 0 -> 0.0 +dqmin039 min 0.0 -0 -> -0 +dqmin040 min 0.0 -0.0 -> -0.0 +dqmin041 min 0.0 0.0 -> 0.0 +dqmin042 min -0.0 0 -> -0.0 +dqmin043 min -0.0 -0 -> -0 +dqmin044 min -0.0 -0.0 -> -0.0 +dqmin045 min -0.0 0.0 -> -0.0 + +dqmin046 min 0E1 -0E1 -> -0E+1 +dqmin047 min -0E1 0E2 -> -0E+1 +dqmin048 min 0E2 0E1 -> 0E+1 +dqmin049 min 0E1 0E2 -> 0E+1 +dqmin050 min -0E3 -0E2 -> -0E+3 +dqmin051 min -0E2 -0E3 -> -0E+3 + +-- Specials +dqmin090 min Inf -Inf -> -Infinity +dqmin091 min Inf -1000 -> -1000 +dqmin092 min Inf -1 -> -1 +dqmin093 min Inf -0 -> -0 +dqmin094 min Inf 0 -> 0 +dqmin095 min Inf 1 -> 1 +dqmin096 min Inf 1000 -> 1000 +dqmin097 min Inf Inf -> Infinity +dqmin098 min -1000 Inf -> -1000 +dqmin099 min -Inf Inf -> -Infinity +dqmin100 min -1 Inf -> -1 +dqmin101 min -0 Inf -> -0 +dqmin102 min 0 Inf -> 0 +dqmin103 min 1 Inf -> 1 +dqmin104 min 1000 Inf -> 1000 +dqmin105 min Inf Inf -> Infinity + +dqmin120 min -Inf -Inf -> -Infinity +dqmin121 min -Inf -1000 -> -Infinity +dqmin122 min -Inf -1 -> -Infinity +dqmin123 min -Inf -0 -> -Infinity +dqmin124 min -Inf 0 -> -Infinity +dqmin125 min -Inf 1 -> -Infinity +dqmin126 min -Inf 1000 -> -Infinity +dqmin127 min -Inf Inf -> -Infinity +dqmin128 min -Inf -Inf -> -Infinity +dqmin129 min -1000 -Inf -> -Infinity +dqmin130 min -1 -Inf -> -Infinity +dqmin131 min -0 -Inf -> -Infinity +dqmin132 min 0 -Inf -> -Infinity +dqmin133 min 1 -Inf -> -Infinity +dqmin134 min 1000 -Inf -> -Infinity +dqmin135 min Inf -Inf -> -Infinity + +-- 2004.08.02 754r chooses number over NaN in mixed cases +dqmin141 min NaN -Inf -> -Infinity +dqmin142 min NaN -1000 -> -1000 +dqmin143 min NaN -1 -> -1 +dqmin144 min NaN -0 -> -0 +dqmin145 min NaN 0 -> 0 +dqmin146 min NaN 1 -> 1 +dqmin147 min NaN 1000 -> 1000 +dqmin148 min NaN Inf -> Infinity +dqmin149 min NaN NaN -> NaN +dqmin150 min -Inf NaN -> -Infinity +dqmin151 min -1000 NaN -> -1000 +dqmin152 min -1 -NaN -> -1 +dqmin153 min -0 NaN -> -0 +dqmin154 min 0 -NaN -> 0 +dqmin155 min 1 NaN -> 1 +dqmin156 min 1000 NaN -> 1000 +dqmin157 min Inf NaN -> Infinity + +dqmin161 min sNaN -Inf -> NaN Invalid_operation +dqmin162 min sNaN -1000 -> NaN Invalid_operation +dqmin163 min sNaN -1 -> NaN Invalid_operation +dqmin164 min sNaN -0 -> NaN Invalid_operation +dqmin165 min -sNaN 0 -> -NaN Invalid_operation +dqmin166 min -sNaN 1 -> -NaN Invalid_operation +dqmin167 min sNaN 1000 -> NaN Invalid_operation +dqmin168 min sNaN NaN -> NaN Invalid_operation +dqmin169 min sNaN sNaN -> NaN Invalid_operation +dqmin170 min NaN sNaN -> NaN Invalid_operation +dqmin171 min -Inf sNaN -> NaN Invalid_operation +dqmin172 min -1000 sNaN -> NaN Invalid_operation +dqmin173 min -1 sNaN -> NaN Invalid_operation +dqmin174 min -0 sNaN -> NaN Invalid_operation +dqmin175 min 0 sNaN -> NaN Invalid_operation +dqmin176 min 1 sNaN -> NaN Invalid_operation +dqmin177 min 1000 sNaN -> NaN Invalid_operation +dqmin178 min Inf sNaN -> NaN Invalid_operation +dqmin179 min NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +dqmin181 min NaN9 -Inf -> -Infinity +dqmin182 min -NaN8 9990 -> 9990 +dqmin183 min NaN71 Inf -> Infinity + +dqmin184 min NaN1 NaN54 -> NaN1 +dqmin185 min NaN22 -NaN53 -> NaN22 +dqmin186 min -NaN3 NaN6 -> -NaN3 +dqmin187 min -NaN44 NaN7 -> -NaN44 + +dqmin188 min -Inf NaN41 -> -Infinity +dqmin189 min -9999 -NaN33 -> -9999 +dqmin190 min Inf NaN2 -> Infinity + +dqmin191 min sNaN99 -Inf -> NaN99 Invalid_operation +dqmin192 min sNaN98 -11 -> NaN98 Invalid_operation +dqmin193 min -sNaN97 NaN8 -> -NaN97 Invalid_operation +dqmin194 min sNaN69 sNaN94 -> NaN69 Invalid_operation +dqmin195 min NaN95 sNaN93 -> NaN93 Invalid_operation +dqmin196 min -Inf sNaN92 -> NaN92 Invalid_operation +dqmin197 min 088 sNaN91 -> NaN91 Invalid_operation +dqmin198 min Inf -sNaN90 -> -NaN90 Invalid_operation +dqmin199 min NaN sNaN86 -> NaN86 Invalid_operation + +-- old rounding checks +dqmin221 min -12345678000 1 -> -12345678000 +dqmin222 min 1 -12345678000 -> -12345678000 +dqmin223 min -1234567800 1 -> -1234567800 +dqmin224 min 1 -1234567800 -> -1234567800 +dqmin225 min -1234567890 1 -> -1234567890 +dqmin226 min 1 -1234567890 -> -1234567890 +dqmin227 min -1234567891 1 -> -1234567891 +dqmin228 min 1 -1234567891 -> -1234567891 +dqmin229 min -12345678901 1 -> -12345678901 +dqmin230 min 1 -12345678901 -> -12345678901 +dqmin231 min -1234567896 1 -> -1234567896 +dqmin232 min 1 -1234567896 -> -1234567896 +dqmin233 min 1234567891 1 -> 1 +dqmin234 min 1 1234567891 -> 1 +dqmin235 min 12345678901 1 -> 1 +dqmin236 min 1 12345678901 -> 1 +dqmin237 min 1234567896 1 -> 1 +dqmin238 min 1 1234567896 -> 1 + +-- from examples +dqmin280 min '3' '2' -> '2' +dqmin281 min '-10' '3' -> '-10' +dqmin282 min '1.0' '1' -> '1.0' +dqmin283 min '1' '1.0' -> '1.0' +dqmin284 min '7' 'NaN' -> '7' + +-- expanded list from min/max 754r purple prose +-- [explicit tests for exponent ordering] +dqmin401 min Inf 1.1 -> 1.1 +dqmin402 min 1.1 1 -> 1 +dqmin403 min 1 1.0 -> 1.0 +dqmin404 min 1.0 0.1 -> 0.1 +dqmin405 min 0.1 0.10 -> 0.10 +dqmin406 min 0.10 0.100 -> 0.100 +dqmin407 min 0.10 0 -> 0 +dqmin408 min 0 0.0 -> 0.0 +dqmin409 min 0.0 -0 -> -0 +dqmin410 min 0.0 -0.0 -> -0.0 +dqmin411 min 0.00 -0.0 -> -0.0 +dqmin412 min 0.0 -0.00 -> -0.00 +dqmin413 min 0 -0.0 -> -0.0 +dqmin414 min 0 -0 -> -0 +dqmin415 min -0.0 -0 -> -0 +dqmin416 min -0 -0.100 -> -0.100 +dqmin417 min -0.100 -0.10 -> -0.10 +dqmin418 min -0.10 -0.1 -> -0.1 +dqmin419 min -0.1 -1.0 -> -1.0 +dqmin420 min -1.0 -1 -> -1 +dqmin421 min -1 -1.1 -> -1.1 +dqmin423 min -1.1 -Inf -> -Infinity +-- same with operands reversed +dqmin431 min 1.1 Inf -> 1.1 +dqmin432 min 1 1.1 -> 1 +dqmin433 min 1.0 1 -> 1.0 +dqmin434 min 0.1 1.0 -> 0.1 +dqmin435 min 0.10 0.1 -> 0.10 +dqmin436 min 0.100 0.10 -> 0.100 +dqmin437 min 0 0.10 -> 0 +dqmin438 min 0.0 0 -> 0.0 +dqmin439 min -0 0.0 -> -0 +dqmin440 min -0.0 0.0 -> -0.0 +dqmin441 min -0.0 0.00 -> -0.0 +dqmin442 min -0.00 0.0 -> -0.00 +dqmin443 min -0.0 0 -> -0.0 +dqmin444 min -0 0 -> -0 +dqmin445 min -0 -0.0 -> -0 +dqmin446 min -0.100 -0 -> -0.100 +dqmin447 min -0.10 -0.100 -> -0.10 +dqmin448 min -0.1 -0.10 -> -0.1 +dqmin449 min -1.0 -0.1 -> -1.0 +dqmin450 min -1 -1.0 -> -1 +dqmin451 min -1.1 -1 -> -1.1 +dqmin453 min -Inf -1.1 -> -Infinity +-- largies +dqmin460 min 1000 1E+3 -> 1000 +dqmin461 min 1E+3 1000 -> 1000 +dqmin462 min 1000 -1E+3 -> -1E+3 +dqmin463 min 1E+3 -384 -> -384 +dqmin464 min -384 1E+3 -> -384 +dqmin465 min -1E+3 1000 -> -1E+3 +dqmin466 min -384 -1E+3 -> -1E+3 +dqmin467 min -1E+3 -384 -> -1E+3 + +-- misalignment traps for little-endian +dqmin471 min 1.0 0.1 -> 0.1 +dqmin472 min 0.1 1.0 -> 0.1 +dqmin473 min 10.0 0.1 -> 0.1 +dqmin474 min 0.1 10.0 -> 0.1 +dqmin475 min 100 1.0 -> 1.0 +dqmin476 min 1.0 100 -> 1.0 +dqmin477 min 1000 10.0 -> 10.0 +dqmin478 min 10.0 1000 -> 10.0 +dqmin479 min 10000 100.0 -> 100.0 +dqmin480 min 100.0 10000 -> 100.0 +dqmin481 min 100000 1000.0 -> 1000.0 +dqmin482 min 1000.0 100000 -> 1000.0 +dqmin483 min 1000000 10000.0 -> 10000.0 +dqmin484 min 10000.0 1000000 -> 10000.0 + +-- subnormals +dqmin510 min 1.00E-6143 0 -> 0 +dqmin511 min 0.1E-6143 0 -> 0 +dqmin512 min 0.10E-6143 0 -> 0 +dqmin513 min 0.100E-6143 0 -> 0 +dqmin514 min 0.01E-6143 0 -> 0 +dqmin515 min 0.999E-6143 0 -> 0 +dqmin516 min 0.099E-6143 0 -> 0 +dqmin517 min 0.009E-6143 0 -> 0 +dqmin518 min 0.001E-6143 0 -> 0 +dqmin519 min 0.0009E-6143 0 -> 0 +dqmin520 min 0.0001E-6143 0 -> 0 + +dqmin530 min -1.00E-6143 0 -> -1.00E-6143 +dqmin531 min -0.1E-6143 0 -> -1E-6144 Subnormal +dqmin532 min -0.10E-6143 0 -> -1.0E-6144 Subnormal +dqmin533 min -0.100E-6143 0 -> -1.00E-6144 Subnormal +dqmin534 min -0.01E-6143 0 -> -1E-6145 Subnormal +dqmin535 min -0.999E-6143 0 -> -9.99E-6144 Subnormal +dqmin536 min -0.099E-6143 0 -> -9.9E-6145 Subnormal +dqmin537 min -0.009E-6143 0 -> -9E-6146 Subnormal +dqmin538 min -0.001E-6143 0 -> -1E-6146 Subnormal +dqmin539 min -0.0009E-6143 0 -> -9E-6147 Subnormal +dqmin540 min -0.0001E-6143 0 -> -1E-6147 Subnormal + + +-- Null tests +dqmin900 min 10 # -> NaN Invalid_operation +dqmin901 min # 10 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/dqMinMag.decTest b/Lib/test/decimaltestdata/dqMinMag.decTest index 71b886fb58..edc2e476ac 100644 --- a/Lib/test/decimaltestdata/dqMinMag.decTest +++ b/Lib/test/decimaltestdata/dqMinMag.decTest @@ -1,293 +1,293 @@ -------------------------------------------------------------------------
--- dqMinMag.decTest -- decQuad minnummag --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- we assume that base comparison is tested in compare.decTest, so
--- these mainly cover special cases and rounding
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
--- sanity checks
-dqmng001 minmag -2 -2 -> -2
-dqmng002 minmag -2 -1 -> -1
-dqmng003 minmag -2 0 -> 0
-dqmng004 minmag -2 1 -> 1
-dqmng005 minmag -2 2 -> -2
-dqmng006 minmag -1 -2 -> -1
-dqmng007 minmag -1 -1 -> -1
-dqmng008 minmag -1 0 -> 0
-dqmng009 minmag -1 1 -> -1
-dqmng010 minmag -1 2 -> -1
-dqmng011 minmag 0 -2 -> 0
-dqmng012 minmag 0 -1 -> 0
-dqmng013 minmag 0 0 -> 0
-dqmng014 minmag 0 1 -> 0
-dqmng015 minmag 0 2 -> 0
-dqmng016 minmag 1 -2 -> 1
-dqmng017 minmag 1 -1 -> -1
-dqmng018 minmag 1 0 -> 0
-dqmng019 minmag 1 1 -> 1
-dqmng020 minmag 1 2 -> 1
-dqmng021 minmag 2 -2 -> -2
-dqmng022 minmag 2 -1 -> -1
-dqmng023 minmag 2 0 -> 0
-dqmng025 minmag 2 1 -> 1
-dqmng026 minmag 2 2 -> 2
-
--- extended zeros
-dqmng030 minmag 0 0 -> 0
-dqmng031 minmag 0 -0 -> -0
-dqmng032 minmag 0 -0.0 -> -0.0
-dqmng033 minmag 0 0.0 -> 0.0
-dqmng034 minmag -0 0 -> -0
-dqmng035 minmag -0 -0 -> -0
-dqmng036 minmag -0 -0.0 -> -0
-dqmng037 minmag -0 0.0 -> -0
-dqmng038 minmag 0.0 0 -> 0.0
-dqmng039 minmag 0.0 -0 -> -0
-dqmng040 minmag 0.0 -0.0 -> -0.0
-dqmng041 minmag 0.0 0.0 -> 0.0
-dqmng042 minmag -0.0 0 -> -0.0
-dqmng043 minmag -0.0 -0 -> -0
-dqmng044 minmag -0.0 -0.0 -> -0.0
-dqmng045 minmag -0.0 0.0 -> -0.0
-
-dqmng046 minmag 0E1 -0E1 -> -0E+1
-dqmng047 minmag -0E1 0E2 -> -0E+1
-dqmng048 minmag 0E2 0E1 -> 0E+1
-dqmng049 minmag 0E1 0E2 -> 0E+1
-dqmng050 minmag -0E3 -0E2 -> -0E+3
-dqmng051 minmag -0E2 -0E3 -> -0E+3
-
--- Specials
-dqmng090 minmag Inf -Inf -> -Infinity
-dqmng091 minmag Inf -1000 -> -1000
-dqmng092 minmag Inf -1 -> -1
-dqmng093 minmag Inf -0 -> -0
-dqmng094 minmag Inf 0 -> 0
-dqmng095 minmag Inf 1 -> 1
-dqmng096 minmag Inf 1000 -> 1000
-dqmng097 minmag Inf Inf -> Infinity
-dqmng098 minmag -1000 Inf -> -1000
-dqmng099 minmag -Inf Inf -> -Infinity
-dqmng100 minmag -1 Inf -> -1
-dqmng101 minmag -0 Inf -> -0
-dqmng102 minmag 0 Inf -> 0
-dqmng103 minmag 1 Inf -> 1
-dqmng104 minmag 1000 Inf -> 1000
-dqmng105 minmag Inf Inf -> Infinity
-
-dqmng120 minmag -Inf -Inf -> -Infinity
-dqmng121 minmag -Inf -1000 -> -1000
-dqmng122 minmag -Inf -1 -> -1
-dqmng123 minmag -Inf -0 -> -0
-dqmng124 minmag -Inf 0 -> 0
-dqmng125 minmag -Inf 1 -> 1
-dqmng126 minmag -Inf 1000 -> 1000
-dqmng127 minmag -Inf Inf -> -Infinity
-dqmng128 minmag -Inf -Inf -> -Infinity
-dqmng129 minmag -1000 -Inf -> -1000
-dqmng130 minmag -1 -Inf -> -1
-dqmng131 minmag -0 -Inf -> -0
-dqmng132 minmag 0 -Inf -> 0
-dqmng133 minmag 1 -Inf -> 1
-dqmng134 minmag 1000 -Inf -> 1000
-dqmng135 minmag Inf -Inf -> -Infinity
-
--- 2004.08.02 754r chooses number over NaN in mixed cases
-dqmng141 minmag NaN -Inf -> -Infinity
-dqmng142 minmag NaN -1000 -> -1000
-dqmng143 minmag NaN -1 -> -1
-dqmng144 minmag NaN -0 -> -0
-dqmng145 minmag NaN 0 -> 0
-dqmng146 minmag NaN 1 -> 1
-dqmng147 minmag NaN 1000 -> 1000
-dqmng148 minmag NaN Inf -> Infinity
-dqmng149 minmag NaN NaN -> NaN
-dqmng150 minmag -Inf NaN -> -Infinity
-dqmng151 minmag -1000 NaN -> -1000
-dqmng152 minmag -1 -NaN -> -1
-dqmng153 minmag -0 NaN -> -0
-dqmng154 minmag 0 -NaN -> 0
-dqmng155 minmag 1 NaN -> 1
-dqmng156 minmag 1000 NaN -> 1000
-dqmng157 minmag Inf NaN -> Infinity
-
-dqmng161 minmag sNaN -Inf -> NaN Invalid_operation
-dqmng162 minmag sNaN -1000 -> NaN Invalid_operation
-dqmng163 minmag sNaN -1 -> NaN Invalid_operation
-dqmng164 minmag sNaN -0 -> NaN Invalid_operation
-dqmng165 minmag -sNaN 0 -> -NaN Invalid_operation
-dqmng166 minmag -sNaN 1 -> -NaN Invalid_operation
-dqmng167 minmag sNaN 1000 -> NaN Invalid_operation
-dqmng168 minmag sNaN NaN -> NaN Invalid_operation
-dqmng169 minmag sNaN sNaN -> NaN Invalid_operation
-dqmng170 minmag NaN sNaN -> NaN Invalid_operation
-dqmng171 minmag -Inf sNaN -> NaN Invalid_operation
-dqmng172 minmag -1000 sNaN -> NaN Invalid_operation
-dqmng173 minmag -1 sNaN -> NaN Invalid_operation
-dqmng174 minmag -0 sNaN -> NaN Invalid_operation
-dqmng175 minmag 0 sNaN -> NaN Invalid_operation
-dqmng176 minmag 1 sNaN -> NaN Invalid_operation
-dqmng177 minmag 1000 sNaN -> NaN Invalid_operation
-dqmng178 minmag Inf sNaN -> NaN Invalid_operation
-dqmng179 minmag NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-dqmng181 minmag NaN9 -Inf -> -Infinity
-dqmng182 minmag -NaN8 9990 -> 9990
-dqmng183 minmag NaN71 Inf -> Infinity
-
-dqmng184 minmag NaN1 NaN54 -> NaN1
-dqmng185 minmag NaN22 -NaN53 -> NaN22
-dqmng186 minmag -NaN3 NaN6 -> -NaN3
-dqmng187 minmag -NaN44 NaN7 -> -NaN44
-
-dqmng188 minmag -Inf NaN41 -> -Infinity
-dqmng189 minmag -9999 -NaN33 -> -9999
-dqmng190 minmag Inf NaN2 -> Infinity
-
-dqmng191 minmag sNaN99 -Inf -> NaN99 Invalid_operation
-dqmng192 minmag sNaN98 -11 -> NaN98 Invalid_operation
-dqmng193 minmag -sNaN97 NaN8 -> -NaN97 Invalid_operation
-dqmng194 minmag sNaN69 sNaN94 -> NaN69 Invalid_operation
-dqmng195 minmag NaN95 sNaN93 -> NaN93 Invalid_operation
-dqmng196 minmag -Inf sNaN92 -> NaN92 Invalid_operation
-dqmng197 minmag 088 sNaN91 -> NaN91 Invalid_operation
-dqmng198 minmag Inf -sNaN90 -> -NaN90 Invalid_operation
-dqmng199 minmag NaN sNaN86 -> NaN86 Invalid_operation
-
--- old rounding checks
-dqmng221 minmag -12345678000 1 -> 1
-dqmng222 minmag 1 -12345678000 -> 1
-dqmng223 minmag -1234567800 1 -> 1
-dqmng224 minmag 1 -1234567800 -> 1
-dqmng225 minmag -1234567890 1 -> 1
-dqmng226 minmag 1 -1234567890 -> 1
-dqmng227 minmag -1234567891 1 -> 1
-dqmng228 minmag 1 -1234567891 -> 1
-dqmng229 minmag -12345678901 1 -> 1
-dqmng230 minmag 1 -12345678901 -> 1
-dqmng231 minmag -1234567896 1 -> 1
-dqmng232 minmag 1 -1234567896 -> 1
-dqmng233 minmag 1234567891 1 -> 1
-dqmng234 minmag 1 1234567891 -> 1
-dqmng235 minmag 12345678901 1 -> 1
-dqmng236 minmag 1 12345678901 -> 1
-dqmng237 minmag 1234567896 1 -> 1
-dqmng238 minmag 1 1234567896 -> 1
-
--- from examples
-dqmng280 minmag '3' '2' -> '2'
-dqmng281 minmag '-10' '3' -> '3'
-dqmng282 minmag '1.0' '1' -> '1.0'
-dqmng283 minmag '1' '1.0' -> '1.0'
-dqmng284 minmag '7' 'NaN' -> '7'
-
--- expanded list from min/max 754r purple prose
--- [explicit tests for exponent ordering]
-dqmng401 minmag Inf 1.1 -> 1.1
-dqmng402 minmag 1.1 1 -> 1
-dqmng403 minmag 1 1.0 -> 1.0
-dqmng404 minmag 1.0 0.1 -> 0.1
-dqmng405 minmag 0.1 0.10 -> 0.10
-dqmng406 minmag 0.10 0.100 -> 0.100
-dqmng407 minmag 0.10 0 -> 0
-dqmng408 minmag 0 0.0 -> 0.0
-dqmng409 minmag 0.0 -0 -> -0
-dqmng410 minmag 0.0 -0.0 -> -0.0
-dqmng411 minmag 0.00 -0.0 -> -0.0
-dqmng412 minmag 0.0 -0.00 -> -0.00
-dqmng413 minmag 0 -0.0 -> -0.0
-dqmng414 minmag 0 -0 -> -0
-dqmng415 minmag -0.0 -0 -> -0
-dqmng416 minmag -0 -0.100 -> -0
-dqmng417 minmag -0.100 -0.10 -> -0.10
-dqmng418 minmag -0.10 -0.1 -> -0.1
-dqmng419 minmag -0.1 -1.0 -> -0.1
-dqmng420 minmag -1.0 -1 -> -1
-dqmng421 minmag -1 -1.1 -> -1
-dqmng423 minmag -1.1 -Inf -> -1.1
--- same with operands reversed
-dqmng431 minmag 1.1 Inf -> 1.1
-dqmng432 minmag 1 1.1 -> 1
-dqmng433 minmag 1.0 1 -> 1.0
-dqmng434 minmag 0.1 1.0 -> 0.1
-dqmng435 minmag 0.10 0.1 -> 0.10
-dqmng436 minmag 0.100 0.10 -> 0.100
-dqmng437 minmag 0 0.10 -> 0
-dqmng438 minmag 0.0 0 -> 0.0
-dqmng439 minmag -0 0.0 -> -0
-dqmng440 minmag -0.0 0.0 -> -0.0
-dqmng441 minmag -0.0 0.00 -> -0.0
-dqmng442 minmag -0.00 0.0 -> -0.00
-dqmng443 minmag -0.0 0 -> -0.0
-dqmng444 minmag -0 0 -> -0
-dqmng445 minmag -0 -0.0 -> -0
-dqmng446 minmag -0.100 -0 -> -0
-dqmng447 minmag -0.10 -0.100 -> -0.10
-dqmng448 minmag -0.1 -0.10 -> -0.1
-dqmng449 minmag -1.0 -0.1 -> -0.1
-dqmng450 minmag -1 -1.0 -> -1
-dqmng451 minmag -1.1 -1 -> -1
-dqmng453 minmag -Inf -1.1 -> -1.1
--- largies
-dqmng460 minmag 1000 1E+3 -> 1000
-dqmng461 minmag 1E+3 1000 -> 1000
-dqmng462 minmag 1000 -1E+3 -> -1E+3
-dqmng463 minmag 1E+3 -384 -> -384
-dqmng464 minmag -384 1E+3 -> -384
-dqmng465 minmag -1E+3 1000 -> -1E+3
-dqmng466 minmag -384 -1E+3 -> -384
-dqmng467 minmag -1E+3 -384 -> -384
-
--- subnormals
-dqmng510 minmag 1.00E-6143 0 -> 0
-dqmng511 minmag 0.1E-6143 0 -> 0
-dqmng512 minmag 0.10E-6143 0 -> 0
-dqmng513 minmag 0.100E-6143 0 -> 0
-dqmng514 minmag 0.01E-6143 0 -> 0
-dqmng515 minmag 0.999E-6143 0 -> 0
-dqmng516 minmag 0.099E-6143 0 -> 0
-dqmng517 minmag 0.009E-6143 0 -> 0
-dqmng518 minmag 0.001E-6143 0 -> 0
-dqmng519 minmag 0.0009E-6143 0 -> 0
-dqmng520 minmag 0.0001E-6143 0 -> 0
-
-dqmng530 minmag -1.00E-6143 0 -> 0
-dqmng531 minmag -0.1E-6143 0 -> 0
-dqmng532 minmag -0.10E-6143 0 -> 0
-dqmng533 minmag -0.100E-6143 0 -> 0
-dqmng534 minmag -0.01E-6143 0 -> 0
-dqmng535 minmag -0.999E-6143 0 -> 0
-dqmng536 minmag -0.099E-6143 0 -> 0
-dqmng537 minmag -0.009E-6143 0 -> 0
-dqmng538 minmag -0.001E-6143 0 -> 0
-dqmng539 minmag -0.0009E-6143 0 -> 0
-dqmng540 minmag -0.0001E-6143 0 -> 0
-
-
--- Null tests
-dqmng900 minmag 10 # -> NaN Invalid_operation
-dqmng901 minmag # 10 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- dqMinMag.decTest -- decQuad minnummag -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- we assume that base comparison is tested in compare.decTest, so +-- these mainly cover special cases and rounding +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +-- sanity checks +dqmng001 minmag -2 -2 -> -2 +dqmng002 minmag -2 -1 -> -1 +dqmng003 minmag -2 0 -> 0 +dqmng004 minmag -2 1 -> 1 +dqmng005 minmag -2 2 -> -2 +dqmng006 minmag -1 -2 -> -1 +dqmng007 minmag -1 -1 -> -1 +dqmng008 minmag -1 0 -> 0 +dqmng009 minmag -1 1 -> -1 +dqmng010 minmag -1 2 -> -1 +dqmng011 minmag 0 -2 -> 0 +dqmng012 minmag 0 -1 -> 0 +dqmng013 minmag 0 0 -> 0 +dqmng014 minmag 0 1 -> 0 +dqmng015 minmag 0 2 -> 0 +dqmng016 minmag 1 -2 -> 1 +dqmng017 minmag 1 -1 -> -1 +dqmng018 minmag 1 0 -> 0 +dqmng019 minmag 1 1 -> 1 +dqmng020 minmag 1 2 -> 1 +dqmng021 minmag 2 -2 -> -2 +dqmng022 minmag 2 -1 -> -1 +dqmng023 minmag 2 0 -> 0 +dqmng025 minmag 2 1 -> 1 +dqmng026 minmag 2 2 -> 2 + +-- extended zeros +dqmng030 minmag 0 0 -> 0 +dqmng031 minmag 0 -0 -> -0 +dqmng032 minmag 0 -0.0 -> -0.0 +dqmng033 minmag 0 0.0 -> 0.0 +dqmng034 minmag -0 0 -> -0 +dqmng035 minmag -0 -0 -> -0 +dqmng036 minmag -0 -0.0 -> -0 +dqmng037 minmag -0 0.0 -> -0 +dqmng038 minmag 0.0 0 -> 0.0 +dqmng039 minmag 0.0 -0 -> -0 +dqmng040 minmag 0.0 -0.0 -> -0.0 +dqmng041 minmag 0.0 0.0 -> 0.0 +dqmng042 minmag -0.0 0 -> -0.0 +dqmng043 minmag -0.0 -0 -> -0 +dqmng044 minmag -0.0 -0.0 -> -0.0 +dqmng045 minmag -0.0 0.0 -> -0.0 + +dqmng046 minmag 0E1 -0E1 -> -0E+1 +dqmng047 minmag -0E1 0E2 -> -0E+1 +dqmng048 minmag 0E2 0E1 -> 0E+1 +dqmng049 minmag 0E1 0E2 -> 0E+1 +dqmng050 minmag -0E3 -0E2 -> -0E+3 +dqmng051 minmag -0E2 -0E3 -> -0E+3 + +-- Specials +dqmng090 minmag Inf -Inf -> -Infinity +dqmng091 minmag Inf -1000 -> -1000 +dqmng092 minmag Inf -1 -> -1 +dqmng093 minmag Inf -0 -> -0 +dqmng094 minmag Inf 0 -> 0 +dqmng095 minmag Inf 1 -> 1 +dqmng096 minmag Inf 1000 -> 1000 +dqmng097 minmag Inf Inf -> Infinity +dqmng098 minmag -1000 Inf -> -1000 +dqmng099 minmag -Inf Inf -> -Infinity +dqmng100 minmag -1 Inf -> -1 +dqmng101 minmag -0 Inf -> -0 +dqmng102 minmag 0 Inf -> 0 +dqmng103 minmag 1 Inf -> 1 +dqmng104 minmag 1000 Inf -> 1000 +dqmng105 minmag Inf Inf -> Infinity + +dqmng120 minmag -Inf -Inf -> -Infinity +dqmng121 minmag -Inf -1000 -> -1000 +dqmng122 minmag -Inf -1 -> -1 +dqmng123 minmag -Inf -0 -> -0 +dqmng124 minmag -Inf 0 -> 0 +dqmng125 minmag -Inf 1 -> 1 +dqmng126 minmag -Inf 1000 -> 1000 +dqmng127 minmag -Inf Inf -> -Infinity +dqmng128 minmag -Inf -Inf -> -Infinity +dqmng129 minmag -1000 -Inf -> -1000 +dqmng130 minmag -1 -Inf -> -1 +dqmng131 minmag -0 -Inf -> -0 +dqmng132 minmag 0 -Inf -> 0 +dqmng133 minmag 1 -Inf -> 1 +dqmng134 minmag 1000 -Inf -> 1000 +dqmng135 minmag Inf -Inf -> -Infinity + +-- 2004.08.02 754r chooses number over NaN in mixed cases +dqmng141 minmag NaN -Inf -> -Infinity +dqmng142 minmag NaN -1000 -> -1000 +dqmng143 minmag NaN -1 -> -1 +dqmng144 minmag NaN -0 -> -0 +dqmng145 minmag NaN 0 -> 0 +dqmng146 minmag NaN 1 -> 1 +dqmng147 minmag NaN 1000 -> 1000 +dqmng148 minmag NaN Inf -> Infinity +dqmng149 minmag NaN NaN -> NaN +dqmng150 minmag -Inf NaN -> -Infinity +dqmng151 minmag -1000 NaN -> -1000 +dqmng152 minmag -1 -NaN -> -1 +dqmng153 minmag -0 NaN -> -0 +dqmng154 minmag 0 -NaN -> 0 +dqmng155 minmag 1 NaN -> 1 +dqmng156 minmag 1000 NaN -> 1000 +dqmng157 minmag Inf NaN -> Infinity + +dqmng161 minmag sNaN -Inf -> NaN Invalid_operation +dqmng162 minmag sNaN -1000 -> NaN Invalid_operation +dqmng163 minmag sNaN -1 -> NaN Invalid_operation +dqmng164 minmag sNaN -0 -> NaN Invalid_operation +dqmng165 minmag -sNaN 0 -> -NaN Invalid_operation +dqmng166 minmag -sNaN 1 -> -NaN Invalid_operation +dqmng167 minmag sNaN 1000 -> NaN Invalid_operation +dqmng168 minmag sNaN NaN -> NaN Invalid_operation +dqmng169 minmag sNaN sNaN -> NaN Invalid_operation +dqmng170 minmag NaN sNaN -> NaN Invalid_operation +dqmng171 minmag -Inf sNaN -> NaN Invalid_operation +dqmng172 minmag -1000 sNaN -> NaN Invalid_operation +dqmng173 minmag -1 sNaN -> NaN Invalid_operation +dqmng174 minmag -0 sNaN -> NaN Invalid_operation +dqmng175 minmag 0 sNaN -> NaN Invalid_operation +dqmng176 minmag 1 sNaN -> NaN Invalid_operation +dqmng177 minmag 1000 sNaN -> NaN Invalid_operation +dqmng178 minmag Inf sNaN -> NaN Invalid_operation +dqmng179 minmag NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +dqmng181 minmag NaN9 -Inf -> -Infinity +dqmng182 minmag -NaN8 9990 -> 9990 +dqmng183 minmag NaN71 Inf -> Infinity + +dqmng184 minmag NaN1 NaN54 -> NaN1 +dqmng185 minmag NaN22 -NaN53 -> NaN22 +dqmng186 minmag -NaN3 NaN6 -> -NaN3 +dqmng187 minmag -NaN44 NaN7 -> -NaN44 + +dqmng188 minmag -Inf NaN41 -> -Infinity +dqmng189 minmag -9999 -NaN33 -> -9999 +dqmng190 minmag Inf NaN2 -> Infinity + +dqmng191 minmag sNaN99 -Inf -> NaN99 Invalid_operation +dqmng192 minmag sNaN98 -11 -> NaN98 Invalid_operation +dqmng193 minmag -sNaN97 NaN8 -> -NaN97 Invalid_operation +dqmng194 minmag sNaN69 sNaN94 -> NaN69 Invalid_operation +dqmng195 minmag NaN95 sNaN93 -> NaN93 Invalid_operation +dqmng196 minmag -Inf sNaN92 -> NaN92 Invalid_operation +dqmng197 minmag 088 sNaN91 -> NaN91 Invalid_operation +dqmng198 minmag Inf -sNaN90 -> -NaN90 Invalid_operation +dqmng199 minmag NaN sNaN86 -> NaN86 Invalid_operation + +-- old rounding checks +dqmng221 minmag -12345678000 1 -> 1 +dqmng222 minmag 1 -12345678000 -> 1 +dqmng223 minmag -1234567800 1 -> 1 +dqmng224 minmag 1 -1234567800 -> 1 +dqmng225 minmag -1234567890 1 -> 1 +dqmng226 minmag 1 -1234567890 -> 1 +dqmng227 minmag -1234567891 1 -> 1 +dqmng228 minmag 1 -1234567891 -> 1 +dqmng229 minmag -12345678901 1 -> 1 +dqmng230 minmag 1 -12345678901 -> 1 +dqmng231 minmag -1234567896 1 -> 1 +dqmng232 minmag 1 -1234567896 -> 1 +dqmng233 minmag 1234567891 1 -> 1 +dqmng234 minmag 1 1234567891 -> 1 +dqmng235 minmag 12345678901 1 -> 1 +dqmng236 minmag 1 12345678901 -> 1 +dqmng237 minmag 1234567896 1 -> 1 +dqmng238 minmag 1 1234567896 -> 1 + +-- from examples +dqmng280 minmag '3' '2' -> '2' +dqmng281 minmag '-10' '3' -> '3' +dqmng282 minmag '1.0' '1' -> '1.0' +dqmng283 minmag '1' '1.0' -> '1.0' +dqmng284 minmag '7' 'NaN' -> '7' + +-- expanded list from min/max 754r purple prose +-- [explicit tests for exponent ordering] +dqmng401 minmag Inf 1.1 -> 1.1 +dqmng402 minmag 1.1 1 -> 1 +dqmng403 minmag 1 1.0 -> 1.0 +dqmng404 minmag 1.0 0.1 -> 0.1 +dqmng405 minmag 0.1 0.10 -> 0.10 +dqmng406 minmag 0.10 0.100 -> 0.100 +dqmng407 minmag 0.10 0 -> 0 +dqmng408 minmag 0 0.0 -> 0.0 +dqmng409 minmag 0.0 -0 -> -0 +dqmng410 minmag 0.0 -0.0 -> -0.0 +dqmng411 minmag 0.00 -0.0 -> -0.0 +dqmng412 minmag 0.0 -0.00 -> -0.00 +dqmng413 minmag 0 -0.0 -> -0.0 +dqmng414 minmag 0 -0 -> -0 +dqmng415 minmag -0.0 -0 -> -0 +dqmng416 minmag -0 -0.100 -> -0 +dqmng417 minmag -0.100 -0.10 -> -0.10 +dqmng418 minmag -0.10 -0.1 -> -0.1 +dqmng419 minmag -0.1 -1.0 -> -0.1 +dqmng420 minmag -1.0 -1 -> -1 +dqmng421 minmag -1 -1.1 -> -1 +dqmng423 minmag -1.1 -Inf -> -1.1 +-- same with operands reversed +dqmng431 minmag 1.1 Inf -> 1.1 +dqmng432 minmag 1 1.1 -> 1 +dqmng433 minmag 1.0 1 -> 1.0 +dqmng434 minmag 0.1 1.0 -> 0.1 +dqmng435 minmag 0.10 0.1 -> 0.10 +dqmng436 minmag 0.100 0.10 -> 0.100 +dqmng437 minmag 0 0.10 -> 0 +dqmng438 minmag 0.0 0 -> 0.0 +dqmng439 minmag -0 0.0 -> -0 +dqmng440 minmag -0.0 0.0 -> -0.0 +dqmng441 minmag -0.0 0.00 -> -0.0 +dqmng442 minmag -0.00 0.0 -> -0.00 +dqmng443 minmag -0.0 0 -> -0.0 +dqmng444 minmag -0 0 -> -0 +dqmng445 minmag -0 -0.0 -> -0 +dqmng446 minmag -0.100 -0 -> -0 +dqmng447 minmag -0.10 -0.100 -> -0.10 +dqmng448 minmag -0.1 -0.10 -> -0.1 +dqmng449 minmag -1.0 -0.1 -> -0.1 +dqmng450 minmag -1 -1.0 -> -1 +dqmng451 minmag -1.1 -1 -> -1 +dqmng453 minmag -Inf -1.1 -> -1.1 +-- largies +dqmng460 minmag 1000 1E+3 -> 1000 +dqmng461 minmag 1E+3 1000 -> 1000 +dqmng462 minmag 1000 -1E+3 -> -1E+3 +dqmng463 minmag 1E+3 -384 -> -384 +dqmng464 minmag -384 1E+3 -> -384 +dqmng465 minmag -1E+3 1000 -> -1E+3 +dqmng466 minmag -384 -1E+3 -> -384 +dqmng467 minmag -1E+3 -384 -> -384 + +-- subnormals +dqmng510 minmag 1.00E-6143 0 -> 0 +dqmng511 minmag 0.1E-6143 0 -> 0 +dqmng512 minmag 0.10E-6143 0 -> 0 +dqmng513 minmag 0.100E-6143 0 -> 0 +dqmng514 minmag 0.01E-6143 0 -> 0 +dqmng515 minmag 0.999E-6143 0 -> 0 +dqmng516 minmag 0.099E-6143 0 -> 0 +dqmng517 minmag 0.009E-6143 0 -> 0 +dqmng518 minmag 0.001E-6143 0 -> 0 +dqmng519 minmag 0.0009E-6143 0 -> 0 +dqmng520 minmag 0.0001E-6143 0 -> 0 + +dqmng530 minmag -1.00E-6143 0 -> 0 +dqmng531 minmag -0.1E-6143 0 -> 0 +dqmng532 minmag -0.10E-6143 0 -> 0 +dqmng533 minmag -0.100E-6143 0 -> 0 +dqmng534 minmag -0.01E-6143 0 -> 0 +dqmng535 minmag -0.999E-6143 0 -> 0 +dqmng536 minmag -0.099E-6143 0 -> 0 +dqmng537 minmag -0.009E-6143 0 -> 0 +dqmng538 minmag -0.001E-6143 0 -> 0 +dqmng539 minmag -0.0009E-6143 0 -> 0 +dqmng540 minmag -0.0001E-6143 0 -> 0 + + +-- Null tests +dqmng900 minmag 10 # -> NaN Invalid_operation +dqmng901 minmag # 10 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/dqMinus.decTest b/Lib/test/decimaltestdata/dqMinus.decTest index 7a007791bf..02e462e0be 100644 --- a/Lib/test/decimaltestdata/dqMinus.decTest +++ b/Lib/test/decimaltestdata/dqMinus.decTest @@ -1,88 +1,88 @@ -------------------------------------------------------------------------
--- dqMinus.decTest -- decQuad 0-x --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- All operands and results are decQuads.
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
--- Sanity check
-dqmns001 minus +7.50 -> -7.50
-
--- Infinities
-dqmns011 minus Infinity -> -Infinity
-dqmns012 minus -Infinity -> Infinity
-
--- NaNs, 0 payload
-dqmns021 minus NaN -> NaN
-dqmns022 minus -NaN -> -NaN
-dqmns023 minus sNaN -> NaN Invalid_operation
-dqmns024 minus -sNaN -> -NaN Invalid_operation
-
--- NaNs, non-0 payload
-dqmns031 minus NaN13 -> NaN13
-dqmns032 minus -NaN13 -> -NaN13
-dqmns033 minus sNaN13 -> NaN13 Invalid_operation
-dqmns034 minus -sNaN13 -> -NaN13 Invalid_operation
-dqmns035 minus NaN70 -> NaN70
-dqmns036 minus -NaN70 -> -NaN70
-dqmns037 minus sNaN101 -> NaN101 Invalid_operation
-dqmns038 minus -sNaN101 -> -NaN101 Invalid_operation
-
--- finites
-dqmns101 minus 7 -> -7
-dqmns102 minus -7 -> 7
-dqmns103 minus 75 -> -75
-dqmns104 minus -75 -> 75
-dqmns105 minus 7.50 -> -7.50
-dqmns106 minus -7.50 -> 7.50
-dqmns107 minus 7.500 -> -7.500
-dqmns108 minus -7.500 -> 7.500
-
--- zeros
-dqmns111 minus 0 -> 0
-dqmns112 minus -0 -> 0
-dqmns113 minus 0E+4 -> 0E+4
-dqmns114 minus -0E+4 -> 0E+4
-dqmns115 minus 0.0000 -> 0.0000
-dqmns116 minus -0.0000 -> 0.0000
-dqmns117 minus 0E-141 -> 0E-141
-dqmns118 minus -0E-141 -> 0E-141
-
--- full coefficients, alternating bits
-dqmns121 minus 2682682682682682682682682682682682 -> -2682682682682682682682682682682682
-dqmns122 minus -2682682682682682682682682682682682 -> 2682682682682682682682682682682682
-dqmns123 minus 1341341341341341341341341341341341 -> -1341341341341341341341341341341341
-dqmns124 minus -1341341341341341341341341341341341 -> 1341341341341341341341341341341341
-
--- Nmax, Nmin, Ntiny
-dqmns131 minus 9.999999999999999999999999999999999E+6144 -> -9.999999999999999999999999999999999E+6144
-dqmns132 minus 1E-6143 -> -1E-6143
-dqmns133 minus 1.000000000000000000000000000000000E-6143 -> -1.000000000000000000000000000000000E-6143
-dqmns134 minus 1E-6176 -> -1E-6176 Subnormal
-
-dqmns135 minus -1E-6176 -> 1E-6176 Subnormal
-dqmns136 minus -1.000000000000000000000000000000000E-6143 -> 1.000000000000000000000000000000000E-6143
-dqmns137 minus -1E-6143 -> 1E-6143
-dqmns138 minus -9.999999999999999999999999999999999E+6144 -> 9.999999999999999999999999999999999E+6144
+------------------------------------------------------------------------ +-- dqMinus.decTest -- decQuad 0-x -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- All operands and results are decQuads. +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +-- Sanity check +dqmns001 minus +7.50 -> -7.50 + +-- Infinities +dqmns011 minus Infinity -> -Infinity +dqmns012 minus -Infinity -> Infinity + +-- NaNs, 0 payload +dqmns021 minus NaN -> NaN +dqmns022 minus -NaN -> -NaN +dqmns023 minus sNaN -> NaN Invalid_operation +dqmns024 minus -sNaN -> -NaN Invalid_operation + +-- NaNs, non-0 payload +dqmns031 minus NaN13 -> NaN13 +dqmns032 minus -NaN13 -> -NaN13 +dqmns033 minus sNaN13 -> NaN13 Invalid_operation +dqmns034 minus -sNaN13 -> -NaN13 Invalid_operation +dqmns035 minus NaN70 -> NaN70 +dqmns036 minus -NaN70 -> -NaN70 +dqmns037 minus sNaN101 -> NaN101 Invalid_operation +dqmns038 minus -sNaN101 -> -NaN101 Invalid_operation + +-- finites +dqmns101 minus 7 -> -7 +dqmns102 minus -7 -> 7 +dqmns103 minus 75 -> -75 +dqmns104 minus -75 -> 75 +dqmns105 minus 7.50 -> -7.50 +dqmns106 minus -7.50 -> 7.50 +dqmns107 minus 7.500 -> -7.500 +dqmns108 minus -7.500 -> 7.500 + +-- zeros +dqmns111 minus 0 -> 0 +dqmns112 minus -0 -> 0 +dqmns113 minus 0E+4 -> 0E+4 +dqmns114 minus -0E+4 -> 0E+4 +dqmns115 minus 0.0000 -> 0.0000 +dqmns116 minus -0.0000 -> 0.0000 +dqmns117 minus 0E-141 -> 0E-141 +dqmns118 minus -0E-141 -> 0E-141 + +-- full coefficients, alternating bits +dqmns121 minus 2682682682682682682682682682682682 -> -2682682682682682682682682682682682 +dqmns122 minus -2682682682682682682682682682682682 -> 2682682682682682682682682682682682 +dqmns123 minus 1341341341341341341341341341341341 -> -1341341341341341341341341341341341 +dqmns124 minus -1341341341341341341341341341341341 -> 1341341341341341341341341341341341 + +-- Nmax, Nmin, Ntiny +dqmns131 minus 9.999999999999999999999999999999999E+6144 -> -9.999999999999999999999999999999999E+6144 +dqmns132 minus 1E-6143 -> -1E-6143 +dqmns133 minus 1.000000000000000000000000000000000E-6143 -> -1.000000000000000000000000000000000E-6143 +dqmns134 minus 1E-6176 -> -1E-6176 Subnormal + +dqmns135 minus -1E-6176 -> 1E-6176 Subnormal +dqmns136 minus -1.000000000000000000000000000000000E-6143 -> 1.000000000000000000000000000000000E-6143 +dqmns137 minus -1E-6143 -> 1E-6143 +dqmns138 minus -9.999999999999999999999999999999999E+6144 -> 9.999999999999999999999999999999999E+6144 diff --git a/Lib/test/decimaltestdata/dqMultiply.decTest b/Lib/test/decimaltestdata/dqMultiply.decTest index 676c1f5ea4..8387a858d3 100644 --- a/Lib/test/decimaltestdata/dqMultiply.decTest +++ b/Lib/test/decimaltestdata/dqMultiply.decTest @@ -1,589 +1,589 @@ -------------------------------------------------------------------------
--- dqMultiply.decTest -- decQuad multiplication --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- This set of tests are for decQuads only; all arguments are
--- representable in a decQuad
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
--- sanity checks
-dqmul000 multiply 2 2 -> 4
-dqmul001 multiply 2 3 -> 6
-dqmul002 multiply 5 1 -> 5
-dqmul003 multiply 5 2 -> 10
-dqmul004 multiply 1.20 2 -> 2.40
-dqmul005 multiply 1.20 0 -> 0.00
-dqmul006 multiply 1.20 -2 -> -2.40
-dqmul007 multiply -1.20 2 -> -2.40
-dqmul008 multiply -1.20 0 -> -0.00
-dqmul009 multiply -1.20 -2 -> 2.40
-dqmul010 multiply 5.09 7.1 -> 36.139
-dqmul011 multiply 2.5 4 -> 10.0
-dqmul012 multiply 2.50 4 -> 10.00
-dqmul013 multiply 1.23456789 1.0000000000000000000000000000 -> 1.234567890000000000000000000000000 Rounded
-dqmul015 multiply 2.50 4 -> 10.00
-dqmul016 multiply 9.99999999999999999 9.99999999999999999 -> 99.99999999999999980000000000000000 Inexact Rounded
-dqmul017 multiply 9.99999999999999999 -9.99999999999999999 -> -99.99999999999999980000000000000000 Inexact Rounded
-dqmul018 multiply -9.99999999999999999 9.99999999999999999 -> -99.99999999999999980000000000000000 Inexact Rounded
-dqmul019 multiply -9.99999999999999999 -9.99999999999999999 -> 99.99999999999999980000000000000000 Inexact Rounded
-
--- zeros, etc.
-dqmul021 multiply 0 0 -> 0
-dqmul022 multiply 0 -0 -> -0
-dqmul023 multiply -0 0 -> -0
-dqmul024 multiply -0 -0 -> 0
-dqmul025 multiply -0.0 -0.0 -> 0.00
-dqmul026 multiply -0.0 -0.0 -> 0.00
-dqmul027 multiply -0.0 -0.0 -> 0.00
-dqmul028 multiply -0.0 -0.0 -> 0.00
-dqmul030 multiply 5.00 1E-3 -> 0.00500
-dqmul031 multiply 00.00 0.000 -> 0.00000
-dqmul032 multiply 00.00 0E-3 -> 0.00000 -- rhs is 0
-dqmul033 multiply 0E-3 00.00 -> 0.00000 -- lhs is 0
-dqmul034 multiply -5.00 1E-3 -> -0.00500
-dqmul035 multiply -00.00 0.000 -> -0.00000
-dqmul036 multiply -00.00 0E-3 -> -0.00000 -- rhs is 0
-dqmul037 multiply -0E-3 00.00 -> -0.00000 -- lhs is 0
-dqmul038 multiply 5.00 -1E-3 -> -0.00500
-dqmul039 multiply 00.00 -0.000 -> -0.00000
-dqmul040 multiply 00.00 -0E-3 -> -0.00000 -- rhs is 0
-dqmul041 multiply 0E-3 -00.00 -> -0.00000 -- lhs is 0
-dqmul042 multiply -5.00 -1E-3 -> 0.00500
-dqmul043 multiply -00.00 -0.000 -> 0.00000
-dqmul044 multiply -00.00 -0E-3 -> 0.00000 -- rhs is 0
-dqmul045 multiply -0E-3 -00.00 -> 0.00000 -- lhs is 0
-
--- examples from decarith
-dqmul050 multiply 1.20 3 -> 3.60
-dqmul051 multiply 7 3 -> 21
-dqmul052 multiply 0.9 0.8 -> 0.72
-dqmul053 multiply 0.9 -0 -> -0.0
-dqmul054 multiply 654321 654321 -> 428135971041
-
-dqmul060 multiply 123.45 1e7 -> 1.2345E+9
-dqmul061 multiply 123.45 1e8 -> 1.2345E+10
-dqmul062 multiply 123.45 1e+9 -> 1.2345E+11
-dqmul063 multiply 123.45 1e10 -> 1.2345E+12
-dqmul064 multiply 123.45 1e11 -> 1.2345E+13
-dqmul065 multiply 123.45 1e12 -> 1.2345E+14
-dqmul066 multiply 123.45 1e13 -> 1.2345E+15
-
-
--- test some intermediate lengths
--- 1234567890123456
-dqmul080 multiply 0.1 1230123456456789 -> 123012345645678.9
-dqmul084 multiply 0.1 1230123456456789 -> 123012345645678.9
-dqmul090 multiply 1230123456456789 0.1 -> 123012345645678.9
-dqmul094 multiply 1230123456456789 0.1 -> 123012345645678.9
-
--- test some more edge cases and carries
-dqmul101 multiply 9 9 -> 81
-dqmul102 multiply 9 90 -> 810
-dqmul103 multiply 9 900 -> 8100
-dqmul104 multiply 9 9000 -> 81000
-dqmul105 multiply 9 90000 -> 810000
-dqmul106 multiply 9 900000 -> 8100000
-dqmul107 multiply 9 9000000 -> 81000000
-dqmul108 multiply 9 90000000 -> 810000000
-dqmul109 multiply 9 900000000 -> 8100000000
-dqmul110 multiply 9 9000000000 -> 81000000000
-dqmul111 multiply 9 90000000000 -> 810000000000
-dqmul112 multiply 9 900000000000 -> 8100000000000
-dqmul113 multiply 9 9000000000000 -> 81000000000000
-dqmul114 multiply 9 90000000000000 -> 810000000000000
-dqmul115 multiply 9 900000000000000 -> 8100000000000000
---dqmul116 multiply 9 9000000000000000 -> 81000000000000000
---dqmul117 multiply 9 90000000000000000 -> 810000000000000000
---dqmul118 multiply 9 900000000000000000 -> 8100000000000000000
---dqmul119 multiply 9 9000000000000000000 -> 81000000000000000000
---dqmul120 multiply 9 90000000000000000000 -> 810000000000000000000
---dqmul121 multiply 9 900000000000000000000 -> 8100000000000000000000
---dqmul122 multiply 9 9000000000000000000000 -> 81000000000000000000000
---dqmul123 multiply 9 90000000000000000000000 -> 810000000000000000000000
--- test some more edge cases without carries
-dqmul131 multiply 3 3 -> 9
-dqmul132 multiply 3 30 -> 90
-dqmul133 multiply 3 300 -> 900
-dqmul134 multiply 3 3000 -> 9000
-dqmul135 multiply 3 30000 -> 90000
-dqmul136 multiply 3 300000 -> 900000
-dqmul137 multiply 3 3000000 -> 9000000
-dqmul138 multiply 3 30000000 -> 90000000
-dqmul139 multiply 3 300000000 -> 900000000
-dqmul140 multiply 3 3000000000 -> 9000000000
-dqmul141 multiply 3 30000000000 -> 90000000000
-dqmul142 multiply 3 300000000000 -> 900000000000
-dqmul143 multiply 3 3000000000000 -> 9000000000000
-dqmul144 multiply 3 30000000000000 -> 90000000000000
-dqmul145 multiply 3 300000000000000 -> 900000000000000
-dqmul146 multiply 3 3000000000000000 -> 9000000000000000
-dqmul147 multiply 3 30000000000000000 -> 90000000000000000
-dqmul148 multiply 3 300000000000000000 -> 900000000000000000
-dqmul149 multiply 3 3000000000000000000 -> 9000000000000000000
-dqmul150 multiply 3 30000000000000000000 -> 90000000000000000000
-dqmul151 multiply 3 300000000000000000000 -> 900000000000000000000
-dqmul152 multiply 3 3000000000000000000000 -> 9000000000000000000000
-dqmul153 multiply 3 30000000000000000000000 -> 90000000000000000000000
-
-dqmul263 multiply 30269.587755640502150977251770554 4.8046009735990873395936309640543 -> 145433.2908011933696719165119928296 Inexact Rounded
-
--- test some edge cases with exact rounding
-dqmul301 multiply 900000000000000000 9 -> 8100000000000000000
-dqmul302 multiply 900000000000000000 90 -> 81000000000000000000
-dqmul303 multiply 900000000000000000 900 -> 810000000000000000000
-dqmul304 multiply 900000000000000000 9000 -> 8100000000000000000000
-dqmul305 multiply 900000000000000000 90000 -> 81000000000000000000000
-dqmul306 multiply 900000000000000000 900000 -> 810000000000000000000000
-dqmul307 multiply 900000000000000000 9000000 -> 8100000000000000000000000
-dqmul308 multiply 900000000000000000 90000000 -> 81000000000000000000000000
-dqmul309 multiply 900000000000000000 900000000 -> 810000000000000000000000000
-dqmul310 multiply 900000000000000000 9000000000 -> 8100000000000000000000000000
-dqmul311 multiply 900000000000000000 90000000000 -> 81000000000000000000000000000
-dqmul312 multiply 900000000000000000 900000000000 -> 810000000000000000000000000000
-dqmul313 multiply 900000000000000000 9000000000000 -> 8100000000000000000000000000000
-dqmul314 multiply 900000000000000000 90000000000000 -> 81000000000000000000000000000000
-dqmul315 multiply 900000000000000000 900000000000000 -> 810000000000000000000000000000000
-dqmul316 multiply 900000000000000000 9000000000000000 -> 8100000000000000000000000000000000
-dqmul317 multiply 9000000000000000000 9000000000000000 -> 8.100000000000000000000000000000000E+34 Rounded
-dqmul318 multiply 90000000000000000000 9000000000000000 -> 8.100000000000000000000000000000000E+35 Rounded
-dqmul319 multiply 900000000000000000000 9000000000000000 -> 8.100000000000000000000000000000000E+36 Rounded
-dqmul320 multiply 9000000000000000000000 9000000000000000 -> 8.100000000000000000000000000000000E+37 Rounded
-dqmul321 multiply 90000000000000000000000 9000000000000000 -> 8.100000000000000000000000000000000E+38 Rounded
-dqmul322 multiply 900000000000000000000000 9000000000000000 -> 8.100000000000000000000000000000000E+39 Rounded
-dqmul323 multiply 9000000000000000000000000 9000000000000000 -> 8.100000000000000000000000000000000E+40 Rounded
-
--- tryzeros cases
-dqmul504 multiply 0E-4260 1000E-4260 -> 0E-6176 Clamped
-dqmul505 multiply 100E+4260 0E+4260 -> 0E+6111 Clamped
-
--- mixed with zeros
-dqmul541 multiply 0 -1 -> -0
-dqmul542 multiply -0 -1 -> 0
-dqmul543 multiply 0 1 -> 0
-dqmul544 multiply -0 1 -> -0
-dqmul545 multiply -1 0 -> -0
-dqmul546 multiply -1 -0 -> 0
-dqmul547 multiply 1 0 -> 0
-dqmul548 multiply 1 -0 -> -0
-
-dqmul551 multiply 0.0 -1 -> -0.0
-dqmul552 multiply -0.0 -1 -> 0.0
-dqmul553 multiply 0.0 1 -> 0.0
-dqmul554 multiply -0.0 1 -> -0.0
-dqmul555 multiply -1.0 0 -> -0.0
-dqmul556 multiply -1.0 -0 -> 0.0
-dqmul557 multiply 1.0 0 -> 0.0
-dqmul558 multiply 1.0 -0 -> -0.0
-
-dqmul561 multiply 0 -1.0 -> -0.0
-dqmul562 multiply -0 -1.0 -> 0.0
-dqmul563 multiply 0 1.0 -> 0.0
-dqmul564 multiply -0 1.0 -> -0.0
-dqmul565 multiply -1 0.0 -> -0.0
-dqmul566 multiply -1 -0.0 -> 0.0
-dqmul567 multiply 1 0.0 -> 0.0
-dqmul568 multiply 1 -0.0 -> -0.0
-
-dqmul571 multiply 0.0 -1.0 -> -0.00
-dqmul572 multiply -0.0 -1.0 -> 0.00
-dqmul573 multiply 0.0 1.0 -> 0.00
-dqmul574 multiply -0.0 1.0 -> -0.00
-dqmul575 multiply -1.0 0.0 -> -0.00
-dqmul576 multiply -1.0 -0.0 -> 0.00
-dqmul577 multiply 1.0 0.0 -> 0.00
-dqmul578 multiply 1.0 -0.0 -> -0.00
-
-
--- Specials
-dqmul580 multiply Inf -Inf -> -Infinity
-dqmul581 multiply Inf -1000 -> -Infinity
-dqmul582 multiply Inf -1 -> -Infinity
-dqmul583 multiply Inf -0 -> NaN Invalid_operation
-dqmul584 multiply Inf 0 -> NaN Invalid_operation
-dqmul585 multiply Inf 1 -> Infinity
-dqmul586 multiply Inf 1000 -> Infinity
-dqmul587 multiply Inf Inf -> Infinity
-dqmul588 multiply -1000 Inf -> -Infinity
-dqmul589 multiply -Inf Inf -> -Infinity
-dqmul590 multiply -1 Inf -> -Infinity
-dqmul591 multiply -0 Inf -> NaN Invalid_operation
-dqmul592 multiply 0 Inf -> NaN Invalid_operation
-dqmul593 multiply 1 Inf -> Infinity
-dqmul594 multiply 1000 Inf -> Infinity
-dqmul595 multiply Inf Inf -> Infinity
-
-dqmul600 multiply -Inf -Inf -> Infinity
-dqmul601 multiply -Inf -1000 -> Infinity
-dqmul602 multiply -Inf -1 -> Infinity
-dqmul603 multiply -Inf -0 -> NaN Invalid_operation
-dqmul604 multiply -Inf 0 -> NaN Invalid_operation
-dqmul605 multiply -Inf 1 -> -Infinity
-dqmul606 multiply -Inf 1000 -> -Infinity
-dqmul607 multiply -Inf Inf -> -Infinity
-dqmul608 multiply -1000 Inf -> -Infinity
-dqmul609 multiply -Inf -Inf -> Infinity
-dqmul610 multiply -1 -Inf -> Infinity
-dqmul611 multiply -0 -Inf -> NaN Invalid_operation
-dqmul612 multiply 0 -Inf -> NaN Invalid_operation
-dqmul613 multiply 1 -Inf -> -Infinity
-dqmul614 multiply 1000 -Inf -> -Infinity
-dqmul615 multiply Inf -Inf -> -Infinity
-
-dqmul621 multiply NaN -Inf -> NaN
-dqmul622 multiply NaN -1000 -> NaN
-dqmul623 multiply NaN -1 -> NaN
-dqmul624 multiply NaN -0 -> NaN
-dqmul625 multiply NaN 0 -> NaN
-dqmul626 multiply NaN 1 -> NaN
-dqmul627 multiply NaN 1000 -> NaN
-dqmul628 multiply NaN Inf -> NaN
-dqmul629 multiply NaN NaN -> NaN
-dqmul630 multiply -Inf NaN -> NaN
-dqmul631 multiply -1000 NaN -> NaN
-dqmul632 multiply -1 NaN -> NaN
-dqmul633 multiply -0 NaN -> NaN
-dqmul634 multiply 0 NaN -> NaN
-dqmul635 multiply 1 NaN -> NaN
-dqmul636 multiply 1000 NaN -> NaN
-dqmul637 multiply Inf NaN -> NaN
-
-dqmul641 multiply sNaN -Inf -> NaN Invalid_operation
-dqmul642 multiply sNaN -1000 -> NaN Invalid_operation
-dqmul643 multiply sNaN -1 -> NaN Invalid_operation
-dqmul644 multiply sNaN -0 -> NaN Invalid_operation
-dqmul645 multiply sNaN 0 -> NaN Invalid_operation
-dqmul646 multiply sNaN 1 -> NaN Invalid_operation
-dqmul647 multiply sNaN 1000 -> NaN Invalid_operation
-dqmul648 multiply sNaN NaN -> NaN Invalid_operation
-dqmul649 multiply sNaN sNaN -> NaN Invalid_operation
-dqmul650 multiply NaN sNaN -> NaN Invalid_operation
-dqmul651 multiply -Inf sNaN -> NaN Invalid_operation
-dqmul652 multiply -1000 sNaN -> NaN Invalid_operation
-dqmul653 multiply -1 sNaN -> NaN Invalid_operation
-dqmul654 multiply -0 sNaN -> NaN Invalid_operation
-dqmul655 multiply 0 sNaN -> NaN Invalid_operation
-dqmul656 multiply 1 sNaN -> NaN Invalid_operation
-dqmul657 multiply 1000 sNaN -> NaN Invalid_operation
-dqmul658 multiply Inf sNaN -> NaN Invalid_operation
-dqmul659 multiply NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-dqmul661 multiply NaN9 -Inf -> NaN9
-dqmul662 multiply NaN8 999 -> NaN8
-dqmul663 multiply NaN71 Inf -> NaN71
-dqmul664 multiply NaN6 NaN5 -> NaN6
-dqmul665 multiply -Inf NaN4 -> NaN4
-dqmul666 multiply -999 NaN33 -> NaN33
-dqmul667 multiply Inf NaN2 -> NaN2
-
-dqmul671 multiply sNaN99 -Inf -> NaN99 Invalid_operation
-dqmul672 multiply sNaN98 -11 -> NaN98 Invalid_operation
-dqmul673 multiply sNaN97 NaN -> NaN97 Invalid_operation
-dqmul674 multiply sNaN16 sNaN94 -> NaN16 Invalid_operation
-dqmul675 multiply NaN95 sNaN93 -> NaN93 Invalid_operation
-dqmul676 multiply -Inf sNaN92 -> NaN92 Invalid_operation
-dqmul677 multiply 088 sNaN91 -> NaN91 Invalid_operation
-dqmul678 multiply Inf sNaN90 -> NaN90 Invalid_operation
-dqmul679 multiply NaN sNaN89 -> NaN89 Invalid_operation
-
-dqmul681 multiply -NaN9 -Inf -> -NaN9
-dqmul682 multiply -NaN8 999 -> -NaN8
-dqmul683 multiply -NaN71 Inf -> -NaN71
-dqmul684 multiply -NaN6 -NaN5 -> -NaN6
-dqmul685 multiply -Inf -NaN4 -> -NaN4
-dqmul686 multiply -999 -NaN33 -> -NaN33
-dqmul687 multiply Inf -NaN2 -> -NaN2
-
-dqmul691 multiply -sNaN99 -Inf -> -NaN99 Invalid_operation
-dqmul692 multiply -sNaN98 -11 -> -NaN98 Invalid_operation
-dqmul693 multiply -sNaN97 NaN -> -NaN97 Invalid_operation
-dqmul694 multiply -sNaN16 -sNaN94 -> -NaN16 Invalid_operation
-dqmul695 multiply -NaN95 -sNaN93 -> -NaN93 Invalid_operation
-dqmul696 multiply -Inf -sNaN92 -> -NaN92 Invalid_operation
-dqmul697 multiply 088 -sNaN91 -> -NaN91 Invalid_operation
-dqmul698 multiply Inf -sNaN90 -> -NaN90 Invalid_operation
-dqmul699 multiply -NaN -sNaN89 -> -NaN89 Invalid_operation
-
-dqmul701 multiply -NaN -Inf -> -NaN
-dqmul702 multiply -NaN 999 -> -NaN
-dqmul703 multiply -NaN Inf -> -NaN
-dqmul704 multiply -NaN -NaN -> -NaN
-dqmul705 multiply -Inf -NaN0 -> -NaN
-dqmul706 multiply -999 -NaN -> -NaN
-dqmul707 multiply Inf -NaN -> -NaN
-
-dqmul711 multiply -sNaN -Inf -> -NaN Invalid_operation
-dqmul712 multiply -sNaN -11 -> -NaN Invalid_operation
-dqmul713 multiply -sNaN00 NaN -> -NaN Invalid_operation
-dqmul714 multiply -sNaN -sNaN -> -NaN Invalid_operation
-dqmul715 multiply -NaN -sNaN -> -NaN Invalid_operation
-dqmul716 multiply -Inf -sNaN -> -NaN Invalid_operation
-dqmul717 multiply 088 -sNaN -> -NaN Invalid_operation
-dqmul718 multiply Inf -sNaN -> -NaN Invalid_operation
-dqmul719 multiply -NaN -sNaN -> -NaN Invalid_operation
-
--- overflow and underflow tests .. note subnormal results
--- signs
-dqmul751 multiply 1e+4277 1e+3311 -> Infinity Overflow Inexact Rounded
-dqmul752 multiply 1e+4277 -1e+3311 -> -Infinity Overflow Inexact Rounded
-dqmul753 multiply -1e+4277 1e+3311 -> -Infinity Overflow Inexact Rounded
-dqmul754 multiply -1e+4277 -1e+3311 -> Infinity Overflow Inexact Rounded
-dqmul755 multiply 1e-4277 1e-3311 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqmul756 multiply 1e-4277 -1e-3311 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqmul757 multiply -1e-4277 1e-3311 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqmul758 multiply -1e-4277 -1e-3311 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-
--- 'subnormal' boundary (all hard underflow or overflow in base arithemtic)
-dqmul760 multiply 1e-6069 1e-101 -> 1E-6170 Subnormal
-dqmul761 multiply 1e-6069 1e-102 -> 1E-6171 Subnormal
-dqmul762 multiply 1e-6069 1e-103 -> 1E-6172 Subnormal
-dqmul763 multiply 1e-6069 1e-104 -> 1E-6173 Subnormal
-dqmul764 multiply 1e-6069 1e-105 -> 1E-6174 Subnormal
-dqmul765 multiply 1e-6069 1e-106 -> 1E-6175 Subnormal
-dqmul766 multiply 1e-6069 1e-107 -> 1E-6176 Subnormal
-dqmul767 multiply 1e-6069 1e-108 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqmul768 multiply 1e-6069 1e-109 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqmul769 multiply 1e-6069 1e-110 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
--- [no equivalent of 'subnormal' for overflow]
-dqmul770 multiply 1e+40 1e+6101 -> 1.000000000000000000000000000000E+6141 Clamped
-dqmul771 multiply 1e+40 1e+6102 -> 1.0000000000000000000000000000000E+6142 Clamped
-dqmul772 multiply 1e+40 1e+6103 -> 1.00000000000000000000000000000000E+6143 Clamped
-dqmul773 multiply 1e+40 1e+6104 -> 1.000000000000000000000000000000000E+6144 Clamped
-dqmul774 multiply 1e+40 1e+6105 -> Infinity Overflow Inexact Rounded
-dqmul775 multiply 1e+40 1e+6106 -> Infinity Overflow Inexact Rounded
-dqmul776 multiply 1e+40 1e+6107 -> Infinity Overflow Inexact Rounded
-dqmul777 multiply 1e+40 1e+6108 -> Infinity Overflow Inexact Rounded
-dqmul778 multiply 1e+40 1e+6109 -> Infinity Overflow Inexact Rounded
-dqmul779 multiply 1e+40 1e+6110 -> Infinity Overflow Inexact Rounded
-
-dqmul801 multiply 1.0000E-6172 1 -> 1.0000E-6172 Subnormal
-dqmul802 multiply 1.000E-6172 1e-1 -> 1.000E-6173 Subnormal
-dqmul803 multiply 1.00E-6172 1e-2 -> 1.00E-6174 Subnormal
-dqmul804 multiply 1.0E-6172 1e-3 -> 1.0E-6175 Subnormal
-dqmul805 multiply 1.0E-6172 1e-4 -> 1E-6176 Subnormal Rounded
-dqmul806 multiply 1.3E-6172 1e-4 -> 1E-6176 Underflow Subnormal Inexact Rounded
-dqmul807 multiply 1.5E-6172 1e-4 -> 2E-6176 Underflow Subnormal Inexact Rounded
-dqmul808 multiply 1.7E-6172 1e-4 -> 2E-6176 Underflow Subnormal Inexact Rounded
-dqmul809 multiply 2.3E-6172 1e-4 -> 2E-6176 Underflow Subnormal Inexact Rounded
-dqmul810 multiply 2.5E-6172 1e-4 -> 2E-6176 Underflow Subnormal Inexact Rounded
-dqmul811 multiply 2.7E-6172 1e-4 -> 3E-6176 Underflow Subnormal Inexact Rounded
-dqmul812 multiply 1.49E-6172 1e-4 -> 1E-6176 Underflow Subnormal Inexact Rounded
-dqmul813 multiply 1.50E-6172 1e-4 -> 2E-6176 Underflow Subnormal Inexact Rounded
-dqmul814 multiply 1.51E-6172 1e-4 -> 2E-6176 Underflow Subnormal Inexact Rounded
-dqmul815 multiply 2.49E-6172 1e-4 -> 2E-6176 Underflow Subnormal Inexact Rounded
-dqmul816 multiply 2.50E-6172 1e-4 -> 2E-6176 Underflow Subnormal Inexact Rounded
-dqmul817 multiply 2.51E-6172 1e-4 -> 3E-6176 Underflow Subnormal Inexact Rounded
-
-dqmul818 multiply 1E-6172 1e-4 -> 1E-6176 Subnormal
-dqmul819 multiply 3E-6172 1e-5 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqmul820 multiply 5E-6172 1e-5 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqmul821 multiply 7E-6172 1e-5 -> 1E-6176 Underflow Subnormal Inexact Rounded
-dqmul822 multiply 9E-6172 1e-5 -> 1E-6176 Underflow Subnormal Inexact Rounded
-dqmul823 multiply 9.9E-6172 1e-5 -> 1E-6176 Underflow Subnormal Inexact Rounded
-
-dqmul824 multiply 1E-6172 -1e-4 -> -1E-6176 Subnormal
-dqmul825 multiply 3E-6172 -1e-5 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqmul826 multiply -5E-6172 1e-5 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqmul827 multiply 7E-6172 -1e-5 -> -1E-6176 Underflow Subnormal Inexact Rounded
-dqmul828 multiply -9E-6172 1e-5 -> -1E-6176 Underflow Subnormal Inexact Rounded
-dqmul829 multiply 9.9E-6172 -1e-5 -> -1E-6176 Underflow Subnormal Inexact Rounded
-dqmul830 multiply 3.0E-6172 -1e-5 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped
-
-dqmul831 multiply 1.0E-5977 1e-200 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqmul832 multiply 1.0E-5977 1e-199 -> 1E-6176 Subnormal Rounded
-dqmul833 multiply 1.0E-5977 1e-198 -> 1.0E-6175 Subnormal
-dqmul834 multiply 2.0E-5977 2e-198 -> 4.0E-6175 Subnormal
-dqmul835 multiply 4.0E-5977 4e-198 -> 1.60E-6174 Subnormal
-dqmul836 multiply 10.0E-5977 10e-198 -> 1.000E-6173 Subnormal
-dqmul837 multiply 30.0E-5977 30e-198 -> 9.000E-6173 Subnormal
-dqmul838 multiply 40.0E-5982 40e-166 -> 1.6000E-6145 Subnormal
-dqmul839 multiply 40.0E-5982 40e-165 -> 1.6000E-6144 Subnormal
-dqmul840 multiply 40.0E-5982 40e-164 -> 1.6000E-6143
-
--- Long operand overflow may be a different path
-dqmul870 multiply 100 9.999E+6143 -> Infinity Inexact Overflow Rounded
-dqmul871 multiply 100 -9.999E+6143 -> -Infinity Inexact Overflow Rounded
-dqmul872 multiply 9.999E+6143 100 -> Infinity Inexact Overflow Rounded
-dqmul873 multiply -9.999E+6143 100 -> -Infinity Inexact Overflow Rounded
-
--- check for double-rounded subnormals
-dqmul881 multiply 1.2347E-6133 1.2347E-40 -> 1.524E-6173 Inexact Rounded Subnormal Underflow
-dqmul882 multiply 1.234E-6133 1.234E-40 -> 1.523E-6173 Inexact Rounded Subnormal Underflow
-dqmul883 multiply 1.23E-6133 1.23E-40 -> 1.513E-6173 Inexact Rounded Subnormal Underflow
-dqmul884 multiply 1.2E-6133 1.2E-40 -> 1.44E-6173 Subnormal
-dqmul885 multiply 1.2E-6133 1.2E-41 -> 1.44E-6174 Subnormal
-dqmul886 multiply 1.2E-6133 1.2E-42 -> 1.4E-6175 Subnormal Inexact Rounded Underflow
-dqmul887 multiply 1.2E-6133 1.3E-42 -> 1.6E-6175 Subnormal Inexact Rounded Underflow
-dqmul888 multiply 1.3E-6133 1.3E-42 -> 1.7E-6175 Subnormal Inexact Rounded Underflow
-dqmul889 multiply 1.3E-6133 1.3E-43 -> 2E-6176 Subnormal Inexact Rounded Underflow
-dqmul890 multiply 1.3E-6134 1.3E-43 -> 0E-6176 Clamped Subnormal Inexact Rounded Underflow
-
-dqmul891 multiply 1.2345E-39 1.234E-6133 -> 1.5234E-6172 Inexact Rounded Subnormal Underflow
-dqmul892 multiply 1.23456E-39 1.234E-6133 -> 1.5234E-6172 Inexact Rounded Subnormal Underflow
-dqmul893 multiply 1.2345E-40 1.234E-6133 -> 1.523E-6173 Inexact Rounded Subnormal Underflow
-dqmul894 multiply 1.23456E-40 1.234E-6133 -> 1.523E-6173 Inexact Rounded Subnormal Underflow
-dqmul895 multiply 1.2345E-41 1.234E-6133 -> 1.52E-6174 Inexact Rounded Subnormal Underflow
-dqmul896 multiply 1.23456E-41 1.234E-6133 -> 1.52E-6174 Inexact Rounded Subnormal Underflow
-
--- Now explore the case where we get a normal result with Underflow
--- prove operands are exact
-dqmul906 multiply 9.999999999999999999999999999999999E-6143 1 -> 9.999999999999999999999999999999999E-6143
-dqmul907 multiply 1 0.09999999999999999999999999999999999 -> 0.09999999999999999999999999999999999
--- the next rounds to Nmin
-dqmul908 multiply 9.999999999999999999999999999999999E-6143 0.09999999999999999999999999999999999 -> 1.000000000000000000000000000000000E-6143 Underflow Inexact Subnormal Rounded
-
--- hugest
-dqmul909 multiply 9999999999999999999999999999999999 9999999999999999999999999999999999 -> 9.999999999999999999999999999999998E+67 Inexact Rounded
--- VG case
-dqmul910 multiply 8.81125000000001349436E-1548 8.000000000000000000E-1550 -> 7.049000000000010795488000000000000E-3097 Rounded
-
--- Examples from SQL proposal (Krishna Kulkarni)
-precision: 34
-rounding: half_up
-maxExponent: 6144
-minExponent: -6143
-dqmul911 multiply 130E-2 120E-2 -> 1.5600
-dqmul912 multiply 130E-2 12E-1 -> 1.560
-dqmul913 multiply 130E-2 1E0 -> 1.30
-dqmul914 multiply 1E2 1E4 -> 1E+6
-
--- power-of-ten edge cases
-dqmul1001 multiply 1 10 -> 10
-dqmul1002 multiply 1 100 -> 100
-dqmul1003 multiply 1 1000 -> 1000
-dqmul1004 multiply 1 10000 -> 10000
-dqmul1005 multiply 1 100000 -> 100000
-dqmul1006 multiply 1 1000000 -> 1000000
-dqmul1007 multiply 1 10000000 -> 10000000
-dqmul1008 multiply 1 100000000 -> 100000000
-dqmul1009 multiply 1 1000000000 -> 1000000000
-dqmul1010 multiply 1 10000000000 -> 10000000000
-dqmul1011 multiply 1 100000000000 -> 100000000000
-dqmul1012 multiply 1 1000000000000 -> 1000000000000
-dqmul1013 multiply 1 10000000000000 -> 10000000000000
-dqmul1014 multiply 1 100000000000000 -> 100000000000000
-dqmul1015 multiply 1 1000000000000000 -> 1000000000000000
-
-dqmul1016 multiply 1 1000000000000000000 -> 1000000000000000000
-dqmul1017 multiply 1 100000000000000000000000000 -> 100000000000000000000000000
-dqmul1018 multiply 1 1000000000000000000000000000 -> 1000000000000000000000000000
-dqmul1019 multiply 1 10000000000000000000000000000 -> 10000000000000000000000000000
-dqmul1020 multiply 1 1000000000000000000000000000000000 -> 1000000000000000000000000000000000
-
-dqmul1021 multiply 10 1 -> 10
-dqmul1022 multiply 10 10 -> 100
-dqmul1023 multiply 10 100 -> 1000
-dqmul1024 multiply 10 1000 -> 10000
-dqmul1025 multiply 10 10000 -> 100000
-dqmul1026 multiply 10 100000 -> 1000000
-dqmul1027 multiply 10 1000000 -> 10000000
-dqmul1028 multiply 10 10000000 -> 100000000
-dqmul1029 multiply 10 100000000 -> 1000000000
-dqmul1030 multiply 10 1000000000 -> 10000000000
-dqmul1031 multiply 10 10000000000 -> 100000000000
-dqmul1032 multiply 10 100000000000 -> 1000000000000
-dqmul1033 multiply 10 1000000000000 -> 10000000000000
-dqmul1034 multiply 10 10000000000000 -> 100000000000000
-dqmul1035 multiply 10 100000000000000 -> 1000000000000000
-
-dqmul1036 multiply 10 100000000000000000 -> 1000000000000000000
-dqmul1037 multiply 10 10000000000000000000000000 -> 100000000000000000000000000
-dqmul1038 multiply 10 100000000000000000000000000 -> 1000000000000000000000000000
-dqmul1039 multiply 10 1000000000000000000000000000 -> 10000000000000000000000000000
-dqmul1040 multiply 10 100000000000000000000000000000000 -> 1000000000000000000000000000000000
-
-dqmul1041 multiply 100 0.1 -> 10.0
-dqmul1042 multiply 100 1 -> 100
-dqmul1043 multiply 100 10 -> 1000
-dqmul1044 multiply 100 100 -> 10000
-dqmul1045 multiply 100 1000 -> 100000
-dqmul1046 multiply 100 10000 -> 1000000
-dqmul1047 multiply 100 100000 -> 10000000
-dqmul1048 multiply 100 1000000 -> 100000000
-dqmul1049 multiply 100 10000000 -> 1000000000
-dqmul1050 multiply 100 100000000 -> 10000000000
-dqmul1051 multiply 100 1000000000 -> 100000000000
-dqmul1052 multiply 100 10000000000 -> 1000000000000
-dqmul1053 multiply 100 100000000000 -> 10000000000000
-dqmul1054 multiply 100 1000000000000 -> 100000000000000
-dqmul1055 multiply 100 10000000000000 -> 1000000000000000
-
-dqmul1056 multiply 100 10000000000000000 -> 1000000000000000000
-dqmul1057 multiply 100 1000000000000000000000000 -> 100000000000000000000000000
-dqmul1058 multiply 100 10000000000000000000000000 -> 1000000000000000000000000000
-dqmul1059 multiply 100 100000000000000000000000000 -> 10000000000000000000000000000
-dqmul1060 multiply 100 10000000000000000000000000000000 -> 1000000000000000000000000000000000
-
-dqmul1061 multiply 1000 0.01 -> 10.00
-dqmul1062 multiply 1000 0.1 -> 100.0
-dqmul1063 multiply 1000 1 -> 1000
-dqmul1064 multiply 1000 10 -> 10000
-dqmul1065 multiply 1000 100 -> 100000
-dqmul1066 multiply 1000 1000 -> 1000000
-dqmul1067 multiply 1000 10000 -> 10000000
-dqmul1068 multiply 1000 100000 -> 100000000
-dqmul1069 multiply 1000 1000000 -> 1000000000
-dqmul1070 multiply 1000 10000000 -> 10000000000
-dqmul1071 multiply 1000 100000000 -> 100000000000
-dqmul1072 multiply 1000 1000000000 -> 1000000000000
-dqmul1073 multiply 1000 10000000000 -> 10000000000000
-dqmul1074 multiply 1000 100000000000 -> 100000000000000
-dqmul1075 multiply 1000 1000000000000 -> 1000000000000000
-
-dqmul1076 multiply 1000 1000000000000000 -> 1000000000000000000
-dqmul1077 multiply 1000 100000000000000000000000 -> 100000000000000000000000000
-dqmul1078 multiply 1000 1000000000000000000000000 -> 1000000000000000000000000000
-dqmul1079 multiply 1000 10000000000000000000000000 -> 10000000000000000000000000000
-dqmul1080 multiply 1000 1000000000000000000000000000000 -> 1000000000000000000000000000000000
-
-dqmul1081 multiply 10000 0.001 -> 10.000
-dqmul1082 multiply 10000 0.01 -> 100.00
-dqmul1083 multiply 10000 0.1 -> 1000.0
-dqmul1084 multiply 10000 1 -> 10000
-dqmul1085 multiply 10000 10 -> 100000
-dqmul1086 multiply 10000 100 -> 1000000
-dqmul1087 multiply 10000 1000 -> 10000000
-dqmul1088 multiply 10000 10000 -> 100000000
-dqmul1089 multiply 10000 100000 -> 1000000000
-dqmul1090 multiply 10000 1000000 -> 10000000000
-dqmul1091 multiply 10000 10000000 -> 100000000000
-dqmul1092 multiply 10000 100000000 -> 1000000000000
-dqmul1093 multiply 10000 1000000000 -> 10000000000000
-dqmul1094 multiply 10000 10000000000 -> 100000000000000
-dqmul1095 multiply 10000 100000000000 -> 1000000000000000
-
-dqmul1096 multiply 10000 100000000000000 -> 1000000000000000000
-dqmul1097 multiply 10000 10000000000000000000000 -> 100000000000000000000000000
-dqmul1098 multiply 10000 100000000000000000000000 -> 1000000000000000000000000000
-dqmul1099 multiply 10000 1000000000000000000000000 -> 10000000000000000000000000000
-dqmul1100 multiply 10000 100000000000000000000000000000 -> 1000000000000000000000000000000000
-
-dqmul1107 multiply 10000 99999999999 -> 999999999990000
-dqmul1108 multiply 10000 99999999999 -> 999999999990000
-
--- Null tests
-dqmul9990 multiply 10 # -> NaN Invalid_operation
-dqmul9991 multiply # 10 -> NaN Invalid_operation
-
+------------------------------------------------------------------------ +-- dqMultiply.decTest -- decQuad multiplication -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- This set of tests are for decQuads only; all arguments are +-- representable in a decQuad +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +-- sanity checks +dqmul000 multiply 2 2 -> 4 +dqmul001 multiply 2 3 -> 6 +dqmul002 multiply 5 1 -> 5 +dqmul003 multiply 5 2 -> 10 +dqmul004 multiply 1.20 2 -> 2.40 +dqmul005 multiply 1.20 0 -> 0.00 +dqmul006 multiply 1.20 -2 -> -2.40 +dqmul007 multiply -1.20 2 -> -2.40 +dqmul008 multiply -1.20 0 -> -0.00 +dqmul009 multiply -1.20 -2 -> 2.40 +dqmul010 multiply 5.09 7.1 -> 36.139 +dqmul011 multiply 2.5 4 -> 10.0 +dqmul012 multiply 2.50 4 -> 10.00 +dqmul013 multiply 1.23456789 1.0000000000000000000000000000 -> 1.234567890000000000000000000000000 Rounded +dqmul015 multiply 2.50 4 -> 10.00 +dqmul016 multiply 9.99999999999999999 9.99999999999999999 -> 99.99999999999999980000000000000000 Inexact Rounded +dqmul017 multiply 9.99999999999999999 -9.99999999999999999 -> -99.99999999999999980000000000000000 Inexact Rounded +dqmul018 multiply -9.99999999999999999 9.99999999999999999 -> -99.99999999999999980000000000000000 Inexact Rounded +dqmul019 multiply -9.99999999999999999 -9.99999999999999999 -> 99.99999999999999980000000000000000 Inexact Rounded + +-- zeros, etc. +dqmul021 multiply 0 0 -> 0 +dqmul022 multiply 0 -0 -> -0 +dqmul023 multiply -0 0 -> -0 +dqmul024 multiply -0 -0 -> 0 +dqmul025 multiply -0.0 -0.0 -> 0.00 +dqmul026 multiply -0.0 -0.0 -> 0.00 +dqmul027 multiply -0.0 -0.0 -> 0.00 +dqmul028 multiply -0.0 -0.0 -> 0.00 +dqmul030 multiply 5.00 1E-3 -> 0.00500 +dqmul031 multiply 00.00 0.000 -> 0.00000 +dqmul032 multiply 00.00 0E-3 -> 0.00000 -- rhs is 0 +dqmul033 multiply 0E-3 00.00 -> 0.00000 -- lhs is 0 +dqmul034 multiply -5.00 1E-3 -> -0.00500 +dqmul035 multiply -00.00 0.000 -> -0.00000 +dqmul036 multiply -00.00 0E-3 -> -0.00000 -- rhs is 0 +dqmul037 multiply -0E-3 00.00 -> -0.00000 -- lhs is 0 +dqmul038 multiply 5.00 -1E-3 -> -0.00500 +dqmul039 multiply 00.00 -0.000 -> -0.00000 +dqmul040 multiply 00.00 -0E-3 -> -0.00000 -- rhs is 0 +dqmul041 multiply 0E-3 -00.00 -> -0.00000 -- lhs is 0 +dqmul042 multiply -5.00 -1E-3 -> 0.00500 +dqmul043 multiply -00.00 -0.000 -> 0.00000 +dqmul044 multiply -00.00 -0E-3 -> 0.00000 -- rhs is 0 +dqmul045 multiply -0E-3 -00.00 -> 0.00000 -- lhs is 0 + +-- examples from decarith +dqmul050 multiply 1.20 3 -> 3.60 +dqmul051 multiply 7 3 -> 21 +dqmul052 multiply 0.9 0.8 -> 0.72 +dqmul053 multiply 0.9 -0 -> -0.0 +dqmul054 multiply 654321 654321 -> 428135971041 + +dqmul060 multiply 123.45 1e7 -> 1.2345E+9 +dqmul061 multiply 123.45 1e8 -> 1.2345E+10 +dqmul062 multiply 123.45 1e+9 -> 1.2345E+11 +dqmul063 multiply 123.45 1e10 -> 1.2345E+12 +dqmul064 multiply 123.45 1e11 -> 1.2345E+13 +dqmul065 multiply 123.45 1e12 -> 1.2345E+14 +dqmul066 multiply 123.45 1e13 -> 1.2345E+15 + + +-- test some intermediate lengths +-- 1234567890123456 +dqmul080 multiply 0.1 1230123456456789 -> 123012345645678.9 +dqmul084 multiply 0.1 1230123456456789 -> 123012345645678.9 +dqmul090 multiply 1230123456456789 0.1 -> 123012345645678.9 +dqmul094 multiply 1230123456456789 0.1 -> 123012345645678.9 + +-- test some more edge cases and carries +dqmul101 multiply 9 9 -> 81 +dqmul102 multiply 9 90 -> 810 +dqmul103 multiply 9 900 -> 8100 +dqmul104 multiply 9 9000 -> 81000 +dqmul105 multiply 9 90000 -> 810000 +dqmul106 multiply 9 900000 -> 8100000 +dqmul107 multiply 9 9000000 -> 81000000 +dqmul108 multiply 9 90000000 -> 810000000 +dqmul109 multiply 9 900000000 -> 8100000000 +dqmul110 multiply 9 9000000000 -> 81000000000 +dqmul111 multiply 9 90000000000 -> 810000000000 +dqmul112 multiply 9 900000000000 -> 8100000000000 +dqmul113 multiply 9 9000000000000 -> 81000000000000 +dqmul114 multiply 9 90000000000000 -> 810000000000000 +dqmul115 multiply 9 900000000000000 -> 8100000000000000 +--dqmul116 multiply 9 9000000000000000 -> 81000000000000000 +--dqmul117 multiply 9 90000000000000000 -> 810000000000000000 +--dqmul118 multiply 9 900000000000000000 -> 8100000000000000000 +--dqmul119 multiply 9 9000000000000000000 -> 81000000000000000000 +--dqmul120 multiply 9 90000000000000000000 -> 810000000000000000000 +--dqmul121 multiply 9 900000000000000000000 -> 8100000000000000000000 +--dqmul122 multiply 9 9000000000000000000000 -> 81000000000000000000000 +--dqmul123 multiply 9 90000000000000000000000 -> 810000000000000000000000 +-- test some more edge cases without carries +dqmul131 multiply 3 3 -> 9 +dqmul132 multiply 3 30 -> 90 +dqmul133 multiply 3 300 -> 900 +dqmul134 multiply 3 3000 -> 9000 +dqmul135 multiply 3 30000 -> 90000 +dqmul136 multiply 3 300000 -> 900000 +dqmul137 multiply 3 3000000 -> 9000000 +dqmul138 multiply 3 30000000 -> 90000000 +dqmul139 multiply 3 300000000 -> 900000000 +dqmul140 multiply 3 3000000000 -> 9000000000 +dqmul141 multiply 3 30000000000 -> 90000000000 +dqmul142 multiply 3 300000000000 -> 900000000000 +dqmul143 multiply 3 3000000000000 -> 9000000000000 +dqmul144 multiply 3 30000000000000 -> 90000000000000 +dqmul145 multiply 3 300000000000000 -> 900000000000000 +dqmul146 multiply 3 3000000000000000 -> 9000000000000000 +dqmul147 multiply 3 30000000000000000 -> 90000000000000000 +dqmul148 multiply 3 300000000000000000 -> 900000000000000000 +dqmul149 multiply 3 3000000000000000000 -> 9000000000000000000 +dqmul150 multiply 3 30000000000000000000 -> 90000000000000000000 +dqmul151 multiply 3 300000000000000000000 -> 900000000000000000000 +dqmul152 multiply 3 3000000000000000000000 -> 9000000000000000000000 +dqmul153 multiply 3 30000000000000000000000 -> 90000000000000000000000 + +dqmul263 multiply 30269.587755640502150977251770554 4.8046009735990873395936309640543 -> 145433.2908011933696719165119928296 Inexact Rounded + +-- test some edge cases with exact rounding +dqmul301 multiply 900000000000000000 9 -> 8100000000000000000 +dqmul302 multiply 900000000000000000 90 -> 81000000000000000000 +dqmul303 multiply 900000000000000000 900 -> 810000000000000000000 +dqmul304 multiply 900000000000000000 9000 -> 8100000000000000000000 +dqmul305 multiply 900000000000000000 90000 -> 81000000000000000000000 +dqmul306 multiply 900000000000000000 900000 -> 810000000000000000000000 +dqmul307 multiply 900000000000000000 9000000 -> 8100000000000000000000000 +dqmul308 multiply 900000000000000000 90000000 -> 81000000000000000000000000 +dqmul309 multiply 900000000000000000 900000000 -> 810000000000000000000000000 +dqmul310 multiply 900000000000000000 9000000000 -> 8100000000000000000000000000 +dqmul311 multiply 900000000000000000 90000000000 -> 81000000000000000000000000000 +dqmul312 multiply 900000000000000000 900000000000 -> 810000000000000000000000000000 +dqmul313 multiply 900000000000000000 9000000000000 -> 8100000000000000000000000000000 +dqmul314 multiply 900000000000000000 90000000000000 -> 81000000000000000000000000000000 +dqmul315 multiply 900000000000000000 900000000000000 -> 810000000000000000000000000000000 +dqmul316 multiply 900000000000000000 9000000000000000 -> 8100000000000000000000000000000000 +dqmul317 multiply 9000000000000000000 9000000000000000 -> 8.100000000000000000000000000000000E+34 Rounded +dqmul318 multiply 90000000000000000000 9000000000000000 -> 8.100000000000000000000000000000000E+35 Rounded +dqmul319 multiply 900000000000000000000 9000000000000000 -> 8.100000000000000000000000000000000E+36 Rounded +dqmul320 multiply 9000000000000000000000 9000000000000000 -> 8.100000000000000000000000000000000E+37 Rounded +dqmul321 multiply 90000000000000000000000 9000000000000000 -> 8.100000000000000000000000000000000E+38 Rounded +dqmul322 multiply 900000000000000000000000 9000000000000000 -> 8.100000000000000000000000000000000E+39 Rounded +dqmul323 multiply 9000000000000000000000000 9000000000000000 -> 8.100000000000000000000000000000000E+40 Rounded + +-- tryzeros cases +dqmul504 multiply 0E-4260 1000E-4260 -> 0E-6176 Clamped +dqmul505 multiply 100E+4260 0E+4260 -> 0E+6111 Clamped + +-- mixed with zeros +dqmul541 multiply 0 -1 -> -0 +dqmul542 multiply -0 -1 -> 0 +dqmul543 multiply 0 1 -> 0 +dqmul544 multiply -0 1 -> -0 +dqmul545 multiply -1 0 -> -0 +dqmul546 multiply -1 -0 -> 0 +dqmul547 multiply 1 0 -> 0 +dqmul548 multiply 1 -0 -> -0 + +dqmul551 multiply 0.0 -1 -> -0.0 +dqmul552 multiply -0.0 -1 -> 0.0 +dqmul553 multiply 0.0 1 -> 0.0 +dqmul554 multiply -0.0 1 -> -0.0 +dqmul555 multiply -1.0 0 -> -0.0 +dqmul556 multiply -1.0 -0 -> 0.0 +dqmul557 multiply 1.0 0 -> 0.0 +dqmul558 multiply 1.0 -0 -> -0.0 + +dqmul561 multiply 0 -1.0 -> -0.0 +dqmul562 multiply -0 -1.0 -> 0.0 +dqmul563 multiply 0 1.0 -> 0.0 +dqmul564 multiply -0 1.0 -> -0.0 +dqmul565 multiply -1 0.0 -> -0.0 +dqmul566 multiply -1 -0.0 -> 0.0 +dqmul567 multiply 1 0.0 -> 0.0 +dqmul568 multiply 1 -0.0 -> -0.0 + +dqmul571 multiply 0.0 -1.0 -> -0.00 +dqmul572 multiply -0.0 -1.0 -> 0.00 +dqmul573 multiply 0.0 1.0 -> 0.00 +dqmul574 multiply -0.0 1.0 -> -0.00 +dqmul575 multiply -1.0 0.0 -> -0.00 +dqmul576 multiply -1.0 -0.0 -> 0.00 +dqmul577 multiply 1.0 0.0 -> 0.00 +dqmul578 multiply 1.0 -0.0 -> -0.00 + + +-- Specials +dqmul580 multiply Inf -Inf -> -Infinity +dqmul581 multiply Inf -1000 -> -Infinity +dqmul582 multiply Inf -1 -> -Infinity +dqmul583 multiply Inf -0 -> NaN Invalid_operation +dqmul584 multiply Inf 0 -> NaN Invalid_operation +dqmul585 multiply Inf 1 -> Infinity +dqmul586 multiply Inf 1000 -> Infinity +dqmul587 multiply Inf Inf -> Infinity +dqmul588 multiply -1000 Inf -> -Infinity +dqmul589 multiply -Inf Inf -> -Infinity +dqmul590 multiply -1 Inf -> -Infinity +dqmul591 multiply -0 Inf -> NaN Invalid_operation +dqmul592 multiply 0 Inf -> NaN Invalid_operation +dqmul593 multiply 1 Inf -> Infinity +dqmul594 multiply 1000 Inf -> Infinity +dqmul595 multiply Inf Inf -> Infinity + +dqmul600 multiply -Inf -Inf -> Infinity +dqmul601 multiply -Inf -1000 -> Infinity +dqmul602 multiply -Inf -1 -> Infinity +dqmul603 multiply -Inf -0 -> NaN Invalid_operation +dqmul604 multiply -Inf 0 -> NaN Invalid_operation +dqmul605 multiply -Inf 1 -> -Infinity +dqmul606 multiply -Inf 1000 -> -Infinity +dqmul607 multiply -Inf Inf -> -Infinity +dqmul608 multiply -1000 Inf -> -Infinity +dqmul609 multiply -Inf -Inf -> Infinity +dqmul610 multiply -1 -Inf -> Infinity +dqmul611 multiply -0 -Inf -> NaN Invalid_operation +dqmul612 multiply 0 -Inf -> NaN Invalid_operation +dqmul613 multiply 1 -Inf -> -Infinity +dqmul614 multiply 1000 -Inf -> -Infinity +dqmul615 multiply Inf -Inf -> -Infinity + +dqmul621 multiply NaN -Inf -> NaN +dqmul622 multiply NaN -1000 -> NaN +dqmul623 multiply NaN -1 -> NaN +dqmul624 multiply NaN -0 -> NaN +dqmul625 multiply NaN 0 -> NaN +dqmul626 multiply NaN 1 -> NaN +dqmul627 multiply NaN 1000 -> NaN +dqmul628 multiply NaN Inf -> NaN +dqmul629 multiply NaN NaN -> NaN +dqmul630 multiply -Inf NaN -> NaN +dqmul631 multiply -1000 NaN -> NaN +dqmul632 multiply -1 NaN -> NaN +dqmul633 multiply -0 NaN -> NaN +dqmul634 multiply 0 NaN -> NaN +dqmul635 multiply 1 NaN -> NaN +dqmul636 multiply 1000 NaN -> NaN +dqmul637 multiply Inf NaN -> NaN + +dqmul641 multiply sNaN -Inf -> NaN Invalid_operation +dqmul642 multiply sNaN -1000 -> NaN Invalid_operation +dqmul643 multiply sNaN -1 -> NaN Invalid_operation +dqmul644 multiply sNaN -0 -> NaN Invalid_operation +dqmul645 multiply sNaN 0 -> NaN Invalid_operation +dqmul646 multiply sNaN 1 -> NaN Invalid_operation +dqmul647 multiply sNaN 1000 -> NaN Invalid_operation +dqmul648 multiply sNaN NaN -> NaN Invalid_operation +dqmul649 multiply sNaN sNaN -> NaN Invalid_operation +dqmul650 multiply NaN sNaN -> NaN Invalid_operation +dqmul651 multiply -Inf sNaN -> NaN Invalid_operation +dqmul652 multiply -1000 sNaN -> NaN Invalid_operation +dqmul653 multiply -1 sNaN -> NaN Invalid_operation +dqmul654 multiply -0 sNaN -> NaN Invalid_operation +dqmul655 multiply 0 sNaN -> NaN Invalid_operation +dqmul656 multiply 1 sNaN -> NaN Invalid_operation +dqmul657 multiply 1000 sNaN -> NaN Invalid_operation +dqmul658 multiply Inf sNaN -> NaN Invalid_operation +dqmul659 multiply NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +dqmul661 multiply NaN9 -Inf -> NaN9 +dqmul662 multiply NaN8 999 -> NaN8 +dqmul663 multiply NaN71 Inf -> NaN71 +dqmul664 multiply NaN6 NaN5 -> NaN6 +dqmul665 multiply -Inf NaN4 -> NaN4 +dqmul666 multiply -999 NaN33 -> NaN33 +dqmul667 multiply Inf NaN2 -> NaN2 + +dqmul671 multiply sNaN99 -Inf -> NaN99 Invalid_operation +dqmul672 multiply sNaN98 -11 -> NaN98 Invalid_operation +dqmul673 multiply sNaN97 NaN -> NaN97 Invalid_operation +dqmul674 multiply sNaN16 sNaN94 -> NaN16 Invalid_operation +dqmul675 multiply NaN95 sNaN93 -> NaN93 Invalid_operation +dqmul676 multiply -Inf sNaN92 -> NaN92 Invalid_operation +dqmul677 multiply 088 sNaN91 -> NaN91 Invalid_operation +dqmul678 multiply Inf sNaN90 -> NaN90 Invalid_operation +dqmul679 multiply NaN sNaN89 -> NaN89 Invalid_operation + +dqmul681 multiply -NaN9 -Inf -> -NaN9 +dqmul682 multiply -NaN8 999 -> -NaN8 +dqmul683 multiply -NaN71 Inf -> -NaN71 +dqmul684 multiply -NaN6 -NaN5 -> -NaN6 +dqmul685 multiply -Inf -NaN4 -> -NaN4 +dqmul686 multiply -999 -NaN33 -> -NaN33 +dqmul687 multiply Inf -NaN2 -> -NaN2 + +dqmul691 multiply -sNaN99 -Inf -> -NaN99 Invalid_operation +dqmul692 multiply -sNaN98 -11 -> -NaN98 Invalid_operation +dqmul693 multiply -sNaN97 NaN -> -NaN97 Invalid_operation +dqmul694 multiply -sNaN16 -sNaN94 -> -NaN16 Invalid_operation +dqmul695 multiply -NaN95 -sNaN93 -> -NaN93 Invalid_operation +dqmul696 multiply -Inf -sNaN92 -> -NaN92 Invalid_operation +dqmul697 multiply 088 -sNaN91 -> -NaN91 Invalid_operation +dqmul698 multiply Inf -sNaN90 -> -NaN90 Invalid_operation +dqmul699 multiply -NaN -sNaN89 -> -NaN89 Invalid_operation + +dqmul701 multiply -NaN -Inf -> -NaN +dqmul702 multiply -NaN 999 -> -NaN +dqmul703 multiply -NaN Inf -> -NaN +dqmul704 multiply -NaN -NaN -> -NaN +dqmul705 multiply -Inf -NaN0 -> -NaN +dqmul706 multiply -999 -NaN -> -NaN +dqmul707 multiply Inf -NaN -> -NaN + +dqmul711 multiply -sNaN -Inf -> -NaN Invalid_operation +dqmul712 multiply -sNaN -11 -> -NaN Invalid_operation +dqmul713 multiply -sNaN00 NaN -> -NaN Invalid_operation +dqmul714 multiply -sNaN -sNaN -> -NaN Invalid_operation +dqmul715 multiply -NaN -sNaN -> -NaN Invalid_operation +dqmul716 multiply -Inf -sNaN -> -NaN Invalid_operation +dqmul717 multiply 088 -sNaN -> -NaN Invalid_operation +dqmul718 multiply Inf -sNaN -> -NaN Invalid_operation +dqmul719 multiply -NaN -sNaN -> -NaN Invalid_operation + +-- overflow and underflow tests .. note subnormal results +-- signs +dqmul751 multiply 1e+4277 1e+3311 -> Infinity Overflow Inexact Rounded +dqmul752 multiply 1e+4277 -1e+3311 -> -Infinity Overflow Inexact Rounded +dqmul753 multiply -1e+4277 1e+3311 -> -Infinity Overflow Inexact Rounded +dqmul754 multiply -1e+4277 -1e+3311 -> Infinity Overflow Inexact Rounded +dqmul755 multiply 1e-4277 1e-3311 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqmul756 multiply 1e-4277 -1e-3311 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqmul757 multiply -1e-4277 1e-3311 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqmul758 multiply -1e-4277 -1e-3311 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped + +-- 'subnormal' boundary (all hard underflow or overflow in base arithemtic) +dqmul760 multiply 1e-6069 1e-101 -> 1E-6170 Subnormal +dqmul761 multiply 1e-6069 1e-102 -> 1E-6171 Subnormal +dqmul762 multiply 1e-6069 1e-103 -> 1E-6172 Subnormal +dqmul763 multiply 1e-6069 1e-104 -> 1E-6173 Subnormal +dqmul764 multiply 1e-6069 1e-105 -> 1E-6174 Subnormal +dqmul765 multiply 1e-6069 1e-106 -> 1E-6175 Subnormal +dqmul766 multiply 1e-6069 1e-107 -> 1E-6176 Subnormal +dqmul767 multiply 1e-6069 1e-108 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqmul768 multiply 1e-6069 1e-109 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqmul769 multiply 1e-6069 1e-110 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +-- [no equivalent of 'subnormal' for overflow] +dqmul770 multiply 1e+40 1e+6101 -> 1.000000000000000000000000000000E+6141 Clamped +dqmul771 multiply 1e+40 1e+6102 -> 1.0000000000000000000000000000000E+6142 Clamped +dqmul772 multiply 1e+40 1e+6103 -> 1.00000000000000000000000000000000E+6143 Clamped +dqmul773 multiply 1e+40 1e+6104 -> 1.000000000000000000000000000000000E+6144 Clamped +dqmul774 multiply 1e+40 1e+6105 -> Infinity Overflow Inexact Rounded +dqmul775 multiply 1e+40 1e+6106 -> Infinity Overflow Inexact Rounded +dqmul776 multiply 1e+40 1e+6107 -> Infinity Overflow Inexact Rounded +dqmul777 multiply 1e+40 1e+6108 -> Infinity Overflow Inexact Rounded +dqmul778 multiply 1e+40 1e+6109 -> Infinity Overflow Inexact Rounded +dqmul779 multiply 1e+40 1e+6110 -> Infinity Overflow Inexact Rounded + +dqmul801 multiply 1.0000E-6172 1 -> 1.0000E-6172 Subnormal +dqmul802 multiply 1.000E-6172 1e-1 -> 1.000E-6173 Subnormal +dqmul803 multiply 1.00E-6172 1e-2 -> 1.00E-6174 Subnormal +dqmul804 multiply 1.0E-6172 1e-3 -> 1.0E-6175 Subnormal +dqmul805 multiply 1.0E-6172 1e-4 -> 1E-6176 Subnormal Rounded +dqmul806 multiply 1.3E-6172 1e-4 -> 1E-6176 Underflow Subnormal Inexact Rounded +dqmul807 multiply 1.5E-6172 1e-4 -> 2E-6176 Underflow Subnormal Inexact Rounded +dqmul808 multiply 1.7E-6172 1e-4 -> 2E-6176 Underflow Subnormal Inexact Rounded +dqmul809 multiply 2.3E-6172 1e-4 -> 2E-6176 Underflow Subnormal Inexact Rounded +dqmul810 multiply 2.5E-6172 1e-4 -> 2E-6176 Underflow Subnormal Inexact Rounded +dqmul811 multiply 2.7E-6172 1e-4 -> 3E-6176 Underflow Subnormal Inexact Rounded +dqmul812 multiply 1.49E-6172 1e-4 -> 1E-6176 Underflow Subnormal Inexact Rounded +dqmul813 multiply 1.50E-6172 1e-4 -> 2E-6176 Underflow Subnormal Inexact Rounded +dqmul814 multiply 1.51E-6172 1e-4 -> 2E-6176 Underflow Subnormal Inexact Rounded +dqmul815 multiply 2.49E-6172 1e-4 -> 2E-6176 Underflow Subnormal Inexact Rounded +dqmul816 multiply 2.50E-6172 1e-4 -> 2E-6176 Underflow Subnormal Inexact Rounded +dqmul817 multiply 2.51E-6172 1e-4 -> 3E-6176 Underflow Subnormal Inexact Rounded + +dqmul818 multiply 1E-6172 1e-4 -> 1E-6176 Subnormal +dqmul819 multiply 3E-6172 1e-5 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqmul820 multiply 5E-6172 1e-5 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqmul821 multiply 7E-6172 1e-5 -> 1E-6176 Underflow Subnormal Inexact Rounded +dqmul822 multiply 9E-6172 1e-5 -> 1E-6176 Underflow Subnormal Inexact Rounded +dqmul823 multiply 9.9E-6172 1e-5 -> 1E-6176 Underflow Subnormal Inexact Rounded + +dqmul824 multiply 1E-6172 -1e-4 -> -1E-6176 Subnormal +dqmul825 multiply 3E-6172 -1e-5 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqmul826 multiply -5E-6172 1e-5 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqmul827 multiply 7E-6172 -1e-5 -> -1E-6176 Underflow Subnormal Inexact Rounded +dqmul828 multiply -9E-6172 1e-5 -> -1E-6176 Underflow Subnormal Inexact Rounded +dqmul829 multiply 9.9E-6172 -1e-5 -> -1E-6176 Underflow Subnormal Inexact Rounded +dqmul830 multiply 3.0E-6172 -1e-5 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped + +dqmul831 multiply 1.0E-5977 1e-200 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqmul832 multiply 1.0E-5977 1e-199 -> 1E-6176 Subnormal Rounded +dqmul833 multiply 1.0E-5977 1e-198 -> 1.0E-6175 Subnormal +dqmul834 multiply 2.0E-5977 2e-198 -> 4.0E-6175 Subnormal +dqmul835 multiply 4.0E-5977 4e-198 -> 1.60E-6174 Subnormal +dqmul836 multiply 10.0E-5977 10e-198 -> 1.000E-6173 Subnormal +dqmul837 multiply 30.0E-5977 30e-198 -> 9.000E-6173 Subnormal +dqmul838 multiply 40.0E-5982 40e-166 -> 1.6000E-6145 Subnormal +dqmul839 multiply 40.0E-5982 40e-165 -> 1.6000E-6144 Subnormal +dqmul840 multiply 40.0E-5982 40e-164 -> 1.6000E-6143 + +-- Long operand overflow may be a different path +dqmul870 multiply 100 9.999E+6143 -> Infinity Inexact Overflow Rounded +dqmul871 multiply 100 -9.999E+6143 -> -Infinity Inexact Overflow Rounded +dqmul872 multiply 9.999E+6143 100 -> Infinity Inexact Overflow Rounded +dqmul873 multiply -9.999E+6143 100 -> -Infinity Inexact Overflow Rounded + +-- check for double-rounded subnormals +dqmul881 multiply 1.2347E-6133 1.2347E-40 -> 1.524E-6173 Inexact Rounded Subnormal Underflow +dqmul882 multiply 1.234E-6133 1.234E-40 -> 1.523E-6173 Inexact Rounded Subnormal Underflow +dqmul883 multiply 1.23E-6133 1.23E-40 -> 1.513E-6173 Inexact Rounded Subnormal Underflow +dqmul884 multiply 1.2E-6133 1.2E-40 -> 1.44E-6173 Subnormal +dqmul885 multiply 1.2E-6133 1.2E-41 -> 1.44E-6174 Subnormal +dqmul886 multiply 1.2E-6133 1.2E-42 -> 1.4E-6175 Subnormal Inexact Rounded Underflow +dqmul887 multiply 1.2E-6133 1.3E-42 -> 1.6E-6175 Subnormal Inexact Rounded Underflow +dqmul888 multiply 1.3E-6133 1.3E-42 -> 1.7E-6175 Subnormal Inexact Rounded Underflow +dqmul889 multiply 1.3E-6133 1.3E-43 -> 2E-6176 Subnormal Inexact Rounded Underflow +dqmul890 multiply 1.3E-6134 1.3E-43 -> 0E-6176 Clamped Subnormal Inexact Rounded Underflow + +dqmul891 multiply 1.2345E-39 1.234E-6133 -> 1.5234E-6172 Inexact Rounded Subnormal Underflow +dqmul892 multiply 1.23456E-39 1.234E-6133 -> 1.5234E-6172 Inexact Rounded Subnormal Underflow +dqmul893 multiply 1.2345E-40 1.234E-6133 -> 1.523E-6173 Inexact Rounded Subnormal Underflow +dqmul894 multiply 1.23456E-40 1.234E-6133 -> 1.523E-6173 Inexact Rounded Subnormal Underflow +dqmul895 multiply 1.2345E-41 1.234E-6133 -> 1.52E-6174 Inexact Rounded Subnormal Underflow +dqmul896 multiply 1.23456E-41 1.234E-6133 -> 1.52E-6174 Inexact Rounded Subnormal Underflow + +-- Now explore the case where we get a normal result with Underflow +-- prove operands are exact +dqmul906 multiply 9.999999999999999999999999999999999E-6143 1 -> 9.999999999999999999999999999999999E-6143 +dqmul907 multiply 1 0.09999999999999999999999999999999999 -> 0.09999999999999999999999999999999999 +-- the next rounds to Nmin +dqmul908 multiply 9.999999999999999999999999999999999E-6143 0.09999999999999999999999999999999999 -> 1.000000000000000000000000000000000E-6143 Underflow Inexact Subnormal Rounded + +-- hugest +dqmul909 multiply 9999999999999999999999999999999999 9999999999999999999999999999999999 -> 9.999999999999999999999999999999998E+67 Inexact Rounded +-- VG case +dqmul910 multiply 8.81125000000001349436E-1548 8.000000000000000000E-1550 -> 7.049000000000010795488000000000000E-3097 Rounded + +-- Examples from SQL proposal (Krishna Kulkarni) +precision: 34 +rounding: half_up +maxExponent: 6144 +minExponent: -6143 +dqmul911 multiply 130E-2 120E-2 -> 1.5600 +dqmul912 multiply 130E-2 12E-1 -> 1.560 +dqmul913 multiply 130E-2 1E0 -> 1.30 +dqmul914 multiply 1E2 1E4 -> 1E+6 + +-- power-of-ten edge cases +dqmul1001 multiply 1 10 -> 10 +dqmul1002 multiply 1 100 -> 100 +dqmul1003 multiply 1 1000 -> 1000 +dqmul1004 multiply 1 10000 -> 10000 +dqmul1005 multiply 1 100000 -> 100000 +dqmul1006 multiply 1 1000000 -> 1000000 +dqmul1007 multiply 1 10000000 -> 10000000 +dqmul1008 multiply 1 100000000 -> 100000000 +dqmul1009 multiply 1 1000000000 -> 1000000000 +dqmul1010 multiply 1 10000000000 -> 10000000000 +dqmul1011 multiply 1 100000000000 -> 100000000000 +dqmul1012 multiply 1 1000000000000 -> 1000000000000 +dqmul1013 multiply 1 10000000000000 -> 10000000000000 +dqmul1014 multiply 1 100000000000000 -> 100000000000000 +dqmul1015 multiply 1 1000000000000000 -> 1000000000000000 + +dqmul1016 multiply 1 1000000000000000000 -> 1000000000000000000 +dqmul1017 multiply 1 100000000000000000000000000 -> 100000000000000000000000000 +dqmul1018 multiply 1 1000000000000000000000000000 -> 1000000000000000000000000000 +dqmul1019 multiply 1 10000000000000000000000000000 -> 10000000000000000000000000000 +dqmul1020 multiply 1 1000000000000000000000000000000000 -> 1000000000000000000000000000000000 + +dqmul1021 multiply 10 1 -> 10 +dqmul1022 multiply 10 10 -> 100 +dqmul1023 multiply 10 100 -> 1000 +dqmul1024 multiply 10 1000 -> 10000 +dqmul1025 multiply 10 10000 -> 100000 +dqmul1026 multiply 10 100000 -> 1000000 +dqmul1027 multiply 10 1000000 -> 10000000 +dqmul1028 multiply 10 10000000 -> 100000000 +dqmul1029 multiply 10 100000000 -> 1000000000 +dqmul1030 multiply 10 1000000000 -> 10000000000 +dqmul1031 multiply 10 10000000000 -> 100000000000 +dqmul1032 multiply 10 100000000000 -> 1000000000000 +dqmul1033 multiply 10 1000000000000 -> 10000000000000 +dqmul1034 multiply 10 10000000000000 -> 100000000000000 +dqmul1035 multiply 10 100000000000000 -> 1000000000000000 + +dqmul1036 multiply 10 100000000000000000 -> 1000000000000000000 +dqmul1037 multiply 10 10000000000000000000000000 -> 100000000000000000000000000 +dqmul1038 multiply 10 100000000000000000000000000 -> 1000000000000000000000000000 +dqmul1039 multiply 10 1000000000000000000000000000 -> 10000000000000000000000000000 +dqmul1040 multiply 10 100000000000000000000000000000000 -> 1000000000000000000000000000000000 + +dqmul1041 multiply 100 0.1 -> 10.0 +dqmul1042 multiply 100 1 -> 100 +dqmul1043 multiply 100 10 -> 1000 +dqmul1044 multiply 100 100 -> 10000 +dqmul1045 multiply 100 1000 -> 100000 +dqmul1046 multiply 100 10000 -> 1000000 +dqmul1047 multiply 100 100000 -> 10000000 +dqmul1048 multiply 100 1000000 -> 100000000 +dqmul1049 multiply 100 10000000 -> 1000000000 +dqmul1050 multiply 100 100000000 -> 10000000000 +dqmul1051 multiply 100 1000000000 -> 100000000000 +dqmul1052 multiply 100 10000000000 -> 1000000000000 +dqmul1053 multiply 100 100000000000 -> 10000000000000 +dqmul1054 multiply 100 1000000000000 -> 100000000000000 +dqmul1055 multiply 100 10000000000000 -> 1000000000000000 + +dqmul1056 multiply 100 10000000000000000 -> 1000000000000000000 +dqmul1057 multiply 100 1000000000000000000000000 -> 100000000000000000000000000 +dqmul1058 multiply 100 10000000000000000000000000 -> 1000000000000000000000000000 +dqmul1059 multiply 100 100000000000000000000000000 -> 10000000000000000000000000000 +dqmul1060 multiply 100 10000000000000000000000000000000 -> 1000000000000000000000000000000000 + +dqmul1061 multiply 1000 0.01 -> 10.00 +dqmul1062 multiply 1000 0.1 -> 100.0 +dqmul1063 multiply 1000 1 -> 1000 +dqmul1064 multiply 1000 10 -> 10000 +dqmul1065 multiply 1000 100 -> 100000 +dqmul1066 multiply 1000 1000 -> 1000000 +dqmul1067 multiply 1000 10000 -> 10000000 +dqmul1068 multiply 1000 100000 -> 100000000 +dqmul1069 multiply 1000 1000000 -> 1000000000 +dqmul1070 multiply 1000 10000000 -> 10000000000 +dqmul1071 multiply 1000 100000000 -> 100000000000 +dqmul1072 multiply 1000 1000000000 -> 1000000000000 +dqmul1073 multiply 1000 10000000000 -> 10000000000000 +dqmul1074 multiply 1000 100000000000 -> 100000000000000 +dqmul1075 multiply 1000 1000000000000 -> 1000000000000000 + +dqmul1076 multiply 1000 1000000000000000 -> 1000000000000000000 +dqmul1077 multiply 1000 100000000000000000000000 -> 100000000000000000000000000 +dqmul1078 multiply 1000 1000000000000000000000000 -> 1000000000000000000000000000 +dqmul1079 multiply 1000 10000000000000000000000000 -> 10000000000000000000000000000 +dqmul1080 multiply 1000 1000000000000000000000000000000 -> 1000000000000000000000000000000000 + +dqmul1081 multiply 10000 0.001 -> 10.000 +dqmul1082 multiply 10000 0.01 -> 100.00 +dqmul1083 multiply 10000 0.1 -> 1000.0 +dqmul1084 multiply 10000 1 -> 10000 +dqmul1085 multiply 10000 10 -> 100000 +dqmul1086 multiply 10000 100 -> 1000000 +dqmul1087 multiply 10000 1000 -> 10000000 +dqmul1088 multiply 10000 10000 -> 100000000 +dqmul1089 multiply 10000 100000 -> 1000000000 +dqmul1090 multiply 10000 1000000 -> 10000000000 +dqmul1091 multiply 10000 10000000 -> 100000000000 +dqmul1092 multiply 10000 100000000 -> 1000000000000 +dqmul1093 multiply 10000 1000000000 -> 10000000000000 +dqmul1094 multiply 10000 10000000000 -> 100000000000000 +dqmul1095 multiply 10000 100000000000 -> 1000000000000000 + +dqmul1096 multiply 10000 100000000000000 -> 1000000000000000000 +dqmul1097 multiply 10000 10000000000000000000000 -> 100000000000000000000000000 +dqmul1098 multiply 10000 100000000000000000000000 -> 1000000000000000000000000000 +dqmul1099 multiply 10000 1000000000000000000000000 -> 10000000000000000000000000000 +dqmul1100 multiply 10000 100000000000000000000000000000 -> 1000000000000000000000000000000000 + +dqmul1107 multiply 10000 99999999999 -> 999999999990000 +dqmul1108 multiply 10000 99999999999 -> 999999999990000 + +-- Null tests +dqmul9990 multiply 10 # -> NaN Invalid_operation +dqmul9991 multiply # 10 -> NaN Invalid_operation + diff --git a/Lib/test/decimaltestdata/dqNextMinus.decTest b/Lib/test/decimaltestdata/dqNextMinus.decTest index 34f39581c3..8177b58c6d 100644 --- a/Lib/test/decimaltestdata/dqNextMinus.decTest +++ b/Lib/test/decimaltestdata/dqNextMinus.decTest @@ -1,126 +1,126 @@ -------------------------------------------------------------------------
--- dqNextMinus.decTest -- decQuad next that is less [754r nextdown] --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- All operands and results are decQuads.
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
-dqnextm001 nextminus 0.9999999999999999999999999999999995 -> 0.9999999999999999999999999999999994
-dqnextm002 nextminus 0.9999999999999999999999999999999996 -> 0.9999999999999999999999999999999995
-dqnextm003 nextminus 0.9999999999999999999999999999999997 -> 0.9999999999999999999999999999999996
-dqnextm004 nextminus 0.9999999999999999999999999999999998 -> 0.9999999999999999999999999999999997
-dqnextm005 nextminus 0.9999999999999999999999999999999999 -> 0.9999999999999999999999999999999998
-dqnextm006 nextminus 1.000000000000000000000000000000000 -> 0.9999999999999999999999999999999999
-dqnextm007 nextminus 1.0 -> 0.9999999999999999999999999999999999
-dqnextm008 nextminus 1 -> 0.9999999999999999999999999999999999
-dqnextm009 nextminus 1.000000000000000000000000000000001 -> 1.000000000000000000000000000000000
-dqnextm010 nextminus 1.000000000000000000000000000000002 -> 1.000000000000000000000000000000001
-dqnextm011 nextminus 1.000000000000000000000000000000003 -> 1.000000000000000000000000000000002
-dqnextm012 nextminus 1.000000000000000000000000000000004 -> 1.000000000000000000000000000000003
-dqnextm013 nextminus 1.000000000000000000000000000000005 -> 1.000000000000000000000000000000004
-dqnextm014 nextminus 1.000000000000000000000000000000006 -> 1.000000000000000000000000000000005
-dqnextm015 nextminus 1.000000000000000000000000000000007 -> 1.000000000000000000000000000000006
-dqnextm016 nextminus 1.000000000000000000000000000000008 -> 1.000000000000000000000000000000007
-dqnextm017 nextminus 1.000000000000000000000000000000009 -> 1.000000000000000000000000000000008
-dqnextm018 nextminus 1.000000000000000000000000000000010 -> 1.000000000000000000000000000000009
-dqnextm019 nextminus 1.000000000000000000000000000000011 -> 1.000000000000000000000000000000010
-dqnextm020 nextminus 1.000000000000000000000000000000012 -> 1.000000000000000000000000000000011
-
-dqnextm021 nextminus -0.9999999999999999999999999999999995 -> -0.9999999999999999999999999999999996
-dqnextm022 nextminus -0.9999999999999999999999999999999996 -> -0.9999999999999999999999999999999997
-dqnextm023 nextminus -0.9999999999999999999999999999999997 -> -0.9999999999999999999999999999999998
-dqnextm024 nextminus -0.9999999999999999999999999999999998 -> -0.9999999999999999999999999999999999
-dqnextm025 nextminus -0.9999999999999999999999999999999999 -> -1.000000000000000000000000000000000
-dqnextm026 nextminus -1.000000000000000000000000000000000 -> -1.000000000000000000000000000000001
-dqnextm027 nextminus -1.0 -> -1.000000000000000000000000000000001
-dqnextm028 nextminus -1 -> -1.000000000000000000000000000000001
-dqnextm029 nextminus -1.000000000000000000000000000000001 -> -1.000000000000000000000000000000002
-dqnextm030 nextminus -1.000000000000000000000000000000002 -> -1.000000000000000000000000000000003
-dqnextm031 nextminus -1.000000000000000000000000000000003 -> -1.000000000000000000000000000000004
-dqnextm032 nextminus -1.000000000000000000000000000000004 -> -1.000000000000000000000000000000005
-dqnextm033 nextminus -1.000000000000000000000000000000005 -> -1.000000000000000000000000000000006
-dqnextm034 nextminus -1.000000000000000000000000000000006 -> -1.000000000000000000000000000000007
-dqnextm035 nextminus -1.000000000000000000000000000000007 -> -1.000000000000000000000000000000008
-dqnextm036 nextminus -1.000000000000000000000000000000008 -> -1.000000000000000000000000000000009
-dqnextm037 nextminus -1.000000000000000000000000000000009 -> -1.000000000000000000000000000000010
-dqnextm038 nextminus -1.000000000000000000000000000000010 -> -1.000000000000000000000000000000011
-dqnextm039 nextminus -1.000000000000000000000000000000011 -> -1.000000000000000000000000000000012
-
--- ultra-tiny inputs
-dqnextm062 nextminus 1E-6176 -> 0E-6176
-dqnextm065 nextminus -1E-6176 -> -2E-6176
-
--- Zeros
-dqnextm100 nextminus -0 -> -1E-6176
-dqnextm101 nextminus 0 -> -1E-6176
-dqnextm102 nextminus 0.00 -> -1E-6176
-dqnextm103 nextminus -0.00 -> -1E-6176
-dqnextm104 nextminus 0E-300 -> -1E-6176
-dqnextm105 nextminus 0E+300 -> -1E-6176
-dqnextm106 nextminus 0E+30000 -> -1E-6176
-dqnextm107 nextminus -0E+30000 -> -1E-6176
-
--- specials
-dqnextm150 nextminus Inf -> 9.999999999999999999999999999999999E+6144
-dqnextm151 nextminus -Inf -> -Infinity
-dqnextm152 nextminus NaN -> NaN
-dqnextm153 nextminus sNaN -> NaN Invalid_operation
-dqnextm154 nextminus NaN77 -> NaN77
-dqnextm155 nextminus sNaN88 -> NaN88 Invalid_operation
-dqnextm156 nextminus -NaN -> -NaN
-dqnextm157 nextminus -sNaN -> -NaN Invalid_operation
-dqnextm158 nextminus -NaN77 -> -NaN77
-dqnextm159 nextminus -sNaN88 -> -NaN88 Invalid_operation
-
--- Nmax, Nmin, Ntiny, subnormals
-dqnextm170 nextminus 9.999999999999999999999999999999999E+6144 -> 9.999999999999999999999999999999998E+6144
-dqnextm171 nextminus 9.999999999999999999999999999999998E+6144 -> 9.999999999999999999999999999999997E+6144
-dqnextm172 nextminus 1E-6143 -> 9.99999999999999999999999999999999E-6144
-dqnextm173 nextminus 1.000000000000000000000000000000000E-6143 -> 9.99999999999999999999999999999999E-6144
-dqnextm174 nextminus 9E-6176 -> 8E-6176
-dqnextm175 nextminus 9.9E-6175 -> 9.8E-6175
-dqnextm176 nextminus 9.99999999999999999999999999999E-6147 -> 9.99999999999999999999999999998E-6147
-dqnextm177 nextminus 9.99999999999999999999999999999999E-6144 -> 9.99999999999999999999999999999998E-6144
-dqnextm178 nextminus 9.99999999999999999999999999999998E-6144 -> 9.99999999999999999999999999999997E-6144
-dqnextm179 nextminus 9.99999999999999999999999999999997E-6144 -> 9.99999999999999999999999999999996E-6144
-dqnextm180 nextminus 0E-6176 -> -1E-6176
-dqnextm181 nextminus 1E-6176 -> 0E-6176
-dqnextm182 nextminus 2E-6176 -> 1E-6176
-
-dqnextm183 nextminus -0E-6176 -> -1E-6176
-dqnextm184 nextminus -1E-6176 -> -2E-6176
-dqnextm185 nextminus -2E-6176 -> -3E-6176
-dqnextm186 nextminus -10E-6176 -> -1.1E-6175
-dqnextm187 nextminus -100E-6176 -> -1.01E-6174
-dqnextm188 nextminus -100000E-6176 -> -1.00001E-6171
-dqnextm189 nextminus -1.00000000000000000000000000000E-6143 -> -1.000000000000000000000000000000001E-6143
-dqnextm190 nextminus -1.000000000000000000000000000000000E-6143 -> -1.000000000000000000000000000000001E-6143
-dqnextm191 nextminus -1E-6143 -> -1.000000000000000000000000000000001E-6143
-dqnextm192 nextminus -9.999999999999999999999999999999998E+6144 -> -9.999999999999999999999999999999999E+6144
-dqnextm193 nextminus -9.999999999999999999999999999999999E+6144 -> -Infinity
-
--- Null tests
-dqnextm900 nextminus # -> NaN Invalid_operation
-
+------------------------------------------------------------------------ +-- dqNextMinus.decTest -- decQuad next that is less [754r nextdown] -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- All operands and results are decQuads. +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +dqnextm001 nextminus 0.9999999999999999999999999999999995 -> 0.9999999999999999999999999999999994 +dqnextm002 nextminus 0.9999999999999999999999999999999996 -> 0.9999999999999999999999999999999995 +dqnextm003 nextminus 0.9999999999999999999999999999999997 -> 0.9999999999999999999999999999999996 +dqnextm004 nextminus 0.9999999999999999999999999999999998 -> 0.9999999999999999999999999999999997 +dqnextm005 nextminus 0.9999999999999999999999999999999999 -> 0.9999999999999999999999999999999998 +dqnextm006 nextminus 1.000000000000000000000000000000000 -> 0.9999999999999999999999999999999999 +dqnextm007 nextminus 1.0 -> 0.9999999999999999999999999999999999 +dqnextm008 nextminus 1 -> 0.9999999999999999999999999999999999 +dqnextm009 nextminus 1.000000000000000000000000000000001 -> 1.000000000000000000000000000000000 +dqnextm010 nextminus 1.000000000000000000000000000000002 -> 1.000000000000000000000000000000001 +dqnextm011 nextminus 1.000000000000000000000000000000003 -> 1.000000000000000000000000000000002 +dqnextm012 nextminus 1.000000000000000000000000000000004 -> 1.000000000000000000000000000000003 +dqnextm013 nextminus 1.000000000000000000000000000000005 -> 1.000000000000000000000000000000004 +dqnextm014 nextminus 1.000000000000000000000000000000006 -> 1.000000000000000000000000000000005 +dqnextm015 nextminus 1.000000000000000000000000000000007 -> 1.000000000000000000000000000000006 +dqnextm016 nextminus 1.000000000000000000000000000000008 -> 1.000000000000000000000000000000007 +dqnextm017 nextminus 1.000000000000000000000000000000009 -> 1.000000000000000000000000000000008 +dqnextm018 nextminus 1.000000000000000000000000000000010 -> 1.000000000000000000000000000000009 +dqnextm019 nextminus 1.000000000000000000000000000000011 -> 1.000000000000000000000000000000010 +dqnextm020 nextminus 1.000000000000000000000000000000012 -> 1.000000000000000000000000000000011 + +dqnextm021 nextminus -0.9999999999999999999999999999999995 -> -0.9999999999999999999999999999999996 +dqnextm022 nextminus -0.9999999999999999999999999999999996 -> -0.9999999999999999999999999999999997 +dqnextm023 nextminus -0.9999999999999999999999999999999997 -> -0.9999999999999999999999999999999998 +dqnextm024 nextminus -0.9999999999999999999999999999999998 -> -0.9999999999999999999999999999999999 +dqnextm025 nextminus -0.9999999999999999999999999999999999 -> -1.000000000000000000000000000000000 +dqnextm026 nextminus -1.000000000000000000000000000000000 -> -1.000000000000000000000000000000001 +dqnextm027 nextminus -1.0 -> -1.000000000000000000000000000000001 +dqnextm028 nextminus -1 -> -1.000000000000000000000000000000001 +dqnextm029 nextminus -1.000000000000000000000000000000001 -> -1.000000000000000000000000000000002 +dqnextm030 nextminus -1.000000000000000000000000000000002 -> -1.000000000000000000000000000000003 +dqnextm031 nextminus -1.000000000000000000000000000000003 -> -1.000000000000000000000000000000004 +dqnextm032 nextminus -1.000000000000000000000000000000004 -> -1.000000000000000000000000000000005 +dqnextm033 nextminus -1.000000000000000000000000000000005 -> -1.000000000000000000000000000000006 +dqnextm034 nextminus -1.000000000000000000000000000000006 -> -1.000000000000000000000000000000007 +dqnextm035 nextminus -1.000000000000000000000000000000007 -> -1.000000000000000000000000000000008 +dqnextm036 nextminus -1.000000000000000000000000000000008 -> -1.000000000000000000000000000000009 +dqnextm037 nextminus -1.000000000000000000000000000000009 -> -1.000000000000000000000000000000010 +dqnextm038 nextminus -1.000000000000000000000000000000010 -> -1.000000000000000000000000000000011 +dqnextm039 nextminus -1.000000000000000000000000000000011 -> -1.000000000000000000000000000000012 + +-- ultra-tiny inputs +dqnextm062 nextminus 1E-6176 -> 0E-6176 +dqnextm065 nextminus -1E-6176 -> -2E-6176 + +-- Zeros +dqnextm100 nextminus -0 -> -1E-6176 +dqnextm101 nextminus 0 -> -1E-6176 +dqnextm102 nextminus 0.00 -> -1E-6176 +dqnextm103 nextminus -0.00 -> -1E-6176 +dqnextm104 nextminus 0E-300 -> -1E-6176 +dqnextm105 nextminus 0E+300 -> -1E-6176 +dqnextm106 nextminus 0E+30000 -> -1E-6176 +dqnextm107 nextminus -0E+30000 -> -1E-6176 + +-- specials +dqnextm150 nextminus Inf -> 9.999999999999999999999999999999999E+6144 +dqnextm151 nextminus -Inf -> -Infinity +dqnextm152 nextminus NaN -> NaN +dqnextm153 nextminus sNaN -> NaN Invalid_operation +dqnextm154 nextminus NaN77 -> NaN77 +dqnextm155 nextminus sNaN88 -> NaN88 Invalid_operation +dqnextm156 nextminus -NaN -> -NaN +dqnextm157 nextminus -sNaN -> -NaN Invalid_operation +dqnextm158 nextminus -NaN77 -> -NaN77 +dqnextm159 nextminus -sNaN88 -> -NaN88 Invalid_operation + +-- Nmax, Nmin, Ntiny, subnormals +dqnextm170 nextminus 9.999999999999999999999999999999999E+6144 -> 9.999999999999999999999999999999998E+6144 +dqnextm171 nextminus 9.999999999999999999999999999999998E+6144 -> 9.999999999999999999999999999999997E+6144 +dqnextm172 nextminus 1E-6143 -> 9.99999999999999999999999999999999E-6144 +dqnextm173 nextminus 1.000000000000000000000000000000000E-6143 -> 9.99999999999999999999999999999999E-6144 +dqnextm174 nextminus 9E-6176 -> 8E-6176 +dqnextm175 nextminus 9.9E-6175 -> 9.8E-6175 +dqnextm176 nextminus 9.99999999999999999999999999999E-6147 -> 9.99999999999999999999999999998E-6147 +dqnextm177 nextminus 9.99999999999999999999999999999999E-6144 -> 9.99999999999999999999999999999998E-6144 +dqnextm178 nextminus 9.99999999999999999999999999999998E-6144 -> 9.99999999999999999999999999999997E-6144 +dqnextm179 nextminus 9.99999999999999999999999999999997E-6144 -> 9.99999999999999999999999999999996E-6144 +dqnextm180 nextminus 0E-6176 -> -1E-6176 +dqnextm181 nextminus 1E-6176 -> 0E-6176 +dqnextm182 nextminus 2E-6176 -> 1E-6176 + +dqnextm183 nextminus -0E-6176 -> -1E-6176 +dqnextm184 nextminus -1E-6176 -> -2E-6176 +dqnextm185 nextminus -2E-6176 -> -3E-6176 +dqnextm186 nextminus -10E-6176 -> -1.1E-6175 +dqnextm187 nextminus -100E-6176 -> -1.01E-6174 +dqnextm188 nextminus -100000E-6176 -> -1.00001E-6171 +dqnextm189 nextminus -1.00000000000000000000000000000E-6143 -> -1.000000000000000000000000000000001E-6143 +dqnextm190 nextminus -1.000000000000000000000000000000000E-6143 -> -1.000000000000000000000000000000001E-6143 +dqnextm191 nextminus -1E-6143 -> -1.000000000000000000000000000000001E-6143 +dqnextm192 nextminus -9.999999999999999999999999999999998E+6144 -> -9.999999999999999999999999999999999E+6144 +dqnextm193 nextminus -9.999999999999999999999999999999999E+6144 -> -Infinity + +-- Null tests +dqnextm900 nextminus # -> NaN Invalid_operation + diff --git a/Lib/test/decimaltestdata/dqNextPlus.decTest b/Lib/test/decimaltestdata/dqNextPlus.decTest index ac3f04e69b..8c8e9cd2e7 100644 --- a/Lib/test/decimaltestdata/dqNextPlus.decTest +++ b/Lib/test/decimaltestdata/dqNextPlus.decTest @@ -1,124 +1,124 @@ -------------------------------------------------------------------------
--- dqNextPlus.decTest -- decQuad next that is greater [754r nextup] --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- All operands and results are decQuads.
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
-dqnextp001 nextplus 0.9999999999999999999999999999999995 -> 0.9999999999999999999999999999999996
-dqnextp002 nextplus 0.9999999999999999999999999999999996 -> 0.9999999999999999999999999999999997
-dqnextp003 nextplus 0.9999999999999999999999999999999997 -> 0.9999999999999999999999999999999998
-dqnextp004 nextplus 0.9999999999999999999999999999999998 -> 0.9999999999999999999999999999999999
-dqnextp005 nextplus 0.9999999999999999999999999999999999 -> 1.000000000000000000000000000000000
-dqnextp006 nextplus 1.000000000000000000000000000000000 -> 1.000000000000000000000000000000001
-dqnextp007 nextplus 1.0 -> 1.000000000000000000000000000000001
-dqnextp008 nextplus 1 -> 1.000000000000000000000000000000001
-dqnextp009 nextplus 1.000000000000000000000000000000001 -> 1.000000000000000000000000000000002
-dqnextp010 nextplus 1.000000000000000000000000000000002 -> 1.000000000000000000000000000000003
-dqnextp011 nextplus 1.000000000000000000000000000000003 -> 1.000000000000000000000000000000004
-dqnextp012 nextplus 1.000000000000000000000000000000004 -> 1.000000000000000000000000000000005
-dqnextp013 nextplus 1.000000000000000000000000000000005 -> 1.000000000000000000000000000000006
-dqnextp014 nextplus 1.000000000000000000000000000000006 -> 1.000000000000000000000000000000007
-dqnextp015 nextplus 1.000000000000000000000000000000007 -> 1.000000000000000000000000000000008
-dqnextp016 nextplus 1.000000000000000000000000000000008 -> 1.000000000000000000000000000000009
-dqnextp017 nextplus 1.000000000000000000000000000000009 -> 1.000000000000000000000000000000010
-dqnextp018 nextplus 1.000000000000000000000000000000010 -> 1.000000000000000000000000000000011
-dqnextp019 nextplus 1.000000000000000000000000000000011 -> 1.000000000000000000000000000000012
-
-dqnextp021 nextplus -0.9999999999999999999999999999999995 -> -0.9999999999999999999999999999999994
-dqnextp022 nextplus -0.9999999999999999999999999999999996 -> -0.9999999999999999999999999999999995
-dqnextp023 nextplus -0.9999999999999999999999999999999997 -> -0.9999999999999999999999999999999996
-dqnextp024 nextplus -0.9999999999999999999999999999999998 -> -0.9999999999999999999999999999999997
-dqnextp025 nextplus -0.9999999999999999999999999999999999 -> -0.9999999999999999999999999999999998
-dqnextp026 nextplus -1.000000000000000000000000000000000 -> -0.9999999999999999999999999999999999
-dqnextp027 nextplus -1.0 -> -0.9999999999999999999999999999999999
-dqnextp028 nextplus -1 -> -0.9999999999999999999999999999999999
-dqnextp029 nextplus -1.000000000000000000000000000000001 -> -1.000000000000000000000000000000000
-dqnextp030 nextplus -1.000000000000000000000000000000002 -> -1.000000000000000000000000000000001
-dqnextp031 nextplus -1.000000000000000000000000000000003 -> -1.000000000000000000000000000000002
-dqnextp032 nextplus -1.000000000000000000000000000000004 -> -1.000000000000000000000000000000003
-dqnextp033 nextplus -1.000000000000000000000000000000005 -> -1.000000000000000000000000000000004
-dqnextp034 nextplus -1.000000000000000000000000000000006 -> -1.000000000000000000000000000000005
-dqnextp035 nextplus -1.000000000000000000000000000000007 -> -1.000000000000000000000000000000006
-dqnextp036 nextplus -1.000000000000000000000000000000008 -> -1.000000000000000000000000000000007
-dqnextp037 nextplus -1.000000000000000000000000000000009 -> -1.000000000000000000000000000000008
-dqnextp038 nextplus -1.000000000000000000000000000000010 -> -1.000000000000000000000000000000009
-dqnextp039 nextplus -1.000000000000000000000000000000011 -> -1.000000000000000000000000000000010
-dqnextp040 nextplus -1.000000000000000000000000000000012 -> -1.000000000000000000000000000000011
-
--- Zeros
-dqnextp100 nextplus 0 -> 1E-6176
-dqnextp101 nextplus 0.00 -> 1E-6176
-dqnextp102 nextplus 0E-300 -> 1E-6176
-dqnextp103 nextplus 0E+300 -> 1E-6176
-dqnextp104 nextplus 0E+30000 -> 1E-6176
-dqnextp105 nextplus -0 -> 1E-6176
-dqnextp106 nextplus -0.00 -> 1E-6176
-dqnextp107 nextplus -0E-300 -> 1E-6176
-dqnextp108 nextplus -0E+300 -> 1E-6176
-dqnextp109 nextplus -0E+30000 -> 1E-6176
-
--- specials
-dqnextp150 nextplus Inf -> Infinity
-dqnextp151 nextplus -Inf -> -9.999999999999999999999999999999999E+6144
-dqnextp152 nextplus NaN -> NaN
-dqnextp153 nextplus sNaN -> NaN Invalid_operation
-dqnextp154 nextplus NaN77 -> NaN77
-dqnextp155 nextplus sNaN88 -> NaN88 Invalid_operation
-dqnextp156 nextplus -NaN -> -NaN
-dqnextp157 nextplus -sNaN -> -NaN Invalid_operation
-dqnextp158 nextplus -NaN77 -> -NaN77
-dqnextp159 nextplus -sNaN88 -> -NaN88 Invalid_operation
-
--- Nmax, Nmin, Ntiny, subnormals
-dqnextp170 nextplus -9.999999999999999999999999999999999E+6144 -> -9.999999999999999999999999999999998E+6144
-dqnextp171 nextplus -9.999999999999999999999999999999998E+6144 -> -9.999999999999999999999999999999997E+6144
-dqnextp172 nextplus -1E-6143 -> -9.99999999999999999999999999999999E-6144
-dqnextp173 nextplus -1.000000000000000E-6143 -> -9.99999999999999999999999999999999E-6144
-dqnextp174 nextplus -9E-6176 -> -8E-6176
-dqnextp175 nextplus -9.9E-6175 -> -9.8E-6175
-dqnextp176 nextplus -9.99999999999999999999999999999E-6147 -> -9.99999999999999999999999999998E-6147
-dqnextp177 nextplus -9.99999999999999999999999999999999E-6144 -> -9.99999999999999999999999999999998E-6144
-dqnextp178 nextplus -9.99999999999999999999999999999998E-6144 -> -9.99999999999999999999999999999997E-6144
-dqnextp179 nextplus -9.99999999999999999999999999999997E-6144 -> -9.99999999999999999999999999999996E-6144
-dqnextp180 nextplus -0E-6176 -> 1E-6176
-dqnextp181 nextplus -1E-6176 -> -0E-6176
-dqnextp182 nextplus -2E-6176 -> -1E-6176
-
-dqnextp183 nextplus 0E-6176 -> 1E-6176
-dqnextp184 nextplus 1E-6176 -> 2E-6176
-dqnextp185 nextplus 2E-6176 -> 3E-6176
-dqnextp186 nextplus 10E-6176 -> 1.1E-6175
-dqnextp187 nextplus 100E-6176 -> 1.01E-6174
-dqnextp188 nextplus 100000E-6176 -> 1.00001E-6171
-dqnextp189 nextplus 1.00000000000000000000000000000E-6143 -> 1.000000000000000000000000000000001E-6143
-dqnextp190 nextplus 1.000000000000000000000000000000000E-6143 -> 1.000000000000000000000000000000001E-6143
-dqnextp191 nextplus 1E-6143 -> 1.000000000000000000000000000000001E-6143
-dqnextp192 nextplus 9.999999999999999999999999999999998E+6144 -> 9.999999999999999999999999999999999E+6144
-dqnextp193 nextplus 9.999999999999999999999999999999999E+6144 -> Infinity
-
--- Null tests
-dqnextp900 nextplus # -> NaN Invalid_operation
-
+------------------------------------------------------------------------ +-- dqNextPlus.decTest -- decQuad next that is greater [754r nextup] -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- All operands and results are decQuads. +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +dqnextp001 nextplus 0.9999999999999999999999999999999995 -> 0.9999999999999999999999999999999996 +dqnextp002 nextplus 0.9999999999999999999999999999999996 -> 0.9999999999999999999999999999999997 +dqnextp003 nextplus 0.9999999999999999999999999999999997 -> 0.9999999999999999999999999999999998 +dqnextp004 nextplus 0.9999999999999999999999999999999998 -> 0.9999999999999999999999999999999999 +dqnextp005 nextplus 0.9999999999999999999999999999999999 -> 1.000000000000000000000000000000000 +dqnextp006 nextplus 1.000000000000000000000000000000000 -> 1.000000000000000000000000000000001 +dqnextp007 nextplus 1.0 -> 1.000000000000000000000000000000001 +dqnextp008 nextplus 1 -> 1.000000000000000000000000000000001 +dqnextp009 nextplus 1.000000000000000000000000000000001 -> 1.000000000000000000000000000000002 +dqnextp010 nextplus 1.000000000000000000000000000000002 -> 1.000000000000000000000000000000003 +dqnextp011 nextplus 1.000000000000000000000000000000003 -> 1.000000000000000000000000000000004 +dqnextp012 nextplus 1.000000000000000000000000000000004 -> 1.000000000000000000000000000000005 +dqnextp013 nextplus 1.000000000000000000000000000000005 -> 1.000000000000000000000000000000006 +dqnextp014 nextplus 1.000000000000000000000000000000006 -> 1.000000000000000000000000000000007 +dqnextp015 nextplus 1.000000000000000000000000000000007 -> 1.000000000000000000000000000000008 +dqnextp016 nextplus 1.000000000000000000000000000000008 -> 1.000000000000000000000000000000009 +dqnextp017 nextplus 1.000000000000000000000000000000009 -> 1.000000000000000000000000000000010 +dqnextp018 nextplus 1.000000000000000000000000000000010 -> 1.000000000000000000000000000000011 +dqnextp019 nextplus 1.000000000000000000000000000000011 -> 1.000000000000000000000000000000012 + +dqnextp021 nextplus -0.9999999999999999999999999999999995 -> -0.9999999999999999999999999999999994 +dqnextp022 nextplus -0.9999999999999999999999999999999996 -> -0.9999999999999999999999999999999995 +dqnextp023 nextplus -0.9999999999999999999999999999999997 -> -0.9999999999999999999999999999999996 +dqnextp024 nextplus -0.9999999999999999999999999999999998 -> -0.9999999999999999999999999999999997 +dqnextp025 nextplus -0.9999999999999999999999999999999999 -> -0.9999999999999999999999999999999998 +dqnextp026 nextplus -1.000000000000000000000000000000000 -> -0.9999999999999999999999999999999999 +dqnextp027 nextplus -1.0 -> -0.9999999999999999999999999999999999 +dqnextp028 nextplus -1 -> -0.9999999999999999999999999999999999 +dqnextp029 nextplus -1.000000000000000000000000000000001 -> -1.000000000000000000000000000000000 +dqnextp030 nextplus -1.000000000000000000000000000000002 -> -1.000000000000000000000000000000001 +dqnextp031 nextplus -1.000000000000000000000000000000003 -> -1.000000000000000000000000000000002 +dqnextp032 nextplus -1.000000000000000000000000000000004 -> -1.000000000000000000000000000000003 +dqnextp033 nextplus -1.000000000000000000000000000000005 -> -1.000000000000000000000000000000004 +dqnextp034 nextplus -1.000000000000000000000000000000006 -> -1.000000000000000000000000000000005 +dqnextp035 nextplus -1.000000000000000000000000000000007 -> -1.000000000000000000000000000000006 +dqnextp036 nextplus -1.000000000000000000000000000000008 -> -1.000000000000000000000000000000007 +dqnextp037 nextplus -1.000000000000000000000000000000009 -> -1.000000000000000000000000000000008 +dqnextp038 nextplus -1.000000000000000000000000000000010 -> -1.000000000000000000000000000000009 +dqnextp039 nextplus -1.000000000000000000000000000000011 -> -1.000000000000000000000000000000010 +dqnextp040 nextplus -1.000000000000000000000000000000012 -> -1.000000000000000000000000000000011 + +-- Zeros +dqnextp100 nextplus 0 -> 1E-6176 +dqnextp101 nextplus 0.00 -> 1E-6176 +dqnextp102 nextplus 0E-300 -> 1E-6176 +dqnextp103 nextplus 0E+300 -> 1E-6176 +dqnextp104 nextplus 0E+30000 -> 1E-6176 +dqnextp105 nextplus -0 -> 1E-6176 +dqnextp106 nextplus -0.00 -> 1E-6176 +dqnextp107 nextplus -0E-300 -> 1E-6176 +dqnextp108 nextplus -0E+300 -> 1E-6176 +dqnextp109 nextplus -0E+30000 -> 1E-6176 + +-- specials +dqnextp150 nextplus Inf -> Infinity +dqnextp151 nextplus -Inf -> -9.999999999999999999999999999999999E+6144 +dqnextp152 nextplus NaN -> NaN +dqnextp153 nextplus sNaN -> NaN Invalid_operation +dqnextp154 nextplus NaN77 -> NaN77 +dqnextp155 nextplus sNaN88 -> NaN88 Invalid_operation +dqnextp156 nextplus -NaN -> -NaN +dqnextp157 nextplus -sNaN -> -NaN Invalid_operation +dqnextp158 nextplus -NaN77 -> -NaN77 +dqnextp159 nextplus -sNaN88 -> -NaN88 Invalid_operation + +-- Nmax, Nmin, Ntiny, subnormals +dqnextp170 nextplus -9.999999999999999999999999999999999E+6144 -> -9.999999999999999999999999999999998E+6144 +dqnextp171 nextplus -9.999999999999999999999999999999998E+6144 -> -9.999999999999999999999999999999997E+6144 +dqnextp172 nextplus -1E-6143 -> -9.99999999999999999999999999999999E-6144 +dqnextp173 nextplus -1.000000000000000E-6143 -> -9.99999999999999999999999999999999E-6144 +dqnextp174 nextplus -9E-6176 -> -8E-6176 +dqnextp175 nextplus -9.9E-6175 -> -9.8E-6175 +dqnextp176 nextplus -9.99999999999999999999999999999E-6147 -> -9.99999999999999999999999999998E-6147 +dqnextp177 nextplus -9.99999999999999999999999999999999E-6144 -> -9.99999999999999999999999999999998E-6144 +dqnextp178 nextplus -9.99999999999999999999999999999998E-6144 -> -9.99999999999999999999999999999997E-6144 +dqnextp179 nextplus -9.99999999999999999999999999999997E-6144 -> -9.99999999999999999999999999999996E-6144 +dqnextp180 nextplus -0E-6176 -> 1E-6176 +dqnextp181 nextplus -1E-6176 -> -0E-6176 +dqnextp182 nextplus -2E-6176 -> -1E-6176 + +dqnextp183 nextplus 0E-6176 -> 1E-6176 +dqnextp184 nextplus 1E-6176 -> 2E-6176 +dqnextp185 nextplus 2E-6176 -> 3E-6176 +dqnextp186 nextplus 10E-6176 -> 1.1E-6175 +dqnextp187 nextplus 100E-6176 -> 1.01E-6174 +dqnextp188 nextplus 100000E-6176 -> 1.00001E-6171 +dqnextp189 nextplus 1.00000000000000000000000000000E-6143 -> 1.000000000000000000000000000000001E-6143 +dqnextp190 nextplus 1.000000000000000000000000000000000E-6143 -> 1.000000000000000000000000000000001E-6143 +dqnextp191 nextplus 1E-6143 -> 1.000000000000000000000000000000001E-6143 +dqnextp192 nextplus 9.999999999999999999999999999999998E+6144 -> 9.999999999999999999999999999999999E+6144 +dqnextp193 nextplus 9.999999999999999999999999999999999E+6144 -> Infinity + +-- Null tests +dqnextp900 nextplus # -> NaN Invalid_operation + diff --git a/Lib/test/decimaltestdata/dqNextToward.decTest b/Lib/test/decimaltestdata/dqNextToward.decTest index e6d1e0befb..107e7f5c50 100644 --- a/Lib/test/decimaltestdata/dqNextToward.decTest +++ b/Lib/test/decimaltestdata/dqNextToward.decTest @@ -1,375 +1,375 @@ -------------------------------------------------------------------------
--- dqNextToward.decTest -- decQuad next toward rhs [754r nextafter] --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- All operands and results are decQuads.
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
-
--- Sanity check with a scattering of numerics
-dqnextt001 nexttoward 10 10 -> 10
-dqnextt002 nexttoward -10 -10 -> -10
-dqnextt003 nexttoward 1 10 -> 1.000000000000000000000000000000001
-dqnextt004 nexttoward 1 -10 -> 0.9999999999999999999999999999999999
-dqnextt005 nexttoward -1 10 -> -0.9999999999999999999999999999999999
-dqnextt006 nexttoward -1 -10 -> -1.000000000000000000000000000000001
-dqnextt007 nexttoward 0 10 -> 1E-6176 Underflow Subnormal Inexact Rounded
-dqnextt008 nexttoward 0 -10 -> -1E-6176 Underflow Subnormal Inexact Rounded
-dqnextt009 nexttoward 9.999999999999999999999999999999999E+6144 +Infinity -> Infinity Overflow Inexact Rounded
-dqnextt010 nexttoward -9.999999999999999999999999999999999E+6144 -Infinity -> -Infinity Overflow Inexact Rounded
-dqnextt011 nexttoward 9.999999999999999999999999999999999 10 -> 10.00000000000000000000000000000000
-dqnextt012 nexttoward 10 9.999999999999999999999999999999999 -> 9.999999999999999999999999999999999
-dqnextt013 nexttoward -9.999999999999999999999999999999999 -10 -> -10.00000000000000000000000000000000
-dqnextt014 nexttoward -10 -9.999999999999999999999999999999999 -> -9.999999999999999999999999999999999
-dqnextt015 nexttoward 9.999999999999999999999999999999998 10 -> 9.999999999999999999999999999999999
-dqnextt016 nexttoward 10 9.999999999999999999999999999999998 -> 9.999999999999999999999999999999999
-dqnextt017 nexttoward -9.999999999999999999999999999999998 -10 -> -9.999999999999999999999999999999999
-dqnextt018 nexttoward -10 -9.999999999999999999999999999999998 -> -9.999999999999999999999999999999999
-
-------- lhs=rhs
--- finites
-dqnextt101 nexttoward 7 7 -> 7
-dqnextt102 nexttoward -7 -7 -> -7
-dqnextt103 nexttoward 75 75 -> 75
-dqnextt104 nexttoward -75 -75 -> -75
-dqnextt105 nexttoward 7.50 7.5 -> 7.50
-dqnextt106 nexttoward -7.50 -7.50 -> -7.50
-dqnextt107 nexttoward 7.500 7.5000 -> 7.500
-dqnextt108 nexttoward -7.500 -7.5 -> -7.500
-
--- zeros
-dqnextt111 nexttoward 0 0 -> 0
-dqnextt112 nexttoward -0 -0 -> -0
-dqnextt113 nexttoward 0E+4 0 -> 0E+4
-dqnextt114 nexttoward -0E+4 -0 -> -0E+4
-dqnextt115 nexttoward 0.00000000000 0.000000000000 -> 0E-11
-dqnextt116 nexttoward -0.00000000000 -0.00 -> -0E-11
-dqnextt117 nexttoward 0E-141 0 -> 0E-141
-dqnextt118 nexttoward -0E-141 -000 -> -0E-141
-
--- full coefficients, alternating bits
-dqnextt121 nexttoward 268268268 268268268 -> 268268268
-dqnextt122 nexttoward -268268268 -268268268 -> -268268268
-dqnextt123 nexttoward 134134134 134134134 -> 134134134
-dqnextt124 nexttoward -134134134 -134134134 -> -134134134
-
--- Nmax, Nmin, Ntiny
-dqnextt131 nexttoward 9.999999999999999999999999999999999E+6144 9.999999999999999999999999999999999E+6144 -> 9.999999999999999999999999999999999E+6144
-dqnextt132 nexttoward 1E-6143 1E-6143 -> 1E-6143
-dqnextt133 nexttoward 1.000000000000000000000000000000000E-6143 1.000000000000000000000000000000000E-6143 -> 1.000000000000000000000000000000000E-6143
-dqnextt134 nexttoward 1E-6176 1E-6176 -> 1E-6176
-
-dqnextt135 nexttoward -1E-6176 -1E-6176 -> -1E-6176
-dqnextt136 nexttoward -1.000000000000000000000000000000000E-6143 -1.000000000000000000000000000000000E-6143 -> -1.000000000000000000000000000000000E-6143
-dqnextt137 nexttoward -1E-6143 -1E-6143 -> -1E-6143
-dqnextt138 nexttoward -9.999999999999999999999999999999999E+6144 -9.999999999999999999999999999999999E+6144 -> -9.999999999999999999999999999999999E+6144
-
-------- lhs<rhs
-dqnextt201 nexttoward 0.9999999999999999999999999999999995 Infinity -> 0.9999999999999999999999999999999996
-dqnextt202 nexttoward 0.9999999999999999999999999999999996 Infinity -> 0.9999999999999999999999999999999997
-dqnextt203 nexttoward 0.9999999999999999999999999999999997 Infinity -> 0.9999999999999999999999999999999998
-dqnextt204 nexttoward 0.9999999999999999999999999999999998 Infinity -> 0.9999999999999999999999999999999999
-dqnextt205 nexttoward 0.9999999999999999999999999999999999 Infinity -> 1.000000000000000000000000000000000
-dqnextt206 nexttoward 1.000000000000000000000000000000000 Infinity -> 1.000000000000000000000000000000001
-dqnextt207 nexttoward 1.0 Infinity -> 1.000000000000000000000000000000001
-dqnextt208 nexttoward 1 Infinity -> 1.000000000000000000000000000000001
-dqnextt209 nexttoward 1.000000000000000000000000000000001 Infinity -> 1.000000000000000000000000000000002
-dqnextt210 nexttoward 1.000000000000000000000000000000002 Infinity -> 1.000000000000000000000000000000003
-dqnextt211 nexttoward 1.000000000000000000000000000000003 Infinity -> 1.000000000000000000000000000000004
-dqnextt212 nexttoward 1.000000000000000000000000000000004 Infinity -> 1.000000000000000000000000000000005
-dqnextt213 nexttoward 1.000000000000000000000000000000005 Infinity -> 1.000000000000000000000000000000006
-dqnextt214 nexttoward 1.000000000000000000000000000000006 Infinity -> 1.000000000000000000000000000000007
-dqnextt215 nexttoward 1.000000000000000000000000000000007 Infinity -> 1.000000000000000000000000000000008
-dqnextt216 nexttoward 1.000000000000000000000000000000008 Infinity -> 1.000000000000000000000000000000009
-dqnextt217 nexttoward 1.000000000000000000000000000000009 Infinity -> 1.000000000000000000000000000000010
-dqnextt218 nexttoward 1.000000000000000000000000000000010 Infinity -> 1.000000000000000000000000000000011
-dqnextt219 nexttoward 1.000000000000000000000000000000011 Infinity -> 1.000000000000000000000000000000012
-
-dqnextt221 nexttoward -0.9999999999999999999999999999999995 Infinity -> -0.9999999999999999999999999999999994
-dqnextt222 nexttoward -0.9999999999999999999999999999999996 Infinity -> -0.9999999999999999999999999999999995
-dqnextt223 nexttoward -0.9999999999999999999999999999999997 Infinity -> -0.9999999999999999999999999999999996
-dqnextt224 nexttoward -0.9999999999999999999999999999999998 Infinity -> -0.9999999999999999999999999999999997
-dqnextt225 nexttoward -0.9999999999999999999999999999999999 Infinity -> -0.9999999999999999999999999999999998
-dqnextt226 nexttoward -1.000000000000000000000000000000000 Infinity -> -0.9999999999999999999999999999999999
-dqnextt227 nexttoward -1.0 Infinity -> -0.9999999999999999999999999999999999
-dqnextt228 nexttoward -1 Infinity -> -0.9999999999999999999999999999999999
-dqnextt229 nexttoward -1.000000000000000000000000000000001 Infinity -> -1.000000000000000000000000000000000
-dqnextt230 nexttoward -1.000000000000000000000000000000002 Infinity -> -1.000000000000000000000000000000001
-dqnextt231 nexttoward -1.000000000000000000000000000000003 Infinity -> -1.000000000000000000000000000000002
-dqnextt232 nexttoward -1.000000000000000000000000000000004 Infinity -> -1.000000000000000000000000000000003
-dqnextt233 nexttoward -1.000000000000000000000000000000005 Infinity -> -1.000000000000000000000000000000004
-dqnextt234 nexttoward -1.000000000000000000000000000000006 Infinity -> -1.000000000000000000000000000000005
-dqnextt235 nexttoward -1.000000000000000000000000000000007 Infinity -> -1.000000000000000000000000000000006
-dqnextt236 nexttoward -1.000000000000000000000000000000008 Infinity -> -1.000000000000000000000000000000007
-dqnextt237 nexttoward -1.000000000000000000000000000000009 Infinity -> -1.000000000000000000000000000000008
-dqnextt238 nexttoward -1.000000000000000000000000000000010 Infinity -> -1.000000000000000000000000000000009
-dqnextt239 nexttoward -1.000000000000000000000000000000011 Infinity -> -1.000000000000000000000000000000010
-dqnextt240 nexttoward -1.000000000000000000000000000000012 Infinity -> -1.000000000000000000000000000000011
-
--- Zeros
-dqnextt300 nexttoward 0 Infinity -> 1E-6176 Underflow Subnormal Inexact Rounded
-dqnextt301 nexttoward 0.00 Infinity -> 1E-6176 Underflow Subnormal Inexact Rounded
-dqnextt302 nexttoward 0E-300 Infinity -> 1E-6176 Underflow Subnormal Inexact Rounded
-dqnextt303 nexttoward 0E+300 Infinity -> 1E-6176 Underflow Subnormal Inexact Rounded
-dqnextt304 nexttoward 0E+30000 Infinity -> 1E-6176 Underflow Subnormal Inexact Rounded
-dqnextt305 nexttoward -0 Infinity -> 1E-6176 Underflow Subnormal Inexact Rounded
-dqnextt306 nexttoward -0.00 Infinity -> 1E-6176 Underflow Subnormal Inexact Rounded
-dqnextt307 nexttoward -0E-300 Infinity -> 1E-6176 Underflow Subnormal Inexact Rounded
-dqnextt308 nexttoward -0E+300 Infinity -> 1E-6176 Underflow Subnormal Inexact Rounded
-dqnextt309 nexttoward -0E+30000 Infinity -> 1E-6176 Underflow Subnormal Inexact Rounded
-
--- specials
-dqnextt350 nexttoward Inf Infinity -> Infinity
-dqnextt351 nexttoward -Inf Infinity -> -9.999999999999999999999999999999999E+6144
-dqnextt352 nexttoward NaN Infinity -> NaN
-dqnextt353 nexttoward sNaN Infinity -> NaN Invalid_operation
-dqnextt354 nexttoward NaN77 Infinity -> NaN77
-dqnextt355 nexttoward sNaN88 Infinity -> NaN88 Invalid_operation
-dqnextt356 nexttoward -NaN Infinity -> -NaN
-dqnextt357 nexttoward -sNaN Infinity -> -NaN Invalid_operation
-dqnextt358 nexttoward -NaN77 Infinity -> -NaN77
-dqnextt359 nexttoward -sNaN88 Infinity -> -NaN88 Invalid_operation
-
--- Nmax, Nmin, Ntiny, subnormals
-dqnextt370 nexttoward -9.999999999999999999999999999999999E+6144 Infinity -> -9.999999999999999999999999999999998E+6144
-dqnextt371 nexttoward -9.999999999999999999999999999999998E+6144 Infinity -> -9.999999999999999999999999999999997E+6144
-dqnextt372 nexttoward -1E-6143 Infinity -> -9.99999999999999999999999999999999E-6144 Underflow Subnormal Inexact Rounded
-dqnextt373 nexttoward -1.000000000000000E-6143 Infinity -> -9.99999999999999999999999999999999E-6144 Underflow Subnormal Inexact Rounded
-dqnextt374 nexttoward -9E-6176 Infinity -> -8E-6176 Underflow Subnormal Inexact Rounded
-dqnextt375 nexttoward -9.9E-6175 Infinity -> -9.8E-6175 Underflow Subnormal Inexact Rounded
-dqnextt376 nexttoward -9.99999999999999999999999999999E-6147 Infinity -> -9.99999999999999999999999999998E-6147 Underflow Subnormal Inexact Rounded
-dqnextt377 nexttoward -9.99999999999999999999999999999999E-6144 Infinity -> -9.99999999999999999999999999999998E-6144 Underflow Subnormal Inexact Rounded
-dqnextt378 nexttoward -9.99999999999999999999999999999998E-6144 Infinity -> -9.99999999999999999999999999999997E-6144 Underflow Subnormal Inexact Rounded
-dqnextt379 nexttoward -9.99999999999999999999999999999997E-6144 Infinity -> -9.99999999999999999999999999999996E-6144 Underflow Subnormal Inexact Rounded
-dqnextt380 nexttoward -0E-6176 Infinity -> 1E-6176 Underflow Subnormal Inexact Rounded
-dqnextt381 nexttoward -1E-6176 Infinity -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqnextt382 nexttoward -2E-6176 Infinity -> -1E-6176 Underflow Subnormal Inexact Rounded
-
-dqnextt383 nexttoward 0E-6176 Infinity -> 1E-6176 Underflow Subnormal Inexact Rounded
-dqnextt384 nexttoward 1E-6176 Infinity -> 2E-6176 Underflow Subnormal Inexact Rounded
-dqnextt385 nexttoward 2E-6176 Infinity -> 3E-6176 Underflow Subnormal Inexact Rounded
-dqnextt386 nexttoward 10E-6176 Infinity -> 1.1E-6175 Underflow Subnormal Inexact Rounded
-dqnextt387 nexttoward 100E-6176 Infinity -> 1.01E-6174 Underflow Subnormal Inexact Rounded
-dqnextt388 nexttoward 100000E-6176 Infinity -> 1.00001E-6171 Underflow Subnormal Inexact Rounded
-dqnextt389 nexttoward 1.00000000000000000000000000000E-6143 Infinity -> 1.000000000000000000000000000000001E-6143
-dqnextt390 nexttoward 1.000000000000000000000000000000000E-6143 Infinity -> 1.000000000000000000000000000000001E-6143
-dqnextt391 nexttoward 1E-6143 Infinity -> 1.000000000000000000000000000000001E-6143
-dqnextt392 nexttoward 9.999999999999999999999999999999997E+6144 Infinity -> 9.999999999999999999999999999999998E+6144
-dqnextt393 nexttoward 9.999999999999999999999999999999998E+6144 Infinity -> 9.999999999999999999999999999999999E+6144
-dqnextt394 nexttoward 9.999999999999999999999999999999999E+6144 Infinity -> Infinity Overflow Inexact Rounded
-
-------- lhs>rhs
-dqnextt401 nexttoward 0.9999999999999999999999999999999995 -Infinity -> 0.9999999999999999999999999999999994
-dqnextt402 nexttoward 0.9999999999999999999999999999999996 -Infinity -> 0.9999999999999999999999999999999995
-dqnextt403 nexttoward 0.9999999999999999999999999999999997 -Infinity -> 0.9999999999999999999999999999999996
-dqnextt404 nexttoward 0.9999999999999999999999999999999998 -Infinity -> 0.9999999999999999999999999999999997
-dqnextt405 nexttoward 0.9999999999999999999999999999999999 -Infinity -> 0.9999999999999999999999999999999998
-dqnextt406 nexttoward 1.000000000000000000000000000000000 -Infinity -> 0.9999999999999999999999999999999999
-dqnextt407 nexttoward 1.0 -Infinity -> 0.9999999999999999999999999999999999
-dqnextt408 nexttoward 1 -Infinity -> 0.9999999999999999999999999999999999
-dqnextt409 nexttoward 1.000000000000000000000000000000001 -Infinity -> 1.000000000000000000000000000000000
-dqnextt410 nexttoward 1.000000000000000000000000000000002 -Infinity -> 1.000000000000000000000000000000001
-dqnextt411 nexttoward 1.000000000000000000000000000000003 -Infinity -> 1.000000000000000000000000000000002
-dqnextt412 nexttoward 1.000000000000000000000000000000004 -Infinity -> 1.000000000000000000000000000000003
-dqnextt413 nexttoward 1.000000000000000000000000000000005 -Infinity -> 1.000000000000000000000000000000004
-dqnextt414 nexttoward 1.000000000000000000000000000000006 -Infinity -> 1.000000000000000000000000000000005
-dqnextt415 nexttoward 1.000000000000000000000000000000007 -Infinity -> 1.000000000000000000000000000000006
-dqnextt416 nexttoward 1.000000000000000000000000000000008 -Infinity -> 1.000000000000000000000000000000007
-dqnextt417 nexttoward 1.000000000000000000000000000000009 -Infinity -> 1.000000000000000000000000000000008
-dqnextt418 nexttoward 1.000000000000000000000000000000010 -Infinity -> 1.000000000000000000000000000000009
-dqnextt419 nexttoward 1.000000000000000000000000000000011 -Infinity -> 1.000000000000000000000000000000010
-dqnextt420 nexttoward 1.000000000000000000000000000000012 -Infinity -> 1.000000000000000000000000000000011
-
-dqnextt421 nexttoward -0.9999999999999999999999999999999995 -Infinity -> -0.9999999999999999999999999999999996
-dqnextt422 nexttoward -0.9999999999999999999999999999999996 -Infinity -> -0.9999999999999999999999999999999997
-dqnextt423 nexttoward -0.9999999999999999999999999999999997 -Infinity -> -0.9999999999999999999999999999999998
-dqnextt424 nexttoward -0.9999999999999999999999999999999998 -Infinity -> -0.9999999999999999999999999999999999
-dqnextt425 nexttoward -0.9999999999999999999999999999999999 -Infinity -> -1.000000000000000000000000000000000
-dqnextt426 nexttoward -1.000000000000000000000000000000000 -Infinity -> -1.000000000000000000000000000000001
-dqnextt427 nexttoward -1.0 -Infinity -> -1.000000000000000000000000000000001
-dqnextt428 nexttoward -1 -Infinity -> -1.000000000000000000000000000000001
-dqnextt429 nexttoward -1.000000000000000000000000000000001 -Infinity -> -1.000000000000000000000000000000002
-dqnextt430 nexttoward -1.000000000000000000000000000000002 -Infinity -> -1.000000000000000000000000000000003
-dqnextt431 nexttoward -1.000000000000000000000000000000003 -Infinity -> -1.000000000000000000000000000000004
-dqnextt432 nexttoward -1.000000000000000000000000000000004 -Infinity -> -1.000000000000000000000000000000005
-dqnextt433 nexttoward -1.000000000000000000000000000000005 -Infinity -> -1.000000000000000000000000000000006
-dqnextt434 nexttoward -1.000000000000000000000000000000006 -Infinity -> -1.000000000000000000000000000000007
-dqnextt435 nexttoward -1.000000000000000000000000000000007 -Infinity -> -1.000000000000000000000000000000008
-dqnextt436 nexttoward -1.000000000000000000000000000000008 -Infinity -> -1.000000000000000000000000000000009
-dqnextt437 nexttoward -1.000000000000000000000000000000009 -Infinity -> -1.000000000000000000000000000000010
-dqnextt438 nexttoward -1.000000000000000000000000000000010 -Infinity -> -1.000000000000000000000000000000011
-dqnextt439 nexttoward -1.000000000000000000000000000000011 -Infinity -> -1.000000000000000000000000000000012
-
--- Zeros
-dqnextt500 nexttoward -0 -Infinity -> -1E-6176 Underflow Subnormal Inexact Rounded
-dqnextt501 nexttoward 0 -Infinity -> -1E-6176 Underflow Subnormal Inexact Rounded
-dqnextt502 nexttoward 0.00 -Infinity -> -1E-6176 Underflow Subnormal Inexact Rounded
-dqnextt503 nexttoward -0.00 -Infinity -> -1E-6176 Underflow Subnormal Inexact Rounded
-dqnextt504 nexttoward 0E-300 -Infinity -> -1E-6176 Underflow Subnormal Inexact Rounded
-dqnextt505 nexttoward 0E+300 -Infinity -> -1E-6176 Underflow Subnormal Inexact Rounded
-dqnextt506 nexttoward 0E+30000 -Infinity -> -1E-6176 Underflow Subnormal Inexact Rounded
-dqnextt507 nexttoward -0E+30000 -Infinity -> -1E-6176 Underflow Subnormal Inexact Rounded
-
--- specials
-dqnextt550 nexttoward Inf -Infinity -> 9.999999999999999999999999999999999E+6144
-dqnextt551 nexttoward -Inf -Infinity -> -Infinity
-dqnextt552 nexttoward NaN -Infinity -> NaN
-dqnextt553 nexttoward sNaN -Infinity -> NaN Invalid_operation
-dqnextt554 nexttoward NaN77 -Infinity -> NaN77
-dqnextt555 nexttoward sNaN88 -Infinity -> NaN88 Invalid_operation
-dqnextt556 nexttoward -NaN -Infinity -> -NaN
-dqnextt557 nexttoward -sNaN -Infinity -> -NaN Invalid_operation
-dqnextt558 nexttoward -NaN77 -Infinity -> -NaN77
-dqnextt559 nexttoward -sNaN88 -Infinity -> -NaN88 Invalid_operation
-
--- Nmax, Nmin, Ntiny, subnormals
-dqnextt670 nexttoward 9.999999999999999999999999999999999E+6144 -Infinity -> 9.999999999999999999999999999999998E+6144
-dqnextt671 nexttoward 9.999999999999999999999999999999998E+6144 -Infinity -> 9.999999999999999999999999999999997E+6144
-dqnextt672 nexttoward 1E-6143 -Infinity -> 9.99999999999999999999999999999999E-6144 Underflow Subnormal Inexact Rounded
-dqnextt673 nexttoward 1.000000000000000000000000000000000E-6143 -Infinity -> 9.99999999999999999999999999999999E-6144 Underflow Subnormal Inexact Rounded
-dqnextt674 nexttoward 9E-6176 -Infinity -> 8E-6176 Underflow Subnormal Inexact Rounded
-dqnextt675 nexttoward 9.9E-6175 -Infinity -> 9.8E-6175 Underflow Subnormal Inexact Rounded
-dqnextt676 nexttoward 9.99999999999999999999999999999E-6147 -Infinity -> 9.99999999999999999999999999998E-6147 Underflow Subnormal Inexact Rounded
-dqnextt677 nexttoward 9.99999999999999999999999999999999E-6144 -Infinity -> 9.99999999999999999999999999999998E-6144 Underflow Subnormal Inexact Rounded
-dqnextt678 nexttoward 9.99999999999999999999999999999998E-6144 -Infinity -> 9.99999999999999999999999999999997E-6144 Underflow Subnormal Inexact Rounded
-dqnextt679 nexttoward 9.99999999999999999999999999999997E-6144 -Infinity -> 9.99999999999999999999999999999996E-6144 Underflow Subnormal Inexact Rounded
-dqnextt680 nexttoward 0E-6176 -Infinity -> -1E-6176 Underflow Subnormal Inexact Rounded
-dqnextt681 nexttoward 1E-6176 -Infinity -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqnextt682 nexttoward 2E-6176 -Infinity -> 1E-6176 Underflow Subnormal Inexact Rounded
-
-dqnextt683 nexttoward -0E-6176 -Infinity -> -1E-6176 Underflow Subnormal Inexact Rounded
-dqnextt684 nexttoward -1E-6176 -Infinity -> -2E-6176 Underflow Subnormal Inexact Rounded
-dqnextt685 nexttoward -2E-6176 -Infinity -> -3E-6176 Underflow Subnormal Inexact Rounded
-dqnextt686 nexttoward -10E-6176 -Infinity -> -1.1E-6175 Underflow Subnormal Inexact Rounded
-dqnextt687 nexttoward -100E-6176 -Infinity -> -1.01E-6174 Underflow Subnormal Inexact Rounded
-dqnextt688 nexttoward -100000E-6176 -Infinity -> -1.00001E-6171 Underflow Subnormal Inexact Rounded
-dqnextt689 nexttoward -1.00000000000000000000000000000E-6143 -Infinity -> -1.000000000000000000000000000000001E-6143
-dqnextt690 nexttoward -1.000000000000000000000000000000000E-6143 -Infinity -> -1.000000000000000000000000000000001E-6143
-dqnextt691 nexttoward -1E-6143 -Infinity -> -1.000000000000000000000000000000001E-6143
-dqnextt692 nexttoward -9.999999999999999999999999999999998E+6144 -Infinity -> -9.999999999999999999999999999999999E+6144
-dqnextt693 nexttoward -9.999999999999999999999999999999999E+6144 -Infinity -> -Infinity Overflow Inexact Rounded
-
-------- Specials
-dqnextt780 nexttoward -Inf -Inf -> -Infinity
-dqnextt781 nexttoward -Inf -1000 -> -9.999999999999999999999999999999999E+6144
-dqnextt782 nexttoward -Inf -1 -> -9.999999999999999999999999999999999E+6144
-dqnextt783 nexttoward -Inf -0 -> -9.999999999999999999999999999999999E+6144
-dqnextt784 nexttoward -Inf 0 -> -9.999999999999999999999999999999999E+6144
-dqnextt785 nexttoward -Inf 1 -> -9.999999999999999999999999999999999E+6144
-dqnextt786 nexttoward -Inf 1000 -> -9.999999999999999999999999999999999E+6144
-dqnextt787 nexttoward -1000 -Inf -> -1000.000000000000000000000000000001
-dqnextt788 nexttoward -Inf -Inf -> -Infinity
-dqnextt789 nexttoward -1 -Inf -> -1.000000000000000000000000000000001
-dqnextt790 nexttoward -0 -Inf -> -1E-6176 Underflow Subnormal Inexact Rounded
-dqnextt791 nexttoward 0 -Inf -> -1E-6176 Underflow Subnormal Inexact Rounded
-dqnextt792 nexttoward 1 -Inf -> 0.9999999999999999999999999999999999
-dqnextt793 nexttoward 1000 -Inf -> 999.9999999999999999999999999999999
-dqnextt794 nexttoward Inf -Inf -> 9.999999999999999999999999999999999E+6144
-
-dqnextt800 nexttoward Inf -Inf -> 9.999999999999999999999999999999999E+6144
-dqnextt801 nexttoward Inf -1000 -> 9.999999999999999999999999999999999E+6144
-dqnextt802 nexttoward Inf -1 -> 9.999999999999999999999999999999999E+6144
-dqnextt803 nexttoward Inf -0 -> 9.999999999999999999999999999999999E+6144
-dqnextt804 nexttoward Inf 0 -> 9.999999999999999999999999999999999E+6144
-dqnextt805 nexttoward Inf 1 -> 9.999999999999999999999999999999999E+6144
-dqnextt806 nexttoward Inf 1000 -> 9.999999999999999999999999999999999E+6144
-dqnextt807 nexttoward Inf Inf -> Infinity
-dqnextt808 nexttoward -1000 Inf -> -999.9999999999999999999999999999999
-dqnextt809 nexttoward -Inf Inf -> -9.999999999999999999999999999999999E+6144
-dqnextt810 nexttoward -1 Inf -> -0.9999999999999999999999999999999999
-dqnextt811 nexttoward -0 Inf -> 1E-6176 Underflow Subnormal Inexact Rounded
-dqnextt812 nexttoward 0 Inf -> 1E-6176 Underflow Subnormal Inexact Rounded
-dqnextt813 nexttoward 1 Inf -> 1.000000000000000000000000000000001
-dqnextt814 nexttoward 1000 Inf -> 1000.000000000000000000000000000001
-dqnextt815 nexttoward Inf Inf -> Infinity
-
-dqnextt821 nexttoward NaN -Inf -> NaN
-dqnextt822 nexttoward NaN -1000 -> NaN
-dqnextt823 nexttoward NaN -1 -> NaN
-dqnextt824 nexttoward NaN -0 -> NaN
-dqnextt825 nexttoward NaN 0 -> NaN
-dqnextt826 nexttoward NaN 1 -> NaN
-dqnextt827 nexttoward NaN 1000 -> NaN
-dqnextt828 nexttoward NaN Inf -> NaN
-dqnextt829 nexttoward NaN NaN -> NaN
-dqnextt830 nexttoward -Inf NaN -> NaN
-dqnextt831 nexttoward -1000 NaN -> NaN
-dqnextt832 nexttoward -1 NaN -> NaN
-dqnextt833 nexttoward -0 NaN -> NaN
-dqnextt834 nexttoward 0 NaN -> NaN
-dqnextt835 nexttoward 1 NaN -> NaN
-dqnextt836 nexttoward 1000 NaN -> NaN
-dqnextt837 nexttoward Inf NaN -> NaN
-
-dqnextt841 nexttoward sNaN -Inf -> NaN Invalid_operation
-dqnextt842 nexttoward sNaN -1000 -> NaN Invalid_operation
-dqnextt843 nexttoward sNaN -1 -> NaN Invalid_operation
-dqnextt844 nexttoward sNaN -0 -> NaN Invalid_operation
-dqnextt845 nexttoward sNaN 0 -> NaN Invalid_operation
-dqnextt846 nexttoward sNaN 1 -> NaN Invalid_operation
-dqnextt847 nexttoward sNaN 1000 -> NaN Invalid_operation
-dqnextt848 nexttoward sNaN NaN -> NaN Invalid_operation
-dqnextt849 nexttoward sNaN sNaN -> NaN Invalid_operation
-dqnextt850 nexttoward NaN sNaN -> NaN Invalid_operation
-dqnextt851 nexttoward -Inf sNaN -> NaN Invalid_operation
-dqnextt852 nexttoward -1000 sNaN -> NaN Invalid_operation
-dqnextt853 nexttoward -1 sNaN -> NaN Invalid_operation
-dqnextt854 nexttoward -0 sNaN -> NaN Invalid_operation
-dqnextt855 nexttoward 0 sNaN -> NaN Invalid_operation
-dqnextt856 nexttoward 1 sNaN -> NaN Invalid_operation
-dqnextt857 nexttoward 1000 sNaN -> NaN Invalid_operation
-dqnextt858 nexttoward Inf sNaN -> NaN Invalid_operation
-dqnextt859 nexttoward NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-dqnextt861 nexttoward NaN1 -Inf -> NaN1
-dqnextt862 nexttoward +NaN2 -1000 -> NaN2
-dqnextt863 nexttoward NaN3 1000 -> NaN3
-dqnextt864 nexttoward NaN4 Inf -> NaN4
-dqnextt865 nexttoward NaN5 +NaN6 -> NaN5
-dqnextt866 nexttoward -Inf NaN7 -> NaN7
-dqnextt867 nexttoward -1000 NaN8 -> NaN8
-dqnextt868 nexttoward 1000 NaN9 -> NaN9
-dqnextt869 nexttoward Inf +NaN10 -> NaN10
-dqnextt871 nexttoward sNaN11 -Inf -> NaN11 Invalid_operation
-dqnextt872 nexttoward sNaN12 -1000 -> NaN12 Invalid_operation
-dqnextt873 nexttoward sNaN13 1000 -> NaN13 Invalid_operation
-dqnextt874 nexttoward sNaN14 NaN17 -> NaN14 Invalid_operation
-dqnextt875 nexttoward sNaN15 sNaN18 -> NaN15 Invalid_operation
-dqnextt876 nexttoward NaN16 sNaN19 -> NaN19 Invalid_operation
-dqnextt877 nexttoward -Inf +sNaN20 -> NaN20 Invalid_operation
-dqnextt878 nexttoward -1000 sNaN21 -> NaN21 Invalid_operation
-dqnextt879 nexttoward 1000 sNaN22 -> NaN22 Invalid_operation
-dqnextt880 nexttoward Inf sNaN23 -> NaN23 Invalid_operation
-dqnextt881 nexttoward +NaN25 +sNaN24 -> NaN24 Invalid_operation
-dqnextt882 nexttoward -NaN26 NaN28 -> -NaN26
-dqnextt883 nexttoward -sNaN27 sNaN29 -> -NaN27 Invalid_operation
-dqnextt884 nexttoward 1000 -NaN30 -> -NaN30
-dqnextt885 nexttoward 1000 -sNaN31 -> -NaN31 Invalid_operation
-
--- Null tests
-dqnextt900 nexttoward 1 # -> NaN Invalid_operation
-dqnextt901 nexttoward # 1 -> NaN Invalid_operation
-
+------------------------------------------------------------------------ +-- dqNextToward.decTest -- decQuad next toward rhs [754r nextafter] -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- All operands and results are decQuads. +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + + +-- Sanity check with a scattering of numerics +dqnextt001 nexttoward 10 10 -> 10 +dqnextt002 nexttoward -10 -10 -> -10 +dqnextt003 nexttoward 1 10 -> 1.000000000000000000000000000000001 +dqnextt004 nexttoward 1 -10 -> 0.9999999999999999999999999999999999 +dqnextt005 nexttoward -1 10 -> -0.9999999999999999999999999999999999 +dqnextt006 nexttoward -1 -10 -> -1.000000000000000000000000000000001 +dqnextt007 nexttoward 0 10 -> 1E-6176 Underflow Subnormal Inexact Rounded +dqnextt008 nexttoward 0 -10 -> -1E-6176 Underflow Subnormal Inexact Rounded +dqnextt009 nexttoward 9.999999999999999999999999999999999E+6144 +Infinity -> Infinity Overflow Inexact Rounded +dqnextt010 nexttoward -9.999999999999999999999999999999999E+6144 -Infinity -> -Infinity Overflow Inexact Rounded +dqnextt011 nexttoward 9.999999999999999999999999999999999 10 -> 10.00000000000000000000000000000000 +dqnextt012 nexttoward 10 9.999999999999999999999999999999999 -> 9.999999999999999999999999999999999 +dqnextt013 nexttoward -9.999999999999999999999999999999999 -10 -> -10.00000000000000000000000000000000 +dqnextt014 nexttoward -10 -9.999999999999999999999999999999999 -> -9.999999999999999999999999999999999 +dqnextt015 nexttoward 9.999999999999999999999999999999998 10 -> 9.999999999999999999999999999999999 +dqnextt016 nexttoward 10 9.999999999999999999999999999999998 -> 9.999999999999999999999999999999999 +dqnextt017 nexttoward -9.999999999999999999999999999999998 -10 -> -9.999999999999999999999999999999999 +dqnextt018 nexttoward -10 -9.999999999999999999999999999999998 -> -9.999999999999999999999999999999999 + +------- lhs=rhs +-- finites +dqnextt101 nexttoward 7 7 -> 7 +dqnextt102 nexttoward -7 -7 -> -7 +dqnextt103 nexttoward 75 75 -> 75 +dqnextt104 nexttoward -75 -75 -> -75 +dqnextt105 nexttoward 7.50 7.5 -> 7.50 +dqnextt106 nexttoward -7.50 -7.50 -> -7.50 +dqnextt107 nexttoward 7.500 7.5000 -> 7.500 +dqnextt108 nexttoward -7.500 -7.5 -> -7.500 + +-- zeros +dqnextt111 nexttoward 0 0 -> 0 +dqnextt112 nexttoward -0 -0 -> -0 +dqnextt113 nexttoward 0E+4 0 -> 0E+4 +dqnextt114 nexttoward -0E+4 -0 -> -0E+4 +dqnextt115 nexttoward 0.00000000000 0.000000000000 -> 0E-11 +dqnextt116 nexttoward -0.00000000000 -0.00 -> -0E-11 +dqnextt117 nexttoward 0E-141 0 -> 0E-141 +dqnextt118 nexttoward -0E-141 -000 -> -0E-141 + +-- full coefficients, alternating bits +dqnextt121 nexttoward 268268268 268268268 -> 268268268 +dqnextt122 nexttoward -268268268 -268268268 -> -268268268 +dqnextt123 nexttoward 134134134 134134134 -> 134134134 +dqnextt124 nexttoward -134134134 -134134134 -> -134134134 + +-- Nmax, Nmin, Ntiny +dqnextt131 nexttoward 9.999999999999999999999999999999999E+6144 9.999999999999999999999999999999999E+6144 -> 9.999999999999999999999999999999999E+6144 +dqnextt132 nexttoward 1E-6143 1E-6143 -> 1E-6143 +dqnextt133 nexttoward 1.000000000000000000000000000000000E-6143 1.000000000000000000000000000000000E-6143 -> 1.000000000000000000000000000000000E-6143 +dqnextt134 nexttoward 1E-6176 1E-6176 -> 1E-6176 + +dqnextt135 nexttoward -1E-6176 -1E-6176 -> -1E-6176 +dqnextt136 nexttoward -1.000000000000000000000000000000000E-6143 -1.000000000000000000000000000000000E-6143 -> -1.000000000000000000000000000000000E-6143 +dqnextt137 nexttoward -1E-6143 -1E-6143 -> -1E-6143 +dqnextt138 nexttoward -9.999999999999999999999999999999999E+6144 -9.999999999999999999999999999999999E+6144 -> -9.999999999999999999999999999999999E+6144 + +------- lhs<rhs +dqnextt201 nexttoward 0.9999999999999999999999999999999995 Infinity -> 0.9999999999999999999999999999999996 +dqnextt202 nexttoward 0.9999999999999999999999999999999996 Infinity -> 0.9999999999999999999999999999999997 +dqnextt203 nexttoward 0.9999999999999999999999999999999997 Infinity -> 0.9999999999999999999999999999999998 +dqnextt204 nexttoward 0.9999999999999999999999999999999998 Infinity -> 0.9999999999999999999999999999999999 +dqnextt205 nexttoward 0.9999999999999999999999999999999999 Infinity -> 1.000000000000000000000000000000000 +dqnextt206 nexttoward 1.000000000000000000000000000000000 Infinity -> 1.000000000000000000000000000000001 +dqnextt207 nexttoward 1.0 Infinity -> 1.000000000000000000000000000000001 +dqnextt208 nexttoward 1 Infinity -> 1.000000000000000000000000000000001 +dqnextt209 nexttoward 1.000000000000000000000000000000001 Infinity -> 1.000000000000000000000000000000002 +dqnextt210 nexttoward 1.000000000000000000000000000000002 Infinity -> 1.000000000000000000000000000000003 +dqnextt211 nexttoward 1.000000000000000000000000000000003 Infinity -> 1.000000000000000000000000000000004 +dqnextt212 nexttoward 1.000000000000000000000000000000004 Infinity -> 1.000000000000000000000000000000005 +dqnextt213 nexttoward 1.000000000000000000000000000000005 Infinity -> 1.000000000000000000000000000000006 +dqnextt214 nexttoward 1.000000000000000000000000000000006 Infinity -> 1.000000000000000000000000000000007 +dqnextt215 nexttoward 1.000000000000000000000000000000007 Infinity -> 1.000000000000000000000000000000008 +dqnextt216 nexttoward 1.000000000000000000000000000000008 Infinity -> 1.000000000000000000000000000000009 +dqnextt217 nexttoward 1.000000000000000000000000000000009 Infinity -> 1.000000000000000000000000000000010 +dqnextt218 nexttoward 1.000000000000000000000000000000010 Infinity -> 1.000000000000000000000000000000011 +dqnextt219 nexttoward 1.000000000000000000000000000000011 Infinity -> 1.000000000000000000000000000000012 + +dqnextt221 nexttoward -0.9999999999999999999999999999999995 Infinity -> -0.9999999999999999999999999999999994 +dqnextt222 nexttoward -0.9999999999999999999999999999999996 Infinity -> -0.9999999999999999999999999999999995 +dqnextt223 nexttoward -0.9999999999999999999999999999999997 Infinity -> -0.9999999999999999999999999999999996 +dqnextt224 nexttoward -0.9999999999999999999999999999999998 Infinity -> -0.9999999999999999999999999999999997 +dqnextt225 nexttoward -0.9999999999999999999999999999999999 Infinity -> -0.9999999999999999999999999999999998 +dqnextt226 nexttoward -1.000000000000000000000000000000000 Infinity -> -0.9999999999999999999999999999999999 +dqnextt227 nexttoward -1.0 Infinity -> -0.9999999999999999999999999999999999 +dqnextt228 nexttoward -1 Infinity -> -0.9999999999999999999999999999999999 +dqnextt229 nexttoward -1.000000000000000000000000000000001 Infinity -> -1.000000000000000000000000000000000 +dqnextt230 nexttoward -1.000000000000000000000000000000002 Infinity -> -1.000000000000000000000000000000001 +dqnextt231 nexttoward -1.000000000000000000000000000000003 Infinity -> -1.000000000000000000000000000000002 +dqnextt232 nexttoward -1.000000000000000000000000000000004 Infinity -> -1.000000000000000000000000000000003 +dqnextt233 nexttoward -1.000000000000000000000000000000005 Infinity -> -1.000000000000000000000000000000004 +dqnextt234 nexttoward -1.000000000000000000000000000000006 Infinity -> -1.000000000000000000000000000000005 +dqnextt235 nexttoward -1.000000000000000000000000000000007 Infinity -> -1.000000000000000000000000000000006 +dqnextt236 nexttoward -1.000000000000000000000000000000008 Infinity -> -1.000000000000000000000000000000007 +dqnextt237 nexttoward -1.000000000000000000000000000000009 Infinity -> -1.000000000000000000000000000000008 +dqnextt238 nexttoward -1.000000000000000000000000000000010 Infinity -> -1.000000000000000000000000000000009 +dqnextt239 nexttoward -1.000000000000000000000000000000011 Infinity -> -1.000000000000000000000000000000010 +dqnextt240 nexttoward -1.000000000000000000000000000000012 Infinity -> -1.000000000000000000000000000000011 + +-- Zeros +dqnextt300 nexttoward 0 Infinity -> 1E-6176 Underflow Subnormal Inexact Rounded +dqnextt301 nexttoward 0.00 Infinity -> 1E-6176 Underflow Subnormal Inexact Rounded +dqnextt302 nexttoward 0E-300 Infinity -> 1E-6176 Underflow Subnormal Inexact Rounded +dqnextt303 nexttoward 0E+300 Infinity -> 1E-6176 Underflow Subnormal Inexact Rounded +dqnextt304 nexttoward 0E+30000 Infinity -> 1E-6176 Underflow Subnormal Inexact Rounded +dqnextt305 nexttoward -0 Infinity -> 1E-6176 Underflow Subnormal Inexact Rounded +dqnextt306 nexttoward -0.00 Infinity -> 1E-6176 Underflow Subnormal Inexact Rounded +dqnextt307 nexttoward -0E-300 Infinity -> 1E-6176 Underflow Subnormal Inexact Rounded +dqnextt308 nexttoward -0E+300 Infinity -> 1E-6176 Underflow Subnormal Inexact Rounded +dqnextt309 nexttoward -0E+30000 Infinity -> 1E-6176 Underflow Subnormal Inexact Rounded + +-- specials +dqnextt350 nexttoward Inf Infinity -> Infinity +dqnextt351 nexttoward -Inf Infinity -> -9.999999999999999999999999999999999E+6144 +dqnextt352 nexttoward NaN Infinity -> NaN +dqnextt353 nexttoward sNaN Infinity -> NaN Invalid_operation +dqnextt354 nexttoward NaN77 Infinity -> NaN77 +dqnextt355 nexttoward sNaN88 Infinity -> NaN88 Invalid_operation +dqnextt356 nexttoward -NaN Infinity -> -NaN +dqnextt357 nexttoward -sNaN Infinity -> -NaN Invalid_operation +dqnextt358 nexttoward -NaN77 Infinity -> -NaN77 +dqnextt359 nexttoward -sNaN88 Infinity -> -NaN88 Invalid_operation + +-- Nmax, Nmin, Ntiny, subnormals +dqnextt370 nexttoward -9.999999999999999999999999999999999E+6144 Infinity -> -9.999999999999999999999999999999998E+6144 +dqnextt371 nexttoward -9.999999999999999999999999999999998E+6144 Infinity -> -9.999999999999999999999999999999997E+6144 +dqnextt372 nexttoward -1E-6143 Infinity -> -9.99999999999999999999999999999999E-6144 Underflow Subnormal Inexact Rounded +dqnextt373 nexttoward -1.000000000000000E-6143 Infinity -> -9.99999999999999999999999999999999E-6144 Underflow Subnormal Inexact Rounded +dqnextt374 nexttoward -9E-6176 Infinity -> -8E-6176 Underflow Subnormal Inexact Rounded +dqnextt375 nexttoward -9.9E-6175 Infinity -> -9.8E-6175 Underflow Subnormal Inexact Rounded +dqnextt376 nexttoward -9.99999999999999999999999999999E-6147 Infinity -> -9.99999999999999999999999999998E-6147 Underflow Subnormal Inexact Rounded +dqnextt377 nexttoward -9.99999999999999999999999999999999E-6144 Infinity -> -9.99999999999999999999999999999998E-6144 Underflow Subnormal Inexact Rounded +dqnextt378 nexttoward -9.99999999999999999999999999999998E-6144 Infinity -> -9.99999999999999999999999999999997E-6144 Underflow Subnormal Inexact Rounded +dqnextt379 nexttoward -9.99999999999999999999999999999997E-6144 Infinity -> -9.99999999999999999999999999999996E-6144 Underflow Subnormal Inexact Rounded +dqnextt380 nexttoward -0E-6176 Infinity -> 1E-6176 Underflow Subnormal Inexact Rounded +dqnextt381 nexttoward -1E-6176 Infinity -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqnextt382 nexttoward -2E-6176 Infinity -> -1E-6176 Underflow Subnormal Inexact Rounded + +dqnextt383 nexttoward 0E-6176 Infinity -> 1E-6176 Underflow Subnormal Inexact Rounded +dqnextt384 nexttoward 1E-6176 Infinity -> 2E-6176 Underflow Subnormal Inexact Rounded +dqnextt385 nexttoward 2E-6176 Infinity -> 3E-6176 Underflow Subnormal Inexact Rounded +dqnextt386 nexttoward 10E-6176 Infinity -> 1.1E-6175 Underflow Subnormal Inexact Rounded +dqnextt387 nexttoward 100E-6176 Infinity -> 1.01E-6174 Underflow Subnormal Inexact Rounded +dqnextt388 nexttoward 100000E-6176 Infinity -> 1.00001E-6171 Underflow Subnormal Inexact Rounded +dqnextt389 nexttoward 1.00000000000000000000000000000E-6143 Infinity -> 1.000000000000000000000000000000001E-6143 +dqnextt390 nexttoward 1.000000000000000000000000000000000E-6143 Infinity -> 1.000000000000000000000000000000001E-6143 +dqnextt391 nexttoward 1E-6143 Infinity -> 1.000000000000000000000000000000001E-6143 +dqnextt392 nexttoward 9.999999999999999999999999999999997E+6144 Infinity -> 9.999999999999999999999999999999998E+6144 +dqnextt393 nexttoward 9.999999999999999999999999999999998E+6144 Infinity -> 9.999999999999999999999999999999999E+6144 +dqnextt394 nexttoward 9.999999999999999999999999999999999E+6144 Infinity -> Infinity Overflow Inexact Rounded + +------- lhs>rhs +dqnextt401 nexttoward 0.9999999999999999999999999999999995 -Infinity -> 0.9999999999999999999999999999999994 +dqnextt402 nexttoward 0.9999999999999999999999999999999996 -Infinity -> 0.9999999999999999999999999999999995 +dqnextt403 nexttoward 0.9999999999999999999999999999999997 -Infinity -> 0.9999999999999999999999999999999996 +dqnextt404 nexttoward 0.9999999999999999999999999999999998 -Infinity -> 0.9999999999999999999999999999999997 +dqnextt405 nexttoward 0.9999999999999999999999999999999999 -Infinity -> 0.9999999999999999999999999999999998 +dqnextt406 nexttoward 1.000000000000000000000000000000000 -Infinity -> 0.9999999999999999999999999999999999 +dqnextt407 nexttoward 1.0 -Infinity -> 0.9999999999999999999999999999999999 +dqnextt408 nexttoward 1 -Infinity -> 0.9999999999999999999999999999999999 +dqnextt409 nexttoward 1.000000000000000000000000000000001 -Infinity -> 1.000000000000000000000000000000000 +dqnextt410 nexttoward 1.000000000000000000000000000000002 -Infinity -> 1.000000000000000000000000000000001 +dqnextt411 nexttoward 1.000000000000000000000000000000003 -Infinity -> 1.000000000000000000000000000000002 +dqnextt412 nexttoward 1.000000000000000000000000000000004 -Infinity -> 1.000000000000000000000000000000003 +dqnextt413 nexttoward 1.000000000000000000000000000000005 -Infinity -> 1.000000000000000000000000000000004 +dqnextt414 nexttoward 1.000000000000000000000000000000006 -Infinity -> 1.000000000000000000000000000000005 +dqnextt415 nexttoward 1.000000000000000000000000000000007 -Infinity -> 1.000000000000000000000000000000006 +dqnextt416 nexttoward 1.000000000000000000000000000000008 -Infinity -> 1.000000000000000000000000000000007 +dqnextt417 nexttoward 1.000000000000000000000000000000009 -Infinity -> 1.000000000000000000000000000000008 +dqnextt418 nexttoward 1.000000000000000000000000000000010 -Infinity -> 1.000000000000000000000000000000009 +dqnextt419 nexttoward 1.000000000000000000000000000000011 -Infinity -> 1.000000000000000000000000000000010 +dqnextt420 nexttoward 1.000000000000000000000000000000012 -Infinity -> 1.000000000000000000000000000000011 + +dqnextt421 nexttoward -0.9999999999999999999999999999999995 -Infinity -> -0.9999999999999999999999999999999996 +dqnextt422 nexttoward -0.9999999999999999999999999999999996 -Infinity -> -0.9999999999999999999999999999999997 +dqnextt423 nexttoward -0.9999999999999999999999999999999997 -Infinity -> -0.9999999999999999999999999999999998 +dqnextt424 nexttoward -0.9999999999999999999999999999999998 -Infinity -> -0.9999999999999999999999999999999999 +dqnextt425 nexttoward -0.9999999999999999999999999999999999 -Infinity -> -1.000000000000000000000000000000000 +dqnextt426 nexttoward -1.000000000000000000000000000000000 -Infinity -> -1.000000000000000000000000000000001 +dqnextt427 nexttoward -1.0 -Infinity -> -1.000000000000000000000000000000001 +dqnextt428 nexttoward -1 -Infinity -> -1.000000000000000000000000000000001 +dqnextt429 nexttoward -1.000000000000000000000000000000001 -Infinity -> -1.000000000000000000000000000000002 +dqnextt430 nexttoward -1.000000000000000000000000000000002 -Infinity -> -1.000000000000000000000000000000003 +dqnextt431 nexttoward -1.000000000000000000000000000000003 -Infinity -> -1.000000000000000000000000000000004 +dqnextt432 nexttoward -1.000000000000000000000000000000004 -Infinity -> -1.000000000000000000000000000000005 +dqnextt433 nexttoward -1.000000000000000000000000000000005 -Infinity -> -1.000000000000000000000000000000006 +dqnextt434 nexttoward -1.000000000000000000000000000000006 -Infinity -> -1.000000000000000000000000000000007 +dqnextt435 nexttoward -1.000000000000000000000000000000007 -Infinity -> -1.000000000000000000000000000000008 +dqnextt436 nexttoward -1.000000000000000000000000000000008 -Infinity -> -1.000000000000000000000000000000009 +dqnextt437 nexttoward -1.000000000000000000000000000000009 -Infinity -> -1.000000000000000000000000000000010 +dqnextt438 nexttoward -1.000000000000000000000000000000010 -Infinity -> -1.000000000000000000000000000000011 +dqnextt439 nexttoward -1.000000000000000000000000000000011 -Infinity -> -1.000000000000000000000000000000012 + +-- Zeros +dqnextt500 nexttoward -0 -Infinity -> -1E-6176 Underflow Subnormal Inexact Rounded +dqnextt501 nexttoward 0 -Infinity -> -1E-6176 Underflow Subnormal Inexact Rounded +dqnextt502 nexttoward 0.00 -Infinity -> -1E-6176 Underflow Subnormal Inexact Rounded +dqnextt503 nexttoward -0.00 -Infinity -> -1E-6176 Underflow Subnormal Inexact Rounded +dqnextt504 nexttoward 0E-300 -Infinity -> -1E-6176 Underflow Subnormal Inexact Rounded +dqnextt505 nexttoward 0E+300 -Infinity -> -1E-6176 Underflow Subnormal Inexact Rounded +dqnextt506 nexttoward 0E+30000 -Infinity -> -1E-6176 Underflow Subnormal Inexact Rounded +dqnextt507 nexttoward -0E+30000 -Infinity -> -1E-6176 Underflow Subnormal Inexact Rounded + +-- specials +dqnextt550 nexttoward Inf -Infinity -> 9.999999999999999999999999999999999E+6144 +dqnextt551 nexttoward -Inf -Infinity -> -Infinity +dqnextt552 nexttoward NaN -Infinity -> NaN +dqnextt553 nexttoward sNaN -Infinity -> NaN Invalid_operation +dqnextt554 nexttoward NaN77 -Infinity -> NaN77 +dqnextt555 nexttoward sNaN88 -Infinity -> NaN88 Invalid_operation +dqnextt556 nexttoward -NaN -Infinity -> -NaN +dqnextt557 nexttoward -sNaN -Infinity -> -NaN Invalid_operation +dqnextt558 nexttoward -NaN77 -Infinity -> -NaN77 +dqnextt559 nexttoward -sNaN88 -Infinity -> -NaN88 Invalid_operation + +-- Nmax, Nmin, Ntiny, subnormals +dqnextt670 nexttoward 9.999999999999999999999999999999999E+6144 -Infinity -> 9.999999999999999999999999999999998E+6144 +dqnextt671 nexttoward 9.999999999999999999999999999999998E+6144 -Infinity -> 9.999999999999999999999999999999997E+6144 +dqnextt672 nexttoward 1E-6143 -Infinity -> 9.99999999999999999999999999999999E-6144 Underflow Subnormal Inexact Rounded +dqnextt673 nexttoward 1.000000000000000000000000000000000E-6143 -Infinity -> 9.99999999999999999999999999999999E-6144 Underflow Subnormal Inexact Rounded +dqnextt674 nexttoward 9E-6176 -Infinity -> 8E-6176 Underflow Subnormal Inexact Rounded +dqnextt675 nexttoward 9.9E-6175 -Infinity -> 9.8E-6175 Underflow Subnormal Inexact Rounded +dqnextt676 nexttoward 9.99999999999999999999999999999E-6147 -Infinity -> 9.99999999999999999999999999998E-6147 Underflow Subnormal Inexact Rounded +dqnextt677 nexttoward 9.99999999999999999999999999999999E-6144 -Infinity -> 9.99999999999999999999999999999998E-6144 Underflow Subnormal Inexact Rounded +dqnextt678 nexttoward 9.99999999999999999999999999999998E-6144 -Infinity -> 9.99999999999999999999999999999997E-6144 Underflow Subnormal Inexact Rounded +dqnextt679 nexttoward 9.99999999999999999999999999999997E-6144 -Infinity -> 9.99999999999999999999999999999996E-6144 Underflow Subnormal Inexact Rounded +dqnextt680 nexttoward 0E-6176 -Infinity -> -1E-6176 Underflow Subnormal Inexact Rounded +dqnextt681 nexttoward 1E-6176 -Infinity -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqnextt682 nexttoward 2E-6176 -Infinity -> 1E-6176 Underflow Subnormal Inexact Rounded + +dqnextt683 nexttoward -0E-6176 -Infinity -> -1E-6176 Underflow Subnormal Inexact Rounded +dqnextt684 nexttoward -1E-6176 -Infinity -> -2E-6176 Underflow Subnormal Inexact Rounded +dqnextt685 nexttoward -2E-6176 -Infinity -> -3E-6176 Underflow Subnormal Inexact Rounded +dqnextt686 nexttoward -10E-6176 -Infinity -> -1.1E-6175 Underflow Subnormal Inexact Rounded +dqnextt687 nexttoward -100E-6176 -Infinity -> -1.01E-6174 Underflow Subnormal Inexact Rounded +dqnextt688 nexttoward -100000E-6176 -Infinity -> -1.00001E-6171 Underflow Subnormal Inexact Rounded +dqnextt689 nexttoward -1.00000000000000000000000000000E-6143 -Infinity -> -1.000000000000000000000000000000001E-6143 +dqnextt690 nexttoward -1.000000000000000000000000000000000E-6143 -Infinity -> -1.000000000000000000000000000000001E-6143 +dqnextt691 nexttoward -1E-6143 -Infinity -> -1.000000000000000000000000000000001E-6143 +dqnextt692 nexttoward -9.999999999999999999999999999999998E+6144 -Infinity -> -9.999999999999999999999999999999999E+6144 +dqnextt693 nexttoward -9.999999999999999999999999999999999E+6144 -Infinity -> -Infinity Overflow Inexact Rounded + +------- Specials +dqnextt780 nexttoward -Inf -Inf -> -Infinity +dqnextt781 nexttoward -Inf -1000 -> -9.999999999999999999999999999999999E+6144 +dqnextt782 nexttoward -Inf -1 -> -9.999999999999999999999999999999999E+6144 +dqnextt783 nexttoward -Inf -0 -> -9.999999999999999999999999999999999E+6144 +dqnextt784 nexttoward -Inf 0 -> -9.999999999999999999999999999999999E+6144 +dqnextt785 nexttoward -Inf 1 -> -9.999999999999999999999999999999999E+6144 +dqnextt786 nexttoward -Inf 1000 -> -9.999999999999999999999999999999999E+6144 +dqnextt787 nexttoward -1000 -Inf -> -1000.000000000000000000000000000001 +dqnextt788 nexttoward -Inf -Inf -> -Infinity +dqnextt789 nexttoward -1 -Inf -> -1.000000000000000000000000000000001 +dqnextt790 nexttoward -0 -Inf -> -1E-6176 Underflow Subnormal Inexact Rounded +dqnextt791 nexttoward 0 -Inf -> -1E-6176 Underflow Subnormal Inexact Rounded +dqnextt792 nexttoward 1 -Inf -> 0.9999999999999999999999999999999999 +dqnextt793 nexttoward 1000 -Inf -> 999.9999999999999999999999999999999 +dqnextt794 nexttoward Inf -Inf -> 9.999999999999999999999999999999999E+6144 + +dqnextt800 nexttoward Inf -Inf -> 9.999999999999999999999999999999999E+6144 +dqnextt801 nexttoward Inf -1000 -> 9.999999999999999999999999999999999E+6144 +dqnextt802 nexttoward Inf -1 -> 9.999999999999999999999999999999999E+6144 +dqnextt803 nexttoward Inf -0 -> 9.999999999999999999999999999999999E+6144 +dqnextt804 nexttoward Inf 0 -> 9.999999999999999999999999999999999E+6144 +dqnextt805 nexttoward Inf 1 -> 9.999999999999999999999999999999999E+6144 +dqnextt806 nexttoward Inf 1000 -> 9.999999999999999999999999999999999E+6144 +dqnextt807 nexttoward Inf Inf -> Infinity +dqnextt808 nexttoward -1000 Inf -> -999.9999999999999999999999999999999 +dqnextt809 nexttoward -Inf Inf -> -9.999999999999999999999999999999999E+6144 +dqnextt810 nexttoward -1 Inf -> -0.9999999999999999999999999999999999 +dqnextt811 nexttoward -0 Inf -> 1E-6176 Underflow Subnormal Inexact Rounded +dqnextt812 nexttoward 0 Inf -> 1E-6176 Underflow Subnormal Inexact Rounded +dqnextt813 nexttoward 1 Inf -> 1.000000000000000000000000000000001 +dqnextt814 nexttoward 1000 Inf -> 1000.000000000000000000000000000001 +dqnextt815 nexttoward Inf Inf -> Infinity + +dqnextt821 nexttoward NaN -Inf -> NaN +dqnextt822 nexttoward NaN -1000 -> NaN +dqnextt823 nexttoward NaN -1 -> NaN +dqnextt824 nexttoward NaN -0 -> NaN +dqnextt825 nexttoward NaN 0 -> NaN +dqnextt826 nexttoward NaN 1 -> NaN +dqnextt827 nexttoward NaN 1000 -> NaN +dqnextt828 nexttoward NaN Inf -> NaN +dqnextt829 nexttoward NaN NaN -> NaN +dqnextt830 nexttoward -Inf NaN -> NaN +dqnextt831 nexttoward -1000 NaN -> NaN +dqnextt832 nexttoward -1 NaN -> NaN +dqnextt833 nexttoward -0 NaN -> NaN +dqnextt834 nexttoward 0 NaN -> NaN +dqnextt835 nexttoward 1 NaN -> NaN +dqnextt836 nexttoward 1000 NaN -> NaN +dqnextt837 nexttoward Inf NaN -> NaN + +dqnextt841 nexttoward sNaN -Inf -> NaN Invalid_operation +dqnextt842 nexttoward sNaN -1000 -> NaN Invalid_operation +dqnextt843 nexttoward sNaN -1 -> NaN Invalid_operation +dqnextt844 nexttoward sNaN -0 -> NaN Invalid_operation +dqnextt845 nexttoward sNaN 0 -> NaN Invalid_operation +dqnextt846 nexttoward sNaN 1 -> NaN Invalid_operation +dqnextt847 nexttoward sNaN 1000 -> NaN Invalid_operation +dqnextt848 nexttoward sNaN NaN -> NaN Invalid_operation +dqnextt849 nexttoward sNaN sNaN -> NaN Invalid_operation +dqnextt850 nexttoward NaN sNaN -> NaN Invalid_operation +dqnextt851 nexttoward -Inf sNaN -> NaN Invalid_operation +dqnextt852 nexttoward -1000 sNaN -> NaN Invalid_operation +dqnextt853 nexttoward -1 sNaN -> NaN Invalid_operation +dqnextt854 nexttoward -0 sNaN -> NaN Invalid_operation +dqnextt855 nexttoward 0 sNaN -> NaN Invalid_operation +dqnextt856 nexttoward 1 sNaN -> NaN Invalid_operation +dqnextt857 nexttoward 1000 sNaN -> NaN Invalid_operation +dqnextt858 nexttoward Inf sNaN -> NaN Invalid_operation +dqnextt859 nexttoward NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +dqnextt861 nexttoward NaN1 -Inf -> NaN1 +dqnextt862 nexttoward +NaN2 -1000 -> NaN2 +dqnextt863 nexttoward NaN3 1000 -> NaN3 +dqnextt864 nexttoward NaN4 Inf -> NaN4 +dqnextt865 nexttoward NaN5 +NaN6 -> NaN5 +dqnextt866 nexttoward -Inf NaN7 -> NaN7 +dqnextt867 nexttoward -1000 NaN8 -> NaN8 +dqnextt868 nexttoward 1000 NaN9 -> NaN9 +dqnextt869 nexttoward Inf +NaN10 -> NaN10 +dqnextt871 nexttoward sNaN11 -Inf -> NaN11 Invalid_operation +dqnextt872 nexttoward sNaN12 -1000 -> NaN12 Invalid_operation +dqnextt873 nexttoward sNaN13 1000 -> NaN13 Invalid_operation +dqnextt874 nexttoward sNaN14 NaN17 -> NaN14 Invalid_operation +dqnextt875 nexttoward sNaN15 sNaN18 -> NaN15 Invalid_operation +dqnextt876 nexttoward NaN16 sNaN19 -> NaN19 Invalid_operation +dqnextt877 nexttoward -Inf +sNaN20 -> NaN20 Invalid_operation +dqnextt878 nexttoward -1000 sNaN21 -> NaN21 Invalid_operation +dqnextt879 nexttoward 1000 sNaN22 -> NaN22 Invalid_operation +dqnextt880 nexttoward Inf sNaN23 -> NaN23 Invalid_operation +dqnextt881 nexttoward +NaN25 +sNaN24 -> NaN24 Invalid_operation +dqnextt882 nexttoward -NaN26 NaN28 -> -NaN26 +dqnextt883 nexttoward -sNaN27 sNaN29 -> -NaN27 Invalid_operation +dqnextt884 nexttoward 1000 -NaN30 -> -NaN30 +dqnextt885 nexttoward 1000 -sNaN31 -> -NaN31 Invalid_operation + +-- Null tests +dqnextt900 nexttoward 1 # -> NaN Invalid_operation +dqnextt901 nexttoward # 1 -> NaN Invalid_operation + diff --git a/Lib/test/decimaltestdata/dqOr.decTest b/Lib/test/decimaltestdata/dqOr.decTest index daa3c86094..1fd34b2b35 100644 --- a/Lib/test/decimaltestdata/dqOr.decTest +++ b/Lib/test/decimaltestdata/dqOr.decTest @@ -1,401 +1,401 @@ -------------------------------------------------------------------------
--- dqOr.decTest -- digitwise logical OR for decQuads --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
--- Sanity check (truth table)
-dqor001 or 0 0 -> 0
-dqor002 or 0 1 -> 1
-dqor003 or 1 0 -> 1
-dqor004 or 1 1 -> 1
-dqor005 or 1100 1010 -> 1110
--- and at msd and msd-1
-dqor006 or 0000000000000000000000000000000000 0000000000000000000000000000000000 -> 0
-dqor007 or 0000000000000000000000000000000000 1000000000000000000000000000000000 -> 1000000000000000000000000000000000
-dqor008 or 1000000000000000000000000000000000 0000000000000000000000000000000000 -> 1000000000000000000000000000000000
-dqor009 or 1000000000000000000000000000000000 1000000000000000000000000000000000 -> 1000000000000000000000000000000000
-dqor010 or 0000000000000000000000000000000000 0000000000000000000000000000000000 -> 0
-dqor011 or 0000000000000000000000000000000000 0100000000000000000000000000000000 -> 100000000000000000000000000000000
-dqor012 or 0100000000000000000000000000000000 0000000000000000000000000000000000 -> 100000000000000000000000000000000
-dqor013 or 0100000000000000000000000000000000 0100000000000000000000000000000000 -> 100000000000000000000000000000000
-
--- Various lengths
-dqor601 or 0111111111111111111111111111111111 1111111111111111111111111111111110 -> 1111111111111111111111111111111111
-dqor602 or 1011111111111111111111111111111111 1111111111111111111111111111111101 -> 1111111111111111111111111111111111
-dqor603 or 1101111111111111111111111111111111 1111111111111111111111111111111011 -> 1111111111111111111111111111111111
-dqor604 or 1110111111111111111111111111111111 1111111111111111111111111111110111 -> 1111111111111111111111111111111111
-dqor605 or 1111011111111111111111111111111111 1111111111111111111111111111101111 -> 1111111111111111111111111111111111
-dqor606 or 1111101111111111111111111111111111 1111111111111111111111111111011111 -> 1111111111111111111111111111111111
-dqor607 or 1111110111111111111111111111111111 1111111111111111111111111110111111 -> 1111111111111111111111111111111111
-dqor608 or 1111111011111111111111111111111111 1111111111111111111111111101111111 -> 1111111111111111111111111111111111
-dqor609 or 1111111101111111111111111111111111 1111111111111111111111111011111111 -> 1111111111111111111111111111111111
-dqor610 or 1111111110111111111111111111111111 1111111111111111111111110111111111 -> 1111111111111111111111111111111111
-dqor611 or 1111111111011111111111111111111111 1111111111111111111111101111111111 -> 1111111111111111111111111111111111
-dqor612 or 1111111111101111111111111111111111 1111111111111111111111011111111111 -> 1111111111111111111111111111111111
-dqor613 or 1111111111110111111111111111111111 1111111111111111111110111111111111 -> 1111111111111111111111111111111111
-dqor614 or 1111111111111011111111111111111111 1111111111111111111101111111111111 -> 1111111111111111111111111111111111
-dqor615 or 1111111111111101111111111111111111 1111111111111111111011111111111111 -> 1111111111111111111111111111111111
-dqor616 or 1111111111111110111111111111111111 1111111111111111110111111111111111 -> 1111111111111111111111111111111111
-dqor617 or 1111111111111111011111111111111111 1111111111111111101111111111111111 -> 1111111111111111111111111111111111
-dqor618 or 1111111111111111101111111111111111 1111111111111111011111111111111111 -> 1111111111111111111111111111111111
-dqor619 or 1111111111111111110111111111111111 1111111111111110111111111111111111 -> 1111111111111111111111111111111111
-dqor620 or 1111111111111111111011111111111111 1111111111111101111111111111111111 -> 1111111111111111111111111111111111
-dqor621 or 1111111111111111111101111111111111 1111111111111011111111111111111111 -> 1111111111111111111111111111111111
-dqor622 or 1111111111111111111110111111111111 1111111111110111111111111111111111 -> 1111111111111111111111111111111111
-dqor623 or 1111111111111111111111011111111111 1111111111101111111111111111111111 -> 1111111111111111111111111111111111
-dqor624 or 1111111111111111111111101111111111 1111111111011111111111111111111111 -> 1111111111111111111111111111111111
-dqor625 or 1111111111111111111111110111111111 1111111110111111111111111111111111 -> 1111111111111111111111111111111111
-dqor626 or 1111111111111111111111111011111111 1111111101111111111111111111111111 -> 1111111111111111111111111111111111
-dqor627 or 1111111111111111111111111101111111 1111111011111111111111111111111111 -> 1111111111111111111111111111111111
-dqor628 or 1111111111111111111111111110111111 1111110111111111111111111111111111 -> 1111111111111111111111111111111111
-dqor629 or 1111111111111111111111111111011111 1111101111111111111111111111111111 -> 1111111111111111111111111111111111
-dqor630 or 1111111111111111111111111111101111 1111011111111111111111111111111111 -> 1111111111111111111111111111111111
-dqor631 or 1111111111111111111111111111110111 1110111111111111111111111111111111 -> 1111111111111111111111111111111111
-dqor632 or 1111111111111111111111111111111011 1101111111111111111111111111111111 -> 1111111111111111111111111111111111
-dqor633 or 1111111111111111111111111111111101 1011111111111111111111111111111111 -> 1111111111111111111111111111111111
-dqor634 or 1111111111111111111111111111111110 0111111111111111111111111111111111 -> 1111111111111111111111111111111111
-
-dqor641 or 1111111111111111111111111111111110 0111111111111111111111111111111111 -> 1111111111111111111111111111111111
-dqor642 or 1111111111111111111111111111111101 1011111111111111111111111111111111 -> 1111111111111111111111111111111111
-dqor643 or 1111111111111111111111111111111011 1101111111111111111111111111111111 -> 1111111111111111111111111111111111
-dqor644 or 1111111111111111111111111111110111 1110111111111111111111111111111111 -> 1111111111111111111111111111111111
-dqor645 or 1111111111111111111111111111101111 1111011111111111111111111111111111 -> 1111111111111111111111111111111111
-dqor646 or 1111111111111111111111111111011111 1111101111111111111111111111111111 -> 1111111111111111111111111111111111
-dqor647 or 1111111111111111111111111110111111 1111110111111111111111111111111111 -> 1111111111111111111111111111111111
-dqor648 or 1111111111111111111111111101111111 1111111011111111111111111111111111 -> 1111111111111111111111111111111111
-dqor649 or 1111111111111111111111111011111111 1111111101111111111111111111111111 -> 1111111111111111111111111111111111
-dqor650 or 1111111111111111111111110111111111 1111111110111111111111111111111111 -> 1111111111111111111111111111111111
-dqor651 or 1111111111111111111111101111111111 1111111111011111111111111111111111 -> 1111111111111111111111111111111111
-dqor652 or 1111111111111111111111011111111111 1111111111101111111111111111111111 -> 1111111111111111111111111111111111
-dqor653 or 1111111111111111111110111111111111 1111111111110111111111111111111111 -> 1111111111111111111111111111111111
-dqor654 or 1111111111111111111101111111111111 1111111111111011111111111111111111 -> 1111111111111111111111111111111111
-dqor655 or 1111111111111111111011111111111111 1111111111111101111111111111111111 -> 1111111111111111111111111111111111
-dqor656 or 1111111111111111110111111111111111 1111111111111110111111111111111111 -> 1111111111111111111111111111111111
-dqor657 or 1010101010101010101010101010101010 1010101010101010001010101010101010 -> 1010101010101010101010101010101010
-dqor658 or 1111111111111111011111111111111111 1111111111111111101111111111111111 -> 1111111111111111111111111111111111
-dqor659 or 1111111111111110111111111111111111 1111111111111111110111111111111111 -> 1111111111111111111111111111111111
-dqor660 or 1111111111111101111111111111111111 1111111111111111111011111111111111 -> 1111111111111111111111111111111111
-dqor661 or 1111111111111011111111111111111111 1111111111111111111101111111111111 -> 1111111111111111111111111111111111
-dqor662 or 1111111111110111111111111111111111 1111111111111111111110111111111111 -> 1111111111111111111111111111111111
-dqor663 or 1111111111101111111111111111111111 1111111111111111111111011111111111 -> 1111111111111111111111111111111111
-dqor664 or 1111111111011111111111111111111111 1111111111111111111111101111111111 -> 1111111111111111111111111111111111
-dqor665 or 1111111110111111111111111111111111 1111111111111111111111110111111111 -> 1111111111111111111111111111111111
-dqor666 or 0101010101010101010101010101010101 0101010101010101010101010001010101 -> 101010101010101010101010101010101
-dqor667 or 1111111011111111111111111111111111 1111111111111111111111111101111111 -> 1111111111111111111111111111111111
-dqor668 or 1111110111111111111111111111111111 1111111111111111111111111110111111 -> 1111111111111111111111111111111111
-dqor669 or 1111101111111111111111111111111111 1111111111111111111111111111011111 -> 1111111111111111111111111111111111
-dqor670 or 1111011111111111111111111111111111 1111111111111111111111111111101111 -> 1111111111111111111111111111111111
-dqor671 or 1110111111111111111111111111111111 1111111111111111111111111111110111 -> 1111111111111111111111111111111111
-dqor672 or 1101111111111111111111111111111111 1111111111111111111111111111111011 -> 1111111111111111111111111111111111
-dqor673 or 1011111111111111111111111111111111 1111111111111111111111111111111101 -> 1111111111111111111111111111111111
-dqor674 or 0111111111111111111111111111111111 1111111111111111111111111111111110 -> 1111111111111111111111111111111111
-dqor675 or 0111111111111111111111111111111110 1111111111111111111111111111111110 -> 1111111111111111111111111111111110
-dqor676 or 1111111111111111111111111111111110 1111111111111111111111111111111110 -> 1111111111111111111111111111111110
-
-dqor681 or 0111111111111111111111111111111111 0111111111011111111111111111111110 -> 111111111111111111111111111111111
-dqor682 or 1011111111111111111111111111111111 1011111110101111111111111111111101 -> 1011111111111111111111111111111111
-dqor683 or 1101111111111111111111111111111111 1101111101110111111111111111111011 -> 1101111111111111111111111111111111
-dqor684 or 1110111111111111111111111111111111 1110111011111011111111111111110111 -> 1110111111111111111111111111111111
-dqor685 or 1111011111111111111111111111111111 1111010111111101111111111111101111 -> 1111011111111111111111111111111111
-dqor686 or 1111101111111111111111111111111111 1111101111111110111111111111011111 -> 1111101111111111111111111111111111
-dqor687 or 1111110111111111111111111111111111 1111010111111111011111111110111111 -> 1111110111111111111111111111111111
-dqor688 or 1111111011111111111111111111111111 1110111011111111101111111101111111 -> 1111111011111111111111111111111111
-dqor689 or 1111111101111111111111111111111111 1101111101111111110111111011111111 -> 1111111101111111111111111111111111
-dqor690 or 1111111110111111111111111111111111 1011111110111111111011110111111110 -> 1111111110111111111111111111111111
-dqor691 or 1111111111011111111111111111111111 0111111111011111111101101111111101 -> 1111111111011111111111111111111111
-dqor692 or 1111111111101111111111111111111111 1111111111101111111110011111111011 -> 1111111111101111111111111111111111
-dqor693 or 1111111111110111111111111111111111 1111111111110111111110011111110111 -> 1111111111110111111111111111111111
-dqor694 or 1111111111111011111111111111111111 1111111111111011111101101111101111 -> 1111111111111011111111111111111111
-dqor695 or 1111111111111101111111111111111111 1111111111111101111011110111011111 -> 1111111111111101111111111111111111
-dqor696 or 1111111111111110111111111111111111 1111111111111110110111111010111111 -> 1111111111111110111111111111111111
-dqor697 or 1111111111111111011111111111111111 1111111111111111001111111101111111 -> 1111111111111111011111111111111111
-dqor698 or 1111111111111111101111111111111111 1111111111111111001111111010111111 -> 1111111111111111101111111111111111
-dqor699 or 1111111111111111110111111111111111 1111111111111110110111110111011111 -> 1111111111111111110111111111111111
-dqor700 or 1111111111111111111011111111111111 1111111111111101111011101111101111 -> 1111111111111111111011111111111111
-dqor701 or 1111111111111111111101111111111111 1111111111111011111101011111110111 -> 1111111111111111111101111111111111
-dqor702 or 1111111111111111111110111111111111 1111111111110111111110111111111011 -> 1111111111111111111110111111111111
-dqor703 or 1111111111111111111111011111111111 1111111111101111111101011111111101 -> 1111111111111111111111011111111111
-dqor704 or 1111111111111111111111101111111111 1111111111011111111011101111111110 -> 1111111111111111111111101111111111
-dqor705 or 1111111111111111111111110111111111 0111111110111111110111110111111111 -> 1111111111111111111111110111111111
-dqor706 or 1111111111111111111111111011111111 1011111101111111101111111011111111 -> 1111111111111111111111111011111111
-dqor707 or 1111111111111111111111111101111111 1101111011111111011111111101111111 -> 1111111111111111111111111101111111
-dqor708 or 1111111111111111111111111110111111 1110110111111110111111111110111111 -> 1111111111111111111111111110111111
-dqor709 or 1111111111111111111111111111011111 1111001111111101111111111111011111 -> 1111111111111111111111111111011111
-dqor710 or 1111111111111111111111111111101111 1111001111111011111111111111101111 -> 1111111111111111111111111111101111
-dqor711 or 1111111111111111111111111111110111 1110110111110111111111111111110111 -> 1111111111111111111111111111110111
-dqor712 or 1111111111111111111111111111111011 1101111011101111111111111111111011 -> 1111111111111111111111111111111011
-dqor713 or 1111111111111111111111111111111101 1011111101011111111111111111111101 -> 1111111111111111111111111111111101
-dqor714 or 1111111111111111111111111111111110 0111111110111111111111111111111110 -> 1111111111111111111111111111111110
-
-
-
--- 1234567890123456 1234567890123456 1234567890123456
-dqor020 or 1111111111111111 1111111111111111 -> 1111111111111111
-dqor021 or 111111111111111 111111111111111 -> 111111111111111
-dqor022 or 11111111111111 11111111111111 -> 11111111111111
-dqor023 or 1111111111111 1111111111111 -> 1111111111111
-dqor024 or 111111111111 111111111111 -> 111111111111
-dqor025 or 11111111111 11111111111 -> 11111111111
-dqor026 or 1111111111 1111111111 -> 1111111111
-dqor027 or 111111111 111111111 -> 111111111
-dqor028 or 11111111 11111111 -> 11111111
-dqor029 or 1111111 1111111 -> 1111111
-dqor030 or 111111 111111 -> 111111
-dqor031 or 11111 11111 -> 11111
-dqor032 or 1111 1111 -> 1111
-dqor033 or 111 111 -> 111
-dqor034 or 11 11 -> 11
-dqor035 or 1 1 -> 1
-dqor036 or 0 0 -> 0
-
-dqor042 or 111111110000000 1111111110000000 -> 1111111110000000
-dqor043 or 11111110000000 1000000100000000 -> 1011111110000000
-dqor044 or 1111110000000 1000001000000000 -> 1001111110000000
-dqor045 or 111110000000 1000010000000000 -> 1000111110000000
-dqor046 or 11110000000 1000100000000000 -> 1000111110000000
-dqor047 or 1110000000 1001000000000000 -> 1001001110000000
-dqor048 or 110000000 1010000000000000 -> 1010000110000000
-dqor049 or 10000000 1100000000000000 -> 1100000010000000
-
-dqor090 or 011111111 111101111 -> 111111111
-dqor091 or 101111111 111101111 -> 111111111
-dqor092 or 110111111 111101111 -> 111111111
-dqor093 or 111011111 111101111 -> 111111111
-dqor094 or 111101111 111101111 -> 111101111
-dqor095 or 111110111 111101111 -> 111111111
-dqor096 or 111111011 111101111 -> 111111111
-dqor097 or 111111101 111101111 -> 111111111
-dqor098 or 111111110 111101111 -> 111111111
-
-dqor100 or 111101111 011111111 -> 111111111
-dqor101 or 111101111 101111111 -> 111111111
-dqor102 or 111101111 110111111 -> 111111111
-dqor103 or 111101111 111011111 -> 111111111
-dqor104 or 111101111 111101111 -> 111101111
-dqor105 or 111101111 111110111 -> 111111111
-dqor106 or 111101111 111111011 -> 111111111
-dqor107 or 111101111 111111101 -> 111111111
-dqor108 or 111101111 111111110 -> 111111111
-
--- non-0/1 should not be accepted, nor should signs
-dqor220 or 111111112 111111111 -> NaN Invalid_operation
-dqor221 or 333333333 333333333 -> NaN Invalid_operation
-dqor222 or 555555555 555555555 -> NaN Invalid_operation
-dqor223 or 777777777 777777777 -> NaN Invalid_operation
-dqor224 or 999999999 999999999 -> NaN Invalid_operation
-dqor225 or 222222222 999999999 -> NaN Invalid_operation
-dqor226 or 444444444 999999999 -> NaN Invalid_operation
-dqor227 or 666666666 999999999 -> NaN Invalid_operation
-dqor228 or 888888888 999999999 -> NaN Invalid_operation
-dqor229 or 999999999 222222222 -> NaN Invalid_operation
-dqor230 or 999999999 444444444 -> NaN Invalid_operation
-dqor231 or 999999999 666666666 -> NaN Invalid_operation
-dqor232 or 999999999 888888888 -> NaN Invalid_operation
--- a few randoms
-dqor240 or 567468689 -934981942 -> NaN Invalid_operation
-dqor241 or 567367689 934981942 -> NaN Invalid_operation
-dqor242 or -631917772 -706014634 -> NaN Invalid_operation
-dqor243 or -756253257 138579234 -> NaN Invalid_operation
-dqor244 or 835590149 567435400 -> NaN Invalid_operation
--- test MSD
-dqor250 or 2000000111000111000111000000000000 1000000111000111000111000000000000 -> NaN Invalid_operation
-dqor251 or 7000000111000111000111000000000000 1000000111000111000111000000000000 -> NaN Invalid_operation
-dqor252 or 8000000111000111000111000000000000 1000000111000111000111000000000000 -> NaN Invalid_operation
-dqor253 or 9000000111000111000111000000000000 1000000111000111000111000000000000 -> NaN Invalid_operation
-dqor254 or 2000000111000111000111000000000000 0000000111000111000111000000000000 -> NaN Invalid_operation
-dqor255 or 7000000111000111000111000000000000 0000000111000111000111000000000000 -> NaN Invalid_operation
-dqor256 or 8000000111000111000111000000000000 0000000111000111000111000000000000 -> NaN Invalid_operation
-dqor257 or 9000000111000111000111000000000000 0000000111000111000111000000000000 -> NaN Invalid_operation
-dqor258 or 1000000111000111000111000000000000 2000000111000111000111000000000000 -> NaN Invalid_operation
-dqor259 or 1000000111000111000111000000000000 7000000111000111000111000000000000 -> NaN Invalid_operation
-dqor260 or 1000000111000111000111000000000000 8000000111000111000111000000000000 -> NaN Invalid_operation
-dqor261 or 1000000111000111000111000000000000 9000000111000111000111000000000000 -> NaN Invalid_operation
-dqor262 or 0000000111000111000111000000000000 2000000111000111000111000000000000 -> NaN Invalid_operation
-dqor263 or 0000000111000111000111000000000000 7000000111000111000111000000000000 -> NaN Invalid_operation
-dqor264 or 0000000111000111000111000000000000 8000000111000111000111000000000000 -> NaN Invalid_operation
-dqor265 or 0000000111000111000111000000000000 9000000111000111000111000000000000 -> NaN Invalid_operation
--- test MSD-1
-dqor270 or 0200000111000111000111001000000000 1000000111000111000111100000000010 -> NaN Invalid_operation
-dqor271 or 0700000111000111000111000100000000 1000000111000111000111010000000100 -> NaN Invalid_operation
-dqor272 or 0800000111000111000111000010000000 1000000111000111000111001000001000 -> NaN Invalid_operation
-dqor273 or 0900000111000111000111000001000000 1000000111000111000111000100010000 -> NaN Invalid_operation
-dqor274 or 1000000111000111000111000000100000 0200000111000111000111000010100000 -> NaN Invalid_operation
-dqor275 or 1000000111000111000111000000010000 0700000111000111000111000001000000 -> NaN Invalid_operation
-dqor276 or 1000000111000111000111000000001000 0800000111000111000111000010100000 -> NaN Invalid_operation
-dqor277 or 1000000111000111000111000000000100 0900000111000111000111000000010000 -> NaN Invalid_operation
--- test LSD
-dqor280 or 0010000111000111000111000000000002 1000000111000111000111000100000001 -> NaN Invalid_operation
-dqor281 or 0001000111000111000111000000000007 1000000111000111000111001000000011 -> NaN Invalid_operation
-dqor282 or 0000000111000111000111100000000008 1000000111000111000111010000000001 -> NaN Invalid_operation
-dqor283 or 0000000111000111000111010000000009 1000000111000111000111100000000001 -> NaN Invalid_operation
-dqor284 or 1000000111000111000111001000000000 0001000111000111000111000000000002 -> NaN Invalid_operation
-dqor285 or 1000000111000111000111000100000000 0010000111000111000111000000000007 -> NaN Invalid_operation
-dqor286 or 1000000111000111000111000010000000 0100000111000111000111000000000008 -> NaN Invalid_operation
-dqor287 or 1000000111000111000111000001000000 1000000111000111000111000000000009 -> NaN Invalid_operation
--- test Middie
-dqor288 or 0010000111000111000111000020000000 1000000111000111000111001000000000 -> NaN Invalid_operation
-dqor289 or 0001000111000111000111000070000001 1000000111000111000111000100000000 -> NaN Invalid_operation
-dqor290 or 0000000111000111000111100080000010 1000000111000111000111000010000000 -> NaN Invalid_operation
-dqor291 or 0000000111000111000111010090000100 1000000111000111000111000001000000 -> NaN Invalid_operation
-dqor292 or 1000000111000111000111001000001000 0000000111000111000111000020100000 -> NaN Invalid_operation
-dqor293 or 1000000111000111000111000100010000 0000000111000111000111000070010000 -> NaN Invalid_operation
-dqor294 or 1000000111000111000111000010100000 0000000111000111000111000080001000 -> NaN Invalid_operation
-dqor295 or 1000000111000111000111000001000000 0000000111000111000111000090000100 -> NaN Invalid_operation
--- signs
-dqor296 or -1000000111000111000111000001000000 -0000001110001110001110010000000100 -> NaN Invalid_operation
-dqor297 or -1000000111000111000111000001000000 0000001110001110001110000010000100 -> NaN Invalid_operation
-dqor298 or 1000000111000111000111000001000000 -0000001110001110001110001000000100 -> NaN Invalid_operation
-dqor299 or 1000000111000111000111000001000000 0000001110001110001110000011000100 -> 1000001111001111001111000011000100
-
--- Nmax, Nmin, Ntiny-like
-dqor331 or 2 9.99999999E+1999 -> NaN Invalid_operation
-dqor332 or 3 1E-1999 -> NaN Invalid_operation
-dqor333 or 4 1.00000000E-1999 -> NaN Invalid_operation
-dqor334 or 5 1E-1009 -> NaN Invalid_operation
-dqor335 or 6 -1E-1009 -> NaN Invalid_operation
-dqor336 or 7 -1.00000000E-1999 -> NaN Invalid_operation
-dqor337 or 8 -1E-1999 -> NaN Invalid_operation
-dqor338 or 9 -9.99999999E+1999 -> NaN Invalid_operation
-dqor341 or 9.99999999E+2999 -18 -> NaN Invalid_operation
-dqor342 or 1E-2999 01 -> NaN Invalid_operation
-dqor343 or 1.00000000E-2999 -18 -> NaN Invalid_operation
-dqor344 or 1E-1009 18 -> NaN Invalid_operation
-dqor345 or -1E-1009 -10 -> NaN Invalid_operation
-dqor346 or -1.00000000E-2999 18 -> NaN Invalid_operation
-dqor347 or -1E-2999 10 -> NaN Invalid_operation
-dqor348 or -9.99999999E+2999 -18 -> NaN Invalid_operation
-
--- A few other non-integers
-dqor361 or 1.0 1 -> NaN Invalid_operation
-dqor362 or 1E+1 1 -> NaN Invalid_operation
-dqor363 or 0.0 1 -> NaN Invalid_operation
-dqor364 or 0E+1 1 -> NaN Invalid_operation
-dqor365 or 9.9 1 -> NaN Invalid_operation
-dqor366 or 9E+1 1 -> NaN Invalid_operation
-dqor371 or 0 1.0 -> NaN Invalid_operation
-dqor372 or 0 1E+1 -> NaN Invalid_operation
-dqor373 or 0 0.0 -> NaN Invalid_operation
-dqor374 or 0 0E+1 -> NaN Invalid_operation
-dqor375 or 0 9.9 -> NaN Invalid_operation
-dqor376 or 0 9E+1 -> NaN Invalid_operation
-
--- All Specials are in error
-dqor780 or -Inf -Inf -> NaN Invalid_operation
-dqor781 or -Inf -1000 -> NaN Invalid_operation
-dqor782 or -Inf -1 -> NaN Invalid_operation
-dqor783 or -Inf -0 -> NaN Invalid_operation
-dqor784 or -Inf 0 -> NaN Invalid_operation
-dqor785 or -Inf 1 -> NaN Invalid_operation
-dqor786 or -Inf 1000 -> NaN Invalid_operation
-dqor787 or -1000 -Inf -> NaN Invalid_operation
-dqor788 or -Inf -Inf -> NaN Invalid_operation
-dqor789 or -1 -Inf -> NaN Invalid_operation
-dqor790 or -0 -Inf -> NaN Invalid_operation
-dqor791 or 0 -Inf -> NaN Invalid_operation
-dqor792 or 1 -Inf -> NaN Invalid_operation
-dqor793 or 1000 -Inf -> NaN Invalid_operation
-dqor794 or Inf -Inf -> NaN Invalid_operation
-
-dqor800 or Inf -Inf -> NaN Invalid_operation
-dqor801 or Inf -1000 -> NaN Invalid_operation
-dqor802 or Inf -1 -> NaN Invalid_operation
-dqor803 or Inf -0 -> NaN Invalid_operation
-dqor804 or Inf 0 -> NaN Invalid_operation
-dqor805 or Inf 1 -> NaN Invalid_operation
-dqor806 or Inf 1000 -> NaN Invalid_operation
-dqor807 or Inf Inf -> NaN Invalid_operation
-dqor808 or -1000 Inf -> NaN Invalid_operation
-dqor809 or -Inf Inf -> NaN Invalid_operation
-dqor810 or -1 Inf -> NaN Invalid_operation
-dqor811 or -0 Inf -> NaN Invalid_operation
-dqor812 or 0 Inf -> NaN Invalid_operation
-dqor813 or 1 Inf -> NaN Invalid_operation
-dqor814 or 1000 Inf -> NaN Invalid_operation
-dqor815 or Inf Inf -> NaN Invalid_operation
-
-dqor821 or NaN -Inf -> NaN Invalid_operation
-dqor822 or NaN -1000 -> NaN Invalid_operation
-dqor823 or NaN -1 -> NaN Invalid_operation
-dqor824 or NaN -0 -> NaN Invalid_operation
-dqor825 or NaN 0 -> NaN Invalid_operation
-dqor826 or NaN 1 -> NaN Invalid_operation
-dqor827 or NaN 1000 -> NaN Invalid_operation
-dqor828 or NaN Inf -> NaN Invalid_operation
-dqor829 or NaN NaN -> NaN Invalid_operation
-dqor830 or -Inf NaN -> NaN Invalid_operation
-dqor831 or -1000 NaN -> NaN Invalid_operation
-dqor832 or -1 NaN -> NaN Invalid_operation
-dqor833 or -0 NaN -> NaN Invalid_operation
-dqor834 or 0 NaN -> NaN Invalid_operation
-dqor835 or 1 NaN -> NaN Invalid_operation
-dqor836 or 1000 NaN -> NaN Invalid_operation
-dqor837 or Inf NaN -> NaN Invalid_operation
-
-dqor841 or sNaN -Inf -> NaN Invalid_operation
-dqor842 or sNaN -1000 -> NaN Invalid_operation
-dqor843 or sNaN -1 -> NaN Invalid_operation
-dqor844 or sNaN -0 -> NaN Invalid_operation
-dqor845 or sNaN 0 -> NaN Invalid_operation
-dqor846 or sNaN 1 -> NaN Invalid_operation
-dqor847 or sNaN 1000 -> NaN Invalid_operation
-dqor848 or sNaN NaN -> NaN Invalid_operation
-dqor849 or sNaN sNaN -> NaN Invalid_operation
-dqor850 or NaN sNaN -> NaN Invalid_operation
-dqor851 or -Inf sNaN -> NaN Invalid_operation
-dqor852 or -1000 sNaN -> NaN Invalid_operation
-dqor853 or -1 sNaN -> NaN Invalid_operation
-dqor854 or -0 sNaN -> NaN Invalid_operation
-dqor855 or 0 sNaN -> NaN Invalid_operation
-dqor856 or 1 sNaN -> NaN Invalid_operation
-dqor857 or 1000 sNaN -> NaN Invalid_operation
-dqor858 or Inf sNaN -> NaN Invalid_operation
-dqor859 or NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-dqor861 or NaN1 -Inf -> NaN Invalid_operation
-dqor862 or +NaN2 -1000 -> NaN Invalid_operation
-dqor863 or NaN3 1000 -> NaN Invalid_operation
-dqor864 or NaN4 Inf -> NaN Invalid_operation
-dqor865 or NaN5 +NaN6 -> NaN Invalid_operation
-dqor866 or -Inf NaN7 -> NaN Invalid_operation
-dqor867 or -1000 NaN8 -> NaN Invalid_operation
-dqor868 or 1000 NaN9 -> NaN Invalid_operation
-dqor869 or Inf +NaN10 -> NaN Invalid_operation
-dqor871 or sNaN11 -Inf -> NaN Invalid_operation
-dqor872 or sNaN12 -1000 -> NaN Invalid_operation
-dqor873 or sNaN13 1000 -> NaN Invalid_operation
-dqor874 or sNaN14 NaN17 -> NaN Invalid_operation
-dqor875 or sNaN15 sNaN18 -> NaN Invalid_operation
-dqor876 or NaN16 sNaN19 -> NaN Invalid_operation
-dqor877 or -Inf +sNaN20 -> NaN Invalid_operation
-dqor878 or -1000 sNaN21 -> NaN Invalid_operation
-dqor879 or 1000 sNaN22 -> NaN Invalid_operation
-dqor880 or Inf sNaN23 -> NaN Invalid_operation
-dqor881 or +NaN25 +sNaN24 -> NaN Invalid_operation
-dqor882 or -NaN26 NaN28 -> NaN Invalid_operation
-dqor883 or -sNaN27 sNaN29 -> NaN Invalid_operation
-dqor884 or 1000 -NaN30 -> NaN Invalid_operation
-dqor885 or 1000 -sNaN31 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- dqOr.decTest -- digitwise logical OR for decQuads -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +-- Sanity check (truth table) +dqor001 or 0 0 -> 0 +dqor002 or 0 1 -> 1 +dqor003 or 1 0 -> 1 +dqor004 or 1 1 -> 1 +dqor005 or 1100 1010 -> 1110 +-- and at msd and msd-1 +dqor006 or 0000000000000000000000000000000000 0000000000000000000000000000000000 -> 0 +dqor007 or 0000000000000000000000000000000000 1000000000000000000000000000000000 -> 1000000000000000000000000000000000 +dqor008 or 1000000000000000000000000000000000 0000000000000000000000000000000000 -> 1000000000000000000000000000000000 +dqor009 or 1000000000000000000000000000000000 1000000000000000000000000000000000 -> 1000000000000000000000000000000000 +dqor010 or 0000000000000000000000000000000000 0000000000000000000000000000000000 -> 0 +dqor011 or 0000000000000000000000000000000000 0100000000000000000000000000000000 -> 100000000000000000000000000000000 +dqor012 or 0100000000000000000000000000000000 0000000000000000000000000000000000 -> 100000000000000000000000000000000 +dqor013 or 0100000000000000000000000000000000 0100000000000000000000000000000000 -> 100000000000000000000000000000000 + +-- Various lengths +dqor601 or 0111111111111111111111111111111111 1111111111111111111111111111111110 -> 1111111111111111111111111111111111 +dqor602 or 1011111111111111111111111111111111 1111111111111111111111111111111101 -> 1111111111111111111111111111111111 +dqor603 or 1101111111111111111111111111111111 1111111111111111111111111111111011 -> 1111111111111111111111111111111111 +dqor604 or 1110111111111111111111111111111111 1111111111111111111111111111110111 -> 1111111111111111111111111111111111 +dqor605 or 1111011111111111111111111111111111 1111111111111111111111111111101111 -> 1111111111111111111111111111111111 +dqor606 or 1111101111111111111111111111111111 1111111111111111111111111111011111 -> 1111111111111111111111111111111111 +dqor607 or 1111110111111111111111111111111111 1111111111111111111111111110111111 -> 1111111111111111111111111111111111 +dqor608 or 1111111011111111111111111111111111 1111111111111111111111111101111111 -> 1111111111111111111111111111111111 +dqor609 or 1111111101111111111111111111111111 1111111111111111111111111011111111 -> 1111111111111111111111111111111111 +dqor610 or 1111111110111111111111111111111111 1111111111111111111111110111111111 -> 1111111111111111111111111111111111 +dqor611 or 1111111111011111111111111111111111 1111111111111111111111101111111111 -> 1111111111111111111111111111111111 +dqor612 or 1111111111101111111111111111111111 1111111111111111111111011111111111 -> 1111111111111111111111111111111111 +dqor613 or 1111111111110111111111111111111111 1111111111111111111110111111111111 -> 1111111111111111111111111111111111 +dqor614 or 1111111111111011111111111111111111 1111111111111111111101111111111111 -> 1111111111111111111111111111111111 +dqor615 or 1111111111111101111111111111111111 1111111111111111111011111111111111 -> 1111111111111111111111111111111111 +dqor616 or 1111111111111110111111111111111111 1111111111111111110111111111111111 -> 1111111111111111111111111111111111 +dqor617 or 1111111111111111011111111111111111 1111111111111111101111111111111111 -> 1111111111111111111111111111111111 +dqor618 or 1111111111111111101111111111111111 1111111111111111011111111111111111 -> 1111111111111111111111111111111111 +dqor619 or 1111111111111111110111111111111111 1111111111111110111111111111111111 -> 1111111111111111111111111111111111 +dqor620 or 1111111111111111111011111111111111 1111111111111101111111111111111111 -> 1111111111111111111111111111111111 +dqor621 or 1111111111111111111101111111111111 1111111111111011111111111111111111 -> 1111111111111111111111111111111111 +dqor622 or 1111111111111111111110111111111111 1111111111110111111111111111111111 -> 1111111111111111111111111111111111 +dqor623 or 1111111111111111111111011111111111 1111111111101111111111111111111111 -> 1111111111111111111111111111111111 +dqor624 or 1111111111111111111111101111111111 1111111111011111111111111111111111 -> 1111111111111111111111111111111111 +dqor625 or 1111111111111111111111110111111111 1111111110111111111111111111111111 -> 1111111111111111111111111111111111 +dqor626 or 1111111111111111111111111011111111 1111111101111111111111111111111111 -> 1111111111111111111111111111111111 +dqor627 or 1111111111111111111111111101111111 1111111011111111111111111111111111 -> 1111111111111111111111111111111111 +dqor628 or 1111111111111111111111111110111111 1111110111111111111111111111111111 -> 1111111111111111111111111111111111 +dqor629 or 1111111111111111111111111111011111 1111101111111111111111111111111111 -> 1111111111111111111111111111111111 +dqor630 or 1111111111111111111111111111101111 1111011111111111111111111111111111 -> 1111111111111111111111111111111111 +dqor631 or 1111111111111111111111111111110111 1110111111111111111111111111111111 -> 1111111111111111111111111111111111 +dqor632 or 1111111111111111111111111111111011 1101111111111111111111111111111111 -> 1111111111111111111111111111111111 +dqor633 or 1111111111111111111111111111111101 1011111111111111111111111111111111 -> 1111111111111111111111111111111111 +dqor634 or 1111111111111111111111111111111110 0111111111111111111111111111111111 -> 1111111111111111111111111111111111 + +dqor641 or 1111111111111111111111111111111110 0111111111111111111111111111111111 -> 1111111111111111111111111111111111 +dqor642 or 1111111111111111111111111111111101 1011111111111111111111111111111111 -> 1111111111111111111111111111111111 +dqor643 or 1111111111111111111111111111111011 1101111111111111111111111111111111 -> 1111111111111111111111111111111111 +dqor644 or 1111111111111111111111111111110111 1110111111111111111111111111111111 -> 1111111111111111111111111111111111 +dqor645 or 1111111111111111111111111111101111 1111011111111111111111111111111111 -> 1111111111111111111111111111111111 +dqor646 or 1111111111111111111111111111011111 1111101111111111111111111111111111 -> 1111111111111111111111111111111111 +dqor647 or 1111111111111111111111111110111111 1111110111111111111111111111111111 -> 1111111111111111111111111111111111 +dqor648 or 1111111111111111111111111101111111 1111111011111111111111111111111111 -> 1111111111111111111111111111111111 +dqor649 or 1111111111111111111111111011111111 1111111101111111111111111111111111 -> 1111111111111111111111111111111111 +dqor650 or 1111111111111111111111110111111111 1111111110111111111111111111111111 -> 1111111111111111111111111111111111 +dqor651 or 1111111111111111111111101111111111 1111111111011111111111111111111111 -> 1111111111111111111111111111111111 +dqor652 or 1111111111111111111111011111111111 1111111111101111111111111111111111 -> 1111111111111111111111111111111111 +dqor653 or 1111111111111111111110111111111111 1111111111110111111111111111111111 -> 1111111111111111111111111111111111 +dqor654 or 1111111111111111111101111111111111 1111111111111011111111111111111111 -> 1111111111111111111111111111111111 +dqor655 or 1111111111111111111011111111111111 1111111111111101111111111111111111 -> 1111111111111111111111111111111111 +dqor656 or 1111111111111111110111111111111111 1111111111111110111111111111111111 -> 1111111111111111111111111111111111 +dqor657 or 1010101010101010101010101010101010 1010101010101010001010101010101010 -> 1010101010101010101010101010101010 +dqor658 or 1111111111111111011111111111111111 1111111111111111101111111111111111 -> 1111111111111111111111111111111111 +dqor659 or 1111111111111110111111111111111111 1111111111111111110111111111111111 -> 1111111111111111111111111111111111 +dqor660 or 1111111111111101111111111111111111 1111111111111111111011111111111111 -> 1111111111111111111111111111111111 +dqor661 or 1111111111111011111111111111111111 1111111111111111111101111111111111 -> 1111111111111111111111111111111111 +dqor662 or 1111111111110111111111111111111111 1111111111111111111110111111111111 -> 1111111111111111111111111111111111 +dqor663 or 1111111111101111111111111111111111 1111111111111111111111011111111111 -> 1111111111111111111111111111111111 +dqor664 or 1111111111011111111111111111111111 1111111111111111111111101111111111 -> 1111111111111111111111111111111111 +dqor665 or 1111111110111111111111111111111111 1111111111111111111111110111111111 -> 1111111111111111111111111111111111 +dqor666 or 0101010101010101010101010101010101 0101010101010101010101010001010101 -> 101010101010101010101010101010101 +dqor667 or 1111111011111111111111111111111111 1111111111111111111111111101111111 -> 1111111111111111111111111111111111 +dqor668 or 1111110111111111111111111111111111 1111111111111111111111111110111111 -> 1111111111111111111111111111111111 +dqor669 or 1111101111111111111111111111111111 1111111111111111111111111111011111 -> 1111111111111111111111111111111111 +dqor670 or 1111011111111111111111111111111111 1111111111111111111111111111101111 -> 1111111111111111111111111111111111 +dqor671 or 1110111111111111111111111111111111 1111111111111111111111111111110111 -> 1111111111111111111111111111111111 +dqor672 or 1101111111111111111111111111111111 1111111111111111111111111111111011 -> 1111111111111111111111111111111111 +dqor673 or 1011111111111111111111111111111111 1111111111111111111111111111111101 -> 1111111111111111111111111111111111 +dqor674 or 0111111111111111111111111111111111 1111111111111111111111111111111110 -> 1111111111111111111111111111111111 +dqor675 or 0111111111111111111111111111111110 1111111111111111111111111111111110 -> 1111111111111111111111111111111110 +dqor676 or 1111111111111111111111111111111110 1111111111111111111111111111111110 -> 1111111111111111111111111111111110 + +dqor681 or 0111111111111111111111111111111111 0111111111011111111111111111111110 -> 111111111111111111111111111111111 +dqor682 or 1011111111111111111111111111111111 1011111110101111111111111111111101 -> 1011111111111111111111111111111111 +dqor683 or 1101111111111111111111111111111111 1101111101110111111111111111111011 -> 1101111111111111111111111111111111 +dqor684 or 1110111111111111111111111111111111 1110111011111011111111111111110111 -> 1110111111111111111111111111111111 +dqor685 or 1111011111111111111111111111111111 1111010111111101111111111111101111 -> 1111011111111111111111111111111111 +dqor686 or 1111101111111111111111111111111111 1111101111111110111111111111011111 -> 1111101111111111111111111111111111 +dqor687 or 1111110111111111111111111111111111 1111010111111111011111111110111111 -> 1111110111111111111111111111111111 +dqor688 or 1111111011111111111111111111111111 1110111011111111101111111101111111 -> 1111111011111111111111111111111111 +dqor689 or 1111111101111111111111111111111111 1101111101111111110111111011111111 -> 1111111101111111111111111111111111 +dqor690 or 1111111110111111111111111111111111 1011111110111111111011110111111110 -> 1111111110111111111111111111111111 +dqor691 or 1111111111011111111111111111111111 0111111111011111111101101111111101 -> 1111111111011111111111111111111111 +dqor692 or 1111111111101111111111111111111111 1111111111101111111110011111111011 -> 1111111111101111111111111111111111 +dqor693 or 1111111111110111111111111111111111 1111111111110111111110011111110111 -> 1111111111110111111111111111111111 +dqor694 or 1111111111111011111111111111111111 1111111111111011111101101111101111 -> 1111111111111011111111111111111111 +dqor695 or 1111111111111101111111111111111111 1111111111111101111011110111011111 -> 1111111111111101111111111111111111 +dqor696 or 1111111111111110111111111111111111 1111111111111110110111111010111111 -> 1111111111111110111111111111111111 +dqor697 or 1111111111111111011111111111111111 1111111111111111001111111101111111 -> 1111111111111111011111111111111111 +dqor698 or 1111111111111111101111111111111111 1111111111111111001111111010111111 -> 1111111111111111101111111111111111 +dqor699 or 1111111111111111110111111111111111 1111111111111110110111110111011111 -> 1111111111111111110111111111111111 +dqor700 or 1111111111111111111011111111111111 1111111111111101111011101111101111 -> 1111111111111111111011111111111111 +dqor701 or 1111111111111111111101111111111111 1111111111111011111101011111110111 -> 1111111111111111111101111111111111 +dqor702 or 1111111111111111111110111111111111 1111111111110111111110111111111011 -> 1111111111111111111110111111111111 +dqor703 or 1111111111111111111111011111111111 1111111111101111111101011111111101 -> 1111111111111111111111011111111111 +dqor704 or 1111111111111111111111101111111111 1111111111011111111011101111111110 -> 1111111111111111111111101111111111 +dqor705 or 1111111111111111111111110111111111 0111111110111111110111110111111111 -> 1111111111111111111111110111111111 +dqor706 or 1111111111111111111111111011111111 1011111101111111101111111011111111 -> 1111111111111111111111111011111111 +dqor707 or 1111111111111111111111111101111111 1101111011111111011111111101111111 -> 1111111111111111111111111101111111 +dqor708 or 1111111111111111111111111110111111 1110110111111110111111111110111111 -> 1111111111111111111111111110111111 +dqor709 or 1111111111111111111111111111011111 1111001111111101111111111111011111 -> 1111111111111111111111111111011111 +dqor710 or 1111111111111111111111111111101111 1111001111111011111111111111101111 -> 1111111111111111111111111111101111 +dqor711 or 1111111111111111111111111111110111 1110110111110111111111111111110111 -> 1111111111111111111111111111110111 +dqor712 or 1111111111111111111111111111111011 1101111011101111111111111111111011 -> 1111111111111111111111111111111011 +dqor713 or 1111111111111111111111111111111101 1011111101011111111111111111111101 -> 1111111111111111111111111111111101 +dqor714 or 1111111111111111111111111111111110 0111111110111111111111111111111110 -> 1111111111111111111111111111111110 + + + +-- 1234567890123456 1234567890123456 1234567890123456 +dqor020 or 1111111111111111 1111111111111111 -> 1111111111111111 +dqor021 or 111111111111111 111111111111111 -> 111111111111111 +dqor022 or 11111111111111 11111111111111 -> 11111111111111 +dqor023 or 1111111111111 1111111111111 -> 1111111111111 +dqor024 or 111111111111 111111111111 -> 111111111111 +dqor025 or 11111111111 11111111111 -> 11111111111 +dqor026 or 1111111111 1111111111 -> 1111111111 +dqor027 or 111111111 111111111 -> 111111111 +dqor028 or 11111111 11111111 -> 11111111 +dqor029 or 1111111 1111111 -> 1111111 +dqor030 or 111111 111111 -> 111111 +dqor031 or 11111 11111 -> 11111 +dqor032 or 1111 1111 -> 1111 +dqor033 or 111 111 -> 111 +dqor034 or 11 11 -> 11 +dqor035 or 1 1 -> 1 +dqor036 or 0 0 -> 0 + +dqor042 or 111111110000000 1111111110000000 -> 1111111110000000 +dqor043 or 11111110000000 1000000100000000 -> 1011111110000000 +dqor044 or 1111110000000 1000001000000000 -> 1001111110000000 +dqor045 or 111110000000 1000010000000000 -> 1000111110000000 +dqor046 or 11110000000 1000100000000000 -> 1000111110000000 +dqor047 or 1110000000 1001000000000000 -> 1001001110000000 +dqor048 or 110000000 1010000000000000 -> 1010000110000000 +dqor049 or 10000000 1100000000000000 -> 1100000010000000 + +dqor090 or 011111111 111101111 -> 111111111 +dqor091 or 101111111 111101111 -> 111111111 +dqor092 or 110111111 111101111 -> 111111111 +dqor093 or 111011111 111101111 -> 111111111 +dqor094 or 111101111 111101111 -> 111101111 +dqor095 or 111110111 111101111 -> 111111111 +dqor096 or 111111011 111101111 -> 111111111 +dqor097 or 111111101 111101111 -> 111111111 +dqor098 or 111111110 111101111 -> 111111111 + +dqor100 or 111101111 011111111 -> 111111111 +dqor101 or 111101111 101111111 -> 111111111 +dqor102 or 111101111 110111111 -> 111111111 +dqor103 or 111101111 111011111 -> 111111111 +dqor104 or 111101111 111101111 -> 111101111 +dqor105 or 111101111 111110111 -> 111111111 +dqor106 or 111101111 111111011 -> 111111111 +dqor107 or 111101111 111111101 -> 111111111 +dqor108 or 111101111 111111110 -> 111111111 + +-- non-0/1 should not be accepted, nor should signs +dqor220 or 111111112 111111111 -> NaN Invalid_operation +dqor221 or 333333333 333333333 -> NaN Invalid_operation +dqor222 or 555555555 555555555 -> NaN Invalid_operation +dqor223 or 777777777 777777777 -> NaN Invalid_operation +dqor224 or 999999999 999999999 -> NaN Invalid_operation +dqor225 or 222222222 999999999 -> NaN Invalid_operation +dqor226 or 444444444 999999999 -> NaN Invalid_operation +dqor227 or 666666666 999999999 -> NaN Invalid_operation +dqor228 or 888888888 999999999 -> NaN Invalid_operation +dqor229 or 999999999 222222222 -> NaN Invalid_operation +dqor230 or 999999999 444444444 -> NaN Invalid_operation +dqor231 or 999999999 666666666 -> NaN Invalid_operation +dqor232 or 999999999 888888888 -> NaN Invalid_operation +-- a few randoms +dqor240 or 567468689 -934981942 -> NaN Invalid_operation +dqor241 or 567367689 934981942 -> NaN Invalid_operation +dqor242 or -631917772 -706014634 -> NaN Invalid_operation +dqor243 or -756253257 138579234 -> NaN Invalid_operation +dqor244 or 835590149 567435400 -> NaN Invalid_operation +-- test MSD +dqor250 or 2000000111000111000111000000000000 1000000111000111000111000000000000 -> NaN Invalid_operation +dqor251 or 7000000111000111000111000000000000 1000000111000111000111000000000000 -> NaN Invalid_operation +dqor252 or 8000000111000111000111000000000000 1000000111000111000111000000000000 -> NaN Invalid_operation +dqor253 or 9000000111000111000111000000000000 1000000111000111000111000000000000 -> NaN Invalid_operation +dqor254 or 2000000111000111000111000000000000 0000000111000111000111000000000000 -> NaN Invalid_operation +dqor255 or 7000000111000111000111000000000000 0000000111000111000111000000000000 -> NaN Invalid_operation +dqor256 or 8000000111000111000111000000000000 0000000111000111000111000000000000 -> NaN Invalid_operation +dqor257 or 9000000111000111000111000000000000 0000000111000111000111000000000000 -> NaN Invalid_operation +dqor258 or 1000000111000111000111000000000000 2000000111000111000111000000000000 -> NaN Invalid_operation +dqor259 or 1000000111000111000111000000000000 7000000111000111000111000000000000 -> NaN Invalid_operation +dqor260 or 1000000111000111000111000000000000 8000000111000111000111000000000000 -> NaN Invalid_operation +dqor261 or 1000000111000111000111000000000000 9000000111000111000111000000000000 -> NaN Invalid_operation +dqor262 or 0000000111000111000111000000000000 2000000111000111000111000000000000 -> NaN Invalid_operation +dqor263 or 0000000111000111000111000000000000 7000000111000111000111000000000000 -> NaN Invalid_operation +dqor264 or 0000000111000111000111000000000000 8000000111000111000111000000000000 -> NaN Invalid_operation +dqor265 or 0000000111000111000111000000000000 9000000111000111000111000000000000 -> NaN Invalid_operation +-- test MSD-1 +dqor270 or 0200000111000111000111001000000000 1000000111000111000111100000000010 -> NaN Invalid_operation +dqor271 or 0700000111000111000111000100000000 1000000111000111000111010000000100 -> NaN Invalid_operation +dqor272 or 0800000111000111000111000010000000 1000000111000111000111001000001000 -> NaN Invalid_operation +dqor273 or 0900000111000111000111000001000000 1000000111000111000111000100010000 -> NaN Invalid_operation +dqor274 or 1000000111000111000111000000100000 0200000111000111000111000010100000 -> NaN Invalid_operation +dqor275 or 1000000111000111000111000000010000 0700000111000111000111000001000000 -> NaN Invalid_operation +dqor276 or 1000000111000111000111000000001000 0800000111000111000111000010100000 -> NaN Invalid_operation +dqor277 or 1000000111000111000111000000000100 0900000111000111000111000000010000 -> NaN Invalid_operation +-- test LSD +dqor280 or 0010000111000111000111000000000002 1000000111000111000111000100000001 -> NaN Invalid_operation +dqor281 or 0001000111000111000111000000000007 1000000111000111000111001000000011 -> NaN Invalid_operation +dqor282 or 0000000111000111000111100000000008 1000000111000111000111010000000001 -> NaN Invalid_operation +dqor283 or 0000000111000111000111010000000009 1000000111000111000111100000000001 -> NaN Invalid_operation +dqor284 or 1000000111000111000111001000000000 0001000111000111000111000000000002 -> NaN Invalid_operation +dqor285 or 1000000111000111000111000100000000 0010000111000111000111000000000007 -> NaN Invalid_operation +dqor286 or 1000000111000111000111000010000000 0100000111000111000111000000000008 -> NaN Invalid_operation +dqor287 or 1000000111000111000111000001000000 1000000111000111000111000000000009 -> NaN Invalid_operation +-- test Middie +dqor288 or 0010000111000111000111000020000000 1000000111000111000111001000000000 -> NaN Invalid_operation +dqor289 or 0001000111000111000111000070000001 1000000111000111000111000100000000 -> NaN Invalid_operation +dqor290 or 0000000111000111000111100080000010 1000000111000111000111000010000000 -> NaN Invalid_operation +dqor291 or 0000000111000111000111010090000100 1000000111000111000111000001000000 -> NaN Invalid_operation +dqor292 or 1000000111000111000111001000001000 0000000111000111000111000020100000 -> NaN Invalid_operation +dqor293 or 1000000111000111000111000100010000 0000000111000111000111000070010000 -> NaN Invalid_operation +dqor294 or 1000000111000111000111000010100000 0000000111000111000111000080001000 -> NaN Invalid_operation +dqor295 or 1000000111000111000111000001000000 0000000111000111000111000090000100 -> NaN Invalid_operation +-- signs +dqor296 or -1000000111000111000111000001000000 -0000001110001110001110010000000100 -> NaN Invalid_operation +dqor297 or -1000000111000111000111000001000000 0000001110001110001110000010000100 -> NaN Invalid_operation +dqor298 or 1000000111000111000111000001000000 -0000001110001110001110001000000100 -> NaN Invalid_operation +dqor299 or 1000000111000111000111000001000000 0000001110001110001110000011000100 -> 1000001111001111001111000011000100 + +-- Nmax, Nmin, Ntiny-like +dqor331 or 2 9.99999999E+1999 -> NaN Invalid_operation +dqor332 or 3 1E-1999 -> NaN Invalid_operation +dqor333 or 4 1.00000000E-1999 -> NaN Invalid_operation +dqor334 or 5 1E-1009 -> NaN Invalid_operation +dqor335 or 6 -1E-1009 -> NaN Invalid_operation +dqor336 or 7 -1.00000000E-1999 -> NaN Invalid_operation +dqor337 or 8 -1E-1999 -> NaN Invalid_operation +dqor338 or 9 -9.99999999E+1999 -> NaN Invalid_operation +dqor341 or 9.99999999E+2999 -18 -> NaN Invalid_operation +dqor342 or 1E-2999 01 -> NaN Invalid_operation +dqor343 or 1.00000000E-2999 -18 -> NaN Invalid_operation +dqor344 or 1E-1009 18 -> NaN Invalid_operation +dqor345 or -1E-1009 -10 -> NaN Invalid_operation +dqor346 or -1.00000000E-2999 18 -> NaN Invalid_operation +dqor347 or -1E-2999 10 -> NaN Invalid_operation +dqor348 or -9.99999999E+2999 -18 -> NaN Invalid_operation + +-- A few other non-integers +dqor361 or 1.0 1 -> NaN Invalid_operation +dqor362 or 1E+1 1 -> NaN Invalid_operation +dqor363 or 0.0 1 -> NaN Invalid_operation +dqor364 or 0E+1 1 -> NaN Invalid_operation +dqor365 or 9.9 1 -> NaN Invalid_operation +dqor366 or 9E+1 1 -> NaN Invalid_operation +dqor371 or 0 1.0 -> NaN Invalid_operation +dqor372 or 0 1E+1 -> NaN Invalid_operation +dqor373 or 0 0.0 -> NaN Invalid_operation +dqor374 or 0 0E+1 -> NaN Invalid_operation +dqor375 or 0 9.9 -> NaN Invalid_operation +dqor376 or 0 9E+1 -> NaN Invalid_operation + +-- All Specials are in error +dqor780 or -Inf -Inf -> NaN Invalid_operation +dqor781 or -Inf -1000 -> NaN Invalid_operation +dqor782 or -Inf -1 -> NaN Invalid_operation +dqor783 or -Inf -0 -> NaN Invalid_operation +dqor784 or -Inf 0 -> NaN Invalid_operation +dqor785 or -Inf 1 -> NaN Invalid_operation +dqor786 or -Inf 1000 -> NaN Invalid_operation +dqor787 or -1000 -Inf -> NaN Invalid_operation +dqor788 or -Inf -Inf -> NaN Invalid_operation +dqor789 or -1 -Inf -> NaN Invalid_operation +dqor790 or -0 -Inf -> NaN Invalid_operation +dqor791 or 0 -Inf -> NaN Invalid_operation +dqor792 or 1 -Inf -> NaN Invalid_operation +dqor793 or 1000 -Inf -> NaN Invalid_operation +dqor794 or Inf -Inf -> NaN Invalid_operation + +dqor800 or Inf -Inf -> NaN Invalid_operation +dqor801 or Inf -1000 -> NaN Invalid_operation +dqor802 or Inf -1 -> NaN Invalid_operation +dqor803 or Inf -0 -> NaN Invalid_operation +dqor804 or Inf 0 -> NaN Invalid_operation +dqor805 or Inf 1 -> NaN Invalid_operation +dqor806 or Inf 1000 -> NaN Invalid_operation +dqor807 or Inf Inf -> NaN Invalid_operation +dqor808 or -1000 Inf -> NaN Invalid_operation +dqor809 or -Inf Inf -> NaN Invalid_operation +dqor810 or -1 Inf -> NaN Invalid_operation +dqor811 or -0 Inf -> NaN Invalid_operation +dqor812 or 0 Inf -> NaN Invalid_operation +dqor813 or 1 Inf -> NaN Invalid_operation +dqor814 or 1000 Inf -> NaN Invalid_operation +dqor815 or Inf Inf -> NaN Invalid_operation + +dqor821 or NaN -Inf -> NaN Invalid_operation +dqor822 or NaN -1000 -> NaN Invalid_operation +dqor823 or NaN -1 -> NaN Invalid_operation +dqor824 or NaN -0 -> NaN Invalid_operation +dqor825 or NaN 0 -> NaN Invalid_operation +dqor826 or NaN 1 -> NaN Invalid_operation +dqor827 or NaN 1000 -> NaN Invalid_operation +dqor828 or NaN Inf -> NaN Invalid_operation +dqor829 or NaN NaN -> NaN Invalid_operation +dqor830 or -Inf NaN -> NaN Invalid_operation +dqor831 or -1000 NaN -> NaN Invalid_operation +dqor832 or -1 NaN -> NaN Invalid_operation +dqor833 or -0 NaN -> NaN Invalid_operation +dqor834 or 0 NaN -> NaN Invalid_operation +dqor835 or 1 NaN -> NaN Invalid_operation +dqor836 or 1000 NaN -> NaN Invalid_operation +dqor837 or Inf NaN -> NaN Invalid_operation + +dqor841 or sNaN -Inf -> NaN Invalid_operation +dqor842 or sNaN -1000 -> NaN Invalid_operation +dqor843 or sNaN -1 -> NaN Invalid_operation +dqor844 or sNaN -0 -> NaN Invalid_operation +dqor845 or sNaN 0 -> NaN Invalid_operation +dqor846 or sNaN 1 -> NaN Invalid_operation +dqor847 or sNaN 1000 -> NaN Invalid_operation +dqor848 or sNaN NaN -> NaN Invalid_operation +dqor849 or sNaN sNaN -> NaN Invalid_operation +dqor850 or NaN sNaN -> NaN Invalid_operation +dqor851 or -Inf sNaN -> NaN Invalid_operation +dqor852 or -1000 sNaN -> NaN Invalid_operation +dqor853 or -1 sNaN -> NaN Invalid_operation +dqor854 or -0 sNaN -> NaN Invalid_operation +dqor855 or 0 sNaN -> NaN Invalid_operation +dqor856 or 1 sNaN -> NaN Invalid_operation +dqor857 or 1000 sNaN -> NaN Invalid_operation +dqor858 or Inf sNaN -> NaN Invalid_operation +dqor859 or NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +dqor861 or NaN1 -Inf -> NaN Invalid_operation +dqor862 or +NaN2 -1000 -> NaN Invalid_operation +dqor863 or NaN3 1000 -> NaN Invalid_operation +dqor864 or NaN4 Inf -> NaN Invalid_operation +dqor865 or NaN5 +NaN6 -> NaN Invalid_operation +dqor866 or -Inf NaN7 -> NaN Invalid_operation +dqor867 or -1000 NaN8 -> NaN Invalid_operation +dqor868 or 1000 NaN9 -> NaN Invalid_operation +dqor869 or Inf +NaN10 -> NaN Invalid_operation +dqor871 or sNaN11 -Inf -> NaN Invalid_operation +dqor872 or sNaN12 -1000 -> NaN Invalid_operation +dqor873 or sNaN13 1000 -> NaN Invalid_operation +dqor874 or sNaN14 NaN17 -> NaN Invalid_operation +dqor875 or sNaN15 sNaN18 -> NaN Invalid_operation +dqor876 or NaN16 sNaN19 -> NaN Invalid_operation +dqor877 or -Inf +sNaN20 -> NaN Invalid_operation +dqor878 or -1000 sNaN21 -> NaN Invalid_operation +dqor879 or 1000 sNaN22 -> NaN Invalid_operation +dqor880 or Inf sNaN23 -> NaN Invalid_operation +dqor881 or +NaN25 +sNaN24 -> NaN Invalid_operation +dqor882 or -NaN26 NaN28 -> NaN Invalid_operation +dqor883 or -sNaN27 sNaN29 -> NaN Invalid_operation +dqor884 or 1000 -NaN30 -> NaN Invalid_operation +dqor885 or 1000 -sNaN31 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/dqPlus.decTest b/Lib/test/decimaltestdata/dqPlus.decTest index df1a15ca7f..8aecaab796 100644 --- a/Lib/test/decimaltestdata/dqPlus.decTest +++ b/Lib/test/decimaltestdata/dqPlus.decTest @@ -1,88 +1,88 @@ -------------------------------------------------------------------------
--- dqPlus.decTest -- decQuad 0+x --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- All operands and results are decQuads.
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
--- Sanity check
-dqpls001 plus +7.50 -> 7.50
-
--- Infinities
-dqpls011 plus Infinity -> Infinity
-dqpls012 plus -Infinity -> -Infinity
-
--- NaNs, 0 payload
-ddqls021 plus NaN -> NaN
-ddqls022 plus -NaN -> -NaN
-ddqls023 plus sNaN -> NaN Invalid_operation
-ddqls024 plus -sNaN -> -NaN Invalid_operation
-
--- NaNs, non-0 payload
-ddqls031 plus NaN13 -> NaN13
-ddqls032 plus -NaN13 -> -NaN13
-ddqls033 plus sNaN13 -> NaN13 Invalid_operation
-ddqls034 plus -sNaN13 -> -NaN13 Invalid_operation
-ddqls035 plus NaN70 -> NaN70
-ddqls036 plus -NaN70 -> -NaN70
-ddqls037 plus sNaN101 -> NaN101 Invalid_operation
-ddqls038 plus -sNaN101 -> -NaN101 Invalid_operation
-
--- finites
-dqpls101 plus 7 -> 7
-dqpls102 plus -7 -> -7
-dqpls103 plus 75 -> 75
-dqpls104 plus -75 -> -75
-dqpls105 plus 7.50 -> 7.50
-dqpls106 plus -7.50 -> -7.50
-dqpls107 plus 7.500 -> 7.500
-dqpls108 plus -7.500 -> -7.500
-
--- zeros
-dqpls111 plus 0 -> 0
-dqpls112 plus -0 -> 0
-dqpls113 plus 0E+4 -> 0E+4
-dqpls114 plus -0E+4 -> 0E+4
-dqpls115 plus 0.0000 -> 0.0000
-dqpls116 plus -0.0000 -> 0.0000
-dqpls117 plus 0E-141 -> 0E-141
-dqpls118 plus -0E-141 -> 0E-141
-
--- full coefficients, alternating bits
-dqpls121 plus 2682682682682682682682682682682682 -> 2682682682682682682682682682682682
-dqpls122 plus -2682682682682682682682682682682682 -> -2682682682682682682682682682682682
-dqpls123 plus 1341341341341341341341341341341341 -> 1341341341341341341341341341341341
-dqpls124 plus -1341341341341341341341341341341341 -> -1341341341341341341341341341341341
-
--- Nmax, Nmin, Ntiny
-dqpls131 plus 9.999999999999999999999999999999999E+6144 -> 9.999999999999999999999999999999999E+6144
-dqpls132 plus 1E-6143 -> 1E-6143
-dqpls133 plus 1.000000000000000000000000000000000E-6143 -> 1.000000000000000000000000000000000E-6143
-dqpls134 plus 1E-6176 -> 1E-6176 Subnormal
-
-dqpls135 plus -1E-6176 -> -1E-6176 Subnormal
-dqpls136 plus -1.000000000000000000000000000000000E-6143 -> -1.000000000000000000000000000000000E-6143
-dqpls137 plus -1E-6143 -> -1E-6143
-dqpls138 plus -9.999999999999999999999999999999999E+6144 -> -9.999999999999999999999999999999999E+6144
+------------------------------------------------------------------------ +-- dqPlus.decTest -- decQuad 0+x -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- All operands and results are decQuads. +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +-- Sanity check +dqpls001 plus +7.50 -> 7.50 + +-- Infinities +dqpls011 plus Infinity -> Infinity +dqpls012 plus -Infinity -> -Infinity + +-- NaNs, 0 payload +ddqls021 plus NaN -> NaN +ddqls022 plus -NaN -> -NaN +ddqls023 plus sNaN -> NaN Invalid_operation +ddqls024 plus -sNaN -> -NaN Invalid_operation + +-- NaNs, non-0 payload +ddqls031 plus NaN13 -> NaN13 +ddqls032 plus -NaN13 -> -NaN13 +ddqls033 plus sNaN13 -> NaN13 Invalid_operation +ddqls034 plus -sNaN13 -> -NaN13 Invalid_operation +ddqls035 plus NaN70 -> NaN70 +ddqls036 plus -NaN70 -> -NaN70 +ddqls037 plus sNaN101 -> NaN101 Invalid_operation +ddqls038 plus -sNaN101 -> -NaN101 Invalid_operation + +-- finites +dqpls101 plus 7 -> 7 +dqpls102 plus -7 -> -7 +dqpls103 plus 75 -> 75 +dqpls104 plus -75 -> -75 +dqpls105 plus 7.50 -> 7.50 +dqpls106 plus -7.50 -> -7.50 +dqpls107 plus 7.500 -> 7.500 +dqpls108 plus -7.500 -> -7.500 + +-- zeros +dqpls111 plus 0 -> 0 +dqpls112 plus -0 -> 0 +dqpls113 plus 0E+4 -> 0E+4 +dqpls114 plus -0E+4 -> 0E+4 +dqpls115 plus 0.0000 -> 0.0000 +dqpls116 plus -0.0000 -> 0.0000 +dqpls117 plus 0E-141 -> 0E-141 +dqpls118 plus -0E-141 -> 0E-141 + +-- full coefficients, alternating bits +dqpls121 plus 2682682682682682682682682682682682 -> 2682682682682682682682682682682682 +dqpls122 plus -2682682682682682682682682682682682 -> -2682682682682682682682682682682682 +dqpls123 plus 1341341341341341341341341341341341 -> 1341341341341341341341341341341341 +dqpls124 plus -1341341341341341341341341341341341 -> -1341341341341341341341341341341341 + +-- Nmax, Nmin, Ntiny +dqpls131 plus 9.999999999999999999999999999999999E+6144 -> 9.999999999999999999999999999999999E+6144 +dqpls132 plus 1E-6143 -> 1E-6143 +dqpls133 plus 1.000000000000000000000000000000000E-6143 -> 1.000000000000000000000000000000000E-6143 +dqpls134 plus 1E-6176 -> 1E-6176 Subnormal + +dqpls135 plus -1E-6176 -> -1E-6176 Subnormal +dqpls136 plus -1.000000000000000000000000000000000E-6143 -> -1.000000000000000000000000000000000E-6143 +dqpls137 plus -1E-6143 -> -1E-6143 +dqpls138 plus -9.999999999999999999999999999999999E+6144 -> -9.999999999999999999999999999999999E+6144 diff --git a/Lib/test/decimaltestdata/dqQuantize.decTest b/Lib/test/decimaltestdata/dqQuantize.decTest index 4ed39b45c4..51471c2626 100644 --- a/Lib/test/decimaltestdata/dqQuantize.decTest +++ b/Lib/test/decimaltestdata/dqQuantize.decTest @@ -1,836 +1,836 @@ -------------------------------------------------------------------------
--- dqQuantize.decTest -- decQuad quantize operation --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- Most of the tests here assume a "regular pattern", where the
--- sign and coefficient are +1.
--- 2004.03.15 Underflow for quantize is suppressed
--- 2005.06.08 More extensive tests for 'does not fit'
--- [Forked from quantize.decTest 2006.11.25]
-
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
--- sanity checks
-dqqua001 quantize 0 1e0 -> 0
-dqqua002 quantize 1 1e0 -> 1
-dqqua003 quantize 0.1 1e+2 -> 0E+2 Inexact Rounded
-dqqua005 quantize 0.1 1e+1 -> 0E+1 Inexact Rounded
-dqqua006 quantize 0.1 1e0 -> 0 Inexact Rounded
-dqqua007 quantize 0.1 1e-1 -> 0.1
-dqqua008 quantize 0.1 1e-2 -> 0.10
-dqqua009 quantize 0.1 1e-3 -> 0.100
-dqqua010 quantize 0.9 1e+2 -> 0E+2 Inexact Rounded
-dqqua011 quantize 0.9 1e+1 -> 0E+1 Inexact Rounded
-dqqua012 quantize 0.9 1e+0 -> 1 Inexact Rounded
-dqqua013 quantize 0.9 1e-1 -> 0.9
-dqqua014 quantize 0.9 1e-2 -> 0.90
-dqqua015 quantize 0.9 1e-3 -> 0.900
--- negatives
-dqqua021 quantize -0 1e0 -> -0
-dqqua022 quantize -1 1e0 -> -1
-dqqua023 quantize -0.1 1e+2 -> -0E+2 Inexact Rounded
-dqqua025 quantize -0.1 1e+1 -> -0E+1 Inexact Rounded
-dqqua026 quantize -0.1 1e0 -> -0 Inexact Rounded
-dqqua027 quantize -0.1 1e-1 -> -0.1
-dqqua028 quantize -0.1 1e-2 -> -0.10
-dqqua029 quantize -0.1 1e-3 -> -0.100
-dqqua030 quantize -0.9 1e+2 -> -0E+2 Inexact Rounded
-dqqua031 quantize -0.9 1e+1 -> -0E+1 Inexact Rounded
-dqqua032 quantize -0.9 1e+0 -> -1 Inexact Rounded
-dqqua033 quantize -0.9 1e-1 -> -0.9
-dqqua034 quantize -0.9 1e-2 -> -0.90
-dqqua035 quantize -0.9 1e-3 -> -0.900
-dqqua036 quantize -0.5 1e+2 -> -0E+2 Inexact Rounded
-dqqua037 quantize -0.5 1e+1 -> -0E+1 Inexact Rounded
-dqqua038 quantize -0.5 1e+0 -> -0 Inexact Rounded
-dqqua039 quantize -0.5 1e-1 -> -0.5
-dqqua040 quantize -0.5 1e-2 -> -0.50
-dqqua041 quantize -0.5 1e-3 -> -0.500
-dqqua042 quantize -0.9 1e+2 -> -0E+2 Inexact Rounded
-dqqua043 quantize -0.9 1e+1 -> -0E+1 Inexact Rounded
-dqqua044 quantize -0.9 1e+0 -> -1 Inexact Rounded
-dqqua045 quantize -0.9 1e-1 -> -0.9
-dqqua046 quantize -0.9 1e-2 -> -0.90
-dqqua047 quantize -0.9 1e-3 -> -0.900
-
--- examples from Specification
-dqqua060 quantize 2.17 0.001 -> 2.170
-dqqua061 quantize 2.17 0.01 -> 2.17
-dqqua062 quantize 2.17 0.1 -> 2.2 Inexact Rounded
-dqqua063 quantize 2.17 1e+0 -> 2 Inexact Rounded
-dqqua064 quantize 2.17 1e+1 -> 0E+1 Inexact Rounded
-dqqua065 quantize -Inf Inf -> -Infinity
-dqqua066 quantize 2 Inf -> NaN Invalid_operation
-dqqua067 quantize -0.1 1 -> -0 Inexact Rounded
-dqqua068 quantize -0 1e+5 -> -0E+5
-dqqua069 quantize +123451234567899876543216789012345.6 1e-2 -> NaN Invalid_operation
-dqqua070 quantize -987651234567899876543214335236450.6 1e-2 -> NaN Invalid_operation
-dqqua071 quantize 217 1e-1 -> 217.0
-dqqua072 quantize 217 1e+0 -> 217
-dqqua073 quantize 217 1e+1 -> 2.2E+2 Inexact Rounded
-dqqua074 quantize 217 1e+2 -> 2E+2 Inexact Rounded
-
--- general tests ..
-dqqua089 quantize 12 1e+4 -> 0E+4 Inexact Rounded
-dqqua090 quantize 12 1e+3 -> 0E+3 Inexact Rounded
-dqqua091 quantize 12 1e+2 -> 0E+2 Inexact Rounded
-dqqua092 quantize 12 1e+1 -> 1E+1 Inexact Rounded
-dqqua093 quantize 1.2345 1e-2 -> 1.23 Inexact Rounded
-dqqua094 quantize 1.2355 1e-2 -> 1.24 Inexact Rounded
-dqqua095 quantize 1.2345 1e-6 -> 1.234500
-dqqua096 quantize 9.9999 1e-2 -> 10.00 Inexact Rounded
-dqqua097 quantize 0.0001 1e-2 -> 0.00 Inexact Rounded
-dqqua098 quantize 0.001 1e-2 -> 0.00 Inexact Rounded
-dqqua099 quantize 0.009 1e-2 -> 0.01 Inexact Rounded
-dqqua100 quantize 92 1e+2 -> 1E+2 Inexact Rounded
-
-dqqua101 quantize -1 1e0 -> -1
-dqqua102 quantize -1 1e-1 -> -1.0
-dqqua103 quantize -1 1e-2 -> -1.00
-dqqua104 quantize 0 1e0 -> 0
-dqqua105 quantize 0 1e-1 -> 0.0
-dqqua106 quantize 0 1e-2 -> 0.00
-dqqua107 quantize 0.00 1e0 -> 0
-dqqua108 quantize 0 1e+1 -> 0E+1
-dqqua109 quantize 0 1e+2 -> 0E+2
-dqqua110 quantize +1 1e0 -> 1
-dqqua111 quantize +1 1e-1 -> 1.0
-dqqua112 quantize +1 1e-2 -> 1.00
-
-dqqua120 quantize 1.04 1e-3 -> 1.040
-dqqua121 quantize 1.04 1e-2 -> 1.04
-dqqua122 quantize 1.04 1e-1 -> 1.0 Inexact Rounded
-dqqua123 quantize 1.04 1e0 -> 1 Inexact Rounded
-dqqua124 quantize 1.05 1e-3 -> 1.050
-dqqua125 quantize 1.05 1e-2 -> 1.05
-dqqua126 quantize 1.05 1e-1 -> 1.0 Inexact Rounded
-dqqua131 quantize 1.05 1e0 -> 1 Inexact Rounded
-dqqua132 quantize 1.06 1e-3 -> 1.060
-dqqua133 quantize 1.06 1e-2 -> 1.06
-dqqua134 quantize 1.06 1e-1 -> 1.1 Inexact Rounded
-dqqua135 quantize 1.06 1e0 -> 1 Inexact Rounded
-
-dqqua140 quantize -10 1e-2 -> -10.00
-dqqua141 quantize +1 1e-2 -> 1.00
-dqqua142 quantize +10 1e-2 -> 10.00
-dqqua143 quantize 1E+37 1e-2 -> NaN Invalid_operation
-dqqua144 quantize 1E-37 1e-2 -> 0.00 Inexact Rounded
-dqqua145 quantize 1E-3 1e-2 -> 0.00 Inexact Rounded
-dqqua146 quantize 1E-2 1e-2 -> 0.01
-dqqua147 quantize 1E-1 1e-2 -> 0.10
-dqqua148 quantize 0E-37 1e-2 -> 0.00
-
-dqqua150 quantize 1.0600 1e-5 -> 1.06000
-dqqua151 quantize 1.0600 1e-4 -> 1.0600
-dqqua152 quantize 1.0600 1e-3 -> 1.060 Rounded
-dqqua153 quantize 1.0600 1e-2 -> 1.06 Rounded
-dqqua154 quantize 1.0600 1e-1 -> 1.1 Inexact Rounded
-dqqua155 quantize 1.0600 1e0 -> 1 Inexact Rounded
-
--- a couple where rounding was different in base tests
-rounding: half_up
-dqqua157 quantize -0.5 1e+0 -> -1 Inexact Rounded
-dqqua158 quantize 1.05 1e-1 -> 1.1 Inexact Rounded
-dqqua159 quantize 1.06 1e0 -> 1 Inexact Rounded
-rounding: half_even
-
--- base tests with non-1 coefficients
-dqqua161 quantize 0 -9e0 -> 0
-dqqua162 quantize 1 -7e0 -> 1
-dqqua163 quantize 0.1 -1e+2 -> 0E+2 Inexact Rounded
-dqqua165 quantize 0.1 0e+1 -> 0E+1 Inexact Rounded
-dqqua166 quantize 0.1 2e0 -> 0 Inexact Rounded
-dqqua167 quantize 0.1 3e-1 -> 0.1
-dqqua168 quantize 0.1 44e-2 -> 0.10
-dqqua169 quantize 0.1 555e-3 -> 0.100
-dqqua170 quantize 0.9 6666e+2 -> 0E+2 Inexact Rounded
-dqqua171 quantize 0.9 -777e+1 -> 0E+1 Inexact Rounded
-dqqua172 quantize 0.9 -88e+0 -> 1 Inexact Rounded
-dqqua173 quantize 0.9 -9e-1 -> 0.9
-dqqua174 quantize 0.9 0e-2 -> 0.90
-dqqua175 quantize 0.9 1.1e-3 -> 0.9000
--- negatives
-dqqua181 quantize -0 1.1e0 -> -0.0
-dqqua182 quantize -1 -1e0 -> -1
-dqqua183 quantize -0.1 11e+2 -> -0E+2 Inexact Rounded
-dqqua185 quantize -0.1 111e+1 -> -0E+1 Inexact Rounded
-dqqua186 quantize -0.1 71e0 -> -0 Inexact Rounded
-dqqua187 quantize -0.1 -91e-1 -> -0.1
-dqqua188 quantize -0.1 -.1e-2 -> -0.100
-dqqua189 quantize -0.1 -1e-3 -> -0.100
-dqqua190 quantize -0.9 0e+2 -> -0E+2 Inexact Rounded
-dqqua191 quantize -0.9 -0e+1 -> -0E+1 Inexact Rounded
-dqqua192 quantize -0.9 -10e+0 -> -1 Inexact Rounded
-dqqua193 quantize -0.9 100e-1 -> -0.9
-dqqua194 quantize -0.9 999e-2 -> -0.90
-
--- +ve exponents ..
-dqqua201 quantize -1 1e+0 -> -1
-dqqua202 quantize -1 1e+1 -> -0E+1 Inexact Rounded
-dqqua203 quantize -1 1e+2 -> -0E+2 Inexact Rounded
-dqqua204 quantize 0 1e+0 -> 0
-dqqua205 quantize 0 1e+1 -> 0E+1
-dqqua206 quantize 0 1e+2 -> 0E+2
-dqqua207 quantize +1 1e+0 -> 1
-dqqua208 quantize +1 1e+1 -> 0E+1 Inexact Rounded
-dqqua209 quantize +1 1e+2 -> 0E+2 Inexact Rounded
-
-dqqua220 quantize 1.04 1e+3 -> 0E+3 Inexact Rounded
-dqqua221 quantize 1.04 1e+2 -> 0E+2 Inexact Rounded
-dqqua222 quantize 1.04 1e+1 -> 0E+1 Inexact Rounded
-dqqua223 quantize 1.04 1e+0 -> 1 Inexact Rounded
-dqqua224 quantize 1.05 1e+3 -> 0E+3 Inexact Rounded
-dqqua225 quantize 1.05 1e+2 -> 0E+2 Inexact Rounded
-dqqua226 quantize 1.05 1e+1 -> 0E+1 Inexact Rounded
-dqqua227 quantize 1.05 1e+0 -> 1 Inexact Rounded
-dqqua228 quantize 1.05 1e+3 -> 0E+3 Inexact Rounded
-dqqua229 quantize 1.05 1e+2 -> 0E+2 Inexact Rounded
-dqqua230 quantize 1.05 1e+1 -> 0E+1 Inexact Rounded
-dqqua231 quantize 1.05 1e+0 -> 1 Inexact Rounded
-dqqua232 quantize 1.06 1e+3 -> 0E+3 Inexact Rounded
-dqqua233 quantize 1.06 1e+2 -> 0E+2 Inexact Rounded
-dqqua234 quantize 1.06 1e+1 -> 0E+1 Inexact Rounded
-dqqua235 quantize 1.06 1e+0 -> 1 Inexact Rounded
-
-dqqua240 quantize -10 1e+1 -> -1E+1 Rounded
-dqqua241 quantize +1 1e+1 -> 0E+1 Inexact Rounded
-dqqua242 quantize +10 1e+1 -> 1E+1 Rounded
-dqqua243 quantize 1E+1 1e+1 -> 1E+1 -- underneath this is E+1
-dqqua244 quantize 1E+2 1e+1 -> 1.0E+2 -- underneath this is E+1
-dqqua245 quantize 1E+3 1e+1 -> 1.00E+3 -- underneath this is E+1
-dqqua246 quantize 1E+4 1e+1 -> 1.000E+4 -- underneath this is E+1
-dqqua247 quantize 1E+5 1e+1 -> 1.0000E+5 -- underneath this is E+1
-dqqua248 quantize 1E+6 1e+1 -> 1.00000E+6 -- underneath this is E+1
-dqqua249 quantize 1E+7 1e+1 -> 1.000000E+7 -- underneath this is E+1
-dqqua250 quantize 1E+8 1e+1 -> 1.0000000E+8 -- underneath this is E+1
-dqqua251 quantize 1E+9 1e+1 -> 1.00000000E+9 -- underneath this is E+1
--- next one tries to add 9 zeros
-dqqua252 quantize 1E+37 1e+1 -> NaN Invalid_operation
-dqqua253 quantize 1E-37 1e+1 -> 0E+1 Inexact Rounded
-dqqua254 quantize 1E-2 1e+1 -> 0E+1 Inexact Rounded
-dqqua255 quantize 0E-37 1e+1 -> 0E+1
-dqqua256 quantize -0E-37 1e+1 -> -0E+1
-dqqua257 quantize -0E-1 1e+1 -> -0E+1
-dqqua258 quantize -0 1e+1 -> -0E+1
-dqqua259 quantize -0E+1 1e+1 -> -0E+1
-
-dqqua260 quantize -10 1e+2 -> -0E+2 Inexact Rounded
-dqqua261 quantize +1 1e+2 -> 0E+2 Inexact Rounded
-dqqua262 quantize +10 1e+2 -> 0E+2 Inexact Rounded
-dqqua263 quantize 1E+1 1e+2 -> 0E+2 Inexact Rounded
-dqqua264 quantize 1E+2 1e+2 -> 1E+2
-dqqua265 quantize 1E+3 1e+2 -> 1.0E+3
-dqqua266 quantize 1E+4 1e+2 -> 1.00E+4
-dqqua267 quantize 1E+5 1e+2 -> 1.000E+5
-dqqua268 quantize 1E+6 1e+2 -> 1.0000E+6
-dqqua269 quantize 1E+7 1e+2 -> 1.00000E+7
-dqqua270 quantize 1E+8 1e+2 -> 1.000000E+8
-dqqua271 quantize 1E+9 1e+2 -> 1.0000000E+9
-dqqua272 quantize 1E+10 1e+2 -> 1.00000000E+10
-dqqua273 quantize 1E-10 1e+2 -> 0E+2 Inexact Rounded
-dqqua274 quantize 1E-2 1e+2 -> 0E+2 Inexact Rounded
-dqqua275 quantize 0E-10 1e+2 -> 0E+2
-
-dqqua280 quantize -10 1e+3 -> -0E+3 Inexact Rounded
-dqqua281 quantize +1 1e+3 -> 0E+3 Inexact Rounded
-dqqua282 quantize +10 1e+3 -> 0E+3 Inexact Rounded
-dqqua283 quantize 1E+1 1e+3 -> 0E+3 Inexact Rounded
-dqqua284 quantize 1E+2 1e+3 -> 0E+3 Inexact Rounded
-dqqua285 quantize 1E+3 1e+3 -> 1E+3
-dqqua286 quantize 1E+4 1e+3 -> 1.0E+4
-dqqua287 quantize 1E+5 1e+3 -> 1.00E+5
-dqqua288 quantize 1E+6 1e+3 -> 1.000E+6
-dqqua289 quantize 1E+7 1e+3 -> 1.0000E+7
-dqqua290 quantize 1E+8 1e+3 -> 1.00000E+8
-dqqua291 quantize 1E+9 1e+3 -> 1.000000E+9
-dqqua292 quantize 1E+10 1e+3 -> 1.0000000E+10
-dqqua293 quantize 1E-10 1e+3 -> 0E+3 Inexact Rounded
-dqqua294 quantize 1E-2 1e+3 -> 0E+3 Inexact Rounded
-dqqua295 quantize 0E-10 1e+3 -> 0E+3
-
--- round up from below [sign wrong in JIT compiler once]
-dqqua300 quantize 0.0078 1e-5 -> 0.00780
-dqqua301 quantize 0.0078 1e-4 -> 0.0078
-dqqua302 quantize 0.0078 1e-3 -> 0.008 Inexact Rounded
-dqqua303 quantize 0.0078 1e-2 -> 0.01 Inexact Rounded
-dqqua304 quantize 0.0078 1e-1 -> 0.0 Inexact Rounded
-dqqua305 quantize 0.0078 1e0 -> 0 Inexact Rounded
-dqqua306 quantize 0.0078 1e+1 -> 0E+1 Inexact Rounded
-dqqua307 quantize 0.0078 1e+2 -> 0E+2 Inexact Rounded
-
-dqqua310 quantize -0.0078 1e-5 -> -0.00780
-dqqua311 quantize -0.0078 1e-4 -> -0.0078
-dqqua312 quantize -0.0078 1e-3 -> -0.008 Inexact Rounded
-dqqua313 quantize -0.0078 1e-2 -> -0.01 Inexact Rounded
-dqqua314 quantize -0.0078 1e-1 -> -0.0 Inexact Rounded
-dqqua315 quantize -0.0078 1e0 -> -0 Inexact Rounded
-dqqua316 quantize -0.0078 1e+1 -> -0E+1 Inexact Rounded
-dqqua317 quantize -0.0078 1e+2 -> -0E+2 Inexact Rounded
-
-dqqua320 quantize 0.078 1e-5 -> 0.07800
-dqqua321 quantize 0.078 1e-4 -> 0.0780
-dqqua322 quantize 0.078 1e-3 -> 0.078
-dqqua323 quantize 0.078 1e-2 -> 0.08 Inexact Rounded
-dqqua324 quantize 0.078 1e-1 -> 0.1 Inexact Rounded
-dqqua325 quantize 0.078 1e0 -> 0 Inexact Rounded
-dqqua326 quantize 0.078 1e+1 -> 0E+1 Inexact Rounded
-dqqua327 quantize 0.078 1e+2 -> 0E+2 Inexact Rounded
-
-dqqua330 quantize -0.078 1e-5 -> -0.07800
-dqqua331 quantize -0.078 1e-4 -> -0.0780
-dqqua332 quantize -0.078 1e-3 -> -0.078
-dqqua333 quantize -0.078 1e-2 -> -0.08 Inexact Rounded
-dqqua334 quantize -0.078 1e-1 -> -0.1 Inexact Rounded
-dqqua335 quantize -0.078 1e0 -> -0 Inexact Rounded
-dqqua336 quantize -0.078 1e+1 -> -0E+1 Inexact Rounded
-dqqua337 quantize -0.078 1e+2 -> -0E+2 Inexact Rounded
-
-dqqua340 quantize 0.78 1e-5 -> 0.78000
-dqqua341 quantize 0.78 1e-4 -> 0.7800
-dqqua342 quantize 0.78 1e-3 -> 0.780
-dqqua343 quantize 0.78 1e-2 -> 0.78
-dqqua344 quantize 0.78 1e-1 -> 0.8 Inexact Rounded
-dqqua345 quantize 0.78 1e0 -> 1 Inexact Rounded
-dqqua346 quantize 0.78 1e+1 -> 0E+1 Inexact Rounded
-dqqua347 quantize 0.78 1e+2 -> 0E+2 Inexact Rounded
-
-dqqua350 quantize -0.78 1e-5 -> -0.78000
-dqqua351 quantize -0.78 1e-4 -> -0.7800
-dqqua352 quantize -0.78 1e-3 -> -0.780
-dqqua353 quantize -0.78 1e-2 -> -0.78
-dqqua354 quantize -0.78 1e-1 -> -0.8 Inexact Rounded
-dqqua355 quantize -0.78 1e0 -> -1 Inexact Rounded
-dqqua356 quantize -0.78 1e+1 -> -0E+1 Inexact Rounded
-dqqua357 quantize -0.78 1e+2 -> -0E+2 Inexact Rounded
-
-dqqua360 quantize 7.8 1e-5 -> 7.80000
-dqqua361 quantize 7.8 1e-4 -> 7.8000
-dqqua362 quantize 7.8 1e-3 -> 7.800
-dqqua363 quantize 7.8 1e-2 -> 7.80
-dqqua364 quantize 7.8 1e-1 -> 7.8
-dqqua365 quantize 7.8 1e0 -> 8 Inexact Rounded
-dqqua366 quantize 7.8 1e+1 -> 1E+1 Inexact Rounded
-dqqua367 quantize 7.8 1e+2 -> 0E+2 Inexact Rounded
-dqqua368 quantize 7.8 1e+3 -> 0E+3 Inexact Rounded
-
-dqqua370 quantize -7.8 1e-5 -> -7.80000
-dqqua371 quantize -7.8 1e-4 -> -7.8000
-dqqua372 quantize -7.8 1e-3 -> -7.800
-dqqua373 quantize -7.8 1e-2 -> -7.80
-dqqua374 quantize -7.8 1e-1 -> -7.8
-dqqua375 quantize -7.8 1e0 -> -8 Inexact Rounded
-dqqua376 quantize -7.8 1e+1 -> -1E+1 Inexact Rounded
-dqqua377 quantize -7.8 1e+2 -> -0E+2 Inexact Rounded
-dqqua378 quantize -7.8 1e+3 -> -0E+3 Inexact Rounded
-
--- some individuals
-dqqua380 quantize 1122334455667788991234567352364.506 1e-2 -> 1122334455667788991234567352364.51 Inexact Rounded
-dqqua381 quantize 11223344556677889912345673523645.06 1e-2 -> 11223344556677889912345673523645.06
-dqqua382 quantize 112233445566778899123456735236450.6 1e-2 -> NaN Invalid_operation
-dqqua383 quantize 1122334455667788991234567352364506 1e-2 -> NaN Invalid_operation
-dqqua384 quantize -1122334455667788991234567352364.506 1e-2 -> -1122334455667788991234567352364.51 Inexact Rounded
-dqqua385 quantize -11223344556677889912345673523645.06 1e-2 -> -11223344556677889912345673523645.06
-dqqua386 quantize -112233445566778899123456735236450.6 1e-2 -> NaN Invalid_operation
-dqqua387 quantize -1122334455667788991234567352364506 1e-2 -> NaN Invalid_operation
-
-rounding: down
-dqqua389 quantize 112233445566778899123456735236450.6 1e-2 -> NaN Invalid_operation
-rounding: half_up
-
--- and a few more from e-mail discussions
-dqqua391 quantize 11223344556677889912345678912.34567 1e-3 -> 11223344556677889912345678912.346 Inexact Rounded
-dqqua392 quantize 112233445566778899123456789123.4567 1e-3 -> 112233445566778899123456789123.457 Inexact Rounded
-dqqua393 quantize 1122334455667788991234567891234567. 1e-3 -> NaN Invalid_operation
-
--- some 9999 round-up cases
-dqqua400 quantize 9.999 1e-5 -> 9.99900
-dqqua401 quantize 9.999 1e-4 -> 9.9990
-dqqua402 quantize 9.999 1e-3 -> 9.999
-dqqua403 quantize 9.999 1e-2 -> 10.00 Inexact Rounded
-dqqua404 quantize 9.999 1e-1 -> 10.0 Inexact Rounded
-dqqua405 quantize 9.999 1e0 -> 10 Inexact Rounded
-dqqua406 quantize 9.999 1e1 -> 1E+1 Inexact Rounded
-dqqua407 quantize 9.999 1e2 -> 0E+2 Inexact Rounded
-
-dqqua410 quantize 0.999 1e-5 -> 0.99900
-dqqua411 quantize 0.999 1e-4 -> 0.9990
-dqqua412 quantize 0.999 1e-3 -> 0.999
-dqqua413 quantize 0.999 1e-2 -> 1.00 Inexact Rounded
-dqqua414 quantize 0.999 1e-1 -> 1.0 Inexact Rounded
-dqqua415 quantize 0.999 1e0 -> 1 Inexact Rounded
-dqqua416 quantize 0.999 1e1 -> 0E+1 Inexact Rounded
-
-dqqua420 quantize 0.0999 1e-5 -> 0.09990
-dqqua421 quantize 0.0999 1e-4 -> 0.0999
-dqqua422 quantize 0.0999 1e-3 -> 0.100 Inexact Rounded
-dqqua423 quantize 0.0999 1e-2 -> 0.10 Inexact Rounded
-dqqua424 quantize 0.0999 1e-1 -> 0.1 Inexact Rounded
-dqqua425 quantize 0.0999 1e0 -> 0 Inexact Rounded
-dqqua426 quantize 0.0999 1e1 -> 0E+1 Inexact Rounded
-
-dqqua430 quantize 0.00999 1e-5 -> 0.00999
-dqqua431 quantize 0.00999 1e-4 -> 0.0100 Inexact Rounded
-dqqua432 quantize 0.00999 1e-3 -> 0.010 Inexact Rounded
-dqqua433 quantize 0.00999 1e-2 -> 0.01 Inexact Rounded
-dqqua434 quantize 0.00999 1e-1 -> 0.0 Inexact Rounded
-dqqua435 quantize 0.00999 1e0 -> 0 Inexact Rounded
-dqqua436 quantize 0.00999 1e1 -> 0E+1 Inexact Rounded
-
-dqqua440 quantize 0.000999 1e-5 -> 0.00100 Inexact Rounded
-dqqua441 quantize 0.000999 1e-4 -> 0.0010 Inexact Rounded
-dqqua442 quantize 0.000999 1e-3 -> 0.001 Inexact Rounded
-dqqua443 quantize 0.000999 1e-2 -> 0.00 Inexact Rounded
-dqqua444 quantize 0.000999 1e-1 -> 0.0 Inexact Rounded
-dqqua445 quantize 0.000999 1e0 -> 0 Inexact Rounded
-dqqua446 quantize 0.000999 1e1 -> 0E+1 Inexact Rounded
-
-dqqua1001 quantize 0.000 0.001 -> 0.000
-dqqua1002 quantize 0.001 0.001 -> 0.001
-dqqua1003 quantize 0.0012 0.001 -> 0.001 Inexact Rounded
-dqqua1004 quantize 0.0018 0.001 -> 0.002 Inexact Rounded
-dqqua1005 quantize 0.501 0.001 -> 0.501
-dqqua1006 quantize 0.5012 0.001 -> 0.501 Inexact Rounded
-dqqua1007 quantize 0.5018 0.001 -> 0.502 Inexact Rounded
-dqqua1008 quantize 0.999 0.001 -> 0.999
-
-dqqua481 quantize 12345678000 1e+3 -> 1.2345678E+10 Rounded
-dqqua482 quantize 1234567800 1e+1 -> 1.23456780E+9 Rounded
-dqqua483 quantize 1234567890 1e+1 -> 1.23456789E+9 Rounded
-dqqua484 quantize 1234567891 1e+1 -> 1.23456789E+9 Inexact Rounded
-dqqua485 quantize 12345678901 1e+2 -> 1.23456789E+10 Inexact Rounded
-dqqua486 quantize 1234567896 1e+1 -> 1.23456790E+9 Inexact Rounded
--- a potential double-round
-dqqua487 quantize 1234.987643 1e-4 -> 1234.9876 Inexact Rounded
-dqqua488 quantize 1234.987647 1e-4 -> 1234.9876 Inexact Rounded
-
-dqqua491 quantize 12345678000 1e+3 -> 1.2345678E+10 Rounded
-dqqua492 quantize 1234567800 1e+1 -> 1.23456780E+9 Rounded
-dqqua493 quantize 1234567890 1e+1 -> 1.23456789E+9 Rounded
-dqqua494 quantize 1234567891 1e+1 -> 1.23456789E+9 Inexact Rounded
-dqqua495 quantize 12345678901 1e+2 -> 1.23456789E+10 Inexact Rounded
-dqqua496 quantize 1234567896 1e+1 -> 1.23456790E+9 Inexact Rounded
-dqqua497 quantize 1234.987643 1e-4 -> 1234.9876 Inexact Rounded
-dqqua498 quantize 1234.987647 1e-4 -> 1234.9876 Inexact Rounded
-
--- Zeros
-dqqua500 quantize 0 1e1 -> 0E+1
-dqqua501 quantize 0 1e0 -> 0
-dqqua502 quantize 0 1e-1 -> 0.0
-dqqua503 quantize 0.0 1e-1 -> 0.0
-dqqua504 quantize 0.0 1e0 -> 0
-dqqua505 quantize 0.0 1e+1 -> 0E+1
-dqqua506 quantize 0E+1 1e-1 -> 0.0
-dqqua507 quantize 0E+1 1e0 -> 0
-dqqua508 quantize 0E+1 1e+1 -> 0E+1
-dqqua509 quantize -0 1e1 -> -0E+1
-dqqua510 quantize -0 1e0 -> -0
-dqqua511 quantize -0 1e-1 -> -0.0
-dqqua512 quantize -0.0 1e-1 -> -0.0
-dqqua513 quantize -0.0 1e0 -> -0
-dqqua514 quantize -0.0 1e+1 -> -0E+1
-dqqua515 quantize -0E+1 1e-1 -> -0.0
-dqqua516 quantize -0E+1 1e0 -> -0
-dqqua517 quantize -0E+1 1e+1 -> -0E+1
--- #519 here once a problem
-dqqua518 quantize 0 0E-3 -> 0.000
-dqqua519 quantize 0 0E-33 -> 0E-33
-dqqua520 quantize 0.00000000000000000000000000000000 0E-33 -> 0E-33
-dqqua521 quantize 0.000000000000000000000000000000000 0E-33 -> 0E-33
-
--- Some non-zeros with lots of padding on the right
-dqqua523 quantize 1 0E-33 -> 1.000000000000000000000000000000000
-dqqua524 quantize 12 0E-32 -> 12.00000000000000000000000000000000
-dqqua525 quantize 123 0E-31 -> 123.0000000000000000000000000000000
-dqqua526 quantize 123 0E-32 -> NaN Invalid_operation
-dqqua527 quantize 123.4 0E-31 -> 123.4000000000000000000000000000000
-dqqua528 quantize 123.4 0E-32 -> NaN Invalid_operation
-
--- Suspicious RHS values
-dqqua530 quantize 1.234 1e359 -> 0E+359 Inexact Rounded
-dqqua531 quantize 123.456 1e359 -> 0E+359 Inexact Rounded
-dqqua532 quantize 1.234 1e359 -> 0E+359 Inexact Rounded
-dqqua533 quantize 123.456 1e359 -> 0E+359 Inexact Rounded
--- next four are "won't fit" overflows
-dqqua536 quantize 1.234 1e-299 -> NaN Invalid_operation
-dqqua537 quantize 123.456 1e-299 -> NaN Invalid_operation
-dqqua538 quantize 1.234 1e-299 -> NaN Invalid_operation
-dqqua539 quantize 123.456 1e-299 -> NaN Invalid_operation
-
-dqqua542 quantize 1.234E+299 1e299 -> 1E+299 Inexact Rounded
-dqqua543 quantize 1.234E+298 1e299 -> 0E+299 Inexact Rounded
-dqqua544 quantize 1.234 1e299 -> 0E+299 Inexact Rounded
-dqqua547 quantize 0 1e-299 -> 0E-299
--- next two are "won't fit" overflows
-dqqua548 quantize 1.234 1e-299 -> NaN Invalid_operation
-dqqua549 quantize 1.234 1e-300 -> NaN Invalid_operation
--- [more below]
-
--- Specials
-dqqua580 quantize Inf -Inf -> Infinity
-dqqua581 quantize Inf 1e-299 -> NaN Invalid_operation
-dqqua582 quantize Inf 1e-1 -> NaN Invalid_operation
-dqqua583 quantize Inf 1e0 -> NaN Invalid_operation
-dqqua584 quantize Inf 1e1 -> NaN Invalid_operation
-dqqua585 quantize Inf 1e299 -> NaN Invalid_operation
-dqqua586 quantize Inf Inf -> Infinity
-dqqua587 quantize -1000 Inf -> NaN Invalid_operation
-dqqua588 quantize -Inf Inf -> -Infinity
-dqqua589 quantize -1 Inf -> NaN Invalid_operation
-dqqua590 quantize 0 Inf -> NaN Invalid_operation
-dqqua591 quantize 1 Inf -> NaN Invalid_operation
-dqqua592 quantize 1000 Inf -> NaN Invalid_operation
-dqqua593 quantize Inf Inf -> Infinity
-dqqua594 quantize Inf 1e-0 -> NaN Invalid_operation
-dqqua595 quantize -0 Inf -> NaN Invalid_operation
-
-dqqua600 quantize -Inf -Inf -> -Infinity
-dqqua601 quantize -Inf 1e-299 -> NaN Invalid_operation
-dqqua602 quantize -Inf 1e-1 -> NaN Invalid_operation
-dqqua603 quantize -Inf 1e0 -> NaN Invalid_operation
-dqqua604 quantize -Inf 1e1 -> NaN Invalid_operation
-dqqua605 quantize -Inf 1e299 -> NaN Invalid_operation
-dqqua606 quantize -Inf Inf -> -Infinity
-dqqua607 quantize -1000 Inf -> NaN Invalid_operation
-dqqua608 quantize -Inf -Inf -> -Infinity
-dqqua609 quantize -1 -Inf -> NaN Invalid_operation
-dqqua610 quantize 0 -Inf -> NaN Invalid_operation
-dqqua611 quantize 1 -Inf -> NaN Invalid_operation
-dqqua612 quantize 1000 -Inf -> NaN Invalid_operation
-dqqua613 quantize Inf -Inf -> Infinity
-dqqua614 quantize -Inf 1e-0 -> NaN Invalid_operation
-dqqua615 quantize -0 -Inf -> NaN Invalid_operation
-
-dqqua621 quantize NaN -Inf -> NaN
-dqqua622 quantize NaN 1e-299 -> NaN
-dqqua623 quantize NaN 1e-1 -> NaN
-dqqua624 quantize NaN 1e0 -> NaN
-dqqua625 quantize NaN 1e1 -> NaN
-dqqua626 quantize NaN 1e299 -> NaN
-dqqua627 quantize NaN Inf -> NaN
-dqqua628 quantize NaN NaN -> NaN
-dqqua629 quantize -Inf NaN -> NaN
-dqqua630 quantize -1000 NaN -> NaN
-dqqua631 quantize -1 NaN -> NaN
-dqqua632 quantize 0 NaN -> NaN
-dqqua633 quantize 1 NaN -> NaN
-dqqua634 quantize 1000 NaN -> NaN
-dqqua635 quantize Inf NaN -> NaN
-dqqua636 quantize NaN 1e-0 -> NaN
-dqqua637 quantize -0 NaN -> NaN
-
-dqqua641 quantize sNaN -Inf -> NaN Invalid_operation
-dqqua642 quantize sNaN 1e-299 -> NaN Invalid_operation
-dqqua643 quantize sNaN 1e-1 -> NaN Invalid_operation
-dqqua644 quantize sNaN 1e0 -> NaN Invalid_operation
-dqqua645 quantize sNaN 1e1 -> NaN Invalid_operation
-dqqua646 quantize sNaN 1e299 -> NaN Invalid_operation
-dqqua647 quantize sNaN NaN -> NaN Invalid_operation
-dqqua648 quantize sNaN sNaN -> NaN Invalid_operation
-dqqua649 quantize NaN sNaN -> NaN Invalid_operation
-dqqua650 quantize -Inf sNaN -> NaN Invalid_operation
-dqqua651 quantize -1000 sNaN -> NaN Invalid_operation
-dqqua652 quantize -1 sNaN -> NaN Invalid_operation
-dqqua653 quantize 0 sNaN -> NaN Invalid_operation
-dqqua654 quantize 1 sNaN -> NaN Invalid_operation
-dqqua655 quantize 1000 sNaN -> NaN Invalid_operation
-dqqua656 quantize Inf sNaN -> NaN Invalid_operation
-dqqua657 quantize NaN sNaN -> NaN Invalid_operation
-dqqua658 quantize sNaN 1e-0 -> NaN Invalid_operation
-dqqua659 quantize -0 sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-dqqua661 quantize NaN9 -Inf -> NaN9
-dqqua662 quantize NaN8 919 -> NaN8
-dqqua663 quantize NaN71 Inf -> NaN71
-dqqua664 quantize NaN6 NaN5 -> NaN6
-dqqua665 quantize -Inf NaN4 -> NaN4
-dqqua666 quantize -919 NaN31 -> NaN31
-dqqua667 quantize Inf NaN2 -> NaN2
-
-dqqua671 quantize sNaN99 -Inf -> NaN99 Invalid_operation
-dqqua672 quantize sNaN98 -11 -> NaN98 Invalid_operation
-dqqua673 quantize sNaN97 NaN -> NaN97 Invalid_operation
-dqqua674 quantize sNaN16 sNaN94 -> NaN16 Invalid_operation
-dqqua675 quantize NaN95 sNaN93 -> NaN93 Invalid_operation
-dqqua676 quantize -Inf sNaN92 -> NaN92 Invalid_operation
-dqqua677 quantize 088 sNaN91 -> NaN91 Invalid_operation
-dqqua678 quantize Inf sNaN90 -> NaN90 Invalid_operation
-dqqua679 quantize NaN sNaN88 -> NaN88 Invalid_operation
-
-dqqua681 quantize -NaN9 -Inf -> -NaN9
-dqqua682 quantize -NaN8 919 -> -NaN8
-dqqua683 quantize -NaN71 Inf -> -NaN71
-dqqua684 quantize -NaN6 -NaN5 -> -NaN6
-dqqua685 quantize -Inf -NaN4 -> -NaN4
-dqqua686 quantize -919 -NaN31 -> -NaN31
-dqqua687 quantize Inf -NaN2 -> -NaN2
-
-dqqua691 quantize -sNaN99 -Inf -> -NaN99 Invalid_operation
-dqqua692 quantize -sNaN98 -11 -> -NaN98 Invalid_operation
-dqqua693 quantize -sNaN97 NaN -> -NaN97 Invalid_operation
-dqqua694 quantize -sNaN16 sNaN94 -> -NaN16 Invalid_operation
-dqqua695 quantize -NaN95 -sNaN93 -> -NaN93 Invalid_operation
-dqqua696 quantize -Inf -sNaN92 -> -NaN92 Invalid_operation
-dqqua697 quantize 088 -sNaN91 -> -NaN91 Invalid_operation
-dqqua698 quantize Inf -sNaN90 -> -NaN90 Invalid_operation
-dqqua699 quantize NaN -sNaN88 -> -NaN88 Invalid_operation
-
--- subnormals and underflow
-dqqua710 quantize 1.00E-6143 1e-6143 -> 1E-6143 Rounded
-dqqua711 quantize 0.1E-6143 2e-6144 -> 1E-6144 Subnormal
-dqqua712 quantize 0.10E-6143 3e-6144 -> 1E-6144 Subnormal Rounded
-dqqua713 quantize 0.100E-6143 4e-6144 -> 1E-6144 Subnormal Rounded
-dqqua714 quantize 0.01E-6143 5e-6145 -> 1E-6145 Subnormal
--- next is rounded to Emin
-dqqua715 quantize 0.999E-6143 1e-6143 -> 1E-6143 Inexact Rounded
-dqqua716 quantize 0.099E-6143 10e-6144 -> 1E-6144 Inexact Rounded Subnormal
-
-dqqua717 quantize 0.009E-6143 1e-6145 -> 1E-6145 Inexact Rounded Subnormal
-dqqua718 quantize 0.001E-6143 1e-6145 -> 0E-6145 Inexact Rounded
-dqqua719 quantize 0.0009E-6143 1e-6145 -> 0E-6145 Inexact Rounded
-dqqua720 quantize 0.0001E-6143 1e-6145 -> 0E-6145 Inexact Rounded
-
-dqqua730 quantize -1.00E-6143 1e-6143 -> -1E-6143 Rounded
-dqqua731 quantize -0.1E-6143 1e-6143 -> -0E-6143 Rounded Inexact
-dqqua732 quantize -0.10E-6143 1e-6143 -> -0E-6143 Rounded Inexact
-dqqua733 quantize -0.100E-6143 1e-6143 -> -0E-6143 Rounded Inexact
-dqqua734 quantize -0.01E-6143 1e-6143 -> -0E-6143 Inexact Rounded
--- next is rounded to Emin
-dqqua735 quantize -0.999E-6143 90e-6143 -> -1E-6143 Inexact Rounded
-dqqua736 quantize -0.099E-6143 -1e-6143 -> -0E-6143 Inexact Rounded
-dqqua737 quantize -0.009E-6143 -1e-6143 -> -0E-6143 Inexact Rounded
-dqqua738 quantize -0.001E-6143 -0e-6143 -> -0E-6143 Inexact Rounded
-dqqua739 quantize -0.0001E-6143 0e-6143 -> -0E-6143 Inexact Rounded
-
-dqqua740 quantize -1.00E-6143 1e-6144 -> -1.0E-6143 Rounded
-dqqua741 quantize -0.1E-6143 1e-6144 -> -1E-6144 Subnormal
-dqqua742 quantize -0.10E-6143 1e-6144 -> -1E-6144 Subnormal Rounded
-dqqua743 quantize -0.100E-6143 1e-6144 -> -1E-6144 Subnormal Rounded
-dqqua744 quantize -0.01E-6143 1e-6144 -> -0E-6144 Inexact Rounded
--- next is rounded to Emin
-dqqua745 quantize -0.999E-6143 1e-6144 -> -1.0E-6143 Inexact Rounded
-dqqua746 quantize -0.099E-6143 1e-6144 -> -1E-6144 Inexact Rounded Subnormal
-dqqua747 quantize -0.009E-6143 1e-6144 -> -0E-6144 Inexact Rounded
-dqqua748 quantize -0.001E-6143 1e-6144 -> -0E-6144 Inexact Rounded
-dqqua749 quantize -0.0001E-6143 1e-6144 -> -0E-6144 Inexact Rounded
-
-dqqua750 quantize -1.00E-6143 1e-6145 -> -1.00E-6143
-dqqua751 quantize -0.1E-6143 1e-6145 -> -1.0E-6144 Subnormal
-dqqua752 quantize -0.10E-6143 1e-6145 -> -1.0E-6144 Subnormal
-dqqua753 quantize -0.100E-6143 1e-6145 -> -1.0E-6144 Subnormal Rounded
-dqqua754 quantize -0.01E-6143 1e-6145 -> -1E-6145 Subnormal
--- next is rounded to Emin
-dqqua755 quantize -0.999E-6143 1e-6145 -> -1.00E-6143 Inexact Rounded
-dqqua756 quantize -0.099E-6143 1e-6145 -> -1.0E-6144 Inexact Rounded Subnormal
-dqqua757 quantize -0.009E-6143 1e-6145 -> -1E-6145 Inexact Rounded Subnormal
-dqqua758 quantize -0.001E-6143 1e-6145 -> -0E-6145 Inexact Rounded
-dqqua759 quantize -0.0001E-6143 1e-6145 -> -0E-6145 Inexact Rounded
-
-dqqua760 quantize -1.00E-6143 1e-6146 -> -1.000E-6143
-dqqua761 quantize -0.1E-6143 1e-6146 -> -1.00E-6144 Subnormal
-dqqua762 quantize -0.10E-6143 1e-6146 -> -1.00E-6144 Subnormal
-dqqua763 quantize -0.100E-6143 1e-6146 -> -1.00E-6144 Subnormal
-dqqua764 quantize -0.01E-6143 1e-6146 -> -1.0E-6145 Subnormal
-dqqua765 quantize -0.999E-6143 1e-6146 -> -9.99E-6144 Subnormal
-dqqua766 quantize -0.099E-6143 1e-6146 -> -9.9E-6145 Subnormal
-dqqua767 quantize -0.009E-6143 1e-6146 -> -9E-6146 Subnormal
-dqqua768 quantize -0.001E-6143 1e-6146 -> -1E-6146 Subnormal
-dqqua769 quantize -0.0001E-6143 1e-6146 -> -0E-6146 Inexact Rounded
-
--- More from Fung Lee
--- the next four would appear to be in error, but they are misleading (the
--- operands will be clamped to a lower exponent) and so are omitted
--- dqqua1021 quantize 8.666666666666000E+6144 1.000000000000000E+6144 -> 8.666666666666000000000000000000000E+6144 Clamped
--- dqqua1022 quantize -8.666666666666000E+6144 1.000000000000000E+6144 -> -8.666666666666000000000000000000000E+6144 Clamped
--- dqqua1027 quantize 8.666666666666000E+323 1E+31 -> NaN Invalid_operation
--- dqqua1030 quantize 8.66666666E+3 1E+3 -> 9E+3 Inexact Rounded
-
--- Int and uInt32 edge values for testing conversions
-dqqua1040 quantize -2147483646 0 -> -2147483646
-dqqua1041 quantize -2147483647 0 -> -2147483647
-dqqua1042 quantize -2147483648 0 -> -2147483648
-dqqua1043 quantize -2147483649 0 -> -2147483649
-dqqua1044 quantize 2147483646 0 -> 2147483646
-dqqua1045 quantize 2147483647 0 -> 2147483647
-dqqua1046 quantize 2147483648 0 -> 2147483648
-dqqua1047 quantize 2147483649 0 -> 2147483649
-dqqua1048 quantize 4294967294 0 -> 4294967294
-dqqua1049 quantize 4294967295 0 -> 4294967295
-dqqua1050 quantize 4294967296 0 -> 4294967296
-dqqua1051 quantize 4294967297 0 -> 4294967297
-
--- Rounding swathe
-rounding: half_even
-dqqua1100 quantize 1.2300 1.00 -> 1.23 Rounded
-dqqua1101 quantize 1.2301 1.00 -> 1.23 Inexact Rounded
-dqqua1102 quantize 1.2310 1.00 -> 1.23 Inexact Rounded
-dqqua1103 quantize 1.2350 1.00 -> 1.24 Inexact Rounded
-dqqua1104 quantize 1.2351 1.00 -> 1.24 Inexact Rounded
-dqqua1105 quantize 1.2450 1.00 -> 1.24 Inexact Rounded
-dqqua1106 quantize 1.2451 1.00 -> 1.25 Inexact Rounded
-dqqua1107 quantize 1.2360 1.00 -> 1.24 Inexact Rounded
-dqqua1108 quantize 1.2370 1.00 -> 1.24 Inexact Rounded
-dqqua1109 quantize 1.2399 1.00 -> 1.24 Inexact Rounded
-
-rounding: half_up
-dqqua1200 quantize 1.2300 1.00 -> 1.23 Rounded
-dqqua1201 quantize 1.2301 1.00 -> 1.23 Inexact Rounded
-dqqua1202 quantize 1.2310 1.00 -> 1.23 Inexact Rounded
-dqqua1203 quantize 1.2350 1.00 -> 1.24 Inexact Rounded
-dqqua1204 quantize 1.2351 1.00 -> 1.24 Inexact Rounded
-dqqua1205 quantize 1.2450 1.00 -> 1.25 Inexact Rounded
-dqqua1206 quantize 1.2451 1.00 -> 1.25 Inexact Rounded
-dqqua1207 quantize 1.2360 1.00 -> 1.24 Inexact Rounded
-dqqua1208 quantize 1.2370 1.00 -> 1.24 Inexact Rounded
-dqqua1209 quantize 1.2399 1.00 -> 1.24 Inexact Rounded
-
-rounding: half_down
-dqqua1300 quantize 1.2300 1.00 -> 1.23 Rounded
-dqqua1301 quantize 1.2301 1.00 -> 1.23 Inexact Rounded
-dqqua1302 quantize 1.2310 1.00 -> 1.23 Inexact Rounded
-dqqua1303 quantize 1.2350 1.00 -> 1.23 Inexact Rounded
-dqqua1304 quantize 1.2351 1.00 -> 1.24 Inexact Rounded
-dqqua1305 quantize 1.2450 1.00 -> 1.24 Inexact Rounded
-dqqua1306 quantize 1.2451 1.00 -> 1.25 Inexact Rounded
-dqqua1307 quantize 1.2360 1.00 -> 1.24 Inexact Rounded
-dqqua1308 quantize 1.2370 1.00 -> 1.24 Inexact Rounded
-dqqua1309 quantize 1.2399 1.00 -> 1.24 Inexact Rounded
-
-rounding: up
-dqqua1400 quantize 1.2300 1.00 -> 1.23 Rounded
-dqqua1401 quantize 1.2301 1.00 -> 1.24 Inexact Rounded
-dqqua1402 quantize 1.2310 1.00 -> 1.24 Inexact Rounded
-dqqua1403 quantize 1.2350 1.00 -> 1.24 Inexact Rounded
-dqqua1404 quantize 1.2351 1.00 -> 1.24 Inexact Rounded
-dqqua1405 quantize 1.2450 1.00 -> 1.25 Inexact Rounded
-dqqua1406 quantize 1.2451 1.00 -> 1.25 Inexact Rounded
-dqqua1407 quantize 1.2360 1.00 -> 1.24 Inexact Rounded
-dqqua1408 quantize 1.2370 1.00 -> 1.24 Inexact Rounded
-dqqua1409 quantize 1.2399 1.00 -> 1.24 Inexact Rounded
-dqqua1411 quantize -1.2399 1.00 -> -1.24 Inexact Rounded
-
-rounding: down
-dqqua1500 quantize 1.2300 1.00 -> 1.23 Rounded
-dqqua1501 quantize 1.2301 1.00 -> 1.23 Inexact Rounded
-dqqua1502 quantize 1.2310 1.00 -> 1.23 Inexact Rounded
-dqqua1503 quantize 1.2350 1.00 -> 1.23 Inexact Rounded
-dqqua1504 quantize 1.2351 1.00 -> 1.23 Inexact Rounded
-dqqua1505 quantize 1.2450 1.00 -> 1.24 Inexact Rounded
-dqqua1506 quantize 1.2451 1.00 -> 1.24 Inexact Rounded
-dqqua1507 quantize 1.2360 1.00 -> 1.23 Inexact Rounded
-dqqua1508 quantize 1.2370 1.00 -> 1.23 Inexact Rounded
-dqqua1509 quantize 1.2399 1.00 -> 1.23 Inexact Rounded
-dqqua1511 quantize -1.2399 1.00 -> -1.23 Inexact Rounded
-
-rounding: ceiling
-dqqua1600 quantize 1.2300 1.00 -> 1.23 Rounded
-dqqua1601 quantize 1.2301 1.00 -> 1.24 Inexact Rounded
-dqqua1602 quantize 1.2310 1.00 -> 1.24 Inexact Rounded
-dqqua1603 quantize 1.2350 1.00 -> 1.24 Inexact Rounded
-dqqua1604 quantize 1.2351 1.00 -> 1.24 Inexact Rounded
-dqqua1605 quantize 1.2450 1.00 -> 1.25 Inexact Rounded
-dqqua1606 quantize 1.2451 1.00 -> 1.25 Inexact Rounded
-dqqua1607 quantize 1.2360 1.00 -> 1.24 Inexact Rounded
-dqqua1608 quantize 1.2370 1.00 -> 1.24 Inexact Rounded
-dqqua1609 quantize 1.2399 1.00 -> 1.24 Inexact Rounded
-dqqua1611 quantize -1.2399 1.00 -> -1.23 Inexact Rounded
-
-rounding: floor
-dqqua1700 quantize 1.2300 1.00 -> 1.23 Rounded
-dqqua1701 quantize 1.2301 1.00 -> 1.23 Inexact Rounded
-dqqua1702 quantize 1.2310 1.00 -> 1.23 Inexact Rounded
-dqqua1703 quantize 1.2350 1.00 -> 1.23 Inexact Rounded
-dqqua1704 quantize 1.2351 1.00 -> 1.23 Inexact Rounded
-dqqua1705 quantize 1.2450 1.00 -> 1.24 Inexact Rounded
-dqqua1706 quantize 1.2451 1.00 -> 1.24 Inexact Rounded
-dqqua1707 quantize 1.2360 1.00 -> 1.23 Inexact Rounded
-dqqua1708 quantize 1.2370 1.00 -> 1.23 Inexact Rounded
-dqqua1709 quantize 1.2399 1.00 -> 1.23 Inexact Rounded
-dqqua1711 quantize -1.2399 1.00 -> -1.24 Inexact Rounded
-
-rounding: 05up
-dqqua1800 quantize 1.2000 1.00 -> 1.20 Rounded
-dqqua1801 quantize 1.2001 1.00 -> 1.21 Inexact Rounded
-dqqua1802 quantize 1.2010 1.00 -> 1.21 Inexact Rounded
-dqqua1803 quantize 1.2050 1.00 -> 1.21 Inexact Rounded
-dqqua1804 quantize 1.2051 1.00 -> 1.21 Inexact Rounded
-dqqua1807 quantize 1.2060 1.00 -> 1.21 Inexact Rounded
-dqqua1808 quantize 1.2070 1.00 -> 1.21 Inexact Rounded
-dqqua1809 quantize 1.2099 1.00 -> 1.21 Inexact Rounded
-dqqua1811 quantize -1.2099 1.00 -> -1.21 Inexact Rounded
-
-dqqua1900 quantize 1.2100 1.00 -> 1.21 Rounded
-dqqua1901 quantize 1.2101 1.00 -> 1.21 Inexact Rounded
-dqqua1902 quantize 1.2110 1.00 -> 1.21 Inexact Rounded
-dqqua1903 quantize 1.2150 1.00 -> 1.21 Inexact Rounded
-dqqua1904 quantize 1.2151 1.00 -> 1.21 Inexact Rounded
-dqqua1907 quantize 1.2160 1.00 -> 1.21 Inexact Rounded
-dqqua1908 quantize 1.2170 1.00 -> 1.21 Inexact Rounded
-dqqua1909 quantize 1.2199 1.00 -> 1.21 Inexact Rounded
-dqqua1911 quantize -1.2199 1.00 -> -1.21 Inexact Rounded
-
-dqqua2000 quantize 1.2400 1.00 -> 1.24 Rounded
-dqqua2001 quantize 1.2401 1.00 -> 1.24 Inexact Rounded
-dqqua2002 quantize 1.2410 1.00 -> 1.24 Inexact Rounded
-dqqua2003 quantize 1.2450 1.00 -> 1.24 Inexact Rounded
-dqqua2004 quantize 1.2451 1.00 -> 1.24 Inexact Rounded
-dqqua2007 quantize 1.2460 1.00 -> 1.24 Inexact Rounded
-dqqua2008 quantize 1.2470 1.00 -> 1.24 Inexact Rounded
-dqqua2009 quantize 1.2499 1.00 -> 1.24 Inexact Rounded
-dqqua2011 quantize -1.2499 1.00 -> -1.24 Inexact Rounded
-
-dqqua2100 quantize 1.2500 1.00 -> 1.25 Rounded
-dqqua2101 quantize 1.2501 1.00 -> 1.26 Inexact Rounded
-dqqua2102 quantize 1.2510 1.00 -> 1.26 Inexact Rounded
-dqqua2103 quantize 1.2550 1.00 -> 1.26 Inexact Rounded
-dqqua2104 quantize 1.2551 1.00 -> 1.26 Inexact Rounded
-dqqua2107 quantize 1.2560 1.00 -> 1.26 Inexact Rounded
-dqqua2108 quantize 1.2570 1.00 -> 1.26 Inexact Rounded
-dqqua2109 quantize 1.2599 1.00 -> 1.26 Inexact Rounded
-dqqua2111 quantize -1.2599 1.00 -> -1.26 Inexact Rounded
-
-dqqua2200 quantize 1.2600 1.00 -> 1.26 Rounded
-dqqua2201 quantize 1.2601 1.00 -> 1.26 Inexact Rounded
-dqqua2202 quantize 1.2610 1.00 -> 1.26 Inexact Rounded
-dqqua2203 quantize 1.2650 1.00 -> 1.26 Inexact Rounded
-dqqua2204 quantize 1.2651 1.00 -> 1.26 Inexact Rounded
-dqqua2207 quantize 1.2660 1.00 -> 1.26 Inexact Rounded
-dqqua2208 quantize 1.2670 1.00 -> 1.26 Inexact Rounded
-dqqua2209 quantize 1.2699 1.00 -> 1.26 Inexact Rounded
-dqqua2211 quantize -1.2699 1.00 -> -1.26 Inexact Rounded
-
-dqqua2300 quantize 1.2900 1.00 -> 1.29 Rounded
-dqqua2301 quantize 1.2901 1.00 -> 1.29 Inexact Rounded
-dqqua2302 quantize 1.2910 1.00 -> 1.29 Inexact Rounded
-dqqua2303 quantize 1.2950 1.00 -> 1.29 Inexact Rounded
-dqqua2304 quantize 1.2951 1.00 -> 1.29 Inexact Rounded
-dqqua2307 quantize 1.2960 1.00 -> 1.29 Inexact Rounded
-dqqua2308 quantize 1.2970 1.00 -> 1.29 Inexact Rounded
-dqqua2309 quantize 1.2999 1.00 -> 1.29 Inexact Rounded
-dqqua2311 quantize -1.2999 1.00 -> -1.29 Inexact Rounded
-
--- Null tests
-dqqua998 quantize 10 # -> NaN Invalid_operation
-dqqua999 quantize # 1e10 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- dqQuantize.decTest -- decQuad quantize operation -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- Most of the tests here assume a "regular pattern", where the +-- sign and coefficient are +1. +-- 2004.03.15 Underflow for quantize is suppressed +-- 2005.06.08 More extensive tests for 'does not fit' +-- [Forked from quantize.decTest 2006.11.25] + +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +-- sanity checks +dqqua001 quantize 0 1e0 -> 0 +dqqua002 quantize 1 1e0 -> 1 +dqqua003 quantize 0.1 1e+2 -> 0E+2 Inexact Rounded +dqqua005 quantize 0.1 1e+1 -> 0E+1 Inexact Rounded +dqqua006 quantize 0.1 1e0 -> 0 Inexact Rounded +dqqua007 quantize 0.1 1e-1 -> 0.1 +dqqua008 quantize 0.1 1e-2 -> 0.10 +dqqua009 quantize 0.1 1e-3 -> 0.100 +dqqua010 quantize 0.9 1e+2 -> 0E+2 Inexact Rounded +dqqua011 quantize 0.9 1e+1 -> 0E+1 Inexact Rounded +dqqua012 quantize 0.9 1e+0 -> 1 Inexact Rounded +dqqua013 quantize 0.9 1e-1 -> 0.9 +dqqua014 quantize 0.9 1e-2 -> 0.90 +dqqua015 quantize 0.9 1e-3 -> 0.900 +-- negatives +dqqua021 quantize -0 1e0 -> -0 +dqqua022 quantize -1 1e0 -> -1 +dqqua023 quantize -0.1 1e+2 -> -0E+2 Inexact Rounded +dqqua025 quantize -0.1 1e+1 -> -0E+1 Inexact Rounded +dqqua026 quantize -0.1 1e0 -> -0 Inexact Rounded +dqqua027 quantize -0.1 1e-1 -> -0.1 +dqqua028 quantize -0.1 1e-2 -> -0.10 +dqqua029 quantize -0.1 1e-3 -> -0.100 +dqqua030 quantize -0.9 1e+2 -> -0E+2 Inexact Rounded +dqqua031 quantize -0.9 1e+1 -> -0E+1 Inexact Rounded +dqqua032 quantize -0.9 1e+0 -> -1 Inexact Rounded +dqqua033 quantize -0.9 1e-1 -> -0.9 +dqqua034 quantize -0.9 1e-2 -> -0.90 +dqqua035 quantize -0.9 1e-3 -> -0.900 +dqqua036 quantize -0.5 1e+2 -> -0E+2 Inexact Rounded +dqqua037 quantize -0.5 1e+1 -> -0E+1 Inexact Rounded +dqqua038 quantize -0.5 1e+0 -> -0 Inexact Rounded +dqqua039 quantize -0.5 1e-1 -> -0.5 +dqqua040 quantize -0.5 1e-2 -> -0.50 +dqqua041 quantize -0.5 1e-3 -> -0.500 +dqqua042 quantize -0.9 1e+2 -> -0E+2 Inexact Rounded +dqqua043 quantize -0.9 1e+1 -> -0E+1 Inexact Rounded +dqqua044 quantize -0.9 1e+0 -> -1 Inexact Rounded +dqqua045 quantize -0.9 1e-1 -> -0.9 +dqqua046 quantize -0.9 1e-2 -> -0.90 +dqqua047 quantize -0.9 1e-3 -> -0.900 + +-- examples from Specification +dqqua060 quantize 2.17 0.001 -> 2.170 +dqqua061 quantize 2.17 0.01 -> 2.17 +dqqua062 quantize 2.17 0.1 -> 2.2 Inexact Rounded +dqqua063 quantize 2.17 1e+0 -> 2 Inexact Rounded +dqqua064 quantize 2.17 1e+1 -> 0E+1 Inexact Rounded +dqqua065 quantize -Inf Inf -> -Infinity +dqqua066 quantize 2 Inf -> NaN Invalid_operation +dqqua067 quantize -0.1 1 -> -0 Inexact Rounded +dqqua068 quantize -0 1e+5 -> -0E+5 +dqqua069 quantize +123451234567899876543216789012345.6 1e-2 -> NaN Invalid_operation +dqqua070 quantize -987651234567899876543214335236450.6 1e-2 -> NaN Invalid_operation +dqqua071 quantize 217 1e-1 -> 217.0 +dqqua072 quantize 217 1e+0 -> 217 +dqqua073 quantize 217 1e+1 -> 2.2E+2 Inexact Rounded +dqqua074 quantize 217 1e+2 -> 2E+2 Inexact Rounded + +-- general tests .. +dqqua089 quantize 12 1e+4 -> 0E+4 Inexact Rounded +dqqua090 quantize 12 1e+3 -> 0E+3 Inexact Rounded +dqqua091 quantize 12 1e+2 -> 0E+2 Inexact Rounded +dqqua092 quantize 12 1e+1 -> 1E+1 Inexact Rounded +dqqua093 quantize 1.2345 1e-2 -> 1.23 Inexact Rounded +dqqua094 quantize 1.2355 1e-2 -> 1.24 Inexact Rounded +dqqua095 quantize 1.2345 1e-6 -> 1.234500 +dqqua096 quantize 9.9999 1e-2 -> 10.00 Inexact Rounded +dqqua097 quantize 0.0001 1e-2 -> 0.00 Inexact Rounded +dqqua098 quantize 0.001 1e-2 -> 0.00 Inexact Rounded +dqqua099 quantize 0.009 1e-2 -> 0.01 Inexact Rounded +dqqua100 quantize 92 1e+2 -> 1E+2 Inexact Rounded + +dqqua101 quantize -1 1e0 -> -1 +dqqua102 quantize -1 1e-1 -> -1.0 +dqqua103 quantize -1 1e-2 -> -1.00 +dqqua104 quantize 0 1e0 -> 0 +dqqua105 quantize 0 1e-1 -> 0.0 +dqqua106 quantize 0 1e-2 -> 0.00 +dqqua107 quantize 0.00 1e0 -> 0 +dqqua108 quantize 0 1e+1 -> 0E+1 +dqqua109 quantize 0 1e+2 -> 0E+2 +dqqua110 quantize +1 1e0 -> 1 +dqqua111 quantize +1 1e-1 -> 1.0 +dqqua112 quantize +1 1e-2 -> 1.00 + +dqqua120 quantize 1.04 1e-3 -> 1.040 +dqqua121 quantize 1.04 1e-2 -> 1.04 +dqqua122 quantize 1.04 1e-1 -> 1.0 Inexact Rounded +dqqua123 quantize 1.04 1e0 -> 1 Inexact Rounded +dqqua124 quantize 1.05 1e-3 -> 1.050 +dqqua125 quantize 1.05 1e-2 -> 1.05 +dqqua126 quantize 1.05 1e-1 -> 1.0 Inexact Rounded +dqqua131 quantize 1.05 1e0 -> 1 Inexact Rounded +dqqua132 quantize 1.06 1e-3 -> 1.060 +dqqua133 quantize 1.06 1e-2 -> 1.06 +dqqua134 quantize 1.06 1e-1 -> 1.1 Inexact Rounded +dqqua135 quantize 1.06 1e0 -> 1 Inexact Rounded + +dqqua140 quantize -10 1e-2 -> -10.00 +dqqua141 quantize +1 1e-2 -> 1.00 +dqqua142 quantize +10 1e-2 -> 10.00 +dqqua143 quantize 1E+37 1e-2 -> NaN Invalid_operation +dqqua144 quantize 1E-37 1e-2 -> 0.00 Inexact Rounded +dqqua145 quantize 1E-3 1e-2 -> 0.00 Inexact Rounded +dqqua146 quantize 1E-2 1e-2 -> 0.01 +dqqua147 quantize 1E-1 1e-2 -> 0.10 +dqqua148 quantize 0E-37 1e-2 -> 0.00 + +dqqua150 quantize 1.0600 1e-5 -> 1.06000 +dqqua151 quantize 1.0600 1e-4 -> 1.0600 +dqqua152 quantize 1.0600 1e-3 -> 1.060 Rounded +dqqua153 quantize 1.0600 1e-2 -> 1.06 Rounded +dqqua154 quantize 1.0600 1e-1 -> 1.1 Inexact Rounded +dqqua155 quantize 1.0600 1e0 -> 1 Inexact Rounded + +-- a couple where rounding was different in base tests +rounding: half_up +dqqua157 quantize -0.5 1e+0 -> -1 Inexact Rounded +dqqua158 quantize 1.05 1e-1 -> 1.1 Inexact Rounded +dqqua159 quantize 1.06 1e0 -> 1 Inexact Rounded +rounding: half_even + +-- base tests with non-1 coefficients +dqqua161 quantize 0 -9e0 -> 0 +dqqua162 quantize 1 -7e0 -> 1 +dqqua163 quantize 0.1 -1e+2 -> 0E+2 Inexact Rounded +dqqua165 quantize 0.1 0e+1 -> 0E+1 Inexact Rounded +dqqua166 quantize 0.1 2e0 -> 0 Inexact Rounded +dqqua167 quantize 0.1 3e-1 -> 0.1 +dqqua168 quantize 0.1 44e-2 -> 0.10 +dqqua169 quantize 0.1 555e-3 -> 0.100 +dqqua170 quantize 0.9 6666e+2 -> 0E+2 Inexact Rounded +dqqua171 quantize 0.9 -777e+1 -> 0E+1 Inexact Rounded +dqqua172 quantize 0.9 -88e+0 -> 1 Inexact Rounded +dqqua173 quantize 0.9 -9e-1 -> 0.9 +dqqua174 quantize 0.9 0e-2 -> 0.90 +dqqua175 quantize 0.9 1.1e-3 -> 0.9000 +-- negatives +dqqua181 quantize -0 1.1e0 -> -0.0 +dqqua182 quantize -1 -1e0 -> -1 +dqqua183 quantize -0.1 11e+2 -> -0E+2 Inexact Rounded +dqqua185 quantize -0.1 111e+1 -> -0E+1 Inexact Rounded +dqqua186 quantize -0.1 71e0 -> -0 Inexact Rounded +dqqua187 quantize -0.1 -91e-1 -> -0.1 +dqqua188 quantize -0.1 -.1e-2 -> -0.100 +dqqua189 quantize -0.1 -1e-3 -> -0.100 +dqqua190 quantize -0.9 0e+2 -> -0E+2 Inexact Rounded +dqqua191 quantize -0.9 -0e+1 -> -0E+1 Inexact Rounded +dqqua192 quantize -0.9 -10e+0 -> -1 Inexact Rounded +dqqua193 quantize -0.9 100e-1 -> -0.9 +dqqua194 quantize -0.9 999e-2 -> -0.90 + +-- +ve exponents .. +dqqua201 quantize -1 1e+0 -> -1 +dqqua202 quantize -1 1e+1 -> -0E+1 Inexact Rounded +dqqua203 quantize -1 1e+2 -> -0E+2 Inexact Rounded +dqqua204 quantize 0 1e+0 -> 0 +dqqua205 quantize 0 1e+1 -> 0E+1 +dqqua206 quantize 0 1e+2 -> 0E+2 +dqqua207 quantize +1 1e+0 -> 1 +dqqua208 quantize +1 1e+1 -> 0E+1 Inexact Rounded +dqqua209 quantize +1 1e+2 -> 0E+2 Inexact Rounded + +dqqua220 quantize 1.04 1e+3 -> 0E+3 Inexact Rounded +dqqua221 quantize 1.04 1e+2 -> 0E+2 Inexact Rounded +dqqua222 quantize 1.04 1e+1 -> 0E+1 Inexact Rounded +dqqua223 quantize 1.04 1e+0 -> 1 Inexact Rounded +dqqua224 quantize 1.05 1e+3 -> 0E+3 Inexact Rounded +dqqua225 quantize 1.05 1e+2 -> 0E+2 Inexact Rounded +dqqua226 quantize 1.05 1e+1 -> 0E+1 Inexact Rounded +dqqua227 quantize 1.05 1e+0 -> 1 Inexact Rounded +dqqua228 quantize 1.05 1e+3 -> 0E+3 Inexact Rounded +dqqua229 quantize 1.05 1e+2 -> 0E+2 Inexact Rounded +dqqua230 quantize 1.05 1e+1 -> 0E+1 Inexact Rounded +dqqua231 quantize 1.05 1e+0 -> 1 Inexact Rounded +dqqua232 quantize 1.06 1e+3 -> 0E+3 Inexact Rounded +dqqua233 quantize 1.06 1e+2 -> 0E+2 Inexact Rounded +dqqua234 quantize 1.06 1e+1 -> 0E+1 Inexact Rounded +dqqua235 quantize 1.06 1e+0 -> 1 Inexact Rounded + +dqqua240 quantize -10 1e+1 -> -1E+1 Rounded +dqqua241 quantize +1 1e+1 -> 0E+1 Inexact Rounded +dqqua242 quantize +10 1e+1 -> 1E+1 Rounded +dqqua243 quantize 1E+1 1e+1 -> 1E+1 -- underneath this is E+1 +dqqua244 quantize 1E+2 1e+1 -> 1.0E+2 -- underneath this is E+1 +dqqua245 quantize 1E+3 1e+1 -> 1.00E+3 -- underneath this is E+1 +dqqua246 quantize 1E+4 1e+1 -> 1.000E+4 -- underneath this is E+1 +dqqua247 quantize 1E+5 1e+1 -> 1.0000E+5 -- underneath this is E+1 +dqqua248 quantize 1E+6 1e+1 -> 1.00000E+6 -- underneath this is E+1 +dqqua249 quantize 1E+7 1e+1 -> 1.000000E+7 -- underneath this is E+1 +dqqua250 quantize 1E+8 1e+1 -> 1.0000000E+8 -- underneath this is E+1 +dqqua251 quantize 1E+9 1e+1 -> 1.00000000E+9 -- underneath this is E+1 +-- next one tries to add 9 zeros +dqqua252 quantize 1E+37 1e+1 -> NaN Invalid_operation +dqqua253 quantize 1E-37 1e+1 -> 0E+1 Inexact Rounded +dqqua254 quantize 1E-2 1e+1 -> 0E+1 Inexact Rounded +dqqua255 quantize 0E-37 1e+1 -> 0E+1 +dqqua256 quantize -0E-37 1e+1 -> -0E+1 +dqqua257 quantize -0E-1 1e+1 -> -0E+1 +dqqua258 quantize -0 1e+1 -> -0E+1 +dqqua259 quantize -0E+1 1e+1 -> -0E+1 + +dqqua260 quantize -10 1e+2 -> -0E+2 Inexact Rounded +dqqua261 quantize +1 1e+2 -> 0E+2 Inexact Rounded +dqqua262 quantize +10 1e+2 -> 0E+2 Inexact Rounded +dqqua263 quantize 1E+1 1e+2 -> 0E+2 Inexact Rounded +dqqua264 quantize 1E+2 1e+2 -> 1E+2 +dqqua265 quantize 1E+3 1e+2 -> 1.0E+3 +dqqua266 quantize 1E+4 1e+2 -> 1.00E+4 +dqqua267 quantize 1E+5 1e+2 -> 1.000E+5 +dqqua268 quantize 1E+6 1e+2 -> 1.0000E+6 +dqqua269 quantize 1E+7 1e+2 -> 1.00000E+7 +dqqua270 quantize 1E+8 1e+2 -> 1.000000E+8 +dqqua271 quantize 1E+9 1e+2 -> 1.0000000E+9 +dqqua272 quantize 1E+10 1e+2 -> 1.00000000E+10 +dqqua273 quantize 1E-10 1e+2 -> 0E+2 Inexact Rounded +dqqua274 quantize 1E-2 1e+2 -> 0E+2 Inexact Rounded +dqqua275 quantize 0E-10 1e+2 -> 0E+2 + +dqqua280 quantize -10 1e+3 -> -0E+3 Inexact Rounded +dqqua281 quantize +1 1e+3 -> 0E+3 Inexact Rounded +dqqua282 quantize +10 1e+3 -> 0E+3 Inexact Rounded +dqqua283 quantize 1E+1 1e+3 -> 0E+3 Inexact Rounded +dqqua284 quantize 1E+2 1e+3 -> 0E+3 Inexact Rounded +dqqua285 quantize 1E+3 1e+3 -> 1E+3 +dqqua286 quantize 1E+4 1e+3 -> 1.0E+4 +dqqua287 quantize 1E+5 1e+3 -> 1.00E+5 +dqqua288 quantize 1E+6 1e+3 -> 1.000E+6 +dqqua289 quantize 1E+7 1e+3 -> 1.0000E+7 +dqqua290 quantize 1E+8 1e+3 -> 1.00000E+8 +dqqua291 quantize 1E+9 1e+3 -> 1.000000E+9 +dqqua292 quantize 1E+10 1e+3 -> 1.0000000E+10 +dqqua293 quantize 1E-10 1e+3 -> 0E+3 Inexact Rounded +dqqua294 quantize 1E-2 1e+3 -> 0E+3 Inexact Rounded +dqqua295 quantize 0E-10 1e+3 -> 0E+3 + +-- round up from below [sign wrong in JIT compiler once] +dqqua300 quantize 0.0078 1e-5 -> 0.00780 +dqqua301 quantize 0.0078 1e-4 -> 0.0078 +dqqua302 quantize 0.0078 1e-3 -> 0.008 Inexact Rounded +dqqua303 quantize 0.0078 1e-2 -> 0.01 Inexact Rounded +dqqua304 quantize 0.0078 1e-1 -> 0.0 Inexact Rounded +dqqua305 quantize 0.0078 1e0 -> 0 Inexact Rounded +dqqua306 quantize 0.0078 1e+1 -> 0E+1 Inexact Rounded +dqqua307 quantize 0.0078 1e+2 -> 0E+2 Inexact Rounded + +dqqua310 quantize -0.0078 1e-5 -> -0.00780 +dqqua311 quantize -0.0078 1e-4 -> -0.0078 +dqqua312 quantize -0.0078 1e-3 -> -0.008 Inexact Rounded +dqqua313 quantize -0.0078 1e-2 -> -0.01 Inexact Rounded +dqqua314 quantize -0.0078 1e-1 -> -0.0 Inexact Rounded +dqqua315 quantize -0.0078 1e0 -> -0 Inexact Rounded +dqqua316 quantize -0.0078 1e+1 -> -0E+1 Inexact Rounded +dqqua317 quantize -0.0078 1e+2 -> -0E+2 Inexact Rounded + +dqqua320 quantize 0.078 1e-5 -> 0.07800 +dqqua321 quantize 0.078 1e-4 -> 0.0780 +dqqua322 quantize 0.078 1e-3 -> 0.078 +dqqua323 quantize 0.078 1e-2 -> 0.08 Inexact Rounded +dqqua324 quantize 0.078 1e-1 -> 0.1 Inexact Rounded +dqqua325 quantize 0.078 1e0 -> 0 Inexact Rounded +dqqua326 quantize 0.078 1e+1 -> 0E+1 Inexact Rounded +dqqua327 quantize 0.078 1e+2 -> 0E+2 Inexact Rounded + +dqqua330 quantize -0.078 1e-5 -> -0.07800 +dqqua331 quantize -0.078 1e-4 -> -0.0780 +dqqua332 quantize -0.078 1e-3 -> -0.078 +dqqua333 quantize -0.078 1e-2 -> -0.08 Inexact Rounded +dqqua334 quantize -0.078 1e-1 -> -0.1 Inexact Rounded +dqqua335 quantize -0.078 1e0 -> -0 Inexact Rounded +dqqua336 quantize -0.078 1e+1 -> -0E+1 Inexact Rounded +dqqua337 quantize -0.078 1e+2 -> -0E+2 Inexact Rounded + +dqqua340 quantize 0.78 1e-5 -> 0.78000 +dqqua341 quantize 0.78 1e-4 -> 0.7800 +dqqua342 quantize 0.78 1e-3 -> 0.780 +dqqua343 quantize 0.78 1e-2 -> 0.78 +dqqua344 quantize 0.78 1e-1 -> 0.8 Inexact Rounded +dqqua345 quantize 0.78 1e0 -> 1 Inexact Rounded +dqqua346 quantize 0.78 1e+1 -> 0E+1 Inexact Rounded +dqqua347 quantize 0.78 1e+2 -> 0E+2 Inexact Rounded + +dqqua350 quantize -0.78 1e-5 -> -0.78000 +dqqua351 quantize -0.78 1e-4 -> -0.7800 +dqqua352 quantize -0.78 1e-3 -> -0.780 +dqqua353 quantize -0.78 1e-2 -> -0.78 +dqqua354 quantize -0.78 1e-1 -> -0.8 Inexact Rounded +dqqua355 quantize -0.78 1e0 -> -1 Inexact Rounded +dqqua356 quantize -0.78 1e+1 -> -0E+1 Inexact Rounded +dqqua357 quantize -0.78 1e+2 -> -0E+2 Inexact Rounded + +dqqua360 quantize 7.8 1e-5 -> 7.80000 +dqqua361 quantize 7.8 1e-4 -> 7.8000 +dqqua362 quantize 7.8 1e-3 -> 7.800 +dqqua363 quantize 7.8 1e-2 -> 7.80 +dqqua364 quantize 7.8 1e-1 -> 7.8 +dqqua365 quantize 7.8 1e0 -> 8 Inexact Rounded +dqqua366 quantize 7.8 1e+1 -> 1E+1 Inexact Rounded +dqqua367 quantize 7.8 1e+2 -> 0E+2 Inexact Rounded +dqqua368 quantize 7.8 1e+3 -> 0E+3 Inexact Rounded + +dqqua370 quantize -7.8 1e-5 -> -7.80000 +dqqua371 quantize -7.8 1e-4 -> -7.8000 +dqqua372 quantize -7.8 1e-3 -> -7.800 +dqqua373 quantize -7.8 1e-2 -> -7.80 +dqqua374 quantize -7.8 1e-1 -> -7.8 +dqqua375 quantize -7.8 1e0 -> -8 Inexact Rounded +dqqua376 quantize -7.8 1e+1 -> -1E+1 Inexact Rounded +dqqua377 quantize -7.8 1e+2 -> -0E+2 Inexact Rounded +dqqua378 quantize -7.8 1e+3 -> -0E+3 Inexact Rounded + +-- some individuals +dqqua380 quantize 1122334455667788991234567352364.506 1e-2 -> 1122334455667788991234567352364.51 Inexact Rounded +dqqua381 quantize 11223344556677889912345673523645.06 1e-2 -> 11223344556677889912345673523645.06 +dqqua382 quantize 112233445566778899123456735236450.6 1e-2 -> NaN Invalid_operation +dqqua383 quantize 1122334455667788991234567352364506 1e-2 -> NaN Invalid_operation +dqqua384 quantize -1122334455667788991234567352364.506 1e-2 -> -1122334455667788991234567352364.51 Inexact Rounded +dqqua385 quantize -11223344556677889912345673523645.06 1e-2 -> -11223344556677889912345673523645.06 +dqqua386 quantize -112233445566778899123456735236450.6 1e-2 -> NaN Invalid_operation +dqqua387 quantize -1122334455667788991234567352364506 1e-2 -> NaN Invalid_operation + +rounding: down +dqqua389 quantize 112233445566778899123456735236450.6 1e-2 -> NaN Invalid_operation +rounding: half_up + +-- and a few more from e-mail discussions +dqqua391 quantize 11223344556677889912345678912.34567 1e-3 -> 11223344556677889912345678912.346 Inexact Rounded +dqqua392 quantize 112233445566778899123456789123.4567 1e-3 -> 112233445566778899123456789123.457 Inexact Rounded +dqqua393 quantize 1122334455667788991234567891234567. 1e-3 -> NaN Invalid_operation + +-- some 9999 round-up cases +dqqua400 quantize 9.999 1e-5 -> 9.99900 +dqqua401 quantize 9.999 1e-4 -> 9.9990 +dqqua402 quantize 9.999 1e-3 -> 9.999 +dqqua403 quantize 9.999 1e-2 -> 10.00 Inexact Rounded +dqqua404 quantize 9.999 1e-1 -> 10.0 Inexact Rounded +dqqua405 quantize 9.999 1e0 -> 10 Inexact Rounded +dqqua406 quantize 9.999 1e1 -> 1E+1 Inexact Rounded +dqqua407 quantize 9.999 1e2 -> 0E+2 Inexact Rounded + +dqqua410 quantize 0.999 1e-5 -> 0.99900 +dqqua411 quantize 0.999 1e-4 -> 0.9990 +dqqua412 quantize 0.999 1e-3 -> 0.999 +dqqua413 quantize 0.999 1e-2 -> 1.00 Inexact Rounded +dqqua414 quantize 0.999 1e-1 -> 1.0 Inexact Rounded +dqqua415 quantize 0.999 1e0 -> 1 Inexact Rounded +dqqua416 quantize 0.999 1e1 -> 0E+1 Inexact Rounded + +dqqua420 quantize 0.0999 1e-5 -> 0.09990 +dqqua421 quantize 0.0999 1e-4 -> 0.0999 +dqqua422 quantize 0.0999 1e-3 -> 0.100 Inexact Rounded +dqqua423 quantize 0.0999 1e-2 -> 0.10 Inexact Rounded +dqqua424 quantize 0.0999 1e-1 -> 0.1 Inexact Rounded +dqqua425 quantize 0.0999 1e0 -> 0 Inexact Rounded +dqqua426 quantize 0.0999 1e1 -> 0E+1 Inexact Rounded + +dqqua430 quantize 0.00999 1e-5 -> 0.00999 +dqqua431 quantize 0.00999 1e-4 -> 0.0100 Inexact Rounded +dqqua432 quantize 0.00999 1e-3 -> 0.010 Inexact Rounded +dqqua433 quantize 0.00999 1e-2 -> 0.01 Inexact Rounded +dqqua434 quantize 0.00999 1e-1 -> 0.0 Inexact Rounded +dqqua435 quantize 0.00999 1e0 -> 0 Inexact Rounded +dqqua436 quantize 0.00999 1e1 -> 0E+1 Inexact Rounded + +dqqua440 quantize 0.000999 1e-5 -> 0.00100 Inexact Rounded +dqqua441 quantize 0.000999 1e-4 -> 0.0010 Inexact Rounded +dqqua442 quantize 0.000999 1e-3 -> 0.001 Inexact Rounded +dqqua443 quantize 0.000999 1e-2 -> 0.00 Inexact Rounded +dqqua444 quantize 0.000999 1e-1 -> 0.0 Inexact Rounded +dqqua445 quantize 0.000999 1e0 -> 0 Inexact Rounded +dqqua446 quantize 0.000999 1e1 -> 0E+1 Inexact Rounded + +dqqua1001 quantize 0.000 0.001 -> 0.000 +dqqua1002 quantize 0.001 0.001 -> 0.001 +dqqua1003 quantize 0.0012 0.001 -> 0.001 Inexact Rounded +dqqua1004 quantize 0.0018 0.001 -> 0.002 Inexact Rounded +dqqua1005 quantize 0.501 0.001 -> 0.501 +dqqua1006 quantize 0.5012 0.001 -> 0.501 Inexact Rounded +dqqua1007 quantize 0.5018 0.001 -> 0.502 Inexact Rounded +dqqua1008 quantize 0.999 0.001 -> 0.999 + +dqqua481 quantize 12345678000 1e+3 -> 1.2345678E+10 Rounded +dqqua482 quantize 1234567800 1e+1 -> 1.23456780E+9 Rounded +dqqua483 quantize 1234567890 1e+1 -> 1.23456789E+9 Rounded +dqqua484 quantize 1234567891 1e+1 -> 1.23456789E+9 Inexact Rounded +dqqua485 quantize 12345678901 1e+2 -> 1.23456789E+10 Inexact Rounded +dqqua486 quantize 1234567896 1e+1 -> 1.23456790E+9 Inexact Rounded +-- a potential double-round +dqqua487 quantize 1234.987643 1e-4 -> 1234.9876 Inexact Rounded +dqqua488 quantize 1234.987647 1e-4 -> 1234.9876 Inexact Rounded + +dqqua491 quantize 12345678000 1e+3 -> 1.2345678E+10 Rounded +dqqua492 quantize 1234567800 1e+1 -> 1.23456780E+9 Rounded +dqqua493 quantize 1234567890 1e+1 -> 1.23456789E+9 Rounded +dqqua494 quantize 1234567891 1e+1 -> 1.23456789E+9 Inexact Rounded +dqqua495 quantize 12345678901 1e+2 -> 1.23456789E+10 Inexact Rounded +dqqua496 quantize 1234567896 1e+1 -> 1.23456790E+9 Inexact Rounded +dqqua497 quantize 1234.987643 1e-4 -> 1234.9876 Inexact Rounded +dqqua498 quantize 1234.987647 1e-4 -> 1234.9876 Inexact Rounded + +-- Zeros +dqqua500 quantize 0 1e1 -> 0E+1 +dqqua501 quantize 0 1e0 -> 0 +dqqua502 quantize 0 1e-1 -> 0.0 +dqqua503 quantize 0.0 1e-1 -> 0.0 +dqqua504 quantize 0.0 1e0 -> 0 +dqqua505 quantize 0.0 1e+1 -> 0E+1 +dqqua506 quantize 0E+1 1e-1 -> 0.0 +dqqua507 quantize 0E+1 1e0 -> 0 +dqqua508 quantize 0E+1 1e+1 -> 0E+1 +dqqua509 quantize -0 1e1 -> -0E+1 +dqqua510 quantize -0 1e0 -> -0 +dqqua511 quantize -0 1e-1 -> -0.0 +dqqua512 quantize -0.0 1e-1 -> -0.0 +dqqua513 quantize -0.0 1e0 -> -0 +dqqua514 quantize -0.0 1e+1 -> -0E+1 +dqqua515 quantize -0E+1 1e-1 -> -0.0 +dqqua516 quantize -0E+1 1e0 -> -0 +dqqua517 quantize -0E+1 1e+1 -> -0E+1 +-- #519 here once a problem +dqqua518 quantize 0 0E-3 -> 0.000 +dqqua519 quantize 0 0E-33 -> 0E-33 +dqqua520 quantize 0.00000000000000000000000000000000 0E-33 -> 0E-33 +dqqua521 quantize 0.000000000000000000000000000000000 0E-33 -> 0E-33 + +-- Some non-zeros with lots of padding on the right +dqqua523 quantize 1 0E-33 -> 1.000000000000000000000000000000000 +dqqua524 quantize 12 0E-32 -> 12.00000000000000000000000000000000 +dqqua525 quantize 123 0E-31 -> 123.0000000000000000000000000000000 +dqqua526 quantize 123 0E-32 -> NaN Invalid_operation +dqqua527 quantize 123.4 0E-31 -> 123.4000000000000000000000000000000 +dqqua528 quantize 123.4 0E-32 -> NaN Invalid_operation + +-- Suspicious RHS values +dqqua530 quantize 1.234 1e359 -> 0E+359 Inexact Rounded +dqqua531 quantize 123.456 1e359 -> 0E+359 Inexact Rounded +dqqua532 quantize 1.234 1e359 -> 0E+359 Inexact Rounded +dqqua533 quantize 123.456 1e359 -> 0E+359 Inexact Rounded +-- next four are "won't fit" overflows +dqqua536 quantize 1.234 1e-299 -> NaN Invalid_operation +dqqua537 quantize 123.456 1e-299 -> NaN Invalid_operation +dqqua538 quantize 1.234 1e-299 -> NaN Invalid_operation +dqqua539 quantize 123.456 1e-299 -> NaN Invalid_operation + +dqqua542 quantize 1.234E+299 1e299 -> 1E+299 Inexact Rounded +dqqua543 quantize 1.234E+298 1e299 -> 0E+299 Inexact Rounded +dqqua544 quantize 1.234 1e299 -> 0E+299 Inexact Rounded +dqqua547 quantize 0 1e-299 -> 0E-299 +-- next two are "won't fit" overflows +dqqua548 quantize 1.234 1e-299 -> NaN Invalid_operation +dqqua549 quantize 1.234 1e-300 -> NaN Invalid_operation +-- [more below] + +-- Specials +dqqua580 quantize Inf -Inf -> Infinity +dqqua581 quantize Inf 1e-299 -> NaN Invalid_operation +dqqua582 quantize Inf 1e-1 -> NaN Invalid_operation +dqqua583 quantize Inf 1e0 -> NaN Invalid_operation +dqqua584 quantize Inf 1e1 -> NaN Invalid_operation +dqqua585 quantize Inf 1e299 -> NaN Invalid_operation +dqqua586 quantize Inf Inf -> Infinity +dqqua587 quantize -1000 Inf -> NaN Invalid_operation +dqqua588 quantize -Inf Inf -> -Infinity +dqqua589 quantize -1 Inf -> NaN Invalid_operation +dqqua590 quantize 0 Inf -> NaN Invalid_operation +dqqua591 quantize 1 Inf -> NaN Invalid_operation +dqqua592 quantize 1000 Inf -> NaN Invalid_operation +dqqua593 quantize Inf Inf -> Infinity +dqqua594 quantize Inf 1e-0 -> NaN Invalid_operation +dqqua595 quantize -0 Inf -> NaN Invalid_operation + +dqqua600 quantize -Inf -Inf -> -Infinity +dqqua601 quantize -Inf 1e-299 -> NaN Invalid_operation +dqqua602 quantize -Inf 1e-1 -> NaN Invalid_operation +dqqua603 quantize -Inf 1e0 -> NaN Invalid_operation +dqqua604 quantize -Inf 1e1 -> NaN Invalid_operation +dqqua605 quantize -Inf 1e299 -> NaN Invalid_operation +dqqua606 quantize -Inf Inf -> -Infinity +dqqua607 quantize -1000 Inf -> NaN Invalid_operation +dqqua608 quantize -Inf -Inf -> -Infinity +dqqua609 quantize -1 -Inf -> NaN Invalid_operation +dqqua610 quantize 0 -Inf -> NaN Invalid_operation +dqqua611 quantize 1 -Inf -> NaN Invalid_operation +dqqua612 quantize 1000 -Inf -> NaN Invalid_operation +dqqua613 quantize Inf -Inf -> Infinity +dqqua614 quantize -Inf 1e-0 -> NaN Invalid_operation +dqqua615 quantize -0 -Inf -> NaN Invalid_operation + +dqqua621 quantize NaN -Inf -> NaN +dqqua622 quantize NaN 1e-299 -> NaN +dqqua623 quantize NaN 1e-1 -> NaN +dqqua624 quantize NaN 1e0 -> NaN +dqqua625 quantize NaN 1e1 -> NaN +dqqua626 quantize NaN 1e299 -> NaN +dqqua627 quantize NaN Inf -> NaN +dqqua628 quantize NaN NaN -> NaN +dqqua629 quantize -Inf NaN -> NaN +dqqua630 quantize -1000 NaN -> NaN +dqqua631 quantize -1 NaN -> NaN +dqqua632 quantize 0 NaN -> NaN +dqqua633 quantize 1 NaN -> NaN +dqqua634 quantize 1000 NaN -> NaN +dqqua635 quantize Inf NaN -> NaN +dqqua636 quantize NaN 1e-0 -> NaN +dqqua637 quantize -0 NaN -> NaN + +dqqua641 quantize sNaN -Inf -> NaN Invalid_operation +dqqua642 quantize sNaN 1e-299 -> NaN Invalid_operation +dqqua643 quantize sNaN 1e-1 -> NaN Invalid_operation +dqqua644 quantize sNaN 1e0 -> NaN Invalid_operation +dqqua645 quantize sNaN 1e1 -> NaN Invalid_operation +dqqua646 quantize sNaN 1e299 -> NaN Invalid_operation +dqqua647 quantize sNaN NaN -> NaN Invalid_operation +dqqua648 quantize sNaN sNaN -> NaN Invalid_operation +dqqua649 quantize NaN sNaN -> NaN Invalid_operation +dqqua650 quantize -Inf sNaN -> NaN Invalid_operation +dqqua651 quantize -1000 sNaN -> NaN Invalid_operation +dqqua652 quantize -1 sNaN -> NaN Invalid_operation +dqqua653 quantize 0 sNaN -> NaN Invalid_operation +dqqua654 quantize 1 sNaN -> NaN Invalid_operation +dqqua655 quantize 1000 sNaN -> NaN Invalid_operation +dqqua656 quantize Inf sNaN -> NaN Invalid_operation +dqqua657 quantize NaN sNaN -> NaN Invalid_operation +dqqua658 quantize sNaN 1e-0 -> NaN Invalid_operation +dqqua659 quantize -0 sNaN -> NaN Invalid_operation + +-- propagating NaNs +dqqua661 quantize NaN9 -Inf -> NaN9 +dqqua662 quantize NaN8 919 -> NaN8 +dqqua663 quantize NaN71 Inf -> NaN71 +dqqua664 quantize NaN6 NaN5 -> NaN6 +dqqua665 quantize -Inf NaN4 -> NaN4 +dqqua666 quantize -919 NaN31 -> NaN31 +dqqua667 quantize Inf NaN2 -> NaN2 + +dqqua671 quantize sNaN99 -Inf -> NaN99 Invalid_operation +dqqua672 quantize sNaN98 -11 -> NaN98 Invalid_operation +dqqua673 quantize sNaN97 NaN -> NaN97 Invalid_operation +dqqua674 quantize sNaN16 sNaN94 -> NaN16 Invalid_operation +dqqua675 quantize NaN95 sNaN93 -> NaN93 Invalid_operation +dqqua676 quantize -Inf sNaN92 -> NaN92 Invalid_operation +dqqua677 quantize 088 sNaN91 -> NaN91 Invalid_operation +dqqua678 quantize Inf sNaN90 -> NaN90 Invalid_operation +dqqua679 quantize NaN sNaN88 -> NaN88 Invalid_operation + +dqqua681 quantize -NaN9 -Inf -> -NaN9 +dqqua682 quantize -NaN8 919 -> -NaN8 +dqqua683 quantize -NaN71 Inf -> -NaN71 +dqqua684 quantize -NaN6 -NaN5 -> -NaN6 +dqqua685 quantize -Inf -NaN4 -> -NaN4 +dqqua686 quantize -919 -NaN31 -> -NaN31 +dqqua687 quantize Inf -NaN2 -> -NaN2 + +dqqua691 quantize -sNaN99 -Inf -> -NaN99 Invalid_operation +dqqua692 quantize -sNaN98 -11 -> -NaN98 Invalid_operation +dqqua693 quantize -sNaN97 NaN -> -NaN97 Invalid_operation +dqqua694 quantize -sNaN16 sNaN94 -> -NaN16 Invalid_operation +dqqua695 quantize -NaN95 -sNaN93 -> -NaN93 Invalid_operation +dqqua696 quantize -Inf -sNaN92 -> -NaN92 Invalid_operation +dqqua697 quantize 088 -sNaN91 -> -NaN91 Invalid_operation +dqqua698 quantize Inf -sNaN90 -> -NaN90 Invalid_operation +dqqua699 quantize NaN -sNaN88 -> -NaN88 Invalid_operation + +-- subnormals and underflow +dqqua710 quantize 1.00E-6143 1e-6143 -> 1E-6143 Rounded +dqqua711 quantize 0.1E-6143 2e-6144 -> 1E-6144 Subnormal +dqqua712 quantize 0.10E-6143 3e-6144 -> 1E-6144 Subnormal Rounded +dqqua713 quantize 0.100E-6143 4e-6144 -> 1E-6144 Subnormal Rounded +dqqua714 quantize 0.01E-6143 5e-6145 -> 1E-6145 Subnormal +-- next is rounded to Emin +dqqua715 quantize 0.999E-6143 1e-6143 -> 1E-6143 Inexact Rounded +dqqua716 quantize 0.099E-6143 10e-6144 -> 1E-6144 Inexact Rounded Subnormal + +dqqua717 quantize 0.009E-6143 1e-6145 -> 1E-6145 Inexact Rounded Subnormal +dqqua718 quantize 0.001E-6143 1e-6145 -> 0E-6145 Inexact Rounded +dqqua719 quantize 0.0009E-6143 1e-6145 -> 0E-6145 Inexact Rounded +dqqua720 quantize 0.0001E-6143 1e-6145 -> 0E-6145 Inexact Rounded + +dqqua730 quantize -1.00E-6143 1e-6143 -> -1E-6143 Rounded +dqqua731 quantize -0.1E-6143 1e-6143 -> -0E-6143 Rounded Inexact +dqqua732 quantize -0.10E-6143 1e-6143 -> -0E-6143 Rounded Inexact +dqqua733 quantize -0.100E-6143 1e-6143 -> -0E-6143 Rounded Inexact +dqqua734 quantize -0.01E-6143 1e-6143 -> -0E-6143 Inexact Rounded +-- next is rounded to Emin +dqqua735 quantize -0.999E-6143 90e-6143 -> -1E-6143 Inexact Rounded +dqqua736 quantize -0.099E-6143 -1e-6143 -> -0E-6143 Inexact Rounded +dqqua737 quantize -0.009E-6143 -1e-6143 -> -0E-6143 Inexact Rounded +dqqua738 quantize -0.001E-6143 -0e-6143 -> -0E-6143 Inexact Rounded +dqqua739 quantize -0.0001E-6143 0e-6143 -> -0E-6143 Inexact Rounded + +dqqua740 quantize -1.00E-6143 1e-6144 -> -1.0E-6143 Rounded +dqqua741 quantize -0.1E-6143 1e-6144 -> -1E-6144 Subnormal +dqqua742 quantize -0.10E-6143 1e-6144 -> -1E-6144 Subnormal Rounded +dqqua743 quantize -0.100E-6143 1e-6144 -> -1E-6144 Subnormal Rounded +dqqua744 quantize -0.01E-6143 1e-6144 -> -0E-6144 Inexact Rounded +-- next is rounded to Emin +dqqua745 quantize -0.999E-6143 1e-6144 -> -1.0E-6143 Inexact Rounded +dqqua746 quantize -0.099E-6143 1e-6144 -> -1E-6144 Inexact Rounded Subnormal +dqqua747 quantize -0.009E-6143 1e-6144 -> -0E-6144 Inexact Rounded +dqqua748 quantize -0.001E-6143 1e-6144 -> -0E-6144 Inexact Rounded +dqqua749 quantize -0.0001E-6143 1e-6144 -> -0E-6144 Inexact Rounded + +dqqua750 quantize -1.00E-6143 1e-6145 -> -1.00E-6143 +dqqua751 quantize -0.1E-6143 1e-6145 -> -1.0E-6144 Subnormal +dqqua752 quantize -0.10E-6143 1e-6145 -> -1.0E-6144 Subnormal +dqqua753 quantize -0.100E-6143 1e-6145 -> -1.0E-6144 Subnormal Rounded +dqqua754 quantize -0.01E-6143 1e-6145 -> -1E-6145 Subnormal +-- next is rounded to Emin +dqqua755 quantize -0.999E-6143 1e-6145 -> -1.00E-6143 Inexact Rounded +dqqua756 quantize -0.099E-6143 1e-6145 -> -1.0E-6144 Inexact Rounded Subnormal +dqqua757 quantize -0.009E-6143 1e-6145 -> -1E-6145 Inexact Rounded Subnormal +dqqua758 quantize -0.001E-6143 1e-6145 -> -0E-6145 Inexact Rounded +dqqua759 quantize -0.0001E-6143 1e-6145 -> -0E-6145 Inexact Rounded + +dqqua760 quantize -1.00E-6143 1e-6146 -> -1.000E-6143 +dqqua761 quantize -0.1E-6143 1e-6146 -> -1.00E-6144 Subnormal +dqqua762 quantize -0.10E-6143 1e-6146 -> -1.00E-6144 Subnormal +dqqua763 quantize -0.100E-6143 1e-6146 -> -1.00E-6144 Subnormal +dqqua764 quantize -0.01E-6143 1e-6146 -> -1.0E-6145 Subnormal +dqqua765 quantize -0.999E-6143 1e-6146 -> -9.99E-6144 Subnormal +dqqua766 quantize -0.099E-6143 1e-6146 -> -9.9E-6145 Subnormal +dqqua767 quantize -0.009E-6143 1e-6146 -> -9E-6146 Subnormal +dqqua768 quantize -0.001E-6143 1e-6146 -> -1E-6146 Subnormal +dqqua769 quantize -0.0001E-6143 1e-6146 -> -0E-6146 Inexact Rounded + +-- More from Fung Lee +-- the next four would appear to be in error, but they are misleading (the +-- operands will be clamped to a lower exponent) and so are omitted +-- dqqua1021 quantize 8.666666666666000E+6144 1.000000000000000E+6144 -> 8.666666666666000000000000000000000E+6144 Clamped +-- dqqua1022 quantize -8.666666666666000E+6144 1.000000000000000E+6144 -> -8.666666666666000000000000000000000E+6144 Clamped +-- dqqua1027 quantize 8.666666666666000E+323 1E+31 -> NaN Invalid_operation +-- dqqua1030 quantize 8.66666666E+3 1E+3 -> 9E+3 Inexact Rounded + +-- Int and uInt32 edge values for testing conversions +dqqua1040 quantize -2147483646 0 -> -2147483646 +dqqua1041 quantize -2147483647 0 -> -2147483647 +dqqua1042 quantize -2147483648 0 -> -2147483648 +dqqua1043 quantize -2147483649 0 -> -2147483649 +dqqua1044 quantize 2147483646 0 -> 2147483646 +dqqua1045 quantize 2147483647 0 -> 2147483647 +dqqua1046 quantize 2147483648 0 -> 2147483648 +dqqua1047 quantize 2147483649 0 -> 2147483649 +dqqua1048 quantize 4294967294 0 -> 4294967294 +dqqua1049 quantize 4294967295 0 -> 4294967295 +dqqua1050 quantize 4294967296 0 -> 4294967296 +dqqua1051 quantize 4294967297 0 -> 4294967297 + +-- Rounding swathe +rounding: half_even +dqqua1100 quantize 1.2300 1.00 -> 1.23 Rounded +dqqua1101 quantize 1.2301 1.00 -> 1.23 Inexact Rounded +dqqua1102 quantize 1.2310 1.00 -> 1.23 Inexact Rounded +dqqua1103 quantize 1.2350 1.00 -> 1.24 Inexact Rounded +dqqua1104 quantize 1.2351 1.00 -> 1.24 Inexact Rounded +dqqua1105 quantize 1.2450 1.00 -> 1.24 Inexact Rounded +dqqua1106 quantize 1.2451 1.00 -> 1.25 Inexact Rounded +dqqua1107 quantize 1.2360 1.00 -> 1.24 Inexact Rounded +dqqua1108 quantize 1.2370 1.00 -> 1.24 Inexact Rounded +dqqua1109 quantize 1.2399 1.00 -> 1.24 Inexact Rounded + +rounding: half_up +dqqua1200 quantize 1.2300 1.00 -> 1.23 Rounded +dqqua1201 quantize 1.2301 1.00 -> 1.23 Inexact Rounded +dqqua1202 quantize 1.2310 1.00 -> 1.23 Inexact Rounded +dqqua1203 quantize 1.2350 1.00 -> 1.24 Inexact Rounded +dqqua1204 quantize 1.2351 1.00 -> 1.24 Inexact Rounded +dqqua1205 quantize 1.2450 1.00 -> 1.25 Inexact Rounded +dqqua1206 quantize 1.2451 1.00 -> 1.25 Inexact Rounded +dqqua1207 quantize 1.2360 1.00 -> 1.24 Inexact Rounded +dqqua1208 quantize 1.2370 1.00 -> 1.24 Inexact Rounded +dqqua1209 quantize 1.2399 1.00 -> 1.24 Inexact Rounded + +rounding: half_down +dqqua1300 quantize 1.2300 1.00 -> 1.23 Rounded +dqqua1301 quantize 1.2301 1.00 -> 1.23 Inexact Rounded +dqqua1302 quantize 1.2310 1.00 -> 1.23 Inexact Rounded +dqqua1303 quantize 1.2350 1.00 -> 1.23 Inexact Rounded +dqqua1304 quantize 1.2351 1.00 -> 1.24 Inexact Rounded +dqqua1305 quantize 1.2450 1.00 -> 1.24 Inexact Rounded +dqqua1306 quantize 1.2451 1.00 -> 1.25 Inexact Rounded +dqqua1307 quantize 1.2360 1.00 -> 1.24 Inexact Rounded +dqqua1308 quantize 1.2370 1.00 -> 1.24 Inexact Rounded +dqqua1309 quantize 1.2399 1.00 -> 1.24 Inexact Rounded + +rounding: up +dqqua1400 quantize 1.2300 1.00 -> 1.23 Rounded +dqqua1401 quantize 1.2301 1.00 -> 1.24 Inexact Rounded +dqqua1402 quantize 1.2310 1.00 -> 1.24 Inexact Rounded +dqqua1403 quantize 1.2350 1.00 -> 1.24 Inexact Rounded +dqqua1404 quantize 1.2351 1.00 -> 1.24 Inexact Rounded +dqqua1405 quantize 1.2450 1.00 -> 1.25 Inexact Rounded +dqqua1406 quantize 1.2451 1.00 -> 1.25 Inexact Rounded +dqqua1407 quantize 1.2360 1.00 -> 1.24 Inexact Rounded +dqqua1408 quantize 1.2370 1.00 -> 1.24 Inexact Rounded +dqqua1409 quantize 1.2399 1.00 -> 1.24 Inexact Rounded +dqqua1411 quantize -1.2399 1.00 -> -1.24 Inexact Rounded + +rounding: down +dqqua1500 quantize 1.2300 1.00 -> 1.23 Rounded +dqqua1501 quantize 1.2301 1.00 -> 1.23 Inexact Rounded +dqqua1502 quantize 1.2310 1.00 -> 1.23 Inexact Rounded +dqqua1503 quantize 1.2350 1.00 -> 1.23 Inexact Rounded +dqqua1504 quantize 1.2351 1.00 -> 1.23 Inexact Rounded +dqqua1505 quantize 1.2450 1.00 -> 1.24 Inexact Rounded +dqqua1506 quantize 1.2451 1.00 -> 1.24 Inexact Rounded +dqqua1507 quantize 1.2360 1.00 -> 1.23 Inexact Rounded +dqqua1508 quantize 1.2370 1.00 -> 1.23 Inexact Rounded +dqqua1509 quantize 1.2399 1.00 -> 1.23 Inexact Rounded +dqqua1511 quantize -1.2399 1.00 -> -1.23 Inexact Rounded + +rounding: ceiling +dqqua1600 quantize 1.2300 1.00 -> 1.23 Rounded +dqqua1601 quantize 1.2301 1.00 -> 1.24 Inexact Rounded +dqqua1602 quantize 1.2310 1.00 -> 1.24 Inexact Rounded +dqqua1603 quantize 1.2350 1.00 -> 1.24 Inexact Rounded +dqqua1604 quantize 1.2351 1.00 -> 1.24 Inexact Rounded +dqqua1605 quantize 1.2450 1.00 -> 1.25 Inexact Rounded +dqqua1606 quantize 1.2451 1.00 -> 1.25 Inexact Rounded +dqqua1607 quantize 1.2360 1.00 -> 1.24 Inexact Rounded +dqqua1608 quantize 1.2370 1.00 -> 1.24 Inexact Rounded +dqqua1609 quantize 1.2399 1.00 -> 1.24 Inexact Rounded +dqqua1611 quantize -1.2399 1.00 -> -1.23 Inexact Rounded + +rounding: floor +dqqua1700 quantize 1.2300 1.00 -> 1.23 Rounded +dqqua1701 quantize 1.2301 1.00 -> 1.23 Inexact Rounded +dqqua1702 quantize 1.2310 1.00 -> 1.23 Inexact Rounded +dqqua1703 quantize 1.2350 1.00 -> 1.23 Inexact Rounded +dqqua1704 quantize 1.2351 1.00 -> 1.23 Inexact Rounded +dqqua1705 quantize 1.2450 1.00 -> 1.24 Inexact Rounded +dqqua1706 quantize 1.2451 1.00 -> 1.24 Inexact Rounded +dqqua1707 quantize 1.2360 1.00 -> 1.23 Inexact Rounded +dqqua1708 quantize 1.2370 1.00 -> 1.23 Inexact Rounded +dqqua1709 quantize 1.2399 1.00 -> 1.23 Inexact Rounded +dqqua1711 quantize -1.2399 1.00 -> -1.24 Inexact Rounded + +rounding: 05up +dqqua1800 quantize 1.2000 1.00 -> 1.20 Rounded +dqqua1801 quantize 1.2001 1.00 -> 1.21 Inexact Rounded +dqqua1802 quantize 1.2010 1.00 -> 1.21 Inexact Rounded +dqqua1803 quantize 1.2050 1.00 -> 1.21 Inexact Rounded +dqqua1804 quantize 1.2051 1.00 -> 1.21 Inexact Rounded +dqqua1807 quantize 1.2060 1.00 -> 1.21 Inexact Rounded +dqqua1808 quantize 1.2070 1.00 -> 1.21 Inexact Rounded +dqqua1809 quantize 1.2099 1.00 -> 1.21 Inexact Rounded +dqqua1811 quantize -1.2099 1.00 -> -1.21 Inexact Rounded + +dqqua1900 quantize 1.2100 1.00 -> 1.21 Rounded +dqqua1901 quantize 1.2101 1.00 -> 1.21 Inexact Rounded +dqqua1902 quantize 1.2110 1.00 -> 1.21 Inexact Rounded +dqqua1903 quantize 1.2150 1.00 -> 1.21 Inexact Rounded +dqqua1904 quantize 1.2151 1.00 -> 1.21 Inexact Rounded +dqqua1907 quantize 1.2160 1.00 -> 1.21 Inexact Rounded +dqqua1908 quantize 1.2170 1.00 -> 1.21 Inexact Rounded +dqqua1909 quantize 1.2199 1.00 -> 1.21 Inexact Rounded +dqqua1911 quantize -1.2199 1.00 -> -1.21 Inexact Rounded + +dqqua2000 quantize 1.2400 1.00 -> 1.24 Rounded +dqqua2001 quantize 1.2401 1.00 -> 1.24 Inexact Rounded +dqqua2002 quantize 1.2410 1.00 -> 1.24 Inexact Rounded +dqqua2003 quantize 1.2450 1.00 -> 1.24 Inexact Rounded +dqqua2004 quantize 1.2451 1.00 -> 1.24 Inexact Rounded +dqqua2007 quantize 1.2460 1.00 -> 1.24 Inexact Rounded +dqqua2008 quantize 1.2470 1.00 -> 1.24 Inexact Rounded +dqqua2009 quantize 1.2499 1.00 -> 1.24 Inexact Rounded +dqqua2011 quantize -1.2499 1.00 -> -1.24 Inexact Rounded + +dqqua2100 quantize 1.2500 1.00 -> 1.25 Rounded +dqqua2101 quantize 1.2501 1.00 -> 1.26 Inexact Rounded +dqqua2102 quantize 1.2510 1.00 -> 1.26 Inexact Rounded +dqqua2103 quantize 1.2550 1.00 -> 1.26 Inexact Rounded +dqqua2104 quantize 1.2551 1.00 -> 1.26 Inexact Rounded +dqqua2107 quantize 1.2560 1.00 -> 1.26 Inexact Rounded +dqqua2108 quantize 1.2570 1.00 -> 1.26 Inexact Rounded +dqqua2109 quantize 1.2599 1.00 -> 1.26 Inexact Rounded +dqqua2111 quantize -1.2599 1.00 -> -1.26 Inexact Rounded + +dqqua2200 quantize 1.2600 1.00 -> 1.26 Rounded +dqqua2201 quantize 1.2601 1.00 -> 1.26 Inexact Rounded +dqqua2202 quantize 1.2610 1.00 -> 1.26 Inexact Rounded +dqqua2203 quantize 1.2650 1.00 -> 1.26 Inexact Rounded +dqqua2204 quantize 1.2651 1.00 -> 1.26 Inexact Rounded +dqqua2207 quantize 1.2660 1.00 -> 1.26 Inexact Rounded +dqqua2208 quantize 1.2670 1.00 -> 1.26 Inexact Rounded +dqqua2209 quantize 1.2699 1.00 -> 1.26 Inexact Rounded +dqqua2211 quantize -1.2699 1.00 -> -1.26 Inexact Rounded + +dqqua2300 quantize 1.2900 1.00 -> 1.29 Rounded +dqqua2301 quantize 1.2901 1.00 -> 1.29 Inexact Rounded +dqqua2302 quantize 1.2910 1.00 -> 1.29 Inexact Rounded +dqqua2303 quantize 1.2950 1.00 -> 1.29 Inexact Rounded +dqqua2304 quantize 1.2951 1.00 -> 1.29 Inexact Rounded +dqqua2307 quantize 1.2960 1.00 -> 1.29 Inexact Rounded +dqqua2308 quantize 1.2970 1.00 -> 1.29 Inexact Rounded +dqqua2309 quantize 1.2999 1.00 -> 1.29 Inexact Rounded +dqqua2311 quantize -1.2999 1.00 -> -1.29 Inexact Rounded + +-- Null tests +dqqua998 quantize 10 # -> NaN Invalid_operation +dqqua999 quantize # 1e10 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/dqReduce.decTest b/Lib/test/decimaltestdata/dqReduce.decTest index 236574f4c7..5635e6b70f 100644 --- a/Lib/test/decimaltestdata/dqReduce.decTest +++ b/Lib/test/decimaltestdata/dqReduce.decTest @@ -1,183 +1,183 @@ -------------------------------------------------------------------------
--- dqReduce.decTest -- remove trailing zeros from a decQuad --
--- Copyright (c) IBM Corporation, 2003, 2008. 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 --
-------------------------------------------------------------------------
-
-version: 2.59
-
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
-dqred001 reduce '1' -> '1'
-dqred002 reduce '-1' -> '-1'
-dqred003 reduce '1.00' -> '1'
-dqred004 reduce '-1.00' -> '-1'
-dqred005 reduce '0' -> '0'
-dqred006 reduce '0.00' -> '0'
-dqred007 reduce '00.0' -> '0'
-dqred008 reduce '00.00' -> '0'
-dqred009 reduce '00' -> '0'
-dqred010 reduce '0E+1' -> '0'
-dqred011 reduce '0E+5' -> '0'
-
-dqred012 reduce '-2' -> '-2'
-dqred013 reduce '2' -> '2'
-dqred014 reduce '-2.00' -> '-2'
-dqred015 reduce '2.00' -> '2'
-dqred016 reduce '-0' -> '-0'
-dqred017 reduce '-0.00' -> '-0'
-dqred018 reduce '-00.0' -> '-0'
-dqred019 reduce '-00.00' -> '-0'
-dqred020 reduce '-00' -> '-0'
-dqred021 reduce '-0E+5' -> '-0'
-dqred022 reduce '-0E+1' -> '-0'
-
-dqred030 reduce '+0.1' -> '0.1'
-dqred031 reduce '-0.1' -> '-0.1'
-dqred032 reduce '+0.01' -> '0.01'
-dqred033 reduce '-0.01' -> '-0.01'
-dqred034 reduce '+0.001' -> '0.001'
-dqred035 reduce '-0.001' -> '-0.001'
-dqred036 reduce '+0.000001' -> '0.000001'
-dqred037 reduce '-0.000001' -> '-0.000001'
-dqred038 reduce '+0.000000000001' -> '1E-12'
-dqred039 reduce '-0.000000000001' -> '-1E-12'
-
-dqred041 reduce 1.1 -> 1.1
-dqred042 reduce 1.10 -> 1.1
-dqred043 reduce 1.100 -> 1.1
-dqred044 reduce 1.110 -> 1.11
-dqred045 reduce -1.1 -> -1.1
-dqred046 reduce -1.10 -> -1.1
-dqred047 reduce -1.100 -> -1.1
-dqred048 reduce -1.110 -> -1.11
-dqred049 reduce 9.9 -> 9.9
-dqred050 reduce 9.90 -> 9.9
-dqred051 reduce 9.900 -> 9.9
-dqred052 reduce 9.990 -> 9.99
-dqred053 reduce -9.9 -> -9.9
-dqred054 reduce -9.90 -> -9.9
-dqred055 reduce -9.900 -> -9.9
-dqred056 reduce -9.990 -> -9.99
-
--- some trailing fractional zeros with zeros in units
-dqred060 reduce 10.0 -> 1E+1
-dqred061 reduce 10.00 -> 1E+1
-dqred062 reduce 100.0 -> 1E+2
-dqred063 reduce 100.00 -> 1E+2
-dqred064 reduce 1.1000E+3 -> 1.1E+3
-dqred065 reduce 1.10000E+3 -> 1.1E+3
-dqred066 reduce -10.0 -> -1E+1
-dqred067 reduce -10.00 -> -1E+1
-dqred068 reduce -100.0 -> -1E+2
-dqred069 reduce -100.00 -> -1E+2
-dqred070 reduce -1.1000E+3 -> -1.1E+3
-dqred071 reduce -1.10000E+3 -> -1.1E+3
-
--- some insignificant trailing zeros with positive exponent
-dqred080 reduce 10E+1 -> 1E+2
-dqred081 reduce 100E+1 -> 1E+3
-dqred082 reduce 1.0E+2 -> 1E+2
-dqred083 reduce 1.0E+3 -> 1E+3
-dqred084 reduce 1.1E+3 -> 1.1E+3
-dqred085 reduce 1.00E+3 -> 1E+3
-dqred086 reduce 1.10E+3 -> 1.1E+3
-dqred087 reduce -10E+1 -> -1E+2
-dqred088 reduce -100E+1 -> -1E+3
-dqred089 reduce -1.0E+2 -> -1E+2
-dqred090 reduce -1.0E+3 -> -1E+3
-dqred091 reduce -1.1E+3 -> -1.1E+3
-dqred092 reduce -1.00E+3 -> -1E+3
-dqred093 reduce -1.10E+3 -> -1.1E+3
-
--- some significant trailing zeros, were we to be trimming
-dqred100 reduce 11 -> 11
-dqred101 reduce 10 -> 1E+1
-dqred102 reduce 10. -> 1E+1
-dqred103 reduce 1.1E+1 -> 11
-dqred104 reduce 1.0E+1 -> 1E+1
-dqred105 reduce 1.10E+2 -> 1.1E+2
-dqred106 reduce 1.00E+2 -> 1E+2
-dqred107 reduce 1.100E+3 -> 1.1E+3
-dqred108 reduce 1.000E+3 -> 1E+3
-dqred109 reduce 1.000000E+6 -> 1E+6
-dqred110 reduce -11 -> -11
-dqred111 reduce -10 -> -1E+1
-dqred112 reduce -10. -> -1E+1
-dqred113 reduce -1.1E+1 -> -11
-dqred114 reduce -1.0E+1 -> -1E+1
-dqred115 reduce -1.10E+2 -> -1.1E+2
-dqred116 reduce -1.00E+2 -> -1E+2
-dqred117 reduce -1.100E+3 -> -1.1E+3
-dqred118 reduce -1.000E+3 -> -1E+3
-dqred119 reduce -1.00000E+5 -> -1E+5
-dqred120 reduce -1.000000E+6 -> -1E+6
-dqred121 reduce -10.00000E+6 -> -1E+7
-dqred122 reduce -100.0000E+6 -> -1E+8
-dqred123 reduce -1000.000E+6 -> -1E+9
-dqred124 reduce -10000.00E+6 -> -1E+10
-dqred125 reduce -100000.0E+6 -> -1E+11
-dqred126 reduce -1000000.E+6 -> -1E+12
-
--- examples from decArith
-dqred140 reduce '2.1' -> '2.1'
-dqred141 reduce '-2.0' -> '-2'
-dqred142 reduce '1.200' -> '1.2'
-dqred143 reduce '-120' -> '-1.2E+2'
-dqred144 reduce '120.00' -> '1.2E+2'
-dqred145 reduce '0.00' -> '0'
-
--- Nmax, Nmin, Ntiny
--- note origami effect on some of these
-dqred151 reduce 9.999999999999999999999999999999999E+6144 -> 9.999999999999999999999999999999999E+6144
-dqred152 reduce 9.999999999999999999999999000000000E+6140 -> 9.99999999999999999999999900000E+6140
-dqred153 reduce 9.999999999999999999999999999990000E+6144 -> 9.999999999999999999999999999990000E+6144
-dqred154 reduce 1E-6143 -> 1E-6143
-dqred155 reduce 1.000000000000000000000000000000000E-6143 -> 1E-6143
-dqred156 reduce 2.000E-6173 -> 2E-6173 Subnormal
-dqred157 reduce 1E-6176 -> 1E-6176 Subnormal
-
-dqred161 reduce -1E-6176 -> -1E-6176 Subnormal
-dqred162 reduce -2.000E-6173 -> -2E-6173 Subnormal
-dqred163 reduce -1.000000000000000000000000000000000E-6143 -> -1E-6143
-dqred164 reduce -1E-6143 -> -1E-6143
-dqred165 reduce -9.999999999999999999999999000000000E+6140 -> -9.99999999999999999999999900000E+6140
-dqred166 reduce -9.999999999999999999999999999990000E+6144 -> -9.999999999999999999999999999990000E+6144
-dqred167 reduce -9.999999999999999999999999999999990E+6144 -> -9.999999999999999999999999999999990E+6144
-dqred168 reduce -9.999999999999999999999999999999999E+6144 -> -9.999999999999999999999999999999999E+6144
-dqred169 reduce -9.999999999999999999999999999999990E+6144 -> -9.999999999999999999999999999999990E+6144
-
-
--- specials (reduce does not affect payload)
-dqred820 reduce 'Inf' -> 'Infinity'
-dqred821 reduce '-Inf' -> '-Infinity'
-dqred822 reduce NaN -> NaN
-dqred823 reduce sNaN -> NaN Invalid_operation
-dqred824 reduce NaN101 -> NaN101
-dqred825 reduce sNaN010 -> NaN10 Invalid_operation
-dqred827 reduce -NaN -> -NaN
-dqred828 reduce -sNaN -> -NaN Invalid_operation
-dqred829 reduce -NaN101 -> -NaN101
-dqred830 reduce -sNaN010 -> -NaN10 Invalid_operation
-
--- Null test
-dqred900 reduce # -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- dqReduce.decTest -- remove trailing zeros from a decQuad -- +-- Copyright (c) IBM Corporation, 2003, 2008. 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 -- +------------------------------------------------------------------------ + +version: 2.59 + +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +dqred001 reduce '1' -> '1' +dqred002 reduce '-1' -> '-1' +dqred003 reduce '1.00' -> '1' +dqred004 reduce '-1.00' -> '-1' +dqred005 reduce '0' -> '0' +dqred006 reduce '0.00' -> '0' +dqred007 reduce '00.0' -> '0' +dqred008 reduce '00.00' -> '0' +dqred009 reduce '00' -> '0' +dqred010 reduce '0E+1' -> '0' +dqred011 reduce '0E+5' -> '0' + +dqred012 reduce '-2' -> '-2' +dqred013 reduce '2' -> '2' +dqred014 reduce '-2.00' -> '-2' +dqred015 reduce '2.00' -> '2' +dqred016 reduce '-0' -> '-0' +dqred017 reduce '-0.00' -> '-0' +dqred018 reduce '-00.0' -> '-0' +dqred019 reduce '-00.00' -> '-0' +dqred020 reduce '-00' -> '-0' +dqred021 reduce '-0E+5' -> '-0' +dqred022 reduce '-0E+1' -> '-0' + +dqred030 reduce '+0.1' -> '0.1' +dqred031 reduce '-0.1' -> '-0.1' +dqred032 reduce '+0.01' -> '0.01' +dqred033 reduce '-0.01' -> '-0.01' +dqred034 reduce '+0.001' -> '0.001' +dqred035 reduce '-0.001' -> '-0.001' +dqred036 reduce '+0.000001' -> '0.000001' +dqred037 reduce '-0.000001' -> '-0.000001' +dqred038 reduce '+0.000000000001' -> '1E-12' +dqred039 reduce '-0.000000000001' -> '-1E-12' + +dqred041 reduce 1.1 -> 1.1 +dqred042 reduce 1.10 -> 1.1 +dqred043 reduce 1.100 -> 1.1 +dqred044 reduce 1.110 -> 1.11 +dqred045 reduce -1.1 -> -1.1 +dqred046 reduce -1.10 -> -1.1 +dqred047 reduce -1.100 -> -1.1 +dqred048 reduce -1.110 -> -1.11 +dqred049 reduce 9.9 -> 9.9 +dqred050 reduce 9.90 -> 9.9 +dqred051 reduce 9.900 -> 9.9 +dqred052 reduce 9.990 -> 9.99 +dqred053 reduce -9.9 -> -9.9 +dqred054 reduce -9.90 -> -9.9 +dqred055 reduce -9.900 -> -9.9 +dqred056 reduce -9.990 -> -9.99 + +-- some trailing fractional zeros with zeros in units +dqred060 reduce 10.0 -> 1E+1 +dqred061 reduce 10.00 -> 1E+1 +dqred062 reduce 100.0 -> 1E+2 +dqred063 reduce 100.00 -> 1E+2 +dqred064 reduce 1.1000E+3 -> 1.1E+3 +dqred065 reduce 1.10000E+3 -> 1.1E+3 +dqred066 reduce -10.0 -> -1E+1 +dqred067 reduce -10.00 -> -1E+1 +dqred068 reduce -100.0 -> -1E+2 +dqred069 reduce -100.00 -> -1E+2 +dqred070 reduce -1.1000E+3 -> -1.1E+3 +dqred071 reduce -1.10000E+3 -> -1.1E+3 + +-- some insignificant trailing zeros with positive exponent +dqred080 reduce 10E+1 -> 1E+2 +dqred081 reduce 100E+1 -> 1E+3 +dqred082 reduce 1.0E+2 -> 1E+2 +dqred083 reduce 1.0E+3 -> 1E+3 +dqred084 reduce 1.1E+3 -> 1.1E+3 +dqred085 reduce 1.00E+3 -> 1E+3 +dqred086 reduce 1.10E+3 -> 1.1E+3 +dqred087 reduce -10E+1 -> -1E+2 +dqred088 reduce -100E+1 -> -1E+3 +dqred089 reduce -1.0E+2 -> -1E+2 +dqred090 reduce -1.0E+3 -> -1E+3 +dqred091 reduce -1.1E+3 -> -1.1E+3 +dqred092 reduce -1.00E+3 -> -1E+3 +dqred093 reduce -1.10E+3 -> -1.1E+3 + +-- some significant trailing zeros, were we to be trimming +dqred100 reduce 11 -> 11 +dqred101 reduce 10 -> 1E+1 +dqred102 reduce 10. -> 1E+1 +dqred103 reduce 1.1E+1 -> 11 +dqred104 reduce 1.0E+1 -> 1E+1 +dqred105 reduce 1.10E+2 -> 1.1E+2 +dqred106 reduce 1.00E+2 -> 1E+2 +dqred107 reduce 1.100E+3 -> 1.1E+3 +dqred108 reduce 1.000E+3 -> 1E+3 +dqred109 reduce 1.000000E+6 -> 1E+6 +dqred110 reduce -11 -> -11 +dqred111 reduce -10 -> -1E+1 +dqred112 reduce -10. -> -1E+1 +dqred113 reduce -1.1E+1 -> -11 +dqred114 reduce -1.0E+1 -> -1E+1 +dqred115 reduce -1.10E+2 -> -1.1E+2 +dqred116 reduce -1.00E+2 -> -1E+2 +dqred117 reduce -1.100E+3 -> -1.1E+3 +dqred118 reduce -1.000E+3 -> -1E+3 +dqred119 reduce -1.00000E+5 -> -1E+5 +dqred120 reduce -1.000000E+6 -> -1E+6 +dqred121 reduce -10.00000E+6 -> -1E+7 +dqred122 reduce -100.0000E+6 -> -1E+8 +dqred123 reduce -1000.000E+6 -> -1E+9 +dqred124 reduce -10000.00E+6 -> -1E+10 +dqred125 reduce -100000.0E+6 -> -1E+11 +dqred126 reduce -1000000.E+6 -> -1E+12 + +-- examples from decArith +dqred140 reduce '2.1' -> '2.1' +dqred141 reduce '-2.0' -> '-2' +dqred142 reduce '1.200' -> '1.2' +dqred143 reduce '-120' -> '-1.2E+2' +dqred144 reduce '120.00' -> '1.2E+2' +dqred145 reduce '0.00' -> '0' + +-- Nmax, Nmin, Ntiny +-- note origami effect on some of these +dqred151 reduce 9.999999999999999999999999999999999E+6144 -> 9.999999999999999999999999999999999E+6144 +dqred152 reduce 9.999999999999999999999999000000000E+6140 -> 9.99999999999999999999999900000E+6140 +dqred153 reduce 9.999999999999999999999999999990000E+6144 -> 9.999999999999999999999999999990000E+6144 +dqred154 reduce 1E-6143 -> 1E-6143 +dqred155 reduce 1.000000000000000000000000000000000E-6143 -> 1E-6143 +dqred156 reduce 2.000E-6173 -> 2E-6173 Subnormal +dqred157 reduce 1E-6176 -> 1E-6176 Subnormal + +dqred161 reduce -1E-6176 -> -1E-6176 Subnormal +dqred162 reduce -2.000E-6173 -> -2E-6173 Subnormal +dqred163 reduce -1.000000000000000000000000000000000E-6143 -> -1E-6143 +dqred164 reduce -1E-6143 -> -1E-6143 +dqred165 reduce -9.999999999999999999999999000000000E+6140 -> -9.99999999999999999999999900000E+6140 +dqred166 reduce -9.999999999999999999999999999990000E+6144 -> -9.999999999999999999999999999990000E+6144 +dqred167 reduce -9.999999999999999999999999999999990E+6144 -> -9.999999999999999999999999999999990E+6144 +dqred168 reduce -9.999999999999999999999999999999999E+6144 -> -9.999999999999999999999999999999999E+6144 +dqred169 reduce -9.999999999999999999999999999999990E+6144 -> -9.999999999999999999999999999999990E+6144 + + +-- specials (reduce does not affect payload) +dqred820 reduce 'Inf' -> 'Infinity' +dqred821 reduce '-Inf' -> '-Infinity' +dqred822 reduce NaN -> NaN +dqred823 reduce sNaN -> NaN Invalid_operation +dqred824 reduce NaN101 -> NaN101 +dqred825 reduce sNaN010 -> NaN10 Invalid_operation +dqred827 reduce -NaN -> -NaN +dqred828 reduce -sNaN -> -NaN Invalid_operation +dqred829 reduce -NaN101 -> -NaN101 +dqred830 reduce -sNaN010 -> -NaN10 Invalid_operation + +-- Null test +dqred900 reduce # -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/dqRemainder.decTest b/Lib/test/decimaltestdata/dqRemainder.decTest index bae8eae526..090d3cf559 100644 --- a/Lib/test/decimaltestdata/dqRemainder.decTest +++ b/Lib/test/decimaltestdata/dqRemainder.decTest @@ -1,597 +1,597 @@ -------------------------------------------------------------------------
--- dqRemainder.decTest -- decQuad remainder --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
--- sanity checks (as base, above)
-dqrem001 remainder 1 1 -> 0
-dqrem002 remainder 2 1 -> 0
-dqrem003 remainder 1 2 -> 1
-dqrem004 remainder 2 2 -> 0
-dqrem005 remainder 0 1 -> 0
-dqrem006 remainder 0 2 -> 0
-dqrem007 remainder 1 3 -> 1
-dqrem008 remainder 2 3 -> 2
-dqrem009 remainder 3 3 -> 0
-
-dqrem010 remainder 2.4 1 -> 0.4
-dqrem011 remainder 2.4 -1 -> 0.4
-dqrem012 remainder -2.4 1 -> -0.4
-dqrem013 remainder -2.4 -1 -> -0.4
-dqrem014 remainder 2.40 1 -> 0.40
-dqrem015 remainder 2.400 1 -> 0.400
-dqrem016 remainder 2.4 2 -> 0.4
-dqrem017 remainder 2.400 2 -> 0.400
-dqrem018 remainder 2. 2 -> 0
-dqrem019 remainder 20 20 -> 0
-
-dqrem020 remainder 187 187 -> 0
-dqrem021 remainder 5 2 -> 1
-dqrem022 remainder 5 2.0 -> 1.0
-dqrem023 remainder 5 2.000 -> 1.000
-dqrem024 remainder 5 0.200 -> 0.000
-dqrem025 remainder 5 0.200 -> 0.000
-
-dqrem030 remainder 1 2 -> 1
-dqrem031 remainder 1 4 -> 1
-dqrem032 remainder 1 8 -> 1
-
-dqrem033 remainder 1 16 -> 1
-dqrem034 remainder 1 32 -> 1
-dqrem035 remainder 1 64 -> 1
-dqrem040 remainder 1 -2 -> 1
-dqrem041 remainder 1 -4 -> 1
-dqrem042 remainder 1 -8 -> 1
-dqrem043 remainder 1 -16 -> 1
-dqrem044 remainder 1 -32 -> 1
-dqrem045 remainder 1 -64 -> 1
-dqrem050 remainder -1 2 -> -1
-dqrem051 remainder -1 4 -> -1
-dqrem052 remainder -1 8 -> -1
-dqrem053 remainder -1 16 -> -1
-dqrem054 remainder -1 32 -> -1
-dqrem055 remainder -1 64 -> -1
-dqrem060 remainder -1 -2 -> -1
-dqrem061 remainder -1 -4 -> -1
-dqrem062 remainder -1 -8 -> -1
-dqrem063 remainder -1 -16 -> -1
-dqrem064 remainder -1 -32 -> -1
-dqrem065 remainder -1 -64 -> -1
-
-dqrem066 remainder 999999999 1 -> 0
-dqrem067 remainder 999999999.4 1 -> 0.4
-dqrem068 remainder 999999999.5 1 -> 0.5
-dqrem069 remainder 999999999.9 1 -> 0.9
-dqrem070 remainder 999999999.999 1 -> 0.999
-dqrem071 remainder 999999.999999 1 -> 0.999999
-dqrem072 remainder 9 1 -> 0
-
-dqrem080 remainder 0. 1 -> 0
-dqrem081 remainder .0 1 -> 0.0
-dqrem082 remainder 0.00 1 -> 0.00
-dqrem083 remainder 0.00E+9 1 -> 0
-dqrem084 remainder 0.00E+3 1 -> 0
-dqrem085 remainder 0.00E+2 1 -> 0
-dqrem086 remainder 0.00E+1 1 -> 0.0
-dqrem087 remainder 0.00E+0 1 -> 0.00
-dqrem088 remainder 0.00E-0 1 -> 0.00
-dqrem089 remainder 0.00E-1 1 -> 0.000
-dqrem090 remainder 0.00E-2 1 -> 0.0000
-dqrem091 remainder 0.00E-3 1 -> 0.00000
-dqrem092 remainder 0.00E-4 1 -> 0.000000
-dqrem093 remainder 0.00E-5 1 -> 0E-7
-dqrem094 remainder 0.00E-6 1 -> 0E-8
-dqrem095 remainder 0.0000E-50 1 -> 0E-54
-
--- Various flavours of remainder by 0
-dqrem101 remainder 0 0 -> NaN Division_undefined
-dqrem102 remainder 0 -0 -> NaN Division_undefined
-dqrem103 remainder -0 0 -> NaN Division_undefined
-dqrem104 remainder -0 -0 -> NaN Division_undefined
-dqrem105 remainder 0.0E5 0 -> NaN Division_undefined
-dqrem106 remainder 0.000 0 -> NaN Division_undefined
--- [Some think this next group should be Division_by_zero exception, but
--- IEEE 854 is explicit that it is Invalid operation .. for
--- remainder-near, anyway]
-dqrem107 remainder 0.0001 0 -> NaN Invalid_operation
-dqrem108 remainder 0.01 0 -> NaN Invalid_operation
-dqrem109 remainder 0.1 0 -> NaN Invalid_operation
-dqrem110 remainder 1 0 -> NaN Invalid_operation
-dqrem111 remainder 1 0.0 -> NaN Invalid_operation
-dqrem112 remainder 10 0.0 -> NaN Invalid_operation
-dqrem113 remainder 1E+100 0.0 -> NaN Invalid_operation
-dqrem114 remainder 1E+380 0 -> NaN Invalid_operation
-dqrem115 remainder 0.0001 -0 -> NaN Invalid_operation
-dqrem116 remainder 0.01 -0 -> NaN Invalid_operation
-dqrem119 remainder 0.1 -0 -> NaN Invalid_operation
-dqrem120 remainder 1 -0 -> NaN Invalid_operation
-dqrem121 remainder 1 -0.0 -> NaN Invalid_operation
-dqrem122 remainder 10 -0.0 -> NaN Invalid_operation
-dqrem123 remainder 1E+100 -0.0 -> NaN Invalid_operation
-dqrem124 remainder 1E+384 -0 -> NaN Invalid_operation
--- and zeros on left
-dqrem130 remainder 0 1 -> 0
-dqrem131 remainder 0 -1 -> 0
-dqrem132 remainder 0.0 1 -> 0.0
-dqrem133 remainder 0.0 -1 -> 0.0
-dqrem134 remainder -0 1 -> -0
-dqrem135 remainder -0 -1 -> -0
-dqrem136 remainder -0.0 1 -> -0.0
-dqrem137 remainder -0.0 -1 -> -0.0
-
--- 0.5ers
-dqrem143 remainder 0.5 2 -> 0.5
-dqrem144 remainder 0.5 2.1 -> 0.5
-dqrem145 remainder 0.5 2.01 -> 0.50
-dqrem146 remainder 0.5 2.001 -> 0.500
-dqrem147 remainder 0.50 2 -> 0.50
-dqrem148 remainder 0.50 2.01 -> 0.50
-dqrem149 remainder 0.50 2.001 -> 0.500
-
--- steadies
-dqrem150 remainder 1 1 -> 0
-dqrem151 remainder 1 2 -> 1
-dqrem152 remainder 1 3 -> 1
-dqrem153 remainder 1 4 -> 1
-dqrem154 remainder 1 5 -> 1
-dqrem155 remainder 1 6 -> 1
-dqrem156 remainder 1 7 -> 1
-dqrem157 remainder 1 8 -> 1
-dqrem158 remainder 1 9 -> 1
-dqrem159 remainder 1 10 -> 1
-dqrem160 remainder 1 1 -> 0
-dqrem161 remainder 2 1 -> 0
-dqrem162 remainder 3 1 -> 0
-dqrem163 remainder 4 1 -> 0
-dqrem164 remainder 5 1 -> 0
-dqrem165 remainder 6 1 -> 0
-dqrem166 remainder 7 1 -> 0
-dqrem167 remainder 8 1 -> 0
-dqrem168 remainder 9 1 -> 0
-dqrem169 remainder 10 1 -> 0
-
--- some differences from remainderNear
-dqrem171 remainder 0.4 1.020 -> 0.400
-dqrem172 remainder 0.50 1.020 -> 0.500
-dqrem173 remainder 0.51 1.020 -> 0.510
-dqrem174 remainder 0.52 1.020 -> 0.520
-dqrem175 remainder 0.6 1.020 -> 0.600
-
--- More flavours of remainder by 0
-dqrem201 remainder 0 0 -> NaN Division_undefined
-dqrem202 remainder 0.0E5 0 -> NaN Division_undefined
-dqrem203 remainder 0.000 0 -> NaN Division_undefined
-dqrem204 remainder 0.0001 0 -> NaN Invalid_operation
-dqrem205 remainder 0.01 0 -> NaN Invalid_operation
-dqrem206 remainder 0.1 0 -> NaN Invalid_operation
-dqrem207 remainder 1 0 -> NaN Invalid_operation
-dqrem208 remainder 1 0.0 -> NaN Invalid_operation
-dqrem209 remainder 10 0.0 -> NaN Invalid_operation
-dqrem210 remainder 1E+100 0.0 -> NaN Invalid_operation
-dqrem211 remainder 1E+380 0 -> NaN Invalid_operation
-
--- some differences from remainderNear
-dqrem231 remainder -0.4 1.020 -> -0.400
-dqrem232 remainder -0.50 1.020 -> -0.500
-dqrem233 remainder -0.51 1.020 -> -0.510
-dqrem234 remainder -0.52 1.020 -> -0.520
-dqrem235 remainder -0.6 1.020 -> -0.600
-
--- high Xs
-dqrem240 remainder 1E+2 1.00 -> 0.00
-
--- dqrem3xx are from DiagBigDecimal
-dqrem301 remainder 1 3 -> 1
-dqrem302 remainder 5 5 -> 0
-dqrem303 remainder 13 10 -> 3
-dqrem304 remainder 13 50 -> 13
-dqrem305 remainder 13 100 -> 13
-dqrem306 remainder 13 1000 -> 13
-dqrem307 remainder .13 1 -> 0.13
-dqrem308 remainder 0.133 1 -> 0.133
-dqrem309 remainder 0.1033 1 -> 0.1033
-dqrem310 remainder 1.033 1 -> 0.033
-dqrem311 remainder 10.33 1 -> 0.33
-dqrem312 remainder 10.33 10 -> 0.33
-dqrem313 remainder 103.3 1 -> 0.3
-dqrem314 remainder 133 10 -> 3
-dqrem315 remainder 1033 10 -> 3
-dqrem316 remainder 1033 50 -> 33
-dqrem317 remainder 101.0 3 -> 2.0
-dqrem318 remainder 102.0 3 -> 0.0
-dqrem319 remainder 103.0 3 -> 1.0
-dqrem320 remainder 2.40 1 -> 0.40
-dqrem321 remainder 2.400 1 -> 0.400
-dqrem322 remainder 2.4 1 -> 0.4
-dqrem323 remainder 2.4 2 -> 0.4
-dqrem324 remainder 2.400 2 -> 0.400
-dqrem325 remainder 1 0.3 -> 0.1
-dqrem326 remainder 1 0.30 -> 0.10
-dqrem327 remainder 1 0.300 -> 0.100
-dqrem328 remainder 1 0.3000 -> 0.1000
-dqrem329 remainder 1.0 0.3 -> 0.1
-dqrem330 remainder 1.00 0.3 -> 0.10
-dqrem331 remainder 1.000 0.3 -> 0.100
-dqrem332 remainder 1.0000 0.3 -> 0.1000
-dqrem333 remainder 0.5 2 -> 0.5
-dqrem334 remainder 0.5 2.1 -> 0.5
-dqrem335 remainder 0.5 2.01 -> 0.50
-dqrem336 remainder 0.5 2.001 -> 0.500
-dqrem337 remainder 0.50 2 -> 0.50
-dqrem338 remainder 0.50 2.01 -> 0.50
-dqrem339 remainder 0.50 2.001 -> 0.500
-
-dqrem340 remainder 0.5 0.5000001 -> 0.5000000
-dqrem341 remainder 0.5 0.50000001 -> 0.50000000
-dqrem342 remainder 0.5 0.500000001 -> 0.500000000
-dqrem343 remainder 0.5 0.5000000001 -> 0.5000000000
-dqrem344 remainder 0.5 0.50000000001 -> 0.50000000000
-dqrem345 remainder 0.5 0.4999999 -> 1E-7
-dqrem346 remainder 0.5 0.49999999 -> 1E-8
-dqrem347 remainder 0.5 0.499999999 -> 1E-9
-dqrem348 remainder 0.5 0.4999999999 -> 1E-10
-dqrem349 remainder 0.5 0.49999999999 -> 1E-11
-dqrem350 remainder 0.5 0.499999999999 -> 1E-12
-
-dqrem351 remainder 0.03 7 -> 0.03
-dqrem352 remainder 5 2 -> 1
-dqrem353 remainder 4.1 2 -> 0.1
-dqrem354 remainder 4.01 2 -> 0.01
-dqrem355 remainder 4.001 2 -> 0.001
-dqrem356 remainder 4.0001 2 -> 0.0001
-dqrem357 remainder 4.00001 2 -> 0.00001
-dqrem358 remainder 4.000001 2 -> 0.000001
-dqrem359 remainder 4.0000001 2 -> 1E-7
-
-dqrem360 remainder 1.2 0.7345 -> 0.4655
-dqrem361 remainder 0.8 12 -> 0.8
-dqrem362 remainder 0.8 0.2 -> 0.0
-dqrem363 remainder 0.8 0.3 -> 0.2
-dqrem364 remainder 0.800 12 -> 0.800
-dqrem365 remainder 0.800 1.7 -> 0.800
-dqrem366 remainder 2.400 2 -> 0.400
-
-dqrem371 remainder 2.400 2 -> 0.400
-
-dqrem381 remainder 12345 1 -> 0
-dqrem382 remainder 12345 1.0001 -> 0.7657
-dqrem383 remainder 12345 1.001 -> 0.668
-dqrem384 remainder 12345 1.01 -> 0.78
-dqrem385 remainder 12345 1.1 -> 0.8
-dqrem386 remainder 12355 4 -> 3
-dqrem387 remainder 12345 4 -> 1
-dqrem388 remainder 12355 4.0001 -> 2.6912
-dqrem389 remainder 12345 4.0001 -> 0.6914
-dqrem390 remainder 12345 4.9 -> 1.9
-dqrem391 remainder 12345 4.99 -> 4.73
-dqrem392 remainder 12345 4.999 -> 2.469
-dqrem393 remainder 12345 4.9999 -> 0.2469
-dqrem394 remainder 12345 5 -> 0
-dqrem395 remainder 12345 5.0001 -> 4.7532
-dqrem396 remainder 12345 5.001 -> 2.532
-dqrem397 remainder 12345 5.01 -> 0.36
-dqrem398 remainder 12345 5.1 -> 3.0
-
--- the nasty division-by-1 cases
-dqrem401 remainder 0.5 1 -> 0.5
-dqrem402 remainder 0.55 1 -> 0.55
-dqrem403 remainder 0.555 1 -> 0.555
-dqrem404 remainder 0.5555 1 -> 0.5555
-dqrem405 remainder 0.55555 1 -> 0.55555
-dqrem406 remainder 0.555555 1 -> 0.555555
-dqrem407 remainder 0.5555555 1 -> 0.5555555
-dqrem408 remainder 0.55555555 1 -> 0.55555555
-dqrem409 remainder 0.555555555 1 -> 0.555555555
-
--- folddowns
-dqrem421 remainder 1E+6144 1 -> NaN Division_impossible
-dqrem422 remainder 1E+6144 1E+6143 -> 0E+6111 Clamped
-dqrem423 remainder 1E+6144 2E+6143 -> 0E+6111 Clamped
-dqrem424 remainder 1E+6144 3E+6143 -> 1.00000000000000000000000000000000E+6143 Clamped
-dqrem425 remainder 1E+6144 4E+6143 -> 2.00000000000000000000000000000000E+6143 Clamped
-dqrem426 remainder 1E+6144 5E+6143 -> 0E+6111 Clamped
-dqrem427 remainder 1E+6144 6E+6143 -> 4.00000000000000000000000000000000E+6143 Clamped
-dqrem428 remainder 1E+6144 7E+6143 -> 3.00000000000000000000000000000000E+6143 Clamped
-dqrem429 remainder 1E+6144 8E+6143 -> 2.00000000000000000000000000000000E+6143 Clamped
-dqrem430 remainder 1E+6144 9E+6143 -> 1.00000000000000000000000000000000E+6143 Clamped
--- tinies
-dqrem431 remainder 1E-6175 1E-6176 -> 0E-6176
-dqrem432 remainder 1E-6175 2E-6176 -> 0E-6176
-dqrem433 remainder 1E-6175 3E-6176 -> 1E-6176 Subnormal
-dqrem434 remainder 1E-6175 4E-6176 -> 2E-6176 Subnormal
-dqrem435 remainder 1E-6175 5E-6176 -> 0E-6176
-dqrem436 remainder 1E-6175 6E-6176 -> 4E-6176 Subnormal
-dqrem437 remainder 1E-6175 7E-6176 -> 3E-6176 Subnormal
-dqrem438 remainder 1E-6175 8E-6176 -> 2E-6176 Subnormal
-dqrem439 remainder 1E-6175 9E-6176 -> 1E-6176 Subnormal
-dqrem440 remainder 1E-6175 10E-6176 -> 0E-6176
-dqrem441 remainder 1E-6175 11E-6176 -> 1.0E-6175 Subnormal
-dqrem442 remainder 100E-6175 11E-6176 -> 1.0E-6175 Subnormal
-dqrem443 remainder 100E-6175 20E-6176 -> 0E-6176
-dqrem444 remainder 100E-6175 21E-6176 -> 1.3E-6175 Subnormal
-dqrem445 remainder 100E-6175 30E-6176 -> 1.0E-6175 Subnormal
-
--- zero signs
-dqrem650 remainder 1 1 -> 0
-dqrem651 remainder -1 1 -> -0
-dqrem652 remainder 1 -1 -> 0
-dqrem653 remainder -1 -1 -> -0
-dqrem654 remainder 0 1 -> 0
-dqrem655 remainder -0 1 -> -0
-dqrem656 remainder 0 -1 -> 0
-dqrem657 remainder -0 -1 -> -0
-dqrem658 remainder 0.00 1 -> 0.00
-dqrem659 remainder -0.00 1 -> -0.00
-
--- Specials
-dqrem680 remainder Inf -Inf -> NaN Invalid_operation
-dqrem681 remainder Inf -1000 -> NaN Invalid_operation
-dqrem682 remainder Inf -1 -> NaN Invalid_operation
-dqrem683 remainder Inf 0 -> NaN Invalid_operation
-dqrem684 remainder Inf -0 -> NaN Invalid_operation
-dqrem685 remainder Inf 1 -> NaN Invalid_operation
-dqrem686 remainder Inf 1000 -> NaN Invalid_operation
-dqrem687 remainder Inf Inf -> NaN Invalid_operation
-dqrem688 remainder -1000 Inf -> -1000
-dqrem689 remainder -Inf Inf -> NaN Invalid_operation
-dqrem691 remainder -1 Inf -> -1
-dqrem692 remainder 0 Inf -> 0
-dqrem693 remainder -0 Inf -> -0
-dqrem694 remainder 1 Inf -> 1
-dqrem695 remainder 1000 Inf -> 1000
-dqrem696 remainder Inf Inf -> NaN Invalid_operation
-
-dqrem700 remainder -Inf -Inf -> NaN Invalid_operation
-dqrem701 remainder -Inf -1000 -> NaN Invalid_operation
-dqrem702 remainder -Inf -1 -> NaN Invalid_operation
-dqrem703 remainder -Inf -0 -> NaN Invalid_operation
-dqrem704 remainder -Inf 0 -> NaN Invalid_operation
-dqrem705 remainder -Inf 1 -> NaN Invalid_operation
-dqrem706 remainder -Inf 1000 -> NaN Invalid_operation
-dqrem707 remainder -Inf Inf -> NaN Invalid_operation
-dqrem708 remainder -Inf -Inf -> NaN Invalid_operation
-dqrem709 remainder -1000 Inf -> -1000
-dqrem710 remainder -1 -Inf -> -1
-dqrem711 remainder -0 -Inf -> -0
-dqrem712 remainder 0 -Inf -> 0
-dqrem713 remainder 1 -Inf -> 1
-dqrem714 remainder 1000 -Inf -> 1000
-dqrem715 remainder Inf -Inf -> NaN Invalid_operation
-
-dqrem721 remainder NaN -Inf -> NaN
-dqrem722 remainder NaN -1000 -> NaN
-dqrem723 remainder NaN -1 -> NaN
-dqrem724 remainder NaN -0 -> NaN
-dqrem725 remainder -NaN 0 -> -NaN
-dqrem726 remainder NaN 1 -> NaN
-dqrem727 remainder NaN 1000 -> NaN
-dqrem728 remainder NaN Inf -> NaN
-dqrem729 remainder NaN -NaN -> NaN
-dqrem730 remainder -Inf NaN -> NaN
-dqrem731 remainder -1000 NaN -> NaN
-dqrem732 remainder -1 NaN -> NaN
-dqrem733 remainder -0 -NaN -> -NaN
-dqrem734 remainder 0 NaN -> NaN
-dqrem735 remainder 1 -NaN -> -NaN
-dqrem736 remainder 1000 NaN -> NaN
-dqrem737 remainder Inf NaN -> NaN
-
-dqrem741 remainder sNaN -Inf -> NaN Invalid_operation
-dqrem742 remainder sNaN -1000 -> NaN Invalid_operation
-dqrem743 remainder -sNaN -1 -> -NaN Invalid_operation
-dqrem744 remainder sNaN -0 -> NaN Invalid_operation
-dqrem745 remainder sNaN 0 -> NaN Invalid_operation
-dqrem746 remainder sNaN 1 -> NaN Invalid_operation
-dqrem747 remainder sNaN 1000 -> NaN Invalid_operation
-dqrem749 remainder sNaN NaN -> NaN Invalid_operation
-dqrem750 remainder sNaN sNaN -> NaN Invalid_operation
-dqrem751 remainder NaN sNaN -> NaN Invalid_operation
-dqrem752 remainder -Inf sNaN -> NaN Invalid_operation
-dqrem753 remainder -1000 sNaN -> NaN Invalid_operation
-dqrem754 remainder -1 sNaN -> NaN Invalid_operation
-dqrem755 remainder -0 sNaN -> NaN Invalid_operation
-dqrem756 remainder 0 sNaN -> NaN Invalid_operation
-dqrem757 remainder 1 sNaN -> NaN Invalid_operation
-dqrem758 remainder 1000 sNaN -> NaN Invalid_operation
-dqrem759 remainder Inf -sNaN -> -NaN Invalid_operation
-
--- propaging NaNs
-dqrem760 remainder NaN1 NaN7 -> NaN1
-dqrem761 remainder sNaN2 NaN8 -> NaN2 Invalid_operation
-dqrem762 remainder NaN3 sNaN9 -> NaN9 Invalid_operation
-dqrem763 remainder sNaN4 sNaN10 -> NaN4 Invalid_operation
-dqrem764 remainder 15 NaN11 -> NaN11
-dqrem765 remainder NaN6 NaN12 -> NaN6
-dqrem766 remainder Inf NaN13 -> NaN13
-dqrem767 remainder NaN14 -Inf -> NaN14
-dqrem768 remainder 0 NaN15 -> NaN15
-dqrem769 remainder NaN16 -0 -> NaN16
-
--- edge cases of impossible
-dqrem770 remainder 1234568888888887777777777890123456 10 -> 6
-dqrem771 remainder 1234568888888887777777777890123456 1 -> 0
-dqrem772 remainder 1234568888888887777777777890123456 0.1 -> NaN Division_impossible
-dqrem773 remainder 1234568888888887777777777890123456 0.01 -> NaN Division_impossible
-
--- long operand checks
-dqrem801 remainder 12345678000 100 -> 0
-dqrem802 remainder 1 12345678000 -> 1
-dqrem803 remainder 1234567800 10 -> 0
-dqrem804 remainder 1 1234567800 -> 1
-dqrem805 remainder 1234567890 10 -> 0
-dqrem806 remainder 1 1234567890 -> 1
-dqrem807 remainder 1234567891 10 -> 1
-dqrem808 remainder 1 1234567891 -> 1
-dqrem809 remainder 12345678901 100 -> 1
-dqrem810 remainder 1 12345678901 -> 1
-dqrem811 remainder 1234567896 10 -> 6
-dqrem812 remainder 1 1234567896 -> 1
-
-dqrem821 remainder 12345678000 100 -> 0
-dqrem822 remainder 1 12345678000 -> 1
-dqrem823 remainder 1234567800 10 -> 0
-dqrem824 remainder 1 1234567800 -> 1
-dqrem825 remainder 1234567890 10 -> 0
-dqrem826 remainder 1 1234567890 -> 1
-dqrem827 remainder 1234567891 10 -> 1
-dqrem828 remainder 1 1234567891 -> 1
-dqrem829 remainder 12345678901 100 -> 1
-dqrem830 remainder 1 12345678901 -> 1
-dqrem831 remainder 1234567896 10 -> 6
-dqrem832 remainder 1 1234567896 -> 1
-
--- from divideint
-dqrem840 remainder 100000000.0 1 -> 0.0
-dqrem841 remainder 100000000.4 1 -> 0.4
-dqrem842 remainder 100000000.5 1 -> 0.5
-dqrem843 remainder 100000000.9 1 -> 0.9
-dqrem844 remainder 100000000.999 1 -> 0.999
-dqrem850 remainder 100000003 5 -> 3
-dqrem851 remainder 10000003 5 -> 3
-dqrem852 remainder 1000003 5 -> 3
-dqrem853 remainder 100003 5 -> 3
-dqrem854 remainder 10003 5 -> 3
-dqrem855 remainder 1003 5 -> 3
-dqrem856 remainder 103 5 -> 3
-dqrem857 remainder 13 5 -> 3
-dqrem858 remainder 1 5 -> 1
-
--- Vladimir's cases 1234567890123456
-dqrem860 remainder 123.0e1 1000000000000000 -> 1230
-dqrem861 remainder 1230 1000000000000000 -> 1230
-dqrem862 remainder 12.3e2 1000000000000000 -> 1230
-dqrem863 remainder 1.23e3 1000000000000000 -> 1230
-dqrem864 remainder 123e1 1000000000000000 -> 1230
-dqrem870 remainder 123e1 1000000000000000 -> 1230
-dqrem871 remainder 123e1 100000000000000 -> 1230
-dqrem872 remainder 123e1 10000000000000 -> 1230
-dqrem873 remainder 123e1 1000000000000 -> 1230
-dqrem874 remainder 123e1 100000000000 -> 1230
-dqrem875 remainder 123e1 10000000000 -> 1230
-dqrem876 remainder 123e1 1000000000 -> 1230
-dqrem877 remainder 123e1 100000000 -> 1230
-dqrem878 remainder 1230 100000000 -> 1230
-dqrem879 remainder 123e1 10000000 -> 1230
-dqrem880 remainder 123e1 1000000 -> 1230
-dqrem881 remainder 123e1 100000 -> 1230
-dqrem882 remainder 123e1 10000 -> 1230
-dqrem883 remainder 123e1 1000 -> 230
-dqrem884 remainder 123e1 100 -> 30
-dqrem885 remainder 123e1 10 -> 0
-dqrem886 remainder 123e1 1 -> 0
-
-dqrem890 remainder 123e1 2000000000000000 -> 1230
-dqrem891 remainder 123e1 200000000000000 -> 1230
-dqrem892 remainder 123e1 20000000000000 -> 1230
-dqrem893 remainder 123e1 2000000000000 -> 1230
-dqrem894 remainder 123e1 200000000000 -> 1230
-dqrem895 remainder 123e1 20000000000 -> 1230
-dqrem896 remainder 123e1 2000000000 -> 1230
-dqrem897 remainder 123e1 200000000 -> 1230
-dqrem899 remainder 123e1 20000000 -> 1230
-dqrem900 remainder 123e1 2000000 -> 1230
-dqrem901 remainder 123e1 200000 -> 1230
-dqrem902 remainder 123e1 20000 -> 1230
-dqrem903 remainder 123e1 2000 -> 1230
-dqrem904 remainder 123e1 200 -> 30
-dqrem905 remainder 123e1 20 -> 10
-dqrem906 remainder 123e1 2 -> 0
-
-dqrem910 remainder 123e1 5000000000000000 -> 1230
-dqrem911 remainder 123e1 500000000000000 -> 1230
-dqrem912 remainder 123e1 50000000000000 -> 1230
-dqrem913 remainder 123e1 5000000000000 -> 1230
-dqrem914 remainder 123e1 500000000000 -> 1230
-dqrem915 remainder 123e1 50000000000 -> 1230
-dqrem916 remainder 123e1 5000000000 -> 1230
-dqrem917 remainder 123e1 500000000 -> 1230
-dqrem919 remainder 123e1 50000000 -> 1230
-dqrem920 remainder 123e1 5000000 -> 1230
-dqrem921 remainder 123e1 500000 -> 1230
-dqrem922 remainder 123e1 50000 -> 1230
-dqrem923 remainder 123e1 5000 -> 1230
-dqrem924 remainder 123e1 500 -> 230
-dqrem925 remainder 123e1 50 -> 30
-dqrem926 remainder 123e1 5 -> 0
-
-dqrem930 remainder 123e1 9000000000000000 -> 1230
-dqrem931 remainder 123e1 900000000000000 -> 1230
-dqrem932 remainder 123e1 90000000000000 -> 1230
-dqrem933 remainder 123e1 9000000000000 -> 1230
-dqrem934 remainder 123e1 900000000000 -> 1230
-dqrem935 remainder 123e1 90000000000 -> 1230
-dqrem936 remainder 123e1 9000000000 -> 1230
-dqrem937 remainder 123e1 900000000 -> 1230
-dqrem939 remainder 123e1 90000000 -> 1230
-dqrem940 remainder 123e1 9000000 -> 1230
-dqrem941 remainder 123e1 900000 -> 1230
-dqrem942 remainder 123e1 90000 -> 1230
-dqrem943 remainder 123e1 9000 -> 1230
-dqrem944 remainder 123e1 900 -> 330
-dqrem945 remainder 123e1 90 -> 60
-dqrem946 remainder 123e1 9 -> 6
-
-dqrem950 remainder 123e1 1000000000000000 -> 1230
-dqrem961 remainder 123e1 2999999999999999 -> 1230
-dqrem962 remainder 123e1 3999999999999999 -> 1230
-dqrem963 remainder 123e1 4999999999999999 -> 1230
-dqrem964 remainder 123e1 5999999999999999 -> 1230
-dqrem965 remainder 123e1 6999999999999999 -> 1230
-dqrem966 remainder 123e1 7999999999999999 -> 1230
-dqrem967 remainder 123e1 8999999999999999 -> 1230
-dqrem968 remainder 123e1 9999999999999999 -> 1230
-dqrem969 remainder 123e1 9876543210987654 -> 1230
-
-dqrem980 remainder 123e1 1000E299 -> 1.23E+3 -- 123E+1 internally
-
--- overflow and underflow tests [from divide]
-dqrem1051 remainder 1e+277 1e-311 -> NaN Division_impossible
-dqrem1052 remainder 1e+277 -1e-311 -> NaN Division_impossible
-dqrem1053 remainder -1e+277 1e-311 -> NaN Division_impossible
-dqrem1054 remainder -1e+277 -1e-311 -> NaN Division_impossible
-dqrem1055 remainder 1e-277 1e+311 -> 1E-277
-dqrem1056 remainder 1e-277 -1e+311 -> 1E-277
-dqrem1057 remainder -1e-277 1e+311 -> -1E-277
-dqrem1058 remainder -1e-277 -1e+311 -> -1E-277
-
--- Gyuris example
-dqrem1070 remainder 8.336804418094040989630006819881709E-6143 8.336804418094040989630006819889000E-6143 -> 8.336804418094040989630006819881709E-6143
-
--- destructive subtract
-dqrem1120 remainder 1234567890123456789012345678901234 1.000000000000000000000000000000001 -> 0.765432109876543210987654321098768
-dqrem1121 remainder 1234567890123456789012345678901234 1.00000000000000000000000000000001 -> 0.65432109876543210987654321098779
-dqrem1122 remainder 1234567890123456789012345678901234 1.0000000000000000000000000000001 -> 0.5432109876543210987654321098890
-dqrem1123 remainder 1234567890123456789012345678901255 4.000000000000000000000000000000001 -> 2.691358027469135802746913580274687
-dqrem1124 remainder 1234567890123456789012345678901234 4.000000000000000000000000000000001 -> 1.691358027469135802746913580274692
-dqrem1125 remainder 1234567890123456789012345678901234 4.9999999999999999999999999999999 -> 3.6913578024691357802469135780251
-dqrem1126 remainder 1234567890123456789012345678901234 4.99999999999999999999999999999999 -> 1.46913578024691357802469135780247
-dqrem1127 remainder 1234567890123456789012345678901234 4.999999999999999999999999999999999 -> 4.246913578024691357802469135780246
-dqrem1128 remainder 1234567890123456789012345678901234 5.0000000000000000000000000000001 -> 4.3086421975308642197530864219759
-
--- Null tests
-dqrem1000 remainder 10 # -> NaN Invalid_operation
-dqrem1001 remainder # 10 -> NaN Invalid_operation
-
+------------------------------------------------------------------------ +-- dqRemainder.decTest -- decQuad remainder -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +-- sanity checks (as base, above) +dqrem001 remainder 1 1 -> 0 +dqrem002 remainder 2 1 -> 0 +dqrem003 remainder 1 2 -> 1 +dqrem004 remainder 2 2 -> 0 +dqrem005 remainder 0 1 -> 0 +dqrem006 remainder 0 2 -> 0 +dqrem007 remainder 1 3 -> 1 +dqrem008 remainder 2 3 -> 2 +dqrem009 remainder 3 3 -> 0 + +dqrem010 remainder 2.4 1 -> 0.4 +dqrem011 remainder 2.4 -1 -> 0.4 +dqrem012 remainder -2.4 1 -> -0.4 +dqrem013 remainder -2.4 -1 -> -0.4 +dqrem014 remainder 2.40 1 -> 0.40 +dqrem015 remainder 2.400 1 -> 0.400 +dqrem016 remainder 2.4 2 -> 0.4 +dqrem017 remainder 2.400 2 -> 0.400 +dqrem018 remainder 2. 2 -> 0 +dqrem019 remainder 20 20 -> 0 + +dqrem020 remainder 187 187 -> 0 +dqrem021 remainder 5 2 -> 1 +dqrem022 remainder 5 2.0 -> 1.0 +dqrem023 remainder 5 2.000 -> 1.000 +dqrem024 remainder 5 0.200 -> 0.000 +dqrem025 remainder 5 0.200 -> 0.000 + +dqrem030 remainder 1 2 -> 1 +dqrem031 remainder 1 4 -> 1 +dqrem032 remainder 1 8 -> 1 + +dqrem033 remainder 1 16 -> 1 +dqrem034 remainder 1 32 -> 1 +dqrem035 remainder 1 64 -> 1 +dqrem040 remainder 1 -2 -> 1 +dqrem041 remainder 1 -4 -> 1 +dqrem042 remainder 1 -8 -> 1 +dqrem043 remainder 1 -16 -> 1 +dqrem044 remainder 1 -32 -> 1 +dqrem045 remainder 1 -64 -> 1 +dqrem050 remainder -1 2 -> -1 +dqrem051 remainder -1 4 -> -1 +dqrem052 remainder -1 8 -> -1 +dqrem053 remainder -1 16 -> -1 +dqrem054 remainder -1 32 -> -1 +dqrem055 remainder -1 64 -> -1 +dqrem060 remainder -1 -2 -> -1 +dqrem061 remainder -1 -4 -> -1 +dqrem062 remainder -1 -8 -> -1 +dqrem063 remainder -1 -16 -> -1 +dqrem064 remainder -1 -32 -> -1 +dqrem065 remainder -1 -64 -> -1 + +dqrem066 remainder 999999999 1 -> 0 +dqrem067 remainder 999999999.4 1 -> 0.4 +dqrem068 remainder 999999999.5 1 -> 0.5 +dqrem069 remainder 999999999.9 1 -> 0.9 +dqrem070 remainder 999999999.999 1 -> 0.999 +dqrem071 remainder 999999.999999 1 -> 0.999999 +dqrem072 remainder 9 1 -> 0 + +dqrem080 remainder 0. 1 -> 0 +dqrem081 remainder .0 1 -> 0.0 +dqrem082 remainder 0.00 1 -> 0.00 +dqrem083 remainder 0.00E+9 1 -> 0 +dqrem084 remainder 0.00E+3 1 -> 0 +dqrem085 remainder 0.00E+2 1 -> 0 +dqrem086 remainder 0.00E+1 1 -> 0.0 +dqrem087 remainder 0.00E+0 1 -> 0.00 +dqrem088 remainder 0.00E-0 1 -> 0.00 +dqrem089 remainder 0.00E-1 1 -> 0.000 +dqrem090 remainder 0.00E-2 1 -> 0.0000 +dqrem091 remainder 0.00E-3 1 -> 0.00000 +dqrem092 remainder 0.00E-4 1 -> 0.000000 +dqrem093 remainder 0.00E-5 1 -> 0E-7 +dqrem094 remainder 0.00E-6 1 -> 0E-8 +dqrem095 remainder 0.0000E-50 1 -> 0E-54 + +-- Various flavours of remainder by 0 +dqrem101 remainder 0 0 -> NaN Division_undefined +dqrem102 remainder 0 -0 -> NaN Division_undefined +dqrem103 remainder -0 0 -> NaN Division_undefined +dqrem104 remainder -0 -0 -> NaN Division_undefined +dqrem105 remainder 0.0E5 0 -> NaN Division_undefined +dqrem106 remainder 0.000 0 -> NaN Division_undefined +-- [Some think this next group should be Division_by_zero exception, but +-- IEEE 854 is explicit that it is Invalid operation .. for +-- remainder-near, anyway] +dqrem107 remainder 0.0001 0 -> NaN Invalid_operation +dqrem108 remainder 0.01 0 -> NaN Invalid_operation +dqrem109 remainder 0.1 0 -> NaN Invalid_operation +dqrem110 remainder 1 0 -> NaN Invalid_operation +dqrem111 remainder 1 0.0 -> NaN Invalid_operation +dqrem112 remainder 10 0.0 -> NaN Invalid_operation +dqrem113 remainder 1E+100 0.0 -> NaN Invalid_operation +dqrem114 remainder 1E+380 0 -> NaN Invalid_operation +dqrem115 remainder 0.0001 -0 -> NaN Invalid_operation +dqrem116 remainder 0.01 -0 -> NaN Invalid_operation +dqrem119 remainder 0.1 -0 -> NaN Invalid_operation +dqrem120 remainder 1 -0 -> NaN Invalid_operation +dqrem121 remainder 1 -0.0 -> NaN Invalid_operation +dqrem122 remainder 10 -0.0 -> NaN Invalid_operation +dqrem123 remainder 1E+100 -0.0 -> NaN Invalid_operation +dqrem124 remainder 1E+384 -0 -> NaN Invalid_operation +-- and zeros on left +dqrem130 remainder 0 1 -> 0 +dqrem131 remainder 0 -1 -> 0 +dqrem132 remainder 0.0 1 -> 0.0 +dqrem133 remainder 0.0 -1 -> 0.0 +dqrem134 remainder -0 1 -> -0 +dqrem135 remainder -0 -1 -> -0 +dqrem136 remainder -0.0 1 -> -0.0 +dqrem137 remainder -0.0 -1 -> -0.0 + +-- 0.5ers +dqrem143 remainder 0.5 2 -> 0.5 +dqrem144 remainder 0.5 2.1 -> 0.5 +dqrem145 remainder 0.5 2.01 -> 0.50 +dqrem146 remainder 0.5 2.001 -> 0.500 +dqrem147 remainder 0.50 2 -> 0.50 +dqrem148 remainder 0.50 2.01 -> 0.50 +dqrem149 remainder 0.50 2.001 -> 0.500 + +-- steadies +dqrem150 remainder 1 1 -> 0 +dqrem151 remainder 1 2 -> 1 +dqrem152 remainder 1 3 -> 1 +dqrem153 remainder 1 4 -> 1 +dqrem154 remainder 1 5 -> 1 +dqrem155 remainder 1 6 -> 1 +dqrem156 remainder 1 7 -> 1 +dqrem157 remainder 1 8 -> 1 +dqrem158 remainder 1 9 -> 1 +dqrem159 remainder 1 10 -> 1 +dqrem160 remainder 1 1 -> 0 +dqrem161 remainder 2 1 -> 0 +dqrem162 remainder 3 1 -> 0 +dqrem163 remainder 4 1 -> 0 +dqrem164 remainder 5 1 -> 0 +dqrem165 remainder 6 1 -> 0 +dqrem166 remainder 7 1 -> 0 +dqrem167 remainder 8 1 -> 0 +dqrem168 remainder 9 1 -> 0 +dqrem169 remainder 10 1 -> 0 + +-- some differences from remainderNear +dqrem171 remainder 0.4 1.020 -> 0.400 +dqrem172 remainder 0.50 1.020 -> 0.500 +dqrem173 remainder 0.51 1.020 -> 0.510 +dqrem174 remainder 0.52 1.020 -> 0.520 +dqrem175 remainder 0.6 1.020 -> 0.600 + +-- More flavours of remainder by 0 +dqrem201 remainder 0 0 -> NaN Division_undefined +dqrem202 remainder 0.0E5 0 -> NaN Division_undefined +dqrem203 remainder 0.000 0 -> NaN Division_undefined +dqrem204 remainder 0.0001 0 -> NaN Invalid_operation +dqrem205 remainder 0.01 0 -> NaN Invalid_operation +dqrem206 remainder 0.1 0 -> NaN Invalid_operation +dqrem207 remainder 1 0 -> NaN Invalid_operation +dqrem208 remainder 1 0.0 -> NaN Invalid_operation +dqrem209 remainder 10 0.0 -> NaN Invalid_operation +dqrem210 remainder 1E+100 0.0 -> NaN Invalid_operation +dqrem211 remainder 1E+380 0 -> NaN Invalid_operation + +-- some differences from remainderNear +dqrem231 remainder -0.4 1.020 -> -0.400 +dqrem232 remainder -0.50 1.020 -> -0.500 +dqrem233 remainder -0.51 1.020 -> -0.510 +dqrem234 remainder -0.52 1.020 -> -0.520 +dqrem235 remainder -0.6 1.020 -> -0.600 + +-- high Xs +dqrem240 remainder 1E+2 1.00 -> 0.00 + +-- dqrem3xx are from DiagBigDecimal +dqrem301 remainder 1 3 -> 1 +dqrem302 remainder 5 5 -> 0 +dqrem303 remainder 13 10 -> 3 +dqrem304 remainder 13 50 -> 13 +dqrem305 remainder 13 100 -> 13 +dqrem306 remainder 13 1000 -> 13 +dqrem307 remainder .13 1 -> 0.13 +dqrem308 remainder 0.133 1 -> 0.133 +dqrem309 remainder 0.1033 1 -> 0.1033 +dqrem310 remainder 1.033 1 -> 0.033 +dqrem311 remainder 10.33 1 -> 0.33 +dqrem312 remainder 10.33 10 -> 0.33 +dqrem313 remainder 103.3 1 -> 0.3 +dqrem314 remainder 133 10 -> 3 +dqrem315 remainder 1033 10 -> 3 +dqrem316 remainder 1033 50 -> 33 +dqrem317 remainder 101.0 3 -> 2.0 +dqrem318 remainder 102.0 3 -> 0.0 +dqrem319 remainder 103.0 3 -> 1.0 +dqrem320 remainder 2.40 1 -> 0.40 +dqrem321 remainder 2.400 1 -> 0.400 +dqrem322 remainder 2.4 1 -> 0.4 +dqrem323 remainder 2.4 2 -> 0.4 +dqrem324 remainder 2.400 2 -> 0.400 +dqrem325 remainder 1 0.3 -> 0.1 +dqrem326 remainder 1 0.30 -> 0.10 +dqrem327 remainder 1 0.300 -> 0.100 +dqrem328 remainder 1 0.3000 -> 0.1000 +dqrem329 remainder 1.0 0.3 -> 0.1 +dqrem330 remainder 1.00 0.3 -> 0.10 +dqrem331 remainder 1.000 0.3 -> 0.100 +dqrem332 remainder 1.0000 0.3 -> 0.1000 +dqrem333 remainder 0.5 2 -> 0.5 +dqrem334 remainder 0.5 2.1 -> 0.5 +dqrem335 remainder 0.5 2.01 -> 0.50 +dqrem336 remainder 0.5 2.001 -> 0.500 +dqrem337 remainder 0.50 2 -> 0.50 +dqrem338 remainder 0.50 2.01 -> 0.50 +dqrem339 remainder 0.50 2.001 -> 0.500 + +dqrem340 remainder 0.5 0.5000001 -> 0.5000000 +dqrem341 remainder 0.5 0.50000001 -> 0.50000000 +dqrem342 remainder 0.5 0.500000001 -> 0.500000000 +dqrem343 remainder 0.5 0.5000000001 -> 0.5000000000 +dqrem344 remainder 0.5 0.50000000001 -> 0.50000000000 +dqrem345 remainder 0.5 0.4999999 -> 1E-7 +dqrem346 remainder 0.5 0.49999999 -> 1E-8 +dqrem347 remainder 0.5 0.499999999 -> 1E-9 +dqrem348 remainder 0.5 0.4999999999 -> 1E-10 +dqrem349 remainder 0.5 0.49999999999 -> 1E-11 +dqrem350 remainder 0.5 0.499999999999 -> 1E-12 + +dqrem351 remainder 0.03 7 -> 0.03 +dqrem352 remainder 5 2 -> 1 +dqrem353 remainder 4.1 2 -> 0.1 +dqrem354 remainder 4.01 2 -> 0.01 +dqrem355 remainder 4.001 2 -> 0.001 +dqrem356 remainder 4.0001 2 -> 0.0001 +dqrem357 remainder 4.00001 2 -> 0.00001 +dqrem358 remainder 4.000001 2 -> 0.000001 +dqrem359 remainder 4.0000001 2 -> 1E-7 + +dqrem360 remainder 1.2 0.7345 -> 0.4655 +dqrem361 remainder 0.8 12 -> 0.8 +dqrem362 remainder 0.8 0.2 -> 0.0 +dqrem363 remainder 0.8 0.3 -> 0.2 +dqrem364 remainder 0.800 12 -> 0.800 +dqrem365 remainder 0.800 1.7 -> 0.800 +dqrem366 remainder 2.400 2 -> 0.400 + +dqrem371 remainder 2.400 2 -> 0.400 + +dqrem381 remainder 12345 1 -> 0 +dqrem382 remainder 12345 1.0001 -> 0.7657 +dqrem383 remainder 12345 1.001 -> 0.668 +dqrem384 remainder 12345 1.01 -> 0.78 +dqrem385 remainder 12345 1.1 -> 0.8 +dqrem386 remainder 12355 4 -> 3 +dqrem387 remainder 12345 4 -> 1 +dqrem388 remainder 12355 4.0001 -> 2.6912 +dqrem389 remainder 12345 4.0001 -> 0.6914 +dqrem390 remainder 12345 4.9 -> 1.9 +dqrem391 remainder 12345 4.99 -> 4.73 +dqrem392 remainder 12345 4.999 -> 2.469 +dqrem393 remainder 12345 4.9999 -> 0.2469 +dqrem394 remainder 12345 5 -> 0 +dqrem395 remainder 12345 5.0001 -> 4.7532 +dqrem396 remainder 12345 5.001 -> 2.532 +dqrem397 remainder 12345 5.01 -> 0.36 +dqrem398 remainder 12345 5.1 -> 3.0 + +-- the nasty division-by-1 cases +dqrem401 remainder 0.5 1 -> 0.5 +dqrem402 remainder 0.55 1 -> 0.55 +dqrem403 remainder 0.555 1 -> 0.555 +dqrem404 remainder 0.5555 1 -> 0.5555 +dqrem405 remainder 0.55555 1 -> 0.55555 +dqrem406 remainder 0.555555 1 -> 0.555555 +dqrem407 remainder 0.5555555 1 -> 0.5555555 +dqrem408 remainder 0.55555555 1 -> 0.55555555 +dqrem409 remainder 0.555555555 1 -> 0.555555555 + +-- folddowns +dqrem421 remainder 1E+6144 1 -> NaN Division_impossible +dqrem422 remainder 1E+6144 1E+6143 -> 0E+6111 Clamped +dqrem423 remainder 1E+6144 2E+6143 -> 0E+6111 Clamped +dqrem424 remainder 1E+6144 3E+6143 -> 1.00000000000000000000000000000000E+6143 Clamped +dqrem425 remainder 1E+6144 4E+6143 -> 2.00000000000000000000000000000000E+6143 Clamped +dqrem426 remainder 1E+6144 5E+6143 -> 0E+6111 Clamped +dqrem427 remainder 1E+6144 6E+6143 -> 4.00000000000000000000000000000000E+6143 Clamped +dqrem428 remainder 1E+6144 7E+6143 -> 3.00000000000000000000000000000000E+6143 Clamped +dqrem429 remainder 1E+6144 8E+6143 -> 2.00000000000000000000000000000000E+6143 Clamped +dqrem430 remainder 1E+6144 9E+6143 -> 1.00000000000000000000000000000000E+6143 Clamped +-- tinies +dqrem431 remainder 1E-6175 1E-6176 -> 0E-6176 +dqrem432 remainder 1E-6175 2E-6176 -> 0E-6176 +dqrem433 remainder 1E-6175 3E-6176 -> 1E-6176 Subnormal +dqrem434 remainder 1E-6175 4E-6176 -> 2E-6176 Subnormal +dqrem435 remainder 1E-6175 5E-6176 -> 0E-6176 +dqrem436 remainder 1E-6175 6E-6176 -> 4E-6176 Subnormal +dqrem437 remainder 1E-6175 7E-6176 -> 3E-6176 Subnormal +dqrem438 remainder 1E-6175 8E-6176 -> 2E-6176 Subnormal +dqrem439 remainder 1E-6175 9E-6176 -> 1E-6176 Subnormal +dqrem440 remainder 1E-6175 10E-6176 -> 0E-6176 +dqrem441 remainder 1E-6175 11E-6176 -> 1.0E-6175 Subnormal +dqrem442 remainder 100E-6175 11E-6176 -> 1.0E-6175 Subnormal +dqrem443 remainder 100E-6175 20E-6176 -> 0E-6176 +dqrem444 remainder 100E-6175 21E-6176 -> 1.3E-6175 Subnormal +dqrem445 remainder 100E-6175 30E-6176 -> 1.0E-6175 Subnormal + +-- zero signs +dqrem650 remainder 1 1 -> 0 +dqrem651 remainder -1 1 -> -0 +dqrem652 remainder 1 -1 -> 0 +dqrem653 remainder -1 -1 -> -0 +dqrem654 remainder 0 1 -> 0 +dqrem655 remainder -0 1 -> -0 +dqrem656 remainder 0 -1 -> 0 +dqrem657 remainder -0 -1 -> -0 +dqrem658 remainder 0.00 1 -> 0.00 +dqrem659 remainder -0.00 1 -> -0.00 + +-- Specials +dqrem680 remainder Inf -Inf -> NaN Invalid_operation +dqrem681 remainder Inf -1000 -> NaN Invalid_operation +dqrem682 remainder Inf -1 -> NaN Invalid_operation +dqrem683 remainder Inf 0 -> NaN Invalid_operation +dqrem684 remainder Inf -0 -> NaN Invalid_operation +dqrem685 remainder Inf 1 -> NaN Invalid_operation +dqrem686 remainder Inf 1000 -> NaN Invalid_operation +dqrem687 remainder Inf Inf -> NaN Invalid_operation +dqrem688 remainder -1000 Inf -> -1000 +dqrem689 remainder -Inf Inf -> NaN Invalid_operation +dqrem691 remainder -1 Inf -> -1 +dqrem692 remainder 0 Inf -> 0 +dqrem693 remainder -0 Inf -> -0 +dqrem694 remainder 1 Inf -> 1 +dqrem695 remainder 1000 Inf -> 1000 +dqrem696 remainder Inf Inf -> NaN Invalid_operation + +dqrem700 remainder -Inf -Inf -> NaN Invalid_operation +dqrem701 remainder -Inf -1000 -> NaN Invalid_operation +dqrem702 remainder -Inf -1 -> NaN Invalid_operation +dqrem703 remainder -Inf -0 -> NaN Invalid_operation +dqrem704 remainder -Inf 0 -> NaN Invalid_operation +dqrem705 remainder -Inf 1 -> NaN Invalid_operation +dqrem706 remainder -Inf 1000 -> NaN Invalid_operation +dqrem707 remainder -Inf Inf -> NaN Invalid_operation +dqrem708 remainder -Inf -Inf -> NaN Invalid_operation +dqrem709 remainder -1000 Inf -> -1000 +dqrem710 remainder -1 -Inf -> -1 +dqrem711 remainder -0 -Inf -> -0 +dqrem712 remainder 0 -Inf -> 0 +dqrem713 remainder 1 -Inf -> 1 +dqrem714 remainder 1000 -Inf -> 1000 +dqrem715 remainder Inf -Inf -> NaN Invalid_operation + +dqrem721 remainder NaN -Inf -> NaN +dqrem722 remainder NaN -1000 -> NaN +dqrem723 remainder NaN -1 -> NaN +dqrem724 remainder NaN -0 -> NaN +dqrem725 remainder -NaN 0 -> -NaN +dqrem726 remainder NaN 1 -> NaN +dqrem727 remainder NaN 1000 -> NaN +dqrem728 remainder NaN Inf -> NaN +dqrem729 remainder NaN -NaN -> NaN +dqrem730 remainder -Inf NaN -> NaN +dqrem731 remainder -1000 NaN -> NaN +dqrem732 remainder -1 NaN -> NaN +dqrem733 remainder -0 -NaN -> -NaN +dqrem734 remainder 0 NaN -> NaN +dqrem735 remainder 1 -NaN -> -NaN +dqrem736 remainder 1000 NaN -> NaN +dqrem737 remainder Inf NaN -> NaN + +dqrem741 remainder sNaN -Inf -> NaN Invalid_operation +dqrem742 remainder sNaN -1000 -> NaN Invalid_operation +dqrem743 remainder -sNaN -1 -> -NaN Invalid_operation +dqrem744 remainder sNaN -0 -> NaN Invalid_operation +dqrem745 remainder sNaN 0 -> NaN Invalid_operation +dqrem746 remainder sNaN 1 -> NaN Invalid_operation +dqrem747 remainder sNaN 1000 -> NaN Invalid_operation +dqrem749 remainder sNaN NaN -> NaN Invalid_operation +dqrem750 remainder sNaN sNaN -> NaN Invalid_operation +dqrem751 remainder NaN sNaN -> NaN Invalid_operation +dqrem752 remainder -Inf sNaN -> NaN Invalid_operation +dqrem753 remainder -1000 sNaN -> NaN Invalid_operation +dqrem754 remainder -1 sNaN -> NaN Invalid_operation +dqrem755 remainder -0 sNaN -> NaN Invalid_operation +dqrem756 remainder 0 sNaN -> NaN Invalid_operation +dqrem757 remainder 1 sNaN -> NaN Invalid_operation +dqrem758 remainder 1000 sNaN -> NaN Invalid_operation +dqrem759 remainder Inf -sNaN -> -NaN Invalid_operation + +-- propaging NaNs +dqrem760 remainder NaN1 NaN7 -> NaN1 +dqrem761 remainder sNaN2 NaN8 -> NaN2 Invalid_operation +dqrem762 remainder NaN3 sNaN9 -> NaN9 Invalid_operation +dqrem763 remainder sNaN4 sNaN10 -> NaN4 Invalid_operation +dqrem764 remainder 15 NaN11 -> NaN11 +dqrem765 remainder NaN6 NaN12 -> NaN6 +dqrem766 remainder Inf NaN13 -> NaN13 +dqrem767 remainder NaN14 -Inf -> NaN14 +dqrem768 remainder 0 NaN15 -> NaN15 +dqrem769 remainder NaN16 -0 -> NaN16 + +-- edge cases of impossible +dqrem770 remainder 1234568888888887777777777890123456 10 -> 6 +dqrem771 remainder 1234568888888887777777777890123456 1 -> 0 +dqrem772 remainder 1234568888888887777777777890123456 0.1 -> NaN Division_impossible +dqrem773 remainder 1234568888888887777777777890123456 0.01 -> NaN Division_impossible + +-- long operand checks +dqrem801 remainder 12345678000 100 -> 0 +dqrem802 remainder 1 12345678000 -> 1 +dqrem803 remainder 1234567800 10 -> 0 +dqrem804 remainder 1 1234567800 -> 1 +dqrem805 remainder 1234567890 10 -> 0 +dqrem806 remainder 1 1234567890 -> 1 +dqrem807 remainder 1234567891 10 -> 1 +dqrem808 remainder 1 1234567891 -> 1 +dqrem809 remainder 12345678901 100 -> 1 +dqrem810 remainder 1 12345678901 -> 1 +dqrem811 remainder 1234567896 10 -> 6 +dqrem812 remainder 1 1234567896 -> 1 + +dqrem821 remainder 12345678000 100 -> 0 +dqrem822 remainder 1 12345678000 -> 1 +dqrem823 remainder 1234567800 10 -> 0 +dqrem824 remainder 1 1234567800 -> 1 +dqrem825 remainder 1234567890 10 -> 0 +dqrem826 remainder 1 1234567890 -> 1 +dqrem827 remainder 1234567891 10 -> 1 +dqrem828 remainder 1 1234567891 -> 1 +dqrem829 remainder 12345678901 100 -> 1 +dqrem830 remainder 1 12345678901 -> 1 +dqrem831 remainder 1234567896 10 -> 6 +dqrem832 remainder 1 1234567896 -> 1 + +-- from divideint +dqrem840 remainder 100000000.0 1 -> 0.0 +dqrem841 remainder 100000000.4 1 -> 0.4 +dqrem842 remainder 100000000.5 1 -> 0.5 +dqrem843 remainder 100000000.9 1 -> 0.9 +dqrem844 remainder 100000000.999 1 -> 0.999 +dqrem850 remainder 100000003 5 -> 3 +dqrem851 remainder 10000003 5 -> 3 +dqrem852 remainder 1000003 5 -> 3 +dqrem853 remainder 100003 5 -> 3 +dqrem854 remainder 10003 5 -> 3 +dqrem855 remainder 1003 5 -> 3 +dqrem856 remainder 103 5 -> 3 +dqrem857 remainder 13 5 -> 3 +dqrem858 remainder 1 5 -> 1 + +-- Vladimir's cases 1234567890123456 +dqrem860 remainder 123.0e1 1000000000000000 -> 1230 +dqrem861 remainder 1230 1000000000000000 -> 1230 +dqrem862 remainder 12.3e2 1000000000000000 -> 1230 +dqrem863 remainder 1.23e3 1000000000000000 -> 1230 +dqrem864 remainder 123e1 1000000000000000 -> 1230 +dqrem870 remainder 123e1 1000000000000000 -> 1230 +dqrem871 remainder 123e1 100000000000000 -> 1230 +dqrem872 remainder 123e1 10000000000000 -> 1230 +dqrem873 remainder 123e1 1000000000000 -> 1230 +dqrem874 remainder 123e1 100000000000 -> 1230 +dqrem875 remainder 123e1 10000000000 -> 1230 +dqrem876 remainder 123e1 1000000000 -> 1230 +dqrem877 remainder 123e1 100000000 -> 1230 +dqrem878 remainder 1230 100000000 -> 1230 +dqrem879 remainder 123e1 10000000 -> 1230 +dqrem880 remainder 123e1 1000000 -> 1230 +dqrem881 remainder 123e1 100000 -> 1230 +dqrem882 remainder 123e1 10000 -> 1230 +dqrem883 remainder 123e1 1000 -> 230 +dqrem884 remainder 123e1 100 -> 30 +dqrem885 remainder 123e1 10 -> 0 +dqrem886 remainder 123e1 1 -> 0 + +dqrem890 remainder 123e1 2000000000000000 -> 1230 +dqrem891 remainder 123e1 200000000000000 -> 1230 +dqrem892 remainder 123e1 20000000000000 -> 1230 +dqrem893 remainder 123e1 2000000000000 -> 1230 +dqrem894 remainder 123e1 200000000000 -> 1230 +dqrem895 remainder 123e1 20000000000 -> 1230 +dqrem896 remainder 123e1 2000000000 -> 1230 +dqrem897 remainder 123e1 200000000 -> 1230 +dqrem899 remainder 123e1 20000000 -> 1230 +dqrem900 remainder 123e1 2000000 -> 1230 +dqrem901 remainder 123e1 200000 -> 1230 +dqrem902 remainder 123e1 20000 -> 1230 +dqrem903 remainder 123e1 2000 -> 1230 +dqrem904 remainder 123e1 200 -> 30 +dqrem905 remainder 123e1 20 -> 10 +dqrem906 remainder 123e1 2 -> 0 + +dqrem910 remainder 123e1 5000000000000000 -> 1230 +dqrem911 remainder 123e1 500000000000000 -> 1230 +dqrem912 remainder 123e1 50000000000000 -> 1230 +dqrem913 remainder 123e1 5000000000000 -> 1230 +dqrem914 remainder 123e1 500000000000 -> 1230 +dqrem915 remainder 123e1 50000000000 -> 1230 +dqrem916 remainder 123e1 5000000000 -> 1230 +dqrem917 remainder 123e1 500000000 -> 1230 +dqrem919 remainder 123e1 50000000 -> 1230 +dqrem920 remainder 123e1 5000000 -> 1230 +dqrem921 remainder 123e1 500000 -> 1230 +dqrem922 remainder 123e1 50000 -> 1230 +dqrem923 remainder 123e1 5000 -> 1230 +dqrem924 remainder 123e1 500 -> 230 +dqrem925 remainder 123e1 50 -> 30 +dqrem926 remainder 123e1 5 -> 0 + +dqrem930 remainder 123e1 9000000000000000 -> 1230 +dqrem931 remainder 123e1 900000000000000 -> 1230 +dqrem932 remainder 123e1 90000000000000 -> 1230 +dqrem933 remainder 123e1 9000000000000 -> 1230 +dqrem934 remainder 123e1 900000000000 -> 1230 +dqrem935 remainder 123e1 90000000000 -> 1230 +dqrem936 remainder 123e1 9000000000 -> 1230 +dqrem937 remainder 123e1 900000000 -> 1230 +dqrem939 remainder 123e1 90000000 -> 1230 +dqrem940 remainder 123e1 9000000 -> 1230 +dqrem941 remainder 123e1 900000 -> 1230 +dqrem942 remainder 123e1 90000 -> 1230 +dqrem943 remainder 123e1 9000 -> 1230 +dqrem944 remainder 123e1 900 -> 330 +dqrem945 remainder 123e1 90 -> 60 +dqrem946 remainder 123e1 9 -> 6 + +dqrem950 remainder 123e1 1000000000000000 -> 1230 +dqrem961 remainder 123e1 2999999999999999 -> 1230 +dqrem962 remainder 123e1 3999999999999999 -> 1230 +dqrem963 remainder 123e1 4999999999999999 -> 1230 +dqrem964 remainder 123e1 5999999999999999 -> 1230 +dqrem965 remainder 123e1 6999999999999999 -> 1230 +dqrem966 remainder 123e1 7999999999999999 -> 1230 +dqrem967 remainder 123e1 8999999999999999 -> 1230 +dqrem968 remainder 123e1 9999999999999999 -> 1230 +dqrem969 remainder 123e1 9876543210987654 -> 1230 + +dqrem980 remainder 123e1 1000E299 -> 1.23E+3 -- 123E+1 internally + +-- overflow and underflow tests [from divide] +dqrem1051 remainder 1e+277 1e-311 -> NaN Division_impossible +dqrem1052 remainder 1e+277 -1e-311 -> NaN Division_impossible +dqrem1053 remainder -1e+277 1e-311 -> NaN Division_impossible +dqrem1054 remainder -1e+277 -1e-311 -> NaN Division_impossible +dqrem1055 remainder 1e-277 1e+311 -> 1E-277 +dqrem1056 remainder 1e-277 -1e+311 -> 1E-277 +dqrem1057 remainder -1e-277 1e+311 -> -1E-277 +dqrem1058 remainder -1e-277 -1e+311 -> -1E-277 + +-- Gyuris example +dqrem1070 remainder 8.336804418094040989630006819881709E-6143 8.336804418094040989630006819889000E-6143 -> 8.336804418094040989630006819881709E-6143 + +-- destructive subtract +dqrem1120 remainder 1234567890123456789012345678901234 1.000000000000000000000000000000001 -> 0.765432109876543210987654321098768 +dqrem1121 remainder 1234567890123456789012345678901234 1.00000000000000000000000000000001 -> 0.65432109876543210987654321098779 +dqrem1122 remainder 1234567890123456789012345678901234 1.0000000000000000000000000000001 -> 0.5432109876543210987654321098890 +dqrem1123 remainder 1234567890123456789012345678901255 4.000000000000000000000000000000001 -> 2.691358027469135802746913580274687 +dqrem1124 remainder 1234567890123456789012345678901234 4.000000000000000000000000000000001 -> 1.691358027469135802746913580274692 +dqrem1125 remainder 1234567890123456789012345678901234 4.9999999999999999999999999999999 -> 3.6913578024691357802469135780251 +dqrem1126 remainder 1234567890123456789012345678901234 4.99999999999999999999999999999999 -> 1.46913578024691357802469135780247 +dqrem1127 remainder 1234567890123456789012345678901234 4.999999999999999999999999999999999 -> 4.246913578024691357802469135780246 +dqrem1128 remainder 1234567890123456789012345678901234 5.0000000000000000000000000000001 -> 4.3086421975308642197530864219759 + +-- Null tests +dqrem1000 remainder 10 # -> NaN Invalid_operation +dqrem1001 remainder # 10 -> NaN Invalid_operation + diff --git a/Lib/test/decimaltestdata/dqRemainderNear.decTest b/Lib/test/decimaltestdata/dqRemainderNear.decTest index b850626fe4..0dd273fe38 100644 --- a/Lib/test/decimaltestdata/dqRemainderNear.decTest +++ b/Lib/test/decimaltestdata/dqRemainderNear.decTest @@ -1,631 +1,631 @@ -------------------------------------------------------------------------
--- dqRemainderNear.decTest -- decQuad remainder-near --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
--- sanity checks (as base, above)
-dqrmn001 remaindernear 1 1 -> 0
-dqrmn002 remaindernear 2 1 -> 0
-dqrmn003 remaindernear 1 2 -> 1
-dqrmn004 remaindernear 2 2 -> 0
-dqrmn005 remaindernear 0 1 -> 0
-dqrmn006 remaindernear 0 2 -> 0
-dqrmn007 remaindernear 1 3 -> 1
-dqrmn008 remaindernear 2 3 -> -1
-dqrmn009 remaindernear 3 3 -> 0
-
-dqrmn010 remaindernear 2.4 1 -> 0.4
-dqrmn011 remaindernear 2.4 -1 -> 0.4
-dqrmn012 remaindernear -2.4 1 -> -0.4
-dqrmn013 remaindernear -2.4 -1 -> -0.4
-dqrmn014 remaindernear 2.40 1 -> 0.40
-dqrmn015 remaindernear 2.400 1 -> 0.400
-dqrmn016 remaindernear 2.4 2 -> 0.4
-dqrmn017 remaindernear 2.400 2 -> 0.400
-dqrmn018 remaindernear 2. 2 -> 0
-dqrmn019 remaindernear 20 20 -> 0
-
-dqrmn020 remaindernear 187 187 -> 0
-dqrmn021 remaindernear 5 2 -> 1
-dqrmn022 remaindernear 5 2.0 -> 1.0
-dqrmn023 remaindernear 5 2.000 -> 1.000
-dqrmn024 remaindernear 5 0.200 -> 0.000
-dqrmn025 remaindernear 5 0.200 -> 0.000
-
-dqrmn030 remaindernear 1 2 -> 1
-dqrmn031 remaindernear 1 4 -> 1
-dqrmn032 remaindernear 1 8 -> 1
-
-dqrmn033 remaindernear 1 16 -> 1
-dqrmn034 remaindernear 1 32 -> 1
-dqrmn035 remaindernear 1 64 -> 1
-dqrmn040 remaindernear 1 -2 -> 1
-dqrmn041 remaindernear 1 -4 -> 1
-dqrmn042 remaindernear 1 -8 -> 1
-dqrmn043 remaindernear 1 -16 -> 1
-dqrmn044 remaindernear 1 -32 -> 1
-dqrmn045 remaindernear 1 -64 -> 1
-dqrmn050 remaindernear -1 2 -> -1
-dqrmn051 remaindernear -1 4 -> -1
-dqrmn052 remaindernear -1 8 -> -1
-dqrmn053 remaindernear -1 16 -> -1
-dqrmn054 remaindernear -1 32 -> -1
-dqrmn055 remaindernear -1 64 -> -1
-dqrmn060 remaindernear -1 -2 -> -1
-dqrmn061 remaindernear -1 -4 -> -1
-dqrmn062 remaindernear -1 -8 -> -1
-dqrmn063 remaindernear -1 -16 -> -1
-dqrmn064 remaindernear -1 -32 -> -1
-dqrmn065 remaindernear -1 -64 -> -1
-
-dqrmn066 remaindernear 9.9 1 -> -0.1
-dqrmn067 remaindernear 99.7 1 -> -0.3
-dqrmn068 remaindernear 999999999 1 -> 0
-dqrmn069 remaindernear 999999999.4 1 -> 0.4
-dqrmn070 remaindernear 999999999.5 1 -> -0.5
-dqrmn071 remaindernear 999999999.9 1 -> -0.1
-dqrmn072 remaindernear 999999999.999 1 -> -0.001
-dqrmn073 remaindernear 999999.999999 1 -> -0.000001
-dqrmn074 remaindernear 9 1 -> 0
-dqrmn075 remaindernear 9999999999999999 1 -> 0
-dqrmn076 remaindernear 9999999999999999 2 -> -1
-dqrmn077 remaindernear 9999999999999999 3 -> 0
-dqrmn078 remaindernear 9999999999999999 4 -> -1
-
-dqrmn080 remaindernear 0. 1 -> 0
-dqrmn081 remaindernear .0 1 -> 0.0
-dqrmn082 remaindernear 0.00 1 -> 0.00
-dqrmn083 remaindernear 0.00E+9 1 -> 0
-dqrmn084 remaindernear 0.00E+3 1 -> 0
-dqrmn085 remaindernear 0.00E+2 1 -> 0
-dqrmn086 remaindernear 0.00E+1 1 -> 0.0
-dqrmn087 remaindernear 0.00E+0 1 -> 0.00
-dqrmn088 remaindernear 0.00E-0 1 -> 0.00
-dqrmn089 remaindernear 0.00E-1 1 -> 0.000
-dqrmn090 remaindernear 0.00E-2 1 -> 0.0000
-dqrmn091 remaindernear 0.00E-3 1 -> 0.00000
-dqrmn092 remaindernear 0.00E-4 1 -> 0.000000
-dqrmn093 remaindernear 0.00E-5 1 -> 0E-7
-dqrmn094 remaindernear 0.00E-6 1 -> 0E-8
-dqrmn095 remaindernear 0.0000E-50 1 -> 0E-54
-
--- Various flavours of remaindernear by 0
-dqrmn101 remaindernear 0 0 -> NaN Division_undefined
-dqrmn102 remaindernear 0 -0 -> NaN Division_undefined
-dqrmn103 remaindernear -0 0 -> NaN Division_undefined
-dqrmn104 remaindernear -0 -0 -> NaN Division_undefined
-dqrmn105 remaindernear 0.0E5 0 -> NaN Division_undefined
-dqrmn106 remaindernear 0.000 0 -> NaN Division_undefined
--- [Some think this next group should be Division_by_zero exception, but
--- IEEE 854 is explicit that it is Invalid operation .. for
--- remainder-near, anyway]
-dqrmn107 remaindernear 0.0001 0 -> NaN Invalid_operation
-dqrmn108 remaindernear 0.01 0 -> NaN Invalid_operation
-dqrmn109 remaindernear 0.1 0 -> NaN Invalid_operation
-dqrmn110 remaindernear 1 0 -> NaN Invalid_operation
-dqrmn111 remaindernear 1 0.0 -> NaN Invalid_operation
-dqrmn112 remaindernear 10 0.0 -> NaN Invalid_operation
-dqrmn113 remaindernear 1E+100 0.0 -> NaN Invalid_operation
-dqrmn114 remaindernear 1E+380 0 -> NaN Invalid_operation
-dqrmn115 remaindernear 0.0001 -0 -> NaN Invalid_operation
-dqrmn116 remaindernear 0.01 -0 -> NaN Invalid_operation
-dqrmn119 remaindernear 0.1 -0 -> NaN Invalid_operation
-dqrmn120 remaindernear 1 -0 -> NaN Invalid_operation
-dqrmn121 remaindernear 1 -0.0 -> NaN Invalid_operation
-dqrmn122 remaindernear 10 -0.0 -> NaN Invalid_operation
-dqrmn123 remaindernear 1E+100 -0.0 -> NaN Invalid_operation
-dqrmn124 remaindernear 1E+384 -0 -> NaN Invalid_operation
--- and zeros on left
-dqrmn130 remaindernear 0 1 -> 0
-dqrmn131 remaindernear 0 -1 -> 0
-dqrmn132 remaindernear 0.0 1 -> 0.0
-dqrmn133 remaindernear 0.0 -1 -> 0.0
-dqrmn134 remaindernear -0 1 -> -0
-dqrmn135 remaindernear -0 -1 -> -0
-dqrmn136 remaindernear -0.0 1 -> -0.0
-dqrmn137 remaindernear -0.0 -1 -> -0.0
-
--- 0.5ers
-dqrmn143 remaindernear 0.5 2 -> 0.5
-dqrmn144 remaindernear 0.5 2.1 -> 0.5
-dqrmn145 remaindernear 0.5 2.01 -> 0.50
-dqrmn146 remaindernear 0.5 2.001 -> 0.500
-dqrmn147 remaindernear 0.50 2 -> 0.50
-dqrmn148 remaindernear 0.50 2.01 -> 0.50
-dqrmn149 remaindernear 0.50 2.001 -> 0.500
-
--- steadies
-dqrmn150 remaindernear 1 1 -> 0
-dqrmn151 remaindernear 1 2 -> 1
-dqrmn152 remaindernear 1 3 -> 1
-dqrmn153 remaindernear 1 4 -> 1
-dqrmn154 remaindernear 1 5 -> 1
-dqrmn155 remaindernear 1 6 -> 1
-dqrmn156 remaindernear 1 7 -> 1
-dqrmn157 remaindernear 1 8 -> 1
-dqrmn158 remaindernear 1 9 -> 1
-dqrmn159 remaindernear 1 10 -> 1
-dqrmn160 remaindernear 1 1 -> 0
-dqrmn161 remaindernear 2 1 -> 0
-dqrmn162 remaindernear 3 1 -> 0
-dqrmn163 remaindernear 4 1 -> 0
-dqrmn164 remaindernear 5 1 -> 0
-dqrmn165 remaindernear 6 1 -> 0
-dqrmn166 remaindernear 7 1 -> 0
-dqrmn167 remaindernear 8 1 -> 0
-dqrmn168 remaindernear 9 1 -> 0
-dqrmn169 remaindernear 10 1 -> 0
-
--- some differences from remainder
-dqrmn171 remaindernear 0.4 1.020 -> 0.400
-dqrmn172 remaindernear 0.50 1.020 -> 0.500
-dqrmn173 remaindernear 0.51 1.020 -> 0.510
-dqrmn174 remaindernear 0.52 1.020 -> -0.500
-dqrmn175 remaindernear 0.6 1.020 -> -0.420
-
--- More flavours of remaindernear by 0
-dqrmn201 remaindernear 0 0 -> NaN Division_undefined
-dqrmn202 remaindernear 0.0E5 0 -> NaN Division_undefined
-dqrmn203 remaindernear 0.000 0 -> NaN Division_undefined
-dqrmn204 remaindernear 0.0001 0 -> NaN Invalid_operation
-dqrmn205 remaindernear 0.01 0 -> NaN Invalid_operation
-dqrmn206 remaindernear 0.1 0 -> NaN Invalid_operation
-dqrmn207 remaindernear 1 0 -> NaN Invalid_operation
-dqrmn208 remaindernear 1 0.0 -> NaN Invalid_operation
-dqrmn209 remaindernear 10 0.0 -> NaN Invalid_operation
-dqrmn210 remaindernear 1E+100 0.0 -> NaN Invalid_operation
-dqrmn211 remaindernear 1E+380 0 -> NaN Invalid_operation
-
--- tests from the extended specification
-dqrmn221 remaindernear 2.1 3 -> -0.9
-dqrmn222 remaindernear 10 6 -> -2
-dqrmn223 remaindernear 10 3 -> 1
-dqrmn224 remaindernear -10 3 -> -1
-dqrmn225 remaindernear 10.2 1 -> 0.2
-dqrmn226 remaindernear 10 0.3 -> 0.1
-dqrmn227 remaindernear 3.6 1.3 -> -0.3
-
--- some differences from remainder
-dqrmn231 remaindernear -0.4 1.020 -> -0.400
-dqrmn232 remaindernear -0.50 1.020 -> -0.500
-dqrmn233 remaindernear -0.51 1.020 -> -0.510
-dqrmn234 remaindernear -0.52 1.020 -> 0.500
-dqrmn235 remaindernear -0.6 1.020 -> 0.420
-
--- high Xs
-dqrmn240 remaindernear 1E+2 1.00 -> 0.00
-
--- dqrmn3xx are from DiagBigDecimal
-dqrmn301 remaindernear 1 3 -> 1
-dqrmn302 remaindernear 5 5 -> 0
-dqrmn303 remaindernear 13 10 -> 3
-dqrmn304 remaindernear 13 50 -> 13
-dqrmn305 remaindernear 13 100 -> 13
-dqrmn306 remaindernear 13 1000 -> 13
-dqrmn307 remaindernear .13 1 -> 0.13
-dqrmn308 remaindernear 0.133 1 -> 0.133
-dqrmn309 remaindernear 0.1033 1 -> 0.1033
-dqrmn310 remaindernear 1.033 1 -> 0.033
-dqrmn311 remaindernear 10.33 1 -> 0.33
-dqrmn312 remaindernear 10.33 10 -> 0.33
-dqrmn313 remaindernear 103.3 1 -> 0.3
-dqrmn314 remaindernear 133 10 -> 3
-dqrmn315 remaindernear 1033 10 -> 3
-dqrmn316 remaindernear 1033 50 -> -17
-dqrmn317 remaindernear 101.0 3 -> -1.0
-dqrmn318 remaindernear 102.0 3 -> 0.0
-dqrmn319 remaindernear 103.0 3 -> 1.0
-dqrmn320 remaindernear 2.40 1 -> 0.40
-dqrmn321 remaindernear 2.400 1 -> 0.400
-dqrmn322 remaindernear 2.4 1 -> 0.4
-dqrmn323 remaindernear 2.4 2 -> 0.4
-dqrmn324 remaindernear 2.400 2 -> 0.400
-dqrmn325 remaindernear 1 0.3 -> 0.1
-dqrmn326 remaindernear 1 0.30 -> 0.10
-dqrmn327 remaindernear 1 0.300 -> 0.100
-dqrmn328 remaindernear 1 0.3000 -> 0.1000
-dqrmn329 remaindernear 1.0 0.3 -> 0.1
-dqrmn330 remaindernear 1.00 0.3 -> 0.10
-dqrmn331 remaindernear 1.000 0.3 -> 0.100
-dqrmn332 remaindernear 1.0000 0.3 -> 0.1000
-dqrmn333 remaindernear 0.5 2 -> 0.5
-dqrmn334 remaindernear 0.5 2.1 -> 0.5
-dqrmn335 remaindernear 0.5 2.01 -> 0.50
-dqrmn336 remaindernear 0.5 2.001 -> 0.500
-dqrmn337 remaindernear 0.50 2 -> 0.50
-dqrmn338 remaindernear 0.50 2.01 -> 0.50
-dqrmn339 remaindernear 0.50 2.001 -> 0.500
-
-dqrmn340 remaindernear 0.5 0.5000001 -> -1E-7
-dqrmn341 remaindernear 0.5 0.50000001 -> -1E-8
-dqrmn342 remaindernear 0.5 0.500000001 -> -1E-9
-dqrmn343 remaindernear 0.5 0.5000000001 -> -1E-10
-dqrmn344 remaindernear 0.5 0.50000000001 -> -1E-11
-dqrmn345 remaindernear 0.5 0.4999999 -> 1E-7
-dqrmn346 remaindernear 0.5 0.49999999 -> 1E-8
-dqrmn347 remaindernear 0.5 0.499999999 -> 1E-9
-dqrmn348 remaindernear 0.5 0.4999999999 -> 1E-10
-dqrmn349 remaindernear 0.5 0.49999999999 -> 1E-11
-dqrmn350 remaindernear 0.5 0.499999999999 -> 1E-12
-
-dqrmn351 remaindernear 0.03 7 -> 0.03
-dqrmn352 remaindernear 5 2 -> 1
-dqrmn353 remaindernear 4.1 2 -> 0.1
-dqrmn354 remaindernear 4.01 2 -> 0.01
-dqrmn355 remaindernear 4.001 2 -> 0.001
-dqrmn356 remaindernear 4.0001 2 -> 0.0001
-dqrmn357 remaindernear 4.00001 2 -> 0.00001
-dqrmn358 remaindernear 4.000001 2 -> 0.000001
-dqrmn359 remaindernear 4.0000001 2 -> 1E-7
-
-dqrmn360 remaindernear 1.2 0.7345 -> -0.2690
-dqrmn361 remaindernear 0.8 12 -> 0.8
-dqrmn362 remaindernear 0.8 0.2 -> 0.0
-dqrmn363 remaindernear 0.8 0.3 -> -0.1
-dqrmn364 remaindernear 0.800 12 -> 0.800
-dqrmn365 remaindernear 0.800 1.7 -> 0.800
-dqrmn366 remaindernear 2.400 2 -> 0.400
-
--- round to even
-dqrmn371 remaindernear 121 2 -> 1
-dqrmn372 remaindernear 122 2 -> 0
-dqrmn373 remaindernear 123 2 -> -1
-dqrmn374 remaindernear 124 2 -> 0
-dqrmn375 remaindernear 125 2 -> 1
-dqrmn376 remaindernear 126 2 -> 0
-dqrmn377 remaindernear 127 2 -> -1
-
-dqrmn381 remaindernear 12345 1 -> 0
-dqrmn382 remaindernear 12345 1.0001 -> -0.2344
-dqrmn383 remaindernear 12345 1.001 -> -0.333
-dqrmn384 remaindernear 12345 1.01 -> -0.23
-dqrmn385 remaindernear 12345 1.1 -> -0.3
-dqrmn386 remaindernear 12355 4 -> -1
-dqrmn387 remaindernear 12345 4 -> 1
-dqrmn388 remaindernear 12355 4.0001 -> -1.3089
-dqrmn389 remaindernear 12345 4.0001 -> 0.6914
-dqrmn390 remaindernear 12345 4.9 -> 1.9
-dqrmn391 remaindernear 12345 4.99 -> -0.26
-dqrmn392 remaindernear 12345 4.999 -> 2.469
-dqrmn393 remaindernear 12345 4.9999 -> 0.2469
-dqrmn394 remaindernear 12345 5 -> 0
-dqrmn395 remaindernear 12345 5.0001 -> -0.2469
-dqrmn396 remaindernear 12345 5.001 -> -2.469
-dqrmn397 remaindernear 12345 5.01 -> 0.36
-dqrmn398 remaindernear 12345 5.1 -> -2.1
-
--- the nasty division-by-1 cases
-dqrmn401 remaindernear 0.4 1 -> 0.4
-dqrmn402 remaindernear 0.45 1 -> 0.45
-dqrmn403 remaindernear 0.455 1 -> 0.455
-dqrmn404 remaindernear 0.4555 1 -> 0.4555
-dqrmn405 remaindernear 0.45555 1 -> 0.45555
-dqrmn406 remaindernear 0.455555 1 -> 0.455555
-dqrmn407 remaindernear 0.4555555 1 -> 0.4555555
-dqrmn408 remaindernear 0.45555555 1 -> 0.45555555
-dqrmn409 remaindernear 0.455555555 1 -> 0.455555555
--- with spill... [412 exercises sticktab loop]
-dqrmn411 remaindernear 0.5 1 -> 0.5
-dqrmn412 remaindernear 0.55 1 -> -0.45
-dqrmn413 remaindernear 0.555 1 -> -0.445
-dqrmn414 remaindernear 0.5555 1 -> -0.4445
-dqrmn415 remaindernear 0.55555 1 -> -0.44445
-dqrmn416 remaindernear 0.555555 1 -> -0.444445
-dqrmn417 remaindernear 0.5555555 1 -> -0.4444445
-dqrmn418 remaindernear 0.55555555 1 -> -0.44444445
-dqrmn419 remaindernear 0.555555555 1 -> -0.444444445
-
--- folddowns
-dqrmn421 remaindernear 1E+6144 1 -> NaN Division_impossible
-dqrmn422 remaindernear 1E+6144 1E+6143 -> 0E+6111 Clamped
-dqrmn423 remaindernear 1E+6144 2E+6143 -> 0E+6111 Clamped
-dqrmn424 remaindernear 1E+6144 3E+6143 -> 1.00000000000000000000000000000000E+6143 Clamped
-dqrmn425 remaindernear 1E+6144 4E+6143 -> 2.00000000000000000000000000000000E+6143 Clamped
-dqrmn426 remaindernear 1E+6144 5E+6143 -> 0E+6111 Clamped
-dqrmn427 remaindernear 1E+6144 6E+6143 -> -2.00000000000000000000000000000000E+6143 Clamped
-dqrmn428 remaindernear 1E+6144 7E+6143 -> 3.00000000000000000000000000000000E+6143 Clamped
-dqrmn429 remaindernear 1E+6144 8E+6143 -> 2.00000000000000000000000000000000E+6143 Clamped
-dqrmn430 remaindernear 1E+6144 9E+6143 -> 1.00000000000000000000000000000000E+6143 Clamped
--- tinies
-dqrmn431 remaindernear 1E-6175 1E-6176 -> 0E-6176
-dqrmn432 remaindernear 1E-6175 2E-6176 -> 0E-6176
-dqrmn433 remaindernear 1E-6175 3E-6176 -> 1E-6176 Subnormal
-dqrmn434 remaindernear 1E-6175 4E-6176 -> 2E-6176 Subnormal
-dqrmn435 remaindernear 1E-6175 5E-6176 -> 0E-6176
-dqrmn436 remaindernear 1E-6175 6E-6176 -> -2E-6176 Subnormal
-dqrmn437 remaindernear 1E-6175 7E-6176 -> 3E-6176 Subnormal
-dqrmn438 remaindernear 1E-6175 8E-6176 -> 2E-6176 Subnormal
-dqrmn439 remaindernear 1E-6175 9E-6176 -> 1E-6176 Subnormal
-dqrmn440 remaindernear 1E-6175 10E-6176 -> 0E-6176
-dqrmn441 remaindernear 1E-6175 11E-6176 -> -1E-6176 Subnormal
-dqrmn442 remaindernear 100E-6175 11E-6176 -> -1E-6176 Subnormal
-dqrmn443 remaindernear 100E-6175 20E-6176 -> 0E-6176
-dqrmn444 remaindernear 100E-6175 21E-6176 -> -8E-6176 Subnormal
-dqrmn445 remaindernear 100E-6175 30E-6176 -> 1.0E-6175 Subnormal
-
--- zero signs
-dqrmn650 remaindernear 1 1 -> 0
-dqrmn651 remaindernear -1 1 -> -0
-dqrmn652 remaindernear 1 -1 -> 0
-dqrmn653 remaindernear -1 -1 -> -0
-dqrmn654 remaindernear 0 1 -> 0
-dqrmn655 remaindernear -0 1 -> -0
-dqrmn656 remaindernear 0 -1 -> 0
-dqrmn657 remaindernear -0 -1 -> -0
-dqrmn658 remaindernear 0.00 1 -> 0.00
-dqrmn659 remaindernear -0.00 1 -> -0.00
-
--- Specials
-dqrmn680 remaindernear Inf -Inf -> NaN Invalid_operation
-dqrmn681 remaindernear Inf -1000 -> NaN Invalid_operation
-dqrmn682 remaindernear Inf -1 -> NaN Invalid_operation
-dqrmn683 remaindernear Inf 0 -> NaN Invalid_operation
-dqrmn684 remaindernear Inf -0 -> NaN Invalid_operation
-dqrmn685 remaindernear Inf 1 -> NaN Invalid_operation
-dqrmn686 remaindernear Inf 1000 -> NaN Invalid_operation
-dqrmn687 remaindernear Inf Inf -> NaN Invalid_operation
-dqrmn688 remaindernear -1000 Inf -> -1000
-dqrmn689 remaindernear -Inf Inf -> NaN Invalid_operation
-dqrmn691 remaindernear -1 Inf -> -1
-dqrmn692 remaindernear 0 Inf -> 0
-dqrmn693 remaindernear -0 Inf -> -0
-dqrmn694 remaindernear 1 Inf -> 1
-dqrmn695 remaindernear 1000 Inf -> 1000
-dqrmn696 remaindernear Inf Inf -> NaN Invalid_operation
-
-dqrmn700 remaindernear -Inf -Inf -> NaN Invalid_operation
-dqrmn701 remaindernear -Inf -1000 -> NaN Invalid_operation
-dqrmn702 remaindernear -Inf -1 -> NaN Invalid_operation
-dqrmn703 remaindernear -Inf -0 -> NaN Invalid_operation
-dqrmn704 remaindernear -Inf 0 -> NaN Invalid_operation
-dqrmn705 remaindernear -Inf 1 -> NaN Invalid_operation
-dqrmn706 remaindernear -Inf 1000 -> NaN Invalid_operation
-dqrmn707 remaindernear -Inf Inf -> NaN Invalid_operation
-dqrmn708 remaindernear -Inf -Inf -> NaN Invalid_operation
-dqrmn709 remaindernear -1000 Inf -> -1000
-dqrmn710 remaindernear -1 -Inf -> -1
-dqrmn711 remaindernear -0 -Inf -> -0
-dqrmn712 remaindernear 0 -Inf -> 0
-dqrmn713 remaindernear 1 -Inf -> 1
-dqrmn714 remaindernear 1000 -Inf -> 1000
-dqrmn715 remaindernear Inf -Inf -> NaN Invalid_operation
-
-dqrmn721 remaindernear NaN -Inf -> NaN
-dqrmn722 remaindernear NaN -1000 -> NaN
-dqrmn723 remaindernear NaN -1 -> NaN
-dqrmn724 remaindernear NaN -0 -> NaN
-dqrmn725 remaindernear -NaN 0 -> -NaN
-dqrmn726 remaindernear NaN 1 -> NaN
-dqrmn727 remaindernear NaN 1000 -> NaN
-dqrmn728 remaindernear NaN Inf -> NaN
-dqrmn729 remaindernear NaN -NaN -> NaN
-dqrmn730 remaindernear -Inf NaN -> NaN
-dqrmn731 remaindernear -1000 NaN -> NaN
-dqrmn732 remaindernear -1 NaN -> NaN
-dqrmn733 remaindernear -0 -NaN -> -NaN
-dqrmn734 remaindernear 0 NaN -> NaN
-dqrmn735 remaindernear 1 -NaN -> -NaN
-dqrmn736 remaindernear 1000 NaN -> NaN
-dqrmn737 remaindernear Inf NaN -> NaN
-
-dqrmn741 remaindernear sNaN -Inf -> NaN Invalid_operation
-dqrmn742 remaindernear sNaN -1000 -> NaN Invalid_operation
-dqrmn743 remaindernear -sNaN -1 -> -NaN Invalid_operation
-dqrmn744 remaindernear sNaN -0 -> NaN Invalid_operation
-dqrmn745 remaindernear sNaN 0 -> NaN Invalid_operation
-dqrmn746 remaindernear sNaN 1 -> NaN Invalid_operation
-dqrmn747 remaindernear sNaN 1000 -> NaN Invalid_operation
-dqrmn749 remaindernear sNaN NaN -> NaN Invalid_operation
-dqrmn750 remaindernear sNaN sNaN -> NaN Invalid_operation
-dqrmn751 remaindernear NaN sNaN -> NaN Invalid_operation
-dqrmn752 remaindernear -Inf sNaN -> NaN Invalid_operation
-dqrmn753 remaindernear -1000 sNaN -> NaN Invalid_operation
-dqrmn754 remaindernear -1 sNaN -> NaN Invalid_operation
-dqrmn755 remaindernear -0 sNaN -> NaN Invalid_operation
-dqrmn756 remaindernear 0 sNaN -> NaN Invalid_operation
-dqrmn757 remaindernear 1 sNaN -> NaN Invalid_operation
-dqrmn758 remaindernear 1000 sNaN -> NaN Invalid_operation
-dqrmn759 remaindernear Inf -sNaN -> -NaN Invalid_operation
-
--- propaging NaNs
-dqrmn760 remaindernear NaN1 NaN7 -> NaN1
-dqrmn761 remaindernear sNaN2 NaN8 -> NaN2 Invalid_operation
-dqrmn762 remaindernear NaN3 sNaN9 -> NaN9 Invalid_operation
-dqrmn763 remaindernear sNaN4 sNaN10 -> NaN4 Invalid_operation
-dqrmn764 remaindernear 15 NaN11 -> NaN11
-dqrmn765 remaindernear NaN6 NaN12 -> NaN6
-dqrmn766 remaindernear Inf NaN13 -> NaN13
-dqrmn767 remaindernear NaN14 -Inf -> NaN14
-dqrmn768 remaindernear 0 NaN15 -> NaN15
-dqrmn769 remaindernear NaN16 -0 -> NaN16
-
--- edge cases of impossible
-dqrmn770 remaindernear 1234500000000000000000067890123456 10 -> -4
-dqrmn771 remaindernear 1234500000000000000000067890123456 1 -> 0
-dqrmn772 remaindernear 1234500000000000000000067890123456 0.1 -> NaN Division_impossible
-dqrmn773 remaindernear 1234500000000000000000067890123456 0.01 -> NaN Division_impossible
-
--- long operand checks
-dqrmn801 remaindernear 12345678000 100 -> 0
-dqrmn802 remaindernear 1 12345678000 -> 1
-dqrmn803 remaindernear 1234567800 10 -> 0
-dqrmn804 remaindernear 1 1234567800 -> 1
-dqrmn805 remaindernear 1234567890 10 -> 0
-dqrmn806 remaindernear 1 1234567890 -> 1
-dqrmn807 remaindernear 1234567891 10 -> 1
-dqrmn808 remaindernear 1 1234567891 -> 1
-dqrmn809 remaindernear 12345678901 100 -> 1
-dqrmn810 remaindernear 1 12345678901 -> 1
-dqrmn811 remaindernear 1234567896 10 -> -4
-dqrmn812 remaindernear 1 1234567896 -> 1
-
-dqrmn821 remaindernear 12345678000 100 -> 0
-dqrmn822 remaindernear 1 12345678000 -> 1
-dqrmn823 remaindernear 1234567800 10 -> 0
-dqrmn824 remaindernear 1 1234567800 -> 1
-dqrmn825 remaindernear 1234567890 10 -> 0
-dqrmn826 remaindernear 1 1234567890 -> 1
-dqrmn827 remaindernear 1234567891 10 -> 1
-dqrmn828 remaindernear 1 1234567891 -> 1
-dqrmn829 remaindernear 12345678901 100 -> 1
-dqrmn830 remaindernear 1 12345678901 -> 1
-dqrmn831 remaindernear 1234567896 10 -> -4
-dqrmn832 remaindernear 1 1234567896 -> 1
-
--- from divideint
-dqrmn840 remaindernear 100000000.0 1 -> 0.0
-dqrmn841 remaindernear 100000000.4 1 -> 0.4
-dqrmn842 remaindernear 100000000.5 1 -> 0.5
-dqrmn843 remaindernear 100000000.9 1 -> -0.1
-dqrmn844 remaindernear 100000000.999 1 -> -0.001
-dqrmn850 remaindernear 100000003 5 -> -2
-dqrmn851 remaindernear 10000003 5 -> -2
-dqrmn852 remaindernear 1000003 5 -> -2
-dqrmn853 remaindernear 100003 5 -> -2
-dqrmn854 remaindernear 10003 5 -> -2
-dqrmn855 remaindernear 1003 5 -> -2
-dqrmn856 remaindernear 103 5 -> -2
-dqrmn857 remaindernear 13 5 -> -2
-dqrmn858 remaindernear 1 5 -> 1
-
--- Vladimir's cases 1234567890123456
-dqrmn860 remaindernear 123.0e1 1000000000000000 -> 1230
-dqrmn861 remaindernear 1230 1000000000000000 -> 1230
-dqrmn862 remaindernear 12.3e2 1000000000000000 -> 1230
-dqrmn863 remaindernear 1.23e3 1000000000000000 -> 1230
-dqrmn864 remaindernear 123e1 1000000000000000 -> 1230
-dqrmn870 remaindernear 123e1 1000000000000000 -> 1230
-dqrmn871 remaindernear 123e1 100000000000000 -> 1230
-dqrmn872 remaindernear 123e1 10000000000000 -> 1230
-dqrmn873 remaindernear 123e1 1000000000000 -> 1230
-dqrmn874 remaindernear 123e1 100000000000 -> 1230
-dqrmn875 remaindernear 123e1 10000000000 -> 1230
-dqrmn876 remaindernear 123e1 1000000000 -> 1230
-dqrmn877 remaindernear 123e1 100000000 -> 1230
-dqrmn878 remaindernear 1230 100000000 -> 1230
-dqrmn879 remaindernear 123e1 10000000 -> 1230
-dqrmn880 remaindernear 123e1 1000000 -> 1230
-dqrmn881 remaindernear 123e1 100000 -> 1230
-dqrmn882 remaindernear 123e1 10000 -> 1230
-dqrmn883 remaindernear 123e1 1000 -> 230
-dqrmn884 remaindernear 123e1 100 -> 30
-dqrmn885 remaindernear 123e1 10 -> 0
-dqrmn886 remaindernear 123e1 1 -> 0
-
-dqrmn890 remaindernear 123e1 2000000000000000 -> 1230
-dqrmn891 remaindernear 123e1 200000000000000 -> 1230
-dqrmn892 remaindernear 123e1 20000000000000 -> 1230
-dqrmn893 remaindernear 123e1 2000000000000 -> 1230
-dqrmn894 remaindernear 123e1 200000000000 -> 1230
-dqrmn895 remaindernear 123e1 20000000000 -> 1230
-dqrmn896 remaindernear 123e1 2000000000 -> 1230
-dqrmn897 remaindernear 123e1 200000000 -> 1230
-dqrmn899 remaindernear 123e1 20000000 -> 1230
-dqrmn900 remaindernear 123e1 2000000 -> 1230
-dqrmn901 remaindernear 123e1 200000 -> 1230
-dqrmn902 remaindernear 123e1 20000 -> 1230
-dqrmn903 remaindernear 123e1 2000 -> -770
-dqrmn904 remaindernear 123e1 200 -> 30
-dqrmn905 remaindernear 123e1 20 -> -10
-dqrmn906 remaindernear 123e1 2 -> 0
-
-dqrmn910 remaindernear 123e1 5000000000000000 -> 1230
-dqrmn911 remaindernear 123e1 500000000000000 -> 1230
-dqrmn912 remaindernear 123e1 50000000000000 -> 1230
-dqrmn913 remaindernear 123e1 5000000000000 -> 1230
-dqrmn914 remaindernear 123e1 500000000000 -> 1230
-dqrmn915 remaindernear 123e1 50000000000 -> 1230
-dqrmn916 remaindernear 123e1 5000000000 -> 1230
-dqrmn917 remaindernear 123e1 500000000 -> 1230
-dqrmn919 remaindernear 123e1 50000000 -> 1230
-dqrmn920 remaindernear 123e1 5000000 -> 1230
-dqrmn921 remaindernear 123e1 500000 -> 1230
-dqrmn922 remaindernear 123e1 50000 -> 1230
-dqrmn923 remaindernear 123e1 5000 -> 1230
-dqrmn924 remaindernear 123e1 500 -> 230
-dqrmn925 remaindernear 123e1 50 -> -20
-dqrmn926 remaindernear 123e1 5 -> 0
-
-dqrmn930 remaindernear 123e1 9000000000000000 -> 1230
-dqrmn931 remaindernear 123e1 900000000000000 -> 1230
-dqrmn932 remaindernear 123e1 90000000000000 -> 1230
-dqrmn933 remaindernear 123e1 9000000000000 -> 1230
-dqrmn934 remaindernear 123e1 900000000000 -> 1230
-dqrmn935 remaindernear 123e1 90000000000 -> 1230
-dqrmn936 remaindernear 123e1 9000000000 -> 1230
-dqrmn937 remaindernear 123e1 900000000 -> 1230
-dqrmn939 remaindernear 123e1 90000000 -> 1230
-dqrmn940 remaindernear 123e1 9000000 -> 1230
-dqrmn941 remaindernear 123e1 900000 -> 1230
-dqrmn942 remaindernear 123e1 90000 -> 1230
-dqrmn943 remaindernear 123e1 9000 -> 1230
-dqrmn944 remaindernear 123e1 900 -> 330
-dqrmn945 remaindernear 123e1 90 -> -30
-dqrmn946 remaindernear 123e1 9 -> -3
-
-dqrmn950 remaindernear 123e1 1000000000000000 -> 1230
-dqrmn961 remaindernear 123e1 2999999999999999 -> 1230
-dqrmn962 remaindernear 123e1 3999999999999999 -> 1230
-dqrmn963 remaindernear 123e1 4999999999999999 -> 1230
-dqrmn964 remaindernear 123e1 5999999999999999 -> 1230
-dqrmn965 remaindernear 123e1 6999999999999999 -> 1230
-dqrmn966 remaindernear 123e1 7999999999999999 -> 1230
-dqrmn967 remaindernear 123e1 8999999999999999 -> 1230
-dqrmn968 remaindernear 123e1 9999999999999999 -> 1230
-dqrmn969 remaindernear 123e1 9876543210987654 -> 1230
-
-dqrmn980 remaindernear 123e1 1000E299 -> 1.23E+3 -- 123E+1 internally
-
--- overflow and underflow tests [from divide]
-dqrmn1051 remaindernear 1e+277 1e-311 -> NaN Division_impossible
-dqrmn1052 remaindernear 1e+277 -1e-311 -> NaN Division_impossible
-dqrmn1053 remaindernear -1e+277 1e-311 -> NaN Division_impossible
-dqrmn1054 remaindernear -1e+277 -1e-311 -> NaN Division_impossible
-dqrmn1055 remaindernear 1e-277 1e+311 -> 1E-277
-dqrmn1056 remaindernear 1e-277 -1e+311 -> 1E-277
-dqrmn1057 remaindernear -1e-277 1e+311 -> -1E-277
-dqrmn1058 remaindernear -1e-277 -1e+311 -> -1E-277
-
--- Gyuris example
-dqrmn1070 remainder 8.336804418094040989630006819881709E-6143 8.336804418094040989630006819889000E-6143 -> 8.336804418094040989630006819881709E-6143
-
--- destructive subtract
-dqrmn1101 remaindernear 1234567890123456789012345678901234 1.000000000000000000000000000000001 -> -0.234567890123456789012345678901233
-dqrmn1102 remaindernear 1234567890123456789012345678901234 1.00000000000000000000000000000001 -> -0.34567890123456789012345678901222
-dqrmn1103 remaindernear 1234567890123456789012345678901234 1.0000000000000000000000000000001 -> -0.4567890123456789012345678901111
-dqrmn1104 remaindernear 1234567890123456789012345678901255 4.000000000000000000000000000000001 -> -1.308641972530864197253086419725314
-dqrmn1105 remaindernear 1234567890123456789012345678901234 4.000000000000000000000000000000001 -> 1.691358027469135802746913580274692
-dqrmn1106 remaindernear 1234567890123456789012345678901234 4.9999999999999999999999999999999 -> -1.3086421975308642197530864219748
-dqrmn1107 remaindernear 1234567890123456789012345678901234 4.99999999999999999999999999999999 -> 1.46913578024691357802469135780247
-dqrmn1108 remaindernear 1234567890123456789012345678901234 4.999999999999999999999999999999999 -> -0.753086421975308642197530864219753
-dqrmn1109 remaindernear 1234567890123456789012345678901234 5.000000000000000000000000000000001 -> -1.246913578024691357802469135780247
-dqrmn1110 remaindernear 1234567890123456789012345678901234 5.00000000000000000000000000000001 -> 1.53086421975308642197530864219754
-dqrmn1111 remaindernear 1234567890123456789012345678901234 5.0000000000000000000000000000001 -> -0.6913578024691357802469135780242
-
--- Null tests
-dqrmn1000 remaindernear 10 # -> NaN Invalid_operation
-dqrmn1001 remaindernear # 10 -> NaN Invalid_operation
-
+------------------------------------------------------------------------ +-- dqRemainderNear.decTest -- decQuad remainder-near -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +-- sanity checks (as base, above) +dqrmn001 remaindernear 1 1 -> 0 +dqrmn002 remaindernear 2 1 -> 0 +dqrmn003 remaindernear 1 2 -> 1 +dqrmn004 remaindernear 2 2 -> 0 +dqrmn005 remaindernear 0 1 -> 0 +dqrmn006 remaindernear 0 2 -> 0 +dqrmn007 remaindernear 1 3 -> 1 +dqrmn008 remaindernear 2 3 -> -1 +dqrmn009 remaindernear 3 3 -> 0 + +dqrmn010 remaindernear 2.4 1 -> 0.4 +dqrmn011 remaindernear 2.4 -1 -> 0.4 +dqrmn012 remaindernear -2.4 1 -> -0.4 +dqrmn013 remaindernear -2.4 -1 -> -0.4 +dqrmn014 remaindernear 2.40 1 -> 0.40 +dqrmn015 remaindernear 2.400 1 -> 0.400 +dqrmn016 remaindernear 2.4 2 -> 0.4 +dqrmn017 remaindernear 2.400 2 -> 0.400 +dqrmn018 remaindernear 2. 2 -> 0 +dqrmn019 remaindernear 20 20 -> 0 + +dqrmn020 remaindernear 187 187 -> 0 +dqrmn021 remaindernear 5 2 -> 1 +dqrmn022 remaindernear 5 2.0 -> 1.0 +dqrmn023 remaindernear 5 2.000 -> 1.000 +dqrmn024 remaindernear 5 0.200 -> 0.000 +dqrmn025 remaindernear 5 0.200 -> 0.000 + +dqrmn030 remaindernear 1 2 -> 1 +dqrmn031 remaindernear 1 4 -> 1 +dqrmn032 remaindernear 1 8 -> 1 + +dqrmn033 remaindernear 1 16 -> 1 +dqrmn034 remaindernear 1 32 -> 1 +dqrmn035 remaindernear 1 64 -> 1 +dqrmn040 remaindernear 1 -2 -> 1 +dqrmn041 remaindernear 1 -4 -> 1 +dqrmn042 remaindernear 1 -8 -> 1 +dqrmn043 remaindernear 1 -16 -> 1 +dqrmn044 remaindernear 1 -32 -> 1 +dqrmn045 remaindernear 1 -64 -> 1 +dqrmn050 remaindernear -1 2 -> -1 +dqrmn051 remaindernear -1 4 -> -1 +dqrmn052 remaindernear -1 8 -> -1 +dqrmn053 remaindernear -1 16 -> -1 +dqrmn054 remaindernear -1 32 -> -1 +dqrmn055 remaindernear -1 64 -> -1 +dqrmn060 remaindernear -1 -2 -> -1 +dqrmn061 remaindernear -1 -4 -> -1 +dqrmn062 remaindernear -1 -8 -> -1 +dqrmn063 remaindernear -1 -16 -> -1 +dqrmn064 remaindernear -1 -32 -> -1 +dqrmn065 remaindernear -1 -64 -> -1 + +dqrmn066 remaindernear 9.9 1 -> -0.1 +dqrmn067 remaindernear 99.7 1 -> -0.3 +dqrmn068 remaindernear 999999999 1 -> 0 +dqrmn069 remaindernear 999999999.4 1 -> 0.4 +dqrmn070 remaindernear 999999999.5 1 -> -0.5 +dqrmn071 remaindernear 999999999.9 1 -> -0.1 +dqrmn072 remaindernear 999999999.999 1 -> -0.001 +dqrmn073 remaindernear 999999.999999 1 -> -0.000001 +dqrmn074 remaindernear 9 1 -> 0 +dqrmn075 remaindernear 9999999999999999 1 -> 0 +dqrmn076 remaindernear 9999999999999999 2 -> -1 +dqrmn077 remaindernear 9999999999999999 3 -> 0 +dqrmn078 remaindernear 9999999999999999 4 -> -1 + +dqrmn080 remaindernear 0. 1 -> 0 +dqrmn081 remaindernear .0 1 -> 0.0 +dqrmn082 remaindernear 0.00 1 -> 0.00 +dqrmn083 remaindernear 0.00E+9 1 -> 0 +dqrmn084 remaindernear 0.00E+3 1 -> 0 +dqrmn085 remaindernear 0.00E+2 1 -> 0 +dqrmn086 remaindernear 0.00E+1 1 -> 0.0 +dqrmn087 remaindernear 0.00E+0 1 -> 0.00 +dqrmn088 remaindernear 0.00E-0 1 -> 0.00 +dqrmn089 remaindernear 0.00E-1 1 -> 0.000 +dqrmn090 remaindernear 0.00E-2 1 -> 0.0000 +dqrmn091 remaindernear 0.00E-3 1 -> 0.00000 +dqrmn092 remaindernear 0.00E-4 1 -> 0.000000 +dqrmn093 remaindernear 0.00E-5 1 -> 0E-7 +dqrmn094 remaindernear 0.00E-6 1 -> 0E-8 +dqrmn095 remaindernear 0.0000E-50 1 -> 0E-54 + +-- Various flavours of remaindernear by 0 +dqrmn101 remaindernear 0 0 -> NaN Division_undefined +dqrmn102 remaindernear 0 -0 -> NaN Division_undefined +dqrmn103 remaindernear -0 0 -> NaN Division_undefined +dqrmn104 remaindernear -0 -0 -> NaN Division_undefined +dqrmn105 remaindernear 0.0E5 0 -> NaN Division_undefined +dqrmn106 remaindernear 0.000 0 -> NaN Division_undefined +-- [Some think this next group should be Division_by_zero exception, but +-- IEEE 854 is explicit that it is Invalid operation .. for +-- remainder-near, anyway] +dqrmn107 remaindernear 0.0001 0 -> NaN Invalid_operation +dqrmn108 remaindernear 0.01 0 -> NaN Invalid_operation +dqrmn109 remaindernear 0.1 0 -> NaN Invalid_operation +dqrmn110 remaindernear 1 0 -> NaN Invalid_operation +dqrmn111 remaindernear 1 0.0 -> NaN Invalid_operation +dqrmn112 remaindernear 10 0.0 -> NaN Invalid_operation +dqrmn113 remaindernear 1E+100 0.0 -> NaN Invalid_operation +dqrmn114 remaindernear 1E+380 0 -> NaN Invalid_operation +dqrmn115 remaindernear 0.0001 -0 -> NaN Invalid_operation +dqrmn116 remaindernear 0.01 -0 -> NaN Invalid_operation +dqrmn119 remaindernear 0.1 -0 -> NaN Invalid_operation +dqrmn120 remaindernear 1 -0 -> NaN Invalid_operation +dqrmn121 remaindernear 1 -0.0 -> NaN Invalid_operation +dqrmn122 remaindernear 10 -0.0 -> NaN Invalid_operation +dqrmn123 remaindernear 1E+100 -0.0 -> NaN Invalid_operation +dqrmn124 remaindernear 1E+384 -0 -> NaN Invalid_operation +-- and zeros on left +dqrmn130 remaindernear 0 1 -> 0 +dqrmn131 remaindernear 0 -1 -> 0 +dqrmn132 remaindernear 0.0 1 -> 0.0 +dqrmn133 remaindernear 0.0 -1 -> 0.0 +dqrmn134 remaindernear -0 1 -> -0 +dqrmn135 remaindernear -0 -1 -> -0 +dqrmn136 remaindernear -0.0 1 -> -0.0 +dqrmn137 remaindernear -0.0 -1 -> -0.0 + +-- 0.5ers +dqrmn143 remaindernear 0.5 2 -> 0.5 +dqrmn144 remaindernear 0.5 2.1 -> 0.5 +dqrmn145 remaindernear 0.5 2.01 -> 0.50 +dqrmn146 remaindernear 0.5 2.001 -> 0.500 +dqrmn147 remaindernear 0.50 2 -> 0.50 +dqrmn148 remaindernear 0.50 2.01 -> 0.50 +dqrmn149 remaindernear 0.50 2.001 -> 0.500 + +-- steadies +dqrmn150 remaindernear 1 1 -> 0 +dqrmn151 remaindernear 1 2 -> 1 +dqrmn152 remaindernear 1 3 -> 1 +dqrmn153 remaindernear 1 4 -> 1 +dqrmn154 remaindernear 1 5 -> 1 +dqrmn155 remaindernear 1 6 -> 1 +dqrmn156 remaindernear 1 7 -> 1 +dqrmn157 remaindernear 1 8 -> 1 +dqrmn158 remaindernear 1 9 -> 1 +dqrmn159 remaindernear 1 10 -> 1 +dqrmn160 remaindernear 1 1 -> 0 +dqrmn161 remaindernear 2 1 -> 0 +dqrmn162 remaindernear 3 1 -> 0 +dqrmn163 remaindernear 4 1 -> 0 +dqrmn164 remaindernear 5 1 -> 0 +dqrmn165 remaindernear 6 1 -> 0 +dqrmn166 remaindernear 7 1 -> 0 +dqrmn167 remaindernear 8 1 -> 0 +dqrmn168 remaindernear 9 1 -> 0 +dqrmn169 remaindernear 10 1 -> 0 + +-- some differences from remainder +dqrmn171 remaindernear 0.4 1.020 -> 0.400 +dqrmn172 remaindernear 0.50 1.020 -> 0.500 +dqrmn173 remaindernear 0.51 1.020 -> 0.510 +dqrmn174 remaindernear 0.52 1.020 -> -0.500 +dqrmn175 remaindernear 0.6 1.020 -> -0.420 + +-- More flavours of remaindernear by 0 +dqrmn201 remaindernear 0 0 -> NaN Division_undefined +dqrmn202 remaindernear 0.0E5 0 -> NaN Division_undefined +dqrmn203 remaindernear 0.000 0 -> NaN Division_undefined +dqrmn204 remaindernear 0.0001 0 -> NaN Invalid_operation +dqrmn205 remaindernear 0.01 0 -> NaN Invalid_operation +dqrmn206 remaindernear 0.1 0 -> NaN Invalid_operation +dqrmn207 remaindernear 1 0 -> NaN Invalid_operation +dqrmn208 remaindernear 1 0.0 -> NaN Invalid_operation +dqrmn209 remaindernear 10 0.0 -> NaN Invalid_operation +dqrmn210 remaindernear 1E+100 0.0 -> NaN Invalid_operation +dqrmn211 remaindernear 1E+380 0 -> NaN Invalid_operation + +-- tests from the extended specification +dqrmn221 remaindernear 2.1 3 -> -0.9 +dqrmn222 remaindernear 10 6 -> -2 +dqrmn223 remaindernear 10 3 -> 1 +dqrmn224 remaindernear -10 3 -> -1 +dqrmn225 remaindernear 10.2 1 -> 0.2 +dqrmn226 remaindernear 10 0.3 -> 0.1 +dqrmn227 remaindernear 3.6 1.3 -> -0.3 + +-- some differences from remainder +dqrmn231 remaindernear -0.4 1.020 -> -0.400 +dqrmn232 remaindernear -0.50 1.020 -> -0.500 +dqrmn233 remaindernear -0.51 1.020 -> -0.510 +dqrmn234 remaindernear -0.52 1.020 -> 0.500 +dqrmn235 remaindernear -0.6 1.020 -> 0.420 + +-- high Xs +dqrmn240 remaindernear 1E+2 1.00 -> 0.00 + +-- dqrmn3xx are from DiagBigDecimal +dqrmn301 remaindernear 1 3 -> 1 +dqrmn302 remaindernear 5 5 -> 0 +dqrmn303 remaindernear 13 10 -> 3 +dqrmn304 remaindernear 13 50 -> 13 +dqrmn305 remaindernear 13 100 -> 13 +dqrmn306 remaindernear 13 1000 -> 13 +dqrmn307 remaindernear .13 1 -> 0.13 +dqrmn308 remaindernear 0.133 1 -> 0.133 +dqrmn309 remaindernear 0.1033 1 -> 0.1033 +dqrmn310 remaindernear 1.033 1 -> 0.033 +dqrmn311 remaindernear 10.33 1 -> 0.33 +dqrmn312 remaindernear 10.33 10 -> 0.33 +dqrmn313 remaindernear 103.3 1 -> 0.3 +dqrmn314 remaindernear 133 10 -> 3 +dqrmn315 remaindernear 1033 10 -> 3 +dqrmn316 remaindernear 1033 50 -> -17 +dqrmn317 remaindernear 101.0 3 -> -1.0 +dqrmn318 remaindernear 102.0 3 -> 0.0 +dqrmn319 remaindernear 103.0 3 -> 1.0 +dqrmn320 remaindernear 2.40 1 -> 0.40 +dqrmn321 remaindernear 2.400 1 -> 0.400 +dqrmn322 remaindernear 2.4 1 -> 0.4 +dqrmn323 remaindernear 2.4 2 -> 0.4 +dqrmn324 remaindernear 2.400 2 -> 0.400 +dqrmn325 remaindernear 1 0.3 -> 0.1 +dqrmn326 remaindernear 1 0.30 -> 0.10 +dqrmn327 remaindernear 1 0.300 -> 0.100 +dqrmn328 remaindernear 1 0.3000 -> 0.1000 +dqrmn329 remaindernear 1.0 0.3 -> 0.1 +dqrmn330 remaindernear 1.00 0.3 -> 0.10 +dqrmn331 remaindernear 1.000 0.3 -> 0.100 +dqrmn332 remaindernear 1.0000 0.3 -> 0.1000 +dqrmn333 remaindernear 0.5 2 -> 0.5 +dqrmn334 remaindernear 0.5 2.1 -> 0.5 +dqrmn335 remaindernear 0.5 2.01 -> 0.50 +dqrmn336 remaindernear 0.5 2.001 -> 0.500 +dqrmn337 remaindernear 0.50 2 -> 0.50 +dqrmn338 remaindernear 0.50 2.01 -> 0.50 +dqrmn339 remaindernear 0.50 2.001 -> 0.500 + +dqrmn340 remaindernear 0.5 0.5000001 -> -1E-7 +dqrmn341 remaindernear 0.5 0.50000001 -> -1E-8 +dqrmn342 remaindernear 0.5 0.500000001 -> -1E-9 +dqrmn343 remaindernear 0.5 0.5000000001 -> -1E-10 +dqrmn344 remaindernear 0.5 0.50000000001 -> -1E-11 +dqrmn345 remaindernear 0.5 0.4999999 -> 1E-7 +dqrmn346 remaindernear 0.5 0.49999999 -> 1E-8 +dqrmn347 remaindernear 0.5 0.499999999 -> 1E-9 +dqrmn348 remaindernear 0.5 0.4999999999 -> 1E-10 +dqrmn349 remaindernear 0.5 0.49999999999 -> 1E-11 +dqrmn350 remaindernear 0.5 0.499999999999 -> 1E-12 + +dqrmn351 remaindernear 0.03 7 -> 0.03 +dqrmn352 remaindernear 5 2 -> 1 +dqrmn353 remaindernear 4.1 2 -> 0.1 +dqrmn354 remaindernear 4.01 2 -> 0.01 +dqrmn355 remaindernear 4.001 2 -> 0.001 +dqrmn356 remaindernear 4.0001 2 -> 0.0001 +dqrmn357 remaindernear 4.00001 2 -> 0.00001 +dqrmn358 remaindernear 4.000001 2 -> 0.000001 +dqrmn359 remaindernear 4.0000001 2 -> 1E-7 + +dqrmn360 remaindernear 1.2 0.7345 -> -0.2690 +dqrmn361 remaindernear 0.8 12 -> 0.8 +dqrmn362 remaindernear 0.8 0.2 -> 0.0 +dqrmn363 remaindernear 0.8 0.3 -> -0.1 +dqrmn364 remaindernear 0.800 12 -> 0.800 +dqrmn365 remaindernear 0.800 1.7 -> 0.800 +dqrmn366 remaindernear 2.400 2 -> 0.400 + +-- round to even +dqrmn371 remaindernear 121 2 -> 1 +dqrmn372 remaindernear 122 2 -> 0 +dqrmn373 remaindernear 123 2 -> -1 +dqrmn374 remaindernear 124 2 -> 0 +dqrmn375 remaindernear 125 2 -> 1 +dqrmn376 remaindernear 126 2 -> 0 +dqrmn377 remaindernear 127 2 -> -1 + +dqrmn381 remaindernear 12345 1 -> 0 +dqrmn382 remaindernear 12345 1.0001 -> -0.2344 +dqrmn383 remaindernear 12345 1.001 -> -0.333 +dqrmn384 remaindernear 12345 1.01 -> -0.23 +dqrmn385 remaindernear 12345 1.1 -> -0.3 +dqrmn386 remaindernear 12355 4 -> -1 +dqrmn387 remaindernear 12345 4 -> 1 +dqrmn388 remaindernear 12355 4.0001 -> -1.3089 +dqrmn389 remaindernear 12345 4.0001 -> 0.6914 +dqrmn390 remaindernear 12345 4.9 -> 1.9 +dqrmn391 remaindernear 12345 4.99 -> -0.26 +dqrmn392 remaindernear 12345 4.999 -> 2.469 +dqrmn393 remaindernear 12345 4.9999 -> 0.2469 +dqrmn394 remaindernear 12345 5 -> 0 +dqrmn395 remaindernear 12345 5.0001 -> -0.2469 +dqrmn396 remaindernear 12345 5.001 -> -2.469 +dqrmn397 remaindernear 12345 5.01 -> 0.36 +dqrmn398 remaindernear 12345 5.1 -> -2.1 + +-- the nasty division-by-1 cases +dqrmn401 remaindernear 0.4 1 -> 0.4 +dqrmn402 remaindernear 0.45 1 -> 0.45 +dqrmn403 remaindernear 0.455 1 -> 0.455 +dqrmn404 remaindernear 0.4555 1 -> 0.4555 +dqrmn405 remaindernear 0.45555 1 -> 0.45555 +dqrmn406 remaindernear 0.455555 1 -> 0.455555 +dqrmn407 remaindernear 0.4555555 1 -> 0.4555555 +dqrmn408 remaindernear 0.45555555 1 -> 0.45555555 +dqrmn409 remaindernear 0.455555555 1 -> 0.455555555 +-- with spill... [412 exercises sticktab loop] +dqrmn411 remaindernear 0.5 1 -> 0.5 +dqrmn412 remaindernear 0.55 1 -> -0.45 +dqrmn413 remaindernear 0.555 1 -> -0.445 +dqrmn414 remaindernear 0.5555 1 -> -0.4445 +dqrmn415 remaindernear 0.55555 1 -> -0.44445 +dqrmn416 remaindernear 0.555555 1 -> -0.444445 +dqrmn417 remaindernear 0.5555555 1 -> -0.4444445 +dqrmn418 remaindernear 0.55555555 1 -> -0.44444445 +dqrmn419 remaindernear 0.555555555 1 -> -0.444444445 + +-- folddowns +dqrmn421 remaindernear 1E+6144 1 -> NaN Division_impossible +dqrmn422 remaindernear 1E+6144 1E+6143 -> 0E+6111 Clamped +dqrmn423 remaindernear 1E+6144 2E+6143 -> 0E+6111 Clamped +dqrmn424 remaindernear 1E+6144 3E+6143 -> 1.00000000000000000000000000000000E+6143 Clamped +dqrmn425 remaindernear 1E+6144 4E+6143 -> 2.00000000000000000000000000000000E+6143 Clamped +dqrmn426 remaindernear 1E+6144 5E+6143 -> 0E+6111 Clamped +dqrmn427 remaindernear 1E+6144 6E+6143 -> -2.00000000000000000000000000000000E+6143 Clamped +dqrmn428 remaindernear 1E+6144 7E+6143 -> 3.00000000000000000000000000000000E+6143 Clamped +dqrmn429 remaindernear 1E+6144 8E+6143 -> 2.00000000000000000000000000000000E+6143 Clamped +dqrmn430 remaindernear 1E+6144 9E+6143 -> 1.00000000000000000000000000000000E+6143 Clamped +-- tinies +dqrmn431 remaindernear 1E-6175 1E-6176 -> 0E-6176 +dqrmn432 remaindernear 1E-6175 2E-6176 -> 0E-6176 +dqrmn433 remaindernear 1E-6175 3E-6176 -> 1E-6176 Subnormal +dqrmn434 remaindernear 1E-6175 4E-6176 -> 2E-6176 Subnormal +dqrmn435 remaindernear 1E-6175 5E-6176 -> 0E-6176 +dqrmn436 remaindernear 1E-6175 6E-6176 -> -2E-6176 Subnormal +dqrmn437 remaindernear 1E-6175 7E-6176 -> 3E-6176 Subnormal +dqrmn438 remaindernear 1E-6175 8E-6176 -> 2E-6176 Subnormal +dqrmn439 remaindernear 1E-6175 9E-6176 -> 1E-6176 Subnormal +dqrmn440 remaindernear 1E-6175 10E-6176 -> 0E-6176 +dqrmn441 remaindernear 1E-6175 11E-6176 -> -1E-6176 Subnormal +dqrmn442 remaindernear 100E-6175 11E-6176 -> -1E-6176 Subnormal +dqrmn443 remaindernear 100E-6175 20E-6176 -> 0E-6176 +dqrmn444 remaindernear 100E-6175 21E-6176 -> -8E-6176 Subnormal +dqrmn445 remaindernear 100E-6175 30E-6176 -> 1.0E-6175 Subnormal + +-- zero signs +dqrmn650 remaindernear 1 1 -> 0 +dqrmn651 remaindernear -1 1 -> -0 +dqrmn652 remaindernear 1 -1 -> 0 +dqrmn653 remaindernear -1 -1 -> -0 +dqrmn654 remaindernear 0 1 -> 0 +dqrmn655 remaindernear -0 1 -> -0 +dqrmn656 remaindernear 0 -1 -> 0 +dqrmn657 remaindernear -0 -1 -> -0 +dqrmn658 remaindernear 0.00 1 -> 0.00 +dqrmn659 remaindernear -0.00 1 -> -0.00 + +-- Specials +dqrmn680 remaindernear Inf -Inf -> NaN Invalid_operation +dqrmn681 remaindernear Inf -1000 -> NaN Invalid_operation +dqrmn682 remaindernear Inf -1 -> NaN Invalid_operation +dqrmn683 remaindernear Inf 0 -> NaN Invalid_operation +dqrmn684 remaindernear Inf -0 -> NaN Invalid_operation +dqrmn685 remaindernear Inf 1 -> NaN Invalid_operation +dqrmn686 remaindernear Inf 1000 -> NaN Invalid_operation +dqrmn687 remaindernear Inf Inf -> NaN Invalid_operation +dqrmn688 remaindernear -1000 Inf -> -1000 +dqrmn689 remaindernear -Inf Inf -> NaN Invalid_operation +dqrmn691 remaindernear -1 Inf -> -1 +dqrmn692 remaindernear 0 Inf -> 0 +dqrmn693 remaindernear -0 Inf -> -0 +dqrmn694 remaindernear 1 Inf -> 1 +dqrmn695 remaindernear 1000 Inf -> 1000 +dqrmn696 remaindernear Inf Inf -> NaN Invalid_operation + +dqrmn700 remaindernear -Inf -Inf -> NaN Invalid_operation +dqrmn701 remaindernear -Inf -1000 -> NaN Invalid_operation +dqrmn702 remaindernear -Inf -1 -> NaN Invalid_operation +dqrmn703 remaindernear -Inf -0 -> NaN Invalid_operation +dqrmn704 remaindernear -Inf 0 -> NaN Invalid_operation +dqrmn705 remaindernear -Inf 1 -> NaN Invalid_operation +dqrmn706 remaindernear -Inf 1000 -> NaN Invalid_operation +dqrmn707 remaindernear -Inf Inf -> NaN Invalid_operation +dqrmn708 remaindernear -Inf -Inf -> NaN Invalid_operation +dqrmn709 remaindernear -1000 Inf -> -1000 +dqrmn710 remaindernear -1 -Inf -> -1 +dqrmn711 remaindernear -0 -Inf -> -0 +dqrmn712 remaindernear 0 -Inf -> 0 +dqrmn713 remaindernear 1 -Inf -> 1 +dqrmn714 remaindernear 1000 -Inf -> 1000 +dqrmn715 remaindernear Inf -Inf -> NaN Invalid_operation + +dqrmn721 remaindernear NaN -Inf -> NaN +dqrmn722 remaindernear NaN -1000 -> NaN +dqrmn723 remaindernear NaN -1 -> NaN +dqrmn724 remaindernear NaN -0 -> NaN +dqrmn725 remaindernear -NaN 0 -> -NaN +dqrmn726 remaindernear NaN 1 -> NaN +dqrmn727 remaindernear NaN 1000 -> NaN +dqrmn728 remaindernear NaN Inf -> NaN +dqrmn729 remaindernear NaN -NaN -> NaN +dqrmn730 remaindernear -Inf NaN -> NaN +dqrmn731 remaindernear -1000 NaN -> NaN +dqrmn732 remaindernear -1 NaN -> NaN +dqrmn733 remaindernear -0 -NaN -> -NaN +dqrmn734 remaindernear 0 NaN -> NaN +dqrmn735 remaindernear 1 -NaN -> -NaN +dqrmn736 remaindernear 1000 NaN -> NaN +dqrmn737 remaindernear Inf NaN -> NaN + +dqrmn741 remaindernear sNaN -Inf -> NaN Invalid_operation +dqrmn742 remaindernear sNaN -1000 -> NaN Invalid_operation +dqrmn743 remaindernear -sNaN -1 -> -NaN Invalid_operation +dqrmn744 remaindernear sNaN -0 -> NaN Invalid_operation +dqrmn745 remaindernear sNaN 0 -> NaN Invalid_operation +dqrmn746 remaindernear sNaN 1 -> NaN Invalid_operation +dqrmn747 remaindernear sNaN 1000 -> NaN Invalid_operation +dqrmn749 remaindernear sNaN NaN -> NaN Invalid_operation +dqrmn750 remaindernear sNaN sNaN -> NaN Invalid_operation +dqrmn751 remaindernear NaN sNaN -> NaN Invalid_operation +dqrmn752 remaindernear -Inf sNaN -> NaN Invalid_operation +dqrmn753 remaindernear -1000 sNaN -> NaN Invalid_operation +dqrmn754 remaindernear -1 sNaN -> NaN Invalid_operation +dqrmn755 remaindernear -0 sNaN -> NaN Invalid_operation +dqrmn756 remaindernear 0 sNaN -> NaN Invalid_operation +dqrmn757 remaindernear 1 sNaN -> NaN Invalid_operation +dqrmn758 remaindernear 1000 sNaN -> NaN Invalid_operation +dqrmn759 remaindernear Inf -sNaN -> -NaN Invalid_operation + +-- propaging NaNs +dqrmn760 remaindernear NaN1 NaN7 -> NaN1 +dqrmn761 remaindernear sNaN2 NaN8 -> NaN2 Invalid_operation +dqrmn762 remaindernear NaN3 sNaN9 -> NaN9 Invalid_operation +dqrmn763 remaindernear sNaN4 sNaN10 -> NaN4 Invalid_operation +dqrmn764 remaindernear 15 NaN11 -> NaN11 +dqrmn765 remaindernear NaN6 NaN12 -> NaN6 +dqrmn766 remaindernear Inf NaN13 -> NaN13 +dqrmn767 remaindernear NaN14 -Inf -> NaN14 +dqrmn768 remaindernear 0 NaN15 -> NaN15 +dqrmn769 remaindernear NaN16 -0 -> NaN16 + +-- edge cases of impossible +dqrmn770 remaindernear 1234500000000000000000067890123456 10 -> -4 +dqrmn771 remaindernear 1234500000000000000000067890123456 1 -> 0 +dqrmn772 remaindernear 1234500000000000000000067890123456 0.1 -> NaN Division_impossible +dqrmn773 remaindernear 1234500000000000000000067890123456 0.01 -> NaN Division_impossible + +-- long operand checks +dqrmn801 remaindernear 12345678000 100 -> 0 +dqrmn802 remaindernear 1 12345678000 -> 1 +dqrmn803 remaindernear 1234567800 10 -> 0 +dqrmn804 remaindernear 1 1234567800 -> 1 +dqrmn805 remaindernear 1234567890 10 -> 0 +dqrmn806 remaindernear 1 1234567890 -> 1 +dqrmn807 remaindernear 1234567891 10 -> 1 +dqrmn808 remaindernear 1 1234567891 -> 1 +dqrmn809 remaindernear 12345678901 100 -> 1 +dqrmn810 remaindernear 1 12345678901 -> 1 +dqrmn811 remaindernear 1234567896 10 -> -4 +dqrmn812 remaindernear 1 1234567896 -> 1 + +dqrmn821 remaindernear 12345678000 100 -> 0 +dqrmn822 remaindernear 1 12345678000 -> 1 +dqrmn823 remaindernear 1234567800 10 -> 0 +dqrmn824 remaindernear 1 1234567800 -> 1 +dqrmn825 remaindernear 1234567890 10 -> 0 +dqrmn826 remaindernear 1 1234567890 -> 1 +dqrmn827 remaindernear 1234567891 10 -> 1 +dqrmn828 remaindernear 1 1234567891 -> 1 +dqrmn829 remaindernear 12345678901 100 -> 1 +dqrmn830 remaindernear 1 12345678901 -> 1 +dqrmn831 remaindernear 1234567896 10 -> -4 +dqrmn832 remaindernear 1 1234567896 -> 1 + +-- from divideint +dqrmn840 remaindernear 100000000.0 1 -> 0.0 +dqrmn841 remaindernear 100000000.4 1 -> 0.4 +dqrmn842 remaindernear 100000000.5 1 -> 0.5 +dqrmn843 remaindernear 100000000.9 1 -> -0.1 +dqrmn844 remaindernear 100000000.999 1 -> -0.001 +dqrmn850 remaindernear 100000003 5 -> -2 +dqrmn851 remaindernear 10000003 5 -> -2 +dqrmn852 remaindernear 1000003 5 -> -2 +dqrmn853 remaindernear 100003 5 -> -2 +dqrmn854 remaindernear 10003 5 -> -2 +dqrmn855 remaindernear 1003 5 -> -2 +dqrmn856 remaindernear 103 5 -> -2 +dqrmn857 remaindernear 13 5 -> -2 +dqrmn858 remaindernear 1 5 -> 1 + +-- Vladimir's cases 1234567890123456 +dqrmn860 remaindernear 123.0e1 1000000000000000 -> 1230 +dqrmn861 remaindernear 1230 1000000000000000 -> 1230 +dqrmn862 remaindernear 12.3e2 1000000000000000 -> 1230 +dqrmn863 remaindernear 1.23e3 1000000000000000 -> 1230 +dqrmn864 remaindernear 123e1 1000000000000000 -> 1230 +dqrmn870 remaindernear 123e1 1000000000000000 -> 1230 +dqrmn871 remaindernear 123e1 100000000000000 -> 1230 +dqrmn872 remaindernear 123e1 10000000000000 -> 1230 +dqrmn873 remaindernear 123e1 1000000000000 -> 1230 +dqrmn874 remaindernear 123e1 100000000000 -> 1230 +dqrmn875 remaindernear 123e1 10000000000 -> 1230 +dqrmn876 remaindernear 123e1 1000000000 -> 1230 +dqrmn877 remaindernear 123e1 100000000 -> 1230 +dqrmn878 remaindernear 1230 100000000 -> 1230 +dqrmn879 remaindernear 123e1 10000000 -> 1230 +dqrmn880 remaindernear 123e1 1000000 -> 1230 +dqrmn881 remaindernear 123e1 100000 -> 1230 +dqrmn882 remaindernear 123e1 10000 -> 1230 +dqrmn883 remaindernear 123e1 1000 -> 230 +dqrmn884 remaindernear 123e1 100 -> 30 +dqrmn885 remaindernear 123e1 10 -> 0 +dqrmn886 remaindernear 123e1 1 -> 0 + +dqrmn890 remaindernear 123e1 2000000000000000 -> 1230 +dqrmn891 remaindernear 123e1 200000000000000 -> 1230 +dqrmn892 remaindernear 123e1 20000000000000 -> 1230 +dqrmn893 remaindernear 123e1 2000000000000 -> 1230 +dqrmn894 remaindernear 123e1 200000000000 -> 1230 +dqrmn895 remaindernear 123e1 20000000000 -> 1230 +dqrmn896 remaindernear 123e1 2000000000 -> 1230 +dqrmn897 remaindernear 123e1 200000000 -> 1230 +dqrmn899 remaindernear 123e1 20000000 -> 1230 +dqrmn900 remaindernear 123e1 2000000 -> 1230 +dqrmn901 remaindernear 123e1 200000 -> 1230 +dqrmn902 remaindernear 123e1 20000 -> 1230 +dqrmn903 remaindernear 123e1 2000 -> -770 +dqrmn904 remaindernear 123e1 200 -> 30 +dqrmn905 remaindernear 123e1 20 -> -10 +dqrmn906 remaindernear 123e1 2 -> 0 + +dqrmn910 remaindernear 123e1 5000000000000000 -> 1230 +dqrmn911 remaindernear 123e1 500000000000000 -> 1230 +dqrmn912 remaindernear 123e1 50000000000000 -> 1230 +dqrmn913 remaindernear 123e1 5000000000000 -> 1230 +dqrmn914 remaindernear 123e1 500000000000 -> 1230 +dqrmn915 remaindernear 123e1 50000000000 -> 1230 +dqrmn916 remaindernear 123e1 5000000000 -> 1230 +dqrmn917 remaindernear 123e1 500000000 -> 1230 +dqrmn919 remaindernear 123e1 50000000 -> 1230 +dqrmn920 remaindernear 123e1 5000000 -> 1230 +dqrmn921 remaindernear 123e1 500000 -> 1230 +dqrmn922 remaindernear 123e1 50000 -> 1230 +dqrmn923 remaindernear 123e1 5000 -> 1230 +dqrmn924 remaindernear 123e1 500 -> 230 +dqrmn925 remaindernear 123e1 50 -> -20 +dqrmn926 remaindernear 123e1 5 -> 0 + +dqrmn930 remaindernear 123e1 9000000000000000 -> 1230 +dqrmn931 remaindernear 123e1 900000000000000 -> 1230 +dqrmn932 remaindernear 123e1 90000000000000 -> 1230 +dqrmn933 remaindernear 123e1 9000000000000 -> 1230 +dqrmn934 remaindernear 123e1 900000000000 -> 1230 +dqrmn935 remaindernear 123e1 90000000000 -> 1230 +dqrmn936 remaindernear 123e1 9000000000 -> 1230 +dqrmn937 remaindernear 123e1 900000000 -> 1230 +dqrmn939 remaindernear 123e1 90000000 -> 1230 +dqrmn940 remaindernear 123e1 9000000 -> 1230 +dqrmn941 remaindernear 123e1 900000 -> 1230 +dqrmn942 remaindernear 123e1 90000 -> 1230 +dqrmn943 remaindernear 123e1 9000 -> 1230 +dqrmn944 remaindernear 123e1 900 -> 330 +dqrmn945 remaindernear 123e1 90 -> -30 +dqrmn946 remaindernear 123e1 9 -> -3 + +dqrmn950 remaindernear 123e1 1000000000000000 -> 1230 +dqrmn961 remaindernear 123e1 2999999999999999 -> 1230 +dqrmn962 remaindernear 123e1 3999999999999999 -> 1230 +dqrmn963 remaindernear 123e1 4999999999999999 -> 1230 +dqrmn964 remaindernear 123e1 5999999999999999 -> 1230 +dqrmn965 remaindernear 123e1 6999999999999999 -> 1230 +dqrmn966 remaindernear 123e1 7999999999999999 -> 1230 +dqrmn967 remaindernear 123e1 8999999999999999 -> 1230 +dqrmn968 remaindernear 123e1 9999999999999999 -> 1230 +dqrmn969 remaindernear 123e1 9876543210987654 -> 1230 + +dqrmn980 remaindernear 123e1 1000E299 -> 1.23E+3 -- 123E+1 internally + +-- overflow and underflow tests [from divide] +dqrmn1051 remaindernear 1e+277 1e-311 -> NaN Division_impossible +dqrmn1052 remaindernear 1e+277 -1e-311 -> NaN Division_impossible +dqrmn1053 remaindernear -1e+277 1e-311 -> NaN Division_impossible +dqrmn1054 remaindernear -1e+277 -1e-311 -> NaN Division_impossible +dqrmn1055 remaindernear 1e-277 1e+311 -> 1E-277 +dqrmn1056 remaindernear 1e-277 -1e+311 -> 1E-277 +dqrmn1057 remaindernear -1e-277 1e+311 -> -1E-277 +dqrmn1058 remaindernear -1e-277 -1e+311 -> -1E-277 + +-- Gyuris example +dqrmn1070 remainder 8.336804418094040989630006819881709E-6143 8.336804418094040989630006819889000E-6143 -> 8.336804418094040989630006819881709E-6143 + +-- destructive subtract +dqrmn1101 remaindernear 1234567890123456789012345678901234 1.000000000000000000000000000000001 -> -0.234567890123456789012345678901233 +dqrmn1102 remaindernear 1234567890123456789012345678901234 1.00000000000000000000000000000001 -> -0.34567890123456789012345678901222 +dqrmn1103 remaindernear 1234567890123456789012345678901234 1.0000000000000000000000000000001 -> -0.4567890123456789012345678901111 +dqrmn1104 remaindernear 1234567890123456789012345678901255 4.000000000000000000000000000000001 -> -1.308641972530864197253086419725314 +dqrmn1105 remaindernear 1234567890123456789012345678901234 4.000000000000000000000000000000001 -> 1.691358027469135802746913580274692 +dqrmn1106 remaindernear 1234567890123456789012345678901234 4.9999999999999999999999999999999 -> -1.3086421975308642197530864219748 +dqrmn1107 remaindernear 1234567890123456789012345678901234 4.99999999999999999999999999999999 -> 1.46913578024691357802469135780247 +dqrmn1108 remaindernear 1234567890123456789012345678901234 4.999999999999999999999999999999999 -> -0.753086421975308642197530864219753 +dqrmn1109 remaindernear 1234567890123456789012345678901234 5.000000000000000000000000000000001 -> -1.246913578024691357802469135780247 +dqrmn1110 remaindernear 1234567890123456789012345678901234 5.00000000000000000000000000000001 -> 1.53086421975308642197530864219754 +dqrmn1111 remaindernear 1234567890123456789012345678901234 5.0000000000000000000000000000001 -> -0.6913578024691357802469135780242 + +-- Null tests +dqrmn1000 remaindernear 10 # -> NaN Invalid_operation +dqrmn1001 remaindernear # 10 -> NaN Invalid_operation + diff --git a/Lib/test/decimaltestdata/dqRotate.decTest b/Lib/test/decimaltestdata/dqRotate.decTest index 858b823e08..edcf9eed23 100644 --- a/Lib/test/decimaltestdata/dqRotate.decTest +++ b/Lib/test/decimaltestdata/dqRotate.decTest @@ -1,298 +1,298 @@ -------------------------------------------------------------------------
--- dqRotate.decTest -- rotate decQuad coefficient left or right --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
--- Sanity check
-dqrot001 rotate 0 0 -> 0
-dqrot002 rotate 0 2 -> 0
-dqrot003 rotate 1 2 -> 100
-dqrot004 rotate 1 33 -> 1000000000000000000000000000000000
-dqrot005 rotate 1 34 -> 1
-dqrot006 rotate 1 -1 -> 1000000000000000000000000000000000
-dqrot007 rotate 0 -2 -> 0
-dqrot008 rotate 1234567890123456789012345678901234 -1 -> 4123456789012345678901234567890123
-dqrot009 rotate 1234567890123456789012345678901234 -33 -> 2345678901234567890123456789012341
-dqrot010 rotate 1234567890123456789012345678901234 -34 -> 1234567890123456789012345678901234
-dqrot011 rotate 9934567890123456789012345678901234 -33 -> 9345678901234567890123456789012349
-dqrot012 rotate 9934567890123456789012345678901234 -34 -> 9934567890123456789012345678901234
-
--- rhs must be an integer
-dqrot015 rotate 1 1.5 -> NaN Invalid_operation
-dqrot016 rotate 1 1.0 -> NaN Invalid_operation
-dqrot017 rotate 1 0.1 -> NaN Invalid_operation
-dqrot018 rotate 1 0.0 -> NaN Invalid_operation
-dqrot019 rotate 1 1E+1 -> NaN Invalid_operation
-dqrot020 rotate 1 1E+99 -> NaN Invalid_operation
-dqrot021 rotate 1 Inf -> NaN Invalid_operation
-dqrot022 rotate 1 -Inf -> NaN Invalid_operation
--- and |rhs| <= precision
-dqrot025 rotate 1 -1000 -> NaN Invalid_operation
-dqrot026 rotate 1 -35 -> NaN Invalid_operation
-dqrot027 rotate 1 35 -> NaN Invalid_operation
-dqrot028 rotate 1 1000 -> NaN Invalid_operation
-
--- full pattern
-dqrot030 rotate 1234567890123456789012345678901234 -34 -> 1234567890123456789012345678901234
-dqrot031 rotate 1234567890123456789012345678901234 -33 -> 2345678901234567890123456789012341
-dqrot032 rotate 1234567890123456789012345678901234 -32 -> 3456789012345678901234567890123412
-dqrot033 rotate 1234567890123456789012345678901234 -31 -> 4567890123456789012345678901234123
-dqrot034 rotate 1234567890123456789012345678901234 -30 -> 5678901234567890123456789012341234
-dqrot035 rotate 1234567890123456789012345678901234 -29 -> 6789012345678901234567890123412345
-dqrot036 rotate 1234567890123456789012345678901234 -28 -> 7890123456789012345678901234123456
-dqrot037 rotate 1234567890123456789012345678901234 -27 -> 8901234567890123456789012341234567
-dqrot038 rotate 1234567890123456789012345678901234 -26 -> 9012345678901234567890123412345678
-dqrot039 rotate 1234567890123456789012345678901234 -25 -> 123456789012345678901234123456789
-dqrot040 rotate 1234567890123456789012345678901234 -24 -> 1234567890123456789012341234567890
-dqrot041 rotate 1234567890123456789012345678901234 -23 -> 2345678901234567890123412345678901
-dqrot042 rotate 1234567890123456789012345678901234 -22 -> 3456789012345678901234123456789012
-dqrot043 rotate 1234567890123456789012345678901234 -21 -> 4567890123456789012341234567890123
-dqrot044 rotate 1234567890123456789012345678901234 -20 -> 5678901234567890123412345678901234
-dqrot045 rotate 1234567890123456789012345678901234 -19 -> 6789012345678901234123456789012345
-dqrot047 rotate 1234567890123456789012345678901234 -18 -> 7890123456789012341234567890123456
-dqrot048 rotate 1234567890123456789012345678901234 -17 -> 8901234567890123412345678901234567
-dqrot049 rotate 1234567890123456789012345678901234 -16 -> 9012345678901234123456789012345678
-dqrot050 rotate 1234567890123456789012345678901234 -15 -> 123456789012341234567890123456789
-dqrot051 rotate 1234567890123456789012345678901234 -14 -> 1234567890123412345678901234567890
-dqrot052 rotate 1234567890123456789012345678901234 -13 -> 2345678901234123456789012345678901
-dqrot053 rotate 1234567890123456789012345678901234 -12 -> 3456789012341234567890123456789012
-dqrot054 rotate 1234567890123456789012345678901234 -11 -> 4567890123412345678901234567890123
-dqrot055 rotate 1234567890123456789012345678901234 -10 -> 5678901234123456789012345678901234
-dqrot056 rotate 1234567890123456789012345678901234 -9 -> 6789012341234567890123456789012345
-dqrot057 rotate 1234567890123456789012345678901234 -8 -> 7890123412345678901234567890123456
-dqrot058 rotate 1234567890123456789012345678901234 -7 -> 8901234123456789012345678901234567
-dqrot059 rotate 1234567890123456789012345678901234 -6 -> 9012341234567890123456789012345678
-dqrot060 rotate 1234567890123456789012345678901234 -5 -> 123412345678901234567890123456789
-dqrot061 rotate 1234567890123456789012345678901234 -4 -> 1234123456789012345678901234567890
-dqrot062 rotate 1234567890123456789012345678901234 -3 -> 2341234567890123456789012345678901
-dqrot063 rotate 1234567890123456789012345678901234 -2 -> 3412345678901234567890123456789012
-dqrot064 rotate 1234567890123456789012345678901234 -1 -> 4123456789012345678901234567890123
-dqrot065 rotate 1234567890123456789012345678901234 -0 -> 1234567890123456789012345678901234
-
-dqrot066 rotate 1234567890123456789012345678901234 +0 -> 1234567890123456789012345678901234
-dqrot067 rotate 1234567890123456789012345678901234 +1 -> 2345678901234567890123456789012341
-dqrot068 rotate 1234567890123456789012345678901234 +2 -> 3456789012345678901234567890123412
-dqrot069 rotate 1234567890123456789012345678901234 +3 -> 4567890123456789012345678901234123
-dqrot070 rotate 1234567890123456789012345678901234 +4 -> 5678901234567890123456789012341234
-dqrot071 rotate 1234567890123456789012345678901234 +5 -> 6789012345678901234567890123412345
-dqrot072 rotate 1234567890123456789012345678901234 +6 -> 7890123456789012345678901234123456
-dqrot073 rotate 1234567890123456789012345678901234 +7 -> 8901234567890123456789012341234567
-dqrot074 rotate 1234567890123456789012345678901234 +8 -> 9012345678901234567890123412345678
-dqrot075 rotate 1234567890123456789012345678901234 +9 -> 123456789012345678901234123456789
-dqrot076 rotate 1234567890123456789012345678901234 +10 -> 1234567890123456789012341234567890
-dqrot077 rotate 1234567890123456789012345678901234 +11 -> 2345678901234567890123412345678901
-dqrot078 rotate 1234567890123456789012345678901234 +12 -> 3456789012345678901234123456789012
-dqrot079 rotate 1234567890123456789012345678901234 +13 -> 4567890123456789012341234567890123
-dqrot080 rotate 1234567890123456789012345678901234 +14 -> 5678901234567890123412345678901234
-dqrot081 rotate 1234567890123456789012345678901234 +15 -> 6789012345678901234123456789012345
-dqrot082 rotate 1234567890123456789012345678901234 +16 -> 7890123456789012341234567890123456
-dqrot083 rotate 1234567890123456789012345678901234 +17 -> 8901234567890123412345678901234567
-dqrot084 rotate 1234567890123456789012345678901234 +18 -> 9012345678901234123456789012345678
-dqrot085 rotate 1234567890123456789012345678901234 +19 -> 123456789012341234567890123456789
-dqrot086 rotate 1234567890123456789012345678901234 +20 -> 1234567890123412345678901234567890
-dqrot087 rotate 1234567890123456789012345678901234 +21 -> 2345678901234123456789012345678901
-dqrot088 rotate 1234567890123456789012345678901234 +22 -> 3456789012341234567890123456789012
-dqrot089 rotate 1234567890123456789012345678901234 +23 -> 4567890123412345678901234567890123
-dqrot090 rotate 1234567890123456789012345678901234 +24 -> 5678901234123456789012345678901234
-dqrot091 rotate 1234567890123456789012345678901234 +25 -> 6789012341234567890123456789012345
-dqrot092 rotate 1234567890123456789012345678901234 +26 -> 7890123412345678901234567890123456
-dqrot093 rotate 1234567890123456789012345678901234 +27 -> 8901234123456789012345678901234567
-dqrot094 rotate 1234567890123456789012345678901234 +28 -> 9012341234567890123456789012345678
-dqrot095 rotate 1234567890123456789012345678901234 +29 -> 123412345678901234567890123456789
-dqrot096 rotate 1234567890123456789012345678901234 +30 -> 1234123456789012345678901234567890
-dqrot097 rotate 1234567890123456789012345678901234 +31 -> 2341234567890123456789012345678901
-dqrot098 rotate 1234567890123456789012345678901234 +32 -> 3412345678901234567890123456789012
-dqrot099 rotate 1234567890123456789012345678901234 +33 -> 4123456789012345678901234567890123
-dqrot100 rotate 1234567890123456789012345678901234 +34 -> 1234567890123456789012345678901234
-
--- zeros
-dqrot270 rotate 0E-10 +29 -> 0E-10
-dqrot271 rotate 0E-10 -29 -> 0E-10
-dqrot272 rotate 0.000 +29 -> 0.000
-dqrot273 rotate 0.000 -29 -> 0.000
-dqrot274 rotate 0E+10 +29 -> 0E+10
-dqrot275 rotate 0E+10 -29 -> 0E+10
-dqrot276 rotate -0E-10 +29 -> -0E-10
-dqrot277 rotate -0E-10 -29 -> -0E-10
-dqrot278 rotate -0.000 +29 -> -0.000
-dqrot279 rotate -0.000 -29 -> -0.000
-dqrot280 rotate -0E+10 +29 -> -0E+10
-dqrot281 rotate -0E+10 -29 -> -0E+10
-
--- Nmax, Nmin, Ntiny
-dqrot141 rotate 9.999999999999999999999999999999999E+6144 -1 -> 9.999999999999999999999999999999999E+6144
-dqrot142 rotate 9.999999999999999999999999999999999E+6144 -33 -> 9.999999999999999999999999999999999E+6144
-dqrot143 rotate 9.999999999999999999999999999999999E+6144 1 -> 9.999999999999999999999999999999999E+6144
-dqrot144 rotate 9.999999999999999999999999999999999E+6144 33 -> 9.999999999999999999999999999999999E+6144
-dqrot145 rotate 1E-6143 -1 -> 1.000000000000000000000000000000000E-6110
-dqrot146 rotate 1E-6143 -33 -> 1.0E-6142
-dqrot147 rotate 1E-6143 1 -> 1.0E-6142
-dqrot148 rotate 1E-6143 33 -> 1.000000000000000000000000000000000E-6110
-dqrot151 rotate 1.000000000000000000000000000000000E-6143 -1 -> 1.00000000000000000000000000000000E-6144
-dqrot152 rotate 1.000000000000000000000000000000000E-6143 -33 -> 1E-6176
-dqrot153 rotate 1.000000000000000000000000000000000E-6143 1 -> 1E-6176
-dqrot154 rotate 1.000000000000000000000000000000000E-6143 33 -> 1.00000000000000000000000000000000E-6144
-dqrot155 rotate 9.000000000000000000000000000000000E-6143 -1 -> 9.00000000000000000000000000000000E-6144
-dqrot156 rotate 9.000000000000000000000000000000000E-6143 -33 -> 9E-6176
-dqrot157 rotate 9.000000000000000000000000000000000E-6143 1 -> 9E-6176
-dqrot158 rotate 9.000000000000000000000000000000000E-6143 33 -> 9.00000000000000000000000000000000E-6144
-dqrot160 rotate 1E-6176 -1 -> 1.000000000000000000000000000000000E-6143
-dqrot161 rotate 1E-6176 -33 -> 1.0E-6175
-dqrot162 rotate 1E-6176 1 -> 1.0E-6175
-dqrot163 rotate 1E-6176 33 -> 1.000000000000000000000000000000000E-6143
--- negatives
-dqrot171 rotate -9.999999999999999999999999999999999E+6144 -1 -> -9.999999999999999999999999999999999E+6144
-dqrot172 rotate -9.999999999999999999999999999999999E+6144 -33 -> -9.999999999999999999999999999999999E+6144
-dqrot173 rotate -9.999999999999999999999999999999999E+6144 1 -> -9.999999999999999999999999999999999E+6144
-dqrot174 rotate -9.999999999999999999999999999999999E+6144 33 -> -9.999999999999999999999999999999999E+6144
-dqrot175 rotate -1E-6143 -1 -> -1.000000000000000000000000000000000E-6110
-dqrot176 rotate -1E-6143 -33 -> -1.0E-6142
-dqrot177 rotate -1E-6143 1 -> -1.0E-6142
-dqrot178 rotate -1E-6143 33 -> -1.000000000000000000000000000000000E-6110
-dqrot181 rotate -1.000000000000000000000000000000000E-6143 -1 -> -1.00000000000000000000000000000000E-6144
-dqrot182 rotate -1.000000000000000000000000000000000E-6143 -33 -> -1E-6176
-dqrot183 rotate -1.000000000000000000000000000000000E-6143 1 -> -1E-6176
-dqrot184 rotate -1.000000000000000000000000000000000E-6143 33 -> -1.00000000000000000000000000000000E-6144
-dqrot185 rotate -9.000000000000000000000000000000000E-6143 -1 -> -9.00000000000000000000000000000000E-6144
-dqrot186 rotate -9.000000000000000000000000000000000E-6143 -33 -> -9E-6176
-dqrot187 rotate -9.000000000000000000000000000000000E-6143 1 -> -9E-6176
-dqrot188 rotate -9.000000000000000000000000000000000E-6143 33 -> -9.00000000000000000000000000000000E-6144
-dqrot190 rotate -1E-6176 -1 -> -1.000000000000000000000000000000000E-6143
-dqrot191 rotate -1E-6176 -33 -> -1.0E-6175
-dqrot192 rotate -1E-6176 1 -> -1.0E-6175
-dqrot193 rotate -1E-6176 33 -> -1.000000000000000000000000000000000E-6143
-
--- more negatives (of sanities)
-dqrot201 rotate -0 0 -> -0
-dqrot202 rotate -0 2 -> -0
-dqrot203 rotate -1 2 -> -100
-dqrot204 rotate -1 33 -> -1000000000000000000000000000000000
-dqrot205 rotate -1 34 -> -1
-dqrot206 rotate -1 -1 -> -1000000000000000000000000000000000
-dqrot207 rotate -0 -2 -> -0
-dqrot208 rotate -1234567890123456789012345678901234 -1 -> -4123456789012345678901234567890123
-dqrot209 rotate -1234567890123456789012345678901234 -33 -> -2345678901234567890123456789012341
-dqrot210 rotate -1234567890123456789012345678901234 -34 -> -1234567890123456789012345678901234
-dqrot211 rotate -9934567890123456789012345678901234 -33 -> -9345678901234567890123456789012349
-dqrot212 rotate -9934567890123456789012345678901234 -34 -> -9934567890123456789012345678901234
-
-
--- Specials; NaNs are handled as usual
-dqrot781 rotate -Inf -8 -> -Infinity
-dqrot782 rotate -Inf -1 -> -Infinity
-dqrot783 rotate -Inf -0 -> -Infinity
-dqrot784 rotate -Inf 0 -> -Infinity
-dqrot785 rotate -Inf 1 -> -Infinity
-dqrot786 rotate -Inf 8 -> -Infinity
-dqrot787 rotate -1000 -Inf -> NaN Invalid_operation
-dqrot788 rotate -Inf -Inf -> NaN Invalid_operation
-dqrot789 rotate -1 -Inf -> NaN Invalid_operation
-dqrot790 rotate -0 -Inf -> NaN Invalid_operation
-dqrot791 rotate 0 -Inf -> NaN Invalid_operation
-dqrot792 rotate 1 -Inf -> NaN Invalid_operation
-dqrot793 rotate 1000 -Inf -> NaN Invalid_operation
-dqrot794 rotate Inf -Inf -> NaN Invalid_operation
-
-dqrot800 rotate Inf -Inf -> NaN Invalid_operation
-dqrot801 rotate Inf -8 -> Infinity
-dqrot802 rotate Inf -1 -> Infinity
-dqrot803 rotate Inf -0 -> Infinity
-dqrot804 rotate Inf 0 -> Infinity
-dqrot805 rotate Inf 1 -> Infinity
-dqrot806 rotate Inf 8 -> Infinity
-dqrot807 rotate Inf Inf -> NaN Invalid_operation
-dqrot808 rotate -1000 Inf -> NaN Invalid_operation
-dqrot809 rotate -Inf Inf -> NaN Invalid_operation
-dqrot810 rotate -1 Inf -> NaN Invalid_operation
-dqrot811 rotate -0 Inf -> NaN Invalid_operation
-dqrot812 rotate 0 Inf -> NaN Invalid_operation
-dqrot813 rotate 1 Inf -> NaN Invalid_operation
-dqrot814 rotate 1000 Inf -> NaN Invalid_operation
-dqrot815 rotate Inf Inf -> NaN Invalid_operation
-
-dqrot821 rotate NaN -Inf -> NaN
-dqrot822 rotate NaN -1000 -> NaN
-dqrot823 rotate NaN -1 -> NaN
-dqrot824 rotate NaN -0 -> NaN
-dqrot825 rotate NaN 0 -> NaN
-dqrot826 rotate NaN 1 -> NaN
-dqrot827 rotate NaN 1000 -> NaN
-dqrot828 rotate NaN Inf -> NaN
-dqrot829 rotate NaN NaN -> NaN
-dqrot830 rotate -Inf NaN -> NaN
-dqrot831 rotate -1000 NaN -> NaN
-dqrot832 rotate -1 NaN -> NaN
-dqrot833 rotate -0 NaN -> NaN
-dqrot834 rotate 0 NaN -> NaN
-dqrot835 rotate 1 NaN -> NaN
-dqrot836 rotate 1000 NaN -> NaN
-dqrot837 rotate Inf NaN -> NaN
-
-dqrot841 rotate sNaN -Inf -> NaN Invalid_operation
-dqrot842 rotate sNaN -1000 -> NaN Invalid_operation
-dqrot843 rotate sNaN -1 -> NaN Invalid_operation
-dqrot844 rotate sNaN -0 -> NaN Invalid_operation
-dqrot845 rotate sNaN 0 -> NaN Invalid_operation
-dqrot846 rotate sNaN 1 -> NaN Invalid_operation
-dqrot847 rotate sNaN 1000 -> NaN Invalid_operation
-dqrot848 rotate sNaN NaN -> NaN Invalid_operation
-dqrot849 rotate sNaN sNaN -> NaN Invalid_operation
-dqrot850 rotate NaN sNaN -> NaN Invalid_operation
-dqrot851 rotate -Inf sNaN -> NaN Invalid_operation
-dqrot852 rotate -1000 sNaN -> NaN Invalid_operation
-dqrot853 rotate -1 sNaN -> NaN Invalid_operation
-dqrot854 rotate -0 sNaN -> NaN Invalid_operation
-dqrot855 rotate 0 sNaN -> NaN Invalid_operation
-dqrot856 rotate 1 sNaN -> NaN Invalid_operation
-dqrot857 rotate 1000 sNaN -> NaN Invalid_operation
-dqrot858 rotate Inf sNaN -> NaN Invalid_operation
-dqrot859 rotate NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-dqrot861 rotate NaN1 -Inf -> NaN1
-dqrot862 rotate +NaN2 -1000 -> NaN2
-dqrot863 rotate NaN3 1000 -> NaN3
-dqrot864 rotate NaN4 Inf -> NaN4
-dqrot865 rotate NaN5 +NaN6 -> NaN5
-dqrot866 rotate -Inf NaN7 -> NaN7
-dqrot867 rotate -1000 NaN8 -> NaN8
-dqrot868 rotate 1000 NaN9 -> NaN9
-dqrot869 rotate Inf +NaN10 -> NaN10
-dqrot871 rotate sNaN11 -Inf -> NaN11 Invalid_operation
-dqrot872 rotate sNaN12 -1000 -> NaN12 Invalid_operation
-dqrot873 rotate sNaN13 1000 -> NaN13 Invalid_operation
-dqrot874 rotate sNaN14 NaN17 -> NaN14 Invalid_operation
-dqrot875 rotate sNaN15 sNaN18 -> NaN15 Invalid_operation
-dqrot876 rotate NaN16 sNaN19 -> NaN19 Invalid_operation
-dqrot877 rotate -Inf +sNaN20 -> NaN20 Invalid_operation
-dqrot878 rotate -1000 sNaN21 -> NaN21 Invalid_operation
-dqrot879 rotate 1000 sNaN22 -> NaN22 Invalid_operation
-dqrot880 rotate Inf sNaN23 -> NaN23 Invalid_operation
-dqrot881 rotate +NaN25 +sNaN24 -> NaN24 Invalid_operation
-dqrot882 rotate -NaN26 NaN28 -> -NaN26
-dqrot883 rotate -sNaN27 sNaN29 -> -NaN27 Invalid_operation
-dqrot884 rotate 1000 -NaN30 -> -NaN30
-dqrot885 rotate 1000 -sNaN31 -> -NaN31 Invalid_operation
+------------------------------------------------------------------------ +-- dqRotate.decTest -- rotate decQuad coefficient left or right -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +-- Sanity check +dqrot001 rotate 0 0 -> 0 +dqrot002 rotate 0 2 -> 0 +dqrot003 rotate 1 2 -> 100 +dqrot004 rotate 1 33 -> 1000000000000000000000000000000000 +dqrot005 rotate 1 34 -> 1 +dqrot006 rotate 1 -1 -> 1000000000000000000000000000000000 +dqrot007 rotate 0 -2 -> 0 +dqrot008 rotate 1234567890123456789012345678901234 -1 -> 4123456789012345678901234567890123 +dqrot009 rotate 1234567890123456789012345678901234 -33 -> 2345678901234567890123456789012341 +dqrot010 rotate 1234567890123456789012345678901234 -34 -> 1234567890123456789012345678901234 +dqrot011 rotate 9934567890123456789012345678901234 -33 -> 9345678901234567890123456789012349 +dqrot012 rotate 9934567890123456789012345678901234 -34 -> 9934567890123456789012345678901234 + +-- rhs must be an integer +dqrot015 rotate 1 1.5 -> NaN Invalid_operation +dqrot016 rotate 1 1.0 -> NaN Invalid_operation +dqrot017 rotate 1 0.1 -> NaN Invalid_operation +dqrot018 rotate 1 0.0 -> NaN Invalid_operation +dqrot019 rotate 1 1E+1 -> NaN Invalid_operation +dqrot020 rotate 1 1E+99 -> NaN Invalid_operation +dqrot021 rotate 1 Inf -> NaN Invalid_operation +dqrot022 rotate 1 -Inf -> NaN Invalid_operation +-- and |rhs| <= precision +dqrot025 rotate 1 -1000 -> NaN Invalid_operation +dqrot026 rotate 1 -35 -> NaN Invalid_operation +dqrot027 rotate 1 35 -> NaN Invalid_operation +dqrot028 rotate 1 1000 -> NaN Invalid_operation + +-- full pattern +dqrot030 rotate 1234567890123456789012345678901234 -34 -> 1234567890123456789012345678901234 +dqrot031 rotate 1234567890123456789012345678901234 -33 -> 2345678901234567890123456789012341 +dqrot032 rotate 1234567890123456789012345678901234 -32 -> 3456789012345678901234567890123412 +dqrot033 rotate 1234567890123456789012345678901234 -31 -> 4567890123456789012345678901234123 +dqrot034 rotate 1234567890123456789012345678901234 -30 -> 5678901234567890123456789012341234 +dqrot035 rotate 1234567890123456789012345678901234 -29 -> 6789012345678901234567890123412345 +dqrot036 rotate 1234567890123456789012345678901234 -28 -> 7890123456789012345678901234123456 +dqrot037 rotate 1234567890123456789012345678901234 -27 -> 8901234567890123456789012341234567 +dqrot038 rotate 1234567890123456789012345678901234 -26 -> 9012345678901234567890123412345678 +dqrot039 rotate 1234567890123456789012345678901234 -25 -> 123456789012345678901234123456789 +dqrot040 rotate 1234567890123456789012345678901234 -24 -> 1234567890123456789012341234567890 +dqrot041 rotate 1234567890123456789012345678901234 -23 -> 2345678901234567890123412345678901 +dqrot042 rotate 1234567890123456789012345678901234 -22 -> 3456789012345678901234123456789012 +dqrot043 rotate 1234567890123456789012345678901234 -21 -> 4567890123456789012341234567890123 +dqrot044 rotate 1234567890123456789012345678901234 -20 -> 5678901234567890123412345678901234 +dqrot045 rotate 1234567890123456789012345678901234 -19 -> 6789012345678901234123456789012345 +dqrot047 rotate 1234567890123456789012345678901234 -18 -> 7890123456789012341234567890123456 +dqrot048 rotate 1234567890123456789012345678901234 -17 -> 8901234567890123412345678901234567 +dqrot049 rotate 1234567890123456789012345678901234 -16 -> 9012345678901234123456789012345678 +dqrot050 rotate 1234567890123456789012345678901234 -15 -> 123456789012341234567890123456789 +dqrot051 rotate 1234567890123456789012345678901234 -14 -> 1234567890123412345678901234567890 +dqrot052 rotate 1234567890123456789012345678901234 -13 -> 2345678901234123456789012345678901 +dqrot053 rotate 1234567890123456789012345678901234 -12 -> 3456789012341234567890123456789012 +dqrot054 rotate 1234567890123456789012345678901234 -11 -> 4567890123412345678901234567890123 +dqrot055 rotate 1234567890123456789012345678901234 -10 -> 5678901234123456789012345678901234 +dqrot056 rotate 1234567890123456789012345678901234 -9 -> 6789012341234567890123456789012345 +dqrot057 rotate 1234567890123456789012345678901234 -8 -> 7890123412345678901234567890123456 +dqrot058 rotate 1234567890123456789012345678901234 -7 -> 8901234123456789012345678901234567 +dqrot059 rotate 1234567890123456789012345678901234 -6 -> 9012341234567890123456789012345678 +dqrot060 rotate 1234567890123456789012345678901234 -5 -> 123412345678901234567890123456789 +dqrot061 rotate 1234567890123456789012345678901234 -4 -> 1234123456789012345678901234567890 +dqrot062 rotate 1234567890123456789012345678901234 -3 -> 2341234567890123456789012345678901 +dqrot063 rotate 1234567890123456789012345678901234 -2 -> 3412345678901234567890123456789012 +dqrot064 rotate 1234567890123456789012345678901234 -1 -> 4123456789012345678901234567890123 +dqrot065 rotate 1234567890123456789012345678901234 -0 -> 1234567890123456789012345678901234 + +dqrot066 rotate 1234567890123456789012345678901234 +0 -> 1234567890123456789012345678901234 +dqrot067 rotate 1234567890123456789012345678901234 +1 -> 2345678901234567890123456789012341 +dqrot068 rotate 1234567890123456789012345678901234 +2 -> 3456789012345678901234567890123412 +dqrot069 rotate 1234567890123456789012345678901234 +3 -> 4567890123456789012345678901234123 +dqrot070 rotate 1234567890123456789012345678901234 +4 -> 5678901234567890123456789012341234 +dqrot071 rotate 1234567890123456789012345678901234 +5 -> 6789012345678901234567890123412345 +dqrot072 rotate 1234567890123456789012345678901234 +6 -> 7890123456789012345678901234123456 +dqrot073 rotate 1234567890123456789012345678901234 +7 -> 8901234567890123456789012341234567 +dqrot074 rotate 1234567890123456789012345678901234 +8 -> 9012345678901234567890123412345678 +dqrot075 rotate 1234567890123456789012345678901234 +9 -> 123456789012345678901234123456789 +dqrot076 rotate 1234567890123456789012345678901234 +10 -> 1234567890123456789012341234567890 +dqrot077 rotate 1234567890123456789012345678901234 +11 -> 2345678901234567890123412345678901 +dqrot078 rotate 1234567890123456789012345678901234 +12 -> 3456789012345678901234123456789012 +dqrot079 rotate 1234567890123456789012345678901234 +13 -> 4567890123456789012341234567890123 +dqrot080 rotate 1234567890123456789012345678901234 +14 -> 5678901234567890123412345678901234 +dqrot081 rotate 1234567890123456789012345678901234 +15 -> 6789012345678901234123456789012345 +dqrot082 rotate 1234567890123456789012345678901234 +16 -> 7890123456789012341234567890123456 +dqrot083 rotate 1234567890123456789012345678901234 +17 -> 8901234567890123412345678901234567 +dqrot084 rotate 1234567890123456789012345678901234 +18 -> 9012345678901234123456789012345678 +dqrot085 rotate 1234567890123456789012345678901234 +19 -> 123456789012341234567890123456789 +dqrot086 rotate 1234567890123456789012345678901234 +20 -> 1234567890123412345678901234567890 +dqrot087 rotate 1234567890123456789012345678901234 +21 -> 2345678901234123456789012345678901 +dqrot088 rotate 1234567890123456789012345678901234 +22 -> 3456789012341234567890123456789012 +dqrot089 rotate 1234567890123456789012345678901234 +23 -> 4567890123412345678901234567890123 +dqrot090 rotate 1234567890123456789012345678901234 +24 -> 5678901234123456789012345678901234 +dqrot091 rotate 1234567890123456789012345678901234 +25 -> 6789012341234567890123456789012345 +dqrot092 rotate 1234567890123456789012345678901234 +26 -> 7890123412345678901234567890123456 +dqrot093 rotate 1234567890123456789012345678901234 +27 -> 8901234123456789012345678901234567 +dqrot094 rotate 1234567890123456789012345678901234 +28 -> 9012341234567890123456789012345678 +dqrot095 rotate 1234567890123456789012345678901234 +29 -> 123412345678901234567890123456789 +dqrot096 rotate 1234567890123456789012345678901234 +30 -> 1234123456789012345678901234567890 +dqrot097 rotate 1234567890123456789012345678901234 +31 -> 2341234567890123456789012345678901 +dqrot098 rotate 1234567890123456789012345678901234 +32 -> 3412345678901234567890123456789012 +dqrot099 rotate 1234567890123456789012345678901234 +33 -> 4123456789012345678901234567890123 +dqrot100 rotate 1234567890123456789012345678901234 +34 -> 1234567890123456789012345678901234 + +-- zeros +dqrot270 rotate 0E-10 +29 -> 0E-10 +dqrot271 rotate 0E-10 -29 -> 0E-10 +dqrot272 rotate 0.000 +29 -> 0.000 +dqrot273 rotate 0.000 -29 -> 0.000 +dqrot274 rotate 0E+10 +29 -> 0E+10 +dqrot275 rotate 0E+10 -29 -> 0E+10 +dqrot276 rotate -0E-10 +29 -> -0E-10 +dqrot277 rotate -0E-10 -29 -> -0E-10 +dqrot278 rotate -0.000 +29 -> -0.000 +dqrot279 rotate -0.000 -29 -> -0.000 +dqrot280 rotate -0E+10 +29 -> -0E+10 +dqrot281 rotate -0E+10 -29 -> -0E+10 + +-- Nmax, Nmin, Ntiny +dqrot141 rotate 9.999999999999999999999999999999999E+6144 -1 -> 9.999999999999999999999999999999999E+6144 +dqrot142 rotate 9.999999999999999999999999999999999E+6144 -33 -> 9.999999999999999999999999999999999E+6144 +dqrot143 rotate 9.999999999999999999999999999999999E+6144 1 -> 9.999999999999999999999999999999999E+6144 +dqrot144 rotate 9.999999999999999999999999999999999E+6144 33 -> 9.999999999999999999999999999999999E+6144 +dqrot145 rotate 1E-6143 -1 -> 1.000000000000000000000000000000000E-6110 +dqrot146 rotate 1E-6143 -33 -> 1.0E-6142 +dqrot147 rotate 1E-6143 1 -> 1.0E-6142 +dqrot148 rotate 1E-6143 33 -> 1.000000000000000000000000000000000E-6110 +dqrot151 rotate 1.000000000000000000000000000000000E-6143 -1 -> 1.00000000000000000000000000000000E-6144 +dqrot152 rotate 1.000000000000000000000000000000000E-6143 -33 -> 1E-6176 +dqrot153 rotate 1.000000000000000000000000000000000E-6143 1 -> 1E-6176 +dqrot154 rotate 1.000000000000000000000000000000000E-6143 33 -> 1.00000000000000000000000000000000E-6144 +dqrot155 rotate 9.000000000000000000000000000000000E-6143 -1 -> 9.00000000000000000000000000000000E-6144 +dqrot156 rotate 9.000000000000000000000000000000000E-6143 -33 -> 9E-6176 +dqrot157 rotate 9.000000000000000000000000000000000E-6143 1 -> 9E-6176 +dqrot158 rotate 9.000000000000000000000000000000000E-6143 33 -> 9.00000000000000000000000000000000E-6144 +dqrot160 rotate 1E-6176 -1 -> 1.000000000000000000000000000000000E-6143 +dqrot161 rotate 1E-6176 -33 -> 1.0E-6175 +dqrot162 rotate 1E-6176 1 -> 1.0E-6175 +dqrot163 rotate 1E-6176 33 -> 1.000000000000000000000000000000000E-6143 +-- negatives +dqrot171 rotate -9.999999999999999999999999999999999E+6144 -1 -> -9.999999999999999999999999999999999E+6144 +dqrot172 rotate -9.999999999999999999999999999999999E+6144 -33 -> -9.999999999999999999999999999999999E+6144 +dqrot173 rotate -9.999999999999999999999999999999999E+6144 1 -> -9.999999999999999999999999999999999E+6144 +dqrot174 rotate -9.999999999999999999999999999999999E+6144 33 -> -9.999999999999999999999999999999999E+6144 +dqrot175 rotate -1E-6143 -1 -> -1.000000000000000000000000000000000E-6110 +dqrot176 rotate -1E-6143 -33 -> -1.0E-6142 +dqrot177 rotate -1E-6143 1 -> -1.0E-6142 +dqrot178 rotate -1E-6143 33 -> -1.000000000000000000000000000000000E-6110 +dqrot181 rotate -1.000000000000000000000000000000000E-6143 -1 -> -1.00000000000000000000000000000000E-6144 +dqrot182 rotate -1.000000000000000000000000000000000E-6143 -33 -> -1E-6176 +dqrot183 rotate -1.000000000000000000000000000000000E-6143 1 -> -1E-6176 +dqrot184 rotate -1.000000000000000000000000000000000E-6143 33 -> -1.00000000000000000000000000000000E-6144 +dqrot185 rotate -9.000000000000000000000000000000000E-6143 -1 -> -9.00000000000000000000000000000000E-6144 +dqrot186 rotate -9.000000000000000000000000000000000E-6143 -33 -> -9E-6176 +dqrot187 rotate -9.000000000000000000000000000000000E-6143 1 -> -9E-6176 +dqrot188 rotate -9.000000000000000000000000000000000E-6143 33 -> -9.00000000000000000000000000000000E-6144 +dqrot190 rotate -1E-6176 -1 -> -1.000000000000000000000000000000000E-6143 +dqrot191 rotate -1E-6176 -33 -> -1.0E-6175 +dqrot192 rotate -1E-6176 1 -> -1.0E-6175 +dqrot193 rotate -1E-6176 33 -> -1.000000000000000000000000000000000E-6143 + +-- more negatives (of sanities) +dqrot201 rotate -0 0 -> -0 +dqrot202 rotate -0 2 -> -0 +dqrot203 rotate -1 2 -> -100 +dqrot204 rotate -1 33 -> -1000000000000000000000000000000000 +dqrot205 rotate -1 34 -> -1 +dqrot206 rotate -1 -1 -> -1000000000000000000000000000000000 +dqrot207 rotate -0 -2 -> -0 +dqrot208 rotate -1234567890123456789012345678901234 -1 -> -4123456789012345678901234567890123 +dqrot209 rotate -1234567890123456789012345678901234 -33 -> -2345678901234567890123456789012341 +dqrot210 rotate -1234567890123456789012345678901234 -34 -> -1234567890123456789012345678901234 +dqrot211 rotate -9934567890123456789012345678901234 -33 -> -9345678901234567890123456789012349 +dqrot212 rotate -9934567890123456789012345678901234 -34 -> -9934567890123456789012345678901234 + + +-- Specials; NaNs are handled as usual +dqrot781 rotate -Inf -8 -> -Infinity +dqrot782 rotate -Inf -1 -> -Infinity +dqrot783 rotate -Inf -0 -> -Infinity +dqrot784 rotate -Inf 0 -> -Infinity +dqrot785 rotate -Inf 1 -> -Infinity +dqrot786 rotate -Inf 8 -> -Infinity +dqrot787 rotate -1000 -Inf -> NaN Invalid_operation +dqrot788 rotate -Inf -Inf -> NaN Invalid_operation +dqrot789 rotate -1 -Inf -> NaN Invalid_operation +dqrot790 rotate -0 -Inf -> NaN Invalid_operation +dqrot791 rotate 0 -Inf -> NaN Invalid_operation +dqrot792 rotate 1 -Inf -> NaN Invalid_operation +dqrot793 rotate 1000 -Inf -> NaN Invalid_operation +dqrot794 rotate Inf -Inf -> NaN Invalid_operation + +dqrot800 rotate Inf -Inf -> NaN Invalid_operation +dqrot801 rotate Inf -8 -> Infinity +dqrot802 rotate Inf -1 -> Infinity +dqrot803 rotate Inf -0 -> Infinity +dqrot804 rotate Inf 0 -> Infinity +dqrot805 rotate Inf 1 -> Infinity +dqrot806 rotate Inf 8 -> Infinity +dqrot807 rotate Inf Inf -> NaN Invalid_operation +dqrot808 rotate -1000 Inf -> NaN Invalid_operation +dqrot809 rotate -Inf Inf -> NaN Invalid_operation +dqrot810 rotate -1 Inf -> NaN Invalid_operation +dqrot811 rotate -0 Inf -> NaN Invalid_operation +dqrot812 rotate 0 Inf -> NaN Invalid_operation +dqrot813 rotate 1 Inf -> NaN Invalid_operation +dqrot814 rotate 1000 Inf -> NaN Invalid_operation +dqrot815 rotate Inf Inf -> NaN Invalid_operation + +dqrot821 rotate NaN -Inf -> NaN +dqrot822 rotate NaN -1000 -> NaN +dqrot823 rotate NaN -1 -> NaN +dqrot824 rotate NaN -0 -> NaN +dqrot825 rotate NaN 0 -> NaN +dqrot826 rotate NaN 1 -> NaN +dqrot827 rotate NaN 1000 -> NaN +dqrot828 rotate NaN Inf -> NaN +dqrot829 rotate NaN NaN -> NaN +dqrot830 rotate -Inf NaN -> NaN +dqrot831 rotate -1000 NaN -> NaN +dqrot832 rotate -1 NaN -> NaN +dqrot833 rotate -0 NaN -> NaN +dqrot834 rotate 0 NaN -> NaN +dqrot835 rotate 1 NaN -> NaN +dqrot836 rotate 1000 NaN -> NaN +dqrot837 rotate Inf NaN -> NaN + +dqrot841 rotate sNaN -Inf -> NaN Invalid_operation +dqrot842 rotate sNaN -1000 -> NaN Invalid_operation +dqrot843 rotate sNaN -1 -> NaN Invalid_operation +dqrot844 rotate sNaN -0 -> NaN Invalid_operation +dqrot845 rotate sNaN 0 -> NaN Invalid_operation +dqrot846 rotate sNaN 1 -> NaN Invalid_operation +dqrot847 rotate sNaN 1000 -> NaN Invalid_operation +dqrot848 rotate sNaN NaN -> NaN Invalid_operation +dqrot849 rotate sNaN sNaN -> NaN Invalid_operation +dqrot850 rotate NaN sNaN -> NaN Invalid_operation +dqrot851 rotate -Inf sNaN -> NaN Invalid_operation +dqrot852 rotate -1000 sNaN -> NaN Invalid_operation +dqrot853 rotate -1 sNaN -> NaN Invalid_operation +dqrot854 rotate -0 sNaN -> NaN Invalid_operation +dqrot855 rotate 0 sNaN -> NaN Invalid_operation +dqrot856 rotate 1 sNaN -> NaN Invalid_operation +dqrot857 rotate 1000 sNaN -> NaN Invalid_operation +dqrot858 rotate Inf sNaN -> NaN Invalid_operation +dqrot859 rotate NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +dqrot861 rotate NaN1 -Inf -> NaN1 +dqrot862 rotate +NaN2 -1000 -> NaN2 +dqrot863 rotate NaN3 1000 -> NaN3 +dqrot864 rotate NaN4 Inf -> NaN4 +dqrot865 rotate NaN5 +NaN6 -> NaN5 +dqrot866 rotate -Inf NaN7 -> NaN7 +dqrot867 rotate -1000 NaN8 -> NaN8 +dqrot868 rotate 1000 NaN9 -> NaN9 +dqrot869 rotate Inf +NaN10 -> NaN10 +dqrot871 rotate sNaN11 -Inf -> NaN11 Invalid_operation +dqrot872 rotate sNaN12 -1000 -> NaN12 Invalid_operation +dqrot873 rotate sNaN13 1000 -> NaN13 Invalid_operation +dqrot874 rotate sNaN14 NaN17 -> NaN14 Invalid_operation +dqrot875 rotate sNaN15 sNaN18 -> NaN15 Invalid_operation +dqrot876 rotate NaN16 sNaN19 -> NaN19 Invalid_operation +dqrot877 rotate -Inf +sNaN20 -> NaN20 Invalid_operation +dqrot878 rotate -1000 sNaN21 -> NaN21 Invalid_operation +dqrot879 rotate 1000 sNaN22 -> NaN22 Invalid_operation +dqrot880 rotate Inf sNaN23 -> NaN23 Invalid_operation +dqrot881 rotate +NaN25 +sNaN24 -> NaN24 Invalid_operation +dqrot882 rotate -NaN26 NaN28 -> -NaN26 +dqrot883 rotate -sNaN27 sNaN29 -> -NaN27 Invalid_operation +dqrot884 rotate 1000 -NaN30 -> -NaN30 +dqrot885 rotate 1000 -sNaN31 -> -NaN31 Invalid_operation diff --git a/Lib/test/decimaltestdata/dqSameQuantum.decTest b/Lib/test/decimaltestdata/dqSameQuantum.decTest index 2f356bbae9..257cda802d 100644 --- a/Lib/test/decimaltestdata/dqSameQuantum.decTest +++ b/Lib/test/decimaltestdata/dqSameQuantum.decTest @@ -1,389 +1,389 @@ -------------------------------------------------------------------------
--- dqSameQuantum.decTest -- check decQuad quantums match --
--- Copyright (c) IBM Corporation, 2001, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- All operands and results are decQuads.
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
-dqsamq001 samequantum 0 0 -> 1
-dqsamq002 samequantum 0 1 -> 1
-dqsamq003 samequantum 1 0 -> 1
-dqsamq004 samequantum 1 1 -> 1
-
-dqsamq011 samequantum 10 1E+1 -> 0
-dqsamq012 samequantum 10E+1 10E+1 -> 1
-dqsamq013 samequantum 100 10E+1 -> 0
-dqsamq014 samequantum 100 1E+2 -> 0
-dqsamq015 samequantum 0.1 1E-2 -> 0
-dqsamq016 samequantum 0.1 1E-1 -> 1
-dqsamq017 samequantum 0.1 1E-0 -> 0
-dqsamq018 samequantum 999 999 -> 1
-dqsamq019 samequantum 999E-1 99.9 -> 1
-dqsamq020 samequantum 111E-1 22.2 -> 1
-dqsamq021 samequantum 111E-1 1234.2 -> 1
-
--- zeros
-dqsamq030 samequantum 0.0 1.1 -> 1
-dqsamq031 samequantum 0.0 1.11 -> 0
-dqsamq032 samequantum 0.0 0 -> 0
-dqsamq033 samequantum 0.0 0.0 -> 1
-dqsamq034 samequantum 0.0 0.00 -> 0
-dqsamq035 samequantum 0E+1 0E+0 -> 0
-dqsamq036 samequantum 0E+1 0E+1 -> 1
-dqsamq037 samequantum 0E+1 0E+2 -> 0
-dqsamq038 samequantum 0E-17 0E-16 -> 0
-dqsamq039 samequantum 0E-17 0E-17 -> 1
-dqsamq040 samequantum 0E-17 0E-18 -> 0
-dqsamq041 samequantum 0E-17 0.0E-15 -> 0
-dqsamq042 samequantum 0E-17 0.0E-16 -> 1
-dqsamq043 samequantum 0E-17 0.0E-17 -> 0
-dqsamq044 samequantum -0E-17 0.0E-16 -> 1
-dqsamq045 samequantum 0E-17 -0.0E-17 -> 0
-dqsamq046 samequantum 0E-17 -0.0E-16 -> 1
-dqsamq047 samequantum -0E-17 0.0E-17 -> 0
-dqsamq048 samequantum -0E-17 -0.0E-16 -> 1
-dqsamq049 samequantum -0E-17 -0.0E-17 -> 0
-
--- Nmax, Nmin, Ntiny
-dqsamq051 samequantum 9.99999999999999999999999999999999E+6144 9.99999999999999999999999999999999E+6144 -> 1
-dqsamq052 samequantum 1E-6143 1E-6143 -> 1
-dqsamq053 samequantum 1.00000000000000000000000000000000E-6143 1.00000000000000000000000000000000E-6143 -> 1
-dqsamq054 samequantum 1E-6176 1E-6176 -> 1
-dqsamq055 samequantum 9.99999999999999999999999999999999E+6144 9.99999999999999999999999999999999E+6144 -> 1
-dqsamq056 samequantum 1E-6143 1E-6143 -> 1
-dqsamq057 samequantum 1.00000000000000000000000000000000E-6143 1.00000000000000000000000000000000E-6143 -> 1
-dqsamq058 samequantum 1E-6176 1E-6176 -> 1
-
-dqsamq061 samequantum -1E-6176 -1E-6176 -> 1
-dqsamq062 samequantum -1.00000000000000000000000000000000E-6143 -1.00000000000000000000000000000000E-6143 -> 1
-dqsamq063 samequantum -1E-6143 -1E-6143 -> 1
-dqsamq064 samequantum -9.99999999999999999999999999999999E+6144 -9.99999999999999999999999999999999E+6144 -> 1
-dqsamq065 samequantum -1E-6176 -1E-6176 -> 1
-dqsamq066 samequantum -1.00000000000000000000000000000000E-6143 -1.00000000000000000000000000000000E-6143 -> 1
-dqsamq067 samequantum -1E-6143 -1E-6143 -> 1
-dqsamq068 samequantum -9.99999999999999999999999999999999E+6144 -9.99999999999999999999999999999999E+6144 -> 1
-
-dqsamq071 samequantum -4E-6176 -1E-6176 -> 1
-dqsamq072 samequantum -4.00000000000000000000000000000000E-6143 -1.00000000000000000000000000004000E-6143 -> 1
-dqsamq073 samequantum -4E-6143 -1E-6143 -> 1
-dqsamq074 samequantum -4.99999999999999999999999999999999E+6144 -9.99949999999999999999999999999999E+6144 -> 1
-dqsamq075 samequantum -4E-6176 -1E-6176 -> 1
-dqsamq076 samequantum -4.00000000000000000000000000000000E-6143 -1.00400000000000000000000000000000E-6143 -> 1
-dqsamq077 samequantum -4E-6143 -1E-6143 -> 1
-dqsamq078 samequantum -4.99999999999999999999999999999999E+6144 -9.94999999999999999999999999999999E+6144 -> 1
-
-dqsamq081 samequantum -4E-1006 -1E-6176 -> 0
-dqsamq082 samequantum -4.00000000000000000000000000000000E-6143 -1.00004000000000000000000000000000E-6136 -> 0
-dqsamq083 samequantum -4E-6140 -1E-6143 -> 0
-dqsamq084 samequantum -4.99999999999999999999999999999999E+6144 -9.99949999999999999999999999999999E+6136 -> 0
-dqsamq085 samequantum -4E-1006 -1E-6176 -> 0
-dqsamq086 samequantum -4.00000000000000000000000000000000E-6143 -1.00400000000000000000000000000000E-6136 -> 0
-dqsamq087 samequantum -4E-6133 -1E-6143 -> 0
-dqsamq088 samequantum -4.99999999999999999999999999999999E+6144 -9.94999999999999999999999999999999E+6136 -> 0
-
--- specials & combinations
-dqsamq0110 samequantum -Inf -Inf -> 1
-dqsamq0111 samequantum -Inf Inf -> 1
-dqsamq0112 samequantum -Inf NaN -> 0
-dqsamq0113 samequantum -Inf -7E+3 -> 0
-dqsamq0114 samequantum -Inf -7 -> 0
-dqsamq0115 samequantum -Inf -7E-3 -> 0
-dqsamq0116 samequantum -Inf -0E-3 -> 0
-dqsamq0117 samequantum -Inf -0 -> 0
-dqsamq0118 samequantum -Inf -0E+3 -> 0
-dqsamq0119 samequantum -Inf 0E-3 -> 0
-dqsamq0120 samequantum -Inf 0 -> 0
-dqsamq0121 samequantum -Inf 0E+3 -> 0
-dqsamq0122 samequantum -Inf 7E-3 -> 0
-dqsamq0123 samequantum -Inf 7 -> 0
-dqsamq0124 samequantum -Inf 7E+3 -> 0
-dqsamq0125 samequantum -Inf sNaN -> 0
-
-dqsamq0210 samequantum Inf -Inf -> 1
-dqsamq0211 samequantum Inf Inf -> 1
-dqsamq0212 samequantum Inf NaN -> 0
-dqsamq0213 samequantum Inf -7E+3 -> 0
-dqsamq0214 samequantum Inf -7 -> 0
-dqsamq0215 samequantum Inf -7E-3 -> 0
-dqsamq0216 samequantum Inf -0E-3 -> 0
-dqsamq0217 samequantum Inf -0 -> 0
-dqsamq0218 samequantum Inf -0E+3 -> 0
-dqsamq0219 samequantum Inf 0E-3 -> 0
-dqsamq0220 samequantum Inf 0 -> 0
-dqsamq0221 samequantum Inf 0E+3 -> 0
-dqsamq0222 samequantum Inf 7E-3 -> 0
-dqsamq0223 samequantum Inf 7 -> 0
-dqsamq0224 samequantum Inf 7E+3 -> 0
-dqsamq0225 samequantum Inf sNaN -> 0
-
-dqsamq0310 samequantum NaN -Inf -> 0
-dqsamq0311 samequantum NaN Inf -> 0
-dqsamq0312 samequantum NaN NaN -> 1
-dqsamq0313 samequantum NaN -7E+3 -> 0
-dqsamq0314 samequantum NaN -7 -> 0
-dqsamq0315 samequantum NaN -7E-3 -> 0
-dqsamq0316 samequantum NaN -0E-3 -> 0
-dqsamq0317 samequantum NaN -0 -> 0
-dqsamq0318 samequantum NaN -0E+3 -> 0
-dqsamq0319 samequantum NaN 0E-3 -> 0
-dqsamq0320 samequantum NaN 0 -> 0
-dqsamq0321 samequantum NaN 0E+3 -> 0
-dqsamq0322 samequantum NaN 7E-3 -> 0
-dqsamq0323 samequantum NaN 7 -> 0
-dqsamq0324 samequantum NaN 7E+3 -> 0
-dqsamq0325 samequantum NaN sNaN -> 1
-
-dqsamq0410 samequantum -7E+3 -Inf -> 0
-dqsamq0411 samequantum -7E+3 Inf -> 0
-dqsamq0412 samequantum -7E+3 NaN -> 0
-dqsamq0413 samequantum -7E+3 -7E+3 -> 1
-dqsamq0414 samequantum -7E+3 -7 -> 0
-dqsamq0415 samequantum -7E+3 -7E-3 -> 0
-dqsamq0416 samequantum -7E+3 -0E-3 -> 0
-dqsamq0417 samequantum -7E+3 -0 -> 0
-dqsamq0418 samequantum -7E+3 -0E+3 -> 1
-dqsamq0419 samequantum -7E+3 0E-3 -> 0
-dqsamq0420 samequantum -7E+3 0 -> 0
-dqsamq0421 samequantum -7E+3 0E+3 -> 1
-dqsamq0422 samequantum -7E+3 7E-3 -> 0
-dqsamq0423 samequantum -7E+3 7 -> 0
-dqsamq0424 samequantum -7E+3 7E+3 -> 1
-dqsamq0425 samequantum -7E+3 sNaN -> 0
-
-dqsamq0510 samequantum -7 -Inf -> 0
-dqsamq0511 samequantum -7 Inf -> 0
-dqsamq0512 samequantum -7 NaN -> 0
-dqsamq0513 samequantum -7 -7E+3 -> 0
-dqsamq0514 samequantum -7 -7 -> 1
-dqsamq0515 samequantum -7 -7E-3 -> 0
-dqsamq0516 samequantum -7 -0E-3 -> 0
-dqsamq0517 samequantum -7 -0 -> 1
-dqsamq0518 samequantum -7 -0E+3 -> 0
-dqsamq0519 samequantum -7 0E-3 -> 0
-dqsamq0520 samequantum -7 0 -> 1
-dqsamq0521 samequantum -7 0E+3 -> 0
-dqsamq0522 samequantum -7 7E-3 -> 0
-dqsamq0523 samequantum -7 7 -> 1
-dqsamq0524 samequantum -7 7E+3 -> 0
-dqsamq0525 samequantum -7 sNaN -> 0
-
-dqsamq0610 samequantum -7E-3 -Inf -> 0
-dqsamq0611 samequantum -7E-3 Inf -> 0
-dqsamq0612 samequantum -7E-3 NaN -> 0
-dqsamq0613 samequantum -7E-3 -7E+3 -> 0
-dqsamq0614 samequantum -7E-3 -7 -> 0
-dqsamq0615 samequantum -7E-3 -7E-3 -> 1
-dqsamq0616 samequantum -7E-3 -0E-3 -> 1
-dqsamq0617 samequantum -7E-3 -0 -> 0
-dqsamq0618 samequantum -7E-3 -0E+3 -> 0
-dqsamq0619 samequantum -7E-3 0E-3 -> 1
-dqsamq0620 samequantum -7E-3 0 -> 0
-dqsamq0621 samequantum -7E-3 0E+3 -> 0
-dqsamq0622 samequantum -7E-3 7E-3 -> 1
-dqsamq0623 samequantum -7E-3 7 -> 0
-dqsamq0624 samequantum -7E-3 7E+3 -> 0
-dqsamq0625 samequantum -7E-3 sNaN -> 0
-
-dqsamq0710 samequantum -0E-3 -Inf -> 0
-dqsamq0711 samequantum -0E-3 Inf -> 0
-dqsamq0712 samequantum -0E-3 NaN -> 0
-dqsamq0713 samequantum -0E-3 -7E+3 -> 0
-dqsamq0714 samequantum -0E-3 -7 -> 0
-dqsamq0715 samequantum -0E-3 -7E-3 -> 1
-dqsamq0716 samequantum -0E-3 -0E-3 -> 1
-dqsamq0717 samequantum -0E-3 -0 -> 0
-dqsamq0718 samequantum -0E-3 -0E+3 -> 0
-dqsamq0719 samequantum -0E-3 0E-3 -> 1
-dqsamq0720 samequantum -0E-3 0 -> 0
-dqsamq0721 samequantum -0E-3 0E+3 -> 0
-dqsamq0722 samequantum -0E-3 7E-3 -> 1
-dqsamq0723 samequantum -0E-3 7 -> 0
-dqsamq0724 samequantum -0E-3 7E+3 -> 0
-dqsamq0725 samequantum -0E-3 sNaN -> 0
-
-dqsamq0810 samequantum -0 -Inf -> 0
-dqsamq0811 samequantum -0 Inf -> 0
-dqsamq0812 samequantum -0 NaN -> 0
-dqsamq0813 samequantum -0 -7E+3 -> 0
-dqsamq0814 samequantum -0 -7 -> 1
-dqsamq0815 samequantum -0 -7E-3 -> 0
-dqsamq0816 samequantum -0 -0E-3 -> 0
-dqsamq0817 samequantum -0 -0 -> 1
-dqsamq0818 samequantum -0 -0E+3 -> 0
-dqsamq0819 samequantum -0 0E-3 -> 0
-dqsamq0820 samequantum -0 0 -> 1
-dqsamq0821 samequantum -0 0E+3 -> 0
-dqsamq0822 samequantum -0 7E-3 -> 0
-dqsamq0823 samequantum -0 7 -> 1
-dqsamq0824 samequantum -0 7E+3 -> 0
-dqsamq0825 samequantum -0 sNaN -> 0
-
-dqsamq0910 samequantum -0E+3 -Inf -> 0
-dqsamq0911 samequantum -0E+3 Inf -> 0
-dqsamq0912 samequantum -0E+3 NaN -> 0
-dqsamq0913 samequantum -0E+3 -7E+3 -> 1
-dqsamq0914 samequantum -0E+3 -7 -> 0
-dqsamq0915 samequantum -0E+3 -7E-3 -> 0
-dqsamq0916 samequantum -0E+3 -0E-3 -> 0
-dqsamq0917 samequantum -0E+3 -0 -> 0
-dqsamq0918 samequantum -0E+3 -0E+3 -> 1
-dqsamq0919 samequantum -0E+3 0E-3 -> 0
-dqsamq0920 samequantum -0E+3 0 -> 0
-dqsamq0921 samequantum -0E+3 0E+3 -> 1
-dqsamq0922 samequantum -0E+3 7E-3 -> 0
-dqsamq0923 samequantum -0E+3 7 -> 0
-dqsamq0924 samequantum -0E+3 7E+3 -> 1
-dqsamq0925 samequantum -0E+3 sNaN -> 0
-
-dqsamq1110 samequantum 0E-3 -Inf -> 0
-dqsamq1111 samequantum 0E-3 Inf -> 0
-dqsamq1112 samequantum 0E-3 NaN -> 0
-dqsamq1113 samequantum 0E-3 -7E+3 -> 0
-dqsamq1114 samequantum 0E-3 -7 -> 0
-dqsamq1115 samequantum 0E-3 -7E-3 -> 1
-dqsamq1116 samequantum 0E-3 -0E-3 -> 1
-dqsamq1117 samequantum 0E-3 -0 -> 0
-dqsamq1118 samequantum 0E-3 -0E+3 -> 0
-dqsamq1119 samequantum 0E-3 0E-3 -> 1
-dqsamq1120 samequantum 0E-3 0 -> 0
-dqsamq1121 samequantum 0E-3 0E+3 -> 0
-dqsamq1122 samequantum 0E-3 7E-3 -> 1
-dqsamq1123 samequantum 0E-3 7 -> 0
-dqsamq1124 samequantum 0E-3 7E+3 -> 0
-dqsamq1125 samequantum 0E-3 sNaN -> 0
-
-dqsamq1210 samequantum 0 -Inf -> 0
-dqsamq1211 samequantum 0 Inf -> 0
-dqsamq1212 samequantum 0 NaN -> 0
-dqsamq1213 samequantum 0 -7E+3 -> 0
-dqsamq1214 samequantum 0 -7 -> 1
-dqsamq1215 samequantum 0 -7E-3 -> 0
-dqsamq1216 samequantum 0 -0E-3 -> 0
-dqsamq1217 samequantum 0 -0 -> 1
-dqsamq1218 samequantum 0 -0E+3 -> 0
-dqsamq1219 samequantum 0 0E-3 -> 0
-dqsamq1220 samequantum 0 0 -> 1
-dqsamq1221 samequantum 0 0E+3 -> 0
-dqsamq1222 samequantum 0 7E-3 -> 0
-dqsamq1223 samequantum 0 7 -> 1
-dqsamq1224 samequantum 0 7E+3 -> 0
-dqsamq1225 samequantum 0 sNaN -> 0
-
-dqsamq1310 samequantum 0E+3 -Inf -> 0
-dqsamq1311 samequantum 0E+3 Inf -> 0
-dqsamq1312 samequantum 0E+3 NaN -> 0
-dqsamq1313 samequantum 0E+3 -7E+3 -> 1
-dqsamq1314 samequantum 0E+3 -7 -> 0
-dqsamq1315 samequantum 0E+3 -7E-3 -> 0
-dqsamq1316 samequantum 0E+3 -0E-3 -> 0
-dqsamq1317 samequantum 0E+3 -0 -> 0
-dqsamq1318 samequantum 0E+3 -0E+3 -> 1
-dqsamq1319 samequantum 0E+3 0E-3 -> 0
-dqsamq1320 samequantum 0E+3 0 -> 0
-dqsamq1321 samequantum 0E+3 0E+3 -> 1
-dqsamq1322 samequantum 0E+3 7E-3 -> 0
-dqsamq1323 samequantum 0E+3 7 -> 0
-dqsamq1324 samequantum 0E+3 7E+3 -> 1
-dqsamq1325 samequantum 0E+3 sNaN -> 0
-
-dqsamq1410 samequantum 7E-3 -Inf -> 0
-dqsamq1411 samequantum 7E-3 Inf -> 0
-dqsamq1412 samequantum 7E-3 NaN -> 0
-dqsamq1413 samequantum 7E-3 -7E+3 -> 0
-dqsamq1414 samequantum 7E-3 -7 -> 0
-dqsamq1415 samequantum 7E-3 -7E-3 -> 1
-dqsamq1416 samequantum 7E-3 -0E-3 -> 1
-dqsamq1417 samequantum 7E-3 -0 -> 0
-dqsamq1418 samequantum 7E-3 -0E+3 -> 0
-dqsamq1419 samequantum 7E-3 0E-3 -> 1
-dqsamq1420 samequantum 7E-3 0 -> 0
-dqsamq1421 samequantum 7E-3 0E+3 -> 0
-dqsamq1422 samequantum 7E-3 7E-3 -> 1
-dqsamq1423 samequantum 7E-3 7 -> 0
-dqsamq1424 samequantum 7E-3 7E+3 -> 0
-dqsamq1425 samequantum 7E-3 sNaN -> 0
-
-dqsamq1510 samequantum 7 -Inf -> 0
-dqsamq1511 samequantum 7 Inf -> 0
-dqsamq1512 samequantum 7 NaN -> 0
-dqsamq1513 samequantum 7 -7E+3 -> 0
-dqsamq1514 samequantum 7 -7 -> 1
-dqsamq1515 samequantum 7 -7E-3 -> 0
-dqsamq1516 samequantum 7 -0E-3 -> 0
-dqsamq1517 samequantum 7 -0 -> 1
-dqsamq1518 samequantum 7 -0E+3 -> 0
-dqsamq1519 samequantum 7 0E-3 -> 0
-dqsamq1520 samequantum 7 0 -> 1
-dqsamq1521 samequantum 7 0E+3 -> 0
-dqsamq1522 samequantum 7 7E-3 -> 0
-dqsamq1523 samequantum 7 7 -> 1
-dqsamq1524 samequantum 7 7E+3 -> 0
-dqsamq1525 samequantum 7 sNaN -> 0
-
-dqsamq1610 samequantum 7E+3 -Inf -> 0
-dqsamq1611 samequantum 7E+3 Inf -> 0
-dqsamq1612 samequantum 7E+3 NaN -> 0
-dqsamq1613 samequantum 7E+3 -7E+3 -> 1
-dqsamq1614 samequantum 7E+3 -7 -> 0
-dqsamq1615 samequantum 7E+3 -7E-3 -> 0
-dqsamq1616 samequantum 7E+3 -0E-3 -> 0
-dqsamq1617 samequantum 7E+3 -0 -> 0
-dqsamq1618 samequantum 7E+3 -0E+3 -> 1
-dqsamq1619 samequantum 7E+3 0E-3 -> 0
-dqsamq1620 samequantum 7E+3 0 -> 0
-dqsamq1621 samequantum 7E+3 0E+3 -> 1
-dqsamq1622 samequantum 7E+3 7E-3 -> 0
-dqsamq1623 samequantum 7E+3 7 -> 0
-dqsamq1624 samequantum 7E+3 7E+3 -> 1
-dqsamq1625 samequantum 7E+3 sNaN -> 0
-
-dqsamq1710 samequantum sNaN -Inf -> 0
-dqsamq1711 samequantum sNaN Inf -> 0
-dqsamq1712 samequantum sNaN NaN -> 1
-dqsamq1713 samequantum sNaN -7E+3 -> 0
-dqsamq1714 samequantum sNaN -7 -> 0
-dqsamq1715 samequantum sNaN -7E-3 -> 0
-dqsamq1716 samequantum sNaN -0E-3 -> 0
-dqsamq1717 samequantum sNaN -0 -> 0
-dqsamq1718 samequantum sNaN -0E+3 -> 0
-dqsamq1719 samequantum sNaN 0E-3 -> 0
-dqsamq1720 samequantum sNaN 0 -> 0
-dqsamq1721 samequantum sNaN 0E+3 -> 0
-dqsamq1722 samequantum sNaN 7E-3 -> 0
-dqsamq1723 samequantum sNaN 7 -> 0
-dqsamq1724 samequantum sNaN 7E+3 -> 0
-dqsamq1725 samequantum sNaN sNaN -> 1
--- noisy NaNs
-dqsamq1730 samequantum sNaN3 sNaN3 -> 1
-dqsamq1731 samequantum sNaN3 sNaN4 -> 1
-dqsamq1732 samequantum NaN3 NaN3 -> 1
-dqsamq1733 samequantum NaN3 NaN4 -> 1
-dqsamq1734 samequantum sNaN3 3 -> 0
-dqsamq1735 samequantum NaN3 3 -> 0
-dqsamq1736 samequantum 4 sNaN4 -> 0
-dqsamq1737 samequantum 3 NaN3 -> 0
-dqsamq1738 samequantum Inf sNaN4 -> 0
-dqsamq1739 samequantum -Inf NaN3 -> 0
-
+------------------------------------------------------------------------ +-- dqSameQuantum.decTest -- check decQuad quantums match -- +-- Copyright (c) IBM Corporation, 2001, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- All operands and results are decQuads. +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +dqsamq001 samequantum 0 0 -> 1 +dqsamq002 samequantum 0 1 -> 1 +dqsamq003 samequantum 1 0 -> 1 +dqsamq004 samequantum 1 1 -> 1 + +dqsamq011 samequantum 10 1E+1 -> 0 +dqsamq012 samequantum 10E+1 10E+1 -> 1 +dqsamq013 samequantum 100 10E+1 -> 0 +dqsamq014 samequantum 100 1E+2 -> 0 +dqsamq015 samequantum 0.1 1E-2 -> 0 +dqsamq016 samequantum 0.1 1E-1 -> 1 +dqsamq017 samequantum 0.1 1E-0 -> 0 +dqsamq018 samequantum 999 999 -> 1 +dqsamq019 samequantum 999E-1 99.9 -> 1 +dqsamq020 samequantum 111E-1 22.2 -> 1 +dqsamq021 samequantum 111E-1 1234.2 -> 1 + +-- zeros +dqsamq030 samequantum 0.0 1.1 -> 1 +dqsamq031 samequantum 0.0 1.11 -> 0 +dqsamq032 samequantum 0.0 0 -> 0 +dqsamq033 samequantum 0.0 0.0 -> 1 +dqsamq034 samequantum 0.0 0.00 -> 0 +dqsamq035 samequantum 0E+1 0E+0 -> 0 +dqsamq036 samequantum 0E+1 0E+1 -> 1 +dqsamq037 samequantum 0E+1 0E+2 -> 0 +dqsamq038 samequantum 0E-17 0E-16 -> 0 +dqsamq039 samequantum 0E-17 0E-17 -> 1 +dqsamq040 samequantum 0E-17 0E-18 -> 0 +dqsamq041 samequantum 0E-17 0.0E-15 -> 0 +dqsamq042 samequantum 0E-17 0.0E-16 -> 1 +dqsamq043 samequantum 0E-17 0.0E-17 -> 0 +dqsamq044 samequantum -0E-17 0.0E-16 -> 1 +dqsamq045 samequantum 0E-17 -0.0E-17 -> 0 +dqsamq046 samequantum 0E-17 -0.0E-16 -> 1 +dqsamq047 samequantum -0E-17 0.0E-17 -> 0 +dqsamq048 samequantum -0E-17 -0.0E-16 -> 1 +dqsamq049 samequantum -0E-17 -0.0E-17 -> 0 + +-- Nmax, Nmin, Ntiny +dqsamq051 samequantum 9.99999999999999999999999999999999E+6144 9.99999999999999999999999999999999E+6144 -> 1 +dqsamq052 samequantum 1E-6143 1E-6143 -> 1 +dqsamq053 samequantum 1.00000000000000000000000000000000E-6143 1.00000000000000000000000000000000E-6143 -> 1 +dqsamq054 samequantum 1E-6176 1E-6176 -> 1 +dqsamq055 samequantum 9.99999999999999999999999999999999E+6144 9.99999999999999999999999999999999E+6144 -> 1 +dqsamq056 samequantum 1E-6143 1E-6143 -> 1 +dqsamq057 samequantum 1.00000000000000000000000000000000E-6143 1.00000000000000000000000000000000E-6143 -> 1 +dqsamq058 samequantum 1E-6176 1E-6176 -> 1 + +dqsamq061 samequantum -1E-6176 -1E-6176 -> 1 +dqsamq062 samequantum -1.00000000000000000000000000000000E-6143 -1.00000000000000000000000000000000E-6143 -> 1 +dqsamq063 samequantum -1E-6143 -1E-6143 -> 1 +dqsamq064 samequantum -9.99999999999999999999999999999999E+6144 -9.99999999999999999999999999999999E+6144 -> 1 +dqsamq065 samequantum -1E-6176 -1E-6176 -> 1 +dqsamq066 samequantum -1.00000000000000000000000000000000E-6143 -1.00000000000000000000000000000000E-6143 -> 1 +dqsamq067 samequantum -1E-6143 -1E-6143 -> 1 +dqsamq068 samequantum -9.99999999999999999999999999999999E+6144 -9.99999999999999999999999999999999E+6144 -> 1 + +dqsamq071 samequantum -4E-6176 -1E-6176 -> 1 +dqsamq072 samequantum -4.00000000000000000000000000000000E-6143 -1.00000000000000000000000000004000E-6143 -> 1 +dqsamq073 samequantum -4E-6143 -1E-6143 -> 1 +dqsamq074 samequantum -4.99999999999999999999999999999999E+6144 -9.99949999999999999999999999999999E+6144 -> 1 +dqsamq075 samequantum -4E-6176 -1E-6176 -> 1 +dqsamq076 samequantum -4.00000000000000000000000000000000E-6143 -1.00400000000000000000000000000000E-6143 -> 1 +dqsamq077 samequantum -4E-6143 -1E-6143 -> 1 +dqsamq078 samequantum -4.99999999999999999999999999999999E+6144 -9.94999999999999999999999999999999E+6144 -> 1 + +dqsamq081 samequantum -4E-1006 -1E-6176 -> 0 +dqsamq082 samequantum -4.00000000000000000000000000000000E-6143 -1.00004000000000000000000000000000E-6136 -> 0 +dqsamq083 samequantum -4E-6140 -1E-6143 -> 0 +dqsamq084 samequantum -4.99999999999999999999999999999999E+6144 -9.99949999999999999999999999999999E+6136 -> 0 +dqsamq085 samequantum -4E-1006 -1E-6176 -> 0 +dqsamq086 samequantum -4.00000000000000000000000000000000E-6143 -1.00400000000000000000000000000000E-6136 -> 0 +dqsamq087 samequantum -4E-6133 -1E-6143 -> 0 +dqsamq088 samequantum -4.99999999999999999999999999999999E+6144 -9.94999999999999999999999999999999E+6136 -> 0 + +-- specials & combinations +dqsamq0110 samequantum -Inf -Inf -> 1 +dqsamq0111 samequantum -Inf Inf -> 1 +dqsamq0112 samequantum -Inf NaN -> 0 +dqsamq0113 samequantum -Inf -7E+3 -> 0 +dqsamq0114 samequantum -Inf -7 -> 0 +dqsamq0115 samequantum -Inf -7E-3 -> 0 +dqsamq0116 samequantum -Inf -0E-3 -> 0 +dqsamq0117 samequantum -Inf -0 -> 0 +dqsamq0118 samequantum -Inf -0E+3 -> 0 +dqsamq0119 samequantum -Inf 0E-3 -> 0 +dqsamq0120 samequantum -Inf 0 -> 0 +dqsamq0121 samequantum -Inf 0E+3 -> 0 +dqsamq0122 samequantum -Inf 7E-3 -> 0 +dqsamq0123 samequantum -Inf 7 -> 0 +dqsamq0124 samequantum -Inf 7E+3 -> 0 +dqsamq0125 samequantum -Inf sNaN -> 0 + +dqsamq0210 samequantum Inf -Inf -> 1 +dqsamq0211 samequantum Inf Inf -> 1 +dqsamq0212 samequantum Inf NaN -> 0 +dqsamq0213 samequantum Inf -7E+3 -> 0 +dqsamq0214 samequantum Inf -7 -> 0 +dqsamq0215 samequantum Inf -7E-3 -> 0 +dqsamq0216 samequantum Inf -0E-3 -> 0 +dqsamq0217 samequantum Inf -0 -> 0 +dqsamq0218 samequantum Inf -0E+3 -> 0 +dqsamq0219 samequantum Inf 0E-3 -> 0 +dqsamq0220 samequantum Inf 0 -> 0 +dqsamq0221 samequantum Inf 0E+3 -> 0 +dqsamq0222 samequantum Inf 7E-3 -> 0 +dqsamq0223 samequantum Inf 7 -> 0 +dqsamq0224 samequantum Inf 7E+3 -> 0 +dqsamq0225 samequantum Inf sNaN -> 0 + +dqsamq0310 samequantum NaN -Inf -> 0 +dqsamq0311 samequantum NaN Inf -> 0 +dqsamq0312 samequantum NaN NaN -> 1 +dqsamq0313 samequantum NaN -7E+3 -> 0 +dqsamq0314 samequantum NaN -7 -> 0 +dqsamq0315 samequantum NaN -7E-3 -> 0 +dqsamq0316 samequantum NaN -0E-3 -> 0 +dqsamq0317 samequantum NaN -0 -> 0 +dqsamq0318 samequantum NaN -0E+3 -> 0 +dqsamq0319 samequantum NaN 0E-3 -> 0 +dqsamq0320 samequantum NaN 0 -> 0 +dqsamq0321 samequantum NaN 0E+3 -> 0 +dqsamq0322 samequantum NaN 7E-3 -> 0 +dqsamq0323 samequantum NaN 7 -> 0 +dqsamq0324 samequantum NaN 7E+3 -> 0 +dqsamq0325 samequantum NaN sNaN -> 1 + +dqsamq0410 samequantum -7E+3 -Inf -> 0 +dqsamq0411 samequantum -7E+3 Inf -> 0 +dqsamq0412 samequantum -7E+3 NaN -> 0 +dqsamq0413 samequantum -7E+3 -7E+3 -> 1 +dqsamq0414 samequantum -7E+3 -7 -> 0 +dqsamq0415 samequantum -7E+3 -7E-3 -> 0 +dqsamq0416 samequantum -7E+3 -0E-3 -> 0 +dqsamq0417 samequantum -7E+3 -0 -> 0 +dqsamq0418 samequantum -7E+3 -0E+3 -> 1 +dqsamq0419 samequantum -7E+3 0E-3 -> 0 +dqsamq0420 samequantum -7E+3 0 -> 0 +dqsamq0421 samequantum -7E+3 0E+3 -> 1 +dqsamq0422 samequantum -7E+3 7E-3 -> 0 +dqsamq0423 samequantum -7E+3 7 -> 0 +dqsamq0424 samequantum -7E+3 7E+3 -> 1 +dqsamq0425 samequantum -7E+3 sNaN -> 0 + +dqsamq0510 samequantum -7 -Inf -> 0 +dqsamq0511 samequantum -7 Inf -> 0 +dqsamq0512 samequantum -7 NaN -> 0 +dqsamq0513 samequantum -7 -7E+3 -> 0 +dqsamq0514 samequantum -7 -7 -> 1 +dqsamq0515 samequantum -7 -7E-3 -> 0 +dqsamq0516 samequantum -7 -0E-3 -> 0 +dqsamq0517 samequantum -7 -0 -> 1 +dqsamq0518 samequantum -7 -0E+3 -> 0 +dqsamq0519 samequantum -7 0E-3 -> 0 +dqsamq0520 samequantum -7 0 -> 1 +dqsamq0521 samequantum -7 0E+3 -> 0 +dqsamq0522 samequantum -7 7E-3 -> 0 +dqsamq0523 samequantum -7 7 -> 1 +dqsamq0524 samequantum -7 7E+3 -> 0 +dqsamq0525 samequantum -7 sNaN -> 0 + +dqsamq0610 samequantum -7E-3 -Inf -> 0 +dqsamq0611 samequantum -7E-3 Inf -> 0 +dqsamq0612 samequantum -7E-3 NaN -> 0 +dqsamq0613 samequantum -7E-3 -7E+3 -> 0 +dqsamq0614 samequantum -7E-3 -7 -> 0 +dqsamq0615 samequantum -7E-3 -7E-3 -> 1 +dqsamq0616 samequantum -7E-3 -0E-3 -> 1 +dqsamq0617 samequantum -7E-3 -0 -> 0 +dqsamq0618 samequantum -7E-3 -0E+3 -> 0 +dqsamq0619 samequantum -7E-3 0E-3 -> 1 +dqsamq0620 samequantum -7E-3 0 -> 0 +dqsamq0621 samequantum -7E-3 0E+3 -> 0 +dqsamq0622 samequantum -7E-3 7E-3 -> 1 +dqsamq0623 samequantum -7E-3 7 -> 0 +dqsamq0624 samequantum -7E-3 7E+3 -> 0 +dqsamq0625 samequantum -7E-3 sNaN -> 0 + +dqsamq0710 samequantum -0E-3 -Inf -> 0 +dqsamq0711 samequantum -0E-3 Inf -> 0 +dqsamq0712 samequantum -0E-3 NaN -> 0 +dqsamq0713 samequantum -0E-3 -7E+3 -> 0 +dqsamq0714 samequantum -0E-3 -7 -> 0 +dqsamq0715 samequantum -0E-3 -7E-3 -> 1 +dqsamq0716 samequantum -0E-3 -0E-3 -> 1 +dqsamq0717 samequantum -0E-3 -0 -> 0 +dqsamq0718 samequantum -0E-3 -0E+3 -> 0 +dqsamq0719 samequantum -0E-3 0E-3 -> 1 +dqsamq0720 samequantum -0E-3 0 -> 0 +dqsamq0721 samequantum -0E-3 0E+3 -> 0 +dqsamq0722 samequantum -0E-3 7E-3 -> 1 +dqsamq0723 samequantum -0E-3 7 -> 0 +dqsamq0724 samequantum -0E-3 7E+3 -> 0 +dqsamq0725 samequantum -0E-3 sNaN -> 0 + +dqsamq0810 samequantum -0 -Inf -> 0 +dqsamq0811 samequantum -0 Inf -> 0 +dqsamq0812 samequantum -0 NaN -> 0 +dqsamq0813 samequantum -0 -7E+3 -> 0 +dqsamq0814 samequantum -0 -7 -> 1 +dqsamq0815 samequantum -0 -7E-3 -> 0 +dqsamq0816 samequantum -0 -0E-3 -> 0 +dqsamq0817 samequantum -0 -0 -> 1 +dqsamq0818 samequantum -0 -0E+3 -> 0 +dqsamq0819 samequantum -0 0E-3 -> 0 +dqsamq0820 samequantum -0 0 -> 1 +dqsamq0821 samequantum -0 0E+3 -> 0 +dqsamq0822 samequantum -0 7E-3 -> 0 +dqsamq0823 samequantum -0 7 -> 1 +dqsamq0824 samequantum -0 7E+3 -> 0 +dqsamq0825 samequantum -0 sNaN -> 0 + +dqsamq0910 samequantum -0E+3 -Inf -> 0 +dqsamq0911 samequantum -0E+3 Inf -> 0 +dqsamq0912 samequantum -0E+3 NaN -> 0 +dqsamq0913 samequantum -0E+3 -7E+3 -> 1 +dqsamq0914 samequantum -0E+3 -7 -> 0 +dqsamq0915 samequantum -0E+3 -7E-3 -> 0 +dqsamq0916 samequantum -0E+3 -0E-3 -> 0 +dqsamq0917 samequantum -0E+3 -0 -> 0 +dqsamq0918 samequantum -0E+3 -0E+3 -> 1 +dqsamq0919 samequantum -0E+3 0E-3 -> 0 +dqsamq0920 samequantum -0E+3 0 -> 0 +dqsamq0921 samequantum -0E+3 0E+3 -> 1 +dqsamq0922 samequantum -0E+3 7E-3 -> 0 +dqsamq0923 samequantum -0E+3 7 -> 0 +dqsamq0924 samequantum -0E+3 7E+3 -> 1 +dqsamq0925 samequantum -0E+3 sNaN -> 0 + +dqsamq1110 samequantum 0E-3 -Inf -> 0 +dqsamq1111 samequantum 0E-3 Inf -> 0 +dqsamq1112 samequantum 0E-3 NaN -> 0 +dqsamq1113 samequantum 0E-3 -7E+3 -> 0 +dqsamq1114 samequantum 0E-3 -7 -> 0 +dqsamq1115 samequantum 0E-3 -7E-3 -> 1 +dqsamq1116 samequantum 0E-3 -0E-3 -> 1 +dqsamq1117 samequantum 0E-3 -0 -> 0 +dqsamq1118 samequantum 0E-3 -0E+3 -> 0 +dqsamq1119 samequantum 0E-3 0E-3 -> 1 +dqsamq1120 samequantum 0E-3 0 -> 0 +dqsamq1121 samequantum 0E-3 0E+3 -> 0 +dqsamq1122 samequantum 0E-3 7E-3 -> 1 +dqsamq1123 samequantum 0E-3 7 -> 0 +dqsamq1124 samequantum 0E-3 7E+3 -> 0 +dqsamq1125 samequantum 0E-3 sNaN -> 0 + +dqsamq1210 samequantum 0 -Inf -> 0 +dqsamq1211 samequantum 0 Inf -> 0 +dqsamq1212 samequantum 0 NaN -> 0 +dqsamq1213 samequantum 0 -7E+3 -> 0 +dqsamq1214 samequantum 0 -7 -> 1 +dqsamq1215 samequantum 0 -7E-3 -> 0 +dqsamq1216 samequantum 0 -0E-3 -> 0 +dqsamq1217 samequantum 0 -0 -> 1 +dqsamq1218 samequantum 0 -0E+3 -> 0 +dqsamq1219 samequantum 0 0E-3 -> 0 +dqsamq1220 samequantum 0 0 -> 1 +dqsamq1221 samequantum 0 0E+3 -> 0 +dqsamq1222 samequantum 0 7E-3 -> 0 +dqsamq1223 samequantum 0 7 -> 1 +dqsamq1224 samequantum 0 7E+3 -> 0 +dqsamq1225 samequantum 0 sNaN -> 0 + +dqsamq1310 samequantum 0E+3 -Inf -> 0 +dqsamq1311 samequantum 0E+3 Inf -> 0 +dqsamq1312 samequantum 0E+3 NaN -> 0 +dqsamq1313 samequantum 0E+3 -7E+3 -> 1 +dqsamq1314 samequantum 0E+3 -7 -> 0 +dqsamq1315 samequantum 0E+3 -7E-3 -> 0 +dqsamq1316 samequantum 0E+3 -0E-3 -> 0 +dqsamq1317 samequantum 0E+3 -0 -> 0 +dqsamq1318 samequantum 0E+3 -0E+3 -> 1 +dqsamq1319 samequantum 0E+3 0E-3 -> 0 +dqsamq1320 samequantum 0E+3 0 -> 0 +dqsamq1321 samequantum 0E+3 0E+3 -> 1 +dqsamq1322 samequantum 0E+3 7E-3 -> 0 +dqsamq1323 samequantum 0E+3 7 -> 0 +dqsamq1324 samequantum 0E+3 7E+3 -> 1 +dqsamq1325 samequantum 0E+3 sNaN -> 0 + +dqsamq1410 samequantum 7E-3 -Inf -> 0 +dqsamq1411 samequantum 7E-3 Inf -> 0 +dqsamq1412 samequantum 7E-3 NaN -> 0 +dqsamq1413 samequantum 7E-3 -7E+3 -> 0 +dqsamq1414 samequantum 7E-3 -7 -> 0 +dqsamq1415 samequantum 7E-3 -7E-3 -> 1 +dqsamq1416 samequantum 7E-3 -0E-3 -> 1 +dqsamq1417 samequantum 7E-3 -0 -> 0 +dqsamq1418 samequantum 7E-3 -0E+3 -> 0 +dqsamq1419 samequantum 7E-3 0E-3 -> 1 +dqsamq1420 samequantum 7E-3 0 -> 0 +dqsamq1421 samequantum 7E-3 0E+3 -> 0 +dqsamq1422 samequantum 7E-3 7E-3 -> 1 +dqsamq1423 samequantum 7E-3 7 -> 0 +dqsamq1424 samequantum 7E-3 7E+3 -> 0 +dqsamq1425 samequantum 7E-3 sNaN -> 0 + +dqsamq1510 samequantum 7 -Inf -> 0 +dqsamq1511 samequantum 7 Inf -> 0 +dqsamq1512 samequantum 7 NaN -> 0 +dqsamq1513 samequantum 7 -7E+3 -> 0 +dqsamq1514 samequantum 7 -7 -> 1 +dqsamq1515 samequantum 7 -7E-3 -> 0 +dqsamq1516 samequantum 7 -0E-3 -> 0 +dqsamq1517 samequantum 7 -0 -> 1 +dqsamq1518 samequantum 7 -0E+3 -> 0 +dqsamq1519 samequantum 7 0E-3 -> 0 +dqsamq1520 samequantum 7 0 -> 1 +dqsamq1521 samequantum 7 0E+3 -> 0 +dqsamq1522 samequantum 7 7E-3 -> 0 +dqsamq1523 samequantum 7 7 -> 1 +dqsamq1524 samequantum 7 7E+3 -> 0 +dqsamq1525 samequantum 7 sNaN -> 0 + +dqsamq1610 samequantum 7E+3 -Inf -> 0 +dqsamq1611 samequantum 7E+3 Inf -> 0 +dqsamq1612 samequantum 7E+3 NaN -> 0 +dqsamq1613 samequantum 7E+3 -7E+3 -> 1 +dqsamq1614 samequantum 7E+3 -7 -> 0 +dqsamq1615 samequantum 7E+3 -7E-3 -> 0 +dqsamq1616 samequantum 7E+3 -0E-3 -> 0 +dqsamq1617 samequantum 7E+3 -0 -> 0 +dqsamq1618 samequantum 7E+3 -0E+3 -> 1 +dqsamq1619 samequantum 7E+3 0E-3 -> 0 +dqsamq1620 samequantum 7E+3 0 -> 0 +dqsamq1621 samequantum 7E+3 0E+3 -> 1 +dqsamq1622 samequantum 7E+3 7E-3 -> 0 +dqsamq1623 samequantum 7E+3 7 -> 0 +dqsamq1624 samequantum 7E+3 7E+3 -> 1 +dqsamq1625 samequantum 7E+3 sNaN -> 0 + +dqsamq1710 samequantum sNaN -Inf -> 0 +dqsamq1711 samequantum sNaN Inf -> 0 +dqsamq1712 samequantum sNaN NaN -> 1 +dqsamq1713 samequantum sNaN -7E+3 -> 0 +dqsamq1714 samequantum sNaN -7 -> 0 +dqsamq1715 samequantum sNaN -7E-3 -> 0 +dqsamq1716 samequantum sNaN -0E-3 -> 0 +dqsamq1717 samequantum sNaN -0 -> 0 +dqsamq1718 samequantum sNaN -0E+3 -> 0 +dqsamq1719 samequantum sNaN 0E-3 -> 0 +dqsamq1720 samequantum sNaN 0 -> 0 +dqsamq1721 samequantum sNaN 0E+3 -> 0 +dqsamq1722 samequantum sNaN 7E-3 -> 0 +dqsamq1723 samequantum sNaN 7 -> 0 +dqsamq1724 samequantum sNaN 7E+3 -> 0 +dqsamq1725 samequantum sNaN sNaN -> 1 +-- noisy NaNs +dqsamq1730 samequantum sNaN3 sNaN3 -> 1 +dqsamq1731 samequantum sNaN3 sNaN4 -> 1 +dqsamq1732 samequantum NaN3 NaN3 -> 1 +dqsamq1733 samequantum NaN3 NaN4 -> 1 +dqsamq1734 samequantum sNaN3 3 -> 0 +dqsamq1735 samequantum NaN3 3 -> 0 +dqsamq1736 samequantum 4 sNaN4 -> 0 +dqsamq1737 samequantum 3 NaN3 -> 0 +dqsamq1738 samequantum Inf sNaN4 -> 0 +dqsamq1739 samequantum -Inf NaN3 -> 0 + diff --git a/Lib/test/decimaltestdata/dqScaleB.decTest b/Lib/test/decimaltestdata/dqScaleB.decTest index 01e1191963..045dc58d82 100644 --- a/Lib/test/decimaltestdata/dqScaleB.decTest +++ b/Lib/test/decimaltestdata/dqScaleB.decTest @@ -1,260 +1,260 @@ -------------------------------------------------------------------------
--- dqScalebB.decTest -- scale a decQuad by powers of 10 --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
--- Max |rhs| is 2*(6144+34) = 12356
-
--- Sanity checks
-dqscb001 scaleb 7.50 10 -> 7.50E+10
-dqscb002 scaleb 7.50 3 -> 7.50E+3
-dqscb003 scaleb 7.50 2 -> 750
-dqscb004 scaleb 7.50 1 -> 75.0
-dqscb005 scaleb 7.50 0 -> 7.50
-dqscb006 scaleb 7.50 -1 -> 0.750
-dqscb007 scaleb 7.50 -2 -> 0.0750
-dqscb008 scaleb 7.50 -10 -> 7.50E-10
-dqscb009 scaleb -7.50 3 -> -7.50E+3
-dqscb010 scaleb -7.50 2 -> -750
-dqscb011 scaleb -7.50 1 -> -75.0
-dqscb012 scaleb -7.50 0 -> -7.50
-dqscb013 scaleb -7.50 -1 -> -0.750
-
--- Infinities
-dqscb014 scaleb Infinity 1 -> Infinity
-dqscb015 scaleb -Infinity 2 -> -Infinity
-dqscb016 scaleb Infinity -1 -> Infinity
-dqscb017 scaleb -Infinity -2 -> -Infinity
-
--- Next two are somewhat undefined in 754r; treat as non-integer
-dqscb018 scaleb 10 Infinity -> NaN Invalid_operation
-dqscb019 scaleb 10 -Infinity -> NaN Invalid_operation
-
--- NaNs are undefined in 754r; assume usual processing
--- NaNs, 0 payload
-dqscb021 scaleb NaN 1 -> NaN
-dqscb022 scaleb -NaN -1 -> -NaN
-dqscb023 scaleb sNaN 1 -> NaN Invalid_operation
-dqscb024 scaleb -sNaN 1 -> -NaN Invalid_operation
-dqscb025 scaleb 4 NaN -> NaN
-dqscb026 scaleb -Inf -NaN -> -NaN
-dqscb027 scaleb 4 sNaN -> NaN Invalid_operation
-dqscb028 scaleb Inf -sNaN -> -NaN Invalid_operation
-
--- non-integer RHS
-dqscb030 scaleb 1.23 1 -> 12.3
-dqscb031 scaleb 1.23 1.00 -> NaN Invalid_operation
-dqscb032 scaleb 1.23 1.1 -> NaN Invalid_operation
-dqscb033 scaleb 1.23 1.01 -> NaN Invalid_operation
-dqscb034 scaleb 1.23 0.01 -> NaN Invalid_operation
-dqscb035 scaleb 1.23 0.11 -> NaN Invalid_operation
-dqscb036 scaleb 1.23 0.999999999 -> NaN Invalid_operation
-dqscb037 scaleb 1.23 -1 -> 0.123
-dqscb0614 scaleb 1.23 -1.00 -> NaN Invalid_operation
-dqscb039 scaleb 1.23 -1.1 -> NaN Invalid_operation
-dqscb040 scaleb 1.23 -1.01 -> NaN Invalid_operation
-dqscb041 scaleb 1.23 -0.01 -> NaN Invalid_operation
-dqscb042 scaleb 1.23 -0.11 -> NaN Invalid_operation
-dqscb043 scaleb 1.23 -0.999999999 -> NaN Invalid_operation
-dqscb044 scaleb 1.23 0.1 -> NaN Invalid_operation
-dqscb045 scaleb 1.23 1E+1 -> NaN Invalid_operation
-dqscb046 scaleb 1.23 1.1234E+6 -> NaN Invalid_operation
-dqscb047 scaleb 1.23 1.123E+4 -> NaN Invalid_operation
-
--- out-of range RHS
-dqscb120 scaleb 1.23 12355 -> Infinity Overflow Inexact Rounded
-dqscb121 scaleb 1.23 12356 -> Infinity Overflow Inexact Rounded
-dqscb122 scaleb 1.23 12357 -> NaN Invalid_operation
-dqscb123 scaleb 1.23 12358 -> NaN Invalid_operation
-dqscb124 scaleb 1.23 -12355 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqscb125 scaleb 1.23 -12356 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqscb126 scaleb 1.23 -12357 -> NaN Invalid_operation
-dqscb127 scaleb 1.23 -12358 -> NaN Invalid_operation
-
--- NaNs, non-0 payload
--- propagating NaNs
-dqscb861 scaleb NaN01 -Inf -> NaN1
-dqscb862 scaleb -NaN02 -1000 -> -NaN2
-dqscb863 scaleb NaN03 1000 -> NaN3
-dqscb864 scaleb NaN04 Inf -> NaN4
-dqscb865 scaleb NaN05 NaN61 -> NaN5
-dqscb866 scaleb -Inf -NaN71 -> -NaN71
-dqscb867 scaleb -1000 NaN81 -> NaN81
-dqscb868 scaleb 1000 NaN91 -> NaN91
-dqscb869 scaleb Inf NaN101 -> NaN101
-dqscb871 scaleb sNaN011 -Inf -> NaN11 Invalid_operation
-dqscb872 scaleb sNaN012 -1000 -> NaN12 Invalid_operation
-dqscb873 scaleb -sNaN013 1000 -> -NaN13 Invalid_operation
-dqscb874 scaleb sNaN014 NaN171 -> NaN14 Invalid_operation
-dqscb875 scaleb sNaN015 sNaN181 -> NaN15 Invalid_operation
-dqscb876 scaleb NaN016 sNaN191 -> NaN191 Invalid_operation
-dqscb877 scaleb -Inf sNaN201 -> NaN201 Invalid_operation
-dqscb878 scaleb -1000 sNaN211 -> NaN211 Invalid_operation
-dqscb879 scaleb 1000 -sNaN221 -> -NaN221 Invalid_operation
-dqscb880 scaleb Inf sNaN231 -> NaN231 Invalid_operation
-dqscb881 scaleb NaN025 sNaN241 -> NaN241 Invalid_operation
-
--- finites
-dqscb051 scaleb 7 -2 -> 0.07
-dqscb052 scaleb -7 -2 -> -0.07
-dqscb053 scaleb 75 -2 -> 0.75
-dqscb054 scaleb -75 -2 -> -0.75
-dqscb055 scaleb 7.50 -2 -> 0.0750
-dqscb056 scaleb -7.50 -2 -> -0.0750
-dqscb057 scaleb 7.500 -2 -> 0.07500
-dqscb058 scaleb -7.500 -2 -> -0.07500
-dqscb061 scaleb 7 -1 -> 0.7
-dqscb062 scaleb -7 -1 -> -0.7
-dqscb063 scaleb 75 -1 -> 7.5
-dqscb064 scaleb -75 -1 -> -7.5
-dqscb065 scaleb 7.50 -1 -> 0.750
-dqscb066 scaleb -7.50 -1 -> -0.750
-dqscb067 scaleb 7.500 -1 -> 0.7500
-dqscb068 scaleb -7.500 -1 -> -0.7500
-dqscb071 scaleb 7 0 -> 7
-dqscb072 scaleb -7 0 -> -7
-dqscb073 scaleb 75 0 -> 75
-dqscb074 scaleb -75 0 -> -75
-dqscb075 scaleb 7.50 0 -> 7.50
-dqscb076 scaleb -7.50 0 -> -7.50
-dqscb077 scaleb 7.500 0 -> 7.500
-dqscb078 scaleb -7.500 0 -> -7.500
-dqscb081 scaleb 7 1 -> 7E+1
-dqscb082 scaleb -7 1 -> -7E+1
-dqscb083 scaleb 75 1 -> 7.5E+2
-dqscb084 scaleb -75 1 -> -7.5E+2
-dqscb085 scaleb 7.50 1 -> 75.0
-dqscb086 scaleb -7.50 1 -> -75.0
-dqscb087 scaleb 7.500 1 -> 75.00
-dqscb088 scaleb -7.500 1 -> -75.00
-dqscb091 scaleb 7 2 -> 7E+2
-dqscb092 scaleb -7 2 -> -7E+2
-dqscb093 scaleb 75 2 -> 7.5E+3
-dqscb094 scaleb -75 2 -> -7.5E+3
-dqscb095 scaleb 7.50 2 -> 750
-dqscb096 scaleb -7.50 2 -> -750
-dqscb097 scaleb 7.500 2 -> 750.0
-dqscb098 scaleb -7.500 2 -> -750.0
-
--- zeros
-dqscb111 scaleb 0 1 -> 0E+1
-dqscb112 scaleb -0 2 -> -0E+2
-dqscb113 scaleb 0E+4 3 -> 0E+7
-dqscb114 scaleb -0E+4 4 -> -0E+8
-dqscb115 scaleb 0.0000 5 -> 0E+1
-dqscb116 scaleb -0.0000 6 -> -0E+2
-dqscb117 scaleb 0E-141 7 -> 0E-134
-dqscb118 scaleb -0E-141 8 -> -0E-133
-
--- Nmax, Nmin, Ntiny
-dqscb132 scaleb 9.999999999999999999999999999999999E+6144 +6144 -> Infinity Overflow Inexact Rounded
-dqscb133 scaleb 9.999999999999999999999999999999999E+6144 +10 -> Infinity Overflow Inexact Rounded
-dqscb134 scaleb 9.999999999999999999999999999999999E+6144 +1 -> Infinity Overflow Inexact Rounded
-dqscb135 scaleb 9.999999999999999999999999999999999E+6144 0 -> 9.999999999999999999999999999999999E+6144
-dqscb136 scaleb 9.999999999999999999999999999999999E+6144 -1 -> 9.999999999999999999999999999999999E+6143
-dqscb137 scaleb 1E-6143 +1 -> 1E-6142
-dqscb1614 scaleb 1E-6143 -0 -> 1E-6143
-dqscb139 scaleb 1E-6143 -1 -> 1E-6144 Subnormal
-dqscb140 scaleb 1.000000000000000000000000000000000E-6143 +1 -> 1.000000000000000000000000000000000E-6142
-dqscb141 scaleb 1.000000000000000000000000000000000E-6143 0 -> 1.000000000000000000000000000000000E-6143
-dqscb142 scaleb 1.000000000000000000000000000000000E-6143 -1 -> 1.00000000000000000000000000000000E-6144 Subnormal Rounded
-dqscb143 scaleb 1E-6176 +1 -> 1E-6175 Subnormal
-dqscb144 scaleb 1E-6176 -0 -> 1E-6176 Subnormal
-dqscb145 scaleb 1E-6176 -1 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-
-dqscb150 scaleb -1E-6176 +1 -> -1E-6175 Subnormal
-dqscb151 scaleb -1E-6176 -0 -> -1E-6176 Subnormal
-dqscb152 scaleb -1E-6176 -1 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqscb153 scaleb -1.000000000000000000000000000000000E-6143 +1 -> -1.000000000000000000000000000000000E-6142
-dqscb154 scaleb -1.000000000000000000000000000000000E-6143 +0 -> -1.000000000000000000000000000000000E-6143
-dqscb155 scaleb -1.000000000000000000000000000000000E-6143 -1 -> -1.00000000000000000000000000000000E-6144 Subnormal Rounded
-dqscb156 scaleb -1E-6143 +1 -> -1E-6142
-dqscb157 scaleb -1E-6143 -0 -> -1E-6143
-dqscb158 scaleb -1E-6143 -1 -> -1E-6144 Subnormal
-dqscb159 scaleb -9.999999999999999999999999999999999E+6144 +1 -> -Infinity Overflow Inexact Rounded
-dqscb160 scaleb -9.999999999999999999999999999999999E+6144 +0 -> -9.999999999999999999999999999999999E+6144
-dqscb161 scaleb -9.999999999999999999999999999999999E+6144 -1 -> -9.999999999999999999999999999999999E+6143
-dqscb162 scaleb -9E+6144 +1 -> -Infinity Overflow Inexact Rounded
-dqscb163 scaleb -1E+6144 +1 -> -Infinity Overflow Inexact Rounded
-
--- some Origami
--- (these check that overflow is being done correctly)
-dqscb171 scaleb 1000E+6109 +1 -> 1.000E+6113
-dqscb172 scaleb 1000E+6110 +1 -> 1.000E+6114
-dqscb173 scaleb 1000E+6111 +1 -> 1.0000E+6115 Clamped
-dqscb174 scaleb 1000E+6112 +1 -> 1.00000E+6116 Clamped
-dqscb175 scaleb 1000E+6113 +1 -> 1.000000E+6117 Clamped
-dqscb176 scaleb 1000E+6114 +1 -> 1.0000000E+6118 Clamped
-dqscb177 scaleb 1000E+6131 +1 -> 1.000000000000000000000000E+6135 Clamped
-dqscb178 scaleb 1000E+6132 +1 -> 1.0000000000000000000000000E+6136 Clamped
-dqscb179 scaleb 1000E+6133 +1 -> 1.00000000000000000000000000E+6137 Clamped
-dqscb180 scaleb 1000E+6134 +1 -> 1.000000000000000000000000000E+6138 Clamped
-dqscb181 scaleb 1000E+6135 +1 -> 1.0000000000000000000000000000E+6139 Clamped
-dqscb182 scaleb 1000E+6136 +1 -> 1.00000000000000000000000000000E+6140 Clamped
-dqscb183 scaleb 1000E+6137 +1 -> 1.000000000000000000000000000000E+6141 Clamped
-dqscb184 scaleb 1000E+6138 +1 -> 1.0000000000000000000000000000000E+6142 Clamped
-dqscb185 scaleb 1000E+6139 +1 -> 1.00000000000000000000000000000000E+6143 Clamped
-dqscb186 scaleb 1000E+6140 +1 -> 1.000000000000000000000000000000000E+6144 Clamped
-dqscb187 scaleb 1000E+6141 +1 -> Infinity Overflow Inexact Rounded
-
--- and a few more subnormal truncations
--- (these check that underflow is being done correctly)
-dqscb221 scaleb 1.000000000000000000000000000000000E-6143 0 -> 1.000000000000000000000000000000000E-6143
-dqscb222 scaleb 1.000000000000000000000000000000000E-6143 -1 -> 1.00000000000000000000000000000000E-6144 Subnormal Rounded
-dqscb223 scaleb 1.000000000000000000000000000000000E-6143 -2 -> 1.0000000000000000000000000000000E-6145 Subnormal Rounded
-dqscb224 scaleb 1.000000000000000000000000000000000E-6143 -3 -> 1.000000000000000000000000000000E-6146 Subnormal Rounded
-dqscb225 scaleb 1.000000000000000000000000000000000E-6143 -4 -> 1.00000000000000000000000000000E-6147 Subnormal Rounded
-dqscb226 scaleb 1.000000000000000000000000000000000E-6143 -5 -> 1.0000000000000000000000000000E-6148 Subnormal Rounded
-dqscb227 scaleb 1.000000000000000000000000000000000E-6143 -6 -> 1.000000000000000000000000000E-6149 Subnormal Rounded
-dqscb228 scaleb 1.000000000000000000000000000000000E-6143 -7 -> 1.00000000000000000000000000E-6150 Subnormal Rounded
-dqscb229 scaleb 1.000000000000000000000000000000000E-6143 -8 -> 1.0000000000000000000000000E-6151 Subnormal Rounded
-dqscb230 scaleb 1.000000000000000000000000000000000E-6143 -9 -> 1.000000000000000000000000E-6152 Subnormal Rounded
-dqscb231 scaleb 1.000000000000000000000000000000000E-6143 -10 -> 1.00000000000000000000000E-6153 Subnormal Rounded
-dqscb232 scaleb 1.000000000000000000000000000000000E-6143 -11 -> 1.0000000000000000000000E-6154 Subnormal Rounded
-dqscb233 scaleb 1.000000000000000000000000000000000E-6143 -12 -> 1.000000000000000000000E-6155 Subnormal Rounded
-dqscb234 scaleb 1.000000000000000000000000000000000E-6143 -13 -> 1.00000000000000000000E-6156 Subnormal Rounded
-dqscb235 scaleb 1.000000000000000000000000000000000E-6143 -14 -> 1.0000000000000000000E-6157 Subnormal Rounded
-dqscb236 scaleb 1.000000000000000000000000000000000E-6143 -15 -> 1.000000000000000000E-6158 Subnormal Rounded
-dqscb237 scaleb 1.000000000000000000000000000000000E-6143 -16 -> 1.00000000000000000E-6159 Subnormal Rounded
-dqscb238 scaleb 1.000000000000000000000000000000000E-6143 -17 -> 1.0000000000000000E-6160 Subnormal Rounded
-dqscb239 scaleb 1.000000000000000000000000000000000E-6143 -18 -> 1.000000000000000E-6161 Subnormal Rounded
-dqscb202 scaleb 1.000000000000000000000000000000000E-6143 -19 -> 1.00000000000000E-6162 Subnormal Rounded
-dqscb203 scaleb 1.000000000000000000000000000000000E-6143 -20 -> 1.0000000000000E-6163 Subnormal Rounded
-dqscb204 scaleb 1.000000000000000000000000000000000E-6143 -21 -> 1.000000000000E-6164 Subnormal Rounded
-dqscb205 scaleb 1.000000000000000000000000000000000E-6143 -22 -> 1.00000000000E-6165 Subnormal Rounded
-dqscb206 scaleb 1.000000000000000000000000000000000E-6143 -23 -> 1.0000000000E-6166 Subnormal Rounded
-dqscb207 scaleb 1.000000000000000000000000000000000E-6143 -24 -> 1.000000000E-6167 Subnormal Rounded
-dqscb208 scaleb 1.000000000000000000000000000000000E-6143 -25 -> 1.00000000E-6168 Subnormal Rounded
-dqscb209 scaleb 1.000000000000000000000000000000000E-6143 -26 -> 1.0000000E-6169 Subnormal Rounded
-dqscb210 scaleb 1.000000000000000000000000000000000E-6143 -27 -> 1.000000E-6170 Subnormal Rounded
-dqscb211 scaleb 1.000000000000000000000000000000000E-6143 -28 -> 1.00000E-6171 Subnormal Rounded
-dqscb212 scaleb 1.000000000000000000000000000000000E-6143 -29 -> 1.0000E-6172 Subnormal Rounded
-dqscb213 scaleb 1.000000000000000000000000000000000E-6143 -30 -> 1.000E-6173 Subnormal Rounded
-dqscb214 scaleb 1.000000000000000000000000000000000E-6143 -31 -> 1.00E-6174 Subnormal Rounded
-dqscb215 scaleb 1.000000000000000000000000000000000E-6143 -32 -> 1.0E-6175 Subnormal Rounded
-dqscb216 scaleb 1.000000000000000000000000000000000E-6143 -33 -> 1E-6176 Subnormal Rounded
-dqscb217 scaleb 1.000000000000000000000000000000000E-6143 -34 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-dqscb218 scaleb 1.000000000000000000000000000000000E-6143 -35 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
+------------------------------------------------------------------------ +-- dqScalebB.decTest -- scale a decQuad by powers of 10 -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +-- Max |rhs| is 2*(6144+34) = 12356 + +-- Sanity checks +dqscb001 scaleb 7.50 10 -> 7.50E+10 +dqscb002 scaleb 7.50 3 -> 7.50E+3 +dqscb003 scaleb 7.50 2 -> 750 +dqscb004 scaleb 7.50 1 -> 75.0 +dqscb005 scaleb 7.50 0 -> 7.50 +dqscb006 scaleb 7.50 -1 -> 0.750 +dqscb007 scaleb 7.50 -2 -> 0.0750 +dqscb008 scaleb 7.50 -10 -> 7.50E-10 +dqscb009 scaleb -7.50 3 -> -7.50E+3 +dqscb010 scaleb -7.50 2 -> -750 +dqscb011 scaleb -7.50 1 -> -75.0 +dqscb012 scaleb -7.50 0 -> -7.50 +dqscb013 scaleb -7.50 -1 -> -0.750 + +-- Infinities +dqscb014 scaleb Infinity 1 -> Infinity +dqscb015 scaleb -Infinity 2 -> -Infinity +dqscb016 scaleb Infinity -1 -> Infinity +dqscb017 scaleb -Infinity -2 -> -Infinity + +-- Next two are somewhat undefined in 754r; treat as non-integer +dqscb018 scaleb 10 Infinity -> NaN Invalid_operation +dqscb019 scaleb 10 -Infinity -> NaN Invalid_operation + +-- NaNs are undefined in 754r; assume usual processing +-- NaNs, 0 payload +dqscb021 scaleb NaN 1 -> NaN +dqscb022 scaleb -NaN -1 -> -NaN +dqscb023 scaleb sNaN 1 -> NaN Invalid_operation +dqscb024 scaleb -sNaN 1 -> -NaN Invalid_operation +dqscb025 scaleb 4 NaN -> NaN +dqscb026 scaleb -Inf -NaN -> -NaN +dqscb027 scaleb 4 sNaN -> NaN Invalid_operation +dqscb028 scaleb Inf -sNaN -> -NaN Invalid_operation + +-- non-integer RHS +dqscb030 scaleb 1.23 1 -> 12.3 +dqscb031 scaleb 1.23 1.00 -> NaN Invalid_operation +dqscb032 scaleb 1.23 1.1 -> NaN Invalid_operation +dqscb033 scaleb 1.23 1.01 -> NaN Invalid_operation +dqscb034 scaleb 1.23 0.01 -> NaN Invalid_operation +dqscb035 scaleb 1.23 0.11 -> NaN Invalid_operation +dqscb036 scaleb 1.23 0.999999999 -> NaN Invalid_operation +dqscb037 scaleb 1.23 -1 -> 0.123 +dqscb0614 scaleb 1.23 -1.00 -> NaN Invalid_operation +dqscb039 scaleb 1.23 -1.1 -> NaN Invalid_operation +dqscb040 scaleb 1.23 -1.01 -> NaN Invalid_operation +dqscb041 scaleb 1.23 -0.01 -> NaN Invalid_operation +dqscb042 scaleb 1.23 -0.11 -> NaN Invalid_operation +dqscb043 scaleb 1.23 -0.999999999 -> NaN Invalid_operation +dqscb044 scaleb 1.23 0.1 -> NaN Invalid_operation +dqscb045 scaleb 1.23 1E+1 -> NaN Invalid_operation +dqscb046 scaleb 1.23 1.1234E+6 -> NaN Invalid_operation +dqscb047 scaleb 1.23 1.123E+4 -> NaN Invalid_operation + +-- out-of range RHS +dqscb120 scaleb 1.23 12355 -> Infinity Overflow Inexact Rounded +dqscb121 scaleb 1.23 12356 -> Infinity Overflow Inexact Rounded +dqscb122 scaleb 1.23 12357 -> NaN Invalid_operation +dqscb123 scaleb 1.23 12358 -> NaN Invalid_operation +dqscb124 scaleb 1.23 -12355 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqscb125 scaleb 1.23 -12356 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqscb126 scaleb 1.23 -12357 -> NaN Invalid_operation +dqscb127 scaleb 1.23 -12358 -> NaN Invalid_operation + +-- NaNs, non-0 payload +-- propagating NaNs +dqscb861 scaleb NaN01 -Inf -> NaN1 +dqscb862 scaleb -NaN02 -1000 -> -NaN2 +dqscb863 scaleb NaN03 1000 -> NaN3 +dqscb864 scaleb NaN04 Inf -> NaN4 +dqscb865 scaleb NaN05 NaN61 -> NaN5 +dqscb866 scaleb -Inf -NaN71 -> -NaN71 +dqscb867 scaleb -1000 NaN81 -> NaN81 +dqscb868 scaleb 1000 NaN91 -> NaN91 +dqscb869 scaleb Inf NaN101 -> NaN101 +dqscb871 scaleb sNaN011 -Inf -> NaN11 Invalid_operation +dqscb872 scaleb sNaN012 -1000 -> NaN12 Invalid_operation +dqscb873 scaleb -sNaN013 1000 -> -NaN13 Invalid_operation +dqscb874 scaleb sNaN014 NaN171 -> NaN14 Invalid_operation +dqscb875 scaleb sNaN015 sNaN181 -> NaN15 Invalid_operation +dqscb876 scaleb NaN016 sNaN191 -> NaN191 Invalid_operation +dqscb877 scaleb -Inf sNaN201 -> NaN201 Invalid_operation +dqscb878 scaleb -1000 sNaN211 -> NaN211 Invalid_operation +dqscb879 scaleb 1000 -sNaN221 -> -NaN221 Invalid_operation +dqscb880 scaleb Inf sNaN231 -> NaN231 Invalid_operation +dqscb881 scaleb NaN025 sNaN241 -> NaN241 Invalid_operation + +-- finites +dqscb051 scaleb 7 -2 -> 0.07 +dqscb052 scaleb -7 -2 -> -0.07 +dqscb053 scaleb 75 -2 -> 0.75 +dqscb054 scaleb -75 -2 -> -0.75 +dqscb055 scaleb 7.50 -2 -> 0.0750 +dqscb056 scaleb -7.50 -2 -> -0.0750 +dqscb057 scaleb 7.500 -2 -> 0.07500 +dqscb058 scaleb -7.500 -2 -> -0.07500 +dqscb061 scaleb 7 -1 -> 0.7 +dqscb062 scaleb -7 -1 -> -0.7 +dqscb063 scaleb 75 -1 -> 7.5 +dqscb064 scaleb -75 -1 -> -7.5 +dqscb065 scaleb 7.50 -1 -> 0.750 +dqscb066 scaleb -7.50 -1 -> -0.750 +dqscb067 scaleb 7.500 -1 -> 0.7500 +dqscb068 scaleb -7.500 -1 -> -0.7500 +dqscb071 scaleb 7 0 -> 7 +dqscb072 scaleb -7 0 -> -7 +dqscb073 scaleb 75 0 -> 75 +dqscb074 scaleb -75 0 -> -75 +dqscb075 scaleb 7.50 0 -> 7.50 +dqscb076 scaleb -7.50 0 -> -7.50 +dqscb077 scaleb 7.500 0 -> 7.500 +dqscb078 scaleb -7.500 0 -> -7.500 +dqscb081 scaleb 7 1 -> 7E+1 +dqscb082 scaleb -7 1 -> -7E+1 +dqscb083 scaleb 75 1 -> 7.5E+2 +dqscb084 scaleb -75 1 -> -7.5E+2 +dqscb085 scaleb 7.50 1 -> 75.0 +dqscb086 scaleb -7.50 1 -> -75.0 +dqscb087 scaleb 7.500 1 -> 75.00 +dqscb088 scaleb -7.500 1 -> -75.00 +dqscb091 scaleb 7 2 -> 7E+2 +dqscb092 scaleb -7 2 -> -7E+2 +dqscb093 scaleb 75 2 -> 7.5E+3 +dqscb094 scaleb -75 2 -> -7.5E+3 +dqscb095 scaleb 7.50 2 -> 750 +dqscb096 scaleb -7.50 2 -> -750 +dqscb097 scaleb 7.500 2 -> 750.0 +dqscb098 scaleb -7.500 2 -> -750.0 + +-- zeros +dqscb111 scaleb 0 1 -> 0E+1 +dqscb112 scaleb -0 2 -> -0E+2 +dqscb113 scaleb 0E+4 3 -> 0E+7 +dqscb114 scaleb -0E+4 4 -> -0E+8 +dqscb115 scaleb 0.0000 5 -> 0E+1 +dqscb116 scaleb -0.0000 6 -> -0E+2 +dqscb117 scaleb 0E-141 7 -> 0E-134 +dqscb118 scaleb -0E-141 8 -> -0E-133 + +-- Nmax, Nmin, Ntiny +dqscb132 scaleb 9.999999999999999999999999999999999E+6144 +6144 -> Infinity Overflow Inexact Rounded +dqscb133 scaleb 9.999999999999999999999999999999999E+6144 +10 -> Infinity Overflow Inexact Rounded +dqscb134 scaleb 9.999999999999999999999999999999999E+6144 +1 -> Infinity Overflow Inexact Rounded +dqscb135 scaleb 9.999999999999999999999999999999999E+6144 0 -> 9.999999999999999999999999999999999E+6144 +dqscb136 scaleb 9.999999999999999999999999999999999E+6144 -1 -> 9.999999999999999999999999999999999E+6143 +dqscb137 scaleb 1E-6143 +1 -> 1E-6142 +dqscb1614 scaleb 1E-6143 -0 -> 1E-6143 +dqscb139 scaleb 1E-6143 -1 -> 1E-6144 Subnormal +dqscb140 scaleb 1.000000000000000000000000000000000E-6143 +1 -> 1.000000000000000000000000000000000E-6142 +dqscb141 scaleb 1.000000000000000000000000000000000E-6143 0 -> 1.000000000000000000000000000000000E-6143 +dqscb142 scaleb 1.000000000000000000000000000000000E-6143 -1 -> 1.00000000000000000000000000000000E-6144 Subnormal Rounded +dqscb143 scaleb 1E-6176 +1 -> 1E-6175 Subnormal +dqscb144 scaleb 1E-6176 -0 -> 1E-6176 Subnormal +dqscb145 scaleb 1E-6176 -1 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped + +dqscb150 scaleb -1E-6176 +1 -> -1E-6175 Subnormal +dqscb151 scaleb -1E-6176 -0 -> -1E-6176 Subnormal +dqscb152 scaleb -1E-6176 -1 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqscb153 scaleb -1.000000000000000000000000000000000E-6143 +1 -> -1.000000000000000000000000000000000E-6142 +dqscb154 scaleb -1.000000000000000000000000000000000E-6143 +0 -> -1.000000000000000000000000000000000E-6143 +dqscb155 scaleb -1.000000000000000000000000000000000E-6143 -1 -> -1.00000000000000000000000000000000E-6144 Subnormal Rounded +dqscb156 scaleb -1E-6143 +1 -> -1E-6142 +dqscb157 scaleb -1E-6143 -0 -> -1E-6143 +dqscb158 scaleb -1E-6143 -1 -> -1E-6144 Subnormal +dqscb159 scaleb -9.999999999999999999999999999999999E+6144 +1 -> -Infinity Overflow Inexact Rounded +dqscb160 scaleb -9.999999999999999999999999999999999E+6144 +0 -> -9.999999999999999999999999999999999E+6144 +dqscb161 scaleb -9.999999999999999999999999999999999E+6144 -1 -> -9.999999999999999999999999999999999E+6143 +dqscb162 scaleb -9E+6144 +1 -> -Infinity Overflow Inexact Rounded +dqscb163 scaleb -1E+6144 +1 -> -Infinity Overflow Inexact Rounded + +-- some Origami +-- (these check that overflow is being done correctly) +dqscb171 scaleb 1000E+6109 +1 -> 1.000E+6113 +dqscb172 scaleb 1000E+6110 +1 -> 1.000E+6114 +dqscb173 scaleb 1000E+6111 +1 -> 1.0000E+6115 Clamped +dqscb174 scaleb 1000E+6112 +1 -> 1.00000E+6116 Clamped +dqscb175 scaleb 1000E+6113 +1 -> 1.000000E+6117 Clamped +dqscb176 scaleb 1000E+6114 +1 -> 1.0000000E+6118 Clamped +dqscb177 scaleb 1000E+6131 +1 -> 1.000000000000000000000000E+6135 Clamped +dqscb178 scaleb 1000E+6132 +1 -> 1.0000000000000000000000000E+6136 Clamped +dqscb179 scaleb 1000E+6133 +1 -> 1.00000000000000000000000000E+6137 Clamped +dqscb180 scaleb 1000E+6134 +1 -> 1.000000000000000000000000000E+6138 Clamped +dqscb181 scaleb 1000E+6135 +1 -> 1.0000000000000000000000000000E+6139 Clamped +dqscb182 scaleb 1000E+6136 +1 -> 1.00000000000000000000000000000E+6140 Clamped +dqscb183 scaleb 1000E+6137 +1 -> 1.000000000000000000000000000000E+6141 Clamped +dqscb184 scaleb 1000E+6138 +1 -> 1.0000000000000000000000000000000E+6142 Clamped +dqscb185 scaleb 1000E+6139 +1 -> 1.00000000000000000000000000000000E+6143 Clamped +dqscb186 scaleb 1000E+6140 +1 -> 1.000000000000000000000000000000000E+6144 Clamped +dqscb187 scaleb 1000E+6141 +1 -> Infinity Overflow Inexact Rounded + +-- and a few more subnormal truncations +-- (these check that underflow is being done correctly) +dqscb221 scaleb 1.000000000000000000000000000000000E-6143 0 -> 1.000000000000000000000000000000000E-6143 +dqscb222 scaleb 1.000000000000000000000000000000000E-6143 -1 -> 1.00000000000000000000000000000000E-6144 Subnormal Rounded +dqscb223 scaleb 1.000000000000000000000000000000000E-6143 -2 -> 1.0000000000000000000000000000000E-6145 Subnormal Rounded +dqscb224 scaleb 1.000000000000000000000000000000000E-6143 -3 -> 1.000000000000000000000000000000E-6146 Subnormal Rounded +dqscb225 scaleb 1.000000000000000000000000000000000E-6143 -4 -> 1.00000000000000000000000000000E-6147 Subnormal Rounded +dqscb226 scaleb 1.000000000000000000000000000000000E-6143 -5 -> 1.0000000000000000000000000000E-6148 Subnormal Rounded +dqscb227 scaleb 1.000000000000000000000000000000000E-6143 -6 -> 1.000000000000000000000000000E-6149 Subnormal Rounded +dqscb228 scaleb 1.000000000000000000000000000000000E-6143 -7 -> 1.00000000000000000000000000E-6150 Subnormal Rounded +dqscb229 scaleb 1.000000000000000000000000000000000E-6143 -8 -> 1.0000000000000000000000000E-6151 Subnormal Rounded +dqscb230 scaleb 1.000000000000000000000000000000000E-6143 -9 -> 1.000000000000000000000000E-6152 Subnormal Rounded +dqscb231 scaleb 1.000000000000000000000000000000000E-6143 -10 -> 1.00000000000000000000000E-6153 Subnormal Rounded +dqscb232 scaleb 1.000000000000000000000000000000000E-6143 -11 -> 1.0000000000000000000000E-6154 Subnormal Rounded +dqscb233 scaleb 1.000000000000000000000000000000000E-6143 -12 -> 1.000000000000000000000E-6155 Subnormal Rounded +dqscb234 scaleb 1.000000000000000000000000000000000E-6143 -13 -> 1.00000000000000000000E-6156 Subnormal Rounded +dqscb235 scaleb 1.000000000000000000000000000000000E-6143 -14 -> 1.0000000000000000000E-6157 Subnormal Rounded +dqscb236 scaleb 1.000000000000000000000000000000000E-6143 -15 -> 1.000000000000000000E-6158 Subnormal Rounded +dqscb237 scaleb 1.000000000000000000000000000000000E-6143 -16 -> 1.00000000000000000E-6159 Subnormal Rounded +dqscb238 scaleb 1.000000000000000000000000000000000E-6143 -17 -> 1.0000000000000000E-6160 Subnormal Rounded +dqscb239 scaleb 1.000000000000000000000000000000000E-6143 -18 -> 1.000000000000000E-6161 Subnormal Rounded +dqscb202 scaleb 1.000000000000000000000000000000000E-6143 -19 -> 1.00000000000000E-6162 Subnormal Rounded +dqscb203 scaleb 1.000000000000000000000000000000000E-6143 -20 -> 1.0000000000000E-6163 Subnormal Rounded +dqscb204 scaleb 1.000000000000000000000000000000000E-6143 -21 -> 1.000000000000E-6164 Subnormal Rounded +dqscb205 scaleb 1.000000000000000000000000000000000E-6143 -22 -> 1.00000000000E-6165 Subnormal Rounded +dqscb206 scaleb 1.000000000000000000000000000000000E-6143 -23 -> 1.0000000000E-6166 Subnormal Rounded +dqscb207 scaleb 1.000000000000000000000000000000000E-6143 -24 -> 1.000000000E-6167 Subnormal Rounded +dqscb208 scaleb 1.000000000000000000000000000000000E-6143 -25 -> 1.00000000E-6168 Subnormal Rounded +dqscb209 scaleb 1.000000000000000000000000000000000E-6143 -26 -> 1.0000000E-6169 Subnormal Rounded +dqscb210 scaleb 1.000000000000000000000000000000000E-6143 -27 -> 1.000000E-6170 Subnormal Rounded +dqscb211 scaleb 1.000000000000000000000000000000000E-6143 -28 -> 1.00000E-6171 Subnormal Rounded +dqscb212 scaleb 1.000000000000000000000000000000000E-6143 -29 -> 1.0000E-6172 Subnormal Rounded +dqscb213 scaleb 1.000000000000000000000000000000000E-6143 -30 -> 1.000E-6173 Subnormal Rounded +dqscb214 scaleb 1.000000000000000000000000000000000E-6143 -31 -> 1.00E-6174 Subnormal Rounded +dqscb215 scaleb 1.000000000000000000000000000000000E-6143 -32 -> 1.0E-6175 Subnormal Rounded +dqscb216 scaleb 1.000000000000000000000000000000000E-6143 -33 -> 1E-6176 Subnormal Rounded +dqscb217 scaleb 1.000000000000000000000000000000000E-6143 -34 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped +dqscb218 scaleb 1.000000000000000000000000000000000E-6143 -35 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped diff --git a/Lib/test/decimaltestdata/dqShift.decTest b/Lib/test/decimaltestdata/dqShift.decTest index 4ee836eb48..6d69213455 100644 --- a/Lib/test/decimaltestdata/dqShift.decTest +++ b/Lib/test/decimaltestdata/dqShift.decTest @@ -1,298 +1,298 @@ -------------------------------------------------------------------------
--- dqShift.decTest -- shift decQuad coefficient left or right --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
--- Sanity check
-dqshi001 shift 0 0 -> 0
-dqshi002 shift 0 2 -> 0
-dqshi003 shift 1 2 -> 100
-dqshi004 shift 1 33 -> 1000000000000000000000000000000000
-dqshi005 shift 1 34 -> 0
-dqshi006 shift 1 -1 -> 0
-dqshi007 shift 0 -2 -> 0
-dqshi008 shift 1234567890123456789012345678901234 -1 -> 123456789012345678901234567890123
-dqshi009 shift 1234567890123456789012345678901234 -33 -> 1
-dqshi010 shift 1234567890123456789012345678901234 -34 -> 0
-dqshi011 shift 9934567890123456789012345678901234 -33 -> 9
-dqshi012 shift 9934567890123456789012345678901234 -34 -> 0
-
--- rhs must be an integer
-dqshi015 shift 1 1.5 -> NaN Invalid_operation
-dqshi016 shift 1 1.0 -> NaN Invalid_operation
-dqshi017 shift 1 0.1 -> NaN Invalid_operation
-dqshi018 shift 1 0.0 -> NaN Invalid_operation
-dqshi019 shift 1 1E+1 -> NaN Invalid_operation
-dqshi020 shift 1 1E+99 -> NaN Invalid_operation
-dqshi021 shift 1 Inf -> NaN Invalid_operation
-dqshi022 shift 1 -Inf -> NaN Invalid_operation
--- and |rhs| <= precision
-dqshi025 shift 1 -1000 -> NaN Invalid_operation
-dqshi026 shift 1 -35 -> NaN Invalid_operation
-dqshi027 shift 1 35 -> NaN Invalid_operation
-dqshi028 shift 1 1000 -> NaN Invalid_operation
-
--- full shifting pattern
-dqshi030 shift 1234567890123456789012345678901234 -34 -> 0
-dqshi031 shift 1234567890123456789012345678901234 -33 -> 1
-dqshi032 shift 1234567890123456789012345678901234 -32 -> 12
-dqshi033 shift 1234567890123456789012345678901234 -31 -> 123
-dqshi034 shift 1234567890123456789012345678901234 -30 -> 1234
-dqshi035 shift 1234567890123456789012345678901234 -29 -> 12345
-dqshi036 shift 1234567890123456789012345678901234 -28 -> 123456
-dqshi037 shift 1234567890123456789012345678901234 -27 -> 1234567
-dqshi038 shift 1234567890123456789012345678901234 -26 -> 12345678
-dqshi039 shift 1234567890123456789012345678901234 -25 -> 123456789
-dqshi040 shift 1234567890123456789012345678901234 -24 -> 1234567890
-dqshi041 shift 1234567890123456789012345678901234 -23 -> 12345678901
-dqshi042 shift 1234567890123456789012345678901234 -22 -> 123456789012
-dqshi043 shift 1234567890123456789012345678901234 -21 -> 1234567890123
-dqshi044 shift 1234567890123456789012345678901234 -20 -> 12345678901234
-dqshi045 shift 1234567890123456789012345678901234 -19 -> 123456789012345
-dqshi047 shift 1234567890123456789012345678901234 -18 -> 1234567890123456
-dqshi048 shift 1234567890123456789012345678901234 -17 -> 12345678901234567
-dqshi049 shift 1234567890123456789012345678901234 -16 -> 123456789012345678
-dqshi050 shift 1234567890123456789012345678901234 -15 -> 1234567890123456789
-dqshi051 shift 1234567890123456789012345678901234 -14 -> 12345678901234567890
-dqshi052 shift 1234567890123456789012345678901234 -13 -> 123456789012345678901
-dqshi053 shift 1234567890123456789012345678901234 -12 -> 1234567890123456789012
-dqshi054 shift 1234567890123456789012345678901234 -11 -> 12345678901234567890123
-dqshi055 shift 1234567890123456789012345678901234 -10 -> 123456789012345678901234
-dqshi056 shift 1234567890123456789012345678901234 -9 -> 1234567890123456789012345
-dqshi057 shift 1234567890123456789012345678901234 -8 -> 12345678901234567890123456
-dqshi058 shift 1234567890123456789012345678901234 -7 -> 123456789012345678901234567
-dqshi059 shift 1234567890123456789012345678901234 -6 -> 1234567890123456789012345678
-dqshi060 shift 1234567890123456789012345678901234 -5 -> 12345678901234567890123456789
-dqshi061 shift 1234567890123456789012345678901234 -4 -> 123456789012345678901234567890
-dqshi062 shift 1234567890123456789012345678901234 -3 -> 1234567890123456789012345678901
-dqshi063 shift 1234567890123456789012345678901234 -2 -> 12345678901234567890123456789012
-dqshi064 shift 1234567890123456789012345678901234 -1 -> 123456789012345678901234567890123
-dqshi065 shift 1234567890123456789012345678901234 -0 -> 1234567890123456789012345678901234
-
-dqshi066 shift 1234567890123456789012345678901234 +0 -> 1234567890123456789012345678901234
-dqshi067 shift 1234567890123456789012345678901234 +1 -> 2345678901234567890123456789012340
-dqshi068 shift 1234567890123456789012345678901234 +2 -> 3456789012345678901234567890123400
-dqshi069 shift 1234567890123456789012345678901234 +3 -> 4567890123456789012345678901234000
-dqshi070 shift 1234567890123456789012345678901234 +4 -> 5678901234567890123456789012340000
-dqshi071 shift 1234567890123456789012345678901234 +5 -> 6789012345678901234567890123400000
-dqshi072 shift 1234567890123456789012345678901234 +6 -> 7890123456789012345678901234000000
-dqshi073 shift 1234567890123456789012345678901234 +7 -> 8901234567890123456789012340000000
-dqshi074 shift 1234567890123456789012345678901234 +8 -> 9012345678901234567890123400000000
-dqshi075 shift 1234567890123456789012345678901234 +9 -> 123456789012345678901234000000000
-dqshi076 shift 1234567890123456789012345678901234 +10 -> 1234567890123456789012340000000000
-dqshi077 shift 1234567890123456789012345678901234 +11 -> 2345678901234567890123400000000000
-dqshi078 shift 1234567890123456789012345678901234 +12 -> 3456789012345678901234000000000000
-dqshi079 shift 1234567890123456789012345678901234 +13 -> 4567890123456789012340000000000000
-dqshi080 shift 1234567890123456789012345678901234 +14 -> 5678901234567890123400000000000000
-dqshi081 shift 1234567890123456789012345678901234 +15 -> 6789012345678901234000000000000000
-dqshi082 shift 1234567890123456789012345678901234 +16 -> 7890123456789012340000000000000000
-dqshi083 shift 1234567890123456789012345678901234 +17 -> 8901234567890123400000000000000000
-dqshi084 shift 1234567890123456789012345678901234 +18 -> 9012345678901234000000000000000000
-dqshi085 shift 1234567890123456789012345678901234 +19 -> 123456789012340000000000000000000
-dqshi086 shift 1234567890123456789012345678901234 +20 -> 1234567890123400000000000000000000
-dqshi087 shift 1234567890123456789012345678901234 +21 -> 2345678901234000000000000000000000
-dqshi088 shift 1234567890123456789012345678901234 +22 -> 3456789012340000000000000000000000
-dqshi089 shift 1234567890123456789012345678901234 +23 -> 4567890123400000000000000000000000
-dqshi090 shift 1234567890123456789012345678901234 +24 -> 5678901234000000000000000000000000
-dqshi091 shift 1234567890123456789012345678901234 +25 -> 6789012340000000000000000000000000
-dqshi092 shift 1234567890123456789012345678901234 +26 -> 7890123400000000000000000000000000
-dqshi093 shift 1234567890123456789012345678901234 +27 -> 8901234000000000000000000000000000
-dqshi094 shift 1234567890123456789012345678901234 +28 -> 9012340000000000000000000000000000
-dqshi095 shift 1234567890123456789012345678901234 +29 -> 123400000000000000000000000000000
-dqshi096 shift 1234567890123456789012345678901234 +30 -> 1234000000000000000000000000000000
-dqshi097 shift 1234567890123456789012345678901234 +31 -> 2340000000000000000000000000000000
-dqshi098 shift 1234567890123456789012345678901234 +32 -> 3400000000000000000000000000000000
-dqshi099 shift 1234567890123456789012345678901234 +33 -> 4000000000000000000000000000000000
-dqshi100 shift 1234567890123456789012345678901234 +34 -> 0
-
--- zeros
-dqshi270 shift 0E-10 +29 -> 0E-10
-dqshi271 shift 0E-10 -29 -> 0E-10
-dqshi272 shift 0.000 +29 -> 0.000
-dqshi273 shift 0.000 -29 -> 0.000
-dqshi274 shift 0E+10 +29 -> 0E+10
-dqshi275 shift 0E+10 -29 -> 0E+10
-dqshi276 shift -0E-10 +29 -> -0E-10
-dqshi277 shift -0E-10 -29 -> -0E-10
-dqshi278 shift -0.000 +29 -> -0.000
-dqshi279 shift -0.000 -29 -> -0.000
-dqshi280 shift -0E+10 +29 -> -0E+10
-dqshi281 shift -0E+10 -29 -> -0E+10
-
--- Nmax, Nmin, Ntiny
-dqshi141 shift 9.999999999999999999999999999999999E+6144 -1 -> 9.99999999999999999999999999999999E+6143
-dqshi142 shift 9.999999999999999999999999999999999E+6144 -33 -> 9E+6111
-dqshi143 shift 9.999999999999999999999999999999999E+6144 1 -> 9.999999999999999999999999999999990E+6144
-dqshi144 shift 9.999999999999999999999999999999999E+6144 33 -> 9.000000000000000000000000000000000E+6144
-dqshi145 shift 1E-6143 -1 -> 0E-6143
-dqshi146 shift 1E-6143 -33 -> 0E-6143
-dqshi147 shift 1E-6143 1 -> 1.0E-6142
-dqshi148 shift 1E-6143 33 -> 1.000000000000000000000000000000000E-6110
-dqshi151 shift 1.000000000000000000000000000000000E-6143 -1 -> 1.00000000000000000000000000000000E-6144
-dqshi152 shift 1.000000000000000000000000000000000E-6143 -33 -> 1E-6176
-dqshi153 shift 1.000000000000000000000000000000000E-6143 1 -> 0E-6176
-dqshi154 shift 1.000000000000000000000000000000000E-6143 33 -> 0E-6176
-dqshi155 shift 9.000000000000000000000000000000000E-6143 -1 -> 9.00000000000000000000000000000000E-6144
-dqshi156 shift 9.000000000000000000000000000000000E-6143 -33 -> 9E-6176
-dqshi157 shift 9.000000000000000000000000000000000E-6143 1 -> 0E-6176
-dqshi158 shift 9.000000000000000000000000000000000E-6143 33 -> 0E-6176
-dqshi160 shift 1E-6176 -1 -> 0E-6176
-dqshi161 shift 1E-6176 -33 -> 0E-6176
-dqshi162 shift 1E-6176 1 -> 1.0E-6175
-dqshi163 shift 1E-6176 33 -> 1.000000000000000000000000000000000E-6143
--- negatives
-dqshi171 shift -9.999999999999999999999999999999999E+6144 -1 -> -9.99999999999999999999999999999999E+6143
-dqshi172 shift -9.999999999999999999999999999999999E+6144 -33 -> -9E+6111
-dqshi173 shift -9.999999999999999999999999999999999E+6144 1 -> -9.999999999999999999999999999999990E+6144
-dqshi174 shift -9.999999999999999999999999999999999E+6144 33 -> -9.000000000000000000000000000000000E+6144
-dqshi175 shift -1E-6143 -1 -> -0E-6143
-dqshi176 shift -1E-6143 -33 -> -0E-6143
-dqshi177 shift -1E-6143 1 -> -1.0E-6142
-dqshi178 shift -1E-6143 33 -> -1.000000000000000000000000000000000E-6110
-dqshi181 shift -1.000000000000000000000000000000000E-6143 -1 -> -1.00000000000000000000000000000000E-6144
-dqshi182 shift -1.000000000000000000000000000000000E-6143 -33 -> -1E-6176
-dqshi183 shift -1.000000000000000000000000000000000E-6143 1 -> -0E-6176
-dqshi184 shift -1.000000000000000000000000000000000E-6143 33 -> -0E-6176
-dqshi185 shift -9.000000000000000000000000000000000E-6143 -1 -> -9.00000000000000000000000000000000E-6144
-dqshi186 shift -9.000000000000000000000000000000000E-6143 -33 -> -9E-6176
-dqshi187 shift -9.000000000000000000000000000000000E-6143 1 -> -0E-6176
-dqshi188 shift -9.000000000000000000000000000000000E-6143 33 -> -0E-6176
-dqshi190 shift -1E-6176 -1 -> -0E-6176
-dqshi191 shift -1E-6176 -33 -> -0E-6176
-dqshi192 shift -1E-6176 1 -> -1.0E-6175
-dqshi193 shift -1E-6176 33 -> -1.000000000000000000000000000000000E-6143
-
--- more negatives (of sanities)
-dqshi201 shift -0 0 -> -0
-dqshi202 shift -0 2 -> -0
-dqshi203 shift -1 2 -> -100
-dqshi204 shift -1 33 -> -1000000000000000000000000000000000
-dqshi205 shift -1 34 -> -0
-dqshi206 shift -1 -1 -> -0
-dqshi207 shift -0 -2 -> -0
-dqshi208 shift -1234567890123456789012345678901234 -1 -> -123456789012345678901234567890123
-dqshi209 shift -1234567890123456789012345678901234 -33 -> -1
-dqshi210 shift -1234567890123456789012345678901234 -34 -> -0
-dqshi211 shift -9934567890123456789012345678901234 -33 -> -9
-dqshi212 shift -9934567890123456789012345678901234 -34 -> -0
-
-
--- Specials; NaNs are handled as usual
-dqshi781 shift -Inf -8 -> -Infinity
-dqshi782 shift -Inf -1 -> -Infinity
-dqshi783 shift -Inf -0 -> -Infinity
-dqshi784 shift -Inf 0 -> -Infinity
-dqshi785 shift -Inf 1 -> -Infinity
-dqshi786 shift -Inf 8 -> -Infinity
-dqshi787 shift -1000 -Inf -> NaN Invalid_operation
-dqshi788 shift -Inf -Inf -> NaN Invalid_operation
-dqshi789 shift -1 -Inf -> NaN Invalid_operation
-dqshi790 shift -0 -Inf -> NaN Invalid_operation
-dqshi791 shift 0 -Inf -> NaN Invalid_operation
-dqshi792 shift 1 -Inf -> NaN Invalid_operation
-dqshi793 shift 1000 -Inf -> NaN Invalid_operation
-dqshi794 shift Inf -Inf -> NaN Invalid_operation
-
-dqshi800 shift Inf -Inf -> NaN Invalid_operation
-dqshi801 shift Inf -8 -> Infinity
-dqshi802 shift Inf -1 -> Infinity
-dqshi803 shift Inf -0 -> Infinity
-dqshi804 shift Inf 0 -> Infinity
-dqshi805 shift Inf 1 -> Infinity
-dqshi806 shift Inf 8 -> Infinity
-dqshi807 shift Inf Inf -> NaN Invalid_operation
-dqshi808 shift -1000 Inf -> NaN Invalid_operation
-dqshi809 shift -Inf Inf -> NaN Invalid_operation
-dqshi810 shift -1 Inf -> NaN Invalid_operation
-dqshi811 shift -0 Inf -> NaN Invalid_operation
-dqshi812 shift 0 Inf -> NaN Invalid_operation
-dqshi813 shift 1 Inf -> NaN Invalid_operation
-dqshi814 shift 1000 Inf -> NaN Invalid_operation
-dqshi815 shift Inf Inf -> NaN Invalid_operation
-
-dqshi821 shift NaN -Inf -> NaN
-dqshi822 shift NaN -1000 -> NaN
-dqshi823 shift NaN -1 -> NaN
-dqshi824 shift NaN -0 -> NaN
-dqshi825 shift NaN 0 -> NaN
-dqshi826 shift NaN 1 -> NaN
-dqshi827 shift NaN 1000 -> NaN
-dqshi828 shift NaN Inf -> NaN
-dqshi829 shift NaN NaN -> NaN
-dqshi830 shift -Inf NaN -> NaN
-dqshi831 shift -1000 NaN -> NaN
-dqshi832 shift -1 NaN -> NaN
-dqshi833 shift -0 NaN -> NaN
-dqshi834 shift 0 NaN -> NaN
-dqshi835 shift 1 NaN -> NaN
-dqshi836 shift 1000 NaN -> NaN
-dqshi837 shift Inf NaN -> NaN
-
-dqshi841 shift sNaN -Inf -> NaN Invalid_operation
-dqshi842 shift sNaN -1000 -> NaN Invalid_operation
-dqshi843 shift sNaN -1 -> NaN Invalid_operation
-dqshi844 shift sNaN -0 -> NaN Invalid_operation
-dqshi845 shift sNaN 0 -> NaN Invalid_operation
-dqshi846 shift sNaN 1 -> NaN Invalid_operation
-dqshi847 shift sNaN 1000 -> NaN Invalid_operation
-dqshi848 shift sNaN NaN -> NaN Invalid_operation
-dqshi849 shift sNaN sNaN -> NaN Invalid_operation
-dqshi850 shift NaN sNaN -> NaN Invalid_operation
-dqshi851 shift -Inf sNaN -> NaN Invalid_operation
-dqshi852 shift -1000 sNaN -> NaN Invalid_operation
-dqshi853 shift -1 sNaN -> NaN Invalid_operation
-dqshi854 shift -0 sNaN -> NaN Invalid_operation
-dqshi855 shift 0 sNaN -> NaN Invalid_operation
-dqshi856 shift 1 sNaN -> NaN Invalid_operation
-dqshi857 shift 1000 sNaN -> NaN Invalid_operation
-dqshi858 shift Inf sNaN -> NaN Invalid_operation
-dqshi859 shift NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-dqshi861 shift NaN1 -Inf -> NaN1
-dqshi862 shift +NaN2 -1000 -> NaN2
-dqshi863 shift NaN3 1000 -> NaN3
-dqshi864 shift NaN4 Inf -> NaN4
-dqshi865 shift NaN5 +NaN6 -> NaN5
-dqshi866 shift -Inf NaN7 -> NaN7
-dqshi867 shift -1000 NaN8 -> NaN8
-dqshi868 shift 1000 NaN9 -> NaN9
-dqshi869 shift Inf +NaN10 -> NaN10
-dqshi871 shift sNaN11 -Inf -> NaN11 Invalid_operation
-dqshi872 shift sNaN12 -1000 -> NaN12 Invalid_operation
-dqshi873 shift sNaN13 1000 -> NaN13 Invalid_operation
-dqshi874 shift sNaN14 NaN17 -> NaN14 Invalid_operation
-dqshi875 shift sNaN15 sNaN18 -> NaN15 Invalid_operation
-dqshi876 shift NaN16 sNaN19 -> NaN19 Invalid_operation
-dqshi877 shift -Inf +sNaN20 -> NaN20 Invalid_operation
-dqshi878 shift -1000 sNaN21 -> NaN21 Invalid_operation
-dqshi879 shift 1000 sNaN22 -> NaN22 Invalid_operation
-dqshi880 shift Inf sNaN23 -> NaN23 Invalid_operation
-dqshi881 shift +NaN25 +sNaN24 -> NaN24 Invalid_operation
-dqshi882 shift -NaN26 NaN28 -> -NaN26
-dqshi883 shift -sNaN27 sNaN29 -> -NaN27 Invalid_operation
-dqshi884 shift 1000 -NaN30 -> -NaN30
-dqshi885 shift 1000 -sNaN31 -> -NaN31 Invalid_operation
+------------------------------------------------------------------------ +-- dqShift.decTest -- shift decQuad coefficient left or right -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +-- Sanity check +dqshi001 shift 0 0 -> 0 +dqshi002 shift 0 2 -> 0 +dqshi003 shift 1 2 -> 100 +dqshi004 shift 1 33 -> 1000000000000000000000000000000000 +dqshi005 shift 1 34 -> 0 +dqshi006 shift 1 -1 -> 0 +dqshi007 shift 0 -2 -> 0 +dqshi008 shift 1234567890123456789012345678901234 -1 -> 123456789012345678901234567890123 +dqshi009 shift 1234567890123456789012345678901234 -33 -> 1 +dqshi010 shift 1234567890123456789012345678901234 -34 -> 0 +dqshi011 shift 9934567890123456789012345678901234 -33 -> 9 +dqshi012 shift 9934567890123456789012345678901234 -34 -> 0 + +-- rhs must be an integer +dqshi015 shift 1 1.5 -> NaN Invalid_operation +dqshi016 shift 1 1.0 -> NaN Invalid_operation +dqshi017 shift 1 0.1 -> NaN Invalid_operation +dqshi018 shift 1 0.0 -> NaN Invalid_operation +dqshi019 shift 1 1E+1 -> NaN Invalid_operation +dqshi020 shift 1 1E+99 -> NaN Invalid_operation +dqshi021 shift 1 Inf -> NaN Invalid_operation +dqshi022 shift 1 -Inf -> NaN Invalid_operation +-- and |rhs| <= precision +dqshi025 shift 1 -1000 -> NaN Invalid_operation +dqshi026 shift 1 -35 -> NaN Invalid_operation +dqshi027 shift 1 35 -> NaN Invalid_operation +dqshi028 shift 1 1000 -> NaN Invalid_operation + +-- full shifting pattern +dqshi030 shift 1234567890123456789012345678901234 -34 -> 0 +dqshi031 shift 1234567890123456789012345678901234 -33 -> 1 +dqshi032 shift 1234567890123456789012345678901234 -32 -> 12 +dqshi033 shift 1234567890123456789012345678901234 -31 -> 123 +dqshi034 shift 1234567890123456789012345678901234 -30 -> 1234 +dqshi035 shift 1234567890123456789012345678901234 -29 -> 12345 +dqshi036 shift 1234567890123456789012345678901234 -28 -> 123456 +dqshi037 shift 1234567890123456789012345678901234 -27 -> 1234567 +dqshi038 shift 1234567890123456789012345678901234 -26 -> 12345678 +dqshi039 shift 1234567890123456789012345678901234 -25 -> 123456789 +dqshi040 shift 1234567890123456789012345678901234 -24 -> 1234567890 +dqshi041 shift 1234567890123456789012345678901234 -23 -> 12345678901 +dqshi042 shift 1234567890123456789012345678901234 -22 -> 123456789012 +dqshi043 shift 1234567890123456789012345678901234 -21 -> 1234567890123 +dqshi044 shift 1234567890123456789012345678901234 -20 -> 12345678901234 +dqshi045 shift 1234567890123456789012345678901234 -19 -> 123456789012345 +dqshi047 shift 1234567890123456789012345678901234 -18 -> 1234567890123456 +dqshi048 shift 1234567890123456789012345678901234 -17 -> 12345678901234567 +dqshi049 shift 1234567890123456789012345678901234 -16 -> 123456789012345678 +dqshi050 shift 1234567890123456789012345678901234 -15 -> 1234567890123456789 +dqshi051 shift 1234567890123456789012345678901234 -14 -> 12345678901234567890 +dqshi052 shift 1234567890123456789012345678901234 -13 -> 123456789012345678901 +dqshi053 shift 1234567890123456789012345678901234 -12 -> 1234567890123456789012 +dqshi054 shift 1234567890123456789012345678901234 -11 -> 12345678901234567890123 +dqshi055 shift 1234567890123456789012345678901234 -10 -> 123456789012345678901234 +dqshi056 shift 1234567890123456789012345678901234 -9 -> 1234567890123456789012345 +dqshi057 shift 1234567890123456789012345678901234 -8 -> 12345678901234567890123456 +dqshi058 shift 1234567890123456789012345678901234 -7 -> 123456789012345678901234567 +dqshi059 shift 1234567890123456789012345678901234 -6 -> 1234567890123456789012345678 +dqshi060 shift 1234567890123456789012345678901234 -5 -> 12345678901234567890123456789 +dqshi061 shift 1234567890123456789012345678901234 -4 -> 123456789012345678901234567890 +dqshi062 shift 1234567890123456789012345678901234 -3 -> 1234567890123456789012345678901 +dqshi063 shift 1234567890123456789012345678901234 -2 -> 12345678901234567890123456789012 +dqshi064 shift 1234567890123456789012345678901234 -1 -> 123456789012345678901234567890123 +dqshi065 shift 1234567890123456789012345678901234 -0 -> 1234567890123456789012345678901234 + +dqshi066 shift 1234567890123456789012345678901234 +0 -> 1234567890123456789012345678901234 +dqshi067 shift 1234567890123456789012345678901234 +1 -> 2345678901234567890123456789012340 +dqshi068 shift 1234567890123456789012345678901234 +2 -> 3456789012345678901234567890123400 +dqshi069 shift 1234567890123456789012345678901234 +3 -> 4567890123456789012345678901234000 +dqshi070 shift 1234567890123456789012345678901234 +4 -> 5678901234567890123456789012340000 +dqshi071 shift 1234567890123456789012345678901234 +5 -> 6789012345678901234567890123400000 +dqshi072 shift 1234567890123456789012345678901234 +6 -> 7890123456789012345678901234000000 +dqshi073 shift 1234567890123456789012345678901234 +7 -> 8901234567890123456789012340000000 +dqshi074 shift 1234567890123456789012345678901234 +8 -> 9012345678901234567890123400000000 +dqshi075 shift 1234567890123456789012345678901234 +9 -> 123456789012345678901234000000000 +dqshi076 shift 1234567890123456789012345678901234 +10 -> 1234567890123456789012340000000000 +dqshi077 shift 1234567890123456789012345678901234 +11 -> 2345678901234567890123400000000000 +dqshi078 shift 1234567890123456789012345678901234 +12 -> 3456789012345678901234000000000000 +dqshi079 shift 1234567890123456789012345678901234 +13 -> 4567890123456789012340000000000000 +dqshi080 shift 1234567890123456789012345678901234 +14 -> 5678901234567890123400000000000000 +dqshi081 shift 1234567890123456789012345678901234 +15 -> 6789012345678901234000000000000000 +dqshi082 shift 1234567890123456789012345678901234 +16 -> 7890123456789012340000000000000000 +dqshi083 shift 1234567890123456789012345678901234 +17 -> 8901234567890123400000000000000000 +dqshi084 shift 1234567890123456789012345678901234 +18 -> 9012345678901234000000000000000000 +dqshi085 shift 1234567890123456789012345678901234 +19 -> 123456789012340000000000000000000 +dqshi086 shift 1234567890123456789012345678901234 +20 -> 1234567890123400000000000000000000 +dqshi087 shift 1234567890123456789012345678901234 +21 -> 2345678901234000000000000000000000 +dqshi088 shift 1234567890123456789012345678901234 +22 -> 3456789012340000000000000000000000 +dqshi089 shift 1234567890123456789012345678901234 +23 -> 4567890123400000000000000000000000 +dqshi090 shift 1234567890123456789012345678901234 +24 -> 5678901234000000000000000000000000 +dqshi091 shift 1234567890123456789012345678901234 +25 -> 6789012340000000000000000000000000 +dqshi092 shift 1234567890123456789012345678901234 +26 -> 7890123400000000000000000000000000 +dqshi093 shift 1234567890123456789012345678901234 +27 -> 8901234000000000000000000000000000 +dqshi094 shift 1234567890123456789012345678901234 +28 -> 9012340000000000000000000000000000 +dqshi095 shift 1234567890123456789012345678901234 +29 -> 123400000000000000000000000000000 +dqshi096 shift 1234567890123456789012345678901234 +30 -> 1234000000000000000000000000000000 +dqshi097 shift 1234567890123456789012345678901234 +31 -> 2340000000000000000000000000000000 +dqshi098 shift 1234567890123456789012345678901234 +32 -> 3400000000000000000000000000000000 +dqshi099 shift 1234567890123456789012345678901234 +33 -> 4000000000000000000000000000000000 +dqshi100 shift 1234567890123456789012345678901234 +34 -> 0 + +-- zeros +dqshi270 shift 0E-10 +29 -> 0E-10 +dqshi271 shift 0E-10 -29 -> 0E-10 +dqshi272 shift 0.000 +29 -> 0.000 +dqshi273 shift 0.000 -29 -> 0.000 +dqshi274 shift 0E+10 +29 -> 0E+10 +dqshi275 shift 0E+10 -29 -> 0E+10 +dqshi276 shift -0E-10 +29 -> -0E-10 +dqshi277 shift -0E-10 -29 -> -0E-10 +dqshi278 shift -0.000 +29 -> -0.000 +dqshi279 shift -0.000 -29 -> -0.000 +dqshi280 shift -0E+10 +29 -> -0E+10 +dqshi281 shift -0E+10 -29 -> -0E+10 + +-- Nmax, Nmin, Ntiny +dqshi141 shift 9.999999999999999999999999999999999E+6144 -1 -> 9.99999999999999999999999999999999E+6143 +dqshi142 shift 9.999999999999999999999999999999999E+6144 -33 -> 9E+6111 +dqshi143 shift 9.999999999999999999999999999999999E+6144 1 -> 9.999999999999999999999999999999990E+6144 +dqshi144 shift 9.999999999999999999999999999999999E+6144 33 -> 9.000000000000000000000000000000000E+6144 +dqshi145 shift 1E-6143 -1 -> 0E-6143 +dqshi146 shift 1E-6143 -33 -> 0E-6143 +dqshi147 shift 1E-6143 1 -> 1.0E-6142 +dqshi148 shift 1E-6143 33 -> 1.000000000000000000000000000000000E-6110 +dqshi151 shift 1.000000000000000000000000000000000E-6143 -1 -> 1.00000000000000000000000000000000E-6144 +dqshi152 shift 1.000000000000000000000000000000000E-6143 -33 -> 1E-6176 +dqshi153 shift 1.000000000000000000000000000000000E-6143 1 -> 0E-6176 +dqshi154 shift 1.000000000000000000000000000000000E-6143 33 -> 0E-6176 +dqshi155 shift 9.000000000000000000000000000000000E-6143 -1 -> 9.00000000000000000000000000000000E-6144 +dqshi156 shift 9.000000000000000000000000000000000E-6143 -33 -> 9E-6176 +dqshi157 shift 9.000000000000000000000000000000000E-6143 1 -> 0E-6176 +dqshi158 shift 9.000000000000000000000000000000000E-6143 33 -> 0E-6176 +dqshi160 shift 1E-6176 -1 -> 0E-6176 +dqshi161 shift 1E-6176 -33 -> 0E-6176 +dqshi162 shift 1E-6176 1 -> 1.0E-6175 +dqshi163 shift 1E-6176 33 -> 1.000000000000000000000000000000000E-6143 +-- negatives +dqshi171 shift -9.999999999999999999999999999999999E+6144 -1 -> -9.99999999999999999999999999999999E+6143 +dqshi172 shift -9.999999999999999999999999999999999E+6144 -33 -> -9E+6111 +dqshi173 shift -9.999999999999999999999999999999999E+6144 1 -> -9.999999999999999999999999999999990E+6144 +dqshi174 shift -9.999999999999999999999999999999999E+6144 33 -> -9.000000000000000000000000000000000E+6144 +dqshi175 shift -1E-6143 -1 -> -0E-6143 +dqshi176 shift -1E-6143 -33 -> -0E-6143 +dqshi177 shift -1E-6143 1 -> -1.0E-6142 +dqshi178 shift -1E-6143 33 -> -1.000000000000000000000000000000000E-6110 +dqshi181 shift -1.000000000000000000000000000000000E-6143 -1 -> -1.00000000000000000000000000000000E-6144 +dqshi182 shift -1.000000000000000000000000000000000E-6143 -33 -> -1E-6176 +dqshi183 shift -1.000000000000000000000000000000000E-6143 1 -> -0E-6176 +dqshi184 shift -1.000000000000000000000000000000000E-6143 33 -> -0E-6176 +dqshi185 shift -9.000000000000000000000000000000000E-6143 -1 -> -9.00000000000000000000000000000000E-6144 +dqshi186 shift -9.000000000000000000000000000000000E-6143 -33 -> -9E-6176 +dqshi187 shift -9.000000000000000000000000000000000E-6143 1 -> -0E-6176 +dqshi188 shift -9.000000000000000000000000000000000E-6143 33 -> -0E-6176 +dqshi190 shift -1E-6176 -1 -> -0E-6176 +dqshi191 shift -1E-6176 -33 -> -0E-6176 +dqshi192 shift -1E-6176 1 -> -1.0E-6175 +dqshi193 shift -1E-6176 33 -> -1.000000000000000000000000000000000E-6143 + +-- more negatives (of sanities) +dqshi201 shift -0 0 -> -0 +dqshi202 shift -0 2 -> -0 +dqshi203 shift -1 2 -> -100 +dqshi204 shift -1 33 -> -1000000000000000000000000000000000 +dqshi205 shift -1 34 -> -0 +dqshi206 shift -1 -1 -> -0 +dqshi207 shift -0 -2 -> -0 +dqshi208 shift -1234567890123456789012345678901234 -1 -> -123456789012345678901234567890123 +dqshi209 shift -1234567890123456789012345678901234 -33 -> -1 +dqshi210 shift -1234567890123456789012345678901234 -34 -> -0 +dqshi211 shift -9934567890123456789012345678901234 -33 -> -9 +dqshi212 shift -9934567890123456789012345678901234 -34 -> -0 + + +-- Specials; NaNs are handled as usual +dqshi781 shift -Inf -8 -> -Infinity +dqshi782 shift -Inf -1 -> -Infinity +dqshi783 shift -Inf -0 -> -Infinity +dqshi784 shift -Inf 0 -> -Infinity +dqshi785 shift -Inf 1 -> -Infinity +dqshi786 shift -Inf 8 -> -Infinity +dqshi787 shift -1000 -Inf -> NaN Invalid_operation +dqshi788 shift -Inf -Inf -> NaN Invalid_operation +dqshi789 shift -1 -Inf -> NaN Invalid_operation +dqshi790 shift -0 -Inf -> NaN Invalid_operation +dqshi791 shift 0 -Inf -> NaN Invalid_operation +dqshi792 shift 1 -Inf -> NaN Invalid_operation +dqshi793 shift 1000 -Inf -> NaN Invalid_operation +dqshi794 shift Inf -Inf -> NaN Invalid_operation + +dqshi800 shift Inf -Inf -> NaN Invalid_operation +dqshi801 shift Inf -8 -> Infinity +dqshi802 shift Inf -1 -> Infinity +dqshi803 shift Inf -0 -> Infinity +dqshi804 shift Inf 0 -> Infinity +dqshi805 shift Inf 1 -> Infinity +dqshi806 shift Inf 8 -> Infinity +dqshi807 shift Inf Inf -> NaN Invalid_operation +dqshi808 shift -1000 Inf -> NaN Invalid_operation +dqshi809 shift -Inf Inf -> NaN Invalid_operation +dqshi810 shift -1 Inf -> NaN Invalid_operation +dqshi811 shift -0 Inf -> NaN Invalid_operation +dqshi812 shift 0 Inf -> NaN Invalid_operation +dqshi813 shift 1 Inf -> NaN Invalid_operation +dqshi814 shift 1000 Inf -> NaN Invalid_operation +dqshi815 shift Inf Inf -> NaN Invalid_operation + +dqshi821 shift NaN -Inf -> NaN +dqshi822 shift NaN -1000 -> NaN +dqshi823 shift NaN -1 -> NaN +dqshi824 shift NaN -0 -> NaN +dqshi825 shift NaN 0 -> NaN +dqshi826 shift NaN 1 -> NaN +dqshi827 shift NaN 1000 -> NaN +dqshi828 shift NaN Inf -> NaN +dqshi829 shift NaN NaN -> NaN +dqshi830 shift -Inf NaN -> NaN +dqshi831 shift -1000 NaN -> NaN +dqshi832 shift -1 NaN -> NaN +dqshi833 shift -0 NaN -> NaN +dqshi834 shift 0 NaN -> NaN +dqshi835 shift 1 NaN -> NaN +dqshi836 shift 1000 NaN -> NaN +dqshi837 shift Inf NaN -> NaN + +dqshi841 shift sNaN -Inf -> NaN Invalid_operation +dqshi842 shift sNaN -1000 -> NaN Invalid_operation +dqshi843 shift sNaN -1 -> NaN Invalid_operation +dqshi844 shift sNaN -0 -> NaN Invalid_operation +dqshi845 shift sNaN 0 -> NaN Invalid_operation +dqshi846 shift sNaN 1 -> NaN Invalid_operation +dqshi847 shift sNaN 1000 -> NaN Invalid_operation +dqshi848 shift sNaN NaN -> NaN Invalid_operation +dqshi849 shift sNaN sNaN -> NaN Invalid_operation +dqshi850 shift NaN sNaN -> NaN Invalid_operation +dqshi851 shift -Inf sNaN -> NaN Invalid_operation +dqshi852 shift -1000 sNaN -> NaN Invalid_operation +dqshi853 shift -1 sNaN -> NaN Invalid_operation +dqshi854 shift -0 sNaN -> NaN Invalid_operation +dqshi855 shift 0 sNaN -> NaN Invalid_operation +dqshi856 shift 1 sNaN -> NaN Invalid_operation +dqshi857 shift 1000 sNaN -> NaN Invalid_operation +dqshi858 shift Inf sNaN -> NaN Invalid_operation +dqshi859 shift NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +dqshi861 shift NaN1 -Inf -> NaN1 +dqshi862 shift +NaN2 -1000 -> NaN2 +dqshi863 shift NaN3 1000 -> NaN3 +dqshi864 shift NaN4 Inf -> NaN4 +dqshi865 shift NaN5 +NaN6 -> NaN5 +dqshi866 shift -Inf NaN7 -> NaN7 +dqshi867 shift -1000 NaN8 -> NaN8 +dqshi868 shift 1000 NaN9 -> NaN9 +dqshi869 shift Inf +NaN10 -> NaN10 +dqshi871 shift sNaN11 -Inf -> NaN11 Invalid_operation +dqshi872 shift sNaN12 -1000 -> NaN12 Invalid_operation +dqshi873 shift sNaN13 1000 -> NaN13 Invalid_operation +dqshi874 shift sNaN14 NaN17 -> NaN14 Invalid_operation +dqshi875 shift sNaN15 sNaN18 -> NaN15 Invalid_operation +dqshi876 shift NaN16 sNaN19 -> NaN19 Invalid_operation +dqshi877 shift -Inf +sNaN20 -> NaN20 Invalid_operation +dqshi878 shift -1000 sNaN21 -> NaN21 Invalid_operation +dqshi879 shift 1000 sNaN22 -> NaN22 Invalid_operation +dqshi880 shift Inf sNaN23 -> NaN23 Invalid_operation +dqshi881 shift +NaN25 +sNaN24 -> NaN24 Invalid_operation +dqshi882 shift -NaN26 NaN28 -> -NaN26 +dqshi883 shift -sNaN27 sNaN29 -> -NaN27 Invalid_operation +dqshi884 shift 1000 -NaN30 -> -NaN30 +dqshi885 shift 1000 -sNaN31 -> -NaN31 Invalid_operation diff --git a/Lib/test/decimaltestdata/dqSubtract.decTest b/Lib/test/decimaltestdata/dqSubtract.decTest index f3b92270f9..34572f69d5 100644 --- a/Lib/test/decimaltestdata/dqSubtract.decTest +++ b/Lib/test/decimaltestdata/dqSubtract.decTest @@ -1,635 +1,635 @@ -------------------------------------------------------------------------
--- dqSubtract.decTest -- decQuad subtraction --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- This set of tests are for decQuads only; all arguments are
--- representable in a decQuad
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
--- [first group are 'quick confidence check']
-dqsub001 subtract 0 0 -> '0'
-dqsub002 subtract 1 1 -> '0'
-dqsub003 subtract 1 2 -> '-1'
-dqsub004 subtract 2 1 -> '1'
-dqsub005 subtract 2 2 -> '0'
-dqsub006 subtract 3 2 -> '1'
-dqsub007 subtract 2 3 -> '-1'
-
-dqsub011 subtract -0 0 -> '-0'
-dqsub012 subtract -1 1 -> '-2'
-dqsub013 subtract -1 2 -> '-3'
-dqsub014 subtract -2 1 -> '-3'
-dqsub015 subtract -2 2 -> '-4'
-dqsub016 subtract -3 2 -> '-5'
-dqsub017 subtract -2 3 -> '-5'
-
-dqsub021 subtract 0 -0 -> '0'
-dqsub022 subtract 1 -1 -> '2'
-dqsub023 subtract 1 -2 -> '3'
-dqsub024 subtract 2 -1 -> '3'
-dqsub025 subtract 2 -2 -> '4'
-dqsub026 subtract 3 -2 -> '5'
-dqsub027 subtract 2 -3 -> '5'
-
-dqsub030 subtract 11 1 -> 10
-dqsub031 subtract 10 1 -> 9
-dqsub032 subtract 9 1 -> 8
-dqsub033 subtract 1 1 -> 0
-dqsub034 subtract 0 1 -> -1
-dqsub035 subtract -1 1 -> -2
-dqsub036 subtract -9 1 -> -10
-dqsub037 subtract -10 1 -> -11
-dqsub038 subtract -11 1 -> -12
-
-dqsub040 subtract '5.75' '3.3' -> '2.45'
-dqsub041 subtract '5' '-3' -> '8'
-dqsub042 subtract '-5' '-3' -> '-2'
-dqsub043 subtract '-7' '2.5' -> '-9.5'
-dqsub044 subtract '0.7' '0.3' -> '0.4'
-dqsub045 subtract '1.3' '0.3' -> '1.0'
-dqsub046 subtract '1.25' '1.25' -> '0.00'
-
-dqsub050 subtract '1.23456789' '1.00000000' -> '0.23456789'
-dqsub051 subtract '1.23456789' '1.00000089' -> '0.23456700'
-
-dqsub060 subtract '70' '10000e+34' -> '-1.000000000000000000000000000000000E+38' Inexact Rounded
-dqsub061 subtract '700' '10000e+34' -> '-1.000000000000000000000000000000000E+38' Inexact Rounded
-dqsub062 subtract '7000' '10000e+34' -> '-9.999999999999999999999999999999999E+37' Inexact Rounded
-dqsub063 subtract '70000' '10000e+34' -> '-9.999999999999999999999999999999993E+37' Rounded
-dqsub064 subtract '700000' '10000e+34' -> '-9.999999999999999999999999999999930E+37' Rounded
- -- symmetry:
-dqsub065 subtract '10000e+34' '70' -> '1.000000000000000000000000000000000E+38' Inexact Rounded
-dqsub066 subtract '10000e+34' '700' -> '1.000000000000000000000000000000000E+38' Inexact Rounded
-dqsub067 subtract '10000e+34' '7000' -> '9.999999999999999999999999999999999E+37' Inexact Rounded
-dqsub068 subtract '10000e+34' '70000' -> '9.999999999999999999999999999999993E+37' Rounded
-dqsub069 subtract '10000e+34' '700000' -> '9.999999999999999999999999999999930E+37' Rounded
-
- -- some of the next group are really constructor tests
-dqsub090 subtract '00.0' '0.0' -> '0.0'
-dqsub091 subtract '00.0' '0.00' -> '0.00'
-dqsub092 subtract '0.00' '00.0' -> '0.00'
-dqsub093 subtract '00.0' '0.00' -> '0.00'
-dqsub094 subtract '0.00' '00.0' -> '0.00'
-dqsub095 subtract '3' '.3' -> '2.7'
-dqsub096 subtract '3.' '.3' -> '2.7'
-dqsub097 subtract '3.0' '.3' -> '2.7'
-dqsub098 subtract '3.00' '.3' -> '2.70'
-dqsub099 subtract '3' '3' -> '0'
-dqsub100 subtract '3' '+3' -> '0'
-dqsub101 subtract '3' '-3' -> '6'
-dqsub102 subtract '3' '0.3' -> '2.7'
-dqsub103 subtract '3.' '0.3' -> '2.7'
-dqsub104 subtract '3.0' '0.3' -> '2.7'
-dqsub105 subtract '3.00' '0.3' -> '2.70'
-dqsub106 subtract '3' '3.0' -> '0.0'
-dqsub107 subtract '3' '+3.0' -> '0.0'
-dqsub108 subtract '3' '-3.0' -> '6.0'
-
--- the above all from add; massaged and extended. Now some new ones...
--- [particularly important for comparisons]
--- NB: -xE-8 below were non-exponents pre-ANSI X3-274, and -1E-7 or 0E-7
--- with input rounding.
-dqsub120 subtract '10.23456784' '10.23456789' -> '-5E-8'
-dqsub121 subtract '10.23456785' '10.23456789' -> '-4E-8'
-dqsub122 subtract '10.23456786' '10.23456789' -> '-3E-8'
-dqsub123 subtract '10.23456787' '10.23456789' -> '-2E-8'
-dqsub124 subtract '10.23456788' '10.23456789' -> '-1E-8'
-dqsub125 subtract '10.23456789' '10.23456789' -> '0E-8'
-dqsub126 subtract '10.23456790' '10.23456789' -> '1E-8'
-dqsub127 subtract '10.23456791' '10.23456789' -> '2E-8'
-dqsub128 subtract '10.23456792' '10.23456789' -> '3E-8'
-dqsub129 subtract '10.23456793' '10.23456789' -> '4E-8'
-dqsub130 subtract '10.23456794' '10.23456789' -> '5E-8'
-dqsub131 subtract '10.23456781' '10.23456786' -> '-5E-8'
-dqsub132 subtract '10.23456782' '10.23456786' -> '-4E-8'
-dqsub133 subtract '10.23456783' '10.23456786' -> '-3E-8'
-dqsub134 subtract '10.23456784' '10.23456786' -> '-2E-8'
-dqsub135 subtract '10.23456785' '10.23456786' -> '-1E-8'
-dqsub136 subtract '10.23456786' '10.23456786' -> '0E-8'
-dqsub137 subtract '10.23456787' '10.23456786' -> '1E-8'
-dqsub138 subtract '10.23456788' '10.23456786' -> '2E-8'
-dqsub139 subtract '10.23456789' '10.23456786' -> '3E-8'
-dqsub140 subtract '10.23456790' '10.23456786' -> '4E-8'
-dqsub141 subtract '10.23456791' '10.23456786' -> '5E-8'
-dqsub142 subtract '1' '0.999999999' -> '1E-9'
-dqsub143 subtract '0.999999999' '1' -> '-1E-9'
-dqsub144 subtract '-10.23456780' '-10.23456786' -> '6E-8'
-dqsub145 subtract '-10.23456790' '-10.23456786' -> '-4E-8'
-dqsub146 subtract '-10.23456791' '-10.23456786' -> '-5E-8'
-
--- additional scaled arithmetic tests [0.97 problem]
-dqsub160 subtract '0' '.1' -> '-0.1'
-dqsub161 subtract '00' '.97983' -> '-0.97983'
-dqsub162 subtract '0' '.9' -> '-0.9'
-dqsub163 subtract '0' '0.102' -> '-0.102'
-dqsub164 subtract '0' '.4' -> '-0.4'
-dqsub165 subtract '0' '.307' -> '-0.307'
-dqsub166 subtract '0' '.43822' -> '-0.43822'
-dqsub167 subtract '0' '.911' -> '-0.911'
-dqsub168 subtract '.0' '.02' -> '-0.02'
-dqsub169 subtract '00' '.392' -> '-0.392'
-dqsub170 subtract '0' '.26' -> '-0.26'
-dqsub171 subtract '0' '0.51' -> '-0.51'
-dqsub172 subtract '0' '.2234' -> '-0.2234'
-dqsub173 subtract '0' '.2' -> '-0.2'
-dqsub174 subtract '.0' '.0008' -> '-0.0008'
--- 0. on left
-dqsub180 subtract '0.0' '-.1' -> '0.1'
-dqsub181 subtract '0.00' '-.97983' -> '0.97983'
-dqsub182 subtract '0.0' '-.9' -> '0.9'
-dqsub183 subtract '0.0' '-0.102' -> '0.102'
-dqsub184 subtract '0.0' '-.4' -> '0.4'
-dqsub185 subtract '0.0' '-.307' -> '0.307'
-dqsub186 subtract '0.0' '-.43822' -> '0.43822'
-dqsub187 subtract '0.0' '-.911' -> '0.911'
-dqsub188 subtract '0.0' '-.02' -> '0.02'
-dqsub189 subtract '0.00' '-.392' -> '0.392'
-dqsub190 subtract '0.0' '-.26' -> '0.26'
-dqsub191 subtract '0.0' '-0.51' -> '0.51'
-dqsub192 subtract '0.0' '-.2234' -> '0.2234'
-dqsub193 subtract '0.0' '-.2' -> '0.2'
-dqsub194 subtract '0.0' '-.0008' -> '0.0008'
--- negatives of same
-dqsub200 subtract '0' '-.1' -> '0.1'
-dqsub201 subtract '00' '-.97983' -> '0.97983'
-dqsub202 subtract '0' '-.9' -> '0.9'
-dqsub203 subtract '0' '-0.102' -> '0.102'
-dqsub204 subtract '0' '-.4' -> '0.4'
-dqsub205 subtract '0' '-.307' -> '0.307'
-dqsub206 subtract '0' '-.43822' -> '0.43822'
-dqsub207 subtract '0' '-.911' -> '0.911'
-dqsub208 subtract '.0' '-.02' -> '0.02'
-dqsub209 subtract '00' '-.392' -> '0.392'
-dqsub210 subtract '0' '-.26' -> '0.26'
-dqsub211 subtract '0' '-0.51' -> '0.51'
-dqsub212 subtract '0' '-.2234' -> '0.2234'
-dqsub213 subtract '0' '-.2' -> '0.2'
-dqsub214 subtract '.0' '-.0008' -> '0.0008'
-
--- more fixed, LHS swaps [really the same as testcases under add]
-dqsub220 subtract '-56267E-12' 0 -> '-5.6267E-8'
-dqsub221 subtract '-56267E-11' 0 -> '-5.6267E-7'
-dqsub222 subtract '-56267E-10' 0 -> '-0.0000056267'
-dqsub223 subtract '-56267E-9' 0 -> '-0.000056267'
-dqsub224 subtract '-56267E-8' 0 -> '-0.00056267'
-dqsub225 subtract '-56267E-7' 0 -> '-0.0056267'
-dqsub226 subtract '-56267E-6' 0 -> '-0.056267'
-dqsub227 subtract '-56267E-5' 0 -> '-0.56267'
-dqsub228 subtract '-56267E-2' 0 -> '-562.67'
-dqsub229 subtract '-56267E-1' 0 -> '-5626.7'
-dqsub230 subtract '-56267E-0' 0 -> '-56267'
--- symmetry ...
-dqsub240 subtract 0 '-56267E-12' -> '5.6267E-8'
-dqsub241 subtract 0 '-56267E-11' -> '5.6267E-7'
-dqsub242 subtract 0 '-56267E-10' -> '0.0000056267'
-dqsub243 subtract 0 '-56267E-9' -> '0.000056267'
-dqsub244 subtract 0 '-56267E-8' -> '0.00056267'
-dqsub245 subtract 0 '-56267E-7' -> '0.0056267'
-dqsub246 subtract 0 '-56267E-6' -> '0.056267'
-dqsub247 subtract 0 '-56267E-5' -> '0.56267'
-dqsub248 subtract 0 '-56267E-2' -> '562.67'
-dqsub249 subtract 0 '-56267E-1' -> '5626.7'
-dqsub250 subtract 0 '-56267E-0' -> '56267'
-
--- now some more from the 'new' add
-dqsub301 subtract '1.23456789' '1.00000000' -> '0.23456789'
-dqsub302 subtract '1.23456789' '1.00000011' -> '0.23456778'
-
--- some carrying effects
-dqsub321 subtract '0.9998' '0.0000' -> '0.9998'
-dqsub322 subtract '0.9998' '0.0001' -> '0.9997'
-dqsub323 subtract '0.9998' '0.0002' -> '0.9996'
-dqsub324 subtract '0.9998' '0.0003' -> '0.9995'
-dqsub325 subtract '0.9998' '-0.0000' -> '0.9998'
-dqsub326 subtract '0.9998' '-0.0001' -> '0.9999'
-dqsub327 subtract '0.9998' '-0.0002' -> '1.0000'
-dqsub328 subtract '0.9998' '-0.0003' -> '1.0001'
-
--- internal boundaries
-dqsub346 subtract '10000e+9' '7' -> '9999999999993'
-dqsub347 subtract '10000e+9' '70' -> '9999999999930'
-dqsub348 subtract '10000e+9' '700' -> '9999999999300'
-dqsub349 subtract '10000e+9' '7000' -> '9999999993000'
-dqsub350 subtract '10000e+9' '70000' -> '9999999930000'
-dqsub351 subtract '10000e+9' '700000' -> '9999999300000'
-dqsub352 subtract '7' '10000e+9' -> '-9999999999993'
-dqsub353 subtract '70' '10000e+9' -> '-9999999999930'
-dqsub354 subtract '700' '10000e+9' -> '-9999999999300'
-dqsub355 subtract '7000' '10000e+9' -> '-9999999993000'
-dqsub356 subtract '70000' '10000e+9' -> '-9999999930000'
-dqsub357 subtract '700000' '10000e+9' -> '-9999999300000'
-
--- zero preservation
-dqsub361 subtract 1 '0.0001' -> '0.9999'
-dqsub362 subtract 1 '0.00001' -> '0.99999'
-dqsub363 subtract 1 '0.000001' -> '0.999999'
-dqsub364 subtract 1 '0.0000000000000000000000000000000001' -> '0.9999999999999999999999999999999999'
-dqsub365 subtract 1 '0.00000000000000000000000000000000001' -> '1.000000000000000000000000000000000' Inexact Rounded
-dqsub366 subtract 1 '0.000000000000000000000000000000000001' -> '1.000000000000000000000000000000000' Inexact Rounded
-
--- some funny zeros [in case of bad signum]
-dqsub370 subtract 1 0 -> 1
-dqsub371 subtract 1 0. -> 1
-dqsub372 subtract 1 .0 -> 1.0
-dqsub373 subtract 1 0.0 -> 1.0
-dqsub374 subtract 0 1 -> -1
-dqsub375 subtract 0. 1 -> -1
-dqsub376 subtract .0 1 -> -1.0
-dqsub377 subtract 0.0 1 -> -1.0
-
--- leading 0 digit before round
-dqsub910 subtract -103519362 -51897955.3 -> -51621406.7
-dqsub911 subtract 159579.444 89827.5229 -> 69751.9211
-
-dqsub920 subtract 333.0000000000000000000000000123456 33.00000000000000000000000001234566 -> 299.9999999999999999999999999999999 Inexact Rounded
-dqsub921 subtract 333.0000000000000000000000000123456 33.00000000000000000000000001234565 -> 300.0000000000000000000000000000000 Inexact Rounded
-dqsub922 subtract 133.0000000000000000000000000123456 33.00000000000000000000000001234565 -> 99.99999999999999999999999999999995
-dqsub923 subtract 133.0000000000000000000000000123456 33.00000000000000000000000001234564 -> 99.99999999999999999999999999999996
-dqsub924 subtract 133.0000000000000000000000000123456 33.00000000000000000000000001234540 -> 100.0000000000000000000000000000002 Rounded
-dqsub925 subtract 133.0000000000000000000000000123456 43.00000000000000000000000001234560 -> 90.00000000000000000000000000000000
-dqsub926 subtract 133.0000000000000000000000000123456 43.00000000000000000000000001234561 -> 89.99999999999999999999999999999999
-dqsub927 subtract 133.0000000000000000000000000123456 43.00000000000000000000000001234566 -> 89.99999999999999999999999999999994
-dqsub928 subtract 101.0000000000000000000000000123456 91.00000000000000000000000001234566 -> 9.99999999999999999999999999999994
-dqsub929 subtract 101.0000000000000000000000000123456 99.00000000000000000000000001234566 -> 1.99999999999999999999999999999994
-
--- more LHS swaps [were fixed]
-dqsub390 subtract '-56267E-10' 0 -> '-0.0000056267'
-dqsub391 subtract '-56267E-6' 0 -> '-0.056267'
-dqsub392 subtract '-56267E-5' 0 -> '-0.56267'
-dqsub393 subtract '-56267E-4' 0 -> '-5.6267'
-dqsub394 subtract '-56267E-3' 0 -> '-56.267'
-dqsub395 subtract '-56267E-2' 0 -> '-562.67'
-dqsub396 subtract '-56267E-1' 0 -> '-5626.7'
-dqsub397 subtract '-56267E-0' 0 -> '-56267'
-dqsub398 subtract '-5E-10' 0 -> '-5E-10'
-dqsub399 subtract '-5E-7' 0 -> '-5E-7'
-dqsub400 subtract '-5E-6' 0 -> '-0.000005'
-dqsub401 subtract '-5E-5' 0 -> '-0.00005'
-dqsub402 subtract '-5E-4' 0 -> '-0.0005'
-dqsub403 subtract '-5E-1' 0 -> '-0.5'
-dqsub404 subtract '-5E0' 0 -> '-5'
-dqsub405 subtract '-5E1' 0 -> '-50'
-dqsub406 subtract '-5E5' 0 -> '-500000'
-dqsub407 subtract '-5E33' 0 -> '-5000000000000000000000000000000000'
-dqsub408 subtract '-5E34' 0 -> '-5.000000000000000000000000000000000E+34' Rounded
-dqsub409 subtract '-5E35' 0 -> '-5.000000000000000000000000000000000E+35' Rounded
-dqsub410 subtract '-5E36' 0 -> '-5.000000000000000000000000000000000E+36' Rounded
-dqsub411 subtract '-5E100' 0 -> '-5.000000000000000000000000000000000E+100' Rounded
-
--- more RHS swaps [were fixed]
-dqsub420 subtract 0 '-56267E-10' -> '0.0000056267'
-dqsub421 subtract 0 '-56267E-6' -> '0.056267'
-dqsub422 subtract 0 '-56267E-5' -> '0.56267'
-dqsub423 subtract 0 '-56267E-4' -> '5.6267'
-dqsub424 subtract 0 '-56267E-3' -> '56.267'
-dqsub425 subtract 0 '-56267E-2' -> '562.67'
-dqsub426 subtract 0 '-56267E-1' -> '5626.7'
-dqsub427 subtract 0 '-56267E-0' -> '56267'
-dqsub428 subtract 0 '-5E-10' -> '5E-10'
-dqsub429 subtract 0 '-5E-7' -> '5E-7'
-dqsub430 subtract 0 '-5E-6' -> '0.000005'
-dqsub431 subtract 0 '-5E-5' -> '0.00005'
-dqsub432 subtract 0 '-5E-4' -> '0.0005'
-dqsub433 subtract 0 '-5E-1' -> '0.5'
-dqsub434 subtract 0 '-5E0' -> '5'
-dqsub435 subtract 0 '-5E1' -> '50'
-dqsub436 subtract 0 '-5E5' -> '500000'
-dqsub437 subtract 0 '-5E33' -> '5000000000000000000000000000000000'
-dqsub438 subtract 0 '-5E34' -> '5.000000000000000000000000000000000E+34' Rounded
-dqsub439 subtract 0 '-5E35' -> '5.000000000000000000000000000000000E+35' Rounded
-dqsub440 subtract 0 '-5E36' -> '5.000000000000000000000000000000000E+36' Rounded
-dqsub441 subtract 0 '-5E100' -> '5.000000000000000000000000000000000E+100' Rounded
-
-
--- try borderline precision, with carries, etc.
-dqsub461 subtract '1E+16' '1' -> '9999999999999999'
-dqsub462 subtract '1E+12' '-1.111' -> '1000000000001.111'
-dqsub463 subtract '1.111' '-1E+12' -> '1000000000001.111'
-dqsub464 subtract '-1' '-1E+16' -> '9999999999999999'
-dqsub465 subtract '7E+15' '1' -> '6999999999999999'
-dqsub466 subtract '7E+12' '-1.111' -> '7000000000001.111'
-dqsub467 subtract '1.111' '-7E+12' -> '7000000000001.111'
-dqsub468 subtract '-1' '-7E+15' -> '6999999999999999'
-
--- 1234567890123456 1234567890123456 1 23456789012345
-dqsub470 subtract '0.4444444444444444444444444444444444' '-0.5555555555555555555555555555555563' -> '1.000000000000000000000000000000001' Inexact Rounded
-dqsub471 subtract '0.4444444444444444444444444444444444' '-0.5555555555555555555555555555555562' -> '1.000000000000000000000000000000001' Inexact Rounded
-dqsub472 subtract '0.4444444444444444444444444444444444' '-0.5555555555555555555555555555555561' -> '1.000000000000000000000000000000000' Inexact Rounded
-dqsub473 subtract '0.4444444444444444444444444444444444' '-0.5555555555555555555555555555555560' -> '1.000000000000000000000000000000000' Inexact Rounded
-dqsub474 subtract '0.4444444444444444444444444444444444' '-0.5555555555555555555555555555555559' -> '1.000000000000000000000000000000000' Inexact Rounded
-dqsub475 subtract '0.4444444444444444444444444444444444' '-0.5555555555555555555555555555555558' -> '1.000000000000000000000000000000000' Inexact Rounded
-dqsub476 subtract '0.4444444444444444444444444444444444' '-0.5555555555555555555555555555555557' -> '1.000000000000000000000000000000000' Inexact Rounded
-dqsub477 subtract '0.4444444444444444444444444444444444' '-0.5555555555555555555555555555555556' -> '1.000000000000000000000000000000000' Rounded
-dqsub478 subtract '0.4444444444444444444444444444444444' '-0.5555555555555555555555555555555555' -> '0.9999999999999999999999999999999999'
-dqsub479 subtract '0.4444444444444444444444444444444444' '-0.5555555555555555555555555555555554' -> '0.9999999999999999999999999999999998'
-dqsub480 subtract '0.4444444444444444444444444444444444' '-0.5555555555555555555555555555555553' -> '0.9999999999999999999999999999999997'
-dqsub481 subtract '0.4444444444444444444444444444444444' '-0.5555555555555555555555555555555552' -> '0.9999999999999999999999999999999996'
-dqsub482 subtract '0.4444444444444444444444444444444444' '-0.5555555555555555555555555555555551' -> '0.9999999999999999999999999999999995'
-dqsub483 subtract '0.4444444444444444444444444444444444' '-0.5555555555555555555555555555555550' -> '0.9999999999999999999999999999999994'
-
--- and some more, including residue effects and different roundings
-rounding: half_up
-dqsub500 subtract '1231234555555555555555555567456789' 0 -> '1231234555555555555555555567456789'
-dqsub501 subtract '1231234555555555555555555567456789' 0.000000001 -> '1231234555555555555555555567456789' Inexact Rounded
-dqsub502 subtract '1231234555555555555555555567456789' 0.000001 -> '1231234555555555555555555567456789' Inexact Rounded
-dqsub503 subtract '1231234555555555555555555567456789' 0.1 -> '1231234555555555555555555567456789' Inexact Rounded
-dqsub504 subtract '1231234555555555555555555567456789' 0.4 -> '1231234555555555555555555567456789' Inexact Rounded
-dqsub505 subtract '1231234555555555555555555567456789' 0.49 -> '1231234555555555555555555567456789' Inexact Rounded
-dqsub506 subtract '1231234555555555555555555567456789' 0.499999 -> '1231234555555555555555555567456789' Inexact Rounded
-dqsub507 subtract '1231234555555555555555555567456789' 0.499999999 -> '1231234555555555555555555567456789' Inexact Rounded
-dqsub508 subtract '1231234555555555555555555567456789' 0.5 -> '1231234555555555555555555567456789' Inexact Rounded
-dqsub509 subtract '1231234555555555555555555567456789' 0.500000001 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub510 subtract '1231234555555555555555555567456789' 0.500001 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub511 subtract '1231234555555555555555555567456789' 0.51 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub512 subtract '1231234555555555555555555567456789' 0.6 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub513 subtract '1231234555555555555555555567456789' 0.9 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub514 subtract '1231234555555555555555555567456789' 0.99999 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub515 subtract '1231234555555555555555555567456789' 0.999999999 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub516 subtract '1231234555555555555555555567456789' 1 -> '1231234555555555555555555567456788'
-dqsub517 subtract '1231234555555555555555555567456789' 1.000000001 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub518 subtract '1231234555555555555555555567456789' 1.00001 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub519 subtract '1231234555555555555555555567456789' 1.1 -> '1231234555555555555555555567456788' Inexact Rounded
-
-rounding: half_even
-dqsub520 subtract '1231234555555555555555555567456789' 0 -> '1231234555555555555555555567456789'
-dqsub521 subtract '1231234555555555555555555567456789' 0.000000001 -> '1231234555555555555555555567456789' Inexact Rounded
-dqsub522 subtract '1231234555555555555555555567456789' 0.000001 -> '1231234555555555555555555567456789' Inexact Rounded
-dqsub523 subtract '1231234555555555555555555567456789' 0.1 -> '1231234555555555555555555567456789' Inexact Rounded
-dqsub524 subtract '1231234555555555555555555567456789' 0.4 -> '1231234555555555555555555567456789' Inexact Rounded
-dqsub525 subtract '1231234555555555555555555567456789' 0.49 -> '1231234555555555555555555567456789' Inexact Rounded
-dqsub526 subtract '1231234555555555555555555567456789' 0.499999 -> '1231234555555555555555555567456789' Inexact Rounded
-dqsub527 subtract '1231234555555555555555555567456789' 0.499999999 -> '1231234555555555555555555567456789' Inexact Rounded
-dqsub528 subtract '1231234555555555555555555567456789' 0.5 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub529 subtract '1231234555555555555555555567456789' 0.500000001 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub530 subtract '1231234555555555555555555567456789' 0.500001 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub531 subtract '1231234555555555555555555567456789' 0.51 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub532 subtract '1231234555555555555555555567456789' 0.6 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub533 subtract '1231234555555555555555555567456789' 0.9 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub534 subtract '1231234555555555555555555567456789' 0.99999 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub535 subtract '1231234555555555555555555567456789' 0.999999999 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub536 subtract '1231234555555555555555555567456789' 1 -> '1231234555555555555555555567456788'
-dqsub537 subtract '1231234555555555555555555567456789' 1.00000001 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub538 subtract '1231234555555555555555555567456789' 1.00001 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub539 subtract '1231234555555555555555555567456789' 1.1 -> '1231234555555555555555555567456788' Inexact Rounded
--- critical few with even bottom digit...
-dqsub540 subtract '1231234555555555555555555567456788' 0.499999999 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub541 subtract '1231234555555555555555555567456788' 0.5 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub542 subtract '1231234555555555555555555567456788' 0.500000001 -> '1231234555555555555555555567456787' Inexact Rounded
-
-rounding: down
-dqsub550 subtract '1231234555555555555555555567456789' 0 -> '1231234555555555555555555567456789'
-dqsub551 subtract '1231234555555555555555555567456789' 0.000000001 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub552 subtract '1231234555555555555555555567456789' 0.000001 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub553 subtract '1231234555555555555555555567456789' 0.1 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub554 subtract '1231234555555555555555555567456789' 0.4 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub555 subtract '1231234555555555555555555567456789' 0.49 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub556 subtract '1231234555555555555555555567456789' 0.499999 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub557 subtract '1231234555555555555555555567456789' 0.499999999 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub558 subtract '1231234555555555555555555567456789' 0.5 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub559 subtract '1231234555555555555555555567456789' 0.500000001 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub560 subtract '1231234555555555555555555567456789' 0.500001 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub561 subtract '1231234555555555555555555567456789' 0.51 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub562 subtract '1231234555555555555555555567456789' 0.6 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub563 subtract '1231234555555555555555555567456789' 0.9 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub564 subtract '1231234555555555555555555567456789' 0.99999 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub565 subtract '1231234555555555555555555567456789' 0.999999999 -> '1231234555555555555555555567456788' Inexact Rounded
-dqsub566 subtract '1231234555555555555555555567456789' 1 -> '1231234555555555555555555567456788'
-dqsub567 subtract '1231234555555555555555555567456789' 1.00000001 -> '1231234555555555555555555567456787' Inexact Rounded
-dqsub568 subtract '1231234555555555555555555567456789' 1.00001 -> '1231234555555555555555555567456787' Inexact Rounded
-dqsub569 subtract '1231234555555555555555555567456789' 1.1 -> '1231234555555555555555555567456787' Inexact Rounded
-
--- symmetry...
-rounding: half_up
-dqsub600 subtract 0 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789'
-dqsub601 subtract 0.000000001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789' Inexact Rounded
-dqsub602 subtract 0.000001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789' Inexact Rounded
-dqsub603 subtract 0.1 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789' Inexact Rounded
-dqsub604 subtract 0.4 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789' Inexact Rounded
-dqsub605 subtract 0.49 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789' Inexact Rounded
-dqsub606 subtract 0.499999 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789' Inexact Rounded
-dqsub607 subtract 0.499999999 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789' Inexact Rounded
-dqsub608 subtract 0.5 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789' Inexact Rounded
-dqsub609 subtract 0.500000001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub610 subtract 0.500001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub611 subtract 0.51 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub612 subtract 0.6 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub613 subtract 0.9 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub614 subtract 0.99999 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub615 subtract 0.999999999 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub616 subtract 1 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788'
-dqsub617 subtract 1.000000001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub618 subtract 1.00001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub619 subtract 1.1 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-
-rounding: half_even
-dqsub620 subtract 0 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789'
-dqsub621 subtract 0.000000001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789' Inexact Rounded
-dqsub622 subtract 0.000001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789' Inexact Rounded
-dqsub623 subtract 0.1 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789' Inexact Rounded
-dqsub624 subtract 0.4 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789' Inexact Rounded
-dqsub625 subtract 0.49 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789' Inexact Rounded
-dqsub626 subtract 0.499999 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789' Inexact Rounded
-dqsub627 subtract 0.499999999 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789' Inexact Rounded
-dqsub628 subtract 0.5 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub629 subtract 0.500000001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub630 subtract 0.500001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub631 subtract 0.51 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub632 subtract 0.6 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub633 subtract 0.9 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub634 subtract 0.99999 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub635 subtract 0.999999999 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub636 subtract 1 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788'
-dqsub637 subtract 1.00000001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub638 subtract 1.00001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub639 subtract 1.1 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
--- critical few with even bottom digit...
-dqsub640 subtract 0.499999999 '1231234555555555555555555567456788' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub641 subtract 0.5 '1231234555555555555555555567456788' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub642 subtract 0.500000001 '1231234555555555555555555567456788' -> '-1231234555555555555555555567456787' Inexact Rounded
-
-rounding: down
-dqsub650 subtract 0 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789'
-dqsub651 subtract 0.000000001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub652 subtract 0.000001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub653 subtract 0.1 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub654 subtract 0.4 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub655 subtract 0.49 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub656 subtract 0.499999 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub657 subtract 0.499999999 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub658 subtract 0.5 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub659 subtract 0.500000001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub660 subtract 0.500001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub661 subtract 0.51 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub662 subtract 0.6 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub663 subtract 0.9 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub664 subtract 0.99999 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub665 subtract 0.999999999 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded
-dqsub666 subtract 1 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788'
-dqsub667 subtract 1.00000001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456787' Inexact Rounded
-dqsub668 subtract 1.00001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456787' Inexact Rounded
-dqsub669 subtract 1.1 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456787' Inexact Rounded
-
-
--- lots of leading zeros in intermediate result, and showing effects of
--- input rounding would have affected the following
-rounding: half_up
-dqsub670 subtract '1234567456789' '1234567456788.1' -> 0.9
-dqsub671 subtract '1234567456789' '1234567456788.9' -> 0.1
-dqsub672 subtract '1234567456789' '1234567456789.1' -> -0.1
-dqsub673 subtract '1234567456789' '1234567456789.5' -> -0.5
-dqsub674 subtract '1234567456789' '1234567456789.9' -> -0.9
-
-rounding: half_even
-dqsub680 subtract '1234567456789' '1234567456788.1' -> 0.9
-dqsub681 subtract '1234567456789' '1234567456788.9' -> 0.1
-dqsub682 subtract '1234567456789' '1234567456789.1' -> -0.1
-dqsub683 subtract '1234567456789' '1234567456789.5' -> -0.5
-dqsub684 subtract '1234567456789' '1234567456789.9' -> -0.9
-
-dqsub685 subtract '1234567456788' '1234567456787.1' -> 0.9
-dqsub686 subtract '1234567456788' '1234567456787.9' -> 0.1
-dqsub687 subtract '1234567456788' '1234567456788.1' -> -0.1
-dqsub688 subtract '1234567456788' '1234567456788.5' -> -0.5
-dqsub689 subtract '1234567456788' '1234567456788.9' -> -0.9
-
-rounding: down
-dqsub690 subtract '1234567456789' '1234567456788.1' -> 0.9
-dqsub691 subtract '1234567456789' '1234567456788.9' -> 0.1
-dqsub692 subtract '1234567456789' '1234567456789.1' -> -0.1
-dqsub693 subtract '1234567456789' '1234567456789.5' -> -0.5
-dqsub694 subtract '1234567456789' '1234567456789.9' -> -0.9
-
--- Specials
-dqsub780 subtract -Inf Inf -> -Infinity
-dqsub781 subtract -Inf 1000 -> -Infinity
-dqsub782 subtract -Inf 1 -> -Infinity
-dqsub783 subtract -Inf -0 -> -Infinity
-dqsub784 subtract -Inf -1 -> -Infinity
-dqsub785 subtract -Inf -1000 -> -Infinity
-dqsub787 subtract -1000 Inf -> -Infinity
-dqsub788 subtract -Inf Inf -> -Infinity
-dqsub789 subtract -1 Inf -> -Infinity
-dqsub790 subtract 0 Inf -> -Infinity
-dqsub791 subtract 1 Inf -> -Infinity
-dqsub792 subtract 1000 Inf -> -Infinity
-
-dqsub800 subtract Inf Inf -> NaN Invalid_operation
-dqsub801 subtract Inf 1000 -> Infinity
-dqsub802 subtract Inf 1 -> Infinity
-dqsub803 subtract Inf 0 -> Infinity
-dqsub804 subtract Inf -0 -> Infinity
-dqsub805 subtract Inf -1 -> Infinity
-dqsub806 subtract Inf -1000 -> Infinity
-dqsub807 subtract Inf -Inf -> Infinity
-dqsub808 subtract -1000 -Inf -> Infinity
-dqsub809 subtract -Inf -Inf -> NaN Invalid_operation
-dqsub810 subtract -1 -Inf -> Infinity
-dqsub811 subtract -0 -Inf -> Infinity
-dqsub812 subtract 0 -Inf -> Infinity
-dqsub813 subtract 1 -Inf -> Infinity
-dqsub814 subtract 1000 -Inf -> Infinity
-dqsub815 subtract Inf -Inf -> Infinity
-
-dqsub821 subtract NaN Inf -> NaN
-dqsub822 subtract -NaN 1000 -> -NaN
-dqsub823 subtract NaN 1 -> NaN
-dqsub824 subtract NaN 0 -> NaN
-dqsub825 subtract NaN -0 -> NaN
-dqsub826 subtract NaN -1 -> NaN
-dqsub827 subtract NaN -1000 -> NaN
-dqsub828 subtract NaN -Inf -> NaN
-dqsub829 subtract -NaN NaN -> -NaN
-dqsub830 subtract -Inf NaN -> NaN
-dqsub831 subtract -1000 NaN -> NaN
-dqsub832 subtract -1 NaN -> NaN
-dqsub833 subtract -0 NaN -> NaN
-dqsub834 subtract 0 NaN -> NaN
-dqsub835 subtract 1 NaN -> NaN
-dqsub836 subtract 1000 -NaN -> -NaN
-dqsub837 subtract Inf NaN -> NaN
-
-dqsub841 subtract sNaN Inf -> NaN Invalid_operation
-dqsub842 subtract -sNaN 1000 -> -NaN Invalid_operation
-dqsub843 subtract sNaN 1 -> NaN Invalid_operation
-dqsub844 subtract sNaN 0 -> NaN Invalid_operation
-dqsub845 subtract sNaN -0 -> NaN Invalid_operation
-dqsub846 subtract sNaN -1 -> NaN Invalid_operation
-dqsub847 subtract sNaN -1000 -> NaN Invalid_operation
-dqsub848 subtract sNaN NaN -> NaN Invalid_operation
-dqsub849 subtract sNaN sNaN -> NaN Invalid_operation
-dqsub850 subtract NaN sNaN -> NaN Invalid_operation
-dqsub851 subtract -Inf -sNaN -> -NaN Invalid_operation
-dqsub852 subtract -1000 sNaN -> NaN Invalid_operation
-dqsub853 subtract -1 sNaN -> NaN Invalid_operation
-dqsub854 subtract -0 sNaN -> NaN Invalid_operation
-dqsub855 subtract 0 sNaN -> NaN Invalid_operation
-dqsub856 subtract 1 sNaN -> NaN Invalid_operation
-dqsub857 subtract 1000 sNaN -> NaN Invalid_operation
-dqsub858 subtract Inf sNaN -> NaN Invalid_operation
-dqsub859 subtract NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-dqsub861 subtract NaN01 -Inf -> NaN1
-dqsub862 subtract -NaN02 -1000 -> -NaN2
-dqsub863 subtract NaN03 1000 -> NaN3
-dqsub864 subtract NaN04 Inf -> NaN4
-dqsub865 subtract NaN05 NaN61 -> NaN5
-dqsub866 subtract -Inf -NaN71 -> -NaN71
-dqsub867 subtract -1000 NaN81 -> NaN81
-dqsub868 subtract 1000 NaN91 -> NaN91
-dqsub869 subtract Inf NaN101 -> NaN101
-dqsub871 subtract sNaN011 -Inf -> NaN11 Invalid_operation
-dqsub872 subtract sNaN012 -1000 -> NaN12 Invalid_operation
-dqsub873 subtract -sNaN013 1000 -> -NaN13 Invalid_operation
-dqsub874 subtract sNaN014 NaN171 -> NaN14 Invalid_operation
-dqsub875 subtract sNaN015 sNaN181 -> NaN15 Invalid_operation
-dqsub876 subtract NaN016 sNaN191 -> NaN191 Invalid_operation
-dqsub877 subtract -Inf sNaN201 -> NaN201 Invalid_operation
-dqsub878 subtract -1000 sNaN211 -> NaN211 Invalid_operation
-dqsub879 subtract 1000 -sNaN221 -> -NaN221 Invalid_operation
-dqsub880 subtract Inf sNaN231 -> NaN231 Invalid_operation
-dqsub881 subtract NaN025 sNaN241 -> NaN241 Invalid_operation
-
--- edge case spills
-dqsub901 subtract 2.E-3 1.002 -> -1.000
-dqsub902 subtract 2.0E-3 1.002 -> -1.0000
-dqsub903 subtract 2.00E-3 1.0020 -> -1.00000
-dqsub904 subtract 2.000E-3 1.00200 -> -1.000000
-dqsub905 subtract 2.0000E-3 1.002000 -> -1.0000000
-dqsub906 subtract 2.00000E-3 1.0020000 -> -1.00000000
-dqsub907 subtract 2.000000E-3 1.00200000 -> -1.000000000
-dqsub908 subtract 2.0000000E-3 1.002000000 -> -1.0000000000
-
--- subnormals and overflows covered under Add
-
--- Examples from SQL proposal (Krishna Kulkarni)
-dqsub1125 subtract 130E-2 120E-2 -> 0.10
-dqsub1126 subtract 130E-2 12E-1 -> 0.10
-dqsub1127 subtract 130E-2 1E0 -> 0.30
-dqsub1128 subtract 1E2 1E4 -> -9.9E+3
-
--- Null tests
-dqsub9990 subtract 10 # -> NaN Invalid_operation
-dqsub9991 subtract # 10 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- dqSubtract.decTest -- decQuad subtraction -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- This set of tests are for decQuads only; all arguments are +-- representable in a decQuad +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +-- [first group are 'quick confidence check'] +dqsub001 subtract 0 0 -> '0' +dqsub002 subtract 1 1 -> '0' +dqsub003 subtract 1 2 -> '-1' +dqsub004 subtract 2 1 -> '1' +dqsub005 subtract 2 2 -> '0' +dqsub006 subtract 3 2 -> '1' +dqsub007 subtract 2 3 -> '-1' + +dqsub011 subtract -0 0 -> '-0' +dqsub012 subtract -1 1 -> '-2' +dqsub013 subtract -1 2 -> '-3' +dqsub014 subtract -2 1 -> '-3' +dqsub015 subtract -2 2 -> '-4' +dqsub016 subtract -3 2 -> '-5' +dqsub017 subtract -2 3 -> '-5' + +dqsub021 subtract 0 -0 -> '0' +dqsub022 subtract 1 -1 -> '2' +dqsub023 subtract 1 -2 -> '3' +dqsub024 subtract 2 -1 -> '3' +dqsub025 subtract 2 -2 -> '4' +dqsub026 subtract 3 -2 -> '5' +dqsub027 subtract 2 -3 -> '5' + +dqsub030 subtract 11 1 -> 10 +dqsub031 subtract 10 1 -> 9 +dqsub032 subtract 9 1 -> 8 +dqsub033 subtract 1 1 -> 0 +dqsub034 subtract 0 1 -> -1 +dqsub035 subtract -1 1 -> -2 +dqsub036 subtract -9 1 -> -10 +dqsub037 subtract -10 1 -> -11 +dqsub038 subtract -11 1 -> -12 + +dqsub040 subtract '5.75' '3.3' -> '2.45' +dqsub041 subtract '5' '-3' -> '8' +dqsub042 subtract '-5' '-3' -> '-2' +dqsub043 subtract '-7' '2.5' -> '-9.5' +dqsub044 subtract '0.7' '0.3' -> '0.4' +dqsub045 subtract '1.3' '0.3' -> '1.0' +dqsub046 subtract '1.25' '1.25' -> '0.00' + +dqsub050 subtract '1.23456789' '1.00000000' -> '0.23456789' +dqsub051 subtract '1.23456789' '1.00000089' -> '0.23456700' + +dqsub060 subtract '70' '10000e+34' -> '-1.000000000000000000000000000000000E+38' Inexact Rounded +dqsub061 subtract '700' '10000e+34' -> '-1.000000000000000000000000000000000E+38' Inexact Rounded +dqsub062 subtract '7000' '10000e+34' -> '-9.999999999999999999999999999999999E+37' Inexact Rounded +dqsub063 subtract '70000' '10000e+34' -> '-9.999999999999999999999999999999993E+37' Rounded +dqsub064 subtract '700000' '10000e+34' -> '-9.999999999999999999999999999999930E+37' Rounded + -- symmetry: +dqsub065 subtract '10000e+34' '70' -> '1.000000000000000000000000000000000E+38' Inexact Rounded +dqsub066 subtract '10000e+34' '700' -> '1.000000000000000000000000000000000E+38' Inexact Rounded +dqsub067 subtract '10000e+34' '7000' -> '9.999999999999999999999999999999999E+37' Inexact Rounded +dqsub068 subtract '10000e+34' '70000' -> '9.999999999999999999999999999999993E+37' Rounded +dqsub069 subtract '10000e+34' '700000' -> '9.999999999999999999999999999999930E+37' Rounded + + -- some of the next group are really constructor tests +dqsub090 subtract '00.0' '0.0' -> '0.0' +dqsub091 subtract '00.0' '0.00' -> '0.00' +dqsub092 subtract '0.00' '00.0' -> '0.00' +dqsub093 subtract '00.0' '0.00' -> '0.00' +dqsub094 subtract '0.00' '00.0' -> '0.00' +dqsub095 subtract '3' '.3' -> '2.7' +dqsub096 subtract '3.' '.3' -> '2.7' +dqsub097 subtract '3.0' '.3' -> '2.7' +dqsub098 subtract '3.00' '.3' -> '2.70' +dqsub099 subtract '3' '3' -> '0' +dqsub100 subtract '3' '+3' -> '0' +dqsub101 subtract '3' '-3' -> '6' +dqsub102 subtract '3' '0.3' -> '2.7' +dqsub103 subtract '3.' '0.3' -> '2.7' +dqsub104 subtract '3.0' '0.3' -> '2.7' +dqsub105 subtract '3.00' '0.3' -> '2.70' +dqsub106 subtract '3' '3.0' -> '0.0' +dqsub107 subtract '3' '+3.0' -> '0.0' +dqsub108 subtract '3' '-3.0' -> '6.0' + +-- the above all from add; massaged and extended. Now some new ones... +-- [particularly important for comparisons] +-- NB: -xE-8 below were non-exponents pre-ANSI X3-274, and -1E-7 or 0E-7 +-- with input rounding. +dqsub120 subtract '10.23456784' '10.23456789' -> '-5E-8' +dqsub121 subtract '10.23456785' '10.23456789' -> '-4E-8' +dqsub122 subtract '10.23456786' '10.23456789' -> '-3E-8' +dqsub123 subtract '10.23456787' '10.23456789' -> '-2E-8' +dqsub124 subtract '10.23456788' '10.23456789' -> '-1E-8' +dqsub125 subtract '10.23456789' '10.23456789' -> '0E-8' +dqsub126 subtract '10.23456790' '10.23456789' -> '1E-8' +dqsub127 subtract '10.23456791' '10.23456789' -> '2E-8' +dqsub128 subtract '10.23456792' '10.23456789' -> '3E-8' +dqsub129 subtract '10.23456793' '10.23456789' -> '4E-8' +dqsub130 subtract '10.23456794' '10.23456789' -> '5E-8' +dqsub131 subtract '10.23456781' '10.23456786' -> '-5E-8' +dqsub132 subtract '10.23456782' '10.23456786' -> '-4E-8' +dqsub133 subtract '10.23456783' '10.23456786' -> '-3E-8' +dqsub134 subtract '10.23456784' '10.23456786' -> '-2E-8' +dqsub135 subtract '10.23456785' '10.23456786' -> '-1E-8' +dqsub136 subtract '10.23456786' '10.23456786' -> '0E-8' +dqsub137 subtract '10.23456787' '10.23456786' -> '1E-8' +dqsub138 subtract '10.23456788' '10.23456786' -> '2E-8' +dqsub139 subtract '10.23456789' '10.23456786' -> '3E-8' +dqsub140 subtract '10.23456790' '10.23456786' -> '4E-8' +dqsub141 subtract '10.23456791' '10.23456786' -> '5E-8' +dqsub142 subtract '1' '0.999999999' -> '1E-9' +dqsub143 subtract '0.999999999' '1' -> '-1E-9' +dqsub144 subtract '-10.23456780' '-10.23456786' -> '6E-8' +dqsub145 subtract '-10.23456790' '-10.23456786' -> '-4E-8' +dqsub146 subtract '-10.23456791' '-10.23456786' -> '-5E-8' + +-- additional scaled arithmetic tests [0.97 problem] +dqsub160 subtract '0' '.1' -> '-0.1' +dqsub161 subtract '00' '.97983' -> '-0.97983' +dqsub162 subtract '0' '.9' -> '-0.9' +dqsub163 subtract '0' '0.102' -> '-0.102' +dqsub164 subtract '0' '.4' -> '-0.4' +dqsub165 subtract '0' '.307' -> '-0.307' +dqsub166 subtract '0' '.43822' -> '-0.43822' +dqsub167 subtract '0' '.911' -> '-0.911' +dqsub168 subtract '.0' '.02' -> '-0.02' +dqsub169 subtract '00' '.392' -> '-0.392' +dqsub170 subtract '0' '.26' -> '-0.26' +dqsub171 subtract '0' '0.51' -> '-0.51' +dqsub172 subtract '0' '.2234' -> '-0.2234' +dqsub173 subtract '0' '.2' -> '-0.2' +dqsub174 subtract '.0' '.0008' -> '-0.0008' +-- 0. on left +dqsub180 subtract '0.0' '-.1' -> '0.1' +dqsub181 subtract '0.00' '-.97983' -> '0.97983' +dqsub182 subtract '0.0' '-.9' -> '0.9' +dqsub183 subtract '0.0' '-0.102' -> '0.102' +dqsub184 subtract '0.0' '-.4' -> '0.4' +dqsub185 subtract '0.0' '-.307' -> '0.307' +dqsub186 subtract '0.0' '-.43822' -> '0.43822' +dqsub187 subtract '0.0' '-.911' -> '0.911' +dqsub188 subtract '0.0' '-.02' -> '0.02' +dqsub189 subtract '0.00' '-.392' -> '0.392' +dqsub190 subtract '0.0' '-.26' -> '0.26' +dqsub191 subtract '0.0' '-0.51' -> '0.51' +dqsub192 subtract '0.0' '-.2234' -> '0.2234' +dqsub193 subtract '0.0' '-.2' -> '0.2' +dqsub194 subtract '0.0' '-.0008' -> '0.0008' +-- negatives of same +dqsub200 subtract '0' '-.1' -> '0.1' +dqsub201 subtract '00' '-.97983' -> '0.97983' +dqsub202 subtract '0' '-.9' -> '0.9' +dqsub203 subtract '0' '-0.102' -> '0.102' +dqsub204 subtract '0' '-.4' -> '0.4' +dqsub205 subtract '0' '-.307' -> '0.307' +dqsub206 subtract '0' '-.43822' -> '0.43822' +dqsub207 subtract '0' '-.911' -> '0.911' +dqsub208 subtract '.0' '-.02' -> '0.02' +dqsub209 subtract '00' '-.392' -> '0.392' +dqsub210 subtract '0' '-.26' -> '0.26' +dqsub211 subtract '0' '-0.51' -> '0.51' +dqsub212 subtract '0' '-.2234' -> '0.2234' +dqsub213 subtract '0' '-.2' -> '0.2' +dqsub214 subtract '.0' '-.0008' -> '0.0008' + +-- more fixed, LHS swaps [really the same as testcases under add] +dqsub220 subtract '-56267E-12' 0 -> '-5.6267E-8' +dqsub221 subtract '-56267E-11' 0 -> '-5.6267E-7' +dqsub222 subtract '-56267E-10' 0 -> '-0.0000056267' +dqsub223 subtract '-56267E-9' 0 -> '-0.000056267' +dqsub224 subtract '-56267E-8' 0 -> '-0.00056267' +dqsub225 subtract '-56267E-7' 0 -> '-0.0056267' +dqsub226 subtract '-56267E-6' 0 -> '-0.056267' +dqsub227 subtract '-56267E-5' 0 -> '-0.56267' +dqsub228 subtract '-56267E-2' 0 -> '-562.67' +dqsub229 subtract '-56267E-1' 0 -> '-5626.7' +dqsub230 subtract '-56267E-0' 0 -> '-56267' +-- symmetry ... +dqsub240 subtract 0 '-56267E-12' -> '5.6267E-8' +dqsub241 subtract 0 '-56267E-11' -> '5.6267E-7' +dqsub242 subtract 0 '-56267E-10' -> '0.0000056267' +dqsub243 subtract 0 '-56267E-9' -> '0.000056267' +dqsub244 subtract 0 '-56267E-8' -> '0.00056267' +dqsub245 subtract 0 '-56267E-7' -> '0.0056267' +dqsub246 subtract 0 '-56267E-6' -> '0.056267' +dqsub247 subtract 0 '-56267E-5' -> '0.56267' +dqsub248 subtract 0 '-56267E-2' -> '562.67' +dqsub249 subtract 0 '-56267E-1' -> '5626.7' +dqsub250 subtract 0 '-56267E-0' -> '56267' + +-- now some more from the 'new' add +dqsub301 subtract '1.23456789' '1.00000000' -> '0.23456789' +dqsub302 subtract '1.23456789' '1.00000011' -> '0.23456778' + +-- some carrying effects +dqsub321 subtract '0.9998' '0.0000' -> '0.9998' +dqsub322 subtract '0.9998' '0.0001' -> '0.9997' +dqsub323 subtract '0.9998' '0.0002' -> '0.9996' +dqsub324 subtract '0.9998' '0.0003' -> '0.9995' +dqsub325 subtract '0.9998' '-0.0000' -> '0.9998' +dqsub326 subtract '0.9998' '-0.0001' -> '0.9999' +dqsub327 subtract '0.9998' '-0.0002' -> '1.0000' +dqsub328 subtract '0.9998' '-0.0003' -> '1.0001' + +-- internal boundaries +dqsub346 subtract '10000e+9' '7' -> '9999999999993' +dqsub347 subtract '10000e+9' '70' -> '9999999999930' +dqsub348 subtract '10000e+9' '700' -> '9999999999300' +dqsub349 subtract '10000e+9' '7000' -> '9999999993000' +dqsub350 subtract '10000e+9' '70000' -> '9999999930000' +dqsub351 subtract '10000e+9' '700000' -> '9999999300000' +dqsub352 subtract '7' '10000e+9' -> '-9999999999993' +dqsub353 subtract '70' '10000e+9' -> '-9999999999930' +dqsub354 subtract '700' '10000e+9' -> '-9999999999300' +dqsub355 subtract '7000' '10000e+9' -> '-9999999993000' +dqsub356 subtract '70000' '10000e+9' -> '-9999999930000' +dqsub357 subtract '700000' '10000e+9' -> '-9999999300000' + +-- zero preservation +dqsub361 subtract 1 '0.0001' -> '0.9999' +dqsub362 subtract 1 '0.00001' -> '0.99999' +dqsub363 subtract 1 '0.000001' -> '0.999999' +dqsub364 subtract 1 '0.0000000000000000000000000000000001' -> '0.9999999999999999999999999999999999' +dqsub365 subtract 1 '0.00000000000000000000000000000000001' -> '1.000000000000000000000000000000000' Inexact Rounded +dqsub366 subtract 1 '0.000000000000000000000000000000000001' -> '1.000000000000000000000000000000000' Inexact Rounded + +-- some funny zeros [in case of bad signum] +dqsub370 subtract 1 0 -> 1 +dqsub371 subtract 1 0. -> 1 +dqsub372 subtract 1 .0 -> 1.0 +dqsub373 subtract 1 0.0 -> 1.0 +dqsub374 subtract 0 1 -> -1 +dqsub375 subtract 0. 1 -> -1 +dqsub376 subtract .0 1 -> -1.0 +dqsub377 subtract 0.0 1 -> -1.0 + +-- leading 0 digit before round +dqsub910 subtract -103519362 -51897955.3 -> -51621406.7 +dqsub911 subtract 159579.444 89827.5229 -> 69751.9211 + +dqsub920 subtract 333.0000000000000000000000000123456 33.00000000000000000000000001234566 -> 299.9999999999999999999999999999999 Inexact Rounded +dqsub921 subtract 333.0000000000000000000000000123456 33.00000000000000000000000001234565 -> 300.0000000000000000000000000000000 Inexact Rounded +dqsub922 subtract 133.0000000000000000000000000123456 33.00000000000000000000000001234565 -> 99.99999999999999999999999999999995 +dqsub923 subtract 133.0000000000000000000000000123456 33.00000000000000000000000001234564 -> 99.99999999999999999999999999999996 +dqsub924 subtract 133.0000000000000000000000000123456 33.00000000000000000000000001234540 -> 100.0000000000000000000000000000002 Rounded +dqsub925 subtract 133.0000000000000000000000000123456 43.00000000000000000000000001234560 -> 90.00000000000000000000000000000000 +dqsub926 subtract 133.0000000000000000000000000123456 43.00000000000000000000000001234561 -> 89.99999999999999999999999999999999 +dqsub927 subtract 133.0000000000000000000000000123456 43.00000000000000000000000001234566 -> 89.99999999999999999999999999999994 +dqsub928 subtract 101.0000000000000000000000000123456 91.00000000000000000000000001234566 -> 9.99999999999999999999999999999994 +dqsub929 subtract 101.0000000000000000000000000123456 99.00000000000000000000000001234566 -> 1.99999999999999999999999999999994 + +-- more LHS swaps [were fixed] +dqsub390 subtract '-56267E-10' 0 -> '-0.0000056267' +dqsub391 subtract '-56267E-6' 0 -> '-0.056267' +dqsub392 subtract '-56267E-5' 0 -> '-0.56267' +dqsub393 subtract '-56267E-4' 0 -> '-5.6267' +dqsub394 subtract '-56267E-3' 0 -> '-56.267' +dqsub395 subtract '-56267E-2' 0 -> '-562.67' +dqsub396 subtract '-56267E-1' 0 -> '-5626.7' +dqsub397 subtract '-56267E-0' 0 -> '-56267' +dqsub398 subtract '-5E-10' 0 -> '-5E-10' +dqsub399 subtract '-5E-7' 0 -> '-5E-7' +dqsub400 subtract '-5E-6' 0 -> '-0.000005' +dqsub401 subtract '-5E-5' 0 -> '-0.00005' +dqsub402 subtract '-5E-4' 0 -> '-0.0005' +dqsub403 subtract '-5E-1' 0 -> '-0.5' +dqsub404 subtract '-5E0' 0 -> '-5' +dqsub405 subtract '-5E1' 0 -> '-50' +dqsub406 subtract '-5E5' 0 -> '-500000' +dqsub407 subtract '-5E33' 0 -> '-5000000000000000000000000000000000' +dqsub408 subtract '-5E34' 0 -> '-5.000000000000000000000000000000000E+34' Rounded +dqsub409 subtract '-5E35' 0 -> '-5.000000000000000000000000000000000E+35' Rounded +dqsub410 subtract '-5E36' 0 -> '-5.000000000000000000000000000000000E+36' Rounded +dqsub411 subtract '-5E100' 0 -> '-5.000000000000000000000000000000000E+100' Rounded + +-- more RHS swaps [were fixed] +dqsub420 subtract 0 '-56267E-10' -> '0.0000056267' +dqsub421 subtract 0 '-56267E-6' -> '0.056267' +dqsub422 subtract 0 '-56267E-5' -> '0.56267' +dqsub423 subtract 0 '-56267E-4' -> '5.6267' +dqsub424 subtract 0 '-56267E-3' -> '56.267' +dqsub425 subtract 0 '-56267E-2' -> '562.67' +dqsub426 subtract 0 '-56267E-1' -> '5626.7' +dqsub427 subtract 0 '-56267E-0' -> '56267' +dqsub428 subtract 0 '-5E-10' -> '5E-10' +dqsub429 subtract 0 '-5E-7' -> '5E-7' +dqsub430 subtract 0 '-5E-6' -> '0.000005' +dqsub431 subtract 0 '-5E-5' -> '0.00005' +dqsub432 subtract 0 '-5E-4' -> '0.0005' +dqsub433 subtract 0 '-5E-1' -> '0.5' +dqsub434 subtract 0 '-5E0' -> '5' +dqsub435 subtract 0 '-5E1' -> '50' +dqsub436 subtract 0 '-5E5' -> '500000' +dqsub437 subtract 0 '-5E33' -> '5000000000000000000000000000000000' +dqsub438 subtract 0 '-5E34' -> '5.000000000000000000000000000000000E+34' Rounded +dqsub439 subtract 0 '-5E35' -> '5.000000000000000000000000000000000E+35' Rounded +dqsub440 subtract 0 '-5E36' -> '5.000000000000000000000000000000000E+36' Rounded +dqsub441 subtract 0 '-5E100' -> '5.000000000000000000000000000000000E+100' Rounded + + +-- try borderline precision, with carries, etc. +dqsub461 subtract '1E+16' '1' -> '9999999999999999' +dqsub462 subtract '1E+12' '-1.111' -> '1000000000001.111' +dqsub463 subtract '1.111' '-1E+12' -> '1000000000001.111' +dqsub464 subtract '-1' '-1E+16' -> '9999999999999999' +dqsub465 subtract '7E+15' '1' -> '6999999999999999' +dqsub466 subtract '7E+12' '-1.111' -> '7000000000001.111' +dqsub467 subtract '1.111' '-7E+12' -> '7000000000001.111' +dqsub468 subtract '-1' '-7E+15' -> '6999999999999999' + +-- 1234567890123456 1234567890123456 1 23456789012345 +dqsub470 subtract '0.4444444444444444444444444444444444' '-0.5555555555555555555555555555555563' -> '1.000000000000000000000000000000001' Inexact Rounded +dqsub471 subtract '0.4444444444444444444444444444444444' '-0.5555555555555555555555555555555562' -> '1.000000000000000000000000000000001' Inexact Rounded +dqsub472 subtract '0.4444444444444444444444444444444444' '-0.5555555555555555555555555555555561' -> '1.000000000000000000000000000000000' Inexact Rounded +dqsub473 subtract '0.4444444444444444444444444444444444' '-0.5555555555555555555555555555555560' -> '1.000000000000000000000000000000000' Inexact Rounded +dqsub474 subtract '0.4444444444444444444444444444444444' '-0.5555555555555555555555555555555559' -> '1.000000000000000000000000000000000' Inexact Rounded +dqsub475 subtract '0.4444444444444444444444444444444444' '-0.5555555555555555555555555555555558' -> '1.000000000000000000000000000000000' Inexact Rounded +dqsub476 subtract '0.4444444444444444444444444444444444' '-0.5555555555555555555555555555555557' -> '1.000000000000000000000000000000000' Inexact Rounded +dqsub477 subtract '0.4444444444444444444444444444444444' '-0.5555555555555555555555555555555556' -> '1.000000000000000000000000000000000' Rounded +dqsub478 subtract '0.4444444444444444444444444444444444' '-0.5555555555555555555555555555555555' -> '0.9999999999999999999999999999999999' +dqsub479 subtract '0.4444444444444444444444444444444444' '-0.5555555555555555555555555555555554' -> '0.9999999999999999999999999999999998' +dqsub480 subtract '0.4444444444444444444444444444444444' '-0.5555555555555555555555555555555553' -> '0.9999999999999999999999999999999997' +dqsub481 subtract '0.4444444444444444444444444444444444' '-0.5555555555555555555555555555555552' -> '0.9999999999999999999999999999999996' +dqsub482 subtract '0.4444444444444444444444444444444444' '-0.5555555555555555555555555555555551' -> '0.9999999999999999999999999999999995' +dqsub483 subtract '0.4444444444444444444444444444444444' '-0.5555555555555555555555555555555550' -> '0.9999999999999999999999999999999994' + +-- and some more, including residue effects and different roundings +rounding: half_up +dqsub500 subtract '1231234555555555555555555567456789' 0 -> '1231234555555555555555555567456789' +dqsub501 subtract '1231234555555555555555555567456789' 0.000000001 -> '1231234555555555555555555567456789' Inexact Rounded +dqsub502 subtract '1231234555555555555555555567456789' 0.000001 -> '1231234555555555555555555567456789' Inexact Rounded +dqsub503 subtract '1231234555555555555555555567456789' 0.1 -> '1231234555555555555555555567456789' Inexact Rounded +dqsub504 subtract '1231234555555555555555555567456789' 0.4 -> '1231234555555555555555555567456789' Inexact Rounded +dqsub505 subtract '1231234555555555555555555567456789' 0.49 -> '1231234555555555555555555567456789' Inexact Rounded +dqsub506 subtract '1231234555555555555555555567456789' 0.499999 -> '1231234555555555555555555567456789' Inexact Rounded +dqsub507 subtract '1231234555555555555555555567456789' 0.499999999 -> '1231234555555555555555555567456789' Inexact Rounded +dqsub508 subtract '1231234555555555555555555567456789' 0.5 -> '1231234555555555555555555567456789' Inexact Rounded +dqsub509 subtract '1231234555555555555555555567456789' 0.500000001 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub510 subtract '1231234555555555555555555567456789' 0.500001 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub511 subtract '1231234555555555555555555567456789' 0.51 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub512 subtract '1231234555555555555555555567456789' 0.6 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub513 subtract '1231234555555555555555555567456789' 0.9 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub514 subtract '1231234555555555555555555567456789' 0.99999 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub515 subtract '1231234555555555555555555567456789' 0.999999999 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub516 subtract '1231234555555555555555555567456789' 1 -> '1231234555555555555555555567456788' +dqsub517 subtract '1231234555555555555555555567456789' 1.000000001 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub518 subtract '1231234555555555555555555567456789' 1.00001 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub519 subtract '1231234555555555555555555567456789' 1.1 -> '1231234555555555555555555567456788' Inexact Rounded + +rounding: half_even +dqsub520 subtract '1231234555555555555555555567456789' 0 -> '1231234555555555555555555567456789' +dqsub521 subtract '1231234555555555555555555567456789' 0.000000001 -> '1231234555555555555555555567456789' Inexact Rounded +dqsub522 subtract '1231234555555555555555555567456789' 0.000001 -> '1231234555555555555555555567456789' Inexact Rounded +dqsub523 subtract '1231234555555555555555555567456789' 0.1 -> '1231234555555555555555555567456789' Inexact Rounded +dqsub524 subtract '1231234555555555555555555567456789' 0.4 -> '1231234555555555555555555567456789' Inexact Rounded +dqsub525 subtract '1231234555555555555555555567456789' 0.49 -> '1231234555555555555555555567456789' Inexact Rounded +dqsub526 subtract '1231234555555555555555555567456789' 0.499999 -> '1231234555555555555555555567456789' Inexact Rounded +dqsub527 subtract '1231234555555555555555555567456789' 0.499999999 -> '1231234555555555555555555567456789' Inexact Rounded +dqsub528 subtract '1231234555555555555555555567456789' 0.5 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub529 subtract '1231234555555555555555555567456789' 0.500000001 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub530 subtract '1231234555555555555555555567456789' 0.500001 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub531 subtract '1231234555555555555555555567456789' 0.51 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub532 subtract '1231234555555555555555555567456789' 0.6 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub533 subtract '1231234555555555555555555567456789' 0.9 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub534 subtract '1231234555555555555555555567456789' 0.99999 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub535 subtract '1231234555555555555555555567456789' 0.999999999 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub536 subtract '1231234555555555555555555567456789' 1 -> '1231234555555555555555555567456788' +dqsub537 subtract '1231234555555555555555555567456789' 1.00000001 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub538 subtract '1231234555555555555555555567456789' 1.00001 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub539 subtract '1231234555555555555555555567456789' 1.1 -> '1231234555555555555555555567456788' Inexact Rounded +-- critical few with even bottom digit... +dqsub540 subtract '1231234555555555555555555567456788' 0.499999999 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub541 subtract '1231234555555555555555555567456788' 0.5 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub542 subtract '1231234555555555555555555567456788' 0.500000001 -> '1231234555555555555555555567456787' Inexact Rounded + +rounding: down +dqsub550 subtract '1231234555555555555555555567456789' 0 -> '1231234555555555555555555567456789' +dqsub551 subtract '1231234555555555555555555567456789' 0.000000001 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub552 subtract '1231234555555555555555555567456789' 0.000001 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub553 subtract '1231234555555555555555555567456789' 0.1 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub554 subtract '1231234555555555555555555567456789' 0.4 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub555 subtract '1231234555555555555555555567456789' 0.49 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub556 subtract '1231234555555555555555555567456789' 0.499999 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub557 subtract '1231234555555555555555555567456789' 0.499999999 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub558 subtract '1231234555555555555555555567456789' 0.5 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub559 subtract '1231234555555555555555555567456789' 0.500000001 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub560 subtract '1231234555555555555555555567456789' 0.500001 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub561 subtract '1231234555555555555555555567456789' 0.51 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub562 subtract '1231234555555555555555555567456789' 0.6 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub563 subtract '1231234555555555555555555567456789' 0.9 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub564 subtract '1231234555555555555555555567456789' 0.99999 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub565 subtract '1231234555555555555555555567456789' 0.999999999 -> '1231234555555555555555555567456788' Inexact Rounded +dqsub566 subtract '1231234555555555555555555567456789' 1 -> '1231234555555555555555555567456788' +dqsub567 subtract '1231234555555555555555555567456789' 1.00000001 -> '1231234555555555555555555567456787' Inexact Rounded +dqsub568 subtract '1231234555555555555555555567456789' 1.00001 -> '1231234555555555555555555567456787' Inexact Rounded +dqsub569 subtract '1231234555555555555555555567456789' 1.1 -> '1231234555555555555555555567456787' Inexact Rounded + +-- symmetry... +rounding: half_up +dqsub600 subtract 0 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789' +dqsub601 subtract 0.000000001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789' Inexact Rounded +dqsub602 subtract 0.000001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789' Inexact Rounded +dqsub603 subtract 0.1 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789' Inexact Rounded +dqsub604 subtract 0.4 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789' Inexact Rounded +dqsub605 subtract 0.49 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789' Inexact Rounded +dqsub606 subtract 0.499999 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789' Inexact Rounded +dqsub607 subtract 0.499999999 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789' Inexact Rounded +dqsub608 subtract 0.5 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789' Inexact Rounded +dqsub609 subtract 0.500000001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub610 subtract 0.500001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub611 subtract 0.51 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub612 subtract 0.6 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub613 subtract 0.9 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub614 subtract 0.99999 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub615 subtract 0.999999999 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub616 subtract 1 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' +dqsub617 subtract 1.000000001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub618 subtract 1.00001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub619 subtract 1.1 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded + +rounding: half_even +dqsub620 subtract 0 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789' +dqsub621 subtract 0.000000001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789' Inexact Rounded +dqsub622 subtract 0.000001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789' Inexact Rounded +dqsub623 subtract 0.1 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789' Inexact Rounded +dqsub624 subtract 0.4 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789' Inexact Rounded +dqsub625 subtract 0.49 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789' Inexact Rounded +dqsub626 subtract 0.499999 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789' Inexact Rounded +dqsub627 subtract 0.499999999 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789' Inexact Rounded +dqsub628 subtract 0.5 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub629 subtract 0.500000001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub630 subtract 0.500001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub631 subtract 0.51 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub632 subtract 0.6 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub633 subtract 0.9 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub634 subtract 0.99999 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub635 subtract 0.999999999 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub636 subtract 1 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' +dqsub637 subtract 1.00000001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub638 subtract 1.00001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub639 subtract 1.1 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +-- critical few with even bottom digit... +dqsub640 subtract 0.499999999 '1231234555555555555555555567456788' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub641 subtract 0.5 '1231234555555555555555555567456788' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub642 subtract 0.500000001 '1231234555555555555555555567456788' -> '-1231234555555555555555555567456787' Inexact Rounded + +rounding: down +dqsub650 subtract 0 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456789' +dqsub651 subtract 0.000000001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub652 subtract 0.000001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub653 subtract 0.1 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub654 subtract 0.4 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub655 subtract 0.49 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub656 subtract 0.499999 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub657 subtract 0.499999999 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub658 subtract 0.5 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub659 subtract 0.500000001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub660 subtract 0.500001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub661 subtract 0.51 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub662 subtract 0.6 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub663 subtract 0.9 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub664 subtract 0.99999 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub665 subtract 0.999999999 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' Inexact Rounded +dqsub666 subtract 1 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456788' +dqsub667 subtract 1.00000001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456787' Inexact Rounded +dqsub668 subtract 1.00001 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456787' Inexact Rounded +dqsub669 subtract 1.1 '1231234555555555555555555567456789' -> '-1231234555555555555555555567456787' Inexact Rounded + + +-- lots of leading zeros in intermediate result, and showing effects of +-- input rounding would have affected the following +rounding: half_up +dqsub670 subtract '1234567456789' '1234567456788.1' -> 0.9 +dqsub671 subtract '1234567456789' '1234567456788.9' -> 0.1 +dqsub672 subtract '1234567456789' '1234567456789.1' -> -0.1 +dqsub673 subtract '1234567456789' '1234567456789.5' -> -0.5 +dqsub674 subtract '1234567456789' '1234567456789.9' -> -0.9 + +rounding: half_even +dqsub680 subtract '1234567456789' '1234567456788.1' -> 0.9 +dqsub681 subtract '1234567456789' '1234567456788.9' -> 0.1 +dqsub682 subtract '1234567456789' '1234567456789.1' -> -0.1 +dqsub683 subtract '1234567456789' '1234567456789.5' -> -0.5 +dqsub684 subtract '1234567456789' '1234567456789.9' -> -0.9 + +dqsub685 subtract '1234567456788' '1234567456787.1' -> 0.9 +dqsub686 subtract '1234567456788' '1234567456787.9' -> 0.1 +dqsub687 subtract '1234567456788' '1234567456788.1' -> -0.1 +dqsub688 subtract '1234567456788' '1234567456788.5' -> -0.5 +dqsub689 subtract '1234567456788' '1234567456788.9' -> -0.9 + +rounding: down +dqsub690 subtract '1234567456789' '1234567456788.1' -> 0.9 +dqsub691 subtract '1234567456789' '1234567456788.9' -> 0.1 +dqsub692 subtract '1234567456789' '1234567456789.1' -> -0.1 +dqsub693 subtract '1234567456789' '1234567456789.5' -> -0.5 +dqsub694 subtract '1234567456789' '1234567456789.9' -> -0.9 + +-- Specials +dqsub780 subtract -Inf Inf -> -Infinity +dqsub781 subtract -Inf 1000 -> -Infinity +dqsub782 subtract -Inf 1 -> -Infinity +dqsub783 subtract -Inf -0 -> -Infinity +dqsub784 subtract -Inf -1 -> -Infinity +dqsub785 subtract -Inf -1000 -> -Infinity +dqsub787 subtract -1000 Inf -> -Infinity +dqsub788 subtract -Inf Inf -> -Infinity +dqsub789 subtract -1 Inf -> -Infinity +dqsub790 subtract 0 Inf -> -Infinity +dqsub791 subtract 1 Inf -> -Infinity +dqsub792 subtract 1000 Inf -> -Infinity + +dqsub800 subtract Inf Inf -> NaN Invalid_operation +dqsub801 subtract Inf 1000 -> Infinity +dqsub802 subtract Inf 1 -> Infinity +dqsub803 subtract Inf 0 -> Infinity +dqsub804 subtract Inf -0 -> Infinity +dqsub805 subtract Inf -1 -> Infinity +dqsub806 subtract Inf -1000 -> Infinity +dqsub807 subtract Inf -Inf -> Infinity +dqsub808 subtract -1000 -Inf -> Infinity +dqsub809 subtract -Inf -Inf -> NaN Invalid_operation +dqsub810 subtract -1 -Inf -> Infinity +dqsub811 subtract -0 -Inf -> Infinity +dqsub812 subtract 0 -Inf -> Infinity +dqsub813 subtract 1 -Inf -> Infinity +dqsub814 subtract 1000 -Inf -> Infinity +dqsub815 subtract Inf -Inf -> Infinity + +dqsub821 subtract NaN Inf -> NaN +dqsub822 subtract -NaN 1000 -> -NaN +dqsub823 subtract NaN 1 -> NaN +dqsub824 subtract NaN 0 -> NaN +dqsub825 subtract NaN -0 -> NaN +dqsub826 subtract NaN -1 -> NaN +dqsub827 subtract NaN -1000 -> NaN +dqsub828 subtract NaN -Inf -> NaN +dqsub829 subtract -NaN NaN -> -NaN +dqsub830 subtract -Inf NaN -> NaN +dqsub831 subtract -1000 NaN -> NaN +dqsub832 subtract -1 NaN -> NaN +dqsub833 subtract -0 NaN -> NaN +dqsub834 subtract 0 NaN -> NaN +dqsub835 subtract 1 NaN -> NaN +dqsub836 subtract 1000 -NaN -> -NaN +dqsub837 subtract Inf NaN -> NaN + +dqsub841 subtract sNaN Inf -> NaN Invalid_operation +dqsub842 subtract -sNaN 1000 -> -NaN Invalid_operation +dqsub843 subtract sNaN 1 -> NaN Invalid_operation +dqsub844 subtract sNaN 0 -> NaN Invalid_operation +dqsub845 subtract sNaN -0 -> NaN Invalid_operation +dqsub846 subtract sNaN -1 -> NaN Invalid_operation +dqsub847 subtract sNaN -1000 -> NaN Invalid_operation +dqsub848 subtract sNaN NaN -> NaN Invalid_operation +dqsub849 subtract sNaN sNaN -> NaN Invalid_operation +dqsub850 subtract NaN sNaN -> NaN Invalid_operation +dqsub851 subtract -Inf -sNaN -> -NaN Invalid_operation +dqsub852 subtract -1000 sNaN -> NaN Invalid_operation +dqsub853 subtract -1 sNaN -> NaN Invalid_operation +dqsub854 subtract -0 sNaN -> NaN Invalid_operation +dqsub855 subtract 0 sNaN -> NaN Invalid_operation +dqsub856 subtract 1 sNaN -> NaN Invalid_operation +dqsub857 subtract 1000 sNaN -> NaN Invalid_operation +dqsub858 subtract Inf sNaN -> NaN Invalid_operation +dqsub859 subtract NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +dqsub861 subtract NaN01 -Inf -> NaN1 +dqsub862 subtract -NaN02 -1000 -> -NaN2 +dqsub863 subtract NaN03 1000 -> NaN3 +dqsub864 subtract NaN04 Inf -> NaN4 +dqsub865 subtract NaN05 NaN61 -> NaN5 +dqsub866 subtract -Inf -NaN71 -> -NaN71 +dqsub867 subtract -1000 NaN81 -> NaN81 +dqsub868 subtract 1000 NaN91 -> NaN91 +dqsub869 subtract Inf NaN101 -> NaN101 +dqsub871 subtract sNaN011 -Inf -> NaN11 Invalid_operation +dqsub872 subtract sNaN012 -1000 -> NaN12 Invalid_operation +dqsub873 subtract -sNaN013 1000 -> -NaN13 Invalid_operation +dqsub874 subtract sNaN014 NaN171 -> NaN14 Invalid_operation +dqsub875 subtract sNaN015 sNaN181 -> NaN15 Invalid_operation +dqsub876 subtract NaN016 sNaN191 -> NaN191 Invalid_operation +dqsub877 subtract -Inf sNaN201 -> NaN201 Invalid_operation +dqsub878 subtract -1000 sNaN211 -> NaN211 Invalid_operation +dqsub879 subtract 1000 -sNaN221 -> -NaN221 Invalid_operation +dqsub880 subtract Inf sNaN231 -> NaN231 Invalid_operation +dqsub881 subtract NaN025 sNaN241 -> NaN241 Invalid_operation + +-- edge case spills +dqsub901 subtract 2.E-3 1.002 -> -1.000 +dqsub902 subtract 2.0E-3 1.002 -> -1.0000 +dqsub903 subtract 2.00E-3 1.0020 -> -1.00000 +dqsub904 subtract 2.000E-3 1.00200 -> -1.000000 +dqsub905 subtract 2.0000E-3 1.002000 -> -1.0000000 +dqsub906 subtract 2.00000E-3 1.0020000 -> -1.00000000 +dqsub907 subtract 2.000000E-3 1.00200000 -> -1.000000000 +dqsub908 subtract 2.0000000E-3 1.002000000 -> -1.0000000000 + +-- subnormals and overflows covered under Add + +-- Examples from SQL proposal (Krishna Kulkarni) +dqsub1125 subtract 130E-2 120E-2 -> 0.10 +dqsub1126 subtract 130E-2 12E-1 -> 0.10 +dqsub1127 subtract 130E-2 1E0 -> 0.30 +dqsub1128 subtract 1E2 1E4 -> -9.9E+3 + +-- Null tests +dqsub9990 subtract 10 # -> NaN Invalid_operation +dqsub9991 subtract # 10 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/dqToIntegral.decTest b/Lib/test/decimaltestdata/dqToIntegral.decTest index eb12387eab..3055de572d 100644 --- a/Lib/test/decimaltestdata/dqToIntegral.decTest +++ b/Lib/test/decimaltestdata/dqToIntegral.decTest @@ -1,257 +1,257 @@ -------------------------------------------------------------------------
--- dqToIntegral.decTest -- round Quad to integral value --
--- Copyright (c) IBM Corporation, 2001, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- This set of tests tests the extended specification 'round-to-integral
--- value-exact' operations (from IEEE 854, later modified in 754r).
--- All non-zero results are defined as being those from either copy or
--- quantize, so those are assumed to have been tested extensively
--- elsewhere; the tests here are for integrity, rounding mode, etc.
--- Also, it is assumed the test harness will use these tests for both
--- ToIntegralExact (which does set Inexact) and the fixed-name
--- functions (which do not set Inexact).
-
--- Note that decNumber implements an earlier definition of toIntegral
--- which never sets Inexact; the decTest operator for that is called
--- 'tointegral' instead of 'tointegralx'.
-
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
-dqintx001 tointegralx 0 -> 0
-dqintx002 tointegralx 0.0 -> 0
-dqintx003 tointegralx 0.1 -> 0 Inexact Rounded
-dqintx004 tointegralx 0.2 -> 0 Inexact Rounded
-dqintx005 tointegralx 0.3 -> 0 Inexact Rounded
-dqintx006 tointegralx 0.4 -> 0 Inexact Rounded
-dqintx007 tointegralx 0.5 -> 0 Inexact Rounded
-dqintx008 tointegralx 0.6 -> 1 Inexact Rounded
-dqintx009 tointegralx 0.7 -> 1 Inexact Rounded
-dqintx010 tointegralx 0.8 -> 1 Inexact Rounded
-dqintx011 tointegralx 0.9 -> 1 Inexact Rounded
-dqintx012 tointegralx 1 -> 1
-dqintx013 tointegralx 1.0 -> 1 Rounded
-dqintx014 tointegralx 1.1 -> 1 Inexact Rounded
-dqintx015 tointegralx 1.2 -> 1 Inexact Rounded
-dqintx016 tointegralx 1.3 -> 1 Inexact Rounded
-dqintx017 tointegralx 1.4 -> 1 Inexact Rounded
-dqintx018 tointegralx 1.5 -> 2 Inexact Rounded
-dqintx019 tointegralx 1.6 -> 2 Inexact Rounded
-dqintx020 tointegralx 1.7 -> 2 Inexact Rounded
-dqintx021 tointegralx 1.8 -> 2 Inexact Rounded
-dqintx022 tointegralx 1.9 -> 2 Inexact Rounded
--- negatives
-dqintx031 tointegralx -0 -> -0
-dqintx032 tointegralx -0.0 -> -0
-dqintx033 tointegralx -0.1 -> -0 Inexact Rounded
-dqintx034 tointegralx -0.2 -> -0 Inexact Rounded
-dqintx035 tointegralx -0.3 -> -0 Inexact Rounded
-dqintx036 tointegralx -0.4 -> -0 Inexact Rounded
-dqintx037 tointegralx -0.5 -> -0 Inexact Rounded
-dqintx038 tointegralx -0.6 -> -1 Inexact Rounded
-dqintx039 tointegralx -0.7 -> -1 Inexact Rounded
-dqintx040 tointegralx -0.8 -> -1 Inexact Rounded
-dqintx041 tointegralx -0.9 -> -1 Inexact Rounded
-dqintx042 tointegralx -1 -> -1
-dqintx043 tointegralx -1.0 -> -1 Rounded
-dqintx044 tointegralx -1.1 -> -1 Inexact Rounded
-dqintx045 tointegralx -1.2 -> -1 Inexact Rounded
-dqintx046 tointegralx -1.3 -> -1 Inexact Rounded
-dqintx047 tointegralx -1.4 -> -1 Inexact Rounded
-dqintx048 tointegralx -1.5 -> -2 Inexact Rounded
-dqintx049 tointegralx -1.6 -> -2 Inexact Rounded
-dqintx050 tointegralx -1.7 -> -2 Inexact Rounded
-dqintx051 tointegralx -1.8 -> -2 Inexact Rounded
-dqintx052 tointegralx -1.9 -> -2 Inexact Rounded
--- next two would be NaN using quantize(x, 0)
-dqintx053 tointegralx 10E+60 -> 1.0E+61
-dqintx054 tointegralx -10E+60 -> -1.0E+61
-
--- numbers around precision
-dqintx060 tointegralx '56267E-17' -> '0' Inexact Rounded
-dqintx061 tointegralx '56267E-5' -> '1' Inexact Rounded
-dqintx062 tointegralx '56267E-2' -> '563' Inexact Rounded
-dqintx063 tointegralx '56267E-1' -> '5627' Inexact Rounded
-dqintx065 tointegralx '56267E-0' -> '56267'
-dqintx066 tointegralx '56267E+0' -> '56267'
-dqintx067 tointegralx '56267E+1' -> '5.6267E+5'
-dqintx068 tointegralx '56267E+9' -> '5.6267E+13'
-dqintx069 tointegralx '56267E+10' -> '5.6267E+14'
-dqintx070 tointegralx '56267E+11' -> '5.6267E+15'
-dqintx071 tointegralx '56267E+12' -> '5.6267E+16'
-dqintx072 tointegralx '56267E+13' -> '5.6267E+17'
-dqintx073 tointegralx '1.23E+96' -> '1.23E+96'
-dqintx074 tointegralx '1.23E+6144' -> #47ffd300000000000000000000000000 Clamped
-
-dqintx080 tointegralx '-56267E-10' -> '-0' Inexact Rounded
-dqintx081 tointegralx '-56267E-5' -> '-1' Inexact Rounded
-dqintx082 tointegralx '-56267E-2' -> '-563' Inexact Rounded
-dqintx083 tointegralx '-56267E-1' -> '-5627' Inexact Rounded
-dqintx085 tointegralx '-56267E-0' -> '-56267'
-dqintx086 tointegralx '-56267E+0' -> '-56267'
-dqintx087 tointegralx '-56267E+1' -> '-5.6267E+5'
-dqintx088 tointegralx '-56267E+9' -> '-5.6267E+13'
-dqintx089 tointegralx '-56267E+10' -> '-5.6267E+14'
-dqintx090 tointegralx '-56267E+11' -> '-5.6267E+15'
-dqintx091 tointegralx '-56267E+12' -> '-5.6267E+16'
-dqintx092 tointegralx '-56267E+13' -> '-5.6267E+17'
-dqintx093 tointegralx '-1.23E+96' -> '-1.23E+96'
-dqintx094 tointegralx '-1.23E+6144' -> #c7ffd300000000000000000000000000 Clamped
-
--- subnormal inputs
-dqintx100 tointegralx 1E-299 -> 0 Inexact Rounded
-dqintx101 tointegralx 0.1E-299 -> 0 Inexact Rounded
-dqintx102 tointegralx 0.01E-299 -> 0 Inexact Rounded
-dqintx103 tointegralx 0E-299 -> 0
-
--- specials and zeros
-dqintx120 tointegralx 'Inf' -> Infinity
-dqintx121 tointegralx '-Inf' -> -Infinity
-dqintx122 tointegralx NaN -> NaN
-dqintx123 tointegralx sNaN -> NaN Invalid_operation
-dqintx124 tointegralx 0 -> 0
-dqintx125 tointegralx -0 -> -0
-dqintx126 tointegralx 0.000 -> 0
-dqintx127 tointegralx 0.00 -> 0
-dqintx128 tointegralx 0.0 -> 0
-dqintx129 tointegralx 0 -> 0
-dqintx130 tointegralx 0E-3 -> 0
-dqintx131 tointegralx 0E-2 -> 0
-dqintx132 tointegralx 0E-1 -> 0
-dqintx133 tointegralx 0E-0 -> 0
-dqintx134 tointegralx 0E+1 -> 0E+1
-dqintx135 tointegralx 0E+2 -> 0E+2
-dqintx136 tointegralx 0E+3 -> 0E+3
-dqintx137 tointegralx 0E+4 -> 0E+4
-dqintx138 tointegralx 0E+5 -> 0E+5
-dqintx139 tointegralx -0.000 -> -0
-dqintx140 tointegralx -0.00 -> -0
-dqintx141 tointegralx -0.0 -> -0
-dqintx142 tointegralx -0 -> -0
-dqintx143 tointegralx -0E-3 -> -0
-dqintx144 tointegralx -0E-2 -> -0
-dqintx145 tointegralx -0E-1 -> -0
-dqintx146 tointegralx -0E-0 -> -0
-dqintx147 tointegralx -0E+1 -> -0E+1
-dqintx148 tointegralx -0E+2 -> -0E+2
-dqintx149 tointegralx -0E+3 -> -0E+3
-dqintx150 tointegralx -0E+4 -> -0E+4
-dqintx151 tointegralx -0E+5 -> -0E+5
--- propagating NaNs
-dqintx152 tointegralx NaN808 -> NaN808
-dqintx153 tointegralx sNaN080 -> NaN80 Invalid_operation
-dqintx154 tointegralx -NaN808 -> -NaN808
-dqintx155 tointegralx -sNaN080 -> -NaN80 Invalid_operation
-dqintx156 tointegralx -NaN -> -NaN
-dqintx157 tointegralx -sNaN -> -NaN Invalid_operation
-
--- examples
-rounding: half_up
-dqintx200 tointegralx 2.1 -> 2 Inexact Rounded
-dqintx201 tointegralx 100 -> 100
-dqintx202 tointegralx 100.0 -> 100 Rounded
-dqintx203 tointegralx 101.5 -> 102 Inexact Rounded
-dqintx204 tointegralx -101.5 -> -102 Inexact Rounded
-dqintx205 tointegralx 10E+5 -> 1.0E+6
-dqintx206 tointegralx 7.89E+77 -> 7.89E+77
-dqintx207 tointegralx -Inf -> -Infinity
-
-
--- all rounding modes
-rounding: half_even
-dqintx210 tointegralx 55.5 -> 56 Inexact Rounded
-dqintx211 tointegralx 56.5 -> 56 Inexact Rounded
-dqintx212 tointegralx 57.5 -> 58 Inexact Rounded
-dqintx213 tointegralx -55.5 -> -56 Inexact Rounded
-dqintx214 tointegralx -56.5 -> -56 Inexact Rounded
-dqintx215 tointegralx -57.5 -> -58 Inexact Rounded
-
-rounding: half_up
-
-dqintx220 tointegralx 55.5 -> 56 Inexact Rounded
-dqintx221 tointegralx 56.5 -> 57 Inexact Rounded
-dqintx222 tointegralx 57.5 -> 58 Inexact Rounded
-dqintx223 tointegralx -55.5 -> -56 Inexact Rounded
-dqintx224 tointegralx -56.5 -> -57 Inexact Rounded
-dqintx225 tointegralx -57.5 -> -58 Inexact Rounded
-
-rounding: half_down
-
-dqintx230 tointegralx 55.5 -> 55 Inexact Rounded
-dqintx231 tointegralx 56.5 -> 56 Inexact Rounded
-dqintx232 tointegralx 57.5 -> 57 Inexact Rounded
-dqintx233 tointegralx -55.5 -> -55 Inexact Rounded
-dqintx234 tointegralx -56.5 -> -56 Inexact Rounded
-dqintx235 tointegralx -57.5 -> -57 Inexact Rounded
-
-rounding: up
-
-dqintx240 tointegralx 55.3 -> 56 Inexact Rounded
-dqintx241 tointegralx 56.3 -> 57 Inexact Rounded
-dqintx242 tointegralx 57.3 -> 58 Inexact Rounded
-dqintx243 tointegralx -55.3 -> -56 Inexact Rounded
-dqintx244 tointegralx -56.3 -> -57 Inexact Rounded
-dqintx245 tointegralx -57.3 -> -58 Inexact Rounded
-
-rounding: down
-
-dqintx250 tointegralx 55.7 -> 55 Inexact Rounded
-dqintx251 tointegralx 56.7 -> 56 Inexact Rounded
-dqintx252 tointegralx 57.7 -> 57 Inexact Rounded
-dqintx253 tointegralx -55.7 -> -55 Inexact Rounded
-dqintx254 tointegralx -56.7 -> -56 Inexact Rounded
-dqintx255 tointegralx -57.7 -> -57 Inexact Rounded
-
-rounding: ceiling
-
-dqintx260 tointegralx 55.3 -> 56 Inexact Rounded
-dqintx261 tointegralx 56.3 -> 57 Inexact Rounded
-dqintx262 tointegralx 57.3 -> 58 Inexact Rounded
-dqintx263 tointegralx -55.3 -> -55 Inexact Rounded
-dqintx264 tointegralx -56.3 -> -56 Inexact Rounded
-dqintx265 tointegralx -57.3 -> -57 Inexact Rounded
-
-rounding: floor
-
-dqintx270 tointegralx 55.7 -> 55 Inexact Rounded
-dqintx271 tointegralx 56.7 -> 56 Inexact Rounded
-dqintx272 tointegralx 57.7 -> 57 Inexact Rounded
-dqintx273 tointegralx -55.7 -> -56 Inexact Rounded
-dqintx274 tointegralx -56.7 -> -57 Inexact Rounded
-dqintx275 tointegralx -57.7 -> -58 Inexact Rounded
-
--- Int and uInt32 edge values for testing conversions
-dqintx300 tointegralx -2147483646 -> -2147483646
-dqintx301 tointegralx -2147483647 -> -2147483647
-dqintx302 tointegralx -2147483648 -> -2147483648
-dqintx303 tointegralx -2147483649 -> -2147483649
-dqintx304 tointegralx 2147483646 -> 2147483646
-dqintx305 tointegralx 2147483647 -> 2147483647
-dqintx306 tointegralx 2147483648 -> 2147483648
-dqintx307 tointegralx 2147483649 -> 2147483649
-dqintx308 tointegralx 4294967294 -> 4294967294
-dqintx309 tointegralx 4294967295 -> 4294967295
-dqintx310 tointegralx 4294967296 -> 4294967296
-dqintx311 tointegralx 4294967297 -> 4294967297
-
+------------------------------------------------------------------------ +-- dqToIntegral.decTest -- round Quad to integral value -- +-- Copyright (c) IBM Corporation, 2001, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- This set of tests tests the extended specification 'round-to-integral +-- value-exact' operations (from IEEE 854, later modified in 754r). +-- All non-zero results are defined as being those from either copy or +-- quantize, so those are assumed to have been tested extensively +-- elsewhere; the tests here are for integrity, rounding mode, etc. +-- Also, it is assumed the test harness will use these tests for both +-- ToIntegralExact (which does set Inexact) and the fixed-name +-- functions (which do not set Inexact). + +-- Note that decNumber implements an earlier definition of toIntegral +-- which never sets Inexact; the decTest operator for that is called +-- 'tointegral' instead of 'tointegralx'. + +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +dqintx001 tointegralx 0 -> 0 +dqintx002 tointegralx 0.0 -> 0 +dqintx003 tointegralx 0.1 -> 0 Inexact Rounded +dqintx004 tointegralx 0.2 -> 0 Inexact Rounded +dqintx005 tointegralx 0.3 -> 0 Inexact Rounded +dqintx006 tointegralx 0.4 -> 0 Inexact Rounded +dqintx007 tointegralx 0.5 -> 0 Inexact Rounded +dqintx008 tointegralx 0.6 -> 1 Inexact Rounded +dqintx009 tointegralx 0.7 -> 1 Inexact Rounded +dqintx010 tointegralx 0.8 -> 1 Inexact Rounded +dqintx011 tointegralx 0.9 -> 1 Inexact Rounded +dqintx012 tointegralx 1 -> 1 +dqintx013 tointegralx 1.0 -> 1 Rounded +dqintx014 tointegralx 1.1 -> 1 Inexact Rounded +dqintx015 tointegralx 1.2 -> 1 Inexact Rounded +dqintx016 tointegralx 1.3 -> 1 Inexact Rounded +dqintx017 tointegralx 1.4 -> 1 Inexact Rounded +dqintx018 tointegralx 1.5 -> 2 Inexact Rounded +dqintx019 tointegralx 1.6 -> 2 Inexact Rounded +dqintx020 tointegralx 1.7 -> 2 Inexact Rounded +dqintx021 tointegralx 1.8 -> 2 Inexact Rounded +dqintx022 tointegralx 1.9 -> 2 Inexact Rounded +-- negatives +dqintx031 tointegralx -0 -> -0 +dqintx032 tointegralx -0.0 -> -0 +dqintx033 tointegralx -0.1 -> -0 Inexact Rounded +dqintx034 tointegralx -0.2 -> -0 Inexact Rounded +dqintx035 tointegralx -0.3 -> -0 Inexact Rounded +dqintx036 tointegralx -0.4 -> -0 Inexact Rounded +dqintx037 tointegralx -0.5 -> -0 Inexact Rounded +dqintx038 tointegralx -0.6 -> -1 Inexact Rounded +dqintx039 tointegralx -0.7 -> -1 Inexact Rounded +dqintx040 tointegralx -0.8 -> -1 Inexact Rounded +dqintx041 tointegralx -0.9 -> -1 Inexact Rounded +dqintx042 tointegralx -1 -> -1 +dqintx043 tointegralx -1.0 -> -1 Rounded +dqintx044 tointegralx -1.1 -> -1 Inexact Rounded +dqintx045 tointegralx -1.2 -> -1 Inexact Rounded +dqintx046 tointegralx -1.3 -> -1 Inexact Rounded +dqintx047 tointegralx -1.4 -> -1 Inexact Rounded +dqintx048 tointegralx -1.5 -> -2 Inexact Rounded +dqintx049 tointegralx -1.6 -> -2 Inexact Rounded +dqintx050 tointegralx -1.7 -> -2 Inexact Rounded +dqintx051 tointegralx -1.8 -> -2 Inexact Rounded +dqintx052 tointegralx -1.9 -> -2 Inexact Rounded +-- next two would be NaN using quantize(x, 0) +dqintx053 tointegralx 10E+60 -> 1.0E+61 +dqintx054 tointegralx -10E+60 -> -1.0E+61 + +-- numbers around precision +dqintx060 tointegralx '56267E-17' -> '0' Inexact Rounded +dqintx061 tointegralx '56267E-5' -> '1' Inexact Rounded +dqintx062 tointegralx '56267E-2' -> '563' Inexact Rounded +dqintx063 tointegralx '56267E-1' -> '5627' Inexact Rounded +dqintx065 tointegralx '56267E-0' -> '56267' +dqintx066 tointegralx '56267E+0' -> '56267' +dqintx067 tointegralx '56267E+1' -> '5.6267E+5' +dqintx068 tointegralx '56267E+9' -> '5.6267E+13' +dqintx069 tointegralx '56267E+10' -> '5.6267E+14' +dqintx070 tointegralx '56267E+11' -> '5.6267E+15' +dqintx071 tointegralx '56267E+12' -> '5.6267E+16' +dqintx072 tointegralx '56267E+13' -> '5.6267E+17' +dqintx073 tointegralx '1.23E+96' -> '1.23E+96' +dqintx074 tointegralx '1.23E+6144' -> #47ffd300000000000000000000000000 Clamped + +dqintx080 tointegralx '-56267E-10' -> '-0' Inexact Rounded +dqintx081 tointegralx '-56267E-5' -> '-1' Inexact Rounded +dqintx082 tointegralx '-56267E-2' -> '-563' Inexact Rounded +dqintx083 tointegralx '-56267E-1' -> '-5627' Inexact Rounded +dqintx085 tointegralx '-56267E-0' -> '-56267' +dqintx086 tointegralx '-56267E+0' -> '-56267' +dqintx087 tointegralx '-56267E+1' -> '-5.6267E+5' +dqintx088 tointegralx '-56267E+9' -> '-5.6267E+13' +dqintx089 tointegralx '-56267E+10' -> '-5.6267E+14' +dqintx090 tointegralx '-56267E+11' -> '-5.6267E+15' +dqintx091 tointegralx '-56267E+12' -> '-5.6267E+16' +dqintx092 tointegralx '-56267E+13' -> '-5.6267E+17' +dqintx093 tointegralx '-1.23E+96' -> '-1.23E+96' +dqintx094 tointegralx '-1.23E+6144' -> #c7ffd300000000000000000000000000 Clamped + +-- subnormal inputs +dqintx100 tointegralx 1E-299 -> 0 Inexact Rounded +dqintx101 tointegralx 0.1E-299 -> 0 Inexact Rounded +dqintx102 tointegralx 0.01E-299 -> 0 Inexact Rounded +dqintx103 tointegralx 0E-299 -> 0 + +-- specials and zeros +dqintx120 tointegralx 'Inf' -> Infinity +dqintx121 tointegralx '-Inf' -> -Infinity +dqintx122 tointegralx NaN -> NaN +dqintx123 tointegralx sNaN -> NaN Invalid_operation +dqintx124 tointegralx 0 -> 0 +dqintx125 tointegralx -0 -> -0 +dqintx126 tointegralx 0.000 -> 0 +dqintx127 tointegralx 0.00 -> 0 +dqintx128 tointegralx 0.0 -> 0 +dqintx129 tointegralx 0 -> 0 +dqintx130 tointegralx 0E-3 -> 0 +dqintx131 tointegralx 0E-2 -> 0 +dqintx132 tointegralx 0E-1 -> 0 +dqintx133 tointegralx 0E-0 -> 0 +dqintx134 tointegralx 0E+1 -> 0E+1 +dqintx135 tointegralx 0E+2 -> 0E+2 +dqintx136 tointegralx 0E+3 -> 0E+3 +dqintx137 tointegralx 0E+4 -> 0E+4 +dqintx138 tointegralx 0E+5 -> 0E+5 +dqintx139 tointegralx -0.000 -> -0 +dqintx140 tointegralx -0.00 -> -0 +dqintx141 tointegralx -0.0 -> -0 +dqintx142 tointegralx -0 -> -0 +dqintx143 tointegralx -0E-3 -> -0 +dqintx144 tointegralx -0E-2 -> -0 +dqintx145 tointegralx -0E-1 -> -0 +dqintx146 tointegralx -0E-0 -> -0 +dqintx147 tointegralx -0E+1 -> -0E+1 +dqintx148 tointegralx -0E+2 -> -0E+2 +dqintx149 tointegralx -0E+3 -> -0E+3 +dqintx150 tointegralx -0E+4 -> -0E+4 +dqintx151 tointegralx -0E+5 -> -0E+5 +-- propagating NaNs +dqintx152 tointegralx NaN808 -> NaN808 +dqintx153 tointegralx sNaN080 -> NaN80 Invalid_operation +dqintx154 tointegralx -NaN808 -> -NaN808 +dqintx155 tointegralx -sNaN080 -> -NaN80 Invalid_operation +dqintx156 tointegralx -NaN -> -NaN +dqintx157 tointegralx -sNaN -> -NaN Invalid_operation + +-- examples +rounding: half_up +dqintx200 tointegralx 2.1 -> 2 Inexact Rounded +dqintx201 tointegralx 100 -> 100 +dqintx202 tointegralx 100.0 -> 100 Rounded +dqintx203 tointegralx 101.5 -> 102 Inexact Rounded +dqintx204 tointegralx -101.5 -> -102 Inexact Rounded +dqintx205 tointegralx 10E+5 -> 1.0E+6 +dqintx206 tointegralx 7.89E+77 -> 7.89E+77 +dqintx207 tointegralx -Inf -> -Infinity + + +-- all rounding modes +rounding: half_even +dqintx210 tointegralx 55.5 -> 56 Inexact Rounded +dqintx211 tointegralx 56.5 -> 56 Inexact Rounded +dqintx212 tointegralx 57.5 -> 58 Inexact Rounded +dqintx213 tointegralx -55.5 -> -56 Inexact Rounded +dqintx214 tointegralx -56.5 -> -56 Inexact Rounded +dqintx215 tointegralx -57.5 -> -58 Inexact Rounded + +rounding: half_up + +dqintx220 tointegralx 55.5 -> 56 Inexact Rounded +dqintx221 tointegralx 56.5 -> 57 Inexact Rounded +dqintx222 tointegralx 57.5 -> 58 Inexact Rounded +dqintx223 tointegralx -55.5 -> -56 Inexact Rounded +dqintx224 tointegralx -56.5 -> -57 Inexact Rounded +dqintx225 tointegralx -57.5 -> -58 Inexact Rounded + +rounding: half_down + +dqintx230 tointegralx 55.5 -> 55 Inexact Rounded +dqintx231 tointegralx 56.5 -> 56 Inexact Rounded +dqintx232 tointegralx 57.5 -> 57 Inexact Rounded +dqintx233 tointegralx -55.5 -> -55 Inexact Rounded +dqintx234 tointegralx -56.5 -> -56 Inexact Rounded +dqintx235 tointegralx -57.5 -> -57 Inexact Rounded + +rounding: up + +dqintx240 tointegralx 55.3 -> 56 Inexact Rounded +dqintx241 tointegralx 56.3 -> 57 Inexact Rounded +dqintx242 tointegralx 57.3 -> 58 Inexact Rounded +dqintx243 tointegralx -55.3 -> -56 Inexact Rounded +dqintx244 tointegralx -56.3 -> -57 Inexact Rounded +dqintx245 tointegralx -57.3 -> -58 Inexact Rounded + +rounding: down + +dqintx250 tointegralx 55.7 -> 55 Inexact Rounded +dqintx251 tointegralx 56.7 -> 56 Inexact Rounded +dqintx252 tointegralx 57.7 -> 57 Inexact Rounded +dqintx253 tointegralx -55.7 -> -55 Inexact Rounded +dqintx254 tointegralx -56.7 -> -56 Inexact Rounded +dqintx255 tointegralx -57.7 -> -57 Inexact Rounded + +rounding: ceiling + +dqintx260 tointegralx 55.3 -> 56 Inexact Rounded +dqintx261 tointegralx 56.3 -> 57 Inexact Rounded +dqintx262 tointegralx 57.3 -> 58 Inexact Rounded +dqintx263 tointegralx -55.3 -> -55 Inexact Rounded +dqintx264 tointegralx -56.3 -> -56 Inexact Rounded +dqintx265 tointegralx -57.3 -> -57 Inexact Rounded + +rounding: floor + +dqintx270 tointegralx 55.7 -> 55 Inexact Rounded +dqintx271 tointegralx 56.7 -> 56 Inexact Rounded +dqintx272 tointegralx 57.7 -> 57 Inexact Rounded +dqintx273 tointegralx -55.7 -> -56 Inexact Rounded +dqintx274 tointegralx -56.7 -> -57 Inexact Rounded +dqintx275 tointegralx -57.7 -> -58 Inexact Rounded + +-- Int and uInt32 edge values for testing conversions +dqintx300 tointegralx -2147483646 -> -2147483646 +dqintx301 tointegralx -2147483647 -> -2147483647 +dqintx302 tointegralx -2147483648 -> -2147483648 +dqintx303 tointegralx -2147483649 -> -2147483649 +dqintx304 tointegralx 2147483646 -> 2147483646 +dqintx305 tointegralx 2147483647 -> 2147483647 +dqintx306 tointegralx 2147483648 -> 2147483648 +dqintx307 tointegralx 2147483649 -> 2147483649 +dqintx308 tointegralx 4294967294 -> 4294967294 +dqintx309 tointegralx 4294967295 -> 4294967295 +dqintx310 tointegralx 4294967296 -> 4294967296 +dqintx311 tointegralx 4294967297 -> 4294967297 + diff --git a/Lib/test/decimaltestdata/dqXor.decTest b/Lib/test/decimaltestdata/dqXor.decTest index fbb32e441b..2216e9ebf8 100644 --- a/Lib/test/decimaltestdata/dqXor.decTest +++ b/Lib/test/decimaltestdata/dqXor.decTest @@ -1,410 +1,410 @@ -------------------------------------------------------------------------
--- dqXor.decTest -- digitwise logical XOR for decQuads --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-extended: 1
-clamp: 1
-precision: 34
-maxExponent: 6144
-minExponent: -6143
-rounding: half_even
-
--- Sanity check (truth table)
-dqxor001 xor 0 0 -> 0
-dqxor002 xor 0 1 -> 1
-dqxor003 xor 1 0 -> 1
-dqxor004 xor 1 1 -> 0
-dqxor005 xor 1100 1010 -> 110
--- and at msd and msd-1
-dqxor006 xor 0000000000000000000000000000000000 0000000000000000000000000000000000 -> 0
-dqxor007 xor 0000000000000000000000000000000000 1000000000000000000000000000000000 -> 1000000000000000000000000000000000
-dqxor008 xor 1000000000000000000000000000000000 0000000000000000000000000000000000 -> 1000000000000000000000000000000000
-dqxor009 xor 1000000000000000000000000000000000 1000000000000000000000000000000000 -> 0
-dqxor010 xor 0000000000000000000000000000000000 0000000000000000000000000000000000 -> 0
-dqxor011 xor 0000000000000000000000000000000000 0100000000000000000000000000000000 -> 100000000000000000000000000000000
-dqxor012 xor 0100000000000000000000000000000000 0000000000000000000000000000000000 -> 100000000000000000000000000000000
-dqxor013 xor 0100000000000000000000000000000000 0100000000000000000000000000000000 -> 0
-
--- Various lengths
--- 1234567890123456789012345678901234
-dqxor601 xor 0111111111111111111111111111111111 1111111111111111111111111111111111 -> 1000000000000000000000000000000000
-dqxor602 xor 1011111111111111111111111111111111 1111111111111111111111111111111111 -> 100000000000000000000000000000000
-dqxor603 xor 1101111111111111111111111111111111 1111111111111111111111111111111111 -> 10000000000000000000000000000000
-dqxor604 xor 1110111111111111111111111111111111 1111111111111111111111111111111111 -> 1000000000000000000000000000000
-dqxor605 xor 1111011111111111111111111111111111 1111111111111111111111111111111111 -> 100000000000000000000000000000
-dqxor606 xor 1111101111111111111111111111111111 1111111111111111111111111111111111 -> 10000000000000000000000000000
-dqxor607 xor 1111110111111111111111111111111111 1111111111111111111111111111111111 -> 1000000000000000000000000000
-dqxor608 xor 1111111011111111111111111111111111 1111111111111111111111111111111111 -> 100000000000000000000000000
-dqxor609 xor 1111111101111111111111111111111111 1111111111111111111111111111111111 -> 10000000000000000000000000
-dqxor610 xor 1111111110111111111111111111111111 1111111111111111111111111111111111 -> 1000000000000000000000000
-dqxor611 xor 1111111111011111111111111111111111 1111111111111111111111111111111111 -> 100000000000000000000000
-dqxor612 xor 1111111111101111111111111111111111 1111111111111111111111111111111111 -> 10000000000000000000000
-dqxor613 xor 1111111111110111111111111111111111 1111111111111111111111111111111111 -> 1000000000000000000000
-dqxor614 xor 1111111111111011111111111111111111 1111111111111111111111111111111111 -> 100000000000000000000
-dqxor615 xor 1111111111111101111111111111111111 1111111111111111111111111111111111 -> 10000000000000000000
-dqxor616 xor 1111111111111110111111111111111111 1111111111111111111111111111111111 -> 1000000000000000000
-dqxor617 xor 1111111111111111011111111111111111 1111111111111111111111111111111111 -> 100000000000000000
-dqxor618 xor 1111111111111111101111111111111111 1111111111111111111111111111111111 -> 10000000000000000
-dqxor619 xor 1111111111111111110111111111111111 1111111111111111111111111111111111 -> 1000000000000000
-dqxor620 xor 1111111111111111111011111111111111 1111111111111111111111111111111111 -> 100000000000000
-dqxor621 xor 1111111111111111111101111111111111 1111111111111111111111111111111111 -> 10000000000000
-dqxor622 xor 1111111111111111111110111111111111 1111111111111111111111111111111111 -> 1000000000000
-dqxor623 xor 1111111111111111111111011111111111 1111111111111111111111111111111111 -> 100000000000
-dqxor624 xor 1111111111111111111111101111111111 1111111111111111111111111111111111 -> 10000000000
-dqxor625 xor 1111111111111111111111110111111111 1111111111111111111111111111111111 -> 1000000000
-dqxor626 xor 1111111111111111111111111011111111 1111111111111111111111111111111111 -> 100000000
-dqxor627 xor 1111111111111111111111111101111111 1111111111111111111111111111111111 -> 10000000
-dqxor628 xor 1111111111111111111111111110111111 1111111111111111111111111111111111 -> 1000000
-dqxor629 xor 1111111111111111111111111111011111 1111111111111111111111111111111111 -> 100000
-dqxor630 xor 1111111111111111111111111111101111 1111111111111111111111111111111111 -> 10000
-dqxor631 xor 1111111111111111111111111111110111 1111111111111111111111111111111111 -> 1000
-dqxor632 xor 1111111111111111111111111111111011 1111111111111111111111111111111111 -> 100
-dqxor633 xor 1111111111111111111111111111111101 1111111111111111111111111111111111 -> 10
-dqxor634 xor 1111111111111111111111111111111110 1111111111111111111111111111111111 -> 1
-
-dqxor641 xor 1111111111111111111111111111111111 0111111111111111111111111111111111 -> 1000000000000000000000000000000000
-dqxor642 xor 1111111111111111111111111111111111 1011111111111111111111111111111111 -> 100000000000000000000000000000000
-dqxor643 xor 1111111111111111111111111111111111 1101111111111111111111111111111111 -> 10000000000000000000000000000000
-dqxor644 xor 1111111111111111111111111111111111 1110111111111111111111111111111111 -> 1000000000000000000000000000000
-dqxor645 xor 1111111111111111111111111111111111 1111011111111111111111111111111111 -> 100000000000000000000000000000
-dqxor646 xor 1111111111111111111111111111111111 1111101111111111111111111111111111 -> 10000000000000000000000000000
-dqxor647 xor 1111111111111111111111111111111111 1111110111111111111111111111111111 -> 1000000000000000000000000000
-dqxor648 xor 1111111111111111111111111111111111 1111111011111111111111111111111111 -> 100000000000000000000000000
-dqxor649 xor 1111111111111111111111111111111111 1111111101111111111111111111111111 -> 10000000000000000000000000
-dqxor650 xor 1111111111111111111111111111111111 1111111110111111111111111111111111 -> 1000000000000000000000000
-dqxor651 xor 1111111111111111111111111111111111 1111111111011111111111111111111111 -> 100000000000000000000000
-dqxor652 xor 1111111111111111111111111111111111 1111111111101111111111111111111111 -> 10000000000000000000000
-dqxor653 xor 1111111111111111111111111111111111 1111111111110111111111111111111111 -> 1000000000000000000000
-dqxor654 xor 1111111111111111111111111111111111 1111111111111011111111111111111111 -> 100000000000000000000
-dqxor655 xor 1111111111111111111111111111111111 1111111111111101111111111111111111 -> 10000000000000000000
-dqxor656 xor 1111111111111111111111111111111111 1111111111111110111111111111111111 -> 1000000000000000000
-dqxor657 xor 1111111111111111111111111111111111 1111111111111111011111111111111111 -> 100000000000000000
-dqxor658 xor 1111111111111111111111111111111111 1111111111111111101111111111111111 -> 10000000000000000
-dqxor659 xor 1111111111111111111111111111111111 1111111111111111110111111111111111 -> 1000000000000000
-dqxor660 xor 1111111111111111111111111111111111 1111111111111111111011111111111111 -> 100000000000000
-dqxor661 xor 1111111111111111111111111111111111 1111111111111111111101111111111111 -> 10000000000000
-dqxor662 xor 1111111111111111111111111111111111 1111111111111111111110111111111111 -> 1000000000000
-dqxor663 xor 1111111111111111111111111111111111 1111111111111111111111011111111111 -> 100000000000
-dqxor664 xor 1111111111111111111111111111111111 1111111111111111111111101111111111 -> 10000000000
-dqxor665 xor 1111111111111111111111111111111111 1111111111111111111111110111111111 -> 1000000000
-dqxor666 xor 1111111111111111111111111111111111 1111111111111111111111111011111111 -> 100000000
-dqxor667 xor 1111111111111111111111111111111111 1111111111111111111111111101111111 -> 10000000
-dqxor668 xor 1111111111111111111111111111111111 1111111111111111111111111110111111 -> 1000000
-dqxor669 xor 1111111111111111111111111111111111 1111111111111111111111111111011111 -> 100000
-dqxor670 xor 1111111111111111111111111111111111 1111111111111111111111111111101111 -> 10000
-dqxor671 xor 1111111111111111111111111111111111 1111111111111111111111111111110111 -> 1000
-dqxor672 xor 1111111111111111111111111111111111 1111111111111111111111111111111011 -> 100
-dqxor673 xor 1111111111111111111111111111111111 1111111111111111111111111111111101 -> 10
-dqxor674 xor 1111111111111111111111111111111111 1111111111111111111111111111111110 -> 1
-dqxor675 xor 0111111111111111111111111111111111 1111111111111111111111111111111110 -> 1000000000000000000000000000000001
-dqxor676 xor 1111111111111111111111111111111111 1111111111111111111111111111111110 -> 1
-
-
-dqxor021 xor 1111111110000000 1111111110000000 -> 0
-dqxor022 xor 111111110000000 111111110000000 -> 0
-dqxor023 xor 11111110000000 11111110000000 -> 0
-dqxor024 xor 1111110000000 1111110000000 -> 0
-dqxor025 xor 111110000000 111110000000 -> 0
-dqxor026 xor 11110000000 11110000000 -> 0
-dqxor027 xor 1110000000 1110000000 -> 0
-dqxor028 xor 110000000 110000000 -> 0
-dqxor029 xor 10000000 10000000 -> 0
-dqxor030 xor 1000000 1000000 -> 0
-dqxor031 xor 100000 100000 -> 0
-dqxor032 xor 10000 10000 -> 0
-dqxor033 xor 1000 1000 -> 0
-dqxor034 xor 100 100 -> 0
-dqxor035 xor 10 10 -> 0
-dqxor036 xor 1 1 -> 0
-
-dqxor040 xor 111111111 111111111111 -> 111000000000
-dqxor041 xor 11111111 111111111111 -> 111100000000
-dqxor042 xor 11111111 111111111 -> 100000000
-dqxor043 xor 1111111 100000010 -> 101111101
-dqxor044 xor 111111 100000100 -> 100111011
-dqxor045 xor 11111 100001000 -> 100010111
-dqxor046 xor 1111 100010000 -> 100011111
-dqxor047 xor 111 100100000 -> 100100111
-dqxor048 xor 11 101000000 -> 101000011
-dqxor049 xor 1 110000000 -> 110000001
-
-dqxor050 xor 1111111111 1 -> 1111111110
-dqxor051 xor 111111111 1 -> 111111110
-dqxor052 xor 11111111 1 -> 11111110
-dqxor053 xor 1111111 1 -> 1111110
-dqxor054 xor 111111 1 -> 111110
-dqxor055 xor 11111 1 -> 11110
-dqxor056 xor 1111 1 -> 1110
-dqxor057 xor 111 1 -> 110
-dqxor058 xor 11 1 -> 10
-dqxor059 xor 1 1 -> 0
-
-dqxor060 xor 1111111111 0 -> 1111111111
-dqxor061 xor 111111111 0 -> 111111111
-dqxor062 xor 11111111 0 -> 11111111
-dqxor063 xor 1111111 0 -> 1111111
-dqxor064 xor 111111 0 -> 111111
-dqxor065 xor 11111 0 -> 11111
-dqxor066 xor 1111 0 -> 1111
-dqxor067 xor 111 0 -> 111
-dqxor068 xor 11 0 -> 11
-dqxor069 xor 1 0 -> 1
-
-dqxor070 xor 1 1111111111 -> 1111111110
-dqxor071 xor 1 111111111 -> 111111110
-dqxor072 xor 1 11111111 -> 11111110
-dqxor073 xor 1 1111111 -> 1111110
-dqxor074 xor 1 111111 -> 111110
-dqxor075 xor 1 11111 -> 11110
-dqxor076 xor 1 1111 -> 1110
-dqxor077 xor 1 111 -> 110
-dqxor078 xor 1 11 -> 10
-dqxor079 xor 1 1 -> 0
-
-dqxor080 xor 0 1111111111 -> 1111111111
-dqxor081 xor 0 111111111 -> 111111111
-dqxor082 xor 0 11111111 -> 11111111
-dqxor083 xor 0 1111111 -> 1111111
-dqxor084 xor 0 111111 -> 111111
-dqxor085 xor 0 11111 -> 11111
-dqxor086 xor 0 1111 -> 1111
-dqxor087 xor 0 111 -> 111
-dqxor088 xor 0 11 -> 11
-dqxor089 xor 0 1 -> 1
-
-dqxor090 xor 011111111 111101111 -> 100010000
-dqxor091 xor 101111111 111101111 -> 10010000
-dqxor092 xor 110111111 111101111 -> 1010000
-dqxor093 xor 111011111 111101111 -> 110000
-dqxor094 xor 111101111 111101111 -> 0
-dqxor095 xor 111110111 111101111 -> 11000
-dqxor096 xor 111111011 111101111 -> 10100
-dqxor097 xor 111111101 111101111 -> 10010
-dqxor098 xor 111111110 111101111 -> 10001
-
-dqxor100 xor 111101111 011111111 -> 100010000
-dqxor101 xor 111101111 101111111 -> 10010000
-dqxor102 xor 111101111 110111111 -> 1010000
-dqxor103 xor 111101111 111011111 -> 110000
-dqxor104 xor 111101111 111101111 -> 0
-dqxor105 xor 111101111 111110111 -> 11000
-dqxor106 xor 111101111 111111011 -> 10100
-dqxor107 xor 111101111 111111101 -> 10010
-dqxor108 xor 111101111 111111110 -> 10001
-
--- non-0/1 should not be accepted, nor should signs
-dqxor220 xor 111111112 111111111 -> NaN Invalid_operation
-dqxor221 xor 333333333 333333333 -> NaN Invalid_operation
-dqxor222 xor 555555555 555555555 -> NaN Invalid_operation
-dqxor223 xor 777777777 777777777 -> NaN Invalid_operation
-dqxor224 xor 999999999 999999999 -> NaN Invalid_operation
-dqxor225 xor 222222222 999999999 -> NaN Invalid_operation
-dqxor226 xor 444444444 999999999 -> NaN Invalid_operation
-dqxor227 xor 666666666 999999999 -> NaN Invalid_operation
-dqxor228 xor 888888888 999999999 -> NaN Invalid_operation
-dqxor229 xor 999999999 222222222 -> NaN Invalid_operation
-dqxor230 xor 999999999 444444444 -> NaN Invalid_operation
-dqxor231 xor 999999999 666666666 -> NaN Invalid_operation
-dqxor232 xor 999999999 888888888 -> NaN Invalid_operation
--- a few randoms
-dqxor240 xor 567468689 -934981942 -> NaN Invalid_operation
-dqxor241 xor 567367689 934981942 -> NaN Invalid_operation
-dqxor242 xor -631917772 -706014634 -> NaN Invalid_operation
-dqxor243 xor -756253257 138579234 -> NaN Invalid_operation
-dqxor244 xor 835590149 567435400 -> NaN Invalid_operation
--- test MSD
-dqxor250 xor 2000000111000111000111000000000000 1000000111000111000111000000000000 -> NaN Invalid_operation
-dqxor251 xor 7000000111000111000111000000000000 1000000111000111000111000000000000 -> NaN Invalid_operation
-dqxor252 xor 8000000111000111000111000000000000 1000000111000111000111000000000000 -> NaN Invalid_operation
-dqxor253 xor 9000000111000111000111000000000000 1000000111000111000111000000000000 -> NaN Invalid_operation
-dqxor254 xor 2000000111000111000111000000000000 0000000111000111000111000000000000 -> NaN Invalid_operation
-dqxor255 xor 7000000111000111000111000000000000 0000000111000111000111000000000000 -> NaN Invalid_operation
-dqxor256 xor 8000000111000111000111000000000000 0000000111000111000111000000000000 -> NaN Invalid_operation
-dqxor257 xor 9000000111000111000111000000000000 0000000111000111000111000000000000 -> NaN Invalid_operation
-dqxor258 xor 1000000111000111000111000000000000 2000000111000111000111000000000000 -> NaN Invalid_operation
-dqxor259 xor 1000000111000111000111000000000000 7000000111000111000111000000000000 -> NaN Invalid_operation
-dqxor260 xor 1000000111000111000111000000000000 8000000111000111000111000000000000 -> NaN Invalid_operation
-dqxor261 xor 1000000111000111000111000000000000 9000000111000111000111000000000000 -> NaN Invalid_operation
-dqxor262 xor 0000000111000111000111000000000000 2000000111000111000111000000000000 -> NaN Invalid_operation
-dqxor263 xor 0000000111000111000111000000000000 7000000111000111000111000000000000 -> NaN Invalid_operation
-dqxor264 xor 0000000111000111000111000000000000 8000000111000111000111000000000000 -> NaN Invalid_operation
-dqxor265 xor 0000000111000111000111000000000000 9000000111000111000111000000000000 -> NaN Invalid_operation
--- test MSD-1
-dqxor270 xor 0200000111000111000111001000000000 1000000111000111000111100000000010 -> NaN Invalid_operation
-dqxor271 xor 0700000111000111000111000100000000 1000000111000111000111010000000100 -> NaN Invalid_operation
-dqxor272 xor 0800000111000111000111000010000000 1000000111000111000111001000001000 -> NaN Invalid_operation
-dqxor273 xor 0900000111000111000111000001000000 1000000111000111000111000100010000 -> NaN Invalid_operation
-dqxor274 xor 1000000111000111000111000000100000 0200000111000111000111000010100000 -> NaN Invalid_operation
-dqxor275 xor 1000000111000111000111000000010000 0700000111000111000111000001000000 -> NaN Invalid_operation
-dqxor276 xor 1000000111000111000111000000001000 0800000111000111000111000010100000 -> NaN Invalid_operation
-dqxor277 xor 1000000111000111000111000000000100 0900000111000111000111000000010000 -> NaN Invalid_operation
--- test LSD
-dqxor280 xor 0010000111000111000111000000000002 1000000111000111000111000100000001 -> NaN Invalid_operation
-dqxor281 xor 0001000111000111000111000000000007 1000000111000111000111001000000011 -> NaN Invalid_operation
-dqxor282 xor 0000000111000111000111100000000008 1000000111000111000111010000000001 -> NaN Invalid_operation
-dqxor283 xor 0000000111000111000111010000000009 1000000111000111000111100000000001 -> NaN Invalid_operation
-dqxor284 xor 1000000111000111000111001000000000 0001000111000111000111000000000002 -> NaN Invalid_operation
-dqxor285 xor 1000000111000111000111000100000000 0010000111000111000111000000000007 -> NaN Invalid_operation
-dqxor286 xor 1000000111000111000111000010000000 0100000111000111000111000000000008 -> NaN Invalid_operation
-dqxor287 xor 1000000111000111000111000001000000 1000000111000111000111000000000009 -> NaN Invalid_operation
--- test Middie
-dqxor288 xor 0010000111000111000111000020000000 1000000111000111000111001000000000 -> NaN Invalid_operation
-dqxor289 xor 0001000111000111000111000070000001 1000000111000111000111000100000000 -> NaN Invalid_operation
-dqxor290 xor 0000000111000111000111100080000010 1000000111000111000111000010000000 -> NaN Invalid_operation
-dqxor291 xor 0000000111000111000111010090000100 1000000111000111000111000001000000 -> NaN Invalid_operation
-dqxor292 xor 1000000111000111000111001000001000 0000000111000111000111000020100000 -> NaN Invalid_operation
-dqxor293 xor 1000000111000111000111000100010000 0000000111000111000111000070010000 -> NaN Invalid_operation
-dqxor294 xor 1000000111000111000111000010100000 0000000111000111000111000080001000 -> NaN Invalid_operation
-dqxor295 xor 1000000111000111000111000001000000 0000000111000111000111000090000100 -> NaN Invalid_operation
--- signs
-dqxor296 xor -1000000111000111000111000001000000 -0000001110001110001110010000000100 -> NaN Invalid_operation
-dqxor297 xor -1000000111000111000111000001000000 0000001110001110001110000010000100 -> NaN Invalid_operation
-dqxor298 xor 1000000111000111000111000001000000 -0000001110001110001110001000000100 -> NaN Invalid_operation
-dqxor299 xor 1000000111000111000111000001000000 0000001110001110001110000011000100 -> 1000001001001001001001000010000100
-
--- Nmax, Nmin, Ntiny-like
-dqxor331 xor 2 9.99999999E+999 -> NaN Invalid_operation
-dqxor332 xor 3 1E-999 -> NaN Invalid_operation
-dqxor333 xor 4 1.00000000E-2821 -> NaN Invalid_operation
-dqxor334 xor 5 1E-900 -> NaN Invalid_operation
-dqxor335 xor 6 -1E-900 -> NaN Invalid_operation
-dqxor336 xor 7 -1.00000000E-999 -> NaN Invalid_operation
-dqxor337 xor 8 -1E-999 -> NaN Invalid_operation
-dqxor338 xor 9 -9.99999999E+999 -> NaN Invalid_operation
-dqxor341 xor 9.99999999E+999 -18 -> NaN Invalid_operation
-dqxor342 xor 1E-999 01 -> NaN Invalid_operation
-dqxor343 xor 1.00000000E-999 -18 -> NaN Invalid_operation
-dqxor344 xor 1E-908 18 -> NaN Invalid_operation
-dqxor345 xor -1E-907 -10 -> NaN Invalid_operation
-dqxor346 xor -1.00000000E-999 18 -> NaN Invalid_operation
-dqxor347 xor -1E-999 10 -> NaN Invalid_operation
-dqxor348 xor -9.99999999E+2991 -18 -> NaN Invalid_operation
-
--- A few other non-integers
-dqxor361 xor 1.0 1 -> NaN Invalid_operation
-dqxor362 xor 1E+1 1 -> NaN Invalid_operation
-dqxor363 xor 0.0 1 -> NaN Invalid_operation
-dqxor364 xor 0E+1 1 -> NaN Invalid_operation
-dqxor365 xor 9.9 1 -> NaN Invalid_operation
-dqxor366 xor 9E+1 1 -> NaN Invalid_operation
-dqxor371 xor 0 1.0 -> NaN Invalid_operation
-dqxor372 xor 0 1E+1 -> NaN Invalid_operation
-dqxor373 xor 0 0.0 -> NaN Invalid_operation
-dqxor374 xor 0 0E+1 -> NaN Invalid_operation
-dqxor375 xor 0 9.9 -> NaN Invalid_operation
-dqxor376 xor 0 9E+1 -> NaN Invalid_operation
-
--- All Specials are in error
-dqxor780 xor -Inf -Inf -> NaN Invalid_operation
-dqxor781 xor -Inf -1000 -> NaN Invalid_operation
-dqxor782 xor -Inf -1 -> NaN Invalid_operation
-dqxor783 xor -Inf -0 -> NaN Invalid_operation
-dqxor784 xor -Inf 0 -> NaN Invalid_operation
-dqxor785 xor -Inf 1 -> NaN Invalid_operation
-dqxor786 xor -Inf 1000 -> NaN Invalid_operation
-dqxor787 xor -1000 -Inf -> NaN Invalid_operation
-dqxor788 xor -Inf -Inf -> NaN Invalid_operation
-dqxor789 xor -1 -Inf -> NaN Invalid_operation
-dqxor790 xor -0 -Inf -> NaN Invalid_operation
-dqxor791 xor 0 -Inf -> NaN Invalid_operation
-dqxor792 xor 1 -Inf -> NaN Invalid_operation
-dqxor793 xor 1000 -Inf -> NaN Invalid_operation
-dqxor794 xor Inf -Inf -> NaN Invalid_operation
-
-dqxor800 xor Inf -Inf -> NaN Invalid_operation
-dqxor801 xor Inf -1000 -> NaN Invalid_operation
-dqxor802 xor Inf -1 -> NaN Invalid_operation
-dqxor803 xor Inf -0 -> NaN Invalid_operation
-dqxor804 xor Inf 0 -> NaN Invalid_operation
-dqxor805 xor Inf 1 -> NaN Invalid_operation
-dqxor806 xor Inf 1000 -> NaN Invalid_operation
-dqxor807 xor Inf Inf -> NaN Invalid_operation
-dqxor808 xor -1000 Inf -> NaN Invalid_operation
-dqxor809 xor -Inf Inf -> NaN Invalid_operation
-dqxor810 xor -1 Inf -> NaN Invalid_operation
-dqxor811 xor -0 Inf -> NaN Invalid_operation
-dqxor812 xor 0 Inf -> NaN Invalid_operation
-dqxor813 xor 1 Inf -> NaN Invalid_operation
-dqxor814 xor 1000 Inf -> NaN Invalid_operation
-dqxor815 xor Inf Inf -> NaN Invalid_operation
-
-dqxor821 xor NaN -Inf -> NaN Invalid_operation
-dqxor822 xor NaN -1000 -> NaN Invalid_operation
-dqxor823 xor NaN -1 -> NaN Invalid_operation
-dqxor824 xor NaN -0 -> NaN Invalid_operation
-dqxor825 xor NaN 0 -> NaN Invalid_operation
-dqxor826 xor NaN 1 -> NaN Invalid_operation
-dqxor827 xor NaN 1000 -> NaN Invalid_operation
-dqxor828 xor NaN Inf -> NaN Invalid_operation
-dqxor829 xor NaN NaN -> NaN Invalid_operation
-dqxor830 xor -Inf NaN -> NaN Invalid_operation
-dqxor831 xor -1000 NaN -> NaN Invalid_operation
-dqxor832 xor -1 NaN -> NaN Invalid_operation
-dqxor833 xor -0 NaN -> NaN Invalid_operation
-dqxor834 xor 0 NaN -> NaN Invalid_operation
-dqxor835 xor 1 NaN -> NaN Invalid_operation
-dqxor836 xor 1000 NaN -> NaN Invalid_operation
-dqxor837 xor Inf NaN -> NaN Invalid_operation
-
-dqxor841 xor sNaN -Inf -> NaN Invalid_operation
-dqxor842 xor sNaN -1000 -> NaN Invalid_operation
-dqxor843 xor sNaN -1 -> NaN Invalid_operation
-dqxor844 xor sNaN -0 -> NaN Invalid_operation
-dqxor845 xor sNaN 0 -> NaN Invalid_operation
-dqxor846 xor sNaN 1 -> NaN Invalid_operation
-dqxor847 xor sNaN 1000 -> NaN Invalid_operation
-dqxor848 xor sNaN NaN -> NaN Invalid_operation
-dqxor849 xor sNaN sNaN -> NaN Invalid_operation
-dqxor850 xor NaN sNaN -> NaN Invalid_operation
-dqxor851 xor -Inf sNaN -> NaN Invalid_operation
-dqxor852 xor -1000 sNaN -> NaN Invalid_operation
-dqxor853 xor -1 sNaN -> NaN Invalid_operation
-dqxor854 xor -0 sNaN -> NaN Invalid_operation
-dqxor855 xor 0 sNaN -> NaN Invalid_operation
-dqxor856 xor 1 sNaN -> NaN Invalid_operation
-dqxor857 xor 1000 sNaN -> NaN Invalid_operation
-dqxor858 xor Inf sNaN -> NaN Invalid_operation
-dqxor859 xor NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-dqxor861 xor NaN1 -Inf -> NaN Invalid_operation
-dqxor862 xor +NaN2 -1000 -> NaN Invalid_operation
-dqxor863 xor NaN3 1000 -> NaN Invalid_operation
-dqxor864 xor NaN4 Inf -> NaN Invalid_operation
-dqxor865 xor NaN5 +NaN6 -> NaN Invalid_operation
-dqxor866 xor -Inf NaN7 -> NaN Invalid_operation
-dqxor867 xor -1000 NaN8 -> NaN Invalid_operation
-dqxor868 xor 1000 NaN9 -> NaN Invalid_operation
-dqxor869 xor Inf +NaN10 -> NaN Invalid_operation
-dqxor871 xor sNaN11 -Inf -> NaN Invalid_operation
-dqxor872 xor sNaN12 -1000 -> NaN Invalid_operation
-dqxor873 xor sNaN13 1000 -> NaN Invalid_operation
-dqxor874 xor sNaN14 NaN17 -> NaN Invalid_operation
-dqxor875 xor sNaN15 sNaN18 -> NaN Invalid_operation
-dqxor876 xor NaN16 sNaN19 -> NaN Invalid_operation
-dqxor877 xor -Inf +sNaN20 -> NaN Invalid_operation
-dqxor878 xor -1000 sNaN21 -> NaN Invalid_operation
-dqxor879 xor 1000 sNaN22 -> NaN Invalid_operation
-dqxor880 xor Inf sNaN23 -> NaN Invalid_operation
-dqxor881 xor +NaN25 +sNaN24 -> NaN Invalid_operation
-dqxor882 xor -NaN26 NaN28 -> NaN Invalid_operation
-dqxor883 xor -sNaN27 sNaN29 -> NaN Invalid_operation
-dqxor884 xor 1000 -NaN30 -> NaN Invalid_operation
-dqxor885 xor 1000 -sNaN31 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- dqXor.decTest -- digitwise logical XOR for decQuads -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +extended: 1 +clamp: 1 +precision: 34 +maxExponent: 6144 +minExponent: -6143 +rounding: half_even + +-- Sanity check (truth table) +dqxor001 xor 0 0 -> 0 +dqxor002 xor 0 1 -> 1 +dqxor003 xor 1 0 -> 1 +dqxor004 xor 1 1 -> 0 +dqxor005 xor 1100 1010 -> 110 +-- and at msd and msd-1 +dqxor006 xor 0000000000000000000000000000000000 0000000000000000000000000000000000 -> 0 +dqxor007 xor 0000000000000000000000000000000000 1000000000000000000000000000000000 -> 1000000000000000000000000000000000 +dqxor008 xor 1000000000000000000000000000000000 0000000000000000000000000000000000 -> 1000000000000000000000000000000000 +dqxor009 xor 1000000000000000000000000000000000 1000000000000000000000000000000000 -> 0 +dqxor010 xor 0000000000000000000000000000000000 0000000000000000000000000000000000 -> 0 +dqxor011 xor 0000000000000000000000000000000000 0100000000000000000000000000000000 -> 100000000000000000000000000000000 +dqxor012 xor 0100000000000000000000000000000000 0000000000000000000000000000000000 -> 100000000000000000000000000000000 +dqxor013 xor 0100000000000000000000000000000000 0100000000000000000000000000000000 -> 0 + +-- Various lengths +-- 1234567890123456789012345678901234 +dqxor601 xor 0111111111111111111111111111111111 1111111111111111111111111111111111 -> 1000000000000000000000000000000000 +dqxor602 xor 1011111111111111111111111111111111 1111111111111111111111111111111111 -> 100000000000000000000000000000000 +dqxor603 xor 1101111111111111111111111111111111 1111111111111111111111111111111111 -> 10000000000000000000000000000000 +dqxor604 xor 1110111111111111111111111111111111 1111111111111111111111111111111111 -> 1000000000000000000000000000000 +dqxor605 xor 1111011111111111111111111111111111 1111111111111111111111111111111111 -> 100000000000000000000000000000 +dqxor606 xor 1111101111111111111111111111111111 1111111111111111111111111111111111 -> 10000000000000000000000000000 +dqxor607 xor 1111110111111111111111111111111111 1111111111111111111111111111111111 -> 1000000000000000000000000000 +dqxor608 xor 1111111011111111111111111111111111 1111111111111111111111111111111111 -> 100000000000000000000000000 +dqxor609 xor 1111111101111111111111111111111111 1111111111111111111111111111111111 -> 10000000000000000000000000 +dqxor610 xor 1111111110111111111111111111111111 1111111111111111111111111111111111 -> 1000000000000000000000000 +dqxor611 xor 1111111111011111111111111111111111 1111111111111111111111111111111111 -> 100000000000000000000000 +dqxor612 xor 1111111111101111111111111111111111 1111111111111111111111111111111111 -> 10000000000000000000000 +dqxor613 xor 1111111111110111111111111111111111 1111111111111111111111111111111111 -> 1000000000000000000000 +dqxor614 xor 1111111111111011111111111111111111 1111111111111111111111111111111111 -> 100000000000000000000 +dqxor615 xor 1111111111111101111111111111111111 1111111111111111111111111111111111 -> 10000000000000000000 +dqxor616 xor 1111111111111110111111111111111111 1111111111111111111111111111111111 -> 1000000000000000000 +dqxor617 xor 1111111111111111011111111111111111 1111111111111111111111111111111111 -> 100000000000000000 +dqxor618 xor 1111111111111111101111111111111111 1111111111111111111111111111111111 -> 10000000000000000 +dqxor619 xor 1111111111111111110111111111111111 1111111111111111111111111111111111 -> 1000000000000000 +dqxor620 xor 1111111111111111111011111111111111 1111111111111111111111111111111111 -> 100000000000000 +dqxor621 xor 1111111111111111111101111111111111 1111111111111111111111111111111111 -> 10000000000000 +dqxor622 xor 1111111111111111111110111111111111 1111111111111111111111111111111111 -> 1000000000000 +dqxor623 xor 1111111111111111111111011111111111 1111111111111111111111111111111111 -> 100000000000 +dqxor624 xor 1111111111111111111111101111111111 1111111111111111111111111111111111 -> 10000000000 +dqxor625 xor 1111111111111111111111110111111111 1111111111111111111111111111111111 -> 1000000000 +dqxor626 xor 1111111111111111111111111011111111 1111111111111111111111111111111111 -> 100000000 +dqxor627 xor 1111111111111111111111111101111111 1111111111111111111111111111111111 -> 10000000 +dqxor628 xor 1111111111111111111111111110111111 1111111111111111111111111111111111 -> 1000000 +dqxor629 xor 1111111111111111111111111111011111 1111111111111111111111111111111111 -> 100000 +dqxor630 xor 1111111111111111111111111111101111 1111111111111111111111111111111111 -> 10000 +dqxor631 xor 1111111111111111111111111111110111 1111111111111111111111111111111111 -> 1000 +dqxor632 xor 1111111111111111111111111111111011 1111111111111111111111111111111111 -> 100 +dqxor633 xor 1111111111111111111111111111111101 1111111111111111111111111111111111 -> 10 +dqxor634 xor 1111111111111111111111111111111110 1111111111111111111111111111111111 -> 1 + +dqxor641 xor 1111111111111111111111111111111111 0111111111111111111111111111111111 -> 1000000000000000000000000000000000 +dqxor642 xor 1111111111111111111111111111111111 1011111111111111111111111111111111 -> 100000000000000000000000000000000 +dqxor643 xor 1111111111111111111111111111111111 1101111111111111111111111111111111 -> 10000000000000000000000000000000 +dqxor644 xor 1111111111111111111111111111111111 1110111111111111111111111111111111 -> 1000000000000000000000000000000 +dqxor645 xor 1111111111111111111111111111111111 1111011111111111111111111111111111 -> 100000000000000000000000000000 +dqxor646 xor 1111111111111111111111111111111111 1111101111111111111111111111111111 -> 10000000000000000000000000000 +dqxor647 xor 1111111111111111111111111111111111 1111110111111111111111111111111111 -> 1000000000000000000000000000 +dqxor648 xor 1111111111111111111111111111111111 1111111011111111111111111111111111 -> 100000000000000000000000000 +dqxor649 xor 1111111111111111111111111111111111 1111111101111111111111111111111111 -> 10000000000000000000000000 +dqxor650 xor 1111111111111111111111111111111111 1111111110111111111111111111111111 -> 1000000000000000000000000 +dqxor651 xor 1111111111111111111111111111111111 1111111111011111111111111111111111 -> 100000000000000000000000 +dqxor652 xor 1111111111111111111111111111111111 1111111111101111111111111111111111 -> 10000000000000000000000 +dqxor653 xor 1111111111111111111111111111111111 1111111111110111111111111111111111 -> 1000000000000000000000 +dqxor654 xor 1111111111111111111111111111111111 1111111111111011111111111111111111 -> 100000000000000000000 +dqxor655 xor 1111111111111111111111111111111111 1111111111111101111111111111111111 -> 10000000000000000000 +dqxor656 xor 1111111111111111111111111111111111 1111111111111110111111111111111111 -> 1000000000000000000 +dqxor657 xor 1111111111111111111111111111111111 1111111111111111011111111111111111 -> 100000000000000000 +dqxor658 xor 1111111111111111111111111111111111 1111111111111111101111111111111111 -> 10000000000000000 +dqxor659 xor 1111111111111111111111111111111111 1111111111111111110111111111111111 -> 1000000000000000 +dqxor660 xor 1111111111111111111111111111111111 1111111111111111111011111111111111 -> 100000000000000 +dqxor661 xor 1111111111111111111111111111111111 1111111111111111111101111111111111 -> 10000000000000 +dqxor662 xor 1111111111111111111111111111111111 1111111111111111111110111111111111 -> 1000000000000 +dqxor663 xor 1111111111111111111111111111111111 1111111111111111111111011111111111 -> 100000000000 +dqxor664 xor 1111111111111111111111111111111111 1111111111111111111111101111111111 -> 10000000000 +dqxor665 xor 1111111111111111111111111111111111 1111111111111111111111110111111111 -> 1000000000 +dqxor666 xor 1111111111111111111111111111111111 1111111111111111111111111011111111 -> 100000000 +dqxor667 xor 1111111111111111111111111111111111 1111111111111111111111111101111111 -> 10000000 +dqxor668 xor 1111111111111111111111111111111111 1111111111111111111111111110111111 -> 1000000 +dqxor669 xor 1111111111111111111111111111111111 1111111111111111111111111111011111 -> 100000 +dqxor670 xor 1111111111111111111111111111111111 1111111111111111111111111111101111 -> 10000 +dqxor671 xor 1111111111111111111111111111111111 1111111111111111111111111111110111 -> 1000 +dqxor672 xor 1111111111111111111111111111111111 1111111111111111111111111111111011 -> 100 +dqxor673 xor 1111111111111111111111111111111111 1111111111111111111111111111111101 -> 10 +dqxor674 xor 1111111111111111111111111111111111 1111111111111111111111111111111110 -> 1 +dqxor675 xor 0111111111111111111111111111111111 1111111111111111111111111111111110 -> 1000000000000000000000000000000001 +dqxor676 xor 1111111111111111111111111111111111 1111111111111111111111111111111110 -> 1 + + +dqxor021 xor 1111111110000000 1111111110000000 -> 0 +dqxor022 xor 111111110000000 111111110000000 -> 0 +dqxor023 xor 11111110000000 11111110000000 -> 0 +dqxor024 xor 1111110000000 1111110000000 -> 0 +dqxor025 xor 111110000000 111110000000 -> 0 +dqxor026 xor 11110000000 11110000000 -> 0 +dqxor027 xor 1110000000 1110000000 -> 0 +dqxor028 xor 110000000 110000000 -> 0 +dqxor029 xor 10000000 10000000 -> 0 +dqxor030 xor 1000000 1000000 -> 0 +dqxor031 xor 100000 100000 -> 0 +dqxor032 xor 10000 10000 -> 0 +dqxor033 xor 1000 1000 -> 0 +dqxor034 xor 100 100 -> 0 +dqxor035 xor 10 10 -> 0 +dqxor036 xor 1 1 -> 0 + +dqxor040 xor 111111111 111111111111 -> 111000000000 +dqxor041 xor 11111111 111111111111 -> 111100000000 +dqxor042 xor 11111111 111111111 -> 100000000 +dqxor043 xor 1111111 100000010 -> 101111101 +dqxor044 xor 111111 100000100 -> 100111011 +dqxor045 xor 11111 100001000 -> 100010111 +dqxor046 xor 1111 100010000 -> 100011111 +dqxor047 xor 111 100100000 -> 100100111 +dqxor048 xor 11 101000000 -> 101000011 +dqxor049 xor 1 110000000 -> 110000001 + +dqxor050 xor 1111111111 1 -> 1111111110 +dqxor051 xor 111111111 1 -> 111111110 +dqxor052 xor 11111111 1 -> 11111110 +dqxor053 xor 1111111 1 -> 1111110 +dqxor054 xor 111111 1 -> 111110 +dqxor055 xor 11111 1 -> 11110 +dqxor056 xor 1111 1 -> 1110 +dqxor057 xor 111 1 -> 110 +dqxor058 xor 11 1 -> 10 +dqxor059 xor 1 1 -> 0 + +dqxor060 xor 1111111111 0 -> 1111111111 +dqxor061 xor 111111111 0 -> 111111111 +dqxor062 xor 11111111 0 -> 11111111 +dqxor063 xor 1111111 0 -> 1111111 +dqxor064 xor 111111 0 -> 111111 +dqxor065 xor 11111 0 -> 11111 +dqxor066 xor 1111 0 -> 1111 +dqxor067 xor 111 0 -> 111 +dqxor068 xor 11 0 -> 11 +dqxor069 xor 1 0 -> 1 + +dqxor070 xor 1 1111111111 -> 1111111110 +dqxor071 xor 1 111111111 -> 111111110 +dqxor072 xor 1 11111111 -> 11111110 +dqxor073 xor 1 1111111 -> 1111110 +dqxor074 xor 1 111111 -> 111110 +dqxor075 xor 1 11111 -> 11110 +dqxor076 xor 1 1111 -> 1110 +dqxor077 xor 1 111 -> 110 +dqxor078 xor 1 11 -> 10 +dqxor079 xor 1 1 -> 0 + +dqxor080 xor 0 1111111111 -> 1111111111 +dqxor081 xor 0 111111111 -> 111111111 +dqxor082 xor 0 11111111 -> 11111111 +dqxor083 xor 0 1111111 -> 1111111 +dqxor084 xor 0 111111 -> 111111 +dqxor085 xor 0 11111 -> 11111 +dqxor086 xor 0 1111 -> 1111 +dqxor087 xor 0 111 -> 111 +dqxor088 xor 0 11 -> 11 +dqxor089 xor 0 1 -> 1 + +dqxor090 xor 011111111 111101111 -> 100010000 +dqxor091 xor 101111111 111101111 -> 10010000 +dqxor092 xor 110111111 111101111 -> 1010000 +dqxor093 xor 111011111 111101111 -> 110000 +dqxor094 xor 111101111 111101111 -> 0 +dqxor095 xor 111110111 111101111 -> 11000 +dqxor096 xor 111111011 111101111 -> 10100 +dqxor097 xor 111111101 111101111 -> 10010 +dqxor098 xor 111111110 111101111 -> 10001 + +dqxor100 xor 111101111 011111111 -> 100010000 +dqxor101 xor 111101111 101111111 -> 10010000 +dqxor102 xor 111101111 110111111 -> 1010000 +dqxor103 xor 111101111 111011111 -> 110000 +dqxor104 xor 111101111 111101111 -> 0 +dqxor105 xor 111101111 111110111 -> 11000 +dqxor106 xor 111101111 111111011 -> 10100 +dqxor107 xor 111101111 111111101 -> 10010 +dqxor108 xor 111101111 111111110 -> 10001 + +-- non-0/1 should not be accepted, nor should signs +dqxor220 xor 111111112 111111111 -> NaN Invalid_operation +dqxor221 xor 333333333 333333333 -> NaN Invalid_operation +dqxor222 xor 555555555 555555555 -> NaN Invalid_operation +dqxor223 xor 777777777 777777777 -> NaN Invalid_operation +dqxor224 xor 999999999 999999999 -> NaN Invalid_operation +dqxor225 xor 222222222 999999999 -> NaN Invalid_operation +dqxor226 xor 444444444 999999999 -> NaN Invalid_operation +dqxor227 xor 666666666 999999999 -> NaN Invalid_operation +dqxor228 xor 888888888 999999999 -> NaN Invalid_operation +dqxor229 xor 999999999 222222222 -> NaN Invalid_operation +dqxor230 xor 999999999 444444444 -> NaN Invalid_operation +dqxor231 xor 999999999 666666666 -> NaN Invalid_operation +dqxor232 xor 999999999 888888888 -> NaN Invalid_operation +-- a few randoms +dqxor240 xor 567468689 -934981942 -> NaN Invalid_operation +dqxor241 xor 567367689 934981942 -> NaN Invalid_operation +dqxor242 xor -631917772 -706014634 -> NaN Invalid_operation +dqxor243 xor -756253257 138579234 -> NaN Invalid_operation +dqxor244 xor 835590149 567435400 -> NaN Invalid_operation +-- test MSD +dqxor250 xor 2000000111000111000111000000000000 1000000111000111000111000000000000 -> NaN Invalid_operation +dqxor251 xor 7000000111000111000111000000000000 1000000111000111000111000000000000 -> NaN Invalid_operation +dqxor252 xor 8000000111000111000111000000000000 1000000111000111000111000000000000 -> NaN Invalid_operation +dqxor253 xor 9000000111000111000111000000000000 1000000111000111000111000000000000 -> NaN Invalid_operation +dqxor254 xor 2000000111000111000111000000000000 0000000111000111000111000000000000 -> NaN Invalid_operation +dqxor255 xor 7000000111000111000111000000000000 0000000111000111000111000000000000 -> NaN Invalid_operation +dqxor256 xor 8000000111000111000111000000000000 0000000111000111000111000000000000 -> NaN Invalid_operation +dqxor257 xor 9000000111000111000111000000000000 0000000111000111000111000000000000 -> NaN Invalid_operation +dqxor258 xor 1000000111000111000111000000000000 2000000111000111000111000000000000 -> NaN Invalid_operation +dqxor259 xor 1000000111000111000111000000000000 7000000111000111000111000000000000 -> NaN Invalid_operation +dqxor260 xor 1000000111000111000111000000000000 8000000111000111000111000000000000 -> NaN Invalid_operation +dqxor261 xor 1000000111000111000111000000000000 9000000111000111000111000000000000 -> NaN Invalid_operation +dqxor262 xor 0000000111000111000111000000000000 2000000111000111000111000000000000 -> NaN Invalid_operation +dqxor263 xor 0000000111000111000111000000000000 7000000111000111000111000000000000 -> NaN Invalid_operation +dqxor264 xor 0000000111000111000111000000000000 8000000111000111000111000000000000 -> NaN Invalid_operation +dqxor265 xor 0000000111000111000111000000000000 9000000111000111000111000000000000 -> NaN Invalid_operation +-- test MSD-1 +dqxor270 xor 0200000111000111000111001000000000 1000000111000111000111100000000010 -> NaN Invalid_operation +dqxor271 xor 0700000111000111000111000100000000 1000000111000111000111010000000100 -> NaN Invalid_operation +dqxor272 xor 0800000111000111000111000010000000 1000000111000111000111001000001000 -> NaN Invalid_operation +dqxor273 xor 0900000111000111000111000001000000 1000000111000111000111000100010000 -> NaN Invalid_operation +dqxor274 xor 1000000111000111000111000000100000 0200000111000111000111000010100000 -> NaN Invalid_operation +dqxor275 xor 1000000111000111000111000000010000 0700000111000111000111000001000000 -> NaN Invalid_operation +dqxor276 xor 1000000111000111000111000000001000 0800000111000111000111000010100000 -> NaN Invalid_operation +dqxor277 xor 1000000111000111000111000000000100 0900000111000111000111000000010000 -> NaN Invalid_operation +-- test LSD +dqxor280 xor 0010000111000111000111000000000002 1000000111000111000111000100000001 -> NaN Invalid_operation +dqxor281 xor 0001000111000111000111000000000007 1000000111000111000111001000000011 -> NaN Invalid_operation +dqxor282 xor 0000000111000111000111100000000008 1000000111000111000111010000000001 -> NaN Invalid_operation +dqxor283 xor 0000000111000111000111010000000009 1000000111000111000111100000000001 -> NaN Invalid_operation +dqxor284 xor 1000000111000111000111001000000000 0001000111000111000111000000000002 -> NaN Invalid_operation +dqxor285 xor 1000000111000111000111000100000000 0010000111000111000111000000000007 -> NaN Invalid_operation +dqxor286 xor 1000000111000111000111000010000000 0100000111000111000111000000000008 -> NaN Invalid_operation +dqxor287 xor 1000000111000111000111000001000000 1000000111000111000111000000000009 -> NaN Invalid_operation +-- test Middie +dqxor288 xor 0010000111000111000111000020000000 1000000111000111000111001000000000 -> NaN Invalid_operation +dqxor289 xor 0001000111000111000111000070000001 1000000111000111000111000100000000 -> NaN Invalid_operation +dqxor290 xor 0000000111000111000111100080000010 1000000111000111000111000010000000 -> NaN Invalid_operation +dqxor291 xor 0000000111000111000111010090000100 1000000111000111000111000001000000 -> NaN Invalid_operation +dqxor292 xor 1000000111000111000111001000001000 0000000111000111000111000020100000 -> NaN Invalid_operation +dqxor293 xor 1000000111000111000111000100010000 0000000111000111000111000070010000 -> NaN Invalid_operation +dqxor294 xor 1000000111000111000111000010100000 0000000111000111000111000080001000 -> NaN Invalid_operation +dqxor295 xor 1000000111000111000111000001000000 0000000111000111000111000090000100 -> NaN Invalid_operation +-- signs +dqxor296 xor -1000000111000111000111000001000000 -0000001110001110001110010000000100 -> NaN Invalid_operation +dqxor297 xor -1000000111000111000111000001000000 0000001110001110001110000010000100 -> NaN Invalid_operation +dqxor298 xor 1000000111000111000111000001000000 -0000001110001110001110001000000100 -> NaN Invalid_operation +dqxor299 xor 1000000111000111000111000001000000 0000001110001110001110000011000100 -> 1000001001001001001001000010000100 + +-- Nmax, Nmin, Ntiny-like +dqxor331 xor 2 9.99999999E+999 -> NaN Invalid_operation +dqxor332 xor 3 1E-999 -> NaN Invalid_operation +dqxor333 xor 4 1.00000000E-2821 -> NaN Invalid_operation +dqxor334 xor 5 1E-900 -> NaN Invalid_operation +dqxor335 xor 6 -1E-900 -> NaN Invalid_operation +dqxor336 xor 7 -1.00000000E-999 -> NaN Invalid_operation +dqxor337 xor 8 -1E-999 -> NaN Invalid_operation +dqxor338 xor 9 -9.99999999E+999 -> NaN Invalid_operation +dqxor341 xor 9.99999999E+999 -18 -> NaN Invalid_operation +dqxor342 xor 1E-999 01 -> NaN Invalid_operation +dqxor343 xor 1.00000000E-999 -18 -> NaN Invalid_operation +dqxor344 xor 1E-908 18 -> NaN Invalid_operation +dqxor345 xor -1E-907 -10 -> NaN Invalid_operation +dqxor346 xor -1.00000000E-999 18 -> NaN Invalid_operation +dqxor347 xor -1E-999 10 -> NaN Invalid_operation +dqxor348 xor -9.99999999E+2991 -18 -> NaN Invalid_operation + +-- A few other non-integers +dqxor361 xor 1.0 1 -> NaN Invalid_operation +dqxor362 xor 1E+1 1 -> NaN Invalid_operation +dqxor363 xor 0.0 1 -> NaN Invalid_operation +dqxor364 xor 0E+1 1 -> NaN Invalid_operation +dqxor365 xor 9.9 1 -> NaN Invalid_operation +dqxor366 xor 9E+1 1 -> NaN Invalid_operation +dqxor371 xor 0 1.0 -> NaN Invalid_operation +dqxor372 xor 0 1E+1 -> NaN Invalid_operation +dqxor373 xor 0 0.0 -> NaN Invalid_operation +dqxor374 xor 0 0E+1 -> NaN Invalid_operation +dqxor375 xor 0 9.9 -> NaN Invalid_operation +dqxor376 xor 0 9E+1 -> NaN Invalid_operation + +-- All Specials are in error +dqxor780 xor -Inf -Inf -> NaN Invalid_operation +dqxor781 xor -Inf -1000 -> NaN Invalid_operation +dqxor782 xor -Inf -1 -> NaN Invalid_operation +dqxor783 xor -Inf -0 -> NaN Invalid_operation +dqxor784 xor -Inf 0 -> NaN Invalid_operation +dqxor785 xor -Inf 1 -> NaN Invalid_operation +dqxor786 xor -Inf 1000 -> NaN Invalid_operation +dqxor787 xor -1000 -Inf -> NaN Invalid_operation +dqxor788 xor -Inf -Inf -> NaN Invalid_operation +dqxor789 xor -1 -Inf -> NaN Invalid_operation +dqxor790 xor -0 -Inf -> NaN Invalid_operation +dqxor791 xor 0 -Inf -> NaN Invalid_operation +dqxor792 xor 1 -Inf -> NaN Invalid_operation +dqxor793 xor 1000 -Inf -> NaN Invalid_operation +dqxor794 xor Inf -Inf -> NaN Invalid_operation + +dqxor800 xor Inf -Inf -> NaN Invalid_operation +dqxor801 xor Inf -1000 -> NaN Invalid_operation +dqxor802 xor Inf -1 -> NaN Invalid_operation +dqxor803 xor Inf -0 -> NaN Invalid_operation +dqxor804 xor Inf 0 -> NaN Invalid_operation +dqxor805 xor Inf 1 -> NaN Invalid_operation +dqxor806 xor Inf 1000 -> NaN Invalid_operation +dqxor807 xor Inf Inf -> NaN Invalid_operation +dqxor808 xor -1000 Inf -> NaN Invalid_operation +dqxor809 xor -Inf Inf -> NaN Invalid_operation +dqxor810 xor -1 Inf -> NaN Invalid_operation +dqxor811 xor -0 Inf -> NaN Invalid_operation +dqxor812 xor 0 Inf -> NaN Invalid_operation +dqxor813 xor 1 Inf -> NaN Invalid_operation +dqxor814 xor 1000 Inf -> NaN Invalid_operation +dqxor815 xor Inf Inf -> NaN Invalid_operation + +dqxor821 xor NaN -Inf -> NaN Invalid_operation +dqxor822 xor NaN -1000 -> NaN Invalid_operation +dqxor823 xor NaN -1 -> NaN Invalid_operation +dqxor824 xor NaN -0 -> NaN Invalid_operation +dqxor825 xor NaN 0 -> NaN Invalid_operation +dqxor826 xor NaN 1 -> NaN Invalid_operation +dqxor827 xor NaN 1000 -> NaN Invalid_operation +dqxor828 xor NaN Inf -> NaN Invalid_operation +dqxor829 xor NaN NaN -> NaN Invalid_operation +dqxor830 xor -Inf NaN -> NaN Invalid_operation +dqxor831 xor -1000 NaN -> NaN Invalid_operation +dqxor832 xor -1 NaN -> NaN Invalid_operation +dqxor833 xor -0 NaN -> NaN Invalid_operation +dqxor834 xor 0 NaN -> NaN Invalid_operation +dqxor835 xor 1 NaN -> NaN Invalid_operation +dqxor836 xor 1000 NaN -> NaN Invalid_operation +dqxor837 xor Inf NaN -> NaN Invalid_operation + +dqxor841 xor sNaN -Inf -> NaN Invalid_operation +dqxor842 xor sNaN -1000 -> NaN Invalid_operation +dqxor843 xor sNaN -1 -> NaN Invalid_operation +dqxor844 xor sNaN -0 -> NaN Invalid_operation +dqxor845 xor sNaN 0 -> NaN Invalid_operation +dqxor846 xor sNaN 1 -> NaN Invalid_operation +dqxor847 xor sNaN 1000 -> NaN Invalid_operation +dqxor848 xor sNaN NaN -> NaN Invalid_operation +dqxor849 xor sNaN sNaN -> NaN Invalid_operation +dqxor850 xor NaN sNaN -> NaN Invalid_operation +dqxor851 xor -Inf sNaN -> NaN Invalid_operation +dqxor852 xor -1000 sNaN -> NaN Invalid_operation +dqxor853 xor -1 sNaN -> NaN Invalid_operation +dqxor854 xor -0 sNaN -> NaN Invalid_operation +dqxor855 xor 0 sNaN -> NaN Invalid_operation +dqxor856 xor 1 sNaN -> NaN Invalid_operation +dqxor857 xor 1000 sNaN -> NaN Invalid_operation +dqxor858 xor Inf sNaN -> NaN Invalid_operation +dqxor859 xor NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +dqxor861 xor NaN1 -Inf -> NaN Invalid_operation +dqxor862 xor +NaN2 -1000 -> NaN Invalid_operation +dqxor863 xor NaN3 1000 -> NaN Invalid_operation +dqxor864 xor NaN4 Inf -> NaN Invalid_operation +dqxor865 xor NaN5 +NaN6 -> NaN Invalid_operation +dqxor866 xor -Inf NaN7 -> NaN Invalid_operation +dqxor867 xor -1000 NaN8 -> NaN Invalid_operation +dqxor868 xor 1000 NaN9 -> NaN Invalid_operation +dqxor869 xor Inf +NaN10 -> NaN Invalid_operation +dqxor871 xor sNaN11 -Inf -> NaN Invalid_operation +dqxor872 xor sNaN12 -1000 -> NaN Invalid_operation +dqxor873 xor sNaN13 1000 -> NaN Invalid_operation +dqxor874 xor sNaN14 NaN17 -> NaN Invalid_operation +dqxor875 xor sNaN15 sNaN18 -> NaN Invalid_operation +dqxor876 xor NaN16 sNaN19 -> NaN Invalid_operation +dqxor877 xor -Inf +sNaN20 -> NaN Invalid_operation +dqxor878 xor -1000 sNaN21 -> NaN Invalid_operation +dqxor879 xor 1000 sNaN22 -> NaN Invalid_operation +dqxor880 xor Inf sNaN23 -> NaN Invalid_operation +dqxor881 xor +NaN25 +sNaN24 -> NaN Invalid_operation +dqxor882 xor -NaN26 NaN28 -> NaN Invalid_operation +dqxor883 xor -sNaN27 sNaN29 -> NaN Invalid_operation +dqxor884 xor 1000 -NaN30 -> NaN Invalid_operation +dqxor885 xor 1000 -sNaN31 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/dsBase.decTest b/Lib/test/decimaltestdata/dsBase.decTest index 8ac45fc552..5e5e5a5d91 100644 --- a/Lib/test/decimaltestdata/dsBase.decTest +++ b/Lib/test/decimaltestdata/dsBase.decTest @@ -1,1062 +1,1062 @@ -------------------------------------------------------------------------
--- dsBase.decTest -- base decSingle <--> string conversions --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- This file tests base conversions from string to a decimal number
--- and back to a string (in Scientific form)
-
--- Note that unlike other operations the operand is subject to rounding
--- to conform to emax and precision settings (that is, numbers will
--- conform to rules and exponent will be in permitted range). The
--- 'left hand side', therefore, may have numbers that cannot be
--- represented in a decSingle. Some testcases go to the limit of the
--- next-wider format, and hence these testcases may also be used to
--- test narrowing and widening operations.
-
-extended: 1
-clamp: 1
-precision: 7
-maxExponent: 96
-minExponent: -95
-rounding: half_even
-
-dsbas001 toSci 0 -> 0
-dsbas002 toSci 1 -> 1
-dsbas003 toSci 1.0 -> 1.0
-dsbas004 toSci 1.00 -> 1.00
-dsbas005 toSci 10 -> 10
-dsbas006 toSci 1000 -> 1000
-dsbas007 toSci 10.0 -> 10.0
-dsbas008 toSci 10.1 -> 10.1
-dsbas009 toSci 10.4 -> 10.4
-dsbas010 toSci 10.5 -> 10.5
-dsbas011 toSci 10.6 -> 10.6
-dsbas012 toSci 10.9 -> 10.9
-dsbas013 toSci 11.0 -> 11.0
-dsbas014 toSci 1.234 -> 1.234
-dsbas015 toSci 0.123 -> 0.123
-dsbas016 toSci 0.012 -> 0.012
-dsbas017 toSci -0 -> -0
-dsbas018 toSci -0.0 -> -0.0
-dsbas019 toSci -00.00 -> -0.00
-
-dsbas021 toSci -1 -> -1
-dsbas022 toSci -1.0 -> -1.0
-dsbas023 toSci -0.1 -> -0.1
-dsbas024 toSci -9.1 -> -9.1
-dsbas025 toSci -9.11 -> -9.11
-dsbas026 toSci -9.119 -> -9.119
-dsbas027 toSci -9.999 -> -9.999
-
-dsbas030 toSci '1234.567' -> '1234.567'
-dsbas031 toSci '1234.000' -> '1234.000'
-dsbas032 toSci '1234912' -> '1234912'
-dsbas033 toSci '0.00001234567' -> '0.00001234567'
-dsbas034 toSci '0.000001234567' -> '0.000001234567'
-dsbas035 toSci '0.0000001234567' -> '1.234567E-7'
-dsbas036 toSci '0.00000001234567' -> '1.234567E-8'
-
-dsbas037 toSci '0.1234564' -> '0.1234564'
-dsbas038 toSci '0.1234565' -> '0.1234565'
-
--- test finite bounds (Negs of, then 0, Ntiny, Nmin, other, Nmax)
-dsbsn001 toSci -9.999999E+96 -> -9.999999E+96
-dsbsn002 toSci -1E-95 -> -1E-95
-dsbsn003 toSci -1E-101 -> -1E-101 Subnormal
-dsbsn004 toSci -0 -> -0
-dsbsn005 toSci +0 -> 0
-dsbsn006 toSci +1E-101 -> 1E-101 Subnormal
-dsbsn007 toSci +1E-95 -> 1E-95
-dsbsn008 toSci +9.999999E+96 -> 9.999999E+96
-
--- String [many more examples are implicitly tested elsewhere]
--- strings without E cannot generate E in result
-dsbas040 toSci "12" -> '12'
-dsbas041 toSci "-76" -> '-76'
-dsbas042 toSci "12.76" -> '12.76'
-dsbas043 toSci "+12.76" -> '12.76'
-dsbas044 toSci "012.76" -> '12.76'
-dsbas045 toSci "+0.003" -> '0.003'
-dsbas046 toSci "17." -> '17'
-dsbas047 toSci ".5" -> '0.5'
-dsbas048 toSci "044" -> '44'
-dsbas049 toSci "0044" -> '44'
-dsbas050 toSci "0.0005" -> '0.0005'
-dsbas051 toSci "00.00005" -> '0.00005'
-dsbas052 toSci "0.000005" -> '0.000005'
-dsbas053 toSci "0.0000050" -> '0.0000050'
-dsbas054 toSci "0.0000005" -> '5E-7'
-dsbas055 toSci "0.00000005" -> '5E-8'
-dsbas056 toSci "12678.54" -> '12678.54'
-dsbas057 toSci "2678.543" -> '2678.543'
-dsbas058 toSci "345678.5" -> '345678.5'
-dsbas059 toSci "0678.5432" -> '678.5432'
-dsbas060 toSci "678.5432" -> '678.5432'
-dsbas061 toSci "+678.5432" -> '678.5432'
-dsbas062 toSci "+0678.5432" -> '678.5432'
-dsbas063 toSci "+00678.5432" -> '678.5432'
-dsbas064 toSci "-678.5432" -> '-678.5432'
-dsbas065 toSci "-0678.5432" -> '-678.5432'
-dsbas066 toSci "-00678.5432" -> '-678.5432'
--- examples
-dsbas067 toSci "5E-6" -> '0.000005'
-dsbas068 toSci "50E-7" -> '0.0000050'
-dsbas069 toSci "5E-7" -> '5E-7'
-
--- [No exotics as no Unicode]
-
--- rounded with dots in all (including edge) places
-dsbas071 toSci .1234567890123456 -> 0.1234568 Inexact Rounded
-dsbas072 toSci 1.234567890123456 -> 1.234568 Inexact Rounded
-dsbas073 toSci 12.34567890123456 -> 12.34568 Inexact Rounded
-dsbas074 toSci 123.4567890123456 -> 123.4568 Inexact Rounded
-dsbas075 toSci 1234.567890123456 -> 1234.568 Inexact Rounded
-dsbas076 toSci 12345.67890123456 -> 12345.68 Inexact Rounded
-dsbas077 toSci 123456.7890123456 -> 123456.8 Inexact Rounded
-dsbas078 toSci 1234567.890123456 -> 1234568 Inexact Rounded
-dsbas079 toSci 12345678.90123456 -> 1.234568E+7 Inexact Rounded
-dsbas080 toSci 123456789.0123456 -> 1.234568E+8 Inexact Rounded
-dsbas081 toSci 1234567890.123456 -> 1.234568E+9 Inexact Rounded
-dsbas082 toSci 12345678901.23456 -> 1.234568E+10 Inexact Rounded
-dsbas083 toSci 123456789012.3456 -> 1.234568E+11 Inexact Rounded
-dsbas084 toSci 1234567890123.456 -> 1.234568E+12 Inexact Rounded
-dsbas085 toSci 12345678901234.56 -> 1.234568E+13 Inexact Rounded
-dsbas086 toSci 123456789012345.6 -> 1.234568E+14 Inexact Rounded
-dsbas087 toSci 1234567890123456. -> 1.234568E+15 Inexact Rounded
-dsbas088 toSci 1234567890123456 -> 1.234568E+15 Inexact Rounded
-
--- Numbers with E
-dsbas130 toSci "0.000E-1" -> '0.0000'
-dsbas131 toSci "0.000E-2" -> '0.00000'
-dsbas132 toSci "0.000E-3" -> '0.000000'
-dsbas133 toSci "0.000E-4" -> '0E-7'
-dsbas134 toSci "0.00E-2" -> '0.0000'
-dsbas135 toSci "0.00E-3" -> '0.00000'
-dsbas136 toSci "0.00E-4" -> '0.000000'
-dsbas137 toSci "0.00E-5" -> '0E-7'
-dsbas138 toSci "+0E+9" -> '0E+9'
-dsbas139 toSci "-0E+9" -> '-0E+9'
-dsbas140 toSci "1E+9" -> '1E+9'
-dsbas141 toSci "1e+09" -> '1E+9'
-dsbas142 toSci "1E+90" -> '1E+90'
-dsbas143 toSci "+1E+009" -> '1E+9'
-dsbas144 toSci "0E+9" -> '0E+9'
-dsbas145 toSci "1E+9" -> '1E+9'
-dsbas146 toSci "1E+09" -> '1E+9'
-dsbas147 toSci "1e+90" -> '1E+90'
-dsbas148 toSci "1E+009" -> '1E+9'
-dsbas149 toSci "000E+9" -> '0E+9'
-dsbas150 toSci "1E9" -> '1E+9'
-dsbas151 toSci "1e09" -> '1E+9'
-dsbas152 toSci "1E90" -> '1E+90'
-dsbas153 toSci "1E009" -> '1E+9'
-dsbas154 toSci "0E9" -> '0E+9'
-dsbas155 toSci "0.000e+0" -> '0.000'
-dsbas156 toSci "0.000E-1" -> '0.0000'
-dsbas157 toSci "4E+9" -> '4E+9'
-dsbas158 toSci "44E+9" -> '4.4E+10'
-dsbas159 toSci "0.73e-7" -> '7.3E-8'
-dsbas160 toSci "00E+9" -> '0E+9'
-dsbas161 toSci "00E-9" -> '0E-9'
-dsbas162 toSci "10E+9" -> '1.0E+10'
-dsbas163 toSci "10E+09" -> '1.0E+10'
-dsbas164 toSci "10e+90" -> '1.0E+91'
-dsbas165 toSci "10E+009" -> '1.0E+10'
-dsbas166 toSci "100e+9" -> '1.00E+11'
-dsbas167 toSci "100e+09" -> '1.00E+11'
-dsbas168 toSci "100E+90" -> '1.00E+92'
-dsbas169 toSci "100e+009" -> '1.00E+11'
-
-dsbas170 toSci "1.265" -> '1.265'
-dsbas171 toSci "1.265E-20" -> '1.265E-20'
-dsbas172 toSci "1.265E-8" -> '1.265E-8'
-dsbas173 toSci "1.265E-4" -> '0.0001265'
-dsbas174 toSci "1.265E-3" -> '0.001265'
-dsbas175 toSci "1.265E-2" -> '0.01265'
-dsbas176 toSci "1.265E-1" -> '0.1265'
-dsbas177 toSci "1.265E-0" -> '1.265'
-dsbas178 toSci "1.265E+1" -> '12.65'
-dsbas179 toSci "1.265E+2" -> '126.5'
-dsbas180 toSci "1.265E+3" -> '1265'
-dsbas181 toSci "1.265E+4" -> '1.265E+4'
-dsbas182 toSci "1.265E+8" -> '1.265E+8'
-dsbas183 toSci "1.265E+20" -> '1.265E+20'
-
-dsbas190 toSci "12.65" -> '12.65'
-dsbas191 toSci "12.65E-20" -> '1.265E-19'
-dsbas192 toSci "12.65E-8" -> '1.265E-7'
-dsbas193 toSci "12.65E-4" -> '0.001265'
-dsbas194 toSci "12.65E-3" -> '0.01265'
-dsbas195 toSci "12.65E-2" -> '0.1265'
-dsbas196 toSci "12.65E-1" -> '1.265'
-dsbas197 toSci "12.65E-0" -> '12.65'
-dsbas198 toSci "12.65E+1" -> '126.5'
-dsbas199 toSci "12.65E+2" -> '1265'
-dsbas200 toSci "12.65E+3" -> '1.265E+4'
-dsbas201 toSci "12.65E+4" -> '1.265E+5'
-dsbas202 toSci "12.65E+8" -> '1.265E+9'
-dsbas203 toSci "12.65E+20" -> '1.265E+21'
-
-dsbas210 toSci "126.5" -> '126.5'
-dsbas211 toSci "126.5E-20" -> '1.265E-18'
-dsbas212 toSci "126.5E-8" -> '0.000001265'
-dsbas213 toSci "126.5E-4" -> '0.01265'
-dsbas214 toSci "126.5E-3" -> '0.1265'
-dsbas215 toSci "126.5E-2" -> '1.265'
-dsbas216 toSci "126.5E-1" -> '12.65'
-dsbas217 toSci "126.5E-0" -> '126.5'
-dsbas218 toSci "126.5E+1" -> '1265'
-dsbas219 toSci "126.5E+2" -> '1.265E+4'
-dsbas220 toSci "126.5E+3" -> '1.265E+5'
-dsbas221 toSci "126.5E+4" -> '1.265E+6'
-dsbas222 toSci "126.5E+8" -> '1.265E+10'
-dsbas223 toSci "126.5E+20" -> '1.265E+22'
-
-dsbas230 toSci "1265" -> '1265'
-dsbas231 toSci "1265E-20" -> '1.265E-17'
-dsbas232 toSci "1265E-8" -> '0.00001265'
-dsbas233 toSci "1265E-4" -> '0.1265'
-dsbas234 toSci "1265E-3" -> '1.265'
-dsbas235 toSci "1265E-2" -> '12.65'
-dsbas236 toSci "1265E-1" -> '126.5'
-dsbas237 toSci "1265E-0" -> '1265'
-dsbas238 toSci "1265E+1" -> '1.265E+4'
-dsbas239 toSci "1265E+2" -> '1.265E+5'
-dsbas240 toSci "1265E+3" -> '1.265E+6'
-dsbas241 toSci "1265E+4" -> '1.265E+7'
-dsbas242 toSci "1265E+8" -> '1.265E+11'
-dsbas243 toSci "1265E+20" -> '1.265E+23'
-
-dsbas250 toSci "0.1265" -> '0.1265'
-dsbas251 toSci "0.1265E-20" -> '1.265E-21'
-dsbas252 toSci "0.1265E-8" -> '1.265E-9'
-dsbas253 toSci "0.1265E-4" -> '0.00001265'
-dsbas254 toSci "0.1265E-3" -> '0.0001265'
-dsbas255 toSci "0.1265E-2" -> '0.001265'
-dsbas256 toSci "0.1265E-1" -> '0.01265'
-dsbas257 toSci "0.1265E-0" -> '0.1265'
-dsbas258 toSci "0.1265E+1" -> '1.265'
-dsbas259 toSci "0.1265E+2" -> '12.65'
-dsbas260 toSci "0.1265E+3" -> '126.5'
-dsbas261 toSci "0.1265E+4" -> '1265'
-dsbas262 toSci "0.1265E+8" -> '1.265E+7'
-dsbas263 toSci "0.1265E+20" -> '1.265E+19'
-
--- some more negative zeros [systematic tests below]
-dsbas290 toSci "-0.000E-1" -> '-0.0000'
-dsbas291 toSci "-0.000E-2" -> '-0.00000'
-dsbas292 toSci "-0.000E-3" -> '-0.000000'
-dsbas293 toSci "-0.000E-4" -> '-0E-7'
-dsbas294 toSci "-0.00E-2" -> '-0.0000'
-dsbas295 toSci "-0.00E-3" -> '-0.00000'
-dsbas296 toSci "-0.0E-2" -> '-0.000'
-dsbas297 toSci "-0.0E-3" -> '-0.0000'
-dsbas298 toSci "-0E-2" -> '-0.00'
-dsbas299 toSci "-0E-3" -> '-0.000'
-
--- Engineering notation tests
-dsbas301 toSci 10e12 -> 1.0E+13
-dsbas302 toEng 10e12 -> 10E+12
-dsbas303 toSci 10e11 -> 1.0E+12
-dsbas304 toEng 10e11 -> 1.0E+12
-dsbas305 toSci 10e10 -> 1.0E+11
-dsbas306 toEng 10e10 -> 100E+9
-dsbas307 toSci 10e9 -> 1.0E+10
-dsbas308 toEng 10e9 -> 10E+9
-dsbas309 toSci 10e8 -> 1.0E+9
-dsbas310 toEng 10e8 -> 1.0E+9
-dsbas311 toSci 10e7 -> 1.0E+8
-dsbas312 toEng 10e7 -> 100E+6
-dsbas313 toSci 10e6 -> 1.0E+7
-dsbas314 toEng 10e6 -> 10E+6
-dsbas315 toSci 10e5 -> 1.0E+6
-dsbas316 toEng 10e5 -> 1.0E+6
-dsbas317 toSci 10e4 -> 1.0E+5
-dsbas318 toEng 10e4 -> 100E+3
-dsbas319 toSci 10e3 -> 1.0E+4
-dsbas320 toEng 10e3 -> 10E+3
-dsbas321 toSci 10e2 -> 1.0E+3
-dsbas322 toEng 10e2 -> 1.0E+3
-dsbas323 toSci 10e1 -> 1.0E+2
-dsbas324 toEng 10e1 -> 100
-dsbas325 toSci 10e0 -> 10
-dsbas326 toEng 10e0 -> 10
-dsbas327 toSci 10e-1 -> 1.0
-dsbas328 toEng 10e-1 -> 1.0
-dsbas329 toSci 10e-2 -> 0.10
-dsbas330 toEng 10e-2 -> 0.10
-dsbas331 toSci 10e-3 -> 0.010
-dsbas332 toEng 10e-3 -> 0.010
-dsbas333 toSci 10e-4 -> 0.0010
-dsbas334 toEng 10e-4 -> 0.0010
-dsbas335 toSci 10e-5 -> 0.00010
-dsbas336 toEng 10e-5 -> 0.00010
-dsbas337 toSci 10e-6 -> 0.000010
-dsbas338 toEng 10e-6 -> 0.000010
-dsbas339 toSci 10e-7 -> 0.0000010
-dsbas340 toEng 10e-7 -> 0.0000010
-dsbas341 toSci 10e-8 -> 1.0E-7
-dsbas342 toEng 10e-8 -> 100E-9
-dsbas343 toSci 10e-9 -> 1.0E-8
-dsbas344 toEng 10e-9 -> 10E-9
-dsbas345 toSci 10e-10 -> 1.0E-9
-dsbas346 toEng 10e-10 -> 1.0E-9
-dsbas347 toSci 10e-11 -> 1.0E-10
-dsbas348 toEng 10e-11 -> 100E-12
-dsbas349 toSci 10e-12 -> 1.0E-11
-dsbas350 toEng 10e-12 -> 10E-12
-dsbas351 toSci 10e-13 -> 1.0E-12
-dsbas352 toEng 10e-13 -> 1.0E-12
-
-dsbas361 toSci 7E12 -> 7E+12
-dsbas362 toEng 7E12 -> 7E+12
-dsbas363 toSci 7E11 -> 7E+11
-dsbas364 toEng 7E11 -> 700E+9
-dsbas365 toSci 7E10 -> 7E+10
-dsbas366 toEng 7E10 -> 70E+9
-dsbas367 toSci 7E9 -> 7E+9
-dsbas368 toEng 7E9 -> 7E+9
-dsbas369 toSci 7E8 -> 7E+8
-dsbas370 toEng 7E8 -> 700E+6
-dsbas371 toSci 7E7 -> 7E+7
-dsbas372 toEng 7E7 -> 70E+6
-dsbas373 toSci 7E6 -> 7E+6
-dsbas374 toEng 7E6 -> 7E+6
-dsbas375 toSci 7E5 -> 7E+5
-dsbas376 toEng 7E5 -> 700E+3
-dsbas377 toSci 7E4 -> 7E+4
-dsbas378 toEng 7E4 -> 70E+3
-dsbas379 toSci 7E3 -> 7E+3
-dsbas380 toEng 7E3 -> 7E+3
-dsbas381 toSci 7E2 -> 7E+2
-dsbas382 toEng 7E2 -> 700
-dsbas383 toSci 7E1 -> 7E+1
-dsbas384 toEng 7E1 -> 70
-dsbas385 toSci 7E0 -> 7
-dsbas386 toEng 7E0 -> 7
-dsbas387 toSci 7E-1 -> 0.7
-dsbas388 toEng 7E-1 -> 0.7
-dsbas389 toSci 7E-2 -> 0.07
-dsbas390 toEng 7E-2 -> 0.07
-dsbas391 toSci 7E-3 -> 0.007
-dsbas392 toEng 7E-3 -> 0.007
-dsbas393 toSci 7E-4 -> 0.0007
-dsbas394 toEng 7E-4 -> 0.0007
-dsbas395 toSci 7E-5 -> 0.00007
-dsbas396 toEng 7E-5 -> 0.00007
-dsbas397 toSci 7E-6 -> 0.000007
-dsbas398 toEng 7E-6 -> 0.000007
-dsbas399 toSci 7E-7 -> 7E-7
-dsbas400 toEng 7E-7 -> 700E-9
-dsbas401 toSci 7E-8 -> 7E-8
-dsbas402 toEng 7E-8 -> 70E-9
-dsbas403 toSci 7E-9 -> 7E-9
-dsbas404 toEng 7E-9 -> 7E-9
-dsbas405 toSci 7E-10 -> 7E-10
-dsbas406 toEng 7E-10 -> 700E-12
-dsbas407 toSci 7E-11 -> 7E-11
-dsbas408 toEng 7E-11 -> 70E-12
-dsbas409 toSci 7E-12 -> 7E-12
-dsbas410 toEng 7E-12 -> 7E-12
-dsbas411 toSci 7E-13 -> 7E-13
-dsbas412 toEng 7E-13 -> 700E-15
-
--- Exacts remain exact up to precision ..
-dsbas420 toSci 100 -> 100
-dsbas422 toSci 1000 -> 1000
-dsbas424 toSci 999.9 -> 999.9
-dsbas426 toSci 1000.0 -> 1000.0
-dsbas428 toSci 1000.1 -> 1000.1
-dsbas430 toSci 10000 -> 10000
-dsbas432 toSci 1000 -> 1000
-dsbas434 toSci 10000 -> 10000
-dsbas436 toSci 100000 -> 100000
-dsbas438 toSci 1000000 -> 1000000
-dsbas440 toSci 10000000 -> 1.000000E+7 Rounded
-dsbas442 toSci 10000000 -> 1.000000E+7 Rounded
-dsbas444 toSci 10000003 -> 1.000000E+7 Rounded Inexact
-dsbas446 toSci 10000005 -> 1.000000E+7 Rounded Inexact
-dsbas448 toSci 100000050 -> 1.000000E+8 Rounded Inexact
-dsbas450 toSci 10000009 -> 1.000001E+7 Rounded Inexact
-dsbas452 toSci 100000000 -> 1.000000E+8 Rounded
-dsbas454 toSci 100000003 -> 1.000000E+8 Rounded Inexact
-dsbas456 toSci 100000005 -> 1.000000E+8 Rounded Inexact
-dsbas458 toSci 100000009 -> 1.000000E+8 Rounded Inexact
-dsbas460 toSci 1000000000 -> 1.000000E+9 Rounded
-dsbas462 toSci 1000000300 -> 1.000000E+9 Rounded Inexact
-dsbas464 toSci 1000000500 -> 1.000000E+9 Rounded Inexact
-dsbas466 toSci 1000000900 -> 1.000001E+9 Rounded Inexact
-dsbas468 toSci 10000000000 -> 1.000000E+10 Rounded
-dsbas470 toSci 10000003000 -> 1.000000E+10 Rounded Inexact
-dsbas472 toSci 10000005000 -> 1.000000E+10 Rounded Inexact
-dsbas474 toSci 10000009000 -> 1.000001E+10 Rounded Inexact
-
--- check rounding modes heeded
-rounding: ceiling
-dsbsr401 toSci 1.1123450 -> 1.112345 Rounded
-dsbsr402 toSci 1.11234549 -> 1.112346 Rounded Inexact
-dsbsr403 toSci 1.11234550 -> 1.112346 Rounded Inexact
-dsbsr404 toSci 1.11234551 -> 1.112346 Rounded Inexact
-rounding: up
-dsbsr405 toSci 1.1123450 -> 1.112345 Rounded
-dsbsr406 toSci 1.11234549 -> 1.112346 Rounded Inexact
-dsbsr407 toSci 1.11234550 -> 1.112346 Rounded Inexact
-dsbsr408 toSci 1.11234551 -> 1.112346 Rounded Inexact
-rounding: floor
-dsbsr410 toSci 1.1123450 -> 1.112345 Rounded
-dsbsr411 toSci 1.11234549 -> 1.112345 Rounded Inexact
-dsbsr412 toSci 1.11234550 -> 1.112345 Rounded Inexact
-dsbsr413 toSci 1.11234551 -> 1.112345 Rounded Inexact
-rounding: half_down
-dsbsr415 toSci 1.1123450 -> 1.112345 Rounded
-dsbsr416 toSci 1.11234549 -> 1.112345 Rounded Inexact
-dsbsr417 toSci 1.11234550 -> 1.112345 Rounded Inexact
-dsbsr418 toSci 1.11234650 -> 1.112346 Rounded Inexact
-dsbsr419 toSci 1.11234551 -> 1.112346 Rounded Inexact
-rounding: half_even
-dsbsr421 toSci 1.1123450 -> 1.112345 Rounded
-dsbsr422 toSci 1.11234549 -> 1.112345 Rounded Inexact
-dsbsr423 toSci 1.11234550 -> 1.112346 Rounded Inexact
-dsbsr424 toSci 1.11234650 -> 1.112346 Rounded Inexact
-dsbsr425 toSci 1.11234551 -> 1.112346 Rounded Inexact
-rounding: down
-dsbsr426 toSci 1.1123450 -> 1.112345 Rounded
-dsbsr427 toSci 1.11234549 -> 1.112345 Rounded Inexact
-dsbsr428 toSci 1.11234550 -> 1.112345 Rounded Inexact
-dsbsr429 toSci 1.11234551 -> 1.112345 Rounded Inexact
-rounding: half_up
-dsbsr431 toSci 1.1123450 -> 1.112345 Rounded
-dsbsr432 toSci 1.11234549 -> 1.112345 Rounded Inexact
-dsbsr433 toSci 1.11234550 -> 1.112346 Rounded Inexact
-dsbsr434 toSci 1.11234650 -> 1.112347 Rounded Inexact
-dsbsr435 toSci 1.11234551 -> 1.112346 Rounded Inexact
--- negatives
-rounding: ceiling
-dsbsr501 toSci -1.1123450 -> -1.112345 Rounded
-dsbsr502 toSci -1.11234549 -> -1.112345 Rounded Inexact
-dsbsr503 toSci -1.11234550 -> -1.112345 Rounded Inexact
-dsbsr504 toSci -1.11234551 -> -1.112345 Rounded Inexact
-rounding: up
-dsbsr505 toSci -1.1123450 -> -1.112345 Rounded
-dsbsr506 toSci -1.11234549 -> -1.112346 Rounded Inexact
-dsbsr507 toSci -1.11234550 -> -1.112346 Rounded Inexact
-dsbsr508 toSci -1.11234551 -> -1.112346 Rounded Inexact
-rounding: floor
-dsbsr510 toSci -1.1123450 -> -1.112345 Rounded
-dsbsr511 toSci -1.11234549 -> -1.112346 Rounded Inexact
-dsbsr512 toSci -1.11234550 -> -1.112346 Rounded Inexact
-dsbsr513 toSci -1.11234551 -> -1.112346 Rounded Inexact
-rounding: half_down
-dsbsr515 toSci -1.1123450 -> -1.112345 Rounded
-dsbsr516 toSci -1.11234549 -> -1.112345 Rounded Inexact
-dsbsr517 toSci -1.11234550 -> -1.112345 Rounded Inexact
-dsbsr518 toSci -1.11234650 -> -1.112346 Rounded Inexact
-dsbsr519 toSci -1.11234551 -> -1.112346 Rounded Inexact
-rounding: half_even
-dsbsr521 toSci -1.1123450 -> -1.112345 Rounded
-dsbsr522 toSci -1.11234549 -> -1.112345 Rounded Inexact
-dsbsr523 toSci -1.11234550 -> -1.112346 Rounded Inexact
-dsbsr524 toSci -1.11234650 -> -1.112346 Rounded Inexact
-dsbsr525 toSci -1.11234551 -> -1.112346 Rounded Inexact
-rounding: down
-dsbsr526 toSci -1.1123450 -> -1.112345 Rounded
-dsbsr527 toSci -1.11234549 -> -1.112345 Rounded Inexact
-dsbsr528 toSci -1.11234550 -> -1.112345 Rounded Inexact
-dsbsr529 toSci -1.11234551 -> -1.112345 Rounded Inexact
-rounding: half_up
-dsbsr531 toSci -1.1123450 -> -1.112345 Rounded
-dsbsr532 toSci -1.11234549 -> -1.112345 Rounded Inexact
-dsbsr533 toSci -1.11234550 -> -1.112346 Rounded Inexact
-dsbsr534 toSci -1.11234650 -> -1.112347 Rounded Inexact
-dsbsr535 toSci -1.11234551 -> -1.112346 Rounded Inexact
-
-rounding: half_even
-
--- The 'baddies' tests from DiagBigDecimal, plus some new ones
-dsbas500 toSci '1..2' -> NaN Conversion_syntax
-dsbas501 toSci '.' -> NaN Conversion_syntax
-dsbas502 toSci '..' -> NaN Conversion_syntax
-dsbas503 toSci '++1' -> NaN Conversion_syntax
-dsbas504 toSci '--1' -> NaN Conversion_syntax
-dsbas505 toSci '-+1' -> NaN Conversion_syntax
-dsbas506 toSci '+-1' -> NaN Conversion_syntax
-dsbas507 toSci '12e' -> NaN Conversion_syntax
-dsbas508 toSci '12e++' -> NaN Conversion_syntax
-dsbas509 toSci '12f4' -> NaN Conversion_syntax
-dsbas510 toSci ' +1' -> NaN Conversion_syntax
-dsbas511 toSci '+ 1' -> NaN Conversion_syntax
-dsbas512 toSci '12 ' -> NaN Conversion_syntax
-dsbas513 toSci ' + 1' -> NaN Conversion_syntax
-dsbas514 toSci ' - 1 ' -> NaN Conversion_syntax
-dsbas515 toSci 'x' -> NaN Conversion_syntax
-dsbas516 toSci '-1-' -> NaN Conversion_syntax
-dsbas517 toSci '12-' -> NaN Conversion_syntax
-dsbas518 toSci '3+' -> NaN Conversion_syntax
-dsbas519 toSci '' -> NaN Conversion_syntax
-dsbas520 toSci '1e-' -> NaN Conversion_syntax
-dsbas521 toSci '7e99999a' -> NaN Conversion_syntax
-dsbas522 toSci '7e123567890x' -> NaN Conversion_syntax
-dsbas523 toSci '7e12356789012x' -> NaN Conversion_syntax
-dsbas524 toSci '' -> NaN Conversion_syntax
-dsbas525 toSci 'e100' -> NaN Conversion_syntax
-dsbas526 toSci '\u0e5a' -> NaN Conversion_syntax
-dsbas527 toSci '\u0b65' -> NaN Conversion_syntax
-dsbas528 toSci '123,65' -> NaN Conversion_syntax
-dsbas529 toSci '1.34.5' -> NaN Conversion_syntax
-dsbas530 toSci '.123.5' -> NaN Conversion_syntax
-dsbas531 toSci '01.35.' -> NaN Conversion_syntax
-dsbas532 toSci '01.35-' -> NaN Conversion_syntax
-dsbas533 toSci '0000..' -> NaN Conversion_syntax
-dsbas534 toSci '.0000.' -> NaN Conversion_syntax
-dsbas535 toSci '00..00' -> NaN Conversion_syntax
-dsbas536 toSci '111e*123' -> NaN Conversion_syntax
-dsbas537 toSci '111e123-' -> NaN Conversion_syntax
-dsbas538 toSci '111e+12+' -> NaN Conversion_syntax
-dsbas539 toSci '111e1-3-' -> NaN Conversion_syntax
-dsbas540 toSci '111e1*23' -> NaN Conversion_syntax
-dsbas541 toSci '111e1e+3' -> NaN Conversion_syntax
-dsbas542 toSci '1e1.0' -> NaN Conversion_syntax
-dsbas543 toSci '1e123e' -> NaN Conversion_syntax
-dsbas544 toSci 'ten' -> NaN Conversion_syntax
-dsbas545 toSci 'ONE' -> NaN Conversion_syntax
-dsbas546 toSci '1e.1' -> NaN Conversion_syntax
-dsbas547 toSci '1e1.' -> NaN Conversion_syntax
-dsbas548 toSci '1ee' -> NaN Conversion_syntax
-dsbas549 toSci 'e+1' -> NaN Conversion_syntax
-dsbas550 toSci '1.23.4' -> NaN Conversion_syntax
-dsbas551 toSci '1.2.1' -> NaN Conversion_syntax
-dsbas552 toSci '1E+1.2' -> NaN Conversion_syntax
-dsbas553 toSci '1E+1.2.3' -> NaN Conversion_syntax
-dsbas554 toSci '1E++1' -> NaN Conversion_syntax
-dsbas555 toSci '1E--1' -> NaN Conversion_syntax
-dsbas556 toSci '1E+-1' -> NaN Conversion_syntax
-dsbas557 toSci '1E-+1' -> NaN Conversion_syntax
-dsbas558 toSci '1E''1' -> NaN Conversion_syntax
-dsbas559 toSci "1E""1" -> NaN Conversion_syntax
-dsbas560 toSci "1E""""" -> NaN Conversion_syntax
--- Near-specials
-dsbas561 toSci "qNaN" -> NaN Conversion_syntax
-dsbas562 toSci "NaNq" -> NaN Conversion_syntax
-dsbas563 toSci "NaNs" -> NaN Conversion_syntax
-dsbas564 toSci "Infi" -> NaN Conversion_syntax
-dsbas565 toSci "Infin" -> NaN Conversion_syntax
-dsbas566 toSci "Infini" -> NaN Conversion_syntax
-dsbas567 toSci "Infinit" -> NaN Conversion_syntax
-dsbas568 toSci "-Infinit" -> NaN Conversion_syntax
-dsbas569 toSci "0Inf" -> NaN Conversion_syntax
-dsbas570 toSci "9Inf" -> NaN Conversion_syntax
-dsbas571 toSci "-0Inf" -> NaN Conversion_syntax
-dsbas572 toSci "-9Inf" -> NaN Conversion_syntax
-dsbas573 toSci "-sNa" -> NaN Conversion_syntax
-dsbas574 toSci "xNaN" -> NaN Conversion_syntax
-dsbas575 toSci "0sNaN" -> NaN Conversion_syntax
-
--- some baddies with dots and Es and dots and specials
-dsbas576 toSci 'e+1' -> NaN Conversion_syntax
-dsbas577 toSci '.e+1' -> NaN Conversion_syntax
-dsbas578 toSci '+.e+1' -> NaN Conversion_syntax
-dsbas579 toSci '-.e+' -> NaN Conversion_syntax
-dsbas580 toSci '-.e' -> NaN Conversion_syntax
-dsbas581 toSci 'E+1' -> NaN Conversion_syntax
-dsbas582 toSci '.E+1' -> NaN Conversion_syntax
-dsbas583 toSci '+.E+1' -> NaN Conversion_syntax
-dsbas584 toSci '-.E+' -> NaN Conversion_syntax
-dsbas585 toSci '-.E' -> NaN Conversion_syntax
-
-dsbas586 toSci '.NaN' -> NaN Conversion_syntax
-dsbas587 toSci '-.NaN' -> NaN Conversion_syntax
-dsbas588 toSci '+.sNaN' -> NaN Conversion_syntax
-dsbas589 toSci '+.Inf' -> NaN Conversion_syntax
-dsbas590 toSci '.Infinity' -> NaN Conversion_syntax
-
--- Zeros
-dsbas601 toSci 0.000000000 -> 0E-9
-dsbas602 toSci 0.00000000 -> 0E-8
-dsbas603 toSci 0.0000000 -> 0E-7
-dsbas604 toSci 0.000000 -> 0.000000
-dsbas605 toSci 0.00000 -> 0.00000
-dsbas606 toSci 0.0000 -> 0.0000
-dsbas607 toSci 0.000 -> 0.000
-dsbas608 toSci 0.00 -> 0.00
-dsbas609 toSci 0.0 -> 0.0
-dsbas610 toSci .0 -> 0.0
-dsbas611 toSci 0. -> 0
-dsbas612 toSci -.0 -> -0.0
-dsbas613 toSci -0. -> -0
-dsbas614 toSci -0.0 -> -0.0
-dsbas615 toSci -0.00 -> -0.00
-dsbas616 toSci -0.000 -> -0.000
-dsbas617 toSci -0.0000 -> -0.0000
-dsbas618 toSci -0.00000 -> -0.00000
-dsbas619 toSci -0.000000 -> -0.000000
-dsbas620 toSci -0.0000000 -> -0E-7
-dsbas621 toSci -0.00000000 -> -0E-8
-dsbas622 toSci -0.000000000 -> -0E-9
-
-dsbas630 toSci 0.00E+0 -> 0.00
-dsbas631 toSci 0.00E+1 -> 0.0
-dsbas632 toSci 0.00E+2 -> 0
-dsbas633 toSci 0.00E+3 -> 0E+1
-dsbas634 toSci 0.00E+4 -> 0E+2
-dsbas635 toSci 0.00E+5 -> 0E+3
-dsbas636 toSci 0.00E+6 -> 0E+4
-dsbas637 toSci 0.00E+7 -> 0E+5
-dsbas638 toSci 0.00E+8 -> 0E+6
-dsbas639 toSci 0.00E+9 -> 0E+7
-
-dsbas640 toSci 0.0E+0 -> 0.0
-dsbas641 toSci 0.0E+1 -> 0
-dsbas642 toSci 0.0E+2 -> 0E+1
-dsbas643 toSci 0.0E+3 -> 0E+2
-dsbas644 toSci 0.0E+4 -> 0E+3
-dsbas645 toSci 0.0E+5 -> 0E+4
-dsbas646 toSci 0.0E+6 -> 0E+5
-dsbas647 toSci 0.0E+7 -> 0E+6
-dsbas648 toSci 0.0E+8 -> 0E+7
-dsbas649 toSci 0.0E+9 -> 0E+8
-
-dsbas650 toSci 0E+0 -> 0
-dsbas651 toSci 0E+1 -> 0E+1
-dsbas652 toSci 0E+2 -> 0E+2
-dsbas653 toSci 0E+3 -> 0E+3
-dsbas654 toSci 0E+4 -> 0E+4
-dsbas655 toSci 0E+5 -> 0E+5
-dsbas656 toSci 0E+6 -> 0E+6
-dsbas657 toSci 0E+7 -> 0E+7
-dsbas658 toSci 0E+8 -> 0E+8
-dsbas659 toSci 0E+9 -> 0E+9
-
-dsbas660 toSci 0.0E-0 -> 0.0
-dsbas661 toSci 0.0E-1 -> 0.00
-dsbas662 toSci 0.0E-2 -> 0.000
-dsbas663 toSci 0.0E-3 -> 0.0000
-dsbas664 toSci 0.0E-4 -> 0.00000
-dsbas665 toSci 0.0E-5 -> 0.000000
-dsbas666 toSci 0.0E-6 -> 0E-7
-dsbas667 toSci 0.0E-7 -> 0E-8
-dsbas668 toSci 0.0E-8 -> 0E-9
-dsbas669 toSci 0.0E-9 -> 0E-10
-
-dsbas670 toSci 0.00E-0 -> 0.00
-dsbas671 toSci 0.00E-1 -> 0.000
-dsbas672 toSci 0.00E-2 -> 0.0000
-dsbas673 toSci 0.00E-3 -> 0.00000
-dsbas674 toSci 0.00E-4 -> 0.000000
-dsbas675 toSci 0.00E-5 -> 0E-7
-dsbas676 toSci 0.00E-6 -> 0E-8
-dsbas677 toSci 0.00E-7 -> 0E-9
-dsbas678 toSci 0.00E-8 -> 0E-10
-dsbas679 toSci 0.00E-9 -> 0E-11
-
-dsbas680 toSci 000000. -> 0
-dsbas681 toSci 00000. -> 0
-dsbas682 toSci 0000. -> 0
-dsbas683 toSci 000. -> 0
-dsbas684 toSci 00. -> 0
-dsbas685 toSci 0. -> 0
-dsbas686 toSci +00000. -> 0
-dsbas687 toSci -00000. -> -0
-dsbas688 toSci +0. -> 0
-dsbas689 toSci -0. -> -0
-
--- Specials
-dsbas700 toSci "NaN" -> NaN
-dsbas701 toSci "nan" -> NaN
-dsbas702 toSci "nAn" -> NaN
-dsbas703 toSci "NAN" -> NaN
-dsbas704 toSci "+NaN" -> NaN
-dsbas705 toSci "+nan" -> NaN
-dsbas706 toSci "+nAn" -> NaN
-dsbas707 toSci "+NAN" -> NaN
-dsbas708 toSci "-NaN" -> -NaN
-dsbas709 toSci "-nan" -> -NaN
-dsbas710 toSci "-nAn" -> -NaN
-dsbas711 toSci "-NAN" -> -NaN
-dsbas712 toSci 'NaN0' -> NaN
-dsbas713 toSci 'NaN1' -> NaN1
-dsbas714 toSci 'NaN12' -> NaN12
-dsbas715 toSci 'NaN123' -> NaN123
-dsbas716 toSci 'NaN1234' -> NaN1234
-dsbas717 toSci 'NaN01' -> NaN1
-dsbas718 toSci 'NaN012' -> NaN12
-dsbas719 toSci 'NaN0123' -> NaN123
-dsbas720 toSci 'NaN01234' -> NaN1234
-dsbas721 toSci 'NaN001' -> NaN1
-dsbas722 toSci 'NaN0012' -> NaN12
-dsbas723 toSci 'NaN00123' -> NaN123
-dsbas724 toSci 'NaN001234' -> NaN1234
-dsbas725 toSci 'NaN1234567890123456' -> NaN Conversion_syntax
-dsbas726 toSci 'NaN123e+1' -> NaN Conversion_syntax
-dsbas727 toSci 'NaN12.45' -> NaN Conversion_syntax
-dsbas728 toSci 'NaN-12' -> NaN Conversion_syntax
-dsbas729 toSci 'NaN+12' -> NaN Conversion_syntax
-
-dsbas730 toSci "sNaN" -> sNaN
-dsbas731 toSci "snan" -> sNaN
-dsbas732 toSci "SnAn" -> sNaN
-dsbas733 toSci "SNAN" -> sNaN
-dsbas734 toSci "+sNaN" -> sNaN
-dsbas735 toSci "+snan" -> sNaN
-dsbas736 toSci "+SnAn" -> sNaN
-dsbas737 toSci "+SNAN" -> sNaN
-dsbas738 toSci "-sNaN" -> -sNaN
-dsbas739 toSci "-snan" -> -sNaN
-dsbas740 toSci "-SnAn" -> -sNaN
-dsbas741 toSci "-SNAN" -> -sNaN
-dsbas742 toSci 'sNaN0000' -> sNaN
-dsbas743 toSci 'sNaN7' -> sNaN7
-dsbas744 toSci 'sNaN007234' -> sNaN7234
-dsbas745 toSci 'sNaN7234561234567890' -> NaN Conversion_syntax
-dsbas746 toSci 'sNaN72.45' -> NaN Conversion_syntax
-dsbas747 toSci 'sNaN-72' -> NaN Conversion_syntax
-
-dsbas748 toSci "Inf" -> Infinity
-dsbas749 toSci "inf" -> Infinity
-dsbas750 toSci "iNf" -> Infinity
-dsbas751 toSci "INF" -> Infinity
-dsbas752 toSci "+Inf" -> Infinity
-dsbas753 toSci "+inf" -> Infinity
-dsbas754 toSci "+iNf" -> Infinity
-dsbas755 toSci "+INF" -> Infinity
-dsbas756 toSci "-Inf" -> -Infinity
-dsbas757 toSci "-inf" -> -Infinity
-dsbas758 toSci "-iNf" -> -Infinity
-dsbas759 toSci "-INF" -> -Infinity
-
-dsbas760 toSci "Infinity" -> Infinity
-dsbas761 toSci "infinity" -> Infinity
-dsbas762 toSci "iNfInItY" -> Infinity
-dsbas763 toSci "INFINITY" -> Infinity
-dsbas764 toSci "+Infinity" -> Infinity
-dsbas765 toSci "+infinity" -> Infinity
-dsbas766 toSci "+iNfInItY" -> Infinity
-dsbas767 toSci "+INFINITY" -> Infinity
-dsbas768 toSci "-Infinity" -> -Infinity
-dsbas769 toSci "-infinity" -> -Infinity
-dsbas770 toSci "-iNfInItY" -> -Infinity
-dsbas771 toSci "-INFINITY" -> -Infinity
-
--- Specials and zeros for toEng
-dsbast772 toEng "NaN" -> NaN
-dsbast773 toEng "-Infinity" -> -Infinity
-dsbast774 toEng "-sNaN" -> -sNaN
-dsbast775 toEng "-NaN" -> -NaN
-dsbast776 toEng "+Infinity" -> Infinity
-dsbast778 toEng "+sNaN" -> sNaN
-dsbast779 toEng "+NaN" -> NaN
-dsbast780 toEng "INFINITY" -> Infinity
-dsbast781 toEng "SNAN" -> sNaN
-dsbast782 toEng "NAN" -> NaN
-dsbast783 toEng "infinity" -> Infinity
-dsbast784 toEng "snan" -> sNaN
-dsbast785 toEng "nan" -> NaN
-dsbast786 toEng "InFINITY" -> Infinity
-dsbast787 toEng "SnAN" -> sNaN
-dsbast788 toEng "nAN" -> NaN
-dsbast789 toEng "iNfinity" -> Infinity
-dsbast790 toEng "sNan" -> sNaN
-dsbast791 toEng "Nan" -> NaN
-dsbast792 toEng "Infinity" -> Infinity
-dsbast793 toEng "sNaN" -> sNaN
-
--- Zero toEng, etc.
-dsbast800 toEng 0e+1 -> "0.00E+3" -- doc example
-
-dsbast801 toEng 0.000000000 -> 0E-9
-dsbast802 toEng 0.00000000 -> 0.00E-6
-dsbast803 toEng 0.0000000 -> 0.0E-6
-dsbast804 toEng 0.000000 -> 0.000000
-dsbast805 toEng 0.00000 -> 0.00000
-dsbast806 toEng 0.0000 -> 0.0000
-dsbast807 toEng 0.000 -> 0.000
-dsbast808 toEng 0.00 -> 0.00
-dsbast809 toEng 0.0 -> 0.0
-dsbast810 toEng .0 -> 0.0
-dsbast811 toEng 0. -> 0
-dsbast812 toEng -.0 -> -0.0
-dsbast813 toEng -0. -> -0
-dsbast814 toEng -0.0 -> -0.0
-dsbast815 toEng -0.00 -> -0.00
-dsbast816 toEng -0.000 -> -0.000
-dsbast817 toEng -0.0000 -> -0.0000
-dsbast818 toEng -0.00000 -> -0.00000
-dsbast819 toEng -0.000000 -> -0.000000
-dsbast820 toEng -0.0000000 -> -0.0E-6
-dsbast821 toEng -0.00000000 -> -0.00E-6
-dsbast822 toEng -0.000000000 -> -0E-9
-
-dsbast830 toEng 0.00E+0 -> 0.00
-dsbast831 toEng 0.00E+1 -> 0.0
-dsbast832 toEng 0.00E+2 -> 0
-dsbast833 toEng 0.00E+3 -> 0.00E+3
-dsbast834 toEng 0.00E+4 -> 0.0E+3
-dsbast835 toEng 0.00E+5 -> 0E+3
-dsbast836 toEng 0.00E+6 -> 0.00E+6
-dsbast837 toEng 0.00E+7 -> 0.0E+6
-dsbast838 toEng 0.00E+8 -> 0E+6
-dsbast839 toEng 0.00E+9 -> 0.00E+9
-
-dsbast840 toEng 0.0E+0 -> 0.0
-dsbast841 toEng 0.0E+1 -> 0
-dsbast842 toEng 0.0E+2 -> 0.00E+3
-dsbast843 toEng 0.0E+3 -> 0.0E+3
-dsbast844 toEng 0.0E+4 -> 0E+3
-dsbast845 toEng 0.0E+5 -> 0.00E+6
-dsbast846 toEng 0.0E+6 -> 0.0E+6
-dsbast847 toEng 0.0E+7 -> 0E+6
-dsbast848 toEng 0.0E+8 -> 0.00E+9
-dsbast849 toEng 0.0E+9 -> 0.0E+9
-
-dsbast850 toEng 0E+0 -> 0
-dsbast851 toEng 0E+1 -> 0.00E+3
-dsbast852 toEng 0E+2 -> 0.0E+3
-dsbast853 toEng 0E+3 -> 0E+3
-dsbast854 toEng 0E+4 -> 0.00E+6
-dsbast855 toEng 0E+5 -> 0.0E+6
-dsbast856 toEng 0E+6 -> 0E+6
-dsbast857 toEng 0E+7 -> 0.00E+9
-dsbast858 toEng 0E+8 -> 0.0E+9
-dsbast859 toEng 0E+9 -> 0E+9
-
-dsbast860 toEng 0.0E-0 -> 0.0
-dsbast861 toEng 0.0E-1 -> 0.00
-dsbast862 toEng 0.0E-2 -> 0.000
-dsbast863 toEng 0.0E-3 -> 0.0000
-dsbast864 toEng 0.0E-4 -> 0.00000
-dsbast865 toEng 0.0E-5 -> 0.000000
-dsbast866 toEng 0.0E-6 -> 0.0E-6
-dsbast867 toEng 0.0E-7 -> 0.00E-6
-dsbast868 toEng 0.0E-8 -> 0E-9
-dsbast869 toEng 0.0E-9 -> 0.0E-9
-
-dsbast870 toEng 0.00E-0 -> 0.00
-dsbast871 toEng 0.00E-1 -> 0.000
-dsbast872 toEng 0.00E-2 -> 0.0000
-dsbast873 toEng 0.00E-3 -> 0.00000
-dsbast874 toEng 0.00E-4 -> 0.000000
-dsbast875 toEng 0.00E-5 -> 0.0E-6
-dsbast876 toEng 0.00E-6 -> 0.00E-6
-dsbast877 toEng 0.00E-7 -> 0E-9
-dsbast878 toEng 0.00E-8 -> 0.0E-9
-dsbast879 toEng 0.00E-9 -> 0.00E-9
-
--- long input strings
-dsbas801 tosci '01234567' -> 1234567
-dsbas802 tosci '001234567' -> 1234567
-dsbas803 tosci '0001234567' -> 1234567
-dsbas804 tosci '00001234567' -> 1234567
-dsbas805 tosci '000001234567' -> 1234567
-dsbas806 tosci '0000001234567' -> 1234567
-dsbas807 tosci '00000001234567' -> 1234567
-dsbas808 tosci '000000001234567' -> 1234567
-dsbas809 tosci '0000000001234567' -> 1234567
-dsbas810 tosci '00000000001234567' -> 1234567
-
-dsbas811 tosci '0.1234567' -> 0.1234567
-dsbas812 tosci '0.01234567' -> 0.01234567
-dsbas813 tosci '0.001234567' -> 0.001234567
-dsbas814 tosci '0.0001234567' -> 0.0001234567
-dsbas815 tosci '0.00001234567' -> 0.00001234567
-dsbas816 tosci '0.000001234567' -> 0.000001234567
-dsbas817 tosci '0.0000001234567' -> 1.234567E-7
-dsbas818 tosci '0.00000001234567' -> 1.234567E-8
-dsbas819 tosci '0.000000001234567' -> 1.234567E-9
-dsbas820 tosci '0.0000000001234567' -> 1.234567E-10
-
-dsbas821 tosci '123456790' -> 1.234568E+8 Inexact Rounded
-dsbas822 tosci '1234567901' -> 1.234568E+9 Inexact Rounded
-dsbas823 tosci '12345679012' -> 1.234568E+10 Inexact Rounded
-dsbas824 tosci '123456790123' -> 1.234568E+11 Inexact Rounded
-dsbas825 tosci '1234567901234' -> 1.234568E+12 Inexact Rounded
-dsbas826 tosci '12345679012345' -> 1.234568E+13 Inexact Rounded
-dsbas827 tosci '123456790123456' -> 1.234568E+14 Inexact Rounded
-dsbas828 tosci '1234567901234567' -> 1.234568E+15 Inexact Rounded
-dsbas829 tosci '1234567890123456' -> 1.234568E+15 Inexact Rounded
-
--- subnormals and overflows
-dsbas906 toSci '99e999999999' -> Infinity Overflow Inexact Rounded
-dsbas907 toSci '999e999999999' -> Infinity Overflow Inexact Rounded
-dsbas908 toSci '0.9e-999999999' -> 0E-101 Underflow Subnormal Inexact Rounded Clamped
-dsbas909 toSci '0.09e-999999999' -> 0E-101 Underflow Subnormal Inexact Rounded Clamped
-dsbas910 toSci '0.1e1000000000' -> Infinity Overflow Inexact Rounded
-dsbas911 toSci '10e-1000000000' -> 0E-101 Underflow Subnormal Inexact Rounded Clamped
-dsbas912 toSci '0.9e9999999999' -> Infinity Overflow Inexact Rounded
-dsbas913 toSci '99e-9999999999' -> 0E-101 Underflow Subnormal Inexact Rounded Clamped
-dsbas914 toSci '111e9999999999' -> Infinity Overflow Inexact Rounded
-dsbas915 toSci '1111e-9999999999' -> 0E-101 Underflow Subnormal Inexact Rounded Clamped
-dsbas916 toSci '1111e-99999999999' -> 0E-101 Underflow Subnormal Inexact Rounded Clamped
-dsbas917 toSci '7e1000000000' -> Infinity Overflow Inexact Rounded
--- negatives the same
-dsbas918 toSci '-99e999999999' -> -Infinity Overflow Inexact Rounded
-dsbas919 toSci '-999e999999999' -> -Infinity Overflow Inexact Rounded
-dsbas920 toSci '-0.9e-999999999' -> -0E-101 Underflow Subnormal Inexact Rounded Clamped
-dsbas921 toSci '-0.09e-999999999' -> -0E-101 Underflow Subnormal Inexact Rounded Clamped
-dsbas922 toSci '-0.1e1000000000' -> -Infinity Overflow Inexact Rounded
-dsbas923 toSci '-10e-1000000000' -> -0E-101 Underflow Subnormal Inexact Rounded Clamped
-dsbas924 toSci '-0.9e9999999999' -> -Infinity Overflow Inexact Rounded
-dsbas925 toSci '-99e-9999999999' -> -0E-101 Underflow Subnormal Inexact Rounded Clamped
-dsbas926 toSci '-111e9999999999' -> -Infinity Overflow Inexact Rounded
-dsbas927 toSci '-1111e-9999999999' -> -0E-101 Underflow Subnormal Inexact Rounded Clamped
-dsbas928 toSci '-1111e-99999999999' -> -0E-101 Underflow Subnormal Inexact Rounded Clamped
-dsbas929 toSci '-7e1000000000' -> -Infinity Overflow Inexact Rounded
-
--- overflow results at different rounding modes
-rounding: ceiling
-dsbas930 toSci '7e10000' -> Infinity Overflow Inexact Rounded
-dsbas931 toSci '-7e10000' -> -9.999999E+96 Overflow Inexact Rounded
-rounding: up
-dsbas932 toSci '7e10000' -> Infinity Overflow Inexact Rounded
-dsbas933 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded
-rounding: down
-dsbas934 toSci '7e10000' -> 9.999999E+96 Overflow Inexact Rounded
-dsbas935 toSci '-7e10000' -> -9.999999E+96 Overflow Inexact Rounded
-rounding: floor
-dsbas936 toSci '7e10000' -> 9.999999E+96 Overflow Inexact Rounded
-dsbas937 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded
-
-rounding: half_up
-dsbas938 toSci '7e10000' -> Infinity Overflow Inexact Rounded
-dsbas939 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded
-rounding: half_even
-dsbas940 toSci '7e10000' -> Infinity Overflow Inexact Rounded
-dsbas941 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded
-rounding: half_down
-dsbas942 toSci '7e10000' -> Infinity Overflow Inexact Rounded
-dsbas943 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded
-
-rounding: half_even
-
--- Now check 854/754r some subnormals and underflow to 0
-dsbem400 toSci 1.0000E-86 -> 1.0000E-86
-dsbem401 toSci 0.1E-97 -> 1E-98 Subnormal
-dsbem402 toSci 0.1000E-97 -> 1.000E-98 Subnormal
-dsbem403 toSci 0.0100E-97 -> 1.00E-99 Subnormal
-dsbem404 toSci 0.0010E-97 -> 1.0E-100 Subnormal
-dsbem405 toSci 0.0001E-97 -> 1E-101 Subnormal
-dsbem406 toSci 0.00010E-97 -> 1E-101 Subnormal Rounded
-dsbem407 toSci 0.00013E-97 -> 1E-101 Underflow Subnormal Inexact Rounded
-dsbem408 toSci 0.00015E-97 -> 2E-101 Underflow Subnormal Inexact Rounded
-dsbem409 toSci 0.00017E-97 -> 2E-101 Underflow Subnormal Inexact Rounded
-dsbem410 toSci 0.00023E-97 -> 2E-101 Underflow Subnormal Inexact Rounded
-dsbem411 toSci 0.00025E-97 -> 2E-101 Underflow Subnormal Inexact Rounded
-dsbem412 toSci 0.00027E-97 -> 3E-101 Underflow Subnormal Inexact Rounded
-dsbem413 toSci 0.000149E-97 -> 1E-101 Underflow Subnormal Inexact Rounded
-dsbem414 toSci 0.000150E-97 -> 2E-101 Underflow Subnormal Inexact Rounded
-dsbem415 toSci 0.000151E-97 -> 2E-101 Underflow Subnormal Inexact Rounded
-dsbem416 toSci 0.000249E-97 -> 2E-101 Underflow Subnormal Inexact Rounded
-dsbem417 toSci 0.000250E-97 -> 2E-101 Underflow Subnormal Inexact Rounded
-dsbem418 toSci 0.000251E-97 -> 3E-101 Underflow Subnormal Inexact Rounded
-dsbem419 toSci 0.00009E-97 -> 1E-101 Underflow Subnormal Inexact Rounded
-dsbem420 toSci 0.00005E-97 -> 0E-101 Underflow Subnormal Inexact Rounded Clamped
-dsbem421 toSci 0.00003E-97 -> 0E-101 Underflow Subnormal Inexact Rounded Clamped
-dsbem422 toSci 0.000009E-97 -> 0E-101 Underflow Subnormal Inexact Rounded Clamped
-dsbem423 toSci 0.000005E-97 -> 0E-101 Underflow Subnormal Inexact Rounded Clamped
-dsbem424 toSci 0.000003E-97 -> 0E-101 Underflow Subnormal Inexact Rounded Clamped
-
-dsbem425 toSci 0.001049E-97 -> 1.0E-100 Underflow Subnormal Inexact Rounded
-dsbem426 toSci 0.001050E-97 -> 1.0E-100 Underflow Subnormal Inexact Rounded
-dsbem427 toSci 0.001051E-97 -> 1.1E-100 Underflow Subnormal Inexact Rounded
-dsbem428 toSci 0.001149E-97 -> 1.1E-100 Underflow Subnormal Inexact Rounded
-dsbem429 toSci 0.001150E-97 -> 1.2E-100 Underflow Subnormal Inexact Rounded
-dsbem430 toSci 0.001151E-97 -> 1.2E-100 Underflow Subnormal Inexact Rounded
-
-dsbem432 toSci 0.010049E-97 -> 1.00E-99 Underflow Subnormal Inexact Rounded
-dsbem433 toSci 0.010050E-97 -> 1.00E-99 Underflow Subnormal Inexact Rounded
-dsbem434 toSci 0.010051E-97 -> 1.01E-99 Underflow Subnormal Inexact Rounded
-dsbem435 toSci 0.010149E-97 -> 1.01E-99 Underflow Subnormal Inexact Rounded
-dsbem436 toSci 0.010150E-97 -> 1.02E-99 Underflow Subnormal Inexact Rounded
-dsbem437 toSci 0.010151E-97 -> 1.02E-99 Underflow Subnormal Inexact Rounded
-
-dsbem440 toSci 0.10103E-97 -> 1.010E-98 Underflow Subnormal Inexact Rounded
-dsbem441 toSci 0.10105E-97 -> 1.010E-98 Underflow Subnormal Inexact Rounded
-dsbem442 toSci 0.10107E-97 -> 1.011E-98 Underflow Subnormal Inexact Rounded
-dsbem443 toSci 0.10113E-97 -> 1.011E-98 Underflow Subnormal Inexact Rounded
-dsbem444 toSci 0.10115E-97 -> 1.012E-98 Underflow Subnormal Inexact Rounded
-dsbem445 toSci 0.10117E-97 -> 1.012E-98 Underflow Subnormal Inexact Rounded
-
-dsbem450 toSci 1.10730E-98 -> 1.107E-98 Underflow Subnormal Inexact Rounded
-dsbem451 toSci 1.10750E-98 -> 1.108E-98 Underflow Subnormal Inexact Rounded
-dsbem452 toSci 1.10770E-98 -> 1.108E-98 Underflow Subnormal Inexact Rounded
-dsbem453 toSci 1.10830E-98 -> 1.108E-98 Underflow Subnormal Inexact Rounded
-dsbem454 toSci 1.10850E-98 -> 1.108E-98 Underflow Subnormal Inexact Rounded
-dsbem455 toSci 1.10870E-98 -> 1.109E-98 Underflow Subnormal Inexact Rounded
-
--- make sure sign OK
-dsbem456 toSci -0.10103E-97 -> -1.010E-98 Underflow Subnormal Inexact Rounded
-dsbem457 toSci -0.10105E-97 -> -1.010E-98 Underflow Subnormal Inexact Rounded
-dsbem458 toSci -0.10107E-97 -> -1.011E-98 Underflow Subnormal Inexact Rounded
-dsbem459 toSci -0.10113E-97 -> -1.011E-98 Underflow Subnormal Inexact Rounded
-dsbem460 toSci -0.10115E-97 -> -1.012E-98 Underflow Subnormal Inexact Rounded
-dsbem461 toSci -0.10117E-97 -> -1.012E-98 Underflow Subnormal Inexact Rounded
-
--- '999s' cases
-dsbem464 toSci 999999E-98 -> 9.99999E-93
-dsbem465 toSci 99999.0E-97 -> 9.99990E-93
-dsbem466 toSci 99999.E-97 -> 9.9999E-93
-dsbem467 toSci 9999.9E-97 -> 9.9999E-94
-dsbem468 toSci 999.99E-97 -> 9.9999E-95
-dsbem469 toSci 99.999E-97 -> 9.9999E-96 Subnormal
-dsbem470 toSci 9.9999E-97 -> 9.9999E-97 Subnormal
-dsbem471 toSci 0.99999E-97 -> 1.0000E-97 Underflow Subnormal Inexact Rounded
-dsbem472 toSci 0.099999E-97 -> 1.000E-98 Underflow Subnormal Inexact Rounded
-dsbem473 toSci 0.0099999E-97 -> 1.00E-99 Underflow Subnormal Inexact Rounded
-dsbem474 toSci 0.00099999E-97 -> 1.0E-100 Underflow Subnormal Inexact Rounded
-dsbem475 toSci 0.000099999E-97 -> 1E-101 Underflow Subnormal Inexact Rounded
-dsbem476 toSci 0.0000099999E-97 -> 0E-101 Underflow Subnormal Inexact Rounded Clamped
-dsbem477 toSci 0.00000099999E-97 -> 0E-101 Underflow Subnormal Inexact Rounded Clamped
-dsbem478 toSci 0.000000099999E-97 -> 0E-101 Underflow Subnormal Inexact Rounded Clamped
-
--- Exponents with insignificant leading zeros
-dsbas1001 toSci 1e999999999 -> Infinity Overflow Inexact Rounded
-dsbas1002 toSci 1e0999999999 -> Infinity Overflow Inexact Rounded
-dsbas1003 toSci 1e00999999999 -> Infinity Overflow Inexact Rounded
-dsbas1004 toSci 1e000999999999 -> Infinity Overflow Inexact Rounded
-dsbas1005 toSci 1e000000000000999999999 -> Infinity Overflow Inexact Rounded
-dsbas1006 toSci 1e000000000001000000007 -> Infinity Overflow Inexact Rounded
-dsbas1007 toSci 1e-999999999 -> 0E-101 Underflow Subnormal Inexact Rounded Clamped
-dsbas1008 toSci 1e-0999999999 -> 0E-101 Underflow Subnormal Inexact Rounded Clamped
-dsbas1009 toSci 1e-00999999999 -> 0E-101 Underflow Subnormal Inexact Rounded Clamped
-dsbas1010 toSci 1e-000999999999 -> 0E-101 Underflow Subnormal Inexact Rounded Clamped
-dsbas1011 toSci 1e-000000000000999999999 -> 0E-101 Underflow Subnormal Inexact Rounded Clamped
-dsbas1012 toSci 1e-000000000001000000007 -> 0E-101 Underflow Subnormal Inexact Rounded Clamped
-
--- check for double-rounded subnormals
-dsbas1041 toSci 1.1152444E-96 -> 1.11524E-96 Inexact Rounded Subnormal Underflow
-dsbas1042 toSci 1.1152445E-96 -> 1.11524E-96 Inexact Rounded Subnormal Underflow
-dsbas1043 toSci 1.1152446E-96 -> 1.11524E-96 Inexact Rounded Subnormal Underflow
-
--- clamped zeros [see also clamp.decTest]
-dsbas1075 toSci 0e+10000 -> 0E+90 Clamped
-dsbas1076 toSci 0e-10000 -> 0E-101 Clamped
-dsbas1077 toSci -0e+10000 -> -0E+90 Clamped
-dsbas1078 toSci -0e-10000 -> -0E-101 Clamped
-
--- extreme values from next-wider
-dsbas1101 toSci -9.999999999999999E+384 -> -Infinity Overflow Inexact Rounded
-dsbas1102 toSci -1E-383 -> -0E-101 Inexact Rounded Subnormal Underflow Clamped
-dsbas1103 toSci -1E-398 -> -0E-101 Inexact Rounded Subnormal Underflow Clamped
-dsbas1104 toSci -0 -> -0
-dsbas1105 toSci +0 -> 0
-dsbas1106 toSci +1E-398 -> 0E-101 Inexact Rounded Subnormal Underflow Clamped
-dsbas1107 toSci +1E-383 -> 0E-101 Inexact Rounded Subnormal Underflow Clamped
-dsbas1108 toSci +9.999999999999999E+384 -> Infinity Overflow Inexact Rounded
-
--- narrowing case
-dsbas1110 toSci 2.000000000000000E-99 -> 2.00E-99 Rounded Subnormal
+------------------------------------------------------------------------ +-- dsBase.decTest -- base decSingle <--> string conversions -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- This file tests base conversions from string to a decimal number +-- and back to a string (in Scientific form) + +-- Note that unlike other operations the operand is subject to rounding +-- to conform to emax and precision settings (that is, numbers will +-- conform to rules and exponent will be in permitted range). The +-- 'left hand side', therefore, may have numbers that cannot be +-- represented in a decSingle. Some testcases go to the limit of the +-- next-wider format, and hence these testcases may also be used to +-- test narrowing and widening operations. + +extended: 1 +clamp: 1 +precision: 7 +maxExponent: 96 +minExponent: -95 +rounding: half_even + +dsbas001 toSci 0 -> 0 +dsbas002 toSci 1 -> 1 +dsbas003 toSci 1.0 -> 1.0 +dsbas004 toSci 1.00 -> 1.00 +dsbas005 toSci 10 -> 10 +dsbas006 toSci 1000 -> 1000 +dsbas007 toSci 10.0 -> 10.0 +dsbas008 toSci 10.1 -> 10.1 +dsbas009 toSci 10.4 -> 10.4 +dsbas010 toSci 10.5 -> 10.5 +dsbas011 toSci 10.6 -> 10.6 +dsbas012 toSci 10.9 -> 10.9 +dsbas013 toSci 11.0 -> 11.0 +dsbas014 toSci 1.234 -> 1.234 +dsbas015 toSci 0.123 -> 0.123 +dsbas016 toSci 0.012 -> 0.012 +dsbas017 toSci -0 -> -0 +dsbas018 toSci -0.0 -> -0.0 +dsbas019 toSci -00.00 -> -0.00 + +dsbas021 toSci -1 -> -1 +dsbas022 toSci -1.0 -> -1.0 +dsbas023 toSci -0.1 -> -0.1 +dsbas024 toSci -9.1 -> -9.1 +dsbas025 toSci -9.11 -> -9.11 +dsbas026 toSci -9.119 -> -9.119 +dsbas027 toSci -9.999 -> -9.999 + +dsbas030 toSci '1234.567' -> '1234.567' +dsbas031 toSci '1234.000' -> '1234.000' +dsbas032 toSci '1234912' -> '1234912' +dsbas033 toSci '0.00001234567' -> '0.00001234567' +dsbas034 toSci '0.000001234567' -> '0.000001234567' +dsbas035 toSci '0.0000001234567' -> '1.234567E-7' +dsbas036 toSci '0.00000001234567' -> '1.234567E-8' + +dsbas037 toSci '0.1234564' -> '0.1234564' +dsbas038 toSci '0.1234565' -> '0.1234565' + +-- test finite bounds (Negs of, then 0, Ntiny, Nmin, other, Nmax) +dsbsn001 toSci -9.999999E+96 -> -9.999999E+96 +dsbsn002 toSci -1E-95 -> -1E-95 +dsbsn003 toSci -1E-101 -> -1E-101 Subnormal +dsbsn004 toSci -0 -> -0 +dsbsn005 toSci +0 -> 0 +dsbsn006 toSci +1E-101 -> 1E-101 Subnormal +dsbsn007 toSci +1E-95 -> 1E-95 +dsbsn008 toSci +9.999999E+96 -> 9.999999E+96 + +-- String [many more examples are implicitly tested elsewhere] +-- strings without E cannot generate E in result +dsbas040 toSci "12" -> '12' +dsbas041 toSci "-76" -> '-76' +dsbas042 toSci "12.76" -> '12.76' +dsbas043 toSci "+12.76" -> '12.76' +dsbas044 toSci "012.76" -> '12.76' +dsbas045 toSci "+0.003" -> '0.003' +dsbas046 toSci "17." -> '17' +dsbas047 toSci ".5" -> '0.5' +dsbas048 toSci "044" -> '44' +dsbas049 toSci "0044" -> '44' +dsbas050 toSci "0.0005" -> '0.0005' +dsbas051 toSci "00.00005" -> '0.00005' +dsbas052 toSci "0.000005" -> '0.000005' +dsbas053 toSci "0.0000050" -> '0.0000050' +dsbas054 toSci "0.0000005" -> '5E-7' +dsbas055 toSci "0.00000005" -> '5E-8' +dsbas056 toSci "12678.54" -> '12678.54' +dsbas057 toSci "2678.543" -> '2678.543' +dsbas058 toSci "345678.5" -> '345678.5' +dsbas059 toSci "0678.5432" -> '678.5432' +dsbas060 toSci "678.5432" -> '678.5432' +dsbas061 toSci "+678.5432" -> '678.5432' +dsbas062 toSci "+0678.5432" -> '678.5432' +dsbas063 toSci "+00678.5432" -> '678.5432' +dsbas064 toSci "-678.5432" -> '-678.5432' +dsbas065 toSci "-0678.5432" -> '-678.5432' +dsbas066 toSci "-00678.5432" -> '-678.5432' +-- examples +dsbas067 toSci "5E-6" -> '0.000005' +dsbas068 toSci "50E-7" -> '0.0000050' +dsbas069 toSci "5E-7" -> '5E-7' + +-- [No exotics as no Unicode] + +-- rounded with dots in all (including edge) places +dsbas071 toSci .1234567890123456 -> 0.1234568 Inexact Rounded +dsbas072 toSci 1.234567890123456 -> 1.234568 Inexact Rounded +dsbas073 toSci 12.34567890123456 -> 12.34568 Inexact Rounded +dsbas074 toSci 123.4567890123456 -> 123.4568 Inexact Rounded +dsbas075 toSci 1234.567890123456 -> 1234.568 Inexact Rounded +dsbas076 toSci 12345.67890123456 -> 12345.68 Inexact Rounded +dsbas077 toSci 123456.7890123456 -> 123456.8 Inexact Rounded +dsbas078 toSci 1234567.890123456 -> 1234568 Inexact Rounded +dsbas079 toSci 12345678.90123456 -> 1.234568E+7 Inexact Rounded +dsbas080 toSci 123456789.0123456 -> 1.234568E+8 Inexact Rounded +dsbas081 toSci 1234567890.123456 -> 1.234568E+9 Inexact Rounded +dsbas082 toSci 12345678901.23456 -> 1.234568E+10 Inexact Rounded +dsbas083 toSci 123456789012.3456 -> 1.234568E+11 Inexact Rounded +dsbas084 toSci 1234567890123.456 -> 1.234568E+12 Inexact Rounded +dsbas085 toSci 12345678901234.56 -> 1.234568E+13 Inexact Rounded +dsbas086 toSci 123456789012345.6 -> 1.234568E+14 Inexact Rounded +dsbas087 toSci 1234567890123456. -> 1.234568E+15 Inexact Rounded +dsbas088 toSci 1234567890123456 -> 1.234568E+15 Inexact Rounded + +-- Numbers with E +dsbas130 toSci "0.000E-1" -> '0.0000' +dsbas131 toSci "0.000E-2" -> '0.00000' +dsbas132 toSci "0.000E-3" -> '0.000000' +dsbas133 toSci "0.000E-4" -> '0E-7' +dsbas134 toSci "0.00E-2" -> '0.0000' +dsbas135 toSci "0.00E-3" -> '0.00000' +dsbas136 toSci "0.00E-4" -> '0.000000' +dsbas137 toSci "0.00E-5" -> '0E-7' +dsbas138 toSci "+0E+9" -> '0E+9' +dsbas139 toSci "-0E+9" -> '-0E+9' +dsbas140 toSci "1E+9" -> '1E+9' +dsbas141 toSci "1e+09" -> '1E+9' +dsbas142 toSci "1E+90" -> '1E+90' +dsbas143 toSci "+1E+009" -> '1E+9' +dsbas144 toSci "0E+9" -> '0E+9' +dsbas145 toSci "1E+9" -> '1E+9' +dsbas146 toSci "1E+09" -> '1E+9' +dsbas147 toSci "1e+90" -> '1E+90' +dsbas148 toSci "1E+009" -> '1E+9' +dsbas149 toSci "000E+9" -> '0E+9' +dsbas150 toSci "1E9" -> '1E+9' +dsbas151 toSci "1e09" -> '1E+9' +dsbas152 toSci "1E90" -> '1E+90' +dsbas153 toSci "1E009" -> '1E+9' +dsbas154 toSci "0E9" -> '0E+9' +dsbas155 toSci "0.000e+0" -> '0.000' +dsbas156 toSci "0.000E-1" -> '0.0000' +dsbas157 toSci "4E+9" -> '4E+9' +dsbas158 toSci "44E+9" -> '4.4E+10' +dsbas159 toSci "0.73e-7" -> '7.3E-8' +dsbas160 toSci "00E+9" -> '0E+9' +dsbas161 toSci "00E-9" -> '0E-9' +dsbas162 toSci "10E+9" -> '1.0E+10' +dsbas163 toSci "10E+09" -> '1.0E+10' +dsbas164 toSci "10e+90" -> '1.0E+91' +dsbas165 toSci "10E+009" -> '1.0E+10' +dsbas166 toSci "100e+9" -> '1.00E+11' +dsbas167 toSci "100e+09" -> '1.00E+11' +dsbas168 toSci "100E+90" -> '1.00E+92' +dsbas169 toSci "100e+009" -> '1.00E+11' + +dsbas170 toSci "1.265" -> '1.265' +dsbas171 toSci "1.265E-20" -> '1.265E-20' +dsbas172 toSci "1.265E-8" -> '1.265E-8' +dsbas173 toSci "1.265E-4" -> '0.0001265' +dsbas174 toSci "1.265E-3" -> '0.001265' +dsbas175 toSci "1.265E-2" -> '0.01265' +dsbas176 toSci "1.265E-1" -> '0.1265' +dsbas177 toSci "1.265E-0" -> '1.265' +dsbas178 toSci "1.265E+1" -> '12.65' +dsbas179 toSci "1.265E+2" -> '126.5' +dsbas180 toSci "1.265E+3" -> '1265' +dsbas181 toSci "1.265E+4" -> '1.265E+4' +dsbas182 toSci "1.265E+8" -> '1.265E+8' +dsbas183 toSci "1.265E+20" -> '1.265E+20' + +dsbas190 toSci "12.65" -> '12.65' +dsbas191 toSci "12.65E-20" -> '1.265E-19' +dsbas192 toSci "12.65E-8" -> '1.265E-7' +dsbas193 toSci "12.65E-4" -> '0.001265' +dsbas194 toSci "12.65E-3" -> '0.01265' +dsbas195 toSci "12.65E-2" -> '0.1265' +dsbas196 toSci "12.65E-1" -> '1.265' +dsbas197 toSci "12.65E-0" -> '12.65' +dsbas198 toSci "12.65E+1" -> '126.5' +dsbas199 toSci "12.65E+2" -> '1265' +dsbas200 toSci "12.65E+3" -> '1.265E+4' +dsbas201 toSci "12.65E+4" -> '1.265E+5' +dsbas202 toSci "12.65E+8" -> '1.265E+9' +dsbas203 toSci "12.65E+20" -> '1.265E+21' + +dsbas210 toSci "126.5" -> '126.5' +dsbas211 toSci "126.5E-20" -> '1.265E-18' +dsbas212 toSci "126.5E-8" -> '0.000001265' +dsbas213 toSci "126.5E-4" -> '0.01265' +dsbas214 toSci "126.5E-3" -> '0.1265' +dsbas215 toSci "126.5E-2" -> '1.265' +dsbas216 toSci "126.5E-1" -> '12.65' +dsbas217 toSci "126.5E-0" -> '126.5' +dsbas218 toSci "126.5E+1" -> '1265' +dsbas219 toSci "126.5E+2" -> '1.265E+4' +dsbas220 toSci "126.5E+3" -> '1.265E+5' +dsbas221 toSci "126.5E+4" -> '1.265E+6' +dsbas222 toSci "126.5E+8" -> '1.265E+10' +dsbas223 toSci "126.5E+20" -> '1.265E+22' + +dsbas230 toSci "1265" -> '1265' +dsbas231 toSci "1265E-20" -> '1.265E-17' +dsbas232 toSci "1265E-8" -> '0.00001265' +dsbas233 toSci "1265E-4" -> '0.1265' +dsbas234 toSci "1265E-3" -> '1.265' +dsbas235 toSci "1265E-2" -> '12.65' +dsbas236 toSci "1265E-1" -> '126.5' +dsbas237 toSci "1265E-0" -> '1265' +dsbas238 toSci "1265E+1" -> '1.265E+4' +dsbas239 toSci "1265E+2" -> '1.265E+5' +dsbas240 toSci "1265E+3" -> '1.265E+6' +dsbas241 toSci "1265E+4" -> '1.265E+7' +dsbas242 toSci "1265E+8" -> '1.265E+11' +dsbas243 toSci "1265E+20" -> '1.265E+23' + +dsbas250 toSci "0.1265" -> '0.1265' +dsbas251 toSci "0.1265E-20" -> '1.265E-21' +dsbas252 toSci "0.1265E-8" -> '1.265E-9' +dsbas253 toSci "0.1265E-4" -> '0.00001265' +dsbas254 toSci "0.1265E-3" -> '0.0001265' +dsbas255 toSci "0.1265E-2" -> '0.001265' +dsbas256 toSci "0.1265E-1" -> '0.01265' +dsbas257 toSci "0.1265E-0" -> '0.1265' +dsbas258 toSci "0.1265E+1" -> '1.265' +dsbas259 toSci "0.1265E+2" -> '12.65' +dsbas260 toSci "0.1265E+3" -> '126.5' +dsbas261 toSci "0.1265E+4" -> '1265' +dsbas262 toSci "0.1265E+8" -> '1.265E+7' +dsbas263 toSci "0.1265E+20" -> '1.265E+19' + +-- some more negative zeros [systematic tests below] +dsbas290 toSci "-0.000E-1" -> '-0.0000' +dsbas291 toSci "-0.000E-2" -> '-0.00000' +dsbas292 toSci "-0.000E-3" -> '-0.000000' +dsbas293 toSci "-0.000E-4" -> '-0E-7' +dsbas294 toSci "-0.00E-2" -> '-0.0000' +dsbas295 toSci "-0.00E-3" -> '-0.00000' +dsbas296 toSci "-0.0E-2" -> '-0.000' +dsbas297 toSci "-0.0E-3" -> '-0.0000' +dsbas298 toSci "-0E-2" -> '-0.00' +dsbas299 toSci "-0E-3" -> '-0.000' + +-- Engineering notation tests +dsbas301 toSci 10e12 -> 1.0E+13 +dsbas302 toEng 10e12 -> 10E+12 +dsbas303 toSci 10e11 -> 1.0E+12 +dsbas304 toEng 10e11 -> 1.0E+12 +dsbas305 toSci 10e10 -> 1.0E+11 +dsbas306 toEng 10e10 -> 100E+9 +dsbas307 toSci 10e9 -> 1.0E+10 +dsbas308 toEng 10e9 -> 10E+9 +dsbas309 toSci 10e8 -> 1.0E+9 +dsbas310 toEng 10e8 -> 1.0E+9 +dsbas311 toSci 10e7 -> 1.0E+8 +dsbas312 toEng 10e7 -> 100E+6 +dsbas313 toSci 10e6 -> 1.0E+7 +dsbas314 toEng 10e6 -> 10E+6 +dsbas315 toSci 10e5 -> 1.0E+6 +dsbas316 toEng 10e5 -> 1.0E+6 +dsbas317 toSci 10e4 -> 1.0E+5 +dsbas318 toEng 10e4 -> 100E+3 +dsbas319 toSci 10e3 -> 1.0E+4 +dsbas320 toEng 10e3 -> 10E+3 +dsbas321 toSci 10e2 -> 1.0E+3 +dsbas322 toEng 10e2 -> 1.0E+3 +dsbas323 toSci 10e1 -> 1.0E+2 +dsbas324 toEng 10e1 -> 100 +dsbas325 toSci 10e0 -> 10 +dsbas326 toEng 10e0 -> 10 +dsbas327 toSci 10e-1 -> 1.0 +dsbas328 toEng 10e-1 -> 1.0 +dsbas329 toSci 10e-2 -> 0.10 +dsbas330 toEng 10e-2 -> 0.10 +dsbas331 toSci 10e-3 -> 0.010 +dsbas332 toEng 10e-3 -> 0.010 +dsbas333 toSci 10e-4 -> 0.0010 +dsbas334 toEng 10e-4 -> 0.0010 +dsbas335 toSci 10e-5 -> 0.00010 +dsbas336 toEng 10e-5 -> 0.00010 +dsbas337 toSci 10e-6 -> 0.000010 +dsbas338 toEng 10e-6 -> 0.000010 +dsbas339 toSci 10e-7 -> 0.0000010 +dsbas340 toEng 10e-7 -> 0.0000010 +dsbas341 toSci 10e-8 -> 1.0E-7 +dsbas342 toEng 10e-8 -> 100E-9 +dsbas343 toSci 10e-9 -> 1.0E-8 +dsbas344 toEng 10e-9 -> 10E-9 +dsbas345 toSci 10e-10 -> 1.0E-9 +dsbas346 toEng 10e-10 -> 1.0E-9 +dsbas347 toSci 10e-11 -> 1.0E-10 +dsbas348 toEng 10e-11 -> 100E-12 +dsbas349 toSci 10e-12 -> 1.0E-11 +dsbas350 toEng 10e-12 -> 10E-12 +dsbas351 toSci 10e-13 -> 1.0E-12 +dsbas352 toEng 10e-13 -> 1.0E-12 + +dsbas361 toSci 7E12 -> 7E+12 +dsbas362 toEng 7E12 -> 7E+12 +dsbas363 toSci 7E11 -> 7E+11 +dsbas364 toEng 7E11 -> 700E+9 +dsbas365 toSci 7E10 -> 7E+10 +dsbas366 toEng 7E10 -> 70E+9 +dsbas367 toSci 7E9 -> 7E+9 +dsbas368 toEng 7E9 -> 7E+9 +dsbas369 toSci 7E8 -> 7E+8 +dsbas370 toEng 7E8 -> 700E+6 +dsbas371 toSci 7E7 -> 7E+7 +dsbas372 toEng 7E7 -> 70E+6 +dsbas373 toSci 7E6 -> 7E+6 +dsbas374 toEng 7E6 -> 7E+6 +dsbas375 toSci 7E5 -> 7E+5 +dsbas376 toEng 7E5 -> 700E+3 +dsbas377 toSci 7E4 -> 7E+4 +dsbas378 toEng 7E4 -> 70E+3 +dsbas379 toSci 7E3 -> 7E+3 +dsbas380 toEng 7E3 -> 7E+3 +dsbas381 toSci 7E2 -> 7E+2 +dsbas382 toEng 7E2 -> 700 +dsbas383 toSci 7E1 -> 7E+1 +dsbas384 toEng 7E1 -> 70 +dsbas385 toSci 7E0 -> 7 +dsbas386 toEng 7E0 -> 7 +dsbas387 toSci 7E-1 -> 0.7 +dsbas388 toEng 7E-1 -> 0.7 +dsbas389 toSci 7E-2 -> 0.07 +dsbas390 toEng 7E-2 -> 0.07 +dsbas391 toSci 7E-3 -> 0.007 +dsbas392 toEng 7E-3 -> 0.007 +dsbas393 toSci 7E-4 -> 0.0007 +dsbas394 toEng 7E-4 -> 0.0007 +dsbas395 toSci 7E-5 -> 0.00007 +dsbas396 toEng 7E-5 -> 0.00007 +dsbas397 toSci 7E-6 -> 0.000007 +dsbas398 toEng 7E-6 -> 0.000007 +dsbas399 toSci 7E-7 -> 7E-7 +dsbas400 toEng 7E-7 -> 700E-9 +dsbas401 toSci 7E-8 -> 7E-8 +dsbas402 toEng 7E-8 -> 70E-9 +dsbas403 toSci 7E-9 -> 7E-9 +dsbas404 toEng 7E-9 -> 7E-9 +dsbas405 toSci 7E-10 -> 7E-10 +dsbas406 toEng 7E-10 -> 700E-12 +dsbas407 toSci 7E-11 -> 7E-11 +dsbas408 toEng 7E-11 -> 70E-12 +dsbas409 toSci 7E-12 -> 7E-12 +dsbas410 toEng 7E-12 -> 7E-12 +dsbas411 toSci 7E-13 -> 7E-13 +dsbas412 toEng 7E-13 -> 700E-15 + +-- Exacts remain exact up to precision .. +dsbas420 toSci 100 -> 100 +dsbas422 toSci 1000 -> 1000 +dsbas424 toSci 999.9 -> 999.9 +dsbas426 toSci 1000.0 -> 1000.0 +dsbas428 toSci 1000.1 -> 1000.1 +dsbas430 toSci 10000 -> 10000 +dsbas432 toSci 1000 -> 1000 +dsbas434 toSci 10000 -> 10000 +dsbas436 toSci 100000 -> 100000 +dsbas438 toSci 1000000 -> 1000000 +dsbas440 toSci 10000000 -> 1.000000E+7 Rounded +dsbas442 toSci 10000000 -> 1.000000E+7 Rounded +dsbas444 toSci 10000003 -> 1.000000E+7 Rounded Inexact +dsbas446 toSci 10000005 -> 1.000000E+7 Rounded Inexact +dsbas448 toSci 100000050 -> 1.000000E+8 Rounded Inexact +dsbas450 toSci 10000009 -> 1.000001E+7 Rounded Inexact +dsbas452 toSci 100000000 -> 1.000000E+8 Rounded +dsbas454 toSci 100000003 -> 1.000000E+8 Rounded Inexact +dsbas456 toSci 100000005 -> 1.000000E+8 Rounded Inexact +dsbas458 toSci 100000009 -> 1.000000E+8 Rounded Inexact +dsbas460 toSci 1000000000 -> 1.000000E+9 Rounded +dsbas462 toSci 1000000300 -> 1.000000E+9 Rounded Inexact +dsbas464 toSci 1000000500 -> 1.000000E+9 Rounded Inexact +dsbas466 toSci 1000000900 -> 1.000001E+9 Rounded Inexact +dsbas468 toSci 10000000000 -> 1.000000E+10 Rounded +dsbas470 toSci 10000003000 -> 1.000000E+10 Rounded Inexact +dsbas472 toSci 10000005000 -> 1.000000E+10 Rounded Inexact +dsbas474 toSci 10000009000 -> 1.000001E+10 Rounded Inexact + +-- check rounding modes heeded +rounding: ceiling +dsbsr401 toSci 1.1123450 -> 1.112345 Rounded +dsbsr402 toSci 1.11234549 -> 1.112346 Rounded Inexact +dsbsr403 toSci 1.11234550 -> 1.112346 Rounded Inexact +dsbsr404 toSci 1.11234551 -> 1.112346 Rounded Inexact +rounding: up +dsbsr405 toSci 1.1123450 -> 1.112345 Rounded +dsbsr406 toSci 1.11234549 -> 1.112346 Rounded Inexact +dsbsr407 toSci 1.11234550 -> 1.112346 Rounded Inexact +dsbsr408 toSci 1.11234551 -> 1.112346 Rounded Inexact +rounding: floor +dsbsr410 toSci 1.1123450 -> 1.112345 Rounded +dsbsr411 toSci 1.11234549 -> 1.112345 Rounded Inexact +dsbsr412 toSci 1.11234550 -> 1.112345 Rounded Inexact +dsbsr413 toSci 1.11234551 -> 1.112345 Rounded Inexact +rounding: half_down +dsbsr415 toSci 1.1123450 -> 1.112345 Rounded +dsbsr416 toSci 1.11234549 -> 1.112345 Rounded Inexact +dsbsr417 toSci 1.11234550 -> 1.112345 Rounded Inexact +dsbsr418 toSci 1.11234650 -> 1.112346 Rounded Inexact +dsbsr419 toSci 1.11234551 -> 1.112346 Rounded Inexact +rounding: half_even +dsbsr421 toSci 1.1123450 -> 1.112345 Rounded +dsbsr422 toSci 1.11234549 -> 1.112345 Rounded Inexact +dsbsr423 toSci 1.11234550 -> 1.112346 Rounded Inexact +dsbsr424 toSci 1.11234650 -> 1.112346 Rounded Inexact +dsbsr425 toSci 1.11234551 -> 1.112346 Rounded Inexact +rounding: down +dsbsr426 toSci 1.1123450 -> 1.112345 Rounded +dsbsr427 toSci 1.11234549 -> 1.112345 Rounded Inexact +dsbsr428 toSci 1.11234550 -> 1.112345 Rounded Inexact +dsbsr429 toSci 1.11234551 -> 1.112345 Rounded Inexact +rounding: half_up +dsbsr431 toSci 1.1123450 -> 1.112345 Rounded +dsbsr432 toSci 1.11234549 -> 1.112345 Rounded Inexact +dsbsr433 toSci 1.11234550 -> 1.112346 Rounded Inexact +dsbsr434 toSci 1.11234650 -> 1.112347 Rounded Inexact +dsbsr435 toSci 1.11234551 -> 1.112346 Rounded Inexact +-- negatives +rounding: ceiling +dsbsr501 toSci -1.1123450 -> -1.112345 Rounded +dsbsr502 toSci -1.11234549 -> -1.112345 Rounded Inexact +dsbsr503 toSci -1.11234550 -> -1.112345 Rounded Inexact +dsbsr504 toSci -1.11234551 -> -1.112345 Rounded Inexact +rounding: up +dsbsr505 toSci -1.1123450 -> -1.112345 Rounded +dsbsr506 toSci -1.11234549 -> -1.112346 Rounded Inexact +dsbsr507 toSci -1.11234550 -> -1.112346 Rounded Inexact +dsbsr508 toSci -1.11234551 -> -1.112346 Rounded Inexact +rounding: floor +dsbsr510 toSci -1.1123450 -> -1.112345 Rounded +dsbsr511 toSci -1.11234549 -> -1.112346 Rounded Inexact +dsbsr512 toSci -1.11234550 -> -1.112346 Rounded Inexact +dsbsr513 toSci -1.11234551 -> -1.112346 Rounded Inexact +rounding: half_down +dsbsr515 toSci -1.1123450 -> -1.112345 Rounded +dsbsr516 toSci -1.11234549 -> -1.112345 Rounded Inexact +dsbsr517 toSci -1.11234550 -> -1.112345 Rounded Inexact +dsbsr518 toSci -1.11234650 -> -1.112346 Rounded Inexact +dsbsr519 toSci -1.11234551 -> -1.112346 Rounded Inexact +rounding: half_even +dsbsr521 toSci -1.1123450 -> -1.112345 Rounded +dsbsr522 toSci -1.11234549 -> -1.112345 Rounded Inexact +dsbsr523 toSci -1.11234550 -> -1.112346 Rounded Inexact +dsbsr524 toSci -1.11234650 -> -1.112346 Rounded Inexact +dsbsr525 toSci -1.11234551 -> -1.112346 Rounded Inexact +rounding: down +dsbsr526 toSci -1.1123450 -> -1.112345 Rounded +dsbsr527 toSci -1.11234549 -> -1.112345 Rounded Inexact +dsbsr528 toSci -1.11234550 -> -1.112345 Rounded Inexact +dsbsr529 toSci -1.11234551 -> -1.112345 Rounded Inexact +rounding: half_up +dsbsr531 toSci -1.1123450 -> -1.112345 Rounded +dsbsr532 toSci -1.11234549 -> -1.112345 Rounded Inexact +dsbsr533 toSci -1.11234550 -> -1.112346 Rounded Inexact +dsbsr534 toSci -1.11234650 -> -1.112347 Rounded Inexact +dsbsr535 toSci -1.11234551 -> -1.112346 Rounded Inexact + +rounding: half_even + +-- The 'baddies' tests from DiagBigDecimal, plus some new ones +dsbas500 toSci '1..2' -> NaN Conversion_syntax +dsbas501 toSci '.' -> NaN Conversion_syntax +dsbas502 toSci '..' -> NaN Conversion_syntax +dsbas503 toSci '++1' -> NaN Conversion_syntax +dsbas504 toSci '--1' -> NaN Conversion_syntax +dsbas505 toSci '-+1' -> NaN Conversion_syntax +dsbas506 toSci '+-1' -> NaN Conversion_syntax +dsbas507 toSci '12e' -> NaN Conversion_syntax +dsbas508 toSci '12e++' -> NaN Conversion_syntax +dsbas509 toSci '12f4' -> NaN Conversion_syntax +dsbas510 toSci ' +1' -> NaN Conversion_syntax +dsbas511 toSci '+ 1' -> NaN Conversion_syntax +dsbas512 toSci '12 ' -> NaN Conversion_syntax +dsbas513 toSci ' + 1' -> NaN Conversion_syntax +dsbas514 toSci ' - 1 ' -> NaN Conversion_syntax +dsbas515 toSci 'x' -> NaN Conversion_syntax +dsbas516 toSci '-1-' -> NaN Conversion_syntax +dsbas517 toSci '12-' -> NaN Conversion_syntax +dsbas518 toSci '3+' -> NaN Conversion_syntax +dsbas519 toSci '' -> NaN Conversion_syntax +dsbas520 toSci '1e-' -> NaN Conversion_syntax +dsbas521 toSci '7e99999a' -> NaN Conversion_syntax +dsbas522 toSci '7e123567890x' -> NaN Conversion_syntax +dsbas523 toSci '7e12356789012x' -> NaN Conversion_syntax +dsbas524 toSci '' -> NaN Conversion_syntax +dsbas525 toSci 'e100' -> NaN Conversion_syntax +dsbas526 toSci '\u0e5a' -> NaN Conversion_syntax +dsbas527 toSci '\u0b65' -> NaN Conversion_syntax +dsbas528 toSci '123,65' -> NaN Conversion_syntax +dsbas529 toSci '1.34.5' -> NaN Conversion_syntax +dsbas530 toSci '.123.5' -> NaN Conversion_syntax +dsbas531 toSci '01.35.' -> NaN Conversion_syntax +dsbas532 toSci '01.35-' -> NaN Conversion_syntax +dsbas533 toSci '0000..' -> NaN Conversion_syntax +dsbas534 toSci '.0000.' -> NaN Conversion_syntax +dsbas535 toSci '00..00' -> NaN Conversion_syntax +dsbas536 toSci '111e*123' -> NaN Conversion_syntax +dsbas537 toSci '111e123-' -> NaN Conversion_syntax +dsbas538 toSci '111e+12+' -> NaN Conversion_syntax +dsbas539 toSci '111e1-3-' -> NaN Conversion_syntax +dsbas540 toSci '111e1*23' -> NaN Conversion_syntax +dsbas541 toSci '111e1e+3' -> NaN Conversion_syntax +dsbas542 toSci '1e1.0' -> NaN Conversion_syntax +dsbas543 toSci '1e123e' -> NaN Conversion_syntax +dsbas544 toSci 'ten' -> NaN Conversion_syntax +dsbas545 toSci 'ONE' -> NaN Conversion_syntax +dsbas546 toSci '1e.1' -> NaN Conversion_syntax +dsbas547 toSci '1e1.' -> NaN Conversion_syntax +dsbas548 toSci '1ee' -> NaN Conversion_syntax +dsbas549 toSci 'e+1' -> NaN Conversion_syntax +dsbas550 toSci '1.23.4' -> NaN Conversion_syntax +dsbas551 toSci '1.2.1' -> NaN Conversion_syntax +dsbas552 toSci '1E+1.2' -> NaN Conversion_syntax +dsbas553 toSci '1E+1.2.3' -> NaN Conversion_syntax +dsbas554 toSci '1E++1' -> NaN Conversion_syntax +dsbas555 toSci '1E--1' -> NaN Conversion_syntax +dsbas556 toSci '1E+-1' -> NaN Conversion_syntax +dsbas557 toSci '1E-+1' -> NaN Conversion_syntax +dsbas558 toSci '1E''1' -> NaN Conversion_syntax +dsbas559 toSci "1E""1" -> NaN Conversion_syntax +dsbas560 toSci "1E""""" -> NaN Conversion_syntax +-- Near-specials +dsbas561 toSci "qNaN" -> NaN Conversion_syntax +dsbas562 toSci "NaNq" -> NaN Conversion_syntax +dsbas563 toSci "NaNs" -> NaN Conversion_syntax +dsbas564 toSci "Infi" -> NaN Conversion_syntax +dsbas565 toSci "Infin" -> NaN Conversion_syntax +dsbas566 toSci "Infini" -> NaN Conversion_syntax +dsbas567 toSci "Infinit" -> NaN Conversion_syntax +dsbas568 toSci "-Infinit" -> NaN Conversion_syntax +dsbas569 toSci "0Inf" -> NaN Conversion_syntax +dsbas570 toSci "9Inf" -> NaN Conversion_syntax +dsbas571 toSci "-0Inf" -> NaN Conversion_syntax +dsbas572 toSci "-9Inf" -> NaN Conversion_syntax +dsbas573 toSci "-sNa" -> NaN Conversion_syntax +dsbas574 toSci "xNaN" -> NaN Conversion_syntax +dsbas575 toSci "0sNaN" -> NaN Conversion_syntax + +-- some baddies with dots and Es and dots and specials +dsbas576 toSci 'e+1' -> NaN Conversion_syntax +dsbas577 toSci '.e+1' -> NaN Conversion_syntax +dsbas578 toSci '+.e+1' -> NaN Conversion_syntax +dsbas579 toSci '-.e+' -> NaN Conversion_syntax +dsbas580 toSci '-.e' -> NaN Conversion_syntax +dsbas581 toSci 'E+1' -> NaN Conversion_syntax +dsbas582 toSci '.E+1' -> NaN Conversion_syntax +dsbas583 toSci '+.E+1' -> NaN Conversion_syntax +dsbas584 toSci '-.E+' -> NaN Conversion_syntax +dsbas585 toSci '-.E' -> NaN Conversion_syntax + +dsbas586 toSci '.NaN' -> NaN Conversion_syntax +dsbas587 toSci '-.NaN' -> NaN Conversion_syntax +dsbas588 toSci '+.sNaN' -> NaN Conversion_syntax +dsbas589 toSci '+.Inf' -> NaN Conversion_syntax +dsbas590 toSci '.Infinity' -> NaN Conversion_syntax + +-- Zeros +dsbas601 toSci 0.000000000 -> 0E-9 +dsbas602 toSci 0.00000000 -> 0E-8 +dsbas603 toSci 0.0000000 -> 0E-7 +dsbas604 toSci 0.000000 -> 0.000000 +dsbas605 toSci 0.00000 -> 0.00000 +dsbas606 toSci 0.0000 -> 0.0000 +dsbas607 toSci 0.000 -> 0.000 +dsbas608 toSci 0.00 -> 0.00 +dsbas609 toSci 0.0 -> 0.0 +dsbas610 toSci .0 -> 0.0 +dsbas611 toSci 0. -> 0 +dsbas612 toSci -.0 -> -0.0 +dsbas613 toSci -0. -> -0 +dsbas614 toSci -0.0 -> -0.0 +dsbas615 toSci -0.00 -> -0.00 +dsbas616 toSci -0.000 -> -0.000 +dsbas617 toSci -0.0000 -> -0.0000 +dsbas618 toSci -0.00000 -> -0.00000 +dsbas619 toSci -0.000000 -> -0.000000 +dsbas620 toSci -0.0000000 -> -0E-7 +dsbas621 toSci -0.00000000 -> -0E-8 +dsbas622 toSci -0.000000000 -> -0E-9 + +dsbas630 toSci 0.00E+0 -> 0.00 +dsbas631 toSci 0.00E+1 -> 0.0 +dsbas632 toSci 0.00E+2 -> 0 +dsbas633 toSci 0.00E+3 -> 0E+1 +dsbas634 toSci 0.00E+4 -> 0E+2 +dsbas635 toSci 0.00E+5 -> 0E+3 +dsbas636 toSci 0.00E+6 -> 0E+4 +dsbas637 toSci 0.00E+7 -> 0E+5 +dsbas638 toSci 0.00E+8 -> 0E+6 +dsbas639 toSci 0.00E+9 -> 0E+7 + +dsbas640 toSci 0.0E+0 -> 0.0 +dsbas641 toSci 0.0E+1 -> 0 +dsbas642 toSci 0.0E+2 -> 0E+1 +dsbas643 toSci 0.0E+3 -> 0E+2 +dsbas644 toSci 0.0E+4 -> 0E+3 +dsbas645 toSci 0.0E+5 -> 0E+4 +dsbas646 toSci 0.0E+6 -> 0E+5 +dsbas647 toSci 0.0E+7 -> 0E+6 +dsbas648 toSci 0.0E+8 -> 0E+7 +dsbas649 toSci 0.0E+9 -> 0E+8 + +dsbas650 toSci 0E+0 -> 0 +dsbas651 toSci 0E+1 -> 0E+1 +dsbas652 toSci 0E+2 -> 0E+2 +dsbas653 toSci 0E+3 -> 0E+3 +dsbas654 toSci 0E+4 -> 0E+4 +dsbas655 toSci 0E+5 -> 0E+5 +dsbas656 toSci 0E+6 -> 0E+6 +dsbas657 toSci 0E+7 -> 0E+7 +dsbas658 toSci 0E+8 -> 0E+8 +dsbas659 toSci 0E+9 -> 0E+9 + +dsbas660 toSci 0.0E-0 -> 0.0 +dsbas661 toSci 0.0E-1 -> 0.00 +dsbas662 toSci 0.0E-2 -> 0.000 +dsbas663 toSci 0.0E-3 -> 0.0000 +dsbas664 toSci 0.0E-4 -> 0.00000 +dsbas665 toSci 0.0E-5 -> 0.000000 +dsbas666 toSci 0.0E-6 -> 0E-7 +dsbas667 toSci 0.0E-7 -> 0E-8 +dsbas668 toSci 0.0E-8 -> 0E-9 +dsbas669 toSci 0.0E-9 -> 0E-10 + +dsbas670 toSci 0.00E-0 -> 0.00 +dsbas671 toSci 0.00E-1 -> 0.000 +dsbas672 toSci 0.00E-2 -> 0.0000 +dsbas673 toSci 0.00E-3 -> 0.00000 +dsbas674 toSci 0.00E-4 -> 0.000000 +dsbas675 toSci 0.00E-5 -> 0E-7 +dsbas676 toSci 0.00E-6 -> 0E-8 +dsbas677 toSci 0.00E-7 -> 0E-9 +dsbas678 toSci 0.00E-8 -> 0E-10 +dsbas679 toSci 0.00E-9 -> 0E-11 + +dsbas680 toSci 000000. -> 0 +dsbas681 toSci 00000. -> 0 +dsbas682 toSci 0000. -> 0 +dsbas683 toSci 000. -> 0 +dsbas684 toSci 00. -> 0 +dsbas685 toSci 0. -> 0 +dsbas686 toSci +00000. -> 0 +dsbas687 toSci -00000. -> -0 +dsbas688 toSci +0. -> 0 +dsbas689 toSci -0. -> -0 + +-- Specials +dsbas700 toSci "NaN" -> NaN +dsbas701 toSci "nan" -> NaN +dsbas702 toSci "nAn" -> NaN +dsbas703 toSci "NAN" -> NaN +dsbas704 toSci "+NaN" -> NaN +dsbas705 toSci "+nan" -> NaN +dsbas706 toSci "+nAn" -> NaN +dsbas707 toSci "+NAN" -> NaN +dsbas708 toSci "-NaN" -> -NaN +dsbas709 toSci "-nan" -> -NaN +dsbas710 toSci "-nAn" -> -NaN +dsbas711 toSci "-NAN" -> -NaN +dsbas712 toSci 'NaN0' -> NaN +dsbas713 toSci 'NaN1' -> NaN1 +dsbas714 toSci 'NaN12' -> NaN12 +dsbas715 toSci 'NaN123' -> NaN123 +dsbas716 toSci 'NaN1234' -> NaN1234 +dsbas717 toSci 'NaN01' -> NaN1 +dsbas718 toSci 'NaN012' -> NaN12 +dsbas719 toSci 'NaN0123' -> NaN123 +dsbas720 toSci 'NaN01234' -> NaN1234 +dsbas721 toSci 'NaN001' -> NaN1 +dsbas722 toSci 'NaN0012' -> NaN12 +dsbas723 toSci 'NaN00123' -> NaN123 +dsbas724 toSci 'NaN001234' -> NaN1234 +dsbas725 toSci 'NaN1234567890123456' -> NaN Conversion_syntax +dsbas726 toSci 'NaN123e+1' -> NaN Conversion_syntax +dsbas727 toSci 'NaN12.45' -> NaN Conversion_syntax +dsbas728 toSci 'NaN-12' -> NaN Conversion_syntax +dsbas729 toSci 'NaN+12' -> NaN Conversion_syntax + +dsbas730 toSci "sNaN" -> sNaN +dsbas731 toSci "snan" -> sNaN +dsbas732 toSci "SnAn" -> sNaN +dsbas733 toSci "SNAN" -> sNaN +dsbas734 toSci "+sNaN" -> sNaN +dsbas735 toSci "+snan" -> sNaN +dsbas736 toSci "+SnAn" -> sNaN +dsbas737 toSci "+SNAN" -> sNaN +dsbas738 toSci "-sNaN" -> -sNaN +dsbas739 toSci "-snan" -> -sNaN +dsbas740 toSci "-SnAn" -> -sNaN +dsbas741 toSci "-SNAN" -> -sNaN +dsbas742 toSci 'sNaN0000' -> sNaN +dsbas743 toSci 'sNaN7' -> sNaN7 +dsbas744 toSci 'sNaN007234' -> sNaN7234 +dsbas745 toSci 'sNaN7234561234567890' -> NaN Conversion_syntax +dsbas746 toSci 'sNaN72.45' -> NaN Conversion_syntax +dsbas747 toSci 'sNaN-72' -> NaN Conversion_syntax + +dsbas748 toSci "Inf" -> Infinity +dsbas749 toSci "inf" -> Infinity +dsbas750 toSci "iNf" -> Infinity +dsbas751 toSci "INF" -> Infinity +dsbas752 toSci "+Inf" -> Infinity +dsbas753 toSci "+inf" -> Infinity +dsbas754 toSci "+iNf" -> Infinity +dsbas755 toSci "+INF" -> Infinity +dsbas756 toSci "-Inf" -> -Infinity +dsbas757 toSci "-inf" -> -Infinity +dsbas758 toSci "-iNf" -> -Infinity +dsbas759 toSci "-INF" -> -Infinity + +dsbas760 toSci "Infinity" -> Infinity +dsbas761 toSci "infinity" -> Infinity +dsbas762 toSci "iNfInItY" -> Infinity +dsbas763 toSci "INFINITY" -> Infinity +dsbas764 toSci "+Infinity" -> Infinity +dsbas765 toSci "+infinity" -> Infinity +dsbas766 toSci "+iNfInItY" -> Infinity +dsbas767 toSci "+INFINITY" -> Infinity +dsbas768 toSci "-Infinity" -> -Infinity +dsbas769 toSci "-infinity" -> -Infinity +dsbas770 toSci "-iNfInItY" -> -Infinity +dsbas771 toSci "-INFINITY" -> -Infinity + +-- Specials and zeros for toEng +dsbast772 toEng "NaN" -> NaN +dsbast773 toEng "-Infinity" -> -Infinity +dsbast774 toEng "-sNaN" -> -sNaN +dsbast775 toEng "-NaN" -> -NaN +dsbast776 toEng "+Infinity" -> Infinity +dsbast778 toEng "+sNaN" -> sNaN +dsbast779 toEng "+NaN" -> NaN +dsbast780 toEng "INFINITY" -> Infinity +dsbast781 toEng "SNAN" -> sNaN +dsbast782 toEng "NAN" -> NaN +dsbast783 toEng "infinity" -> Infinity +dsbast784 toEng "snan" -> sNaN +dsbast785 toEng "nan" -> NaN +dsbast786 toEng "InFINITY" -> Infinity +dsbast787 toEng "SnAN" -> sNaN +dsbast788 toEng "nAN" -> NaN +dsbast789 toEng "iNfinity" -> Infinity +dsbast790 toEng "sNan" -> sNaN +dsbast791 toEng "Nan" -> NaN +dsbast792 toEng "Infinity" -> Infinity +dsbast793 toEng "sNaN" -> sNaN + +-- Zero toEng, etc. +dsbast800 toEng 0e+1 -> "0.00E+3" -- doc example + +dsbast801 toEng 0.000000000 -> 0E-9 +dsbast802 toEng 0.00000000 -> 0.00E-6 +dsbast803 toEng 0.0000000 -> 0.0E-6 +dsbast804 toEng 0.000000 -> 0.000000 +dsbast805 toEng 0.00000 -> 0.00000 +dsbast806 toEng 0.0000 -> 0.0000 +dsbast807 toEng 0.000 -> 0.000 +dsbast808 toEng 0.00 -> 0.00 +dsbast809 toEng 0.0 -> 0.0 +dsbast810 toEng .0 -> 0.0 +dsbast811 toEng 0. -> 0 +dsbast812 toEng -.0 -> -0.0 +dsbast813 toEng -0. -> -0 +dsbast814 toEng -0.0 -> -0.0 +dsbast815 toEng -0.00 -> -0.00 +dsbast816 toEng -0.000 -> -0.000 +dsbast817 toEng -0.0000 -> -0.0000 +dsbast818 toEng -0.00000 -> -0.00000 +dsbast819 toEng -0.000000 -> -0.000000 +dsbast820 toEng -0.0000000 -> -0.0E-6 +dsbast821 toEng -0.00000000 -> -0.00E-6 +dsbast822 toEng -0.000000000 -> -0E-9 + +dsbast830 toEng 0.00E+0 -> 0.00 +dsbast831 toEng 0.00E+1 -> 0.0 +dsbast832 toEng 0.00E+2 -> 0 +dsbast833 toEng 0.00E+3 -> 0.00E+3 +dsbast834 toEng 0.00E+4 -> 0.0E+3 +dsbast835 toEng 0.00E+5 -> 0E+3 +dsbast836 toEng 0.00E+6 -> 0.00E+6 +dsbast837 toEng 0.00E+7 -> 0.0E+6 +dsbast838 toEng 0.00E+8 -> 0E+6 +dsbast839 toEng 0.00E+9 -> 0.00E+9 + +dsbast840 toEng 0.0E+0 -> 0.0 +dsbast841 toEng 0.0E+1 -> 0 +dsbast842 toEng 0.0E+2 -> 0.00E+3 +dsbast843 toEng 0.0E+3 -> 0.0E+3 +dsbast844 toEng 0.0E+4 -> 0E+3 +dsbast845 toEng 0.0E+5 -> 0.00E+6 +dsbast846 toEng 0.0E+6 -> 0.0E+6 +dsbast847 toEng 0.0E+7 -> 0E+6 +dsbast848 toEng 0.0E+8 -> 0.00E+9 +dsbast849 toEng 0.0E+9 -> 0.0E+9 + +dsbast850 toEng 0E+0 -> 0 +dsbast851 toEng 0E+1 -> 0.00E+3 +dsbast852 toEng 0E+2 -> 0.0E+3 +dsbast853 toEng 0E+3 -> 0E+3 +dsbast854 toEng 0E+4 -> 0.00E+6 +dsbast855 toEng 0E+5 -> 0.0E+6 +dsbast856 toEng 0E+6 -> 0E+6 +dsbast857 toEng 0E+7 -> 0.00E+9 +dsbast858 toEng 0E+8 -> 0.0E+9 +dsbast859 toEng 0E+9 -> 0E+9 + +dsbast860 toEng 0.0E-0 -> 0.0 +dsbast861 toEng 0.0E-1 -> 0.00 +dsbast862 toEng 0.0E-2 -> 0.000 +dsbast863 toEng 0.0E-3 -> 0.0000 +dsbast864 toEng 0.0E-4 -> 0.00000 +dsbast865 toEng 0.0E-5 -> 0.000000 +dsbast866 toEng 0.0E-6 -> 0.0E-6 +dsbast867 toEng 0.0E-7 -> 0.00E-6 +dsbast868 toEng 0.0E-8 -> 0E-9 +dsbast869 toEng 0.0E-9 -> 0.0E-9 + +dsbast870 toEng 0.00E-0 -> 0.00 +dsbast871 toEng 0.00E-1 -> 0.000 +dsbast872 toEng 0.00E-2 -> 0.0000 +dsbast873 toEng 0.00E-3 -> 0.00000 +dsbast874 toEng 0.00E-4 -> 0.000000 +dsbast875 toEng 0.00E-5 -> 0.0E-6 +dsbast876 toEng 0.00E-6 -> 0.00E-6 +dsbast877 toEng 0.00E-7 -> 0E-9 +dsbast878 toEng 0.00E-8 -> 0.0E-9 +dsbast879 toEng 0.00E-9 -> 0.00E-9 + +-- long input strings +dsbas801 tosci '01234567' -> 1234567 +dsbas802 tosci '001234567' -> 1234567 +dsbas803 tosci '0001234567' -> 1234567 +dsbas804 tosci '00001234567' -> 1234567 +dsbas805 tosci '000001234567' -> 1234567 +dsbas806 tosci '0000001234567' -> 1234567 +dsbas807 tosci '00000001234567' -> 1234567 +dsbas808 tosci '000000001234567' -> 1234567 +dsbas809 tosci '0000000001234567' -> 1234567 +dsbas810 tosci '00000000001234567' -> 1234567 + +dsbas811 tosci '0.1234567' -> 0.1234567 +dsbas812 tosci '0.01234567' -> 0.01234567 +dsbas813 tosci '0.001234567' -> 0.001234567 +dsbas814 tosci '0.0001234567' -> 0.0001234567 +dsbas815 tosci '0.00001234567' -> 0.00001234567 +dsbas816 tosci '0.000001234567' -> 0.000001234567 +dsbas817 tosci '0.0000001234567' -> 1.234567E-7 +dsbas818 tosci '0.00000001234567' -> 1.234567E-8 +dsbas819 tosci '0.000000001234567' -> 1.234567E-9 +dsbas820 tosci '0.0000000001234567' -> 1.234567E-10 + +dsbas821 tosci '123456790' -> 1.234568E+8 Inexact Rounded +dsbas822 tosci '1234567901' -> 1.234568E+9 Inexact Rounded +dsbas823 tosci '12345679012' -> 1.234568E+10 Inexact Rounded +dsbas824 tosci '123456790123' -> 1.234568E+11 Inexact Rounded +dsbas825 tosci '1234567901234' -> 1.234568E+12 Inexact Rounded +dsbas826 tosci '12345679012345' -> 1.234568E+13 Inexact Rounded +dsbas827 tosci '123456790123456' -> 1.234568E+14 Inexact Rounded +dsbas828 tosci '1234567901234567' -> 1.234568E+15 Inexact Rounded +dsbas829 tosci '1234567890123456' -> 1.234568E+15 Inexact Rounded + +-- subnormals and overflows +dsbas906 toSci '99e999999999' -> Infinity Overflow Inexact Rounded +dsbas907 toSci '999e999999999' -> Infinity Overflow Inexact Rounded +dsbas908 toSci '0.9e-999999999' -> 0E-101 Underflow Subnormal Inexact Rounded Clamped +dsbas909 toSci '0.09e-999999999' -> 0E-101 Underflow Subnormal Inexact Rounded Clamped +dsbas910 toSci '0.1e1000000000' -> Infinity Overflow Inexact Rounded +dsbas911 toSci '10e-1000000000' -> 0E-101 Underflow Subnormal Inexact Rounded Clamped +dsbas912 toSci '0.9e9999999999' -> Infinity Overflow Inexact Rounded +dsbas913 toSci '99e-9999999999' -> 0E-101 Underflow Subnormal Inexact Rounded Clamped +dsbas914 toSci '111e9999999999' -> Infinity Overflow Inexact Rounded +dsbas915 toSci '1111e-9999999999' -> 0E-101 Underflow Subnormal Inexact Rounded Clamped +dsbas916 toSci '1111e-99999999999' -> 0E-101 Underflow Subnormal Inexact Rounded Clamped +dsbas917 toSci '7e1000000000' -> Infinity Overflow Inexact Rounded +-- negatives the same +dsbas918 toSci '-99e999999999' -> -Infinity Overflow Inexact Rounded +dsbas919 toSci '-999e999999999' -> -Infinity Overflow Inexact Rounded +dsbas920 toSci '-0.9e-999999999' -> -0E-101 Underflow Subnormal Inexact Rounded Clamped +dsbas921 toSci '-0.09e-999999999' -> -0E-101 Underflow Subnormal Inexact Rounded Clamped +dsbas922 toSci '-0.1e1000000000' -> -Infinity Overflow Inexact Rounded +dsbas923 toSci '-10e-1000000000' -> -0E-101 Underflow Subnormal Inexact Rounded Clamped +dsbas924 toSci '-0.9e9999999999' -> -Infinity Overflow Inexact Rounded +dsbas925 toSci '-99e-9999999999' -> -0E-101 Underflow Subnormal Inexact Rounded Clamped +dsbas926 toSci '-111e9999999999' -> -Infinity Overflow Inexact Rounded +dsbas927 toSci '-1111e-9999999999' -> -0E-101 Underflow Subnormal Inexact Rounded Clamped +dsbas928 toSci '-1111e-99999999999' -> -0E-101 Underflow Subnormal Inexact Rounded Clamped +dsbas929 toSci '-7e1000000000' -> -Infinity Overflow Inexact Rounded + +-- overflow results at different rounding modes +rounding: ceiling +dsbas930 toSci '7e10000' -> Infinity Overflow Inexact Rounded +dsbas931 toSci '-7e10000' -> -9.999999E+96 Overflow Inexact Rounded +rounding: up +dsbas932 toSci '7e10000' -> Infinity Overflow Inexact Rounded +dsbas933 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded +rounding: down +dsbas934 toSci '7e10000' -> 9.999999E+96 Overflow Inexact Rounded +dsbas935 toSci '-7e10000' -> -9.999999E+96 Overflow Inexact Rounded +rounding: floor +dsbas936 toSci '7e10000' -> 9.999999E+96 Overflow Inexact Rounded +dsbas937 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded + +rounding: half_up +dsbas938 toSci '7e10000' -> Infinity Overflow Inexact Rounded +dsbas939 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded +rounding: half_even +dsbas940 toSci '7e10000' -> Infinity Overflow Inexact Rounded +dsbas941 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded +rounding: half_down +dsbas942 toSci '7e10000' -> Infinity Overflow Inexact Rounded +dsbas943 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded + +rounding: half_even + +-- Now check 854/754r some subnormals and underflow to 0 +dsbem400 toSci 1.0000E-86 -> 1.0000E-86 +dsbem401 toSci 0.1E-97 -> 1E-98 Subnormal +dsbem402 toSci 0.1000E-97 -> 1.000E-98 Subnormal +dsbem403 toSci 0.0100E-97 -> 1.00E-99 Subnormal +dsbem404 toSci 0.0010E-97 -> 1.0E-100 Subnormal +dsbem405 toSci 0.0001E-97 -> 1E-101 Subnormal +dsbem406 toSci 0.00010E-97 -> 1E-101 Subnormal Rounded +dsbem407 toSci 0.00013E-97 -> 1E-101 Underflow Subnormal Inexact Rounded +dsbem408 toSci 0.00015E-97 -> 2E-101 Underflow Subnormal Inexact Rounded +dsbem409 toSci 0.00017E-97 -> 2E-101 Underflow Subnormal Inexact Rounded +dsbem410 toSci 0.00023E-97 -> 2E-101 Underflow Subnormal Inexact Rounded +dsbem411 toSci 0.00025E-97 -> 2E-101 Underflow Subnormal Inexact Rounded +dsbem412 toSci 0.00027E-97 -> 3E-101 Underflow Subnormal Inexact Rounded +dsbem413 toSci 0.000149E-97 -> 1E-101 Underflow Subnormal Inexact Rounded +dsbem414 toSci 0.000150E-97 -> 2E-101 Underflow Subnormal Inexact Rounded +dsbem415 toSci 0.000151E-97 -> 2E-101 Underflow Subnormal Inexact Rounded +dsbem416 toSci 0.000249E-97 -> 2E-101 Underflow Subnormal Inexact Rounded +dsbem417 toSci 0.000250E-97 -> 2E-101 Underflow Subnormal Inexact Rounded +dsbem418 toSci 0.000251E-97 -> 3E-101 Underflow Subnormal Inexact Rounded +dsbem419 toSci 0.00009E-97 -> 1E-101 Underflow Subnormal Inexact Rounded +dsbem420 toSci 0.00005E-97 -> 0E-101 Underflow Subnormal Inexact Rounded Clamped +dsbem421 toSci 0.00003E-97 -> 0E-101 Underflow Subnormal Inexact Rounded Clamped +dsbem422 toSci 0.000009E-97 -> 0E-101 Underflow Subnormal Inexact Rounded Clamped +dsbem423 toSci 0.000005E-97 -> 0E-101 Underflow Subnormal Inexact Rounded Clamped +dsbem424 toSci 0.000003E-97 -> 0E-101 Underflow Subnormal Inexact Rounded Clamped + +dsbem425 toSci 0.001049E-97 -> 1.0E-100 Underflow Subnormal Inexact Rounded +dsbem426 toSci 0.001050E-97 -> 1.0E-100 Underflow Subnormal Inexact Rounded +dsbem427 toSci 0.001051E-97 -> 1.1E-100 Underflow Subnormal Inexact Rounded +dsbem428 toSci 0.001149E-97 -> 1.1E-100 Underflow Subnormal Inexact Rounded +dsbem429 toSci 0.001150E-97 -> 1.2E-100 Underflow Subnormal Inexact Rounded +dsbem430 toSci 0.001151E-97 -> 1.2E-100 Underflow Subnormal Inexact Rounded + +dsbem432 toSci 0.010049E-97 -> 1.00E-99 Underflow Subnormal Inexact Rounded +dsbem433 toSci 0.010050E-97 -> 1.00E-99 Underflow Subnormal Inexact Rounded +dsbem434 toSci 0.010051E-97 -> 1.01E-99 Underflow Subnormal Inexact Rounded +dsbem435 toSci 0.010149E-97 -> 1.01E-99 Underflow Subnormal Inexact Rounded +dsbem436 toSci 0.010150E-97 -> 1.02E-99 Underflow Subnormal Inexact Rounded +dsbem437 toSci 0.010151E-97 -> 1.02E-99 Underflow Subnormal Inexact Rounded + +dsbem440 toSci 0.10103E-97 -> 1.010E-98 Underflow Subnormal Inexact Rounded +dsbem441 toSci 0.10105E-97 -> 1.010E-98 Underflow Subnormal Inexact Rounded +dsbem442 toSci 0.10107E-97 -> 1.011E-98 Underflow Subnormal Inexact Rounded +dsbem443 toSci 0.10113E-97 -> 1.011E-98 Underflow Subnormal Inexact Rounded +dsbem444 toSci 0.10115E-97 -> 1.012E-98 Underflow Subnormal Inexact Rounded +dsbem445 toSci 0.10117E-97 -> 1.012E-98 Underflow Subnormal Inexact Rounded + +dsbem450 toSci 1.10730E-98 -> 1.107E-98 Underflow Subnormal Inexact Rounded +dsbem451 toSci 1.10750E-98 -> 1.108E-98 Underflow Subnormal Inexact Rounded +dsbem452 toSci 1.10770E-98 -> 1.108E-98 Underflow Subnormal Inexact Rounded +dsbem453 toSci 1.10830E-98 -> 1.108E-98 Underflow Subnormal Inexact Rounded +dsbem454 toSci 1.10850E-98 -> 1.108E-98 Underflow Subnormal Inexact Rounded +dsbem455 toSci 1.10870E-98 -> 1.109E-98 Underflow Subnormal Inexact Rounded + +-- make sure sign OK +dsbem456 toSci -0.10103E-97 -> -1.010E-98 Underflow Subnormal Inexact Rounded +dsbem457 toSci -0.10105E-97 -> -1.010E-98 Underflow Subnormal Inexact Rounded +dsbem458 toSci -0.10107E-97 -> -1.011E-98 Underflow Subnormal Inexact Rounded +dsbem459 toSci -0.10113E-97 -> -1.011E-98 Underflow Subnormal Inexact Rounded +dsbem460 toSci -0.10115E-97 -> -1.012E-98 Underflow Subnormal Inexact Rounded +dsbem461 toSci -0.10117E-97 -> -1.012E-98 Underflow Subnormal Inexact Rounded + +-- '999s' cases +dsbem464 toSci 999999E-98 -> 9.99999E-93 +dsbem465 toSci 99999.0E-97 -> 9.99990E-93 +dsbem466 toSci 99999.E-97 -> 9.9999E-93 +dsbem467 toSci 9999.9E-97 -> 9.9999E-94 +dsbem468 toSci 999.99E-97 -> 9.9999E-95 +dsbem469 toSci 99.999E-97 -> 9.9999E-96 Subnormal +dsbem470 toSci 9.9999E-97 -> 9.9999E-97 Subnormal +dsbem471 toSci 0.99999E-97 -> 1.0000E-97 Underflow Subnormal Inexact Rounded +dsbem472 toSci 0.099999E-97 -> 1.000E-98 Underflow Subnormal Inexact Rounded +dsbem473 toSci 0.0099999E-97 -> 1.00E-99 Underflow Subnormal Inexact Rounded +dsbem474 toSci 0.00099999E-97 -> 1.0E-100 Underflow Subnormal Inexact Rounded +dsbem475 toSci 0.000099999E-97 -> 1E-101 Underflow Subnormal Inexact Rounded +dsbem476 toSci 0.0000099999E-97 -> 0E-101 Underflow Subnormal Inexact Rounded Clamped +dsbem477 toSci 0.00000099999E-97 -> 0E-101 Underflow Subnormal Inexact Rounded Clamped +dsbem478 toSci 0.000000099999E-97 -> 0E-101 Underflow Subnormal Inexact Rounded Clamped + +-- Exponents with insignificant leading zeros +dsbas1001 toSci 1e999999999 -> Infinity Overflow Inexact Rounded +dsbas1002 toSci 1e0999999999 -> Infinity Overflow Inexact Rounded +dsbas1003 toSci 1e00999999999 -> Infinity Overflow Inexact Rounded +dsbas1004 toSci 1e000999999999 -> Infinity Overflow Inexact Rounded +dsbas1005 toSci 1e000000000000999999999 -> Infinity Overflow Inexact Rounded +dsbas1006 toSci 1e000000000001000000007 -> Infinity Overflow Inexact Rounded +dsbas1007 toSci 1e-999999999 -> 0E-101 Underflow Subnormal Inexact Rounded Clamped +dsbas1008 toSci 1e-0999999999 -> 0E-101 Underflow Subnormal Inexact Rounded Clamped +dsbas1009 toSci 1e-00999999999 -> 0E-101 Underflow Subnormal Inexact Rounded Clamped +dsbas1010 toSci 1e-000999999999 -> 0E-101 Underflow Subnormal Inexact Rounded Clamped +dsbas1011 toSci 1e-000000000000999999999 -> 0E-101 Underflow Subnormal Inexact Rounded Clamped +dsbas1012 toSci 1e-000000000001000000007 -> 0E-101 Underflow Subnormal Inexact Rounded Clamped + +-- check for double-rounded subnormals +dsbas1041 toSci 1.1152444E-96 -> 1.11524E-96 Inexact Rounded Subnormal Underflow +dsbas1042 toSci 1.1152445E-96 -> 1.11524E-96 Inexact Rounded Subnormal Underflow +dsbas1043 toSci 1.1152446E-96 -> 1.11524E-96 Inexact Rounded Subnormal Underflow + +-- clamped zeros [see also clamp.decTest] +dsbas1075 toSci 0e+10000 -> 0E+90 Clamped +dsbas1076 toSci 0e-10000 -> 0E-101 Clamped +dsbas1077 toSci -0e+10000 -> -0E+90 Clamped +dsbas1078 toSci -0e-10000 -> -0E-101 Clamped + +-- extreme values from next-wider +dsbas1101 toSci -9.999999999999999E+384 -> -Infinity Overflow Inexact Rounded +dsbas1102 toSci -1E-383 -> -0E-101 Inexact Rounded Subnormal Underflow Clamped +dsbas1103 toSci -1E-398 -> -0E-101 Inexact Rounded Subnormal Underflow Clamped +dsbas1104 toSci -0 -> -0 +dsbas1105 toSci +0 -> 0 +dsbas1106 toSci +1E-398 -> 0E-101 Inexact Rounded Subnormal Underflow Clamped +dsbas1107 toSci +1E-383 -> 0E-101 Inexact Rounded Subnormal Underflow Clamped +dsbas1108 toSci +9.999999999999999E+384 -> Infinity Overflow Inexact Rounded + +-- narrowing case +dsbas1110 toSci 2.000000000000000E-99 -> 2.00E-99 Rounded Subnormal diff --git a/Lib/test/decimaltestdata/dsEncode.decTest b/Lib/test/decimaltestdata/dsEncode.decTest index 7264748759..818578b179 100644 --- a/Lib/test/decimaltestdata/dsEncode.decTest +++ b/Lib/test/decimaltestdata/dsEncode.decTest @@ -1,372 +1,372 @@ -------------------------------------------------------------------------
--- dsEncode.decTest -- decimal four-byte format testcases --
--- Copyright (c) IBM Corporation, 2000, 2008. 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 --
-------------------------------------------------------------------------
--- [Previously called decimal32.decTest]
-version: 2.59
-
--- This set of tests is for the four-byte concrete representation.
--- Its characteristics are:
---
--- 1 bit sign
--- 5 bits combination field
--- 6 bits exponent continuation
--- 20 bits coefficient continuation
---
--- Total exponent length 8 bits
--- Total coefficient length 24 bits (7 digits)
---
--- Elimit = 191 (maximum encoded exponent)
--- Emax = 96 (largest exponent value)
--- Emin = -95 (smallest exponent value)
--- bias = 101 (subtracted from encoded exponent) = -Etiny
-
--- The testcases here have only exactly representable data on the
--- 'left-hand-side'; rounding from strings is tested in 'base'
--- testcase groups.
-
-extended: 1
-clamp: 1
-precision: 7
-rounding: half_up
-maxExponent: 96
-minExponent: -95
-
--- General testcases
--- (mostly derived from the Strawman 4 document and examples)
-decs001 apply #A23003D0 -> -7.50
-decs002 apply -7.50 -> #A23003D0
--- derivative canonical plain strings
-decs003 apply #A26003D0 -> -7.50E+3
-decs004 apply -7.50E+3 -> #A26003D0
-decs005 apply #A25003D0 -> -750
-decs006 apply -750 -> #A25003D0
-decs007 apply #A24003D0 -> -75.0
-decs008 apply -75.0 -> #A24003D0
-decs009 apply #A22003D0 -> -0.750
-decs010 apply -0.750 -> #A22003D0
-decs011 apply #A21003D0 -> -0.0750
-decs012 apply -0.0750 -> #A21003D0
-decs013 apply #A1f003D0 -> -0.000750
-decs014 apply -0.000750 -> #A1f003D0
-decs015 apply #A1d003D0 -> -0.00000750
-decs016 apply -0.00000750 -> #A1d003D0
-decs017 apply #A1c003D0 -> -7.50E-7
-decs018 apply -7.50E-7 -> #A1c003D0
-
--- Normality
-decs020 apply 1234567 -> #2654d2e7
-decs021 apply -1234567 -> #a654d2e7
-decs022 apply 1111111 -> #26524491
-
--- Nmax and similar
-decs031 apply 9.999999E+96 -> #77f3fcff
-decs032 apply #77f3fcff -> 9.999999E+96
-decs033 apply 1.234567E+96 -> #47f4d2e7
-decs034 apply #47f4d2e7 -> 1.234567E+96
--- fold-downs (more below)
-decs035 apply 1.23E+96 -> #47f4c000 Clamped
-decs036 apply #47f4c000 -> 1.230000E+96
-decs037 apply 1E+96 -> #47f00000 Clamped
-decs038 apply #47f00000 -> 1.000000E+96
-
-decs051 apply 12345 -> #225049c5
-decs052 apply #225049c5 -> 12345
-decs053 apply 1234 -> #22500534
-decs054 apply #22500534 -> 1234
-decs055 apply 123 -> #225000a3
-decs056 apply #225000a3 -> 123
-decs057 apply 12 -> #22500012
-decs058 apply #22500012 -> 12
-decs059 apply 1 -> #22500001
-decs060 apply #22500001 -> 1
-decs061 apply 1.23 -> #223000a3
-decs062 apply #223000a3 -> 1.23
-decs063 apply 123.45 -> #223049c5
-decs064 apply #223049c5 -> 123.45
-
--- Nmin and below
-decs071 apply 1E-95 -> #00600001
-decs072 apply #00600001 -> 1E-95
-decs073 apply 1.000000E-95 -> #04000000
-decs074 apply #04000000 -> 1.000000E-95
-decs075 apply 1.000001E-95 -> #04000001
-decs076 apply #04000001 -> 1.000001E-95
-
-decs077 apply 0.100000E-95 -> #00020000 Subnormal
-decs07x apply 1.00000E-96 -> 1.00000E-96 Subnormal
-decs078 apply #00020000 -> 1.00000E-96 Subnormal
-decs079 apply 0.000010E-95 -> #00000010 Subnormal
-decs080 apply #00000010 -> 1.0E-100 Subnormal
-decs081 apply 0.000001E-95 -> #00000001 Subnormal
-decs082 apply #00000001 -> 1E-101 Subnormal
-decs083 apply 1e-101 -> #00000001 Subnormal
-decs084 apply #00000001 -> 1E-101 Subnormal
-decs08x apply 1e-101 -> 1E-101 Subnormal
-
--- underflows cannot be tested; just check edge case
-decs090 apply 1e-101 -> #00000001 Subnormal
-
--- same again, negatives --
-
--- Nmax and similar
-decs122 apply -9.999999E+96 -> #f7f3fcff
-decs123 apply #f7f3fcff -> -9.999999E+96
-decs124 apply -1.234567E+96 -> #c7f4d2e7
-decs125 apply #c7f4d2e7 -> -1.234567E+96
--- fold-downs (more below)
-decs130 apply -1.23E+96 -> #c7f4c000 Clamped
-decs131 apply #c7f4c000 -> -1.230000E+96
-decs132 apply -1E+96 -> #c7f00000 Clamped
-decs133 apply #c7f00000 -> -1.000000E+96
-
-decs151 apply -12345 -> #a25049c5
-decs152 apply #a25049c5 -> -12345
-decs153 apply -1234 -> #a2500534
-decs154 apply #a2500534 -> -1234
-decs155 apply -123 -> #a25000a3
-decs156 apply #a25000a3 -> -123
-decs157 apply -12 -> #a2500012
-decs158 apply #a2500012 -> -12
-decs159 apply -1 -> #a2500001
-decs160 apply #a2500001 -> -1
-decs161 apply -1.23 -> #a23000a3
-decs162 apply #a23000a3 -> -1.23
-decs163 apply -123.45 -> #a23049c5
-decs164 apply #a23049c5 -> -123.45
-
--- Nmin and below
-decs171 apply -1E-95 -> #80600001
-decs172 apply #80600001 -> -1E-95
-decs173 apply -1.000000E-95 -> #84000000
-decs174 apply #84000000 -> -1.000000E-95
-decs175 apply -1.000001E-95 -> #84000001
-decs176 apply #84000001 -> -1.000001E-95
-
-decs177 apply -0.100000E-95 -> #80020000 Subnormal
-decs178 apply #80020000 -> -1.00000E-96 Subnormal
-decs179 apply -0.000010E-95 -> #80000010 Subnormal
-decs180 apply #80000010 -> -1.0E-100 Subnormal
-decs181 apply -0.000001E-95 -> #80000001 Subnormal
-decs182 apply #80000001 -> -1E-101 Subnormal
-decs183 apply -1e-101 -> #80000001 Subnormal
-decs184 apply #80000001 -> -1E-101 Subnormal
-
--- underflow edge case
-decs190 apply -1e-101 -> #80000001 Subnormal
-
--- zeros
-decs400 apply 0E-400 -> #00000000 Clamped
-decs401 apply 0E-101 -> #00000000
-decs402 apply #00000000 -> 0E-101
-decs403 apply 0.000000E-95 -> #00000000
-decs404 apply #00000000 -> 0E-101
-decs405 apply 0E-2 -> #22300000
-decs406 apply #22300000 -> 0.00
-decs407 apply 0 -> #22500000
-decs408 apply #22500000 -> 0
-decs409 apply 0E+3 -> #22800000
-decs410 apply #22800000 -> 0E+3
-decs411 apply 0E+90 -> #43f00000
-decs412 apply #43f00000 -> 0E+90
--- clamped zeros...
-decs413 apply 0E+91 -> #43f00000 Clamped
-decs414 apply #43f00000 -> 0E+90
-decs415 apply 0E+96 -> #43f00000 Clamped
-decs416 apply #43f00000 -> 0E+90
-decs417 apply 0E+400 -> #43f00000 Clamped
-decs418 apply #43f00000 -> 0E+90
-
--- negative zeros
-decs420 apply -0E-400 -> #80000000 Clamped
-decs421 apply -0E-101 -> #80000000
-decs422 apply #80000000 -> -0E-101
-decs423 apply -0.000000E-95 -> #80000000
-decs424 apply #80000000 -> -0E-101
-decs425 apply -0E-2 -> #a2300000
-decs426 apply #a2300000 -> -0.00
-decs427 apply -0 -> #a2500000
-decs428 apply #a2500000 -> -0
-decs429 apply -0E+3 -> #a2800000
-decs430 apply #a2800000 -> -0E+3
-decs431 apply -0E+90 -> #c3f00000
-decs432 apply #c3f00000 -> -0E+90
--- clamped zeros...
-decs433 apply -0E+91 -> #c3f00000 Clamped
-decs434 apply #c3f00000 -> -0E+90
-decs435 apply -0E+96 -> #c3f00000 Clamped
-decs436 apply #c3f00000 -> -0E+90
-decs437 apply -0E+400 -> #c3f00000 Clamped
-decs438 apply #c3f00000 -> -0E+90
-
--- Specials
-decs500 apply Infinity -> #78000000
-decs501 apply #78787878 -> #78000000
-decs502 apply #78000000 -> Infinity
-decs503 apply #79797979 -> #78000000
-decs504 apply #79000000 -> Infinity
-decs505 apply #7a7a7a7a -> #78000000
-decs506 apply #7a000000 -> Infinity
-decs507 apply #7b7b7b7b -> #78000000
-decs508 apply #7b000000 -> Infinity
-decs509 apply #7c7c7c7c -> #7c0c7c7c
-
-decs510 apply NaN -> #7c000000
-decs511 apply #7c000000 -> NaN
-decs512 apply #7d7d7d7d -> #7c0d7d7d
-decs513 apply #7d000000 -> NaN
-decs514 apply #7e7e7e7e -> #7e0e7c7e
-decs515 apply #7e000000 -> sNaN
-decs516 apply #7f7f7f7f -> #7e0f7c7f
-decs517 apply #7f000000 -> sNaN
-decs518 apply #7fffffff -> sNaN999999
-decs519 apply #7fffffff -> #7e03fcff
-
-decs520 apply -Infinity -> #f8000000
-decs521 apply #f8787878 -> #f8000000
-decs522 apply #f8000000 -> -Infinity
-decs523 apply #f9797979 -> #f8000000
-decs524 apply #f9000000 -> -Infinity
-decs525 apply #fa7a7a7a -> #f8000000
-decs526 apply #fa000000 -> -Infinity
-decs527 apply #fb7b7b7b -> #f8000000
-decs528 apply #fb000000 -> -Infinity
-
-decs529 apply -NaN -> #fc000000
-decs530 apply #fc7c7c7c -> #fc0c7c7c
-decs531 apply #fc000000 -> -NaN
-decs532 apply #fd7d7d7d -> #fc0d7d7d
-decs533 apply #fd000000 -> -NaN
-decs534 apply #fe7e7e7e -> #fe0e7c7e
-decs535 apply #fe000000 -> -sNaN
-decs536 apply #ff7f7f7f -> #fe0f7c7f
-decs537 apply #ff000000 -> -sNaN
-decs538 apply #ffffffff -> -sNaN999999
-decs539 apply #ffffffff -> #fe03fcff
-
--- diagnostic NaNs
-decs540 apply NaN -> #7c000000
-decs541 apply NaN0 -> #7c000000
-decs542 apply NaN1 -> #7c000001
-decs543 apply NaN12 -> #7c000012
-decs544 apply NaN79 -> #7c000079
-decs545 apply NaN12345 -> #7c0049c5
-decs546 apply NaN123456 -> #7c028e56
-decs547 apply NaN799799 -> #7c0f7fdf
-decs548 apply NaN999999 -> #7c03fcff
-
-
--- fold-down full sequence
-decs601 apply 1E+96 -> #47f00000 Clamped
-decs602 apply #47f00000 -> 1.000000E+96
-decs603 apply 1E+95 -> #43f20000 Clamped
-decs604 apply #43f20000 -> 1.00000E+95
-decs605 apply 1E+94 -> #43f04000 Clamped
-decs606 apply #43f04000 -> 1.0000E+94
-decs607 apply 1E+93 -> #43f00400 Clamped
-decs608 apply #43f00400 -> 1.000E+93
-decs609 apply 1E+92 -> #43f00080 Clamped
-decs610 apply #43f00080 -> 1.00E+92
-decs611 apply 1E+91 -> #43f00010 Clamped
-decs612 apply #43f00010 -> 1.0E+91
-decs613 apply 1E+90 -> #43f00001
-decs614 apply #43f00001 -> 1E+90
-
-
--- Selected DPD codes
-decs700 apply #22500000 -> 0
-decs701 apply #22500009 -> 9
-decs702 apply #22500010 -> 10
-decs703 apply #22500019 -> 19
-decs704 apply #22500020 -> 20
-decs705 apply #22500029 -> 29
-decs706 apply #22500030 -> 30
-decs707 apply #22500039 -> 39
-decs708 apply #22500040 -> 40
-decs709 apply #22500049 -> 49
-decs710 apply #22500050 -> 50
-decs711 apply #22500059 -> 59
-decs712 apply #22500060 -> 60
-decs713 apply #22500069 -> 69
-decs714 apply #22500070 -> 70
-decs715 apply #22500071 -> 71
-decs716 apply #22500072 -> 72
-decs717 apply #22500073 -> 73
-decs718 apply #22500074 -> 74
-decs719 apply #22500075 -> 75
-decs720 apply #22500076 -> 76
-decs721 apply #22500077 -> 77
-decs722 apply #22500078 -> 78
-decs723 apply #22500079 -> 79
-
-decs730 apply #2250029e -> 994
-decs731 apply #2250029f -> 995
-decs732 apply #225002a0 -> 520
-decs733 apply #225002a1 -> 521
-
--- DPD: one of each of the huffman groups
-decs740 apply #225003f7 -> 777
-decs741 apply #225003f8 -> 778
-decs742 apply #225003eb -> 787
-decs743 apply #2250037d -> 877
-decs744 apply #2250039f -> 997
-decs745 apply #225003bf -> 979
-decs746 apply #225003df -> 799
-decs747 apply #2250006e -> 888
-
-
--- DPD all-highs cases (includes the 24 redundant codes)
-decs750 apply #2250006e -> 888
-decs751 apply #2250016e -> 888
-decs752 apply #2250026e -> 888
-decs753 apply #2250036e -> 888
-decs754 apply #2250006f -> 889
-decs755 apply #2250016f -> 889
-decs756 apply #2250026f -> 889
-decs757 apply #2250036f -> 889
-
-decs760 apply #2250007e -> 898
-decs761 apply #2250017e -> 898
-decs762 apply #2250027e -> 898
-decs763 apply #2250037e -> 898
-decs764 apply #2250007f -> 899
-decs765 apply #2250017f -> 899
-decs766 apply #2250027f -> 899
-decs767 apply #2250037f -> 899
-
-decs770 apply #225000ee -> 988
-decs771 apply #225001ee -> 988
-decs772 apply #225002ee -> 988
-decs773 apply #225003ee -> 988
-decs774 apply #225000ef -> 989
-decs775 apply #225001ef -> 989
-decs776 apply #225002ef -> 989
-decs777 apply #225003ef -> 989
-
-decs780 apply #225000fe -> 998
-decs781 apply #225001fe -> 998
-decs782 apply #225002fe -> 998
-decs783 apply #225003fe -> 998
-decs784 apply #225000ff -> 999
-decs785 apply #225001ff -> 999
-decs786 apply #225002ff -> 999
-decs787 apply #225003ff -> 999
-
--- narrowing case
-decs790 apply 2.00E-99 -> #00000100 Subnormal
-decs791 apply #00000100 -> 2.00E-99 Subnormal
+------------------------------------------------------------------------ +-- dsEncode.decTest -- decimal four-byte format testcases -- +-- Copyright (c) IBM Corporation, 2000, 2008. 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 -- +------------------------------------------------------------------------ +-- [Previously called decimal32.decTest] +version: 2.59 + +-- This set of tests is for the four-byte concrete representation. +-- Its characteristics are: +-- +-- 1 bit sign +-- 5 bits combination field +-- 6 bits exponent continuation +-- 20 bits coefficient continuation +-- +-- Total exponent length 8 bits +-- Total coefficient length 24 bits (7 digits) +-- +-- Elimit = 191 (maximum encoded exponent) +-- Emax = 96 (largest exponent value) +-- Emin = -95 (smallest exponent value) +-- bias = 101 (subtracted from encoded exponent) = -Etiny + +-- The testcases here have only exactly representable data on the +-- 'left-hand-side'; rounding from strings is tested in 'base' +-- testcase groups. + +extended: 1 +clamp: 1 +precision: 7 +rounding: half_up +maxExponent: 96 +minExponent: -95 + +-- General testcases +-- (mostly derived from the Strawman 4 document and examples) +decs001 apply #A23003D0 -> -7.50 +decs002 apply -7.50 -> #A23003D0 +-- derivative canonical plain strings +decs003 apply #A26003D0 -> -7.50E+3 +decs004 apply -7.50E+3 -> #A26003D0 +decs005 apply #A25003D0 -> -750 +decs006 apply -750 -> #A25003D0 +decs007 apply #A24003D0 -> -75.0 +decs008 apply -75.0 -> #A24003D0 +decs009 apply #A22003D0 -> -0.750 +decs010 apply -0.750 -> #A22003D0 +decs011 apply #A21003D0 -> -0.0750 +decs012 apply -0.0750 -> #A21003D0 +decs013 apply #A1f003D0 -> -0.000750 +decs014 apply -0.000750 -> #A1f003D0 +decs015 apply #A1d003D0 -> -0.00000750 +decs016 apply -0.00000750 -> #A1d003D0 +decs017 apply #A1c003D0 -> -7.50E-7 +decs018 apply -7.50E-7 -> #A1c003D0 + +-- Normality +decs020 apply 1234567 -> #2654d2e7 +decs021 apply -1234567 -> #a654d2e7 +decs022 apply 1111111 -> #26524491 + +-- Nmax and similar +decs031 apply 9.999999E+96 -> #77f3fcff +decs032 apply #77f3fcff -> 9.999999E+96 +decs033 apply 1.234567E+96 -> #47f4d2e7 +decs034 apply #47f4d2e7 -> 1.234567E+96 +-- fold-downs (more below) +decs035 apply 1.23E+96 -> #47f4c000 Clamped +decs036 apply #47f4c000 -> 1.230000E+96 +decs037 apply 1E+96 -> #47f00000 Clamped +decs038 apply #47f00000 -> 1.000000E+96 + +decs051 apply 12345 -> #225049c5 +decs052 apply #225049c5 -> 12345 +decs053 apply 1234 -> #22500534 +decs054 apply #22500534 -> 1234 +decs055 apply 123 -> #225000a3 +decs056 apply #225000a3 -> 123 +decs057 apply 12 -> #22500012 +decs058 apply #22500012 -> 12 +decs059 apply 1 -> #22500001 +decs060 apply #22500001 -> 1 +decs061 apply 1.23 -> #223000a3 +decs062 apply #223000a3 -> 1.23 +decs063 apply 123.45 -> #223049c5 +decs064 apply #223049c5 -> 123.45 + +-- Nmin and below +decs071 apply 1E-95 -> #00600001 +decs072 apply #00600001 -> 1E-95 +decs073 apply 1.000000E-95 -> #04000000 +decs074 apply #04000000 -> 1.000000E-95 +decs075 apply 1.000001E-95 -> #04000001 +decs076 apply #04000001 -> 1.000001E-95 + +decs077 apply 0.100000E-95 -> #00020000 Subnormal +decs07x apply 1.00000E-96 -> 1.00000E-96 Subnormal +decs078 apply #00020000 -> 1.00000E-96 Subnormal +decs079 apply 0.000010E-95 -> #00000010 Subnormal +decs080 apply #00000010 -> 1.0E-100 Subnormal +decs081 apply 0.000001E-95 -> #00000001 Subnormal +decs082 apply #00000001 -> 1E-101 Subnormal +decs083 apply 1e-101 -> #00000001 Subnormal +decs084 apply #00000001 -> 1E-101 Subnormal +decs08x apply 1e-101 -> 1E-101 Subnormal + +-- underflows cannot be tested; just check edge case +decs090 apply 1e-101 -> #00000001 Subnormal + +-- same again, negatives -- + +-- Nmax and similar +decs122 apply -9.999999E+96 -> #f7f3fcff +decs123 apply #f7f3fcff -> -9.999999E+96 +decs124 apply -1.234567E+96 -> #c7f4d2e7 +decs125 apply #c7f4d2e7 -> -1.234567E+96 +-- fold-downs (more below) +decs130 apply -1.23E+96 -> #c7f4c000 Clamped +decs131 apply #c7f4c000 -> -1.230000E+96 +decs132 apply -1E+96 -> #c7f00000 Clamped +decs133 apply #c7f00000 -> -1.000000E+96 + +decs151 apply -12345 -> #a25049c5 +decs152 apply #a25049c5 -> -12345 +decs153 apply -1234 -> #a2500534 +decs154 apply #a2500534 -> -1234 +decs155 apply -123 -> #a25000a3 +decs156 apply #a25000a3 -> -123 +decs157 apply -12 -> #a2500012 +decs158 apply #a2500012 -> -12 +decs159 apply -1 -> #a2500001 +decs160 apply #a2500001 -> -1 +decs161 apply -1.23 -> #a23000a3 +decs162 apply #a23000a3 -> -1.23 +decs163 apply -123.45 -> #a23049c5 +decs164 apply #a23049c5 -> -123.45 + +-- Nmin and below +decs171 apply -1E-95 -> #80600001 +decs172 apply #80600001 -> -1E-95 +decs173 apply -1.000000E-95 -> #84000000 +decs174 apply #84000000 -> -1.000000E-95 +decs175 apply -1.000001E-95 -> #84000001 +decs176 apply #84000001 -> -1.000001E-95 + +decs177 apply -0.100000E-95 -> #80020000 Subnormal +decs178 apply #80020000 -> -1.00000E-96 Subnormal +decs179 apply -0.000010E-95 -> #80000010 Subnormal +decs180 apply #80000010 -> -1.0E-100 Subnormal +decs181 apply -0.000001E-95 -> #80000001 Subnormal +decs182 apply #80000001 -> -1E-101 Subnormal +decs183 apply -1e-101 -> #80000001 Subnormal +decs184 apply #80000001 -> -1E-101 Subnormal + +-- underflow edge case +decs190 apply -1e-101 -> #80000001 Subnormal + +-- zeros +decs400 apply 0E-400 -> #00000000 Clamped +decs401 apply 0E-101 -> #00000000 +decs402 apply #00000000 -> 0E-101 +decs403 apply 0.000000E-95 -> #00000000 +decs404 apply #00000000 -> 0E-101 +decs405 apply 0E-2 -> #22300000 +decs406 apply #22300000 -> 0.00 +decs407 apply 0 -> #22500000 +decs408 apply #22500000 -> 0 +decs409 apply 0E+3 -> #22800000 +decs410 apply #22800000 -> 0E+3 +decs411 apply 0E+90 -> #43f00000 +decs412 apply #43f00000 -> 0E+90 +-- clamped zeros... +decs413 apply 0E+91 -> #43f00000 Clamped +decs414 apply #43f00000 -> 0E+90 +decs415 apply 0E+96 -> #43f00000 Clamped +decs416 apply #43f00000 -> 0E+90 +decs417 apply 0E+400 -> #43f00000 Clamped +decs418 apply #43f00000 -> 0E+90 + +-- negative zeros +decs420 apply -0E-400 -> #80000000 Clamped +decs421 apply -0E-101 -> #80000000 +decs422 apply #80000000 -> -0E-101 +decs423 apply -0.000000E-95 -> #80000000 +decs424 apply #80000000 -> -0E-101 +decs425 apply -0E-2 -> #a2300000 +decs426 apply #a2300000 -> -0.00 +decs427 apply -0 -> #a2500000 +decs428 apply #a2500000 -> -0 +decs429 apply -0E+3 -> #a2800000 +decs430 apply #a2800000 -> -0E+3 +decs431 apply -0E+90 -> #c3f00000 +decs432 apply #c3f00000 -> -0E+90 +-- clamped zeros... +decs433 apply -0E+91 -> #c3f00000 Clamped +decs434 apply #c3f00000 -> -0E+90 +decs435 apply -0E+96 -> #c3f00000 Clamped +decs436 apply #c3f00000 -> -0E+90 +decs437 apply -0E+400 -> #c3f00000 Clamped +decs438 apply #c3f00000 -> -0E+90 + +-- Specials +decs500 apply Infinity -> #78000000 +decs501 apply #78787878 -> #78000000 +decs502 apply #78000000 -> Infinity +decs503 apply #79797979 -> #78000000 +decs504 apply #79000000 -> Infinity +decs505 apply #7a7a7a7a -> #78000000 +decs506 apply #7a000000 -> Infinity +decs507 apply #7b7b7b7b -> #78000000 +decs508 apply #7b000000 -> Infinity +decs509 apply #7c7c7c7c -> #7c0c7c7c + +decs510 apply NaN -> #7c000000 +decs511 apply #7c000000 -> NaN +decs512 apply #7d7d7d7d -> #7c0d7d7d +decs513 apply #7d000000 -> NaN +decs514 apply #7e7e7e7e -> #7e0e7c7e +decs515 apply #7e000000 -> sNaN +decs516 apply #7f7f7f7f -> #7e0f7c7f +decs517 apply #7f000000 -> sNaN +decs518 apply #7fffffff -> sNaN999999 +decs519 apply #7fffffff -> #7e03fcff + +decs520 apply -Infinity -> #f8000000 +decs521 apply #f8787878 -> #f8000000 +decs522 apply #f8000000 -> -Infinity +decs523 apply #f9797979 -> #f8000000 +decs524 apply #f9000000 -> -Infinity +decs525 apply #fa7a7a7a -> #f8000000 +decs526 apply #fa000000 -> -Infinity +decs527 apply #fb7b7b7b -> #f8000000 +decs528 apply #fb000000 -> -Infinity + +decs529 apply -NaN -> #fc000000 +decs530 apply #fc7c7c7c -> #fc0c7c7c +decs531 apply #fc000000 -> -NaN +decs532 apply #fd7d7d7d -> #fc0d7d7d +decs533 apply #fd000000 -> -NaN +decs534 apply #fe7e7e7e -> #fe0e7c7e +decs535 apply #fe000000 -> -sNaN +decs536 apply #ff7f7f7f -> #fe0f7c7f +decs537 apply #ff000000 -> -sNaN +decs538 apply #ffffffff -> -sNaN999999 +decs539 apply #ffffffff -> #fe03fcff + +-- diagnostic NaNs +decs540 apply NaN -> #7c000000 +decs541 apply NaN0 -> #7c000000 +decs542 apply NaN1 -> #7c000001 +decs543 apply NaN12 -> #7c000012 +decs544 apply NaN79 -> #7c000079 +decs545 apply NaN12345 -> #7c0049c5 +decs546 apply NaN123456 -> #7c028e56 +decs547 apply NaN799799 -> #7c0f7fdf +decs548 apply NaN999999 -> #7c03fcff + + +-- fold-down full sequence +decs601 apply 1E+96 -> #47f00000 Clamped +decs602 apply #47f00000 -> 1.000000E+96 +decs603 apply 1E+95 -> #43f20000 Clamped +decs604 apply #43f20000 -> 1.00000E+95 +decs605 apply 1E+94 -> #43f04000 Clamped +decs606 apply #43f04000 -> 1.0000E+94 +decs607 apply 1E+93 -> #43f00400 Clamped +decs608 apply #43f00400 -> 1.000E+93 +decs609 apply 1E+92 -> #43f00080 Clamped +decs610 apply #43f00080 -> 1.00E+92 +decs611 apply 1E+91 -> #43f00010 Clamped +decs612 apply #43f00010 -> 1.0E+91 +decs613 apply 1E+90 -> #43f00001 +decs614 apply #43f00001 -> 1E+90 + + +-- Selected DPD codes +decs700 apply #22500000 -> 0 +decs701 apply #22500009 -> 9 +decs702 apply #22500010 -> 10 +decs703 apply #22500019 -> 19 +decs704 apply #22500020 -> 20 +decs705 apply #22500029 -> 29 +decs706 apply #22500030 -> 30 +decs707 apply #22500039 -> 39 +decs708 apply #22500040 -> 40 +decs709 apply #22500049 -> 49 +decs710 apply #22500050 -> 50 +decs711 apply #22500059 -> 59 +decs712 apply #22500060 -> 60 +decs713 apply #22500069 -> 69 +decs714 apply #22500070 -> 70 +decs715 apply #22500071 -> 71 +decs716 apply #22500072 -> 72 +decs717 apply #22500073 -> 73 +decs718 apply #22500074 -> 74 +decs719 apply #22500075 -> 75 +decs720 apply #22500076 -> 76 +decs721 apply #22500077 -> 77 +decs722 apply #22500078 -> 78 +decs723 apply #22500079 -> 79 + +decs730 apply #2250029e -> 994 +decs731 apply #2250029f -> 995 +decs732 apply #225002a0 -> 520 +decs733 apply #225002a1 -> 521 + +-- DPD: one of each of the huffman groups +decs740 apply #225003f7 -> 777 +decs741 apply #225003f8 -> 778 +decs742 apply #225003eb -> 787 +decs743 apply #2250037d -> 877 +decs744 apply #2250039f -> 997 +decs745 apply #225003bf -> 979 +decs746 apply #225003df -> 799 +decs747 apply #2250006e -> 888 + + +-- DPD all-highs cases (includes the 24 redundant codes) +decs750 apply #2250006e -> 888 +decs751 apply #2250016e -> 888 +decs752 apply #2250026e -> 888 +decs753 apply #2250036e -> 888 +decs754 apply #2250006f -> 889 +decs755 apply #2250016f -> 889 +decs756 apply #2250026f -> 889 +decs757 apply #2250036f -> 889 + +decs760 apply #2250007e -> 898 +decs761 apply #2250017e -> 898 +decs762 apply #2250027e -> 898 +decs763 apply #2250037e -> 898 +decs764 apply #2250007f -> 899 +decs765 apply #2250017f -> 899 +decs766 apply #2250027f -> 899 +decs767 apply #2250037f -> 899 + +decs770 apply #225000ee -> 988 +decs771 apply #225001ee -> 988 +decs772 apply #225002ee -> 988 +decs773 apply #225003ee -> 988 +decs774 apply #225000ef -> 989 +decs775 apply #225001ef -> 989 +decs776 apply #225002ef -> 989 +decs777 apply #225003ef -> 989 + +decs780 apply #225000fe -> 998 +decs781 apply #225001fe -> 998 +decs782 apply #225002fe -> 998 +decs783 apply #225003fe -> 998 +decs784 apply #225000ff -> 999 +decs785 apply #225001ff -> 999 +decs786 apply #225002ff -> 999 +decs787 apply #225003ff -> 999 + +-- narrowing case +decs790 apply 2.00E-99 -> #00000100 Subnormal +decs791 apply #00000100 -> 2.00E-99 Subnormal diff --git a/Lib/test/decimaltestdata/exp.decTest b/Lib/test/decimaltestdata/exp.decTest index 021b478ac2..eab990d3ef 100644 --- a/Lib/test/decimaltestdata/exp.decTest +++ b/Lib/test/decimaltestdata/exp.decTest @@ -1,674 +1,674 @@ -------------------------------------------------------------------------
--- exp.decTest -- decimal natural exponentiation --
--- Copyright (c) IBM Corporation, 2005, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- Tests of the exponential funtion. Currently all testcases here
--- show results which are correctly rounded (within <= 0.5 ulp).
-
-extended: 1
-precision: 9
-rounding: half_even
-maxExponent: 384
-minexponent: -383
-
--- basics (examples in specificiation, etc.)
-expx001 exp -Infinity -> 0
-expx002 exp -10 -> 0.0000453999298 Inexact Rounded
-expx003 exp -1 -> 0.367879441 Inexact Rounded
-expx004 exp 0 -> 1
-expx005 exp -0 -> 1
-expx006 exp 1 -> 2.71828183 Inexact Rounded
-expx007 exp 0.693147181 -> 2.00000000 Inexact Rounded
-expx008 exp 10 -> 22026.4658 Inexact Rounded
-expx009 exp +Infinity -> Infinity
-
--- tiny edge cases
-precision: 7
-expx011 exp 0.1 -> 1.105171 Inexact Rounded
-expx012 exp 0.01 -> 1.010050 Inexact Rounded
-expx013 exp 0.001 -> 1.001001 Inexact Rounded
-expx014 exp 0.0001 -> 1.000100 Inexact Rounded
-expx015 exp 0.00001 -> 1.000010 Inexact Rounded
-expx016 exp 0.000001 -> 1.000001 Inexact Rounded
-expx017 exp 0.0000001 -> 1.000000 Inexact Rounded
-expx018 exp 0.0000003 -> 1.000000 Inexact Rounded
-expx019 exp 0.0000004 -> 1.000000 Inexact Rounded
-expx020 exp 0.0000005 -> 1.000001 Inexact Rounded
-expx021 exp 0.0000008 -> 1.000001 Inexact Rounded
-expx022 exp 0.0000009 -> 1.000001 Inexact Rounded
-expx023 exp 0.0000010 -> 1.000001 Inexact Rounded
-expx024 exp 0.0000011 -> 1.000001 Inexact Rounded
-expx025 exp 0.00000009 -> 1.000000 Inexact Rounded
-expx026 exp 0.00000005 -> 1.000000 Inexact Rounded
-expx027 exp 0.00000004 -> 1.000000 Inexact Rounded
-expx028 exp 0.00000001 -> 1.000000 Inexact Rounded
-
--- and some more zeros
-expx030 exp 0.00000000 -> 1
-expx031 exp 0E+100 -> 1
-expx032 exp 0E-100 -> 1
-expx033 exp -0.00000000 -> 1
-expx034 exp -0E+100 -> 1
-expx035 exp -0E-100 -> 1
-
--- basic e=0, e=1, e=2, e=4, e>=8 cases
-precision: 7
-expx041 exp 1 -> 2.718282 Inexact Rounded
-expx042 exp -1 -> 0.3678794 Inexact Rounded
-expx043 exp 10 -> 22026.47 Inexact Rounded
-expx044 exp -10 -> 0.00004539993 Inexact Rounded
-expx045 exp 100 -> 2.688117E+43 Inexact Rounded
-expx046 exp -100 -> 3.720076E-44 Inexact Rounded
-expx047 exp 1000 -> Infinity Overflow Inexact Rounded
-expx048 exp -1000 -> 0E-389 Underflow Inexact Rounded Clamped Subnormal
-expx049 exp 100000000 -> Infinity Overflow Inexact Rounded
-expx050 exp -100000000 -> 0E-389 Underflow Inexact Rounded Clamped Subnormal
-
--- miscellanea
--- similar to 'VF bug' test, at 17, but with last digit corrected for decimal
-precision: 16
-expx055 exp -5.42410311287441459172E+2 -> 2.717658486884572E-236 Inexact Rounded
--- result from NetRexx/Java prototype -> 2.7176584868845721117677929628617246054459644711108E-236
--- result from Rexx (series) version -> 2.717658486884572111767792962861724605446E-236
-precision: 17
-expx056 exp -5.42410311287441459172E+2 -> 2.7176584868845721E-236 Inexact Rounded
-precision: 18
-expx057 exp -5.42410311287441459172E+2 -> 2.71765848688457211E-236 Inexact Rounded
-precision: 19
-expx058 exp -5.42410311287441459172E+2 -> 2.717658486884572112E-236 Inexact Rounded
-precision: 20
-expx059 exp -5.42410311287441459172E+2 -> 2.7176584868845721118E-236 Inexact Rounded
-
--- rounding in areas of ..500.., ..499.., ..100.., ..999.. sequences
-precision: 50
-expx101 exp -9E-8 -> 0.99999991000000404999987850000273374995079250073811 Inexact Rounded
-precision: 31
-expx102 exp -9E-8 -> 0.9999999100000040499998785000027 Inexact Rounded
-precision: 30
-expx103 exp -9E-8 -> 0.999999910000004049999878500003 Inexact Rounded
-precision: 29
-expx104 exp -9E-8 -> 0.99999991000000404999987850000 Inexact Rounded
-precision: 28
-expx105 exp -9E-8 -> 0.9999999100000040499998785000 Inexact Rounded
-precision: 27
-expx106 exp -9E-8 -> 0.999999910000004049999878500 Inexact Rounded
-precision: 26
-expx107 exp -9E-8 -> 0.99999991000000404999987850 Inexact Rounded
-precision: 25
-expx108 exp -9E-8 -> 0.9999999100000040499998785 Inexact Rounded
-precision: 24
-expx109 exp -9E-8 -> 0.999999910000004049999879 Inexact Rounded
-precision: 23
-expx110 exp -9E-8 -> 0.99999991000000404999988 Inexact Rounded
-precision: 22
-expx111 exp -9E-8 -> 0.9999999100000040499999 Inexact Rounded
-precision: 21
-expx112 exp -9E-8 -> 0.999999910000004050000 Inexact Rounded
-precision: 20
-expx113 exp -9E-8 -> 0.99999991000000405000 Inexact Rounded
-precision: 19
-expx114 exp -9E-8 -> 0.9999999100000040500 Inexact Rounded
-precision: 18
-expx115 exp -9E-8 -> 0.999999910000004050 Inexact Rounded
-precision: 17
-expx116 exp -9E-8 -> 0.99999991000000405 Inexact Rounded
-precision: 16
-expx117 exp -9E-8 -> 0.9999999100000040 Inexact Rounded
-precision: 15
-expx118 exp -9E-8 -> 0.999999910000004 Inexact Rounded
-precision: 14
-expx119 exp -9E-8 -> 0.99999991000000 Inexact Rounded
-precision: 13
-expx120 exp -9E-8 -> 0.9999999100000 Inexact Rounded
-precision: 12
-expx121 exp -9E-8 -> 0.999999910000 Inexact Rounded
-precision: 11
-expx122 exp -9E-8 -> 0.99999991000 Inexact Rounded
-precision: 10
-expx123 exp -9E-8 -> 0.9999999100 Inexact Rounded
-precision: 9
-expx124 exp -9E-8 -> 0.999999910 Inexact Rounded
-precision: 8
-expx125 exp -9E-8 -> 0.99999991 Inexact Rounded
-precision: 7
-expx126 exp -9E-8 -> 0.9999999 Inexact Rounded
-precision: 6
-expx127 exp -9E-8 -> 1.00000 Inexact Rounded
-precision: 5
-expx128 exp -9E-8 -> 1.0000 Inexact Rounded
-precision: 4
-expx129 exp -9E-8 -> 1.000 Inexact Rounded
-precision: 3
-expx130 exp -9E-8 -> 1.00 Inexact Rounded
-precision: 2
-expx131 exp -9E-8 -> 1.0 Inexact Rounded
-precision: 1
-expx132 exp -9E-8 -> 1 Inexact Rounded
-
-
--- sanity checks, with iteration counts [normalized so 0<=|x|<1]
-precision: 50
-
-expx210 exp 0 -> 1
--- iterations: 2
-expx211 exp -1E-40 -> 0.99999999999999999999999999999999999999990000000000 Inexact Rounded
--- iterations: 8
-expx212 exp -9E-7 -> 0.99999910000040499987850002733749507925073811240510 Inexact Rounded
--- iterations: 6
-expx213 exp -9E-8 -> 0.99999991000000404999987850000273374995079250073811 Inexact Rounded
--- iterations: 15
-expx214 exp -0.003 -> 0.99700449550337297601206623409756091074177480489845 Inexact Rounded
--- iterations: 14
-expx215 exp -0.001 -> 0.99900049983337499166805535716765597470235590236008 Inexact Rounded
--- iterations: 26
-expx216 exp -0.1 -> 0.90483741803595957316424905944643662119470536098040 Inexact Rounded
--- iterations: 39
-expx217 exp -0.7 -> 0.49658530379140951470480009339752896170766716571182 Inexact Rounded
--- iterations: 41
-expx218 exp -0.9 -> 0.40656965974059911188345423964562598783370337617038 Inexact Rounded
--- iterations: 43
-expx219 exp -0.99 -> 0.37157669102204569053152411990820138691802885490501 Inexact Rounded
--- iterations: 26
-expx220 exp -1 -> 0.36787944117144232159552377016146086744581113103177 Inexact Rounded
--- iterations: 26
-expx221 exp -1.01 -> 0.36421897957152331975704629563734548959589139192482 Inexact Rounded
--- iterations: 27
-expx222 exp -1.1 -> 0.33287108369807955328884690643131552161247952156921 Inexact Rounded
--- iterations: 28
-expx223 exp -1.5 -> 0.22313016014842982893328047076401252134217162936108 Inexact Rounded
--- iterations: 30
-expx224 exp -2 -> 0.13533528323661269189399949497248440340763154590958 Inexact Rounded
--- iterations: 36
-expx225 exp -5 -> 0.0067379469990854670966360484231484242488495850273551 Inexact Rounded
--- iterations: 26
-expx226 exp -10 -> 0.000045399929762484851535591515560550610237918088866565 Inexact Rounded
--- iterations: 28
-expx227 exp -14 -> 8.3152871910356788406398514256526229460765836498457E-7 Inexact Rounded
--- iterations: 29
-expx228 exp -15 -> 3.0590232050182578837147949770228963937082078081856E-7 Inexact Rounded
--- iterations: 30
-expx233 exp 0 -> 1
--- iterations: 2
-expx234 exp 1E-40 -> 1.0000000000000000000000000000000000000001000000000 Inexact Rounded
--- iterations: 7
-expx235 exp 9E-7 -> 1.0000009000004050001215000273375049207507381125949 Inexact Rounded
--- iterations: 6
-expx236 exp 9E-8 -> 1.0000000900000040500001215000027337500492075007381 Inexact Rounded
--- iterations: 15
-expx237 exp 0.003 -> 1.0030045045033770260129340913489002053318727195619 Inexact Rounded
--- iterations: 13
-expx238 exp 0.001 -> 1.0010005001667083416680557539930583115630762005807 Inexact Rounded
--- iterations: 25
-expx239 exp 0.1 -> 1.1051709180756476248117078264902466682245471947375 Inexact Rounded
--- iterations: 38
-expx240 exp 0.7 -> 2.0137527074704765216245493885830652700175423941459 Inexact Rounded
--- iterations: 41
-expx241 exp 0.9 -> 2.4596031111569496638001265636024706954217723064401 Inexact Rounded
--- iterations: 42
-expx242 exp 0.99 -> 2.6912344723492622890998794040710139721802931841030 Inexact Rounded
--- iterations: 26
-expx243 exp 1 -> 2.7182818284590452353602874713526624977572470937000 Inexact Rounded
--- iterations: 26
-expx244 exp 1.01 -> 2.7456010150169164939897763166603876240737508195960 Inexact Rounded
--- iterations: 26
-expx245 exp 1.1 -> 3.0041660239464331120584079535886723932826810260163 Inexact Rounded
--- iterations: 28
-expx246 exp 1.5 -> 4.4816890703380648226020554601192758190057498683697 Inexact Rounded
--- iterations: 29
-expx247 exp 2 -> 7.3890560989306502272304274605750078131803155705518 Inexact Rounded
--- iterations: 36
-expx248 exp 5 -> 148.41315910257660342111558004055227962348766759388 Inexact Rounded
--- iterations: 26
-expx249 exp 10 -> 22026.465794806716516957900645284244366353512618557 Inexact Rounded
--- iterations: 28
-expx250 exp 14 -> 1202604.2841647767777492367707678594494124865433761 Inexact Rounded
--- iterations: 28
-expx251 exp 15 -> 3269017.3724721106393018550460917213155057385438200 Inexact Rounded
--- iterations: 29
-
--- a biggie [result verified 3 ways]
-precision: 250
-expx260 exp 1 -> 2.718281828459045235360287471352662497757247093699959574966967627724076630353547594571382178525166427427466391932003059921817413596629043572900334295260595630738132328627943490763233829880753195251019011573834187930702154089149934884167509244761460668 Inexact Rounded
-
--- extreme range boundaries
-precision: 16
-maxExponent: 999999
-minExponent: -999999
--- Ntiny boundary
-expx290 exp -2302618.022332529 -> 0E-1000014 Underflow Subnormal Inexact Rounded Clamped
-expx291 exp -2302618.022332528 -> 1E-1000014 Underflow Subnormal Inexact Rounded
--- Nmax/10 and Nmax boundary
-expx292 exp 2302582.790408952 -> 9.999999993100277E+999998 Inexact Rounded
-expx293 exp 2302582.790408953 -> 1.000000000310028E+999999 Inexact Rounded
-expx294 exp 2302585.092993946 -> 9.999999003159870E+999999 Inexact Rounded
-expx295 exp 2302585.092994036 -> 9.999999903159821E+999999 Inexact Rounded
-expx296 exp 2302585.092994045 -> 9.999999993159820E+999999 Inexact Rounded
-expx297 exp 2302585.092994046 -> Infinity Overflow Inexact Rounded
-
--- 0<-x<<1 effects
-precision: 30
-expx320 exp -4.9999999999999E-8 -> 0.999999950000001250000979166617 Inexact Rounded
-expx321 exp -5.0000000000000E-8 -> 0.999999950000001249999979166667 Inexact Rounded
-expx322 exp -5.0000000000001E-8 -> 0.999999950000001249998979166717 Inexact Rounded
-precision: 20
-expx323 exp -4.9999999999999E-8 -> 0.99999995000000125000 Inexact Rounded
-expx324 exp -5.0000000000000E-8 -> 0.99999995000000125000 Inexact Rounded
-expx325 exp -5.0000000000001E-8 -> 0.99999995000000125000 Inexact Rounded
-precision: 14
-expx326 exp -4.9999999999999E-8 -> 0.99999995000000 Inexact Rounded
-expx327 exp -5.0000000000000E-8 -> 0.99999995000000 Inexact Rounded
-expx328 exp -5.0000000000001E-8 -> 0.99999995000000 Inexact Rounded
--- overprecise and 0<-x<<1
-precision: 8
-expx330 exp -4.9999999999999E-8 -> 0.99999995 Inexact Rounded
-expx331 exp -5.0000000000000E-8 -> 0.99999995 Inexact Rounded
-expx332 exp -5.0000000000001E-8 -> 0.99999995 Inexact Rounded
-precision: 7
-expx333 exp -4.9999999999999E-8 -> 1.000000 Inexact Rounded
-expx334 exp -5.0000000000000E-8 -> 1.000000 Inexact Rounded
-expx335 exp -5.0000000000001E-8 -> 1.000000 Inexact Rounded
-precision: 3
-expx336 exp -4.9999999999999E-8 -> 1.00 Inexact Rounded
-expx337 exp -5.0000000000000E-8 -> 1.00 Inexact Rounded
-expx338 exp -5.0000000000001E-8 -> 1.00 Inexact Rounded
-
--- 0<x<<1 effects
-precision: 30
-expx340 exp 4.9999999999999E-8 -> 1.00000005000000124999902083328 Inexact Rounded
-expx341 exp 5.0000000000000E-8 -> 1.00000005000000125000002083333 Inexact Rounded
-expx342 exp 5.0000000000001E-8 -> 1.00000005000000125000102083338 Inexact Rounded
-precision: 20
-expx343 exp 4.9999999999999E-8 -> 1.0000000500000012500 Inexact Rounded
-expx344 exp 5.0000000000000E-8 -> 1.0000000500000012500 Inexact Rounded
-expx345 exp 5.0000000000001E-8 -> 1.0000000500000012500 Inexact Rounded
-precision: 14
-expx346 exp 4.9999999999999E-8 -> 1.0000000500000 Inexact Rounded
-expx347 exp 5.0000000000000E-8 -> 1.0000000500000 Inexact Rounded
-expx348 exp 5.0000000000001E-8 -> 1.0000000500000 Inexact Rounded
--- overprecise and 0<x<<1
-precision: 8
-expx350 exp 4.9999999999999E-8 -> 1.0000001 Inexact Rounded
-expx351 exp 5.0000000000000E-8 -> 1.0000001 Inexact Rounded
-expx352 exp 5.0000000000001E-8 -> 1.0000001 Inexact Rounded
-precision: 7
-expx353 exp 4.9999999999999E-8 -> 1.000000 Inexact Rounded
-expx354 exp 5.0000000000000E-8 -> 1.000000 Inexact Rounded
-expx355 exp 5.0000000000001E-8 -> 1.000000 Inexact Rounded
-precision: 3
-expx356 exp 4.9999999999999E-8 -> 1.00 Inexact Rounded
-expx357 exp 5.0000000000000E-8 -> 1.00 Inexact Rounded
-expx358 exp 5.0000000000001E-8 -> 1.00 Inexact Rounded
-
--- cases near 1 -- 1 2345678901234567890
-precision: 20
-expx401 exp 0.99999999999996 -> 2.7182818284589365041 Inexact Rounded
-expx402 exp 0.99999999999997 -> 2.7182818284589636869 Inexact Rounded
-expx403 exp 0.99999999999998 -> 2.7182818284589908697 Inexact Rounded
-expx404 exp 0.99999999999999 -> 2.7182818284590180525 Inexact Rounded
-expx405 exp 1.0000000000000 -> 2.7182818284590452354 Inexact Rounded
-expx406 exp 1.0000000000001 -> 2.7182818284593170635 Inexact Rounded
-expx407 exp 1.0000000000002 -> 2.7182818284595888917 Inexact Rounded
-precision: 14
-expx411 exp 0.99999999999996 -> 2.7182818284589 Inexact Rounded
-expx412 exp 0.99999999999997 -> 2.7182818284590 Inexact Rounded
-expx413 exp 0.99999999999998 -> 2.7182818284590 Inexact Rounded
-expx414 exp 0.99999999999999 -> 2.7182818284590 Inexact Rounded
-expx415 exp 1.0000000000000 -> 2.7182818284590 Inexact Rounded
-expx416 exp 1.0000000000001 -> 2.7182818284593 Inexact Rounded
-expx417 exp 1.0000000000002 -> 2.7182818284596 Inexact Rounded
--- overprecise...
-precision: 7
-expx421 exp 0.99999999999996 -> 2.718282 Inexact Rounded
-expx422 exp 0.99999999999997 -> 2.718282 Inexact Rounded
-expx423 exp 0.99999999999998 -> 2.718282 Inexact Rounded
-expx424 exp 0.99999999999999 -> 2.718282 Inexact Rounded
-expx425 exp 1.0000000000001 -> 2.718282 Inexact Rounded
-expx426 exp 1.0000000000002 -> 2.718282 Inexact Rounded
-expx427 exp 1.0000000000003 -> 2.718282 Inexact Rounded
-precision: 2
-expx431 exp 0.99999999999996 -> 2.7 Inexact Rounded
-expx432 exp 0.99999999999997 -> 2.7 Inexact Rounded
-expx433 exp 0.99999999999998 -> 2.7 Inexact Rounded
-expx434 exp 0.99999999999999 -> 2.7 Inexact Rounded
-expx435 exp 1.0000000000001 -> 2.7 Inexact Rounded
-expx436 exp 1.0000000000002 -> 2.7 Inexact Rounded
-expx437 exp 1.0000000000003 -> 2.7 Inexact Rounded
-
--- basics at low precisions
-precision: 3
-expx501 exp -Infinity -> 0
-expx502 exp -10 -> 0.0000454 Inexact Rounded
-expx503 exp -1 -> 0.368 Inexact Rounded
-expx504 exp 0 -> 1
-expx505 exp -0 -> 1
-expx506 exp 1 -> 2.72 Inexact Rounded
-expx507 exp 0.693147181 -> 2.00 Inexact Rounded
-expx508 exp 10 -> 2.20E+4 Inexact Rounded
-expx509 exp +Infinity -> Infinity
-precision: 2
-expx511 exp -Infinity -> 0
-expx512 exp -10 -> 0.000045 Inexact Rounded
-expx513 exp -1 -> 0.37 Inexact Rounded
-expx514 exp 0 -> 1
-expx515 exp -0 -> 1
-expx516 exp 1 -> 2.7 Inexact Rounded
-expx517 exp 0.693147181 -> 2.0 Inexact Rounded
-expx518 exp 10 -> 2.2E+4 Inexact Rounded
-expx519 exp +Infinity -> Infinity
-precision: 1
-expx521 exp -Infinity -> 0
-expx522 exp -10 -> 0.00005 Inexact Rounded
-expx523 exp -1 -> 0.4 Inexact Rounded
-expx524 exp 0 -> 1
-expx525 exp -0 -> 1
-expx526 exp 1 -> 3 Inexact Rounded
-expx527 exp 0.693147181 -> 2 Inexact Rounded
-expx528 exp 10 -> 2E+4 Inexact Rounded
-expx529 exp +Infinity -> Infinity
-
--- overflows, including some overprecise borderlines
-precision: 7
-maxExponent: 384
-minExponent: -383
-expx701 exp 1000000000 -> Infinity Overflow Inexact Rounded
-expx702 exp 100000000 -> Infinity Overflow Inexact Rounded
-expx703 exp 10000000 -> Infinity Overflow Inexact Rounded
-expx704 exp 1000000 -> Infinity Overflow Inexact Rounded
-expx705 exp 100000 -> Infinity Overflow Inexact Rounded
-expx706 exp 10000 -> Infinity Overflow Inexact Rounded
-expx707 exp 1000 -> Infinity Overflow Inexact Rounded
-expx708 exp 886.4952608 -> Infinity Overflow Inexact Rounded
-expx709 exp 886.4952607 -> 9.999999E+384 Inexact Rounded
-expx710 exp 886.49527 -> Infinity Overflow Inexact Rounded
-expx711 exp 886.49526 -> 9.999992E+384 Inexact Rounded
-precision: 16
-expx721 exp 886.4952608027075883 -> Infinity Overflow Inexact Rounded
-expx722 exp 886.4952608027075882 -> 9.999999999999999E+384 Inexact Rounded
-expx723 exp 886.49526080270759 -> Infinity Overflow Inexact Rounded
-expx724 exp 886.49526080270758 -> 9.999999999999917E+384 Inexact Rounded
-expx725 exp 886.4952608027076 -> Infinity Overflow Inexact Rounded
-expx726 exp 886.4952608027075 -> 9.999999999999117E+384 Inexact Rounded
--- and by special request ...
-precision: 15
-expx731 exp 886.495260802708 -> Infinity Overflow Inexact Rounded
-expx732 exp 886.495260802707 -> 9.99999999999412E+384 Inexact Rounded
-expx733 exp 886.495260802706 -> 9.99999999998412E+384 Inexact Rounded
-maxExponent: 999
-minExponent: -999
-expx735 exp 2302.58509299405 -> Infinity Overflow Inexact Rounded
-expx736 exp 2302.58509299404 -> 9.99999999994316E+999 Inexact Rounded
-expx737 exp 2302.58509299403 -> 9.99999999984316E+999 Inexact Rounded
-
--- subnormals and underflows, including underflow-to-zero edge point
-precision: 7
-maxExponent: 384
-minExponent: -383
-expx751 exp -1000000000 -> 0E-389 Underflow Inexact Rounded Clamped Subnormal
-expx752 exp -100000000 -> 0E-389 Underflow Inexact Rounded Clamped Subnormal
-expx753 exp -10000000 -> 0E-389 Underflow Inexact Rounded Clamped Subnormal
-expx754 exp -1000000 -> 0E-389 Underflow Inexact Rounded Clamped Subnormal
-expx755 exp -100000 -> 0E-389 Underflow Inexact Rounded Clamped Subnormal
-expx756 exp -10000 -> 0E-389 Underflow Inexact Rounded Clamped Subnormal
-expx757 exp -1000 -> 0E-389 Underflow Inexact Rounded Clamped Subnormal
-expx758 exp -881.89009 -> 1.000001E-383 Inexact Rounded
-expx759 exp -881.8901 -> 9.99991E-384 Inexact Rounded Underflow Subnormal
-expx760 exp -885 -> 4.4605E-385 Inexact Rounded Underflow Subnormal
-expx761 exp -888 -> 2.221E-386 Inexact Rounded Underflow Subnormal
-expx762 exp -890 -> 3.01E-387 Inexact Rounded Underflow Subnormal
-expx763 exp -892.9 -> 1.7E-388 Inexact Rounded Underflow Subnormal
-expx764 exp -893 -> 1.5E-388 Inexact Rounded Underflow Subnormal
-expx765 exp -893.5 -> 9E-389 Inexact Rounded Underflow Subnormal
-expx766 exp -895.7056 -> 1E-389 Inexact Rounded Underflow Subnormal
-expx769 exp -895.8 -> 1E-389 Inexact Rounded Underflow Subnormal
-expx770 exp -895.73 -> 1E-389 Inexact Rounded Underflow Subnormal
-expx771 exp -896.3987 -> 1E-389 Inexact Rounded Underflow Subnormal
-expx772 exp -896.3988 -> 0E-389 Inexact Rounded Underflow Subnormal Clamped
-expx773 exp -898.0081 -> 0E-389 Inexact Rounded Underflow Subnormal Clamped
-expx774 exp -898.0082 -> 0E-389 Inexact Rounded Underflow Subnormal Clamped
-
--- special values
-maxexponent: 999
-minexponent: -999
-expx820 exp Inf -> Infinity
-expx821 exp -Inf -> 0
-expx822 exp NaN -> NaN
-expx823 exp sNaN -> NaN Invalid_operation
--- propagating NaNs
-expx824 exp sNaN123 -> NaN123 Invalid_operation
-expx825 exp -sNaN321 -> -NaN321 Invalid_operation
-expx826 exp NaN456 -> NaN456
-expx827 exp -NaN654 -> -NaN654
-expx828 exp NaN1 -> NaN1
-
--- Invalid operations due to restrictions
--- [next two probably skipped by most test harnesses]
-precision: 100000000
-expx901 exp -Infinity -> NaN Invalid_context
-precision: 99999999
-expx902 exp -Infinity -> NaN Invalid_context
-
-precision: 9
-maxExponent: 1000000
-minExponent: -999999
-expx903 exp -Infinity -> NaN Invalid_context
-maxExponent: 999999
-minExponent: -999999
-expx904 exp -Infinity -> 0
-maxExponent: 999999
-minExponent: -1000000
-expx905 exp -Infinity -> NaN Invalid_context
-maxExponent: 999999
-minExponent: -999998
-expx906 exp -Infinity -> 0
-
---
-maxExponent: 384
-minExponent: -383
-precision: 16
-rounding: half_even
-
--- Null test
-expx900 exp # -> NaN Invalid_operation
-
-
--- Randoms P=50, within 0-999
-Precision: 50
-maxExponent: 384
-minExponent: -383
-expx1501 exp 656.35397950590285612266095596539934213943872885728 -> 1.1243757610640319783611178528839652672062820040314E+285 Inexact Rounded
-expx1502 exp 0.93620571093652800225038550600780322831236082781471 -> 2.5502865130986176689199711857825771311178046842009 Inexact Rounded
-expx1503 exp 0.00000000000000008340785856601514714183373874105791 -> 1.0000000000000000834078585660151506202691740252512 Inexact Rounded
-expx1504 exp 0.00009174057262887789625745574686545163168788456203 -> 1.0000917447809239005146722341251524081006051473273 Inexact Rounded
-expx1505 exp 33.909116897973797735657751591014926629051117541243 -> 532773181025002.03543618901306726495870476617232229 Inexact Rounded
-expx1506 exp 0.00000740470413004406592124575295278456936809587311 -> 1.0000074047315449333590066395670306135567889210814 Inexact Rounded
-expx1507 exp 0.00000000000124854922222108802453746922483071445492 -> 1.0000000000012485492222218674621176239911424968263 Inexact Rounded
-expx1508 exp 4.1793280674155659794286951159430651258356014391382 -> 65.321946520147199404199787811336860087975118278185 Inexact Rounded
-expx1509 exp 485.43595745460655893746179890255529919221550201686 -> 6.6398403920459617255950476953129377459845366585463E+210 Inexact Rounded
-expx1510 exp 0.00000000003547259806590856032527875157830328156597 -> 1.0000000000354725980665377129320589406715000685515 Inexact Rounded
-expx1511 exp 0.00000000000000759621497339104047930616478635042678 -> 1.0000000000000075962149733910693305471257715463887 Inexact Rounded
-expx1512 exp 9.7959168821760339304571595474480640286072720233796 -> 17960.261146042955179164303653412650751681436352437 Inexact Rounded
-expx1513 exp 0.00000000566642006258290526783901451194943164535581 -> 1.0000000056664200786370634609832438815665249347650 Inexact Rounded
-expx1514 exp 741.29888791134298194088827572374718940925820027354 -> 8.7501694006317332808128946666402622432064923198731E+321 Inexact Rounded
-expx1515 exp 032.75573003552517668808529099897153710887014947935 -> 168125196578678.17725841108617955904425345631092339 Inexact Rounded
-expx1516 exp 42.333700726429333308594265553422902463737399437644 -> 2428245675864172475.4681119493045657797309369672012 Inexact Rounded
-expx1517 exp 0.00000000000000559682616876491888197609158802835798 -> 1.0000000000000055968261687649345442076732739577049 Inexact Rounded
-expx1518 exp 0.00000000000080703688668280193584758300973549486312 -> 1.0000000000008070368866831275901158164321867914342 Inexact Rounded
-expx1519 exp 640.72396012796509482382712891709072570653606838251 -> 1.8318094990683394229304133068983914236995326891045E+278 Inexact Rounded
-expx1520 exp 0.00000000000000509458922167631071416948112219512224 -> 1.0000000000000050945892216763236915891499324358556 Inexact Rounded
-expx1521 exp 6.7670394314315206378625221583973414660727960241395 -> 868.73613012822031367806248697092884415119568271315 Inexact Rounded
-expx1522 exp 04.823217407412963506638267226891024138054783122548 -> 124.36457929588837129731821077586705505565904205366 Inexact Rounded
-expx1523 exp 193.51307878701196403991208482520115359690106143615 -> 1.1006830872854715677390914655452261550768957576034E+84 Inexact Rounded
-expx1524 exp 5.7307749038303650539200345901210497015617393970463 -> 308.20800743106843083522721523715645950574866495196 Inexact Rounded
-expx1525 exp 0.00000000000095217825199797965200541169123743500267 -> 1.0000000000009521782519984329737172007991390381273 Inexact Rounded
-expx1526 exp 0.00027131440949183370966393682617930153495028919140 -> 1.0002713512185751022906058160480606598754913607364 Inexact Rounded
-expx1527 exp 0.00000000064503059114680682343002315662069272707123 -> 1.0000000006450305913548390552323517403613135496633 Inexact Rounded
-expx1528 exp 0.00000000000000095616643506527288866235238548440593 -> 1.0000000000000009561664350652733457894781582009094 Inexact Rounded
-expx1529 exp 0.00000000000000086449942811678650244459550252743433 -> 1.0000000000000008644994281167868761242261096529986 Inexact Rounded
-expx1530 exp 0.06223488355635359965683053157729204988381887621850 -> 1.0642122813392406657789688931838919323826250630831 Inexact Rounded
-expx1531 exp 0.00000400710807804429435502657131912308680674057053 -> 1.0000040071161065125925620890019319832127863559260 Inexact Rounded
-expx1532 exp 85.522796894744576211573232055494551429297878413017 -> 13870073686404228452757799770251085177.853337368935 Inexact Rounded
-expx1533 exp 9.1496720811363678696938036379756663548353399954363 -> 9411.3537122832743386783597629161763057370034495157 Inexact Rounded
-expx1534 exp 8.2215705240788294472944382056330516738577785177942 -> 3720.3406813383076953899654701615084425598377758189 Inexact Rounded
-expx1535 exp 0.00000000015772064569640613142823203726821076239561 -> 1.0000000001577206457088440324683315788358926129830 Inexact Rounded
-expx1536 exp 0.58179346473959531432624153576883440625538017532480 -> 1.7892445018275360163797022372655837188423194863605 Inexact Rounded
-expx1537 exp 33.555726197149525061455517784870570470833498096559 -> 374168069896324.62578073148993526626307095854407952 Inexact Rounded
-expx1538 exp 9.7898079803906215094140010009583375537259810398659 -> 17850.878119912208888217100998019986634620368538426 Inexact Rounded
-expx1539 exp 89.157697327174521542502447953032536541038636966347 -> 525649152320166503771224149330448089550.67293829227 Inexact Rounded
-expx1540 exp 25.022947600123328912029051897171319573322888514885 -> 73676343442.952517824345431437683153304645851960524 Inexact Rounded
-
--- exp(1) at 34
-Precision: 34
-expx1200 exp 1 -> 2.718281828459045235360287471352662 Inexact Rounded
-
--- Randoms P=34, within 0-999
-Precision: 34
-maxExponent: 6144
-minExponent: -6143
-expx1201 exp 309.5948855821510212996700645087188 -> 2.853319692901387521201738015050724E+134 Inexact Rounded
-expx1202 exp 9.936543068706211420422803962680164 -> 20672.15839203171877476511093276022 Inexact Rounded
-expx1203 exp 6.307870323881505684429839491707908 -> 548.8747777054637296137277391754665 Inexact Rounded
-expx1204 exp 0.0003543281389438420535201308282503 -> 1.000354390920573746164733350843155 Inexact Rounded
-expx1205 exp 0.0000037087453363918375598394920229 -> 1.000003708752213796324841920189323 Inexact Rounded
-expx1206 exp 0.0020432312687512438040222444116585 -> 1.002045320088164826013561630975308 Inexact Rounded
-expx1207 exp 6.856313340032177672550343216129586 -> 949.8587981604144147983589660524396 Inexact Rounded
-expx1208 exp 0.0000000000402094928333815643326418 -> 1.000000000040209492834189965989612 Inexact Rounded
-expx1209 exp 0.0049610784722412117632647003545839 -> 1.004973404997901987039589029277833 Inexact Rounded
-expx1210 exp 0.0000891471883724066909746786702686 -> 1.000089151162101085412780088266699 Inexact Rounded
-expx1211 exp 08.59979170376061890684723211112566 -> 5430.528314920905714615339273738097 Inexact Rounded
-expx1212 exp 9.473117039341003854872778112752590 -> 13005.36234331224953460055897913917 Inexact Rounded
-expx1213 exp 0.0999060724692207648429969999310118 -> 1.105067116975190602296052700726802 Inexact Rounded
-expx1214 exp 0.0000000927804533555877884082269247 -> 1.000000092780457659694183954740772 Inexact Rounded
-expx1215 exp 0.0376578583872889916298772818265677 -> 1.038375900489771946477857818447556 Inexact Rounded
-expx1216 exp 261.6896411697539524911536116712307 -> 4.470613562127465095241600174941460E+113 Inexact Rounded
-expx1217 exp 0.0709997423269162980875824213889626 -> 1.073580949235407949417814485533172 Inexact Rounded
-expx1218 exp 0.0000000444605583295169895235658731 -> 1.000000044460559317887627657593900 Inexact Rounded
-expx1219 exp 0.0000021224072854777512281369815185 -> 1.000002122409537785687390631070906 Inexact Rounded
-expx1220 exp 547.5174462574156885473558485475052 -> 6.078629247383807942612114579728672E+237 Inexact Rounded
-expx1221 exp 0.0000009067598041615192002339844670 -> 1.000000906760215268314680115374387 Inexact Rounded
-expx1222 exp 0.0316476500308065365803455533244603 -> 1.032153761880187977658387961769034 Inexact Rounded
-expx1223 exp 84.46160530377645101833996706384473 -> 4.799644995897968383503269871697856E+36 Inexact Rounded
-expx1224 exp 0.0000000000520599740290848018904145 -> 1.000000000052059974030439922338393 Inexact Rounded
-expx1225 exp 0.0000006748530640093620665651726708 -> 1.000000674853291722742292331812997 Inexact Rounded
-expx1226 exp 0.0000000116853119761042020507916169 -> 1.000000011685312044377460306165203 Inexact Rounded
-expx1227 exp 0.0022593818094258636727616886693280 -> 1.002261936135876893707094845543461 Inexact Rounded
-expx1228 exp 0.0029398857673478912249856509667517 -> 1.002944211469495086813087651287012 Inexact Rounded
-expx1229 exp 0.7511480029928802775376270557636963 -> 2.119431734510320169806976569366789 Inexact Rounded
-expx1230 exp 174.9431952176750671150886423048447 -> 9.481222305374955011464619468044051E+75 Inexact Rounded
-expx1231 exp 0.0000810612451694136129199895164424 -> 1.000081064530720924186615149646920 Inexact Rounded
-expx1232 exp 51.06888989702669288180946272499035 -> 15098613888619165073959.89896018749 Inexact Rounded
-expx1233 exp 0.0000000005992887599437093651494510 -> 1.000000000599288760123282874082758 Inexact Rounded
-expx1234 exp 714.8549046761054856311108828903972 -> 2.867744544891081117381595080480784E+310 Inexact Rounded
-expx1235 exp 0.0000000004468247802990643645607110 -> 1.000000000446824780398890556720233 Inexact Rounded
-expx1236 exp 831.5818151589890366323551672043709 -> 1.417077409182624969435938062261655E+361 Inexact Rounded
-expx1237 exp 0.0000000006868323825179605747108044 -> 1.000000000686832382753829935602454 Inexact Rounded
-expx1238 exp 0.0000001306740266408976840228440255 -> 1.000000130674035178748675187648098 Inexact Rounded
-expx1239 exp 0.3182210609022267704811502412335163 -> 1.374680115667798185758927247894859 Inexact Rounded
-expx1240 exp 0.0147741234179104437440264644295501 -> 1.014883800239950682628277534839222 Inexact Rounded
-
--- Randoms P=16, within 0-99
-Precision: 16
-maxExponent: 384
-minExponent: -383
-expx1101 exp 8.473011527013724 -> 4783.900643969246 Inexact Rounded
-expx1102 exp 0.0000055753022764 -> 1.000005575317818 Inexact Rounded
-expx1103 exp 0.0000323474114482 -> 1.000032347934631 Inexact Rounded
-expx1104 exp 64.54374138544166 -> 1.073966476173531E+28 Inexact Rounded
-expx1105 exp 90.47203246416569 -> 1.956610887250643E+39 Inexact Rounded
-expx1106 exp 9.299931532342757 -> 10937.27033325227 Inexact Rounded
-expx1107 exp 8.759678437852203 -> 6372.062234495381 Inexact Rounded
-expx1108 exp 0.0000931755127172 -> 1.000093179853690 Inexact Rounded
-expx1109 exp 0.0000028101158373 -> 1.000002810119786 Inexact Rounded
-expx1110 exp 0.0000008008130919 -> 1.000000800813413 Inexact Rounded
-expx1111 exp 8.339771722299049 -> 4187.133803081878 Inexact Rounded
-expx1112 exp 0.0026140497995474 -> 1.002617469406750 Inexact Rounded
-expx1113 exp 0.7478033356261771 -> 2.112354781975418 Inexact Rounded
-expx1114 exp 51.77663761827966 -> 3.064135801120365E+22 Inexact Rounded
-expx1115 exp 0.1524989783061012 -> 1.164741272084955 Inexact Rounded
-expx1116 exp 0.0066298798669219 -> 1.006651906170791 Inexact Rounded
-expx1117 exp 9.955141865534960 -> 21060.23334287038 Inexact Rounded
-expx1118 exp 92.34503059198483 -> 1.273318993481226E+40 Inexact Rounded
-expx1119 exp 0.0000709388677346 -> 1.000070941383956 Inexact Rounded
-expx1120 exp 79.12883036433204 -> 2.318538899389243E+34 Inexact Rounded
-expx1121 exp 0.0000090881548873 -> 1.000009088196185 Inexact Rounded
-expx1122 exp 0.0424828809603411 -> 1.043398194245720 Inexact Rounded
-expx1123 exp 0.8009035891427416 -> 2.227552811933310 Inexact Rounded
-expx1124 exp 8.825786167283102 -> 6807.540455289995 Inexact Rounded
-expx1125 exp 1.535457249746275 -> 4.643448260146849 Inexact Rounded
-expx1126 exp 69.02254254355800 -> 9.464754500670653E+29 Inexact Rounded
-expx1127 exp 0.0007050554368713 -> 1.000705304046880 Inexact Rounded
-expx1128 exp 0.0000081206549504 -> 1.000008120687923 Inexact Rounded
-expx1129 exp 0.621774854641137 -> 1.862230298554903 Inexact Rounded
-expx1130 exp 3.847629031404354 -> 46.88177613568203 Inexact Rounded
-expx1131 exp 24.81250184697732 -> 59694268456.19966 Inexact Rounded
-expx1132 exp 5.107546500516044 -> 165.2643809755670 Inexact Rounded
-expx1133 exp 79.17810943951986 -> 2.435656372541360E+34 Inexact Rounded
-expx1134 exp 0.0051394695667015 -> 1.005152699295301 Inexact Rounded
-expx1135 exp 57.44504488501725 -> 8.872908566929688E+24 Inexact Rounded
-expx1136 exp 0.0000508388968036 -> 1.000050840189122 Inexact Rounded
-expx1137 exp 69.71309932148997 -> 1.888053740693541E+30 Inexact Rounded
-expx1138 exp 0.0064183412981502 -> 1.006438982988835 Inexact Rounded
-expx1139 exp 9.346991220814677 -> 11464.27802035082 Inexact Rounded
-expx1140 exp 33.09087139999152 -> 235062229168763.5 Inexact Rounded
-
--- Randoms P=7, within 0-9
-Precision: 7
-maxExponent: 96
-minExponent: -95
-expx1001 exp 2.395441 -> 10.97304 Inexact Rounded
-expx1002 exp 0.6406779 -> 1.897767 Inexact Rounded
-expx1003 exp 0.5618218 -> 1.753865 Inexact Rounded
-expx1004 exp 3.055120 -> 21.22373 Inexact Rounded
-expx1005 exp 1.536792 -> 4.649650 Inexact Rounded
-expx1006 exp 0.0801591 -> 1.083459 Inexact Rounded
-expx1007 exp 0.0966875 -> 1.101516 Inexact Rounded
-expx1008 exp 0.0646761 -> 1.066813 Inexact Rounded
-expx1009 exp 0.0095670 -> 1.009613 Inexact Rounded
-expx1010 exp 2.956859 -> 19.23745 Inexact Rounded
-expx1011 exp 7.504679 -> 1816.522 Inexact Rounded
-expx1012 exp 0.0045259 -> 1.004536 Inexact Rounded
-expx1013 exp 3.810071 -> 45.15364 Inexact Rounded
-expx1014 exp 1.502390 -> 4.492413 Inexact Rounded
-expx1015 exp 0.0321523 -> 1.032675 Inexact Rounded
-expx1016 exp 0.0057214 -> 1.005738 Inexact Rounded
-expx1017 exp 9.811445 -> 18241.33 Inexact Rounded
-expx1018 exp 3.245249 -> 25.66810 Inexact Rounded
-expx1019 exp 0.3189742 -> 1.375716 Inexact Rounded
-expx1020 exp 0.8621610 -> 2.368273 Inexact Rounded
-expx1021 exp 0.0122511 -> 1.012326 Inexact Rounded
-expx1022 exp 2.202088 -> 9.043877 Inexact Rounded
-expx1023 exp 8.778203 -> 6491.202 Inexact Rounded
-expx1024 exp 0.1896279 -> 1.208800 Inexact Rounded
-expx1025 exp 0.4510947 -> 1.570030 Inexact Rounded
-expx1026 exp 0.276413 -> 1.318392 Inexact Rounded
-expx1027 exp 4.490067 -> 89.12742 Inexact Rounded
-expx1028 exp 0.0439786 -> 1.044960 Inexact Rounded
-expx1029 exp 0.8168245 -> 2.263301 Inexact Rounded
-expx1030 exp 0.0391658 -> 1.039943 Inexact Rounded
-expx1031 exp 9.261816 -> 10528.24 Inexact Rounded
-expx1032 exp 9.611186 -> 14930.87 Inexact Rounded
-expx1033 exp 9.118125 -> 9119.087 Inexact Rounded
-expx1034 exp 9.469083 -> 12953.00 Inexact Rounded
-expx1035 exp 0.0499983 -> 1.051269 Inexact Rounded
-expx1036 exp 0.0050746 -> 1.005087 Inexact Rounded
-expx1037 exp 0.0014696 -> 1.001471 Inexact Rounded
-expx1038 exp 9.138494 -> 9306.739 Inexact Rounded
-expx1039 exp 0.0065436 -> 1.006565 Inexact Rounded
-expx1040 exp 0.7284803 -> 2.071930 Inexact Rounded
-
+------------------------------------------------------------------------ +-- exp.decTest -- decimal natural exponentiation -- +-- Copyright (c) IBM Corporation, 2005, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- Tests of the exponential funtion. Currently all testcases here +-- show results which are correctly rounded (within <= 0.5 ulp). + +extended: 1 +precision: 9 +rounding: half_even +maxExponent: 384 +minexponent: -383 + +-- basics (examples in specificiation, etc.) +expx001 exp -Infinity -> 0 +expx002 exp -10 -> 0.0000453999298 Inexact Rounded +expx003 exp -1 -> 0.367879441 Inexact Rounded +expx004 exp 0 -> 1 +expx005 exp -0 -> 1 +expx006 exp 1 -> 2.71828183 Inexact Rounded +expx007 exp 0.693147181 -> 2.00000000 Inexact Rounded +expx008 exp 10 -> 22026.4658 Inexact Rounded +expx009 exp +Infinity -> Infinity + +-- tiny edge cases +precision: 7 +expx011 exp 0.1 -> 1.105171 Inexact Rounded +expx012 exp 0.01 -> 1.010050 Inexact Rounded +expx013 exp 0.001 -> 1.001001 Inexact Rounded +expx014 exp 0.0001 -> 1.000100 Inexact Rounded +expx015 exp 0.00001 -> 1.000010 Inexact Rounded +expx016 exp 0.000001 -> 1.000001 Inexact Rounded +expx017 exp 0.0000001 -> 1.000000 Inexact Rounded +expx018 exp 0.0000003 -> 1.000000 Inexact Rounded +expx019 exp 0.0000004 -> 1.000000 Inexact Rounded +expx020 exp 0.0000005 -> 1.000001 Inexact Rounded +expx021 exp 0.0000008 -> 1.000001 Inexact Rounded +expx022 exp 0.0000009 -> 1.000001 Inexact Rounded +expx023 exp 0.0000010 -> 1.000001 Inexact Rounded +expx024 exp 0.0000011 -> 1.000001 Inexact Rounded +expx025 exp 0.00000009 -> 1.000000 Inexact Rounded +expx026 exp 0.00000005 -> 1.000000 Inexact Rounded +expx027 exp 0.00000004 -> 1.000000 Inexact Rounded +expx028 exp 0.00000001 -> 1.000000 Inexact Rounded + +-- and some more zeros +expx030 exp 0.00000000 -> 1 +expx031 exp 0E+100 -> 1 +expx032 exp 0E-100 -> 1 +expx033 exp -0.00000000 -> 1 +expx034 exp -0E+100 -> 1 +expx035 exp -0E-100 -> 1 + +-- basic e=0, e=1, e=2, e=4, e>=8 cases +precision: 7 +expx041 exp 1 -> 2.718282 Inexact Rounded +expx042 exp -1 -> 0.3678794 Inexact Rounded +expx043 exp 10 -> 22026.47 Inexact Rounded +expx044 exp -10 -> 0.00004539993 Inexact Rounded +expx045 exp 100 -> 2.688117E+43 Inexact Rounded +expx046 exp -100 -> 3.720076E-44 Inexact Rounded +expx047 exp 1000 -> Infinity Overflow Inexact Rounded +expx048 exp -1000 -> 0E-389 Underflow Inexact Rounded Clamped Subnormal +expx049 exp 100000000 -> Infinity Overflow Inexact Rounded +expx050 exp -100000000 -> 0E-389 Underflow Inexact Rounded Clamped Subnormal + +-- miscellanea +-- similar to 'VF bug' test, at 17, but with last digit corrected for decimal +precision: 16 +expx055 exp -5.42410311287441459172E+2 -> 2.717658486884572E-236 Inexact Rounded +-- result from NetRexx/Java prototype -> 2.7176584868845721117677929628617246054459644711108E-236 +-- result from Rexx (series) version -> 2.717658486884572111767792962861724605446E-236 +precision: 17 +expx056 exp -5.42410311287441459172E+2 -> 2.7176584868845721E-236 Inexact Rounded +precision: 18 +expx057 exp -5.42410311287441459172E+2 -> 2.71765848688457211E-236 Inexact Rounded +precision: 19 +expx058 exp -5.42410311287441459172E+2 -> 2.717658486884572112E-236 Inexact Rounded +precision: 20 +expx059 exp -5.42410311287441459172E+2 -> 2.7176584868845721118E-236 Inexact Rounded + +-- rounding in areas of ..500.., ..499.., ..100.., ..999.. sequences +precision: 50 +expx101 exp -9E-8 -> 0.99999991000000404999987850000273374995079250073811 Inexact Rounded +precision: 31 +expx102 exp -9E-8 -> 0.9999999100000040499998785000027 Inexact Rounded +precision: 30 +expx103 exp -9E-8 -> 0.999999910000004049999878500003 Inexact Rounded +precision: 29 +expx104 exp -9E-8 -> 0.99999991000000404999987850000 Inexact Rounded +precision: 28 +expx105 exp -9E-8 -> 0.9999999100000040499998785000 Inexact Rounded +precision: 27 +expx106 exp -9E-8 -> 0.999999910000004049999878500 Inexact Rounded +precision: 26 +expx107 exp -9E-8 -> 0.99999991000000404999987850 Inexact Rounded +precision: 25 +expx108 exp -9E-8 -> 0.9999999100000040499998785 Inexact Rounded +precision: 24 +expx109 exp -9E-8 -> 0.999999910000004049999879 Inexact Rounded +precision: 23 +expx110 exp -9E-8 -> 0.99999991000000404999988 Inexact Rounded +precision: 22 +expx111 exp -9E-8 -> 0.9999999100000040499999 Inexact Rounded +precision: 21 +expx112 exp -9E-8 -> 0.999999910000004050000 Inexact Rounded +precision: 20 +expx113 exp -9E-8 -> 0.99999991000000405000 Inexact Rounded +precision: 19 +expx114 exp -9E-8 -> 0.9999999100000040500 Inexact Rounded +precision: 18 +expx115 exp -9E-8 -> 0.999999910000004050 Inexact Rounded +precision: 17 +expx116 exp -9E-8 -> 0.99999991000000405 Inexact Rounded +precision: 16 +expx117 exp -9E-8 -> 0.9999999100000040 Inexact Rounded +precision: 15 +expx118 exp -9E-8 -> 0.999999910000004 Inexact Rounded +precision: 14 +expx119 exp -9E-8 -> 0.99999991000000 Inexact Rounded +precision: 13 +expx120 exp -9E-8 -> 0.9999999100000 Inexact Rounded +precision: 12 +expx121 exp -9E-8 -> 0.999999910000 Inexact Rounded +precision: 11 +expx122 exp -9E-8 -> 0.99999991000 Inexact Rounded +precision: 10 +expx123 exp -9E-8 -> 0.9999999100 Inexact Rounded +precision: 9 +expx124 exp -9E-8 -> 0.999999910 Inexact Rounded +precision: 8 +expx125 exp -9E-8 -> 0.99999991 Inexact Rounded +precision: 7 +expx126 exp -9E-8 -> 0.9999999 Inexact Rounded +precision: 6 +expx127 exp -9E-8 -> 1.00000 Inexact Rounded +precision: 5 +expx128 exp -9E-8 -> 1.0000 Inexact Rounded +precision: 4 +expx129 exp -9E-8 -> 1.000 Inexact Rounded +precision: 3 +expx130 exp -9E-8 -> 1.00 Inexact Rounded +precision: 2 +expx131 exp -9E-8 -> 1.0 Inexact Rounded +precision: 1 +expx132 exp -9E-8 -> 1 Inexact Rounded + + +-- sanity checks, with iteration counts [normalized so 0<=|x|<1] +precision: 50 + +expx210 exp 0 -> 1 +-- iterations: 2 +expx211 exp -1E-40 -> 0.99999999999999999999999999999999999999990000000000 Inexact Rounded +-- iterations: 8 +expx212 exp -9E-7 -> 0.99999910000040499987850002733749507925073811240510 Inexact Rounded +-- iterations: 6 +expx213 exp -9E-8 -> 0.99999991000000404999987850000273374995079250073811 Inexact Rounded +-- iterations: 15 +expx214 exp -0.003 -> 0.99700449550337297601206623409756091074177480489845 Inexact Rounded +-- iterations: 14 +expx215 exp -0.001 -> 0.99900049983337499166805535716765597470235590236008 Inexact Rounded +-- iterations: 26 +expx216 exp -0.1 -> 0.90483741803595957316424905944643662119470536098040 Inexact Rounded +-- iterations: 39 +expx217 exp -0.7 -> 0.49658530379140951470480009339752896170766716571182 Inexact Rounded +-- iterations: 41 +expx218 exp -0.9 -> 0.40656965974059911188345423964562598783370337617038 Inexact Rounded +-- iterations: 43 +expx219 exp -0.99 -> 0.37157669102204569053152411990820138691802885490501 Inexact Rounded +-- iterations: 26 +expx220 exp -1 -> 0.36787944117144232159552377016146086744581113103177 Inexact Rounded +-- iterations: 26 +expx221 exp -1.01 -> 0.36421897957152331975704629563734548959589139192482 Inexact Rounded +-- iterations: 27 +expx222 exp -1.1 -> 0.33287108369807955328884690643131552161247952156921 Inexact Rounded +-- iterations: 28 +expx223 exp -1.5 -> 0.22313016014842982893328047076401252134217162936108 Inexact Rounded +-- iterations: 30 +expx224 exp -2 -> 0.13533528323661269189399949497248440340763154590958 Inexact Rounded +-- iterations: 36 +expx225 exp -5 -> 0.0067379469990854670966360484231484242488495850273551 Inexact Rounded +-- iterations: 26 +expx226 exp -10 -> 0.000045399929762484851535591515560550610237918088866565 Inexact Rounded +-- iterations: 28 +expx227 exp -14 -> 8.3152871910356788406398514256526229460765836498457E-7 Inexact Rounded +-- iterations: 29 +expx228 exp -15 -> 3.0590232050182578837147949770228963937082078081856E-7 Inexact Rounded +-- iterations: 30 +expx233 exp 0 -> 1 +-- iterations: 2 +expx234 exp 1E-40 -> 1.0000000000000000000000000000000000000001000000000 Inexact Rounded +-- iterations: 7 +expx235 exp 9E-7 -> 1.0000009000004050001215000273375049207507381125949 Inexact Rounded +-- iterations: 6 +expx236 exp 9E-8 -> 1.0000000900000040500001215000027337500492075007381 Inexact Rounded +-- iterations: 15 +expx237 exp 0.003 -> 1.0030045045033770260129340913489002053318727195619 Inexact Rounded +-- iterations: 13 +expx238 exp 0.001 -> 1.0010005001667083416680557539930583115630762005807 Inexact Rounded +-- iterations: 25 +expx239 exp 0.1 -> 1.1051709180756476248117078264902466682245471947375 Inexact Rounded +-- iterations: 38 +expx240 exp 0.7 -> 2.0137527074704765216245493885830652700175423941459 Inexact Rounded +-- iterations: 41 +expx241 exp 0.9 -> 2.4596031111569496638001265636024706954217723064401 Inexact Rounded +-- iterations: 42 +expx242 exp 0.99 -> 2.6912344723492622890998794040710139721802931841030 Inexact Rounded +-- iterations: 26 +expx243 exp 1 -> 2.7182818284590452353602874713526624977572470937000 Inexact Rounded +-- iterations: 26 +expx244 exp 1.01 -> 2.7456010150169164939897763166603876240737508195960 Inexact Rounded +-- iterations: 26 +expx245 exp 1.1 -> 3.0041660239464331120584079535886723932826810260163 Inexact Rounded +-- iterations: 28 +expx246 exp 1.5 -> 4.4816890703380648226020554601192758190057498683697 Inexact Rounded +-- iterations: 29 +expx247 exp 2 -> 7.3890560989306502272304274605750078131803155705518 Inexact Rounded +-- iterations: 36 +expx248 exp 5 -> 148.41315910257660342111558004055227962348766759388 Inexact Rounded +-- iterations: 26 +expx249 exp 10 -> 22026.465794806716516957900645284244366353512618557 Inexact Rounded +-- iterations: 28 +expx250 exp 14 -> 1202604.2841647767777492367707678594494124865433761 Inexact Rounded +-- iterations: 28 +expx251 exp 15 -> 3269017.3724721106393018550460917213155057385438200 Inexact Rounded +-- iterations: 29 + +-- a biggie [result verified 3 ways] +precision: 250 +expx260 exp 1 -> 2.718281828459045235360287471352662497757247093699959574966967627724076630353547594571382178525166427427466391932003059921817413596629043572900334295260595630738132328627943490763233829880753195251019011573834187930702154089149934884167509244761460668 Inexact Rounded + +-- extreme range boundaries +precision: 16 +maxExponent: 999999 +minExponent: -999999 +-- Ntiny boundary +expx290 exp -2302618.022332529 -> 0E-1000014 Underflow Subnormal Inexact Rounded Clamped +expx291 exp -2302618.022332528 -> 1E-1000014 Underflow Subnormal Inexact Rounded +-- Nmax/10 and Nmax boundary +expx292 exp 2302582.790408952 -> 9.999999993100277E+999998 Inexact Rounded +expx293 exp 2302582.790408953 -> 1.000000000310028E+999999 Inexact Rounded +expx294 exp 2302585.092993946 -> 9.999999003159870E+999999 Inexact Rounded +expx295 exp 2302585.092994036 -> 9.999999903159821E+999999 Inexact Rounded +expx296 exp 2302585.092994045 -> 9.999999993159820E+999999 Inexact Rounded +expx297 exp 2302585.092994046 -> Infinity Overflow Inexact Rounded + +-- 0<-x<<1 effects +precision: 30 +expx320 exp -4.9999999999999E-8 -> 0.999999950000001250000979166617 Inexact Rounded +expx321 exp -5.0000000000000E-8 -> 0.999999950000001249999979166667 Inexact Rounded +expx322 exp -5.0000000000001E-8 -> 0.999999950000001249998979166717 Inexact Rounded +precision: 20 +expx323 exp -4.9999999999999E-8 -> 0.99999995000000125000 Inexact Rounded +expx324 exp -5.0000000000000E-8 -> 0.99999995000000125000 Inexact Rounded +expx325 exp -5.0000000000001E-8 -> 0.99999995000000125000 Inexact Rounded +precision: 14 +expx326 exp -4.9999999999999E-8 -> 0.99999995000000 Inexact Rounded +expx327 exp -5.0000000000000E-8 -> 0.99999995000000 Inexact Rounded +expx328 exp -5.0000000000001E-8 -> 0.99999995000000 Inexact Rounded +-- overprecise and 0<-x<<1 +precision: 8 +expx330 exp -4.9999999999999E-8 -> 0.99999995 Inexact Rounded +expx331 exp -5.0000000000000E-8 -> 0.99999995 Inexact Rounded +expx332 exp -5.0000000000001E-8 -> 0.99999995 Inexact Rounded +precision: 7 +expx333 exp -4.9999999999999E-8 -> 1.000000 Inexact Rounded +expx334 exp -5.0000000000000E-8 -> 1.000000 Inexact Rounded +expx335 exp -5.0000000000001E-8 -> 1.000000 Inexact Rounded +precision: 3 +expx336 exp -4.9999999999999E-8 -> 1.00 Inexact Rounded +expx337 exp -5.0000000000000E-8 -> 1.00 Inexact Rounded +expx338 exp -5.0000000000001E-8 -> 1.00 Inexact Rounded + +-- 0<x<<1 effects +precision: 30 +expx340 exp 4.9999999999999E-8 -> 1.00000005000000124999902083328 Inexact Rounded +expx341 exp 5.0000000000000E-8 -> 1.00000005000000125000002083333 Inexact Rounded +expx342 exp 5.0000000000001E-8 -> 1.00000005000000125000102083338 Inexact Rounded +precision: 20 +expx343 exp 4.9999999999999E-8 -> 1.0000000500000012500 Inexact Rounded +expx344 exp 5.0000000000000E-8 -> 1.0000000500000012500 Inexact Rounded +expx345 exp 5.0000000000001E-8 -> 1.0000000500000012500 Inexact Rounded +precision: 14 +expx346 exp 4.9999999999999E-8 -> 1.0000000500000 Inexact Rounded +expx347 exp 5.0000000000000E-8 -> 1.0000000500000 Inexact Rounded +expx348 exp 5.0000000000001E-8 -> 1.0000000500000 Inexact Rounded +-- overprecise and 0<x<<1 +precision: 8 +expx350 exp 4.9999999999999E-8 -> 1.0000001 Inexact Rounded +expx351 exp 5.0000000000000E-8 -> 1.0000001 Inexact Rounded +expx352 exp 5.0000000000001E-8 -> 1.0000001 Inexact Rounded +precision: 7 +expx353 exp 4.9999999999999E-8 -> 1.000000 Inexact Rounded +expx354 exp 5.0000000000000E-8 -> 1.000000 Inexact Rounded +expx355 exp 5.0000000000001E-8 -> 1.000000 Inexact Rounded +precision: 3 +expx356 exp 4.9999999999999E-8 -> 1.00 Inexact Rounded +expx357 exp 5.0000000000000E-8 -> 1.00 Inexact Rounded +expx358 exp 5.0000000000001E-8 -> 1.00 Inexact Rounded + +-- cases near 1 -- 1 2345678901234567890 +precision: 20 +expx401 exp 0.99999999999996 -> 2.7182818284589365041 Inexact Rounded +expx402 exp 0.99999999999997 -> 2.7182818284589636869 Inexact Rounded +expx403 exp 0.99999999999998 -> 2.7182818284589908697 Inexact Rounded +expx404 exp 0.99999999999999 -> 2.7182818284590180525 Inexact Rounded +expx405 exp 1.0000000000000 -> 2.7182818284590452354 Inexact Rounded +expx406 exp 1.0000000000001 -> 2.7182818284593170635 Inexact Rounded +expx407 exp 1.0000000000002 -> 2.7182818284595888917 Inexact Rounded +precision: 14 +expx411 exp 0.99999999999996 -> 2.7182818284589 Inexact Rounded +expx412 exp 0.99999999999997 -> 2.7182818284590 Inexact Rounded +expx413 exp 0.99999999999998 -> 2.7182818284590 Inexact Rounded +expx414 exp 0.99999999999999 -> 2.7182818284590 Inexact Rounded +expx415 exp 1.0000000000000 -> 2.7182818284590 Inexact Rounded +expx416 exp 1.0000000000001 -> 2.7182818284593 Inexact Rounded +expx417 exp 1.0000000000002 -> 2.7182818284596 Inexact Rounded +-- overprecise... +precision: 7 +expx421 exp 0.99999999999996 -> 2.718282 Inexact Rounded +expx422 exp 0.99999999999997 -> 2.718282 Inexact Rounded +expx423 exp 0.99999999999998 -> 2.718282 Inexact Rounded +expx424 exp 0.99999999999999 -> 2.718282 Inexact Rounded +expx425 exp 1.0000000000001 -> 2.718282 Inexact Rounded +expx426 exp 1.0000000000002 -> 2.718282 Inexact Rounded +expx427 exp 1.0000000000003 -> 2.718282 Inexact Rounded +precision: 2 +expx431 exp 0.99999999999996 -> 2.7 Inexact Rounded +expx432 exp 0.99999999999997 -> 2.7 Inexact Rounded +expx433 exp 0.99999999999998 -> 2.7 Inexact Rounded +expx434 exp 0.99999999999999 -> 2.7 Inexact Rounded +expx435 exp 1.0000000000001 -> 2.7 Inexact Rounded +expx436 exp 1.0000000000002 -> 2.7 Inexact Rounded +expx437 exp 1.0000000000003 -> 2.7 Inexact Rounded + +-- basics at low precisions +precision: 3 +expx501 exp -Infinity -> 0 +expx502 exp -10 -> 0.0000454 Inexact Rounded +expx503 exp -1 -> 0.368 Inexact Rounded +expx504 exp 0 -> 1 +expx505 exp -0 -> 1 +expx506 exp 1 -> 2.72 Inexact Rounded +expx507 exp 0.693147181 -> 2.00 Inexact Rounded +expx508 exp 10 -> 2.20E+4 Inexact Rounded +expx509 exp +Infinity -> Infinity +precision: 2 +expx511 exp -Infinity -> 0 +expx512 exp -10 -> 0.000045 Inexact Rounded +expx513 exp -1 -> 0.37 Inexact Rounded +expx514 exp 0 -> 1 +expx515 exp -0 -> 1 +expx516 exp 1 -> 2.7 Inexact Rounded +expx517 exp 0.693147181 -> 2.0 Inexact Rounded +expx518 exp 10 -> 2.2E+4 Inexact Rounded +expx519 exp +Infinity -> Infinity +precision: 1 +expx521 exp -Infinity -> 0 +expx522 exp -10 -> 0.00005 Inexact Rounded +expx523 exp -1 -> 0.4 Inexact Rounded +expx524 exp 0 -> 1 +expx525 exp -0 -> 1 +expx526 exp 1 -> 3 Inexact Rounded +expx527 exp 0.693147181 -> 2 Inexact Rounded +expx528 exp 10 -> 2E+4 Inexact Rounded +expx529 exp +Infinity -> Infinity + +-- overflows, including some overprecise borderlines +precision: 7 +maxExponent: 384 +minExponent: -383 +expx701 exp 1000000000 -> Infinity Overflow Inexact Rounded +expx702 exp 100000000 -> Infinity Overflow Inexact Rounded +expx703 exp 10000000 -> Infinity Overflow Inexact Rounded +expx704 exp 1000000 -> Infinity Overflow Inexact Rounded +expx705 exp 100000 -> Infinity Overflow Inexact Rounded +expx706 exp 10000 -> Infinity Overflow Inexact Rounded +expx707 exp 1000 -> Infinity Overflow Inexact Rounded +expx708 exp 886.4952608 -> Infinity Overflow Inexact Rounded +expx709 exp 886.4952607 -> 9.999999E+384 Inexact Rounded +expx710 exp 886.49527 -> Infinity Overflow Inexact Rounded +expx711 exp 886.49526 -> 9.999992E+384 Inexact Rounded +precision: 16 +expx721 exp 886.4952608027075883 -> Infinity Overflow Inexact Rounded +expx722 exp 886.4952608027075882 -> 9.999999999999999E+384 Inexact Rounded +expx723 exp 886.49526080270759 -> Infinity Overflow Inexact Rounded +expx724 exp 886.49526080270758 -> 9.999999999999917E+384 Inexact Rounded +expx725 exp 886.4952608027076 -> Infinity Overflow Inexact Rounded +expx726 exp 886.4952608027075 -> 9.999999999999117E+384 Inexact Rounded +-- and by special request ... +precision: 15 +expx731 exp 886.495260802708 -> Infinity Overflow Inexact Rounded +expx732 exp 886.495260802707 -> 9.99999999999412E+384 Inexact Rounded +expx733 exp 886.495260802706 -> 9.99999999998412E+384 Inexact Rounded +maxExponent: 999 +minExponent: -999 +expx735 exp 2302.58509299405 -> Infinity Overflow Inexact Rounded +expx736 exp 2302.58509299404 -> 9.99999999994316E+999 Inexact Rounded +expx737 exp 2302.58509299403 -> 9.99999999984316E+999 Inexact Rounded + +-- subnormals and underflows, including underflow-to-zero edge point +precision: 7 +maxExponent: 384 +minExponent: -383 +expx751 exp -1000000000 -> 0E-389 Underflow Inexact Rounded Clamped Subnormal +expx752 exp -100000000 -> 0E-389 Underflow Inexact Rounded Clamped Subnormal +expx753 exp -10000000 -> 0E-389 Underflow Inexact Rounded Clamped Subnormal +expx754 exp -1000000 -> 0E-389 Underflow Inexact Rounded Clamped Subnormal +expx755 exp -100000 -> 0E-389 Underflow Inexact Rounded Clamped Subnormal +expx756 exp -10000 -> 0E-389 Underflow Inexact Rounded Clamped Subnormal +expx757 exp -1000 -> 0E-389 Underflow Inexact Rounded Clamped Subnormal +expx758 exp -881.89009 -> 1.000001E-383 Inexact Rounded +expx759 exp -881.8901 -> 9.99991E-384 Inexact Rounded Underflow Subnormal +expx760 exp -885 -> 4.4605E-385 Inexact Rounded Underflow Subnormal +expx761 exp -888 -> 2.221E-386 Inexact Rounded Underflow Subnormal +expx762 exp -890 -> 3.01E-387 Inexact Rounded Underflow Subnormal +expx763 exp -892.9 -> 1.7E-388 Inexact Rounded Underflow Subnormal +expx764 exp -893 -> 1.5E-388 Inexact Rounded Underflow Subnormal +expx765 exp -893.5 -> 9E-389 Inexact Rounded Underflow Subnormal +expx766 exp -895.7056 -> 1E-389 Inexact Rounded Underflow Subnormal +expx769 exp -895.8 -> 1E-389 Inexact Rounded Underflow Subnormal +expx770 exp -895.73 -> 1E-389 Inexact Rounded Underflow Subnormal +expx771 exp -896.3987 -> 1E-389 Inexact Rounded Underflow Subnormal +expx772 exp -896.3988 -> 0E-389 Inexact Rounded Underflow Subnormal Clamped +expx773 exp -898.0081 -> 0E-389 Inexact Rounded Underflow Subnormal Clamped +expx774 exp -898.0082 -> 0E-389 Inexact Rounded Underflow Subnormal Clamped + +-- special values +maxexponent: 999 +minexponent: -999 +expx820 exp Inf -> Infinity +expx821 exp -Inf -> 0 +expx822 exp NaN -> NaN +expx823 exp sNaN -> NaN Invalid_operation +-- propagating NaNs +expx824 exp sNaN123 -> NaN123 Invalid_operation +expx825 exp -sNaN321 -> -NaN321 Invalid_operation +expx826 exp NaN456 -> NaN456 +expx827 exp -NaN654 -> -NaN654 +expx828 exp NaN1 -> NaN1 + +-- Invalid operations due to restrictions +-- [next two probably skipped by most test harnesses] +precision: 100000000 +expx901 exp -Infinity -> NaN Invalid_context +precision: 99999999 +expx902 exp -Infinity -> NaN Invalid_context + +precision: 9 +maxExponent: 1000000 +minExponent: -999999 +expx903 exp -Infinity -> NaN Invalid_context +maxExponent: 999999 +minExponent: -999999 +expx904 exp -Infinity -> 0 +maxExponent: 999999 +minExponent: -1000000 +expx905 exp -Infinity -> NaN Invalid_context +maxExponent: 999999 +minExponent: -999998 +expx906 exp -Infinity -> 0 + +-- +maxExponent: 384 +minExponent: -383 +precision: 16 +rounding: half_even + +-- Null test +expx900 exp # -> NaN Invalid_operation + + +-- Randoms P=50, within 0-999 +Precision: 50 +maxExponent: 384 +minExponent: -383 +expx1501 exp 656.35397950590285612266095596539934213943872885728 -> 1.1243757610640319783611178528839652672062820040314E+285 Inexact Rounded +expx1502 exp 0.93620571093652800225038550600780322831236082781471 -> 2.5502865130986176689199711857825771311178046842009 Inexact Rounded +expx1503 exp 0.00000000000000008340785856601514714183373874105791 -> 1.0000000000000000834078585660151506202691740252512 Inexact Rounded +expx1504 exp 0.00009174057262887789625745574686545163168788456203 -> 1.0000917447809239005146722341251524081006051473273 Inexact Rounded +expx1505 exp 33.909116897973797735657751591014926629051117541243 -> 532773181025002.03543618901306726495870476617232229 Inexact Rounded +expx1506 exp 0.00000740470413004406592124575295278456936809587311 -> 1.0000074047315449333590066395670306135567889210814 Inexact Rounded +expx1507 exp 0.00000000000124854922222108802453746922483071445492 -> 1.0000000000012485492222218674621176239911424968263 Inexact Rounded +expx1508 exp 4.1793280674155659794286951159430651258356014391382 -> 65.321946520147199404199787811336860087975118278185 Inexact Rounded +expx1509 exp 485.43595745460655893746179890255529919221550201686 -> 6.6398403920459617255950476953129377459845366585463E+210 Inexact Rounded +expx1510 exp 0.00000000003547259806590856032527875157830328156597 -> 1.0000000000354725980665377129320589406715000685515 Inexact Rounded +expx1511 exp 0.00000000000000759621497339104047930616478635042678 -> 1.0000000000000075962149733910693305471257715463887 Inexact Rounded +expx1512 exp 9.7959168821760339304571595474480640286072720233796 -> 17960.261146042955179164303653412650751681436352437 Inexact Rounded +expx1513 exp 0.00000000566642006258290526783901451194943164535581 -> 1.0000000056664200786370634609832438815665249347650 Inexact Rounded +expx1514 exp 741.29888791134298194088827572374718940925820027354 -> 8.7501694006317332808128946666402622432064923198731E+321 Inexact Rounded +expx1515 exp 032.75573003552517668808529099897153710887014947935 -> 168125196578678.17725841108617955904425345631092339 Inexact Rounded +expx1516 exp 42.333700726429333308594265553422902463737399437644 -> 2428245675864172475.4681119493045657797309369672012 Inexact Rounded +expx1517 exp 0.00000000000000559682616876491888197609158802835798 -> 1.0000000000000055968261687649345442076732739577049 Inexact Rounded +expx1518 exp 0.00000000000080703688668280193584758300973549486312 -> 1.0000000000008070368866831275901158164321867914342 Inexact Rounded +expx1519 exp 640.72396012796509482382712891709072570653606838251 -> 1.8318094990683394229304133068983914236995326891045E+278 Inexact Rounded +expx1520 exp 0.00000000000000509458922167631071416948112219512224 -> 1.0000000000000050945892216763236915891499324358556 Inexact Rounded +expx1521 exp 6.7670394314315206378625221583973414660727960241395 -> 868.73613012822031367806248697092884415119568271315 Inexact Rounded +expx1522 exp 04.823217407412963506638267226891024138054783122548 -> 124.36457929588837129731821077586705505565904205366 Inexact Rounded +expx1523 exp 193.51307878701196403991208482520115359690106143615 -> 1.1006830872854715677390914655452261550768957576034E+84 Inexact Rounded +expx1524 exp 5.7307749038303650539200345901210497015617393970463 -> 308.20800743106843083522721523715645950574866495196 Inexact Rounded +expx1525 exp 0.00000000000095217825199797965200541169123743500267 -> 1.0000000000009521782519984329737172007991390381273 Inexact Rounded +expx1526 exp 0.00027131440949183370966393682617930153495028919140 -> 1.0002713512185751022906058160480606598754913607364 Inexact Rounded +expx1527 exp 0.00000000064503059114680682343002315662069272707123 -> 1.0000000006450305913548390552323517403613135496633 Inexact Rounded +expx1528 exp 0.00000000000000095616643506527288866235238548440593 -> 1.0000000000000009561664350652733457894781582009094 Inexact Rounded +expx1529 exp 0.00000000000000086449942811678650244459550252743433 -> 1.0000000000000008644994281167868761242261096529986 Inexact Rounded +expx1530 exp 0.06223488355635359965683053157729204988381887621850 -> 1.0642122813392406657789688931838919323826250630831 Inexact Rounded +expx1531 exp 0.00000400710807804429435502657131912308680674057053 -> 1.0000040071161065125925620890019319832127863559260 Inexact Rounded +expx1532 exp 85.522796894744576211573232055494551429297878413017 -> 13870073686404228452757799770251085177.853337368935 Inexact Rounded +expx1533 exp 9.1496720811363678696938036379756663548353399954363 -> 9411.3537122832743386783597629161763057370034495157 Inexact Rounded +expx1534 exp 8.2215705240788294472944382056330516738577785177942 -> 3720.3406813383076953899654701615084425598377758189 Inexact Rounded +expx1535 exp 0.00000000015772064569640613142823203726821076239561 -> 1.0000000001577206457088440324683315788358926129830 Inexact Rounded +expx1536 exp 0.58179346473959531432624153576883440625538017532480 -> 1.7892445018275360163797022372655837188423194863605 Inexact Rounded +expx1537 exp 33.555726197149525061455517784870570470833498096559 -> 374168069896324.62578073148993526626307095854407952 Inexact Rounded +expx1538 exp 9.7898079803906215094140010009583375537259810398659 -> 17850.878119912208888217100998019986634620368538426 Inexact Rounded +expx1539 exp 89.157697327174521542502447953032536541038636966347 -> 525649152320166503771224149330448089550.67293829227 Inexact Rounded +expx1540 exp 25.022947600123328912029051897171319573322888514885 -> 73676343442.952517824345431437683153304645851960524 Inexact Rounded + +-- exp(1) at 34 +Precision: 34 +expx1200 exp 1 -> 2.718281828459045235360287471352662 Inexact Rounded + +-- Randoms P=34, within 0-999 +Precision: 34 +maxExponent: 6144 +minExponent: -6143 +expx1201 exp 309.5948855821510212996700645087188 -> 2.853319692901387521201738015050724E+134 Inexact Rounded +expx1202 exp 9.936543068706211420422803962680164 -> 20672.15839203171877476511093276022 Inexact Rounded +expx1203 exp 6.307870323881505684429839491707908 -> 548.8747777054637296137277391754665 Inexact Rounded +expx1204 exp 0.0003543281389438420535201308282503 -> 1.000354390920573746164733350843155 Inexact Rounded +expx1205 exp 0.0000037087453363918375598394920229 -> 1.000003708752213796324841920189323 Inexact Rounded +expx1206 exp 0.0020432312687512438040222444116585 -> 1.002045320088164826013561630975308 Inexact Rounded +expx1207 exp 6.856313340032177672550343216129586 -> 949.8587981604144147983589660524396 Inexact Rounded +expx1208 exp 0.0000000000402094928333815643326418 -> 1.000000000040209492834189965989612 Inexact Rounded +expx1209 exp 0.0049610784722412117632647003545839 -> 1.004973404997901987039589029277833 Inexact Rounded +expx1210 exp 0.0000891471883724066909746786702686 -> 1.000089151162101085412780088266699 Inexact Rounded +expx1211 exp 08.59979170376061890684723211112566 -> 5430.528314920905714615339273738097 Inexact Rounded +expx1212 exp 9.473117039341003854872778112752590 -> 13005.36234331224953460055897913917 Inexact Rounded +expx1213 exp 0.0999060724692207648429969999310118 -> 1.105067116975190602296052700726802 Inexact Rounded +expx1214 exp 0.0000000927804533555877884082269247 -> 1.000000092780457659694183954740772 Inexact Rounded +expx1215 exp 0.0376578583872889916298772818265677 -> 1.038375900489771946477857818447556 Inexact Rounded +expx1216 exp 261.6896411697539524911536116712307 -> 4.470613562127465095241600174941460E+113 Inexact Rounded +expx1217 exp 0.0709997423269162980875824213889626 -> 1.073580949235407949417814485533172 Inexact Rounded +expx1218 exp 0.0000000444605583295169895235658731 -> 1.000000044460559317887627657593900 Inexact Rounded +expx1219 exp 0.0000021224072854777512281369815185 -> 1.000002122409537785687390631070906 Inexact Rounded +expx1220 exp 547.5174462574156885473558485475052 -> 6.078629247383807942612114579728672E+237 Inexact Rounded +expx1221 exp 0.0000009067598041615192002339844670 -> 1.000000906760215268314680115374387 Inexact Rounded +expx1222 exp 0.0316476500308065365803455533244603 -> 1.032153761880187977658387961769034 Inexact Rounded +expx1223 exp 84.46160530377645101833996706384473 -> 4.799644995897968383503269871697856E+36 Inexact Rounded +expx1224 exp 0.0000000000520599740290848018904145 -> 1.000000000052059974030439922338393 Inexact Rounded +expx1225 exp 0.0000006748530640093620665651726708 -> 1.000000674853291722742292331812997 Inexact Rounded +expx1226 exp 0.0000000116853119761042020507916169 -> 1.000000011685312044377460306165203 Inexact Rounded +expx1227 exp 0.0022593818094258636727616886693280 -> 1.002261936135876893707094845543461 Inexact Rounded +expx1228 exp 0.0029398857673478912249856509667517 -> 1.002944211469495086813087651287012 Inexact Rounded +expx1229 exp 0.7511480029928802775376270557636963 -> 2.119431734510320169806976569366789 Inexact Rounded +expx1230 exp 174.9431952176750671150886423048447 -> 9.481222305374955011464619468044051E+75 Inexact Rounded +expx1231 exp 0.0000810612451694136129199895164424 -> 1.000081064530720924186615149646920 Inexact Rounded +expx1232 exp 51.06888989702669288180946272499035 -> 15098613888619165073959.89896018749 Inexact Rounded +expx1233 exp 0.0000000005992887599437093651494510 -> 1.000000000599288760123282874082758 Inexact Rounded +expx1234 exp 714.8549046761054856311108828903972 -> 2.867744544891081117381595080480784E+310 Inexact Rounded +expx1235 exp 0.0000000004468247802990643645607110 -> 1.000000000446824780398890556720233 Inexact Rounded +expx1236 exp 831.5818151589890366323551672043709 -> 1.417077409182624969435938062261655E+361 Inexact Rounded +expx1237 exp 0.0000000006868323825179605747108044 -> 1.000000000686832382753829935602454 Inexact Rounded +expx1238 exp 0.0000001306740266408976840228440255 -> 1.000000130674035178748675187648098 Inexact Rounded +expx1239 exp 0.3182210609022267704811502412335163 -> 1.374680115667798185758927247894859 Inexact Rounded +expx1240 exp 0.0147741234179104437440264644295501 -> 1.014883800239950682628277534839222 Inexact Rounded + +-- Randoms P=16, within 0-99 +Precision: 16 +maxExponent: 384 +minExponent: -383 +expx1101 exp 8.473011527013724 -> 4783.900643969246 Inexact Rounded +expx1102 exp 0.0000055753022764 -> 1.000005575317818 Inexact Rounded +expx1103 exp 0.0000323474114482 -> 1.000032347934631 Inexact Rounded +expx1104 exp 64.54374138544166 -> 1.073966476173531E+28 Inexact Rounded +expx1105 exp 90.47203246416569 -> 1.956610887250643E+39 Inexact Rounded +expx1106 exp 9.299931532342757 -> 10937.27033325227 Inexact Rounded +expx1107 exp 8.759678437852203 -> 6372.062234495381 Inexact Rounded +expx1108 exp 0.0000931755127172 -> 1.000093179853690 Inexact Rounded +expx1109 exp 0.0000028101158373 -> 1.000002810119786 Inexact Rounded +expx1110 exp 0.0000008008130919 -> 1.000000800813413 Inexact Rounded +expx1111 exp 8.339771722299049 -> 4187.133803081878 Inexact Rounded +expx1112 exp 0.0026140497995474 -> 1.002617469406750 Inexact Rounded +expx1113 exp 0.7478033356261771 -> 2.112354781975418 Inexact Rounded +expx1114 exp 51.77663761827966 -> 3.064135801120365E+22 Inexact Rounded +expx1115 exp 0.1524989783061012 -> 1.164741272084955 Inexact Rounded +expx1116 exp 0.0066298798669219 -> 1.006651906170791 Inexact Rounded +expx1117 exp 9.955141865534960 -> 21060.23334287038 Inexact Rounded +expx1118 exp 92.34503059198483 -> 1.273318993481226E+40 Inexact Rounded +expx1119 exp 0.0000709388677346 -> 1.000070941383956 Inexact Rounded +expx1120 exp 79.12883036433204 -> 2.318538899389243E+34 Inexact Rounded +expx1121 exp 0.0000090881548873 -> 1.000009088196185 Inexact Rounded +expx1122 exp 0.0424828809603411 -> 1.043398194245720 Inexact Rounded +expx1123 exp 0.8009035891427416 -> 2.227552811933310 Inexact Rounded +expx1124 exp 8.825786167283102 -> 6807.540455289995 Inexact Rounded +expx1125 exp 1.535457249746275 -> 4.643448260146849 Inexact Rounded +expx1126 exp 69.02254254355800 -> 9.464754500670653E+29 Inexact Rounded +expx1127 exp 0.0007050554368713 -> 1.000705304046880 Inexact Rounded +expx1128 exp 0.0000081206549504 -> 1.000008120687923 Inexact Rounded +expx1129 exp 0.621774854641137 -> 1.862230298554903 Inexact Rounded +expx1130 exp 3.847629031404354 -> 46.88177613568203 Inexact Rounded +expx1131 exp 24.81250184697732 -> 59694268456.19966 Inexact Rounded +expx1132 exp 5.107546500516044 -> 165.2643809755670 Inexact Rounded +expx1133 exp 79.17810943951986 -> 2.435656372541360E+34 Inexact Rounded +expx1134 exp 0.0051394695667015 -> 1.005152699295301 Inexact Rounded +expx1135 exp 57.44504488501725 -> 8.872908566929688E+24 Inexact Rounded +expx1136 exp 0.0000508388968036 -> 1.000050840189122 Inexact Rounded +expx1137 exp 69.71309932148997 -> 1.888053740693541E+30 Inexact Rounded +expx1138 exp 0.0064183412981502 -> 1.006438982988835 Inexact Rounded +expx1139 exp 9.346991220814677 -> 11464.27802035082 Inexact Rounded +expx1140 exp 33.09087139999152 -> 235062229168763.5 Inexact Rounded + +-- Randoms P=7, within 0-9 +Precision: 7 +maxExponent: 96 +minExponent: -95 +expx1001 exp 2.395441 -> 10.97304 Inexact Rounded +expx1002 exp 0.6406779 -> 1.897767 Inexact Rounded +expx1003 exp 0.5618218 -> 1.753865 Inexact Rounded +expx1004 exp 3.055120 -> 21.22373 Inexact Rounded +expx1005 exp 1.536792 -> 4.649650 Inexact Rounded +expx1006 exp 0.0801591 -> 1.083459 Inexact Rounded +expx1007 exp 0.0966875 -> 1.101516 Inexact Rounded +expx1008 exp 0.0646761 -> 1.066813 Inexact Rounded +expx1009 exp 0.0095670 -> 1.009613 Inexact Rounded +expx1010 exp 2.956859 -> 19.23745 Inexact Rounded +expx1011 exp 7.504679 -> 1816.522 Inexact Rounded +expx1012 exp 0.0045259 -> 1.004536 Inexact Rounded +expx1013 exp 3.810071 -> 45.15364 Inexact Rounded +expx1014 exp 1.502390 -> 4.492413 Inexact Rounded +expx1015 exp 0.0321523 -> 1.032675 Inexact Rounded +expx1016 exp 0.0057214 -> 1.005738 Inexact Rounded +expx1017 exp 9.811445 -> 18241.33 Inexact Rounded +expx1018 exp 3.245249 -> 25.66810 Inexact Rounded +expx1019 exp 0.3189742 -> 1.375716 Inexact Rounded +expx1020 exp 0.8621610 -> 2.368273 Inexact Rounded +expx1021 exp 0.0122511 -> 1.012326 Inexact Rounded +expx1022 exp 2.202088 -> 9.043877 Inexact Rounded +expx1023 exp 8.778203 -> 6491.202 Inexact Rounded +expx1024 exp 0.1896279 -> 1.208800 Inexact Rounded +expx1025 exp 0.4510947 -> 1.570030 Inexact Rounded +expx1026 exp 0.276413 -> 1.318392 Inexact Rounded +expx1027 exp 4.490067 -> 89.12742 Inexact Rounded +expx1028 exp 0.0439786 -> 1.044960 Inexact Rounded +expx1029 exp 0.8168245 -> 2.263301 Inexact Rounded +expx1030 exp 0.0391658 -> 1.039943 Inexact Rounded +expx1031 exp 9.261816 -> 10528.24 Inexact Rounded +expx1032 exp 9.611186 -> 14930.87 Inexact Rounded +expx1033 exp 9.118125 -> 9119.087 Inexact Rounded +expx1034 exp 9.469083 -> 12953.00 Inexact Rounded +expx1035 exp 0.0499983 -> 1.051269 Inexact Rounded +expx1036 exp 0.0050746 -> 1.005087 Inexact Rounded +expx1037 exp 0.0014696 -> 1.001471 Inexact Rounded +expx1038 exp 9.138494 -> 9306.739 Inexact Rounded +expx1039 exp 0.0065436 -> 1.006565 Inexact Rounded +expx1040 exp 0.7284803 -> 2.071930 Inexact Rounded + diff --git a/Lib/test/decimaltestdata/fma.decTest b/Lib/test/decimaltestdata/fma.decTest index b0a81ca179..a8197ef8a4 100644 --- a/Lib/test/decimaltestdata/fma.decTest +++ b/Lib/test/decimaltestdata/fma.decTest @@ -1,3426 +1,3426 @@ -------------------------------------------------------------------------
--- fma.decTest -- decimal fused multiply add --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-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
+------------------------------------------------------------------------ +-- fma.decTest -- decimal fused multiply add -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +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 diff --git a/Lib/test/decimaltestdata/invert.decTest b/Lib/test/decimaltestdata/invert.decTest index 9ef5a9137c..a2f7be5a77 100644 --- a/Lib/test/decimaltestdata/invert.decTest +++ b/Lib/test/decimaltestdata/invert.decTest @@ -1,176 +1,176 @@ -------------------------------------------------------------------------
--- invert.decTest -- digitwise logical INVERT --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-extended: 1
-precision: 9
-rounding: half_up
-maxExponent: 999
-minExponent: -999
-
--- Sanity check (truth table), and examples from decArith
-invx001 invert 0 -> 111111111
-invx002 invert 1 -> 111111110
-invx003 invert 10 -> 111111101
-invx004 invert 111111111 -> 0
-invx005 invert 000000000 -> 111111111
-invx006 invert 101010101 -> '10101010'
--- and at msd and msd-1
-invx007 invert 000000000 -> 111111111
-invx009 invert 100000000 -> 11111111
-invx011 invert 000000000 -> 111111111
-invx013 invert 010000000 -> 101111111
-
--- Various lengths
--- 123456789 123456789
-invx021 invert 111111111 -> 0
-invx022 invert 111111111111 -> 0
-invx023 invert 11111111 -> 100000000
-invx025 invert 1111111 -> 110000000
-invx026 invert 111111 -> 111000000
-invx027 invert 11111 -> 111100000
-invx028 invert 1111 -> 111110000
-invx029 invert 111 -> 111111000
-invx031 invert 11 -> 111111100
-invx032 invert 1 -> 111111110
-invx033 invert 111111111111 -> 0
-invx034 invert 11111111111 -> 0
-invx035 invert 1111111111 -> 0
-invx036 invert 111111111 -> 0
-
-invx080 invert 011111111 -> 100000000
-invx081 invert 101111111 -> 10000000
-invx082 invert 110111111 -> 1000000
-invx083 invert 111011111 -> 100000
-invx084 invert 111101111 -> 10000
-invx085 invert 111110111 -> 1000
-invx086 invert 111111011 -> 100
-invx087 invert 111111101 -> 10
-invx088 invert 111111110 -> 1
-invx089 invert 011111011 -> 100000100
-invx090 invert 101111101 -> 10000010
-invx091 invert 110111110 -> 1000001
-invx092 invert 111011101 -> 100010
-invx093 invert 111101011 -> 10100
-invx094 invert 111110111 -> 1000
-invx095 invert 111101011 -> 10100
-invx096 invert 111011101 -> 100010
-invx097 invert 110111110 -> 1000001
-invx098 invert 101111101 -> 10000010
-invx099 invert 011111011 -> 100000100
-
--- non-0/1 should not be accepted, nor should signs
-invx220 invert 111111112 -> NaN Invalid_operation
-invx221 invert 333333333 -> NaN Invalid_operation
-invx222 invert 555555555 -> NaN Invalid_operation
-invx223 invert 777777777 -> NaN Invalid_operation
-invx224 invert 999999999 -> NaN Invalid_operation
-invx225 invert 222222222 -> NaN Invalid_operation
-invx226 invert 444444444 -> NaN Invalid_operation
-invx227 invert 666666666 -> NaN Invalid_operation
-invx228 invert 888888888 -> NaN Invalid_operation
-invx229 invert 999999999 -> NaN Invalid_operation
-invx230 invert 999999999 -> NaN Invalid_operation
-invx231 invert 999999999 -> NaN Invalid_operation
-invx232 invert 999999999 -> NaN Invalid_operation
--- a few randoms
-invx240 invert 567468689 -> NaN Invalid_operation
-invx241 invert 567367689 -> NaN Invalid_operation
-invx242 invert -631917772 -> NaN Invalid_operation
-invx243 invert -756253257 -> NaN Invalid_operation
-invx244 invert 835590149 -> NaN Invalid_operation
--- test MSD
-invx250 invert 200000000 -> NaN Invalid_operation
-invx251 invert 300000000 -> NaN Invalid_operation
-invx252 invert 400000000 -> NaN Invalid_operation
-invx253 invert 500000000 -> NaN Invalid_operation
-invx254 invert 600000000 -> NaN Invalid_operation
-invx255 invert 700000000 -> NaN Invalid_operation
-invx256 invert 800000000 -> NaN Invalid_operation
-invx257 invert 900000000 -> NaN Invalid_operation
--- test MSD-1
-invx270 invert 021000000 -> NaN Invalid_operation
-invx271 invert 030100000 -> NaN Invalid_operation
-invx272 invert 040010000 -> NaN Invalid_operation
-invx273 invert 050001000 -> NaN Invalid_operation
-invx274 invert 160000100 -> NaN Invalid_operation
-invx275 invert 170000010 -> NaN Invalid_operation
-invx276 invert 180000000 -> NaN Invalid_operation
-invx277 invert 190000000 -> NaN Invalid_operation
--- test LSD
-invx280 invert 000000002 -> NaN Invalid_operation
-invx281 invert 000000003 -> NaN Invalid_operation
-invx282 invert 000000004 -> NaN Invalid_operation
-invx283 invert 000000005 -> NaN Invalid_operation
-invx284 invert 101000006 -> NaN Invalid_operation
-invx285 invert 100100007 -> NaN Invalid_operation
-invx286 invert 100010008 -> NaN Invalid_operation
-invx287 invert 100001009 -> NaN Invalid_operation
--- test Middie
-invx288 invert 000020000 -> NaN Invalid_operation
-invx289 invert 000030001 -> NaN Invalid_operation
-invx290 invert 000040000 -> NaN Invalid_operation
-invx291 invert 000050000 -> NaN Invalid_operation
-invx292 invert 101060000 -> NaN Invalid_operation
-invx293 invert 100170010 -> NaN Invalid_operation
-invx294 invert 100080100 -> NaN Invalid_operation
-invx295 invert 100091000 -> NaN Invalid_operation
--- signs
-invx296 invert -100001000 -> NaN Invalid_operation
-invx299 invert 100001000 -> 11110111
-
--- Nmax, Nmin, Ntiny
-invx341 invert 9.99999999E+999 -> NaN Invalid_operation
-invx342 invert 1E-999 -> NaN Invalid_operation
-invx343 invert 1.00000000E-999 -> NaN Invalid_operation
-invx344 invert 1E-1007 -> NaN Invalid_operation
-invx345 invert -1E-1007 -> NaN Invalid_operation
-invx346 invert -1.00000000E-999 -> NaN Invalid_operation
-invx347 invert -1E-999 -> NaN Invalid_operation
-invx348 invert -9.99999999E+999 -> NaN Invalid_operation
-
--- A few other non-integers
-invx361 invert 1.0 -> NaN Invalid_operation
-invx362 invert 1E+1 -> NaN Invalid_operation
-invx363 invert 0.0 -> NaN Invalid_operation
-invx364 invert 0E+1 -> NaN Invalid_operation
-invx365 invert 9.9 -> NaN Invalid_operation
-invx366 invert 9E+1 -> NaN Invalid_operation
-
--- All Specials are in error
-invx788 invert -Inf -> NaN Invalid_operation
-invx794 invert Inf -> NaN Invalid_operation
-invx821 invert NaN -> NaN Invalid_operation
-invx841 invert sNaN -> NaN Invalid_operation
--- propagating NaNs
-invx861 invert NaN1 -> NaN Invalid_operation
-invx862 invert +NaN2 -> NaN Invalid_operation
-invx863 invert NaN3 -> NaN Invalid_operation
-invx864 invert NaN4 -> NaN Invalid_operation
-invx865 invert NaN5 -> NaN Invalid_operation
-invx871 invert sNaN11 -> NaN Invalid_operation
-invx872 invert sNaN12 -> NaN Invalid_operation
-invx873 invert sNaN13 -> NaN Invalid_operation
-invx874 invert sNaN14 -> NaN Invalid_operation
-invx875 invert sNaN15 -> NaN Invalid_operation
-invx876 invert NaN16 -> NaN Invalid_operation
-invx881 invert +NaN25 -> NaN Invalid_operation
-invx882 invert -NaN26 -> NaN Invalid_operation
-invx883 invert -sNaN27 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- invert.decTest -- digitwise logical INVERT -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +extended: 1 +precision: 9 +rounding: half_up +maxExponent: 999 +minExponent: -999 + +-- Sanity check (truth table), and examples from decArith +invx001 invert 0 -> 111111111 +invx002 invert 1 -> 111111110 +invx003 invert 10 -> 111111101 +invx004 invert 111111111 -> 0 +invx005 invert 000000000 -> 111111111 +invx006 invert 101010101 -> '10101010' +-- and at msd and msd-1 +invx007 invert 000000000 -> 111111111 +invx009 invert 100000000 -> 11111111 +invx011 invert 000000000 -> 111111111 +invx013 invert 010000000 -> 101111111 + +-- Various lengths +-- 123456789 123456789 +invx021 invert 111111111 -> 0 +invx022 invert 111111111111 -> 0 +invx023 invert 11111111 -> 100000000 +invx025 invert 1111111 -> 110000000 +invx026 invert 111111 -> 111000000 +invx027 invert 11111 -> 111100000 +invx028 invert 1111 -> 111110000 +invx029 invert 111 -> 111111000 +invx031 invert 11 -> 111111100 +invx032 invert 1 -> 111111110 +invx033 invert 111111111111 -> 0 +invx034 invert 11111111111 -> 0 +invx035 invert 1111111111 -> 0 +invx036 invert 111111111 -> 0 + +invx080 invert 011111111 -> 100000000 +invx081 invert 101111111 -> 10000000 +invx082 invert 110111111 -> 1000000 +invx083 invert 111011111 -> 100000 +invx084 invert 111101111 -> 10000 +invx085 invert 111110111 -> 1000 +invx086 invert 111111011 -> 100 +invx087 invert 111111101 -> 10 +invx088 invert 111111110 -> 1 +invx089 invert 011111011 -> 100000100 +invx090 invert 101111101 -> 10000010 +invx091 invert 110111110 -> 1000001 +invx092 invert 111011101 -> 100010 +invx093 invert 111101011 -> 10100 +invx094 invert 111110111 -> 1000 +invx095 invert 111101011 -> 10100 +invx096 invert 111011101 -> 100010 +invx097 invert 110111110 -> 1000001 +invx098 invert 101111101 -> 10000010 +invx099 invert 011111011 -> 100000100 + +-- non-0/1 should not be accepted, nor should signs +invx220 invert 111111112 -> NaN Invalid_operation +invx221 invert 333333333 -> NaN Invalid_operation +invx222 invert 555555555 -> NaN Invalid_operation +invx223 invert 777777777 -> NaN Invalid_operation +invx224 invert 999999999 -> NaN Invalid_operation +invx225 invert 222222222 -> NaN Invalid_operation +invx226 invert 444444444 -> NaN Invalid_operation +invx227 invert 666666666 -> NaN Invalid_operation +invx228 invert 888888888 -> NaN Invalid_operation +invx229 invert 999999999 -> NaN Invalid_operation +invx230 invert 999999999 -> NaN Invalid_operation +invx231 invert 999999999 -> NaN Invalid_operation +invx232 invert 999999999 -> NaN Invalid_operation +-- a few randoms +invx240 invert 567468689 -> NaN Invalid_operation +invx241 invert 567367689 -> NaN Invalid_operation +invx242 invert -631917772 -> NaN Invalid_operation +invx243 invert -756253257 -> NaN Invalid_operation +invx244 invert 835590149 -> NaN Invalid_operation +-- test MSD +invx250 invert 200000000 -> NaN Invalid_operation +invx251 invert 300000000 -> NaN Invalid_operation +invx252 invert 400000000 -> NaN Invalid_operation +invx253 invert 500000000 -> NaN Invalid_operation +invx254 invert 600000000 -> NaN Invalid_operation +invx255 invert 700000000 -> NaN Invalid_operation +invx256 invert 800000000 -> NaN Invalid_operation +invx257 invert 900000000 -> NaN Invalid_operation +-- test MSD-1 +invx270 invert 021000000 -> NaN Invalid_operation +invx271 invert 030100000 -> NaN Invalid_operation +invx272 invert 040010000 -> NaN Invalid_operation +invx273 invert 050001000 -> NaN Invalid_operation +invx274 invert 160000100 -> NaN Invalid_operation +invx275 invert 170000010 -> NaN Invalid_operation +invx276 invert 180000000 -> NaN Invalid_operation +invx277 invert 190000000 -> NaN Invalid_operation +-- test LSD +invx280 invert 000000002 -> NaN Invalid_operation +invx281 invert 000000003 -> NaN Invalid_operation +invx282 invert 000000004 -> NaN Invalid_operation +invx283 invert 000000005 -> NaN Invalid_operation +invx284 invert 101000006 -> NaN Invalid_operation +invx285 invert 100100007 -> NaN Invalid_operation +invx286 invert 100010008 -> NaN Invalid_operation +invx287 invert 100001009 -> NaN Invalid_operation +-- test Middie +invx288 invert 000020000 -> NaN Invalid_operation +invx289 invert 000030001 -> NaN Invalid_operation +invx290 invert 000040000 -> NaN Invalid_operation +invx291 invert 000050000 -> NaN Invalid_operation +invx292 invert 101060000 -> NaN Invalid_operation +invx293 invert 100170010 -> NaN Invalid_operation +invx294 invert 100080100 -> NaN Invalid_operation +invx295 invert 100091000 -> NaN Invalid_operation +-- signs +invx296 invert -100001000 -> NaN Invalid_operation +invx299 invert 100001000 -> 11110111 + +-- Nmax, Nmin, Ntiny +invx341 invert 9.99999999E+999 -> NaN Invalid_operation +invx342 invert 1E-999 -> NaN Invalid_operation +invx343 invert 1.00000000E-999 -> NaN Invalid_operation +invx344 invert 1E-1007 -> NaN Invalid_operation +invx345 invert -1E-1007 -> NaN Invalid_operation +invx346 invert -1.00000000E-999 -> NaN Invalid_operation +invx347 invert -1E-999 -> NaN Invalid_operation +invx348 invert -9.99999999E+999 -> NaN Invalid_operation + +-- A few other non-integers +invx361 invert 1.0 -> NaN Invalid_operation +invx362 invert 1E+1 -> NaN Invalid_operation +invx363 invert 0.0 -> NaN Invalid_operation +invx364 invert 0E+1 -> NaN Invalid_operation +invx365 invert 9.9 -> NaN Invalid_operation +invx366 invert 9E+1 -> NaN Invalid_operation + +-- All Specials are in error +invx788 invert -Inf -> NaN Invalid_operation +invx794 invert Inf -> NaN Invalid_operation +invx821 invert NaN -> NaN Invalid_operation +invx841 invert sNaN -> NaN Invalid_operation +-- propagating NaNs +invx861 invert NaN1 -> NaN Invalid_operation +invx862 invert +NaN2 -> NaN Invalid_operation +invx863 invert NaN3 -> NaN Invalid_operation +invx864 invert NaN4 -> NaN Invalid_operation +invx865 invert NaN5 -> NaN Invalid_operation +invx871 invert sNaN11 -> NaN Invalid_operation +invx872 invert sNaN12 -> NaN Invalid_operation +invx873 invert sNaN13 -> NaN Invalid_operation +invx874 invert sNaN14 -> NaN Invalid_operation +invx875 invert sNaN15 -> NaN Invalid_operation +invx876 invert NaN16 -> NaN Invalid_operation +invx881 invert +NaN25 -> NaN Invalid_operation +invx882 invert -NaN26 -> NaN Invalid_operation +invx883 invert -sNaN27 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/ln.decTest b/Lib/test/decimaltestdata/ln.decTest index efcb2a6606..f602af2377 100644 --- a/Lib/test/decimaltestdata/ln.decTest +++ b/Lib/test/decimaltestdata/ln.decTest @@ -1,611 +1,611 @@ -------------------------------------------------------------------------
--- ln.decTest -- decimal natural logarithm --
--- Copyright (c) IBM Corporation, 2005, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-extended: 1
-precision: 16
-rounding: half_even
-maxExponent: 384
-minexponent: -383
-
--- basics (examples in specification)
-precision: 9
-lnxs001 ln 0 -> -Infinity
-lnxs002 ln 1.000 -> 0
-lnxs003 ln 2.71828183 -> 1.00000000 Inexact Rounded
-lnxs004 ln 10 -> 2.30258509 Inexact Rounded
-lnxs005 ln +Infinity -> Infinity
-
-
--- basics
-precision: 16
-lnx0001 ln 0 -> -Infinity
-lnx0002 ln 1E-9 -> -20.72326583694641 Inexact Rounded
-lnx0003 ln 0.0007 -> -7.264430222920869 Inexact Rounded
-lnx0004 ln 0.1 -> -2.302585092994046 Inexact Rounded
-lnx0005 ln 0.7 -> -0.3566749439387324 Inexact Rounded
-lnx0006 ln 1 -> 0
-lnx0007 ln 1.000 -> 0
-lnx0008 ln 1.5 -> 0.4054651081081644 Inexact Rounded
-lnx0009 ln 2 -> 0.6931471805599453 Inexact Rounded
-lnx0010 ln 2.718281828459045 -> 0.9999999999999999 Inexact Rounded
-lnx0011 ln 2.718281828459046 -> 1.000000000000000 Inexact Rounded
-lnx0012 ln 2.718281828459047 -> 1.000000000000001 Inexact Rounded
-lnx0013 ln 10 -> 2.302585092994046 Inexact Rounded
-lnx0014 ln 10.5 -> 2.351375257163478 Inexact Rounded
-lnx0015 ln 9999 -> 9.210240366975849 Inexact Rounded
-lnx0016 ln 1E6 -> 13.81551055796427 Inexact Rounded
-lnx0017 ln 1E+9 -> 20.72326583694641 Inexact Rounded
-lnx0018 ln +Infinity -> Infinity
-
--- notable cases
--- negatives
-lnx0021 ln -1E-9 -> NaN Invalid_operation
-lnx0022 ln -0.0007 -> NaN Invalid_operation
-lnx0023 ln -0.1 -> NaN Invalid_operation
-lnx0024 ln -0.7 -> NaN Invalid_operation
-lnx0025 ln -1 -> NaN Invalid_operation
-lnx0026 ln -1.5 -> NaN Invalid_operation
-lnx0027 ln -2 -> NaN Invalid_operation
-lnx0029 ln -10.5 -> NaN Invalid_operation
-lnx0028 ln -9999 -> NaN Invalid_operation
-lnx0030 ln -2.718281828459045 -> NaN Invalid_operation
-lnx0031 ln -2.718281828459046 -> NaN Invalid_operation
-lnx0032 ln -0 -> -Infinity
-lnx0033 ln -0E+17 -> -Infinity
-lnx0034 ln -0E-17 -> -Infinity
--- other zeros
-lnx0041 ln 0 -> -Infinity
-lnx0042 ln 0E+17 -> -Infinity
-lnx0043 ln 0E-17 -> -Infinity
--- infinities
-lnx0045 ln -Infinity -> NaN Invalid_operation
-lnx0046 ln +Infinity -> Infinity
--- ones
-lnx0050 ln 1 -> 0
-lnx0051 ln 1.0 -> 0
-lnx0052 ln 1.000000000000000 -> 0
-lnx0053 ln 1.000000000000000000 -> 0
-
--- lower precision basics
-Precision: 7
-lnx0101 ln 0 -> -Infinity
-lnx0102 ln 1E-9 -> -20.72327 Inexact Rounded
-lnx0103 ln 0.0007 -> -7.264430 Inexact Rounded
-lnx0104 ln 0.1 -> -2.302585 Inexact Rounded
-lnx0105 ln 0.7 -> -0.3566749 Inexact Rounded
-lnx0106 ln 1 -> 0
-lnx0107 ln 1.5 -> 0.4054651 Inexact Rounded
-lnx0108 ln 2 -> 0.6931472 Inexact Rounded
-lnx0109 ln 2.718281828459045 -> 1.000000 Inexact Rounded
-lnx0110 ln 2.718281828459046 -> 1.000000 Inexact Rounded
-lnx0111 ln 2.718281828459047 -> 1.000000 Inexact Rounded
-lnx0112 ln 10 -> 2.302585 Inexact Rounded
-lnx0113 ln 10.5 -> 2.351375 Inexact Rounded
-lnx0114 ln 9999 -> 9.210240 Inexact Rounded
-lnx0115 ln 1E6 -> 13.81551 Inexact Rounded
-lnx0116 ln 1E+9 -> 20.72327 Inexact Rounded
-lnx0117 ln +Infinity -> Infinity
-Precision: 2
-lnx0121 ln 0 -> -Infinity
-lnx0122 ln 1E-9 -> -21 Inexact Rounded
-lnx0123 ln 0.0007 -> -7.3 Inexact Rounded
-lnx0124 ln 0.1 -> -2.3 Inexact Rounded
-lnx0125 ln 0.7 -> -0.36 Inexact Rounded
-lnx0126 ln 1 -> 0
-lnx0127 ln 1.5 -> 0.41 Inexact Rounded
-lnx0128 ln 2 -> 0.69 Inexact Rounded
-lnx0129 ln 2.718281828459045 -> 1.0 Inexact Rounded
-lnx0130 ln 2.718281828459046 -> 1.0 Inexact Rounded
-lnx0131 ln 2.718281828459047 -> 1.0 Inexact Rounded
-lnx0132 ln 10 -> 2.3 Inexact Rounded
-lnx0133 ln 10.5 -> 2.4 Inexact Rounded
-lnx0134 ln 9999 -> 9.2 Inexact Rounded
-lnx0135 ln 1E6 -> 14 Inexact Rounded
-lnx0136 ln 1E+9 -> 21 Inexact Rounded
-lnx0137 ln +Infinity -> Infinity
-Precision: 1
-lnx0141 ln 0 -> -Infinity
-lnx0142 ln 1E-9 -> -2E+1 Inexact Rounded
-lnx0143 ln 0.0007 -> -7 Inexact Rounded
-lnx0144 ln 0.1 -> -2 Inexact Rounded
-lnx0145 ln 0.7 -> -0.4 Inexact Rounded
-lnx0146 ln 1 -> 0
-lnx0147 ln 1.5 -> 0.4 Inexact Rounded
-lnx0148 ln 2 -> 0.7 Inexact Rounded
-lnx0149 ln 2.718281828459045 -> 1 Inexact Rounded
-lnx0150 ln 2.718281828459046 -> 1 Inexact Rounded
-lnx0151 ln 2.718281828459047 -> 1 Inexact Rounded
-lnx0152 ln 10 -> 2 Inexact Rounded
-lnx0153 ln 10.5 -> 2 Inexact Rounded
-lnx0154 ln 9999 -> 9 Inexact Rounded
-lnx0155 ln 1E6 -> 1E+1 Inexact Rounded
-lnx0156 ln 1E+9 -> 2E+1 Inexact Rounded
-lnx0157 ln +Infinity -> Infinity
-
--- group low-precision ln(1)s:
-precision: 1
-lnx0161 ln 1 -> 0
-precision: 2
-lnx0162 ln 1 -> 0
-precision: 3
-lnx0163 ln 1 -> 0
-precision: 4
-lnx0164 ln 1 -> 0
-precision: 5
-lnx0165 ln 1 -> 0
-precision: 6
-lnx0166 ln 1 -> 0
-precision: 7
-lnx0167 ln 1 -> 0
-precision: 8
-lnx0168 ln 1 -> 0
-
--- edge-test ln(2) and ln(10) in case of lookasides
-precision: 45
-lnx201 ln 2 -> 0.693147180559945309417232121458176568075500134 Inexact Rounded
-lnx202 ln 10 -> 2.30258509299404568401799145468436420760110149 Inexact Rounded
-precision: 44
-lnx203 ln 2 -> 0.69314718055994530941723212145817656807550013 Inexact Rounded
-lnx204 ln 10 -> 2.3025850929940456840179914546843642076011015 Inexact Rounded
-precision: 43
-lnx205 ln 2 -> 0.6931471805599453094172321214581765680755001 Inexact Rounded
-lnx206 ln 10 -> 2.302585092994045684017991454684364207601101 Inexact Rounded
-precision: 42
-lnx207 ln 2 -> 0.693147180559945309417232121458176568075500 Inexact Rounded
-lnx208 ln 10 -> 2.30258509299404568401799145468436420760110 Inexact Rounded
-precision: 41
-lnx209 ln 2 -> 0.69314718055994530941723212145817656807550 Inexact Rounded
-lnx210 ln 10 -> 2.3025850929940456840179914546843642076011 Inexact Rounded
-precision: 40
-lnx211 ln 2 -> 0.6931471805599453094172321214581765680755 Inexact Rounded
-lnx212 ln 10 -> 2.302585092994045684017991454684364207601 Inexact Rounded
-precision: 39
-lnx213 ln 2 -> 0.693147180559945309417232121458176568076 Inexact Rounded
-lnx214 ln 10 -> 2.30258509299404568401799145468436420760 Inexact Rounded
-precision: 38
-lnx215 ln 2 -> 0.69314718055994530941723212145817656808 Inexact Rounded
-lnx216 ln 10 -> 2.3025850929940456840179914546843642076 Inexact Rounded
-precision: 37
-lnx217 ln 2 -> 0.6931471805599453094172321214581765681 Inexact Rounded
-lnx218 ln 10 -> 2.302585092994045684017991454684364208 Inexact Rounded
-precision: 36
-lnx219 ln 2 -> 0.693147180559945309417232121458176568 Inexact Rounded
-lnx220 ln 10 -> 2.30258509299404568401799145468436421 Inexact Rounded
-precision: 35
-lnx221 ln 2 -> 0.69314718055994530941723212145817657 Inexact Rounded
-lnx222 ln 10 -> 2.3025850929940456840179914546843642 Inexact Rounded
-precision: 34
-lnx223 ln 2 -> 0.6931471805599453094172321214581766 Inexact Rounded
-lnx224 ln 10 -> 2.302585092994045684017991454684364 Inexact Rounded
-precision: 33
-lnx225 ln 2 -> 0.693147180559945309417232121458177 Inexact Rounded
-lnx226 ln 10 -> 2.30258509299404568401799145468436 Inexact Rounded
-precision: 32
-lnx227 ln 2 -> 0.69314718055994530941723212145818 Inexact Rounded
-lnx228 ln 10 -> 2.3025850929940456840179914546844 Inexact Rounded
-precision: 31
-lnx229 ln 2 -> 0.6931471805599453094172321214582 Inexact Rounded
-lnx230 ln 10 -> 2.302585092994045684017991454684 Inexact Rounded
-precision: 30
-lnx231 ln 2 -> 0.693147180559945309417232121458 Inexact Rounded
-lnx232 ln 10 -> 2.30258509299404568401799145468 Inexact Rounded
-
--- extreme input range values
-maxExponent: 384
-minExponent: -383
-Precision: 16
-
-lnx0901 ln 1e-400 -> -921.0340371976183 Inexact Rounded
-lnx0902 ln 1e+400 -> 921.0340371976183 Inexact Rounded
-lnx0903 ln 1e-999999 -> -2302582.790408953 Inexact Rounded
-lnx0904 ln 1e+999999 -> 2302582.790408953 Inexact Rounded
-lnx0905 ln 1e-1000013 -> -2302615.026600255 Inexact Rounded
-lnx0906 ln 2e-1000013 -> -2302614.333453074 Inexact Rounded
-
-lnx0910 ln 9.999999e+999999 -> 2302585.092993946 Inexact Rounded
-lnx0911 ln 9.9999999e+999999 -> 2302585.092994036 Inexact Rounded
-lnx0912 ln 9.99999999e+999999 -> 2302585.092994045 Inexact Rounded
-lnx0913 ln 9.999999999e+999999 -> 2302585.092994046 Inexact Rounded
-lnx0914 ln 9.999999999999e+999999 -> 2302585.092994046 Inexact Rounded
-lnx0915 ln 9.999999999999999e+999999 -> 2302585.092994046 Inexact Rounded
-lnx0916 ln 9.999999999999999999999999e+999999 -> 2302585.092994046 Inexact Rounded
-
--- randoms
--- P=50, within 0-999
-Precision: 50
-maxExponent: 384
-minExponent: -383
-lnx1501 ln 0.00098800906574486388604608477869812518857023768951 -> -6.9198186844033787995945147836955586009548513043689 Inexact Rounded
-lnx1502 ln 158.15866624664623070184595045304145949900714987827 -> 5.0635987458895647454907806507503825602758392287684 Inexact Rounded
-lnx1503 ln 0.00565661412059571925040285814021799775249288309321 -> -5.1749297776760632102047540300491550931651318975237 Inexact Rounded
-lnx1504 ln 0.00000006914232532620489602008402091666547903180607 -> -16.487098770877825308138976818688771638172333034347 Inexact Rounded
-lnx1505 ln 0.00025380374621297657504661540749355251231770070723 -> -8.2789492423005003205242162741569033124260321954589 Inexact Rounded
-lnx1506 ln 83.033654063877426261108592599182418953442677554806 -> 4.4192459962647137976949249810815698465031609843669 Inexact Rounded
-lnx1507 ln 0.00000000416863228092481651627734668440663678118729 -> -19.295677845122141772791294599714950175284915666430 Inexact Rounded
-lnx1508 ln 0.00000140847873187820570181214271960511080523457669 -> -13.473000349581967189668305314384952251556809480339 Inexact Rounded
-lnx1509 ln 66.176106555181527101630351127583944689752069132522 -> 4.1923194696232505883666171116966137694013431504252 Inexact Rounded
-lnx1510 ln 0.00000000000009899043487403590900111602024562297908 -> -29.943753166877840985821508112917991506656545174163 Inexact Rounded
-lnx1511 ln 0.00000000000324618296721747097510453388683912733569 -> -26.453541281444586819009546418577507163362590139422 Inexact Rounded
-lnx1512 ln 72.646968818463546449499147579023555008392860423385 -> 4.2856116660689646882852128853423566276718230426479 Inexact Rounded
-lnx1513 ln 0.00000000000000066755483124635612574263153825990523 -> -34.942910142802769319262875080398852491588707172483 Inexact Rounded
-lnx1514 ln 61.002910447202398204114909451851111424657671911002 -> 4.1109215752843377323363182051446177066434038096529 Inexact Rounded
-lnx1515 ln 917.06917611331980999227893584010544542312239174774 -> 6.8211829068303114128752453661946446979787826282907 Inexact Rounded
-lnx1516 ln 0.00000000170823794883673083358549749078972003965194 -> -20.187803436976150477297246666771626827057191023004 Inexact Rounded
-lnx1517 ln 0.53731767845358224445809761315159249898566542910649 -> -0.62116577939968409211736413628236285160048357000961 Inexact Rounded
-lnx1518 ln 0.00000000000000008965291392882804161299758708033373 -> -36.950585970980857376081265073276303670820056916206 Inexact Rounded
-lnx1519 ln 0.00000000006990244916026429904498278982530170295668 -> -23.383920429244457578373523508427783144589480420753 Inexact Rounded
-lnx1520 ln 4.0312542977070300070506064666536478373801988540614 -> 1.3940775676592451945795752796421391871302024763305 Inexact Rounded
-lnx1521 ln 271.84991311551875601432518819562391699324632396423 -> 5.6052501239873862517916679747146539808077431873478 Inexact Rounded
-lnx1522 ln 7.4118671629373864667229445746862314443895404818689 -> 2.0030823863706344628239147639318289961917060121141 Inexact Rounded
-lnx1523 ln 0.00000000000002026311452625364905357321664186034258 -> -31.529974180054438792043856877314043794320951134754 Inexact Rounded
-lnx1524 ln 0.00000000000009563398651261756952398250624737809347 -> -29.978248130576972953141284136962670021368834792579 Inexact Rounded
-lnx1525 ln 0.00000000009556772669409858653026558223465197808991 -> -23.071185939748285541228206161472956661196956741186 Inexact Rounded
-lnx1526 ln 6.8441648298027301292342057248737326152250794026761 -> 1.9233964395801946597272589473417948024361005082908 Inexact Rounded
-lnx1527 ln 0.00000000000073059699884439979394945822035704264577 -> -27.944914388353724718836101828677771967128509603158 Inexact Rounded
-lnx1528 ln 0.00000000000000002610078280419082263138064745416787 -> -38.184566367516207885573773320135965798717120735115 Inexact Rounded
-lnx1529 ln 0.00000000000000000150259517166294243088546806083283 -> -41.039337946266676108538170837580051699618334928421 Inexact Rounded
-lnx1530 ln 0.00000000000000087919160541714580707181969708502091 -> -34.667528818827671507514319744047440696187358676848 Inexact Rounded
-lnx1531 ln 0.00000000000395726725120787763271849577708068584598 -> -26.255467416961357741818735787226671938678424748431 Inexact Rounded
-lnx1532 ln 0.00000000002014334901669366218018377213150715938355 -> -24.628146955635359035289123027319969201693737159108 Inexact Rounded
-lnx1533 ln 0.00000008097927101101093117753938766241442896030637 -> -16.329072628469715178637178365710373398203190937454 Inexact Rounded
-lnx1534 ln 0.00000000000017115834162632864392039668116243984176 -> -29.396187292434898225453626794459285157263177528034 Inexact Rounded
-lnx1535 ln 0.39168317593866334087305459933723864294857086105035 -> -0.93730199062757240485836637306785037368746737693029 Inexact Rounded
-lnx1536 ln 79.335036798971515026519630103325369729637514127617 -> 4.3736798570287828823772149735170431010616961976965 Inexact Rounded
-lnx1537 ln 0.00000000000000056004952129926137413602116591493625 -> -35.118506463181870020730685884333000241039028127213 Inexact Rounded
-lnx1538 ln 0.00000006006035907843890918832481099660639553666078 -> -16.627915795747112566532705974853114454405010472043 Inexact Rounded
-lnx1539 ln 0.00000000085242024937414906371333826574632450587590 -> -20.882941460268101080186482230657774997273494107221 Inexact Rounded
-lnx1540 ln 0.00000000000043671099499262350316173246550771951561 -> -28.459504757285639221776305968469058854558726593945 Inexact Rounded
-
--- P=34, within 0-999
-Precision: 34
-lnx1201 ln 0.0086732880815927182997566810334394 -> -4.747507311920844752486938187973721 Inexact Rounded
-lnx1202 ln 0.0007104103693460260609792222569854 -> -7.249667769903503023005549250347695 Inexact Rounded
-lnx1203 ln 786.8398945385105190697541493392742 -> 6.668024790031836340471824147010546 Inexact Rounded
-lnx1204 ln 0.7723073620282687656895190171967399 -> -0.2583726708506850868786816238217326 Inexact Rounded
-lnx1205 ln 0.0061057951517197631287183938412200 -> -5.098516933918797347064454103742635 Inexact Rounded
-lnx1206 ln 0.6181379708184393730103917562498745 -> -0.4810435926903365087463387760350021 Inexact Rounded
-lnx1207 ln 09.13888261229039989110753389096760 -> 2.212538125507975574509563027696021 Inexact Rounded
-lnx1208 ln 802.0105417063143696497292158147174 -> 6.687121752052341737234832203350214 Inexact Rounded
-lnx1209 ln 778.7749710387773713523028497333058 -> 6.657722135126935472086625031413031 Inexact Rounded
-lnx1210 ln 0.0024457295895346502513567679390616 -> -6.013411799940245345321348290398517 Inexact Rounded
-lnx1211 ln 0.0000511296947872828310338864217860 -> -9.881145118237281798081573131711636 Inexact Rounded
-lnx1212 ln 0.0000246803508602554924938685155658 -> -10.60950314264825661825360971430218 Inexact Rounded
-lnx1213 ln 9.027898199253511668242977766616082 -> 2.200319582778899029786017830557293 Inexact Rounded
-lnx1214 ln 0.0991812396542505631850692800904188 -> -2.310806398964672258823043180400384 Inexact Rounded
-lnx1215 ln 0.0000000000070238810143028811223924 -> -25.68170519961636647174714538290075 Inexact Rounded
-lnx1216 ln 2.630101665342826494730394729313167 -> 0.9670225014664367465128243039749559 Inexact Rounded
-lnx1217 ln 0.0056878928594359587691526063254683 -> -5.169415422904037819736637399445096 Inexact Rounded
-lnx1218 ln 567.3436047121057843908106573095590 -> 6.340965124964258486463444360787970 Inexact Rounded
-lnx1219 ln 1.199291248124655996614605745649725 -> 0.1817307557425911805765087755675657 Inexact Rounded
-lnx1220 ln 25.02050448582031098696267479135557 -> 3.219695668137659139544178905459317 Inexact Rounded
-lnx1221 ln 0.0000000000009939597023558756961300 -> -27.63707972996537636504396558259058 Inexact Rounded
-lnx1222 ln 0.0000007988551670159429716506430403 -> -14.04008617542597230988198612376415 Inexact Rounded
-lnx1223 ln 4.681515800176129184873770605589795 -> 1.543621946415383338972124445445748 Inexact Rounded
-lnx1224 ln 15.95126669161103011206658749345781 -> 2.769538242479483539275986395443539 Inexact Rounded
-lnx1225 ln 0.0301626783922211213675457279076066 -> -3.501149933677283341023932281826341 Inexact Rounded
-lnx1226 ln 000.0040544064881821770528475185674 -> -5.507950967557021671647165889608324 Inexact Rounded
-lnx1227 ln 29.01617095935593792095913785100360 -> 3.367853293862745651888450004473297 Inexact Rounded
-lnx1228 ln 78.01836167344736733024804243195323 -> 4.356944205055768575987781375003992 Inexact Rounded
-lnx1229 ln 0.0000000096545319316965321158634893 -> -18.45583840160965814462095477365013 Inexact Rounded
-lnx1230 ln 97.95475237720579752770587185074428 -> 4.584505661612812742208619358214729 Inexact Rounded
-lnx1231 ln 528.0609262050423246402564228432371 -> 6.269211667589138113396583894315956 Inexact Rounded
-lnx1232 ln 0.0000002250064349732969696660452972 -> -15.30713683526963996712167701738724 Inexact Rounded
-lnx1233 ln 47.97063637767998658567199049725754 -> 3.870589081585660692195989854842372 Inexact Rounded
-lnx1234 ln 0.0005394311344541432318853513414361 -> -7.524995428393925934087126702974121 Inexact Rounded
-lnx1235 ln 0.0000000090973385649567471674972633 -> -18.51528393158931783447035004125791 Inexact Rounded
-lnx1236 ln 0.0000000000238776490227576197317977 -> -24.45807828188389561331158879207262 Inexact Rounded
-lnx1237 ln 0.0000236587000231921532145326218758 -> -10.65177964499823314952429277979034 Inexact Rounded
-lnx1238 ln 499.1277448846130709827154556125942 -> 6.212862064761427967461188083514774 Inexact Rounded
-lnx1239 ln 0.0000003960192300284787663712417647 -> -14.74180306619298548093697608293284 Inexact Rounded
-lnx1240 ln 41.08268350829477451667228892495136 -> 3.715586706887278039173584859218960 Inexact Rounded
-
--- P=16, within 0-99
-Precision: 16
-lnx1101 ln 7.964875261033948 -> 2.075041282352241 Inexact Rounded
-lnx1102 ln 13.54527396845394 -> 2.606037701870263 Inexact Rounded
-lnx1103 ln 0.0008026554341331 -> -7.127585034321814 Inexact Rounded
-lnx1104 ln 0.0000030582233261 -> -12.69767642300625 Inexact Rounded
-lnx1105 ln 0.0004477497509672 -> -7.711276073210766 Inexact Rounded
-lnx1106 ln 7.616268622474371 -> 2.030286567675148 Inexact Rounded
-lnx1107 ln 51.58329925806381 -> 3.943197962309569 Inexact Rounded
-lnx1108 ln 0.0018197497951263 -> -6.309056262549345 Inexact Rounded
-lnx1109 ln 2.956282457072984 -> 1.083932552334575 Inexact Rounded
-lnx1110 ln 0.3843325579189906 -> -0.9562470649400558 Inexact Rounded
-lnx1111 ln 0.0074466329265663 -> -4.899993304919237 Inexact Rounded
-lnx1112 ln 0.0003372478532993 -> -7.994692428206378 Inexact Rounded
-lnx1113 ln 0.0084792263167809 -> -4.770136069569271 Inexact Rounded
-lnx1114 ln 5.926756998151102 -> 1.779477182834305 Inexact Rounded
-lnx1115 ln 9.025699152180897 -> 2.200075969604119 Inexact Rounded
-lnx1116 ln 1.910124643533526 -> 0.6471684983238183 Inexact Rounded
-lnx1117 ln 0.8158922711411020 -> -0.2034729533939387 Inexact Rounded
-lnx1118 ln 0.0067080016475322 -> -5.004454189414139 Inexact Rounded
-lnx1119 ln 0.0047583242092716 -> -5.347859729601094 Inexact Rounded
-lnx1120 ln 0.0386647411641339 -> -3.252827175263113 Inexact Rounded
-lnx1121 ln 0.0050226427841761 -> -5.293799032774131 Inexact Rounded
-lnx1122 ln 6.927937541637261 -> 1.935562155866906 Inexact Rounded
-lnx1123 ln 0.0000095745343513 -> -11.55640365579814 Inexact Rounded
-lnx1124 ln 1.602465492956538 -> 0.4715433763243936 Inexact Rounded
-lnx1125 ln 38.98415625087535 -> 3.663155313610213 Inexact Rounded
-lnx1126 ln 5.343182042276734 -> 1.675821363568112 Inexact Rounded
-lnx1127 ln 55.89763703245816 -> 4.023522107934110 Inexact Rounded
-lnx1128 ln 0.7445257810280847 -> -0.2950077988101030 Inexact Rounded
-lnx1129 ln 1.631407314946094 -> 0.4894430257201248 Inexact Rounded
-lnx1130 ln 0.0005462451932602 -> -7.512442611116852 Inexact Rounded
-lnx1131 ln 0.0000864173269362 -> -9.356322359017317 Inexact Rounded
-lnx1132 ln 5.227161719132849 -> 1.653868438439637 Inexact Rounded
-lnx1133 ln 60.57078466941998 -> 4.103812675662452 Inexact Rounded
-lnx1134 ln 0.0992864325333160 -> -2.309746348350318 Inexact Rounded
-lnx1135 ln 09.48564268447325 -> 2.249779359074983 Inexact Rounded
-lnx1136 ln 0.0036106089355634 -> -5.623878840650787 Inexact Rounded
-lnx1137 ln 1.805176865587172 -> 0.5906585734593707 Inexact Rounded
-lnx1138 ln 62.59363259642255 -> 4.136663557220559 Inexact Rounded
-lnx1139 ln 4.373828261137201 -> 1.475638657912000 Inexact Rounded
-lnx1140 ln 0.994483524148738 -> -0.005531747794938690 Inexact Rounded
-
--- P=7, within 0-9
-Precision: 7
-lnx1001 ln 0.0912025 -> -2.394673 Inexact Rounded
-lnx1002 ln 0.9728626 -> -0.02751242 Inexact Rounded
-lnx1003 ln 0.3886032 -> -0.9451965 Inexact Rounded
-lnx1004 ln 8.798639 -> 2.174597 Inexact Rounded
-lnx1005 ln 2.459121 -> 0.8998040 Inexact Rounded
-lnx1006 ln 2.013193 -> 0.6997220 Inexact Rounded
-lnx1007 ln 9.064857 -> 2.204405 Inexact Rounded
-lnx1008 ln 5.796417 -> 1.757240 Inexact Rounded
-lnx1009 ln 0.1143471 -> -2.168517 Inexact Rounded
-lnx1010 ln 0.5341542 -> -0.6270707 Inexact Rounded
-lnx1011 ln 6.693781 -> 1.901179 Inexact Rounded
-lnx1012 ln 0.0081779 -> -4.806320 Inexact Rounded
-lnx1013 ln 8.313616 -> 2.117895 Inexact Rounded
-lnx1014 ln 3.486925 -> 1.249020 Inexact Rounded
-lnx1015 ln 0.1801401 -> -1.714020 Inexact Rounded
-lnx1016 ln 0.5227148 -> -0.6487193 Inexact Rounded
-lnx1017 ln 7.818111 -> 2.056443 Inexact Rounded
-lnx1018 ln 0.0870671 -> -2.441076 Inexact Rounded
-lnx1019 ln 8.153966 -> 2.098504 Inexact Rounded
-lnx1020 ln 2.040975 -> 0.7134276 Inexact Rounded
-lnx1021 ln 1.481642 -> 0.3931509 Inexact Rounded
-lnx1022 ln 0.2610123 -> -1.343188 Inexact Rounded
-lnx1023 ln 0.466723 -> -0.7620193 Inexact Rounded
-lnx1024 ln 0.0518756 -> -2.958907 Inexact Rounded
-lnx1025 ln 2.056410 -> 0.7209617 Inexact Rounded
-lnx1026 ln 0.181522 -> -1.706378 Inexact Rounded
-lnx1027 ln 0.515551 -> -0.6625190 Inexact Rounded
-lnx1028 ln 8.425089 -> 2.131214 Inexact Rounded
-lnx1029 ln 2.077091 -> 0.7309684 Inexact Rounded
-lnx1030 ln 6.212705 -> 1.826596 Inexact Rounded
-lnx1031 ln 5.729343 -> 1.745601 Inexact Rounded
-lnx1032 ln 4.831251 -> 1.575105 Inexact Rounded
-lnx1033 ln 2.029760 -> 0.7079176 Inexact Rounded
-lnx1034 ln 8.615060 -> 2.153512 Inexact Rounded
-lnx1035 ln 0.0611511 -> -2.794407 Inexact Rounded
-lnx1036 ln 5.195269 -> 1.647748 Inexact Rounded
-lnx1037 ln 9.617686 -> 2.263604 Inexact Rounded
-lnx1038 ln 0.0049382 -> -5.310754 Inexact Rounded
-lnx1039 ln 2.786840 -> 1.024908 Inexact Rounded
-lnx1040 ln 0.0091073 -> -4.698679 Inexact Rounded
-
--- from here 3-digit tests are based on reverse exp tests
-precision: 9
-rounding: half_even
-maxExponent: 384
-minexponent: -383
-
-lnx001 ln 0 -> -Infinity
-lnx002 ln 0.367879441 -> -1.00000000 Inexact Rounded
-lnx003 ln 1 -> 0
-lnx005 ln 2.71828183 -> 1.00000000 Inexact Rounded
-lnx006 ln 2.00000000 -> 0.693147181 Inexact Rounded
-lnx007 ln +Infinity -> Infinity
-
--- tiny edge cases
-precision: 7
-lnx011 ln 1.105171 -> 0.1000001 Inexact Rounded
-lnx012 ln 1.010050 -> 0.009999835 Inexact Rounded
-lnx013 ln 1.000010 -> 0.000009999950 Inexact Rounded
-lnx014 ln 1.000001 -> 9.999995E-7 Inexact Rounded
-lnx015 ln 1.000000 -> 0
-
--- basic e=0, e=1, e=2, e=4, e>=8 cases
-precision: 7
-lnx041 ln 2.718282 -> 1.000000 Inexact Rounded
-lnx042 ln 0.3678794 -> -1.000000 Inexact Rounded
-lnx043 ln 22026.47 -> 10.00000 Inexact Rounded
-lnx044 ln 0.00004539993 -> -10.00000 Inexact Rounded
-lnx045 ln 2.688117E+43 -> 100.0000 Inexact Rounded
-lnx046 ln 3.720076E-44 -> -100.0000 Inexact Rounded
-lnx047 ln Infinity -> Infinity
-lnx048 ln 0E-389 -> -Infinity
-
--- miscellanea
-precision: 16
-lnx055 ln 2.717658486884572E-236 -> -542.4103112874415 Inexact Rounded
-precision: 17
-lnx056 ln 2.7176584868845721E-236 -> -542.41031128744146 Inexact Rounded
-precision: 18
-lnx057 ln 2.71765848688457211E-236 -> -542.410311287441459 Inexact Rounded
-precision: 19
-lnx058 ln 2.717658486884572112E-236 -> -542.4103112874414592 Inexact Rounded
-precision: 20
-lnx059 ln 2.7176584868845721118E-236 -> -542.41031128744145917 Inexact Rounded
-
--- inputs ending in ..500.., ..499.., ..100.., ..999.. sequences
-precision: 50
-lnx102 ln 0.9999999100000040499998785000027 -> -9.0000000000000000000000033749953829996446124861750E-8 Inexact Rounded
-precision: 30
-lnx103 ln 0.999999910000004049999878500003 -> -8.99999999999999999999997337499E-8 Inexact Rounded
-precision: 29
-lnx104 ln 0.99999991000000404999987850000 -> -9.0000000000000000000002733750E-8 Inexact Rounded
-precision: 28
-lnx105 ln 0.9999999100000040499998785000 -> -9.000000000000000000000273375E-8 Inexact Rounded
-precision: 27
-lnx106 ln 0.999999910000004049999878500 -> -9.00000000000000000000027338E-8 Inexact Rounded
-precision: 26
-lnx107 ln 0.99999991000000404999987850 -> -9.0000000000000000000002734E-8 Inexact Rounded
-precision: 25
-lnx108 ln 0.9999999100000040499998785 -> -9.000000000000000000000273E-8 Inexact Rounded
-precision: 24
-lnx109 ln 0.999999910000004049999879 -> -8.99999999999999995000027E-8 Inexact Rounded
-precision: 23
-lnx110 ln 0.99999991000000404999988 -> -8.9999999999999998500003E-8 Inexact Rounded
-precision: 22
-lnx111 ln 0.9999999100000040499999 -> -8.999999999999997850000E-8 Inexact Rounded
-precision: 21
-lnx112 ln 0.999999910000004050000 -> -8.99999999999998785000E-8 Inexact Rounded
-precision: 20
-lnx113 ln 0.99999991000000405000 -> -8.9999999999999878500E-8 Inexact Rounded
-precision: 19
-lnx114 ln 0.9999999100000040500 -> -8.999999999999987850E-8 Inexact Rounded
-precision: 18
-lnx115 ln 0.999999910000004050 -> -8.99999999999998785E-8 Inexact Rounded
--- next may be a > 0.5ulp case; a more precise answer is:
--- -8.99999999999998784999918E-8
-precision: 17
-lnx116 ln 0.99999991000000405 -> -8.9999999999999878E-8 Inexact Rounded
-precision: 16
-lnx117 ln 0.9999999100000040 -> -9.000000004999988E-8 Inexact Rounded
-precision: 15
-lnx118 ln 0.999999910000004 -> -9.00000000499999E-8 Inexact Rounded
-precision: 14
-lnx119 ln 0.99999991000000 -> -9.0000004050000E-8 Inexact Rounded
-precision: 13
-lnx120 ln 0.9999999100000 -> -9.000000405000E-8 Inexact Rounded
-precision: 12
-lnx121 ln 0.999999910000 -> -9.00000040500E-8 Inexact Rounded
-precision: 11
-lnx122 ln 0.99999991000 -> -9.0000004050E-8 Inexact Rounded
-precision: 10
-lnx123 ln 0.9999999100 -> -9.000000405E-8 Inexact Rounded
-precision: 9
-lnx124 ln 0.999999910 -> -9.00000041E-8 Inexact Rounded
-precision: 8
-lnx125 ln 0.99999991 -> -9.0000004E-8 Inexact Rounded
-precision: 7
-lnx126 ln 0.9999999 -> -1.000000E-7 Inexact Rounded
-precision: 16
-lnx126b ln 0.9999999 -> -1.000000050000003E-7 Inexact Rounded
-precision: 6
-lnx127 ln 0.999999 -> -0.00000100000 Inexact Rounded
-precision: 5
-lnx128 ln 0.99999 -> -0.000010000 Inexact Rounded
-precision: 4
-lnx129 ln 0.9999 -> -0.0001000 Inexact Rounded
-precision: 3
-lnx130 ln 0.999 -> -0.00100 Inexact Rounded
-precision: 2
-lnx131 ln 0.99 -> -0.010 Inexact Rounded
-precision: 1
-lnx132 ln 0.9 -> -0.1 Inexact Rounded
-
-
--- cases near 1 -- 1 2345678901234567890
-precision: 20
-lnx401 ln 2.7182818284589365041 -> 0.99999999999996000000 Inexact Rounded
-lnx402 ln 2.7182818284589636869 -> 0.99999999999997000000 Inexact Rounded
-lnx403 ln 2.7182818284589908697 -> 0.99999999999997999999 Inexact Rounded
-lnx404 ln 2.7182818284590180525 -> 0.99999999999998999998 Inexact Rounded
-lnx405 ln 2.7182818284590452354 -> 1.0000000000000000000 Inexact Rounded
-lnx406 ln 2.7182818284593170635 -> 1.0000000000001000000 Inexact Rounded
-lnx407 ln 2.7182818284595888917 -> 1.0000000000002000000 Inexact Rounded
-precision: 14
-lnx411 ln 2.7182818284589 -> 0.99999999999995 Inexact Rounded
-lnx413 ln 2.7182818284590 -> 0.99999999999998 Inexact Rounded
-lnx416 ln 2.7182818284591 -> 1.0000000000000 Inexact Rounded
-lnx417 ln 2.7182818284592 -> 1.0000000000001 Inexact Rounded
-
--- overflows, including some exp overprecise borderlines
-precision: 7
-maxExponent: 384
-minExponent: -383
-lnx709 ln 9.999999E+384 -> 886.4953 Inexact Rounded
-lnx711 ln 9.999992E+384 -> 886.4953 Inexact Rounded
-precision: 16
-lnx722 ln 9.999999999999999E+384 -> 886.4952608027076 Inexact Rounded
-lnx724 ln 9.999999999999917E+384 -> 886.4952608027076 Inexact Rounded
-lnx726 ln 9.999999999999117E+384 -> 886.4952608027075 Inexact Rounded
--- and more...
-precision: 15
-maxExponent: 999
-minExponent: -999
-lnx731 ln 9.99999999999999E+999 -> 2302.58509299405 Inexact Rounded
--- next may be a > 0.5ulp case; a more precise answer is:
--- 2302.58509299404495001799145442
-lnx732 ln 9.99999999999266E+999 -> 2302.58509299404 Inexact Rounded
-lnx733 ln 9.99999999999265E+999 -> 2302.58509299404 Inexact Rounded
-lnx734 ln 9.99999999999264E+999 -> 2302.58509299404 Inexact Rounded
-
--- subnormals and underflows for exp, including underflow-to-zero edge point
-precision: 7
-maxExponent: 384
-minExponent: -383
-lnx751 ln 0E-389 -> -Infinity
-lnx758 ln 1.000001E-383 -> -881.8901 Inexact Rounded
-lnx759 ln 9.99991E-384 -> -881.8901 Inexact Rounded
-lnx760 ln 4.4605E-385 -> -885.0000 Inexact Rounded
-lnx761 ln 2.221E-386 -> -887.9999 Inexact Rounded
-lnx762 ln 3.01E-387 -> -889.9985 Inexact Rounded
-lnx763 ln 1.7E-388 -> -892.8724 Inexact Rounded
-lnx764 ln 1.5E-388 -> -892.9976 Inexact Rounded
-lnx765 ln 9E-389 -> -893.5084 Inexact Rounded
-lnx766 ln 1E-389 -> -895.7056 Inexact Rounded
-lnx774 ln 0E-389 -> -Infinity
-
--- special values
-lnx820 ln Infinity -> Infinity
-lnx821 ln 0 -> -Infinity
-lnx822 ln NaN -> NaN
-lnx823 ln sNaN -> NaN Invalid_operation
--- propagating NaNs
-lnx824 ln sNaN123 -> NaN123 Invalid_operation
-lnx825 ln -sNaN321 -> -NaN321 Invalid_operation
-lnx826 ln NaN456 -> NaN456
-lnx827 ln -NaN654 -> -NaN654
-lnx828 ln NaN1 -> NaN1
-
--- Invalid operations due to restrictions
--- [next two probably skipped by most test harnesses]
-precision: 100000000
-lnx901 ln 1 -> NaN Invalid_context
-precision: 99999999
-lnx902 ln 0 -> NaN Invalid_context
-
-precision: 9
-maxExponent: 1000000
-minExponent: -999999
-lnx903 ln 1 -> NaN Invalid_context
-maxExponent: 999999
-minExponent: -999999
-lnx904 ln 0 -> -Infinity
-maxExponent: 999999
-minExponent: -1000000
-lnx905 ln 1 -> NaN Invalid_context
-maxExponent: 999999
-minExponent: -999998
-lnx906 ln 0 -> -Infinity
-
--- payload decapitate
-precision: 5
-lnx910 ln -sNaN1234567890 -> -NaN67890 Invalid_operation
-
--- Null test
-lnx900 ln # -> NaN Invalid_operation
-
-
+------------------------------------------------------------------------ +-- ln.decTest -- decimal natural logarithm -- +-- Copyright (c) IBM Corporation, 2005, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +extended: 1 +precision: 16 +rounding: half_even +maxExponent: 384 +minexponent: -383 + +-- basics (examples in specification) +precision: 9 +lnxs001 ln 0 -> -Infinity +lnxs002 ln 1.000 -> 0 +lnxs003 ln 2.71828183 -> 1.00000000 Inexact Rounded +lnxs004 ln 10 -> 2.30258509 Inexact Rounded +lnxs005 ln +Infinity -> Infinity + + +-- basics +precision: 16 +lnx0001 ln 0 -> -Infinity +lnx0002 ln 1E-9 -> -20.72326583694641 Inexact Rounded +lnx0003 ln 0.0007 -> -7.264430222920869 Inexact Rounded +lnx0004 ln 0.1 -> -2.302585092994046 Inexact Rounded +lnx0005 ln 0.7 -> -0.3566749439387324 Inexact Rounded +lnx0006 ln 1 -> 0 +lnx0007 ln 1.000 -> 0 +lnx0008 ln 1.5 -> 0.4054651081081644 Inexact Rounded +lnx0009 ln 2 -> 0.6931471805599453 Inexact Rounded +lnx0010 ln 2.718281828459045 -> 0.9999999999999999 Inexact Rounded +lnx0011 ln 2.718281828459046 -> 1.000000000000000 Inexact Rounded +lnx0012 ln 2.718281828459047 -> 1.000000000000001 Inexact Rounded +lnx0013 ln 10 -> 2.302585092994046 Inexact Rounded +lnx0014 ln 10.5 -> 2.351375257163478 Inexact Rounded +lnx0015 ln 9999 -> 9.210240366975849 Inexact Rounded +lnx0016 ln 1E6 -> 13.81551055796427 Inexact Rounded +lnx0017 ln 1E+9 -> 20.72326583694641 Inexact Rounded +lnx0018 ln +Infinity -> Infinity + +-- notable cases +-- negatives +lnx0021 ln -1E-9 -> NaN Invalid_operation +lnx0022 ln -0.0007 -> NaN Invalid_operation +lnx0023 ln -0.1 -> NaN Invalid_operation +lnx0024 ln -0.7 -> NaN Invalid_operation +lnx0025 ln -1 -> NaN Invalid_operation +lnx0026 ln -1.5 -> NaN Invalid_operation +lnx0027 ln -2 -> NaN Invalid_operation +lnx0029 ln -10.5 -> NaN Invalid_operation +lnx0028 ln -9999 -> NaN Invalid_operation +lnx0030 ln -2.718281828459045 -> NaN Invalid_operation +lnx0031 ln -2.718281828459046 -> NaN Invalid_operation +lnx0032 ln -0 -> -Infinity +lnx0033 ln -0E+17 -> -Infinity +lnx0034 ln -0E-17 -> -Infinity +-- other zeros +lnx0041 ln 0 -> -Infinity +lnx0042 ln 0E+17 -> -Infinity +lnx0043 ln 0E-17 -> -Infinity +-- infinities +lnx0045 ln -Infinity -> NaN Invalid_operation +lnx0046 ln +Infinity -> Infinity +-- ones +lnx0050 ln 1 -> 0 +lnx0051 ln 1.0 -> 0 +lnx0052 ln 1.000000000000000 -> 0 +lnx0053 ln 1.000000000000000000 -> 0 + +-- lower precision basics +Precision: 7 +lnx0101 ln 0 -> -Infinity +lnx0102 ln 1E-9 -> -20.72327 Inexact Rounded +lnx0103 ln 0.0007 -> -7.264430 Inexact Rounded +lnx0104 ln 0.1 -> -2.302585 Inexact Rounded +lnx0105 ln 0.7 -> -0.3566749 Inexact Rounded +lnx0106 ln 1 -> 0 +lnx0107 ln 1.5 -> 0.4054651 Inexact Rounded +lnx0108 ln 2 -> 0.6931472 Inexact Rounded +lnx0109 ln 2.718281828459045 -> 1.000000 Inexact Rounded +lnx0110 ln 2.718281828459046 -> 1.000000 Inexact Rounded +lnx0111 ln 2.718281828459047 -> 1.000000 Inexact Rounded +lnx0112 ln 10 -> 2.302585 Inexact Rounded +lnx0113 ln 10.5 -> 2.351375 Inexact Rounded +lnx0114 ln 9999 -> 9.210240 Inexact Rounded +lnx0115 ln 1E6 -> 13.81551 Inexact Rounded +lnx0116 ln 1E+9 -> 20.72327 Inexact Rounded +lnx0117 ln +Infinity -> Infinity +Precision: 2 +lnx0121 ln 0 -> -Infinity +lnx0122 ln 1E-9 -> -21 Inexact Rounded +lnx0123 ln 0.0007 -> -7.3 Inexact Rounded +lnx0124 ln 0.1 -> -2.3 Inexact Rounded +lnx0125 ln 0.7 -> -0.36 Inexact Rounded +lnx0126 ln 1 -> 0 +lnx0127 ln 1.5 -> 0.41 Inexact Rounded +lnx0128 ln 2 -> 0.69 Inexact Rounded +lnx0129 ln 2.718281828459045 -> 1.0 Inexact Rounded +lnx0130 ln 2.718281828459046 -> 1.0 Inexact Rounded +lnx0131 ln 2.718281828459047 -> 1.0 Inexact Rounded +lnx0132 ln 10 -> 2.3 Inexact Rounded +lnx0133 ln 10.5 -> 2.4 Inexact Rounded +lnx0134 ln 9999 -> 9.2 Inexact Rounded +lnx0135 ln 1E6 -> 14 Inexact Rounded +lnx0136 ln 1E+9 -> 21 Inexact Rounded +lnx0137 ln +Infinity -> Infinity +Precision: 1 +lnx0141 ln 0 -> -Infinity +lnx0142 ln 1E-9 -> -2E+1 Inexact Rounded +lnx0143 ln 0.0007 -> -7 Inexact Rounded +lnx0144 ln 0.1 -> -2 Inexact Rounded +lnx0145 ln 0.7 -> -0.4 Inexact Rounded +lnx0146 ln 1 -> 0 +lnx0147 ln 1.5 -> 0.4 Inexact Rounded +lnx0148 ln 2 -> 0.7 Inexact Rounded +lnx0149 ln 2.718281828459045 -> 1 Inexact Rounded +lnx0150 ln 2.718281828459046 -> 1 Inexact Rounded +lnx0151 ln 2.718281828459047 -> 1 Inexact Rounded +lnx0152 ln 10 -> 2 Inexact Rounded +lnx0153 ln 10.5 -> 2 Inexact Rounded +lnx0154 ln 9999 -> 9 Inexact Rounded +lnx0155 ln 1E6 -> 1E+1 Inexact Rounded +lnx0156 ln 1E+9 -> 2E+1 Inexact Rounded +lnx0157 ln +Infinity -> Infinity + +-- group low-precision ln(1)s: +precision: 1 +lnx0161 ln 1 -> 0 +precision: 2 +lnx0162 ln 1 -> 0 +precision: 3 +lnx0163 ln 1 -> 0 +precision: 4 +lnx0164 ln 1 -> 0 +precision: 5 +lnx0165 ln 1 -> 0 +precision: 6 +lnx0166 ln 1 -> 0 +precision: 7 +lnx0167 ln 1 -> 0 +precision: 8 +lnx0168 ln 1 -> 0 + +-- edge-test ln(2) and ln(10) in case of lookasides +precision: 45 +lnx201 ln 2 -> 0.693147180559945309417232121458176568075500134 Inexact Rounded +lnx202 ln 10 -> 2.30258509299404568401799145468436420760110149 Inexact Rounded +precision: 44 +lnx203 ln 2 -> 0.69314718055994530941723212145817656807550013 Inexact Rounded +lnx204 ln 10 -> 2.3025850929940456840179914546843642076011015 Inexact Rounded +precision: 43 +lnx205 ln 2 -> 0.6931471805599453094172321214581765680755001 Inexact Rounded +lnx206 ln 10 -> 2.302585092994045684017991454684364207601101 Inexact Rounded +precision: 42 +lnx207 ln 2 -> 0.693147180559945309417232121458176568075500 Inexact Rounded +lnx208 ln 10 -> 2.30258509299404568401799145468436420760110 Inexact Rounded +precision: 41 +lnx209 ln 2 -> 0.69314718055994530941723212145817656807550 Inexact Rounded +lnx210 ln 10 -> 2.3025850929940456840179914546843642076011 Inexact Rounded +precision: 40 +lnx211 ln 2 -> 0.6931471805599453094172321214581765680755 Inexact Rounded +lnx212 ln 10 -> 2.302585092994045684017991454684364207601 Inexact Rounded +precision: 39 +lnx213 ln 2 -> 0.693147180559945309417232121458176568076 Inexact Rounded +lnx214 ln 10 -> 2.30258509299404568401799145468436420760 Inexact Rounded +precision: 38 +lnx215 ln 2 -> 0.69314718055994530941723212145817656808 Inexact Rounded +lnx216 ln 10 -> 2.3025850929940456840179914546843642076 Inexact Rounded +precision: 37 +lnx217 ln 2 -> 0.6931471805599453094172321214581765681 Inexact Rounded +lnx218 ln 10 -> 2.302585092994045684017991454684364208 Inexact Rounded +precision: 36 +lnx219 ln 2 -> 0.693147180559945309417232121458176568 Inexact Rounded +lnx220 ln 10 -> 2.30258509299404568401799145468436421 Inexact Rounded +precision: 35 +lnx221 ln 2 -> 0.69314718055994530941723212145817657 Inexact Rounded +lnx222 ln 10 -> 2.3025850929940456840179914546843642 Inexact Rounded +precision: 34 +lnx223 ln 2 -> 0.6931471805599453094172321214581766 Inexact Rounded +lnx224 ln 10 -> 2.302585092994045684017991454684364 Inexact Rounded +precision: 33 +lnx225 ln 2 -> 0.693147180559945309417232121458177 Inexact Rounded +lnx226 ln 10 -> 2.30258509299404568401799145468436 Inexact Rounded +precision: 32 +lnx227 ln 2 -> 0.69314718055994530941723212145818 Inexact Rounded +lnx228 ln 10 -> 2.3025850929940456840179914546844 Inexact Rounded +precision: 31 +lnx229 ln 2 -> 0.6931471805599453094172321214582 Inexact Rounded +lnx230 ln 10 -> 2.302585092994045684017991454684 Inexact Rounded +precision: 30 +lnx231 ln 2 -> 0.693147180559945309417232121458 Inexact Rounded +lnx232 ln 10 -> 2.30258509299404568401799145468 Inexact Rounded + +-- extreme input range values +maxExponent: 384 +minExponent: -383 +Precision: 16 + +lnx0901 ln 1e-400 -> -921.0340371976183 Inexact Rounded +lnx0902 ln 1e+400 -> 921.0340371976183 Inexact Rounded +lnx0903 ln 1e-999999 -> -2302582.790408953 Inexact Rounded +lnx0904 ln 1e+999999 -> 2302582.790408953 Inexact Rounded +lnx0905 ln 1e-1000013 -> -2302615.026600255 Inexact Rounded +lnx0906 ln 2e-1000013 -> -2302614.333453074 Inexact Rounded + +lnx0910 ln 9.999999e+999999 -> 2302585.092993946 Inexact Rounded +lnx0911 ln 9.9999999e+999999 -> 2302585.092994036 Inexact Rounded +lnx0912 ln 9.99999999e+999999 -> 2302585.092994045 Inexact Rounded +lnx0913 ln 9.999999999e+999999 -> 2302585.092994046 Inexact Rounded +lnx0914 ln 9.999999999999e+999999 -> 2302585.092994046 Inexact Rounded +lnx0915 ln 9.999999999999999e+999999 -> 2302585.092994046 Inexact Rounded +lnx0916 ln 9.999999999999999999999999e+999999 -> 2302585.092994046 Inexact Rounded + +-- randoms +-- P=50, within 0-999 +Precision: 50 +maxExponent: 384 +minExponent: -383 +lnx1501 ln 0.00098800906574486388604608477869812518857023768951 -> -6.9198186844033787995945147836955586009548513043689 Inexact Rounded +lnx1502 ln 158.15866624664623070184595045304145949900714987827 -> 5.0635987458895647454907806507503825602758392287684 Inexact Rounded +lnx1503 ln 0.00565661412059571925040285814021799775249288309321 -> -5.1749297776760632102047540300491550931651318975237 Inexact Rounded +lnx1504 ln 0.00000006914232532620489602008402091666547903180607 -> -16.487098770877825308138976818688771638172333034347 Inexact Rounded +lnx1505 ln 0.00025380374621297657504661540749355251231770070723 -> -8.2789492423005003205242162741569033124260321954589 Inexact Rounded +lnx1506 ln 83.033654063877426261108592599182418953442677554806 -> 4.4192459962647137976949249810815698465031609843669 Inexact Rounded +lnx1507 ln 0.00000000416863228092481651627734668440663678118729 -> -19.295677845122141772791294599714950175284915666430 Inexact Rounded +lnx1508 ln 0.00000140847873187820570181214271960511080523457669 -> -13.473000349581967189668305314384952251556809480339 Inexact Rounded +lnx1509 ln 66.176106555181527101630351127583944689752069132522 -> 4.1923194696232505883666171116966137694013431504252 Inexact Rounded +lnx1510 ln 0.00000000000009899043487403590900111602024562297908 -> -29.943753166877840985821508112917991506656545174163 Inexact Rounded +lnx1511 ln 0.00000000000324618296721747097510453388683912733569 -> -26.453541281444586819009546418577507163362590139422 Inexact Rounded +lnx1512 ln 72.646968818463546449499147579023555008392860423385 -> 4.2856116660689646882852128853423566276718230426479 Inexact Rounded +lnx1513 ln 0.00000000000000066755483124635612574263153825990523 -> -34.942910142802769319262875080398852491588707172483 Inexact Rounded +lnx1514 ln 61.002910447202398204114909451851111424657671911002 -> 4.1109215752843377323363182051446177066434038096529 Inexact Rounded +lnx1515 ln 917.06917611331980999227893584010544542312239174774 -> 6.8211829068303114128752453661946446979787826282907 Inexact Rounded +lnx1516 ln 0.00000000170823794883673083358549749078972003965194 -> -20.187803436976150477297246666771626827057191023004 Inexact Rounded +lnx1517 ln 0.53731767845358224445809761315159249898566542910649 -> -0.62116577939968409211736413628236285160048357000961 Inexact Rounded +lnx1518 ln 0.00000000000000008965291392882804161299758708033373 -> -36.950585970980857376081265073276303670820056916206 Inexact Rounded +lnx1519 ln 0.00000000006990244916026429904498278982530170295668 -> -23.383920429244457578373523508427783144589480420753 Inexact Rounded +lnx1520 ln 4.0312542977070300070506064666536478373801988540614 -> 1.3940775676592451945795752796421391871302024763305 Inexact Rounded +lnx1521 ln 271.84991311551875601432518819562391699324632396423 -> 5.6052501239873862517916679747146539808077431873478 Inexact Rounded +lnx1522 ln 7.4118671629373864667229445746862314443895404818689 -> 2.0030823863706344628239147639318289961917060121141 Inexact Rounded +lnx1523 ln 0.00000000000002026311452625364905357321664186034258 -> -31.529974180054438792043856877314043794320951134754 Inexact Rounded +lnx1524 ln 0.00000000000009563398651261756952398250624737809347 -> -29.978248130576972953141284136962670021368834792579 Inexact Rounded +lnx1525 ln 0.00000000009556772669409858653026558223465197808991 -> -23.071185939748285541228206161472956661196956741186 Inexact Rounded +lnx1526 ln 6.8441648298027301292342057248737326152250794026761 -> 1.9233964395801946597272589473417948024361005082908 Inexact Rounded +lnx1527 ln 0.00000000000073059699884439979394945822035704264577 -> -27.944914388353724718836101828677771967128509603158 Inexact Rounded +lnx1528 ln 0.00000000000000002610078280419082263138064745416787 -> -38.184566367516207885573773320135965798717120735115 Inexact Rounded +lnx1529 ln 0.00000000000000000150259517166294243088546806083283 -> -41.039337946266676108538170837580051699618334928421 Inexact Rounded +lnx1530 ln 0.00000000000000087919160541714580707181969708502091 -> -34.667528818827671507514319744047440696187358676848 Inexact Rounded +lnx1531 ln 0.00000000000395726725120787763271849577708068584598 -> -26.255467416961357741818735787226671938678424748431 Inexact Rounded +lnx1532 ln 0.00000000002014334901669366218018377213150715938355 -> -24.628146955635359035289123027319969201693737159108 Inexact Rounded +lnx1533 ln 0.00000008097927101101093117753938766241442896030637 -> -16.329072628469715178637178365710373398203190937454 Inexact Rounded +lnx1534 ln 0.00000000000017115834162632864392039668116243984176 -> -29.396187292434898225453626794459285157263177528034 Inexact Rounded +lnx1535 ln 0.39168317593866334087305459933723864294857086105035 -> -0.93730199062757240485836637306785037368746737693029 Inexact Rounded +lnx1536 ln 79.335036798971515026519630103325369729637514127617 -> 4.3736798570287828823772149735170431010616961976965 Inexact Rounded +lnx1537 ln 0.00000000000000056004952129926137413602116591493625 -> -35.118506463181870020730685884333000241039028127213 Inexact Rounded +lnx1538 ln 0.00000006006035907843890918832481099660639553666078 -> -16.627915795747112566532705974853114454405010472043 Inexact Rounded +lnx1539 ln 0.00000000085242024937414906371333826574632450587590 -> -20.882941460268101080186482230657774997273494107221 Inexact Rounded +lnx1540 ln 0.00000000000043671099499262350316173246550771951561 -> -28.459504757285639221776305968469058854558726593945 Inexact Rounded + +-- P=34, within 0-999 +Precision: 34 +lnx1201 ln 0.0086732880815927182997566810334394 -> -4.747507311920844752486938187973721 Inexact Rounded +lnx1202 ln 0.0007104103693460260609792222569854 -> -7.249667769903503023005549250347695 Inexact Rounded +lnx1203 ln 786.8398945385105190697541493392742 -> 6.668024790031836340471824147010546 Inexact Rounded +lnx1204 ln 0.7723073620282687656895190171967399 -> -0.2583726708506850868786816238217326 Inexact Rounded +lnx1205 ln 0.0061057951517197631287183938412200 -> -5.098516933918797347064454103742635 Inexact Rounded +lnx1206 ln 0.6181379708184393730103917562498745 -> -0.4810435926903365087463387760350021 Inexact Rounded +lnx1207 ln 09.13888261229039989110753389096760 -> 2.212538125507975574509563027696021 Inexact Rounded +lnx1208 ln 802.0105417063143696497292158147174 -> 6.687121752052341737234832203350214 Inexact Rounded +lnx1209 ln 778.7749710387773713523028497333058 -> 6.657722135126935472086625031413031 Inexact Rounded +lnx1210 ln 0.0024457295895346502513567679390616 -> -6.013411799940245345321348290398517 Inexact Rounded +lnx1211 ln 0.0000511296947872828310338864217860 -> -9.881145118237281798081573131711636 Inexact Rounded +lnx1212 ln 0.0000246803508602554924938685155658 -> -10.60950314264825661825360971430218 Inexact Rounded +lnx1213 ln 9.027898199253511668242977766616082 -> 2.200319582778899029786017830557293 Inexact Rounded +lnx1214 ln 0.0991812396542505631850692800904188 -> -2.310806398964672258823043180400384 Inexact Rounded +lnx1215 ln 0.0000000000070238810143028811223924 -> -25.68170519961636647174714538290075 Inexact Rounded +lnx1216 ln 2.630101665342826494730394729313167 -> 0.9670225014664367465128243039749559 Inexact Rounded +lnx1217 ln 0.0056878928594359587691526063254683 -> -5.169415422904037819736637399445096 Inexact Rounded +lnx1218 ln 567.3436047121057843908106573095590 -> 6.340965124964258486463444360787970 Inexact Rounded +lnx1219 ln 1.199291248124655996614605745649725 -> 0.1817307557425911805765087755675657 Inexact Rounded +lnx1220 ln 25.02050448582031098696267479135557 -> 3.219695668137659139544178905459317 Inexact Rounded +lnx1221 ln 0.0000000000009939597023558756961300 -> -27.63707972996537636504396558259058 Inexact Rounded +lnx1222 ln 0.0000007988551670159429716506430403 -> -14.04008617542597230988198612376415 Inexact Rounded +lnx1223 ln 4.681515800176129184873770605589795 -> 1.543621946415383338972124445445748 Inexact Rounded +lnx1224 ln 15.95126669161103011206658749345781 -> 2.769538242479483539275986395443539 Inexact Rounded +lnx1225 ln 0.0301626783922211213675457279076066 -> -3.501149933677283341023932281826341 Inexact Rounded +lnx1226 ln 000.0040544064881821770528475185674 -> -5.507950967557021671647165889608324 Inexact Rounded +lnx1227 ln 29.01617095935593792095913785100360 -> 3.367853293862745651888450004473297 Inexact Rounded +lnx1228 ln 78.01836167344736733024804243195323 -> 4.356944205055768575987781375003992 Inexact Rounded +lnx1229 ln 0.0000000096545319316965321158634893 -> -18.45583840160965814462095477365013 Inexact Rounded +lnx1230 ln 97.95475237720579752770587185074428 -> 4.584505661612812742208619358214729 Inexact Rounded +lnx1231 ln 528.0609262050423246402564228432371 -> 6.269211667589138113396583894315956 Inexact Rounded +lnx1232 ln 0.0000002250064349732969696660452972 -> -15.30713683526963996712167701738724 Inexact Rounded +lnx1233 ln 47.97063637767998658567199049725754 -> 3.870589081585660692195989854842372 Inexact Rounded +lnx1234 ln 0.0005394311344541432318853513414361 -> -7.524995428393925934087126702974121 Inexact Rounded +lnx1235 ln 0.0000000090973385649567471674972633 -> -18.51528393158931783447035004125791 Inexact Rounded +lnx1236 ln 0.0000000000238776490227576197317977 -> -24.45807828188389561331158879207262 Inexact Rounded +lnx1237 ln 0.0000236587000231921532145326218758 -> -10.65177964499823314952429277979034 Inexact Rounded +lnx1238 ln 499.1277448846130709827154556125942 -> 6.212862064761427967461188083514774 Inexact Rounded +lnx1239 ln 0.0000003960192300284787663712417647 -> -14.74180306619298548093697608293284 Inexact Rounded +lnx1240 ln 41.08268350829477451667228892495136 -> 3.715586706887278039173584859218960 Inexact Rounded + +-- P=16, within 0-99 +Precision: 16 +lnx1101 ln 7.964875261033948 -> 2.075041282352241 Inexact Rounded +lnx1102 ln 13.54527396845394 -> 2.606037701870263 Inexact Rounded +lnx1103 ln 0.0008026554341331 -> -7.127585034321814 Inexact Rounded +lnx1104 ln 0.0000030582233261 -> -12.69767642300625 Inexact Rounded +lnx1105 ln 0.0004477497509672 -> -7.711276073210766 Inexact Rounded +lnx1106 ln 7.616268622474371 -> 2.030286567675148 Inexact Rounded +lnx1107 ln 51.58329925806381 -> 3.943197962309569 Inexact Rounded +lnx1108 ln 0.0018197497951263 -> -6.309056262549345 Inexact Rounded +lnx1109 ln 2.956282457072984 -> 1.083932552334575 Inexact Rounded +lnx1110 ln 0.3843325579189906 -> -0.9562470649400558 Inexact Rounded +lnx1111 ln 0.0074466329265663 -> -4.899993304919237 Inexact Rounded +lnx1112 ln 0.0003372478532993 -> -7.994692428206378 Inexact Rounded +lnx1113 ln 0.0084792263167809 -> -4.770136069569271 Inexact Rounded +lnx1114 ln 5.926756998151102 -> 1.779477182834305 Inexact Rounded +lnx1115 ln 9.025699152180897 -> 2.200075969604119 Inexact Rounded +lnx1116 ln 1.910124643533526 -> 0.6471684983238183 Inexact Rounded +lnx1117 ln 0.8158922711411020 -> -0.2034729533939387 Inexact Rounded +lnx1118 ln 0.0067080016475322 -> -5.004454189414139 Inexact Rounded +lnx1119 ln 0.0047583242092716 -> -5.347859729601094 Inexact Rounded +lnx1120 ln 0.0386647411641339 -> -3.252827175263113 Inexact Rounded +lnx1121 ln 0.0050226427841761 -> -5.293799032774131 Inexact Rounded +lnx1122 ln 6.927937541637261 -> 1.935562155866906 Inexact Rounded +lnx1123 ln 0.0000095745343513 -> -11.55640365579814 Inexact Rounded +lnx1124 ln 1.602465492956538 -> 0.4715433763243936 Inexact Rounded +lnx1125 ln 38.98415625087535 -> 3.663155313610213 Inexact Rounded +lnx1126 ln 5.343182042276734 -> 1.675821363568112 Inexact Rounded +lnx1127 ln 55.89763703245816 -> 4.023522107934110 Inexact Rounded +lnx1128 ln 0.7445257810280847 -> -0.2950077988101030 Inexact Rounded +lnx1129 ln 1.631407314946094 -> 0.4894430257201248 Inexact Rounded +lnx1130 ln 0.0005462451932602 -> -7.512442611116852 Inexact Rounded +lnx1131 ln 0.0000864173269362 -> -9.356322359017317 Inexact Rounded +lnx1132 ln 5.227161719132849 -> 1.653868438439637 Inexact Rounded +lnx1133 ln 60.57078466941998 -> 4.103812675662452 Inexact Rounded +lnx1134 ln 0.0992864325333160 -> -2.309746348350318 Inexact Rounded +lnx1135 ln 09.48564268447325 -> 2.249779359074983 Inexact Rounded +lnx1136 ln 0.0036106089355634 -> -5.623878840650787 Inexact Rounded +lnx1137 ln 1.805176865587172 -> 0.5906585734593707 Inexact Rounded +lnx1138 ln 62.59363259642255 -> 4.136663557220559 Inexact Rounded +lnx1139 ln 4.373828261137201 -> 1.475638657912000 Inexact Rounded +lnx1140 ln 0.994483524148738 -> -0.005531747794938690 Inexact Rounded + +-- P=7, within 0-9 +Precision: 7 +lnx1001 ln 0.0912025 -> -2.394673 Inexact Rounded +lnx1002 ln 0.9728626 -> -0.02751242 Inexact Rounded +lnx1003 ln 0.3886032 -> -0.9451965 Inexact Rounded +lnx1004 ln 8.798639 -> 2.174597 Inexact Rounded +lnx1005 ln 2.459121 -> 0.8998040 Inexact Rounded +lnx1006 ln 2.013193 -> 0.6997220 Inexact Rounded +lnx1007 ln 9.064857 -> 2.204405 Inexact Rounded +lnx1008 ln 5.796417 -> 1.757240 Inexact Rounded +lnx1009 ln 0.1143471 -> -2.168517 Inexact Rounded +lnx1010 ln 0.5341542 -> -0.6270707 Inexact Rounded +lnx1011 ln 6.693781 -> 1.901179 Inexact Rounded +lnx1012 ln 0.0081779 -> -4.806320 Inexact Rounded +lnx1013 ln 8.313616 -> 2.117895 Inexact Rounded +lnx1014 ln 3.486925 -> 1.249020 Inexact Rounded +lnx1015 ln 0.1801401 -> -1.714020 Inexact Rounded +lnx1016 ln 0.5227148 -> -0.6487193 Inexact Rounded +lnx1017 ln 7.818111 -> 2.056443 Inexact Rounded +lnx1018 ln 0.0870671 -> -2.441076 Inexact Rounded +lnx1019 ln 8.153966 -> 2.098504 Inexact Rounded +lnx1020 ln 2.040975 -> 0.7134276 Inexact Rounded +lnx1021 ln 1.481642 -> 0.3931509 Inexact Rounded +lnx1022 ln 0.2610123 -> -1.343188 Inexact Rounded +lnx1023 ln 0.466723 -> -0.7620193 Inexact Rounded +lnx1024 ln 0.0518756 -> -2.958907 Inexact Rounded +lnx1025 ln 2.056410 -> 0.7209617 Inexact Rounded +lnx1026 ln 0.181522 -> -1.706378 Inexact Rounded +lnx1027 ln 0.515551 -> -0.6625190 Inexact Rounded +lnx1028 ln 8.425089 -> 2.131214 Inexact Rounded +lnx1029 ln 2.077091 -> 0.7309684 Inexact Rounded +lnx1030 ln 6.212705 -> 1.826596 Inexact Rounded +lnx1031 ln 5.729343 -> 1.745601 Inexact Rounded +lnx1032 ln 4.831251 -> 1.575105 Inexact Rounded +lnx1033 ln 2.029760 -> 0.7079176 Inexact Rounded +lnx1034 ln 8.615060 -> 2.153512 Inexact Rounded +lnx1035 ln 0.0611511 -> -2.794407 Inexact Rounded +lnx1036 ln 5.195269 -> 1.647748 Inexact Rounded +lnx1037 ln 9.617686 -> 2.263604 Inexact Rounded +lnx1038 ln 0.0049382 -> -5.310754 Inexact Rounded +lnx1039 ln 2.786840 -> 1.024908 Inexact Rounded +lnx1040 ln 0.0091073 -> -4.698679 Inexact Rounded + +-- from here 3-digit tests are based on reverse exp tests +precision: 9 +rounding: half_even +maxExponent: 384 +minexponent: -383 + +lnx001 ln 0 -> -Infinity +lnx002 ln 0.367879441 -> -1.00000000 Inexact Rounded +lnx003 ln 1 -> 0 +lnx005 ln 2.71828183 -> 1.00000000 Inexact Rounded +lnx006 ln 2.00000000 -> 0.693147181 Inexact Rounded +lnx007 ln +Infinity -> Infinity + +-- tiny edge cases +precision: 7 +lnx011 ln 1.105171 -> 0.1000001 Inexact Rounded +lnx012 ln 1.010050 -> 0.009999835 Inexact Rounded +lnx013 ln 1.000010 -> 0.000009999950 Inexact Rounded +lnx014 ln 1.000001 -> 9.999995E-7 Inexact Rounded +lnx015 ln 1.000000 -> 0 + +-- basic e=0, e=1, e=2, e=4, e>=8 cases +precision: 7 +lnx041 ln 2.718282 -> 1.000000 Inexact Rounded +lnx042 ln 0.3678794 -> -1.000000 Inexact Rounded +lnx043 ln 22026.47 -> 10.00000 Inexact Rounded +lnx044 ln 0.00004539993 -> -10.00000 Inexact Rounded +lnx045 ln 2.688117E+43 -> 100.0000 Inexact Rounded +lnx046 ln 3.720076E-44 -> -100.0000 Inexact Rounded +lnx047 ln Infinity -> Infinity +lnx048 ln 0E-389 -> -Infinity + +-- miscellanea +precision: 16 +lnx055 ln 2.717658486884572E-236 -> -542.4103112874415 Inexact Rounded +precision: 17 +lnx056 ln 2.7176584868845721E-236 -> -542.41031128744146 Inexact Rounded +precision: 18 +lnx057 ln 2.71765848688457211E-236 -> -542.410311287441459 Inexact Rounded +precision: 19 +lnx058 ln 2.717658486884572112E-236 -> -542.4103112874414592 Inexact Rounded +precision: 20 +lnx059 ln 2.7176584868845721118E-236 -> -542.41031128744145917 Inexact Rounded + +-- inputs ending in ..500.., ..499.., ..100.., ..999.. sequences +precision: 50 +lnx102 ln 0.9999999100000040499998785000027 -> -9.0000000000000000000000033749953829996446124861750E-8 Inexact Rounded +precision: 30 +lnx103 ln 0.999999910000004049999878500003 -> -8.99999999999999999999997337499E-8 Inexact Rounded +precision: 29 +lnx104 ln 0.99999991000000404999987850000 -> -9.0000000000000000000002733750E-8 Inexact Rounded +precision: 28 +lnx105 ln 0.9999999100000040499998785000 -> -9.000000000000000000000273375E-8 Inexact Rounded +precision: 27 +lnx106 ln 0.999999910000004049999878500 -> -9.00000000000000000000027338E-8 Inexact Rounded +precision: 26 +lnx107 ln 0.99999991000000404999987850 -> -9.0000000000000000000002734E-8 Inexact Rounded +precision: 25 +lnx108 ln 0.9999999100000040499998785 -> -9.000000000000000000000273E-8 Inexact Rounded +precision: 24 +lnx109 ln 0.999999910000004049999879 -> -8.99999999999999995000027E-8 Inexact Rounded +precision: 23 +lnx110 ln 0.99999991000000404999988 -> -8.9999999999999998500003E-8 Inexact Rounded +precision: 22 +lnx111 ln 0.9999999100000040499999 -> -8.999999999999997850000E-8 Inexact Rounded +precision: 21 +lnx112 ln 0.999999910000004050000 -> -8.99999999999998785000E-8 Inexact Rounded +precision: 20 +lnx113 ln 0.99999991000000405000 -> -8.9999999999999878500E-8 Inexact Rounded +precision: 19 +lnx114 ln 0.9999999100000040500 -> -8.999999999999987850E-8 Inexact Rounded +precision: 18 +lnx115 ln 0.999999910000004050 -> -8.99999999999998785E-8 Inexact Rounded +-- next may be a > 0.5ulp case; a more precise answer is: +-- -8.99999999999998784999918E-8 +precision: 17 +lnx116 ln 0.99999991000000405 -> -8.9999999999999878E-8 Inexact Rounded +precision: 16 +lnx117 ln 0.9999999100000040 -> -9.000000004999988E-8 Inexact Rounded +precision: 15 +lnx118 ln 0.999999910000004 -> -9.00000000499999E-8 Inexact Rounded +precision: 14 +lnx119 ln 0.99999991000000 -> -9.0000004050000E-8 Inexact Rounded +precision: 13 +lnx120 ln 0.9999999100000 -> -9.000000405000E-8 Inexact Rounded +precision: 12 +lnx121 ln 0.999999910000 -> -9.00000040500E-8 Inexact Rounded +precision: 11 +lnx122 ln 0.99999991000 -> -9.0000004050E-8 Inexact Rounded +precision: 10 +lnx123 ln 0.9999999100 -> -9.000000405E-8 Inexact Rounded +precision: 9 +lnx124 ln 0.999999910 -> -9.00000041E-8 Inexact Rounded +precision: 8 +lnx125 ln 0.99999991 -> -9.0000004E-8 Inexact Rounded +precision: 7 +lnx126 ln 0.9999999 -> -1.000000E-7 Inexact Rounded +precision: 16 +lnx126b ln 0.9999999 -> -1.000000050000003E-7 Inexact Rounded +precision: 6 +lnx127 ln 0.999999 -> -0.00000100000 Inexact Rounded +precision: 5 +lnx128 ln 0.99999 -> -0.000010000 Inexact Rounded +precision: 4 +lnx129 ln 0.9999 -> -0.0001000 Inexact Rounded +precision: 3 +lnx130 ln 0.999 -> -0.00100 Inexact Rounded +precision: 2 +lnx131 ln 0.99 -> -0.010 Inexact Rounded +precision: 1 +lnx132 ln 0.9 -> -0.1 Inexact Rounded + + +-- cases near 1 -- 1 2345678901234567890 +precision: 20 +lnx401 ln 2.7182818284589365041 -> 0.99999999999996000000 Inexact Rounded +lnx402 ln 2.7182818284589636869 -> 0.99999999999997000000 Inexact Rounded +lnx403 ln 2.7182818284589908697 -> 0.99999999999997999999 Inexact Rounded +lnx404 ln 2.7182818284590180525 -> 0.99999999999998999998 Inexact Rounded +lnx405 ln 2.7182818284590452354 -> 1.0000000000000000000 Inexact Rounded +lnx406 ln 2.7182818284593170635 -> 1.0000000000001000000 Inexact Rounded +lnx407 ln 2.7182818284595888917 -> 1.0000000000002000000 Inexact Rounded +precision: 14 +lnx411 ln 2.7182818284589 -> 0.99999999999995 Inexact Rounded +lnx413 ln 2.7182818284590 -> 0.99999999999998 Inexact Rounded +lnx416 ln 2.7182818284591 -> 1.0000000000000 Inexact Rounded +lnx417 ln 2.7182818284592 -> 1.0000000000001 Inexact Rounded + +-- overflows, including some exp overprecise borderlines +precision: 7 +maxExponent: 384 +minExponent: -383 +lnx709 ln 9.999999E+384 -> 886.4953 Inexact Rounded +lnx711 ln 9.999992E+384 -> 886.4953 Inexact Rounded +precision: 16 +lnx722 ln 9.999999999999999E+384 -> 886.4952608027076 Inexact Rounded +lnx724 ln 9.999999999999917E+384 -> 886.4952608027076 Inexact Rounded +lnx726 ln 9.999999999999117E+384 -> 886.4952608027075 Inexact Rounded +-- and more... +precision: 15 +maxExponent: 999 +minExponent: -999 +lnx731 ln 9.99999999999999E+999 -> 2302.58509299405 Inexact Rounded +-- next may be a > 0.5ulp case; a more precise answer is: +-- 2302.58509299404495001799145442 +lnx732 ln 9.99999999999266E+999 -> 2302.58509299404 Inexact Rounded +lnx733 ln 9.99999999999265E+999 -> 2302.58509299404 Inexact Rounded +lnx734 ln 9.99999999999264E+999 -> 2302.58509299404 Inexact Rounded + +-- subnormals and underflows for exp, including underflow-to-zero edge point +precision: 7 +maxExponent: 384 +minExponent: -383 +lnx751 ln 0E-389 -> -Infinity +lnx758 ln 1.000001E-383 -> -881.8901 Inexact Rounded +lnx759 ln 9.99991E-384 -> -881.8901 Inexact Rounded +lnx760 ln 4.4605E-385 -> -885.0000 Inexact Rounded +lnx761 ln 2.221E-386 -> -887.9999 Inexact Rounded +lnx762 ln 3.01E-387 -> -889.9985 Inexact Rounded +lnx763 ln 1.7E-388 -> -892.8724 Inexact Rounded +lnx764 ln 1.5E-388 -> -892.9976 Inexact Rounded +lnx765 ln 9E-389 -> -893.5084 Inexact Rounded +lnx766 ln 1E-389 -> -895.7056 Inexact Rounded +lnx774 ln 0E-389 -> -Infinity + +-- special values +lnx820 ln Infinity -> Infinity +lnx821 ln 0 -> -Infinity +lnx822 ln NaN -> NaN +lnx823 ln sNaN -> NaN Invalid_operation +-- propagating NaNs +lnx824 ln sNaN123 -> NaN123 Invalid_operation +lnx825 ln -sNaN321 -> -NaN321 Invalid_operation +lnx826 ln NaN456 -> NaN456 +lnx827 ln -NaN654 -> -NaN654 +lnx828 ln NaN1 -> NaN1 + +-- Invalid operations due to restrictions +-- [next two probably skipped by most test harnesses] +precision: 100000000 +lnx901 ln 1 -> NaN Invalid_context +precision: 99999999 +lnx902 ln 0 -> NaN Invalid_context + +precision: 9 +maxExponent: 1000000 +minExponent: -999999 +lnx903 ln 1 -> NaN Invalid_context +maxExponent: 999999 +minExponent: -999999 +lnx904 ln 0 -> -Infinity +maxExponent: 999999 +minExponent: -1000000 +lnx905 ln 1 -> NaN Invalid_context +maxExponent: 999999 +minExponent: -999998 +lnx906 ln 0 -> -Infinity + +-- payload decapitate +precision: 5 +lnx910 ln -sNaN1234567890 -> -NaN67890 Invalid_operation + +-- Null test +lnx900 ln # -> NaN Invalid_operation + + diff --git a/Lib/test/decimaltestdata/log10.decTest b/Lib/test/decimaltestdata/log10.decTest index 5169eabde3..6502f0d091 100644 --- a/Lib/test/decimaltestdata/log10.decTest +++ b/Lib/test/decimaltestdata/log10.decTest @@ -1,551 +1,551 @@ -------------------------------------------------------------------------
--- log10.decTest -- decimal logarithm in base 10 --
--- Copyright (c) IBM Corporation, 2005, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- This emphasises the testing of notable cases, as they will often
--- have unusual paths (especially the 10**n results).
-
-extended: 1
-precision: 16
-rounding: half_even
-maxExponent: 384
-minexponent: -383
-
--- examples in specification
-precision: 9
-logxs000 log10 0 -> -Infinity
-logxs001 log10 0.001 -> -3
-logxs002 log10 1 -> 0
-logxs003 log10 2 -> 0.301029996 Inexact Rounded
-logxs004 log10 10 -> 1
-logxs005 log10 70 -> 1.84509804 Inexact Rounded
-logxs006 log10 +Infinity -> Infinity
-
-
--- basics (examples in specification, etc.)
-precision: 16
-logx0000 log10 0 -> -Infinity
-logx0001 log10 7E-1000 -> -999.1549019599857 Inexact Rounded
-logx0002 log10 1.1E-9 -> -8.958607314841775 Inexact Rounded
-logx0003 log10 0.0007 -> -3.154901959985743 Inexact Rounded
-logx0004 log10 0.11 -> -0.9586073148417750 Inexact Rounded
-logx0005 log10 0.7 -> -0.1549019599857432 Inexact Rounded
-logx0006 log10 1 -> 0
-logx0007 log10 1.5 -> 0.1760912590556812 Inexact Rounded
-logx0008 log10 2 -> 0.3010299956639812 Inexact Rounded
-logx0009 log10 2.718281828459045 -> 0.4342944819032518 Inexact Rounded
-logx0010 log10 2.718281828459046 -> 0.4342944819032519 Inexact Rounded
-logx0011 log10 2.718281828459047 -> 0.4342944819032521 Inexact Rounded
-logx0012 log10 7 -> 0.8450980400142568 Inexact Rounded
-logx0013 log10 10 -> 1
-logx0014 log10 10.5 -> 1.021189299069938 Inexact Rounded
-logx0015 log10 11 -> 1.041392685158225 Inexact Rounded
-logx0016 log10 70 -> 1.845098040014257 Inexact Rounded
-logx0017 log10 9999 -> 3.999956568380192 Inexact Rounded
-logx0018 log10 1.21E6 -> 6.082785370316450 Inexact Rounded
-logx0019 log10 1.1E+9 -> 9.041392685158225 Inexact Rounded
-logx0020 log10 7E+1000 -> 1000.845098040014 Inexact Rounded
-logx0021 log10 +Infinity -> Infinity
-
--- notable cases
--- negatives
-logx0031 log10 -1E-9 -> NaN Invalid_operation
-logx0032 log10 -0.0007 -> NaN Invalid_operation
-logx0033 log10 -0.1 -> NaN Invalid_operation
-logx0034 log10 -0.7 -> NaN Invalid_operation
-logx0035 log10 -1 -> NaN Invalid_operation
-logx0036 log10 -1.5 -> NaN Invalid_operation
-logx0037 log10 -2 -> NaN Invalid_operation
-logx0038 log10 -10.5 -> NaN Invalid_operation
-logx0039 log10 -10.5 -> NaN Invalid_operation
-logx0040 log10 -9999 -> NaN Invalid_operation
-logx0041 log10 -10 -> NaN Invalid_operation
-logx0042 log10 -0 -> -Infinity
-logx0043 log10 -0E+17 -> -Infinity
-logx0044 log10 -0E-17 -> -Infinity
--- other zeros
-logx0051 log10 0 -> -Infinity
-logx0052 log10 0E+17 -> -Infinity
-logx0053 log10 0E-17 -> -Infinity
--- infinities
-logx0055 log10 -Infinity -> NaN Invalid_operation
-logx0056 log10 +Infinity -> Infinity
--- ones
-logx0061 log10 1 -> 0
-logx0062 log10 1.0 -> 0
-logx0063 log10 1.000000000000000 -> 0
-logx0064 log10 1.000000000000000000 -> 0
-
--- notable cases -- exact powers of 10
-logx1100 log10 1 -> 0
-logx1101 log10 10 -> 1
-logx1102 log10 100 -> 2
-logx1103 log10 1000 -> 3
-logx1104 log10 10000 -> 4
-logx1105 log10 100000 -> 5
-logx1106 log10 1000000 -> 6
-logx1107 log10 10000000 -> 7
-logx1108 log10 100000000 -> 8
-logx1109 log10 1000000000 -> 9
-logx1110 log10 10000000000 -> 10
-logx1111 log10 100000000000 -> 11
-logx1112 log10 1000000000000 -> 12
-logx1113 log10 0.00000000001 -> -11
-logx1114 log10 0.0000000001 -> -10
-logx1115 log10 0.000000001 -> -9
-logx1116 log10 0.00000001 -> -8
-logx1117 log10 0.0000001 -> -7
-logx1118 log10 0.000001 -> -6
-logx1119 log10 0.00001 -> -5
-logx1120 log10 0.0001 -> -4
-logx1121 log10 0.001 -> -3
-logx1122 log10 0.01 -> -2
-logx1123 log10 0.1 -> -1
-logx1124 log10 1E-99 -> -99
-logx1125 log10 1E-100 -> -100
-logx1126 log10 1E-383 -> -383
-
--- check normally exact cases round properly
-precision: 1
-logx1141 log10 10000000000 -> 1E+1 Rounded
-logx1142 log10 1000000000000 -> 1E+1 Inexact Rounded
-logx1143 log10 1E+100 -> 1E+2 Rounded
-logx1144 log10 1E+123 -> 1E+2 Inexact Rounded
-logx1145 log10 1E+126 -> 1E+2 Inexact Rounded
-logx1146 log10 1E+916 -> 9E+2 Inexact Rounded
-logx1147 log10 1E+999 -> 1E+3 Inexact Rounded
-
-precision: 2
-logx1151 log10 10000000000 -> 10
-logx1152 log10 1000000000000 -> 12
-logx1153 log10 1E+100 -> 1.0E+2 Rounded
-logx1154 log10 1E+123 -> 1.2E+2 Inexact Rounded
-logx1155 log10 1E+126 -> 1.3E+2 Inexact Rounded
-logx1156 log10 1E+916 -> 9.2E+2 Inexact Rounded
-logx1157 log10 1E+999 -> 1.0E+3 Inexact Rounded
--- some half-way point rounds, other cases, and negatives
-logx1158 log10 1E+125 -> 1.2E+2 Inexact Rounded
-logx1159 log10 1E+135 -> 1.4E+2 Inexact Rounded
-logx1160 log10 1E+129 -> 1.3E+2 Inexact Rounded
-logx1161 log10 1E+131 -> 1.3E+2 Inexact Rounded
-logx1162 log10 1E-123 -> -1.2E+2 Inexact Rounded
-logx1163 log10 1E-126 -> -1.3E+2 Inexact Rounded
-logx1164 log10 1E-916 -> -9.2E+2 Inexact Rounded
-logx1165 log10 1E-999 -> -1.0E+3 Inexact Rounded
-logx1166 log10 1E-125 -> -1.2E+2 Inexact Rounded
-logx1167 log10 1E-135 -> -1.4E+2 Inexact Rounded
-logx1168 log10 1E-129 -> -1.3E+2 Inexact Rounded
-logx1169 log10 1E-131 -> -1.3E+2 Inexact Rounded
-
-precision: 3
-logx1171 log10 10000000000 -> 10
-logx1172 log10 1000000000000 -> 12
-logx1173 log10 1E+100 -> 100
-logx1174 log10 1E+123 -> 123
-logx1175 log10 1E+126 -> 126
-logx1176 log10 1E+916 -> 916
-logx1177 log10 1E+999 -> 999
-
--- log10(2) .. tests both ln(2) and ln(10) constants, too
-precision: 50
-logx1201 log10 2 -> 0.30102999566398119521373889472449302676818988146211 Inexact Rounded
-logx1202 log10 2.000 -> 0.30102999566398119521373889472449302676818988146211 Inexact Rounded
-logx1203 log10 0.2E1 -> 0.30102999566398119521373889472449302676818988146211 Inexact Rounded
-precision: 49
-logx1204 log10 2 -> 0.3010299956639811952137388947244930267681898814621 Inexact Rounded
-precision: 48
-logx1205 log10 2 -> 0.301029995663981195213738894724493026768189881462 Inexact Rounded
-precision: 47
-logx1206 log10 2 -> 0.30102999566398119521373889472449302676818988146 Inexact Rounded
-precision: 46
-logx1207 log10 2 -> 0.3010299956639811952137388947244930267681898815 Inexact Rounded
-precision: 45
-logx1208 log10 2 -> 0.301029995663981195213738894724493026768189881 Inexact Rounded
-precision: 44
-logx1209 log10 2 -> 0.30102999566398119521373889472449302676818988 Inexact Rounded
-precision: 43
-logx1210 log10 2 -> 0.3010299956639811952137388947244930267681899 Inexact Rounded
-precision: 42
-logx1211 log10 2 -> 0.301029995663981195213738894724493026768190 Inexact Rounded
-precision: 41
-logx1212 log10 2 -> 0.30102999566398119521373889472449302676819 Inexact Rounded
-precision: 40
-logx1213 log10 2 -> 0.3010299956639811952137388947244930267682 Inexact Rounded
-precision: 39
-logx1214 log10 2 -> 0.301029995663981195213738894724493026768 Inexact Rounded
-precision: 38
-logx1215 log10 2 -> 0.30102999566398119521373889472449302677 Inexact Rounded
-precision: 37
-logx1216 log10 2 -> 0.3010299956639811952137388947244930268 Inexact Rounded
-precision: 36
-logx1217 log10 2 -> 0.301029995663981195213738894724493027 Inexact Rounded
-precision: 35
-logx1218 log10 2 -> 0.30102999566398119521373889472449303 Inexact Rounded
-precision: 34
-logx1219 log10 2 -> 0.3010299956639811952137388947244930 Inexact Rounded
-precision: 33
-logx1220 log10 2 -> 0.301029995663981195213738894724493 Inexact Rounded
-precision: 32
-logx1221 log10 2 -> 0.30102999566398119521373889472449 Inexact Rounded
-precision: 31
-logx1222 log10 2 -> 0.3010299956639811952137388947245 Inexact Rounded
-precision: 30
-logx1223 log10 2 -> 0.301029995663981195213738894724 Inexact Rounded
-precision: 29
-logx1224 log10 2 -> 0.30102999566398119521373889472 Inexact Rounded
-precision: 28
-logx1225 log10 2 -> 0.3010299956639811952137388947 Inexact Rounded
-precision: 27
-logx1226 log10 2 -> 0.301029995663981195213738895 Inexact Rounded
-precision: 26
-logx1227 log10 2 -> 0.30102999566398119521373889 Inexact Rounded
-precision: 25
-logx1228 log10 2 -> 0.3010299956639811952137389 Inexact Rounded
-precision: 24
-logx1229 log10 2 -> 0.301029995663981195213739 Inexact Rounded
-precision: 23
-logx1230 log10 2 -> 0.30102999566398119521374 Inexact Rounded
-precision: 22
-logx1231 log10 2 -> 0.3010299956639811952137 Inexact Rounded
-precision: 21
-logx1232 log10 2 -> 0.301029995663981195214 Inexact Rounded
-precision: 20
-logx1233 log10 2 -> 0.30102999566398119521 Inexact Rounded
-precision: 19
-logx1234 log10 2 -> 0.3010299956639811952 Inexact Rounded
-precision: 18
-logx1235 log10 2 -> 0.301029995663981195 Inexact Rounded
-precision: 17
-logx1236 log10 2 -> 0.30102999566398120 Inexact Rounded
-precision: 16
-logx1237 log10 2 -> 0.3010299956639812 Inexact Rounded
-precision: 15
-logx1238 log10 2 -> 0.301029995663981 Inexact Rounded
-precision: 14
-logx1239 log10 2 -> 0.30102999566398 Inexact Rounded
-precision: 13
-logx1240 log10 2 -> 0.3010299956640 Inexact Rounded
-precision: 12
-logx1241 log10 2 -> 0.301029995664 Inexact Rounded
-precision: 11
-logx1242 log10 2 -> 0.30102999566 Inexact Rounded
-precision: 10
-logx1243 log10 2 -> 0.3010299957 Inexact Rounded
-precision: 9
-logx1244 log10 2 -> 0.301029996 Inexact Rounded
-precision: 8
-logx1245 log10 2 -> 0.30103000 Inexact Rounded
-precision: 7
-logx1246 log10 2 -> 0.3010300 Inexact Rounded
-precision: 6
-logx1247 log10 2 -> 0.301030 Inexact Rounded
-precision: 5
-logx1248 log10 2 -> 0.30103 Inexact Rounded
-precision: 4
-logx1249 log10 2 -> 0.3010 Inexact Rounded
-precision: 3
-logx1250 log10 2 -> 0.301 Inexact Rounded
-precision: 2
-logx1251 log10 2 -> 0.30 Inexact Rounded
-precision: 1
-logx1252 log10 2 -> 0.3 Inexact Rounded
-
-maxExponent: 384
-minExponent: -383
-precision: 16
-rounding: half_even
-
--- More close-to-e, etc., tests
-precision: 34
-logx1301 log10 2.718281828459045235360287471352661 -> 0.4342944819032518276511289189166048 Inexact Rounded
-logx1302 log10 2.718281828459045235360287471352662 -> 0.4342944819032518276511289189166050 Inexact Rounded
-logx1303 log10 2.718281828459045235360287471352663 -> 0.4342944819032518276511289189166052 Inexact Rounded
-logx1304 log10 0.99999999999999999999999999999999 -> -4.342944819032518276511289189166073E-33 Inexact Rounded
-logx1305 log10 0.999999999999999999999999999999999 -> -4.342944819032518276511289189166053E-34 Inexact Rounded
-logx1306 log10 0.9999999999999999999999999999999999 -> -4.342944819032518276511289189166051E-35 Inexact Rounded
-logx1307 log10 1.000000000000000000000000000000000 -> 0
-logx1308 log10 1.0000000000000000000000000000000001 -> 4.342944819032518276511289189166051E-35 Inexact Rounded
-logx1309 log10 1.000000000000000000000000000000001 -> 4.342944819032518276511289189166049E-34 Inexact Rounded
-logx1310 log10 1.00000000000000000000000000000001 -> 4.342944819032518276511289189166029E-33 Inexact Rounded
--- lower p
-precision: 7
-logx1320 log10 0.999999 -> -4.342947E-7 Inexact Rounded
-logx1321 log10 0.9999999 -> -4.342945E-8 Inexact Rounded
-logx1322 log10 0.99999999 -> -4.342945E-9 Inexact Rounded
-logx1323 log10 0.999999999 -> -4.342945E-10 Inexact Rounded
-logx1324 log10 1.00000000 -> 0
-logx1325 log10 1.00000001 -> 4.342945E-9 Inexact Rounded
-logx1326 log10 1.0000001 -> 4.342945E-8 Inexact Rounded
-logx1327 log10 1.000001 -> 4.342943E-7 Inexact Rounded
-
--- near 10^3
-precision: 9
-logx1331 log10 999.9999998 -> 3.00000000 Inexact Rounded
-logx1332 log10 999.9999999 -> 3.00000000 Inexact Rounded
-logx1333 log10 1000.000000 -> 3
-logx1334 log10 1000.000001 -> 3.00000000 Inexact Rounded
-logx1335 log10 1000.000002 -> 3.00000000 Inexact Rounded
-precision: 16
-logx1341 log10 999.9999998 -> 2.999999999913141 Inexact Rounded
-logx1342 log10 999.9999999 -> 2.999999999956571 Inexact Rounded
-logx1343 log10 1000.000000 -> 3
-logx1344 log10 1000.000001 -> 3.000000000434294 Inexact Rounded
-logx1345 log10 1000.000002 -> 3.000000000868589 Inexact Rounded
-
--- suggestions from Ilan Nehama
-logx1400 log10 10E-3 -> -2
-logx1401 log10 10E-2 -> -1
-logx1402 log10 100E-2 -> 0
-logx1403 log10 1000E-2 -> 1
-logx1404 log10 10000E-2 -> 2
-logx1405 log10 10E-1 -> 0
-logx1406 log10 100E-1 -> 1
-logx1407 log10 1000E-1 -> 2
-logx1408 log10 10000E-1 -> 3
-logx1409 log10 10E0 -> 1
-logx1410 log10 100E0 -> 2
-logx1411 log10 1000E0 -> 3
-logx1412 log10 10000E0 -> 4
-logx1413 log10 10E1 -> 2
-logx1414 log10 100E1 -> 3
-logx1415 log10 1000E1 -> 4
-logx1416 log10 10000E1 -> 5
-logx1417 log10 10E2 -> 3
-logx1418 log10 100E2 -> 4
-logx1419 log10 1000E2 -> 5
-logx1420 log10 10000E2 -> 6
-
--- Randoms
--- P=50, within 0-9999
-Precision: 50
-logx2501 log10 0.00035448001667968141775891246991912655961163345904 -> -3.4504082425411775290864053318247274944685586188505 Inexact Rounded
-logx2502 log10 70.636455726424311228255338637935330826995136597644 -> 1.8490288998408492045793070255302335558140975719247 Inexact Rounded
-logx2503 log10 0.00000000000000233550362473821889060812804063040169 -> -14.631619454343834858023578299142866557717904223667 Inexact Rounded
-logx2504 log10 97.783628621523244679901260358286898958832135433764 -> 1.9902661493224219517897657964362571690592734407330 Inexact Rounded
-logx2505 log10 0062.2377135315858392802612812022807838599572017342 -> 1.7940536293085066199287632725026837018486533544141 Inexact Rounded
-logx2506 log10 6.3767634652071053619977602804724129652981747879532 -> 0.80460030789825961615100163576080761326857374098644 Inexact Rounded
-logx2507 log10 63.297088981313278529306533814195068850532666658798 -> 1.8013837373724427092417170149098614410849353839673 Inexact Rounded
-logx2508 log10 0.00000077239693316881797717820110898167721602299187 -> -6.1121594592718550613773886241951966264826760310047 Inexact Rounded
-logx2509 log10 0.00000003953580359780185534830572461922527831395002 -> -7.4030094293833847136252547069905477213541787177561 Inexact Rounded
-logx2510 log10 754.62905817369989169188998111527272688791544577204 -> 2.8777335243761300047758534304371912099958057545416 Inexact Rounded
-logx2511 log10 0.00000048360378410241428936607147056283282849158312 -> -6.3155103095309353457604038397980091650760346334512 Inexact Rounded
-logx2512 log10 0.00007509037583645612577196104591672080542932166089 -> -4.1244157219700166314012344705538088030592896111026 Inexact Rounded
-logx2513 log10 0.00000000000705475944638915053419839063567898092064 -> -11.151517790256466048553810002525868198178167950377 Inexact Rounded
-logx2514 log10 9.6210300460497657917445410947099633479609165120661 -> 0.98322157093260978206633922877716078683518617768411 Inexact Rounded
-logx2515 log10 0.00000000050150361386555527496607245976120864985611 -> -9.2997259330798261040411086835563234390934934629340 Inexact Rounded
-logx2516 log10 098.24754029731994125797723545333677604490074810751 -> 1.9923216862874337077795278629351060819105679670633 Inexact Rounded
-logx2517 log10 7.5091998150046994320441463854301624742491015752980 -> 0.87559366078005924080766469158763499725414024128781 Inexact Rounded
-logx2518 log10 0.00000000000079540571273330075193668596942268542425 -> -12.099411294165176028817305108475326325006250936963 Inexact Rounded
-logx2519 log10 0.00000042395034799555215782907515074134154915491701 -> -6.3726850039125381134069450802108893075604464135297 Inexact Rounded
-logx2520 log10 56.683376304674355481905023145238799909301732694982 -> 1.7534557107853480435703421826077606250636580091754 Inexact Rounded
-logx2521 log10 48.734033811444195070807606721517169810438049581227 -> 1.6878323602741065190942654710049433808208291564049 Inexact Rounded
-logx2522 log10 0.00074830310930046865009851706989430228561880221063 -> -3.1259224502209974082223667712016445572431791920618 Inexact Rounded
-logx2523 log10 36.677348885111593384020836720396262497122708598359 -> 1.5643979364260796086754530282302605477567469395425 Inexact Rounded
-logx2524 log10 0.00000000000000004495678560480432858812419145833744 -> -16.347204748239740510014320630363244015916029619561 Inexact Rounded
-logx2525 log10 9509.5854013650642799374159131940108748594774307104 -> 3.9781615829916326741100166519726824430945406302661 Inexact Rounded
-logx2526 log10 0.07834891268689177014044454793608715276615743819097 -> -1.1059670262197643147805517398621288897669876996348 Inexact Rounded
-logx2527 log10 0.00000029584529880706128444454688454999032801904794 -> -6.5289353275814043710076526920566721570375026917206 Inexact Rounded
-logx2528 log10 3.0713496544497618098794332787772186176981011904294 -> 0.48732926103896828546424341029492468100431414072994 Inexact Rounded
-logx2529 log10 352.66392670788816474407442785460803833927136413943 -> 2.5473610388199562714709836398243933320284077008314 Inexact Rounded
-logx2530 log10 0.00304743125181876267210516527361742185617091801650 -> -2.5160660830163981967774124745311497447050056400207 Inexact Rounded
-logx2531 log10 0.00000076120535894952136499250364604538117729437183 -> -6.1184981629047051532448413863950776496652483019415 Inexact Rounded
-logx2532 log10 769.88795978534353052965286195053735007473187735815 -> 2.8864275277862652709986498581064117950288798222100 Inexact Rounded
-logx2533 log10 0.00000000000000041297494808612226304619570016336188 -> -15.384076292745415917510668454361868659468669804710 Inexact Rounded
-logx2534 log10 860.88864595714426940247940960258558876903741966974 -> 2.9349469800554277915920278090647283233440859155176 Inexact Rounded
-logx2535 log10 5839.0328812994787235900178587371051096898683972444 -> 3.7663409208972392569269125539438874737147906238543 Inexact Rounded
-logx2536 log10 0.00000028532710151284840471670497112821201598377841 -> -6.5446569753514027675878879843238065488490618159490 Inexact Rounded
-logx2537 log10 0.00000000000000009734490059931638483445631835651581 -> -16.011686794011271135978633880864278692254243106931 Inexact Rounded
-logx2538 log10 5.8610949526439529489252302463450302981511714144330 -> 0.76797875722452549281028552067645732490929361952278 Inexact Rounded
-logx2539 log10 6.6282432221115923372151148990137179611977576327206 -> 0.82139843639227213211012044000785757267155736071361 Inexact Rounded
-logx2540 log10 0.00000000001994071862386846626954819923923344413454 -> -10.700259194632339980266559224447212260115021637626 Inexact Rounded
-
--- P=34, within 0-9999
-Precision: 34
-logx2201 log10 1.522513203889714179088327328864183 -> 0.1825610677098896250496651330492109 Inexact Rounded
-logx2202 log10 0.171123774769717316154080888930404 -> -0.7666896483548462582461898092764408 Inexact Rounded
-logx2203 log10 0.0000000997467236251714283104963838 -> -7.001101360652518274271569010312115 Inexact Rounded
-logx2204 log10 0.0008856103624122479769647543468633 -> -3.052757310476070891830490327138190 Inexact Rounded
-logx2205 log10 1.938274868738032930709498221236758 -> 0.2874153648259449520201536171714594 Inexact Rounded
-logx2206 log10 479.5667847823826713082613445010097 -> 2.680849095850361068709165157286435 Inexact Rounded
-logx2207 log10 8856.136599178820202141823157336804 -> 3.947244306584767101480454261950559 Inexact Rounded
-logx2208 log10 0.0000911026318801903982642871344858 -> -4.040469076434979398438617464033826 Inexact Rounded
-logx2209 log10 0.0000000000017271112650427414732630 -> -11.76267968314038748995178212654921 Inexact Rounded
-logx2210 log10 6.962605370078885647639503548229695 -> 0.8427717807200322352686396925992250 Inexact Rounded
-logx2211 log10 0.3354804428992793132855923541692781 -> -0.4743327923012159170967636070844834 Inexact Rounded
-logx2212 log10 2.079864257474859008252165836663504 -> 0.3180349916198059046812506741388856 Inexact Rounded
-logx2213 log10 2805.479529292939499220276986621988 -> 3.448007104139974344565978780624744 Inexact Rounded
-logx2214 log10 66.45731133034187374557028537213949 -> 1.822542767005644041661520936223086 Inexact Rounded
-logx2215 log10 0.0000001206521261762681738274822835 -> -6.918465020390216969561494755767318 Inexact Rounded
-logx2216 log10 0.0000000001884891916264401160472381 -> -9.724713548119065386091933007528633 Inexact Rounded
-logx2217 log10 0.0000015467279551726326581314582759 -> -5.810586065070435383755759514608738 Inexact Rounded
-logx2218 log10 0.0090776316728068586744633914135952 -> -2.042027442843745884503280954390114 Inexact Rounded
-logx2219 log10 0.0000000000024541106528713393740030 -> -11.61010585935635713090119156069479 Inexact Rounded
-logx2220 log10 14.12936879385863410081087750645856 -> 1.150122760895466989841057385742662 Inexact Rounded
-logx2221 log10 0.0000036912481831392922922647231392 -> -5.432826753789892283556211380824203 Inexact Rounded
-logx2222 log10 0.0000000004067477525420424270138734 -> -9.390674838050073122857868012475060 Inexact Rounded
-logx2223 log10 7080.122562705399744969319589806194 -> 3.850040775747103318724330047546916 Inexact Rounded
-logx2224 log10 261.3491411363679209175524790255725 -> 2.417221077227536319655699517530855 Inexact Rounded
-logx2225 log10 003.9945581449915240094728380041494 -> 0.6014687471531988260823066997845691 Inexact Rounded
-logx2226 log10 0.0000000000583549164588495206767840 -> -10.23392254834182677023231713519341 Inexact Rounded
-logx2227 log10 9567.961832607240278342761088487484 -> 3.980819434211107631569386147016368 Inexact Rounded
-logx2228 log10 06.26592979160342972777219828867033 -> 0.7969855243966221408595024012574729 Inexact Rounded
-logx2229 log10 0.0000000000589847046598067273287319 -> -10.22926059078206218717755253582907 Inexact Rounded
-logx2230 log10 567.9388648235589204769442863724997 -> 2.754301589058313576472380262907638 Inexact Rounded
-logx2231 log10 039.7790325480037778918162264883415 -> 1.599654216592019199639285308997886 Inexact Rounded
-logx2232 log10 0.0000000005123951921894162149817207 -> -9.290394953898862694847327137242690 Inexact Rounded
-logx2233 log10 0.0000000000038500999723636904276723 -> -11.41452799337924056186867324854691 Inexact Rounded
-logx2234 log10 0.0006726500658977759825616537935864 -> -3.172210810922768725687671849421792 Inexact Rounded
-logx2235 log10 260.2400250475967528429943779126507 -> 2.415374092073799204236801383070064 Inexact Rounded
-logx2236 log10 0.0000000006101942339385102585042548 -> -9.214531900562046557191261226632509 Inexact Rounded
-logx2237 log10 0.0000000010846867501382746760066557 -> -8.964695664883282406359874242387236 Inexact Rounded
-logx2238 log10 60.24078375568814769010333711509928 -> 1.779890613567084253168373266648922 Inexact Rounded
-logx2239 log10 0.0012058738711757669337600252986093 -> -2.918698115012605915753728220896010 Inexact Rounded
-logx2240 log10 230.9450930197841600611503095185600 -> 2.363508739056822846742942599628966 Inexact Rounded
-
--- P=16, within 0-999
-Precision: 16
-logx2101 log10 0.0072067119605184 -> -2.142262835573038 Inexact Rounded
-logx2102 log10 503.6828482226624 -> 2.702157162195652 Inexact Rounded
-logx2103 log10 64.96074447821815 -> 1.812650993464174 Inexact Rounded
-logx2104 log10 48.75408597467246 -> 1.688011018842600 Inexact Rounded
-logx2105 log10 0.0329009839269587 -> -1.482791113975280 Inexact Rounded
-logx2106 log10 223.5320415060633 -> 2.349339784523410 Inexact Rounded
-logx2107 log10 73.12765002292194 -> 1.864081617476268 Inexact Rounded
-logx2108 log10 487.3749378358509 -> 2.687863192802252 Inexact Rounded
-logx2109 log10 0.0000019671987621 -> -5.706151757557926 Inexact Rounded
-logx2110 log10 0.0570680660609784 -> -1.243606844697873 Inexact Rounded
-logx2111 log10 33.10311638788998 -> 1.519868880976773 Inexact Rounded
-logx2112 log10 0.0687382699187077 -> -1.162801402868185 Inexact Rounded
-logx2113 log10 258.9416193626484 -> 2.413201859654145 Inexact Rounded
-logx2114 log10 0.0005306100136736 -> -3.275224558269725 Inexact Rounded
-logx2115 log10 65.78490393408572 -> 1.818126244825109 Inexact Rounded
-logx2116 log10 504.2328842073510 -> 2.702631165346958 Inexact Rounded
-logx2117 log10 9.417432755815027 -> 0.9739325278524503 Inexact Rounded
-logx2118 log10 006.7054835355498 -> 0.8264301004947640 Inexact Rounded
-logx2119 log10 0.0917012272363915 -> -1.037624852133399 Inexact Rounded
-logx2120 log10 5.959404385244921 -> 0.7752028561953401 Inexact Rounded
-logx2121 log10 0.0001209759148486 -> -3.917301084968903 Inexact Rounded
-logx2122 log10 0.0004706112139838 -> -3.327337728428039 Inexact Rounded
-logx2123 log10 0.0069700457377046 -> -2.156764372035771 Inexact Rounded
-logx2124 log10 0.5155584569852619 -> -0.2877220847805025 Inexact Rounded
-logx2125 log10 88.06005885607414 -> 1.944778971389913 Inexact Rounded
-logx2126 log10 0.0448240038219866 -> -1.348489353509709 Inexact Rounded
-logx2127 log10 3.419622484059565 -> 0.5339781639101145 Inexact Rounded
-logx2128 log10 5.171123353858721 -> 0.7135848977142854 Inexact Rounded
-logx2129 log10 0.0002133188319807 -> -3.670970802945872 Inexact Rounded
-logx2130 log10 46.21086703136966 -> 1.664744117045149 Inexact Rounded
-logx2131 log10 0.0000631053714415 -> -4.199933672639880 Inexact Rounded
-logx2132 log10 78.66019196870698 -> 1.895755001962469 Inexact Rounded
-logx2133 log10 0.0007152278351188 -> -3.145555592082297 Inexact Rounded
-logx2134 log10 45.52509819928536 -> 1.658250891256892 Inexact Rounded
-logx2135 log10 0.0000703227795740 -> -4.152903971697183 Inexact Rounded
-logx2136 log10 26.24438641426669 -> 1.419036423550599 Inexact Rounded
-logx2137 log10 0.0000044654829535 -> -5.350131564166817 Inexact Rounded
-logx2138 log10 0.7360702733062529 -> -0.1330807211893611 Inexact Rounded
-logx2139 log10 8.417059176469655 -> 0.9251603805112778 Inexact Rounded
-logx2140 log10 0.0002926570767968 -> -3.533640969664818 Inexact Rounded
-
--- P=7, within 0-99
-Precision: 7
-logx2001 log10 57.26089 -> 1.757858 Inexact Rounded
-logx2002 log10 0.0575421 -> -1.240014 Inexact Rounded
-logx2003 log10 0.5918465 -> -0.2277909 Inexact Rounded
-logx2004 log10 0.0068776 -> -2.162563 Inexact Rounded
-logx2005 log10 0.0066833 -> -2.175009 Inexact Rounded
-logx2006 log10 9.926963 -> 0.9968164 Inexact Rounded
-logx2007 log10 0.0041852 -> -2.378284 Inexact Rounded
-logx2008 log10 84.15412 -> 1.925075 Inexact Rounded
-logx2009 log10 2.466856 -> 0.3921438 Inexact Rounded
-logx2010 log10 0.0058047 -> -2.236220 Inexact Rounded
-logx2011 log10 9.885154 -> 0.9949834 Inexact Rounded
-logx2012 log10 0.6667654 -> -0.1760269 Inexact Rounded
-logx2013 log10 34.65736 -> 1.539795 Inexact Rounded
-logx2014 log10 0.0026884 -> -2.570506 Inexact Rounded
-logx2015 log10 0.0432767 -> -1.363746 Inexact Rounded
-logx2016 log10 66.01407 -> 1.819637 Inexact Rounded
-logx2017 log10 0.0070572 -> -2.151368 Inexact Rounded
-logx2018 log10 0.0731613 -> -1.135719 Inexact Rounded
-logx2019 log10 9.838983 -> 0.9929502 Inexact Rounded
-logx2020 log10 15.89696 -> 1.201314 Inexact Rounded
-logx2021 log10 8.459247 -> 0.9273317 Inexact Rounded
-logx2022 log10 0.0010873 -> -2.963651 Inexact Rounded
-logx2023 log10 0.6498619 -> -0.1871789 Inexact Rounded
-logx2024 log10 0.0847008 -> -1.072112 Inexact Rounded
-logx2025 log10 0.0075489 -> -2.122116 Inexact Rounded
-logx2026 log10 51.11152 -> 1.708519 Inexact Rounded
-logx2027 log10 0.7233866 -> -0.1406295 Inexact Rounded
-logx2028 log10 2.254721 -> 0.3530928 Inexact Rounded
-logx2029 log10 6.568444 -> 0.8174625 Inexact Rounded
-logx2030 log10 83.72639 -> 1.922862 Inexact Rounded
-logx2031 log10 6.720585 -> 0.8274071 Inexact Rounded
-logx2032 log10 87.90366 -> 1.944007 Inexact Rounded
-logx2033 log10 0.0433324 -> -1.363187 Inexact Rounded
-logx2034 log10 34.63912 -> 1.539567 Inexact Rounded
-logx2035 log10 0.8089059 -> -0.09210200 Inexact Rounded
-logx2036 log10 7.793405 -> 0.8917272 Inexact Rounded
-logx2037 log10 0.0041757 -> -2.379271 Inexact Rounded
-logx2038 log10 7.135417 -> 0.8534194 Inexact Rounded
-logx2039 log10 12.49570 -> 1.096761 Inexact Rounded
-logx2040 log10 6.356276 -> 0.8032027 Inexact Rounded
-
---------
-maxExponent: 384
-minExponent: -383
-precision: 16
-rounding: half_even
-
--- special values
-logx820 log10 Infinity -> Infinity
-logx821 log10 0 -> -Infinity
-logx822 log10 NaN -> NaN
-logx823 log10 sNaN -> NaN Invalid_operation
--- propagating NaNs
-logx824 log10 sNaN123 -> NaN123 Invalid_operation
-logx825 log10 -sNaN321 -> -NaN321 Invalid_operation
-logx826 log10 NaN456 -> NaN456
-logx827 log10 -NaN654 -> -NaN654
-logx828 log10 NaN1 -> NaN1
-
-
--- Invalid operations due to restrictions
--- [next two probably skipped by most test harnesses]
-precision: 100000000
-logx901 log10 1 -> NaN Invalid_context
-precision: 99999999
-logx902 log10 0 -> NaN Invalid_context
-
-precision: 9
-maxExponent: 1000000
-minExponent: -999999
-logx903 log10 1 -> NaN Invalid_context
-maxExponent: 999999
-minExponent: -999999
-logx904 log10 0 -> -Infinity
-maxExponent: 999999
-minExponent: -1000000
-logx905 log10 1 -> NaN Invalid_context
-maxExponent: 999999
-minExponent: -999998
-logx906 log10 0 -> -Infinity
-
--- Null test
-logx900 log10 # -> NaN Invalid_operation
-
-
+------------------------------------------------------------------------ +-- log10.decTest -- decimal logarithm in base 10 -- +-- Copyright (c) IBM Corporation, 2005, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- This emphasises the testing of notable cases, as they will often +-- have unusual paths (especially the 10**n results). + +extended: 1 +precision: 16 +rounding: half_even +maxExponent: 384 +minexponent: -383 + +-- examples in specification +precision: 9 +logxs000 log10 0 -> -Infinity +logxs001 log10 0.001 -> -3 +logxs002 log10 1 -> 0 +logxs003 log10 2 -> 0.301029996 Inexact Rounded +logxs004 log10 10 -> 1 +logxs005 log10 70 -> 1.84509804 Inexact Rounded +logxs006 log10 +Infinity -> Infinity + + +-- basics (examples in specification, etc.) +precision: 16 +logx0000 log10 0 -> -Infinity +logx0001 log10 7E-1000 -> -999.1549019599857 Inexact Rounded +logx0002 log10 1.1E-9 -> -8.958607314841775 Inexact Rounded +logx0003 log10 0.0007 -> -3.154901959985743 Inexact Rounded +logx0004 log10 0.11 -> -0.9586073148417750 Inexact Rounded +logx0005 log10 0.7 -> -0.1549019599857432 Inexact Rounded +logx0006 log10 1 -> 0 +logx0007 log10 1.5 -> 0.1760912590556812 Inexact Rounded +logx0008 log10 2 -> 0.3010299956639812 Inexact Rounded +logx0009 log10 2.718281828459045 -> 0.4342944819032518 Inexact Rounded +logx0010 log10 2.718281828459046 -> 0.4342944819032519 Inexact Rounded +logx0011 log10 2.718281828459047 -> 0.4342944819032521 Inexact Rounded +logx0012 log10 7 -> 0.8450980400142568 Inexact Rounded +logx0013 log10 10 -> 1 +logx0014 log10 10.5 -> 1.021189299069938 Inexact Rounded +logx0015 log10 11 -> 1.041392685158225 Inexact Rounded +logx0016 log10 70 -> 1.845098040014257 Inexact Rounded +logx0017 log10 9999 -> 3.999956568380192 Inexact Rounded +logx0018 log10 1.21E6 -> 6.082785370316450 Inexact Rounded +logx0019 log10 1.1E+9 -> 9.041392685158225 Inexact Rounded +logx0020 log10 7E+1000 -> 1000.845098040014 Inexact Rounded +logx0021 log10 +Infinity -> Infinity + +-- notable cases +-- negatives +logx0031 log10 -1E-9 -> NaN Invalid_operation +logx0032 log10 -0.0007 -> NaN Invalid_operation +logx0033 log10 -0.1 -> NaN Invalid_operation +logx0034 log10 -0.7 -> NaN Invalid_operation +logx0035 log10 -1 -> NaN Invalid_operation +logx0036 log10 -1.5 -> NaN Invalid_operation +logx0037 log10 -2 -> NaN Invalid_operation +logx0038 log10 -10.5 -> NaN Invalid_operation +logx0039 log10 -10.5 -> NaN Invalid_operation +logx0040 log10 -9999 -> NaN Invalid_operation +logx0041 log10 -10 -> NaN Invalid_operation +logx0042 log10 -0 -> -Infinity +logx0043 log10 -0E+17 -> -Infinity +logx0044 log10 -0E-17 -> -Infinity +-- other zeros +logx0051 log10 0 -> -Infinity +logx0052 log10 0E+17 -> -Infinity +logx0053 log10 0E-17 -> -Infinity +-- infinities +logx0055 log10 -Infinity -> NaN Invalid_operation +logx0056 log10 +Infinity -> Infinity +-- ones +logx0061 log10 1 -> 0 +logx0062 log10 1.0 -> 0 +logx0063 log10 1.000000000000000 -> 0 +logx0064 log10 1.000000000000000000 -> 0 + +-- notable cases -- exact powers of 10 +logx1100 log10 1 -> 0 +logx1101 log10 10 -> 1 +logx1102 log10 100 -> 2 +logx1103 log10 1000 -> 3 +logx1104 log10 10000 -> 4 +logx1105 log10 100000 -> 5 +logx1106 log10 1000000 -> 6 +logx1107 log10 10000000 -> 7 +logx1108 log10 100000000 -> 8 +logx1109 log10 1000000000 -> 9 +logx1110 log10 10000000000 -> 10 +logx1111 log10 100000000000 -> 11 +logx1112 log10 1000000000000 -> 12 +logx1113 log10 0.00000000001 -> -11 +logx1114 log10 0.0000000001 -> -10 +logx1115 log10 0.000000001 -> -9 +logx1116 log10 0.00000001 -> -8 +logx1117 log10 0.0000001 -> -7 +logx1118 log10 0.000001 -> -6 +logx1119 log10 0.00001 -> -5 +logx1120 log10 0.0001 -> -4 +logx1121 log10 0.001 -> -3 +logx1122 log10 0.01 -> -2 +logx1123 log10 0.1 -> -1 +logx1124 log10 1E-99 -> -99 +logx1125 log10 1E-100 -> -100 +logx1126 log10 1E-383 -> -383 + +-- check normally exact cases round properly +precision: 1 +logx1141 log10 10000000000 -> 1E+1 Rounded +logx1142 log10 1000000000000 -> 1E+1 Inexact Rounded +logx1143 log10 1E+100 -> 1E+2 Rounded +logx1144 log10 1E+123 -> 1E+2 Inexact Rounded +logx1145 log10 1E+126 -> 1E+2 Inexact Rounded +logx1146 log10 1E+916 -> 9E+2 Inexact Rounded +logx1147 log10 1E+999 -> 1E+3 Inexact Rounded + +precision: 2 +logx1151 log10 10000000000 -> 10 +logx1152 log10 1000000000000 -> 12 +logx1153 log10 1E+100 -> 1.0E+2 Rounded +logx1154 log10 1E+123 -> 1.2E+2 Inexact Rounded +logx1155 log10 1E+126 -> 1.3E+2 Inexact Rounded +logx1156 log10 1E+916 -> 9.2E+2 Inexact Rounded +logx1157 log10 1E+999 -> 1.0E+3 Inexact Rounded +-- some half-way point rounds, other cases, and negatives +logx1158 log10 1E+125 -> 1.2E+2 Inexact Rounded +logx1159 log10 1E+135 -> 1.4E+2 Inexact Rounded +logx1160 log10 1E+129 -> 1.3E+2 Inexact Rounded +logx1161 log10 1E+131 -> 1.3E+2 Inexact Rounded +logx1162 log10 1E-123 -> -1.2E+2 Inexact Rounded +logx1163 log10 1E-126 -> -1.3E+2 Inexact Rounded +logx1164 log10 1E-916 -> -9.2E+2 Inexact Rounded +logx1165 log10 1E-999 -> -1.0E+3 Inexact Rounded +logx1166 log10 1E-125 -> -1.2E+2 Inexact Rounded +logx1167 log10 1E-135 -> -1.4E+2 Inexact Rounded +logx1168 log10 1E-129 -> -1.3E+2 Inexact Rounded +logx1169 log10 1E-131 -> -1.3E+2 Inexact Rounded + +precision: 3 +logx1171 log10 10000000000 -> 10 +logx1172 log10 1000000000000 -> 12 +logx1173 log10 1E+100 -> 100 +logx1174 log10 1E+123 -> 123 +logx1175 log10 1E+126 -> 126 +logx1176 log10 1E+916 -> 916 +logx1177 log10 1E+999 -> 999 + +-- log10(2) .. tests both ln(2) and ln(10) constants, too +precision: 50 +logx1201 log10 2 -> 0.30102999566398119521373889472449302676818988146211 Inexact Rounded +logx1202 log10 2.000 -> 0.30102999566398119521373889472449302676818988146211 Inexact Rounded +logx1203 log10 0.2E1 -> 0.30102999566398119521373889472449302676818988146211 Inexact Rounded +precision: 49 +logx1204 log10 2 -> 0.3010299956639811952137388947244930267681898814621 Inexact Rounded +precision: 48 +logx1205 log10 2 -> 0.301029995663981195213738894724493026768189881462 Inexact Rounded +precision: 47 +logx1206 log10 2 -> 0.30102999566398119521373889472449302676818988146 Inexact Rounded +precision: 46 +logx1207 log10 2 -> 0.3010299956639811952137388947244930267681898815 Inexact Rounded +precision: 45 +logx1208 log10 2 -> 0.301029995663981195213738894724493026768189881 Inexact Rounded +precision: 44 +logx1209 log10 2 -> 0.30102999566398119521373889472449302676818988 Inexact Rounded +precision: 43 +logx1210 log10 2 -> 0.3010299956639811952137388947244930267681899 Inexact Rounded +precision: 42 +logx1211 log10 2 -> 0.301029995663981195213738894724493026768190 Inexact Rounded +precision: 41 +logx1212 log10 2 -> 0.30102999566398119521373889472449302676819 Inexact Rounded +precision: 40 +logx1213 log10 2 -> 0.3010299956639811952137388947244930267682 Inexact Rounded +precision: 39 +logx1214 log10 2 -> 0.301029995663981195213738894724493026768 Inexact Rounded +precision: 38 +logx1215 log10 2 -> 0.30102999566398119521373889472449302677 Inexact Rounded +precision: 37 +logx1216 log10 2 -> 0.3010299956639811952137388947244930268 Inexact Rounded +precision: 36 +logx1217 log10 2 -> 0.301029995663981195213738894724493027 Inexact Rounded +precision: 35 +logx1218 log10 2 -> 0.30102999566398119521373889472449303 Inexact Rounded +precision: 34 +logx1219 log10 2 -> 0.3010299956639811952137388947244930 Inexact Rounded +precision: 33 +logx1220 log10 2 -> 0.301029995663981195213738894724493 Inexact Rounded +precision: 32 +logx1221 log10 2 -> 0.30102999566398119521373889472449 Inexact Rounded +precision: 31 +logx1222 log10 2 -> 0.3010299956639811952137388947245 Inexact Rounded +precision: 30 +logx1223 log10 2 -> 0.301029995663981195213738894724 Inexact Rounded +precision: 29 +logx1224 log10 2 -> 0.30102999566398119521373889472 Inexact Rounded +precision: 28 +logx1225 log10 2 -> 0.3010299956639811952137388947 Inexact Rounded +precision: 27 +logx1226 log10 2 -> 0.301029995663981195213738895 Inexact Rounded +precision: 26 +logx1227 log10 2 -> 0.30102999566398119521373889 Inexact Rounded +precision: 25 +logx1228 log10 2 -> 0.3010299956639811952137389 Inexact Rounded +precision: 24 +logx1229 log10 2 -> 0.301029995663981195213739 Inexact Rounded +precision: 23 +logx1230 log10 2 -> 0.30102999566398119521374 Inexact Rounded +precision: 22 +logx1231 log10 2 -> 0.3010299956639811952137 Inexact Rounded +precision: 21 +logx1232 log10 2 -> 0.301029995663981195214 Inexact Rounded +precision: 20 +logx1233 log10 2 -> 0.30102999566398119521 Inexact Rounded +precision: 19 +logx1234 log10 2 -> 0.3010299956639811952 Inexact Rounded +precision: 18 +logx1235 log10 2 -> 0.301029995663981195 Inexact Rounded +precision: 17 +logx1236 log10 2 -> 0.30102999566398120 Inexact Rounded +precision: 16 +logx1237 log10 2 -> 0.3010299956639812 Inexact Rounded +precision: 15 +logx1238 log10 2 -> 0.301029995663981 Inexact Rounded +precision: 14 +logx1239 log10 2 -> 0.30102999566398 Inexact Rounded +precision: 13 +logx1240 log10 2 -> 0.3010299956640 Inexact Rounded +precision: 12 +logx1241 log10 2 -> 0.301029995664 Inexact Rounded +precision: 11 +logx1242 log10 2 -> 0.30102999566 Inexact Rounded +precision: 10 +logx1243 log10 2 -> 0.3010299957 Inexact Rounded +precision: 9 +logx1244 log10 2 -> 0.301029996 Inexact Rounded +precision: 8 +logx1245 log10 2 -> 0.30103000 Inexact Rounded +precision: 7 +logx1246 log10 2 -> 0.3010300 Inexact Rounded +precision: 6 +logx1247 log10 2 -> 0.301030 Inexact Rounded +precision: 5 +logx1248 log10 2 -> 0.30103 Inexact Rounded +precision: 4 +logx1249 log10 2 -> 0.3010 Inexact Rounded +precision: 3 +logx1250 log10 2 -> 0.301 Inexact Rounded +precision: 2 +logx1251 log10 2 -> 0.30 Inexact Rounded +precision: 1 +logx1252 log10 2 -> 0.3 Inexact Rounded + +maxExponent: 384 +minExponent: -383 +precision: 16 +rounding: half_even + +-- More close-to-e, etc., tests +precision: 34 +logx1301 log10 2.718281828459045235360287471352661 -> 0.4342944819032518276511289189166048 Inexact Rounded +logx1302 log10 2.718281828459045235360287471352662 -> 0.4342944819032518276511289189166050 Inexact Rounded +logx1303 log10 2.718281828459045235360287471352663 -> 0.4342944819032518276511289189166052 Inexact Rounded +logx1304 log10 0.99999999999999999999999999999999 -> -4.342944819032518276511289189166073E-33 Inexact Rounded +logx1305 log10 0.999999999999999999999999999999999 -> -4.342944819032518276511289189166053E-34 Inexact Rounded +logx1306 log10 0.9999999999999999999999999999999999 -> -4.342944819032518276511289189166051E-35 Inexact Rounded +logx1307 log10 1.000000000000000000000000000000000 -> 0 +logx1308 log10 1.0000000000000000000000000000000001 -> 4.342944819032518276511289189166051E-35 Inexact Rounded +logx1309 log10 1.000000000000000000000000000000001 -> 4.342944819032518276511289189166049E-34 Inexact Rounded +logx1310 log10 1.00000000000000000000000000000001 -> 4.342944819032518276511289189166029E-33 Inexact Rounded +-- lower p +precision: 7 +logx1320 log10 0.999999 -> -4.342947E-7 Inexact Rounded +logx1321 log10 0.9999999 -> -4.342945E-8 Inexact Rounded +logx1322 log10 0.99999999 -> -4.342945E-9 Inexact Rounded +logx1323 log10 0.999999999 -> -4.342945E-10 Inexact Rounded +logx1324 log10 1.00000000 -> 0 +logx1325 log10 1.00000001 -> 4.342945E-9 Inexact Rounded +logx1326 log10 1.0000001 -> 4.342945E-8 Inexact Rounded +logx1327 log10 1.000001 -> 4.342943E-7 Inexact Rounded + +-- near 10^3 +precision: 9 +logx1331 log10 999.9999998 -> 3.00000000 Inexact Rounded +logx1332 log10 999.9999999 -> 3.00000000 Inexact Rounded +logx1333 log10 1000.000000 -> 3 +logx1334 log10 1000.000001 -> 3.00000000 Inexact Rounded +logx1335 log10 1000.000002 -> 3.00000000 Inexact Rounded +precision: 16 +logx1341 log10 999.9999998 -> 2.999999999913141 Inexact Rounded +logx1342 log10 999.9999999 -> 2.999999999956571 Inexact Rounded +logx1343 log10 1000.000000 -> 3 +logx1344 log10 1000.000001 -> 3.000000000434294 Inexact Rounded +logx1345 log10 1000.000002 -> 3.000000000868589 Inexact Rounded + +-- suggestions from Ilan Nehama +logx1400 log10 10E-3 -> -2 +logx1401 log10 10E-2 -> -1 +logx1402 log10 100E-2 -> 0 +logx1403 log10 1000E-2 -> 1 +logx1404 log10 10000E-2 -> 2 +logx1405 log10 10E-1 -> 0 +logx1406 log10 100E-1 -> 1 +logx1407 log10 1000E-1 -> 2 +logx1408 log10 10000E-1 -> 3 +logx1409 log10 10E0 -> 1 +logx1410 log10 100E0 -> 2 +logx1411 log10 1000E0 -> 3 +logx1412 log10 10000E0 -> 4 +logx1413 log10 10E1 -> 2 +logx1414 log10 100E1 -> 3 +logx1415 log10 1000E1 -> 4 +logx1416 log10 10000E1 -> 5 +logx1417 log10 10E2 -> 3 +logx1418 log10 100E2 -> 4 +logx1419 log10 1000E2 -> 5 +logx1420 log10 10000E2 -> 6 + +-- Randoms +-- P=50, within 0-9999 +Precision: 50 +logx2501 log10 0.00035448001667968141775891246991912655961163345904 -> -3.4504082425411775290864053318247274944685586188505 Inexact Rounded +logx2502 log10 70.636455726424311228255338637935330826995136597644 -> 1.8490288998408492045793070255302335558140975719247 Inexact Rounded +logx2503 log10 0.00000000000000233550362473821889060812804063040169 -> -14.631619454343834858023578299142866557717904223667 Inexact Rounded +logx2504 log10 97.783628621523244679901260358286898958832135433764 -> 1.9902661493224219517897657964362571690592734407330 Inexact Rounded +logx2505 log10 0062.2377135315858392802612812022807838599572017342 -> 1.7940536293085066199287632725026837018486533544141 Inexact Rounded +logx2506 log10 6.3767634652071053619977602804724129652981747879532 -> 0.80460030789825961615100163576080761326857374098644 Inexact Rounded +logx2507 log10 63.297088981313278529306533814195068850532666658798 -> 1.8013837373724427092417170149098614410849353839673 Inexact Rounded +logx2508 log10 0.00000077239693316881797717820110898167721602299187 -> -6.1121594592718550613773886241951966264826760310047 Inexact Rounded +logx2509 log10 0.00000003953580359780185534830572461922527831395002 -> -7.4030094293833847136252547069905477213541787177561 Inexact Rounded +logx2510 log10 754.62905817369989169188998111527272688791544577204 -> 2.8777335243761300047758534304371912099958057545416 Inexact Rounded +logx2511 log10 0.00000048360378410241428936607147056283282849158312 -> -6.3155103095309353457604038397980091650760346334512 Inexact Rounded +logx2512 log10 0.00007509037583645612577196104591672080542932166089 -> -4.1244157219700166314012344705538088030592896111026 Inexact Rounded +logx2513 log10 0.00000000000705475944638915053419839063567898092064 -> -11.151517790256466048553810002525868198178167950377 Inexact Rounded +logx2514 log10 9.6210300460497657917445410947099633479609165120661 -> 0.98322157093260978206633922877716078683518617768411 Inexact Rounded +logx2515 log10 0.00000000050150361386555527496607245976120864985611 -> -9.2997259330798261040411086835563234390934934629340 Inexact Rounded +logx2516 log10 098.24754029731994125797723545333677604490074810751 -> 1.9923216862874337077795278629351060819105679670633 Inexact Rounded +logx2517 log10 7.5091998150046994320441463854301624742491015752980 -> 0.87559366078005924080766469158763499725414024128781 Inexact Rounded +logx2518 log10 0.00000000000079540571273330075193668596942268542425 -> -12.099411294165176028817305108475326325006250936963 Inexact Rounded +logx2519 log10 0.00000042395034799555215782907515074134154915491701 -> -6.3726850039125381134069450802108893075604464135297 Inexact Rounded +logx2520 log10 56.683376304674355481905023145238799909301732694982 -> 1.7534557107853480435703421826077606250636580091754 Inexact Rounded +logx2521 log10 48.734033811444195070807606721517169810438049581227 -> 1.6878323602741065190942654710049433808208291564049 Inexact Rounded +logx2522 log10 0.00074830310930046865009851706989430228561880221063 -> -3.1259224502209974082223667712016445572431791920618 Inexact Rounded +logx2523 log10 36.677348885111593384020836720396262497122708598359 -> 1.5643979364260796086754530282302605477567469395425 Inexact Rounded +logx2524 log10 0.00000000000000004495678560480432858812419145833744 -> -16.347204748239740510014320630363244015916029619561 Inexact Rounded +logx2525 log10 9509.5854013650642799374159131940108748594774307104 -> 3.9781615829916326741100166519726824430945406302661 Inexact Rounded +logx2526 log10 0.07834891268689177014044454793608715276615743819097 -> -1.1059670262197643147805517398621288897669876996348 Inexact Rounded +logx2527 log10 0.00000029584529880706128444454688454999032801904794 -> -6.5289353275814043710076526920566721570375026917206 Inexact Rounded +logx2528 log10 3.0713496544497618098794332787772186176981011904294 -> 0.48732926103896828546424341029492468100431414072994 Inexact Rounded +logx2529 log10 352.66392670788816474407442785460803833927136413943 -> 2.5473610388199562714709836398243933320284077008314 Inexact Rounded +logx2530 log10 0.00304743125181876267210516527361742185617091801650 -> -2.5160660830163981967774124745311497447050056400207 Inexact Rounded +logx2531 log10 0.00000076120535894952136499250364604538117729437183 -> -6.1184981629047051532448413863950776496652483019415 Inexact Rounded +logx2532 log10 769.88795978534353052965286195053735007473187735815 -> 2.8864275277862652709986498581064117950288798222100 Inexact Rounded +logx2533 log10 0.00000000000000041297494808612226304619570016336188 -> -15.384076292745415917510668454361868659468669804710 Inexact Rounded +logx2534 log10 860.88864595714426940247940960258558876903741966974 -> 2.9349469800554277915920278090647283233440859155176 Inexact Rounded +logx2535 log10 5839.0328812994787235900178587371051096898683972444 -> 3.7663409208972392569269125539438874737147906238543 Inexact Rounded +logx2536 log10 0.00000028532710151284840471670497112821201598377841 -> -6.5446569753514027675878879843238065488490618159490 Inexact Rounded +logx2537 log10 0.00000000000000009734490059931638483445631835651581 -> -16.011686794011271135978633880864278692254243106931 Inexact Rounded +logx2538 log10 5.8610949526439529489252302463450302981511714144330 -> 0.76797875722452549281028552067645732490929361952278 Inexact Rounded +logx2539 log10 6.6282432221115923372151148990137179611977576327206 -> 0.82139843639227213211012044000785757267155736071361 Inexact Rounded +logx2540 log10 0.00000000001994071862386846626954819923923344413454 -> -10.700259194632339980266559224447212260115021637626 Inexact Rounded + +-- P=34, within 0-9999 +Precision: 34 +logx2201 log10 1.522513203889714179088327328864183 -> 0.1825610677098896250496651330492109 Inexact Rounded +logx2202 log10 0.171123774769717316154080888930404 -> -0.7666896483548462582461898092764408 Inexact Rounded +logx2203 log10 0.0000000997467236251714283104963838 -> -7.001101360652518274271569010312115 Inexact Rounded +logx2204 log10 0.0008856103624122479769647543468633 -> -3.052757310476070891830490327138190 Inexact Rounded +logx2205 log10 1.938274868738032930709498221236758 -> 0.2874153648259449520201536171714594 Inexact Rounded +logx2206 log10 479.5667847823826713082613445010097 -> 2.680849095850361068709165157286435 Inexact Rounded +logx2207 log10 8856.136599178820202141823157336804 -> 3.947244306584767101480454261950559 Inexact Rounded +logx2208 log10 0.0000911026318801903982642871344858 -> -4.040469076434979398438617464033826 Inexact Rounded +logx2209 log10 0.0000000000017271112650427414732630 -> -11.76267968314038748995178212654921 Inexact Rounded +logx2210 log10 6.962605370078885647639503548229695 -> 0.8427717807200322352686396925992250 Inexact Rounded +logx2211 log10 0.3354804428992793132855923541692781 -> -0.4743327923012159170967636070844834 Inexact Rounded +logx2212 log10 2.079864257474859008252165836663504 -> 0.3180349916198059046812506741388856 Inexact Rounded +logx2213 log10 2805.479529292939499220276986621988 -> 3.448007104139974344565978780624744 Inexact Rounded +logx2214 log10 66.45731133034187374557028537213949 -> 1.822542767005644041661520936223086 Inexact Rounded +logx2215 log10 0.0000001206521261762681738274822835 -> -6.918465020390216969561494755767318 Inexact Rounded +logx2216 log10 0.0000000001884891916264401160472381 -> -9.724713548119065386091933007528633 Inexact Rounded +logx2217 log10 0.0000015467279551726326581314582759 -> -5.810586065070435383755759514608738 Inexact Rounded +logx2218 log10 0.0090776316728068586744633914135952 -> -2.042027442843745884503280954390114 Inexact Rounded +logx2219 log10 0.0000000000024541106528713393740030 -> -11.61010585935635713090119156069479 Inexact Rounded +logx2220 log10 14.12936879385863410081087750645856 -> 1.150122760895466989841057385742662 Inexact Rounded +logx2221 log10 0.0000036912481831392922922647231392 -> -5.432826753789892283556211380824203 Inexact Rounded +logx2222 log10 0.0000000004067477525420424270138734 -> -9.390674838050073122857868012475060 Inexact Rounded +logx2223 log10 7080.122562705399744969319589806194 -> 3.850040775747103318724330047546916 Inexact Rounded +logx2224 log10 261.3491411363679209175524790255725 -> 2.417221077227536319655699517530855 Inexact Rounded +logx2225 log10 003.9945581449915240094728380041494 -> 0.6014687471531988260823066997845691 Inexact Rounded +logx2226 log10 0.0000000000583549164588495206767840 -> -10.23392254834182677023231713519341 Inexact Rounded +logx2227 log10 9567.961832607240278342761088487484 -> 3.980819434211107631569386147016368 Inexact Rounded +logx2228 log10 06.26592979160342972777219828867033 -> 0.7969855243966221408595024012574729 Inexact Rounded +logx2229 log10 0.0000000000589847046598067273287319 -> -10.22926059078206218717755253582907 Inexact Rounded +logx2230 log10 567.9388648235589204769442863724997 -> 2.754301589058313576472380262907638 Inexact Rounded +logx2231 log10 039.7790325480037778918162264883415 -> 1.599654216592019199639285308997886 Inexact Rounded +logx2232 log10 0.0000000005123951921894162149817207 -> -9.290394953898862694847327137242690 Inexact Rounded +logx2233 log10 0.0000000000038500999723636904276723 -> -11.41452799337924056186867324854691 Inexact Rounded +logx2234 log10 0.0006726500658977759825616537935864 -> -3.172210810922768725687671849421792 Inexact Rounded +logx2235 log10 260.2400250475967528429943779126507 -> 2.415374092073799204236801383070064 Inexact Rounded +logx2236 log10 0.0000000006101942339385102585042548 -> -9.214531900562046557191261226632509 Inexact Rounded +logx2237 log10 0.0000000010846867501382746760066557 -> -8.964695664883282406359874242387236 Inexact Rounded +logx2238 log10 60.24078375568814769010333711509928 -> 1.779890613567084253168373266648922 Inexact Rounded +logx2239 log10 0.0012058738711757669337600252986093 -> -2.918698115012605915753728220896010 Inexact Rounded +logx2240 log10 230.9450930197841600611503095185600 -> 2.363508739056822846742942599628966 Inexact Rounded + +-- P=16, within 0-999 +Precision: 16 +logx2101 log10 0.0072067119605184 -> -2.142262835573038 Inexact Rounded +logx2102 log10 503.6828482226624 -> 2.702157162195652 Inexact Rounded +logx2103 log10 64.96074447821815 -> 1.812650993464174 Inexact Rounded +logx2104 log10 48.75408597467246 -> 1.688011018842600 Inexact Rounded +logx2105 log10 0.0329009839269587 -> -1.482791113975280 Inexact Rounded +logx2106 log10 223.5320415060633 -> 2.349339784523410 Inexact Rounded +logx2107 log10 73.12765002292194 -> 1.864081617476268 Inexact Rounded +logx2108 log10 487.3749378358509 -> 2.687863192802252 Inexact Rounded +logx2109 log10 0.0000019671987621 -> -5.706151757557926 Inexact Rounded +logx2110 log10 0.0570680660609784 -> -1.243606844697873 Inexact Rounded +logx2111 log10 33.10311638788998 -> 1.519868880976773 Inexact Rounded +logx2112 log10 0.0687382699187077 -> -1.162801402868185 Inexact Rounded +logx2113 log10 258.9416193626484 -> 2.413201859654145 Inexact Rounded +logx2114 log10 0.0005306100136736 -> -3.275224558269725 Inexact Rounded +logx2115 log10 65.78490393408572 -> 1.818126244825109 Inexact Rounded +logx2116 log10 504.2328842073510 -> 2.702631165346958 Inexact Rounded +logx2117 log10 9.417432755815027 -> 0.9739325278524503 Inexact Rounded +logx2118 log10 006.7054835355498 -> 0.8264301004947640 Inexact Rounded +logx2119 log10 0.0917012272363915 -> -1.037624852133399 Inexact Rounded +logx2120 log10 5.959404385244921 -> 0.7752028561953401 Inexact Rounded +logx2121 log10 0.0001209759148486 -> -3.917301084968903 Inexact Rounded +logx2122 log10 0.0004706112139838 -> -3.327337728428039 Inexact Rounded +logx2123 log10 0.0069700457377046 -> -2.156764372035771 Inexact Rounded +logx2124 log10 0.5155584569852619 -> -0.2877220847805025 Inexact Rounded +logx2125 log10 88.06005885607414 -> 1.944778971389913 Inexact Rounded +logx2126 log10 0.0448240038219866 -> -1.348489353509709 Inexact Rounded +logx2127 log10 3.419622484059565 -> 0.5339781639101145 Inexact Rounded +logx2128 log10 5.171123353858721 -> 0.7135848977142854 Inexact Rounded +logx2129 log10 0.0002133188319807 -> -3.670970802945872 Inexact Rounded +logx2130 log10 46.21086703136966 -> 1.664744117045149 Inexact Rounded +logx2131 log10 0.0000631053714415 -> -4.199933672639880 Inexact Rounded +logx2132 log10 78.66019196870698 -> 1.895755001962469 Inexact Rounded +logx2133 log10 0.0007152278351188 -> -3.145555592082297 Inexact Rounded +logx2134 log10 45.52509819928536 -> 1.658250891256892 Inexact Rounded +logx2135 log10 0.0000703227795740 -> -4.152903971697183 Inexact Rounded +logx2136 log10 26.24438641426669 -> 1.419036423550599 Inexact Rounded +logx2137 log10 0.0000044654829535 -> -5.350131564166817 Inexact Rounded +logx2138 log10 0.7360702733062529 -> -0.1330807211893611 Inexact Rounded +logx2139 log10 8.417059176469655 -> 0.9251603805112778 Inexact Rounded +logx2140 log10 0.0002926570767968 -> -3.533640969664818 Inexact Rounded + +-- P=7, within 0-99 +Precision: 7 +logx2001 log10 57.26089 -> 1.757858 Inexact Rounded +logx2002 log10 0.0575421 -> -1.240014 Inexact Rounded +logx2003 log10 0.5918465 -> -0.2277909 Inexact Rounded +logx2004 log10 0.0068776 -> -2.162563 Inexact Rounded +logx2005 log10 0.0066833 -> -2.175009 Inexact Rounded +logx2006 log10 9.926963 -> 0.9968164 Inexact Rounded +logx2007 log10 0.0041852 -> -2.378284 Inexact Rounded +logx2008 log10 84.15412 -> 1.925075 Inexact Rounded +logx2009 log10 2.466856 -> 0.3921438 Inexact Rounded +logx2010 log10 0.0058047 -> -2.236220 Inexact Rounded +logx2011 log10 9.885154 -> 0.9949834 Inexact Rounded +logx2012 log10 0.6667654 -> -0.1760269 Inexact Rounded +logx2013 log10 34.65736 -> 1.539795 Inexact Rounded +logx2014 log10 0.0026884 -> -2.570506 Inexact Rounded +logx2015 log10 0.0432767 -> -1.363746 Inexact Rounded +logx2016 log10 66.01407 -> 1.819637 Inexact Rounded +logx2017 log10 0.0070572 -> -2.151368 Inexact Rounded +logx2018 log10 0.0731613 -> -1.135719 Inexact Rounded +logx2019 log10 9.838983 -> 0.9929502 Inexact Rounded +logx2020 log10 15.89696 -> 1.201314 Inexact Rounded +logx2021 log10 8.459247 -> 0.9273317 Inexact Rounded +logx2022 log10 0.0010873 -> -2.963651 Inexact Rounded +logx2023 log10 0.6498619 -> -0.1871789 Inexact Rounded +logx2024 log10 0.0847008 -> -1.072112 Inexact Rounded +logx2025 log10 0.0075489 -> -2.122116 Inexact Rounded +logx2026 log10 51.11152 -> 1.708519 Inexact Rounded +logx2027 log10 0.7233866 -> -0.1406295 Inexact Rounded +logx2028 log10 2.254721 -> 0.3530928 Inexact Rounded +logx2029 log10 6.568444 -> 0.8174625 Inexact Rounded +logx2030 log10 83.72639 -> 1.922862 Inexact Rounded +logx2031 log10 6.720585 -> 0.8274071 Inexact Rounded +logx2032 log10 87.90366 -> 1.944007 Inexact Rounded +logx2033 log10 0.0433324 -> -1.363187 Inexact Rounded +logx2034 log10 34.63912 -> 1.539567 Inexact Rounded +logx2035 log10 0.8089059 -> -0.09210200 Inexact Rounded +logx2036 log10 7.793405 -> 0.8917272 Inexact Rounded +logx2037 log10 0.0041757 -> -2.379271 Inexact Rounded +logx2038 log10 7.135417 -> 0.8534194 Inexact Rounded +logx2039 log10 12.49570 -> 1.096761 Inexact Rounded +logx2040 log10 6.356276 -> 0.8032027 Inexact Rounded + +-------- +maxExponent: 384 +minExponent: -383 +precision: 16 +rounding: half_even + +-- special values +logx820 log10 Infinity -> Infinity +logx821 log10 0 -> -Infinity +logx822 log10 NaN -> NaN +logx823 log10 sNaN -> NaN Invalid_operation +-- propagating NaNs +logx824 log10 sNaN123 -> NaN123 Invalid_operation +logx825 log10 -sNaN321 -> -NaN321 Invalid_operation +logx826 log10 NaN456 -> NaN456 +logx827 log10 -NaN654 -> -NaN654 +logx828 log10 NaN1 -> NaN1 + + +-- Invalid operations due to restrictions +-- [next two probably skipped by most test harnesses] +precision: 100000000 +logx901 log10 1 -> NaN Invalid_context +precision: 99999999 +logx902 log10 0 -> NaN Invalid_context + +precision: 9 +maxExponent: 1000000 +minExponent: -999999 +logx903 log10 1 -> NaN Invalid_context +maxExponent: 999999 +minExponent: -999999 +logx904 log10 0 -> -Infinity +maxExponent: 999999 +minExponent: -1000000 +logx905 log10 1 -> NaN Invalid_context +maxExponent: 999999 +minExponent: -999998 +logx906 log10 0 -> -Infinity + +-- Null test +logx900 log10 # -> NaN Invalid_operation + + diff --git a/Lib/test/decimaltestdata/logb.decTest b/Lib/test/decimaltestdata/logb.decTest index ff420d0a84..8b79006257 100644 --- a/Lib/test/decimaltestdata/logb.decTest +++ b/Lib/test/decimaltestdata/logb.decTest @@ -1,188 +1,188 @@ -------------------------------------------------------------------------
--- logb.decTest -- return integral adjusted exponent as per 754r --
--- Copyright (c) IBM Corporation, 2005, 2009. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- This emphasises the testing of notable cases, as they will often
--- have unusual paths (especially the 10**n results).
-
-extended: 1
-rounding: half_even
-maxExponent: 999
-minexponent: -999
-
--- basics & examples
-precision: 9
-logbx001 logb 0 -> -Infinity Division_by_zero
-logbx002 logb 1E-999 -> -999
-logbx003 logb 9E-999 -> -999
-logbx004 logb 0.001 -> -3
-logbx005 logb 0.03 -> -2
-logbx006 logb 1 -> 0
-logbx007 logb 2 -> 0
-logbx008 logb 2.5 -> 0
-logbx009 logb 2.50 -> 0
-logbx010 logb 10 -> 1
-logbx011 logb 70 -> 1
-logbx012 logb 100 -> 2
-logbx013 logb 250 -> 2
-logbx014 logb +Infinity -> Infinity
-
--- negatives are treated as positives
-logbx021 logb -0 -> -Infinity Division_by_zero
-logbx022 logb -1E-999 -> -999
-logbx023 logb -9E-999 -> -999
-logbx024 logb -0.001 -> -3
-logbx025 logb -1 -> 0
-logbx026 logb -2 -> 0
-logbx027 logb -10 -> 1
-logbx028 logb -70 -> 1
-logbx029 logb -100 -> 2
-logbx030 logb -100000000 -> 8
-logbx031 logb -Infinity -> Infinity
-
--- zeros
-logbx111 logb 0 -> -Infinity Division_by_zero
-logbx112 logb -0 -> -Infinity Division_by_zero
-logbx113 logb 0E+4 -> -Infinity Division_by_zero
-logbx114 logb -0E+4 -> -Infinity Division_by_zero
-logbx115 logb 0.0000 -> -Infinity Division_by_zero
-logbx116 logb -0.0000 -> -Infinity Division_by_zero
-logbx117 logb 0E-141 -> -Infinity Division_by_zero
-logbx118 logb -0E-141 -> -Infinity Division_by_zero
-
--- full coefficients, alternating bits
-logbx121 logb 268268268 -> 8
-logbx122 logb -268268268 -> 8
-logbx123 logb 134134134 -> 8
-logbx124 logb -134134134 -> 8
-
--- Nmax, Nmin, Ntiny
-logbx131 logb 9.99999999E+999 -> 999
-logbx132 logb 1E-999 -> -999
-logbx133 logb 1.00000000E-999 -> -999
-logbx134 logb 1E-1007 -> -1007
-
-logbx135 logb -1E-1007 -> -1007
-logbx136 logb -1.00000000E-999 -> -999
-logbx137 logb -1E-999 -> -999
-logbx138 logb -9.99999999E+999 -> 999
-
--- ones
-logbx0061 logb 1 -> 0
-logbx0062 logb 1.0 -> 0
-logbx0063 logb 1.000000000000000 -> 0
-logbx0064 logb 1.000000000000000000 -> 0
-
--- notable cases -- exact powers of 10
-logbx1100 logb 1 -> 0
-logbx1101 logb 10 -> 1
-logbx1102 logb 100 -> 2
-logbx1103 logb 1000 -> 3
-logbx1104 logb 10000 -> 4
-logbx1105 logb 100000 -> 5
-logbx1106 logb 1000000 -> 6
-logbx1107 logb 10000000 -> 7
-logbx1108 logb 100000000 -> 8
-logbx1109 logb 1000000000 -> 9
-logbx1110 logb 10000000000 -> 10
-logbx1111 logb 100000000000 -> 11
-logbx1112 logb 1000000000000 -> 12
-logbx1113 logb 0.00000000001 -> -11
-logbx1114 logb 0.0000000001 -> -10
-logbx1115 logb 0.000000001 -> -9
-logbx1116 logb 0.00000001 -> -8
-logbx1117 logb 0.0000001 -> -7
-logbx1118 logb 0.000001 -> -6
-logbx1119 logb 0.00001 -> -5
-logbx1120 logb 0.0001 -> -4
-logbx1121 logb 0.001 -> -3
-logbx1122 logb 0.01 -> -2
-logbx1123 logb 0.1 -> -1
-logbx1124 logb 1E-99 -> -99
-logbx1125 logb 1E-100 -> -100
-logbx1126 logb 1E-383 -> -383
-logbx1127 logb 1E-999 -> -999
-
--- suggestions from Ilan Nehama
-logbx1400 logb 10E-3 -> -2
-logbx1401 logb 10E-2 -> -1
-logbx1402 logb 100E-2 -> 0
-logbx1403 logb 1000E-2 -> 1
-logbx1404 logb 10000E-2 -> 2
-logbx1405 logb 10E-1 -> 0
-logbx1406 logb 100E-1 -> 1
-logbx1407 logb 1000E-1 -> 2
-logbx1408 logb 10000E-1 -> 3
-logbx1409 logb 10E0 -> 1
-logbx1410 logb 100E0 -> 2
-logbx1411 logb 1000E0 -> 3
-logbx1412 logb 10000E0 -> 4
-logbx1413 logb 10E1 -> 2
-logbx1414 logb 100E1 -> 3
-logbx1415 logb 1000E1 -> 4
-logbx1416 logb 10000E1 -> 5
-logbx1417 logb 10E2 -> 3
-logbx1418 logb 100E2 -> 4
-logbx1419 logb 1000E2 -> 5
-logbx1420 logb 10000E2 -> 6
-
--- inexacts
-precision: 2
-logbx1500 logb 10000E2 -> 6
-logbx1501 logb 1E+99 -> 99
-logbx1502 logb 1E-99 -> -99
-logbx1503 logb 1E+100 -> 1.0E+2 Rounded
-logbx1504 logb 1E+999 -> 1.0E+3 Inexact Rounded
-logbx1505 logb 1E-100 -> -1.0E+2 Rounded
-logbx1506 logb 1E-999 -> -1.0E+3 Inexact Rounded
-logbx1507 logb 1E-1111 -> -1.1E+3 Inexact Rounded
-logbx1508 logb 1E-3333 -> -3.3E+3 Inexact Rounded
-logbx1509 logb 1E-6666 -> -6.7E+3 Inexact Rounded
-logbx1510 logb 1E+999999999 -> 1.0E+9 Inexact Rounded
-logbx1511 logb 1E-999999999 -> -1.0E+9 Inexact Rounded
-precision: 1
-logbx1517 logb 1E-1111 -> -1E+3 Inexact Rounded
-logbx1518 logb 1E-3333 -> -3E+3 Inexact Rounded
-logbx1519 logb 1E-6666 -> -7E+3 Inexact Rounded
-precision: 8
-logbx1520 logb 1E+999999999 -> 1.0000000E+9 Inexact Rounded
-logbx1521 logb 1E-999999999 -> -1.0000000E+9 Inexact Rounded
-precision: 9
-logbx1523 logb 1E+999999999 -> 999999999
-logbx1524 logb 1E-999999999 -> -999999999
-
--- special values
-precision: 9
-logbx820 logb Infinity -> Infinity
-logbx821 logb -Infinity -> Infinity
-logbx822 logb 0 -> -Infinity Division_by_zero
-logbx823 logb NaN -> NaN
-logbx824 logb sNaN -> NaN Invalid_operation
--- propagating NaNs
-logbx825 logb sNaN123 -> NaN123 Invalid_operation
-logbx826 logb -sNaN321 -> -NaN321 Invalid_operation
-logbx827 logb NaN456 -> NaN456
-logbx828 logb -NaN654 -> -NaN654
-logbx829 logb NaN1 -> NaN1
-
--- Null test
-logbx900 logb # -> NaN Invalid_operation
-
-
+------------------------------------------------------------------------ +-- logb.decTest -- return integral adjusted exponent as per 754r -- +-- Copyright (c) IBM Corporation, 2005, 2009. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- This emphasises the testing of notable cases, as they will often +-- have unusual paths (especially the 10**n results). + +extended: 1 +rounding: half_even +maxExponent: 999 +minexponent: -999 + +-- basics & examples +precision: 9 +logbx001 logb 0 -> -Infinity Division_by_zero +logbx002 logb 1E-999 -> -999 +logbx003 logb 9E-999 -> -999 +logbx004 logb 0.001 -> -3 +logbx005 logb 0.03 -> -2 +logbx006 logb 1 -> 0 +logbx007 logb 2 -> 0 +logbx008 logb 2.5 -> 0 +logbx009 logb 2.50 -> 0 +logbx010 logb 10 -> 1 +logbx011 logb 70 -> 1 +logbx012 logb 100 -> 2 +logbx013 logb 250 -> 2 +logbx014 logb +Infinity -> Infinity + +-- negatives are treated as positives +logbx021 logb -0 -> -Infinity Division_by_zero +logbx022 logb -1E-999 -> -999 +logbx023 logb -9E-999 -> -999 +logbx024 logb -0.001 -> -3 +logbx025 logb -1 -> 0 +logbx026 logb -2 -> 0 +logbx027 logb -10 -> 1 +logbx028 logb -70 -> 1 +logbx029 logb -100 -> 2 +logbx030 logb -100000000 -> 8 +logbx031 logb -Infinity -> Infinity + +-- zeros +logbx111 logb 0 -> -Infinity Division_by_zero +logbx112 logb -0 -> -Infinity Division_by_zero +logbx113 logb 0E+4 -> -Infinity Division_by_zero +logbx114 logb -0E+4 -> -Infinity Division_by_zero +logbx115 logb 0.0000 -> -Infinity Division_by_zero +logbx116 logb -0.0000 -> -Infinity Division_by_zero +logbx117 logb 0E-141 -> -Infinity Division_by_zero +logbx118 logb -0E-141 -> -Infinity Division_by_zero + +-- full coefficients, alternating bits +logbx121 logb 268268268 -> 8 +logbx122 logb -268268268 -> 8 +logbx123 logb 134134134 -> 8 +logbx124 logb -134134134 -> 8 + +-- Nmax, Nmin, Ntiny +logbx131 logb 9.99999999E+999 -> 999 +logbx132 logb 1E-999 -> -999 +logbx133 logb 1.00000000E-999 -> -999 +logbx134 logb 1E-1007 -> -1007 + +logbx135 logb -1E-1007 -> -1007 +logbx136 logb -1.00000000E-999 -> -999 +logbx137 logb -1E-999 -> -999 +logbx138 logb -9.99999999E+999 -> 999 + +-- ones +logbx0061 logb 1 -> 0 +logbx0062 logb 1.0 -> 0 +logbx0063 logb 1.000000000000000 -> 0 +logbx0064 logb 1.000000000000000000 -> 0 + +-- notable cases -- exact powers of 10 +logbx1100 logb 1 -> 0 +logbx1101 logb 10 -> 1 +logbx1102 logb 100 -> 2 +logbx1103 logb 1000 -> 3 +logbx1104 logb 10000 -> 4 +logbx1105 logb 100000 -> 5 +logbx1106 logb 1000000 -> 6 +logbx1107 logb 10000000 -> 7 +logbx1108 logb 100000000 -> 8 +logbx1109 logb 1000000000 -> 9 +logbx1110 logb 10000000000 -> 10 +logbx1111 logb 100000000000 -> 11 +logbx1112 logb 1000000000000 -> 12 +logbx1113 logb 0.00000000001 -> -11 +logbx1114 logb 0.0000000001 -> -10 +logbx1115 logb 0.000000001 -> -9 +logbx1116 logb 0.00000001 -> -8 +logbx1117 logb 0.0000001 -> -7 +logbx1118 logb 0.000001 -> -6 +logbx1119 logb 0.00001 -> -5 +logbx1120 logb 0.0001 -> -4 +logbx1121 logb 0.001 -> -3 +logbx1122 logb 0.01 -> -2 +logbx1123 logb 0.1 -> -1 +logbx1124 logb 1E-99 -> -99 +logbx1125 logb 1E-100 -> -100 +logbx1126 logb 1E-383 -> -383 +logbx1127 logb 1E-999 -> -999 + +-- suggestions from Ilan Nehama +logbx1400 logb 10E-3 -> -2 +logbx1401 logb 10E-2 -> -1 +logbx1402 logb 100E-2 -> 0 +logbx1403 logb 1000E-2 -> 1 +logbx1404 logb 10000E-2 -> 2 +logbx1405 logb 10E-1 -> 0 +logbx1406 logb 100E-1 -> 1 +logbx1407 logb 1000E-1 -> 2 +logbx1408 logb 10000E-1 -> 3 +logbx1409 logb 10E0 -> 1 +logbx1410 logb 100E0 -> 2 +logbx1411 logb 1000E0 -> 3 +logbx1412 logb 10000E0 -> 4 +logbx1413 logb 10E1 -> 2 +logbx1414 logb 100E1 -> 3 +logbx1415 logb 1000E1 -> 4 +logbx1416 logb 10000E1 -> 5 +logbx1417 logb 10E2 -> 3 +logbx1418 logb 100E2 -> 4 +logbx1419 logb 1000E2 -> 5 +logbx1420 logb 10000E2 -> 6 + +-- inexacts +precision: 2 +logbx1500 logb 10000E2 -> 6 +logbx1501 logb 1E+99 -> 99 +logbx1502 logb 1E-99 -> -99 +logbx1503 logb 1E+100 -> 1.0E+2 Rounded +logbx1504 logb 1E+999 -> 1.0E+3 Inexact Rounded +logbx1505 logb 1E-100 -> -1.0E+2 Rounded +logbx1506 logb 1E-999 -> -1.0E+3 Inexact Rounded +logbx1507 logb 1E-1111 -> -1.1E+3 Inexact Rounded +logbx1508 logb 1E-3333 -> -3.3E+3 Inexact Rounded +logbx1509 logb 1E-6666 -> -6.7E+3 Inexact Rounded +logbx1510 logb 1E+999999999 -> 1.0E+9 Inexact Rounded +logbx1511 logb 1E-999999999 -> -1.0E+9 Inexact Rounded +precision: 1 +logbx1517 logb 1E-1111 -> -1E+3 Inexact Rounded +logbx1518 logb 1E-3333 -> -3E+3 Inexact Rounded +logbx1519 logb 1E-6666 -> -7E+3 Inexact Rounded +precision: 8 +logbx1520 logb 1E+999999999 -> 1.0000000E+9 Inexact Rounded +logbx1521 logb 1E-999999999 -> -1.0000000E+9 Inexact Rounded +precision: 9 +logbx1523 logb 1E+999999999 -> 999999999 +logbx1524 logb 1E-999999999 -> -999999999 + +-- special values +precision: 9 +logbx820 logb Infinity -> Infinity +logbx821 logb -Infinity -> Infinity +logbx822 logb 0 -> -Infinity Division_by_zero +logbx823 logb NaN -> NaN +logbx824 logb sNaN -> NaN Invalid_operation +-- propagating NaNs +logbx825 logb sNaN123 -> NaN123 Invalid_operation +logbx826 logb -sNaN321 -> -NaN321 Invalid_operation +logbx827 logb NaN456 -> NaN456 +logbx828 logb -NaN654 -> -NaN654 +logbx829 logb NaN1 -> NaN1 + +-- Null test +logbx900 logb # -> NaN Invalid_operation + + diff --git a/Lib/test/decimaltestdata/maxmag.decTest b/Lib/test/decimaltestdata/maxmag.decTest index 6b44213079..265e912ed4 100644 --- a/Lib/test/decimaltestdata/maxmag.decTest +++ b/Lib/test/decimaltestdata/maxmag.decTest @@ -1,404 +1,404 @@ -------------------------------------------------------------------------
--- maxmag.decTest -- decimal maximum by magnitude --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- we assume that base comparison is tested in compare.decTest, so
--- these mainly cover special cases and rounding
-
-extended: 1
-precision: 9
-rounding: half_up
-maxExponent: 384
-minexponent: -383
-
--- sanity checks
-mxgx001 maxmag -2 -2 -> -2
-mxgx002 maxmag -2 -1 -> -2
-mxgx003 maxmag -2 0 -> -2
-mxgx004 maxmag -2 1 -> -2
-mxgx005 maxmag -2 2 -> 2
-mxgx006 maxmag -1 -2 -> -2
-mxgx007 maxmag -1 -1 -> -1
-mxgx008 maxmag -1 0 -> -1
-mxgx009 maxmag -1 1 -> 1
-mxgx010 maxmag -1 2 -> 2
-mxgx011 maxmag 0 -2 -> -2
-mxgx012 maxmag 0 -1 -> -1
-mxgx013 maxmag 0 0 -> 0
-mxgx014 maxmag 0 1 -> 1
-mxgx015 maxmag 0 2 -> 2
-mxgx016 maxmag 1 -2 -> -2
-mxgx017 maxmag 1 -1 -> 1
-mxgx018 maxmag 1 0 -> 1
-mxgx019 maxmag 1 1 -> 1
-mxgx020 maxmag 1 2 -> 2
-mxgx021 maxmag 2 -2 -> 2
-mxgx022 maxmag 2 -1 -> 2
-mxgx023 maxmag 2 0 -> 2
-mxgx025 maxmag 2 1 -> 2
-mxgx026 maxmag 2 2 -> 2
-
--- extended zeros
-mxgx030 maxmag 0 0 -> 0
-mxgx031 maxmag 0 -0 -> 0
-mxgx032 maxmag 0 -0.0 -> 0
-mxgx033 maxmag 0 0.0 -> 0
-mxgx034 maxmag -0 0 -> 0 -- note: -0 = 0, but 0 chosen
-mxgx035 maxmag -0 -0 -> -0
-mxgx036 maxmag -0 -0.0 -> -0.0
-mxgx037 maxmag -0 0.0 -> 0.0
-mxgx038 maxmag 0.0 0 -> 0
-mxgx039 maxmag 0.0 -0 -> 0.0
-mxgx040 maxmag 0.0 -0.0 -> 0.0
-mxgx041 maxmag 0.0 0.0 -> 0.0
-mxgx042 maxmag -0.0 0 -> 0
-mxgx043 maxmag -0.0 -0 -> -0.0
-mxgx044 maxmag -0.0 -0.0 -> -0.0
-mxgx045 maxmag -0.0 0.0 -> 0.0
-
-mxgx050 maxmag -0E1 0E1 -> 0E+1
-mxgx051 maxmag -0E2 0E2 -> 0E+2
-mxgx052 maxmag -0E2 0E1 -> 0E+1
-mxgx053 maxmag -0E1 0E2 -> 0E+2
-mxgx054 maxmag 0E1 -0E1 -> 0E+1
-mxgx055 maxmag 0E2 -0E2 -> 0E+2
-mxgx056 maxmag 0E2 -0E1 -> 0E+2
-mxgx057 maxmag 0E1 -0E2 -> 0E+1
-
-mxgx058 maxmag 0E1 0E1 -> 0E+1
-mxgx059 maxmag 0E2 0E2 -> 0E+2
-mxgx060 maxmag 0E2 0E1 -> 0E+2
-mxgx061 maxmag 0E1 0E2 -> 0E+2
-mxgx062 maxmag -0E1 -0E1 -> -0E+1
-mxgx063 maxmag -0E2 -0E2 -> -0E+2
-mxgx064 maxmag -0E2 -0E1 -> -0E+1
-mxgx065 maxmag -0E1 -0E2 -> -0E+1
-
--- Specials
-precision: 9
-mxgx090 maxmag Inf -Inf -> Infinity
-mxgx091 maxmag Inf -1000 -> Infinity
-mxgx092 maxmag Inf -1 -> Infinity
-mxgx093 maxmag Inf -0 -> Infinity
-mxgx094 maxmag Inf 0 -> Infinity
-mxgx095 maxmag Inf 1 -> Infinity
-mxgx096 maxmag Inf 1000 -> Infinity
-mxgx097 maxmag Inf Inf -> Infinity
-mxgx098 maxmag -1000 Inf -> Infinity
-mxgx099 maxmag -Inf Inf -> Infinity
-mxgx100 maxmag -1 Inf -> Infinity
-mxgx101 maxmag -0 Inf -> Infinity
-mxgx102 maxmag 0 Inf -> Infinity
-mxgx103 maxmag 1 Inf -> Infinity
-mxgx104 maxmag 1000 Inf -> Infinity
-mxgx105 maxmag Inf Inf -> Infinity
-
-mxgx120 maxmag -Inf -Inf -> -Infinity
-mxgx121 maxmag -Inf -1000 -> -Infinity
-mxgx122 maxmag -Inf -1 -> -Infinity
-mxgx123 maxmag -Inf -0 -> -Infinity
-mxgx124 maxmag -Inf 0 -> -Infinity
-mxgx125 maxmag -Inf 1 -> -Infinity
-mxgx126 maxmag -Inf 1000 -> -Infinity
-mxgx127 maxmag -Inf Inf -> Infinity
-mxgx128 maxmag -Inf -Inf -> -Infinity
-mxgx129 maxmag -1000 -Inf -> -Infinity
-mxgx130 maxmag -1 -Inf -> -Infinity
-mxgx131 maxmag -0 -Inf -> -Infinity
-mxgx132 maxmag 0 -Inf -> -Infinity
-mxgx133 maxmag 1 -Inf -> -Infinity
-mxgx134 maxmag 1000 -Inf -> -Infinity
-mxgx135 maxmag Inf -Inf -> Infinity
-
--- 2004.08.02 754r chooses number over NaN in mixed cases
-mxgx141 maxmag NaN -Inf -> -Infinity
-mxgx142 maxmag NaN -1000 -> -1000
-mxgx143 maxmag NaN -1 -> -1
-mxgx144 maxmag NaN -0 -> -0
-mxgx145 maxmag NaN 0 -> 0
-mxgx146 maxmag NaN 1 -> 1
-mxgx147 maxmag NaN 1000 -> 1000
-mxgx148 maxmag NaN Inf -> Infinity
-mxgx149 maxmag NaN NaN -> NaN
-mxgx150 maxmag -Inf NaN -> -Infinity
-mxgx151 maxmag -1000 NaN -> -1000
-mxgx152 maxmag -1 NaN -> -1
-mxgx153 maxmag -0 NaN -> -0
-mxgx154 maxmag 0 NaN -> 0
-mxgx155 maxmag 1 NaN -> 1
-mxgx156 maxmag 1000 NaN -> 1000
-mxgx157 maxmag Inf NaN -> Infinity
-
-mxgx161 maxmag sNaN -Inf -> NaN Invalid_operation
-mxgx162 maxmag sNaN -1000 -> NaN Invalid_operation
-mxgx163 maxmag sNaN -1 -> NaN Invalid_operation
-mxgx164 maxmag sNaN -0 -> NaN Invalid_operation
-mxgx165 maxmag sNaN 0 -> NaN Invalid_operation
-mxgx166 maxmag sNaN 1 -> NaN Invalid_operation
-mxgx167 maxmag sNaN 1000 -> NaN Invalid_operation
-mxgx168 maxmag sNaN NaN -> NaN Invalid_operation
-mxgx169 maxmag sNaN sNaN -> NaN Invalid_operation
-mxgx170 maxmag NaN sNaN -> NaN Invalid_operation
-mxgx171 maxmag -Inf sNaN -> NaN Invalid_operation
-mxgx172 maxmag -1000 sNaN -> NaN Invalid_operation
-mxgx173 maxmag -1 sNaN -> NaN Invalid_operation
-mxgx174 maxmag -0 sNaN -> NaN Invalid_operation
-mxgx175 maxmag 0 sNaN -> NaN Invalid_operation
-mxgx176 maxmag 1 sNaN -> NaN Invalid_operation
-mxgx177 maxmag 1000 sNaN -> NaN Invalid_operation
-mxgx178 maxmag Inf sNaN -> NaN Invalid_operation
-mxgx179 maxmag NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-mxgx181 maxmag NaN9 -Inf -> -Infinity
-mxgx182 maxmag NaN8 9 -> 9
-mxgx183 maxmag -NaN7 Inf -> Infinity
-
-mxgx184 maxmag -NaN1 NaN11 -> -NaN1
-mxgx185 maxmag NaN2 NaN12 -> NaN2
-mxgx186 maxmag -NaN13 -NaN7 -> -NaN13
-mxgx187 maxmag NaN14 -NaN5 -> NaN14
-
-mxgx188 maxmag -Inf NaN4 -> -Infinity
-mxgx189 maxmag -9 -NaN3 -> -9
-mxgx190 maxmag Inf NaN2 -> Infinity
-
-mxgx191 maxmag sNaN99 -Inf -> NaN99 Invalid_operation
-mxgx192 maxmag sNaN98 -1 -> NaN98 Invalid_operation
-mxgx193 maxmag -sNaN97 NaN -> -NaN97 Invalid_operation
-mxgx194 maxmag sNaN96 sNaN94 -> NaN96 Invalid_operation
-mxgx195 maxmag NaN95 sNaN93 -> NaN93 Invalid_operation
-mxgx196 maxmag -Inf sNaN92 -> NaN92 Invalid_operation
-mxgx197 maxmag 0 sNaN91 -> NaN91 Invalid_operation
-mxgx198 maxmag Inf -sNaN90 -> -NaN90 Invalid_operation
-mxgx199 maxmag NaN sNaN89 -> NaN89 Invalid_operation
-
--- rounding checks
-maxexponent: 999
-minexponent: -999
-precision: 9
-mxgx201 maxmag 12345678000 1 -> 1.23456780E+10 Rounded
-mxgx202 maxmag 1 12345678000 -> 1.23456780E+10 Rounded
-mxgx203 maxmag 1234567800 1 -> 1.23456780E+9 Rounded
-mxgx204 maxmag 1 1234567800 -> 1.23456780E+9 Rounded
-mxgx205 maxmag 1234567890 1 -> 1.23456789E+9 Rounded
-mxgx206 maxmag 1 1234567890 -> 1.23456789E+9 Rounded
-mxgx207 maxmag 1234567891 1 -> 1.23456789E+9 Inexact Rounded
-mxgx208 maxmag 1 1234567891 -> 1.23456789E+9 Inexact Rounded
-mxgx209 maxmag 12345678901 1 -> 1.23456789E+10 Inexact Rounded
-mxgx210 maxmag 1 12345678901 -> 1.23456789E+10 Inexact Rounded
-mxgx211 maxmag 1234567896 1 -> 1.23456790E+9 Inexact Rounded
-mxgx212 maxmag 1 1234567896 -> 1.23456790E+9 Inexact Rounded
-mxgx213 maxmag -1234567891 1 -> -1.23456789E+9 Inexact Rounded
-mxgx214 maxmag 1 -1234567891 -> -1.23456789E+9 Inexact Rounded
-mxgx215 maxmag -12345678901 1 -> -1.23456789E+10 Inexact Rounded
-mxgx216 maxmag 1 -12345678901 -> -1.23456789E+10 Inexact Rounded
-mxgx217 maxmag -1234567896 1 -> -1.23456790E+9 Inexact Rounded
-mxgx218 maxmag 1 -1234567896 -> -1.23456790E+9 Inexact Rounded
-
-precision: 15
-mxgx221 maxmag 12345678000 1 -> 12345678000
-mxgx222 maxmag 1 12345678000 -> 12345678000
-mxgx223 maxmag 1234567800 1 -> 1234567800
-mxgx224 maxmag 1 1234567800 -> 1234567800
-mxgx225 maxmag 1234567890 1 -> 1234567890
-mxgx226 maxmag 1 1234567890 -> 1234567890
-mxgx227 maxmag 1234567891 1 -> 1234567891
-mxgx228 maxmag 1 1234567891 -> 1234567891
-mxgx229 maxmag 12345678901 1 -> 12345678901
-mxgx230 maxmag 1 12345678901 -> 12345678901
-mxgx231 maxmag 1234567896 1 -> 1234567896
-mxgx232 maxmag 1 1234567896 -> 1234567896
-mxgx233 maxmag -1234567891 1 -> -1234567891
-mxgx234 maxmag 1 -1234567891 -> -1234567891
-mxgx235 maxmag -12345678901 1 -> -12345678901
-mxgx236 maxmag 1 -12345678901 -> -12345678901
-mxgx237 maxmag -1234567896 1 -> -1234567896
-mxgx238 maxmag 1 -1234567896 -> -1234567896
-
--- from examples
-mxgx280 maxmag '3' '2' -> '3'
-mxgx281 maxmag '-10' '3' -> '-10'
-mxgx282 maxmag '1.0' '1' -> '1'
-mxgx283 maxmag '1' '1.0' -> '1'
-mxgx284 maxmag '7' 'NaN' -> '7'
-
--- overflow and underflow tests ...
-maxExponent: 999999999
-minexponent: -999999999
-mxgx330 maxmag +1.23456789012345E-0 9E+999999999 -> 9E+999999999
-mxgx331 maxmag 9E+999999999 +1.23456789012345E-0 -> 9E+999999999
-mxgx332 maxmag +0.100 9E-999999999 -> 0.100
-mxgx333 maxmag 9E-999999999 +0.100 -> 0.100
-mxgx335 maxmag -1.23456789012345E-0 9E+999999999 -> 9E+999999999
-mxgx336 maxmag 9E+999999999 -1.23456789012345E-0 -> 9E+999999999
-mxgx337 maxmag -0.100 9E-999999999 -> -0.100
-mxgx338 maxmag 9E-999999999 -0.100 -> -0.100
-
-mxgx339 maxmag 1e-599999999 1e-400000001 -> 1E-400000001
-mxgx340 maxmag 1e-599999999 1e-400000000 -> 1E-400000000
-mxgx341 maxmag 1e-600000000 1e-400000000 -> 1E-400000000
-mxgx342 maxmag 9e-999999998 0.01 -> 0.01
-mxgx343 maxmag 9e-999999998 0.1 -> 0.1
-mxgx344 maxmag 0.01 9e-999999998 -> 0.01
-mxgx345 maxmag 1e599999999 1e400000001 -> 1E+599999999
-mxgx346 maxmag 1e599999999 1e400000000 -> 1E+599999999
-mxgx347 maxmag 1e600000000 1e400000000 -> 1E+600000000
-mxgx348 maxmag 9e999999998 100 -> 9E+999999998
-mxgx349 maxmag 9e999999998 10 -> 9E+999999998
-mxgx350 maxmag 100 9e999999998 -> 9E+999999998
--- signs
-mxgx351 maxmag 1e+777777777 1e+411111111 -> 1E+777777777
-mxgx352 maxmag 1e+777777777 -1e+411111111 -> 1E+777777777
-mxgx353 maxmag -1e+777777777 1e+411111111 -> -1E+777777777
-mxgx354 maxmag -1e+777777777 -1e+411111111 -> -1E+777777777
-mxgx355 maxmag 1e-777777777 1e-411111111 -> 1E-411111111
-mxgx356 maxmag 1e-777777777 -1e-411111111 -> -1E-411111111
-mxgx357 maxmag -1e-777777777 1e-411111111 -> 1E-411111111
-mxgx358 maxmag -1e-777777777 -1e-411111111 -> -1E-411111111
-
--- expanded list from min/max 754r purple prose
--- [explicit tests for exponent ordering]
-mxgx401 maxmag Inf 1.1 -> Infinity
-mxgx402 maxmag 1.1 1 -> 1.1
-mxgx403 maxmag 1 1.0 -> 1
-mxgx404 maxmag 1.0 0.1 -> 1.0
-mxgx405 maxmag 0.1 0.10 -> 0.1
-mxgx406 maxmag 0.10 0.100 -> 0.10
-mxgx407 maxmag 0.10 0 -> 0.10
-mxgx408 maxmag 0 0.0 -> 0
-mxgx409 maxmag 0.0 -0 -> 0.0
-mxgx410 maxmag 0.0 -0.0 -> 0.0
-mxgx411 maxmag 0.00 -0.0 -> 0.00
-mxgx412 maxmag 0.0 -0.00 -> 0.0
-mxgx413 maxmag 0 -0.0 -> 0
-mxgx414 maxmag 0 -0 -> 0
-mxgx415 maxmag -0.0 -0 -> -0.0
-mxgx416 maxmag -0 -0.100 -> -0.100
-mxgx417 maxmag -0.100 -0.10 -> -0.100
-mxgx418 maxmag -0.10 -0.1 -> -0.10
-mxgx419 maxmag -0.1 -1.0 -> -1.0
-mxgx420 maxmag -1.0 -1 -> -1.0
-mxgx421 maxmag -1 -1.1 -> -1.1
-mxgx423 maxmag -1.1 -Inf -> -Infinity
--- same with operands reversed
-mxgx431 maxmag 1.1 Inf -> Infinity
-mxgx432 maxmag 1 1.1 -> 1.1
-mxgx433 maxmag 1.0 1 -> 1
-mxgx434 maxmag 0.1 1.0 -> 1.0
-mxgx435 maxmag 0.10 0.1 -> 0.1
-mxgx436 maxmag 0.100 0.10 -> 0.10
-mxgx437 maxmag 0 0.10 -> 0.10
-mxgx438 maxmag 0.0 0 -> 0
-mxgx439 maxmag -0 0.0 -> 0.0
-mxgx440 maxmag -0.0 0.0 -> 0.0
-mxgx441 maxmag -0.0 0.00 -> 0.00
-mxgx442 maxmag -0.00 0.0 -> 0.0
-mxgx443 maxmag -0.0 0 -> 0
-mxgx444 maxmag -0 0 -> 0
-mxgx445 maxmag -0 -0.0 -> -0.0
-mxgx446 maxmag -0.100 -0 -> -0.100
-mxgx447 maxmag -0.10 -0.100 -> -0.100
-mxgx448 maxmag -0.1 -0.10 -> -0.10
-mxgx449 maxmag -1.0 -0.1 -> -1.0
-mxgx450 maxmag -1 -1.0 -> -1.0
-mxgx451 maxmag -1.1 -1 -> -1.1
-mxgx453 maxmag -Inf -1.1 -> -Infinity
--- largies
-mxgx460 maxmag 1000 1E+3 -> 1E+3
-mxgx461 maxmag 1E+3 1000 -> 1E+3
-mxgx462 maxmag 1000 -1E+3 -> 1000
-mxgx463 maxmag 1E+3 -1000 -> 1E+3
-mxgx464 maxmag -1000 1E+3 -> 1E+3
-mxgx465 maxmag -1E+3 1000 -> 1000
-mxgx466 maxmag -1000 -1E+3 -> -1000
-mxgx467 maxmag -1E+3 -1000 -> -1000
-
--- rounding (results treated as though plus)
-maxexponent: 999999999
-minexponent: -999999999
-precision: 3
-
-mxgx470 maxmag 1 .5 -> 1
-mxgx471 maxmag 10 5 -> 10
-mxgx472 maxmag 100 50 -> 100
-mxgx473 maxmag 1000 500 -> 1.00E+3 Rounded
-mxgx474 maxmag 10000 5000 -> 1.00E+4 Rounded
-mxgx475 maxmag 6 .5 -> 6
-mxgx476 maxmag 66 5 -> 66
-mxgx477 maxmag 666 50 -> 666
-mxgx478 maxmag 6666 500 -> 6.67E+3 Rounded Inexact
-mxgx479 maxmag 66666 5000 -> 6.67E+4 Rounded Inexact
-mxgx480 maxmag 33333 5000 -> 3.33E+4 Rounded Inexact
-mxgx481 maxmag .5 1 -> 1
-mxgx482 maxmag .5 10 -> 10
-mxgx483 maxmag .5 100 -> 100
-mxgx484 maxmag .5 1000 -> 1.00E+3 Rounded
-mxgx485 maxmag .5 10000 -> 1.00E+4 Rounded
-mxgx486 maxmag .5 6 -> 6
-mxgx487 maxmag .5 66 -> 66
-mxgx488 maxmag .5 666 -> 666
-mxgx489 maxmag .5 6666 -> 6.67E+3 Rounded Inexact
-mxgx490 maxmag .5 66666 -> 6.67E+4 Rounded Inexact
-mxgx491 maxmag .5 33333 -> 3.33E+4 Rounded Inexact
-
--- overflow tests
-maxexponent: 999999999
-minexponent: -999999999
-precision: 3
-mxgx500 maxmag 9.999E+999999999 0 -> Infinity Inexact Overflow Rounded
-mxgx501 maxmag -9.999E+999999999 0 -> -Infinity Inexact Overflow Rounded
-
--- subnormals and underflow
-precision: 3
-maxexponent: 999
-minexponent: -999
-mxgx510 maxmag 1.00E-999 0 -> 1.00E-999
-mxgx511 maxmag 0.1E-999 0 -> 1E-1000 Subnormal
-mxgx512 maxmag 0.10E-999 0 -> 1.0E-1000 Subnormal
-mxgx513 maxmag 0.100E-999 0 -> 1.0E-1000 Subnormal Rounded
-mxgx514 maxmag 0.01E-999 0 -> 1E-1001 Subnormal
--- next is rounded to Nmin
-mxgx515 maxmag 0.999E-999 0 -> 1.00E-999 Inexact Rounded Subnormal Underflow
-mxgx516 maxmag 0.099E-999 0 -> 1.0E-1000 Inexact Rounded Subnormal Underflow
-mxgx517 maxmag 0.009E-999 0 -> 1E-1001 Inexact Rounded Subnormal Underflow
-mxgx518 maxmag 0.001E-999 0 -> 0E-1001 Inexact Rounded Subnormal Underflow Clamped
-mxgx519 maxmag 0.0009E-999 0 -> 0E-1001 Inexact Rounded Subnormal Underflow Clamped
-mxgx520 maxmag 0.0001E-999 0 -> 0E-1001 Inexact Rounded Subnormal Underflow Clamped
-
-mxgx530 maxmag -1.00E-999 0 -> -1.00E-999
-mxgx531 maxmag -0.1E-999 0 -> -1E-1000 Subnormal
-mxgx532 maxmag -0.10E-999 0 -> -1.0E-1000 Subnormal
-mxgx533 maxmag -0.100E-999 0 -> -1.0E-1000 Subnormal Rounded
-mxgx534 maxmag -0.01E-999 0 -> -1E-1001 Subnormal
--- next is rounded to -Nmin
-mxgx535 maxmag -0.999E-999 0 -> -1.00E-999 Inexact Rounded Subnormal Underflow
-mxgx536 maxmag -0.099E-999 0 -> -1.0E-1000 Inexact Rounded Subnormal Underflow
-mxgx537 maxmag -0.009E-999 0 -> -1E-1001 Inexact Rounded Subnormal Underflow
-mxgx538 maxmag -0.001E-999 0 -> -0E-1001 Inexact Rounded Subnormal Underflow Clamped
-mxgx539 maxmag -0.0009E-999 0 -> -0E-1001 Inexact Rounded Subnormal Underflow Clamped
-mxgx540 maxmag -0.0001E-999 0 -> -0E-1001 Inexact Rounded Subnormal Underflow Clamped
-
--- Null tests
-mxgx900 maxmag 10 # -> NaN Invalid_operation
-mxgx901 maxmag # 10 -> NaN Invalid_operation
-
-
-
+------------------------------------------------------------------------ +-- maxmag.decTest -- decimal maximum by magnitude -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- we assume that base comparison is tested in compare.decTest, so +-- these mainly cover special cases and rounding + +extended: 1 +precision: 9 +rounding: half_up +maxExponent: 384 +minexponent: -383 + +-- sanity checks +mxgx001 maxmag -2 -2 -> -2 +mxgx002 maxmag -2 -1 -> -2 +mxgx003 maxmag -2 0 -> -2 +mxgx004 maxmag -2 1 -> -2 +mxgx005 maxmag -2 2 -> 2 +mxgx006 maxmag -1 -2 -> -2 +mxgx007 maxmag -1 -1 -> -1 +mxgx008 maxmag -1 0 -> -1 +mxgx009 maxmag -1 1 -> 1 +mxgx010 maxmag -1 2 -> 2 +mxgx011 maxmag 0 -2 -> -2 +mxgx012 maxmag 0 -1 -> -1 +mxgx013 maxmag 0 0 -> 0 +mxgx014 maxmag 0 1 -> 1 +mxgx015 maxmag 0 2 -> 2 +mxgx016 maxmag 1 -2 -> -2 +mxgx017 maxmag 1 -1 -> 1 +mxgx018 maxmag 1 0 -> 1 +mxgx019 maxmag 1 1 -> 1 +mxgx020 maxmag 1 2 -> 2 +mxgx021 maxmag 2 -2 -> 2 +mxgx022 maxmag 2 -1 -> 2 +mxgx023 maxmag 2 0 -> 2 +mxgx025 maxmag 2 1 -> 2 +mxgx026 maxmag 2 2 -> 2 + +-- extended zeros +mxgx030 maxmag 0 0 -> 0 +mxgx031 maxmag 0 -0 -> 0 +mxgx032 maxmag 0 -0.0 -> 0 +mxgx033 maxmag 0 0.0 -> 0 +mxgx034 maxmag -0 0 -> 0 -- note: -0 = 0, but 0 chosen +mxgx035 maxmag -0 -0 -> -0 +mxgx036 maxmag -0 -0.0 -> -0.0 +mxgx037 maxmag -0 0.0 -> 0.0 +mxgx038 maxmag 0.0 0 -> 0 +mxgx039 maxmag 0.0 -0 -> 0.0 +mxgx040 maxmag 0.0 -0.0 -> 0.0 +mxgx041 maxmag 0.0 0.0 -> 0.0 +mxgx042 maxmag -0.0 0 -> 0 +mxgx043 maxmag -0.0 -0 -> -0.0 +mxgx044 maxmag -0.0 -0.0 -> -0.0 +mxgx045 maxmag -0.0 0.0 -> 0.0 + +mxgx050 maxmag -0E1 0E1 -> 0E+1 +mxgx051 maxmag -0E2 0E2 -> 0E+2 +mxgx052 maxmag -0E2 0E1 -> 0E+1 +mxgx053 maxmag -0E1 0E2 -> 0E+2 +mxgx054 maxmag 0E1 -0E1 -> 0E+1 +mxgx055 maxmag 0E2 -0E2 -> 0E+2 +mxgx056 maxmag 0E2 -0E1 -> 0E+2 +mxgx057 maxmag 0E1 -0E2 -> 0E+1 + +mxgx058 maxmag 0E1 0E1 -> 0E+1 +mxgx059 maxmag 0E2 0E2 -> 0E+2 +mxgx060 maxmag 0E2 0E1 -> 0E+2 +mxgx061 maxmag 0E1 0E2 -> 0E+2 +mxgx062 maxmag -0E1 -0E1 -> -0E+1 +mxgx063 maxmag -0E2 -0E2 -> -0E+2 +mxgx064 maxmag -0E2 -0E1 -> -0E+1 +mxgx065 maxmag -0E1 -0E2 -> -0E+1 + +-- Specials +precision: 9 +mxgx090 maxmag Inf -Inf -> Infinity +mxgx091 maxmag Inf -1000 -> Infinity +mxgx092 maxmag Inf -1 -> Infinity +mxgx093 maxmag Inf -0 -> Infinity +mxgx094 maxmag Inf 0 -> Infinity +mxgx095 maxmag Inf 1 -> Infinity +mxgx096 maxmag Inf 1000 -> Infinity +mxgx097 maxmag Inf Inf -> Infinity +mxgx098 maxmag -1000 Inf -> Infinity +mxgx099 maxmag -Inf Inf -> Infinity +mxgx100 maxmag -1 Inf -> Infinity +mxgx101 maxmag -0 Inf -> Infinity +mxgx102 maxmag 0 Inf -> Infinity +mxgx103 maxmag 1 Inf -> Infinity +mxgx104 maxmag 1000 Inf -> Infinity +mxgx105 maxmag Inf Inf -> Infinity + +mxgx120 maxmag -Inf -Inf -> -Infinity +mxgx121 maxmag -Inf -1000 -> -Infinity +mxgx122 maxmag -Inf -1 -> -Infinity +mxgx123 maxmag -Inf -0 -> -Infinity +mxgx124 maxmag -Inf 0 -> -Infinity +mxgx125 maxmag -Inf 1 -> -Infinity +mxgx126 maxmag -Inf 1000 -> -Infinity +mxgx127 maxmag -Inf Inf -> Infinity +mxgx128 maxmag -Inf -Inf -> -Infinity +mxgx129 maxmag -1000 -Inf -> -Infinity +mxgx130 maxmag -1 -Inf -> -Infinity +mxgx131 maxmag -0 -Inf -> -Infinity +mxgx132 maxmag 0 -Inf -> -Infinity +mxgx133 maxmag 1 -Inf -> -Infinity +mxgx134 maxmag 1000 -Inf -> -Infinity +mxgx135 maxmag Inf -Inf -> Infinity + +-- 2004.08.02 754r chooses number over NaN in mixed cases +mxgx141 maxmag NaN -Inf -> -Infinity +mxgx142 maxmag NaN -1000 -> -1000 +mxgx143 maxmag NaN -1 -> -1 +mxgx144 maxmag NaN -0 -> -0 +mxgx145 maxmag NaN 0 -> 0 +mxgx146 maxmag NaN 1 -> 1 +mxgx147 maxmag NaN 1000 -> 1000 +mxgx148 maxmag NaN Inf -> Infinity +mxgx149 maxmag NaN NaN -> NaN +mxgx150 maxmag -Inf NaN -> -Infinity +mxgx151 maxmag -1000 NaN -> -1000 +mxgx152 maxmag -1 NaN -> -1 +mxgx153 maxmag -0 NaN -> -0 +mxgx154 maxmag 0 NaN -> 0 +mxgx155 maxmag 1 NaN -> 1 +mxgx156 maxmag 1000 NaN -> 1000 +mxgx157 maxmag Inf NaN -> Infinity + +mxgx161 maxmag sNaN -Inf -> NaN Invalid_operation +mxgx162 maxmag sNaN -1000 -> NaN Invalid_operation +mxgx163 maxmag sNaN -1 -> NaN Invalid_operation +mxgx164 maxmag sNaN -0 -> NaN Invalid_operation +mxgx165 maxmag sNaN 0 -> NaN Invalid_operation +mxgx166 maxmag sNaN 1 -> NaN Invalid_operation +mxgx167 maxmag sNaN 1000 -> NaN Invalid_operation +mxgx168 maxmag sNaN NaN -> NaN Invalid_operation +mxgx169 maxmag sNaN sNaN -> NaN Invalid_operation +mxgx170 maxmag NaN sNaN -> NaN Invalid_operation +mxgx171 maxmag -Inf sNaN -> NaN Invalid_operation +mxgx172 maxmag -1000 sNaN -> NaN Invalid_operation +mxgx173 maxmag -1 sNaN -> NaN Invalid_operation +mxgx174 maxmag -0 sNaN -> NaN Invalid_operation +mxgx175 maxmag 0 sNaN -> NaN Invalid_operation +mxgx176 maxmag 1 sNaN -> NaN Invalid_operation +mxgx177 maxmag 1000 sNaN -> NaN Invalid_operation +mxgx178 maxmag Inf sNaN -> NaN Invalid_operation +mxgx179 maxmag NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +mxgx181 maxmag NaN9 -Inf -> -Infinity +mxgx182 maxmag NaN8 9 -> 9 +mxgx183 maxmag -NaN7 Inf -> Infinity + +mxgx184 maxmag -NaN1 NaN11 -> -NaN1 +mxgx185 maxmag NaN2 NaN12 -> NaN2 +mxgx186 maxmag -NaN13 -NaN7 -> -NaN13 +mxgx187 maxmag NaN14 -NaN5 -> NaN14 + +mxgx188 maxmag -Inf NaN4 -> -Infinity +mxgx189 maxmag -9 -NaN3 -> -9 +mxgx190 maxmag Inf NaN2 -> Infinity + +mxgx191 maxmag sNaN99 -Inf -> NaN99 Invalid_operation +mxgx192 maxmag sNaN98 -1 -> NaN98 Invalid_operation +mxgx193 maxmag -sNaN97 NaN -> -NaN97 Invalid_operation +mxgx194 maxmag sNaN96 sNaN94 -> NaN96 Invalid_operation +mxgx195 maxmag NaN95 sNaN93 -> NaN93 Invalid_operation +mxgx196 maxmag -Inf sNaN92 -> NaN92 Invalid_operation +mxgx197 maxmag 0 sNaN91 -> NaN91 Invalid_operation +mxgx198 maxmag Inf -sNaN90 -> -NaN90 Invalid_operation +mxgx199 maxmag NaN sNaN89 -> NaN89 Invalid_operation + +-- rounding checks +maxexponent: 999 +minexponent: -999 +precision: 9 +mxgx201 maxmag 12345678000 1 -> 1.23456780E+10 Rounded +mxgx202 maxmag 1 12345678000 -> 1.23456780E+10 Rounded +mxgx203 maxmag 1234567800 1 -> 1.23456780E+9 Rounded +mxgx204 maxmag 1 1234567800 -> 1.23456780E+9 Rounded +mxgx205 maxmag 1234567890 1 -> 1.23456789E+9 Rounded +mxgx206 maxmag 1 1234567890 -> 1.23456789E+9 Rounded +mxgx207 maxmag 1234567891 1 -> 1.23456789E+9 Inexact Rounded +mxgx208 maxmag 1 1234567891 -> 1.23456789E+9 Inexact Rounded +mxgx209 maxmag 12345678901 1 -> 1.23456789E+10 Inexact Rounded +mxgx210 maxmag 1 12345678901 -> 1.23456789E+10 Inexact Rounded +mxgx211 maxmag 1234567896 1 -> 1.23456790E+9 Inexact Rounded +mxgx212 maxmag 1 1234567896 -> 1.23456790E+9 Inexact Rounded +mxgx213 maxmag -1234567891 1 -> -1.23456789E+9 Inexact Rounded +mxgx214 maxmag 1 -1234567891 -> -1.23456789E+9 Inexact Rounded +mxgx215 maxmag -12345678901 1 -> -1.23456789E+10 Inexact Rounded +mxgx216 maxmag 1 -12345678901 -> -1.23456789E+10 Inexact Rounded +mxgx217 maxmag -1234567896 1 -> -1.23456790E+9 Inexact Rounded +mxgx218 maxmag 1 -1234567896 -> -1.23456790E+9 Inexact Rounded + +precision: 15 +mxgx221 maxmag 12345678000 1 -> 12345678000 +mxgx222 maxmag 1 12345678000 -> 12345678000 +mxgx223 maxmag 1234567800 1 -> 1234567800 +mxgx224 maxmag 1 1234567800 -> 1234567800 +mxgx225 maxmag 1234567890 1 -> 1234567890 +mxgx226 maxmag 1 1234567890 -> 1234567890 +mxgx227 maxmag 1234567891 1 -> 1234567891 +mxgx228 maxmag 1 1234567891 -> 1234567891 +mxgx229 maxmag 12345678901 1 -> 12345678901 +mxgx230 maxmag 1 12345678901 -> 12345678901 +mxgx231 maxmag 1234567896 1 -> 1234567896 +mxgx232 maxmag 1 1234567896 -> 1234567896 +mxgx233 maxmag -1234567891 1 -> -1234567891 +mxgx234 maxmag 1 -1234567891 -> -1234567891 +mxgx235 maxmag -12345678901 1 -> -12345678901 +mxgx236 maxmag 1 -12345678901 -> -12345678901 +mxgx237 maxmag -1234567896 1 -> -1234567896 +mxgx238 maxmag 1 -1234567896 -> -1234567896 + +-- from examples +mxgx280 maxmag '3' '2' -> '3' +mxgx281 maxmag '-10' '3' -> '-10' +mxgx282 maxmag '1.0' '1' -> '1' +mxgx283 maxmag '1' '1.0' -> '1' +mxgx284 maxmag '7' 'NaN' -> '7' + +-- overflow and underflow tests ... +maxExponent: 999999999 +minexponent: -999999999 +mxgx330 maxmag +1.23456789012345E-0 9E+999999999 -> 9E+999999999 +mxgx331 maxmag 9E+999999999 +1.23456789012345E-0 -> 9E+999999999 +mxgx332 maxmag +0.100 9E-999999999 -> 0.100 +mxgx333 maxmag 9E-999999999 +0.100 -> 0.100 +mxgx335 maxmag -1.23456789012345E-0 9E+999999999 -> 9E+999999999 +mxgx336 maxmag 9E+999999999 -1.23456789012345E-0 -> 9E+999999999 +mxgx337 maxmag -0.100 9E-999999999 -> -0.100 +mxgx338 maxmag 9E-999999999 -0.100 -> -0.100 + +mxgx339 maxmag 1e-599999999 1e-400000001 -> 1E-400000001 +mxgx340 maxmag 1e-599999999 1e-400000000 -> 1E-400000000 +mxgx341 maxmag 1e-600000000 1e-400000000 -> 1E-400000000 +mxgx342 maxmag 9e-999999998 0.01 -> 0.01 +mxgx343 maxmag 9e-999999998 0.1 -> 0.1 +mxgx344 maxmag 0.01 9e-999999998 -> 0.01 +mxgx345 maxmag 1e599999999 1e400000001 -> 1E+599999999 +mxgx346 maxmag 1e599999999 1e400000000 -> 1E+599999999 +mxgx347 maxmag 1e600000000 1e400000000 -> 1E+600000000 +mxgx348 maxmag 9e999999998 100 -> 9E+999999998 +mxgx349 maxmag 9e999999998 10 -> 9E+999999998 +mxgx350 maxmag 100 9e999999998 -> 9E+999999998 +-- signs +mxgx351 maxmag 1e+777777777 1e+411111111 -> 1E+777777777 +mxgx352 maxmag 1e+777777777 -1e+411111111 -> 1E+777777777 +mxgx353 maxmag -1e+777777777 1e+411111111 -> -1E+777777777 +mxgx354 maxmag -1e+777777777 -1e+411111111 -> -1E+777777777 +mxgx355 maxmag 1e-777777777 1e-411111111 -> 1E-411111111 +mxgx356 maxmag 1e-777777777 -1e-411111111 -> -1E-411111111 +mxgx357 maxmag -1e-777777777 1e-411111111 -> 1E-411111111 +mxgx358 maxmag -1e-777777777 -1e-411111111 -> -1E-411111111 + +-- expanded list from min/max 754r purple prose +-- [explicit tests for exponent ordering] +mxgx401 maxmag Inf 1.1 -> Infinity +mxgx402 maxmag 1.1 1 -> 1.1 +mxgx403 maxmag 1 1.0 -> 1 +mxgx404 maxmag 1.0 0.1 -> 1.0 +mxgx405 maxmag 0.1 0.10 -> 0.1 +mxgx406 maxmag 0.10 0.100 -> 0.10 +mxgx407 maxmag 0.10 0 -> 0.10 +mxgx408 maxmag 0 0.0 -> 0 +mxgx409 maxmag 0.0 -0 -> 0.0 +mxgx410 maxmag 0.0 -0.0 -> 0.0 +mxgx411 maxmag 0.00 -0.0 -> 0.00 +mxgx412 maxmag 0.0 -0.00 -> 0.0 +mxgx413 maxmag 0 -0.0 -> 0 +mxgx414 maxmag 0 -0 -> 0 +mxgx415 maxmag -0.0 -0 -> -0.0 +mxgx416 maxmag -0 -0.100 -> -0.100 +mxgx417 maxmag -0.100 -0.10 -> -0.100 +mxgx418 maxmag -0.10 -0.1 -> -0.10 +mxgx419 maxmag -0.1 -1.0 -> -1.0 +mxgx420 maxmag -1.0 -1 -> -1.0 +mxgx421 maxmag -1 -1.1 -> -1.1 +mxgx423 maxmag -1.1 -Inf -> -Infinity +-- same with operands reversed +mxgx431 maxmag 1.1 Inf -> Infinity +mxgx432 maxmag 1 1.1 -> 1.1 +mxgx433 maxmag 1.0 1 -> 1 +mxgx434 maxmag 0.1 1.0 -> 1.0 +mxgx435 maxmag 0.10 0.1 -> 0.1 +mxgx436 maxmag 0.100 0.10 -> 0.10 +mxgx437 maxmag 0 0.10 -> 0.10 +mxgx438 maxmag 0.0 0 -> 0 +mxgx439 maxmag -0 0.0 -> 0.0 +mxgx440 maxmag -0.0 0.0 -> 0.0 +mxgx441 maxmag -0.0 0.00 -> 0.00 +mxgx442 maxmag -0.00 0.0 -> 0.0 +mxgx443 maxmag -0.0 0 -> 0 +mxgx444 maxmag -0 0 -> 0 +mxgx445 maxmag -0 -0.0 -> -0.0 +mxgx446 maxmag -0.100 -0 -> -0.100 +mxgx447 maxmag -0.10 -0.100 -> -0.100 +mxgx448 maxmag -0.1 -0.10 -> -0.10 +mxgx449 maxmag -1.0 -0.1 -> -1.0 +mxgx450 maxmag -1 -1.0 -> -1.0 +mxgx451 maxmag -1.1 -1 -> -1.1 +mxgx453 maxmag -Inf -1.1 -> -Infinity +-- largies +mxgx460 maxmag 1000 1E+3 -> 1E+3 +mxgx461 maxmag 1E+3 1000 -> 1E+3 +mxgx462 maxmag 1000 -1E+3 -> 1000 +mxgx463 maxmag 1E+3 -1000 -> 1E+3 +mxgx464 maxmag -1000 1E+3 -> 1E+3 +mxgx465 maxmag -1E+3 1000 -> 1000 +mxgx466 maxmag -1000 -1E+3 -> -1000 +mxgx467 maxmag -1E+3 -1000 -> -1000 + +-- rounding (results treated as though plus) +maxexponent: 999999999 +minexponent: -999999999 +precision: 3 + +mxgx470 maxmag 1 .5 -> 1 +mxgx471 maxmag 10 5 -> 10 +mxgx472 maxmag 100 50 -> 100 +mxgx473 maxmag 1000 500 -> 1.00E+3 Rounded +mxgx474 maxmag 10000 5000 -> 1.00E+4 Rounded +mxgx475 maxmag 6 .5 -> 6 +mxgx476 maxmag 66 5 -> 66 +mxgx477 maxmag 666 50 -> 666 +mxgx478 maxmag 6666 500 -> 6.67E+3 Rounded Inexact +mxgx479 maxmag 66666 5000 -> 6.67E+4 Rounded Inexact +mxgx480 maxmag 33333 5000 -> 3.33E+4 Rounded Inexact +mxgx481 maxmag .5 1 -> 1 +mxgx482 maxmag .5 10 -> 10 +mxgx483 maxmag .5 100 -> 100 +mxgx484 maxmag .5 1000 -> 1.00E+3 Rounded +mxgx485 maxmag .5 10000 -> 1.00E+4 Rounded +mxgx486 maxmag .5 6 -> 6 +mxgx487 maxmag .5 66 -> 66 +mxgx488 maxmag .5 666 -> 666 +mxgx489 maxmag .5 6666 -> 6.67E+3 Rounded Inexact +mxgx490 maxmag .5 66666 -> 6.67E+4 Rounded Inexact +mxgx491 maxmag .5 33333 -> 3.33E+4 Rounded Inexact + +-- overflow tests +maxexponent: 999999999 +minexponent: -999999999 +precision: 3 +mxgx500 maxmag 9.999E+999999999 0 -> Infinity Inexact Overflow Rounded +mxgx501 maxmag -9.999E+999999999 0 -> -Infinity Inexact Overflow Rounded + +-- subnormals and underflow +precision: 3 +maxexponent: 999 +minexponent: -999 +mxgx510 maxmag 1.00E-999 0 -> 1.00E-999 +mxgx511 maxmag 0.1E-999 0 -> 1E-1000 Subnormal +mxgx512 maxmag 0.10E-999 0 -> 1.0E-1000 Subnormal +mxgx513 maxmag 0.100E-999 0 -> 1.0E-1000 Subnormal Rounded +mxgx514 maxmag 0.01E-999 0 -> 1E-1001 Subnormal +-- next is rounded to Nmin +mxgx515 maxmag 0.999E-999 0 -> 1.00E-999 Inexact Rounded Subnormal Underflow +mxgx516 maxmag 0.099E-999 0 -> 1.0E-1000 Inexact Rounded Subnormal Underflow +mxgx517 maxmag 0.009E-999 0 -> 1E-1001 Inexact Rounded Subnormal Underflow +mxgx518 maxmag 0.001E-999 0 -> 0E-1001 Inexact Rounded Subnormal Underflow Clamped +mxgx519 maxmag 0.0009E-999 0 -> 0E-1001 Inexact Rounded Subnormal Underflow Clamped +mxgx520 maxmag 0.0001E-999 0 -> 0E-1001 Inexact Rounded Subnormal Underflow Clamped + +mxgx530 maxmag -1.00E-999 0 -> -1.00E-999 +mxgx531 maxmag -0.1E-999 0 -> -1E-1000 Subnormal +mxgx532 maxmag -0.10E-999 0 -> -1.0E-1000 Subnormal +mxgx533 maxmag -0.100E-999 0 -> -1.0E-1000 Subnormal Rounded +mxgx534 maxmag -0.01E-999 0 -> -1E-1001 Subnormal +-- next is rounded to -Nmin +mxgx535 maxmag -0.999E-999 0 -> -1.00E-999 Inexact Rounded Subnormal Underflow +mxgx536 maxmag -0.099E-999 0 -> -1.0E-1000 Inexact Rounded Subnormal Underflow +mxgx537 maxmag -0.009E-999 0 -> -1E-1001 Inexact Rounded Subnormal Underflow +mxgx538 maxmag -0.001E-999 0 -> -0E-1001 Inexact Rounded Subnormal Underflow Clamped +mxgx539 maxmag -0.0009E-999 0 -> -0E-1001 Inexact Rounded Subnormal Underflow Clamped +mxgx540 maxmag -0.0001E-999 0 -> -0E-1001 Inexact Rounded Subnormal Underflow Clamped + +-- Null tests +mxgx900 maxmag 10 # -> NaN Invalid_operation +mxgx901 maxmag # 10 -> NaN Invalid_operation + + + diff --git a/Lib/test/decimaltestdata/minmag.decTest b/Lib/test/decimaltestdata/minmag.decTest index 9e562339eb..f1ac3852e8 100644 --- a/Lib/test/decimaltestdata/minmag.decTest +++ b/Lib/test/decimaltestdata/minmag.decTest @@ -1,390 +1,390 @@ -------------------------------------------------------------------------
--- minmag.decTest -- decimal minimum by magnitude --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- we assume that base comparison is tested in compare.decTest, so
--- these mainly cover special cases and rounding
-
-extended: 1
-precision: 9
-rounding: half_up
-maxExponent: 384
-minexponent: -383
-
--- sanity checks
-mngx001 minmag -2 -2 -> -2
-mngx002 minmag -2 -1 -> -1
-mngx003 minmag -2 0 -> 0
-mngx004 minmag -2 1 -> 1
-mngx005 minmag -2 2 -> -2
-mngx006 minmag -1 -2 -> -1
-mngx007 minmag -1 -1 -> -1
-mngx008 minmag -1 0 -> 0
-mngx009 minmag -1 1 -> -1
-mngx010 minmag -1 2 -> -1
-mngx011 minmag 0 -2 -> 0
-mngx012 minmag 0 -1 -> 0
-mngx013 minmag 0 0 -> 0
-mngx014 minmag 0 1 -> 0
-mngx015 minmag 0 2 -> 0
-mngx016 minmag 1 -2 -> 1
-mngx017 minmag 1 -1 -> -1
-mngx018 minmag 1 0 -> 0
-mngx019 minmag 1 1 -> 1
-mngx020 minmag 1 2 -> 1
-mngx021 minmag 2 -2 -> -2
-mngx022 minmag 2 -1 -> -1
-mngx023 minmag 2 0 -> 0
-mngx025 minmag 2 1 -> 1
-mngx026 minmag 2 2 -> 2
-
--- extended zeros
-mngx030 minmag 0 0 -> 0
-mngx031 minmag 0 -0 -> -0
-mngx032 minmag 0 -0.0 -> -0.0
-mngx033 minmag 0 0.0 -> 0.0
-mngx034 minmag -0 0 -> -0
-mngx035 minmag -0 -0 -> -0
-mngx036 minmag -0 -0.0 -> -0
-mngx037 minmag -0 0.0 -> -0
-mngx038 minmag 0.0 0 -> 0.0
-mngx039 minmag 0.0 -0 -> -0
-mngx040 minmag 0.0 -0.0 -> -0.0
-mngx041 minmag 0.0 0.0 -> 0.0
-mngx042 minmag -0.0 0 -> -0.0
-mngx043 minmag -0.0 -0 -> -0
-mngx044 minmag -0.0 -0.0 -> -0.0
-mngx045 minmag -0.0 0.0 -> -0.0
-
-mngx046 minmag 0E1 -0E1 -> -0E+1
-mngx047 minmag -0E1 0E2 -> -0E+1
-mngx048 minmag 0E2 0E1 -> 0E+1
-mngx049 minmag 0E1 0E2 -> 0E+1
-mngx050 minmag -0E3 -0E2 -> -0E+3
-mngx051 minmag -0E2 -0E3 -> -0E+3
-
--- Specials
-precision: 9
-mngx090 minmag Inf -Inf -> -Infinity
-mngx091 minmag Inf -1000 -> -1000
-mngx092 minmag Inf -1 -> -1
-mngx093 minmag Inf -0 -> -0
-mngx094 minmag Inf 0 -> 0
-mngx095 minmag Inf 1 -> 1
-mngx096 minmag Inf 1000 -> 1000
-mngx097 minmag Inf Inf -> Infinity
-mngx098 minmag -1000 Inf -> -1000
-mngx099 minmag -Inf Inf -> -Infinity
-mngx100 minmag -1 Inf -> -1
-mngx101 minmag -0 Inf -> -0
-mngx102 minmag 0 Inf -> 0
-mngx103 minmag 1 Inf -> 1
-mngx104 minmag 1000 Inf -> 1000
-mngx105 minmag Inf Inf -> Infinity
-
-mngx120 minmag -Inf -Inf -> -Infinity
-mngx121 minmag -Inf -1000 -> -1000
-mngx122 minmag -Inf -1 -> -1
-mngx123 minmag -Inf -0 -> -0
-mngx124 minmag -Inf 0 -> 0
-mngx125 minmag -Inf 1 -> 1
-mngx126 minmag -Inf 1000 -> 1000
-mngx127 minmag -Inf Inf -> -Infinity
-mngx128 minmag -Inf -Inf -> -Infinity
-mngx129 minmag -1000 -Inf -> -1000
-mngx130 minmag -1 -Inf -> -1
-mngx131 minmag -0 -Inf -> -0
-mngx132 minmag 0 -Inf -> 0
-mngx133 minmag 1 -Inf -> 1
-mngx134 minmag 1000 -Inf -> 1000
-mngx135 minmag Inf -Inf -> -Infinity
-
--- 2004.08.02 754r chooses number over NaN in mixed cases
-mngx141 minmag NaN -Inf -> -Infinity
-mngx142 minmag NaN -1000 -> -1000
-mngx143 minmag NaN -1 -> -1
-mngx144 minmag NaN -0 -> -0
-mngx145 minmag NaN 0 -> 0
-mngx146 minmag NaN 1 -> 1
-mngx147 minmag NaN 1000 -> 1000
-mngx148 minmag NaN Inf -> Infinity
-mngx149 minmag NaN NaN -> NaN
-mngx150 minmag -Inf NaN -> -Infinity
-mngx151 minmag -1000 NaN -> -1000
-mngx152 minmag -1 -NaN -> -1
-mngx153 minmag -0 NaN -> -0
-mngx154 minmag 0 -NaN -> 0
-mngx155 minmag 1 NaN -> 1
-mngx156 minmag 1000 NaN -> 1000
-mngx157 minmag Inf NaN -> Infinity
-
-mngx161 minmag sNaN -Inf -> NaN Invalid_operation
-mngx162 minmag sNaN -1000 -> NaN Invalid_operation
-mngx163 minmag sNaN -1 -> NaN Invalid_operation
-mngx164 minmag sNaN -0 -> NaN Invalid_operation
-mngx165 minmag -sNaN 0 -> -NaN Invalid_operation
-mngx166 minmag -sNaN 1 -> -NaN Invalid_operation
-mngx167 minmag sNaN 1000 -> NaN Invalid_operation
-mngx168 minmag sNaN NaN -> NaN Invalid_operation
-mngx169 minmag sNaN sNaN -> NaN Invalid_operation
-mngx170 minmag NaN sNaN -> NaN Invalid_operation
-mngx171 minmag -Inf sNaN -> NaN Invalid_operation
-mngx172 minmag -1000 sNaN -> NaN Invalid_operation
-mngx173 minmag -1 sNaN -> NaN Invalid_operation
-mngx174 minmag -0 sNaN -> NaN Invalid_operation
-mngx175 minmag 0 sNaN -> NaN Invalid_operation
-mngx176 minmag 1 sNaN -> NaN Invalid_operation
-mngx177 minmag 1000 sNaN -> NaN Invalid_operation
-mngx178 minmag Inf sNaN -> NaN Invalid_operation
-mngx179 minmag NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-mngx181 minmag NaN9 -Inf -> -Infinity
-mngx182 minmag -NaN8 9990 -> 9990
-mngx183 minmag NaN71 Inf -> Infinity
-
-mngx184 minmag NaN1 NaN54 -> NaN1
-mngx185 minmag NaN22 -NaN53 -> NaN22
-mngx186 minmag -NaN3 NaN6 -> -NaN3
-mngx187 minmag -NaN44 NaN7 -> -NaN44
-
-mngx188 minmag -Inf NaN41 -> -Infinity
-mngx189 minmag -9999 -NaN33 -> -9999
-mngx190 minmag Inf NaN2 -> Infinity
-
-mngx191 minmag sNaN99 -Inf -> NaN99 Invalid_operation
-mngx192 minmag sNaN98 -11 -> NaN98 Invalid_operation
-mngx193 minmag -sNaN97 NaN8 -> -NaN97 Invalid_operation
-mngx194 minmag sNaN69 sNaN94 -> NaN69 Invalid_operation
-mngx195 minmag NaN95 sNaN93 -> NaN93 Invalid_operation
-mngx196 minmag -Inf sNaN92 -> NaN92 Invalid_operation
-mngx197 minmag 088 sNaN91 -> NaN91 Invalid_operation
-mngx198 minmag Inf -sNaN90 -> -NaN90 Invalid_operation
-mngx199 minmag NaN sNaN86 -> NaN86 Invalid_operation
-
--- rounding checks -- chosen is rounded, or not
-maxExponent: 999
-minexponent: -999
-precision: 9
-mngx201 minmag -12345678000 1 -> 1
-mngx202 minmag 1 -12345678000 -> 1
-mngx203 minmag -1234567800 1 -> 1
-mngx204 minmag 1 -1234567800 -> 1
-mngx205 minmag -1234567890 1 -> 1
-mngx206 minmag 1 -1234567890 -> 1
-mngx207 minmag -1234567891 1 -> 1
-mngx208 minmag 1 -1234567891 -> 1
-mngx209 minmag -12345678901 1 -> 1
-mngx210 minmag 1 -12345678901 -> 1
-mngx211 minmag -1234567896 1 -> 1
-mngx212 minmag 1 -1234567896 -> 1
-mngx213 minmag 1234567891 1 -> 1
-mngx214 minmag 1 1234567891 -> 1
-mngx215 minmag 12345678901 1 -> 1
-mngx216 minmag 1 12345678901 -> 1
-mngx217 minmag 1234567896 1 -> 1
-mngx218 minmag 1 1234567896 -> 1
-
-precision: 15
-mngx221 minmag -12345678000 1 -> 1
-mngx222 minmag 1 -12345678000 -> 1
-mngx223 minmag -1234567800 1 -> 1
-mngx224 minmag 1 -1234567800 -> 1
-mngx225 minmag -1234567890 1 -> 1
-mngx226 minmag 1 -1234567890 -> 1
-mngx227 minmag -1234567891 1 -> 1
-mngx228 minmag 1 -1234567891 -> 1
-mngx229 minmag -12345678901 1 -> 1
-mngx230 minmag 1 -12345678901 -> 1
-mngx231 minmag -1234567896 1 -> 1
-mngx232 minmag 1 -1234567896 -> 1
-mngx233 minmag 1234567891 1 -> 1
-mngx234 minmag 1 1234567891 -> 1
-mngx235 minmag 12345678901 1 -> 1
-mngx236 minmag 1 12345678901 -> 1
-mngx237 minmag 1234567896 1 -> 1
-mngx238 minmag 1 1234567896 -> 1
-
--- from examples
-mngx280 minmag '3' '2' -> '2'
-mngx281 minmag '-10' '3' -> '3'
-mngx282 minmag '1.0' '1' -> '1.0'
-mngx283 minmag '1' '1.0' -> '1.0'
-mngx284 minmag '7' 'NaN' -> '7'
-
--- overflow and underflow tests .. subnormal results [inputs] now allowed
-maxExponent: 999999999
-minexponent: -999999999
-mngx330 minmag -1.23456789012345E-0 -9E+999999999 -> -1.23456789012345
-mngx331 minmag -9E+999999999 -1.23456789012345E-0 -> -1.23456789012345
-mngx332 minmag -0.100 -9E-999999999 -> -9E-999999999
-mngx333 minmag -9E-999999999 -0.100 -> -9E-999999999
-mngx335 minmag +1.23456789012345E-0 -9E+999999999 -> 1.23456789012345
-mngx336 minmag -9E+999999999 1.23456789012345E-0 -> 1.23456789012345
-mngx337 minmag +0.100 -9E-999999999 -> -9E-999999999
-mngx338 minmag -9E-999999999 0.100 -> -9E-999999999
-
-mngx339 minmag -1e-599999999 -1e-400000001 -> -1E-599999999
-mngx340 minmag -1e-599999999 -1e-400000000 -> -1E-599999999
-mngx341 minmag -1e-600000000 -1e-400000000 -> -1E-600000000
-mngx342 minmag -9e-999999998 -0.01 -> -9E-999999998
-mngx343 minmag -9e-999999998 -0.1 -> -9E-999999998
-mngx344 minmag -0.01 -9e-999999998 -> -9E-999999998
-mngx345 minmag -1e599999999 -1e400000001 -> -1E+400000001
-mngx346 minmag -1e599999999 -1e400000000 -> -1E+400000000
-mngx347 minmag -1e600000000 -1e400000000 -> -1E+400000000
-mngx348 minmag -9e999999998 -100 -> -100
-mngx349 minmag -9e999999998 -10 -> -10
-mngx350 minmag -100 -9e999999998 -> -100
--- signs
-mngx351 minmag -1e+777777777 -1e+411111111 -> -1E+411111111
-mngx352 minmag -1e+777777777 +1e+411111111 -> 1E+411111111
-mngx353 minmag +1e+777777777 -1e+411111111 -> -1E+411111111
-mngx354 minmag +1e+777777777 +1e+411111111 -> 1E+411111111
-mngx355 minmag -1e-777777777 -1e-411111111 -> -1E-777777777
-mngx356 minmag -1e-777777777 +1e-411111111 -> -1E-777777777
-mngx357 minmag +1e-777777777 -1e-411111111 -> 1E-777777777
-mngx358 minmag +1e-777777777 +1e-411111111 -> 1E-777777777
-
--- expanded list from min/max 754r purple prose
--- [explicit tests for exponent ordering]
-mngx401 minmag Inf 1.1 -> 1.1
-mngx402 minmag 1.1 1 -> 1
-mngx403 minmag 1 1.0 -> 1.0
-mngx404 minmag 1.0 0.1 -> 0.1
-mngx405 minmag 0.1 0.10 -> 0.10
-mngx406 minmag 0.10 0.100 -> 0.100
-mngx407 minmag 0.10 0 -> 0
-mngx408 minmag 0 0.0 -> 0.0
-mngx409 minmag 0.0 -0 -> -0
-mngx410 minmag 0.0 -0.0 -> -0.0
-mngx411 minmag 0.00 -0.0 -> -0.0
-mngx412 minmag 0.0 -0.00 -> -0.00
-mngx413 minmag 0 -0.0 -> -0.0
-mngx414 minmag 0 -0 -> -0
-mngx415 minmag -0.0 -0 -> -0
-mngx416 minmag -0 -0.100 -> -0
-mngx417 minmag -0.100 -0.10 -> -0.10
-mngx418 minmag -0.10 -0.1 -> -0.1
-mngx419 minmag -0.1 -1.0 -> -0.1
-mngx420 minmag -1.0 -1 -> -1
-mngx421 minmag -1 -1.1 -> -1
-mngx423 minmag -1.1 -Inf -> -1.1
--- same with operands reversed
-mngx431 minmag 1.1 Inf -> 1.1
-mngx432 minmag 1 1.1 -> 1
-mngx433 minmag 1.0 1 -> 1.0
-mngx434 minmag 0.1 1.0 -> 0.1
-mngx435 minmag 0.10 0.1 -> 0.10
-mngx436 minmag 0.100 0.10 -> 0.100
-mngx437 minmag 0 0.10 -> 0
-mngx438 minmag 0.0 0 -> 0.0
-mngx439 minmag -0 0.0 -> -0
-mngx440 minmag -0.0 0.0 -> -0.0
-mngx441 minmag -0.0 0.00 -> -0.0
-mngx442 minmag -0.00 0.0 -> -0.00
-mngx443 minmag -0.0 0 -> -0.0
-mngx444 minmag -0 0 -> -0
-mngx445 minmag -0 -0.0 -> -0
-mngx446 minmag -0.100 -0 -> -0
-mngx447 minmag -0.10 -0.100 -> -0.10
-mngx448 minmag -0.1 -0.10 -> -0.1
-mngx449 minmag -1.0 -0.1 -> -0.1
-mngx450 minmag -1 -1.0 -> -1
-mngx451 minmag -1.1 -1 -> -1
-mngx453 minmag -Inf -1.1 -> -1.1
--- largies
-mngx460 minmag 1000 1E+3 -> 1000
-mngx461 minmag 1E+3 1000 -> 1000
-mngx462 minmag 1000 -1E+3 -> -1E+3
-mngx463 minmag 1E+3 -1000 -> -1000
-mngx464 minmag -1000 1E+3 -> -1000
-mngx465 minmag -1E+3 1000 -> -1E+3
-mngx466 minmag -1000 -1E+3 -> -1E+3
-mngx467 minmag -1E+3 -1000 -> -1E+3
-
--- rounding (results treated as though plus)
-maxexponent: 999999999
-minexponent: -999999999
-precision: 3
-
-mngx470 minmag 1 5 -> 1
-mngx471 minmag 10 50 -> 10
-mngx472 minmag 100 500 -> 100
-mngx473 minmag 1000 5000 -> 1.00E+3 Rounded
-mngx474 minmag 10000 50000 -> 1.00E+4 Rounded
-mngx475 minmag 6 50 -> 6
-mngx476 minmag 66 500 -> 66
-mngx477 minmag 666 5000 -> 666
-mngx478 minmag 6666 50000 -> 6.67E+3 Rounded Inexact
-mngx479 minmag 66666 500000 -> 6.67E+4 Rounded Inexact
-mngx480 minmag 33333 500000 -> 3.33E+4 Rounded Inexact
-mngx481 minmag 75401 1 -> 1
-mngx482 minmag 75402 10 -> 10
-mngx483 minmag 75403 100 -> 100
-mngx484 minmag 75404 1000 -> 1.00E+3 Rounded
-mngx485 minmag 75405 10000 -> 1.00E+4 Rounded
-mngx486 minmag 75406 6 -> 6
-mngx487 minmag 75407 66 -> 66
-mngx488 minmag 75408 666 -> 666
-mngx489 minmag 75409 6666 -> 6.67E+3 Rounded Inexact
-mngx490 minmag 75410 66666 -> 6.67E+4 Rounded Inexact
-mngx491 minmag 75411 33333 -> 3.33E+4 Rounded Inexact
-
-
--- overflow tests
-maxexponent: 999999999
-minexponent: -999999999
-precision: 3
-mngx500 minmag 9.999E+999999999 0 -> 0
-mngx501 minmag -9.999E+999999999 0 -> 0
-
--- subnormals and underflow
-precision: 3
-maxexponent: 999
-minexponent: -999
-mngx510 minmag 1.00E-999 0 -> 0
-mngx511 minmag 0.1E-999 0 -> 0
-mngx512 minmag 0.10E-999 0 -> 0
-mngx513 minmag 0.100E-999 0 -> 0
-mngx514 minmag 0.01E-999 0 -> 0
-mngx515 minmag 0.999E-999 0 -> 0
-mngx516 minmag 0.099E-999 0 -> 0
-mngx517 minmag 0.009E-999 0 -> 0
-mngx518 minmag 0.001E-999 0 -> 0
-mngx519 minmag 0.0009E-999 0 -> 0
-mngx520 minmag 0.0001E-999 0 -> 0
-
-mngx530 minmag -1.00E-999 0 -> 0
-mngx531 minmag -0.1E-999 0 -> 0
-mngx532 minmag -0.10E-999 0 -> 0
-mngx533 minmag -0.100E-999 0 -> 0
-mngx534 minmag -0.01E-999 0 -> 0
-mngx535 minmag -0.999E-999 0 -> 0
-mngx536 minmag -0.099E-999 0 -> 0
-mngx537 minmag -0.009E-999 0 -> 0
-mngx538 minmag -0.001E-999 0 -> 0
-mngx539 minmag -0.0009E-999 0 -> 0
-mngx540 minmag -0.0001E-999 0 -> 0
-
-
--- Null tests
-mng900 minmag 10 # -> NaN Invalid_operation
-mng901 minmag # 10 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- minmag.decTest -- decimal minimum by magnitude -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- we assume that base comparison is tested in compare.decTest, so +-- these mainly cover special cases and rounding + +extended: 1 +precision: 9 +rounding: half_up +maxExponent: 384 +minexponent: -383 + +-- sanity checks +mngx001 minmag -2 -2 -> -2 +mngx002 minmag -2 -1 -> -1 +mngx003 minmag -2 0 -> 0 +mngx004 minmag -2 1 -> 1 +mngx005 minmag -2 2 -> -2 +mngx006 minmag -1 -2 -> -1 +mngx007 minmag -1 -1 -> -1 +mngx008 minmag -1 0 -> 0 +mngx009 minmag -1 1 -> -1 +mngx010 minmag -1 2 -> -1 +mngx011 minmag 0 -2 -> 0 +mngx012 minmag 0 -1 -> 0 +mngx013 minmag 0 0 -> 0 +mngx014 minmag 0 1 -> 0 +mngx015 minmag 0 2 -> 0 +mngx016 minmag 1 -2 -> 1 +mngx017 minmag 1 -1 -> -1 +mngx018 minmag 1 0 -> 0 +mngx019 minmag 1 1 -> 1 +mngx020 minmag 1 2 -> 1 +mngx021 minmag 2 -2 -> -2 +mngx022 minmag 2 -1 -> -1 +mngx023 minmag 2 0 -> 0 +mngx025 minmag 2 1 -> 1 +mngx026 minmag 2 2 -> 2 + +-- extended zeros +mngx030 minmag 0 0 -> 0 +mngx031 minmag 0 -0 -> -0 +mngx032 minmag 0 -0.0 -> -0.0 +mngx033 minmag 0 0.0 -> 0.0 +mngx034 minmag -0 0 -> -0 +mngx035 minmag -0 -0 -> -0 +mngx036 minmag -0 -0.0 -> -0 +mngx037 minmag -0 0.0 -> -0 +mngx038 minmag 0.0 0 -> 0.0 +mngx039 minmag 0.0 -0 -> -0 +mngx040 minmag 0.0 -0.0 -> -0.0 +mngx041 minmag 0.0 0.0 -> 0.0 +mngx042 minmag -0.0 0 -> -0.0 +mngx043 minmag -0.0 -0 -> -0 +mngx044 minmag -0.0 -0.0 -> -0.0 +mngx045 minmag -0.0 0.0 -> -0.0 + +mngx046 minmag 0E1 -0E1 -> -0E+1 +mngx047 minmag -0E1 0E2 -> -0E+1 +mngx048 minmag 0E2 0E1 -> 0E+1 +mngx049 minmag 0E1 0E2 -> 0E+1 +mngx050 minmag -0E3 -0E2 -> -0E+3 +mngx051 minmag -0E2 -0E3 -> -0E+3 + +-- Specials +precision: 9 +mngx090 minmag Inf -Inf -> -Infinity +mngx091 minmag Inf -1000 -> -1000 +mngx092 minmag Inf -1 -> -1 +mngx093 minmag Inf -0 -> -0 +mngx094 minmag Inf 0 -> 0 +mngx095 minmag Inf 1 -> 1 +mngx096 minmag Inf 1000 -> 1000 +mngx097 minmag Inf Inf -> Infinity +mngx098 minmag -1000 Inf -> -1000 +mngx099 minmag -Inf Inf -> -Infinity +mngx100 minmag -1 Inf -> -1 +mngx101 minmag -0 Inf -> -0 +mngx102 minmag 0 Inf -> 0 +mngx103 minmag 1 Inf -> 1 +mngx104 minmag 1000 Inf -> 1000 +mngx105 minmag Inf Inf -> Infinity + +mngx120 minmag -Inf -Inf -> -Infinity +mngx121 minmag -Inf -1000 -> -1000 +mngx122 minmag -Inf -1 -> -1 +mngx123 minmag -Inf -0 -> -0 +mngx124 minmag -Inf 0 -> 0 +mngx125 minmag -Inf 1 -> 1 +mngx126 minmag -Inf 1000 -> 1000 +mngx127 minmag -Inf Inf -> -Infinity +mngx128 minmag -Inf -Inf -> -Infinity +mngx129 minmag -1000 -Inf -> -1000 +mngx130 minmag -1 -Inf -> -1 +mngx131 minmag -0 -Inf -> -0 +mngx132 minmag 0 -Inf -> 0 +mngx133 minmag 1 -Inf -> 1 +mngx134 minmag 1000 -Inf -> 1000 +mngx135 minmag Inf -Inf -> -Infinity + +-- 2004.08.02 754r chooses number over NaN in mixed cases +mngx141 minmag NaN -Inf -> -Infinity +mngx142 minmag NaN -1000 -> -1000 +mngx143 minmag NaN -1 -> -1 +mngx144 minmag NaN -0 -> -0 +mngx145 minmag NaN 0 -> 0 +mngx146 minmag NaN 1 -> 1 +mngx147 minmag NaN 1000 -> 1000 +mngx148 minmag NaN Inf -> Infinity +mngx149 minmag NaN NaN -> NaN +mngx150 minmag -Inf NaN -> -Infinity +mngx151 minmag -1000 NaN -> -1000 +mngx152 minmag -1 -NaN -> -1 +mngx153 minmag -0 NaN -> -0 +mngx154 minmag 0 -NaN -> 0 +mngx155 minmag 1 NaN -> 1 +mngx156 minmag 1000 NaN -> 1000 +mngx157 minmag Inf NaN -> Infinity + +mngx161 minmag sNaN -Inf -> NaN Invalid_operation +mngx162 minmag sNaN -1000 -> NaN Invalid_operation +mngx163 minmag sNaN -1 -> NaN Invalid_operation +mngx164 minmag sNaN -0 -> NaN Invalid_operation +mngx165 minmag -sNaN 0 -> -NaN Invalid_operation +mngx166 minmag -sNaN 1 -> -NaN Invalid_operation +mngx167 minmag sNaN 1000 -> NaN Invalid_operation +mngx168 minmag sNaN NaN -> NaN Invalid_operation +mngx169 minmag sNaN sNaN -> NaN Invalid_operation +mngx170 minmag NaN sNaN -> NaN Invalid_operation +mngx171 minmag -Inf sNaN -> NaN Invalid_operation +mngx172 minmag -1000 sNaN -> NaN Invalid_operation +mngx173 minmag -1 sNaN -> NaN Invalid_operation +mngx174 minmag -0 sNaN -> NaN Invalid_operation +mngx175 minmag 0 sNaN -> NaN Invalid_operation +mngx176 minmag 1 sNaN -> NaN Invalid_operation +mngx177 minmag 1000 sNaN -> NaN Invalid_operation +mngx178 minmag Inf sNaN -> NaN Invalid_operation +mngx179 minmag NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +mngx181 minmag NaN9 -Inf -> -Infinity +mngx182 minmag -NaN8 9990 -> 9990 +mngx183 minmag NaN71 Inf -> Infinity + +mngx184 minmag NaN1 NaN54 -> NaN1 +mngx185 minmag NaN22 -NaN53 -> NaN22 +mngx186 minmag -NaN3 NaN6 -> -NaN3 +mngx187 minmag -NaN44 NaN7 -> -NaN44 + +mngx188 minmag -Inf NaN41 -> -Infinity +mngx189 minmag -9999 -NaN33 -> -9999 +mngx190 minmag Inf NaN2 -> Infinity + +mngx191 minmag sNaN99 -Inf -> NaN99 Invalid_operation +mngx192 minmag sNaN98 -11 -> NaN98 Invalid_operation +mngx193 minmag -sNaN97 NaN8 -> -NaN97 Invalid_operation +mngx194 minmag sNaN69 sNaN94 -> NaN69 Invalid_operation +mngx195 minmag NaN95 sNaN93 -> NaN93 Invalid_operation +mngx196 minmag -Inf sNaN92 -> NaN92 Invalid_operation +mngx197 minmag 088 sNaN91 -> NaN91 Invalid_operation +mngx198 minmag Inf -sNaN90 -> -NaN90 Invalid_operation +mngx199 minmag NaN sNaN86 -> NaN86 Invalid_operation + +-- rounding checks -- chosen is rounded, or not +maxExponent: 999 +minexponent: -999 +precision: 9 +mngx201 minmag -12345678000 1 -> 1 +mngx202 minmag 1 -12345678000 -> 1 +mngx203 minmag -1234567800 1 -> 1 +mngx204 minmag 1 -1234567800 -> 1 +mngx205 minmag -1234567890 1 -> 1 +mngx206 minmag 1 -1234567890 -> 1 +mngx207 minmag -1234567891 1 -> 1 +mngx208 minmag 1 -1234567891 -> 1 +mngx209 minmag -12345678901 1 -> 1 +mngx210 minmag 1 -12345678901 -> 1 +mngx211 minmag -1234567896 1 -> 1 +mngx212 minmag 1 -1234567896 -> 1 +mngx213 minmag 1234567891 1 -> 1 +mngx214 minmag 1 1234567891 -> 1 +mngx215 minmag 12345678901 1 -> 1 +mngx216 minmag 1 12345678901 -> 1 +mngx217 minmag 1234567896 1 -> 1 +mngx218 minmag 1 1234567896 -> 1 + +precision: 15 +mngx221 minmag -12345678000 1 -> 1 +mngx222 minmag 1 -12345678000 -> 1 +mngx223 minmag -1234567800 1 -> 1 +mngx224 minmag 1 -1234567800 -> 1 +mngx225 minmag -1234567890 1 -> 1 +mngx226 minmag 1 -1234567890 -> 1 +mngx227 minmag -1234567891 1 -> 1 +mngx228 minmag 1 -1234567891 -> 1 +mngx229 minmag -12345678901 1 -> 1 +mngx230 minmag 1 -12345678901 -> 1 +mngx231 minmag -1234567896 1 -> 1 +mngx232 minmag 1 -1234567896 -> 1 +mngx233 minmag 1234567891 1 -> 1 +mngx234 minmag 1 1234567891 -> 1 +mngx235 minmag 12345678901 1 -> 1 +mngx236 minmag 1 12345678901 -> 1 +mngx237 minmag 1234567896 1 -> 1 +mngx238 minmag 1 1234567896 -> 1 + +-- from examples +mngx280 minmag '3' '2' -> '2' +mngx281 minmag '-10' '3' -> '3' +mngx282 minmag '1.0' '1' -> '1.0' +mngx283 minmag '1' '1.0' -> '1.0' +mngx284 minmag '7' 'NaN' -> '7' + +-- overflow and underflow tests .. subnormal results [inputs] now allowed +maxExponent: 999999999 +minexponent: -999999999 +mngx330 minmag -1.23456789012345E-0 -9E+999999999 -> -1.23456789012345 +mngx331 minmag -9E+999999999 -1.23456789012345E-0 -> -1.23456789012345 +mngx332 minmag -0.100 -9E-999999999 -> -9E-999999999 +mngx333 minmag -9E-999999999 -0.100 -> -9E-999999999 +mngx335 minmag +1.23456789012345E-0 -9E+999999999 -> 1.23456789012345 +mngx336 minmag -9E+999999999 1.23456789012345E-0 -> 1.23456789012345 +mngx337 minmag +0.100 -9E-999999999 -> -9E-999999999 +mngx338 minmag -9E-999999999 0.100 -> -9E-999999999 + +mngx339 minmag -1e-599999999 -1e-400000001 -> -1E-599999999 +mngx340 minmag -1e-599999999 -1e-400000000 -> -1E-599999999 +mngx341 minmag -1e-600000000 -1e-400000000 -> -1E-600000000 +mngx342 minmag -9e-999999998 -0.01 -> -9E-999999998 +mngx343 minmag -9e-999999998 -0.1 -> -9E-999999998 +mngx344 minmag -0.01 -9e-999999998 -> -9E-999999998 +mngx345 minmag -1e599999999 -1e400000001 -> -1E+400000001 +mngx346 minmag -1e599999999 -1e400000000 -> -1E+400000000 +mngx347 minmag -1e600000000 -1e400000000 -> -1E+400000000 +mngx348 minmag -9e999999998 -100 -> -100 +mngx349 minmag -9e999999998 -10 -> -10 +mngx350 minmag -100 -9e999999998 -> -100 +-- signs +mngx351 minmag -1e+777777777 -1e+411111111 -> -1E+411111111 +mngx352 minmag -1e+777777777 +1e+411111111 -> 1E+411111111 +mngx353 minmag +1e+777777777 -1e+411111111 -> -1E+411111111 +mngx354 minmag +1e+777777777 +1e+411111111 -> 1E+411111111 +mngx355 minmag -1e-777777777 -1e-411111111 -> -1E-777777777 +mngx356 minmag -1e-777777777 +1e-411111111 -> -1E-777777777 +mngx357 minmag +1e-777777777 -1e-411111111 -> 1E-777777777 +mngx358 minmag +1e-777777777 +1e-411111111 -> 1E-777777777 + +-- expanded list from min/max 754r purple prose +-- [explicit tests for exponent ordering] +mngx401 minmag Inf 1.1 -> 1.1 +mngx402 minmag 1.1 1 -> 1 +mngx403 minmag 1 1.0 -> 1.0 +mngx404 minmag 1.0 0.1 -> 0.1 +mngx405 minmag 0.1 0.10 -> 0.10 +mngx406 minmag 0.10 0.100 -> 0.100 +mngx407 minmag 0.10 0 -> 0 +mngx408 minmag 0 0.0 -> 0.0 +mngx409 minmag 0.0 -0 -> -0 +mngx410 minmag 0.0 -0.0 -> -0.0 +mngx411 minmag 0.00 -0.0 -> -0.0 +mngx412 minmag 0.0 -0.00 -> -0.00 +mngx413 minmag 0 -0.0 -> -0.0 +mngx414 minmag 0 -0 -> -0 +mngx415 minmag -0.0 -0 -> -0 +mngx416 minmag -0 -0.100 -> -0 +mngx417 minmag -0.100 -0.10 -> -0.10 +mngx418 minmag -0.10 -0.1 -> -0.1 +mngx419 minmag -0.1 -1.0 -> -0.1 +mngx420 minmag -1.0 -1 -> -1 +mngx421 minmag -1 -1.1 -> -1 +mngx423 minmag -1.1 -Inf -> -1.1 +-- same with operands reversed +mngx431 minmag 1.1 Inf -> 1.1 +mngx432 minmag 1 1.1 -> 1 +mngx433 minmag 1.0 1 -> 1.0 +mngx434 minmag 0.1 1.0 -> 0.1 +mngx435 minmag 0.10 0.1 -> 0.10 +mngx436 minmag 0.100 0.10 -> 0.100 +mngx437 minmag 0 0.10 -> 0 +mngx438 minmag 0.0 0 -> 0.0 +mngx439 minmag -0 0.0 -> -0 +mngx440 minmag -0.0 0.0 -> -0.0 +mngx441 minmag -0.0 0.00 -> -0.0 +mngx442 minmag -0.00 0.0 -> -0.00 +mngx443 minmag -0.0 0 -> -0.0 +mngx444 minmag -0 0 -> -0 +mngx445 minmag -0 -0.0 -> -0 +mngx446 minmag -0.100 -0 -> -0 +mngx447 minmag -0.10 -0.100 -> -0.10 +mngx448 minmag -0.1 -0.10 -> -0.1 +mngx449 minmag -1.0 -0.1 -> -0.1 +mngx450 minmag -1 -1.0 -> -1 +mngx451 minmag -1.1 -1 -> -1 +mngx453 minmag -Inf -1.1 -> -1.1 +-- largies +mngx460 minmag 1000 1E+3 -> 1000 +mngx461 minmag 1E+3 1000 -> 1000 +mngx462 minmag 1000 -1E+3 -> -1E+3 +mngx463 minmag 1E+3 -1000 -> -1000 +mngx464 minmag -1000 1E+3 -> -1000 +mngx465 minmag -1E+3 1000 -> -1E+3 +mngx466 minmag -1000 -1E+3 -> -1E+3 +mngx467 minmag -1E+3 -1000 -> -1E+3 + +-- rounding (results treated as though plus) +maxexponent: 999999999 +minexponent: -999999999 +precision: 3 + +mngx470 minmag 1 5 -> 1 +mngx471 minmag 10 50 -> 10 +mngx472 minmag 100 500 -> 100 +mngx473 minmag 1000 5000 -> 1.00E+3 Rounded +mngx474 minmag 10000 50000 -> 1.00E+4 Rounded +mngx475 minmag 6 50 -> 6 +mngx476 minmag 66 500 -> 66 +mngx477 minmag 666 5000 -> 666 +mngx478 minmag 6666 50000 -> 6.67E+3 Rounded Inexact +mngx479 minmag 66666 500000 -> 6.67E+4 Rounded Inexact +mngx480 minmag 33333 500000 -> 3.33E+4 Rounded Inexact +mngx481 minmag 75401 1 -> 1 +mngx482 minmag 75402 10 -> 10 +mngx483 minmag 75403 100 -> 100 +mngx484 minmag 75404 1000 -> 1.00E+3 Rounded +mngx485 minmag 75405 10000 -> 1.00E+4 Rounded +mngx486 minmag 75406 6 -> 6 +mngx487 minmag 75407 66 -> 66 +mngx488 minmag 75408 666 -> 666 +mngx489 minmag 75409 6666 -> 6.67E+3 Rounded Inexact +mngx490 minmag 75410 66666 -> 6.67E+4 Rounded Inexact +mngx491 minmag 75411 33333 -> 3.33E+4 Rounded Inexact + + +-- overflow tests +maxexponent: 999999999 +minexponent: -999999999 +precision: 3 +mngx500 minmag 9.999E+999999999 0 -> 0 +mngx501 minmag -9.999E+999999999 0 -> 0 + +-- subnormals and underflow +precision: 3 +maxexponent: 999 +minexponent: -999 +mngx510 minmag 1.00E-999 0 -> 0 +mngx511 minmag 0.1E-999 0 -> 0 +mngx512 minmag 0.10E-999 0 -> 0 +mngx513 minmag 0.100E-999 0 -> 0 +mngx514 minmag 0.01E-999 0 -> 0 +mngx515 minmag 0.999E-999 0 -> 0 +mngx516 minmag 0.099E-999 0 -> 0 +mngx517 minmag 0.009E-999 0 -> 0 +mngx518 minmag 0.001E-999 0 -> 0 +mngx519 minmag 0.0009E-999 0 -> 0 +mngx520 minmag 0.0001E-999 0 -> 0 + +mngx530 minmag -1.00E-999 0 -> 0 +mngx531 minmag -0.1E-999 0 -> 0 +mngx532 minmag -0.10E-999 0 -> 0 +mngx533 minmag -0.100E-999 0 -> 0 +mngx534 minmag -0.01E-999 0 -> 0 +mngx535 minmag -0.999E-999 0 -> 0 +mngx536 minmag -0.099E-999 0 -> 0 +mngx537 minmag -0.009E-999 0 -> 0 +mngx538 minmag -0.001E-999 0 -> 0 +mngx539 minmag -0.0009E-999 0 -> 0 +mngx540 minmag -0.0001E-999 0 -> 0 + + +-- Null tests +mng900 minmag 10 # -> NaN Invalid_operation +mng901 minmag # 10 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/nextminus.decTest b/Lib/test/decimaltestdata/nextminus.decTest index ba93066b96..531c5252a5 100644 --- a/Lib/test/decimaltestdata/nextminus.decTest +++ b/Lib/test/decimaltestdata/nextminus.decTest @@ -1,148 +1,148 @@ -------------------------------------------------------------------------
--- nextminus.decTest -- decimal next that is less [754r nextdown] --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-extended: 1
-precision: 9
-rounding: half_up
-maxExponent: 384
-minexponent: -383
-
-nextm001 nextminus 0.999999995 -> 0.999999994
-nextm002 nextminus 0.999999996 -> 0.999999995
-nextm003 nextminus 0.999999997 -> 0.999999996
-nextm004 nextminus 0.999999998 -> 0.999999997
-nextm005 nextminus 0.999999999 -> 0.999999998
-nextm006 nextminus 1.00000000 -> 0.999999999
-nextm007 nextminus 1.0 -> 0.999999999
-nextm008 nextminus 1 -> 0.999999999
-nextm009 nextminus 1.00000001 -> 1.00000000
-nextm010 nextminus 1.00000002 -> 1.00000001
-nextm011 nextminus 1.00000003 -> 1.00000002
-nextm012 nextminus 1.00000004 -> 1.00000003
-nextm013 nextminus 1.00000005 -> 1.00000004
-nextm014 nextminus 1.00000006 -> 1.00000005
-nextm015 nextminus 1.00000007 -> 1.00000006
-nextm016 nextminus 1.00000008 -> 1.00000007
-nextm017 nextminus 1.00000009 -> 1.00000008
-nextm018 nextminus 1.00000010 -> 1.00000009
-nextm019 nextminus 1.00000011 -> 1.00000010
-nextm020 nextminus 1.00000012 -> 1.00000011
-
-nextm021 nextminus -0.999999995 -> -0.999999996
-nextm022 nextminus -0.999999996 -> -0.999999997
-nextm023 nextminus -0.999999997 -> -0.999999998
-nextm024 nextminus -0.999999998 -> -0.999999999
-nextm025 nextminus -0.999999999 -> -1.00000000
-nextm026 nextminus -1.00000000 -> -1.00000001
-nextm027 nextminus -1.0 -> -1.00000001
-nextm028 nextminus -1 -> -1.00000001
-nextm029 nextminus -1.00000001 -> -1.00000002
-nextm030 nextminus -1.00000002 -> -1.00000003
-nextm031 nextminus -1.00000003 -> -1.00000004
-nextm032 nextminus -1.00000004 -> -1.00000005
-nextm033 nextminus -1.00000005 -> -1.00000006
-nextm034 nextminus -1.00000006 -> -1.00000007
-nextm035 nextminus -1.00000007 -> -1.00000008
-nextm036 nextminus -1.00000008 -> -1.00000009
-nextm037 nextminus -1.00000009 -> -1.00000010
-nextm038 nextminus -1.00000010 -> -1.00000011
-nextm039 nextminus -1.00000011 -> -1.00000012
-
--- input operand is >precision
-nextm041 nextminus 1.00000010998 -> 1.00000010
-nextm042 nextminus 1.00000010999 -> 1.00000010
-nextm043 nextminus 1.00000011000 -> 1.00000010
-nextm044 nextminus 1.00000011001 -> 1.00000011
-nextm045 nextminus 1.00000011002 -> 1.00000011
-nextm046 nextminus 1.00000011002 -> 1.00000011
-nextm047 nextminus 1.00000011052 -> 1.00000011
-nextm048 nextminus 1.00000011552 -> 1.00000011
-nextm049 nextminus -1.00000010998 -> -1.00000011
-nextm050 nextminus -1.00000010999 -> -1.00000011
-nextm051 nextminus -1.00000011000 -> -1.00000012
-nextm052 nextminus -1.00000011001 -> -1.00000012
-nextm053 nextminus -1.00000011002 -> -1.00000012
-nextm054 nextminus -1.00000011002 -> -1.00000012
-nextm055 nextminus -1.00000011052 -> -1.00000012
-nextm056 nextminus -1.00000011552 -> -1.00000012
--- ultra-tiny inputs
-nextm060 nextminus 1E-99999 -> 0E-391
-nextm061 nextminus 1E-999999999 -> 0E-391
-nextm062 nextminus 1E-391 -> 0E-391
-nextm063 nextminus -1E-99999 -> -1E-391
-nextm064 nextminus -1E-999999999 -> -1E-391
-nextm065 nextminus -1E-391 -> -2E-391
-
--- Zeros
-nextm100 nextminus -0 -> -1E-391
-nextm101 nextminus 0 -> -1E-391
-nextm102 nextminus 0.00 -> -1E-391
-nextm103 nextminus -0.00 -> -1E-391
-nextm104 nextminus 0E-300 -> -1E-391
-nextm105 nextminus 0E+300 -> -1E-391
-nextm106 nextminus 0E+30000 -> -1E-391
-nextm107 nextminus -0E+30000 -> -1E-391
-
-precision: 9
-maxExponent: 999
-minexponent: -999
--- specials
-nextm150 nextminus Inf -> 9.99999999E+999
-nextm151 nextminus -Inf -> -Infinity
-nextm152 nextminus NaN -> NaN
-nextm153 nextminus sNaN -> NaN Invalid_operation
-nextm154 nextminus NaN77 -> NaN77
-nextm155 nextminus sNaN88 -> NaN88 Invalid_operation
-nextm156 nextminus -NaN -> -NaN
-nextm157 nextminus -sNaN -> -NaN Invalid_operation
-nextm158 nextminus -NaN77 -> -NaN77
-nextm159 nextminus -sNaN88 -> -NaN88 Invalid_operation
-
--- Nmax, Nmin, Ntiny, subnormals
-nextm170 nextminus 9.99999999E+999 -> 9.99999998E+999
-nextm171 nextminus 9.99999998E+999 -> 9.99999997E+999
-nextm172 nextminus 1E-999 -> 9.9999999E-1000
-nextm173 nextminus 1.00000000E-999 -> 9.9999999E-1000
-nextm174 nextminus 9E-1007 -> 8E-1007
-nextm175 nextminus 9.9E-1006 -> 9.8E-1006
-nextm176 nextminus 9.9999E-1003 -> 9.9998E-1003
-nextm177 nextminus 9.9999999E-1000 -> 9.9999998E-1000
-nextm178 nextminus 9.9999998E-1000 -> 9.9999997E-1000
-nextm179 nextminus 9.9999997E-1000 -> 9.9999996E-1000
-nextm180 nextminus 0E-1007 -> -1E-1007
-nextm181 nextminus 1E-1007 -> 0E-1007
-nextm182 nextminus 2E-1007 -> 1E-1007
-
-nextm183 nextminus -0E-1007 -> -1E-1007
-nextm184 nextminus -1E-1007 -> -2E-1007
-nextm185 nextminus -2E-1007 -> -3E-1007
-nextm186 nextminus -10E-1007 -> -1.1E-1006
-nextm187 nextminus -100E-1007 -> -1.01E-1005
-nextm188 nextminus -100000E-1007 -> -1.00001E-1002
-nextm189 nextminus -1.0000E-999 -> -1.00000001E-999
-nextm190 nextminus -1.00000000E-999 -> -1.00000001E-999
-nextm191 nextminus -1E-999 -> -1.00000001E-999
-nextm192 nextminus -9.99999998E+999 -> -9.99999999E+999
-nextm193 nextminus -9.99999999E+999 -> -Infinity
-
--- Null tests
-nextm900 nextminus # -> NaN Invalid_operation
-
+------------------------------------------------------------------------ +-- nextminus.decTest -- decimal next that is less [754r nextdown] -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +extended: 1 +precision: 9 +rounding: half_up +maxExponent: 384 +minexponent: -383 + +nextm001 nextminus 0.999999995 -> 0.999999994 +nextm002 nextminus 0.999999996 -> 0.999999995 +nextm003 nextminus 0.999999997 -> 0.999999996 +nextm004 nextminus 0.999999998 -> 0.999999997 +nextm005 nextminus 0.999999999 -> 0.999999998 +nextm006 nextminus 1.00000000 -> 0.999999999 +nextm007 nextminus 1.0 -> 0.999999999 +nextm008 nextminus 1 -> 0.999999999 +nextm009 nextminus 1.00000001 -> 1.00000000 +nextm010 nextminus 1.00000002 -> 1.00000001 +nextm011 nextminus 1.00000003 -> 1.00000002 +nextm012 nextminus 1.00000004 -> 1.00000003 +nextm013 nextminus 1.00000005 -> 1.00000004 +nextm014 nextminus 1.00000006 -> 1.00000005 +nextm015 nextminus 1.00000007 -> 1.00000006 +nextm016 nextminus 1.00000008 -> 1.00000007 +nextm017 nextminus 1.00000009 -> 1.00000008 +nextm018 nextminus 1.00000010 -> 1.00000009 +nextm019 nextminus 1.00000011 -> 1.00000010 +nextm020 nextminus 1.00000012 -> 1.00000011 + +nextm021 nextminus -0.999999995 -> -0.999999996 +nextm022 nextminus -0.999999996 -> -0.999999997 +nextm023 nextminus -0.999999997 -> -0.999999998 +nextm024 nextminus -0.999999998 -> -0.999999999 +nextm025 nextminus -0.999999999 -> -1.00000000 +nextm026 nextminus -1.00000000 -> -1.00000001 +nextm027 nextminus -1.0 -> -1.00000001 +nextm028 nextminus -1 -> -1.00000001 +nextm029 nextminus -1.00000001 -> -1.00000002 +nextm030 nextminus -1.00000002 -> -1.00000003 +nextm031 nextminus -1.00000003 -> -1.00000004 +nextm032 nextminus -1.00000004 -> -1.00000005 +nextm033 nextminus -1.00000005 -> -1.00000006 +nextm034 nextminus -1.00000006 -> -1.00000007 +nextm035 nextminus -1.00000007 -> -1.00000008 +nextm036 nextminus -1.00000008 -> -1.00000009 +nextm037 nextminus -1.00000009 -> -1.00000010 +nextm038 nextminus -1.00000010 -> -1.00000011 +nextm039 nextminus -1.00000011 -> -1.00000012 + +-- input operand is >precision +nextm041 nextminus 1.00000010998 -> 1.00000010 +nextm042 nextminus 1.00000010999 -> 1.00000010 +nextm043 nextminus 1.00000011000 -> 1.00000010 +nextm044 nextminus 1.00000011001 -> 1.00000011 +nextm045 nextminus 1.00000011002 -> 1.00000011 +nextm046 nextminus 1.00000011002 -> 1.00000011 +nextm047 nextminus 1.00000011052 -> 1.00000011 +nextm048 nextminus 1.00000011552 -> 1.00000011 +nextm049 nextminus -1.00000010998 -> -1.00000011 +nextm050 nextminus -1.00000010999 -> -1.00000011 +nextm051 nextminus -1.00000011000 -> -1.00000012 +nextm052 nextminus -1.00000011001 -> -1.00000012 +nextm053 nextminus -1.00000011002 -> -1.00000012 +nextm054 nextminus -1.00000011002 -> -1.00000012 +nextm055 nextminus -1.00000011052 -> -1.00000012 +nextm056 nextminus -1.00000011552 -> -1.00000012 +-- ultra-tiny inputs +nextm060 nextminus 1E-99999 -> 0E-391 +nextm061 nextminus 1E-999999999 -> 0E-391 +nextm062 nextminus 1E-391 -> 0E-391 +nextm063 nextminus -1E-99999 -> -1E-391 +nextm064 nextminus -1E-999999999 -> -1E-391 +nextm065 nextminus -1E-391 -> -2E-391 + +-- Zeros +nextm100 nextminus -0 -> -1E-391 +nextm101 nextminus 0 -> -1E-391 +nextm102 nextminus 0.00 -> -1E-391 +nextm103 nextminus -0.00 -> -1E-391 +nextm104 nextminus 0E-300 -> -1E-391 +nextm105 nextminus 0E+300 -> -1E-391 +nextm106 nextminus 0E+30000 -> -1E-391 +nextm107 nextminus -0E+30000 -> -1E-391 + +precision: 9 +maxExponent: 999 +minexponent: -999 +-- specials +nextm150 nextminus Inf -> 9.99999999E+999 +nextm151 nextminus -Inf -> -Infinity +nextm152 nextminus NaN -> NaN +nextm153 nextminus sNaN -> NaN Invalid_operation +nextm154 nextminus NaN77 -> NaN77 +nextm155 nextminus sNaN88 -> NaN88 Invalid_operation +nextm156 nextminus -NaN -> -NaN +nextm157 nextminus -sNaN -> -NaN Invalid_operation +nextm158 nextminus -NaN77 -> -NaN77 +nextm159 nextminus -sNaN88 -> -NaN88 Invalid_operation + +-- Nmax, Nmin, Ntiny, subnormals +nextm170 nextminus 9.99999999E+999 -> 9.99999998E+999 +nextm171 nextminus 9.99999998E+999 -> 9.99999997E+999 +nextm172 nextminus 1E-999 -> 9.9999999E-1000 +nextm173 nextminus 1.00000000E-999 -> 9.9999999E-1000 +nextm174 nextminus 9E-1007 -> 8E-1007 +nextm175 nextminus 9.9E-1006 -> 9.8E-1006 +nextm176 nextminus 9.9999E-1003 -> 9.9998E-1003 +nextm177 nextminus 9.9999999E-1000 -> 9.9999998E-1000 +nextm178 nextminus 9.9999998E-1000 -> 9.9999997E-1000 +nextm179 nextminus 9.9999997E-1000 -> 9.9999996E-1000 +nextm180 nextminus 0E-1007 -> -1E-1007 +nextm181 nextminus 1E-1007 -> 0E-1007 +nextm182 nextminus 2E-1007 -> 1E-1007 + +nextm183 nextminus -0E-1007 -> -1E-1007 +nextm184 nextminus -1E-1007 -> -2E-1007 +nextm185 nextminus -2E-1007 -> -3E-1007 +nextm186 nextminus -10E-1007 -> -1.1E-1006 +nextm187 nextminus -100E-1007 -> -1.01E-1005 +nextm188 nextminus -100000E-1007 -> -1.00001E-1002 +nextm189 nextminus -1.0000E-999 -> -1.00000001E-999 +nextm190 nextminus -1.00000000E-999 -> -1.00000001E-999 +nextm191 nextminus -1E-999 -> -1.00000001E-999 +nextm192 nextminus -9.99999998E+999 -> -9.99999999E+999 +nextm193 nextminus -9.99999999E+999 -> -Infinity + +-- Null tests +nextm900 nextminus # -> NaN Invalid_operation + diff --git a/Lib/test/decimaltestdata/nextplus.decTest b/Lib/test/decimaltestdata/nextplus.decTest index 44989e50b1..c66e328727 100644 --- a/Lib/test/decimaltestdata/nextplus.decTest +++ b/Lib/test/decimaltestdata/nextplus.decTest @@ -1,150 +1,150 @@ -------------------------------------------------------------------------
--- nextplus.decTest -- decimal next that is greater [754r nextup] --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-extended: 1
-precision: 9
-rounding: half_up
-maxExponent: 384
-minexponent: -383
-
-nextp001 nextplus 0.999999995 -> 0.999999996
-nextp002 nextplus 0.999999996 -> 0.999999997
-nextp003 nextplus 0.999999997 -> 0.999999998
-nextp004 nextplus 0.999999998 -> 0.999999999
-nextp005 nextplus 0.999999999 -> 1.00000000
-nextp006 nextplus 1.00000000 -> 1.00000001
-nextp007 nextplus 1.0 -> 1.00000001
-nextp008 nextplus 1 -> 1.00000001
-nextp009 nextplus 1.00000001 -> 1.00000002
-nextp010 nextplus 1.00000002 -> 1.00000003
-nextp011 nextplus 1.00000003 -> 1.00000004
-nextp012 nextplus 1.00000004 -> 1.00000005
-nextp013 nextplus 1.00000005 -> 1.00000006
-nextp014 nextplus 1.00000006 -> 1.00000007
-nextp015 nextplus 1.00000007 -> 1.00000008
-nextp016 nextplus 1.00000008 -> 1.00000009
-nextp017 nextplus 1.00000009 -> 1.00000010
-nextp018 nextplus 1.00000010 -> 1.00000011
-nextp019 nextplus 1.00000011 -> 1.00000012
-
-nextp021 nextplus -0.999999995 -> -0.999999994
-nextp022 nextplus -0.999999996 -> -0.999999995
-nextp023 nextplus -0.999999997 -> -0.999999996
-nextp024 nextplus -0.999999998 -> -0.999999997
-nextp025 nextplus -0.999999999 -> -0.999999998
-nextp026 nextplus -1.00000000 -> -0.999999999
-nextp027 nextplus -1.0 -> -0.999999999
-nextp028 nextplus -1 -> -0.999999999
-nextp029 nextplus -1.00000001 -> -1.00000000
-nextp030 nextplus -1.00000002 -> -1.00000001
-nextp031 nextplus -1.00000003 -> -1.00000002
-nextp032 nextplus -1.00000004 -> -1.00000003
-nextp033 nextplus -1.00000005 -> -1.00000004
-nextp034 nextplus -1.00000006 -> -1.00000005
-nextp035 nextplus -1.00000007 -> -1.00000006
-nextp036 nextplus -1.00000008 -> -1.00000007
-nextp037 nextplus -1.00000009 -> -1.00000008
-nextp038 nextplus -1.00000010 -> -1.00000009
-nextp039 nextplus -1.00000011 -> -1.00000010
-nextp040 nextplus -1.00000012 -> -1.00000011
-
--- input operand is >precision
-nextp041 nextplus 1.00000010998 -> 1.00000011
-nextp042 nextplus 1.00000010999 -> 1.00000011
-nextp043 nextplus 1.00000011000 -> 1.00000012
-nextp044 nextplus 1.00000011001 -> 1.00000012
-nextp045 nextplus 1.00000011002 -> 1.00000012
-nextp046 nextplus 1.00000011002 -> 1.00000012
-nextp047 nextplus 1.00000011052 -> 1.00000012
-nextp048 nextplus 1.00000011552 -> 1.00000012
-nextp049 nextplus -1.00000010998 -> -1.00000010
-nextp050 nextplus -1.00000010999 -> -1.00000010
-nextp051 nextplus -1.00000011000 -> -1.00000010
-nextp052 nextplus -1.00000011001 -> -1.00000011
-nextp053 nextplus -1.00000011002 -> -1.00000011
-nextp054 nextplus -1.00000011002 -> -1.00000011
-nextp055 nextplus -1.00000011052 -> -1.00000011
-nextp056 nextplus -1.00000011552 -> -1.00000011
--- ultra-tiny inputs
-nextp060 nextplus 1E-99999 -> 1E-391
-nextp061 nextplus 1E-999999999 -> 1E-391
-nextp062 nextplus 1E-391 -> 2E-391
-nextp063 nextplus -1E-99999 -> -0E-391
-nextp064 nextplus -1E-999999999 -> -0E-391
-nextp065 nextplus -1E-391 -> -0E-391
-
--- Zeros
-nextp100 nextplus 0 -> 1E-391
-nextp101 nextplus 0.00 -> 1E-391
-nextp102 nextplus 0E-300 -> 1E-391
-nextp103 nextplus 0E+300 -> 1E-391
-nextp104 nextplus 0E+30000 -> 1E-391
-nextp105 nextplus -0 -> 1E-391
-nextp106 nextplus -0.00 -> 1E-391
-nextp107 nextplus -0E-300 -> 1E-391
-nextp108 nextplus -0E+300 -> 1E-391
-nextp109 nextplus -0E+30000 -> 1E-391
-
-maxExponent: 999
-minexponent: -999
-precision: 9
--- specials
-nextp150 nextplus Inf -> Infinity
-nextp151 nextplus -Inf -> -9.99999999E+999
-nextp152 nextplus NaN -> NaN
-nextp153 nextplus sNaN -> NaN Invalid_operation
-nextp154 nextplus NaN77 -> NaN77
-nextp155 nextplus sNaN88 -> NaN88 Invalid_operation
-nextp156 nextplus -NaN -> -NaN
-nextp157 nextplus -sNaN -> -NaN Invalid_operation
-nextp158 nextplus -NaN77 -> -NaN77
-nextp159 nextplus -sNaN88 -> -NaN88 Invalid_operation
-
--- Nmax, Nmin, Ntiny, subnormals
-nextp170 nextplus 9.99999999E+999 -> Infinity
-nextp171 nextplus 9.99999998E+999 -> 9.99999999E+999
-nextp172 nextplus 1E-999 -> 1.00000001E-999
-nextp173 nextplus 1.00000000E-999 -> 1.00000001E-999
-nextp174 nextplus 9E-1007 -> 1.0E-1006
-nextp175 nextplus 9.9E-1006 -> 1.00E-1005
-nextp176 nextplus 9.9999E-1003 -> 1.00000E-1002
-nextp177 nextplus 9.9999999E-1000 -> 1.00000000E-999
-nextp178 nextplus 9.9999998E-1000 -> 9.9999999E-1000
-nextp179 nextplus 9.9999997E-1000 -> 9.9999998E-1000
-nextp180 nextplus 0E-1007 -> 1E-1007
-nextp181 nextplus 1E-1007 -> 2E-1007
-nextp182 nextplus 2E-1007 -> 3E-1007
-
-nextp183 nextplus -0E-1007 -> 1E-1007
-nextp184 nextplus -1E-1007 -> -0E-1007
-nextp185 nextplus -2E-1007 -> -1E-1007
-nextp186 nextplus -10E-1007 -> -9E-1007
-nextp187 nextplus -100E-1007 -> -9.9E-1006
-nextp188 nextplus -100000E-1007 -> -9.9999E-1003
-nextp189 nextplus -1.0000E-999 -> -9.9999999E-1000
-nextp190 nextplus -1.00000000E-999 -> -9.9999999E-1000
-nextp191 nextplus -1E-999 -> -9.9999999E-1000
-nextp192 nextplus -9.99999998E+999 -> -9.99999997E+999
-nextp193 nextplus -9.99999999E+999 -> -9.99999998E+999
-
--- Null tests
-nextp900 nextplus # -> NaN Invalid_operation
-
+------------------------------------------------------------------------ +-- nextplus.decTest -- decimal next that is greater [754r nextup] -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +extended: 1 +precision: 9 +rounding: half_up +maxExponent: 384 +minexponent: -383 + +nextp001 nextplus 0.999999995 -> 0.999999996 +nextp002 nextplus 0.999999996 -> 0.999999997 +nextp003 nextplus 0.999999997 -> 0.999999998 +nextp004 nextplus 0.999999998 -> 0.999999999 +nextp005 nextplus 0.999999999 -> 1.00000000 +nextp006 nextplus 1.00000000 -> 1.00000001 +nextp007 nextplus 1.0 -> 1.00000001 +nextp008 nextplus 1 -> 1.00000001 +nextp009 nextplus 1.00000001 -> 1.00000002 +nextp010 nextplus 1.00000002 -> 1.00000003 +nextp011 nextplus 1.00000003 -> 1.00000004 +nextp012 nextplus 1.00000004 -> 1.00000005 +nextp013 nextplus 1.00000005 -> 1.00000006 +nextp014 nextplus 1.00000006 -> 1.00000007 +nextp015 nextplus 1.00000007 -> 1.00000008 +nextp016 nextplus 1.00000008 -> 1.00000009 +nextp017 nextplus 1.00000009 -> 1.00000010 +nextp018 nextplus 1.00000010 -> 1.00000011 +nextp019 nextplus 1.00000011 -> 1.00000012 + +nextp021 nextplus -0.999999995 -> -0.999999994 +nextp022 nextplus -0.999999996 -> -0.999999995 +nextp023 nextplus -0.999999997 -> -0.999999996 +nextp024 nextplus -0.999999998 -> -0.999999997 +nextp025 nextplus -0.999999999 -> -0.999999998 +nextp026 nextplus -1.00000000 -> -0.999999999 +nextp027 nextplus -1.0 -> -0.999999999 +nextp028 nextplus -1 -> -0.999999999 +nextp029 nextplus -1.00000001 -> -1.00000000 +nextp030 nextplus -1.00000002 -> -1.00000001 +nextp031 nextplus -1.00000003 -> -1.00000002 +nextp032 nextplus -1.00000004 -> -1.00000003 +nextp033 nextplus -1.00000005 -> -1.00000004 +nextp034 nextplus -1.00000006 -> -1.00000005 +nextp035 nextplus -1.00000007 -> -1.00000006 +nextp036 nextplus -1.00000008 -> -1.00000007 +nextp037 nextplus -1.00000009 -> -1.00000008 +nextp038 nextplus -1.00000010 -> -1.00000009 +nextp039 nextplus -1.00000011 -> -1.00000010 +nextp040 nextplus -1.00000012 -> -1.00000011 + +-- input operand is >precision +nextp041 nextplus 1.00000010998 -> 1.00000011 +nextp042 nextplus 1.00000010999 -> 1.00000011 +nextp043 nextplus 1.00000011000 -> 1.00000012 +nextp044 nextplus 1.00000011001 -> 1.00000012 +nextp045 nextplus 1.00000011002 -> 1.00000012 +nextp046 nextplus 1.00000011002 -> 1.00000012 +nextp047 nextplus 1.00000011052 -> 1.00000012 +nextp048 nextplus 1.00000011552 -> 1.00000012 +nextp049 nextplus -1.00000010998 -> -1.00000010 +nextp050 nextplus -1.00000010999 -> -1.00000010 +nextp051 nextplus -1.00000011000 -> -1.00000010 +nextp052 nextplus -1.00000011001 -> -1.00000011 +nextp053 nextplus -1.00000011002 -> -1.00000011 +nextp054 nextplus -1.00000011002 -> -1.00000011 +nextp055 nextplus -1.00000011052 -> -1.00000011 +nextp056 nextplus -1.00000011552 -> -1.00000011 +-- ultra-tiny inputs +nextp060 nextplus 1E-99999 -> 1E-391 +nextp061 nextplus 1E-999999999 -> 1E-391 +nextp062 nextplus 1E-391 -> 2E-391 +nextp063 nextplus -1E-99999 -> -0E-391 +nextp064 nextplus -1E-999999999 -> -0E-391 +nextp065 nextplus -1E-391 -> -0E-391 + +-- Zeros +nextp100 nextplus 0 -> 1E-391 +nextp101 nextplus 0.00 -> 1E-391 +nextp102 nextplus 0E-300 -> 1E-391 +nextp103 nextplus 0E+300 -> 1E-391 +nextp104 nextplus 0E+30000 -> 1E-391 +nextp105 nextplus -0 -> 1E-391 +nextp106 nextplus -0.00 -> 1E-391 +nextp107 nextplus -0E-300 -> 1E-391 +nextp108 nextplus -0E+300 -> 1E-391 +nextp109 nextplus -0E+30000 -> 1E-391 + +maxExponent: 999 +minexponent: -999 +precision: 9 +-- specials +nextp150 nextplus Inf -> Infinity +nextp151 nextplus -Inf -> -9.99999999E+999 +nextp152 nextplus NaN -> NaN +nextp153 nextplus sNaN -> NaN Invalid_operation +nextp154 nextplus NaN77 -> NaN77 +nextp155 nextplus sNaN88 -> NaN88 Invalid_operation +nextp156 nextplus -NaN -> -NaN +nextp157 nextplus -sNaN -> -NaN Invalid_operation +nextp158 nextplus -NaN77 -> -NaN77 +nextp159 nextplus -sNaN88 -> -NaN88 Invalid_operation + +-- Nmax, Nmin, Ntiny, subnormals +nextp170 nextplus 9.99999999E+999 -> Infinity +nextp171 nextplus 9.99999998E+999 -> 9.99999999E+999 +nextp172 nextplus 1E-999 -> 1.00000001E-999 +nextp173 nextplus 1.00000000E-999 -> 1.00000001E-999 +nextp174 nextplus 9E-1007 -> 1.0E-1006 +nextp175 nextplus 9.9E-1006 -> 1.00E-1005 +nextp176 nextplus 9.9999E-1003 -> 1.00000E-1002 +nextp177 nextplus 9.9999999E-1000 -> 1.00000000E-999 +nextp178 nextplus 9.9999998E-1000 -> 9.9999999E-1000 +nextp179 nextplus 9.9999997E-1000 -> 9.9999998E-1000 +nextp180 nextplus 0E-1007 -> 1E-1007 +nextp181 nextplus 1E-1007 -> 2E-1007 +nextp182 nextplus 2E-1007 -> 3E-1007 + +nextp183 nextplus -0E-1007 -> 1E-1007 +nextp184 nextplus -1E-1007 -> -0E-1007 +nextp185 nextplus -2E-1007 -> -1E-1007 +nextp186 nextplus -10E-1007 -> -9E-1007 +nextp187 nextplus -100E-1007 -> -9.9E-1006 +nextp188 nextplus -100000E-1007 -> -9.9999E-1003 +nextp189 nextplus -1.0000E-999 -> -9.9999999E-1000 +nextp190 nextplus -1.00000000E-999 -> -9.9999999E-1000 +nextp191 nextplus -1E-999 -> -9.9999999E-1000 +nextp192 nextplus -9.99999998E+999 -> -9.99999997E+999 +nextp193 nextplus -9.99999999E+999 -> -9.99999998E+999 + +-- Null tests +nextp900 nextplus # -> NaN Invalid_operation + diff --git a/Lib/test/decimaltestdata/nexttoward.decTest b/Lib/test/decimaltestdata/nexttoward.decTest index da26f651c8..562385a00f 100644 --- a/Lib/test/decimaltestdata/nexttoward.decTest +++ b/Lib/test/decimaltestdata/nexttoward.decTest @@ -1,426 +1,426 @@ -------------------------------------------------------------------------
--- nexttoward.decTest -- decimal next toward rhs [754r nextafter] --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-extended: 1
-precision: 9
-rounding: half_up
-maxExponent: 384
-minexponent: -383
-
--- Sanity check with a scattering of numerics
-nextt001 nexttoward 10 10 -> 10
-nextt002 nexttoward -10 -10 -> -10
-nextt003 nexttoward 1 10 -> 1.00000001
-nextt004 nexttoward 1 -10 -> 0.999999999
-nextt005 nexttoward -1 10 -> -0.999999999
-nextt006 nexttoward -1 -10 -> -1.00000001
-nextt007 nexttoward 0 10 -> 1E-391 Underflow Subnormal Inexact Rounded
-nextt008 nexttoward 0 -10 -> -1E-391 Underflow Subnormal Inexact Rounded
-nextt009 nexttoward 9.99999999E+384 +Infinity -> Infinity Overflow Inexact Rounded
-nextt010 nexttoward -9.99999999E+384 -Infinity -> -Infinity Overflow Inexact Rounded
-
-------- lhs=rhs
--- finites
-nextt101 nexttoward 7 7 -> 7
-nextt102 nexttoward -7 -7 -> -7
-nextt103 nexttoward 75 75 -> 75
-nextt104 nexttoward -75 -75 -> -75
-nextt105 nexttoward 7.50 7.5 -> 7.50
-nextt106 nexttoward -7.50 -7.50 -> -7.50
-nextt107 nexttoward 7.500 7.5000 -> 7.500
-nextt108 nexttoward -7.500 -7.5 -> -7.500
-
--- zeros
-nextt111 nexttoward 0 0 -> 0
-nextt112 nexttoward -0 -0 -> -0
-nextt113 nexttoward 0E+4 0 -> 0E+4
-nextt114 nexttoward -0E+4 -0 -> -0E+4
-nextt115 nexttoward 0.0000 0.00000 -> 0.0000
-nextt116 nexttoward -0.0000 -0.00 -> -0.0000
-nextt117 nexttoward 0E-141 0 -> 0E-141
-nextt118 nexttoward -0E-141 -000 -> -0E-141
-
--- full coefficients, alternating bits
-nextt121 nexttoward 268268268 268268268 -> 268268268
-nextt122 nexttoward -268268268 -268268268 -> -268268268
-nextt123 nexttoward 134134134 134134134 -> 134134134
-nextt124 nexttoward -134134134 -134134134 -> -134134134
-
--- Nmax, Nmin, Ntiny
-nextt131 nexttoward 9.99999999E+384 9.99999999E+384 -> 9.99999999E+384
-nextt132 nexttoward 1E-383 1E-383 -> 1E-383
-nextt133 nexttoward 1.00000000E-383 1.00000000E-383 -> 1.00000000E-383
-nextt134 nexttoward 1E-391 1E-391 -> 1E-391
-
-nextt135 nexttoward -1E-391 -1E-391 -> -1E-391
-nextt136 nexttoward -1.00000000E-383 -1.00000000E-383 -> -1.00000000E-383
-nextt137 nexttoward -1E-383 -1E-383 -> -1E-383
-nextt138 nexttoward -9.99999999E+384 -9.99999999E+384 -> -9.99999999E+384
-
-------- lhs<rhs
-nextt201 nexttoward 0.999999995 Infinity -> 0.999999996
-nextt202 nexttoward 0.999999996 Infinity -> 0.999999997
-nextt203 nexttoward 0.999999997 Infinity -> 0.999999998
-nextt204 nexttoward 0.999999998 Infinity -> 0.999999999
-nextt205 nexttoward 0.999999999 Infinity -> 1.00000000
-nextt206 nexttoward 1.00000000 Infinity -> 1.00000001
-nextt207 nexttoward 1.0 Infinity -> 1.00000001
-nextt208 nexttoward 1 Infinity -> 1.00000001
-nextt209 nexttoward 1.00000001 Infinity -> 1.00000002
-nextt210 nexttoward 1.00000002 Infinity -> 1.00000003
-nextt211 nexttoward 1.00000003 Infinity -> 1.00000004
-nextt212 nexttoward 1.00000004 Infinity -> 1.00000005
-nextt213 nexttoward 1.00000005 Infinity -> 1.00000006
-nextt214 nexttoward 1.00000006 Infinity -> 1.00000007
-nextt215 nexttoward 1.00000007 Infinity -> 1.00000008
-nextt216 nexttoward 1.00000008 Infinity -> 1.00000009
-nextt217 nexttoward 1.00000009 Infinity -> 1.00000010
-nextt218 nexttoward 1.00000010 Infinity -> 1.00000011
-nextt219 nexttoward 1.00000011 Infinity -> 1.00000012
-
-nextt221 nexttoward -0.999999995 Infinity -> -0.999999994
-nextt222 nexttoward -0.999999996 Infinity -> -0.999999995
-nextt223 nexttoward -0.999999997 Infinity -> -0.999999996
-nextt224 nexttoward -0.999999998 Infinity -> -0.999999997
-nextt225 nexttoward -0.999999999 Infinity -> -0.999999998
-nextt226 nexttoward -1.00000000 Infinity -> -0.999999999
-nextt227 nexttoward -1.0 Infinity -> -0.999999999
-nextt228 nexttoward -1 Infinity -> -0.999999999
-nextt229 nexttoward -1.00000001 Infinity -> -1.00000000
-nextt230 nexttoward -1.00000002 Infinity -> -1.00000001
-nextt231 nexttoward -1.00000003 Infinity -> -1.00000002
-nextt232 nexttoward -1.00000004 Infinity -> -1.00000003
-nextt233 nexttoward -1.00000005 Infinity -> -1.00000004
-nextt234 nexttoward -1.00000006 Infinity -> -1.00000005
-nextt235 nexttoward -1.00000007 Infinity -> -1.00000006
-nextt236 nexttoward -1.00000008 Infinity -> -1.00000007
-nextt237 nexttoward -1.00000009 Infinity -> -1.00000008
-nextt238 nexttoward -1.00000010 Infinity -> -1.00000009
-nextt239 nexttoward -1.00000011 Infinity -> -1.00000010
-nextt240 nexttoward -1.00000012 Infinity -> -1.00000011
-
--- input operand is >precision
-nextt241 nexttoward 1.00000010998 Infinity -> 1.00000011
-nextt242 nexttoward 1.00000010999 Infinity -> 1.00000011
-nextt243 nexttoward 1.00000011000 Infinity -> 1.00000012
-nextt244 nexttoward 1.00000011001 Infinity -> 1.00000012
-nextt245 nexttoward 1.00000011002 Infinity -> 1.00000012
-nextt246 nexttoward 1.00000011002 Infinity -> 1.00000012
-nextt247 nexttoward 1.00000011052 Infinity -> 1.00000012
-nextt248 nexttoward 1.00000011552 Infinity -> 1.00000012
-nextt249 nexttoward -1.00000010998 Infinity -> -1.00000010
-nextt250 nexttoward -1.00000010999 Infinity -> -1.00000010
-nextt251 nexttoward -1.00000011000 Infinity -> -1.00000010
-nextt252 nexttoward -1.00000011001 Infinity -> -1.00000011
-nextt253 nexttoward -1.00000011002 Infinity -> -1.00000011
-nextt254 nexttoward -1.00000011002 Infinity -> -1.00000011
-nextt255 nexttoward -1.00000011052 Infinity -> -1.00000011
-nextt256 nexttoward -1.00000011552 Infinity -> -1.00000011
--- ultra-tiny inputs
-nextt260 nexttoward 1E-99999 Infinity -> 1E-391 Underflow Subnormal Inexact Rounded
-nextt261 nexttoward 1E-999999999 Infinity -> 1E-391 Underflow Subnormal Inexact Rounded
-nextt262 nexttoward 1E-391 Infinity -> 2E-391 Underflow Subnormal Inexact Rounded
-nextt263 nexttoward -1E-99999 Infinity -> -0E-391 Underflow Subnormal Inexact Rounded Clamped
-nextt264 nexttoward -1E-999999999 Infinity -> -0E-391 Underflow Subnormal Inexact Rounded Clamped
-nextt265 nexttoward -1E-391 Infinity -> -0E-391 Underflow Subnormal Inexact Rounded Clamped
-
--- Zeros
-nextt300 nexttoward 0 Infinity -> 1E-391 Underflow Subnormal Inexact Rounded
-nextt301 nexttoward 0.00 Infinity -> 1E-391 Underflow Subnormal Inexact Rounded
-nextt302 nexttoward 0E-300 Infinity -> 1E-391 Underflow Subnormal Inexact Rounded
-nextt303 nexttoward 0E+300 Infinity -> 1E-391 Underflow Subnormal Inexact Rounded
-nextt304 nexttoward 0E+30000 Infinity -> 1E-391 Underflow Subnormal Inexact Rounded
-nextt305 nexttoward -0 Infinity -> 1E-391 Underflow Subnormal Inexact Rounded
-nextt306 nexttoward -0.00 Infinity -> 1E-391 Underflow Subnormal Inexact Rounded
-nextt307 nexttoward -0E-300 Infinity -> 1E-391 Underflow Subnormal Inexact Rounded
-nextt308 nexttoward -0E+300 Infinity -> 1E-391 Underflow Subnormal Inexact Rounded
-nextt309 nexttoward -0E+30000 Infinity -> 1E-391 Underflow Subnormal Inexact Rounded
-
--- specials
-nextt350 nexttoward Inf Infinity -> Infinity
-nextt351 nexttoward -Inf Infinity -> -9.99999999E+384
-nextt352 nexttoward NaN Infinity -> NaN
-nextt353 nexttoward sNaN Infinity -> NaN Invalid_operation
-nextt354 nexttoward NaN77 Infinity -> NaN77
-nextt355 nexttoward sNaN88 Infinity -> NaN88 Invalid_operation
-nextt356 nexttoward -NaN Infinity -> -NaN
-nextt357 nexttoward -sNaN Infinity -> -NaN Invalid_operation
-nextt358 nexttoward -NaN77 Infinity -> -NaN77
-nextt359 nexttoward -sNaN88 Infinity -> -NaN88 Invalid_operation
-
--- Nmax, Nmin, Ntiny, subnormals
-maxExponent: 999
-minexponent: -999
-nextt370 nexttoward 9.99999999E+999 Infinity -> Infinity Overflow Inexact Rounded
-nextt371 nexttoward 9.99999998E+999 Infinity -> 9.99999999E+999
-nextt372 nexttoward 1E-999 Infinity -> 1.00000001E-999
-nextt373 nexttoward 1.00000000E-999 Infinity -> 1.00000001E-999
-nextt374 nexttoward 0.999999999E-999 Infinity -> 1.00000000E-999
-nextt375 nexttoward 0.99999999E-999 Infinity -> 1.00000000E-999
-nextt376 nexttoward 9E-1007 Infinity -> 1.0E-1006 Underflow Subnormal Inexact Rounded
-nextt377 nexttoward 9.9E-1006 Infinity -> 1.00E-1005 Underflow Subnormal Inexact Rounded
-nextt378 nexttoward 9.9999E-1003 Infinity -> 1.00000E-1002 Underflow Subnormal Inexact Rounded
-nextt379 nexttoward 9.9999998E-1000 Infinity -> 9.9999999E-1000 Underflow Subnormal Inexact Rounded
-nextt380 nexttoward 9.9999997E-1000 Infinity -> 9.9999998E-1000 Underflow Subnormal Inexact Rounded
-nextt381 nexttoward 0E-1007 Infinity -> 1E-1007 Underflow Subnormal Inexact Rounded
-nextt382 nexttoward 1E-1007 Infinity -> 2E-1007 Underflow Subnormal Inexact Rounded
-nextt383 nexttoward 2E-1007 Infinity -> 3E-1007 Underflow Subnormal Inexact Rounded
-
-nextt385 nexttoward -0E-1007 Infinity -> 1E-1007 Underflow Subnormal Inexact Rounded
-nextt386 nexttoward -1E-1007 Infinity -> -0E-1007 Underflow Subnormal Inexact Rounded Clamped
-nextt387 nexttoward -2E-1007 Infinity -> -1E-1007 Underflow Subnormal Inexact Rounded
-nextt388 nexttoward -10E-1007 Infinity -> -9E-1007 Underflow Subnormal Inexact Rounded
-nextt389 nexttoward -100E-1007 Infinity -> -9.9E-1006 Underflow Subnormal Inexact Rounded
-nextt390 nexttoward -100000E-1007 Infinity -> -9.9999E-1003 Underflow Subnormal Inexact Rounded
-nextt391 nexttoward -1.0000E-999 Infinity -> -9.9999999E-1000 Underflow Subnormal Inexact Rounded
-nextt392 nexttoward -1.00000000E-999 Infinity -> -9.9999999E-1000 Underflow Subnormal Inexact Rounded
-nextt393 nexttoward -1E-999 Infinity -> -9.9999999E-1000 Underflow Subnormal Inexact Rounded
-nextt394 nexttoward -9.99999998E+999 Infinity -> -9.99999997E+999
-nextt395 nexttoward -9.99999999E+999 Infinity -> -9.99999998E+999
-
-------- lhs>rhs
-maxExponent: 384
-minexponent: -383
-nextt401 nexttoward 0.999999995 -Infinity -> 0.999999994
-nextt402 nexttoward 0.999999996 -Infinity -> 0.999999995
-nextt403 nexttoward 0.999999997 -Infinity -> 0.999999996
-nextt404 nexttoward 0.999999998 -Infinity -> 0.999999997
-nextt405 nexttoward 0.999999999 -Infinity -> 0.999999998
-nextt406 nexttoward 1.00000000 -Infinity -> 0.999999999
-nextt407 nexttoward 1.0 -Infinity -> 0.999999999
-nextt408 nexttoward 1 -Infinity -> 0.999999999
-nextt409 nexttoward 1.00000001 -Infinity -> 1.00000000
-nextt410 nexttoward 1.00000002 -Infinity -> 1.00000001
-nextt411 nexttoward 1.00000003 -Infinity -> 1.00000002
-nextt412 nexttoward 1.00000004 -Infinity -> 1.00000003
-nextt413 nexttoward 1.00000005 -Infinity -> 1.00000004
-nextt414 nexttoward 1.00000006 -Infinity -> 1.00000005
-nextt415 nexttoward 1.00000007 -Infinity -> 1.00000006
-nextt416 nexttoward 1.00000008 -Infinity -> 1.00000007
-nextt417 nexttoward 1.00000009 -Infinity -> 1.00000008
-nextt418 nexttoward 1.00000010 -Infinity -> 1.00000009
-nextt419 nexttoward 1.00000011 -Infinity -> 1.00000010
-nextt420 nexttoward 1.00000012 -Infinity -> 1.00000011
-
-nextt421 nexttoward -0.999999995 -Infinity -> -0.999999996
-nextt422 nexttoward -0.999999996 -Infinity -> -0.999999997
-nextt423 nexttoward -0.999999997 -Infinity -> -0.999999998
-nextt424 nexttoward -0.999999998 -Infinity -> -0.999999999
-nextt425 nexttoward -0.999999999 -Infinity -> -1.00000000
-nextt426 nexttoward -1.00000000 -Infinity -> -1.00000001
-nextt427 nexttoward -1.0 -Infinity -> -1.00000001
-nextt428 nexttoward -1 -Infinity -> -1.00000001
-nextt429 nexttoward -1.00000001 -Infinity -> -1.00000002
-nextt430 nexttoward -1.00000002 -Infinity -> -1.00000003
-nextt431 nexttoward -1.00000003 -Infinity -> -1.00000004
-nextt432 nexttoward -1.00000004 -Infinity -> -1.00000005
-nextt433 nexttoward -1.00000005 -Infinity -> -1.00000006
-nextt434 nexttoward -1.00000006 -Infinity -> -1.00000007
-nextt435 nexttoward -1.00000007 -Infinity -> -1.00000008
-nextt436 nexttoward -1.00000008 -Infinity -> -1.00000009
-nextt437 nexttoward -1.00000009 -Infinity -> -1.00000010
-nextt438 nexttoward -1.00000010 -Infinity -> -1.00000011
-nextt439 nexttoward -1.00000011 -Infinity -> -1.00000012
-
--- input operand is >precision
-nextt441 nexttoward 1.00000010998 -Infinity -> 1.00000010
-nextt442 nexttoward 1.00000010999 -Infinity -> 1.00000010
-nextt443 nexttoward 1.00000011000 -Infinity -> 1.00000010
-nextt444 nexttoward 1.00000011001 -Infinity -> 1.00000011
-nextt445 nexttoward 1.00000011002 -Infinity -> 1.00000011
-nextt446 nexttoward 1.00000011002 -Infinity -> 1.00000011
-nextt447 nexttoward 1.00000011052 -Infinity -> 1.00000011
-nextt448 nexttoward 1.00000011552 -Infinity -> 1.00000011
-nextt449 nexttoward -1.00000010998 -Infinity -> -1.00000011
-nextt450 nexttoward -1.00000010999 -Infinity -> -1.00000011
-nextt451 nexttoward -1.00000011000 -Infinity -> -1.00000012
-nextt452 nexttoward -1.00000011001 -Infinity -> -1.00000012
-nextt453 nexttoward -1.00000011002 -Infinity -> -1.00000012
-nextt454 nexttoward -1.00000011002 -Infinity -> -1.00000012
-nextt455 nexttoward -1.00000011052 -Infinity -> -1.00000012
-nextt456 nexttoward -1.00000011552 -Infinity -> -1.00000012
--- ultra-tiny inputs
-nextt460 nexttoward 1E-99999 -Infinity -> 0E-391 Underflow Subnormal Inexact Rounded Clamped
-nextt461 nexttoward 1E-999999999 -Infinity -> 0E-391 Underflow Subnormal Inexact Rounded Clamped
-nextt462 nexttoward 1E-391 -Infinity -> 0E-391 Underflow Subnormal Inexact Rounded Clamped
-nextt463 nexttoward -1E-99999 -Infinity -> -1E-391 Underflow Subnormal Inexact Rounded
-nextt464 nexttoward -1E-999999999 -Infinity -> -1E-391 Underflow Subnormal Inexact Rounded
-nextt465 nexttoward -1E-391 -Infinity -> -2E-391 Underflow Subnormal Inexact Rounded
-
--- Zeros
-nextt500 nexttoward -0 -Infinity -> -1E-391 Underflow Subnormal Inexact Rounded
-nextt501 nexttoward 0 -Infinity -> -1E-391 Underflow Subnormal Inexact Rounded
-nextt502 nexttoward 0.00 -Infinity -> -1E-391 Underflow Subnormal Inexact Rounded
-nextt503 nexttoward -0.00 -Infinity -> -1E-391 Underflow Subnormal Inexact Rounded
-nextt504 nexttoward 0E-300 -Infinity -> -1E-391 Underflow Subnormal Inexact Rounded
-nextt505 nexttoward 0E+300 -Infinity -> -1E-391 Underflow Subnormal Inexact Rounded
-nextt506 nexttoward 0E+30000 -Infinity -> -1E-391 Underflow Subnormal Inexact Rounded
-nextt507 nexttoward -0E+30000 -Infinity -> -1E-391 Underflow Subnormal Inexact Rounded
-nextt508 nexttoward 0.00 -0.0000 -> -0.00
-
--- specials
-nextt550 nexttoward Inf -Infinity -> 9.99999999E+384
-nextt551 nexttoward -Inf -Infinity -> -Infinity
-nextt552 nexttoward NaN -Infinity -> NaN
-nextt553 nexttoward sNaN -Infinity -> NaN Invalid_operation
-nextt554 nexttoward NaN77 -Infinity -> NaN77
-nextt555 nexttoward sNaN88 -Infinity -> NaN88 Invalid_operation
-nextt556 nexttoward -NaN -Infinity -> -NaN
-nextt557 nexttoward -sNaN -Infinity -> -NaN Invalid_operation
-nextt558 nexttoward -NaN77 -Infinity -> -NaN77
-nextt559 nexttoward -sNaN88 -Infinity -> -NaN88 Invalid_operation
-
--- Nmax, Nmin, Ntiny, subnormals
-maxExponent: 999
-minexponent: -999
-nextt570 nexttoward 9.99999999E+999 -Infinity -> 9.99999998E+999
-nextt571 nexttoward 9.99999998E+999 -Infinity -> 9.99999997E+999
-nextt572 nexttoward 1E-999 -Infinity -> 9.9999999E-1000 Underflow Subnormal Inexact Rounded
-nextt573 nexttoward 1.00000000E-999 -Infinity -> 9.9999999E-1000 Underflow Subnormal Inexact Rounded
-nextt574 nexttoward 9E-1007 -Infinity -> 8E-1007 Underflow Subnormal Inexact Rounded
-nextt575 nexttoward 9.9E-1006 -Infinity -> 9.8E-1006 Underflow Subnormal Inexact Rounded
-nextt576 nexttoward 9.9999E-1003 -Infinity -> 9.9998E-1003 Underflow Subnormal Inexact Rounded
-nextt577 nexttoward 9.9999999E-1000 -Infinity -> 9.9999998E-1000 Underflow Subnormal Inexact Rounded
-nextt578 nexttoward 9.9999998E-1000 -Infinity -> 9.9999997E-1000 Underflow Subnormal Inexact Rounded
-nextt579 nexttoward 9.9999997E-1000 -Infinity -> 9.9999996E-1000 Underflow Subnormal Inexact Rounded
-nextt580 nexttoward 0E-1007 -Infinity -> -1E-1007 Underflow Subnormal Inexact Rounded
-nextt581 nexttoward 1E-1007 -Infinity -> 0E-1007 Underflow Subnormal Inexact Rounded Clamped
-nextt582 nexttoward 2E-1007 -Infinity -> 1E-1007 Underflow Subnormal Inexact Rounded
-
-nextt583 nexttoward -0E-1007 -Infinity -> -1E-1007 Underflow Subnormal Inexact Rounded
-nextt584 nexttoward -1E-1007 -Infinity -> -2E-1007 Underflow Subnormal Inexact Rounded
-nextt585 nexttoward -2E-1007 -Infinity -> -3E-1007 Underflow Subnormal Inexact Rounded
-nextt586 nexttoward -10E-1007 -Infinity -> -1.1E-1006 Underflow Subnormal Inexact Rounded
-nextt587 nexttoward -100E-1007 -Infinity -> -1.01E-1005 Underflow Subnormal Inexact Rounded
-nextt588 nexttoward -100000E-1007 -Infinity -> -1.00001E-1002 Underflow Subnormal Inexact Rounded
-nextt589 nexttoward -1.0000E-999 -Infinity -> -1.00000001E-999
-nextt590 nexttoward -1.00000000E-999 -Infinity -> -1.00000001E-999
-nextt591 nexttoward -1E-999 -Infinity -> -1.00000001E-999
-nextt592 nexttoward -9.99999998E+999 -Infinity -> -9.99999999E+999
-nextt593 nexttoward -9.99999999E+999 -Infinity -> -Infinity Overflow Inexact Rounded
-
-
-
-
-------- Specials
-maxExponent: 384
-minexponent: -383
-nextt780 nexttoward -Inf -Inf -> -Infinity
-nextt781 nexttoward -Inf -1000 -> -9.99999999E+384
-nextt782 nexttoward -Inf -1 -> -9.99999999E+384
-nextt783 nexttoward -Inf -0 -> -9.99999999E+384
-nextt784 nexttoward -Inf 0 -> -9.99999999E+384
-nextt785 nexttoward -Inf 1 -> -9.99999999E+384
-nextt786 nexttoward -Inf 1000 -> -9.99999999E+384
-nextt787 nexttoward -1000 -Inf -> -1000.00001
-nextt788 nexttoward -Inf -Inf -> -Infinity
-nextt789 nexttoward -1 -Inf -> -1.00000001
-nextt790 nexttoward -0 -Inf -> -1E-391 Underflow Subnormal Inexact Rounded
-nextt791 nexttoward 0 -Inf -> -1E-391 Underflow Subnormal Inexact Rounded
-nextt792 nexttoward 1 -Inf -> 0.999999999
-nextt793 nexttoward 1000 -Inf -> 999.999999
-nextt794 nexttoward Inf -Inf -> 9.99999999E+384
-
-nextt800 nexttoward Inf -Inf -> 9.99999999E+384
-nextt801 nexttoward Inf -1000 -> 9.99999999E+384
-nextt802 nexttoward Inf -1 -> 9.99999999E+384
-nextt803 nexttoward Inf -0 -> 9.99999999E+384
-nextt804 nexttoward Inf 0 -> 9.99999999E+384
-nextt805 nexttoward Inf 1 -> 9.99999999E+384
-nextt806 nexttoward Inf 1000 -> 9.99999999E+384
-nextt807 nexttoward Inf Inf -> Infinity
-nextt808 nexttoward -1000 Inf -> -999.999999
-nextt809 nexttoward -Inf Inf -> -9.99999999E+384
-nextt810 nexttoward -1 Inf -> -0.999999999
-nextt811 nexttoward -0 Inf -> 1E-391 Underflow Subnormal Inexact Rounded
-nextt812 nexttoward 0 Inf -> 1E-391 Underflow Subnormal Inexact Rounded
-nextt813 nexttoward 1 Inf -> 1.00000001
-nextt814 nexttoward 1000 Inf -> 1000.00001
-nextt815 nexttoward Inf Inf -> Infinity
-
-nextt821 nexttoward NaN -Inf -> NaN
-nextt822 nexttoward NaN -1000 -> NaN
-nextt823 nexttoward NaN -1 -> NaN
-nextt824 nexttoward NaN -0 -> NaN
-nextt825 nexttoward NaN 0 -> NaN
-nextt826 nexttoward NaN 1 -> NaN
-nextt827 nexttoward NaN 1000 -> NaN
-nextt828 nexttoward NaN Inf -> NaN
-nextt829 nexttoward NaN NaN -> NaN
-nextt830 nexttoward -Inf NaN -> NaN
-nextt831 nexttoward -1000 NaN -> NaN
-nextt832 nexttoward -1 NaN -> NaN
-nextt833 nexttoward -0 NaN -> NaN
-nextt834 nexttoward 0 NaN -> NaN
-nextt835 nexttoward 1 NaN -> NaN
-nextt836 nexttoward 1000 NaN -> NaN
-nextt837 nexttoward Inf NaN -> NaN
-
-nextt841 nexttoward sNaN -Inf -> NaN Invalid_operation
-nextt842 nexttoward sNaN -1000 -> NaN Invalid_operation
-nextt843 nexttoward sNaN -1 -> NaN Invalid_operation
-nextt844 nexttoward sNaN -0 -> NaN Invalid_operation
-nextt845 nexttoward sNaN 0 -> NaN Invalid_operation
-nextt846 nexttoward sNaN 1 -> NaN Invalid_operation
-nextt847 nexttoward sNaN 1000 -> NaN Invalid_operation
-nextt848 nexttoward sNaN NaN -> NaN Invalid_operation
-nextt849 nexttoward sNaN sNaN -> NaN Invalid_operation
-nextt850 nexttoward NaN sNaN -> NaN Invalid_operation
-nextt851 nexttoward -Inf sNaN -> NaN Invalid_operation
-nextt852 nexttoward -1000 sNaN -> NaN Invalid_operation
-nextt853 nexttoward -1 sNaN -> NaN Invalid_operation
-nextt854 nexttoward -0 sNaN -> NaN Invalid_operation
-nextt855 nexttoward 0 sNaN -> NaN Invalid_operation
-nextt856 nexttoward 1 sNaN -> NaN Invalid_operation
-nextt857 nexttoward 1000 sNaN -> NaN Invalid_operation
-nextt858 nexttoward Inf sNaN -> NaN Invalid_operation
-nextt859 nexttoward NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-nextt861 nexttoward NaN1 -Inf -> NaN1
-nextt862 nexttoward +NaN2 -1000 -> NaN2
-nextt863 nexttoward NaN3 1000 -> NaN3
-nextt864 nexttoward NaN4 Inf -> NaN4
-nextt865 nexttoward NaN5 +NaN6 -> NaN5
-nextt866 nexttoward -Inf NaN7 -> NaN7
-nextt867 nexttoward -1000 NaN8 -> NaN8
-nextt868 nexttoward 1000 NaN9 -> NaN9
-nextt869 nexttoward Inf +NaN10 -> NaN10
-nextt871 nexttoward sNaN11 -Inf -> NaN11 Invalid_operation
-nextt872 nexttoward sNaN12 -1000 -> NaN12 Invalid_operation
-nextt873 nexttoward sNaN13 1000 -> NaN13 Invalid_operation
-nextt874 nexttoward sNaN14 NaN17 -> NaN14 Invalid_operation
-nextt875 nexttoward sNaN15 sNaN18 -> NaN15 Invalid_operation
-nextt876 nexttoward NaN16 sNaN19 -> NaN19 Invalid_operation
-nextt877 nexttoward -Inf +sNaN20 -> NaN20 Invalid_operation
-nextt878 nexttoward -1000 sNaN21 -> NaN21 Invalid_operation
-nextt879 nexttoward 1000 sNaN22 -> NaN22 Invalid_operation
-nextt880 nexttoward Inf sNaN23 -> NaN23 Invalid_operation
-nextt881 nexttoward +NaN25 +sNaN24 -> NaN24 Invalid_operation
-nextt882 nexttoward -NaN26 NaN28 -> -NaN26
-nextt883 nexttoward -sNaN27 sNaN29 -> -NaN27 Invalid_operation
-nextt884 nexttoward 1000 -NaN30 -> -NaN30
-nextt885 nexttoward 1000 -sNaN31 -> -NaN31 Invalid_operation
-
--- Null tests
-nextt900 nexttoward 1 # -> NaN Invalid_operation
-nextt901 nexttoward # 1 -> NaN Invalid_operation
-
+------------------------------------------------------------------------ +-- nexttoward.decTest -- decimal next toward rhs [754r nextafter] -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +extended: 1 +precision: 9 +rounding: half_up +maxExponent: 384 +minexponent: -383 + +-- Sanity check with a scattering of numerics +nextt001 nexttoward 10 10 -> 10 +nextt002 nexttoward -10 -10 -> -10 +nextt003 nexttoward 1 10 -> 1.00000001 +nextt004 nexttoward 1 -10 -> 0.999999999 +nextt005 nexttoward -1 10 -> -0.999999999 +nextt006 nexttoward -1 -10 -> -1.00000001 +nextt007 nexttoward 0 10 -> 1E-391 Underflow Subnormal Inexact Rounded +nextt008 nexttoward 0 -10 -> -1E-391 Underflow Subnormal Inexact Rounded +nextt009 nexttoward 9.99999999E+384 +Infinity -> Infinity Overflow Inexact Rounded +nextt010 nexttoward -9.99999999E+384 -Infinity -> -Infinity Overflow Inexact Rounded + +------- lhs=rhs +-- finites +nextt101 nexttoward 7 7 -> 7 +nextt102 nexttoward -7 -7 -> -7 +nextt103 nexttoward 75 75 -> 75 +nextt104 nexttoward -75 -75 -> -75 +nextt105 nexttoward 7.50 7.5 -> 7.50 +nextt106 nexttoward -7.50 -7.50 -> -7.50 +nextt107 nexttoward 7.500 7.5000 -> 7.500 +nextt108 nexttoward -7.500 -7.5 -> -7.500 + +-- zeros +nextt111 nexttoward 0 0 -> 0 +nextt112 nexttoward -0 -0 -> -0 +nextt113 nexttoward 0E+4 0 -> 0E+4 +nextt114 nexttoward -0E+4 -0 -> -0E+4 +nextt115 nexttoward 0.0000 0.00000 -> 0.0000 +nextt116 nexttoward -0.0000 -0.00 -> -0.0000 +nextt117 nexttoward 0E-141 0 -> 0E-141 +nextt118 nexttoward -0E-141 -000 -> -0E-141 + +-- full coefficients, alternating bits +nextt121 nexttoward 268268268 268268268 -> 268268268 +nextt122 nexttoward -268268268 -268268268 -> -268268268 +nextt123 nexttoward 134134134 134134134 -> 134134134 +nextt124 nexttoward -134134134 -134134134 -> -134134134 + +-- Nmax, Nmin, Ntiny +nextt131 nexttoward 9.99999999E+384 9.99999999E+384 -> 9.99999999E+384 +nextt132 nexttoward 1E-383 1E-383 -> 1E-383 +nextt133 nexttoward 1.00000000E-383 1.00000000E-383 -> 1.00000000E-383 +nextt134 nexttoward 1E-391 1E-391 -> 1E-391 + +nextt135 nexttoward -1E-391 -1E-391 -> -1E-391 +nextt136 nexttoward -1.00000000E-383 -1.00000000E-383 -> -1.00000000E-383 +nextt137 nexttoward -1E-383 -1E-383 -> -1E-383 +nextt138 nexttoward -9.99999999E+384 -9.99999999E+384 -> -9.99999999E+384 + +------- lhs<rhs +nextt201 nexttoward 0.999999995 Infinity -> 0.999999996 +nextt202 nexttoward 0.999999996 Infinity -> 0.999999997 +nextt203 nexttoward 0.999999997 Infinity -> 0.999999998 +nextt204 nexttoward 0.999999998 Infinity -> 0.999999999 +nextt205 nexttoward 0.999999999 Infinity -> 1.00000000 +nextt206 nexttoward 1.00000000 Infinity -> 1.00000001 +nextt207 nexttoward 1.0 Infinity -> 1.00000001 +nextt208 nexttoward 1 Infinity -> 1.00000001 +nextt209 nexttoward 1.00000001 Infinity -> 1.00000002 +nextt210 nexttoward 1.00000002 Infinity -> 1.00000003 +nextt211 nexttoward 1.00000003 Infinity -> 1.00000004 +nextt212 nexttoward 1.00000004 Infinity -> 1.00000005 +nextt213 nexttoward 1.00000005 Infinity -> 1.00000006 +nextt214 nexttoward 1.00000006 Infinity -> 1.00000007 +nextt215 nexttoward 1.00000007 Infinity -> 1.00000008 +nextt216 nexttoward 1.00000008 Infinity -> 1.00000009 +nextt217 nexttoward 1.00000009 Infinity -> 1.00000010 +nextt218 nexttoward 1.00000010 Infinity -> 1.00000011 +nextt219 nexttoward 1.00000011 Infinity -> 1.00000012 + +nextt221 nexttoward -0.999999995 Infinity -> -0.999999994 +nextt222 nexttoward -0.999999996 Infinity -> -0.999999995 +nextt223 nexttoward -0.999999997 Infinity -> -0.999999996 +nextt224 nexttoward -0.999999998 Infinity -> -0.999999997 +nextt225 nexttoward -0.999999999 Infinity -> -0.999999998 +nextt226 nexttoward -1.00000000 Infinity -> -0.999999999 +nextt227 nexttoward -1.0 Infinity -> -0.999999999 +nextt228 nexttoward -1 Infinity -> -0.999999999 +nextt229 nexttoward -1.00000001 Infinity -> -1.00000000 +nextt230 nexttoward -1.00000002 Infinity -> -1.00000001 +nextt231 nexttoward -1.00000003 Infinity -> -1.00000002 +nextt232 nexttoward -1.00000004 Infinity -> -1.00000003 +nextt233 nexttoward -1.00000005 Infinity -> -1.00000004 +nextt234 nexttoward -1.00000006 Infinity -> -1.00000005 +nextt235 nexttoward -1.00000007 Infinity -> -1.00000006 +nextt236 nexttoward -1.00000008 Infinity -> -1.00000007 +nextt237 nexttoward -1.00000009 Infinity -> -1.00000008 +nextt238 nexttoward -1.00000010 Infinity -> -1.00000009 +nextt239 nexttoward -1.00000011 Infinity -> -1.00000010 +nextt240 nexttoward -1.00000012 Infinity -> -1.00000011 + +-- input operand is >precision +nextt241 nexttoward 1.00000010998 Infinity -> 1.00000011 +nextt242 nexttoward 1.00000010999 Infinity -> 1.00000011 +nextt243 nexttoward 1.00000011000 Infinity -> 1.00000012 +nextt244 nexttoward 1.00000011001 Infinity -> 1.00000012 +nextt245 nexttoward 1.00000011002 Infinity -> 1.00000012 +nextt246 nexttoward 1.00000011002 Infinity -> 1.00000012 +nextt247 nexttoward 1.00000011052 Infinity -> 1.00000012 +nextt248 nexttoward 1.00000011552 Infinity -> 1.00000012 +nextt249 nexttoward -1.00000010998 Infinity -> -1.00000010 +nextt250 nexttoward -1.00000010999 Infinity -> -1.00000010 +nextt251 nexttoward -1.00000011000 Infinity -> -1.00000010 +nextt252 nexttoward -1.00000011001 Infinity -> -1.00000011 +nextt253 nexttoward -1.00000011002 Infinity -> -1.00000011 +nextt254 nexttoward -1.00000011002 Infinity -> -1.00000011 +nextt255 nexttoward -1.00000011052 Infinity -> -1.00000011 +nextt256 nexttoward -1.00000011552 Infinity -> -1.00000011 +-- ultra-tiny inputs +nextt260 nexttoward 1E-99999 Infinity -> 1E-391 Underflow Subnormal Inexact Rounded +nextt261 nexttoward 1E-999999999 Infinity -> 1E-391 Underflow Subnormal Inexact Rounded +nextt262 nexttoward 1E-391 Infinity -> 2E-391 Underflow Subnormal Inexact Rounded +nextt263 nexttoward -1E-99999 Infinity -> -0E-391 Underflow Subnormal Inexact Rounded Clamped +nextt264 nexttoward -1E-999999999 Infinity -> -0E-391 Underflow Subnormal Inexact Rounded Clamped +nextt265 nexttoward -1E-391 Infinity -> -0E-391 Underflow Subnormal Inexact Rounded Clamped + +-- Zeros +nextt300 nexttoward 0 Infinity -> 1E-391 Underflow Subnormal Inexact Rounded +nextt301 nexttoward 0.00 Infinity -> 1E-391 Underflow Subnormal Inexact Rounded +nextt302 nexttoward 0E-300 Infinity -> 1E-391 Underflow Subnormal Inexact Rounded +nextt303 nexttoward 0E+300 Infinity -> 1E-391 Underflow Subnormal Inexact Rounded +nextt304 nexttoward 0E+30000 Infinity -> 1E-391 Underflow Subnormal Inexact Rounded +nextt305 nexttoward -0 Infinity -> 1E-391 Underflow Subnormal Inexact Rounded +nextt306 nexttoward -0.00 Infinity -> 1E-391 Underflow Subnormal Inexact Rounded +nextt307 nexttoward -0E-300 Infinity -> 1E-391 Underflow Subnormal Inexact Rounded +nextt308 nexttoward -0E+300 Infinity -> 1E-391 Underflow Subnormal Inexact Rounded +nextt309 nexttoward -0E+30000 Infinity -> 1E-391 Underflow Subnormal Inexact Rounded + +-- specials +nextt350 nexttoward Inf Infinity -> Infinity +nextt351 nexttoward -Inf Infinity -> -9.99999999E+384 +nextt352 nexttoward NaN Infinity -> NaN +nextt353 nexttoward sNaN Infinity -> NaN Invalid_operation +nextt354 nexttoward NaN77 Infinity -> NaN77 +nextt355 nexttoward sNaN88 Infinity -> NaN88 Invalid_operation +nextt356 nexttoward -NaN Infinity -> -NaN +nextt357 nexttoward -sNaN Infinity -> -NaN Invalid_operation +nextt358 nexttoward -NaN77 Infinity -> -NaN77 +nextt359 nexttoward -sNaN88 Infinity -> -NaN88 Invalid_operation + +-- Nmax, Nmin, Ntiny, subnormals +maxExponent: 999 +minexponent: -999 +nextt370 nexttoward 9.99999999E+999 Infinity -> Infinity Overflow Inexact Rounded +nextt371 nexttoward 9.99999998E+999 Infinity -> 9.99999999E+999 +nextt372 nexttoward 1E-999 Infinity -> 1.00000001E-999 +nextt373 nexttoward 1.00000000E-999 Infinity -> 1.00000001E-999 +nextt374 nexttoward 0.999999999E-999 Infinity -> 1.00000000E-999 +nextt375 nexttoward 0.99999999E-999 Infinity -> 1.00000000E-999 +nextt376 nexttoward 9E-1007 Infinity -> 1.0E-1006 Underflow Subnormal Inexact Rounded +nextt377 nexttoward 9.9E-1006 Infinity -> 1.00E-1005 Underflow Subnormal Inexact Rounded +nextt378 nexttoward 9.9999E-1003 Infinity -> 1.00000E-1002 Underflow Subnormal Inexact Rounded +nextt379 nexttoward 9.9999998E-1000 Infinity -> 9.9999999E-1000 Underflow Subnormal Inexact Rounded +nextt380 nexttoward 9.9999997E-1000 Infinity -> 9.9999998E-1000 Underflow Subnormal Inexact Rounded +nextt381 nexttoward 0E-1007 Infinity -> 1E-1007 Underflow Subnormal Inexact Rounded +nextt382 nexttoward 1E-1007 Infinity -> 2E-1007 Underflow Subnormal Inexact Rounded +nextt383 nexttoward 2E-1007 Infinity -> 3E-1007 Underflow Subnormal Inexact Rounded + +nextt385 nexttoward -0E-1007 Infinity -> 1E-1007 Underflow Subnormal Inexact Rounded +nextt386 nexttoward -1E-1007 Infinity -> -0E-1007 Underflow Subnormal Inexact Rounded Clamped +nextt387 nexttoward -2E-1007 Infinity -> -1E-1007 Underflow Subnormal Inexact Rounded +nextt388 nexttoward -10E-1007 Infinity -> -9E-1007 Underflow Subnormal Inexact Rounded +nextt389 nexttoward -100E-1007 Infinity -> -9.9E-1006 Underflow Subnormal Inexact Rounded +nextt390 nexttoward -100000E-1007 Infinity -> -9.9999E-1003 Underflow Subnormal Inexact Rounded +nextt391 nexttoward -1.0000E-999 Infinity -> -9.9999999E-1000 Underflow Subnormal Inexact Rounded +nextt392 nexttoward -1.00000000E-999 Infinity -> -9.9999999E-1000 Underflow Subnormal Inexact Rounded +nextt393 nexttoward -1E-999 Infinity -> -9.9999999E-1000 Underflow Subnormal Inexact Rounded +nextt394 nexttoward -9.99999998E+999 Infinity -> -9.99999997E+999 +nextt395 nexttoward -9.99999999E+999 Infinity -> -9.99999998E+999 + +------- lhs>rhs +maxExponent: 384 +minexponent: -383 +nextt401 nexttoward 0.999999995 -Infinity -> 0.999999994 +nextt402 nexttoward 0.999999996 -Infinity -> 0.999999995 +nextt403 nexttoward 0.999999997 -Infinity -> 0.999999996 +nextt404 nexttoward 0.999999998 -Infinity -> 0.999999997 +nextt405 nexttoward 0.999999999 -Infinity -> 0.999999998 +nextt406 nexttoward 1.00000000 -Infinity -> 0.999999999 +nextt407 nexttoward 1.0 -Infinity -> 0.999999999 +nextt408 nexttoward 1 -Infinity -> 0.999999999 +nextt409 nexttoward 1.00000001 -Infinity -> 1.00000000 +nextt410 nexttoward 1.00000002 -Infinity -> 1.00000001 +nextt411 nexttoward 1.00000003 -Infinity -> 1.00000002 +nextt412 nexttoward 1.00000004 -Infinity -> 1.00000003 +nextt413 nexttoward 1.00000005 -Infinity -> 1.00000004 +nextt414 nexttoward 1.00000006 -Infinity -> 1.00000005 +nextt415 nexttoward 1.00000007 -Infinity -> 1.00000006 +nextt416 nexttoward 1.00000008 -Infinity -> 1.00000007 +nextt417 nexttoward 1.00000009 -Infinity -> 1.00000008 +nextt418 nexttoward 1.00000010 -Infinity -> 1.00000009 +nextt419 nexttoward 1.00000011 -Infinity -> 1.00000010 +nextt420 nexttoward 1.00000012 -Infinity -> 1.00000011 + +nextt421 nexttoward -0.999999995 -Infinity -> -0.999999996 +nextt422 nexttoward -0.999999996 -Infinity -> -0.999999997 +nextt423 nexttoward -0.999999997 -Infinity -> -0.999999998 +nextt424 nexttoward -0.999999998 -Infinity -> -0.999999999 +nextt425 nexttoward -0.999999999 -Infinity -> -1.00000000 +nextt426 nexttoward -1.00000000 -Infinity -> -1.00000001 +nextt427 nexttoward -1.0 -Infinity -> -1.00000001 +nextt428 nexttoward -1 -Infinity -> -1.00000001 +nextt429 nexttoward -1.00000001 -Infinity -> -1.00000002 +nextt430 nexttoward -1.00000002 -Infinity -> -1.00000003 +nextt431 nexttoward -1.00000003 -Infinity -> -1.00000004 +nextt432 nexttoward -1.00000004 -Infinity -> -1.00000005 +nextt433 nexttoward -1.00000005 -Infinity -> -1.00000006 +nextt434 nexttoward -1.00000006 -Infinity -> -1.00000007 +nextt435 nexttoward -1.00000007 -Infinity -> -1.00000008 +nextt436 nexttoward -1.00000008 -Infinity -> -1.00000009 +nextt437 nexttoward -1.00000009 -Infinity -> -1.00000010 +nextt438 nexttoward -1.00000010 -Infinity -> -1.00000011 +nextt439 nexttoward -1.00000011 -Infinity -> -1.00000012 + +-- input operand is >precision +nextt441 nexttoward 1.00000010998 -Infinity -> 1.00000010 +nextt442 nexttoward 1.00000010999 -Infinity -> 1.00000010 +nextt443 nexttoward 1.00000011000 -Infinity -> 1.00000010 +nextt444 nexttoward 1.00000011001 -Infinity -> 1.00000011 +nextt445 nexttoward 1.00000011002 -Infinity -> 1.00000011 +nextt446 nexttoward 1.00000011002 -Infinity -> 1.00000011 +nextt447 nexttoward 1.00000011052 -Infinity -> 1.00000011 +nextt448 nexttoward 1.00000011552 -Infinity -> 1.00000011 +nextt449 nexttoward -1.00000010998 -Infinity -> -1.00000011 +nextt450 nexttoward -1.00000010999 -Infinity -> -1.00000011 +nextt451 nexttoward -1.00000011000 -Infinity -> -1.00000012 +nextt452 nexttoward -1.00000011001 -Infinity -> -1.00000012 +nextt453 nexttoward -1.00000011002 -Infinity -> -1.00000012 +nextt454 nexttoward -1.00000011002 -Infinity -> -1.00000012 +nextt455 nexttoward -1.00000011052 -Infinity -> -1.00000012 +nextt456 nexttoward -1.00000011552 -Infinity -> -1.00000012 +-- ultra-tiny inputs +nextt460 nexttoward 1E-99999 -Infinity -> 0E-391 Underflow Subnormal Inexact Rounded Clamped +nextt461 nexttoward 1E-999999999 -Infinity -> 0E-391 Underflow Subnormal Inexact Rounded Clamped +nextt462 nexttoward 1E-391 -Infinity -> 0E-391 Underflow Subnormal Inexact Rounded Clamped +nextt463 nexttoward -1E-99999 -Infinity -> -1E-391 Underflow Subnormal Inexact Rounded +nextt464 nexttoward -1E-999999999 -Infinity -> -1E-391 Underflow Subnormal Inexact Rounded +nextt465 nexttoward -1E-391 -Infinity -> -2E-391 Underflow Subnormal Inexact Rounded + +-- Zeros +nextt500 nexttoward -0 -Infinity -> -1E-391 Underflow Subnormal Inexact Rounded +nextt501 nexttoward 0 -Infinity -> -1E-391 Underflow Subnormal Inexact Rounded +nextt502 nexttoward 0.00 -Infinity -> -1E-391 Underflow Subnormal Inexact Rounded +nextt503 nexttoward -0.00 -Infinity -> -1E-391 Underflow Subnormal Inexact Rounded +nextt504 nexttoward 0E-300 -Infinity -> -1E-391 Underflow Subnormal Inexact Rounded +nextt505 nexttoward 0E+300 -Infinity -> -1E-391 Underflow Subnormal Inexact Rounded +nextt506 nexttoward 0E+30000 -Infinity -> -1E-391 Underflow Subnormal Inexact Rounded +nextt507 nexttoward -0E+30000 -Infinity -> -1E-391 Underflow Subnormal Inexact Rounded +nextt508 nexttoward 0.00 -0.0000 -> -0.00 + +-- specials +nextt550 nexttoward Inf -Infinity -> 9.99999999E+384 +nextt551 nexttoward -Inf -Infinity -> -Infinity +nextt552 nexttoward NaN -Infinity -> NaN +nextt553 nexttoward sNaN -Infinity -> NaN Invalid_operation +nextt554 nexttoward NaN77 -Infinity -> NaN77 +nextt555 nexttoward sNaN88 -Infinity -> NaN88 Invalid_operation +nextt556 nexttoward -NaN -Infinity -> -NaN +nextt557 nexttoward -sNaN -Infinity -> -NaN Invalid_operation +nextt558 nexttoward -NaN77 -Infinity -> -NaN77 +nextt559 nexttoward -sNaN88 -Infinity -> -NaN88 Invalid_operation + +-- Nmax, Nmin, Ntiny, subnormals +maxExponent: 999 +minexponent: -999 +nextt570 nexttoward 9.99999999E+999 -Infinity -> 9.99999998E+999 +nextt571 nexttoward 9.99999998E+999 -Infinity -> 9.99999997E+999 +nextt572 nexttoward 1E-999 -Infinity -> 9.9999999E-1000 Underflow Subnormal Inexact Rounded +nextt573 nexttoward 1.00000000E-999 -Infinity -> 9.9999999E-1000 Underflow Subnormal Inexact Rounded +nextt574 nexttoward 9E-1007 -Infinity -> 8E-1007 Underflow Subnormal Inexact Rounded +nextt575 nexttoward 9.9E-1006 -Infinity -> 9.8E-1006 Underflow Subnormal Inexact Rounded +nextt576 nexttoward 9.9999E-1003 -Infinity -> 9.9998E-1003 Underflow Subnormal Inexact Rounded +nextt577 nexttoward 9.9999999E-1000 -Infinity -> 9.9999998E-1000 Underflow Subnormal Inexact Rounded +nextt578 nexttoward 9.9999998E-1000 -Infinity -> 9.9999997E-1000 Underflow Subnormal Inexact Rounded +nextt579 nexttoward 9.9999997E-1000 -Infinity -> 9.9999996E-1000 Underflow Subnormal Inexact Rounded +nextt580 nexttoward 0E-1007 -Infinity -> -1E-1007 Underflow Subnormal Inexact Rounded +nextt581 nexttoward 1E-1007 -Infinity -> 0E-1007 Underflow Subnormal Inexact Rounded Clamped +nextt582 nexttoward 2E-1007 -Infinity -> 1E-1007 Underflow Subnormal Inexact Rounded + +nextt583 nexttoward -0E-1007 -Infinity -> -1E-1007 Underflow Subnormal Inexact Rounded +nextt584 nexttoward -1E-1007 -Infinity -> -2E-1007 Underflow Subnormal Inexact Rounded +nextt585 nexttoward -2E-1007 -Infinity -> -3E-1007 Underflow Subnormal Inexact Rounded +nextt586 nexttoward -10E-1007 -Infinity -> -1.1E-1006 Underflow Subnormal Inexact Rounded +nextt587 nexttoward -100E-1007 -Infinity -> -1.01E-1005 Underflow Subnormal Inexact Rounded +nextt588 nexttoward -100000E-1007 -Infinity -> -1.00001E-1002 Underflow Subnormal Inexact Rounded +nextt589 nexttoward -1.0000E-999 -Infinity -> -1.00000001E-999 +nextt590 nexttoward -1.00000000E-999 -Infinity -> -1.00000001E-999 +nextt591 nexttoward -1E-999 -Infinity -> -1.00000001E-999 +nextt592 nexttoward -9.99999998E+999 -Infinity -> -9.99999999E+999 +nextt593 nexttoward -9.99999999E+999 -Infinity -> -Infinity Overflow Inexact Rounded + + + + +------- Specials +maxExponent: 384 +minexponent: -383 +nextt780 nexttoward -Inf -Inf -> -Infinity +nextt781 nexttoward -Inf -1000 -> -9.99999999E+384 +nextt782 nexttoward -Inf -1 -> -9.99999999E+384 +nextt783 nexttoward -Inf -0 -> -9.99999999E+384 +nextt784 nexttoward -Inf 0 -> -9.99999999E+384 +nextt785 nexttoward -Inf 1 -> -9.99999999E+384 +nextt786 nexttoward -Inf 1000 -> -9.99999999E+384 +nextt787 nexttoward -1000 -Inf -> -1000.00001 +nextt788 nexttoward -Inf -Inf -> -Infinity +nextt789 nexttoward -1 -Inf -> -1.00000001 +nextt790 nexttoward -0 -Inf -> -1E-391 Underflow Subnormal Inexact Rounded +nextt791 nexttoward 0 -Inf -> -1E-391 Underflow Subnormal Inexact Rounded +nextt792 nexttoward 1 -Inf -> 0.999999999 +nextt793 nexttoward 1000 -Inf -> 999.999999 +nextt794 nexttoward Inf -Inf -> 9.99999999E+384 + +nextt800 nexttoward Inf -Inf -> 9.99999999E+384 +nextt801 nexttoward Inf -1000 -> 9.99999999E+384 +nextt802 nexttoward Inf -1 -> 9.99999999E+384 +nextt803 nexttoward Inf -0 -> 9.99999999E+384 +nextt804 nexttoward Inf 0 -> 9.99999999E+384 +nextt805 nexttoward Inf 1 -> 9.99999999E+384 +nextt806 nexttoward Inf 1000 -> 9.99999999E+384 +nextt807 nexttoward Inf Inf -> Infinity +nextt808 nexttoward -1000 Inf -> -999.999999 +nextt809 nexttoward -Inf Inf -> -9.99999999E+384 +nextt810 nexttoward -1 Inf -> -0.999999999 +nextt811 nexttoward -0 Inf -> 1E-391 Underflow Subnormal Inexact Rounded +nextt812 nexttoward 0 Inf -> 1E-391 Underflow Subnormal Inexact Rounded +nextt813 nexttoward 1 Inf -> 1.00000001 +nextt814 nexttoward 1000 Inf -> 1000.00001 +nextt815 nexttoward Inf Inf -> Infinity + +nextt821 nexttoward NaN -Inf -> NaN +nextt822 nexttoward NaN -1000 -> NaN +nextt823 nexttoward NaN -1 -> NaN +nextt824 nexttoward NaN -0 -> NaN +nextt825 nexttoward NaN 0 -> NaN +nextt826 nexttoward NaN 1 -> NaN +nextt827 nexttoward NaN 1000 -> NaN +nextt828 nexttoward NaN Inf -> NaN +nextt829 nexttoward NaN NaN -> NaN +nextt830 nexttoward -Inf NaN -> NaN +nextt831 nexttoward -1000 NaN -> NaN +nextt832 nexttoward -1 NaN -> NaN +nextt833 nexttoward -0 NaN -> NaN +nextt834 nexttoward 0 NaN -> NaN +nextt835 nexttoward 1 NaN -> NaN +nextt836 nexttoward 1000 NaN -> NaN +nextt837 nexttoward Inf NaN -> NaN + +nextt841 nexttoward sNaN -Inf -> NaN Invalid_operation +nextt842 nexttoward sNaN -1000 -> NaN Invalid_operation +nextt843 nexttoward sNaN -1 -> NaN Invalid_operation +nextt844 nexttoward sNaN -0 -> NaN Invalid_operation +nextt845 nexttoward sNaN 0 -> NaN Invalid_operation +nextt846 nexttoward sNaN 1 -> NaN Invalid_operation +nextt847 nexttoward sNaN 1000 -> NaN Invalid_operation +nextt848 nexttoward sNaN NaN -> NaN Invalid_operation +nextt849 nexttoward sNaN sNaN -> NaN Invalid_operation +nextt850 nexttoward NaN sNaN -> NaN Invalid_operation +nextt851 nexttoward -Inf sNaN -> NaN Invalid_operation +nextt852 nexttoward -1000 sNaN -> NaN Invalid_operation +nextt853 nexttoward -1 sNaN -> NaN Invalid_operation +nextt854 nexttoward -0 sNaN -> NaN Invalid_operation +nextt855 nexttoward 0 sNaN -> NaN Invalid_operation +nextt856 nexttoward 1 sNaN -> NaN Invalid_operation +nextt857 nexttoward 1000 sNaN -> NaN Invalid_operation +nextt858 nexttoward Inf sNaN -> NaN Invalid_operation +nextt859 nexttoward NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +nextt861 nexttoward NaN1 -Inf -> NaN1 +nextt862 nexttoward +NaN2 -1000 -> NaN2 +nextt863 nexttoward NaN3 1000 -> NaN3 +nextt864 nexttoward NaN4 Inf -> NaN4 +nextt865 nexttoward NaN5 +NaN6 -> NaN5 +nextt866 nexttoward -Inf NaN7 -> NaN7 +nextt867 nexttoward -1000 NaN8 -> NaN8 +nextt868 nexttoward 1000 NaN9 -> NaN9 +nextt869 nexttoward Inf +NaN10 -> NaN10 +nextt871 nexttoward sNaN11 -Inf -> NaN11 Invalid_operation +nextt872 nexttoward sNaN12 -1000 -> NaN12 Invalid_operation +nextt873 nexttoward sNaN13 1000 -> NaN13 Invalid_operation +nextt874 nexttoward sNaN14 NaN17 -> NaN14 Invalid_operation +nextt875 nexttoward sNaN15 sNaN18 -> NaN15 Invalid_operation +nextt876 nexttoward NaN16 sNaN19 -> NaN19 Invalid_operation +nextt877 nexttoward -Inf +sNaN20 -> NaN20 Invalid_operation +nextt878 nexttoward -1000 sNaN21 -> NaN21 Invalid_operation +nextt879 nexttoward 1000 sNaN22 -> NaN22 Invalid_operation +nextt880 nexttoward Inf sNaN23 -> NaN23 Invalid_operation +nextt881 nexttoward +NaN25 +sNaN24 -> NaN24 Invalid_operation +nextt882 nexttoward -NaN26 NaN28 -> -NaN26 +nextt883 nexttoward -sNaN27 sNaN29 -> -NaN27 Invalid_operation +nextt884 nexttoward 1000 -NaN30 -> -NaN30 +nextt885 nexttoward 1000 -sNaN31 -> -NaN31 Invalid_operation + +-- Null tests +nextt900 nexttoward 1 # -> NaN Invalid_operation +nextt901 nexttoward # 1 -> NaN Invalid_operation + diff --git a/Lib/test/decimaltestdata/or.decTest b/Lib/test/decimaltestdata/or.decTest index f471d0b6ce..1aebff4e00 100644 --- a/Lib/test/decimaltestdata/or.decTest +++ b/Lib/test/decimaltestdata/or.decTest @@ -1,334 +1,334 @@ -------------------------------------------------------------------------
--- or.decTest -- digitwise logical OR --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-extended: 1
-precision: 9
-rounding: half_up
-maxExponent: 999
-minExponent: -999
-
--- Sanity check (truth table)
-orx001 or 0 0 -> 0
-orx002 or 0 1 -> 1
-orx003 or 1 0 -> 1
-orx004 or 1 1 -> 1
-orx005 or 1100 1010 -> 1110
--- and at msd and msd-1
-orx006 or 000000000 000000000 -> 0
-orx007 or 000000000 100000000 -> 100000000
-orx008 or 100000000 000000000 -> 100000000
-orx009 or 100000000 100000000 -> 100000000
-orx010 or 000000000 000000000 -> 0
-orx011 or 000000000 010000000 -> 10000000
-orx012 or 010000000 000000000 -> 10000000
-orx013 or 010000000 010000000 -> 10000000
-
--- Various lengths
--- 123456789 123456789 123456789
-orx021 or 111111111 111111111 -> 111111111
-orx022 or 111111111111 111111111 -> 111111111
-orx023 or 11111111 11111111 -> 11111111
-orx025 or 1111111 1111111 -> 1111111
-orx026 or 111111 111111 -> 111111
-orx027 or 11111 11111 -> 11111
-orx028 or 1111 1111 -> 1111
-orx029 or 111 111 -> 111
-orx031 or 11 11 -> 11
-orx032 or 1 1 -> 1
-orx033 or 111111111111 1111111111 -> 111111111
-orx034 or 11111111111 11111111111 -> 111111111
-orx035 or 1111111111 111111111111 -> 111111111
-orx036 or 111111111 1111111111111 -> 111111111
-
-orx040 or 111111111 111111111111 -> 111111111
-orx041 or 11111111 111111111111 -> 111111111
-orx042 or 11111111 111111111 -> 111111111
-orx043 or 1111111 100000010 -> 101111111
-orx044 or 111111 100000100 -> 100111111
-orx045 or 11111 100001000 -> 100011111
-orx046 or 1111 100010000 -> 100011111
-orx047 or 111 100100000 -> 100100111
-orx048 or 11 101000000 -> 101000011
-orx049 or 1 110000000 -> 110000001
-
-orx050 or 1111111111 1 -> 111111111
-orx051 or 111111111 1 -> 111111111
-orx052 or 11111111 1 -> 11111111
-orx053 or 1111111 1 -> 1111111
-orx054 or 111111 1 -> 111111
-orx055 or 11111 1 -> 11111
-orx056 or 1111 1 -> 1111
-orx057 or 111 1 -> 111
-orx058 or 11 1 -> 11
-orx059 or 1 1 -> 1
-
-orx060 or 1111111111 0 -> 111111111
-orx061 or 111111111 0 -> 111111111
-orx062 or 11111111 0 -> 11111111
-orx063 or 1111111 0 -> 1111111
-orx064 or 111111 0 -> 111111
-orx065 or 11111 0 -> 11111
-orx066 or 1111 0 -> 1111
-orx067 or 111 0 -> 111
-orx068 or 11 0 -> 11
-orx069 or 1 0 -> 1
-
-orx070 or 1 1111111111 -> 111111111
-orx071 or 1 111111111 -> 111111111
-orx072 or 1 11111111 -> 11111111
-orx073 or 1 1111111 -> 1111111
-orx074 or 1 111111 -> 111111
-orx075 or 1 11111 -> 11111
-orx076 or 1 1111 -> 1111
-orx077 or 1 111 -> 111
-orx078 or 1 11 -> 11
-orx079 or 1 1 -> 1
-
-orx080 or 0 1111111111 -> 111111111
-orx081 or 0 111111111 -> 111111111
-orx082 or 0 11111111 -> 11111111
-orx083 or 0 1111111 -> 1111111
-orx084 or 0 111111 -> 111111
-orx085 or 0 11111 -> 11111
-orx086 or 0 1111 -> 1111
-orx087 or 0 111 -> 111
-orx088 or 0 11 -> 11
-orx089 or 0 1 -> 1
-
-orx090 or 011111111 111101111 -> 111111111
-orx091 or 101111111 111101111 -> 111111111
-orx092 or 110111111 111101111 -> 111111111
-orx093 or 111011111 111101111 -> 111111111
-orx094 or 111101111 111101111 -> 111101111
-orx095 or 111110111 111101111 -> 111111111
-orx096 or 111111011 111101111 -> 111111111
-orx097 or 111111101 111101111 -> 111111111
-orx098 or 111111110 111101111 -> 111111111
-
-orx100 or 111101111 011111111 -> 111111111
-orx101 or 111101111 101111111 -> 111111111
-orx102 or 111101111 110111111 -> 111111111
-orx103 or 111101111 111011111 -> 111111111
-orx104 or 111101111 111101111 -> 111101111
-orx105 or 111101111 111110111 -> 111111111
-orx106 or 111101111 111111011 -> 111111111
-orx107 or 111101111 111111101 -> 111111111
-orx108 or 111101111 111111110 -> 111111111
-
--- non-0/1 should not be accepted, nor should signs
-orx220 or 111111112 111111111 -> NaN Invalid_operation
-orx221 or 333333333 333333333 -> NaN Invalid_operation
-orx222 or 555555555 555555555 -> NaN Invalid_operation
-orx223 or 777777777 777777777 -> NaN Invalid_operation
-orx224 or 999999999 999999999 -> NaN Invalid_operation
-orx225 or 222222222 999999999 -> NaN Invalid_operation
-orx226 or 444444444 999999999 -> NaN Invalid_operation
-orx227 or 666666666 999999999 -> NaN Invalid_operation
-orx228 or 888888888 999999999 -> NaN Invalid_operation
-orx229 or 999999999 222222222 -> NaN Invalid_operation
-orx230 or 999999999 444444444 -> NaN Invalid_operation
-orx231 or 999999999 666666666 -> NaN Invalid_operation
-orx232 or 999999999 888888888 -> NaN Invalid_operation
--- a few randoms
-orx240 or 567468689 -934981942 -> NaN Invalid_operation
-orx241 or 567367689 934981942 -> NaN Invalid_operation
-orx242 or -631917772 -706014634 -> NaN Invalid_operation
-orx243 or -756253257 138579234 -> NaN Invalid_operation
-orx244 or 835590149 567435400 -> NaN Invalid_operation
--- test MSD
-orx250 or 200000000 100000000 -> NaN Invalid_operation
-orx251 or 700000000 100000000 -> NaN Invalid_operation
-orx252 or 800000000 100000000 -> NaN Invalid_operation
-orx253 or 900000000 100000000 -> NaN Invalid_operation
-orx254 or 200000000 000000000 -> NaN Invalid_operation
-orx255 or 700000000 000000000 -> NaN Invalid_operation
-orx256 or 800000000 000000000 -> NaN Invalid_operation
-orx257 or 900000000 000000000 -> NaN Invalid_operation
-orx258 or 100000000 200000000 -> NaN Invalid_operation
-orx259 or 100000000 700000000 -> NaN Invalid_operation
-orx260 or 100000000 800000000 -> NaN Invalid_operation
-orx261 or 100000000 900000000 -> NaN Invalid_operation
-orx262 or 000000000 200000000 -> NaN Invalid_operation
-orx263 or 000000000 700000000 -> NaN Invalid_operation
-orx264 or 000000000 800000000 -> NaN Invalid_operation
-orx265 or 000000000 900000000 -> NaN Invalid_operation
--- test MSD-1
-orx270 or 020000000 100000000 -> NaN Invalid_operation
-orx271 or 070100000 100000000 -> NaN Invalid_operation
-orx272 or 080010000 100000001 -> NaN Invalid_operation
-orx273 or 090001000 100000010 -> NaN Invalid_operation
-orx274 or 100000100 020010100 -> NaN Invalid_operation
-orx275 or 100000000 070001000 -> NaN Invalid_operation
-orx276 or 100000010 080010100 -> NaN Invalid_operation
-orx277 or 100000000 090000010 -> NaN Invalid_operation
--- test LSD
-orx280 or 001000002 100000000 -> NaN Invalid_operation
-orx281 or 000000007 100000000 -> NaN Invalid_operation
-orx282 or 000000008 100000000 -> NaN Invalid_operation
-orx283 or 000000009 100000000 -> NaN Invalid_operation
-orx284 or 100000000 000100002 -> NaN Invalid_operation
-orx285 or 100100000 001000007 -> NaN Invalid_operation
-orx286 or 100010000 010000008 -> NaN Invalid_operation
-orx287 or 100001000 100000009 -> NaN Invalid_operation
--- test Middie
-orx288 or 001020000 100000000 -> NaN Invalid_operation
-orx289 or 000070001 100000000 -> NaN Invalid_operation
-orx290 or 000080000 100010000 -> NaN Invalid_operation
-orx291 or 000090000 100001000 -> NaN Invalid_operation
-orx292 or 100000010 000020100 -> NaN Invalid_operation
-orx293 or 100100000 000070010 -> NaN Invalid_operation
-orx294 or 100010100 000080001 -> NaN Invalid_operation
-orx295 or 100001000 000090000 -> NaN Invalid_operation
--- signs
-orx296 or -100001000 -000000000 -> NaN Invalid_operation
-orx297 or -100001000 000010000 -> NaN Invalid_operation
-orx298 or 100001000 -000000000 -> NaN Invalid_operation
-orx299 or 100001000 000011000 -> 100011000
-
--- Nmax, Nmin, Ntiny
-orx331 or 2 9.99999999E+999 -> NaN Invalid_operation
-orx332 or 3 1E-999 -> NaN Invalid_operation
-orx333 or 4 1.00000000E-999 -> NaN Invalid_operation
-orx334 or 5 1E-1007 -> NaN Invalid_operation
-orx335 or 6 -1E-1007 -> NaN Invalid_operation
-orx336 or 7 -1.00000000E-999 -> NaN Invalid_operation
-orx337 or 8 -1E-999 -> NaN Invalid_operation
-orx338 or 9 -9.99999999E+999 -> NaN Invalid_operation
-orx341 or 9.99999999E+999 -18 -> NaN Invalid_operation
-orx342 or 1E-999 01 -> NaN Invalid_operation
-orx343 or 1.00000000E-999 -18 -> NaN Invalid_operation
-orx344 or 1E-1007 18 -> NaN Invalid_operation
-orx345 or -1E-1007 -10 -> NaN Invalid_operation
-orx346 or -1.00000000E-999 18 -> NaN Invalid_operation
-orx347 or -1E-999 10 -> NaN Invalid_operation
-orx348 or -9.99999999E+999 -18 -> NaN Invalid_operation
-
--- A few other non-integers
-orx361 or 1.0 1 -> NaN Invalid_operation
-orx362 or 1E+1 1 -> NaN Invalid_operation
-orx363 or 0.0 1 -> NaN Invalid_operation
-orx364 or 0E+1 1 -> NaN Invalid_operation
-orx365 or 9.9 1 -> NaN Invalid_operation
-orx366 or 9E+1 1 -> NaN Invalid_operation
-orx371 or 0 1.0 -> NaN Invalid_operation
-orx372 or 0 1E+1 -> NaN Invalid_operation
-orx373 or 0 0.0 -> NaN Invalid_operation
-orx374 or 0 0E+1 -> NaN Invalid_operation
-orx375 or 0 9.9 -> NaN Invalid_operation
-orx376 or 0 9E+1 -> NaN Invalid_operation
-
--- All Specials are in error
-orx780 or -Inf -Inf -> NaN Invalid_operation
-orx781 or -Inf -1000 -> NaN Invalid_operation
-orx782 or -Inf -1 -> NaN Invalid_operation
-orx783 or -Inf -0 -> NaN Invalid_operation
-orx784 or -Inf 0 -> NaN Invalid_operation
-orx785 or -Inf 1 -> NaN Invalid_operation
-orx786 or -Inf 1000 -> NaN Invalid_operation
-orx787 or -1000 -Inf -> NaN Invalid_operation
-orx788 or -Inf -Inf -> NaN Invalid_operation
-orx789 or -1 -Inf -> NaN Invalid_operation
-orx790 or -0 -Inf -> NaN Invalid_operation
-orx791 or 0 -Inf -> NaN Invalid_operation
-orx792 or 1 -Inf -> NaN Invalid_operation
-orx793 or 1000 -Inf -> NaN Invalid_operation
-orx794 or Inf -Inf -> NaN Invalid_operation
-
-orx800 or Inf -Inf -> NaN Invalid_operation
-orx801 or Inf -1000 -> NaN Invalid_operation
-orx802 or Inf -1 -> NaN Invalid_operation
-orx803 or Inf -0 -> NaN Invalid_operation
-orx804 or Inf 0 -> NaN Invalid_operation
-orx805 or Inf 1 -> NaN Invalid_operation
-orx806 or Inf 1000 -> NaN Invalid_operation
-orx807 or Inf Inf -> NaN Invalid_operation
-orx808 or -1000 Inf -> NaN Invalid_operation
-orx809 or -Inf Inf -> NaN Invalid_operation
-orx810 or -1 Inf -> NaN Invalid_operation
-orx811 or -0 Inf -> NaN Invalid_operation
-orx812 or 0 Inf -> NaN Invalid_operation
-orx813 or 1 Inf -> NaN Invalid_operation
-orx814 or 1000 Inf -> NaN Invalid_operation
-orx815 or Inf Inf -> NaN Invalid_operation
-
-orx821 or NaN -Inf -> NaN Invalid_operation
-orx822 or NaN -1000 -> NaN Invalid_operation
-orx823 or NaN -1 -> NaN Invalid_operation
-orx824 or NaN -0 -> NaN Invalid_operation
-orx825 or NaN 0 -> NaN Invalid_operation
-orx826 or NaN 1 -> NaN Invalid_operation
-orx827 or NaN 1000 -> NaN Invalid_operation
-orx828 or NaN Inf -> NaN Invalid_operation
-orx829 or NaN NaN -> NaN Invalid_operation
-orx830 or -Inf NaN -> NaN Invalid_operation
-orx831 or -1000 NaN -> NaN Invalid_operation
-orx832 or -1 NaN -> NaN Invalid_operation
-orx833 or -0 NaN -> NaN Invalid_operation
-orx834 or 0 NaN -> NaN Invalid_operation
-orx835 or 1 NaN -> NaN Invalid_operation
-orx836 or 1000 NaN -> NaN Invalid_operation
-orx837 or Inf NaN -> NaN Invalid_operation
-
-orx841 or sNaN -Inf -> NaN Invalid_operation
-orx842 or sNaN -1000 -> NaN Invalid_operation
-orx843 or sNaN -1 -> NaN Invalid_operation
-orx844 or sNaN -0 -> NaN Invalid_operation
-orx845 or sNaN 0 -> NaN Invalid_operation
-orx846 or sNaN 1 -> NaN Invalid_operation
-orx847 or sNaN 1000 -> NaN Invalid_operation
-orx848 or sNaN NaN -> NaN Invalid_operation
-orx849 or sNaN sNaN -> NaN Invalid_operation
-orx850 or NaN sNaN -> NaN Invalid_operation
-orx851 or -Inf sNaN -> NaN Invalid_operation
-orx852 or -1000 sNaN -> NaN Invalid_operation
-orx853 or -1 sNaN -> NaN Invalid_operation
-orx854 or -0 sNaN -> NaN Invalid_operation
-orx855 or 0 sNaN -> NaN Invalid_operation
-orx856 or 1 sNaN -> NaN Invalid_operation
-orx857 or 1000 sNaN -> NaN Invalid_operation
-orx858 or Inf sNaN -> NaN Invalid_operation
-orx859 or NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-orx861 or NaN1 -Inf -> NaN Invalid_operation
-orx862 or +NaN2 -1000 -> NaN Invalid_operation
-orx863 or NaN3 1000 -> NaN Invalid_operation
-orx864 or NaN4 Inf -> NaN Invalid_operation
-orx865 or NaN5 +NaN6 -> NaN Invalid_operation
-orx866 or -Inf NaN7 -> NaN Invalid_operation
-orx867 or -1000 NaN8 -> NaN Invalid_operation
-orx868 or 1000 NaN9 -> NaN Invalid_operation
-orx869 or Inf +NaN10 -> NaN Invalid_operation
-orx871 or sNaN11 -Inf -> NaN Invalid_operation
-orx872 or sNaN12 -1000 -> NaN Invalid_operation
-orx873 or sNaN13 1000 -> NaN Invalid_operation
-orx874 or sNaN14 NaN17 -> NaN Invalid_operation
-orx875 or sNaN15 sNaN18 -> NaN Invalid_operation
-orx876 or NaN16 sNaN19 -> NaN Invalid_operation
-orx877 or -Inf +sNaN20 -> NaN Invalid_operation
-orx878 or -1000 sNaN21 -> NaN Invalid_operation
-orx879 or 1000 sNaN22 -> NaN Invalid_operation
-orx880 or Inf sNaN23 -> NaN Invalid_operation
-orx881 or +NaN25 +sNaN24 -> NaN Invalid_operation
-orx882 or -NaN26 NaN28 -> NaN Invalid_operation
-orx883 or -sNaN27 sNaN29 -> NaN Invalid_operation
-orx884 or 1000 -NaN30 -> NaN Invalid_operation
-orx885 or 1000 -sNaN31 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- or.decTest -- digitwise logical OR -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +extended: 1 +precision: 9 +rounding: half_up +maxExponent: 999 +minExponent: -999 + +-- Sanity check (truth table) +orx001 or 0 0 -> 0 +orx002 or 0 1 -> 1 +orx003 or 1 0 -> 1 +orx004 or 1 1 -> 1 +orx005 or 1100 1010 -> 1110 +-- and at msd and msd-1 +orx006 or 000000000 000000000 -> 0 +orx007 or 000000000 100000000 -> 100000000 +orx008 or 100000000 000000000 -> 100000000 +orx009 or 100000000 100000000 -> 100000000 +orx010 or 000000000 000000000 -> 0 +orx011 or 000000000 010000000 -> 10000000 +orx012 or 010000000 000000000 -> 10000000 +orx013 or 010000000 010000000 -> 10000000 + +-- Various lengths +-- 123456789 123456789 123456789 +orx021 or 111111111 111111111 -> 111111111 +orx022 or 111111111111 111111111 -> 111111111 +orx023 or 11111111 11111111 -> 11111111 +orx025 or 1111111 1111111 -> 1111111 +orx026 or 111111 111111 -> 111111 +orx027 or 11111 11111 -> 11111 +orx028 or 1111 1111 -> 1111 +orx029 or 111 111 -> 111 +orx031 or 11 11 -> 11 +orx032 or 1 1 -> 1 +orx033 or 111111111111 1111111111 -> 111111111 +orx034 or 11111111111 11111111111 -> 111111111 +orx035 or 1111111111 111111111111 -> 111111111 +orx036 or 111111111 1111111111111 -> 111111111 + +orx040 or 111111111 111111111111 -> 111111111 +orx041 or 11111111 111111111111 -> 111111111 +orx042 or 11111111 111111111 -> 111111111 +orx043 or 1111111 100000010 -> 101111111 +orx044 or 111111 100000100 -> 100111111 +orx045 or 11111 100001000 -> 100011111 +orx046 or 1111 100010000 -> 100011111 +orx047 or 111 100100000 -> 100100111 +orx048 or 11 101000000 -> 101000011 +orx049 or 1 110000000 -> 110000001 + +orx050 or 1111111111 1 -> 111111111 +orx051 or 111111111 1 -> 111111111 +orx052 or 11111111 1 -> 11111111 +orx053 or 1111111 1 -> 1111111 +orx054 or 111111 1 -> 111111 +orx055 or 11111 1 -> 11111 +orx056 or 1111 1 -> 1111 +orx057 or 111 1 -> 111 +orx058 or 11 1 -> 11 +orx059 or 1 1 -> 1 + +orx060 or 1111111111 0 -> 111111111 +orx061 or 111111111 0 -> 111111111 +orx062 or 11111111 0 -> 11111111 +orx063 or 1111111 0 -> 1111111 +orx064 or 111111 0 -> 111111 +orx065 or 11111 0 -> 11111 +orx066 or 1111 0 -> 1111 +orx067 or 111 0 -> 111 +orx068 or 11 0 -> 11 +orx069 or 1 0 -> 1 + +orx070 or 1 1111111111 -> 111111111 +orx071 or 1 111111111 -> 111111111 +orx072 or 1 11111111 -> 11111111 +orx073 or 1 1111111 -> 1111111 +orx074 or 1 111111 -> 111111 +orx075 or 1 11111 -> 11111 +orx076 or 1 1111 -> 1111 +orx077 or 1 111 -> 111 +orx078 or 1 11 -> 11 +orx079 or 1 1 -> 1 + +orx080 or 0 1111111111 -> 111111111 +orx081 or 0 111111111 -> 111111111 +orx082 or 0 11111111 -> 11111111 +orx083 or 0 1111111 -> 1111111 +orx084 or 0 111111 -> 111111 +orx085 or 0 11111 -> 11111 +orx086 or 0 1111 -> 1111 +orx087 or 0 111 -> 111 +orx088 or 0 11 -> 11 +orx089 or 0 1 -> 1 + +orx090 or 011111111 111101111 -> 111111111 +orx091 or 101111111 111101111 -> 111111111 +orx092 or 110111111 111101111 -> 111111111 +orx093 or 111011111 111101111 -> 111111111 +orx094 or 111101111 111101111 -> 111101111 +orx095 or 111110111 111101111 -> 111111111 +orx096 or 111111011 111101111 -> 111111111 +orx097 or 111111101 111101111 -> 111111111 +orx098 or 111111110 111101111 -> 111111111 + +orx100 or 111101111 011111111 -> 111111111 +orx101 or 111101111 101111111 -> 111111111 +orx102 or 111101111 110111111 -> 111111111 +orx103 or 111101111 111011111 -> 111111111 +orx104 or 111101111 111101111 -> 111101111 +orx105 or 111101111 111110111 -> 111111111 +orx106 or 111101111 111111011 -> 111111111 +orx107 or 111101111 111111101 -> 111111111 +orx108 or 111101111 111111110 -> 111111111 + +-- non-0/1 should not be accepted, nor should signs +orx220 or 111111112 111111111 -> NaN Invalid_operation +orx221 or 333333333 333333333 -> NaN Invalid_operation +orx222 or 555555555 555555555 -> NaN Invalid_operation +orx223 or 777777777 777777777 -> NaN Invalid_operation +orx224 or 999999999 999999999 -> NaN Invalid_operation +orx225 or 222222222 999999999 -> NaN Invalid_operation +orx226 or 444444444 999999999 -> NaN Invalid_operation +orx227 or 666666666 999999999 -> NaN Invalid_operation +orx228 or 888888888 999999999 -> NaN Invalid_operation +orx229 or 999999999 222222222 -> NaN Invalid_operation +orx230 or 999999999 444444444 -> NaN Invalid_operation +orx231 or 999999999 666666666 -> NaN Invalid_operation +orx232 or 999999999 888888888 -> NaN Invalid_operation +-- a few randoms +orx240 or 567468689 -934981942 -> NaN Invalid_operation +orx241 or 567367689 934981942 -> NaN Invalid_operation +orx242 or -631917772 -706014634 -> NaN Invalid_operation +orx243 or -756253257 138579234 -> NaN Invalid_operation +orx244 or 835590149 567435400 -> NaN Invalid_operation +-- test MSD +orx250 or 200000000 100000000 -> NaN Invalid_operation +orx251 or 700000000 100000000 -> NaN Invalid_operation +orx252 or 800000000 100000000 -> NaN Invalid_operation +orx253 or 900000000 100000000 -> NaN Invalid_operation +orx254 or 200000000 000000000 -> NaN Invalid_operation +orx255 or 700000000 000000000 -> NaN Invalid_operation +orx256 or 800000000 000000000 -> NaN Invalid_operation +orx257 or 900000000 000000000 -> NaN Invalid_operation +orx258 or 100000000 200000000 -> NaN Invalid_operation +orx259 or 100000000 700000000 -> NaN Invalid_operation +orx260 or 100000000 800000000 -> NaN Invalid_operation +orx261 or 100000000 900000000 -> NaN Invalid_operation +orx262 or 000000000 200000000 -> NaN Invalid_operation +orx263 or 000000000 700000000 -> NaN Invalid_operation +orx264 or 000000000 800000000 -> NaN Invalid_operation +orx265 or 000000000 900000000 -> NaN Invalid_operation +-- test MSD-1 +orx270 or 020000000 100000000 -> NaN Invalid_operation +orx271 or 070100000 100000000 -> NaN Invalid_operation +orx272 or 080010000 100000001 -> NaN Invalid_operation +orx273 or 090001000 100000010 -> NaN Invalid_operation +orx274 or 100000100 020010100 -> NaN Invalid_operation +orx275 or 100000000 070001000 -> NaN Invalid_operation +orx276 or 100000010 080010100 -> NaN Invalid_operation +orx277 or 100000000 090000010 -> NaN Invalid_operation +-- test LSD +orx280 or 001000002 100000000 -> NaN Invalid_operation +orx281 or 000000007 100000000 -> NaN Invalid_operation +orx282 or 000000008 100000000 -> NaN Invalid_operation +orx283 or 000000009 100000000 -> NaN Invalid_operation +orx284 or 100000000 000100002 -> NaN Invalid_operation +orx285 or 100100000 001000007 -> NaN Invalid_operation +orx286 or 100010000 010000008 -> NaN Invalid_operation +orx287 or 100001000 100000009 -> NaN Invalid_operation +-- test Middie +orx288 or 001020000 100000000 -> NaN Invalid_operation +orx289 or 000070001 100000000 -> NaN Invalid_operation +orx290 or 000080000 100010000 -> NaN Invalid_operation +orx291 or 000090000 100001000 -> NaN Invalid_operation +orx292 or 100000010 000020100 -> NaN Invalid_operation +orx293 or 100100000 000070010 -> NaN Invalid_operation +orx294 or 100010100 000080001 -> NaN Invalid_operation +orx295 or 100001000 000090000 -> NaN Invalid_operation +-- signs +orx296 or -100001000 -000000000 -> NaN Invalid_operation +orx297 or -100001000 000010000 -> NaN Invalid_operation +orx298 or 100001000 -000000000 -> NaN Invalid_operation +orx299 or 100001000 000011000 -> 100011000 + +-- Nmax, Nmin, Ntiny +orx331 or 2 9.99999999E+999 -> NaN Invalid_operation +orx332 or 3 1E-999 -> NaN Invalid_operation +orx333 or 4 1.00000000E-999 -> NaN Invalid_operation +orx334 or 5 1E-1007 -> NaN Invalid_operation +orx335 or 6 -1E-1007 -> NaN Invalid_operation +orx336 or 7 -1.00000000E-999 -> NaN Invalid_operation +orx337 or 8 -1E-999 -> NaN Invalid_operation +orx338 or 9 -9.99999999E+999 -> NaN Invalid_operation +orx341 or 9.99999999E+999 -18 -> NaN Invalid_operation +orx342 or 1E-999 01 -> NaN Invalid_operation +orx343 or 1.00000000E-999 -18 -> NaN Invalid_operation +orx344 or 1E-1007 18 -> NaN Invalid_operation +orx345 or -1E-1007 -10 -> NaN Invalid_operation +orx346 or -1.00000000E-999 18 -> NaN Invalid_operation +orx347 or -1E-999 10 -> NaN Invalid_operation +orx348 or -9.99999999E+999 -18 -> NaN Invalid_operation + +-- A few other non-integers +orx361 or 1.0 1 -> NaN Invalid_operation +orx362 or 1E+1 1 -> NaN Invalid_operation +orx363 or 0.0 1 -> NaN Invalid_operation +orx364 or 0E+1 1 -> NaN Invalid_operation +orx365 or 9.9 1 -> NaN Invalid_operation +orx366 or 9E+1 1 -> NaN Invalid_operation +orx371 or 0 1.0 -> NaN Invalid_operation +orx372 or 0 1E+1 -> NaN Invalid_operation +orx373 or 0 0.0 -> NaN Invalid_operation +orx374 or 0 0E+1 -> NaN Invalid_operation +orx375 or 0 9.9 -> NaN Invalid_operation +orx376 or 0 9E+1 -> NaN Invalid_operation + +-- All Specials are in error +orx780 or -Inf -Inf -> NaN Invalid_operation +orx781 or -Inf -1000 -> NaN Invalid_operation +orx782 or -Inf -1 -> NaN Invalid_operation +orx783 or -Inf -0 -> NaN Invalid_operation +orx784 or -Inf 0 -> NaN Invalid_operation +orx785 or -Inf 1 -> NaN Invalid_operation +orx786 or -Inf 1000 -> NaN Invalid_operation +orx787 or -1000 -Inf -> NaN Invalid_operation +orx788 or -Inf -Inf -> NaN Invalid_operation +orx789 or -1 -Inf -> NaN Invalid_operation +orx790 or -0 -Inf -> NaN Invalid_operation +orx791 or 0 -Inf -> NaN Invalid_operation +orx792 or 1 -Inf -> NaN Invalid_operation +orx793 or 1000 -Inf -> NaN Invalid_operation +orx794 or Inf -Inf -> NaN Invalid_operation + +orx800 or Inf -Inf -> NaN Invalid_operation +orx801 or Inf -1000 -> NaN Invalid_operation +orx802 or Inf -1 -> NaN Invalid_operation +orx803 or Inf -0 -> NaN Invalid_operation +orx804 or Inf 0 -> NaN Invalid_operation +orx805 or Inf 1 -> NaN Invalid_operation +orx806 or Inf 1000 -> NaN Invalid_operation +orx807 or Inf Inf -> NaN Invalid_operation +orx808 or -1000 Inf -> NaN Invalid_operation +orx809 or -Inf Inf -> NaN Invalid_operation +orx810 or -1 Inf -> NaN Invalid_operation +orx811 or -0 Inf -> NaN Invalid_operation +orx812 or 0 Inf -> NaN Invalid_operation +orx813 or 1 Inf -> NaN Invalid_operation +orx814 or 1000 Inf -> NaN Invalid_operation +orx815 or Inf Inf -> NaN Invalid_operation + +orx821 or NaN -Inf -> NaN Invalid_operation +orx822 or NaN -1000 -> NaN Invalid_operation +orx823 or NaN -1 -> NaN Invalid_operation +orx824 or NaN -0 -> NaN Invalid_operation +orx825 or NaN 0 -> NaN Invalid_operation +orx826 or NaN 1 -> NaN Invalid_operation +orx827 or NaN 1000 -> NaN Invalid_operation +orx828 or NaN Inf -> NaN Invalid_operation +orx829 or NaN NaN -> NaN Invalid_operation +orx830 or -Inf NaN -> NaN Invalid_operation +orx831 or -1000 NaN -> NaN Invalid_operation +orx832 or -1 NaN -> NaN Invalid_operation +orx833 or -0 NaN -> NaN Invalid_operation +orx834 or 0 NaN -> NaN Invalid_operation +orx835 or 1 NaN -> NaN Invalid_operation +orx836 or 1000 NaN -> NaN Invalid_operation +orx837 or Inf NaN -> NaN Invalid_operation + +orx841 or sNaN -Inf -> NaN Invalid_operation +orx842 or sNaN -1000 -> NaN Invalid_operation +orx843 or sNaN -1 -> NaN Invalid_operation +orx844 or sNaN -0 -> NaN Invalid_operation +orx845 or sNaN 0 -> NaN Invalid_operation +orx846 or sNaN 1 -> NaN Invalid_operation +orx847 or sNaN 1000 -> NaN Invalid_operation +orx848 or sNaN NaN -> NaN Invalid_operation +orx849 or sNaN sNaN -> NaN Invalid_operation +orx850 or NaN sNaN -> NaN Invalid_operation +orx851 or -Inf sNaN -> NaN Invalid_operation +orx852 or -1000 sNaN -> NaN Invalid_operation +orx853 or -1 sNaN -> NaN Invalid_operation +orx854 or -0 sNaN -> NaN Invalid_operation +orx855 or 0 sNaN -> NaN Invalid_operation +orx856 or 1 sNaN -> NaN Invalid_operation +orx857 or 1000 sNaN -> NaN Invalid_operation +orx858 or Inf sNaN -> NaN Invalid_operation +orx859 or NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +orx861 or NaN1 -Inf -> NaN Invalid_operation +orx862 or +NaN2 -1000 -> NaN Invalid_operation +orx863 or NaN3 1000 -> NaN Invalid_operation +orx864 or NaN4 Inf -> NaN Invalid_operation +orx865 or NaN5 +NaN6 -> NaN Invalid_operation +orx866 or -Inf NaN7 -> NaN Invalid_operation +orx867 or -1000 NaN8 -> NaN Invalid_operation +orx868 or 1000 NaN9 -> NaN Invalid_operation +orx869 or Inf +NaN10 -> NaN Invalid_operation +orx871 or sNaN11 -Inf -> NaN Invalid_operation +orx872 or sNaN12 -1000 -> NaN Invalid_operation +orx873 or sNaN13 1000 -> NaN Invalid_operation +orx874 or sNaN14 NaN17 -> NaN Invalid_operation +orx875 or sNaN15 sNaN18 -> NaN Invalid_operation +orx876 or NaN16 sNaN19 -> NaN Invalid_operation +orx877 or -Inf +sNaN20 -> NaN Invalid_operation +orx878 or -1000 sNaN21 -> NaN Invalid_operation +orx879 or 1000 sNaN22 -> NaN Invalid_operation +orx880 or Inf sNaN23 -> NaN Invalid_operation +orx881 or +NaN25 +sNaN24 -> NaN Invalid_operation +orx882 or -NaN26 NaN28 -> NaN Invalid_operation +orx883 or -sNaN27 sNaN29 -> NaN Invalid_operation +orx884 or 1000 -NaN30 -> NaN Invalid_operation +orx885 or 1000 -sNaN31 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/powersqrt.decTest b/Lib/test/decimaltestdata/powersqrt.decTest index 6c021a0cbb..260b941537 100644 --- a/Lib/test/decimaltestdata/powersqrt.decTest +++ b/Lib/test/decimaltestdata/powersqrt.decTest @@ -1,2970 +1,2970 @@ -------------------------------------------------------------------------
--- powersqrt.decTest -- decimal square root, using power --
--- Copyright (c) IBM Corporation, 2004, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- These testcases are taken from squareroot.decTest but are
--- evaluated using the power operator. The differences in results
--- (153 out of 2856) fall into the following categories:
---
--- x ** 0.5 (x>0) has no preferred exponent, and is Inexact
--- (and hence full precision); almost all differences are
--- in this category
--- 0.00 ** 0.5 becomes 0 (not 0.0), etc.
--- -0 ** 0.5 becomes 0 (never -0)
--- Some exact subnormals become inexact and hence underflows
-
-extended: 1
-precision: 9
-rounding: half_even
-maxExponent: 384
-minexponent: -383
-
--- basics
-pwsx001 power 1 0.5 -> 1.00000000 Inexact Rounded
-pwsx002 power -1 0.5 -> NaN Invalid_operation
-pwsx003 power 1.00 0.5 -> 1.00000000 Inexact Rounded
-pwsx004 power -1.00 0.5 -> NaN Invalid_operation
-pwsx005 power 0 0.5 -> 0
-pwsx006 power 00.0 0.5 -> 0
-pwsx007 power 0.00 0.5 -> 0
-pwsx008 power 00.00 0.5 -> 0
-pwsx009 power 00.000 0.5 -> 0
-pwsx010 power 00.0000 0.5 -> 0
-pwsx011 power 00 0.5 -> 0
-
-pwsx012 power -2 0.5 -> NaN Invalid_operation
-pwsx013 power 2 0.5 -> 1.41421356 Inexact Rounded
-pwsx014 power -2.00 0.5 -> NaN Invalid_operation
-pwsx015 power 2.00 0.5 -> 1.41421356 Inexact Rounded
-pwsx016 power -0 0.5 -> 0
-pwsx017 power -0.0 0.5 -> 0
-pwsx018 power -00.00 0.5 -> 0
-pwsx019 power -00.000 0.5 -> 0
-pwsx020 power -0.0000 0.5 -> 0
-pwsx021 power -0E+9 0.5 -> 0
-pwsx022 power -0E+10 0.5 -> 0
-pwsx023 power -0E+11 0.5 -> 0
-pwsx024 power -0E+12 0.5 -> 0
-pwsx025 power -00 0.5 -> 0
-pwsx026 power 0E+5 0.5 -> 0
-pwsx027 power 4.0 0.5 -> 2.00000000 Inexact Rounded
-pwsx028 power 4.00 0.5 -> 2.00000000 Inexact Rounded
-
-pwsx030 power +0.1 0.5 -> 0.316227766 Inexact Rounded
-pwsx031 power -0.1 0.5 -> NaN Invalid_operation
-pwsx032 power +0.01 0.5 -> 0.100000000 Inexact Rounded
-pwsx033 power -0.01 0.5 -> NaN Invalid_operation
-pwsx034 power +0.001 0.5 -> 0.0316227766 Inexact Rounded
-pwsx035 power -0.001 0.5 -> NaN Invalid_operation
-pwsx036 power +0.000001 0.5 -> 0.00100000000 Inexact Rounded
-pwsx037 power -0.000001 0.5 -> NaN Invalid_operation
-pwsx038 power +0.000000000001 0.5 -> 0.00000100000000 Inexact Rounded
-pwsx039 power -0.000000000001 0.5 -> NaN Invalid_operation
-
-pwsx041 power 1.1 0.5 -> 1.04880885 Inexact Rounded
-pwsx042 power 1.10 0.5 -> 1.04880885 Inexact Rounded
-pwsx043 power 1.100 0.5 -> 1.04880885 Inexact Rounded
-pwsx044 power 1.110 0.5 -> 1.05356538 Inexact Rounded
-pwsx045 power -1.1 0.5 -> NaN Invalid_operation
-pwsx046 power -1.10 0.5 -> NaN Invalid_operation
-pwsx047 power -1.100 0.5 -> NaN Invalid_operation
-pwsx048 power -1.110 0.5 -> NaN Invalid_operation
-pwsx049 power 9.9 0.5 -> 3.14642654 Inexact Rounded
-pwsx050 power 9.90 0.5 -> 3.14642654 Inexact Rounded
-pwsx051 power 9.900 0.5 -> 3.14642654 Inexact Rounded
-pwsx052 power 9.990 0.5 -> 3.16069613 Inexact Rounded
-pwsx053 power -9.9 0.5 -> NaN Invalid_operation
-pwsx054 power -9.90 0.5 -> NaN Invalid_operation
-pwsx055 power -9.900 0.5 -> NaN Invalid_operation
-pwsx056 power -9.990 0.5 -> NaN Invalid_operation
-
-pwsx060 power 1 0.5 -> 1.00000000 Inexact Rounded
-pwsx061 power 1.0 0.5 -> 1.00000000 Inexact Rounded
-pwsx062 power 1.00 0.5 -> 1.00000000 Inexact Rounded
-pwsx063 power 10.0 0.5 -> 3.16227766 Inexact Rounded
-pwsx064 power 10.0 0.5 -> 3.16227766 Inexact Rounded
-pwsx065 power 10.0 0.5 -> 3.16227766 Inexact Rounded
-pwsx066 power 10.00 0.5 -> 3.16227766 Inexact Rounded
-pwsx067 power 100 0.5 -> 10.0000000 Inexact Rounded
-pwsx068 power 100.0 0.5 -> 10.0000000 Inexact Rounded
-pwsx069 power 100.00 0.5 -> 10.0000000 Inexact Rounded
-pwsx070 power 1.1000E+3 0.5 -> 33.1662479 Inexact Rounded
-pwsx071 power 1.10000E+3 0.5 -> 33.1662479 Inexact Rounded
-pwsx072 power -10.0 0.5 -> NaN Invalid_operation
-pwsx073 power -10.00 0.5 -> NaN Invalid_operation
-pwsx074 power -100.0 0.5 -> NaN Invalid_operation
-pwsx075 power -100.00 0.5 -> NaN Invalid_operation
-pwsx076 power -1.1000E+3 0.5 -> NaN Invalid_operation
-pwsx077 power -1.10000E+3 0.5 -> NaN Invalid_operation
-
--- famous squares
-pwsx080 power 1 0.5 -> 1.00000000 Inexact Rounded
-pwsx081 power 4 0.5 -> 2.00000000 Inexact Rounded
-pwsx082 power 9 0.5 -> 3.00000000 Inexact Rounded
-pwsx083 power 16 0.5 -> 4.00000000 Inexact Rounded
-pwsx084 power 25 0.5 -> 5.00000000 Inexact Rounded
-pwsx085 power 36 0.5 -> 6.00000000 Inexact Rounded
-pwsx086 power 49 0.5 -> 7.00000000 Inexact Rounded
-pwsx087 power 64 0.5 -> 8.00000000 Inexact Rounded
-pwsx088 power 81 0.5 -> 9.00000000 Inexact Rounded
-pwsx089 power 100 0.5 -> 10.0000000 Inexact Rounded
-pwsx090 power 121 0.5 -> 11.0000000 Inexact Rounded
-pwsx091 power 144 0.5 -> 12.0000000 Inexact Rounded
-pwsx092 power 169 0.5 -> 13.0000000 Inexact Rounded
-pwsx093 power 256 0.5 -> 16.0000000 Inexact Rounded
-pwsx094 power 1024 0.5 -> 32.0000000 Inexact Rounded
-pwsx095 power 4096 0.5 -> 64.0000000 Inexact Rounded
-pwsx100 power 0.01 0.5 -> 0.100000000 Inexact Rounded
-pwsx101 power 0.04 0.5 -> 0.200000000 Inexact Rounded
-pwsx102 power 0.09 0.5 -> 0.300000000 Inexact Rounded
-pwsx103 power 0.16 0.5 -> 0.400000000 Inexact Rounded
-pwsx104 power 0.25 0.5 -> 0.500000000 Inexact Rounded
-pwsx105 power 0.36 0.5 -> 0.600000000 Inexact Rounded
-pwsx106 power 0.49 0.5 -> 0.700000000 Inexact Rounded
-pwsx107 power 0.64 0.5 -> 0.800000000 Inexact Rounded
-pwsx108 power 0.81 0.5 -> 0.900000000 Inexact Rounded
-pwsx109 power 1.00 0.5 -> 1.00000000 Inexact Rounded
-pwsx110 power 1.21 0.5 -> 1.10000000 Inexact Rounded
-pwsx111 power 1.44 0.5 -> 1.20000000 Inexact Rounded
-pwsx112 power 1.69 0.5 -> 1.30000000 Inexact Rounded
-pwsx113 power 2.56 0.5 -> 1.60000000 Inexact Rounded
-pwsx114 power 10.24 0.5 -> 3.20000000 Inexact Rounded
-pwsx115 power 40.96 0.5 -> 6.40000000 Inexact Rounded
-
--- Precision 1 squareroot tests [exhaustive, plus exponent adjusts]
-rounding: half_even
-maxExponent: 999
-minexponent: -999
-precision: 1
-pwsx1201 power 0.1 0.5 -> 0.3 Inexact Rounded
-pwsx1202 power 0.01 0.5 -> 0.1 Inexact Rounded
-pwsx1203 power 1.0E-1 0.5 -> 0.3 Inexact Rounded
-pwsx1204 power 1.00E-2 0.5 -> 0.1 Inexact Rounded
-pwsx1205 power 1E-3 0.5 -> 0.03 Inexact Rounded
-pwsx1206 power 1E+1 0.5 -> 3 Inexact Rounded
-pwsx1207 power 1E+2 0.5 -> 1E+1 Inexact Rounded
-pwsx1208 power 1E+3 0.5 -> 3E+1 Inexact Rounded
-pwsx1209 power 0.2 0.5 -> 0.4 Inexact Rounded
-pwsx1210 power 0.02 0.5 -> 0.1 Inexact Rounded
-pwsx1211 power 2.0E-1 0.5 -> 0.4 Inexact Rounded
-pwsx1212 power 2.00E-2 0.5 -> 0.1 Inexact Rounded
-pwsx1213 power 2E-3 0.5 -> 0.04 Inexact Rounded
-pwsx1214 power 2E+1 0.5 -> 4 Inexact Rounded
-pwsx1215 power 2E+2 0.5 -> 1E+1 Inexact Rounded
-pwsx1216 power 2E+3 0.5 -> 4E+1 Inexact Rounded
-pwsx1217 power 0.3 0.5 -> 0.5 Inexact Rounded
-pwsx1218 power 0.03 0.5 -> 0.2 Inexact Rounded
-pwsx1219 power 3.0E-1 0.5 -> 0.5 Inexact Rounded
-pwsx1220 power 3.00E-2 0.5 -> 0.2 Inexact Rounded
-pwsx1221 power 3E-3 0.5 -> 0.05 Inexact Rounded
-pwsx1222 power 3E+1 0.5 -> 5 Inexact Rounded
-pwsx1223 power 3E+2 0.5 -> 2E+1 Inexact Rounded
-pwsx1224 power 3E+3 0.5 -> 5E+1 Inexact Rounded
-pwsx1225 power 0.4 0.5 -> 0.6 Inexact Rounded
-pwsx1226 power 0.04 0.5 -> 0.2 Inexact Rounded
-pwsx1227 power 4.0E-1 0.5 -> 0.6 Inexact Rounded
-pwsx1228 power 4.00E-2 0.5 -> 0.2 Inexact Rounded
-pwsx1229 power 4E-3 0.5 -> 0.06 Inexact Rounded
-pwsx1230 power 4E+1 0.5 -> 6 Inexact Rounded
-pwsx1231 power 4E+2 0.5 -> 2E+1 Inexact Rounded
-pwsx1232 power 4E+3 0.5 -> 6E+1 Inexact Rounded
-pwsx1233 power 0.5 0.5 -> 0.7 Inexact Rounded
-pwsx1234 power 0.05 0.5 -> 0.2 Inexact Rounded
-pwsx1235 power 5.0E-1 0.5 -> 0.7 Inexact Rounded
-pwsx1236 power 5.00E-2 0.5 -> 0.2 Inexact Rounded
-pwsx1237 power 5E-3 0.5 -> 0.07 Inexact Rounded
-pwsx1238 power 5E+1 0.5 -> 7 Inexact Rounded
-pwsx1239 power 5E+2 0.5 -> 2E+1 Inexact Rounded
-pwsx1240 power 5E+3 0.5 -> 7E+1 Inexact Rounded
-pwsx1241 power 0.6 0.5 -> 0.8 Inexact Rounded
-pwsx1242 power 0.06 0.5 -> 0.2 Inexact Rounded
-pwsx1243 power 6.0E-1 0.5 -> 0.8 Inexact Rounded
-pwsx1244 power 6.00E-2 0.5 -> 0.2 Inexact Rounded
-pwsx1245 power 6E-3 0.5 -> 0.08 Inexact Rounded
-pwsx1246 power 6E+1 0.5 -> 8 Inexact Rounded
-pwsx1247 power 6E+2 0.5 -> 2E+1 Inexact Rounded
-pwsx1248 power 6E+3 0.5 -> 8E+1 Inexact Rounded
-pwsx1249 power 0.7 0.5 -> 0.8 Inexact Rounded
-pwsx1250 power 0.07 0.5 -> 0.3 Inexact Rounded
-pwsx1251 power 7.0E-1 0.5 -> 0.8 Inexact Rounded
-pwsx1252 power 7.00E-2 0.5 -> 0.3 Inexact Rounded
-pwsx1253 power 7E-3 0.5 -> 0.08 Inexact Rounded
-pwsx1254 power 7E+1 0.5 -> 8 Inexact Rounded
-pwsx1255 power 7E+2 0.5 -> 3E+1 Inexact Rounded
-pwsx1256 power 7E+3 0.5 -> 8E+1 Inexact Rounded
-pwsx1257 power 0.8 0.5 -> 0.9 Inexact Rounded
-pwsx1258 power 0.08 0.5 -> 0.3 Inexact Rounded
-pwsx1259 power 8.0E-1 0.5 -> 0.9 Inexact Rounded
-pwsx1260 power 8.00E-2 0.5 -> 0.3 Inexact Rounded
-pwsx1261 power 8E-3 0.5 -> 0.09 Inexact Rounded
-pwsx1262 power 8E+1 0.5 -> 9 Inexact Rounded
-pwsx1263 power 8E+2 0.5 -> 3E+1 Inexact Rounded
-pwsx1264 power 8E+3 0.5 -> 9E+1 Inexact Rounded
-pwsx1265 power 0.9 0.5 -> 0.9 Inexact Rounded
-pwsx1266 power 0.09 0.5 -> 0.3 Inexact Rounded
-pwsx1267 power 9.0E-1 0.5 -> 0.9 Inexact Rounded
-pwsx1268 power 9.00E-2 0.5 -> 0.3 Inexact Rounded
-pwsx1269 power 9E-3 0.5 -> 0.09 Inexact Rounded
-pwsx1270 power 9E+1 0.5 -> 9 Inexact Rounded
-pwsx1271 power 9E+2 0.5 -> 3E+1 Inexact Rounded
-pwsx1272 power 9E+3 0.5 -> 9E+1 Inexact Rounded
-
--- Precision 2 squareroot tests [exhaustive, plus exponent adjusts]
-rounding: half_even
-maxExponent: 999
-minexponent: -999
-precision: 2
-pwsx2201 power 0.1 0.5 -> 0.32 Inexact Rounded
-pwsx2202 power 0.01 0.5 -> 0.10 Inexact Rounded
-pwsx2203 power 1.0E-1 0.5 -> 0.32 Inexact Rounded
-pwsx2204 power 1.00E-2 0.5 -> 0.10 Inexact Rounded
-pwsx2205 power 1E-3 0.5 -> 0.032 Inexact Rounded
-pwsx2206 power 1E+1 0.5 -> 3.2 Inexact Rounded
-pwsx2207 power 1E+2 0.5 -> 10 Inexact Rounded
-pwsx2208 power 1E+3 0.5 -> 32 Inexact Rounded
-pwsx2209 power 0.2 0.5 -> 0.45 Inexact Rounded
-pwsx2210 power 0.02 0.5 -> 0.14 Inexact Rounded
-pwsx2211 power 2.0E-1 0.5 -> 0.45 Inexact Rounded
-pwsx2212 power 2.00E-2 0.5 -> 0.14 Inexact Rounded
-pwsx2213 power 2E-3 0.5 -> 0.045 Inexact Rounded
-pwsx2214 power 2E+1 0.5 -> 4.5 Inexact Rounded
-pwsx2215 power 2E+2 0.5 -> 14 Inexact Rounded
-pwsx2216 power 2E+3 0.5 -> 45 Inexact Rounded
-pwsx2217 power 0.3 0.5 -> 0.55 Inexact Rounded
-pwsx2218 power 0.03 0.5 -> 0.17 Inexact Rounded
-pwsx2219 power 3.0E-1 0.5 -> 0.55 Inexact Rounded
-pwsx2220 power 3.00E-2 0.5 -> 0.17 Inexact Rounded
-pwsx2221 power 3E-3 0.5 -> 0.055 Inexact Rounded
-pwsx2222 power 3E+1 0.5 -> 5.5 Inexact Rounded
-pwsx2223 power 3E+2 0.5 -> 17 Inexact Rounded
-pwsx2224 power 3E+3 0.5 -> 55 Inexact Rounded
-pwsx2225 power 0.4 0.5 -> 0.63 Inexact Rounded
-pwsx2226 power 0.04 0.5 -> 0.20 Inexact Rounded
-pwsx2227 power 4.0E-1 0.5 -> 0.63 Inexact Rounded
-pwsx2228 power 4.00E-2 0.5 -> 0.20 Inexact Rounded
-pwsx2229 power 4E-3 0.5 -> 0.063 Inexact Rounded
-pwsx2230 power 4E+1 0.5 -> 6.3 Inexact Rounded
-pwsx2231 power 4E+2 0.5 -> 20 Inexact Rounded
-pwsx2232 power 4E+3 0.5 -> 63 Inexact Rounded
-pwsx2233 power 0.5 0.5 -> 0.71 Inexact Rounded
-pwsx2234 power 0.05 0.5 -> 0.22 Inexact Rounded
-pwsx2235 power 5.0E-1 0.5 -> 0.71 Inexact Rounded
-pwsx2236 power 5.00E-2 0.5 -> 0.22 Inexact Rounded
-pwsx2237 power 5E-3 0.5 -> 0.071 Inexact Rounded
-pwsx2238 power 5E+1 0.5 -> 7.1 Inexact Rounded
-pwsx2239 power 5E+2 0.5 -> 22 Inexact Rounded
-pwsx2240 power 5E+3 0.5 -> 71 Inexact Rounded
-pwsx2241 power 0.6 0.5 -> 0.77 Inexact Rounded
-pwsx2242 power 0.06 0.5 -> 0.24 Inexact Rounded
-pwsx2243 power 6.0E-1 0.5 -> 0.77 Inexact Rounded
-pwsx2244 power 6.00E-2 0.5 -> 0.24 Inexact Rounded
-pwsx2245 power 6E-3 0.5 -> 0.077 Inexact Rounded
-pwsx2246 power 6E+1 0.5 -> 7.7 Inexact Rounded
-pwsx2247 power 6E+2 0.5 -> 24 Inexact Rounded
-pwsx2248 power 6E+3 0.5 -> 77 Inexact Rounded
-pwsx2249 power 0.7 0.5 -> 0.84 Inexact Rounded
-pwsx2250 power 0.07 0.5 -> 0.26 Inexact Rounded
-pwsx2251 power 7.0E-1 0.5 -> 0.84 Inexact Rounded
-pwsx2252 power 7.00E-2 0.5 -> 0.26 Inexact Rounded
-pwsx2253 power 7E-3 0.5 -> 0.084 Inexact Rounded
-pwsx2254 power 7E+1 0.5 -> 8.4 Inexact Rounded
-pwsx2255 power 7E+2 0.5 -> 26 Inexact Rounded
-pwsx2256 power 7E+3 0.5 -> 84 Inexact Rounded
-pwsx2257 power 0.8 0.5 -> 0.89 Inexact Rounded
-pwsx2258 power 0.08 0.5 -> 0.28 Inexact Rounded
-pwsx2259 power 8.0E-1 0.5 -> 0.89 Inexact Rounded
-pwsx2260 power 8.00E-2 0.5 -> 0.28 Inexact Rounded
-pwsx2261 power 8E-3 0.5 -> 0.089 Inexact Rounded
-pwsx2262 power 8E+1 0.5 -> 8.9 Inexact Rounded
-pwsx2263 power 8E+2 0.5 -> 28 Inexact Rounded
-pwsx2264 power 8E+3 0.5 -> 89 Inexact Rounded
-pwsx2265 power 0.9 0.5 -> 0.95 Inexact Rounded
-pwsx2266 power 0.09 0.5 -> 0.30 Inexact Rounded
-pwsx2267 power 9.0E-1 0.5 -> 0.95 Inexact Rounded
-pwsx2268 power 9.00E-2 0.5 -> 0.30 Inexact Rounded
-pwsx2269 power 9E-3 0.5 -> 0.095 Inexact Rounded
-pwsx2270 power 9E+1 0.5 -> 9.5 Inexact Rounded
-pwsx2271 power 9E+2 0.5 -> 30 Inexact Rounded
-pwsx2272 power 9E+3 0.5 -> 95 Inexact Rounded
-pwsx2273 power 0.10 0.5 -> 0.32 Inexact Rounded
-pwsx2274 power 0.010 0.5 -> 0.10 Inexact Rounded
-pwsx2275 power 10.0E-1 0.5 -> 1.0 Inexact Rounded
-pwsx2276 power 10.00E-2 0.5 -> 0.32 Inexact Rounded
-pwsx2277 power 10E-3 0.5 -> 0.10 Inexact Rounded
-pwsx2278 power 10E+1 0.5 -> 10 Inexact Rounded
-pwsx2279 power 10E+2 0.5 -> 32 Inexact Rounded
-pwsx2280 power 10E+3 0.5 -> 1.0E+2 Inexact Rounded
-pwsx2281 power 0.11 0.5 -> 0.33 Inexact Rounded
-pwsx2282 power 0.011 0.5 -> 0.10 Inexact Rounded
-pwsx2283 power 11.0E-1 0.5 -> 1.0 Inexact Rounded
-pwsx2284 power 11.00E-2 0.5 -> 0.33 Inexact Rounded
-pwsx2285 power 11E-3 0.5 -> 0.10 Inexact Rounded
-pwsx2286 power 11E+1 0.5 -> 10 Inexact Rounded
-pwsx2287 power 11E+2 0.5 -> 33 Inexact Rounded
-pwsx2288 power 11E+3 0.5 -> 1.0E+2 Inexact Rounded
-pwsx2289 power 0.12 0.5 -> 0.35 Inexact Rounded
-pwsx2290 power 0.012 0.5 -> 0.11 Inexact Rounded
-pwsx2291 power 12.0E-1 0.5 -> 1.1 Inexact Rounded
-pwsx2292 power 12.00E-2 0.5 -> 0.35 Inexact Rounded
-pwsx2293 power 12E-3 0.5 -> 0.11 Inexact Rounded
-pwsx2294 power 12E+1 0.5 -> 11 Inexact Rounded
-pwsx2295 power 12E+2 0.5 -> 35 Inexact Rounded
-pwsx2296 power 12E+3 0.5 -> 1.1E+2 Inexact Rounded
-pwsx2297 power 0.13 0.5 -> 0.36 Inexact Rounded
-pwsx2298 power 0.013 0.5 -> 0.11 Inexact Rounded
-pwsx2299 power 13.0E-1 0.5 -> 1.1 Inexact Rounded
-pwsx2300 power 13.00E-2 0.5 -> 0.36 Inexact Rounded
-pwsx2301 power 13E-3 0.5 -> 0.11 Inexact Rounded
-pwsx2302 power 13E+1 0.5 -> 11 Inexact Rounded
-pwsx2303 power 13E+2 0.5 -> 36 Inexact Rounded
-pwsx2304 power 13E+3 0.5 -> 1.1E+2 Inexact Rounded
-pwsx2305 power 0.14 0.5 -> 0.37 Inexact Rounded
-pwsx2306 power 0.014 0.5 -> 0.12 Inexact Rounded
-pwsx2307 power 14.0E-1 0.5 -> 1.2 Inexact Rounded
-pwsx2308 power 14.00E-2 0.5 -> 0.37 Inexact Rounded
-pwsx2309 power 14E-3 0.5 -> 0.12 Inexact Rounded
-pwsx2310 power 14E+1 0.5 -> 12 Inexact Rounded
-pwsx2311 power 14E+2 0.5 -> 37 Inexact Rounded
-pwsx2312 power 14E+3 0.5 -> 1.2E+2 Inexact Rounded
-pwsx2313 power 0.15 0.5 -> 0.39 Inexact Rounded
-pwsx2314 power 0.015 0.5 -> 0.12 Inexact Rounded
-pwsx2315 power 15.0E-1 0.5 -> 1.2 Inexact Rounded
-pwsx2316 power 15.00E-2 0.5 -> 0.39 Inexact Rounded
-pwsx2317 power 15E-3 0.5 -> 0.12 Inexact Rounded
-pwsx2318 power 15E+1 0.5 -> 12 Inexact Rounded
-pwsx2319 power 15E+2 0.5 -> 39 Inexact Rounded
-pwsx2320 power 15E+3 0.5 -> 1.2E+2 Inexact Rounded
-pwsx2321 power 0.16 0.5 -> 0.40 Inexact Rounded
-pwsx2322 power 0.016 0.5 -> 0.13 Inexact Rounded
-pwsx2323 power 16.0E-1 0.5 -> 1.3 Inexact Rounded
-pwsx2324 power 16.00E-2 0.5 -> 0.40 Inexact Rounded
-pwsx2325 power 16E-3 0.5 -> 0.13 Inexact Rounded
-pwsx2326 power 16E+1 0.5 -> 13 Inexact Rounded
-pwsx2327 power 16E+2 0.5 -> 40 Inexact Rounded
-pwsx2328 power 16E+3 0.5 -> 1.3E+2 Inexact Rounded
-pwsx2329 power 0.17 0.5 -> 0.41 Inexact Rounded
-pwsx2330 power 0.017 0.5 -> 0.13 Inexact Rounded
-pwsx2331 power 17.0E-1 0.5 -> 1.3 Inexact Rounded
-pwsx2332 power 17.00E-2 0.5 -> 0.41 Inexact Rounded
-pwsx2333 power 17E-3 0.5 -> 0.13 Inexact Rounded
-pwsx2334 power 17E+1 0.5 -> 13 Inexact Rounded
-pwsx2335 power 17E+2 0.5 -> 41 Inexact Rounded
-pwsx2336 power 17E+3 0.5 -> 1.3E+2 Inexact Rounded
-pwsx2337 power 0.18 0.5 -> 0.42 Inexact Rounded
-pwsx2338 power 0.018 0.5 -> 0.13 Inexact Rounded
-pwsx2339 power 18.0E-1 0.5 -> 1.3 Inexact Rounded
-pwsx2340 power 18.00E-2 0.5 -> 0.42 Inexact Rounded
-pwsx2341 power 18E-3 0.5 -> 0.13 Inexact Rounded
-pwsx2342 power 18E+1 0.5 -> 13 Inexact Rounded
-pwsx2343 power 18E+2 0.5 -> 42 Inexact Rounded
-pwsx2344 power 18E+3 0.5 -> 1.3E+2 Inexact Rounded
-pwsx2345 power 0.19 0.5 -> 0.44 Inexact Rounded
-pwsx2346 power 0.019 0.5 -> 0.14 Inexact Rounded
-pwsx2347 power 19.0E-1 0.5 -> 1.4 Inexact Rounded
-pwsx2348 power 19.00E-2 0.5 -> 0.44 Inexact Rounded
-pwsx2349 power 19E-3 0.5 -> 0.14 Inexact Rounded
-pwsx2350 power 19E+1 0.5 -> 14 Inexact Rounded
-pwsx2351 power 19E+2 0.5 -> 44 Inexact Rounded
-pwsx2352 power 19E+3 0.5 -> 1.4E+2 Inexact Rounded
-pwsx2353 power 0.20 0.5 -> 0.45 Inexact Rounded
-pwsx2354 power 0.020 0.5 -> 0.14 Inexact Rounded
-pwsx2355 power 20.0E-1 0.5 -> 1.4 Inexact Rounded
-pwsx2356 power 20.00E-2 0.5 -> 0.45 Inexact Rounded
-pwsx2357 power 20E-3 0.5 -> 0.14 Inexact Rounded
-pwsx2358 power 20E+1 0.5 -> 14 Inexact Rounded
-pwsx2359 power 20E+2 0.5 -> 45 Inexact Rounded
-pwsx2360 power 20E+3 0.5 -> 1.4E+2 Inexact Rounded
-pwsx2361 power 0.21 0.5 -> 0.46 Inexact Rounded
-pwsx2362 power 0.021 0.5 -> 0.14 Inexact Rounded
-pwsx2363 power 21.0E-1 0.5 -> 1.4 Inexact Rounded
-pwsx2364 power 21.00E-2 0.5 -> 0.46 Inexact Rounded
-pwsx2365 power 21E-3 0.5 -> 0.14 Inexact Rounded
-pwsx2366 power 21E+1 0.5 -> 14 Inexact Rounded
-pwsx2367 power 21E+2 0.5 -> 46 Inexact Rounded
-pwsx2368 power 21E+3 0.5 -> 1.4E+2 Inexact Rounded
-pwsx2369 power 0.22 0.5 -> 0.47 Inexact Rounded
-pwsx2370 power 0.022 0.5 -> 0.15 Inexact Rounded
-pwsx2371 power 22.0E-1 0.5 -> 1.5 Inexact Rounded
-pwsx2372 power 22.00E-2 0.5 -> 0.47 Inexact Rounded
-pwsx2373 power 22E-3 0.5 -> 0.15 Inexact Rounded
-pwsx2374 power 22E+1 0.5 -> 15 Inexact Rounded
-pwsx2375 power 22E+2 0.5 -> 47 Inexact Rounded
-pwsx2376 power 22E+3 0.5 -> 1.5E+2 Inexact Rounded
-pwsx2377 power 0.23 0.5 -> 0.48 Inexact Rounded
-pwsx2378 power 0.023 0.5 -> 0.15 Inexact Rounded
-pwsx2379 power 23.0E-1 0.5 -> 1.5 Inexact Rounded
-pwsx2380 power 23.00E-2 0.5 -> 0.48 Inexact Rounded
-pwsx2381 power 23E-3 0.5 -> 0.15 Inexact Rounded
-pwsx2382 power 23E+1 0.5 -> 15 Inexact Rounded
-pwsx2383 power 23E+2 0.5 -> 48 Inexact Rounded
-pwsx2384 power 23E+3 0.5 -> 1.5E+2 Inexact Rounded
-pwsx2385 power 0.24 0.5 -> 0.49 Inexact Rounded
-pwsx2386 power 0.024 0.5 -> 0.15 Inexact Rounded
-pwsx2387 power 24.0E-1 0.5 -> 1.5 Inexact Rounded
-pwsx2388 power 24.00E-2 0.5 -> 0.49 Inexact Rounded
-pwsx2389 power 24E-3 0.5 -> 0.15 Inexact Rounded
-pwsx2390 power 24E+1 0.5 -> 15 Inexact Rounded
-pwsx2391 power 24E+2 0.5 -> 49 Inexact Rounded
-pwsx2392 power 24E+3 0.5 -> 1.5E+2 Inexact Rounded
-pwsx2393 power 0.25 0.5 -> 0.50 Inexact Rounded
-pwsx2394 power 0.025 0.5 -> 0.16 Inexact Rounded
-pwsx2395 power 25.0E-1 0.5 -> 1.6 Inexact Rounded
-pwsx2396 power 25.00E-2 0.5 -> 0.50 Inexact Rounded
-pwsx2397 power 25E-3 0.5 -> 0.16 Inexact Rounded
-pwsx2398 power 25E+1 0.5 -> 16 Inexact Rounded
-pwsx2399 power 25E+2 0.5 -> 50 Inexact Rounded
-pwsx2400 power 25E+3 0.5 -> 1.6E+2 Inexact Rounded
-pwsx2401 power 0.26 0.5 -> 0.51 Inexact Rounded
-pwsx2402 power 0.026 0.5 -> 0.16 Inexact Rounded
-pwsx2403 power 26.0E-1 0.5 -> 1.6 Inexact Rounded
-pwsx2404 power 26.00E-2 0.5 -> 0.51 Inexact Rounded
-pwsx2405 power 26E-3 0.5 -> 0.16 Inexact Rounded
-pwsx2406 power 26E+1 0.5 -> 16 Inexact Rounded
-pwsx2407 power 26E+2 0.5 -> 51 Inexact Rounded
-pwsx2408 power 26E+3 0.5 -> 1.6E+2 Inexact Rounded
-pwsx2409 power 0.27 0.5 -> 0.52 Inexact Rounded
-pwsx2410 power 0.027 0.5 -> 0.16 Inexact Rounded
-pwsx2411 power 27.0E-1 0.5 -> 1.6 Inexact Rounded
-pwsx2412 power 27.00E-2 0.5 -> 0.52 Inexact Rounded
-pwsx2413 power 27E-3 0.5 -> 0.16 Inexact Rounded
-pwsx2414 power 27E+1 0.5 -> 16 Inexact Rounded
-pwsx2415 power 27E+2 0.5 -> 52 Inexact Rounded
-pwsx2416 power 27E+3 0.5 -> 1.6E+2 Inexact Rounded
-pwsx2417 power 0.28 0.5 -> 0.53 Inexact Rounded
-pwsx2418 power 0.028 0.5 -> 0.17 Inexact Rounded
-pwsx2419 power 28.0E-1 0.5 -> 1.7 Inexact Rounded
-pwsx2420 power 28.00E-2 0.5 -> 0.53 Inexact Rounded
-pwsx2421 power 28E-3 0.5 -> 0.17 Inexact Rounded
-pwsx2422 power 28E+1 0.5 -> 17 Inexact Rounded
-pwsx2423 power 28E+2 0.5 -> 53 Inexact Rounded
-pwsx2424 power 28E+3 0.5 -> 1.7E+2 Inexact Rounded
-pwsx2425 power 0.29 0.5 -> 0.54 Inexact Rounded
-pwsx2426 power 0.029 0.5 -> 0.17 Inexact Rounded
-pwsx2427 power 29.0E-1 0.5 -> 1.7 Inexact Rounded
-pwsx2428 power 29.00E-2 0.5 -> 0.54 Inexact Rounded
-pwsx2429 power 29E-3 0.5 -> 0.17 Inexact Rounded
-pwsx2430 power 29E+1 0.5 -> 17 Inexact Rounded
-pwsx2431 power 29E+2 0.5 -> 54 Inexact Rounded
-pwsx2432 power 29E+3 0.5 -> 1.7E+2 Inexact Rounded
-pwsx2433 power 0.30 0.5 -> 0.55 Inexact Rounded
-pwsx2434 power 0.030 0.5 -> 0.17 Inexact Rounded
-pwsx2435 power 30.0E-1 0.5 -> 1.7 Inexact Rounded
-pwsx2436 power 30.00E-2 0.5 -> 0.55 Inexact Rounded
-pwsx2437 power 30E-3 0.5 -> 0.17 Inexact Rounded
-pwsx2438 power 30E+1 0.5 -> 17 Inexact Rounded
-pwsx2439 power 30E+2 0.5 -> 55 Inexact Rounded
-pwsx2440 power 30E+3 0.5 -> 1.7E+2 Inexact Rounded
-pwsx2441 power 0.31 0.5 -> 0.56 Inexact Rounded
-pwsx2442 power 0.031 0.5 -> 0.18 Inexact Rounded
-pwsx2443 power 31.0E-1 0.5 -> 1.8 Inexact Rounded
-pwsx2444 power 31.00E-2 0.5 -> 0.56 Inexact Rounded
-pwsx2445 power 31E-3 0.5 -> 0.18 Inexact Rounded
-pwsx2446 power 31E+1 0.5 -> 18 Inexact Rounded
-pwsx2447 power 31E+2 0.5 -> 56 Inexact Rounded
-pwsx2448 power 31E+3 0.5 -> 1.8E+2 Inexact Rounded
-pwsx2449 power 0.32 0.5 -> 0.57 Inexact Rounded
-pwsx2450 power 0.032 0.5 -> 0.18 Inexact Rounded
-pwsx2451 power 32.0E-1 0.5 -> 1.8 Inexact Rounded
-pwsx2452 power 32.00E-2 0.5 -> 0.57 Inexact Rounded
-pwsx2453 power 32E-3 0.5 -> 0.18 Inexact Rounded
-pwsx2454 power 32E+1 0.5 -> 18 Inexact Rounded
-pwsx2455 power 32E+2 0.5 -> 57 Inexact Rounded
-pwsx2456 power 32E+3 0.5 -> 1.8E+2 Inexact Rounded
-pwsx2457 power 0.33 0.5 -> 0.57 Inexact Rounded
-pwsx2458 power 0.033 0.5 -> 0.18 Inexact Rounded
-pwsx2459 power 33.0E-1 0.5 -> 1.8 Inexact Rounded
-pwsx2460 power 33.00E-2 0.5 -> 0.57 Inexact Rounded
-pwsx2461 power 33E-3 0.5 -> 0.18 Inexact Rounded
-pwsx2462 power 33E+1 0.5 -> 18 Inexact Rounded
-pwsx2463 power 33E+2 0.5 -> 57 Inexact Rounded
-pwsx2464 power 33E+3 0.5 -> 1.8E+2 Inexact Rounded
-pwsx2465 power 0.34 0.5 -> 0.58 Inexact Rounded
-pwsx2466 power 0.034 0.5 -> 0.18 Inexact Rounded
-pwsx2467 power 34.0E-1 0.5 -> 1.8 Inexact Rounded
-pwsx2468 power 34.00E-2 0.5 -> 0.58 Inexact Rounded
-pwsx2469 power 34E-3 0.5 -> 0.18 Inexact Rounded
-pwsx2470 power 34E+1 0.5 -> 18 Inexact Rounded
-pwsx2471 power 34E+2 0.5 -> 58 Inexact Rounded
-pwsx2472 power 34E+3 0.5 -> 1.8E+2 Inexact Rounded
-pwsx2473 power 0.35 0.5 -> 0.59 Inexact Rounded
-pwsx2474 power 0.035 0.5 -> 0.19 Inexact Rounded
-pwsx2475 power 35.0E-1 0.5 -> 1.9 Inexact Rounded
-pwsx2476 power 35.00E-2 0.5 -> 0.59 Inexact Rounded
-pwsx2477 power 35E-3 0.5 -> 0.19 Inexact Rounded
-pwsx2478 power 35E+1 0.5 -> 19 Inexact Rounded
-pwsx2479 power 35E+2 0.5 -> 59 Inexact Rounded
-pwsx2480 power 35E+3 0.5 -> 1.9E+2 Inexact Rounded
-pwsx2481 power 0.36 0.5 -> 0.60 Inexact Rounded
-pwsx2482 power 0.036 0.5 -> 0.19 Inexact Rounded
-pwsx2483 power 36.0E-1 0.5 -> 1.9 Inexact Rounded
-pwsx2484 power 36.00E-2 0.5 -> 0.60 Inexact Rounded
-pwsx2485 power 36E-3 0.5 -> 0.19 Inexact Rounded
-pwsx2486 power 36E+1 0.5 -> 19 Inexact Rounded
-pwsx2487 power 36E+2 0.5 -> 60 Inexact Rounded
-pwsx2488 power 36E+3 0.5 -> 1.9E+2 Inexact Rounded
-pwsx2489 power 0.37 0.5 -> 0.61 Inexact Rounded
-pwsx2490 power 0.037 0.5 -> 0.19 Inexact Rounded
-pwsx2491 power 37.0E-1 0.5 -> 1.9 Inexact Rounded
-pwsx2492 power 37.00E-2 0.5 -> 0.61 Inexact Rounded
-pwsx2493 power 37E-3 0.5 -> 0.19 Inexact Rounded
-pwsx2494 power 37E+1 0.5 -> 19 Inexact Rounded
-pwsx2495 power 37E+2 0.5 -> 61 Inexact Rounded
-pwsx2496 power 37E+3 0.5 -> 1.9E+2 Inexact Rounded
-pwsx2497 power 0.38 0.5 -> 0.62 Inexact Rounded
-pwsx2498 power 0.038 0.5 -> 0.19 Inexact Rounded
-pwsx2499 power 38.0E-1 0.5 -> 1.9 Inexact Rounded
-pwsx2500 power 38.00E-2 0.5 -> 0.62 Inexact Rounded
-pwsx2501 power 38E-3 0.5 -> 0.19 Inexact Rounded
-pwsx2502 power 38E+1 0.5 -> 19 Inexact Rounded
-pwsx2503 power 38E+2 0.5 -> 62 Inexact Rounded
-pwsx2504 power 38E+3 0.5 -> 1.9E+2 Inexact Rounded
-pwsx2505 power 0.39 0.5 -> 0.62 Inexact Rounded
-pwsx2506 power 0.039 0.5 -> 0.20 Inexact Rounded
-pwsx2507 power 39.0E-1 0.5 -> 2.0 Inexact Rounded
-pwsx2508 power 39.00E-2 0.5 -> 0.62 Inexact Rounded
-pwsx2509 power 39E-3 0.5 -> 0.20 Inexact Rounded
-pwsx2510 power 39E+1 0.5 -> 20 Inexact Rounded
-pwsx2511 power 39E+2 0.5 -> 62 Inexact Rounded
-pwsx2512 power 39E+3 0.5 -> 2.0E+2 Inexact Rounded
-pwsx2513 power 0.40 0.5 -> 0.63 Inexact Rounded
-pwsx2514 power 0.040 0.5 -> 0.20 Inexact Rounded
-pwsx2515 power 40.0E-1 0.5 -> 2.0 Inexact Rounded
-pwsx2516 power 40.00E-2 0.5 -> 0.63 Inexact Rounded
-pwsx2517 power 40E-3 0.5 -> 0.20 Inexact Rounded
-pwsx2518 power 40E+1 0.5 -> 20 Inexact Rounded
-pwsx2519 power 40E+2 0.5 -> 63 Inexact Rounded
-pwsx2520 power 40E+3 0.5 -> 2.0E+2 Inexact Rounded
-pwsx2521 power 0.41 0.5 -> 0.64 Inexact Rounded
-pwsx2522 power 0.041 0.5 -> 0.20 Inexact Rounded
-pwsx2523 power 41.0E-1 0.5 -> 2.0 Inexact Rounded
-pwsx2524 power 41.00E-2 0.5 -> 0.64 Inexact Rounded
-pwsx2525 power 41E-3 0.5 -> 0.20 Inexact Rounded
-pwsx2526 power 41E+1 0.5 -> 20 Inexact Rounded
-pwsx2527 power 41E+2 0.5 -> 64 Inexact Rounded
-pwsx2528 power 41E+3 0.5 -> 2.0E+2 Inexact Rounded
-pwsx2529 power 0.42 0.5 -> 0.65 Inexact Rounded
-pwsx2530 power 0.042 0.5 -> 0.20 Inexact Rounded
-pwsx2531 power 42.0E-1 0.5 -> 2.0 Inexact Rounded
-pwsx2532 power 42.00E-2 0.5 -> 0.65 Inexact Rounded
-pwsx2533 power 42E-3 0.5 -> 0.20 Inexact Rounded
-pwsx2534 power 42E+1 0.5 -> 20 Inexact Rounded
-pwsx2535 power 42E+2 0.5 -> 65 Inexact Rounded
-pwsx2536 power 42E+3 0.5 -> 2.0E+2 Inexact Rounded
-pwsx2537 power 0.43 0.5 -> 0.66 Inexact Rounded
-pwsx2538 power 0.043 0.5 -> 0.21 Inexact Rounded
-pwsx2539 power 43.0E-1 0.5 -> 2.1 Inexact Rounded
-pwsx2540 power 43.00E-2 0.5 -> 0.66 Inexact Rounded
-pwsx2541 power 43E-3 0.5 -> 0.21 Inexact Rounded
-pwsx2542 power 43E+1 0.5 -> 21 Inexact Rounded
-pwsx2543 power 43E+2 0.5 -> 66 Inexact Rounded
-pwsx2544 power 43E+3 0.5 -> 2.1E+2 Inexact Rounded
-pwsx2545 power 0.44 0.5 -> 0.66 Inexact Rounded
-pwsx2546 power 0.044 0.5 -> 0.21 Inexact Rounded
-pwsx2547 power 44.0E-1 0.5 -> 2.1 Inexact Rounded
-pwsx2548 power 44.00E-2 0.5 -> 0.66 Inexact Rounded
-pwsx2549 power 44E-3 0.5 -> 0.21 Inexact Rounded
-pwsx2550 power 44E+1 0.5 -> 21 Inexact Rounded
-pwsx2551 power 44E+2 0.5 -> 66 Inexact Rounded
-pwsx2552 power 44E+3 0.5 -> 2.1E+2 Inexact Rounded
-pwsx2553 power 0.45 0.5 -> 0.67 Inexact Rounded
-pwsx2554 power 0.045 0.5 -> 0.21 Inexact Rounded
-pwsx2555 power 45.0E-1 0.5 -> 2.1 Inexact Rounded
-pwsx2556 power 45.00E-2 0.5 -> 0.67 Inexact Rounded
-pwsx2557 power 45E-3 0.5 -> 0.21 Inexact Rounded
-pwsx2558 power 45E+1 0.5 -> 21 Inexact Rounded
-pwsx2559 power 45E+2 0.5 -> 67 Inexact Rounded
-pwsx2560 power 45E+3 0.5 -> 2.1E+2 Inexact Rounded
-pwsx2561 power 0.46 0.5 -> 0.68 Inexact Rounded
-pwsx2562 power 0.046 0.5 -> 0.21 Inexact Rounded
-pwsx2563 power 46.0E-1 0.5 -> 2.1 Inexact Rounded
-pwsx2564 power 46.00E-2 0.5 -> 0.68 Inexact Rounded
-pwsx2565 power 46E-3 0.5 -> 0.21 Inexact Rounded
-pwsx2566 power 46E+1 0.5 -> 21 Inexact Rounded
-pwsx2567 power 46E+2 0.5 -> 68 Inexact Rounded
-pwsx2568 power 46E+3 0.5 -> 2.1E+2 Inexact Rounded
-pwsx2569 power 0.47 0.5 -> 0.69 Inexact Rounded
-pwsx2570 power 0.047 0.5 -> 0.22 Inexact Rounded
-pwsx2571 power 47.0E-1 0.5 -> 2.2 Inexact Rounded
-pwsx2572 power 47.00E-2 0.5 -> 0.69 Inexact Rounded
-pwsx2573 power 47E-3 0.5 -> 0.22 Inexact Rounded
-pwsx2574 power 47E+1 0.5 -> 22 Inexact Rounded
-pwsx2575 power 47E+2 0.5 -> 69 Inexact Rounded
-pwsx2576 power 47E+3 0.5 -> 2.2E+2 Inexact Rounded
-pwsx2577 power 0.48 0.5 -> 0.69 Inexact Rounded
-pwsx2578 power 0.048 0.5 -> 0.22 Inexact Rounded
-pwsx2579 power 48.0E-1 0.5 -> 2.2 Inexact Rounded
-pwsx2580 power 48.00E-2 0.5 -> 0.69 Inexact Rounded
-pwsx2581 power 48E-3 0.5 -> 0.22 Inexact Rounded
-pwsx2582 power 48E+1 0.5 -> 22 Inexact Rounded
-pwsx2583 power 48E+2 0.5 -> 69 Inexact Rounded
-pwsx2584 power 48E+3 0.5 -> 2.2E+2 Inexact Rounded
-pwsx2585 power 0.49 0.5 -> 0.70 Inexact Rounded
-pwsx2586 power 0.049 0.5 -> 0.22 Inexact Rounded
-pwsx2587 power 49.0E-1 0.5 -> 2.2 Inexact Rounded
-pwsx2588 power 49.00E-2 0.5 -> 0.70 Inexact Rounded
-pwsx2589 power 49E-3 0.5 -> 0.22 Inexact Rounded
-pwsx2590 power 49E+1 0.5 -> 22 Inexact Rounded
-pwsx2591 power 49E+2 0.5 -> 70 Inexact Rounded
-pwsx2592 power 49E+3 0.5 -> 2.2E+2 Inexact Rounded
-pwsx2593 power 0.50 0.5 -> 0.71 Inexact Rounded
-pwsx2594 power 0.050 0.5 -> 0.22 Inexact Rounded
-pwsx2595 power 50.0E-1 0.5 -> 2.2 Inexact Rounded
-pwsx2596 power 50.00E-2 0.5 -> 0.71 Inexact Rounded
-pwsx2597 power 50E-3 0.5 -> 0.22 Inexact Rounded
-pwsx2598 power 50E+1 0.5 -> 22 Inexact Rounded
-pwsx2599 power 50E+2 0.5 -> 71 Inexact Rounded
-pwsx2600 power 50E+3 0.5 -> 2.2E+2 Inexact Rounded
-pwsx2601 power 0.51 0.5 -> 0.71 Inexact Rounded
-pwsx2602 power 0.051 0.5 -> 0.23 Inexact Rounded
-pwsx2603 power 51.0E-1 0.5 -> 2.3 Inexact Rounded
-pwsx2604 power 51.00E-2 0.5 -> 0.71 Inexact Rounded
-pwsx2605 power 51E-3 0.5 -> 0.23 Inexact Rounded
-pwsx2606 power 51E+1 0.5 -> 23 Inexact Rounded
-pwsx2607 power 51E+2 0.5 -> 71 Inexact Rounded
-pwsx2608 power 51E+3 0.5 -> 2.3E+2 Inexact Rounded
-pwsx2609 power 0.52 0.5 -> 0.72 Inexact Rounded
-pwsx2610 power 0.052 0.5 -> 0.23 Inexact Rounded
-pwsx2611 power 52.0E-1 0.5 -> 2.3 Inexact Rounded
-pwsx2612 power 52.00E-2 0.5 -> 0.72 Inexact Rounded
-pwsx2613 power 52E-3 0.5 -> 0.23 Inexact Rounded
-pwsx2614 power 52E+1 0.5 -> 23 Inexact Rounded
-pwsx2615 power 52E+2 0.5 -> 72 Inexact Rounded
-pwsx2616 power 52E+3 0.5 -> 2.3E+2 Inexact Rounded
-pwsx2617 power 0.53 0.5 -> 0.73 Inexact Rounded
-pwsx2618 power 0.053 0.5 -> 0.23 Inexact Rounded
-pwsx2619 power 53.0E-1 0.5 -> 2.3 Inexact Rounded
-pwsx2620 power 53.00E-2 0.5 -> 0.73 Inexact Rounded
-pwsx2621 power 53E-3 0.5 -> 0.23 Inexact Rounded
-pwsx2622 power 53E+1 0.5 -> 23 Inexact Rounded
-pwsx2623 power 53E+2 0.5 -> 73 Inexact Rounded
-pwsx2624 power 53E+3 0.5 -> 2.3E+2 Inexact Rounded
-pwsx2625 power 0.54 0.5 -> 0.73 Inexact Rounded
-pwsx2626 power 0.054 0.5 -> 0.23 Inexact Rounded
-pwsx2627 power 54.0E-1 0.5 -> 2.3 Inexact Rounded
-pwsx2628 power 54.00E-2 0.5 -> 0.73 Inexact Rounded
-pwsx2629 power 54E-3 0.5 -> 0.23 Inexact Rounded
-pwsx2630 power 54E+1 0.5 -> 23 Inexact Rounded
-pwsx2631 power 54E+2 0.5 -> 73 Inexact Rounded
-pwsx2632 power 54E+3 0.5 -> 2.3E+2 Inexact Rounded
-pwsx2633 power 0.55 0.5 -> 0.74 Inexact Rounded
-pwsx2634 power 0.055 0.5 -> 0.23 Inexact Rounded
-pwsx2635 power 55.0E-1 0.5 -> 2.3 Inexact Rounded
-pwsx2636 power 55.00E-2 0.5 -> 0.74 Inexact Rounded
-pwsx2637 power 55E-3 0.5 -> 0.23 Inexact Rounded
-pwsx2638 power 55E+1 0.5 -> 23 Inexact Rounded
-pwsx2639 power 55E+2 0.5 -> 74 Inexact Rounded
-pwsx2640 power 55E+3 0.5 -> 2.3E+2 Inexact Rounded
-pwsx2641 power 0.56 0.5 -> 0.75 Inexact Rounded
-pwsx2642 power 0.056 0.5 -> 0.24 Inexact Rounded
-pwsx2643 power 56.0E-1 0.5 -> 2.4 Inexact Rounded
-pwsx2644 power 56.00E-2 0.5 -> 0.75 Inexact Rounded
-pwsx2645 power 56E-3 0.5 -> 0.24 Inexact Rounded
-pwsx2646 power 56E+1 0.5 -> 24 Inexact Rounded
-pwsx2647 power 56E+2 0.5 -> 75 Inexact Rounded
-pwsx2648 power 56E+3 0.5 -> 2.4E+2 Inexact Rounded
-pwsx2649 power 0.57 0.5 -> 0.75 Inexact Rounded
-pwsx2650 power 0.057 0.5 -> 0.24 Inexact Rounded
-pwsx2651 power 57.0E-1 0.5 -> 2.4 Inexact Rounded
-pwsx2652 power 57.00E-2 0.5 -> 0.75 Inexact Rounded
-pwsx2653 power 57E-3 0.5 -> 0.24 Inexact Rounded
-pwsx2654 power 57E+1 0.5 -> 24 Inexact Rounded
-pwsx2655 power 57E+2 0.5 -> 75 Inexact Rounded
-pwsx2656 power 57E+3 0.5 -> 2.4E+2 Inexact Rounded
-pwsx2657 power 0.58 0.5 -> 0.76 Inexact Rounded
-pwsx2658 power 0.058 0.5 -> 0.24 Inexact Rounded
-pwsx2659 power 58.0E-1 0.5 -> 2.4 Inexact Rounded
-pwsx2660 power 58.00E-2 0.5 -> 0.76 Inexact Rounded
-pwsx2661 power 58E-3 0.5 -> 0.24 Inexact Rounded
-pwsx2662 power 58E+1 0.5 -> 24 Inexact Rounded
-pwsx2663 power 58E+2 0.5 -> 76 Inexact Rounded
-pwsx2664 power 58E+3 0.5 -> 2.4E+2 Inexact Rounded
-pwsx2665 power 0.59 0.5 -> 0.77 Inexact Rounded
-pwsx2666 power 0.059 0.5 -> 0.24 Inexact Rounded
-pwsx2667 power 59.0E-1 0.5 -> 2.4 Inexact Rounded
-pwsx2668 power 59.00E-2 0.5 -> 0.77 Inexact Rounded
-pwsx2669 power 59E-3 0.5 -> 0.24 Inexact Rounded
-pwsx2670 power 59E+1 0.5 -> 24 Inexact Rounded
-pwsx2671 power 59E+2 0.5 -> 77 Inexact Rounded
-pwsx2672 power 59E+3 0.5 -> 2.4E+2 Inexact Rounded
-pwsx2673 power 0.60 0.5 -> 0.77 Inexact Rounded
-pwsx2674 power 0.060 0.5 -> 0.24 Inexact Rounded
-pwsx2675 power 60.0E-1 0.5 -> 2.4 Inexact Rounded
-pwsx2676 power 60.00E-2 0.5 -> 0.77 Inexact Rounded
-pwsx2677 power 60E-3 0.5 -> 0.24 Inexact Rounded
-pwsx2678 power 60E+1 0.5 -> 24 Inexact Rounded
-pwsx2679 power 60E+2 0.5 -> 77 Inexact Rounded
-pwsx2680 power 60E+3 0.5 -> 2.4E+2 Inexact Rounded
-pwsx2681 power 0.61 0.5 -> 0.78 Inexact Rounded
-pwsx2682 power 0.061 0.5 -> 0.25 Inexact Rounded
-pwsx2683 power 61.0E-1 0.5 -> 2.5 Inexact Rounded
-pwsx2684 power 61.00E-2 0.5 -> 0.78 Inexact Rounded
-pwsx2685 power 61E-3 0.5 -> 0.25 Inexact Rounded
-pwsx2686 power 61E+1 0.5 -> 25 Inexact Rounded
-pwsx2687 power 61E+2 0.5 -> 78 Inexact Rounded
-pwsx2688 power 61E+3 0.5 -> 2.5E+2 Inexact Rounded
-pwsx2689 power 0.62 0.5 -> 0.79 Inexact Rounded
-pwsx2690 power 0.062 0.5 -> 0.25 Inexact Rounded
-pwsx2691 power 62.0E-1 0.5 -> 2.5 Inexact Rounded
-pwsx2692 power 62.00E-2 0.5 -> 0.79 Inexact Rounded
-pwsx2693 power 62E-3 0.5 -> 0.25 Inexact Rounded
-pwsx2694 power 62E+1 0.5 -> 25 Inexact Rounded
-pwsx2695 power 62E+2 0.5 -> 79 Inexact Rounded
-pwsx2696 power 62E+3 0.5 -> 2.5E+2 Inexact Rounded
-pwsx2697 power 0.63 0.5 -> 0.79 Inexact Rounded
-pwsx2698 power 0.063 0.5 -> 0.25 Inexact Rounded
-pwsx2699 power 63.0E-1 0.5 -> 2.5 Inexact Rounded
-pwsx2700 power 63.00E-2 0.5 -> 0.79 Inexact Rounded
-pwsx2701 power 63E-3 0.5 -> 0.25 Inexact Rounded
-pwsx2702 power 63E+1 0.5 -> 25 Inexact Rounded
-pwsx2703 power 63E+2 0.5 -> 79 Inexact Rounded
-pwsx2704 power 63E+3 0.5 -> 2.5E+2 Inexact Rounded
-pwsx2705 power 0.64 0.5 -> 0.80 Inexact Rounded
-pwsx2706 power 0.064 0.5 -> 0.25 Inexact Rounded
-pwsx2707 power 64.0E-1 0.5 -> 2.5 Inexact Rounded
-pwsx2708 power 64.00E-2 0.5 -> 0.80 Inexact Rounded
-pwsx2709 power 64E-3 0.5 -> 0.25 Inexact Rounded
-pwsx2710 power 64E+1 0.5 -> 25 Inexact Rounded
-pwsx2711 power 64E+2 0.5 -> 80 Inexact Rounded
-pwsx2712 power 64E+3 0.5 -> 2.5E+2 Inexact Rounded
-pwsx2713 power 0.65 0.5 -> 0.81 Inexact Rounded
-pwsx2714 power 0.065 0.5 -> 0.25 Inexact Rounded
-pwsx2715 power 65.0E-1 0.5 -> 2.5 Inexact Rounded
-pwsx2716 power 65.00E-2 0.5 -> 0.81 Inexact Rounded
-pwsx2717 power 65E-3 0.5 -> 0.25 Inexact Rounded
-pwsx2718 power 65E+1 0.5 -> 25 Inexact Rounded
-pwsx2719 power 65E+2 0.5 -> 81 Inexact Rounded
-pwsx2720 power 65E+3 0.5 -> 2.5E+2 Inexact Rounded
-pwsx2721 power 0.66 0.5 -> 0.81 Inexact Rounded
-pwsx2722 power 0.066 0.5 -> 0.26 Inexact Rounded
-pwsx2723 power 66.0E-1 0.5 -> 2.6 Inexact Rounded
-pwsx2724 power 66.00E-2 0.5 -> 0.81 Inexact Rounded
-pwsx2725 power 66E-3 0.5 -> 0.26 Inexact Rounded
-pwsx2726 power 66E+1 0.5 -> 26 Inexact Rounded
-pwsx2727 power 66E+2 0.5 -> 81 Inexact Rounded
-pwsx2728 power 66E+3 0.5 -> 2.6E+2 Inexact Rounded
-pwsx2729 power 0.67 0.5 -> 0.82 Inexact Rounded
-pwsx2730 power 0.067 0.5 -> 0.26 Inexact Rounded
-pwsx2731 power 67.0E-1 0.5 -> 2.6 Inexact Rounded
-pwsx2732 power 67.00E-2 0.5 -> 0.82 Inexact Rounded
-pwsx2733 power 67E-3 0.5 -> 0.26 Inexact Rounded
-pwsx2734 power 67E+1 0.5 -> 26 Inexact Rounded
-pwsx2735 power 67E+2 0.5 -> 82 Inexact Rounded
-pwsx2736 power 67E+3 0.5 -> 2.6E+2 Inexact Rounded
-pwsx2737 power 0.68 0.5 -> 0.82 Inexact Rounded
-pwsx2738 power 0.068 0.5 -> 0.26 Inexact Rounded
-pwsx2739 power 68.0E-1 0.5 -> 2.6 Inexact Rounded
-pwsx2740 power 68.00E-2 0.5 -> 0.82 Inexact Rounded
-pwsx2741 power 68E-3 0.5 -> 0.26 Inexact Rounded
-pwsx2742 power 68E+1 0.5 -> 26 Inexact Rounded
-pwsx2743 power 68E+2 0.5 -> 82 Inexact Rounded
-pwsx2744 power 68E+3 0.5 -> 2.6E+2 Inexact Rounded
-pwsx2745 power 0.69 0.5 -> 0.83 Inexact Rounded
-pwsx2746 power 0.069 0.5 -> 0.26 Inexact Rounded
-pwsx2747 power 69.0E-1 0.5 -> 2.6 Inexact Rounded
-pwsx2748 power 69.00E-2 0.5 -> 0.83 Inexact Rounded
-pwsx2749 power 69E-3 0.5 -> 0.26 Inexact Rounded
-pwsx2750 power 69E+1 0.5 -> 26 Inexact Rounded
-pwsx2751 power 69E+2 0.5 -> 83 Inexact Rounded
-pwsx2752 power 69E+3 0.5 -> 2.6E+2 Inexact Rounded
-pwsx2753 power 0.70 0.5 -> 0.84 Inexact Rounded
-pwsx2754 power 0.070 0.5 -> 0.26 Inexact Rounded
-pwsx2755 power 70.0E-1 0.5 -> 2.6 Inexact Rounded
-pwsx2756 power 70.00E-2 0.5 -> 0.84 Inexact Rounded
-pwsx2757 power 70E-3 0.5 -> 0.26 Inexact Rounded
-pwsx2758 power 70E+1 0.5 -> 26 Inexact Rounded
-pwsx2759 power 70E+2 0.5 -> 84 Inexact Rounded
-pwsx2760 power 70E+3 0.5 -> 2.6E+2 Inexact Rounded
-pwsx2761 power 0.71 0.5 -> 0.84 Inexact Rounded
-pwsx2762 power 0.071 0.5 -> 0.27 Inexact Rounded
-pwsx2763 power 71.0E-1 0.5 -> 2.7 Inexact Rounded
-pwsx2764 power 71.00E-2 0.5 -> 0.84 Inexact Rounded
-pwsx2765 power 71E-3 0.5 -> 0.27 Inexact Rounded
-pwsx2766 power 71E+1 0.5 -> 27 Inexact Rounded
-pwsx2767 power 71E+2 0.5 -> 84 Inexact Rounded
-pwsx2768 power 71E+3 0.5 -> 2.7E+2 Inexact Rounded
-pwsx2769 power 0.72 0.5 -> 0.85 Inexact Rounded
-pwsx2770 power 0.072 0.5 -> 0.27 Inexact Rounded
-pwsx2771 power 72.0E-1 0.5 -> 2.7 Inexact Rounded
-pwsx2772 power 72.00E-2 0.5 -> 0.85 Inexact Rounded
-pwsx2773 power 72E-3 0.5 -> 0.27 Inexact Rounded
-pwsx2774 power 72E+1 0.5 -> 27 Inexact Rounded
-pwsx2775 power 72E+2 0.5 -> 85 Inexact Rounded
-pwsx2776 power 72E+3 0.5 -> 2.7E+2 Inexact Rounded
-pwsx2777 power 0.73 0.5 -> 0.85 Inexact Rounded
-pwsx2778 power 0.073 0.5 -> 0.27 Inexact Rounded
-pwsx2779 power 73.0E-1 0.5 -> 2.7 Inexact Rounded
-pwsx2780 power 73.00E-2 0.5 -> 0.85 Inexact Rounded
-pwsx2781 power 73E-3 0.5 -> 0.27 Inexact Rounded
-pwsx2782 power 73E+1 0.5 -> 27 Inexact Rounded
-pwsx2783 power 73E+2 0.5 -> 85 Inexact Rounded
-pwsx2784 power 73E+3 0.5 -> 2.7E+2 Inexact Rounded
-pwsx2785 power 0.74 0.5 -> 0.86 Inexact Rounded
-pwsx2786 power 0.074 0.5 -> 0.27 Inexact Rounded
-pwsx2787 power 74.0E-1 0.5 -> 2.7 Inexact Rounded
-pwsx2788 power 74.00E-2 0.5 -> 0.86 Inexact Rounded
-pwsx2789 power 74E-3 0.5 -> 0.27 Inexact Rounded
-pwsx2790 power 74E+1 0.5 -> 27 Inexact Rounded
-pwsx2791 power 74E+2 0.5 -> 86 Inexact Rounded
-pwsx2792 power 74E+3 0.5 -> 2.7E+2 Inexact Rounded
-pwsx2793 power 0.75 0.5 -> 0.87 Inexact Rounded
-pwsx2794 power 0.075 0.5 -> 0.27 Inexact Rounded
-pwsx2795 power 75.0E-1 0.5 -> 2.7 Inexact Rounded
-pwsx2796 power 75.00E-2 0.5 -> 0.87 Inexact Rounded
-pwsx2797 power 75E-3 0.5 -> 0.27 Inexact Rounded
-pwsx2798 power 75E+1 0.5 -> 27 Inexact Rounded
-pwsx2799 power 75E+2 0.5 -> 87 Inexact Rounded
-pwsx2800 power 75E+3 0.5 -> 2.7E+2 Inexact Rounded
-pwsx2801 power 0.76 0.5 -> 0.87 Inexact Rounded
-pwsx2802 power 0.076 0.5 -> 0.28 Inexact Rounded
-pwsx2803 power 76.0E-1 0.5 -> 2.8 Inexact Rounded
-pwsx2804 power 76.00E-2 0.5 -> 0.87 Inexact Rounded
-pwsx2805 power 76E-3 0.5 -> 0.28 Inexact Rounded
-pwsx2806 power 76E+1 0.5 -> 28 Inexact Rounded
-pwsx2807 power 76E+2 0.5 -> 87 Inexact Rounded
-pwsx2808 power 76E+3 0.5 -> 2.8E+2 Inexact Rounded
-pwsx2809 power 0.77 0.5 -> 0.88 Inexact Rounded
-pwsx2810 power 0.077 0.5 -> 0.28 Inexact Rounded
-pwsx2811 power 77.0E-1 0.5 -> 2.8 Inexact Rounded
-pwsx2812 power 77.00E-2 0.5 -> 0.88 Inexact Rounded
-pwsx2813 power 77E-3 0.5 -> 0.28 Inexact Rounded
-pwsx2814 power 77E+1 0.5 -> 28 Inexact Rounded
-pwsx2815 power 77E+2 0.5 -> 88 Inexact Rounded
-pwsx2816 power 77E+3 0.5 -> 2.8E+2 Inexact Rounded
-pwsx2817 power 0.78 0.5 -> 0.88 Inexact Rounded
-pwsx2818 power 0.078 0.5 -> 0.28 Inexact Rounded
-pwsx2819 power 78.0E-1 0.5 -> 2.8 Inexact Rounded
-pwsx2820 power 78.00E-2 0.5 -> 0.88 Inexact Rounded
-pwsx2821 power 78E-3 0.5 -> 0.28 Inexact Rounded
-pwsx2822 power 78E+1 0.5 -> 28 Inexact Rounded
-pwsx2823 power 78E+2 0.5 -> 88 Inexact Rounded
-pwsx2824 power 78E+3 0.5 -> 2.8E+2 Inexact Rounded
-pwsx2825 power 0.79 0.5 -> 0.89 Inexact Rounded
-pwsx2826 power 0.079 0.5 -> 0.28 Inexact Rounded
-pwsx2827 power 79.0E-1 0.5 -> 2.8 Inexact Rounded
-pwsx2828 power 79.00E-2 0.5 -> 0.89 Inexact Rounded
-pwsx2829 power 79E-3 0.5 -> 0.28 Inexact Rounded
-pwsx2830 power 79E+1 0.5 -> 28 Inexact Rounded
-pwsx2831 power 79E+2 0.5 -> 89 Inexact Rounded
-pwsx2832 power 79E+3 0.5 -> 2.8E+2 Inexact Rounded
-pwsx2833 power 0.80 0.5 -> 0.89 Inexact Rounded
-pwsx2834 power 0.080 0.5 -> 0.28 Inexact Rounded
-pwsx2835 power 80.0E-1 0.5 -> 2.8 Inexact Rounded
-pwsx2836 power 80.00E-2 0.5 -> 0.89 Inexact Rounded
-pwsx2837 power 80E-3 0.5 -> 0.28 Inexact Rounded
-pwsx2838 power 80E+1 0.5 -> 28 Inexact Rounded
-pwsx2839 power 80E+2 0.5 -> 89 Inexact Rounded
-pwsx2840 power 80E+3 0.5 -> 2.8E+2 Inexact Rounded
-pwsx2841 power 0.81 0.5 -> 0.90 Inexact Rounded
-pwsx2842 power 0.081 0.5 -> 0.28 Inexact Rounded
-pwsx2843 power 81.0E-1 0.5 -> 2.8 Inexact Rounded
-pwsx2844 power 81.00E-2 0.5 -> 0.90 Inexact Rounded
-pwsx2845 power 81E-3 0.5 -> 0.28 Inexact Rounded
-pwsx2846 power 81E+1 0.5 -> 28 Inexact Rounded
-pwsx2847 power 81E+2 0.5 -> 90 Inexact Rounded
-pwsx2848 power 81E+3 0.5 -> 2.8E+2 Inexact Rounded
-pwsx2849 power 0.82 0.5 -> 0.91 Inexact Rounded
-pwsx2850 power 0.082 0.5 -> 0.29 Inexact Rounded
-pwsx2851 power 82.0E-1 0.5 -> 2.9 Inexact Rounded
-pwsx2852 power 82.00E-2 0.5 -> 0.91 Inexact Rounded
-pwsx2853 power 82E-3 0.5 -> 0.29 Inexact Rounded
-pwsx2854 power 82E+1 0.5 -> 29 Inexact Rounded
-pwsx2855 power 82E+2 0.5 -> 91 Inexact Rounded
-pwsx2856 power 82E+3 0.5 -> 2.9E+2 Inexact Rounded
-pwsx2857 power 0.83 0.5 -> 0.91 Inexact Rounded
-pwsx2858 power 0.083 0.5 -> 0.29 Inexact Rounded
-pwsx2859 power 83.0E-1 0.5 -> 2.9 Inexact Rounded
-pwsx2860 power 83.00E-2 0.5 -> 0.91 Inexact Rounded
-pwsx2861 power 83E-3 0.5 -> 0.29 Inexact Rounded
-pwsx2862 power 83E+1 0.5 -> 29 Inexact Rounded
-pwsx2863 power 83E+2 0.5 -> 91 Inexact Rounded
-pwsx2864 power 83E+3 0.5 -> 2.9E+2 Inexact Rounded
-pwsx2865 power 0.84 0.5 -> 0.92 Inexact Rounded
-pwsx2866 power 0.084 0.5 -> 0.29 Inexact Rounded
-pwsx2867 power 84.0E-1 0.5 -> 2.9 Inexact Rounded
-pwsx2868 power 84.00E-2 0.5 -> 0.92 Inexact Rounded
-pwsx2869 power 84E-3 0.5 -> 0.29 Inexact Rounded
-pwsx2870 power 84E+1 0.5 -> 29 Inexact Rounded
-pwsx2871 power 84E+2 0.5 -> 92 Inexact Rounded
-pwsx2872 power 84E+3 0.5 -> 2.9E+2 Inexact Rounded
-pwsx2873 power 0.85 0.5 -> 0.92 Inexact Rounded
-pwsx2874 power 0.085 0.5 -> 0.29 Inexact Rounded
-pwsx2875 power 85.0E-1 0.5 -> 2.9 Inexact Rounded
-pwsx2876 power 85.00E-2 0.5 -> 0.92 Inexact Rounded
-pwsx2877 power 85E-3 0.5 -> 0.29 Inexact Rounded
-pwsx2878 power 85E+1 0.5 -> 29 Inexact Rounded
-pwsx2879 power 85E+2 0.5 -> 92 Inexact Rounded
-pwsx2880 power 85E+3 0.5 -> 2.9E+2 Inexact Rounded
-pwsx2881 power 0.86 0.5 -> 0.93 Inexact Rounded
-pwsx2882 power 0.086 0.5 -> 0.29 Inexact Rounded
-pwsx2883 power 86.0E-1 0.5 -> 2.9 Inexact Rounded
-pwsx2884 power 86.00E-2 0.5 -> 0.93 Inexact Rounded
-pwsx2885 power 86E-3 0.5 -> 0.29 Inexact Rounded
-pwsx2886 power 86E+1 0.5 -> 29 Inexact Rounded
-pwsx2887 power 86E+2 0.5 -> 93 Inexact Rounded
-pwsx2888 power 86E+3 0.5 -> 2.9E+2 Inexact Rounded
-pwsx2889 power 0.87 0.5 -> 0.93 Inexact Rounded
-pwsx2890 power 0.087 0.5 -> 0.29 Inexact Rounded
-pwsx2891 power 87.0E-1 0.5 -> 2.9 Inexact Rounded
-pwsx2892 power 87.00E-2 0.5 -> 0.93 Inexact Rounded
-pwsx2893 power 87E-3 0.5 -> 0.29 Inexact Rounded
-pwsx2894 power 87E+1 0.5 -> 29 Inexact Rounded
-pwsx2895 power 87E+2 0.5 -> 93 Inexact Rounded
-pwsx2896 power 87E+3 0.5 -> 2.9E+2 Inexact Rounded
-pwsx2897 power 0.88 0.5 -> 0.94 Inexact Rounded
-pwsx2898 power 0.088 0.5 -> 0.30 Inexact Rounded
-pwsx2899 power 88.0E-1 0.5 -> 3.0 Inexact Rounded
-pwsx2900 power 88.00E-2 0.5 -> 0.94 Inexact Rounded
-pwsx2901 power 88E-3 0.5 -> 0.30 Inexact Rounded
-pwsx2902 power 88E+1 0.5 -> 30 Inexact Rounded
-pwsx2903 power 88E+2 0.5 -> 94 Inexact Rounded
-pwsx2904 power 88E+3 0.5 -> 3.0E+2 Inexact Rounded
-pwsx2905 power 0.89 0.5 -> 0.94 Inexact Rounded
-pwsx2906 power 0.089 0.5 -> 0.30 Inexact Rounded
-pwsx2907 power 89.0E-1 0.5 -> 3.0 Inexact Rounded
-pwsx2908 power 89.00E-2 0.5 -> 0.94 Inexact Rounded
-pwsx2909 power 89E-3 0.5 -> 0.30 Inexact Rounded
-pwsx2910 power 89E+1 0.5 -> 30 Inexact Rounded
-pwsx2911 power 89E+2 0.5 -> 94 Inexact Rounded
-pwsx2912 power 89E+3 0.5 -> 3.0E+2 Inexact Rounded
-pwsx2913 power 0.90 0.5 -> 0.95 Inexact Rounded
-pwsx2914 power 0.090 0.5 -> 0.30 Inexact Rounded
-pwsx2915 power 90.0E-1 0.5 -> 3.0 Inexact Rounded
-pwsx2916 power 90.00E-2 0.5 -> 0.95 Inexact Rounded
-pwsx2917 power 90E-3 0.5 -> 0.30 Inexact Rounded
-pwsx2918 power 90E+1 0.5 -> 30 Inexact Rounded
-pwsx2919 power 90E+2 0.5 -> 95 Inexact Rounded
-pwsx2920 power 90E+3 0.5 -> 3.0E+2 Inexact Rounded
-pwsx2921 power 0.91 0.5 -> 0.95 Inexact Rounded
-pwsx2922 power 0.091 0.5 -> 0.30 Inexact Rounded
-pwsx2923 power 91.0E-1 0.5 -> 3.0 Inexact Rounded
-pwsx2924 power 91.00E-2 0.5 -> 0.95 Inexact Rounded
-pwsx2925 power 91E-3 0.5 -> 0.30 Inexact Rounded
-pwsx2926 power 91E+1 0.5 -> 30 Inexact Rounded
-pwsx2927 power 91E+2 0.5 -> 95 Inexact Rounded
-pwsx2928 power 91E+3 0.5 -> 3.0E+2 Inexact Rounded
-pwsx2929 power 0.92 0.5 -> 0.96 Inexact Rounded
-pwsx2930 power 0.092 0.5 -> 0.30 Inexact Rounded
-pwsx2931 power 92.0E-1 0.5 -> 3.0 Inexact Rounded
-pwsx2932 power 92.00E-2 0.5 -> 0.96 Inexact Rounded
-pwsx2933 power 92E-3 0.5 -> 0.30 Inexact Rounded
-pwsx2934 power 92E+1 0.5 -> 30 Inexact Rounded
-pwsx2935 power 92E+2 0.5 -> 96 Inexact Rounded
-pwsx2936 power 92E+3 0.5 -> 3.0E+2 Inexact Rounded
-pwsx2937 power 0.93 0.5 -> 0.96 Inexact Rounded
-pwsx2938 power 0.093 0.5 -> 0.30 Inexact Rounded
-pwsx2939 power 93.0E-1 0.5 -> 3.0 Inexact Rounded
-pwsx2940 power 93.00E-2 0.5 -> 0.96 Inexact Rounded
-pwsx2941 power 93E-3 0.5 -> 0.30 Inexact Rounded
-pwsx2942 power 93E+1 0.5 -> 30 Inexact Rounded
-pwsx2943 power 93E+2 0.5 -> 96 Inexact Rounded
-pwsx2944 power 93E+3 0.5 -> 3.0E+2 Inexact Rounded
-pwsx2945 power 0.94 0.5 -> 0.97 Inexact Rounded
-pwsx2946 power 0.094 0.5 -> 0.31 Inexact Rounded
-pwsx2947 power 94.0E-1 0.5 -> 3.1 Inexact Rounded
-pwsx2948 power 94.00E-2 0.5 -> 0.97 Inexact Rounded
-pwsx2949 power 94E-3 0.5 -> 0.31 Inexact Rounded
-pwsx2950 power 94E+1 0.5 -> 31 Inexact Rounded
-pwsx2951 power 94E+2 0.5 -> 97 Inexact Rounded
-pwsx2952 power 94E+3 0.5 -> 3.1E+2 Inexact Rounded
-pwsx2953 power 0.95 0.5 -> 0.97 Inexact Rounded
-pwsx2954 power 0.095 0.5 -> 0.31 Inexact Rounded
-pwsx2955 power 95.0E-1 0.5 -> 3.1 Inexact Rounded
-pwsx2956 power 95.00E-2 0.5 -> 0.97 Inexact Rounded
-pwsx2957 power 95E-3 0.5 -> 0.31 Inexact Rounded
-pwsx2958 power 95E+1 0.5 -> 31 Inexact Rounded
-pwsx2959 power 95E+2 0.5 -> 97 Inexact Rounded
-pwsx2960 power 95E+3 0.5 -> 3.1E+2 Inexact Rounded
-pwsx2961 power 0.96 0.5 -> 0.98 Inexact Rounded
-pwsx2962 power 0.096 0.5 -> 0.31 Inexact Rounded
-pwsx2963 power 96.0E-1 0.5 -> 3.1 Inexact Rounded
-pwsx2964 power 96.00E-2 0.5 -> 0.98 Inexact Rounded
-pwsx2965 power 96E-3 0.5 -> 0.31 Inexact Rounded
-pwsx2966 power 96E+1 0.5 -> 31 Inexact Rounded
-pwsx2967 power 96E+2 0.5 -> 98 Inexact Rounded
-pwsx2968 power 96E+3 0.5 -> 3.1E+2 Inexact Rounded
-pwsx2969 power 0.97 0.5 -> 0.98 Inexact Rounded
-pwsx2970 power 0.097 0.5 -> 0.31 Inexact Rounded
-pwsx2971 power 97.0E-1 0.5 -> 3.1 Inexact Rounded
-pwsx2972 power 97.00E-2 0.5 -> 0.98 Inexact Rounded
-pwsx2973 power 97E-3 0.5 -> 0.31 Inexact Rounded
-pwsx2974 power 97E+1 0.5 -> 31 Inexact Rounded
-pwsx2975 power 97E+2 0.5 -> 98 Inexact Rounded
-pwsx2976 power 97E+3 0.5 -> 3.1E+2 Inexact Rounded
-pwsx2977 power 0.98 0.5 -> 0.99 Inexact Rounded
-pwsx2978 power 0.098 0.5 -> 0.31 Inexact Rounded
-pwsx2979 power 98.0E-1 0.5 -> 3.1 Inexact Rounded
-pwsx2980 power 98.00E-2 0.5 -> 0.99 Inexact Rounded
-pwsx2981 power 98E-3 0.5 -> 0.31 Inexact Rounded
-pwsx2982 power 98E+1 0.5 -> 31 Inexact Rounded
-pwsx2983 power 98E+2 0.5 -> 99 Inexact Rounded
-pwsx2984 power 98E+3 0.5 -> 3.1E+2 Inexact Rounded
-pwsx2985 power 0.99 0.5 -> 0.99 Inexact Rounded
-pwsx2986 power 0.099 0.5 -> 0.31 Inexact Rounded
-pwsx2987 power 99.0E-1 0.5 -> 3.1 Inexact Rounded
-pwsx2988 power 99.00E-2 0.5 -> 0.99 Inexact Rounded
-pwsx2989 power 99E-3 0.5 -> 0.31 Inexact Rounded
-pwsx2990 power 99E+1 0.5 -> 31 Inexact Rounded
-pwsx2991 power 99E+2 0.5 -> 99 Inexact Rounded
-pwsx2992 power 99E+3 0.5 -> 3.1E+2 Inexact Rounded
-
--- Precision 3 squareroot tests [exhaustive, f and f/10]
-rounding: half_even
-maxExponent: 999
-minexponent: -999
-precision: 3
-pwsx3001 power 0.1 0.5 -> 0.316 Inexact Rounded
-pwsx3002 power 0.01 0.5 -> 0.100 Inexact Rounded
-pwsx3003 power 0.2 0.5 -> 0.447 Inexact Rounded
-pwsx3004 power 0.02 0.5 -> 0.141 Inexact Rounded
-pwsx3005 power 0.3 0.5 -> 0.548 Inexact Rounded
-pwsx3006 power 0.03 0.5 -> 0.173 Inexact Rounded
-pwsx3007 power 0.4 0.5 -> 0.632 Inexact Rounded
-pwsx3008 power 0.04 0.5 -> 0.200 Inexact Rounded
-pwsx3009 power 0.5 0.5 -> 0.707 Inexact Rounded
-pwsx3010 power 0.05 0.5 -> 0.224 Inexact Rounded
-pwsx3011 power 0.6 0.5 -> 0.775 Inexact Rounded
-pwsx3012 power 0.06 0.5 -> 0.245 Inexact Rounded
-pwsx3013 power 0.7 0.5 -> 0.837 Inexact Rounded
-pwsx3014 power 0.07 0.5 -> 0.265 Inexact Rounded
-pwsx3015 power 0.8 0.5 -> 0.894 Inexact Rounded
-pwsx3016 power 0.08 0.5 -> 0.283 Inexact Rounded
-pwsx3017 power 0.9 0.5 -> 0.949 Inexact Rounded
-pwsx3018 power 0.09 0.5 -> 0.300 Inexact Rounded
-pwsx3019 power 0.11 0.5 -> 0.332 Inexact Rounded
-pwsx3020 power 0.011 0.5 -> 0.105 Inexact Rounded
-pwsx3021 power 0.12 0.5 -> 0.346 Inexact Rounded
-pwsx3022 power 0.012 0.5 -> 0.110 Inexact Rounded
-pwsx3023 power 0.13 0.5 -> 0.361 Inexact Rounded
-pwsx3024 power 0.013 0.5 -> 0.114 Inexact Rounded
-pwsx3025 power 0.14 0.5 -> 0.374 Inexact Rounded
-pwsx3026 power 0.014 0.5 -> 0.118 Inexact Rounded
-pwsx3027 power 0.15 0.5 -> 0.387 Inexact Rounded
-pwsx3028 power 0.015 0.5 -> 0.122 Inexact Rounded
-pwsx3029 power 0.16 0.5 -> 0.400 Inexact Rounded
-pwsx3030 power 0.016 0.5 -> 0.126 Inexact Rounded
-pwsx3031 power 0.17 0.5 -> 0.412 Inexact Rounded
-pwsx3032 power 0.017 0.5 -> 0.130 Inexact Rounded
-pwsx3033 power 0.18 0.5 -> 0.424 Inexact Rounded
-pwsx3034 power 0.018 0.5 -> 0.134 Inexact Rounded
-pwsx3035 power 0.19 0.5 -> 0.436 Inexact Rounded
-pwsx3036 power 0.019 0.5 -> 0.138 Inexact Rounded
-pwsx3037 power 0.21 0.5 -> 0.458 Inexact Rounded
-pwsx3038 power 0.021 0.5 -> 0.145 Inexact Rounded
-pwsx3039 power 0.22 0.5 -> 0.469 Inexact Rounded
-pwsx3040 power 0.022 0.5 -> 0.148 Inexact Rounded
-pwsx3041 power 0.23 0.5 -> 0.480 Inexact Rounded
-pwsx3042 power 0.023 0.5 -> 0.152 Inexact Rounded
-pwsx3043 power 0.24 0.5 -> 0.490 Inexact Rounded
-pwsx3044 power 0.024 0.5 -> 0.155 Inexact Rounded
-pwsx3045 power 0.25 0.5 -> 0.500 Inexact Rounded
-pwsx3046 power 0.025 0.5 -> 0.158 Inexact Rounded
-pwsx3047 power 0.26 0.5 -> 0.510 Inexact Rounded
-pwsx3048 power 0.026 0.5 -> 0.161 Inexact Rounded
-pwsx3049 power 0.27 0.5 -> 0.520 Inexact Rounded
-pwsx3050 power 0.027 0.5 -> 0.164 Inexact Rounded
-pwsx3051 power 0.28 0.5 -> 0.529 Inexact Rounded
-pwsx3052 power 0.028 0.5 -> 0.167 Inexact Rounded
-pwsx3053 power 0.29 0.5 -> 0.539 Inexact Rounded
-pwsx3054 power 0.029 0.5 -> 0.170 Inexact Rounded
-pwsx3055 power 0.31 0.5 -> 0.557 Inexact Rounded
-pwsx3056 power 0.031 0.5 -> 0.176 Inexact Rounded
-pwsx3057 power 0.32 0.5 -> 0.566 Inexact Rounded
-pwsx3058 power 0.032 0.5 -> 0.179 Inexact Rounded
-pwsx3059 power 0.33 0.5 -> 0.574 Inexact Rounded
-pwsx3060 power 0.033 0.5 -> 0.182 Inexact Rounded
-pwsx3061 power 0.34 0.5 -> 0.583 Inexact Rounded
-pwsx3062 power 0.034 0.5 -> 0.184 Inexact Rounded
-pwsx3063 power 0.35 0.5 -> 0.592 Inexact Rounded
-pwsx3064 power 0.035 0.5 -> 0.187 Inexact Rounded
-pwsx3065 power 0.36 0.5 -> 0.600 Inexact Rounded
-pwsx3066 power 0.036 0.5 -> 0.190 Inexact Rounded
-pwsx3067 power 0.37 0.5 -> 0.608 Inexact Rounded
-pwsx3068 power 0.037 0.5 -> 0.192 Inexact Rounded
-pwsx3069 power 0.38 0.5 -> 0.616 Inexact Rounded
-pwsx3070 power 0.038 0.5 -> 0.195 Inexact Rounded
-pwsx3071 power 0.39 0.5 -> 0.624 Inexact Rounded
-pwsx3072 power 0.039 0.5 -> 0.197 Inexact Rounded
-pwsx3073 power 0.41 0.5 -> 0.640 Inexact Rounded
-pwsx3074 power 0.041 0.5 -> 0.202 Inexact Rounded
-pwsx3075 power 0.42 0.5 -> 0.648 Inexact Rounded
-pwsx3076 power 0.042 0.5 -> 0.205 Inexact Rounded
-pwsx3077 power 0.43 0.5 -> 0.656 Inexact Rounded
-pwsx3078 power 0.043 0.5 -> 0.207 Inexact Rounded
-pwsx3079 power 0.44 0.5 -> 0.663 Inexact Rounded
-pwsx3080 power 0.044 0.5 -> 0.210 Inexact Rounded
-pwsx3081 power 0.45 0.5 -> 0.671 Inexact Rounded
-pwsx3082 power 0.045 0.5 -> 0.212 Inexact Rounded
-pwsx3083 power 0.46 0.5 -> 0.678 Inexact Rounded
-pwsx3084 power 0.046 0.5 -> 0.214 Inexact Rounded
-pwsx3085 power 0.47 0.5 -> 0.686 Inexact Rounded
-pwsx3086 power 0.047 0.5 -> 0.217 Inexact Rounded
-pwsx3087 power 0.48 0.5 -> 0.693 Inexact Rounded
-pwsx3088 power 0.048 0.5 -> 0.219 Inexact Rounded
-pwsx3089 power 0.49 0.5 -> 0.700 Inexact Rounded
-pwsx3090 power 0.049 0.5 -> 0.221 Inexact Rounded
-pwsx3091 power 0.51 0.5 -> 0.714 Inexact Rounded
-pwsx3092 power 0.051 0.5 -> 0.226 Inexact Rounded
-pwsx3093 power 0.52 0.5 -> 0.721 Inexact Rounded
-pwsx3094 power 0.052 0.5 -> 0.228 Inexact Rounded
-pwsx3095 power 0.53 0.5 -> 0.728 Inexact Rounded
-pwsx3096 power 0.053 0.5 -> 0.230 Inexact Rounded
-pwsx3097 power 0.54 0.5 -> 0.735 Inexact Rounded
-pwsx3098 power 0.054 0.5 -> 0.232 Inexact Rounded
-pwsx3099 power 0.55 0.5 -> 0.742 Inexact Rounded
-pwsx3100 power 0.055 0.5 -> 0.235 Inexact Rounded
-pwsx3101 power 0.56 0.5 -> 0.748 Inexact Rounded
-pwsx3102 power 0.056 0.5 -> 0.237 Inexact Rounded
-pwsx3103 power 0.57 0.5 -> 0.755 Inexact Rounded
-pwsx3104 power 0.057 0.5 -> 0.239 Inexact Rounded
-pwsx3105 power 0.58 0.5 -> 0.762 Inexact Rounded
-pwsx3106 power 0.058 0.5 -> 0.241 Inexact Rounded
-pwsx3107 power 0.59 0.5 -> 0.768 Inexact Rounded
-pwsx3108 power 0.059 0.5 -> 0.243 Inexact Rounded
-pwsx3109 power 0.61 0.5 -> 0.781 Inexact Rounded
-pwsx3110 power 0.061 0.5 -> 0.247 Inexact Rounded
-pwsx3111 power 0.62 0.5 -> 0.787 Inexact Rounded
-pwsx3112 power 0.062 0.5 -> 0.249 Inexact Rounded
-pwsx3113 power 0.63 0.5 -> 0.794 Inexact Rounded
-pwsx3114 power 0.063 0.5 -> 0.251 Inexact Rounded
-pwsx3115 power 0.64 0.5 -> 0.800 Inexact Rounded
-pwsx3116 power 0.064 0.5 -> 0.253 Inexact Rounded
-pwsx3117 power 0.65 0.5 -> 0.806 Inexact Rounded
-pwsx3118 power 0.065 0.5 -> 0.255 Inexact Rounded
-pwsx3119 power 0.66 0.5 -> 0.812 Inexact Rounded
-pwsx3120 power 0.066 0.5 -> 0.257 Inexact Rounded
-pwsx3121 power 0.67 0.5 -> 0.819 Inexact Rounded
-pwsx3122 power 0.067 0.5 -> 0.259 Inexact Rounded
-pwsx3123 power 0.68 0.5 -> 0.825 Inexact Rounded
-pwsx3124 power 0.068 0.5 -> 0.261 Inexact Rounded
-pwsx3125 power 0.69 0.5 -> 0.831 Inexact Rounded
-pwsx3126 power 0.069 0.5 -> 0.263 Inexact Rounded
-pwsx3127 power 0.71 0.5 -> 0.843 Inexact Rounded
-pwsx3128 power 0.071 0.5 -> 0.266 Inexact Rounded
-pwsx3129 power 0.72 0.5 -> 0.849 Inexact Rounded
-pwsx3130 power 0.072 0.5 -> 0.268 Inexact Rounded
-pwsx3131 power 0.73 0.5 -> 0.854 Inexact Rounded
-pwsx3132 power 0.073 0.5 -> 0.270 Inexact Rounded
-pwsx3133 power 0.74 0.5 -> 0.860 Inexact Rounded
-pwsx3134 power 0.074 0.5 -> 0.272 Inexact Rounded
-pwsx3135 power 0.75 0.5 -> 0.866 Inexact Rounded
-pwsx3136 power 0.075 0.5 -> 0.274 Inexact Rounded
-pwsx3137 power 0.76 0.5 -> 0.872 Inexact Rounded
-pwsx3138 power 0.076 0.5 -> 0.276 Inexact Rounded
-pwsx3139 power 0.77 0.5 -> 0.877 Inexact Rounded
-pwsx3140 power 0.077 0.5 -> 0.277 Inexact Rounded
-pwsx3141 power 0.78 0.5 -> 0.883 Inexact Rounded
-pwsx3142 power 0.078 0.5 -> 0.279 Inexact Rounded
-pwsx3143 power 0.79 0.5 -> 0.889 Inexact Rounded
-pwsx3144 power 0.079 0.5 -> 0.281 Inexact Rounded
-pwsx3145 power 0.81 0.5 -> 0.900 Inexact Rounded
-pwsx3146 power 0.081 0.5 -> 0.285 Inexact Rounded
-pwsx3147 power 0.82 0.5 -> 0.906 Inexact Rounded
-pwsx3148 power 0.082 0.5 -> 0.286 Inexact Rounded
-pwsx3149 power 0.83 0.5 -> 0.911 Inexact Rounded
-pwsx3150 power 0.083 0.5 -> 0.288 Inexact Rounded
-pwsx3151 power 0.84 0.5 -> 0.917 Inexact Rounded
-pwsx3152 power 0.084 0.5 -> 0.290 Inexact Rounded
-pwsx3153 power 0.85 0.5 -> 0.922 Inexact Rounded
-pwsx3154 power 0.085 0.5 -> 0.292 Inexact Rounded
-pwsx3155 power 0.86 0.5 -> 0.927 Inexact Rounded
-pwsx3156 power 0.086 0.5 -> 0.293 Inexact Rounded
-pwsx3157 power 0.87 0.5 -> 0.933 Inexact Rounded
-pwsx3158 power 0.087 0.5 -> 0.295 Inexact Rounded
-pwsx3159 power 0.88 0.5 -> 0.938 Inexact Rounded
-pwsx3160 power 0.088 0.5 -> 0.297 Inexact Rounded
-pwsx3161 power 0.89 0.5 -> 0.943 Inexact Rounded
-pwsx3162 power 0.089 0.5 -> 0.298 Inexact Rounded
-pwsx3163 power 0.91 0.5 -> 0.954 Inexact Rounded
-pwsx3164 power 0.091 0.5 -> 0.302 Inexact Rounded
-pwsx3165 power 0.92 0.5 -> 0.959 Inexact Rounded
-pwsx3166 power 0.092 0.5 -> 0.303 Inexact Rounded
-pwsx3167 power 0.93 0.5 -> 0.964 Inexact Rounded
-pwsx3168 power 0.093 0.5 -> 0.305 Inexact Rounded
-pwsx3169 power 0.94 0.5 -> 0.970 Inexact Rounded
-pwsx3170 power 0.094 0.5 -> 0.307 Inexact Rounded
-pwsx3171 power 0.95 0.5 -> 0.975 Inexact Rounded
-pwsx3172 power 0.095 0.5 -> 0.308 Inexact Rounded
-pwsx3173 power 0.96 0.5 -> 0.980 Inexact Rounded
-pwsx3174 power 0.096 0.5 -> 0.310 Inexact Rounded
-pwsx3175 power 0.97 0.5 -> 0.985 Inexact Rounded
-pwsx3176 power 0.097 0.5 -> 0.311 Inexact Rounded
-pwsx3177 power 0.98 0.5 -> 0.990 Inexact Rounded
-pwsx3178 power 0.098 0.5 -> 0.313 Inexact Rounded
-pwsx3179 power 0.99 0.5 -> 0.995 Inexact Rounded
-pwsx3180 power 0.099 0.5 -> 0.315 Inexact Rounded
-pwsx3181 power 0.101 0.5 -> 0.318 Inexact Rounded
-pwsx3182 power 0.0101 0.5 -> 0.100 Inexact Rounded
-pwsx3183 power 0.102 0.5 -> 0.319 Inexact Rounded
-pwsx3184 power 0.0102 0.5 -> 0.101 Inexact Rounded
-pwsx3185 power 0.103 0.5 -> 0.321 Inexact Rounded
-pwsx3186 power 0.0103 0.5 -> 0.101 Inexact Rounded
-pwsx3187 power 0.104 0.5 -> 0.322 Inexact Rounded
-pwsx3188 power 0.0104 0.5 -> 0.102 Inexact Rounded
-pwsx3189 power 0.105 0.5 -> 0.324 Inexact Rounded
-pwsx3190 power 0.0105 0.5 -> 0.102 Inexact Rounded
-pwsx3191 power 0.106 0.5 -> 0.326 Inexact Rounded
-pwsx3192 power 0.0106 0.5 -> 0.103 Inexact Rounded
-pwsx3193 power 0.107 0.5 -> 0.327 Inexact Rounded
-pwsx3194 power 0.0107 0.5 -> 0.103 Inexact Rounded
-pwsx3195 power 0.108 0.5 -> 0.329 Inexact Rounded
-pwsx3196 power 0.0108 0.5 -> 0.104 Inexact Rounded
-pwsx3197 power 0.109 0.5 -> 0.330 Inexact Rounded
-pwsx3198 power 0.0109 0.5 -> 0.104 Inexact Rounded
-pwsx3199 power 0.111 0.5 -> 0.333 Inexact Rounded
-pwsx3200 power 0.0111 0.5 -> 0.105 Inexact Rounded
-pwsx3201 power 0.112 0.5 -> 0.335 Inexact Rounded
-pwsx3202 power 0.0112 0.5 -> 0.106 Inexact Rounded
-pwsx3203 power 0.113 0.5 -> 0.336 Inexact Rounded
-pwsx3204 power 0.0113 0.5 -> 0.106 Inexact Rounded
-pwsx3205 power 0.114 0.5 -> 0.338 Inexact Rounded
-pwsx3206 power 0.0114 0.5 -> 0.107 Inexact Rounded
-pwsx3207 power 0.115 0.5 -> 0.339 Inexact Rounded
-pwsx3208 power 0.0115 0.5 -> 0.107 Inexact Rounded
-pwsx3209 power 0.116 0.5 -> 0.341 Inexact Rounded
-pwsx3210 power 0.0116 0.5 -> 0.108 Inexact Rounded
-pwsx3211 power 0.117 0.5 -> 0.342 Inexact Rounded
-pwsx3212 power 0.0117 0.5 -> 0.108 Inexact Rounded
-pwsx3213 power 0.118 0.5 -> 0.344 Inexact Rounded
-pwsx3214 power 0.0118 0.5 -> 0.109 Inexact Rounded
-pwsx3215 power 0.119 0.5 -> 0.345 Inexact Rounded
-pwsx3216 power 0.0119 0.5 -> 0.109 Inexact Rounded
-pwsx3217 power 0.121 0.5 -> 0.348 Inexact Rounded
-pwsx3218 power 0.0121 0.5 -> 0.110 Inexact Rounded
-pwsx3219 power 0.122 0.5 -> 0.349 Inexact Rounded
-pwsx3220 power 0.0122 0.5 -> 0.110 Inexact Rounded
-pwsx3221 power 0.123 0.5 -> 0.351 Inexact Rounded
-pwsx3222 power 0.0123 0.5 -> 0.111 Inexact Rounded
-pwsx3223 power 0.124 0.5 -> 0.352 Inexact Rounded
-pwsx3224 power 0.0124 0.5 -> 0.111 Inexact Rounded
-pwsx3225 power 0.125 0.5 -> 0.354 Inexact Rounded
-pwsx3226 power 0.0125 0.5 -> 0.112 Inexact Rounded
-pwsx3227 power 0.126 0.5 -> 0.355 Inexact Rounded
-pwsx3228 power 0.0126 0.5 -> 0.112 Inexact Rounded
-pwsx3229 power 0.127 0.5 -> 0.356 Inexact Rounded
-pwsx3230 power 0.0127 0.5 -> 0.113 Inexact Rounded
-pwsx3231 power 0.128 0.5 -> 0.358 Inexact Rounded
-pwsx3232 power 0.0128 0.5 -> 0.113 Inexact Rounded
-pwsx3233 power 0.129 0.5 -> 0.359 Inexact Rounded
-pwsx3234 power 0.0129 0.5 -> 0.114 Inexact Rounded
-pwsx3235 power 0.131 0.5 -> 0.362 Inexact Rounded
-pwsx3236 power 0.0131 0.5 -> 0.114 Inexact Rounded
-pwsx3237 power 0.132 0.5 -> 0.363 Inexact Rounded
-pwsx3238 power 0.0132 0.5 -> 0.115 Inexact Rounded
-pwsx3239 power 0.133 0.5 -> 0.365 Inexact Rounded
-pwsx3240 power 0.0133 0.5 -> 0.115 Inexact Rounded
-pwsx3241 power 0.134 0.5 -> 0.366 Inexact Rounded
-pwsx3242 power 0.0134 0.5 -> 0.116 Inexact Rounded
-pwsx3243 power 0.135 0.5 -> 0.367 Inexact Rounded
-pwsx3244 power 0.0135 0.5 -> 0.116 Inexact Rounded
-pwsx3245 power 0.136 0.5 -> 0.369 Inexact Rounded
-pwsx3246 power 0.0136 0.5 -> 0.117 Inexact Rounded
-pwsx3247 power 0.137 0.5 -> 0.370 Inexact Rounded
-pwsx3248 power 0.0137 0.5 -> 0.117 Inexact Rounded
-pwsx3249 power 0.138 0.5 -> 0.371 Inexact Rounded
-pwsx3250 power 0.0138 0.5 -> 0.117 Inexact Rounded
-pwsx3251 power 0.139 0.5 -> 0.373 Inexact Rounded
-pwsx3252 power 0.0139 0.5 -> 0.118 Inexact Rounded
-pwsx3253 power 0.141 0.5 -> 0.375 Inexact Rounded
-pwsx3254 power 0.0141 0.5 -> 0.119 Inexact Rounded
-pwsx3255 power 0.142 0.5 -> 0.377 Inexact Rounded
-pwsx3256 power 0.0142 0.5 -> 0.119 Inexact Rounded
-pwsx3257 power 0.143 0.5 -> 0.378 Inexact Rounded
-pwsx3258 power 0.0143 0.5 -> 0.120 Inexact Rounded
-pwsx3259 power 0.144 0.5 -> 0.379 Inexact Rounded
-pwsx3260 power 0.0144 0.5 -> 0.120 Inexact Rounded
-pwsx3261 power 0.145 0.5 -> 0.381 Inexact Rounded
-pwsx3262 power 0.0145 0.5 -> 0.120 Inexact Rounded
-pwsx3263 power 0.146 0.5 -> 0.382 Inexact Rounded
-pwsx3264 power 0.0146 0.5 -> 0.121 Inexact Rounded
-pwsx3265 power 0.147 0.5 -> 0.383 Inexact Rounded
-pwsx3266 power 0.0147 0.5 -> 0.121 Inexact Rounded
-pwsx3267 power 0.148 0.5 -> 0.385 Inexact Rounded
-pwsx3268 power 0.0148 0.5 -> 0.122 Inexact Rounded
-pwsx3269 power 0.149 0.5 -> 0.386 Inexact Rounded
-pwsx3270 power 0.0149 0.5 -> 0.122 Inexact Rounded
-pwsx3271 power 0.151 0.5 -> 0.389 Inexact Rounded
-pwsx3272 power 0.0151 0.5 -> 0.123 Inexact Rounded
-pwsx3273 power 0.152 0.5 -> 0.390 Inexact Rounded
-pwsx3274 power 0.0152 0.5 -> 0.123 Inexact Rounded
-pwsx3275 power 0.153 0.5 -> 0.391 Inexact Rounded
-pwsx3276 power 0.0153 0.5 -> 0.124 Inexact Rounded
-pwsx3277 power 0.154 0.5 -> 0.392 Inexact Rounded
-pwsx3278 power 0.0154 0.5 -> 0.124 Inexact Rounded
-pwsx3279 power 0.155 0.5 -> 0.394 Inexact Rounded
-pwsx3280 power 0.0155 0.5 -> 0.124 Inexact Rounded
-pwsx3281 power 0.156 0.5 -> 0.395 Inexact Rounded
-pwsx3282 power 0.0156 0.5 -> 0.125 Inexact Rounded
-pwsx3283 power 0.157 0.5 -> 0.396 Inexact Rounded
-pwsx3284 power 0.0157 0.5 -> 0.125 Inexact Rounded
-pwsx3285 power 0.158 0.5 -> 0.397 Inexact Rounded
-pwsx3286 power 0.0158 0.5 -> 0.126 Inexact Rounded
-pwsx3287 power 0.159 0.5 -> 0.399 Inexact Rounded
-pwsx3288 power 0.0159 0.5 -> 0.126 Inexact Rounded
-pwsx3289 power 0.161 0.5 -> 0.401 Inexact Rounded
-pwsx3290 power 0.0161 0.5 -> 0.127 Inexact Rounded
-pwsx3291 power 0.162 0.5 -> 0.402 Inexact Rounded
-pwsx3292 power 0.0162 0.5 -> 0.127 Inexact Rounded
-pwsx3293 power 0.163 0.5 -> 0.404 Inexact Rounded
-pwsx3294 power 0.0163 0.5 -> 0.128 Inexact Rounded
-pwsx3295 power 0.164 0.5 -> 0.405 Inexact Rounded
-pwsx3296 power 0.0164 0.5 -> 0.128 Inexact Rounded
-pwsx3297 power 0.165 0.5 -> 0.406 Inexact Rounded
-pwsx3298 power 0.0165 0.5 -> 0.128 Inexact Rounded
-pwsx3299 power 0.166 0.5 -> 0.407 Inexact Rounded
-pwsx3300 power 0.0166 0.5 -> 0.129 Inexact Rounded
-pwsx3301 power 0.167 0.5 -> 0.409 Inexact Rounded
-pwsx3302 power 0.0167 0.5 -> 0.129 Inexact Rounded
-pwsx3303 power 0.168 0.5 -> 0.410 Inexact Rounded
-pwsx3304 power 0.0168 0.5 -> 0.130 Inexact Rounded
-pwsx3305 power 0.169 0.5 -> 0.411 Inexact Rounded
-pwsx3306 power 0.0169 0.5 -> 0.130 Inexact Rounded
-pwsx3307 power 0.171 0.5 -> 0.414 Inexact Rounded
-pwsx3308 power 0.0171 0.5 -> 0.131 Inexact Rounded
-pwsx3309 power 0.172 0.5 -> 0.415 Inexact Rounded
-pwsx3310 power 0.0172 0.5 -> 0.131 Inexact Rounded
-pwsx3311 power 0.173 0.5 -> 0.416 Inexact Rounded
-pwsx3312 power 0.0173 0.5 -> 0.132 Inexact Rounded
-pwsx3313 power 0.174 0.5 -> 0.417 Inexact Rounded
-pwsx3314 power 0.0174 0.5 -> 0.132 Inexact Rounded
-pwsx3315 power 0.175 0.5 -> 0.418 Inexact Rounded
-pwsx3316 power 0.0175 0.5 -> 0.132 Inexact Rounded
-pwsx3317 power 0.176 0.5 -> 0.420 Inexact Rounded
-pwsx3318 power 0.0176 0.5 -> 0.133 Inexact Rounded
-pwsx3319 power 0.177 0.5 -> 0.421 Inexact Rounded
-pwsx3320 power 0.0177 0.5 -> 0.133 Inexact Rounded
-pwsx3321 power 0.178 0.5 -> 0.422 Inexact Rounded
-pwsx3322 power 0.0178 0.5 -> 0.133 Inexact Rounded
-pwsx3323 power 0.179 0.5 -> 0.423 Inexact Rounded
-pwsx3324 power 0.0179 0.5 -> 0.134 Inexact Rounded
-pwsx3325 power 0.181 0.5 -> 0.425 Inexact Rounded
-pwsx3326 power 0.0181 0.5 -> 0.135 Inexact Rounded
-pwsx3327 power 0.182 0.5 -> 0.427 Inexact Rounded
-pwsx3328 power 0.0182 0.5 -> 0.135 Inexact Rounded
-pwsx3329 power 0.183 0.5 -> 0.428 Inexact Rounded
-pwsx3330 power 0.0183 0.5 -> 0.135 Inexact Rounded
-pwsx3331 power 0.184 0.5 -> 0.429 Inexact Rounded
-pwsx3332 power 0.0184 0.5 -> 0.136 Inexact Rounded
-pwsx3333 power 0.185 0.5 -> 0.430 Inexact Rounded
-pwsx3334 power 0.0185 0.5 -> 0.136 Inexact Rounded
-pwsx3335 power 0.186 0.5 -> 0.431 Inexact Rounded
-pwsx3336 power 0.0186 0.5 -> 0.136 Inexact Rounded
-pwsx3337 power 0.187 0.5 -> 0.432 Inexact Rounded
-pwsx3338 power 0.0187 0.5 -> 0.137 Inexact Rounded
-pwsx3339 power 0.188 0.5 -> 0.434 Inexact Rounded
-pwsx3340 power 0.0188 0.5 -> 0.137 Inexact Rounded
-pwsx3341 power 0.189 0.5 -> 0.435 Inexact Rounded
-pwsx3342 power 0.0189 0.5 -> 0.137 Inexact Rounded
-pwsx3343 power 0.191 0.5 -> 0.437 Inexact Rounded
-pwsx3344 power 0.0191 0.5 -> 0.138 Inexact Rounded
-pwsx3345 power 0.192 0.5 -> 0.438 Inexact Rounded
-pwsx3346 power 0.0192 0.5 -> 0.139 Inexact Rounded
-pwsx3347 power 0.193 0.5 -> 0.439 Inexact Rounded
-pwsx3348 power 0.0193 0.5 -> 0.139 Inexact Rounded
-pwsx3349 power 0.194 0.5 -> 0.440 Inexact Rounded
-pwsx3350 power 0.0194 0.5 -> 0.139 Inexact Rounded
-pwsx3351 power 0.195 0.5 -> 0.442 Inexact Rounded
-pwsx3352 power 0.0195 0.5 -> 0.140 Inexact Rounded
-pwsx3353 power 0.196 0.5 -> 0.443 Inexact Rounded
-pwsx3354 power 0.0196 0.5 -> 0.140 Inexact Rounded
-pwsx3355 power 0.197 0.5 -> 0.444 Inexact Rounded
-pwsx3356 power 0.0197 0.5 -> 0.140 Inexact Rounded
-pwsx3357 power 0.198 0.5 -> 0.445 Inexact Rounded
-pwsx3358 power 0.0198 0.5 -> 0.141 Inexact Rounded
-pwsx3359 power 0.199 0.5 -> 0.446 Inexact Rounded
-pwsx3360 power 0.0199 0.5 -> 0.141 Inexact Rounded
-pwsx3361 power 0.201 0.5 -> 0.448 Inexact Rounded
-pwsx3362 power 0.0201 0.5 -> 0.142 Inexact Rounded
-pwsx3363 power 0.202 0.5 -> 0.449 Inexact Rounded
-pwsx3364 power 0.0202 0.5 -> 0.142 Inexact Rounded
-pwsx3365 power 0.203 0.5 -> 0.451 Inexact Rounded
-pwsx3366 power 0.0203 0.5 -> 0.142 Inexact Rounded
-pwsx3367 power 0.204 0.5 -> 0.452 Inexact Rounded
-pwsx3368 power 0.0204 0.5 -> 0.143 Inexact Rounded
-pwsx3369 power 0.205 0.5 -> 0.453 Inexact Rounded
-pwsx3370 power 0.0205 0.5 -> 0.143 Inexact Rounded
-pwsx3371 power 0.206 0.5 -> 0.454 Inexact Rounded
-pwsx3372 power 0.0206 0.5 -> 0.144 Inexact Rounded
-pwsx3373 power 0.207 0.5 -> 0.455 Inexact Rounded
-pwsx3374 power 0.0207 0.5 -> 0.144 Inexact Rounded
-pwsx3375 power 0.208 0.5 -> 0.456 Inexact Rounded
-pwsx3376 power 0.0208 0.5 -> 0.144 Inexact Rounded
-pwsx3377 power 0.209 0.5 -> 0.457 Inexact Rounded
-pwsx3378 power 0.0209 0.5 -> 0.145 Inexact Rounded
-pwsx3379 power 0.211 0.5 -> 0.459 Inexact Rounded
-pwsx3380 power 0.0211 0.5 -> 0.145 Inexact Rounded
-pwsx3381 power 0.212 0.5 -> 0.460 Inexact Rounded
-pwsx3382 power 0.0212 0.5 -> 0.146 Inexact Rounded
-pwsx3383 power 0.213 0.5 -> 0.462 Inexact Rounded
-pwsx3384 power 0.0213 0.5 -> 0.146 Inexact Rounded
-pwsx3385 power 0.214 0.5 -> 0.463 Inexact Rounded
-pwsx3386 power 0.0214 0.5 -> 0.146 Inexact Rounded
-pwsx3387 power 0.215 0.5 -> 0.464 Inexact Rounded
-pwsx3388 power 0.0215 0.5 -> 0.147 Inexact Rounded
-pwsx3389 power 0.216 0.5 -> 0.465 Inexact Rounded
-pwsx3390 power 0.0216 0.5 -> 0.147 Inexact Rounded
-pwsx3391 power 0.217 0.5 -> 0.466 Inexact Rounded
-pwsx3392 power 0.0217 0.5 -> 0.147 Inexact Rounded
-pwsx3393 power 0.218 0.5 -> 0.467 Inexact Rounded
-pwsx3394 power 0.0218 0.5 -> 0.148 Inexact Rounded
-pwsx3395 power 0.219 0.5 -> 0.468 Inexact Rounded
-pwsx3396 power 0.0219 0.5 -> 0.148 Inexact Rounded
-pwsx3397 power 0.221 0.5 -> 0.470 Inexact Rounded
-pwsx3398 power 0.0221 0.5 -> 0.149 Inexact Rounded
-pwsx3399 power 0.222 0.5 -> 0.471 Inexact Rounded
-pwsx3400 power 0.0222 0.5 -> 0.149 Inexact Rounded
-pwsx3401 power 0.223 0.5 -> 0.472 Inexact Rounded
-pwsx3402 power 0.0223 0.5 -> 0.149 Inexact Rounded
-pwsx3403 power 0.224 0.5 -> 0.473 Inexact Rounded
-pwsx3404 power 0.0224 0.5 -> 0.150 Inexact Rounded
-pwsx3405 power 0.225 0.5 -> 0.474 Inexact Rounded
-pwsx3406 power 0.0225 0.5 -> 0.150 Inexact Rounded
-pwsx3407 power 0.226 0.5 -> 0.475 Inexact Rounded
-pwsx3408 power 0.0226 0.5 -> 0.150 Inexact Rounded
-pwsx3409 power 0.227 0.5 -> 0.476 Inexact Rounded
-pwsx3410 power 0.0227 0.5 -> 0.151 Inexact Rounded
-pwsx3411 power 0.228 0.5 -> 0.477 Inexact Rounded
-pwsx3412 power 0.0228 0.5 -> 0.151 Inexact Rounded
-pwsx3413 power 0.229 0.5 -> 0.479 Inexact Rounded
-pwsx3414 power 0.0229 0.5 -> 0.151 Inexact Rounded
-pwsx3415 power 0.231 0.5 -> 0.481 Inexact Rounded
-pwsx3416 power 0.0231 0.5 -> 0.152 Inexact Rounded
-pwsx3417 power 0.232 0.5 -> 0.482 Inexact Rounded
-pwsx3418 power 0.0232 0.5 -> 0.152 Inexact Rounded
-pwsx3419 power 0.233 0.5 -> 0.483 Inexact Rounded
-pwsx3420 power 0.0233 0.5 -> 0.153 Inexact Rounded
-pwsx3421 power 0.234 0.5 -> 0.484 Inexact Rounded
-pwsx3422 power 0.0234 0.5 -> 0.153 Inexact Rounded
-pwsx3423 power 0.235 0.5 -> 0.485 Inexact Rounded
-pwsx3424 power 0.0235 0.5 -> 0.153 Inexact Rounded
-pwsx3425 power 0.236 0.5 -> 0.486 Inexact Rounded
-pwsx3426 power 0.0236 0.5 -> 0.154 Inexact Rounded
-pwsx3427 power 0.237 0.5 -> 0.487 Inexact Rounded
-pwsx3428 power 0.0237 0.5 -> 0.154 Inexact Rounded
-pwsx3429 power 0.238 0.5 -> 0.488 Inexact Rounded
-pwsx3430 power 0.0238 0.5 -> 0.154 Inexact Rounded
-pwsx3431 power 0.239 0.5 -> 0.489 Inexact Rounded
-pwsx3432 power 0.0239 0.5 -> 0.155 Inexact Rounded
-pwsx3433 power 0.241 0.5 -> 0.491 Inexact Rounded
-pwsx3434 power 0.0241 0.5 -> 0.155 Inexact Rounded
-pwsx3435 power 0.242 0.5 -> 0.492 Inexact Rounded
-pwsx3436 power 0.0242 0.5 -> 0.156 Inexact Rounded
-pwsx3437 power 0.243 0.5 -> 0.493 Inexact Rounded
-pwsx3438 power 0.0243 0.5 -> 0.156 Inexact Rounded
-pwsx3439 power 0.244 0.5 -> 0.494 Inexact Rounded
-pwsx3440 power 0.0244 0.5 -> 0.156 Inexact Rounded
-pwsx3441 power 0.245 0.5 -> 0.495 Inexact Rounded
-pwsx3442 power 0.0245 0.5 -> 0.157 Inexact Rounded
-pwsx3443 power 0.246 0.5 -> 0.496 Inexact Rounded
-pwsx3444 power 0.0246 0.5 -> 0.157 Inexact Rounded
-pwsx3445 power 0.247 0.5 -> 0.497 Inexact Rounded
-pwsx3446 power 0.0247 0.5 -> 0.157 Inexact Rounded
-pwsx3447 power 0.248 0.5 -> 0.498 Inexact Rounded
-pwsx3448 power 0.0248 0.5 -> 0.157 Inexact Rounded
-pwsx3449 power 0.249 0.5 -> 0.499 Inexact Rounded
-pwsx3450 power 0.0249 0.5 -> 0.158 Inexact Rounded
-pwsx3451 power 0.251 0.5 -> 0.501 Inexact Rounded
-pwsx3452 power 0.0251 0.5 -> 0.158 Inexact Rounded
-pwsx3453 power 0.252 0.5 -> 0.502 Inexact Rounded
-pwsx3454 power 0.0252 0.5 -> 0.159 Inexact Rounded
-pwsx3455 power 0.253 0.5 -> 0.503 Inexact Rounded
-pwsx3456 power 0.0253 0.5 -> 0.159 Inexact Rounded
-pwsx3457 power 0.254 0.5 -> 0.504 Inexact Rounded
-pwsx3458 power 0.0254 0.5 -> 0.159 Inexact Rounded
-pwsx3459 power 0.255 0.5 -> 0.505 Inexact Rounded
-pwsx3460 power 0.0255 0.5 -> 0.160 Inexact Rounded
-pwsx3461 power 0.256 0.5 -> 0.506 Inexact Rounded
-pwsx3462 power 0.0256 0.5 -> 0.160 Inexact Rounded
-pwsx3463 power 0.257 0.5 -> 0.507 Inexact Rounded
-pwsx3464 power 0.0257 0.5 -> 0.160 Inexact Rounded
-pwsx3465 power 0.258 0.5 -> 0.508 Inexact Rounded
-pwsx3466 power 0.0258 0.5 -> 0.161 Inexact Rounded
-pwsx3467 power 0.259 0.5 -> 0.509 Inexact Rounded
-pwsx3468 power 0.0259 0.5 -> 0.161 Inexact Rounded
-pwsx3469 power 0.261 0.5 -> 0.511 Inexact Rounded
-pwsx3470 power 0.0261 0.5 -> 0.162 Inexact Rounded
-pwsx3471 power 0.262 0.5 -> 0.512 Inexact Rounded
-pwsx3472 power 0.0262 0.5 -> 0.162 Inexact Rounded
-pwsx3473 power 0.263 0.5 -> 0.513 Inexact Rounded
-pwsx3474 power 0.0263 0.5 -> 0.162 Inexact Rounded
-pwsx3475 power 0.264 0.5 -> 0.514 Inexact Rounded
-pwsx3476 power 0.0264 0.5 -> 0.162 Inexact Rounded
-pwsx3477 power 0.265 0.5 -> 0.515 Inexact Rounded
-pwsx3478 power 0.0265 0.5 -> 0.163 Inexact Rounded
-pwsx3479 power 0.266 0.5 -> 0.516 Inexact Rounded
-pwsx3480 power 0.0266 0.5 -> 0.163 Inexact Rounded
-pwsx3481 power 0.267 0.5 -> 0.517 Inexact Rounded
-pwsx3482 power 0.0267 0.5 -> 0.163 Inexact Rounded
-pwsx3483 power 0.268 0.5 -> 0.518 Inexact Rounded
-pwsx3484 power 0.0268 0.5 -> 0.164 Inexact Rounded
-pwsx3485 power 0.269 0.5 -> 0.519 Inexact Rounded
-pwsx3486 power 0.0269 0.5 -> 0.164 Inexact Rounded
-pwsx3487 power 0.271 0.5 -> 0.521 Inexact Rounded
-pwsx3488 power 0.0271 0.5 -> 0.165 Inexact Rounded
-pwsx3489 power 0.272 0.5 -> 0.522 Inexact Rounded
-pwsx3490 power 0.0272 0.5 -> 0.165 Inexact Rounded
-pwsx3491 power 0.273 0.5 -> 0.522 Inexact Rounded
-pwsx3492 power 0.0273 0.5 -> 0.165 Inexact Rounded
-pwsx3493 power 0.274 0.5 -> 0.523 Inexact Rounded
-pwsx3494 power 0.0274 0.5 -> 0.166 Inexact Rounded
-pwsx3495 power 0.275 0.5 -> 0.524 Inexact Rounded
-pwsx3496 power 0.0275 0.5 -> 0.166 Inexact Rounded
-pwsx3497 power 0.276 0.5 -> 0.525 Inexact Rounded
-pwsx3498 power 0.0276 0.5 -> 0.166 Inexact Rounded
-pwsx3499 power 0.277 0.5 -> 0.526 Inexact Rounded
-pwsx3500 power 0.0277 0.5 -> 0.166 Inexact Rounded
-pwsx3501 power 0.278 0.5 -> 0.527 Inexact Rounded
-pwsx3502 power 0.0278 0.5 -> 0.167 Inexact Rounded
-pwsx3503 power 0.279 0.5 -> 0.528 Inexact Rounded
-pwsx3504 power 0.0279 0.5 -> 0.167 Inexact Rounded
-pwsx3505 power 0.281 0.5 -> 0.530 Inexact Rounded
-pwsx3506 power 0.0281 0.5 -> 0.168 Inexact Rounded
-pwsx3507 power 0.282 0.5 -> 0.531 Inexact Rounded
-pwsx3508 power 0.0282 0.5 -> 0.168 Inexact Rounded
-pwsx3509 power 0.283 0.5 -> 0.532 Inexact Rounded
-pwsx3510 power 0.0283 0.5 -> 0.168 Inexact Rounded
-pwsx3511 power 0.284 0.5 -> 0.533 Inexact Rounded
-pwsx3512 power 0.0284 0.5 -> 0.169 Inexact Rounded
-pwsx3513 power 0.285 0.5 -> 0.534 Inexact Rounded
-pwsx3514 power 0.0285 0.5 -> 0.169 Inexact Rounded
-pwsx3515 power 0.286 0.5 -> 0.535 Inexact Rounded
-pwsx3516 power 0.0286 0.5 -> 0.169 Inexact Rounded
-pwsx3517 power 0.287 0.5 -> 0.536 Inexact Rounded
-pwsx3518 power 0.0287 0.5 -> 0.169 Inexact Rounded
-pwsx3519 power 0.288 0.5 -> 0.537 Inexact Rounded
-pwsx3520 power 0.0288 0.5 -> 0.170 Inexact Rounded
-pwsx3521 power 0.289 0.5 -> 0.538 Inexact Rounded
-pwsx3522 power 0.0289 0.5 -> 0.170 Inexact Rounded
-pwsx3523 power 0.291 0.5 -> 0.539 Inexact Rounded
-pwsx3524 power 0.0291 0.5 -> 0.171 Inexact Rounded
-pwsx3525 power 0.292 0.5 -> 0.540 Inexact Rounded
-pwsx3526 power 0.0292 0.5 -> 0.171 Inexact Rounded
-pwsx3527 power 0.293 0.5 -> 0.541 Inexact Rounded
-pwsx3528 power 0.0293 0.5 -> 0.171 Inexact Rounded
-pwsx3529 power 0.294 0.5 -> 0.542 Inexact Rounded
-pwsx3530 power 0.0294 0.5 -> 0.171 Inexact Rounded
-pwsx3531 power 0.295 0.5 -> 0.543 Inexact Rounded
-pwsx3532 power 0.0295 0.5 -> 0.172 Inexact Rounded
-pwsx3533 power 0.296 0.5 -> 0.544 Inexact Rounded
-pwsx3534 power 0.0296 0.5 -> 0.172 Inexact Rounded
-pwsx3535 power 0.297 0.5 -> 0.545 Inexact Rounded
-pwsx3536 power 0.0297 0.5 -> 0.172 Inexact Rounded
-pwsx3537 power 0.298 0.5 -> 0.546 Inexact Rounded
-pwsx3538 power 0.0298 0.5 -> 0.173 Inexact Rounded
-pwsx3539 power 0.299 0.5 -> 0.547 Inexact Rounded
-pwsx3540 power 0.0299 0.5 -> 0.173 Inexact Rounded
-pwsx3541 power 0.301 0.5 -> 0.549 Inexact Rounded
-pwsx3542 power 0.0301 0.5 -> 0.173 Inexact Rounded
-pwsx3543 power 0.302 0.5 -> 0.550 Inexact Rounded
-pwsx3544 power 0.0302 0.5 -> 0.174 Inexact Rounded
-pwsx3545 power 0.303 0.5 -> 0.550 Inexact Rounded
-pwsx3546 power 0.0303 0.5 -> 0.174 Inexact Rounded
-pwsx3547 power 0.304 0.5 -> 0.551 Inexact Rounded
-pwsx3548 power 0.0304 0.5 -> 0.174 Inexact Rounded
-pwsx3549 power 0.305 0.5 -> 0.552 Inexact Rounded
-pwsx3550 power 0.0305 0.5 -> 0.175 Inexact Rounded
-pwsx3551 power 0.306 0.5 -> 0.553 Inexact Rounded
-pwsx3552 power 0.0306 0.5 -> 0.175 Inexact Rounded
-pwsx3553 power 0.307 0.5 -> 0.554 Inexact Rounded
-pwsx3554 power 0.0307 0.5 -> 0.175 Inexact Rounded
-pwsx3555 power 0.308 0.5 -> 0.555 Inexact Rounded
-pwsx3556 power 0.0308 0.5 -> 0.175 Inexact Rounded
-pwsx3557 power 0.309 0.5 -> 0.556 Inexact Rounded
-pwsx3558 power 0.0309 0.5 -> 0.176 Inexact Rounded
-pwsx3559 power 0.311 0.5 -> 0.558 Inexact Rounded
-pwsx3560 power 0.0311 0.5 -> 0.176 Inexact Rounded
-pwsx3561 power 0.312 0.5 -> 0.559 Inexact Rounded
-pwsx3562 power 0.0312 0.5 -> 0.177 Inexact Rounded
-pwsx3563 power 0.313 0.5 -> 0.559 Inexact Rounded
-pwsx3564 power 0.0313 0.5 -> 0.177 Inexact Rounded
-pwsx3565 power 0.314 0.5 -> 0.560 Inexact Rounded
-pwsx3566 power 0.0314 0.5 -> 0.177 Inexact Rounded
-pwsx3567 power 0.315 0.5 -> 0.561 Inexact Rounded
-pwsx3568 power 0.0315 0.5 -> 0.177 Inexact Rounded
-pwsx3569 power 0.316 0.5 -> 0.562 Inexact Rounded
-pwsx3570 power 0.0316 0.5 -> 0.178 Inexact Rounded
-pwsx3571 power 0.317 0.5 -> 0.563 Inexact Rounded
-pwsx3572 power 0.0317 0.5 -> 0.178 Inexact Rounded
-pwsx3573 power 0.318 0.5 -> 0.564 Inexact Rounded
-pwsx3574 power 0.0318 0.5 -> 0.178 Inexact Rounded
-pwsx3575 power 0.319 0.5 -> 0.565 Inexact Rounded
-pwsx3576 power 0.0319 0.5 -> 0.179 Inexact Rounded
-pwsx3577 power 0.321 0.5 -> 0.567 Inexact Rounded
-pwsx3578 power 0.0321 0.5 -> 0.179 Inexact Rounded
-pwsx3579 power 0.322 0.5 -> 0.567 Inexact Rounded
-pwsx3580 power 0.0322 0.5 -> 0.179 Inexact Rounded
-pwsx3581 power 0.323 0.5 -> 0.568 Inexact Rounded
-pwsx3582 power 0.0323 0.5 -> 0.180 Inexact Rounded
-pwsx3583 power 0.324 0.5 -> 0.569 Inexact Rounded
-pwsx3584 power 0.0324 0.5 -> 0.180 Inexact Rounded
-pwsx3585 power 0.325 0.5 -> 0.570 Inexact Rounded
-pwsx3586 power 0.0325 0.5 -> 0.180 Inexact Rounded
-pwsx3587 power 0.326 0.5 -> 0.571 Inexact Rounded
-pwsx3588 power 0.0326 0.5 -> 0.181 Inexact Rounded
-pwsx3589 power 0.327 0.5 -> 0.572 Inexact Rounded
-pwsx3590 power 0.0327 0.5 -> 0.181 Inexact Rounded
-pwsx3591 power 0.328 0.5 -> 0.573 Inexact Rounded
-pwsx3592 power 0.0328 0.5 -> 0.181 Inexact Rounded
-pwsx3593 power 0.329 0.5 -> 0.574 Inexact Rounded
-pwsx3594 power 0.0329 0.5 -> 0.181 Inexact Rounded
-pwsx3595 power 0.331 0.5 -> 0.575 Inexact Rounded
-pwsx3596 power 0.0331 0.5 -> 0.182 Inexact Rounded
-pwsx3597 power 0.332 0.5 -> 0.576 Inexact Rounded
-pwsx3598 power 0.0332 0.5 -> 0.182 Inexact Rounded
-pwsx3599 power 0.333 0.5 -> 0.577 Inexact Rounded
-pwsx3600 power 0.0333 0.5 -> 0.182 Inexact Rounded
-pwsx3601 power 0.334 0.5 -> 0.578 Inexact Rounded
-pwsx3602 power 0.0334 0.5 -> 0.183 Inexact Rounded
-pwsx3603 power 0.335 0.5 -> 0.579 Inexact Rounded
-pwsx3604 power 0.0335 0.5 -> 0.183 Inexact Rounded
-pwsx3605 power 0.336 0.5 -> 0.580 Inexact Rounded
-pwsx3606 power 0.0336 0.5 -> 0.183 Inexact Rounded
-pwsx3607 power 0.337 0.5 -> 0.581 Inexact Rounded
-pwsx3608 power 0.0337 0.5 -> 0.184 Inexact Rounded
-pwsx3609 power 0.338 0.5 -> 0.581 Inexact Rounded
-pwsx3610 power 0.0338 0.5 -> 0.184 Inexact Rounded
-pwsx3611 power 0.339 0.5 -> 0.582 Inexact Rounded
-pwsx3612 power 0.0339 0.5 -> 0.184 Inexact Rounded
-pwsx3613 power 0.341 0.5 -> 0.584 Inexact Rounded
-pwsx3614 power 0.0341 0.5 -> 0.185 Inexact Rounded
-pwsx3615 power 0.342 0.5 -> 0.585 Inexact Rounded
-pwsx3616 power 0.0342 0.5 -> 0.185 Inexact Rounded
-pwsx3617 power 0.343 0.5 -> 0.586 Inexact Rounded
-pwsx3618 power 0.0343 0.5 -> 0.185 Inexact Rounded
-pwsx3619 power 0.344 0.5 -> 0.587 Inexact Rounded
-pwsx3620 power 0.0344 0.5 -> 0.185 Inexact Rounded
-pwsx3621 power 0.345 0.5 -> 0.587 Inexact Rounded
-pwsx3622 power 0.0345 0.5 -> 0.186 Inexact Rounded
-pwsx3623 power 0.346 0.5 -> 0.588 Inexact Rounded
-pwsx3624 power 0.0346 0.5 -> 0.186 Inexact Rounded
-pwsx3625 power 0.347 0.5 -> 0.589 Inexact Rounded
-pwsx3626 power 0.0347 0.5 -> 0.186 Inexact Rounded
-pwsx3627 power 0.348 0.5 -> 0.590 Inexact Rounded
-pwsx3628 power 0.0348 0.5 -> 0.187 Inexact Rounded
-pwsx3629 power 0.349 0.5 -> 0.591 Inexact Rounded
-pwsx3630 power 0.0349 0.5 -> 0.187 Inexact Rounded
-pwsx3631 power 0.351 0.5 -> 0.592 Inexact Rounded
-pwsx3632 power 0.0351 0.5 -> 0.187 Inexact Rounded
-pwsx3633 power 0.352 0.5 -> 0.593 Inexact Rounded
-pwsx3634 power 0.0352 0.5 -> 0.188 Inexact Rounded
-pwsx3635 power 0.353 0.5 -> 0.594 Inexact Rounded
-pwsx3636 power 0.0353 0.5 -> 0.188 Inexact Rounded
-pwsx3637 power 0.354 0.5 -> 0.595 Inexact Rounded
-pwsx3638 power 0.0354 0.5 -> 0.188 Inexact Rounded
-pwsx3639 power 0.355 0.5 -> 0.596 Inexact Rounded
-pwsx3640 power 0.0355 0.5 -> 0.188 Inexact Rounded
-pwsx3641 power 0.356 0.5 -> 0.597 Inexact Rounded
-pwsx3642 power 0.0356 0.5 -> 0.189 Inexact Rounded
-pwsx3643 power 0.357 0.5 -> 0.597 Inexact Rounded
-pwsx3644 power 0.0357 0.5 -> 0.189 Inexact Rounded
-pwsx3645 power 0.358 0.5 -> 0.598 Inexact Rounded
-pwsx3646 power 0.0358 0.5 -> 0.189 Inexact Rounded
-pwsx3647 power 0.359 0.5 -> 0.599 Inexact Rounded
-pwsx3648 power 0.0359 0.5 -> 0.189 Inexact Rounded
-pwsx3649 power 0.361 0.5 -> 0.601 Inexact Rounded
-pwsx3650 power 0.0361 0.5 -> 0.190 Inexact Rounded
-pwsx3651 power 0.362 0.5 -> 0.602 Inexact Rounded
-pwsx3652 power 0.0362 0.5 -> 0.190 Inexact Rounded
-pwsx3653 power 0.363 0.5 -> 0.602 Inexact Rounded
-pwsx3654 power 0.0363 0.5 -> 0.191 Inexact Rounded
-pwsx3655 power 0.364 0.5 -> 0.603 Inexact Rounded
-pwsx3656 power 0.0364 0.5 -> 0.191 Inexact Rounded
-pwsx3657 power 0.365 0.5 -> 0.604 Inexact Rounded
-pwsx3658 power 0.0365 0.5 -> 0.191 Inexact Rounded
-pwsx3659 power 0.366 0.5 -> 0.605 Inexact Rounded
-pwsx3660 power 0.0366 0.5 -> 0.191 Inexact Rounded
-pwsx3661 power 0.367 0.5 -> 0.606 Inexact Rounded
-pwsx3662 power 0.0367 0.5 -> 0.192 Inexact Rounded
-pwsx3663 power 0.368 0.5 -> 0.607 Inexact Rounded
-pwsx3664 power 0.0368 0.5 -> 0.192 Inexact Rounded
-pwsx3665 power 0.369 0.5 -> 0.607 Inexact Rounded
-pwsx3666 power 0.0369 0.5 -> 0.192 Inexact Rounded
-pwsx3667 power 0.371 0.5 -> 0.609 Inexact Rounded
-pwsx3668 power 0.0371 0.5 -> 0.193 Inexact Rounded
-pwsx3669 power 0.372 0.5 -> 0.610 Inexact Rounded
-pwsx3670 power 0.0372 0.5 -> 0.193 Inexact Rounded
-pwsx3671 power 0.373 0.5 -> 0.611 Inexact Rounded
-pwsx3672 power 0.0373 0.5 -> 0.193 Inexact Rounded
-pwsx3673 power 0.374 0.5 -> 0.612 Inexact Rounded
-pwsx3674 power 0.0374 0.5 -> 0.193 Inexact Rounded
-pwsx3675 power 0.375 0.5 -> 0.612 Inexact Rounded
-pwsx3676 power 0.0375 0.5 -> 0.194 Inexact Rounded
-pwsx3677 power 0.376 0.5 -> 0.613 Inexact Rounded
-pwsx3678 power 0.0376 0.5 -> 0.194 Inexact Rounded
-pwsx3679 power 0.377 0.5 -> 0.614 Inexact Rounded
-pwsx3680 power 0.0377 0.5 -> 0.194 Inexact Rounded
-pwsx3681 power 0.378 0.5 -> 0.615 Inexact Rounded
-pwsx3682 power 0.0378 0.5 -> 0.194 Inexact Rounded
-pwsx3683 power 0.379 0.5 -> 0.616 Inexact Rounded
-pwsx3684 power 0.0379 0.5 -> 0.195 Inexact Rounded
-pwsx3685 power 0.381 0.5 -> 0.617 Inexact Rounded
-pwsx3686 power 0.0381 0.5 -> 0.195 Inexact Rounded
-pwsx3687 power 0.382 0.5 -> 0.618 Inexact Rounded
-pwsx3688 power 0.0382 0.5 -> 0.195 Inexact Rounded
-pwsx3689 power 0.383 0.5 -> 0.619 Inexact Rounded
-pwsx3690 power 0.0383 0.5 -> 0.196 Inexact Rounded
-pwsx3691 power 0.384 0.5 -> 0.620 Inexact Rounded
-pwsx3692 power 0.0384 0.5 -> 0.196 Inexact Rounded
-pwsx3693 power 0.385 0.5 -> 0.620 Inexact Rounded
-pwsx3694 power 0.0385 0.5 -> 0.196 Inexact Rounded
-pwsx3695 power 0.386 0.5 -> 0.621 Inexact Rounded
-pwsx3696 power 0.0386 0.5 -> 0.196 Inexact Rounded
-pwsx3697 power 0.387 0.5 -> 0.622 Inexact Rounded
-pwsx3698 power 0.0387 0.5 -> 0.197 Inexact Rounded
-pwsx3699 power 0.388 0.5 -> 0.623 Inexact Rounded
-pwsx3700 power 0.0388 0.5 -> 0.197 Inexact Rounded
-pwsx3701 power 0.389 0.5 -> 0.624 Inexact Rounded
-pwsx3702 power 0.0389 0.5 -> 0.197 Inexact Rounded
-pwsx3703 power 0.391 0.5 -> 0.625 Inexact Rounded
-pwsx3704 power 0.0391 0.5 -> 0.198 Inexact Rounded
-pwsx3705 power 0.392 0.5 -> 0.626 Inexact Rounded
-pwsx3706 power 0.0392 0.5 -> 0.198 Inexact Rounded
-pwsx3707 power 0.393 0.5 -> 0.627 Inexact Rounded
-pwsx3708 power 0.0393 0.5 -> 0.198 Inexact Rounded
-pwsx3709 power 0.394 0.5 -> 0.628 Inexact Rounded
-pwsx3710 power 0.0394 0.5 -> 0.198 Inexact Rounded
-pwsx3711 power 0.395 0.5 -> 0.628 Inexact Rounded
-pwsx3712 power 0.0395 0.5 -> 0.199 Inexact Rounded
-pwsx3713 power 0.396 0.5 -> 0.629 Inexact Rounded
-pwsx3714 power 0.0396 0.5 -> 0.199 Inexact Rounded
-pwsx3715 power 0.397 0.5 -> 0.630 Inexact Rounded
-pwsx3716 power 0.0397 0.5 -> 0.199 Inexact Rounded
-pwsx3717 power 0.398 0.5 -> 0.631 Inexact Rounded
-pwsx3718 power 0.0398 0.5 -> 0.199 Inexact Rounded
-pwsx3719 power 0.399 0.5 -> 0.632 Inexact Rounded
-pwsx3720 power 0.0399 0.5 -> 0.200 Inexact Rounded
-pwsx3721 power 0.401 0.5 -> 0.633 Inexact Rounded
-pwsx3722 power 0.0401 0.5 -> 0.200 Inexact Rounded
-pwsx3723 power 0.402 0.5 -> 0.634 Inexact Rounded
-pwsx3724 power 0.0402 0.5 -> 0.200 Inexact Rounded
-pwsx3725 power 0.403 0.5 -> 0.635 Inexact Rounded
-pwsx3726 power 0.0403 0.5 -> 0.201 Inexact Rounded
-pwsx3727 power 0.404 0.5 -> 0.636 Inexact Rounded
-pwsx3728 power 0.0404 0.5 -> 0.201 Inexact Rounded
-pwsx3729 power 0.405 0.5 -> 0.636 Inexact Rounded
-pwsx3730 power 0.0405 0.5 -> 0.201 Inexact Rounded
-pwsx3731 power 0.406 0.5 -> 0.637 Inexact Rounded
-pwsx3732 power 0.0406 0.5 -> 0.201 Inexact Rounded
-pwsx3733 power 0.407 0.5 -> 0.638 Inexact Rounded
-pwsx3734 power 0.0407 0.5 -> 0.202 Inexact Rounded
-pwsx3735 power 0.408 0.5 -> 0.639 Inexact Rounded
-pwsx3736 power 0.0408 0.5 -> 0.202 Inexact Rounded
-pwsx3737 power 0.409 0.5 -> 0.640 Inexact Rounded
-pwsx3738 power 0.0409 0.5 -> 0.202 Inexact Rounded
-pwsx3739 power 0.411 0.5 -> 0.641 Inexact Rounded
-pwsx3740 power 0.0411 0.5 -> 0.203 Inexact Rounded
-pwsx3741 power 0.412 0.5 -> 0.642 Inexact Rounded
-pwsx3742 power 0.0412 0.5 -> 0.203 Inexact Rounded
-pwsx3743 power 0.413 0.5 -> 0.643 Inexact Rounded
-pwsx3744 power 0.0413 0.5 -> 0.203 Inexact Rounded
-pwsx3745 power 0.414 0.5 -> 0.643 Inexact Rounded
-pwsx3746 power 0.0414 0.5 -> 0.203 Inexact Rounded
-pwsx3747 power 0.415 0.5 -> 0.644 Inexact Rounded
-pwsx3748 power 0.0415 0.5 -> 0.204 Inexact Rounded
-pwsx3749 power 0.416 0.5 -> 0.645 Inexact Rounded
-pwsx3750 power 0.0416 0.5 -> 0.204 Inexact Rounded
-pwsx3751 power 0.417 0.5 -> 0.646 Inexact Rounded
-pwsx3752 power 0.0417 0.5 -> 0.204 Inexact Rounded
-pwsx3753 power 0.418 0.5 -> 0.647 Inexact Rounded
-pwsx3754 power 0.0418 0.5 -> 0.204 Inexact Rounded
-pwsx3755 power 0.419 0.5 -> 0.647 Inexact Rounded
-pwsx3756 power 0.0419 0.5 -> 0.205 Inexact Rounded
-pwsx3757 power 0.421 0.5 -> 0.649 Inexact Rounded
-pwsx3758 power 0.0421 0.5 -> 0.205 Inexact Rounded
-pwsx3759 power 0.422 0.5 -> 0.650 Inexact Rounded
-pwsx3760 power 0.0422 0.5 -> 0.205 Inexact Rounded
-pwsx3761 power 0.423 0.5 -> 0.650 Inexact Rounded
-pwsx3762 power 0.0423 0.5 -> 0.206 Inexact Rounded
-pwsx3763 power 0.424 0.5 -> 0.651 Inexact Rounded
-pwsx3764 power 0.0424 0.5 -> 0.206 Inexact Rounded
-pwsx3765 power 0.425 0.5 -> 0.652 Inexact Rounded
-pwsx3766 power 0.0425 0.5 -> 0.206 Inexact Rounded
-pwsx3767 power 0.426 0.5 -> 0.653 Inexact Rounded
-pwsx3768 power 0.0426 0.5 -> 0.206 Inexact Rounded
-pwsx3769 power 0.427 0.5 -> 0.653 Inexact Rounded
-pwsx3770 power 0.0427 0.5 -> 0.207 Inexact Rounded
-pwsx3771 power 0.428 0.5 -> 0.654 Inexact Rounded
-pwsx3772 power 0.0428 0.5 -> 0.207 Inexact Rounded
-pwsx3773 power 0.429 0.5 -> 0.655 Inexact Rounded
-pwsx3774 power 0.0429 0.5 -> 0.207 Inexact Rounded
-pwsx3775 power 0.431 0.5 -> 0.657 Inexact Rounded
-pwsx3776 power 0.0431 0.5 -> 0.208 Inexact Rounded
-pwsx3777 power 0.432 0.5 -> 0.657 Inexact Rounded
-pwsx3778 power 0.0432 0.5 -> 0.208 Inexact Rounded
-pwsx3779 power 0.433 0.5 -> 0.658 Inexact Rounded
-pwsx3780 power 0.0433 0.5 -> 0.208 Inexact Rounded
-pwsx3781 power 0.434 0.5 -> 0.659 Inexact Rounded
-pwsx3782 power 0.0434 0.5 -> 0.208 Inexact Rounded
-pwsx3783 power 0.435 0.5 -> 0.660 Inexact Rounded
-pwsx3784 power 0.0435 0.5 -> 0.209 Inexact Rounded
-pwsx3785 power 0.436 0.5 -> 0.660 Inexact Rounded
-pwsx3786 power 0.0436 0.5 -> 0.209 Inexact Rounded
-pwsx3787 power 0.437 0.5 -> 0.661 Inexact Rounded
-pwsx3788 power 0.0437 0.5 -> 0.209 Inexact Rounded
-pwsx3789 power 0.438 0.5 -> 0.662 Inexact Rounded
-pwsx3790 power 0.0438 0.5 -> 0.209 Inexact Rounded
-pwsx3791 power 0.439 0.5 -> 0.663 Inexact Rounded
-pwsx3792 power 0.0439 0.5 -> 0.210 Inexact Rounded
-pwsx3793 power 0.441 0.5 -> 0.664 Inexact Rounded
-pwsx3794 power 0.0441 0.5 -> 0.210 Inexact Rounded
-pwsx3795 power 0.442 0.5 -> 0.665 Inexact Rounded
-pwsx3796 power 0.0442 0.5 -> 0.210 Inexact Rounded
-pwsx3797 power 0.443 0.5 -> 0.666 Inexact Rounded
-pwsx3798 power 0.0443 0.5 -> 0.210 Inexact Rounded
-pwsx3799 power 0.444 0.5 -> 0.666 Inexact Rounded
-pwsx3800 power 0.0444 0.5 -> 0.211 Inexact Rounded
-pwsx3801 power 0.445 0.5 -> 0.667 Inexact Rounded
-pwsx3802 power 0.0445 0.5 -> 0.211 Inexact Rounded
-pwsx3803 power 0.446 0.5 -> 0.668 Inexact Rounded
-pwsx3804 power 0.0446 0.5 -> 0.211 Inexact Rounded
-pwsx3805 power 0.447 0.5 -> 0.669 Inexact Rounded
-pwsx3806 power 0.0447 0.5 -> 0.211 Inexact Rounded
-pwsx3807 power 0.448 0.5 -> 0.669 Inexact Rounded
-pwsx3808 power 0.0448 0.5 -> 0.212 Inexact Rounded
-pwsx3809 power 0.449 0.5 -> 0.670 Inexact Rounded
-pwsx3810 power 0.0449 0.5 -> 0.212 Inexact Rounded
-pwsx3811 power 0.451 0.5 -> 0.672 Inexact Rounded
-pwsx3812 power 0.0451 0.5 -> 0.212 Inexact Rounded
-pwsx3813 power 0.452 0.5 -> 0.672 Inexact Rounded
-pwsx3814 power 0.0452 0.5 -> 0.213 Inexact Rounded
-pwsx3815 power 0.453 0.5 -> 0.673 Inexact Rounded
-pwsx3816 power 0.0453 0.5 -> 0.213 Inexact Rounded
-pwsx3817 power 0.454 0.5 -> 0.674 Inexact Rounded
-pwsx3818 power 0.0454 0.5 -> 0.213 Inexact Rounded
-pwsx3819 power 0.455 0.5 -> 0.675 Inexact Rounded
-pwsx3820 power 0.0455 0.5 -> 0.213 Inexact Rounded
-pwsx3821 power 0.456 0.5 -> 0.675 Inexact Rounded
-pwsx3822 power 0.0456 0.5 -> 0.214 Inexact Rounded
-pwsx3823 power 0.457 0.5 -> 0.676 Inexact Rounded
-pwsx3824 power 0.0457 0.5 -> 0.214 Inexact Rounded
-pwsx3825 power 0.458 0.5 -> 0.677 Inexact Rounded
-pwsx3826 power 0.0458 0.5 -> 0.214 Inexact Rounded
-pwsx3827 power 0.459 0.5 -> 0.677 Inexact Rounded
-pwsx3828 power 0.0459 0.5 -> 0.214 Inexact Rounded
-pwsx3829 power 0.461 0.5 -> 0.679 Inexact Rounded
-pwsx3830 power 0.0461 0.5 -> 0.215 Inexact Rounded
-pwsx3831 power 0.462 0.5 -> 0.680 Inexact Rounded
-pwsx3832 power 0.0462 0.5 -> 0.215 Inexact Rounded
-pwsx3833 power 0.463 0.5 -> 0.680 Inexact Rounded
-pwsx3834 power 0.0463 0.5 -> 0.215 Inexact Rounded
-pwsx3835 power 0.464 0.5 -> 0.681 Inexact Rounded
-pwsx3836 power 0.0464 0.5 -> 0.215 Inexact Rounded
-pwsx3837 power 0.465 0.5 -> 0.682 Inexact Rounded
-pwsx3838 power 0.0465 0.5 -> 0.216 Inexact Rounded
-pwsx3839 power 0.466 0.5 -> 0.683 Inexact Rounded
-pwsx3840 power 0.0466 0.5 -> 0.216 Inexact Rounded
-pwsx3841 power 0.467 0.5 -> 0.683 Inexact Rounded
-pwsx3842 power 0.0467 0.5 -> 0.216 Inexact Rounded
-pwsx3843 power 0.468 0.5 -> 0.684 Inexact Rounded
-pwsx3844 power 0.0468 0.5 -> 0.216 Inexact Rounded
-pwsx3845 power 0.469 0.5 -> 0.685 Inexact Rounded
-pwsx3846 power 0.0469 0.5 -> 0.217 Inexact Rounded
-pwsx3847 power 0.471 0.5 -> 0.686 Inexact Rounded
-pwsx3848 power 0.0471 0.5 -> 0.217 Inexact Rounded
-pwsx3849 power 0.472 0.5 -> 0.687 Inexact Rounded
-pwsx3850 power 0.0472 0.5 -> 0.217 Inexact Rounded
-pwsx3851 power 0.473 0.5 -> 0.688 Inexact Rounded
-pwsx3852 power 0.0473 0.5 -> 0.217 Inexact Rounded
-pwsx3853 power 0.474 0.5 -> 0.688 Inexact Rounded
-pwsx3854 power 0.0474 0.5 -> 0.218 Inexact Rounded
-pwsx3855 power 0.475 0.5 -> 0.689 Inexact Rounded
-pwsx3856 power 0.0475 0.5 -> 0.218 Inexact Rounded
-pwsx3857 power 0.476 0.5 -> 0.690 Inexact Rounded
-pwsx3858 power 0.0476 0.5 -> 0.218 Inexact Rounded
-pwsx3859 power 0.477 0.5 -> 0.691 Inexact Rounded
-pwsx3860 power 0.0477 0.5 -> 0.218 Inexact Rounded
-pwsx3861 power 0.478 0.5 -> 0.691 Inexact Rounded
-pwsx3862 power 0.0478 0.5 -> 0.219 Inexact Rounded
-pwsx3863 power 0.479 0.5 -> 0.692 Inexact Rounded
-pwsx3864 power 0.0479 0.5 -> 0.219 Inexact Rounded
-pwsx3865 power 0.481 0.5 -> 0.694 Inexact Rounded
-pwsx3866 power 0.0481 0.5 -> 0.219 Inexact Rounded
-pwsx3867 power 0.482 0.5 -> 0.694 Inexact Rounded
-pwsx3868 power 0.0482 0.5 -> 0.220 Inexact Rounded
-pwsx3869 power 0.483 0.5 -> 0.695 Inexact Rounded
-pwsx3870 power 0.0483 0.5 -> 0.220 Inexact Rounded
-pwsx3871 power 0.484 0.5 -> 0.696 Inexact Rounded
-pwsx3872 power 0.0484 0.5 -> 0.220 Inexact Rounded
-pwsx3873 power 0.485 0.5 -> 0.696 Inexact Rounded
-pwsx3874 power 0.0485 0.5 -> 0.220 Inexact Rounded
-pwsx3875 power 0.486 0.5 -> 0.697 Inexact Rounded
-pwsx3876 power 0.0486 0.5 -> 0.220 Inexact Rounded
-pwsx3877 power 0.487 0.5 -> 0.698 Inexact Rounded
-pwsx3878 power 0.0487 0.5 -> 0.221 Inexact Rounded
-pwsx3879 power 0.488 0.5 -> 0.699 Inexact Rounded
-pwsx3880 power 0.0488 0.5 -> 0.221 Inexact Rounded
-pwsx3881 power 0.489 0.5 -> 0.699 Inexact Rounded
-pwsx3882 power 0.0489 0.5 -> 0.221 Inexact Rounded
-pwsx3883 power 0.491 0.5 -> 0.701 Inexact Rounded
-pwsx3884 power 0.0491 0.5 -> 0.222 Inexact Rounded
-pwsx3885 power 0.492 0.5 -> 0.701 Inexact Rounded
-pwsx3886 power 0.0492 0.5 -> 0.222 Inexact Rounded
-pwsx3887 power 0.493 0.5 -> 0.702 Inexact Rounded
-pwsx3888 power 0.0493 0.5 -> 0.222 Inexact Rounded
-pwsx3889 power 0.494 0.5 -> 0.703 Inexact Rounded
-pwsx3890 power 0.0494 0.5 -> 0.222 Inexact Rounded
-pwsx3891 power 0.495 0.5 -> 0.704 Inexact Rounded
-pwsx3892 power 0.0495 0.5 -> 0.222 Inexact Rounded
-pwsx3893 power 0.496 0.5 -> 0.704 Inexact Rounded
-pwsx3894 power 0.0496 0.5 -> 0.223 Inexact Rounded
-pwsx3895 power 0.497 0.5 -> 0.705 Inexact Rounded
-pwsx3896 power 0.0497 0.5 -> 0.223 Inexact Rounded
-pwsx3897 power 0.498 0.5 -> 0.706 Inexact Rounded
-pwsx3898 power 0.0498 0.5 -> 0.223 Inexact Rounded
-pwsx3899 power 0.499 0.5 -> 0.706 Inexact Rounded
-pwsx3900 power 0.0499 0.5 -> 0.223 Inexact Rounded
-pwsx3901 power 0.501 0.5 -> 0.708 Inexact Rounded
-pwsx3902 power 0.0501 0.5 -> 0.224 Inexact Rounded
-pwsx3903 power 0.502 0.5 -> 0.709 Inexact Rounded
-pwsx3904 power 0.0502 0.5 -> 0.224 Inexact Rounded
-pwsx3905 power 0.503 0.5 -> 0.709 Inexact Rounded
-pwsx3906 power 0.0503 0.5 -> 0.224 Inexact Rounded
-pwsx3907 power 0.504 0.5 -> 0.710 Inexact Rounded
-pwsx3908 power 0.0504 0.5 -> 0.224 Inexact Rounded
-pwsx3909 power 0.505 0.5 -> 0.711 Inexact Rounded
-pwsx3910 power 0.0505 0.5 -> 0.225 Inexact Rounded
-pwsx3911 power 0.506 0.5 -> 0.711 Inexact Rounded
-pwsx3912 power 0.0506 0.5 -> 0.225 Inexact Rounded
-pwsx3913 power 0.507 0.5 -> 0.712 Inexact Rounded
-pwsx3914 power 0.0507 0.5 -> 0.225 Inexact Rounded
-pwsx3915 power 0.508 0.5 -> 0.713 Inexact Rounded
-pwsx3916 power 0.0508 0.5 -> 0.225 Inexact Rounded
-pwsx3917 power 0.509 0.5 -> 0.713 Inexact Rounded
-pwsx3918 power 0.0509 0.5 -> 0.226 Inexact Rounded
-pwsx3919 power 0.511 0.5 -> 0.715 Inexact Rounded
-pwsx3920 power 0.0511 0.5 -> 0.226 Inexact Rounded
-pwsx3921 power 0.512 0.5 -> 0.716 Inexact Rounded
-pwsx3922 power 0.0512 0.5 -> 0.226 Inexact Rounded
-pwsx3923 power 0.513 0.5 -> 0.716 Inexact Rounded
-pwsx3924 power 0.0513 0.5 -> 0.226 Inexact Rounded
-pwsx3925 power 0.514 0.5 -> 0.717 Inexact Rounded
-pwsx3926 power 0.0514 0.5 -> 0.227 Inexact Rounded
-pwsx3927 power 0.515 0.5 -> 0.718 Inexact Rounded
-pwsx3928 power 0.0515 0.5 -> 0.227 Inexact Rounded
-pwsx3929 power 0.516 0.5 -> 0.718 Inexact Rounded
-pwsx3930 power 0.0516 0.5 -> 0.227 Inexact Rounded
-pwsx3931 power 0.517 0.5 -> 0.719 Inexact Rounded
-pwsx3932 power 0.0517 0.5 -> 0.227 Inexact Rounded
-pwsx3933 power 0.518 0.5 -> 0.720 Inexact Rounded
-pwsx3934 power 0.0518 0.5 -> 0.228 Inexact Rounded
-pwsx3935 power 0.519 0.5 -> 0.720 Inexact Rounded
-pwsx3936 power 0.0519 0.5 -> 0.228 Inexact Rounded
-pwsx3937 power 0.521 0.5 -> 0.722 Inexact Rounded
-pwsx3938 power 0.0521 0.5 -> 0.228 Inexact Rounded
-pwsx3939 power 0.522 0.5 -> 0.722 Inexact Rounded
-pwsx3940 power 0.0522 0.5 -> 0.228 Inexact Rounded
-pwsx3941 power 0.523 0.5 -> 0.723 Inexact Rounded
-pwsx3942 power 0.0523 0.5 -> 0.229 Inexact Rounded
-pwsx3943 power 0.524 0.5 -> 0.724 Inexact Rounded
-pwsx3944 power 0.0524 0.5 -> 0.229 Inexact Rounded
-pwsx3945 power 0.525 0.5 -> 0.725 Inexact Rounded
-pwsx3946 power 0.0525 0.5 -> 0.229 Inexact Rounded
-pwsx3947 power 0.526 0.5 -> 0.725 Inexact Rounded
-pwsx3948 power 0.0526 0.5 -> 0.229 Inexact Rounded
-pwsx3949 power 0.527 0.5 -> 0.726 Inexact Rounded
-pwsx3950 power 0.0527 0.5 -> 0.230 Inexact Rounded
-pwsx3951 power 0.528 0.5 -> 0.727 Inexact Rounded
-pwsx3952 power 0.0528 0.5 -> 0.230 Inexact Rounded
-pwsx3953 power 0.529 0.5 -> 0.727 Inexact Rounded
-pwsx3954 power 0.0529 0.5 -> 0.230 Inexact Rounded
-pwsx3955 power 0.531 0.5 -> 0.729 Inexact Rounded
-pwsx3956 power 0.0531 0.5 -> 0.230 Inexact Rounded
-pwsx3957 power 0.532 0.5 -> 0.729 Inexact Rounded
-pwsx3958 power 0.0532 0.5 -> 0.231 Inexact Rounded
-pwsx3959 power 0.533 0.5 -> 0.730 Inexact Rounded
-pwsx3960 power 0.0533 0.5 -> 0.231 Inexact Rounded
-pwsx3961 power 0.534 0.5 -> 0.731 Inexact Rounded
-pwsx3962 power 0.0534 0.5 -> 0.231 Inexact Rounded
-pwsx3963 power 0.535 0.5 -> 0.731 Inexact Rounded
-pwsx3964 power 0.0535 0.5 -> 0.231 Inexact Rounded
-pwsx3965 power 0.536 0.5 -> 0.732 Inexact Rounded
-pwsx3966 power 0.0536 0.5 -> 0.232 Inexact Rounded
-pwsx3967 power 0.537 0.5 -> 0.733 Inexact Rounded
-pwsx3968 power 0.0537 0.5 -> 0.232 Inexact Rounded
-pwsx3969 power 0.538 0.5 -> 0.733 Inexact Rounded
-pwsx3970 power 0.0538 0.5 -> 0.232 Inexact Rounded
-pwsx3971 power 0.539 0.5 -> 0.734 Inexact Rounded
-pwsx3972 power 0.0539 0.5 -> 0.232 Inexact Rounded
-pwsx3973 power 0.541 0.5 -> 0.736 Inexact Rounded
-pwsx3974 power 0.0541 0.5 -> 0.233 Inexact Rounded
-pwsx3975 power 0.542 0.5 -> 0.736 Inexact Rounded
-pwsx3976 power 0.0542 0.5 -> 0.233 Inexact Rounded
-pwsx3977 power 0.543 0.5 -> 0.737 Inexact Rounded
-pwsx3978 power 0.0543 0.5 -> 0.233 Inexact Rounded
-pwsx3979 power 0.544 0.5 -> 0.738 Inexact Rounded
-pwsx3980 power 0.0544 0.5 -> 0.233 Inexact Rounded
-pwsx3981 power 0.545 0.5 -> 0.738 Inexact Rounded
-pwsx3982 power 0.0545 0.5 -> 0.233 Inexact Rounded
-pwsx3983 power 0.546 0.5 -> 0.739 Inexact Rounded
-pwsx3984 power 0.0546 0.5 -> 0.234 Inexact Rounded
-pwsx3985 power 0.547 0.5 -> 0.740 Inexact Rounded
-pwsx3986 power 0.0547 0.5 -> 0.234 Inexact Rounded
-pwsx3987 power 0.548 0.5 -> 0.740 Inexact Rounded
-pwsx3988 power 0.0548 0.5 -> 0.234 Inexact Rounded
-pwsx3989 power 0.549 0.5 -> 0.741 Inexact Rounded
-pwsx3990 power 0.0549 0.5 -> 0.234 Inexact Rounded
-pwsx3991 power 0.551 0.5 -> 0.742 Inexact Rounded
-pwsx3992 power 0.0551 0.5 -> 0.235 Inexact Rounded
-pwsx3993 power 0.552 0.5 -> 0.743 Inexact Rounded
-pwsx3994 power 0.0552 0.5 -> 0.235 Inexact Rounded
-pwsx3995 power 0.553 0.5 -> 0.744 Inexact Rounded
-pwsx3996 power 0.0553 0.5 -> 0.235 Inexact Rounded
-pwsx3997 power 0.554 0.5 -> 0.744 Inexact Rounded
-pwsx3998 power 0.0554 0.5 -> 0.235 Inexact Rounded
-pwsx3999 power 0.555 0.5 -> 0.745 Inexact Rounded
-pwsx4000 power 0.0555 0.5 -> 0.236 Inexact Rounded
-pwsx4001 power 0.556 0.5 -> 0.746 Inexact Rounded
-pwsx4002 power 0.0556 0.5 -> 0.236 Inexact Rounded
-pwsx4003 power 0.557 0.5 -> 0.746 Inexact Rounded
-pwsx4004 power 0.0557 0.5 -> 0.236 Inexact Rounded
-pwsx4005 power 0.558 0.5 -> 0.747 Inexact Rounded
-pwsx4006 power 0.0558 0.5 -> 0.236 Inexact Rounded
-pwsx4007 power 0.559 0.5 -> 0.748 Inexact Rounded
-pwsx4008 power 0.0559 0.5 -> 0.236 Inexact Rounded
-pwsx4009 power 0.561 0.5 -> 0.749 Inexact Rounded
-pwsx4010 power 0.0561 0.5 -> 0.237 Inexact Rounded
-pwsx4011 power 0.562 0.5 -> 0.750 Inexact Rounded
-pwsx4012 power 0.0562 0.5 -> 0.237 Inexact Rounded
-pwsx4013 power 0.563 0.5 -> 0.750 Inexact Rounded
-pwsx4014 power 0.0563 0.5 -> 0.237 Inexact Rounded
-pwsx4015 power 0.564 0.5 -> 0.751 Inexact Rounded
-pwsx4016 power 0.0564 0.5 -> 0.237 Inexact Rounded
-pwsx4017 power 0.565 0.5 -> 0.752 Inexact Rounded
-pwsx4018 power 0.0565 0.5 -> 0.238 Inexact Rounded
-pwsx4019 power 0.566 0.5 -> 0.752 Inexact Rounded
-pwsx4020 power 0.0566 0.5 -> 0.238 Inexact Rounded
-pwsx4021 power 0.567 0.5 -> 0.753 Inexact Rounded
-pwsx4022 power 0.0567 0.5 -> 0.238 Inexact Rounded
-pwsx4023 power 0.568 0.5 -> 0.754 Inexact Rounded
-pwsx4024 power 0.0568 0.5 -> 0.238 Inexact Rounded
-pwsx4025 power 0.569 0.5 -> 0.754 Inexact Rounded
-pwsx4026 power 0.0569 0.5 -> 0.239 Inexact Rounded
-pwsx4027 power 0.571 0.5 -> 0.756 Inexact Rounded
-pwsx4028 power 0.0571 0.5 -> 0.239 Inexact Rounded
-pwsx4029 power 0.572 0.5 -> 0.756 Inexact Rounded
-pwsx4030 power 0.0572 0.5 -> 0.239 Inexact Rounded
-pwsx4031 power 0.573 0.5 -> 0.757 Inexact Rounded
-pwsx4032 power 0.0573 0.5 -> 0.239 Inexact Rounded
-pwsx4033 power 0.574 0.5 -> 0.758 Inexact Rounded
-pwsx4034 power 0.0574 0.5 -> 0.240 Inexact Rounded
-pwsx4035 power 0.575 0.5 -> 0.758 Inexact Rounded
-pwsx4036 power 0.0575 0.5 -> 0.240 Inexact Rounded
-pwsx4037 power 0.576 0.5 -> 0.759 Inexact Rounded
-pwsx4038 power 0.0576 0.5 -> 0.240 Inexact Rounded
-pwsx4039 power 0.577 0.5 -> 0.760 Inexact Rounded
-pwsx4040 power 0.0577 0.5 -> 0.240 Inexact Rounded
-pwsx4041 power 0.578 0.5 -> 0.760 Inexact Rounded
-pwsx4042 power 0.0578 0.5 -> 0.240 Inexact Rounded
-pwsx4043 power 0.579 0.5 -> 0.761 Inexact Rounded
-pwsx4044 power 0.0579 0.5 -> 0.241 Inexact Rounded
-pwsx4045 power 0.581 0.5 -> 0.762 Inexact Rounded
-pwsx4046 power 0.0581 0.5 -> 0.241 Inexact Rounded
-pwsx4047 power 0.582 0.5 -> 0.763 Inexact Rounded
-pwsx4048 power 0.0582 0.5 -> 0.241 Inexact Rounded
-pwsx4049 power 0.583 0.5 -> 0.764 Inexact Rounded
-pwsx4050 power 0.0583 0.5 -> 0.241 Inexact Rounded
-pwsx4051 power 0.584 0.5 -> 0.764 Inexact Rounded
-pwsx4052 power 0.0584 0.5 -> 0.242 Inexact Rounded
-pwsx4053 power 0.585 0.5 -> 0.765 Inexact Rounded
-pwsx4054 power 0.0585 0.5 -> 0.242 Inexact Rounded
-pwsx4055 power 0.586 0.5 -> 0.766 Inexact Rounded
-pwsx4056 power 0.0586 0.5 -> 0.242 Inexact Rounded
-pwsx4057 power 0.587 0.5 -> 0.766 Inexact Rounded
-pwsx4058 power 0.0587 0.5 -> 0.242 Inexact Rounded
-pwsx4059 power 0.588 0.5 -> 0.767 Inexact Rounded
-pwsx4060 power 0.0588 0.5 -> 0.242 Inexact Rounded
-pwsx4061 power 0.589 0.5 -> 0.767 Inexact Rounded
-pwsx4062 power 0.0589 0.5 -> 0.243 Inexact Rounded
-pwsx4063 power 0.591 0.5 -> 0.769 Inexact Rounded
-pwsx4064 power 0.0591 0.5 -> 0.243 Inexact Rounded
-pwsx4065 power 0.592 0.5 -> 0.769 Inexact Rounded
-pwsx4066 power 0.0592 0.5 -> 0.243 Inexact Rounded
-pwsx4067 power 0.593 0.5 -> 0.770 Inexact Rounded
-pwsx4068 power 0.0593 0.5 -> 0.244 Inexact Rounded
-pwsx4069 power 0.594 0.5 -> 0.771 Inexact Rounded
-pwsx4070 power 0.0594 0.5 -> 0.244 Inexact Rounded
-pwsx4071 power 0.595 0.5 -> 0.771 Inexact Rounded
-pwsx4072 power 0.0595 0.5 -> 0.244 Inexact Rounded
-pwsx4073 power 0.596 0.5 -> 0.772 Inexact Rounded
-pwsx4074 power 0.0596 0.5 -> 0.244 Inexact Rounded
-pwsx4075 power 0.597 0.5 -> 0.773 Inexact Rounded
-pwsx4076 power 0.0597 0.5 -> 0.244 Inexact Rounded
-pwsx4077 power 0.598 0.5 -> 0.773 Inexact Rounded
-pwsx4078 power 0.0598 0.5 -> 0.245 Inexact Rounded
-pwsx4079 power 0.599 0.5 -> 0.774 Inexact Rounded
-pwsx4080 power 0.0599 0.5 -> 0.245 Inexact Rounded
-pwsx4081 power 0.601 0.5 -> 0.775 Inexact Rounded
-pwsx4082 power 0.0601 0.5 -> 0.245 Inexact Rounded
-pwsx4083 power 0.602 0.5 -> 0.776 Inexact Rounded
-pwsx4084 power 0.0602 0.5 -> 0.245 Inexact Rounded
-pwsx4085 power 0.603 0.5 -> 0.777 Inexact Rounded
-pwsx4086 power 0.0603 0.5 -> 0.246 Inexact Rounded
-pwsx4087 power 0.604 0.5 -> 0.777 Inexact Rounded
-pwsx4088 power 0.0604 0.5 -> 0.246 Inexact Rounded
-pwsx4089 power 0.605 0.5 -> 0.778 Inexact Rounded
-pwsx4090 power 0.0605 0.5 -> 0.246 Inexact Rounded
-pwsx4091 power 0.606 0.5 -> 0.778 Inexact Rounded
-pwsx4092 power 0.0606 0.5 -> 0.246 Inexact Rounded
-pwsx4093 power 0.607 0.5 -> 0.779 Inexact Rounded
-pwsx4094 power 0.0607 0.5 -> 0.246 Inexact Rounded
-pwsx4095 power 0.608 0.5 -> 0.780 Inexact Rounded
-pwsx4096 power 0.0608 0.5 -> 0.247 Inexact Rounded
-pwsx4097 power 0.609 0.5 -> 0.780 Inexact Rounded
-pwsx4098 power 0.0609 0.5 -> 0.247 Inexact Rounded
-pwsx4099 power 0.611 0.5 -> 0.782 Inexact Rounded
-pwsx4100 power 0.0611 0.5 -> 0.247 Inexact Rounded
-pwsx4101 power 0.612 0.5 -> 0.782 Inexact Rounded
-pwsx4102 power 0.0612 0.5 -> 0.247 Inexact Rounded
-pwsx4103 power 0.613 0.5 -> 0.783 Inexact Rounded
-pwsx4104 power 0.0613 0.5 -> 0.248 Inexact Rounded
-pwsx4105 power 0.614 0.5 -> 0.784 Inexact Rounded
-pwsx4106 power 0.0614 0.5 -> 0.248 Inexact Rounded
-pwsx4107 power 0.615 0.5 -> 0.784 Inexact Rounded
-pwsx4108 power 0.0615 0.5 -> 0.248 Inexact Rounded
-pwsx4109 power 0.616 0.5 -> 0.785 Inexact Rounded
-pwsx4110 power 0.0616 0.5 -> 0.248 Inexact Rounded
-pwsx4111 power 0.617 0.5 -> 0.785 Inexact Rounded
-pwsx4112 power 0.0617 0.5 -> 0.248 Inexact Rounded
-pwsx4113 power 0.618 0.5 -> 0.786 Inexact Rounded
-pwsx4114 power 0.0618 0.5 -> 0.249 Inexact Rounded
-pwsx4115 power 0.619 0.5 -> 0.787 Inexact Rounded
-pwsx4116 power 0.0619 0.5 -> 0.249 Inexact Rounded
-pwsx4117 power 0.621 0.5 -> 0.788 Inexact Rounded
-pwsx4118 power 0.0621 0.5 -> 0.249 Inexact Rounded
-pwsx4119 power 0.622 0.5 -> 0.789 Inexact Rounded
-pwsx4120 power 0.0622 0.5 -> 0.249 Inexact Rounded
-pwsx4121 power 0.623 0.5 -> 0.789 Inexact Rounded
-pwsx4122 power 0.0623 0.5 -> 0.250 Inexact Rounded
-pwsx4123 power 0.624 0.5 -> 0.790 Inexact Rounded
-pwsx4124 power 0.0624 0.5 -> 0.250 Inexact Rounded
-pwsx4125 power 0.625 0.5 -> 0.791 Inexact Rounded
-pwsx4126 power 0.0625 0.5 -> 0.250 Inexact Rounded
-pwsx4127 power 0.626 0.5 -> 0.791 Inexact Rounded
-pwsx4128 power 0.0626 0.5 -> 0.250 Inexact Rounded
-pwsx4129 power 0.627 0.5 -> 0.792 Inexact Rounded
-pwsx4130 power 0.0627 0.5 -> 0.250 Inexact Rounded
-pwsx4131 power 0.628 0.5 -> 0.792 Inexact Rounded
-pwsx4132 power 0.0628 0.5 -> 0.251 Inexact Rounded
-pwsx4133 power 0.629 0.5 -> 0.793 Inexact Rounded
-pwsx4134 power 0.0629 0.5 -> 0.251 Inexact Rounded
-pwsx4135 power 0.631 0.5 -> 0.794 Inexact Rounded
-pwsx4136 power 0.0631 0.5 -> 0.251 Inexact Rounded
-pwsx4137 power 0.632 0.5 -> 0.795 Inexact Rounded
-pwsx4138 power 0.0632 0.5 -> 0.251 Inexact Rounded
-pwsx4139 power 0.633 0.5 -> 0.796 Inexact Rounded
-pwsx4140 power 0.0633 0.5 -> 0.252 Inexact Rounded
-pwsx4141 power 0.634 0.5 -> 0.796 Inexact Rounded
-pwsx4142 power 0.0634 0.5 -> 0.252 Inexact Rounded
-pwsx4143 power 0.635 0.5 -> 0.797 Inexact Rounded
-pwsx4144 power 0.0635 0.5 -> 0.252 Inexact Rounded
-pwsx4145 power 0.636 0.5 -> 0.797 Inexact Rounded
-pwsx4146 power 0.0636 0.5 -> 0.252 Inexact Rounded
-pwsx4147 power 0.637 0.5 -> 0.798 Inexact Rounded
-pwsx4148 power 0.0637 0.5 -> 0.252 Inexact Rounded
-pwsx4149 power 0.638 0.5 -> 0.799 Inexact Rounded
-pwsx4150 power 0.0638 0.5 -> 0.253 Inexact Rounded
-pwsx4151 power 0.639 0.5 -> 0.799 Inexact Rounded
-pwsx4152 power 0.0639 0.5 -> 0.253 Inexact Rounded
-pwsx4153 power 0.641 0.5 -> 0.801 Inexact Rounded
-pwsx4154 power 0.0641 0.5 -> 0.253 Inexact Rounded
-pwsx4155 power 0.642 0.5 -> 0.801 Inexact Rounded
-pwsx4156 power 0.0642 0.5 -> 0.253 Inexact Rounded
-pwsx4157 power 0.643 0.5 -> 0.802 Inexact Rounded
-pwsx4158 power 0.0643 0.5 -> 0.254 Inexact Rounded
-pwsx4159 power 0.644 0.5 -> 0.802 Inexact Rounded
-pwsx4160 power 0.0644 0.5 -> 0.254 Inexact Rounded
-pwsx4161 power 0.645 0.5 -> 0.803 Inexact Rounded
-pwsx4162 power 0.0645 0.5 -> 0.254 Inexact Rounded
-pwsx4163 power 0.646 0.5 -> 0.804 Inexact Rounded
-pwsx4164 power 0.0646 0.5 -> 0.254 Inexact Rounded
-pwsx4165 power 0.647 0.5 -> 0.804 Inexact Rounded
-pwsx4166 power 0.0647 0.5 -> 0.254 Inexact Rounded
-pwsx4167 power 0.648 0.5 -> 0.805 Inexact Rounded
-pwsx4168 power 0.0648 0.5 -> 0.255 Inexact Rounded
-pwsx4169 power 0.649 0.5 -> 0.806 Inexact Rounded
-pwsx4170 power 0.0649 0.5 -> 0.255 Inexact Rounded
-pwsx4171 power 0.651 0.5 -> 0.807 Inexact Rounded
-pwsx4172 power 0.0651 0.5 -> 0.255 Inexact Rounded
-pwsx4173 power 0.652 0.5 -> 0.807 Inexact Rounded
-pwsx4174 power 0.0652 0.5 -> 0.255 Inexact Rounded
-pwsx4175 power 0.653 0.5 -> 0.808 Inexact Rounded
-pwsx4176 power 0.0653 0.5 -> 0.256 Inexact Rounded
-pwsx4177 power 0.654 0.5 -> 0.809 Inexact Rounded
-pwsx4178 power 0.0654 0.5 -> 0.256 Inexact Rounded
-pwsx4179 power 0.655 0.5 -> 0.809 Inexact Rounded
-pwsx4180 power 0.0655 0.5 -> 0.256 Inexact Rounded
-pwsx4181 power 0.656 0.5 -> 0.810 Inexact Rounded
-pwsx4182 power 0.0656 0.5 -> 0.256 Inexact Rounded
-pwsx4183 power 0.657 0.5 -> 0.811 Inexact Rounded
-pwsx4184 power 0.0657 0.5 -> 0.256 Inexact Rounded
-pwsx4185 power 0.658 0.5 -> 0.811 Inexact Rounded
-pwsx4186 power 0.0658 0.5 -> 0.257 Inexact Rounded
-pwsx4187 power 0.659 0.5 -> 0.812 Inexact Rounded
-pwsx4188 power 0.0659 0.5 -> 0.257 Inexact Rounded
-pwsx4189 power 0.661 0.5 -> 0.813 Inexact Rounded
-pwsx4190 power 0.0661 0.5 -> 0.257 Inexact Rounded
-pwsx4191 power 0.662 0.5 -> 0.814 Inexact Rounded
-pwsx4192 power 0.0662 0.5 -> 0.257 Inexact Rounded
-pwsx4193 power 0.663 0.5 -> 0.814 Inexact Rounded
-pwsx4194 power 0.0663 0.5 -> 0.257 Inexact Rounded
-pwsx4195 power 0.664 0.5 -> 0.815 Inexact Rounded
-pwsx4196 power 0.0664 0.5 -> 0.258 Inexact Rounded
-pwsx4197 power 0.665 0.5 -> 0.815 Inexact Rounded
-pwsx4198 power 0.0665 0.5 -> 0.258 Inexact Rounded
-pwsx4199 power 0.666 0.5 -> 0.816 Inexact Rounded
-pwsx4200 power 0.0666 0.5 -> 0.258 Inexact Rounded
-pwsx4201 power 0.667 0.5 -> 0.817 Inexact Rounded
-pwsx4202 power 0.0667 0.5 -> 0.258 Inexact Rounded
-pwsx4203 power 0.668 0.5 -> 0.817 Inexact Rounded
-pwsx4204 power 0.0668 0.5 -> 0.258 Inexact Rounded
-pwsx4205 power 0.669 0.5 -> 0.818 Inexact Rounded
-pwsx4206 power 0.0669 0.5 -> 0.259 Inexact Rounded
-pwsx4207 power 0.671 0.5 -> 0.819 Inexact Rounded
-pwsx4208 power 0.0671 0.5 -> 0.259 Inexact Rounded
-pwsx4209 power 0.672 0.5 -> 0.820 Inexact Rounded
-pwsx4210 power 0.0672 0.5 -> 0.259 Inexact Rounded
-pwsx4211 power 0.673 0.5 -> 0.820 Inexact Rounded
-pwsx4212 power 0.0673 0.5 -> 0.259 Inexact Rounded
-pwsx4213 power 0.674 0.5 -> 0.821 Inexact Rounded
-pwsx4214 power 0.0674 0.5 -> 0.260 Inexact Rounded
-pwsx4215 power 0.675 0.5 -> 0.822 Inexact Rounded
-pwsx4216 power 0.0675 0.5 -> 0.260 Inexact Rounded
-pwsx4217 power 0.676 0.5 -> 0.822 Inexact Rounded
-pwsx4218 power 0.0676 0.5 -> 0.260 Inexact Rounded
-pwsx4219 power 0.677 0.5 -> 0.823 Inexact Rounded
-pwsx4220 power 0.0677 0.5 -> 0.260 Inexact Rounded
-pwsx4221 power 0.678 0.5 -> 0.823 Inexact Rounded
-pwsx4222 power 0.0678 0.5 -> 0.260 Inexact Rounded
-pwsx4223 power 0.679 0.5 -> 0.824 Inexact Rounded
-pwsx4224 power 0.0679 0.5 -> 0.261 Inexact Rounded
-pwsx4225 power 0.681 0.5 -> 0.825 Inexact Rounded
-pwsx4226 power 0.0681 0.5 -> 0.261 Inexact Rounded
-pwsx4227 power 0.682 0.5 -> 0.826 Inexact Rounded
-pwsx4228 power 0.0682 0.5 -> 0.261 Inexact Rounded
-pwsx4229 power 0.683 0.5 -> 0.826 Inexact Rounded
-pwsx4230 power 0.0683 0.5 -> 0.261 Inexact Rounded
-pwsx4231 power 0.684 0.5 -> 0.827 Inexact Rounded
-pwsx4232 power 0.0684 0.5 -> 0.262 Inexact Rounded
-pwsx4233 power 0.685 0.5 -> 0.828 Inexact Rounded
-pwsx4234 power 0.0685 0.5 -> 0.262 Inexact Rounded
-pwsx4235 power 0.686 0.5 -> 0.828 Inexact Rounded
-pwsx4236 power 0.0686 0.5 -> 0.262 Inexact Rounded
-pwsx4237 power 0.687 0.5 -> 0.829 Inexact Rounded
-pwsx4238 power 0.0687 0.5 -> 0.262 Inexact Rounded
-pwsx4239 power 0.688 0.5 -> 0.829 Inexact Rounded
-pwsx4240 power 0.0688 0.5 -> 0.262 Inexact Rounded
-pwsx4241 power 0.689 0.5 -> 0.830 Inexact Rounded
-pwsx4242 power 0.0689 0.5 -> 0.262 Inexact Rounded
-pwsx4243 power 0.691 0.5 -> 0.831 Inexact Rounded
-pwsx4244 power 0.0691 0.5 -> 0.263 Inexact Rounded
-pwsx4245 power 0.692 0.5 -> 0.832 Inexact Rounded
-pwsx4246 power 0.0692 0.5 -> 0.263 Inexact Rounded
-pwsx4247 power 0.693 0.5 -> 0.832 Inexact Rounded
-pwsx4248 power 0.0693 0.5 -> 0.263 Inexact Rounded
-pwsx4249 power 0.694 0.5 -> 0.833 Inexact Rounded
-pwsx4250 power 0.0694 0.5 -> 0.263 Inexact Rounded
-pwsx4251 power 0.695 0.5 -> 0.834 Inexact Rounded
-pwsx4252 power 0.0695 0.5 -> 0.264 Inexact Rounded
-pwsx4253 power 0.696 0.5 -> 0.834 Inexact Rounded
-pwsx4254 power 0.0696 0.5 -> 0.264 Inexact Rounded
-pwsx4255 power 0.697 0.5 -> 0.835 Inexact Rounded
-pwsx4256 power 0.0697 0.5 -> 0.264 Inexact Rounded
-pwsx4257 power 0.698 0.5 -> 0.835 Inexact Rounded
-pwsx4258 power 0.0698 0.5 -> 0.264 Inexact Rounded
-pwsx4259 power 0.699 0.5 -> 0.836 Inexact Rounded
-pwsx4260 power 0.0699 0.5 -> 0.264 Inexact Rounded
-pwsx4261 power 0.701 0.5 -> 0.837 Inexact Rounded
-pwsx4262 power 0.0701 0.5 -> 0.265 Inexact Rounded
-pwsx4263 power 0.702 0.5 -> 0.838 Inexact Rounded
-pwsx4264 power 0.0702 0.5 -> 0.265 Inexact Rounded
-pwsx4265 power 0.703 0.5 -> 0.838 Inexact Rounded
-pwsx4266 power 0.0703 0.5 -> 0.265 Inexact Rounded
-pwsx4267 power 0.704 0.5 -> 0.839 Inexact Rounded
-pwsx4268 power 0.0704 0.5 -> 0.265 Inexact Rounded
-pwsx4269 power 0.705 0.5 -> 0.840 Inexact Rounded
-pwsx4270 power 0.0705 0.5 -> 0.266 Inexact Rounded
-pwsx4271 power 0.706 0.5 -> 0.840 Inexact Rounded
-pwsx4272 power 0.0706 0.5 -> 0.266 Inexact Rounded
-pwsx4273 power 0.707 0.5 -> 0.841 Inexact Rounded
-pwsx4274 power 0.0707 0.5 -> 0.266 Inexact Rounded
-pwsx4275 power 0.708 0.5 -> 0.841 Inexact Rounded
-pwsx4276 power 0.0708 0.5 -> 0.266 Inexact Rounded
-pwsx4277 power 0.709 0.5 -> 0.842 Inexact Rounded
-pwsx4278 power 0.0709 0.5 -> 0.266 Inexact Rounded
-pwsx4279 power 0.711 0.5 -> 0.843 Inexact Rounded
-pwsx4280 power 0.0711 0.5 -> 0.267 Inexact Rounded
-pwsx4281 power 0.712 0.5 -> 0.844 Inexact Rounded
-pwsx4282 power 0.0712 0.5 -> 0.267 Inexact Rounded
-pwsx4283 power 0.713 0.5 -> 0.844 Inexact Rounded
-pwsx4284 power 0.0713 0.5 -> 0.267 Inexact Rounded
-pwsx4285 power 0.714 0.5 -> 0.845 Inexact Rounded
-pwsx4286 power 0.0714 0.5 -> 0.267 Inexact Rounded
-pwsx4287 power 0.715 0.5 -> 0.846 Inexact Rounded
-pwsx4288 power 0.0715 0.5 -> 0.267 Inexact Rounded
-pwsx4289 power 0.716 0.5 -> 0.846 Inexact Rounded
-pwsx4290 power 0.0716 0.5 -> 0.268 Inexact Rounded
-pwsx4291 power 0.717 0.5 -> 0.847 Inexact Rounded
-pwsx4292 power 0.0717 0.5 -> 0.268 Inexact Rounded
-pwsx4293 power 0.718 0.5 -> 0.847 Inexact Rounded
-pwsx4294 power 0.0718 0.5 -> 0.268 Inexact Rounded
-pwsx4295 power 0.719 0.5 -> 0.848 Inexact Rounded
-pwsx4296 power 0.0719 0.5 -> 0.268 Inexact Rounded
-pwsx4297 power 0.721 0.5 -> 0.849 Inexact Rounded
-pwsx4298 power 0.0721 0.5 -> 0.269 Inexact Rounded
-pwsx4299 power 0.722 0.5 -> 0.850 Inexact Rounded
-pwsx4300 power 0.0722 0.5 -> 0.269 Inexact Rounded
-pwsx4301 power 0.723 0.5 -> 0.850 Inexact Rounded
-pwsx4302 power 0.0723 0.5 -> 0.269 Inexact Rounded
-pwsx4303 power 0.724 0.5 -> 0.851 Inexact Rounded
-pwsx4304 power 0.0724 0.5 -> 0.269 Inexact Rounded
-pwsx4305 power 0.725 0.5 -> 0.851 Inexact Rounded
-pwsx4306 power 0.0725 0.5 -> 0.269 Inexact Rounded
-pwsx4307 power 0.726 0.5 -> 0.852 Inexact Rounded
-pwsx4308 power 0.0726 0.5 -> 0.269 Inexact Rounded
-pwsx4309 power 0.727 0.5 -> 0.853 Inexact Rounded
-pwsx4310 power 0.0727 0.5 -> 0.270 Inexact Rounded
-pwsx4311 power 0.728 0.5 -> 0.853 Inexact Rounded
-pwsx4312 power 0.0728 0.5 -> 0.270 Inexact Rounded
-pwsx4313 power 0.729 0.5 -> 0.854 Inexact Rounded
-pwsx4314 power 0.0729 0.5 -> 0.270 Inexact Rounded
-pwsx4315 power 0.731 0.5 -> 0.855 Inexact Rounded
-pwsx4316 power 0.0731 0.5 -> 0.270 Inexact Rounded
-pwsx4317 power 0.732 0.5 -> 0.856 Inexact Rounded
-pwsx4318 power 0.0732 0.5 -> 0.271 Inexact Rounded
-pwsx4319 power 0.733 0.5 -> 0.856 Inexact Rounded
-pwsx4320 power 0.0733 0.5 -> 0.271 Inexact Rounded
-pwsx4321 power 0.734 0.5 -> 0.857 Inexact Rounded
-pwsx4322 power 0.0734 0.5 -> 0.271 Inexact Rounded
-pwsx4323 power 0.735 0.5 -> 0.857 Inexact Rounded
-pwsx4324 power 0.0735 0.5 -> 0.271 Inexact Rounded
-pwsx4325 power 0.736 0.5 -> 0.858 Inexact Rounded
-pwsx4326 power 0.0736 0.5 -> 0.271 Inexact Rounded
-pwsx4327 power 0.737 0.5 -> 0.858 Inexact Rounded
-pwsx4328 power 0.0737 0.5 -> 0.271 Inexact Rounded
-pwsx4329 power 0.738 0.5 -> 0.859 Inexact Rounded
-pwsx4330 power 0.0738 0.5 -> 0.272 Inexact Rounded
-pwsx4331 power 0.739 0.5 -> 0.860 Inexact Rounded
-pwsx4332 power 0.0739 0.5 -> 0.272 Inexact Rounded
-pwsx4333 power 0.741 0.5 -> 0.861 Inexact Rounded
-pwsx4334 power 0.0741 0.5 -> 0.272 Inexact Rounded
-pwsx4335 power 0.742 0.5 -> 0.861 Inexact Rounded
-pwsx4336 power 0.0742 0.5 -> 0.272 Inexact Rounded
-pwsx4337 power 0.743 0.5 -> 0.862 Inexact Rounded
-pwsx4338 power 0.0743 0.5 -> 0.273 Inexact Rounded
-pwsx4339 power 0.744 0.5 -> 0.863 Inexact Rounded
-pwsx4340 power 0.0744 0.5 -> 0.273 Inexact Rounded
-pwsx4341 power 0.745 0.5 -> 0.863 Inexact Rounded
-pwsx4342 power 0.0745 0.5 -> 0.273 Inexact Rounded
-pwsx4343 power 0.746 0.5 -> 0.864 Inexact Rounded
-pwsx4344 power 0.0746 0.5 -> 0.273 Inexact Rounded
-pwsx4345 power 0.747 0.5 -> 0.864 Inexact Rounded
-pwsx4346 power 0.0747 0.5 -> 0.273 Inexact Rounded
-pwsx4347 power 0.748 0.5 -> 0.865 Inexact Rounded
-pwsx4348 power 0.0748 0.5 -> 0.273 Inexact Rounded
-pwsx4349 power 0.749 0.5 -> 0.865 Inexact Rounded
-pwsx4350 power 0.0749 0.5 -> 0.274 Inexact Rounded
-pwsx4351 power 0.751 0.5 -> 0.867 Inexact Rounded
-pwsx4352 power 0.0751 0.5 -> 0.274 Inexact Rounded
-pwsx4353 power 0.752 0.5 -> 0.867 Inexact Rounded
-pwsx4354 power 0.0752 0.5 -> 0.274 Inexact Rounded
-pwsx4355 power 0.753 0.5 -> 0.868 Inexact Rounded
-pwsx4356 power 0.0753 0.5 -> 0.274 Inexact Rounded
-pwsx4357 power 0.754 0.5 -> 0.868 Inexact Rounded
-pwsx4358 power 0.0754 0.5 -> 0.275 Inexact Rounded
-pwsx4359 power 0.755 0.5 -> 0.869 Inexact Rounded
-pwsx4360 power 0.0755 0.5 -> 0.275 Inexact Rounded
-pwsx4361 power 0.756 0.5 -> 0.869 Inexact Rounded
-pwsx4362 power 0.0756 0.5 -> 0.275 Inexact Rounded
-pwsx4363 power 0.757 0.5 -> 0.870 Inexact Rounded
-pwsx4364 power 0.0757 0.5 -> 0.275 Inexact Rounded
-pwsx4365 power 0.758 0.5 -> 0.871 Inexact Rounded
-pwsx4366 power 0.0758 0.5 -> 0.275 Inexact Rounded
-pwsx4367 power 0.759 0.5 -> 0.871 Inexact Rounded
-pwsx4368 power 0.0759 0.5 -> 0.275 Inexact Rounded
-pwsx4369 power 0.761 0.5 -> 0.872 Inexact Rounded
-pwsx4370 power 0.0761 0.5 -> 0.276 Inexact Rounded
-pwsx4371 power 0.762 0.5 -> 0.873 Inexact Rounded
-pwsx4372 power 0.0762 0.5 -> 0.276 Inexact Rounded
-pwsx4373 power 0.763 0.5 -> 0.873 Inexact Rounded
-pwsx4374 power 0.0763 0.5 -> 0.276 Inexact Rounded
-pwsx4375 power 0.764 0.5 -> 0.874 Inexact Rounded
-pwsx4376 power 0.0764 0.5 -> 0.276 Inexact Rounded
-pwsx4377 power 0.765 0.5 -> 0.875 Inexact Rounded
-pwsx4378 power 0.0765 0.5 -> 0.277 Inexact Rounded
-pwsx4379 power 0.766 0.5 -> 0.875 Inexact Rounded
-pwsx4380 power 0.0766 0.5 -> 0.277 Inexact Rounded
-pwsx4381 power 0.767 0.5 -> 0.876 Inexact Rounded
-pwsx4382 power 0.0767 0.5 -> 0.277 Inexact Rounded
-pwsx4383 power 0.768 0.5 -> 0.876 Inexact Rounded
-pwsx4384 power 0.0768 0.5 -> 0.277 Inexact Rounded
-pwsx4385 power 0.769 0.5 -> 0.877 Inexact Rounded
-pwsx4386 power 0.0769 0.5 -> 0.277 Inexact Rounded
-pwsx4387 power 0.771 0.5 -> 0.878 Inexact Rounded
-pwsx4388 power 0.0771 0.5 -> 0.278 Inexact Rounded
-pwsx4389 power 0.772 0.5 -> 0.879 Inexact Rounded
-pwsx4390 power 0.0772 0.5 -> 0.278 Inexact Rounded
-pwsx4391 power 0.773 0.5 -> 0.879 Inexact Rounded
-pwsx4392 power 0.0773 0.5 -> 0.278 Inexact Rounded
-pwsx4393 power 0.774 0.5 -> 0.880 Inexact Rounded
-pwsx4394 power 0.0774 0.5 -> 0.278 Inexact Rounded
-pwsx4395 power 0.775 0.5 -> 0.880 Inexact Rounded
-pwsx4396 power 0.0775 0.5 -> 0.278 Inexact Rounded
-pwsx4397 power 0.776 0.5 -> 0.881 Inexact Rounded
-pwsx4398 power 0.0776 0.5 -> 0.279 Inexact Rounded
-pwsx4399 power 0.777 0.5 -> 0.881 Inexact Rounded
-pwsx4400 power 0.0777 0.5 -> 0.279 Inexact Rounded
-pwsx4401 power 0.778 0.5 -> 0.882 Inexact Rounded
-pwsx4402 power 0.0778 0.5 -> 0.279 Inexact Rounded
-pwsx4403 power 0.779 0.5 -> 0.883 Inexact Rounded
-pwsx4404 power 0.0779 0.5 -> 0.279 Inexact Rounded
-pwsx4405 power 0.781 0.5 -> 0.884 Inexact Rounded
-pwsx4406 power 0.0781 0.5 -> 0.279 Inexact Rounded
-pwsx4407 power 0.782 0.5 -> 0.884 Inexact Rounded
-pwsx4408 power 0.0782 0.5 -> 0.280 Inexact Rounded
-pwsx4409 power 0.783 0.5 -> 0.885 Inexact Rounded
-pwsx4410 power 0.0783 0.5 -> 0.280 Inexact Rounded
-pwsx4411 power 0.784 0.5 -> 0.885 Inexact Rounded
-pwsx4412 power 0.0784 0.5 -> 0.280 Inexact Rounded
-pwsx4413 power 0.785 0.5 -> 0.886 Inexact Rounded
-pwsx4414 power 0.0785 0.5 -> 0.280 Inexact Rounded
-pwsx4415 power 0.786 0.5 -> 0.887 Inexact Rounded
-pwsx4416 power 0.0786 0.5 -> 0.280 Inexact Rounded
-pwsx4417 power 0.787 0.5 -> 0.887 Inexact Rounded
-pwsx4418 power 0.0787 0.5 -> 0.281 Inexact Rounded
-pwsx4419 power 0.788 0.5 -> 0.888 Inexact Rounded
-pwsx4420 power 0.0788 0.5 -> 0.281 Inexact Rounded
-pwsx4421 power 0.789 0.5 -> 0.888 Inexact Rounded
-pwsx4422 power 0.0789 0.5 -> 0.281 Inexact Rounded
-pwsx4423 power 0.791 0.5 -> 0.889 Inexact Rounded
-pwsx4424 power 0.0791 0.5 -> 0.281 Inexact Rounded
-pwsx4425 power 0.792 0.5 -> 0.890 Inexact Rounded
-pwsx4426 power 0.0792 0.5 -> 0.281 Inexact Rounded
-pwsx4427 power 0.793 0.5 -> 0.891 Inexact Rounded
-pwsx4428 power 0.0793 0.5 -> 0.282 Inexact Rounded
-pwsx4429 power 0.794 0.5 -> 0.891 Inexact Rounded
-pwsx4430 power 0.0794 0.5 -> 0.282 Inexact Rounded
-pwsx4431 power 0.795 0.5 -> 0.892 Inexact Rounded
-pwsx4432 power 0.0795 0.5 -> 0.282 Inexact Rounded
-pwsx4433 power 0.796 0.5 -> 0.892 Inexact Rounded
-pwsx4434 power 0.0796 0.5 -> 0.282 Inexact Rounded
-pwsx4435 power 0.797 0.5 -> 0.893 Inexact Rounded
-pwsx4436 power 0.0797 0.5 -> 0.282 Inexact Rounded
-pwsx4437 power 0.798 0.5 -> 0.893 Inexact Rounded
-pwsx4438 power 0.0798 0.5 -> 0.282 Inexact Rounded
-pwsx4439 power 0.799 0.5 -> 0.894 Inexact Rounded
-pwsx4440 power 0.0799 0.5 -> 0.283 Inexact Rounded
-pwsx4441 power 0.801 0.5 -> 0.895 Inexact Rounded
-pwsx4442 power 0.0801 0.5 -> 0.283 Inexact Rounded
-pwsx4443 power 0.802 0.5 -> 0.896 Inexact Rounded
-pwsx4444 power 0.0802 0.5 -> 0.283 Inexact Rounded
-pwsx4445 power 0.803 0.5 -> 0.896 Inexact Rounded
-pwsx4446 power 0.0803 0.5 -> 0.283 Inexact Rounded
-pwsx4447 power 0.804 0.5 -> 0.897 Inexact Rounded
-pwsx4448 power 0.0804 0.5 -> 0.284 Inexact Rounded
-pwsx4449 power 0.805 0.5 -> 0.897 Inexact Rounded
-pwsx4450 power 0.0805 0.5 -> 0.284 Inexact Rounded
-pwsx4451 power 0.806 0.5 -> 0.898 Inexact Rounded
-pwsx4452 power 0.0806 0.5 -> 0.284 Inexact Rounded
-pwsx4453 power 0.807 0.5 -> 0.898 Inexact Rounded
-pwsx4454 power 0.0807 0.5 -> 0.284 Inexact Rounded
-pwsx4455 power 0.808 0.5 -> 0.899 Inexact Rounded
-pwsx4456 power 0.0808 0.5 -> 0.284 Inexact Rounded
-pwsx4457 power 0.809 0.5 -> 0.899 Inexact Rounded
-pwsx4458 power 0.0809 0.5 -> 0.284 Inexact Rounded
-pwsx4459 power 0.811 0.5 -> 0.901 Inexact Rounded
-pwsx4460 power 0.0811 0.5 -> 0.285 Inexact Rounded
-pwsx4461 power 0.812 0.5 -> 0.901 Inexact Rounded
-pwsx4462 power 0.0812 0.5 -> 0.285 Inexact Rounded
-pwsx4463 power 0.813 0.5 -> 0.902 Inexact Rounded
-pwsx4464 power 0.0813 0.5 -> 0.285 Inexact Rounded
-pwsx4465 power 0.814 0.5 -> 0.902 Inexact Rounded
-pwsx4466 power 0.0814 0.5 -> 0.285 Inexact Rounded
-pwsx4467 power 0.815 0.5 -> 0.903 Inexact Rounded
-pwsx4468 power 0.0815 0.5 -> 0.285 Inexact Rounded
-pwsx4469 power 0.816 0.5 -> 0.903 Inexact Rounded
-pwsx4470 power 0.0816 0.5 -> 0.286 Inexact Rounded
-pwsx4471 power 0.817 0.5 -> 0.904 Inexact Rounded
-pwsx4472 power 0.0817 0.5 -> 0.286 Inexact Rounded
-pwsx4473 power 0.818 0.5 -> 0.904 Inexact Rounded
-pwsx4474 power 0.0818 0.5 -> 0.286 Inexact Rounded
-pwsx4475 power 0.819 0.5 -> 0.905 Inexact Rounded
-pwsx4476 power 0.0819 0.5 -> 0.286 Inexact Rounded
-pwsx4477 power 0.821 0.5 -> 0.906 Inexact Rounded
-pwsx4478 power 0.0821 0.5 -> 0.287 Inexact Rounded
-pwsx4479 power 0.822 0.5 -> 0.907 Inexact Rounded
-pwsx4480 power 0.0822 0.5 -> 0.287 Inexact Rounded
-pwsx4481 power 0.823 0.5 -> 0.907 Inexact Rounded
-pwsx4482 power 0.0823 0.5 -> 0.287 Inexact Rounded
-pwsx4483 power 0.824 0.5 -> 0.908 Inexact Rounded
-pwsx4484 power 0.0824 0.5 -> 0.287 Inexact Rounded
-pwsx4485 power 0.825 0.5 -> 0.908 Inexact Rounded
-pwsx4486 power 0.0825 0.5 -> 0.287 Inexact Rounded
-pwsx4487 power 0.826 0.5 -> 0.909 Inexact Rounded
-pwsx4488 power 0.0826 0.5 -> 0.287 Inexact Rounded
-pwsx4489 power 0.827 0.5 -> 0.909 Inexact Rounded
-pwsx4490 power 0.0827 0.5 -> 0.288 Inexact Rounded
-pwsx4491 power 0.828 0.5 -> 0.910 Inexact Rounded
-pwsx4492 power 0.0828 0.5 -> 0.288 Inexact Rounded
-pwsx4493 power 0.829 0.5 -> 0.910 Inexact Rounded
-pwsx4494 power 0.0829 0.5 -> 0.288 Inexact Rounded
-pwsx4495 power 0.831 0.5 -> 0.912 Inexact Rounded
-pwsx4496 power 0.0831 0.5 -> 0.288 Inexact Rounded
-pwsx4497 power 0.832 0.5 -> 0.912 Inexact Rounded
-pwsx4498 power 0.0832 0.5 -> 0.288 Inexact Rounded
-pwsx4499 power 0.833 0.5 -> 0.913 Inexact Rounded
-pwsx4500 power 0.0833 0.5 -> 0.289 Inexact Rounded
-pwsx4501 power 0.834 0.5 -> 0.913 Inexact Rounded
-pwsx4502 power 0.0834 0.5 -> 0.289 Inexact Rounded
-pwsx4503 power 0.835 0.5 -> 0.914 Inexact Rounded
-pwsx4504 power 0.0835 0.5 -> 0.289 Inexact Rounded
-pwsx4505 power 0.836 0.5 -> 0.914 Inexact Rounded
-pwsx4506 power 0.0836 0.5 -> 0.289 Inexact Rounded
-pwsx4507 power 0.837 0.5 -> 0.915 Inexact Rounded
-pwsx4508 power 0.0837 0.5 -> 0.289 Inexact Rounded
-pwsx4509 power 0.838 0.5 -> 0.915 Inexact Rounded
-pwsx4510 power 0.0838 0.5 -> 0.289 Inexact Rounded
-pwsx4511 power 0.839 0.5 -> 0.916 Inexact Rounded
-pwsx4512 power 0.0839 0.5 -> 0.290 Inexact Rounded
-pwsx4513 power 0.841 0.5 -> 0.917 Inexact Rounded
-pwsx4514 power 0.0841 0.5 -> 0.290 Inexact Rounded
-pwsx4515 power 0.842 0.5 -> 0.918 Inexact Rounded
-pwsx4516 power 0.0842 0.5 -> 0.290 Inexact Rounded
-pwsx4517 power 0.843 0.5 -> 0.918 Inexact Rounded
-pwsx4518 power 0.0843 0.5 -> 0.290 Inexact Rounded
-pwsx4519 power 0.844 0.5 -> 0.919 Inexact Rounded
-pwsx4520 power 0.0844 0.5 -> 0.291 Inexact Rounded
-pwsx4521 power 0.845 0.5 -> 0.919 Inexact Rounded
-pwsx4522 power 0.0845 0.5 -> 0.291 Inexact Rounded
-pwsx4523 power 0.846 0.5 -> 0.920 Inexact Rounded
-pwsx4524 power 0.0846 0.5 -> 0.291 Inexact Rounded
-pwsx4525 power 0.847 0.5 -> 0.920 Inexact Rounded
-pwsx4526 power 0.0847 0.5 -> 0.291 Inexact Rounded
-pwsx4527 power 0.848 0.5 -> 0.921 Inexact Rounded
-pwsx4528 power 0.0848 0.5 -> 0.291 Inexact Rounded
-pwsx4529 power 0.849 0.5 -> 0.921 Inexact Rounded
-pwsx4530 power 0.0849 0.5 -> 0.291 Inexact Rounded
-pwsx4531 power 0.851 0.5 -> 0.922 Inexact Rounded
-pwsx4532 power 0.0851 0.5 -> 0.292 Inexact Rounded
-pwsx4533 power 0.852 0.5 -> 0.923 Inexact Rounded
-pwsx4534 power 0.0852 0.5 -> 0.292 Inexact Rounded
-pwsx4535 power 0.853 0.5 -> 0.924 Inexact Rounded
-pwsx4536 power 0.0853 0.5 -> 0.292 Inexact Rounded
-pwsx4537 power 0.854 0.5 -> 0.924 Inexact Rounded
-pwsx4538 power 0.0854 0.5 -> 0.292 Inexact Rounded
-pwsx4539 power 0.855 0.5 -> 0.925 Inexact Rounded
-pwsx4540 power 0.0855 0.5 -> 0.292 Inexact Rounded
-pwsx4541 power 0.856 0.5 -> 0.925 Inexact Rounded
-pwsx4542 power 0.0856 0.5 -> 0.293 Inexact Rounded
-pwsx4543 power 0.857 0.5 -> 0.926 Inexact Rounded
-pwsx4544 power 0.0857 0.5 -> 0.293 Inexact Rounded
-pwsx4545 power 0.858 0.5 -> 0.926 Inexact Rounded
-pwsx4546 power 0.0858 0.5 -> 0.293 Inexact Rounded
-pwsx4547 power 0.859 0.5 -> 0.927 Inexact Rounded
-pwsx4548 power 0.0859 0.5 -> 0.293 Inexact Rounded
-pwsx4549 power 0.861 0.5 -> 0.928 Inexact Rounded
-pwsx4550 power 0.0861 0.5 -> 0.293 Inexact Rounded
-pwsx4551 power 0.862 0.5 -> 0.928 Inexact Rounded
-pwsx4552 power 0.0862 0.5 -> 0.294 Inexact Rounded
-pwsx4553 power 0.863 0.5 -> 0.929 Inexact Rounded
-pwsx4554 power 0.0863 0.5 -> 0.294 Inexact Rounded
-pwsx4555 power 0.864 0.5 -> 0.930 Inexact Rounded
-pwsx4556 power 0.0864 0.5 -> 0.294 Inexact Rounded
-pwsx4557 power 0.865 0.5 -> 0.930 Inexact Rounded
-pwsx4558 power 0.0865 0.5 -> 0.294 Inexact Rounded
-pwsx4559 power 0.866 0.5 -> 0.931 Inexact Rounded
-pwsx4560 power 0.0866 0.5 -> 0.294 Inexact Rounded
-pwsx4561 power 0.867 0.5 -> 0.931 Inexact Rounded
-pwsx4562 power 0.0867 0.5 -> 0.294 Inexact Rounded
-pwsx4563 power 0.868 0.5 -> 0.932 Inexact Rounded
-pwsx4564 power 0.0868 0.5 -> 0.295 Inexact Rounded
-pwsx4565 power 0.869 0.5 -> 0.932 Inexact Rounded
-pwsx4566 power 0.0869 0.5 -> 0.295 Inexact Rounded
-pwsx4567 power 0.871 0.5 -> 0.933 Inexact Rounded
-pwsx4568 power 0.0871 0.5 -> 0.295 Inexact Rounded
-pwsx4569 power 0.872 0.5 -> 0.934 Inexact Rounded
-pwsx4570 power 0.0872 0.5 -> 0.295 Inexact Rounded
-pwsx4571 power 0.873 0.5 -> 0.934 Inexact Rounded
-pwsx4572 power 0.0873 0.5 -> 0.295 Inexact Rounded
-pwsx4573 power 0.874 0.5 -> 0.935 Inexact Rounded
-pwsx4574 power 0.0874 0.5 -> 0.296 Inexact Rounded
-pwsx4575 power 0.875 0.5 -> 0.935 Inexact Rounded
-pwsx4576 power 0.0875 0.5 -> 0.296 Inexact Rounded
-pwsx4577 power 0.876 0.5 -> 0.936 Inexact Rounded
-pwsx4578 power 0.0876 0.5 -> 0.296 Inexact Rounded
-pwsx4579 power 0.877 0.5 -> 0.936 Inexact Rounded
-pwsx4580 power 0.0877 0.5 -> 0.296 Inexact Rounded
-pwsx4581 power 0.878 0.5 -> 0.937 Inexact Rounded
-pwsx4582 power 0.0878 0.5 -> 0.296 Inexact Rounded
-pwsx4583 power 0.879 0.5 -> 0.938 Inexact Rounded
-pwsx4584 power 0.0879 0.5 -> 0.296 Inexact Rounded
-pwsx4585 power 0.881 0.5 -> 0.939 Inexact Rounded
-pwsx4586 power 0.0881 0.5 -> 0.297 Inexact Rounded
-pwsx4587 power 0.882 0.5 -> 0.939 Inexact Rounded
-pwsx4588 power 0.0882 0.5 -> 0.297 Inexact Rounded
-pwsx4589 power 0.883 0.5 -> 0.940 Inexact Rounded
-pwsx4590 power 0.0883 0.5 -> 0.297 Inexact Rounded
-pwsx4591 power 0.884 0.5 -> 0.940 Inexact Rounded
-pwsx4592 power 0.0884 0.5 -> 0.297 Inexact Rounded
-pwsx4593 power 0.885 0.5 -> 0.941 Inexact Rounded
-pwsx4594 power 0.0885 0.5 -> 0.297 Inexact Rounded
-pwsx4595 power 0.886 0.5 -> 0.941 Inexact Rounded
-pwsx4596 power 0.0886 0.5 -> 0.298 Inexact Rounded
-pwsx4597 power 0.887 0.5 -> 0.942 Inexact Rounded
-pwsx4598 power 0.0887 0.5 -> 0.298 Inexact Rounded
-pwsx4599 power 0.888 0.5 -> 0.942 Inexact Rounded
-pwsx4600 power 0.0888 0.5 -> 0.298 Inexact Rounded
-pwsx4601 power 0.889 0.5 -> 0.943 Inexact Rounded
-pwsx4602 power 0.0889 0.5 -> 0.298 Inexact Rounded
-pwsx4603 power 0.891 0.5 -> 0.944 Inexact Rounded
-pwsx4604 power 0.0891 0.5 -> 0.298 Inexact Rounded
-pwsx4605 power 0.892 0.5 -> 0.944 Inexact Rounded
-pwsx4606 power 0.0892 0.5 -> 0.299 Inexact Rounded
-pwsx4607 power 0.893 0.5 -> 0.945 Inexact Rounded
-pwsx4608 power 0.0893 0.5 -> 0.299 Inexact Rounded
-pwsx4609 power 0.894 0.5 -> 0.946 Inexact Rounded
-pwsx4610 power 0.0894 0.5 -> 0.299 Inexact Rounded
-pwsx4611 power 0.895 0.5 -> 0.946 Inexact Rounded
-pwsx4612 power 0.0895 0.5 -> 0.299 Inexact Rounded
-pwsx4613 power 0.896 0.5 -> 0.947 Inexact Rounded
-pwsx4614 power 0.0896 0.5 -> 0.299 Inexact Rounded
-pwsx4615 power 0.897 0.5 -> 0.947 Inexact Rounded
-pwsx4616 power 0.0897 0.5 -> 0.299 Inexact Rounded
-pwsx4617 power 0.898 0.5 -> 0.948 Inexact Rounded
-pwsx4618 power 0.0898 0.5 -> 0.300 Inexact Rounded
-pwsx4619 power 0.899 0.5 -> 0.948 Inexact Rounded
-pwsx4620 power 0.0899 0.5 -> 0.300 Inexact Rounded
-pwsx4621 power 0.901 0.5 -> 0.949 Inexact Rounded
-pwsx4622 power 0.0901 0.5 -> 0.300 Inexact Rounded
-pwsx4623 power 0.902 0.5 -> 0.950 Inexact Rounded
-pwsx4624 power 0.0902 0.5 -> 0.300 Inexact Rounded
-pwsx4625 power 0.903 0.5 -> 0.950 Inexact Rounded
-pwsx4626 power 0.0903 0.5 -> 0.300 Inexact Rounded
-pwsx4627 power 0.904 0.5 -> 0.951 Inexact Rounded
-pwsx4628 power 0.0904 0.5 -> 0.301 Inexact Rounded
-pwsx4629 power 0.905 0.5 -> 0.951 Inexact Rounded
-pwsx4630 power 0.0905 0.5 -> 0.301 Inexact Rounded
-pwsx4631 power 0.906 0.5 -> 0.952 Inexact Rounded
-pwsx4632 power 0.0906 0.5 -> 0.301 Inexact Rounded
-pwsx4633 power 0.907 0.5 -> 0.952 Inexact Rounded
-pwsx4634 power 0.0907 0.5 -> 0.301 Inexact Rounded
-pwsx4635 power 0.908 0.5 -> 0.953 Inexact Rounded
-pwsx4636 power 0.0908 0.5 -> 0.301 Inexact Rounded
-pwsx4637 power 0.909 0.5 -> 0.953 Inexact Rounded
-pwsx4638 power 0.0909 0.5 -> 0.301 Inexact Rounded
-pwsx4639 power 0.911 0.5 -> 0.954 Inexact Rounded
-pwsx4640 power 0.0911 0.5 -> 0.302 Inexact Rounded
-pwsx4641 power 0.912 0.5 -> 0.955 Inexact Rounded
-pwsx4642 power 0.0912 0.5 -> 0.302 Inexact Rounded
-pwsx4643 power 0.913 0.5 -> 0.956 Inexact Rounded
-pwsx4644 power 0.0913 0.5 -> 0.302 Inexact Rounded
-pwsx4645 power 0.914 0.5 -> 0.956 Inexact Rounded
-pwsx4646 power 0.0914 0.5 -> 0.302 Inexact Rounded
-pwsx4647 power 0.915 0.5 -> 0.957 Inexact Rounded
-pwsx4648 power 0.0915 0.5 -> 0.302 Inexact Rounded
-pwsx4649 power 0.916 0.5 -> 0.957 Inexact Rounded
-pwsx4650 power 0.0916 0.5 -> 0.303 Inexact Rounded
-pwsx4651 power 0.917 0.5 -> 0.958 Inexact Rounded
-pwsx4652 power 0.0917 0.5 -> 0.303 Inexact Rounded
-pwsx4653 power 0.918 0.5 -> 0.958 Inexact Rounded
-pwsx4654 power 0.0918 0.5 -> 0.303 Inexact Rounded
-pwsx4655 power 0.919 0.5 -> 0.959 Inexact Rounded
-pwsx4656 power 0.0919 0.5 -> 0.303 Inexact Rounded
-pwsx4657 power 0.921 0.5 -> 0.960 Inexact Rounded
-pwsx4658 power 0.0921 0.5 -> 0.303 Inexact Rounded
-pwsx4659 power 0.922 0.5 -> 0.960 Inexact Rounded
-pwsx4660 power 0.0922 0.5 -> 0.304 Inexact Rounded
-pwsx4661 power 0.923 0.5 -> 0.961 Inexact Rounded
-pwsx4662 power 0.0923 0.5 -> 0.304 Inexact Rounded
-pwsx4663 power 0.924 0.5 -> 0.961 Inexact Rounded
-pwsx4664 power 0.0924 0.5 -> 0.304 Inexact Rounded
-pwsx4665 power 0.925 0.5 -> 0.962 Inexact Rounded
-pwsx4666 power 0.0925 0.5 -> 0.304 Inexact Rounded
-pwsx4667 power 0.926 0.5 -> 0.962 Inexact Rounded
-pwsx4668 power 0.0926 0.5 -> 0.304 Inexact Rounded
-pwsx4669 power 0.927 0.5 -> 0.963 Inexact Rounded
-pwsx4670 power 0.0927 0.5 -> 0.304 Inexact Rounded
-pwsx4671 power 0.928 0.5 -> 0.963 Inexact Rounded
-pwsx4672 power 0.0928 0.5 -> 0.305 Inexact Rounded
-pwsx4673 power 0.929 0.5 -> 0.964 Inexact Rounded
-pwsx4674 power 0.0929 0.5 -> 0.305 Inexact Rounded
-pwsx4675 power 0.931 0.5 -> 0.965 Inexact Rounded
-pwsx4676 power 0.0931 0.5 -> 0.305 Inexact Rounded
-pwsx4677 power 0.932 0.5 -> 0.965 Inexact Rounded
-pwsx4678 power 0.0932 0.5 -> 0.305 Inexact Rounded
-pwsx4679 power 0.933 0.5 -> 0.966 Inexact Rounded
-pwsx4680 power 0.0933 0.5 -> 0.305 Inexact Rounded
-pwsx4681 power 0.934 0.5 -> 0.966 Inexact Rounded
-pwsx4682 power 0.0934 0.5 -> 0.306 Inexact Rounded
-pwsx4683 power 0.935 0.5 -> 0.967 Inexact Rounded
-pwsx4684 power 0.0935 0.5 -> 0.306 Inexact Rounded
-pwsx4685 power 0.936 0.5 -> 0.967 Inexact Rounded
-pwsx4686 power 0.0936 0.5 -> 0.306 Inexact Rounded
-pwsx4687 power 0.937 0.5 -> 0.968 Inexact Rounded
-pwsx4688 power 0.0937 0.5 -> 0.306 Inexact Rounded
-pwsx4689 power 0.938 0.5 -> 0.969 Inexact Rounded
-pwsx4690 power 0.0938 0.5 -> 0.306 Inexact Rounded
-pwsx4691 power 0.939 0.5 -> 0.969 Inexact Rounded
-pwsx4692 power 0.0939 0.5 -> 0.306 Inexact Rounded
-pwsx4693 power 0.941 0.5 -> 0.970 Inexact Rounded
-pwsx4694 power 0.0941 0.5 -> 0.307 Inexact Rounded
-pwsx4695 power 0.942 0.5 -> 0.971 Inexact Rounded
-pwsx4696 power 0.0942 0.5 -> 0.307 Inexact Rounded
-pwsx4697 power 0.943 0.5 -> 0.971 Inexact Rounded
-pwsx4698 power 0.0943 0.5 -> 0.307 Inexact Rounded
-pwsx4699 power 0.944 0.5 -> 0.972 Inexact Rounded
-pwsx4700 power 0.0944 0.5 -> 0.307 Inexact Rounded
-pwsx4701 power 0.945 0.5 -> 0.972 Inexact Rounded
-pwsx4702 power 0.0945 0.5 -> 0.307 Inexact Rounded
-pwsx4703 power 0.946 0.5 -> 0.973 Inexact Rounded
-pwsx4704 power 0.0946 0.5 -> 0.308 Inexact Rounded
-pwsx4705 power 0.947 0.5 -> 0.973 Inexact Rounded
-pwsx4706 power 0.0947 0.5 -> 0.308 Inexact Rounded
-pwsx4707 power 0.948 0.5 -> 0.974 Inexact Rounded
-pwsx4708 power 0.0948 0.5 -> 0.308 Inexact Rounded
-pwsx4709 power 0.949 0.5 -> 0.974 Inexact Rounded
-pwsx4710 power 0.0949 0.5 -> 0.308 Inexact Rounded
-pwsx4711 power 0.951 0.5 -> 0.975 Inexact Rounded
-pwsx4712 power 0.0951 0.5 -> 0.308 Inexact Rounded
-pwsx4713 power 0.952 0.5 -> 0.976 Inexact Rounded
-pwsx4714 power 0.0952 0.5 -> 0.309 Inexact Rounded
-pwsx4715 power 0.953 0.5 -> 0.976 Inexact Rounded
-pwsx4716 power 0.0953 0.5 -> 0.309 Inexact Rounded
-pwsx4717 power 0.954 0.5 -> 0.977 Inexact Rounded
-pwsx4718 power 0.0954 0.5 -> 0.309 Inexact Rounded
-pwsx4719 power 0.955 0.5 -> 0.977 Inexact Rounded
-pwsx4720 power 0.0955 0.5 -> 0.309 Inexact Rounded
-pwsx4721 power 0.956 0.5 -> 0.978 Inexact Rounded
-pwsx4722 power 0.0956 0.5 -> 0.309 Inexact Rounded
-pwsx4723 power 0.957 0.5 -> 0.978 Inexact Rounded
-pwsx4724 power 0.0957 0.5 -> 0.309 Inexact Rounded
-pwsx4725 power 0.958 0.5 -> 0.979 Inexact Rounded
-pwsx4726 power 0.0958 0.5 -> 0.310 Inexact Rounded
-pwsx4727 power 0.959 0.5 -> 0.979 Inexact Rounded
-pwsx4728 power 0.0959 0.5 -> 0.310 Inexact Rounded
-pwsx4729 power 0.961 0.5 -> 0.980 Inexact Rounded
-pwsx4730 power 0.0961 0.5 -> 0.310 Inexact Rounded
-pwsx4731 power 0.962 0.5 -> 0.981 Inexact Rounded
-pwsx4732 power 0.0962 0.5 -> 0.310 Inexact Rounded
-pwsx4733 power 0.963 0.5 -> 0.981 Inexact Rounded
-pwsx4734 power 0.0963 0.5 -> 0.310 Inexact Rounded
-pwsx4735 power 0.964 0.5 -> 0.982 Inexact Rounded
-pwsx4736 power 0.0964 0.5 -> 0.310 Inexact Rounded
-pwsx4737 power 0.965 0.5 -> 0.982 Inexact Rounded
-pwsx4738 power 0.0965 0.5 -> 0.311 Inexact Rounded
-pwsx4739 power 0.966 0.5 -> 0.983 Inexact Rounded
-pwsx4740 power 0.0966 0.5 -> 0.311 Inexact Rounded
-pwsx4741 power 0.967 0.5 -> 0.983 Inexact Rounded
-pwsx4742 power 0.0967 0.5 -> 0.311 Inexact Rounded
-pwsx4743 power 0.968 0.5 -> 0.984 Inexact Rounded
-pwsx4744 power 0.0968 0.5 -> 0.311 Inexact Rounded
-pwsx4745 power 0.969 0.5 -> 0.984 Inexact Rounded
-pwsx4746 power 0.0969 0.5 -> 0.311 Inexact Rounded
-pwsx4747 power 0.971 0.5 -> 0.985 Inexact Rounded
-pwsx4748 power 0.0971 0.5 -> 0.312 Inexact Rounded
-pwsx4749 power 0.972 0.5 -> 0.986 Inexact Rounded
-pwsx4750 power 0.0972 0.5 -> 0.312 Inexact Rounded
-pwsx4751 power 0.973 0.5 -> 0.986 Inexact Rounded
-pwsx4752 power 0.0973 0.5 -> 0.312 Inexact Rounded
-pwsx4753 power 0.974 0.5 -> 0.987 Inexact Rounded
-pwsx4754 power 0.0974 0.5 -> 0.312 Inexact Rounded
-pwsx4755 power 0.975 0.5 -> 0.987 Inexact Rounded
-pwsx4756 power 0.0975 0.5 -> 0.312 Inexact Rounded
-pwsx4757 power 0.976 0.5 -> 0.988 Inexact Rounded
-pwsx4758 power 0.0976 0.5 -> 0.312 Inexact Rounded
-pwsx4759 power 0.977 0.5 -> 0.988 Inexact Rounded
-pwsx4760 power 0.0977 0.5 -> 0.313 Inexact Rounded
-pwsx4761 power 0.978 0.5 -> 0.989 Inexact Rounded
-pwsx4762 power 0.0978 0.5 -> 0.313 Inexact Rounded
-pwsx4763 power 0.979 0.5 -> 0.989 Inexact Rounded
-pwsx4764 power 0.0979 0.5 -> 0.313 Inexact Rounded
-pwsx4765 power 0.981 0.5 -> 0.990 Inexact Rounded
-pwsx4766 power 0.0981 0.5 -> 0.313 Inexact Rounded
-pwsx4767 power 0.982 0.5 -> 0.991 Inexact Rounded
-pwsx4768 power 0.0982 0.5 -> 0.313 Inexact Rounded
-pwsx4769 power 0.983 0.5 -> 0.991 Inexact Rounded
-pwsx4770 power 0.0983 0.5 -> 0.314 Inexact Rounded
-pwsx4771 power 0.984 0.5 -> 0.992 Inexact Rounded
-pwsx4772 power 0.0984 0.5 -> 0.314 Inexact Rounded
-pwsx4773 power 0.985 0.5 -> 0.992 Inexact Rounded
-pwsx4774 power 0.0985 0.5 -> 0.314 Inexact Rounded
-pwsx4775 power 0.986 0.5 -> 0.993 Inexact Rounded
-pwsx4776 power 0.0986 0.5 -> 0.314 Inexact Rounded
-pwsx4777 power 0.987 0.5 -> 0.993 Inexact Rounded
-pwsx4778 power 0.0987 0.5 -> 0.314 Inexact Rounded
-pwsx4779 power 0.988 0.5 -> 0.994 Inexact Rounded
-pwsx4780 power 0.0988 0.5 -> 0.314 Inexact Rounded
-pwsx4781 power 0.989 0.5 -> 0.994 Inexact Rounded
-pwsx4782 power 0.0989 0.5 -> 0.314 Inexact Rounded
-pwsx4783 power 0.991 0.5 -> 0.995 Inexact Rounded
-pwsx4784 power 0.0991 0.5 -> 0.315 Inexact Rounded
-pwsx4785 power 0.992 0.5 -> 0.996 Inexact Rounded
-pwsx4786 power 0.0992 0.5 -> 0.315 Inexact Rounded
-pwsx4787 power 0.993 0.5 -> 0.996 Inexact Rounded
-pwsx4788 power 0.0993 0.5 -> 0.315 Inexact Rounded
-pwsx4789 power 0.994 0.5 -> 0.997 Inexact Rounded
-pwsx4790 power 0.0994 0.5 -> 0.315 Inexact Rounded
-pwsx4791 power 0.995 0.5 -> 0.997 Inexact Rounded
-pwsx4792 power 0.0995 0.5 -> 0.315 Inexact Rounded
-pwsx4793 power 0.996 0.5 -> 0.998 Inexact Rounded
-pwsx4794 power 0.0996 0.5 -> 0.316 Inexact Rounded
-pwsx4795 power 0.997 0.5 -> 0.998 Inexact Rounded
-pwsx4796 power 0.0997 0.5 -> 0.316 Inexact Rounded
-pwsx4797 power 0.998 0.5 -> 0.999 Inexact Rounded
-pwsx4798 power 0.0998 0.5 -> 0.316 Inexact Rounded
-pwsx4799 power 0.999 0.5 -> 0.999 Inexact Rounded
-pwsx4800 power 0.0999 0.5 -> 0.316 Inexact Rounded
-
--- A group of precision 4 tests where Hull & Abrham adjustments are
--- needed in some cases (both up and down) [see Hull1985b]
-rounding: half_even
-maxExponent: 999
-minexponent: -999
-precision: 4
-pwsx5001 power 0.0118 0.5 -> 0.1086 Inexact Rounded
-pwsx5002 power 0.119 0.5 -> 0.3450 Inexact Rounded
-pwsx5003 power 0.0119 0.5 -> 0.1091 Inexact Rounded
-pwsx5004 power 0.121 0.5 -> 0.3479 Inexact Rounded
-pwsx5005 power 0.0121 0.5 -> 0.1100 Inexact Rounded
-pwsx5006 power 0.122 0.5 -> 0.3493 Inexact Rounded
-pwsx5007 power 0.0122 0.5 -> 0.1105 Inexact Rounded
-pwsx5008 power 0.123 0.5 -> 0.3507 Inexact Rounded
-pwsx5009 power 0.494 0.5 -> 0.7029 Inexact Rounded
-pwsx5010 power 0.0669 0.5 -> 0.2587 Inexact Rounded
-pwsx5011 power 0.9558 0.5 -> 0.9777 Inexact Rounded
-pwsx5012 power 0.9348 0.5 -> 0.9669 Inexact Rounded
-pwsx5013 power 0.9345 0.5 -> 0.9667 Inexact Rounded
-pwsx5014 power 0.09345 0.5 -> 0.3057 Inexact Rounded
-pwsx5015 power 0.9346 0.5 -> 0.9667 Inexact Rounded
-pwsx5016 power 0.09346 0.5 -> 0.3057 Inexact Rounded
-pwsx5017 power 0.9347 0.5 -> 0.9668 Inexact Rounded
-
--- examples from decArith
-precision: 9
-pwsx700 power 0 0.5 -> '0'
-pwsx701 power -0 0.5 -> '0'
-pwsx702 power 0.39 0.5 -> 0.624499800 Inexact Rounded
-pwsx703 power 100 0.5 -> '10.0000000' Inexact Rounded
-pwsx704 power 1.00 0.5 -> '1.00000000' Inexact Rounded
-pwsx705 power 7 0.5 -> '2.64575131' Inexact Rounded
-pwsx706 power 10 0.5 -> 3.16227766 Inexact Rounded
-
--- some one-offs
-precision: 9
-pwsx711 power 0.1 0.5 -> 0.316227766 Inexact Rounded
-pwsx712 power 0.2 0.5 -> 0.447213595 Inexact Rounded
-pwsx713 power 0.3 0.5 -> 0.547722558 Inexact Rounded
-pwsx714 power 0.4 0.5 -> 0.632455532 Inexact Rounded
-pwsx715 power 0.5 0.5 -> 0.707106781 Inexact Rounded
-pwsx716 power 0.6 0.5 -> 0.774596669 Inexact Rounded
-pwsx717 power 0.7 0.5 -> 0.836660027 Inexact Rounded
-pwsx718 power 0.8 0.5 -> 0.894427191 Inexact Rounded
-pwsx719 power 0.9 0.5 -> 0.948683298 Inexact Rounded
-precision: 10 -- note no normalizatoin here
-pwsx720 power +0.1 0.5 -> 0.3162277660 Inexact Rounded
-precision: 11
-pwsx721 power +0.1 0.5 -> 0.31622776602 Inexact Rounded
-precision: 12
-pwsx722 power +0.1 0.5 -> 0.316227766017 Inexact Rounded
-precision: 9
-pwsx723 power 0.39 0.5 -> 0.624499800 Inexact Rounded
-precision: 15
-pwsx724 power 0.39 0.5 -> 0.624499799839840 Inexact Rounded
-
--- discussion cases
-precision: 7
-pwsx731 power 9 0.5 -> 3.000000 Inexact Rounded
-pwsx732 power 100 0.5 -> 10.00000 Inexact Rounded
-pwsx733 power 123 0.5 -> 11.09054 Inexact Rounded
-pwsx734 power 144 0.5 -> 12.00000 Inexact Rounded
-pwsx735 power 156 0.5 -> 12.49000 Inexact Rounded
-pwsx736 power 10000 0.5 -> 100.0000 Inexact Rounded
-
--- values close to overflow (if there were input rounding)
-maxexponent: 99
-minexponent: -99
-precision: 5
-pwsx760 power 9.9997E+99 0.5 -> 9.9998E+49 Inexact Rounded
-pwsx761 power 9.9998E+99 0.5 -> 9.9999E+49 Inexact Rounded
-pwsx762 power 9.9999E+99 0.5 -> 9.9999E+49 Inexact Rounded
-pwsx763 power 9.99991E+99 0.5 -> 1.0000E+50 Inexact Rounded
-pwsx764 power 9.99994E+99 0.5 -> 1.0000E+50 Inexact Rounded
-pwsx765 power 9.99995E+99 0.5 -> 1.0000E+50 Inexact Rounded
-pwsx766 power 9.99999E+99 0.5 -> 1.0000E+50 Inexact Rounded
-precision: 9
-pwsx770 power 9.9997E+99 0.5 -> 9.99985000E+49 Inexact Rounded
-pwsx771 power 9.9998E+99 0.5 -> 9.99990000E+49 Inexact Rounded
-pwsx772 power 9.9999E+99 0.5 -> 9.99995000E+49 Inexact Rounded
-pwsx773 power 9.99991E+99 0.5 -> 9.99995500E+49 Inexact Rounded
-pwsx774 power 9.99994E+99 0.5 -> 9.99997000E+49 Inexact Rounded
-pwsx775 power 9.99995E+99 0.5 -> 9.99997500E+49 Inexact Rounded
-pwsx776 power 9.99999E+99 0.5 -> 9.99999500E+49 Inexact Rounded
-precision: 20
-pwsx780 power 9.9997E+99 0.5 -> '9.9998499988749831247E+49' Inexact Rounded
-pwsx781 power 9.9998E+99 0.5 -> '9.9998999994999949999E+49' Inexact Rounded
-pwsx782 power 9.9999E+99 0.5 -> '9.9999499998749993750E+49' Inexact Rounded
-pwsx783 power 9.99991E+99 0.5 -> '9.9999549998987495444E+49' Inexact Rounded
-pwsx784 power 9.99994E+99 0.5 -> '9.9999699999549998650E+49' Inexact Rounded
-pwsx785 power 9.99995E+99 0.5 -> '9.9999749999687499219E+49' Inexact Rounded
-pwsx786 power 9.99999E+99 0.5 -> '9.9999949999987499994E+49' Inexact Rounded
-
--- subnormals and underflows [these can only result when eMax is < digits+1]
--- Etiny = -(Emax + (precision-1))
--- start with subnormal operands and normal results
-maxexponent: 9
-minexponent: -9
-precision: 9 -- Etiny=-17
-pwsx800 power 1E-17 0.5 -> 3.16227766E-9 Inexact Rounded
-pwsx801 power 10E-17 0.5 -> 1.00000000E-8 Inexact Rounded
-precision: 10 -- Etiny=-18
-pwsx802 power 10E-18 0.5 -> 3.162277660E-9 Inexact Rounded
-pwsx803 power 1E-18 0.5 -> 1.000000000E-9 Inexact Rounded
-
-precision: 11 -- Etiny=-19
-pwsx804 power 1E-19 0.5 -> 3.162277660E-10 Underflow Subnormal Inexact Rounded
--- The next test should be skipped for decNumber
-pwsx805 power 10E-19 0.5 -> 1.0000000000E-9 Inexact Rounded
-precision: 12 -- Etiny=-20
-pwsx806 power 10E-20 0.5 -> 3.1622776602E-10 Underflow Subnormal Inexact Rounded
-pwsx807 power 1E-20 0.5 -> 1.0000000000E-10 Underflow Subnormal Inexact Rounded
-
-precision: 13 -- Etiny=-21
-pwsx808 power 1E-21 0.5 -> 3.1622776602E-11 Underflow Subnormal Inexact Rounded
-pwsx809 power 10E-21 0.5 -> 1.00000000000E-10 Underflow Subnormal Inexact Rounded
-precision: 14 -- Etiny=-22
-pwsx810 power 1E-21 0.5 -> 3.16227766017E-11 Underflow Subnormal Inexact Rounded
-pwsx811 power 10E-22 0.5 -> 3.16227766017E-11 Underflow Subnormal Inexact Rounded
-pwsx812 power 1E-22 0.5 -> 1.00000000000E-11 Underflow Subnormal Inexact Rounded
-
-
--- special values
-maxexponent: 999
-minexponent: -999
-pwsx820 power Inf 0.5 -> Infinity
-pwsx821 power -Inf 0.5 -> NaN Invalid_operation
-pwsx822 power NaN 0.5 -> NaN
-pwsx823 power sNaN 0.5 -> NaN Invalid_operation
--- propagating NaNs
-pwsx824 power sNaN123 0.5 -> NaN123 Invalid_operation
-pwsx825 power -sNaN321 0.5 -> -NaN321 Invalid_operation
-pwsx826 power NaN456 0.5 -> NaN456
-pwsx827 power -NaN654 0.5 -> -NaN654
-pwsx828 power NaN1 0.5 -> NaN1
-
--- Null test
-pwsx900 power # 0.5 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- powersqrt.decTest -- decimal square root, using power -- +-- Copyright (c) IBM Corporation, 2004, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- These testcases are taken from squareroot.decTest but are +-- evaluated using the power operator. The differences in results +-- (153 out of 2856) fall into the following categories: +-- +-- x ** 0.5 (x>0) has no preferred exponent, and is Inexact +-- (and hence full precision); almost all differences are +-- in this category +-- 0.00 ** 0.5 becomes 0 (not 0.0), etc. +-- -0 ** 0.5 becomes 0 (never -0) +-- Some exact subnormals become inexact and hence underflows + +extended: 1 +precision: 9 +rounding: half_even +maxExponent: 384 +minexponent: -383 + +-- basics +pwsx001 power 1 0.5 -> 1.00000000 Inexact Rounded +pwsx002 power -1 0.5 -> NaN Invalid_operation +pwsx003 power 1.00 0.5 -> 1.00000000 Inexact Rounded +pwsx004 power -1.00 0.5 -> NaN Invalid_operation +pwsx005 power 0 0.5 -> 0 +pwsx006 power 00.0 0.5 -> 0 +pwsx007 power 0.00 0.5 -> 0 +pwsx008 power 00.00 0.5 -> 0 +pwsx009 power 00.000 0.5 -> 0 +pwsx010 power 00.0000 0.5 -> 0 +pwsx011 power 00 0.5 -> 0 + +pwsx012 power -2 0.5 -> NaN Invalid_operation +pwsx013 power 2 0.5 -> 1.41421356 Inexact Rounded +pwsx014 power -2.00 0.5 -> NaN Invalid_operation +pwsx015 power 2.00 0.5 -> 1.41421356 Inexact Rounded +pwsx016 power -0 0.5 -> 0 +pwsx017 power -0.0 0.5 -> 0 +pwsx018 power -00.00 0.5 -> 0 +pwsx019 power -00.000 0.5 -> 0 +pwsx020 power -0.0000 0.5 -> 0 +pwsx021 power -0E+9 0.5 -> 0 +pwsx022 power -0E+10 0.5 -> 0 +pwsx023 power -0E+11 0.5 -> 0 +pwsx024 power -0E+12 0.5 -> 0 +pwsx025 power -00 0.5 -> 0 +pwsx026 power 0E+5 0.5 -> 0 +pwsx027 power 4.0 0.5 -> 2.00000000 Inexact Rounded +pwsx028 power 4.00 0.5 -> 2.00000000 Inexact Rounded + +pwsx030 power +0.1 0.5 -> 0.316227766 Inexact Rounded +pwsx031 power -0.1 0.5 -> NaN Invalid_operation +pwsx032 power +0.01 0.5 -> 0.100000000 Inexact Rounded +pwsx033 power -0.01 0.5 -> NaN Invalid_operation +pwsx034 power +0.001 0.5 -> 0.0316227766 Inexact Rounded +pwsx035 power -0.001 0.5 -> NaN Invalid_operation +pwsx036 power +0.000001 0.5 -> 0.00100000000 Inexact Rounded +pwsx037 power -0.000001 0.5 -> NaN Invalid_operation +pwsx038 power +0.000000000001 0.5 -> 0.00000100000000 Inexact Rounded +pwsx039 power -0.000000000001 0.5 -> NaN Invalid_operation + +pwsx041 power 1.1 0.5 -> 1.04880885 Inexact Rounded +pwsx042 power 1.10 0.5 -> 1.04880885 Inexact Rounded +pwsx043 power 1.100 0.5 -> 1.04880885 Inexact Rounded +pwsx044 power 1.110 0.5 -> 1.05356538 Inexact Rounded +pwsx045 power -1.1 0.5 -> NaN Invalid_operation +pwsx046 power -1.10 0.5 -> NaN Invalid_operation +pwsx047 power -1.100 0.5 -> NaN Invalid_operation +pwsx048 power -1.110 0.5 -> NaN Invalid_operation +pwsx049 power 9.9 0.5 -> 3.14642654 Inexact Rounded +pwsx050 power 9.90 0.5 -> 3.14642654 Inexact Rounded +pwsx051 power 9.900 0.5 -> 3.14642654 Inexact Rounded +pwsx052 power 9.990 0.5 -> 3.16069613 Inexact Rounded +pwsx053 power -9.9 0.5 -> NaN Invalid_operation +pwsx054 power -9.90 0.5 -> NaN Invalid_operation +pwsx055 power -9.900 0.5 -> NaN Invalid_operation +pwsx056 power -9.990 0.5 -> NaN Invalid_operation + +pwsx060 power 1 0.5 -> 1.00000000 Inexact Rounded +pwsx061 power 1.0 0.5 -> 1.00000000 Inexact Rounded +pwsx062 power 1.00 0.5 -> 1.00000000 Inexact Rounded +pwsx063 power 10.0 0.5 -> 3.16227766 Inexact Rounded +pwsx064 power 10.0 0.5 -> 3.16227766 Inexact Rounded +pwsx065 power 10.0 0.5 -> 3.16227766 Inexact Rounded +pwsx066 power 10.00 0.5 -> 3.16227766 Inexact Rounded +pwsx067 power 100 0.5 -> 10.0000000 Inexact Rounded +pwsx068 power 100.0 0.5 -> 10.0000000 Inexact Rounded +pwsx069 power 100.00 0.5 -> 10.0000000 Inexact Rounded +pwsx070 power 1.1000E+3 0.5 -> 33.1662479 Inexact Rounded +pwsx071 power 1.10000E+3 0.5 -> 33.1662479 Inexact Rounded +pwsx072 power -10.0 0.5 -> NaN Invalid_operation +pwsx073 power -10.00 0.5 -> NaN Invalid_operation +pwsx074 power -100.0 0.5 -> NaN Invalid_operation +pwsx075 power -100.00 0.5 -> NaN Invalid_operation +pwsx076 power -1.1000E+3 0.5 -> NaN Invalid_operation +pwsx077 power -1.10000E+3 0.5 -> NaN Invalid_operation + +-- famous squares +pwsx080 power 1 0.5 -> 1.00000000 Inexact Rounded +pwsx081 power 4 0.5 -> 2.00000000 Inexact Rounded +pwsx082 power 9 0.5 -> 3.00000000 Inexact Rounded +pwsx083 power 16 0.5 -> 4.00000000 Inexact Rounded +pwsx084 power 25 0.5 -> 5.00000000 Inexact Rounded +pwsx085 power 36 0.5 -> 6.00000000 Inexact Rounded +pwsx086 power 49 0.5 -> 7.00000000 Inexact Rounded +pwsx087 power 64 0.5 -> 8.00000000 Inexact Rounded +pwsx088 power 81 0.5 -> 9.00000000 Inexact Rounded +pwsx089 power 100 0.5 -> 10.0000000 Inexact Rounded +pwsx090 power 121 0.5 -> 11.0000000 Inexact Rounded +pwsx091 power 144 0.5 -> 12.0000000 Inexact Rounded +pwsx092 power 169 0.5 -> 13.0000000 Inexact Rounded +pwsx093 power 256 0.5 -> 16.0000000 Inexact Rounded +pwsx094 power 1024 0.5 -> 32.0000000 Inexact Rounded +pwsx095 power 4096 0.5 -> 64.0000000 Inexact Rounded +pwsx100 power 0.01 0.5 -> 0.100000000 Inexact Rounded +pwsx101 power 0.04 0.5 -> 0.200000000 Inexact Rounded +pwsx102 power 0.09 0.5 -> 0.300000000 Inexact Rounded +pwsx103 power 0.16 0.5 -> 0.400000000 Inexact Rounded +pwsx104 power 0.25 0.5 -> 0.500000000 Inexact Rounded +pwsx105 power 0.36 0.5 -> 0.600000000 Inexact Rounded +pwsx106 power 0.49 0.5 -> 0.700000000 Inexact Rounded +pwsx107 power 0.64 0.5 -> 0.800000000 Inexact Rounded +pwsx108 power 0.81 0.5 -> 0.900000000 Inexact Rounded +pwsx109 power 1.00 0.5 -> 1.00000000 Inexact Rounded +pwsx110 power 1.21 0.5 -> 1.10000000 Inexact Rounded +pwsx111 power 1.44 0.5 -> 1.20000000 Inexact Rounded +pwsx112 power 1.69 0.5 -> 1.30000000 Inexact Rounded +pwsx113 power 2.56 0.5 -> 1.60000000 Inexact Rounded +pwsx114 power 10.24 0.5 -> 3.20000000 Inexact Rounded +pwsx115 power 40.96 0.5 -> 6.40000000 Inexact Rounded + +-- Precision 1 squareroot tests [exhaustive, plus exponent adjusts] +rounding: half_even +maxExponent: 999 +minexponent: -999 +precision: 1 +pwsx1201 power 0.1 0.5 -> 0.3 Inexact Rounded +pwsx1202 power 0.01 0.5 -> 0.1 Inexact Rounded +pwsx1203 power 1.0E-1 0.5 -> 0.3 Inexact Rounded +pwsx1204 power 1.00E-2 0.5 -> 0.1 Inexact Rounded +pwsx1205 power 1E-3 0.5 -> 0.03 Inexact Rounded +pwsx1206 power 1E+1 0.5 -> 3 Inexact Rounded +pwsx1207 power 1E+2 0.5 -> 1E+1 Inexact Rounded +pwsx1208 power 1E+3 0.5 -> 3E+1 Inexact Rounded +pwsx1209 power 0.2 0.5 -> 0.4 Inexact Rounded +pwsx1210 power 0.02 0.5 -> 0.1 Inexact Rounded +pwsx1211 power 2.0E-1 0.5 -> 0.4 Inexact Rounded +pwsx1212 power 2.00E-2 0.5 -> 0.1 Inexact Rounded +pwsx1213 power 2E-3 0.5 -> 0.04 Inexact Rounded +pwsx1214 power 2E+1 0.5 -> 4 Inexact Rounded +pwsx1215 power 2E+2 0.5 -> 1E+1 Inexact Rounded +pwsx1216 power 2E+3 0.5 -> 4E+1 Inexact Rounded +pwsx1217 power 0.3 0.5 -> 0.5 Inexact Rounded +pwsx1218 power 0.03 0.5 -> 0.2 Inexact Rounded +pwsx1219 power 3.0E-1 0.5 -> 0.5 Inexact Rounded +pwsx1220 power 3.00E-2 0.5 -> 0.2 Inexact Rounded +pwsx1221 power 3E-3 0.5 -> 0.05 Inexact Rounded +pwsx1222 power 3E+1 0.5 -> 5 Inexact Rounded +pwsx1223 power 3E+2 0.5 -> 2E+1 Inexact Rounded +pwsx1224 power 3E+3 0.5 -> 5E+1 Inexact Rounded +pwsx1225 power 0.4 0.5 -> 0.6 Inexact Rounded +pwsx1226 power 0.04 0.5 -> 0.2 Inexact Rounded +pwsx1227 power 4.0E-1 0.5 -> 0.6 Inexact Rounded +pwsx1228 power 4.00E-2 0.5 -> 0.2 Inexact Rounded +pwsx1229 power 4E-3 0.5 -> 0.06 Inexact Rounded +pwsx1230 power 4E+1 0.5 -> 6 Inexact Rounded +pwsx1231 power 4E+2 0.5 -> 2E+1 Inexact Rounded +pwsx1232 power 4E+3 0.5 -> 6E+1 Inexact Rounded +pwsx1233 power 0.5 0.5 -> 0.7 Inexact Rounded +pwsx1234 power 0.05 0.5 -> 0.2 Inexact Rounded +pwsx1235 power 5.0E-1 0.5 -> 0.7 Inexact Rounded +pwsx1236 power 5.00E-2 0.5 -> 0.2 Inexact Rounded +pwsx1237 power 5E-3 0.5 -> 0.07 Inexact Rounded +pwsx1238 power 5E+1 0.5 -> 7 Inexact Rounded +pwsx1239 power 5E+2 0.5 -> 2E+1 Inexact Rounded +pwsx1240 power 5E+3 0.5 -> 7E+1 Inexact Rounded +pwsx1241 power 0.6 0.5 -> 0.8 Inexact Rounded +pwsx1242 power 0.06 0.5 -> 0.2 Inexact Rounded +pwsx1243 power 6.0E-1 0.5 -> 0.8 Inexact Rounded +pwsx1244 power 6.00E-2 0.5 -> 0.2 Inexact Rounded +pwsx1245 power 6E-3 0.5 -> 0.08 Inexact Rounded +pwsx1246 power 6E+1 0.5 -> 8 Inexact Rounded +pwsx1247 power 6E+2 0.5 -> 2E+1 Inexact Rounded +pwsx1248 power 6E+3 0.5 -> 8E+1 Inexact Rounded +pwsx1249 power 0.7 0.5 -> 0.8 Inexact Rounded +pwsx1250 power 0.07 0.5 -> 0.3 Inexact Rounded +pwsx1251 power 7.0E-1 0.5 -> 0.8 Inexact Rounded +pwsx1252 power 7.00E-2 0.5 -> 0.3 Inexact Rounded +pwsx1253 power 7E-3 0.5 -> 0.08 Inexact Rounded +pwsx1254 power 7E+1 0.5 -> 8 Inexact Rounded +pwsx1255 power 7E+2 0.5 -> 3E+1 Inexact Rounded +pwsx1256 power 7E+3 0.5 -> 8E+1 Inexact Rounded +pwsx1257 power 0.8 0.5 -> 0.9 Inexact Rounded +pwsx1258 power 0.08 0.5 -> 0.3 Inexact Rounded +pwsx1259 power 8.0E-1 0.5 -> 0.9 Inexact Rounded +pwsx1260 power 8.00E-2 0.5 -> 0.3 Inexact Rounded +pwsx1261 power 8E-3 0.5 -> 0.09 Inexact Rounded +pwsx1262 power 8E+1 0.5 -> 9 Inexact Rounded +pwsx1263 power 8E+2 0.5 -> 3E+1 Inexact Rounded +pwsx1264 power 8E+3 0.5 -> 9E+1 Inexact Rounded +pwsx1265 power 0.9 0.5 -> 0.9 Inexact Rounded +pwsx1266 power 0.09 0.5 -> 0.3 Inexact Rounded +pwsx1267 power 9.0E-1 0.5 -> 0.9 Inexact Rounded +pwsx1268 power 9.00E-2 0.5 -> 0.3 Inexact Rounded +pwsx1269 power 9E-3 0.5 -> 0.09 Inexact Rounded +pwsx1270 power 9E+1 0.5 -> 9 Inexact Rounded +pwsx1271 power 9E+2 0.5 -> 3E+1 Inexact Rounded +pwsx1272 power 9E+3 0.5 -> 9E+1 Inexact Rounded + +-- Precision 2 squareroot tests [exhaustive, plus exponent adjusts] +rounding: half_even +maxExponent: 999 +minexponent: -999 +precision: 2 +pwsx2201 power 0.1 0.5 -> 0.32 Inexact Rounded +pwsx2202 power 0.01 0.5 -> 0.10 Inexact Rounded +pwsx2203 power 1.0E-1 0.5 -> 0.32 Inexact Rounded +pwsx2204 power 1.00E-2 0.5 -> 0.10 Inexact Rounded +pwsx2205 power 1E-3 0.5 -> 0.032 Inexact Rounded +pwsx2206 power 1E+1 0.5 -> 3.2 Inexact Rounded +pwsx2207 power 1E+2 0.5 -> 10 Inexact Rounded +pwsx2208 power 1E+3 0.5 -> 32 Inexact Rounded +pwsx2209 power 0.2 0.5 -> 0.45 Inexact Rounded +pwsx2210 power 0.02 0.5 -> 0.14 Inexact Rounded +pwsx2211 power 2.0E-1 0.5 -> 0.45 Inexact Rounded +pwsx2212 power 2.00E-2 0.5 -> 0.14 Inexact Rounded +pwsx2213 power 2E-3 0.5 -> 0.045 Inexact Rounded +pwsx2214 power 2E+1 0.5 -> 4.5 Inexact Rounded +pwsx2215 power 2E+2 0.5 -> 14 Inexact Rounded +pwsx2216 power 2E+3 0.5 -> 45 Inexact Rounded +pwsx2217 power 0.3 0.5 -> 0.55 Inexact Rounded +pwsx2218 power 0.03 0.5 -> 0.17 Inexact Rounded +pwsx2219 power 3.0E-1 0.5 -> 0.55 Inexact Rounded +pwsx2220 power 3.00E-2 0.5 -> 0.17 Inexact Rounded +pwsx2221 power 3E-3 0.5 -> 0.055 Inexact Rounded +pwsx2222 power 3E+1 0.5 -> 5.5 Inexact Rounded +pwsx2223 power 3E+2 0.5 -> 17 Inexact Rounded +pwsx2224 power 3E+3 0.5 -> 55 Inexact Rounded +pwsx2225 power 0.4 0.5 -> 0.63 Inexact Rounded +pwsx2226 power 0.04 0.5 -> 0.20 Inexact Rounded +pwsx2227 power 4.0E-1 0.5 -> 0.63 Inexact Rounded +pwsx2228 power 4.00E-2 0.5 -> 0.20 Inexact Rounded +pwsx2229 power 4E-3 0.5 -> 0.063 Inexact Rounded +pwsx2230 power 4E+1 0.5 -> 6.3 Inexact Rounded +pwsx2231 power 4E+2 0.5 -> 20 Inexact Rounded +pwsx2232 power 4E+3 0.5 -> 63 Inexact Rounded +pwsx2233 power 0.5 0.5 -> 0.71 Inexact Rounded +pwsx2234 power 0.05 0.5 -> 0.22 Inexact Rounded +pwsx2235 power 5.0E-1 0.5 -> 0.71 Inexact Rounded +pwsx2236 power 5.00E-2 0.5 -> 0.22 Inexact Rounded +pwsx2237 power 5E-3 0.5 -> 0.071 Inexact Rounded +pwsx2238 power 5E+1 0.5 -> 7.1 Inexact Rounded +pwsx2239 power 5E+2 0.5 -> 22 Inexact Rounded +pwsx2240 power 5E+3 0.5 -> 71 Inexact Rounded +pwsx2241 power 0.6 0.5 -> 0.77 Inexact Rounded +pwsx2242 power 0.06 0.5 -> 0.24 Inexact Rounded +pwsx2243 power 6.0E-1 0.5 -> 0.77 Inexact Rounded +pwsx2244 power 6.00E-2 0.5 -> 0.24 Inexact Rounded +pwsx2245 power 6E-3 0.5 -> 0.077 Inexact Rounded +pwsx2246 power 6E+1 0.5 -> 7.7 Inexact Rounded +pwsx2247 power 6E+2 0.5 -> 24 Inexact Rounded +pwsx2248 power 6E+3 0.5 -> 77 Inexact Rounded +pwsx2249 power 0.7 0.5 -> 0.84 Inexact Rounded +pwsx2250 power 0.07 0.5 -> 0.26 Inexact Rounded +pwsx2251 power 7.0E-1 0.5 -> 0.84 Inexact Rounded +pwsx2252 power 7.00E-2 0.5 -> 0.26 Inexact Rounded +pwsx2253 power 7E-3 0.5 -> 0.084 Inexact Rounded +pwsx2254 power 7E+1 0.5 -> 8.4 Inexact Rounded +pwsx2255 power 7E+2 0.5 -> 26 Inexact Rounded +pwsx2256 power 7E+3 0.5 -> 84 Inexact Rounded +pwsx2257 power 0.8 0.5 -> 0.89 Inexact Rounded +pwsx2258 power 0.08 0.5 -> 0.28 Inexact Rounded +pwsx2259 power 8.0E-1 0.5 -> 0.89 Inexact Rounded +pwsx2260 power 8.00E-2 0.5 -> 0.28 Inexact Rounded +pwsx2261 power 8E-3 0.5 -> 0.089 Inexact Rounded +pwsx2262 power 8E+1 0.5 -> 8.9 Inexact Rounded +pwsx2263 power 8E+2 0.5 -> 28 Inexact Rounded +pwsx2264 power 8E+3 0.5 -> 89 Inexact Rounded +pwsx2265 power 0.9 0.5 -> 0.95 Inexact Rounded +pwsx2266 power 0.09 0.5 -> 0.30 Inexact Rounded +pwsx2267 power 9.0E-1 0.5 -> 0.95 Inexact Rounded +pwsx2268 power 9.00E-2 0.5 -> 0.30 Inexact Rounded +pwsx2269 power 9E-3 0.5 -> 0.095 Inexact Rounded +pwsx2270 power 9E+1 0.5 -> 9.5 Inexact Rounded +pwsx2271 power 9E+2 0.5 -> 30 Inexact Rounded +pwsx2272 power 9E+3 0.5 -> 95 Inexact Rounded +pwsx2273 power 0.10 0.5 -> 0.32 Inexact Rounded +pwsx2274 power 0.010 0.5 -> 0.10 Inexact Rounded +pwsx2275 power 10.0E-1 0.5 -> 1.0 Inexact Rounded +pwsx2276 power 10.00E-2 0.5 -> 0.32 Inexact Rounded +pwsx2277 power 10E-3 0.5 -> 0.10 Inexact Rounded +pwsx2278 power 10E+1 0.5 -> 10 Inexact Rounded +pwsx2279 power 10E+2 0.5 -> 32 Inexact Rounded +pwsx2280 power 10E+3 0.5 -> 1.0E+2 Inexact Rounded +pwsx2281 power 0.11 0.5 -> 0.33 Inexact Rounded +pwsx2282 power 0.011 0.5 -> 0.10 Inexact Rounded +pwsx2283 power 11.0E-1 0.5 -> 1.0 Inexact Rounded +pwsx2284 power 11.00E-2 0.5 -> 0.33 Inexact Rounded +pwsx2285 power 11E-3 0.5 -> 0.10 Inexact Rounded +pwsx2286 power 11E+1 0.5 -> 10 Inexact Rounded +pwsx2287 power 11E+2 0.5 -> 33 Inexact Rounded +pwsx2288 power 11E+3 0.5 -> 1.0E+2 Inexact Rounded +pwsx2289 power 0.12 0.5 -> 0.35 Inexact Rounded +pwsx2290 power 0.012 0.5 -> 0.11 Inexact Rounded +pwsx2291 power 12.0E-1 0.5 -> 1.1 Inexact Rounded +pwsx2292 power 12.00E-2 0.5 -> 0.35 Inexact Rounded +pwsx2293 power 12E-3 0.5 -> 0.11 Inexact Rounded +pwsx2294 power 12E+1 0.5 -> 11 Inexact Rounded +pwsx2295 power 12E+2 0.5 -> 35 Inexact Rounded +pwsx2296 power 12E+3 0.5 -> 1.1E+2 Inexact Rounded +pwsx2297 power 0.13 0.5 -> 0.36 Inexact Rounded +pwsx2298 power 0.013 0.5 -> 0.11 Inexact Rounded +pwsx2299 power 13.0E-1 0.5 -> 1.1 Inexact Rounded +pwsx2300 power 13.00E-2 0.5 -> 0.36 Inexact Rounded +pwsx2301 power 13E-3 0.5 -> 0.11 Inexact Rounded +pwsx2302 power 13E+1 0.5 -> 11 Inexact Rounded +pwsx2303 power 13E+2 0.5 -> 36 Inexact Rounded +pwsx2304 power 13E+3 0.5 -> 1.1E+2 Inexact Rounded +pwsx2305 power 0.14 0.5 -> 0.37 Inexact Rounded +pwsx2306 power 0.014 0.5 -> 0.12 Inexact Rounded +pwsx2307 power 14.0E-1 0.5 -> 1.2 Inexact Rounded +pwsx2308 power 14.00E-2 0.5 -> 0.37 Inexact Rounded +pwsx2309 power 14E-3 0.5 -> 0.12 Inexact Rounded +pwsx2310 power 14E+1 0.5 -> 12 Inexact Rounded +pwsx2311 power 14E+2 0.5 -> 37 Inexact Rounded +pwsx2312 power 14E+3 0.5 -> 1.2E+2 Inexact Rounded +pwsx2313 power 0.15 0.5 -> 0.39 Inexact Rounded +pwsx2314 power 0.015 0.5 -> 0.12 Inexact Rounded +pwsx2315 power 15.0E-1 0.5 -> 1.2 Inexact Rounded +pwsx2316 power 15.00E-2 0.5 -> 0.39 Inexact Rounded +pwsx2317 power 15E-3 0.5 -> 0.12 Inexact Rounded +pwsx2318 power 15E+1 0.5 -> 12 Inexact Rounded +pwsx2319 power 15E+2 0.5 -> 39 Inexact Rounded +pwsx2320 power 15E+3 0.5 -> 1.2E+2 Inexact Rounded +pwsx2321 power 0.16 0.5 -> 0.40 Inexact Rounded +pwsx2322 power 0.016 0.5 -> 0.13 Inexact Rounded +pwsx2323 power 16.0E-1 0.5 -> 1.3 Inexact Rounded +pwsx2324 power 16.00E-2 0.5 -> 0.40 Inexact Rounded +pwsx2325 power 16E-3 0.5 -> 0.13 Inexact Rounded +pwsx2326 power 16E+1 0.5 -> 13 Inexact Rounded +pwsx2327 power 16E+2 0.5 -> 40 Inexact Rounded +pwsx2328 power 16E+3 0.5 -> 1.3E+2 Inexact Rounded +pwsx2329 power 0.17 0.5 -> 0.41 Inexact Rounded +pwsx2330 power 0.017 0.5 -> 0.13 Inexact Rounded +pwsx2331 power 17.0E-1 0.5 -> 1.3 Inexact Rounded +pwsx2332 power 17.00E-2 0.5 -> 0.41 Inexact Rounded +pwsx2333 power 17E-3 0.5 -> 0.13 Inexact Rounded +pwsx2334 power 17E+1 0.5 -> 13 Inexact Rounded +pwsx2335 power 17E+2 0.5 -> 41 Inexact Rounded +pwsx2336 power 17E+3 0.5 -> 1.3E+2 Inexact Rounded +pwsx2337 power 0.18 0.5 -> 0.42 Inexact Rounded +pwsx2338 power 0.018 0.5 -> 0.13 Inexact Rounded +pwsx2339 power 18.0E-1 0.5 -> 1.3 Inexact Rounded +pwsx2340 power 18.00E-2 0.5 -> 0.42 Inexact Rounded +pwsx2341 power 18E-3 0.5 -> 0.13 Inexact Rounded +pwsx2342 power 18E+1 0.5 -> 13 Inexact Rounded +pwsx2343 power 18E+2 0.5 -> 42 Inexact Rounded +pwsx2344 power 18E+3 0.5 -> 1.3E+2 Inexact Rounded +pwsx2345 power 0.19 0.5 -> 0.44 Inexact Rounded +pwsx2346 power 0.019 0.5 -> 0.14 Inexact Rounded +pwsx2347 power 19.0E-1 0.5 -> 1.4 Inexact Rounded +pwsx2348 power 19.00E-2 0.5 -> 0.44 Inexact Rounded +pwsx2349 power 19E-3 0.5 -> 0.14 Inexact Rounded +pwsx2350 power 19E+1 0.5 -> 14 Inexact Rounded +pwsx2351 power 19E+2 0.5 -> 44 Inexact Rounded +pwsx2352 power 19E+3 0.5 -> 1.4E+2 Inexact Rounded +pwsx2353 power 0.20 0.5 -> 0.45 Inexact Rounded +pwsx2354 power 0.020 0.5 -> 0.14 Inexact Rounded +pwsx2355 power 20.0E-1 0.5 -> 1.4 Inexact Rounded +pwsx2356 power 20.00E-2 0.5 -> 0.45 Inexact Rounded +pwsx2357 power 20E-3 0.5 -> 0.14 Inexact Rounded +pwsx2358 power 20E+1 0.5 -> 14 Inexact Rounded +pwsx2359 power 20E+2 0.5 -> 45 Inexact Rounded +pwsx2360 power 20E+3 0.5 -> 1.4E+2 Inexact Rounded +pwsx2361 power 0.21 0.5 -> 0.46 Inexact Rounded +pwsx2362 power 0.021 0.5 -> 0.14 Inexact Rounded +pwsx2363 power 21.0E-1 0.5 -> 1.4 Inexact Rounded +pwsx2364 power 21.00E-2 0.5 -> 0.46 Inexact Rounded +pwsx2365 power 21E-3 0.5 -> 0.14 Inexact Rounded +pwsx2366 power 21E+1 0.5 -> 14 Inexact Rounded +pwsx2367 power 21E+2 0.5 -> 46 Inexact Rounded +pwsx2368 power 21E+3 0.5 -> 1.4E+2 Inexact Rounded +pwsx2369 power 0.22 0.5 -> 0.47 Inexact Rounded +pwsx2370 power 0.022 0.5 -> 0.15 Inexact Rounded +pwsx2371 power 22.0E-1 0.5 -> 1.5 Inexact Rounded +pwsx2372 power 22.00E-2 0.5 -> 0.47 Inexact Rounded +pwsx2373 power 22E-3 0.5 -> 0.15 Inexact Rounded +pwsx2374 power 22E+1 0.5 -> 15 Inexact Rounded +pwsx2375 power 22E+2 0.5 -> 47 Inexact Rounded +pwsx2376 power 22E+3 0.5 -> 1.5E+2 Inexact Rounded +pwsx2377 power 0.23 0.5 -> 0.48 Inexact Rounded +pwsx2378 power 0.023 0.5 -> 0.15 Inexact Rounded +pwsx2379 power 23.0E-1 0.5 -> 1.5 Inexact Rounded +pwsx2380 power 23.00E-2 0.5 -> 0.48 Inexact Rounded +pwsx2381 power 23E-3 0.5 -> 0.15 Inexact Rounded +pwsx2382 power 23E+1 0.5 -> 15 Inexact Rounded +pwsx2383 power 23E+2 0.5 -> 48 Inexact Rounded +pwsx2384 power 23E+3 0.5 -> 1.5E+2 Inexact Rounded +pwsx2385 power 0.24 0.5 -> 0.49 Inexact Rounded +pwsx2386 power 0.024 0.5 -> 0.15 Inexact Rounded +pwsx2387 power 24.0E-1 0.5 -> 1.5 Inexact Rounded +pwsx2388 power 24.00E-2 0.5 -> 0.49 Inexact Rounded +pwsx2389 power 24E-3 0.5 -> 0.15 Inexact Rounded +pwsx2390 power 24E+1 0.5 -> 15 Inexact Rounded +pwsx2391 power 24E+2 0.5 -> 49 Inexact Rounded +pwsx2392 power 24E+3 0.5 -> 1.5E+2 Inexact Rounded +pwsx2393 power 0.25 0.5 -> 0.50 Inexact Rounded +pwsx2394 power 0.025 0.5 -> 0.16 Inexact Rounded +pwsx2395 power 25.0E-1 0.5 -> 1.6 Inexact Rounded +pwsx2396 power 25.00E-2 0.5 -> 0.50 Inexact Rounded +pwsx2397 power 25E-3 0.5 -> 0.16 Inexact Rounded +pwsx2398 power 25E+1 0.5 -> 16 Inexact Rounded +pwsx2399 power 25E+2 0.5 -> 50 Inexact Rounded +pwsx2400 power 25E+3 0.5 -> 1.6E+2 Inexact Rounded +pwsx2401 power 0.26 0.5 -> 0.51 Inexact Rounded +pwsx2402 power 0.026 0.5 -> 0.16 Inexact Rounded +pwsx2403 power 26.0E-1 0.5 -> 1.6 Inexact Rounded +pwsx2404 power 26.00E-2 0.5 -> 0.51 Inexact Rounded +pwsx2405 power 26E-3 0.5 -> 0.16 Inexact Rounded +pwsx2406 power 26E+1 0.5 -> 16 Inexact Rounded +pwsx2407 power 26E+2 0.5 -> 51 Inexact Rounded +pwsx2408 power 26E+3 0.5 -> 1.6E+2 Inexact Rounded +pwsx2409 power 0.27 0.5 -> 0.52 Inexact Rounded +pwsx2410 power 0.027 0.5 -> 0.16 Inexact Rounded +pwsx2411 power 27.0E-1 0.5 -> 1.6 Inexact Rounded +pwsx2412 power 27.00E-2 0.5 -> 0.52 Inexact Rounded +pwsx2413 power 27E-3 0.5 -> 0.16 Inexact Rounded +pwsx2414 power 27E+1 0.5 -> 16 Inexact Rounded +pwsx2415 power 27E+2 0.5 -> 52 Inexact Rounded +pwsx2416 power 27E+3 0.5 -> 1.6E+2 Inexact Rounded +pwsx2417 power 0.28 0.5 -> 0.53 Inexact Rounded +pwsx2418 power 0.028 0.5 -> 0.17 Inexact Rounded +pwsx2419 power 28.0E-1 0.5 -> 1.7 Inexact Rounded +pwsx2420 power 28.00E-2 0.5 -> 0.53 Inexact Rounded +pwsx2421 power 28E-3 0.5 -> 0.17 Inexact Rounded +pwsx2422 power 28E+1 0.5 -> 17 Inexact Rounded +pwsx2423 power 28E+2 0.5 -> 53 Inexact Rounded +pwsx2424 power 28E+3 0.5 -> 1.7E+2 Inexact Rounded +pwsx2425 power 0.29 0.5 -> 0.54 Inexact Rounded +pwsx2426 power 0.029 0.5 -> 0.17 Inexact Rounded +pwsx2427 power 29.0E-1 0.5 -> 1.7 Inexact Rounded +pwsx2428 power 29.00E-2 0.5 -> 0.54 Inexact Rounded +pwsx2429 power 29E-3 0.5 -> 0.17 Inexact Rounded +pwsx2430 power 29E+1 0.5 -> 17 Inexact Rounded +pwsx2431 power 29E+2 0.5 -> 54 Inexact Rounded +pwsx2432 power 29E+3 0.5 -> 1.7E+2 Inexact Rounded +pwsx2433 power 0.30 0.5 -> 0.55 Inexact Rounded +pwsx2434 power 0.030 0.5 -> 0.17 Inexact Rounded +pwsx2435 power 30.0E-1 0.5 -> 1.7 Inexact Rounded +pwsx2436 power 30.00E-2 0.5 -> 0.55 Inexact Rounded +pwsx2437 power 30E-3 0.5 -> 0.17 Inexact Rounded +pwsx2438 power 30E+1 0.5 -> 17 Inexact Rounded +pwsx2439 power 30E+2 0.5 -> 55 Inexact Rounded +pwsx2440 power 30E+3 0.5 -> 1.7E+2 Inexact Rounded +pwsx2441 power 0.31 0.5 -> 0.56 Inexact Rounded +pwsx2442 power 0.031 0.5 -> 0.18 Inexact Rounded +pwsx2443 power 31.0E-1 0.5 -> 1.8 Inexact Rounded +pwsx2444 power 31.00E-2 0.5 -> 0.56 Inexact Rounded +pwsx2445 power 31E-3 0.5 -> 0.18 Inexact Rounded +pwsx2446 power 31E+1 0.5 -> 18 Inexact Rounded +pwsx2447 power 31E+2 0.5 -> 56 Inexact Rounded +pwsx2448 power 31E+3 0.5 -> 1.8E+2 Inexact Rounded +pwsx2449 power 0.32 0.5 -> 0.57 Inexact Rounded +pwsx2450 power 0.032 0.5 -> 0.18 Inexact Rounded +pwsx2451 power 32.0E-1 0.5 -> 1.8 Inexact Rounded +pwsx2452 power 32.00E-2 0.5 -> 0.57 Inexact Rounded +pwsx2453 power 32E-3 0.5 -> 0.18 Inexact Rounded +pwsx2454 power 32E+1 0.5 -> 18 Inexact Rounded +pwsx2455 power 32E+2 0.5 -> 57 Inexact Rounded +pwsx2456 power 32E+3 0.5 -> 1.8E+2 Inexact Rounded +pwsx2457 power 0.33 0.5 -> 0.57 Inexact Rounded +pwsx2458 power 0.033 0.5 -> 0.18 Inexact Rounded +pwsx2459 power 33.0E-1 0.5 -> 1.8 Inexact Rounded +pwsx2460 power 33.00E-2 0.5 -> 0.57 Inexact Rounded +pwsx2461 power 33E-3 0.5 -> 0.18 Inexact Rounded +pwsx2462 power 33E+1 0.5 -> 18 Inexact Rounded +pwsx2463 power 33E+2 0.5 -> 57 Inexact Rounded +pwsx2464 power 33E+3 0.5 -> 1.8E+2 Inexact Rounded +pwsx2465 power 0.34 0.5 -> 0.58 Inexact Rounded +pwsx2466 power 0.034 0.5 -> 0.18 Inexact Rounded +pwsx2467 power 34.0E-1 0.5 -> 1.8 Inexact Rounded +pwsx2468 power 34.00E-2 0.5 -> 0.58 Inexact Rounded +pwsx2469 power 34E-3 0.5 -> 0.18 Inexact Rounded +pwsx2470 power 34E+1 0.5 -> 18 Inexact Rounded +pwsx2471 power 34E+2 0.5 -> 58 Inexact Rounded +pwsx2472 power 34E+3 0.5 -> 1.8E+2 Inexact Rounded +pwsx2473 power 0.35 0.5 -> 0.59 Inexact Rounded +pwsx2474 power 0.035 0.5 -> 0.19 Inexact Rounded +pwsx2475 power 35.0E-1 0.5 -> 1.9 Inexact Rounded +pwsx2476 power 35.00E-2 0.5 -> 0.59 Inexact Rounded +pwsx2477 power 35E-3 0.5 -> 0.19 Inexact Rounded +pwsx2478 power 35E+1 0.5 -> 19 Inexact Rounded +pwsx2479 power 35E+2 0.5 -> 59 Inexact Rounded +pwsx2480 power 35E+3 0.5 -> 1.9E+2 Inexact Rounded +pwsx2481 power 0.36 0.5 -> 0.60 Inexact Rounded +pwsx2482 power 0.036 0.5 -> 0.19 Inexact Rounded +pwsx2483 power 36.0E-1 0.5 -> 1.9 Inexact Rounded +pwsx2484 power 36.00E-2 0.5 -> 0.60 Inexact Rounded +pwsx2485 power 36E-3 0.5 -> 0.19 Inexact Rounded +pwsx2486 power 36E+1 0.5 -> 19 Inexact Rounded +pwsx2487 power 36E+2 0.5 -> 60 Inexact Rounded +pwsx2488 power 36E+3 0.5 -> 1.9E+2 Inexact Rounded +pwsx2489 power 0.37 0.5 -> 0.61 Inexact Rounded +pwsx2490 power 0.037 0.5 -> 0.19 Inexact Rounded +pwsx2491 power 37.0E-1 0.5 -> 1.9 Inexact Rounded +pwsx2492 power 37.00E-2 0.5 -> 0.61 Inexact Rounded +pwsx2493 power 37E-3 0.5 -> 0.19 Inexact Rounded +pwsx2494 power 37E+1 0.5 -> 19 Inexact Rounded +pwsx2495 power 37E+2 0.5 -> 61 Inexact Rounded +pwsx2496 power 37E+3 0.5 -> 1.9E+2 Inexact Rounded +pwsx2497 power 0.38 0.5 -> 0.62 Inexact Rounded +pwsx2498 power 0.038 0.5 -> 0.19 Inexact Rounded +pwsx2499 power 38.0E-1 0.5 -> 1.9 Inexact Rounded +pwsx2500 power 38.00E-2 0.5 -> 0.62 Inexact Rounded +pwsx2501 power 38E-3 0.5 -> 0.19 Inexact Rounded +pwsx2502 power 38E+1 0.5 -> 19 Inexact Rounded +pwsx2503 power 38E+2 0.5 -> 62 Inexact Rounded +pwsx2504 power 38E+3 0.5 -> 1.9E+2 Inexact Rounded +pwsx2505 power 0.39 0.5 -> 0.62 Inexact Rounded +pwsx2506 power 0.039 0.5 -> 0.20 Inexact Rounded +pwsx2507 power 39.0E-1 0.5 -> 2.0 Inexact Rounded +pwsx2508 power 39.00E-2 0.5 -> 0.62 Inexact Rounded +pwsx2509 power 39E-3 0.5 -> 0.20 Inexact Rounded +pwsx2510 power 39E+1 0.5 -> 20 Inexact Rounded +pwsx2511 power 39E+2 0.5 -> 62 Inexact Rounded +pwsx2512 power 39E+3 0.5 -> 2.0E+2 Inexact Rounded +pwsx2513 power 0.40 0.5 -> 0.63 Inexact Rounded +pwsx2514 power 0.040 0.5 -> 0.20 Inexact Rounded +pwsx2515 power 40.0E-1 0.5 -> 2.0 Inexact Rounded +pwsx2516 power 40.00E-2 0.5 -> 0.63 Inexact Rounded +pwsx2517 power 40E-3 0.5 -> 0.20 Inexact Rounded +pwsx2518 power 40E+1 0.5 -> 20 Inexact Rounded +pwsx2519 power 40E+2 0.5 -> 63 Inexact Rounded +pwsx2520 power 40E+3 0.5 -> 2.0E+2 Inexact Rounded +pwsx2521 power 0.41 0.5 -> 0.64 Inexact Rounded +pwsx2522 power 0.041 0.5 -> 0.20 Inexact Rounded +pwsx2523 power 41.0E-1 0.5 -> 2.0 Inexact Rounded +pwsx2524 power 41.00E-2 0.5 -> 0.64 Inexact Rounded +pwsx2525 power 41E-3 0.5 -> 0.20 Inexact Rounded +pwsx2526 power 41E+1 0.5 -> 20 Inexact Rounded +pwsx2527 power 41E+2 0.5 -> 64 Inexact Rounded +pwsx2528 power 41E+3 0.5 -> 2.0E+2 Inexact Rounded +pwsx2529 power 0.42 0.5 -> 0.65 Inexact Rounded +pwsx2530 power 0.042 0.5 -> 0.20 Inexact Rounded +pwsx2531 power 42.0E-1 0.5 -> 2.0 Inexact Rounded +pwsx2532 power 42.00E-2 0.5 -> 0.65 Inexact Rounded +pwsx2533 power 42E-3 0.5 -> 0.20 Inexact Rounded +pwsx2534 power 42E+1 0.5 -> 20 Inexact Rounded +pwsx2535 power 42E+2 0.5 -> 65 Inexact Rounded +pwsx2536 power 42E+3 0.5 -> 2.0E+2 Inexact Rounded +pwsx2537 power 0.43 0.5 -> 0.66 Inexact Rounded +pwsx2538 power 0.043 0.5 -> 0.21 Inexact Rounded +pwsx2539 power 43.0E-1 0.5 -> 2.1 Inexact Rounded +pwsx2540 power 43.00E-2 0.5 -> 0.66 Inexact Rounded +pwsx2541 power 43E-3 0.5 -> 0.21 Inexact Rounded +pwsx2542 power 43E+1 0.5 -> 21 Inexact Rounded +pwsx2543 power 43E+2 0.5 -> 66 Inexact Rounded +pwsx2544 power 43E+3 0.5 -> 2.1E+2 Inexact Rounded +pwsx2545 power 0.44 0.5 -> 0.66 Inexact Rounded +pwsx2546 power 0.044 0.5 -> 0.21 Inexact Rounded +pwsx2547 power 44.0E-1 0.5 -> 2.1 Inexact Rounded +pwsx2548 power 44.00E-2 0.5 -> 0.66 Inexact Rounded +pwsx2549 power 44E-3 0.5 -> 0.21 Inexact Rounded +pwsx2550 power 44E+1 0.5 -> 21 Inexact Rounded +pwsx2551 power 44E+2 0.5 -> 66 Inexact Rounded +pwsx2552 power 44E+3 0.5 -> 2.1E+2 Inexact Rounded +pwsx2553 power 0.45 0.5 -> 0.67 Inexact Rounded +pwsx2554 power 0.045 0.5 -> 0.21 Inexact Rounded +pwsx2555 power 45.0E-1 0.5 -> 2.1 Inexact Rounded +pwsx2556 power 45.00E-2 0.5 -> 0.67 Inexact Rounded +pwsx2557 power 45E-3 0.5 -> 0.21 Inexact Rounded +pwsx2558 power 45E+1 0.5 -> 21 Inexact Rounded +pwsx2559 power 45E+2 0.5 -> 67 Inexact Rounded +pwsx2560 power 45E+3 0.5 -> 2.1E+2 Inexact Rounded +pwsx2561 power 0.46 0.5 -> 0.68 Inexact Rounded +pwsx2562 power 0.046 0.5 -> 0.21 Inexact Rounded +pwsx2563 power 46.0E-1 0.5 -> 2.1 Inexact Rounded +pwsx2564 power 46.00E-2 0.5 -> 0.68 Inexact Rounded +pwsx2565 power 46E-3 0.5 -> 0.21 Inexact Rounded +pwsx2566 power 46E+1 0.5 -> 21 Inexact Rounded +pwsx2567 power 46E+2 0.5 -> 68 Inexact Rounded +pwsx2568 power 46E+3 0.5 -> 2.1E+2 Inexact Rounded +pwsx2569 power 0.47 0.5 -> 0.69 Inexact Rounded +pwsx2570 power 0.047 0.5 -> 0.22 Inexact Rounded +pwsx2571 power 47.0E-1 0.5 -> 2.2 Inexact Rounded +pwsx2572 power 47.00E-2 0.5 -> 0.69 Inexact Rounded +pwsx2573 power 47E-3 0.5 -> 0.22 Inexact Rounded +pwsx2574 power 47E+1 0.5 -> 22 Inexact Rounded +pwsx2575 power 47E+2 0.5 -> 69 Inexact Rounded +pwsx2576 power 47E+3 0.5 -> 2.2E+2 Inexact Rounded +pwsx2577 power 0.48 0.5 -> 0.69 Inexact Rounded +pwsx2578 power 0.048 0.5 -> 0.22 Inexact Rounded +pwsx2579 power 48.0E-1 0.5 -> 2.2 Inexact Rounded +pwsx2580 power 48.00E-2 0.5 -> 0.69 Inexact Rounded +pwsx2581 power 48E-3 0.5 -> 0.22 Inexact Rounded +pwsx2582 power 48E+1 0.5 -> 22 Inexact Rounded +pwsx2583 power 48E+2 0.5 -> 69 Inexact Rounded +pwsx2584 power 48E+3 0.5 -> 2.2E+2 Inexact Rounded +pwsx2585 power 0.49 0.5 -> 0.70 Inexact Rounded +pwsx2586 power 0.049 0.5 -> 0.22 Inexact Rounded +pwsx2587 power 49.0E-1 0.5 -> 2.2 Inexact Rounded +pwsx2588 power 49.00E-2 0.5 -> 0.70 Inexact Rounded +pwsx2589 power 49E-3 0.5 -> 0.22 Inexact Rounded +pwsx2590 power 49E+1 0.5 -> 22 Inexact Rounded +pwsx2591 power 49E+2 0.5 -> 70 Inexact Rounded +pwsx2592 power 49E+3 0.5 -> 2.2E+2 Inexact Rounded +pwsx2593 power 0.50 0.5 -> 0.71 Inexact Rounded +pwsx2594 power 0.050 0.5 -> 0.22 Inexact Rounded +pwsx2595 power 50.0E-1 0.5 -> 2.2 Inexact Rounded +pwsx2596 power 50.00E-2 0.5 -> 0.71 Inexact Rounded +pwsx2597 power 50E-3 0.5 -> 0.22 Inexact Rounded +pwsx2598 power 50E+1 0.5 -> 22 Inexact Rounded +pwsx2599 power 50E+2 0.5 -> 71 Inexact Rounded +pwsx2600 power 50E+3 0.5 -> 2.2E+2 Inexact Rounded +pwsx2601 power 0.51 0.5 -> 0.71 Inexact Rounded +pwsx2602 power 0.051 0.5 -> 0.23 Inexact Rounded +pwsx2603 power 51.0E-1 0.5 -> 2.3 Inexact Rounded +pwsx2604 power 51.00E-2 0.5 -> 0.71 Inexact Rounded +pwsx2605 power 51E-3 0.5 -> 0.23 Inexact Rounded +pwsx2606 power 51E+1 0.5 -> 23 Inexact Rounded +pwsx2607 power 51E+2 0.5 -> 71 Inexact Rounded +pwsx2608 power 51E+3 0.5 -> 2.3E+2 Inexact Rounded +pwsx2609 power 0.52 0.5 -> 0.72 Inexact Rounded +pwsx2610 power 0.052 0.5 -> 0.23 Inexact Rounded +pwsx2611 power 52.0E-1 0.5 -> 2.3 Inexact Rounded +pwsx2612 power 52.00E-2 0.5 -> 0.72 Inexact Rounded +pwsx2613 power 52E-3 0.5 -> 0.23 Inexact Rounded +pwsx2614 power 52E+1 0.5 -> 23 Inexact Rounded +pwsx2615 power 52E+2 0.5 -> 72 Inexact Rounded +pwsx2616 power 52E+3 0.5 -> 2.3E+2 Inexact Rounded +pwsx2617 power 0.53 0.5 -> 0.73 Inexact Rounded +pwsx2618 power 0.053 0.5 -> 0.23 Inexact Rounded +pwsx2619 power 53.0E-1 0.5 -> 2.3 Inexact Rounded +pwsx2620 power 53.00E-2 0.5 -> 0.73 Inexact Rounded +pwsx2621 power 53E-3 0.5 -> 0.23 Inexact Rounded +pwsx2622 power 53E+1 0.5 -> 23 Inexact Rounded +pwsx2623 power 53E+2 0.5 -> 73 Inexact Rounded +pwsx2624 power 53E+3 0.5 -> 2.3E+2 Inexact Rounded +pwsx2625 power 0.54 0.5 -> 0.73 Inexact Rounded +pwsx2626 power 0.054 0.5 -> 0.23 Inexact Rounded +pwsx2627 power 54.0E-1 0.5 -> 2.3 Inexact Rounded +pwsx2628 power 54.00E-2 0.5 -> 0.73 Inexact Rounded +pwsx2629 power 54E-3 0.5 -> 0.23 Inexact Rounded +pwsx2630 power 54E+1 0.5 -> 23 Inexact Rounded +pwsx2631 power 54E+2 0.5 -> 73 Inexact Rounded +pwsx2632 power 54E+3 0.5 -> 2.3E+2 Inexact Rounded +pwsx2633 power 0.55 0.5 -> 0.74 Inexact Rounded +pwsx2634 power 0.055 0.5 -> 0.23 Inexact Rounded +pwsx2635 power 55.0E-1 0.5 -> 2.3 Inexact Rounded +pwsx2636 power 55.00E-2 0.5 -> 0.74 Inexact Rounded +pwsx2637 power 55E-3 0.5 -> 0.23 Inexact Rounded +pwsx2638 power 55E+1 0.5 -> 23 Inexact Rounded +pwsx2639 power 55E+2 0.5 -> 74 Inexact Rounded +pwsx2640 power 55E+3 0.5 -> 2.3E+2 Inexact Rounded +pwsx2641 power 0.56 0.5 -> 0.75 Inexact Rounded +pwsx2642 power 0.056 0.5 -> 0.24 Inexact Rounded +pwsx2643 power 56.0E-1 0.5 -> 2.4 Inexact Rounded +pwsx2644 power 56.00E-2 0.5 -> 0.75 Inexact Rounded +pwsx2645 power 56E-3 0.5 -> 0.24 Inexact Rounded +pwsx2646 power 56E+1 0.5 -> 24 Inexact Rounded +pwsx2647 power 56E+2 0.5 -> 75 Inexact Rounded +pwsx2648 power 56E+3 0.5 -> 2.4E+2 Inexact Rounded +pwsx2649 power 0.57 0.5 -> 0.75 Inexact Rounded +pwsx2650 power 0.057 0.5 -> 0.24 Inexact Rounded +pwsx2651 power 57.0E-1 0.5 -> 2.4 Inexact Rounded +pwsx2652 power 57.00E-2 0.5 -> 0.75 Inexact Rounded +pwsx2653 power 57E-3 0.5 -> 0.24 Inexact Rounded +pwsx2654 power 57E+1 0.5 -> 24 Inexact Rounded +pwsx2655 power 57E+2 0.5 -> 75 Inexact Rounded +pwsx2656 power 57E+3 0.5 -> 2.4E+2 Inexact Rounded +pwsx2657 power 0.58 0.5 -> 0.76 Inexact Rounded +pwsx2658 power 0.058 0.5 -> 0.24 Inexact Rounded +pwsx2659 power 58.0E-1 0.5 -> 2.4 Inexact Rounded +pwsx2660 power 58.00E-2 0.5 -> 0.76 Inexact Rounded +pwsx2661 power 58E-3 0.5 -> 0.24 Inexact Rounded +pwsx2662 power 58E+1 0.5 -> 24 Inexact Rounded +pwsx2663 power 58E+2 0.5 -> 76 Inexact Rounded +pwsx2664 power 58E+3 0.5 -> 2.4E+2 Inexact Rounded +pwsx2665 power 0.59 0.5 -> 0.77 Inexact Rounded +pwsx2666 power 0.059 0.5 -> 0.24 Inexact Rounded +pwsx2667 power 59.0E-1 0.5 -> 2.4 Inexact Rounded +pwsx2668 power 59.00E-2 0.5 -> 0.77 Inexact Rounded +pwsx2669 power 59E-3 0.5 -> 0.24 Inexact Rounded +pwsx2670 power 59E+1 0.5 -> 24 Inexact Rounded +pwsx2671 power 59E+2 0.5 -> 77 Inexact Rounded +pwsx2672 power 59E+3 0.5 -> 2.4E+2 Inexact Rounded +pwsx2673 power 0.60 0.5 -> 0.77 Inexact Rounded +pwsx2674 power 0.060 0.5 -> 0.24 Inexact Rounded +pwsx2675 power 60.0E-1 0.5 -> 2.4 Inexact Rounded +pwsx2676 power 60.00E-2 0.5 -> 0.77 Inexact Rounded +pwsx2677 power 60E-3 0.5 -> 0.24 Inexact Rounded +pwsx2678 power 60E+1 0.5 -> 24 Inexact Rounded +pwsx2679 power 60E+2 0.5 -> 77 Inexact Rounded +pwsx2680 power 60E+3 0.5 -> 2.4E+2 Inexact Rounded +pwsx2681 power 0.61 0.5 -> 0.78 Inexact Rounded +pwsx2682 power 0.061 0.5 -> 0.25 Inexact Rounded +pwsx2683 power 61.0E-1 0.5 -> 2.5 Inexact Rounded +pwsx2684 power 61.00E-2 0.5 -> 0.78 Inexact Rounded +pwsx2685 power 61E-3 0.5 -> 0.25 Inexact Rounded +pwsx2686 power 61E+1 0.5 -> 25 Inexact Rounded +pwsx2687 power 61E+2 0.5 -> 78 Inexact Rounded +pwsx2688 power 61E+3 0.5 -> 2.5E+2 Inexact Rounded +pwsx2689 power 0.62 0.5 -> 0.79 Inexact Rounded +pwsx2690 power 0.062 0.5 -> 0.25 Inexact Rounded +pwsx2691 power 62.0E-1 0.5 -> 2.5 Inexact Rounded +pwsx2692 power 62.00E-2 0.5 -> 0.79 Inexact Rounded +pwsx2693 power 62E-3 0.5 -> 0.25 Inexact Rounded +pwsx2694 power 62E+1 0.5 -> 25 Inexact Rounded +pwsx2695 power 62E+2 0.5 -> 79 Inexact Rounded +pwsx2696 power 62E+3 0.5 -> 2.5E+2 Inexact Rounded +pwsx2697 power 0.63 0.5 -> 0.79 Inexact Rounded +pwsx2698 power 0.063 0.5 -> 0.25 Inexact Rounded +pwsx2699 power 63.0E-1 0.5 -> 2.5 Inexact Rounded +pwsx2700 power 63.00E-2 0.5 -> 0.79 Inexact Rounded +pwsx2701 power 63E-3 0.5 -> 0.25 Inexact Rounded +pwsx2702 power 63E+1 0.5 -> 25 Inexact Rounded +pwsx2703 power 63E+2 0.5 -> 79 Inexact Rounded +pwsx2704 power 63E+3 0.5 -> 2.5E+2 Inexact Rounded +pwsx2705 power 0.64 0.5 -> 0.80 Inexact Rounded +pwsx2706 power 0.064 0.5 -> 0.25 Inexact Rounded +pwsx2707 power 64.0E-1 0.5 -> 2.5 Inexact Rounded +pwsx2708 power 64.00E-2 0.5 -> 0.80 Inexact Rounded +pwsx2709 power 64E-3 0.5 -> 0.25 Inexact Rounded +pwsx2710 power 64E+1 0.5 -> 25 Inexact Rounded +pwsx2711 power 64E+2 0.5 -> 80 Inexact Rounded +pwsx2712 power 64E+3 0.5 -> 2.5E+2 Inexact Rounded +pwsx2713 power 0.65 0.5 -> 0.81 Inexact Rounded +pwsx2714 power 0.065 0.5 -> 0.25 Inexact Rounded +pwsx2715 power 65.0E-1 0.5 -> 2.5 Inexact Rounded +pwsx2716 power 65.00E-2 0.5 -> 0.81 Inexact Rounded +pwsx2717 power 65E-3 0.5 -> 0.25 Inexact Rounded +pwsx2718 power 65E+1 0.5 -> 25 Inexact Rounded +pwsx2719 power 65E+2 0.5 -> 81 Inexact Rounded +pwsx2720 power 65E+3 0.5 -> 2.5E+2 Inexact Rounded +pwsx2721 power 0.66 0.5 -> 0.81 Inexact Rounded +pwsx2722 power 0.066 0.5 -> 0.26 Inexact Rounded +pwsx2723 power 66.0E-1 0.5 -> 2.6 Inexact Rounded +pwsx2724 power 66.00E-2 0.5 -> 0.81 Inexact Rounded +pwsx2725 power 66E-3 0.5 -> 0.26 Inexact Rounded +pwsx2726 power 66E+1 0.5 -> 26 Inexact Rounded +pwsx2727 power 66E+2 0.5 -> 81 Inexact Rounded +pwsx2728 power 66E+3 0.5 -> 2.6E+2 Inexact Rounded +pwsx2729 power 0.67 0.5 -> 0.82 Inexact Rounded +pwsx2730 power 0.067 0.5 -> 0.26 Inexact Rounded +pwsx2731 power 67.0E-1 0.5 -> 2.6 Inexact Rounded +pwsx2732 power 67.00E-2 0.5 -> 0.82 Inexact Rounded +pwsx2733 power 67E-3 0.5 -> 0.26 Inexact Rounded +pwsx2734 power 67E+1 0.5 -> 26 Inexact Rounded +pwsx2735 power 67E+2 0.5 -> 82 Inexact Rounded +pwsx2736 power 67E+3 0.5 -> 2.6E+2 Inexact Rounded +pwsx2737 power 0.68 0.5 -> 0.82 Inexact Rounded +pwsx2738 power 0.068 0.5 -> 0.26 Inexact Rounded +pwsx2739 power 68.0E-1 0.5 -> 2.6 Inexact Rounded +pwsx2740 power 68.00E-2 0.5 -> 0.82 Inexact Rounded +pwsx2741 power 68E-3 0.5 -> 0.26 Inexact Rounded +pwsx2742 power 68E+1 0.5 -> 26 Inexact Rounded +pwsx2743 power 68E+2 0.5 -> 82 Inexact Rounded +pwsx2744 power 68E+3 0.5 -> 2.6E+2 Inexact Rounded +pwsx2745 power 0.69 0.5 -> 0.83 Inexact Rounded +pwsx2746 power 0.069 0.5 -> 0.26 Inexact Rounded +pwsx2747 power 69.0E-1 0.5 -> 2.6 Inexact Rounded +pwsx2748 power 69.00E-2 0.5 -> 0.83 Inexact Rounded +pwsx2749 power 69E-3 0.5 -> 0.26 Inexact Rounded +pwsx2750 power 69E+1 0.5 -> 26 Inexact Rounded +pwsx2751 power 69E+2 0.5 -> 83 Inexact Rounded +pwsx2752 power 69E+3 0.5 -> 2.6E+2 Inexact Rounded +pwsx2753 power 0.70 0.5 -> 0.84 Inexact Rounded +pwsx2754 power 0.070 0.5 -> 0.26 Inexact Rounded +pwsx2755 power 70.0E-1 0.5 -> 2.6 Inexact Rounded +pwsx2756 power 70.00E-2 0.5 -> 0.84 Inexact Rounded +pwsx2757 power 70E-3 0.5 -> 0.26 Inexact Rounded +pwsx2758 power 70E+1 0.5 -> 26 Inexact Rounded +pwsx2759 power 70E+2 0.5 -> 84 Inexact Rounded +pwsx2760 power 70E+3 0.5 -> 2.6E+2 Inexact Rounded +pwsx2761 power 0.71 0.5 -> 0.84 Inexact Rounded +pwsx2762 power 0.071 0.5 -> 0.27 Inexact Rounded +pwsx2763 power 71.0E-1 0.5 -> 2.7 Inexact Rounded +pwsx2764 power 71.00E-2 0.5 -> 0.84 Inexact Rounded +pwsx2765 power 71E-3 0.5 -> 0.27 Inexact Rounded +pwsx2766 power 71E+1 0.5 -> 27 Inexact Rounded +pwsx2767 power 71E+2 0.5 -> 84 Inexact Rounded +pwsx2768 power 71E+3 0.5 -> 2.7E+2 Inexact Rounded +pwsx2769 power 0.72 0.5 -> 0.85 Inexact Rounded +pwsx2770 power 0.072 0.5 -> 0.27 Inexact Rounded +pwsx2771 power 72.0E-1 0.5 -> 2.7 Inexact Rounded +pwsx2772 power 72.00E-2 0.5 -> 0.85 Inexact Rounded +pwsx2773 power 72E-3 0.5 -> 0.27 Inexact Rounded +pwsx2774 power 72E+1 0.5 -> 27 Inexact Rounded +pwsx2775 power 72E+2 0.5 -> 85 Inexact Rounded +pwsx2776 power 72E+3 0.5 -> 2.7E+2 Inexact Rounded +pwsx2777 power 0.73 0.5 -> 0.85 Inexact Rounded +pwsx2778 power 0.073 0.5 -> 0.27 Inexact Rounded +pwsx2779 power 73.0E-1 0.5 -> 2.7 Inexact Rounded +pwsx2780 power 73.00E-2 0.5 -> 0.85 Inexact Rounded +pwsx2781 power 73E-3 0.5 -> 0.27 Inexact Rounded +pwsx2782 power 73E+1 0.5 -> 27 Inexact Rounded +pwsx2783 power 73E+2 0.5 -> 85 Inexact Rounded +pwsx2784 power 73E+3 0.5 -> 2.7E+2 Inexact Rounded +pwsx2785 power 0.74 0.5 -> 0.86 Inexact Rounded +pwsx2786 power 0.074 0.5 -> 0.27 Inexact Rounded +pwsx2787 power 74.0E-1 0.5 -> 2.7 Inexact Rounded +pwsx2788 power 74.00E-2 0.5 -> 0.86 Inexact Rounded +pwsx2789 power 74E-3 0.5 -> 0.27 Inexact Rounded +pwsx2790 power 74E+1 0.5 -> 27 Inexact Rounded +pwsx2791 power 74E+2 0.5 -> 86 Inexact Rounded +pwsx2792 power 74E+3 0.5 -> 2.7E+2 Inexact Rounded +pwsx2793 power 0.75 0.5 -> 0.87 Inexact Rounded +pwsx2794 power 0.075 0.5 -> 0.27 Inexact Rounded +pwsx2795 power 75.0E-1 0.5 -> 2.7 Inexact Rounded +pwsx2796 power 75.00E-2 0.5 -> 0.87 Inexact Rounded +pwsx2797 power 75E-3 0.5 -> 0.27 Inexact Rounded +pwsx2798 power 75E+1 0.5 -> 27 Inexact Rounded +pwsx2799 power 75E+2 0.5 -> 87 Inexact Rounded +pwsx2800 power 75E+3 0.5 -> 2.7E+2 Inexact Rounded +pwsx2801 power 0.76 0.5 -> 0.87 Inexact Rounded +pwsx2802 power 0.076 0.5 -> 0.28 Inexact Rounded +pwsx2803 power 76.0E-1 0.5 -> 2.8 Inexact Rounded +pwsx2804 power 76.00E-2 0.5 -> 0.87 Inexact Rounded +pwsx2805 power 76E-3 0.5 -> 0.28 Inexact Rounded +pwsx2806 power 76E+1 0.5 -> 28 Inexact Rounded +pwsx2807 power 76E+2 0.5 -> 87 Inexact Rounded +pwsx2808 power 76E+3 0.5 -> 2.8E+2 Inexact Rounded +pwsx2809 power 0.77 0.5 -> 0.88 Inexact Rounded +pwsx2810 power 0.077 0.5 -> 0.28 Inexact Rounded +pwsx2811 power 77.0E-1 0.5 -> 2.8 Inexact Rounded +pwsx2812 power 77.00E-2 0.5 -> 0.88 Inexact Rounded +pwsx2813 power 77E-3 0.5 -> 0.28 Inexact Rounded +pwsx2814 power 77E+1 0.5 -> 28 Inexact Rounded +pwsx2815 power 77E+2 0.5 -> 88 Inexact Rounded +pwsx2816 power 77E+3 0.5 -> 2.8E+2 Inexact Rounded +pwsx2817 power 0.78 0.5 -> 0.88 Inexact Rounded +pwsx2818 power 0.078 0.5 -> 0.28 Inexact Rounded +pwsx2819 power 78.0E-1 0.5 -> 2.8 Inexact Rounded +pwsx2820 power 78.00E-2 0.5 -> 0.88 Inexact Rounded +pwsx2821 power 78E-3 0.5 -> 0.28 Inexact Rounded +pwsx2822 power 78E+1 0.5 -> 28 Inexact Rounded +pwsx2823 power 78E+2 0.5 -> 88 Inexact Rounded +pwsx2824 power 78E+3 0.5 -> 2.8E+2 Inexact Rounded +pwsx2825 power 0.79 0.5 -> 0.89 Inexact Rounded +pwsx2826 power 0.079 0.5 -> 0.28 Inexact Rounded +pwsx2827 power 79.0E-1 0.5 -> 2.8 Inexact Rounded +pwsx2828 power 79.00E-2 0.5 -> 0.89 Inexact Rounded +pwsx2829 power 79E-3 0.5 -> 0.28 Inexact Rounded +pwsx2830 power 79E+1 0.5 -> 28 Inexact Rounded +pwsx2831 power 79E+2 0.5 -> 89 Inexact Rounded +pwsx2832 power 79E+3 0.5 -> 2.8E+2 Inexact Rounded +pwsx2833 power 0.80 0.5 -> 0.89 Inexact Rounded +pwsx2834 power 0.080 0.5 -> 0.28 Inexact Rounded +pwsx2835 power 80.0E-1 0.5 -> 2.8 Inexact Rounded +pwsx2836 power 80.00E-2 0.5 -> 0.89 Inexact Rounded +pwsx2837 power 80E-3 0.5 -> 0.28 Inexact Rounded +pwsx2838 power 80E+1 0.5 -> 28 Inexact Rounded +pwsx2839 power 80E+2 0.5 -> 89 Inexact Rounded +pwsx2840 power 80E+3 0.5 -> 2.8E+2 Inexact Rounded +pwsx2841 power 0.81 0.5 -> 0.90 Inexact Rounded +pwsx2842 power 0.081 0.5 -> 0.28 Inexact Rounded +pwsx2843 power 81.0E-1 0.5 -> 2.8 Inexact Rounded +pwsx2844 power 81.00E-2 0.5 -> 0.90 Inexact Rounded +pwsx2845 power 81E-3 0.5 -> 0.28 Inexact Rounded +pwsx2846 power 81E+1 0.5 -> 28 Inexact Rounded +pwsx2847 power 81E+2 0.5 -> 90 Inexact Rounded +pwsx2848 power 81E+3 0.5 -> 2.8E+2 Inexact Rounded +pwsx2849 power 0.82 0.5 -> 0.91 Inexact Rounded +pwsx2850 power 0.082 0.5 -> 0.29 Inexact Rounded +pwsx2851 power 82.0E-1 0.5 -> 2.9 Inexact Rounded +pwsx2852 power 82.00E-2 0.5 -> 0.91 Inexact Rounded +pwsx2853 power 82E-3 0.5 -> 0.29 Inexact Rounded +pwsx2854 power 82E+1 0.5 -> 29 Inexact Rounded +pwsx2855 power 82E+2 0.5 -> 91 Inexact Rounded +pwsx2856 power 82E+3 0.5 -> 2.9E+2 Inexact Rounded +pwsx2857 power 0.83 0.5 -> 0.91 Inexact Rounded +pwsx2858 power 0.083 0.5 -> 0.29 Inexact Rounded +pwsx2859 power 83.0E-1 0.5 -> 2.9 Inexact Rounded +pwsx2860 power 83.00E-2 0.5 -> 0.91 Inexact Rounded +pwsx2861 power 83E-3 0.5 -> 0.29 Inexact Rounded +pwsx2862 power 83E+1 0.5 -> 29 Inexact Rounded +pwsx2863 power 83E+2 0.5 -> 91 Inexact Rounded +pwsx2864 power 83E+3 0.5 -> 2.9E+2 Inexact Rounded +pwsx2865 power 0.84 0.5 -> 0.92 Inexact Rounded +pwsx2866 power 0.084 0.5 -> 0.29 Inexact Rounded +pwsx2867 power 84.0E-1 0.5 -> 2.9 Inexact Rounded +pwsx2868 power 84.00E-2 0.5 -> 0.92 Inexact Rounded +pwsx2869 power 84E-3 0.5 -> 0.29 Inexact Rounded +pwsx2870 power 84E+1 0.5 -> 29 Inexact Rounded +pwsx2871 power 84E+2 0.5 -> 92 Inexact Rounded +pwsx2872 power 84E+3 0.5 -> 2.9E+2 Inexact Rounded +pwsx2873 power 0.85 0.5 -> 0.92 Inexact Rounded +pwsx2874 power 0.085 0.5 -> 0.29 Inexact Rounded +pwsx2875 power 85.0E-1 0.5 -> 2.9 Inexact Rounded +pwsx2876 power 85.00E-2 0.5 -> 0.92 Inexact Rounded +pwsx2877 power 85E-3 0.5 -> 0.29 Inexact Rounded +pwsx2878 power 85E+1 0.5 -> 29 Inexact Rounded +pwsx2879 power 85E+2 0.5 -> 92 Inexact Rounded +pwsx2880 power 85E+3 0.5 -> 2.9E+2 Inexact Rounded +pwsx2881 power 0.86 0.5 -> 0.93 Inexact Rounded +pwsx2882 power 0.086 0.5 -> 0.29 Inexact Rounded +pwsx2883 power 86.0E-1 0.5 -> 2.9 Inexact Rounded +pwsx2884 power 86.00E-2 0.5 -> 0.93 Inexact Rounded +pwsx2885 power 86E-3 0.5 -> 0.29 Inexact Rounded +pwsx2886 power 86E+1 0.5 -> 29 Inexact Rounded +pwsx2887 power 86E+2 0.5 -> 93 Inexact Rounded +pwsx2888 power 86E+3 0.5 -> 2.9E+2 Inexact Rounded +pwsx2889 power 0.87 0.5 -> 0.93 Inexact Rounded +pwsx2890 power 0.087 0.5 -> 0.29 Inexact Rounded +pwsx2891 power 87.0E-1 0.5 -> 2.9 Inexact Rounded +pwsx2892 power 87.00E-2 0.5 -> 0.93 Inexact Rounded +pwsx2893 power 87E-3 0.5 -> 0.29 Inexact Rounded +pwsx2894 power 87E+1 0.5 -> 29 Inexact Rounded +pwsx2895 power 87E+2 0.5 -> 93 Inexact Rounded +pwsx2896 power 87E+3 0.5 -> 2.9E+2 Inexact Rounded +pwsx2897 power 0.88 0.5 -> 0.94 Inexact Rounded +pwsx2898 power 0.088 0.5 -> 0.30 Inexact Rounded +pwsx2899 power 88.0E-1 0.5 -> 3.0 Inexact Rounded +pwsx2900 power 88.00E-2 0.5 -> 0.94 Inexact Rounded +pwsx2901 power 88E-3 0.5 -> 0.30 Inexact Rounded +pwsx2902 power 88E+1 0.5 -> 30 Inexact Rounded +pwsx2903 power 88E+2 0.5 -> 94 Inexact Rounded +pwsx2904 power 88E+3 0.5 -> 3.0E+2 Inexact Rounded +pwsx2905 power 0.89 0.5 -> 0.94 Inexact Rounded +pwsx2906 power 0.089 0.5 -> 0.30 Inexact Rounded +pwsx2907 power 89.0E-1 0.5 -> 3.0 Inexact Rounded +pwsx2908 power 89.00E-2 0.5 -> 0.94 Inexact Rounded +pwsx2909 power 89E-3 0.5 -> 0.30 Inexact Rounded +pwsx2910 power 89E+1 0.5 -> 30 Inexact Rounded +pwsx2911 power 89E+2 0.5 -> 94 Inexact Rounded +pwsx2912 power 89E+3 0.5 -> 3.0E+2 Inexact Rounded +pwsx2913 power 0.90 0.5 -> 0.95 Inexact Rounded +pwsx2914 power 0.090 0.5 -> 0.30 Inexact Rounded +pwsx2915 power 90.0E-1 0.5 -> 3.0 Inexact Rounded +pwsx2916 power 90.00E-2 0.5 -> 0.95 Inexact Rounded +pwsx2917 power 90E-3 0.5 -> 0.30 Inexact Rounded +pwsx2918 power 90E+1 0.5 -> 30 Inexact Rounded +pwsx2919 power 90E+2 0.5 -> 95 Inexact Rounded +pwsx2920 power 90E+3 0.5 -> 3.0E+2 Inexact Rounded +pwsx2921 power 0.91 0.5 -> 0.95 Inexact Rounded +pwsx2922 power 0.091 0.5 -> 0.30 Inexact Rounded +pwsx2923 power 91.0E-1 0.5 -> 3.0 Inexact Rounded +pwsx2924 power 91.00E-2 0.5 -> 0.95 Inexact Rounded +pwsx2925 power 91E-3 0.5 -> 0.30 Inexact Rounded +pwsx2926 power 91E+1 0.5 -> 30 Inexact Rounded +pwsx2927 power 91E+2 0.5 -> 95 Inexact Rounded +pwsx2928 power 91E+3 0.5 -> 3.0E+2 Inexact Rounded +pwsx2929 power 0.92 0.5 -> 0.96 Inexact Rounded +pwsx2930 power 0.092 0.5 -> 0.30 Inexact Rounded +pwsx2931 power 92.0E-1 0.5 -> 3.0 Inexact Rounded +pwsx2932 power 92.00E-2 0.5 -> 0.96 Inexact Rounded +pwsx2933 power 92E-3 0.5 -> 0.30 Inexact Rounded +pwsx2934 power 92E+1 0.5 -> 30 Inexact Rounded +pwsx2935 power 92E+2 0.5 -> 96 Inexact Rounded +pwsx2936 power 92E+3 0.5 -> 3.0E+2 Inexact Rounded +pwsx2937 power 0.93 0.5 -> 0.96 Inexact Rounded +pwsx2938 power 0.093 0.5 -> 0.30 Inexact Rounded +pwsx2939 power 93.0E-1 0.5 -> 3.0 Inexact Rounded +pwsx2940 power 93.00E-2 0.5 -> 0.96 Inexact Rounded +pwsx2941 power 93E-3 0.5 -> 0.30 Inexact Rounded +pwsx2942 power 93E+1 0.5 -> 30 Inexact Rounded +pwsx2943 power 93E+2 0.5 -> 96 Inexact Rounded +pwsx2944 power 93E+3 0.5 -> 3.0E+2 Inexact Rounded +pwsx2945 power 0.94 0.5 -> 0.97 Inexact Rounded +pwsx2946 power 0.094 0.5 -> 0.31 Inexact Rounded +pwsx2947 power 94.0E-1 0.5 -> 3.1 Inexact Rounded +pwsx2948 power 94.00E-2 0.5 -> 0.97 Inexact Rounded +pwsx2949 power 94E-3 0.5 -> 0.31 Inexact Rounded +pwsx2950 power 94E+1 0.5 -> 31 Inexact Rounded +pwsx2951 power 94E+2 0.5 -> 97 Inexact Rounded +pwsx2952 power 94E+3 0.5 -> 3.1E+2 Inexact Rounded +pwsx2953 power 0.95 0.5 -> 0.97 Inexact Rounded +pwsx2954 power 0.095 0.5 -> 0.31 Inexact Rounded +pwsx2955 power 95.0E-1 0.5 -> 3.1 Inexact Rounded +pwsx2956 power 95.00E-2 0.5 -> 0.97 Inexact Rounded +pwsx2957 power 95E-3 0.5 -> 0.31 Inexact Rounded +pwsx2958 power 95E+1 0.5 -> 31 Inexact Rounded +pwsx2959 power 95E+2 0.5 -> 97 Inexact Rounded +pwsx2960 power 95E+3 0.5 -> 3.1E+2 Inexact Rounded +pwsx2961 power 0.96 0.5 -> 0.98 Inexact Rounded +pwsx2962 power 0.096 0.5 -> 0.31 Inexact Rounded +pwsx2963 power 96.0E-1 0.5 -> 3.1 Inexact Rounded +pwsx2964 power 96.00E-2 0.5 -> 0.98 Inexact Rounded +pwsx2965 power 96E-3 0.5 -> 0.31 Inexact Rounded +pwsx2966 power 96E+1 0.5 -> 31 Inexact Rounded +pwsx2967 power 96E+2 0.5 -> 98 Inexact Rounded +pwsx2968 power 96E+3 0.5 -> 3.1E+2 Inexact Rounded +pwsx2969 power 0.97 0.5 -> 0.98 Inexact Rounded +pwsx2970 power 0.097 0.5 -> 0.31 Inexact Rounded +pwsx2971 power 97.0E-1 0.5 -> 3.1 Inexact Rounded +pwsx2972 power 97.00E-2 0.5 -> 0.98 Inexact Rounded +pwsx2973 power 97E-3 0.5 -> 0.31 Inexact Rounded +pwsx2974 power 97E+1 0.5 -> 31 Inexact Rounded +pwsx2975 power 97E+2 0.5 -> 98 Inexact Rounded +pwsx2976 power 97E+3 0.5 -> 3.1E+2 Inexact Rounded +pwsx2977 power 0.98 0.5 -> 0.99 Inexact Rounded +pwsx2978 power 0.098 0.5 -> 0.31 Inexact Rounded +pwsx2979 power 98.0E-1 0.5 -> 3.1 Inexact Rounded +pwsx2980 power 98.00E-2 0.5 -> 0.99 Inexact Rounded +pwsx2981 power 98E-3 0.5 -> 0.31 Inexact Rounded +pwsx2982 power 98E+1 0.5 -> 31 Inexact Rounded +pwsx2983 power 98E+2 0.5 -> 99 Inexact Rounded +pwsx2984 power 98E+3 0.5 -> 3.1E+2 Inexact Rounded +pwsx2985 power 0.99 0.5 -> 0.99 Inexact Rounded +pwsx2986 power 0.099 0.5 -> 0.31 Inexact Rounded +pwsx2987 power 99.0E-1 0.5 -> 3.1 Inexact Rounded +pwsx2988 power 99.00E-2 0.5 -> 0.99 Inexact Rounded +pwsx2989 power 99E-3 0.5 -> 0.31 Inexact Rounded +pwsx2990 power 99E+1 0.5 -> 31 Inexact Rounded +pwsx2991 power 99E+2 0.5 -> 99 Inexact Rounded +pwsx2992 power 99E+3 0.5 -> 3.1E+2 Inexact Rounded + +-- Precision 3 squareroot tests [exhaustive, f and f/10] +rounding: half_even +maxExponent: 999 +minexponent: -999 +precision: 3 +pwsx3001 power 0.1 0.5 -> 0.316 Inexact Rounded +pwsx3002 power 0.01 0.5 -> 0.100 Inexact Rounded +pwsx3003 power 0.2 0.5 -> 0.447 Inexact Rounded +pwsx3004 power 0.02 0.5 -> 0.141 Inexact Rounded +pwsx3005 power 0.3 0.5 -> 0.548 Inexact Rounded +pwsx3006 power 0.03 0.5 -> 0.173 Inexact Rounded +pwsx3007 power 0.4 0.5 -> 0.632 Inexact Rounded +pwsx3008 power 0.04 0.5 -> 0.200 Inexact Rounded +pwsx3009 power 0.5 0.5 -> 0.707 Inexact Rounded +pwsx3010 power 0.05 0.5 -> 0.224 Inexact Rounded +pwsx3011 power 0.6 0.5 -> 0.775 Inexact Rounded +pwsx3012 power 0.06 0.5 -> 0.245 Inexact Rounded +pwsx3013 power 0.7 0.5 -> 0.837 Inexact Rounded +pwsx3014 power 0.07 0.5 -> 0.265 Inexact Rounded +pwsx3015 power 0.8 0.5 -> 0.894 Inexact Rounded +pwsx3016 power 0.08 0.5 -> 0.283 Inexact Rounded +pwsx3017 power 0.9 0.5 -> 0.949 Inexact Rounded +pwsx3018 power 0.09 0.5 -> 0.300 Inexact Rounded +pwsx3019 power 0.11 0.5 -> 0.332 Inexact Rounded +pwsx3020 power 0.011 0.5 -> 0.105 Inexact Rounded +pwsx3021 power 0.12 0.5 -> 0.346 Inexact Rounded +pwsx3022 power 0.012 0.5 -> 0.110 Inexact Rounded +pwsx3023 power 0.13 0.5 -> 0.361 Inexact Rounded +pwsx3024 power 0.013 0.5 -> 0.114 Inexact Rounded +pwsx3025 power 0.14 0.5 -> 0.374 Inexact Rounded +pwsx3026 power 0.014 0.5 -> 0.118 Inexact Rounded +pwsx3027 power 0.15 0.5 -> 0.387 Inexact Rounded +pwsx3028 power 0.015 0.5 -> 0.122 Inexact Rounded +pwsx3029 power 0.16 0.5 -> 0.400 Inexact Rounded +pwsx3030 power 0.016 0.5 -> 0.126 Inexact Rounded +pwsx3031 power 0.17 0.5 -> 0.412 Inexact Rounded +pwsx3032 power 0.017 0.5 -> 0.130 Inexact Rounded +pwsx3033 power 0.18 0.5 -> 0.424 Inexact Rounded +pwsx3034 power 0.018 0.5 -> 0.134 Inexact Rounded +pwsx3035 power 0.19 0.5 -> 0.436 Inexact Rounded +pwsx3036 power 0.019 0.5 -> 0.138 Inexact Rounded +pwsx3037 power 0.21 0.5 -> 0.458 Inexact Rounded +pwsx3038 power 0.021 0.5 -> 0.145 Inexact Rounded +pwsx3039 power 0.22 0.5 -> 0.469 Inexact Rounded +pwsx3040 power 0.022 0.5 -> 0.148 Inexact Rounded +pwsx3041 power 0.23 0.5 -> 0.480 Inexact Rounded +pwsx3042 power 0.023 0.5 -> 0.152 Inexact Rounded +pwsx3043 power 0.24 0.5 -> 0.490 Inexact Rounded +pwsx3044 power 0.024 0.5 -> 0.155 Inexact Rounded +pwsx3045 power 0.25 0.5 -> 0.500 Inexact Rounded +pwsx3046 power 0.025 0.5 -> 0.158 Inexact Rounded +pwsx3047 power 0.26 0.5 -> 0.510 Inexact Rounded +pwsx3048 power 0.026 0.5 -> 0.161 Inexact Rounded +pwsx3049 power 0.27 0.5 -> 0.520 Inexact Rounded +pwsx3050 power 0.027 0.5 -> 0.164 Inexact Rounded +pwsx3051 power 0.28 0.5 -> 0.529 Inexact Rounded +pwsx3052 power 0.028 0.5 -> 0.167 Inexact Rounded +pwsx3053 power 0.29 0.5 -> 0.539 Inexact Rounded +pwsx3054 power 0.029 0.5 -> 0.170 Inexact Rounded +pwsx3055 power 0.31 0.5 -> 0.557 Inexact Rounded +pwsx3056 power 0.031 0.5 -> 0.176 Inexact Rounded +pwsx3057 power 0.32 0.5 -> 0.566 Inexact Rounded +pwsx3058 power 0.032 0.5 -> 0.179 Inexact Rounded +pwsx3059 power 0.33 0.5 -> 0.574 Inexact Rounded +pwsx3060 power 0.033 0.5 -> 0.182 Inexact Rounded +pwsx3061 power 0.34 0.5 -> 0.583 Inexact Rounded +pwsx3062 power 0.034 0.5 -> 0.184 Inexact Rounded +pwsx3063 power 0.35 0.5 -> 0.592 Inexact Rounded +pwsx3064 power 0.035 0.5 -> 0.187 Inexact Rounded +pwsx3065 power 0.36 0.5 -> 0.600 Inexact Rounded +pwsx3066 power 0.036 0.5 -> 0.190 Inexact Rounded +pwsx3067 power 0.37 0.5 -> 0.608 Inexact Rounded +pwsx3068 power 0.037 0.5 -> 0.192 Inexact Rounded +pwsx3069 power 0.38 0.5 -> 0.616 Inexact Rounded +pwsx3070 power 0.038 0.5 -> 0.195 Inexact Rounded +pwsx3071 power 0.39 0.5 -> 0.624 Inexact Rounded +pwsx3072 power 0.039 0.5 -> 0.197 Inexact Rounded +pwsx3073 power 0.41 0.5 -> 0.640 Inexact Rounded +pwsx3074 power 0.041 0.5 -> 0.202 Inexact Rounded +pwsx3075 power 0.42 0.5 -> 0.648 Inexact Rounded +pwsx3076 power 0.042 0.5 -> 0.205 Inexact Rounded +pwsx3077 power 0.43 0.5 -> 0.656 Inexact Rounded +pwsx3078 power 0.043 0.5 -> 0.207 Inexact Rounded +pwsx3079 power 0.44 0.5 -> 0.663 Inexact Rounded +pwsx3080 power 0.044 0.5 -> 0.210 Inexact Rounded +pwsx3081 power 0.45 0.5 -> 0.671 Inexact Rounded +pwsx3082 power 0.045 0.5 -> 0.212 Inexact Rounded +pwsx3083 power 0.46 0.5 -> 0.678 Inexact Rounded +pwsx3084 power 0.046 0.5 -> 0.214 Inexact Rounded +pwsx3085 power 0.47 0.5 -> 0.686 Inexact Rounded +pwsx3086 power 0.047 0.5 -> 0.217 Inexact Rounded +pwsx3087 power 0.48 0.5 -> 0.693 Inexact Rounded +pwsx3088 power 0.048 0.5 -> 0.219 Inexact Rounded +pwsx3089 power 0.49 0.5 -> 0.700 Inexact Rounded +pwsx3090 power 0.049 0.5 -> 0.221 Inexact Rounded +pwsx3091 power 0.51 0.5 -> 0.714 Inexact Rounded +pwsx3092 power 0.051 0.5 -> 0.226 Inexact Rounded +pwsx3093 power 0.52 0.5 -> 0.721 Inexact Rounded +pwsx3094 power 0.052 0.5 -> 0.228 Inexact Rounded +pwsx3095 power 0.53 0.5 -> 0.728 Inexact Rounded +pwsx3096 power 0.053 0.5 -> 0.230 Inexact Rounded +pwsx3097 power 0.54 0.5 -> 0.735 Inexact Rounded +pwsx3098 power 0.054 0.5 -> 0.232 Inexact Rounded +pwsx3099 power 0.55 0.5 -> 0.742 Inexact Rounded +pwsx3100 power 0.055 0.5 -> 0.235 Inexact Rounded +pwsx3101 power 0.56 0.5 -> 0.748 Inexact Rounded +pwsx3102 power 0.056 0.5 -> 0.237 Inexact Rounded +pwsx3103 power 0.57 0.5 -> 0.755 Inexact Rounded +pwsx3104 power 0.057 0.5 -> 0.239 Inexact Rounded +pwsx3105 power 0.58 0.5 -> 0.762 Inexact Rounded +pwsx3106 power 0.058 0.5 -> 0.241 Inexact Rounded +pwsx3107 power 0.59 0.5 -> 0.768 Inexact Rounded +pwsx3108 power 0.059 0.5 -> 0.243 Inexact Rounded +pwsx3109 power 0.61 0.5 -> 0.781 Inexact Rounded +pwsx3110 power 0.061 0.5 -> 0.247 Inexact Rounded +pwsx3111 power 0.62 0.5 -> 0.787 Inexact Rounded +pwsx3112 power 0.062 0.5 -> 0.249 Inexact Rounded +pwsx3113 power 0.63 0.5 -> 0.794 Inexact Rounded +pwsx3114 power 0.063 0.5 -> 0.251 Inexact Rounded +pwsx3115 power 0.64 0.5 -> 0.800 Inexact Rounded +pwsx3116 power 0.064 0.5 -> 0.253 Inexact Rounded +pwsx3117 power 0.65 0.5 -> 0.806 Inexact Rounded +pwsx3118 power 0.065 0.5 -> 0.255 Inexact Rounded +pwsx3119 power 0.66 0.5 -> 0.812 Inexact Rounded +pwsx3120 power 0.066 0.5 -> 0.257 Inexact Rounded +pwsx3121 power 0.67 0.5 -> 0.819 Inexact Rounded +pwsx3122 power 0.067 0.5 -> 0.259 Inexact Rounded +pwsx3123 power 0.68 0.5 -> 0.825 Inexact Rounded +pwsx3124 power 0.068 0.5 -> 0.261 Inexact Rounded +pwsx3125 power 0.69 0.5 -> 0.831 Inexact Rounded +pwsx3126 power 0.069 0.5 -> 0.263 Inexact Rounded +pwsx3127 power 0.71 0.5 -> 0.843 Inexact Rounded +pwsx3128 power 0.071 0.5 -> 0.266 Inexact Rounded +pwsx3129 power 0.72 0.5 -> 0.849 Inexact Rounded +pwsx3130 power 0.072 0.5 -> 0.268 Inexact Rounded +pwsx3131 power 0.73 0.5 -> 0.854 Inexact Rounded +pwsx3132 power 0.073 0.5 -> 0.270 Inexact Rounded +pwsx3133 power 0.74 0.5 -> 0.860 Inexact Rounded +pwsx3134 power 0.074 0.5 -> 0.272 Inexact Rounded +pwsx3135 power 0.75 0.5 -> 0.866 Inexact Rounded +pwsx3136 power 0.075 0.5 -> 0.274 Inexact Rounded +pwsx3137 power 0.76 0.5 -> 0.872 Inexact Rounded +pwsx3138 power 0.076 0.5 -> 0.276 Inexact Rounded +pwsx3139 power 0.77 0.5 -> 0.877 Inexact Rounded +pwsx3140 power 0.077 0.5 -> 0.277 Inexact Rounded +pwsx3141 power 0.78 0.5 -> 0.883 Inexact Rounded +pwsx3142 power 0.078 0.5 -> 0.279 Inexact Rounded +pwsx3143 power 0.79 0.5 -> 0.889 Inexact Rounded +pwsx3144 power 0.079 0.5 -> 0.281 Inexact Rounded +pwsx3145 power 0.81 0.5 -> 0.900 Inexact Rounded +pwsx3146 power 0.081 0.5 -> 0.285 Inexact Rounded +pwsx3147 power 0.82 0.5 -> 0.906 Inexact Rounded +pwsx3148 power 0.082 0.5 -> 0.286 Inexact Rounded +pwsx3149 power 0.83 0.5 -> 0.911 Inexact Rounded +pwsx3150 power 0.083 0.5 -> 0.288 Inexact Rounded +pwsx3151 power 0.84 0.5 -> 0.917 Inexact Rounded +pwsx3152 power 0.084 0.5 -> 0.290 Inexact Rounded +pwsx3153 power 0.85 0.5 -> 0.922 Inexact Rounded +pwsx3154 power 0.085 0.5 -> 0.292 Inexact Rounded +pwsx3155 power 0.86 0.5 -> 0.927 Inexact Rounded +pwsx3156 power 0.086 0.5 -> 0.293 Inexact Rounded +pwsx3157 power 0.87 0.5 -> 0.933 Inexact Rounded +pwsx3158 power 0.087 0.5 -> 0.295 Inexact Rounded +pwsx3159 power 0.88 0.5 -> 0.938 Inexact Rounded +pwsx3160 power 0.088 0.5 -> 0.297 Inexact Rounded +pwsx3161 power 0.89 0.5 -> 0.943 Inexact Rounded +pwsx3162 power 0.089 0.5 -> 0.298 Inexact Rounded +pwsx3163 power 0.91 0.5 -> 0.954 Inexact Rounded +pwsx3164 power 0.091 0.5 -> 0.302 Inexact Rounded +pwsx3165 power 0.92 0.5 -> 0.959 Inexact Rounded +pwsx3166 power 0.092 0.5 -> 0.303 Inexact Rounded +pwsx3167 power 0.93 0.5 -> 0.964 Inexact Rounded +pwsx3168 power 0.093 0.5 -> 0.305 Inexact Rounded +pwsx3169 power 0.94 0.5 -> 0.970 Inexact Rounded +pwsx3170 power 0.094 0.5 -> 0.307 Inexact Rounded +pwsx3171 power 0.95 0.5 -> 0.975 Inexact Rounded +pwsx3172 power 0.095 0.5 -> 0.308 Inexact Rounded +pwsx3173 power 0.96 0.5 -> 0.980 Inexact Rounded +pwsx3174 power 0.096 0.5 -> 0.310 Inexact Rounded +pwsx3175 power 0.97 0.5 -> 0.985 Inexact Rounded +pwsx3176 power 0.097 0.5 -> 0.311 Inexact Rounded +pwsx3177 power 0.98 0.5 -> 0.990 Inexact Rounded +pwsx3178 power 0.098 0.5 -> 0.313 Inexact Rounded +pwsx3179 power 0.99 0.5 -> 0.995 Inexact Rounded +pwsx3180 power 0.099 0.5 -> 0.315 Inexact Rounded +pwsx3181 power 0.101 0.5 -> 0.318 Inexact Rounded +pwsx3182 power 0.0101 0.5 -> 0.100 Inexact Rounded +pwsx3183 power 0.102 0.5 -> 0.319 Inexact Rounded +pwsx3184 power 0.0102 0.5 -> 0.101 Inexact Rounded +pwsx3185 power 0.103 0.5 -> 0.321 Inexact Rounded +pwsx3186 power 0.0103 0.5 -> 0.101 Inexact Rounded +pwsx3187 power 0.104 0.5 -> 0.322 Inexact Rounded +pwsx3188 power 0.0104 0.5 -> 0.102 Inexact Rounded +pwsx3189 power 0.105 0.5 -> 0.324 Inexact Rounded +pwsx3190 power 0.0105 0.5 -> 0.102 Inexact Rounded +pwsx3191 power 0.106 0.5 -> 0.326 Inexact Rounded +pwsx3192 power 0.0106 0.5 -> 0.103 Inexact Rounded +pwsx3193 power 0.107 0.5 -> 0.327 Inexact Rounded +pwsx3194 power 0.0107 0.5 -> 0.103 Inexact Rounded +pwsx3195 power 0.108 0.5 -> 0.329 Inexact Rounded +pwsx3196 power 0.0108 0.5 -> 0.104 Inexact Rounded +pwsx3197 power 0.109 0.5 -> 0.330 Inexact Rounded +pwsx3198 power 0.0109 0.5 -> 0.104 Inexact Rounded +pwsx3199 power 0.111 0.5 -> 0.333 Inexact Rounded +pwsx3200 power 0.0111 0.5 -> 0.105 Inexact Rounded +pwsx3201 power 0.112 0.5 -> 0.335 Inexact Rounded +pwsx3202 power 0.0112 0.5 -> 0.106 Inexact Rounded +pwsx3203 power 0.113 0.5 -> 0.336 Inexact Rounded +pwsx3204 power 0.0113 0.5 -> 0.106 Inexact Rounded +pwsx3205 power 0.114 0.5 -> 0.338 Inexact Rounded +pwsx3206 power 0.0114 0.5 -> 0.107 Inexact Rounded +pwsx3207 power 0.115 0.5 -> 0.339 Inexact Rounded +pwsx3208 power 0.0115 0.5 -> 0.107 Inexact Rounded +pwsx3209 power 0.116 0.5 -> 0.341 Inexact Rounded +pwsx3210 power 0.0116 0.5 -> 0.108 Inexact Rounded +pwsx3211 power 0.117 0.5 -> 0.342 Inexact Rounded +pwsx3212 power 0.0117 0.5 -> 0.108 Inexact Rounded +pwsx3213 power 0.118 0.5 -> 0.344 Inexact Rounded +pwsx3214 power 0.0118 0.5 -> 0.109 Inexact Rounded +pwsx3215 power 0.119 0.5 -> 0.345 Inexact Rounded +pwsx3216 power 0.0119 0.5 -> 0.109 Inexact Rounded +pwsx3217 power 0.121 0.5 -> 0.348 Inexact Rounded +pwsx3218 power 0.0121 0.5 -> 0.110 Inexact Rounded +pwsx3219 power 0.122 0.5 -> 0.349 Inexact Rounded +pwsx3220 power 0.0122 0.5 -> 0.110 Inexact Rounded +pwsx3221 power 0.123 0.5 -> 0.351 Inexact Rounded +pwsx3222 power 0.0123 0.5 -> 0.111 Inexact Rounded +pwsx3223 power 0.124 0.5 -> 0.352 Inexact Rounded +pwsx3224 power 0.0124 0.5 -> 0.111 Inexact Rounded +pwsx3225 power 0.125 0.5 -> 0.354 Inexact Rounded +pwsx3226 power 0.0125 0.5 -> 0.112 Inexact Rounded +pwsx3227 power 0.126 0.5 -> 0.355 Inexact Rounded +pwsx3228 power 0.0126 0.5 -> 0.112 Inexact Rounded +pwsx3229 power 0.127 0.5 -> 0.356 Inexact Rounded +pwsx3230 power 0.0127 0.5 -> 0.113 Inexact Rounded +pwsx3231 power 0.128 0.5 -> 0.358 Inexact Rounded +pwsx3232 power 0.0128 0.5 -> 0.113 Inexact Rounded +pwsx3233 power 0.129 0.5 -> 0.359 Inexact Rounded +pwsx3234 power 0.0129 0.5 -> 0.114 Inexact Rounded +pwsx3235 power 0.131 0.5 -> 0.362 Inexact Rounded +pwsx3236 power 0.0131 0.5 -> 0.114 Inexact Rounded +pwsx3237 power 0.132 0.5 -> 0.363 Inexact Rounded +pwsx3238 power 0.0132 0.5 -> 0.115 Inexact Rounded +pwsx3239 power 0.133 0.5 -> 0.365 Inexact Rounded +pwsx3240 power 0.0133 0.5 -> 0.115 Inexact Rounded +pwsx3241 power 0.134 0.5 -> 0.366 Inexact Rounded +pwsx3242 power 0.0134 0.5 -> 0.116 Inexact Rounded +pwsx3243 power 0.135 0.5 -> 0.367 Inexact Rounded +pwsx3244 power 0.0135 0.5 -> 0.116 Inexact Rounded +pwsx3245 power 0.136 0.5 -> 0.369 Inexact Rounded +pwsx3246 power 0.0136 0.5 -> 0.117 Inexact Rounded +pwsx3247 power 0.137 0.5 -> 0.370 Inexact Rounded +pwsx3248 power 0.0137 0.5 -> 0.117 Inexact Rounded +pwsx3249 power 0.138 0.5 -> 0.371 Inexact Rounded +pwsx3250 power 0.0138 0.5 -> 0.117 Inexact Rounded +pwsx3251 power 0.139 0.5 -> 0.373 Inexact Rounded +pwsx3252 power 0.0139 0.5 -> 0.118 Inexact Rounded +pwsx3253 power 0.141 0.5 -> 0.375 Inexact Rounded +pwsx3254 power 0.0141 0.5 -> 0.119 Inexact Rounded +pwsx3255 power 0.142 0.5 -> 0.377 Inexact Rounded +pwsx3256 power 0.0142 0.5 -> 0.119 Inexact Rounded +pwsx3257 power 0.143 0.5 -> 0.378 Inexact Rounded +pwsx3258 power 0.0143 0.5 -> 0.120 Inexact Rounded +pwsx3259 power 0.144 0.5 -> 0.379 Inexact Rounded +pwsx3260 power 0.0144 0.5 -> 0.120 Inexact Rounded +pwsx3261 power 0.145 0.5 -> 0.381 Inexact Rounded +pwsx3262 power 0.0145 0.5 -> 0.120 Inexact Rounded +pwsx3263 power 0.146 0.5 -> 0.382 Inexact Rounded +pwsx3264 power 0.0146 0.5 -> 0.121 Inexact Rounded +pwsx3265 power 0.147 0.5 -> 0.383 Inexact Rounded +pwsx3266 power 0.0147 0.5 -> 0.121 Inexact Rounded +pwsx3267 power 0.148 0.5 -> 0.385 Inexact Rounded +pwsx3268 power 0.0148 0.5 -> 0.122 Inexact Rounded +pwsx3269 power 0.149 0.5 -> 0.386 Inexact Rounded +pwsx3270 power 0.0149 0.5 -> 0.122 Inexact Rounded +pwsx3271 power 0.151 0.5 -> 0.389 Inexact Rounded +pwsx3272 power 0.0151 0.5 -> 0.123 Inexact Rounded +pwsx3273 power 0.152 0.5 -> 0.390 Inexact Rounded +pwsx3274 power 0.0152 0.5 -> 0.123 Inexact Rounded +pwsx3275 power 0.153 0.5 -> 0.391 Inexact Rounded +pwsx3276 power 0.0153 0.5 -> 0.124 Inexact Rounded +pwsx3277 power 0.154 0.5 -> 0.392 Inexact Rounded +pwsx3278 power 0.0154 0.5 -> 0.124 Inexact Rounded +pwsx3279 power 0.155 0.5 -> 0.394 Inexact Rounded +pwsx3280 power 0.0155 0.5 -> 0.124 Inexact Rounded +pwsx3281 power 0.156 0.5 -> 0.395 Inexact Rounded +pwsx3282 power 0.0156 0.5 -> 0.125 Inexact Rounded +pwsx3283 power 0.157 0.5 -> 0.396 Inexact Rounded +pwsx3284 power 0.0157 0.5 -> 0.125 Inexact Rounded +pwsx3285 power 0.158 0.5 -> 0.397 Inexact Rounded +pwsx3286 power 0.0158 0.5 -> 0.126 Inexact Rounded +pwsx3287 power 0.159 0.5 -> 0.399 Inexact Rounded +pwsx3288 power 0.0159 0.5 -> 0.126 Inexact Rounded +pwsx3289 power 0.161 0.5 -> 0.401 Inexact Rounded +pwsx3290 power 0.0161 0.5 -> 0.127 Inexact Rounded +pwsx3291 power 0.162 0.5 -> 0.402 Inexact Rounded +pwsx3292 power 0.0162 0.5 -> 0.127 Inexact Rounded +pwsx3293 power 0.163 0.5 -> 0.404 Inexact Rounded +pwsx3294 power 0.0163 0.5 -> 0.128 Inexact Rounded +pwsx3295 power 0.164 0.5 -> 0.405 Inexact Rounded +pwsx3296 power 0.0164 0.5 -> 0.128 Inexact Rounded +pwsx3297 power 0.165 0.5 -> 0.406 Inexact Rounded +pwsx3298 power 0.0165 0.5 -> 0.128 Inexact Rounded +pwsx3299 power 0.166 0.5 -> 0.407 Inexact Rounded +pwsx3300 power 0.0166 0.5 -> 0.129 Inexact Rounded +pwsx3301 power 0.167 0.5 -> 0.409 Inexact Rounded +pwsx3302 power 0.0167 0.5 -> 0.129 Inexact Rounded +pwsx3303 power 0.168 0.5 -> 0.410 Inexact Rounded +pwsx3304 power 0.0168 0.5 -> 0.130 Inexact Rounded +pwsx3305 power 0.169 0.5 -> 0.411 Inexact Rounded +pwsx3306 power 0.0169 0.5 -> 0.130 Inexact Rounded +pwsx3307 power 0.171 0.5 -> 0.414 Inexact Rounded +pwsx3308 power 0.0171 0.5 -> 0.131 Inexact Rounded +pwsx3309 power 0.172 0.5 -> 0.415 Inexact Rounded +pwsx3310 power 0.0172 0.5 -> 0.131 Inexact Rounded +pwsx3311 power 0.173 0.5 -> 0.416 Inexact Rounded +pwsx3312 power 0.0173 0.5 -> 0.132 Inexact Rounded +pwsx3313 power 0.174 0.5 -> 0.417 Inexact Rounded +pwsx3314 power 0.0174 0.5 -> 0.132 Inexact Rounded +pwsx3315 power 0.175 0.5 -> 0.418 Inexact Rounded +pwsx3316 power 0.0175 0.5 -> 0.132 Inexact Rounded +pwsx3317 power 0.176 0.5 -> 0.420 Inexact Rounded +pwsx3318 power 0.0176 0.5 -> 0.133 Inexact Rounded +pwsx3319 power 0.177 0.5 -> 0.421 Inexact Rounded +pwsx3320 power 0.0177 0.5 -> 0.133 Inexact Rounded +pwsx3321 power 0.178 0.5 -> 0.422 Inexact Rounded +pwsx3322 power 0.0178 0.5 -> 0.133 Inexact Rounded +pwsx3323 power 0.179 0.5 -> 0.423 Inexact Rounded +pwsx3324 power 0.0179 0.5 -> 0.134 Inexact Rounded +pwsx3325 power 0.181 0.5 -> 0.425 Inexact Rounded +pwsx3326 power 0.0181 0.5 -> 0.135 Inexact Rounded +pwsx3327 power 0.182 0.5 -> 0.427 Inexact Rounded +pwsx3328 power 0.0182 0.5 -> 0.135 Inexact Rounded +pwsx3329 power 0.183 0.5 -> 0.428 Inexact Rounded +pwsx3330 power 0.0183 0.5 -> 0.135 Inexact Rounded +pwsx3331 power 0.184 0.5 -> 0.429 Inexact Rounded +pwsx3332 power 0.0184 0.5 -> 0.136 Inexact Rounded +pwsx3333 power 0.185 0.5 -> 0.430 Inexact Rounded +pwsx3334 power 0.0185 0.5 -> 0.136 Inexact Rounded +pwsx3335 power 0.186 0.5 -> 0.431 Inexact Rounded +pwsx3336 power 0.0186 0.5 -> 0.136 Inexact Rounded +pwsx3337 power 0.187 0.5 -> 0.432 Inexact Rounded +pwsx3338 power 0.0187 0.5 -> 0.137 Inexact Rounded +pwsx3339 power 0.188 0.5 -> 0.434 Inexact Rounded +pwsx3340 power 0.0188 0.5 -> 0.137 Inexact Rounded +pwsx3341 power 0.189 0.5 -> 0.435 Inexact Rounded +pwsx3342 power 0.0189 0.5 -> 0.137 Inexact Rounded +pwsx3343 power 0.191 0.5 -> 0.437 Inexact Rounded +pwsx3344 power 0.0191 0.5 -> 0.138 Inexact Rounded +pwsx3345 power 0.192 0.5 -> 0.438 Inexact Rounded +pwsx3346 power 0.0192 0.5 -> 0.139 Inexact Rounded +pwsx3347 power 0.193 0.5 -> 0.439 Inexact Rounded +pwsx3348 power 0.0193 0.5 -> 0.139 Inexact Rounded +pwsx3349 power 0.194 0.5 -> 0.440 Inexact Rounded +pwsx3350 power 0.0194 0.5 -> 0.139 Inexact Rounded +pwsx3351 power 0.195 0.5 -> 0.442 Inexact Rounded +pwsx3352 power 0.0195 0.5 -> 0.140 Inexact Rounded +pwsx3353 power 0.196 0.5 -> 0.443 Inexact Rounded +pwsx3354 power 0.0196 0.5 -> 0.140 Inexact Rounded +pwsx3355 power 0.197 0.5 -> 0.444 Inexact Rounded +pwsx3356 power 0.0197 0.5 -> 0.140 Inexact Rounded +pwsx3357 power 0.198 0.5 -> 0.445 Inexact Rounded +pwsx3358 power 0.0198 0.5 -> 0.141 Inexact Rounded +pwsx3359 power 0.199 0.5 -> 0.446 Inexact Rounded +pwsx3360 power 0.0199 0.5 -> 0.141 Inexact Rounded +pwsx3361 power 0.201 0.5 -> 0.448 Inexact Rounded +pwsx3362 power 0.0201 0.5 -> 0.142 Inexact Rounded +pwsx3363 power 0.202 0.5 -> 0.449 Inexact Rounded +pwsx3364 power 0.0202 0.5 -> 0.142 Inexact Rounded +pwsx3365 power 0.203 0.5 -> 0.451 Inexact Rounded +pwsx3366 power 0.0203 0.5 -> 0.142 Inexact Rounded +pwsx3367 power 0.204 0.5 -> 0.452 Inexact Rounded +pwsx3368 power 0.0204 0.5 -> 0.143 Inexact Rounded +pwsx3369 power 0.205 0.5 -> 0.453 Inexact Rounded +pwsx3370 power 0.0205 0.5 -> 0.143 Inexact Rounded +pwsx3371 power 0.206 0.5 -> 0.454 Inexact Rounded +pwsx3372 power 0.0206 0.5 -> 0.144 Inexact Rounded +pwsx3373 power 0.207 0.5 -> 0.455 Inexact Rounded +pwsx3374 power 0.0207 0.5 -> 0.144 Inexact Rounded +pwsx3375 power 0.208 0.5 -> 0.456 Inexact Rounded +pwsx3376 power 0.0208 0.5 -> 0.144 Inexact Rounded +pwsx3377 power 0.209 0.5 -> 0.457 Inexact Rounded +pwsx3378 power 0.0209 0.5 -> 0.145 Inexact Rounded +pwsx3379 power 0.211 0.5 -> 0.459 Inexact Rounded +pwsx3380 power 0.0211 0.5 -> 0.145 Inexact Rounded +pwsx3381 power 0.212 0.5 -> 0.460 Inexact Rounded +pwsx3382 power 0.0212 0.5 -> 0.146 Inexact Rounded +pwsx3383 power 0.213 0.5 -> 0.462 Inexact Rounded +pwsx3384 power 0.0213 0.5 -> 0.146 Inexact Rounded +pwsx3385 power 0.214 0.5 -> 0.463 Inexact Rounded +pwsx3386 power 0.0214 0.5 -> 0.146 Inexact Rounded +pwsx3387 power 0.215 0.5 -> 0.464 Inexact Rounded +pwsx3388 power 0.0215 0.5 -> 0.147 Inexact Rounded +pwsx3389 power 0.216 0.5 -> 0.465 Inexact Rounded +pwsx3390 power 0.0216 0.5 -> 0.147 Inexact Rounded +pwsx3391 power 0.217 0.5 -> 0.466 Inexact Rounded +pwsx3392 power 0.0217 0.5 -> 0.147 Inexact Rounded +pwsx3393 power 0.218 0.5 -> 0.467 Inexact Rounded +pwsx3394 power 0.0218 0.5 -> 0.148 Inexact Rounded +pwsx3395 power 0.219 0.5 -> 0.468 Inexact Rounded +pwsx3396 power 0.0219 0.5 -> 0.148 Inexact Rounded +pwsx3397 power 0.221 0.5 -> 0.470 Inexact Rounded +pwsx3398 power 0.0221 0.5 -> 0.149 Inexact Rounded +pwsx3399 power 0.222 0.5 -> 0.471 Inexact Rounded +pwsx3400 power 0.0222 0.5 -> 0.149 Inexact Rounded +pwsx3401 power 0.223 0.5 -> 0.472 Inexact Rounded +pwsx3402 power 0.0223 0.5 -> 0.149 Inexact Rounded +pwsx3403 power 0.224 0.5 -> 0.473 Inexact Rounded +pwsx3404 power 0.0224 0.5 -> 0.150 Inexact Rounded +pwsx3405 power 0.225 0.5 -> 0.474 Inexact Rounded +pwsx3406 power 0.0225 0.5 -> 0.150 Inexact Rounded +pwsx3407 power 0.226 0.5 -> 0.475 Inexact Rounded +pwsx3408 power 0.0226 0.5 -> 0.150 Inexact Rounded +pwsx3409 power 0.227 0.5 -> 0.476 Inexact Rounded +pwsx3410 power 0.0227 0.5 -> 0.151 Inexact Rounded +pwsx3411 power 0.228 0.5 -> 0.477 Inexact Rounded +pwsx3412 power 0.0228 0.5 -> 0.151 Inexact Rounded +pwsx3413 power 0.229 0.5 -> 0.479 Inexact Rounded +pwsx3414 power 0.0229 0.5 -> 0.151 Inexact Rounded +pwsx3415 power 0.231 0.5 -> 0.481 Inexact Rounded +pwsx3416 power 0.0231 0.5 -> 0.152 Inexact Rounded +pwsx3417 power 0.232 0.5 -> 0.482 Inexact Rounded +pwsx3418 power 0.0232 0.5 -> 0.152 Inexact Rounded +pwsx3419 power 0.233 0.5 -> 0.483 Inexact Rounded +pwsx3420 power 0.0233 0.5 -> 0.153 Inexact Rounded +pwsx3421 power 0.234 0.5 -> 0.484 Inexact Rounded +pwsx3422 power 0.0234 0.5 -> 0.153 Inexact Rounded +pwsx3423 power 0.235 0.5 -> 0.485 Inexact Rounded +pwsx3424 power 0.0235 0.5 -> 0.153 Inexact Rounded +pwsx3425 power 0.236 0.5 -> 0.486 Inexact Rounded +pwsx3426 power 0.0236 0.5 -> 0.154 Inexact Rounded +pwsx3427 power 0.237 0.5 -> 0.487 Inexact Rounded +pwsx3428 power 0.0237 0.5 -> 0.154 Inexact Rounded +pwsx3429 power 0.238 0.5 -> 0.488 Inexact Rounded +pwsx3430 power 0.0238 0.5 -> 0.154 Inexact Rounded +pwsx3431 power 0.239 0.5 -> 0.489 Inexact Rounded +pwsx3432 power 0.0239 0.5 -> 0.155 Inexact Rounded +pwsx3433 power 0.241 0.5 -> 0.491 Inexact Rounded +pwsx3434 power 0.0241 0.5 -> 0.155 Inexact Rounded +pwsx3435 power 0.242 0.5 -> 0.492 Inexact Rounded +pwsx3436 power 0.0242 0.5 -> 0.156 Inexact Rounded +pwsx3437 power 0.243 0.5 -> 0.493 Inexact Rounded +pwsx3438 power 0.0243 0.5 -> 0.156 Inexact Rounded +pwsx3439 power 0.244 0.5 -> 0.494 Inexact Rounded +pwsx3440 power 0.0244 0.5 -> 0.156 Inexact Rounded +pwsx3441 power 0.245 0.5 -> 0.495 Inexact Rounded +pwsx3442 power 0.0245 0.5 -> 0.157 Inexact Rounded +pwsx3443 power 0.246 0.5 -> 0.496 Inexact Rounded +pwsx3444 power 0.0246 0.5 -> 0.157 Inexact Rounded +pwsx3445 power 0.247 0.5 -> 0.497 Inexact Rounded +pwsx3446 power 0.0247 0.5 -> 0.157 Inexact Rounded +pwsx3447 power 0.248 0.5 -> 0.498 Inexact Rounded +pwsx3448 power 0.0248 0.5 -> 0.157 Inexact Rounded +pwsx3449 power 0.249 0.5 -> 0.499 Inexact Rounded +pwsx3450 power 0.0249 0.5 -> 0.158 Inexact Rounded +pwsx3451 power 0.251 0.5 -> 0.501 Inexact Rounded +pwsx3452 power 0.0251 0.5 -> 0.158 Inexact Rounded +pwsx3453 power 0.252 0.5 -> 0.502 Inexact Rounded +pwsx3454 power 0.0252 0.5 -> 0.159 Inexact Rounded +pwsx3455 power 0.253 0.5 -> 0.503 Inexact Rounded +pwsx3456 power 0.0253 0.5 -> 0.159 Inexact Rounded +pwsx3457 power 0.254 0.5 -> 0.504 Inexact Rounded +pwsx3458 power 0.0254 0.5 -> 0.159 Inexact Rounded +pwsx3459 power 0.255 0.5 -> 0.505 Inexact Rounded +pwsx3460 power 0.0255 0.5 -> 0.160 Inexact Rounded +pwsx3461 power 0.256 0.5 -> 0.506 Inexact Rounded +pwsx3462 power 0.0256 0.5 -> 0.160 Inexact Rounded +pwsx3463 power 0.257 0.5 -> 0.507 Inexact Rounded +pwsx3464 power 0.0257 0.5 -> 0.160 Inexact Rounded +pwsx3465 power 0.258 0.5 -> 0.508 Inexact Rounded +pwsx3466 power 0.0258 0.5 -> 0.161 Inexact Rounded +pwsx3467 power 0.259 0.5 -> 0.509 Inexact Rounded +pwsx3468 power 0.0259 0.5 -> 0.161 Inexact Rounded +pwsx3469 power 0.261 0.5 -> 0.511 Inexact Rounded +pwsx3470 power 0.0261 0.5 -> 0.162 Inexact Rounded +pwsx3471 power 0.262 0.5 -> 0.512 Inexact Rounded +pwsx3472 power 0.0262 0.5 -> 0.162 Inexact Rounded +pwsx3473 power 0.263 0.5 -> 0.513 Inexact Rounded +pwsx3474 power 0.0263 0.5 -> 0.162 Inexact Rounded +pwsx3475 power 0.264 0.5 -> 0.514 Inexact Rounded +pwsx3476 power 0.0264 0.5 -> 0.162 Inexact Rounded +pwsx3477 power 0.265 0.5 -> 0.515 Inexact Rounded +pwsx3478 power 0.0265 0.5 -> 0.163 Inexact Rounded +pwsx3479 power 0.266 0.5 -> 0.516 Inexact Rounded +pwsx3480 power 0.0266 0.5 -> 0.163 Inexact Rounded +pwsx3481 power 0.267 0.5 -> 0.517 Inexact Rounded +pwsx3482 power 0.0267 0.5 -> 0.163 Inexact Rounded +pwsx3483 power 0.268 0.5 -> 0.518 Inexact Rounded +pwsx3484 power 0.0268 0.5 -> 0.164 Inexact Rounded +pwsx3485 power 0.269 0.5 -> 0.519 Inexact Rounded +pwsx3486 power 0.0269 0.5 -> 0.164 Inexact Rounded +pwsx3487 power 0.271 0.5 -> 0.521 Inexact Rounded +pwsx3488 power 0.0271 0.5 -> 0.165 Inexact Rounded +pwsx3489 power 0.272 0.5 -> 0.522 Inexact Rounded +pwsx3490 power 0.0272 0.5 -> 0.165 Inexact Rounded +pwsx3491 power 0.273 0.5 -> 0.522 Inexact Rounded +pwsx3492 power 0.0273 0.5 -> 0.165 Inexact Rounded +pwsx3493 power 0.274 0.5 -> 0.523 Inexact Rounded +pwsx3494 power 0.0274 0.5 -> 0.166 Inexact Rounded +pwsx3495 power 0.275 0.5 -> 0.524 Inexact Rounded +pwsx3496 power 0.0275 0.5 -> 0.166 Inexact Rounded +pwsx3497 power 0.276 0.5 -> 0.525 Inexact Rounded +pwsx3498 power 0.0276 0.5 -> 0.166 Inexact Rounded +pwsx3499 power 0.277 0.5 -> 0.526 Inexact Rounded +pwsx3500 power 0.0277 0.5 -> 0.166 Inexact Rounded +pwsx3501 power 0.278 0.5 -> 0.527 Inexact Rounded +pwsx3502 power 0.0278 0.5 -> 0.167 Inexact Rounded +pwsx3503 power 0.279 0.5 -> 0.528 Inexact Rounded +pwsx3504 power 0.0279 0.5 -> 0.167 Inexact Rounded +pwsx3505 power 0.281 0.5 -> 0.530 Inexact Rounded +pwsx3506 power 0.0281 0.5 -> 0.168 Inexact Rounded +pwsx3507 power 0.282 0.5 -> 0.531 Inexact Rounded +pwsx3508 power 0.0282 0.5 -> 0.168 Inexact Rounded +pwsx3509 power 0.283 0.5 -> 0.532 Inexact Rounded +pwsx3510 power 0.0283 0.5 -> 0.168 Inexact Rounded +pwsx3511 power 0.284 0.5 -> 0.533 Inexact Rounded +pwsx3512 power 0.0284 0.5 -> 0.169 Inexact Rounded +pwsx3513 power 0.285 0.5 -> 0.534 Inexact Rounded +pwsx3514 power 0.0285 0.5 -> 0.169 Inexact Rounded +pwsx3515 power 0.286 0.5 -> 0.535 Inexact Rounded +pwsx3516 power 0.0286 0.5 -> 0.169 Inexact Rounded +pwsx3517 power 0.287 0.5 -> 0.536 Inexact Rounded +pwsx3518 power 0.0287 0.5 -> 0.169 Inexact Rounded +pwsx3519 power 0.288 0.5 -> 0.537 Inexact Rounded +pwsx3520 power 0.0288 0.5 -> 0.170 Inexact Rounded +pwsx3521 power 0.289 0.5 -> 0.538 Inexact Rounded +pwsx3522 power 0.0289 0.5 -> 0.170 Inexact Rounded +pwsx3523 power 0.291 0.5 -> 0.539 Inexact Rounded +pwsx3524 power 0.0291 0.5 -> 0.171 Inexact Rounded +pwsx3525 power 0.292 0.5 -> 0.540 Inexact Rounded +pwsx3526 power 0.0292 0.5 -> 0.171 Inexact Rounded +pwsx3527 power 0.293 0.5 -> 0.541 Inexact Rounded +pwsx3528 power 0.0293 0.5 -> 0.171 Inexact Rounded +pwsx3529 power 0.294 0.5 -> 0.542 Inexact Rounded +pwsx3530 power 0.0294 0.5 -> 0.171 Inexact Rounded +pwsx3531 power 0.295 0.5 -> 0.543 Inexact Rounded +pwsx3532 power 0.0295 0.5 -> 0.172 Inexact Rounded +pwsx3533 power 0.296 0.5 -> 0.544 Inexact Rounded +pwsx3534 power 0.0296 0.5 -> 0.172 Inexact Rounded +pwsx3535 power 0.297 0.5 -> 0.545 Inexact Rounded +pwsx3536 power 0.0297 0.5 -> 0.172 Inexact Rounded +pwsx3537 power 0.298 0.5 -> 0.546 Inexact Rounded +pwsx3538 power 0.0298 0.5 -> 0.173 Inexact Rounded +pwsx3539 power 0.299 0.5 -> 0.547 Inexact Rounded +pwsx3540 power 0.0299 0.5 -> 0.173 Inexact Rounded +pwsx3541 power 0.301 0.5 -> 0.549 Inexact Rounded +pwsx3542 power 0.0301 0.5 -> 0.173 Inexact Rounded +pwsx3543 power 0.302 0.5 -> 0.550 Inexact Rounded +pwsx3544 power 0.0302 0.5 -> 0.174 Inexact Rounded +pwsx3545 power 0.303 0.5 -> 0.550 Inexact Rounded +pwsx3546 power 0.0303 0.5 -> 0.174 Inexact Rounded +pwsx3547 power 0.304 0.5 -> 0.551 Inexact Rounded +pwsx3548 power 0.0304 0.5 -> 0.174 Inexact Rounded +pwsx3549 power 0.305 0.5 -> 0.552 Inexact Rounded +pwsx3550 power 0.0305 0.5 -> 0.175 Inexact Rounded +pwsx3551 power 0.306 0.5 -> 0.553 Inexact Rounded +pwsx3552 power 0.0306 0.5 -> 0.175 Inexact Rounded +pwsx3553 power 0.307 0.5 -> 0.554 Inexact Rounded +pwsx3554 power 0.0307 0.5 -> 0.175 Inexact Rounded +pwsx3555 power 0.308 0.5 -> 0.555 Inexact Rounded +pwsx3556 power 0.0308 0.5 -> 0.175 Inexact Rounded +pwsx3557 power 0.309 0.5 -> 0.556 Inexact Rounded +pwsx3558 power 0.0309 0.5 -> 0.176 Inexact Rounded +pwsx3559 power 0.311 0.5 -> 0.558 Inexact Rounded +pwsx3560 power 0.0311 0.5 -> 0.176 Inexact Rounded +pwsx3561 power 0.312 0.5 -> 0.559 Inexact Rounded +pwsx3562 power 0.0312 0.5 -> 0.177 Inexact Rounded +pwsx3563 power 0.313 0.5 -> 0.559 Inexact Rounded +pwsx3564 power 0.0313 0.5 -> 0.177 Inexact Rounded +pwsx3565 power 0.314 0.5 -> 0.560 Inexact Rounded +pwsx3566 power 0.0314 0.5 -> 0.177 Inexact Rounded +pwsx3567 power 0.315 0.5 -> 0.561 Inexact Rounded +pwsx3568 power 0.0315 0.5 -> 0.177 Inexact Rounded +pwsx3569 power 0.316 0.5 -> 0.562 Inexact Rounded +pwsx3570 power 0.0316 0.5 -> 0.178 Inexact Rounded +pwsx3571 power 0.317 0.5 -> 0.563 Inexact Rounded +pwsx3572 power 0.0317 0.5 -> 0.178 Inexact Rounded +pwsx3573 power 0.318 0.5 -> 0.564 Inexact Rounded +pwsx3574 power 0.0318 0.5 -> 0.178 Inexact Rounded +pwsx3575 power 0.319 0.5 -> 0.565 Inexact Rounded +pwsx3576 power 0.0319 0.5 -> 0.179 Inexact Rounded +pwsx3577 power 0.321 0.5 -> 0.567 Inexact Rounded +pwsx3578 power 0.0321 0.5 -> 0.179 Inexact Rounded +pwsx3579 power 0.322 0.5 -> 0.567 Inexact Rounded +pwsx3580 power 0.0322 0.5 -> 0.179 Inexact Rounded +pwsx3581 power 0.323 0.5 -> 0.568 Inexact Rounded +pwsx3582 power 0.0323 0.5 -> 0.180 Inexact Rounded +pwsx3583 power 0.324 0.5 -> 0.569 Inexact Rounded +pwsx3584 power 0.0324 0.5 -> 0.180 Inexact Rounded +pwsx3585 power 0.325 0.5 -> 0.570 Inexact Rounded +pwsx3586 power 0.0325 0.5 -> 0.180 Inexact Rounded +pwsx3587 power 0.326 0.5 -> 0.571 Inexact Rounded +pwsx3588 power 0.0326 0.5 -> 0.181 Inexact Rounded +pwsx3589 power 0.327 0.5 -> 0.572 Inexact Rounded +pwsx3590 power 0.0327 0.5 -> 0.181 Inexact Rounded +pwsx3591 power 0.328 0.5 -> 0.573 Inexact Rounded +pwsx3592 power 0.0328 0.5 -> 0.181 Inexact Rounded +pwsx3593 power 0.329 0.5 -> 0.574 Inexact Rounded +pwsx3594 power 0.0329 0.5 -> 0.181 Inexact Rounded +pwsx3595 power 0.331 0.5 -> 0.575 Inexact Rounded +pwsx3596 power 0.0331 0.5 -> 0.182 Inexact Rounded +pwsx3597 power 0.332 0.5 -> 0.576 Inexact Rounded +pwsx3598 power 0.0332 0.5 -> 0.182 Inexact Rounded +pwsx3599 power 0.333 0.5 -> 0.577 Inexact Rounded +pwsx3600 power 0.0333 0.5 -> 0.182 Inexact Rounded +pwsx3601 power 0.334 0.5 -> 0.578 Inexact Rounded +pwsx3602 power 0.0334 0.5 -> 0.183 Inexact Rounded +pwsx3603 power 0.335 0.5 -> 0.579 Inexact Rounded +pwsx3604 power 0.0335 0.5 -> 0.183 Inexact Rounded +pwsx3605 power 0.336 0.5 -> 0.580 Inexact Rounded +pwsx3606 power 0.0336 0.5 -> 0.183 Inexact Rounded +pwsx3607 power 0.337 0.5 -> 0.581 Inexact Rounded +pwsx3608 power 0.0337 0.5 -> 0.184 Inexact Rounded +pwsx3609 power 0.338 0.5 -> 0.581 Inexact Rounded +pwsx3610 power 0.0338 0.5 -> 0.184 Inexact Rounded +pwsx3611 power 0.339 0.5 -> 0.582 Inexact Rounded +pwsx3612 power 0.0339 0.5 -> 0.184 Inexact Rounded +pwsx3613 power 0.341 0.5 -> 0.584 Inexact Rounded +pwsx3614 power 0.0341 0.5 -> 0.185 Inexact Rounded +pwsx3615 power 0.342 0.5 -> 0.585 Inexact Rounded +pwsx3616 power 0.0342 0.5 -> 0.185 Inexact Rounded +pwsx3617 power 0.343 0.5 -> 0.586 Inexact Rounded +pwsx3618 power 0.0343 0.5 -> 0.185 Inexact Rounded +pwsx3619 power 0.344 0.5 -> 0.587 Inexact Rounded +pwsx3620 power 0.0344 0.5 -> 0.185 Inexact Rounded +pwsx3621 power 0.345 0.5 -> 0.587 Inexact Rounded +pwsx3622 power 0.0345 0.5 -> 0.186 Inexact Rounded +pwsx3623 power 0.346 0.5 -> 0.588 Inexact Rounded +pwsx3624 power 0.0346 0.5 -> 0.186 Inexact Rounded +pwsx3625 power 0.347 0.5 -> 0.589 Inexact Rounded +pwsx3626 power 0.0347 0.5 -> 0.186 Inexact Rounded +pwsx3627 power 0.348 0.5 -> 0.590 Inexact Rounded +pwsx3628 power 0.0348 0.5 -> 0.187 Inexact Rounded +pwsx3629 power 0.349 0.5 -> 0.591 Inexact Rounded +pwsx3630 power 0.0349 0.5 -> 0.187 Inexact Rounded +pwsx3631 power 0.351 0.5 -> 0.592 Inexact Rounded +pwsx3632 power 0.0351 0.5 -> 0.187 Inexact Rounded +pwsx3633 power 0.352 0.5 -> 0.593 Inexact Rounded +pwsx3634 power 0.0352 0.5 -> 0.188 Inexact Rounded +pwsx3635 power 0.353 0.5 -> 0.594 Inexact Rounded +pwsx3636 power 0.0353 0.5 -> 0.188 Inexact Rounded +pwsx3637 power 0.354 0.5 -> 0.595 Inexact Rounded +pwsx3638 power 0.0354 0.5 -> 0.188 Inexact Rounded +pwsx3639 power 0.355 0.5 -> 0.596 Inexact Rounded +pwsx3640 power 0.0355 0.5 -> 0.188 Inexact Rounded +pwsx3641 power 0.356 0.5 -> 0.597 Inexact Rounded +pwsx3642 power 0.0356 0.5 -> 0.189 Inexact Rounded +pwsx3643 power 0.357 0.5 -> 0.597 Inexact Rounded +pwsx3644 power 0.0357 0.5 -> 0.189 Inexact Rounded +pwsx3645 power 0.358 0.5 -> 0.598 Inexact Rounded +pwsx3646 power 0.0358 0.5 -> 0.189 Inexact Rounded +pwsx3647 power 0.359 0.5 -> 0.599 Inexact Rounded +pwsx3648 power 0.0359 0.5 -> 0.189 Inexact Rounded +pwsx3649 power 0.361 0.5 -> 0.601 Inexact Rounded +pwsx3650 power 0.0361 0.5 -> 0.190 Inexact Rounded +pwsx3651 power 0.362 0.5 -> 0.602 Inexact Rounded +pwsx3652 power 0.0362 0.5 -> 0.190 Inexact Rounded +pwsx3653 power 0.363 0.5 -> 0.602 Inexact Rounded +pwsx3654 power 0.0363 0.5 -> 0.191 Inexact Rounded +pwsx3655 power 0.364 0.5 -> 0.603 Inexact Rounded +pwsx3656 power 0.0364 0.5 -> 0.191 Inexact Rounded +pwsx3657 power 0.365 0.5 -> 0.604 Inexact Rounded +pwsx3658 power 0.0365 0.5 -> 0.191 Inexact Rounded +pwsx3659 power 0.366 0.5 -> 0.605 Inexact Rounded +pwsx3660 power 0.0366 0.5 -> 0.191 Inexact Rounded +pwsx3661 power 0.367 0.5 -> 0.606 Inexact Rounded +pwsx3662 power 0.0367 0.5 -> 0.192 Inexact Rounded +pwsx3663 power 0.368 0.5 -> 0.607 Inexact Rounded +pwsx3664 power 0.0368 0.5 -> 0.192 Inexact Rounded +pwsx3665 power 0.369 0.5 -> 0.607 Inexact Rounded +pwsx3666 power 0.0369 0.5 -> 0.192 Inexact Rounded +pwsx3667 power 0.371 0.5 -> 0.609 Inexact Rounded +pwsx3668 power 0.0371 0.5 -> 0.193 Inexact Rounded +pwsx3669 power 0.372 0.5 -> 0.610 Inexact Rounded +pwsx3670 power 0.0372 0.5 -> 0.193 Inexact Rounded +pwsx3671 power 0.373 0.5 -> 0.611 Inexact Rounded +pwsx3672 power 0.0373 0.5 -> 0.193 Inexact Rounded +pwsx3673 power 0.374 0.5 -> 0.612 Inexact Rounded +pwsx3674 power 0.0374 0.5 -> 0.193 Inexact Rounded +pwsx3675 power 0.375 0.5 -> 0.612 Inexact Rounded +pwsx3676 power 0.0375 0.5 -> 0.194 Inexact Rounded +pwsx3677 power 0.376 0.5 -> 0.613 Inexact Rounded +pwsx3678 power 0.0376 0.5 -> 0.194 Inexact Rounded +pwsx3679 power 0.377 0.5 -> 0.614 Inexact Rounded +pwsx3680 power 0.0377 0.5 -> 0.194 Inexact Rounded +pwsx3681 power 0.378 0.5 -> 0.615 Inexact Rounded +pwsx3682 power 0.0378 0.5 -> 0.194 Inexact Rounded +pwsx3683 power 0.379 0.5 -> 0.616 Inexact Rounded +pwsx3684 power 0.0379 0.5 -> 0.195 Inexact Rounded +pwsx3685 power 0.381 0.5 -> 0.617 Inexact Rounded +pwsx3686 power 0.0381 0.5 -> 0.195 Inexact Rounded +pwsx3687 power 0.382 0.5 -> 0.618 Inexact Rounded +pwsx3688 power 0.0382 0.5 -> 0.195 Inexact Rounded +pwsx3689 power 0.383 0.5 -> 0.619 Inexact Rounded +pwsx3690 power 0.0383 0.5 -> 0.196 Inexact Rounded +pwsx3691 power 0.384 0.5 -> 0.620 Inexact Rounded +pwsx3692 power 0.0384 0.5 -> 0.196 Inexact Rounded +pwsx3693 power 0.385 0.5 -> 0.620 Inexact Rounded +pwsx3694 power 0.0385 0.5 -> 0.196 Inexact Rounded +pwsx3695 power 0.386 0.5 -> 0.621 Inexact Rounded +pwsx3696 power 0.0386 0.5 -> 0.196 Inexact Rounded +pwsx3697 power 0.387 0.5 -> 0.622 Inexact Rounded +pwsx3698 power 0.0387 0.5 -> 0.197 Inexact Rounded +pwsx3699 power 0.388 0.5 -> 0.623 Inexact Rounded +pwsx3700 power 0.0388 0.5 -> 0.197 Inexact Rounded +pwsx3701 power 0.389 0.5 -> 0.624 Inexact Rounded +pwsx3702 power 0.0389 0.5 -> 0.197 Inexact Rounded +pwsx3703 power 0.391 0.5 -> 0.625 Inexact Rounded +pwsx3704 power 0.0391 0.5 -> 0.198 Inexact Rounded +pwsx3705 power 0.392 0.5 -> 0.626 Inexact Rounded +pwsx3706 power 0.0392 0.5 -> 0.198 Inexact Rounded +pwsx3707 power 0.393 0.5 -> 0.627 Inexact Rounded +pwsx3708 power 0.0393 0.5 -> 0.198 Inexact Rounded +pwsx3709 power 0.394 0.5 -> 0.628 Inexact Rounded +pwsx3710 power 0.0394 0.5 -> 0.198 Inexact Rounded +pwsx3711 power 0.395 0.5 -> 0.628 Inexact Rounded +pwsx3712 power 0.0395 0.5 -> 0.199 Inexact Rounded +pwsx3713 power 0.396 0.5 -> 0.629 Inexact Rounded +pwsx3714 power 0.0396 0.5 -> 0.199 Inexact Rounded +pwsx3715 power 0.397 0.5 -> 0.630 Inexact Rounded +pwsx3716 power 0.0397 0.5 -> 0.199 Inexact Rounded +pwsx3717 power 0.398 0.5 -> 0.631 Inexact Rounded +pwsx3718 power 0.0398 0.5 -> 0.199 Inexact Rounded +pwsx3719 power 0.399 0.5 -> 0.632 Inexact Rounded +pwsx3720 power 0.0399 0.5 -> 0.200 Inexact Rounded +pwsx3721 power 0.401 0.5 -> 0.633 Inexact Rounded +pwsx3722 power 0.0401 0.5 -> 0.200 Inexact Rounded +pwsx3723 power 0.402 0.5 -> 0.634 Inexact Rounded +pwsx3724 power 0.0402 0.5 -> 0.200 Inexact Rounded +pwsx3725 power 0.403 0.5 -> 0.635 Inexact Rounded +pwsx3726 power 0.0403 0.5 -> 0.201 Inexact Rounded +pwsx3727 power 0.404 0.5 -> 0.636 Inexact Rounded +pwsx3728 power 0.0404 0.5 -> 0.201 Inexact Rounded +pwsx3729 power 0.405 0.5 -> 0.636 Inexact Rounded +pwsx3730 power 0.0405 0.5 -> 0.201 Inexact Rounded +pwsx3731 power 0.406 0.5 -> 0.637 Inexact Rounded +pwsx3732 power 0.0406 0.5 -> 0.201 Inexact Rounded +pwsx3733 power 0.407 0.5 -> 0.638 Inexact Rounded +pwsx3734 power 0.0407 0.5 -> 0.202 Inexact Rounded +pwsx3735 power 0.408 0.5 -> 0.639 Inexact Rounded +pwsx3736 power 0.0408 0.5 -> 0.202 Inexact Rounded +pwsx3737 power 0.409 0.5 -> 0.640 Inexact Rounded +pwsx3738 power 0.0409 0.5 -> 0.202 Inexact Rounded +pwsx3739 power 0.411 0.5 -> 0.641 Inexact Rounded +pwsx3740 power 0.0411 0.5 -> 0.203 Inexact Rounded +pwsx3741 power 0.412 0.5 -> 0.642 Inexact Rounded +pwsx3742 power 0.0412 0.5 -> 0.203 Inexact Rounded +pwsx3743 power 0.413 0.5 -> 0.643 Inexact Rounded +pwsx3744 power 0.0413 0.5 -> 0.203 Inexact Rounded +pwsx3745 power 0.414 0.5 -> 0.643 Inexact Rounded +pwsx3746 power 0.0414 0.5 -> 0.203 Inexact Rounded +pwsx3747 power 0.415 0.5 -> 0.644 Inexact Rounded +pwsx3748 power 0.0415 0.5 -> 0.204 Inexact Rounded +pwsx3749 power 0.416 0.5 -> 0.645 Inexact Rounded +pwsx3750 power 0.0416 0.5 -> 0.204 Inexact Rounded +pwsx3751 power 0.417 0.5 -> 0.646 Inexact Rounded +pwsx3752 power 0.0417 0.5 -> 0.204 Inexact Rounded +pwsx3753 power 0.418 0.5 -> 0.647 Inexact Rounded +pwsx3754 power 0.0418 0.5 -> 0.204 Inexact Rounded +pwsx3755 power 0.419 0.5 -> 0.647 Inexact Rounded +pwsx3756 power 0.0419 0.5 -> 0.205 Inexact Rounded +pwsx3757 power 0.421 0.5 -> 0.649 Inexact Rounded +pwsx3758 power 0.0421 0.5 -> 0.205 Inexact Rounded +pwsx3759 power 0.422 0.5 -> 0.650 Inexact Rounded +pwsx3760 power 0.0422 0.5 -> 0.205 Inexact Rounded +pwsx3761 power 0.423 0.5 -> 0.650 Inexact Rounded +pwsx3762 power 0.0423 0.5 -> 0.206 Inexact Rounded +pwsx3763 power 0.424 0.5 -> 0.651 Inexact Rounded +pwsx3764 power 0.0424 0.5 -> 0.206 Inexact Rounded +pwsx3765 power 0.425 0.5 -> 0.652 Inexact Rounded +pwsx3766 power 0.0425 0.5 -> 0.206 Inexact Rounded +pwsx3767 power 0.426 0.5 -> 0.653 Inexact Rounded +pwsx3768 power 0.0426 0.5 -> 0.206 Inexact Rounded +pwsx3769 power 0.427 0.5 -> 0.653 Inexact Rounded +pwsx3770 power 0.0427 0.5 -> 0.207 Inexact Rounded +pwsx3771 power 0.428 0.5 -> 0.654 Inexact Rounded +pwsx3772 power 0.0428 0.5 -> 0.207 Inexact Rounded +pwsx3773 power 0.429 0.5 -> 0.655 Inexact Rounded +pwsx3774 power 0.0429 0.5 -> 0.207 Inexact Rounded +pwsx3775 power 0.431 0.5 -> 0.657 Inexact Rounded +pwsx3776 power 0.0431 0.5 -> 0.208 Inexact Rounded +pwsx3777 power 0.432 0.5 -> 0.657 Inexact Rounded +pwsx3778 power 0.0432 0.5 -> 0.208 Inexact Rounded +pwsx3779 power 0.433 0.5 -> 0.658 Inexact Rounded +pwsx3780 power 0.0433 0.5 -> 0.208 Inexact Rounded +pwsx3781 power 0.434 0.5 -> 0.659 Inexact Rounded +pwsx3782 power 0.0434 0.5 -> 0.208 Inexact Rounded +pwsx3783 power 0.435 0.5 -> 0.660 Inexact Rounded +pwsx3784 power 0.0435 0.5 -> 0.209 Inexact Rounded +pwsx3785 power 0.436 0.5 -> 0.660 Inexact Rounded +pwsx3786 power 0.0436 0.5 -> 0.209 Inexact Rounded +pwsx3787 power 0.437 0.5 -> 0.661 Inexact Rounded +pwsx3788 power 0.0437 0.5 -> 0.209 Inexact Rounded +pwsx3789 power 0.438 0.5 -> 0.662 Inexact Rounded +pwsx3790 power 0.0438 0.5 -> 0.209 Inexact Rounded +pwsx3791 power 0.439 0.5 -> 0.663 Inexact Rounded +pwsx3792 power 0.0439 0.5 -> 0.210 Inexact Rounded +pwsx3793 power 0.441 0.5 -> 0.664 Inexact Rounded +pwsx3794 power 0.0441 0.5 -> 0.210 Inexact Rounded +pwsx3795 power 0.442 0.5 -> 0.665 Inexact Rounded +pwsx3796 power 0.0442 0.5 -> 0.210 Inexact Rounded +pwsx3797 power 0.443 0.5 -> 0.666 Inexact Rounded +pwsx3798 power 0.0443 0.5 -> 0.210 Inexact Rounded +pwsx3799 power 0.444 0.5 -> 0.666 Inexact Rounded +pwsx3800 power 0.0444 0.5 -> 0.211 Inexact Rounded +pwsx3801 power 0.445 0.5 -> 0.667 Inexact Rounded +pwsx3802 power 0.0445 0.5 -> 0.211 Inexact Rounded +pwsx3803 power 0.446 0.5 -> 0.668 Inexact Rounded +pwsx3804 power 0.0446 0.5 -> 0.211 Inexact Rounded +pwsx3805 power 0.447 0.5 -> 0.669 Inexact Rounded +pwsx3806 power 0.0447 0.5 -> 0.211 Inexact Rounded +pwsx3807 power 0.448 0.5 -> 0.669 Inexact Rounded +pwsx3808 power 0.0448 0.5 -> 0.212 Inexact Rounded +pwsx3809 power 0.449 0.5 -> 0.670 Inexact Rounded +pwsx3810 power 0.0449 0.5 -> 0.212 Inexact Rounded +pwsx3811 power 0.451 0.5 -> 0.672 Inexact Rounded +pwsx3812 power 0.0451 0.5 -> 0.212 Inexact Rounded +pwsx3813 power 0.452 0.5 -> 0.672 Inexact Rounded +pwsx3814 power 0.0452 0.5 -> 0.213 Inexact Rounded +pwsx3815 power 0.453 0.5 -> 0.673 Inexact Rounded +pwsx3816 power 0.0453 0.5 -> 0.213 Inexact Rounded +pwsx3817 power 0.454 0.5 -> 0.674 Inexact Rounded +pwsx3818 power 0.0454 0.5 -> 0.213 Inexact Rounded +pwsx3819 power 0.455 0.5 -> 0.675 Inexact Rounded +pwsx3820 power 0.0455 0.5 -> 0.213 Inexact Rounded +pwsx3821 power 0.456 0.5 -> 0.675 Inexact Rounded +pwsx3822 power 0.0456 0.5 -> 0.214 Inexact Rounded +pwsx3823 power 0.457 0.5 -> 0.676 Inexact Rounded +pwsx3824 power 0.0457 0.5 -> 0.214 Inexact Rounded +pwsx3825 power 0.458 0.5 -> 0.677 Inexact Rounded +pwsx3826 power 0.0458 0.5 -> 0.214 Inexact Rounded +pwsx3827 power 0.459 0.5 -> 0.677 Inexact Rounded +pwsx3828 power 0.0459 0.5 -> 0.214 Inexact Rounded +pwsx3829 power 0.461 0.5 -> 0.679 Inexact Rounded +pwsx3830 power 0.0461 0.5 -> 0.215 Inexact Rounded +pwsx3831 power 0.462 0.5 -> 0.680 Inexact Rounded +pwsx3832 power 0.0462 0.5 -> 0.215 Inexact Rounded +pwsx3833 power 0.463 0.5 -> 0.680 Inexact Rounded +pwsx3834 power 0.0463 0.5 -> 0.215 Inexact Rounded +pwsx3835 power 0.464 0.5 -> 0.681 Inexact Rounded +pwsx3836 power 0.0464 0.5 -> 0.215 Inexact Rounded +pwsx3837 power 0.465 0.5 -> 0.682 Inexact Rounded +pwsx3838 power 0.0465 0.5 -> 0.216 Inexact Rounded +pwsx3839 power 0.466 0.5 -> 0.683 Inexact Rounded +pwsx3840 power 0.0466 0.5 -> 0.216 Inexact Rounded +pwsx3841 power 0.467 0.5 -> 0.683 Inexact Rounded +pwsx3842 power 0.0467 0.5 -> 0.216 Inexact Rounded +pwsx3843 power 0.468 0.5 -> 0.684 Inexact Rounded +pwsx3844 power 0.0468 0.5 -> 0.216 Inexact Rounded +pwsx3845 power 0.469 0.5 -> 0.685 Inexact Rounded +pwsx3846 power 0.0469 0.5 -> 0.217 Inexact Rounded +pwsx3847 power 0.471 0.5 -> 0.686 Inexact Rounded +pwsx3848 power 0.0471 0.5 -> 0.217 Inexact Rounded +pwsx3849 power 0.472 0.5 -> 0.687 Inexact Rounded +pwsx3850 power 0.0472 0.5 -> 0.217 Inexact Rounded +pwsx3851 power 0.473 0.5 -> 0.688 Inexact Rounded +pwsx3852 power 0.0473 0.5 -> 0.217 Inexact Rounded +pwsx3853 power 0.474 0.5 -> 0.688 Inexact Rounded +pwsx3854 power 0.0474 0.5 -> 0.218 Inexact Rounded +pwsx3855 power 0.475 0.5 -> 0.689 Inexact Rounded +pwsx3856 power 0.0475 0.5 -> 0.218 Inexact Rounded +pwsx3857 power 0.476 0.5 -> 0.690 Inexact Rounded +pwsx3858 power 0.0476 0.5 -> 0.218 Inexact Rounded +pwsx3859 power 0.477 0.5 -> 0.691 Inexact Rounded +pwsx3860 power 0.0477 0.5 -> 0.218 Inexact Rounded +pwsx3861 power 0.478 0.5 -> 0.691 Inexact Rounded +pwsx3862 power 0.0478 0.5 -> 0.219 Inexact Rounded +pwsx3863 power 0.479 0.5 -> 0.692 Inexact Rounded +pwsx3864 power 0.0479 0.5 -> 0.219 Inexact Rounded +pwsx3865 power 0.481 0.5 -> 0.694 Inexact Rounded +pwsx3866 power 0.0481 0.5 -> 0.219 Inexact Rounded +pwsx3867 power 0.482 0.5 -> 0.694 Inexact Rounded +pwsx3868 power 0.0482 0.5 -> 0.220 Inexact Rounded +pwsx3869 power 0.483 0.5 -> 0.695 Inexact Rounded +pwsx3870 power 0.0483 0.5 -> 0.220 Inexact Rounded +pwsx3871 power 0.484 0.5 -> 0.696 Inexact Rounded +pwsx3872 power 0.0484 0.5 -> 0.220 Inexact Rounded +pwsx3873 power 0.485 0.5 -> 0.696 Inexact Rounded +pwsx3874 power 0.0485 0.5 -> 0.220 Inexact Rounded +pwsx3875 power 0.486 0.5 -> 0.697 Inexact Rounded +pwsx3876 power 0.0486 0.5 -> 0.220 Inexact Rounded +pwsx3877 power 0.487 0.5 -> 0.698 Inexact Rounded +pwsx3878 power 0.0487 0.5 -> 0.221 Inexact Rounded +pwsx3879 power 0.488 0.5 -> 0.699 Inexact Rounded +pwsx3880 power 0.0488 0.5 -> 0.221 Inexact Rounded +pwsx3881 power 0.489 0.5 -> 0.699 Inexact Rounded +pwsx3882 power 0.0489 0.5 -> 0.221 Inexact Rounded +pwsx3883 power 0.491 0.5 -> 0.701 Inexact Rounded +pwsx3884 power 0.0491 0.5 -> 0.222 Inexact Rounded +pwsx3885 power 0.492 0.5 -> 0.701 Inexact Rounded +pwsx3886 power 0.0492 0.5 -> 0.222 Inexact Rounded +pwsx3887 power 0.493 0.5 -> 0.702 Inexact Rounded +pwsx3888 power 0.0493 0.5 -> 0.222 Inexact Rounded +pwsx3889 power 0.494 0.5 -> 0.703 Inexact Rounded +pwsx3890 power 0.0494 0.5 -> 0.222 Inexact Rounded +pwsx3891 power 0.495 0.5 -> 0.704 Inexact Rounded +pwsx3892 power 0.0495 0.5 -> 0.222 Inexact Rounded +pwsx3893 power 0.496 0.5 -> 0.704 Inexact Rounded +pwsx3894 power 0.0496 0.5 -> 0.223 Inexact Rounded +pwsx3895 power 0.497 0.5 -> 0.705 Inexact Rounded +pwsx3896 power 0.0497 0.5 -> 0.223 Inexact Rounded +pwsx3897 power 0.498 0.5 -> 0.706 Inexact Rounded +pwsx3898 power 0.0498 0.5 -> 0.223 Inexact Rounded +pwsx3899 power 0.499 0.5 -> 0.706 Inexact Rounded +pwsx3900 power 0.0499 0.5 -> 0.223 Inexact Rounded +pwsx3901 power 0.501 0.5 -> 0.708 Inexact Rounded +pwsx3902 power 0.0501 0.5 -> 0.224 Inexact Rounded +pwsx3903 power 0.502 0.5 -> 0.709 Inexact Rounded +pwsx3904 power 0.0502 0.5 -> 0.224 Inexact Rounded +pwsx3905 power 0.503 0.5 -> 0.709 Inexact Rounded +pwsx3906 power 0.0503 0.5 -> 0.224 Inexact Rounded +pwsx3907 power 0.504 0.5 -> 0.710 Inexact Rounded +pwsx3908 power 0.0504 0.5 -> 0.224 Inexact Rounded +pwsx3909 power 0.505 0.5 -> 0.711 Inexact Rounded +pwsx3910 power 0.0505 0.5 -> 0.225 Inexact Rounded +pwsx3911 power 0.506 0.5 -> 0.711 Inexact Rounded +pwsx3912 power 0.0506 0.5 -> 0.225 Inexact Rounded +pwsx3913 power 0.507 0.5 -> 0.712 Inexact Rounded +pwsx3914 power 0.0507 0.5 -> 0.225 Inexact Rounded +pwsx3915 power 0.508 0.5 -> 0.713 Inexact Rounded +pwsx3916 power 0.0508 0.5 -> 0.225 Inexact Rounded +pwsx3917 power 0.509 0.5 -> 0.713 Inexact Rounded +pwsx3918 power 0.0509 0.5 -> 0.226 Inexact Rounded +pwsx3919 power 0.511 0.5 -> 0.715 Inexact Rounded +pwsx3920 power 0.0511 0.5 -> 0.226 Inexact Rounded +pwsx3921 power 0.512 0.5 -> 0.716 Inexact Rounded +pwsx3922 power 0.0512 0.5 -> 0.226 Inexact Rounded +pwsx3923 power 0.513 0.5 -> 0.716 Inexact Rounded +pwsx3924 power 0.0513 0.5 -> 0.226 Inexact Rounded +pwsx3925 power 0.514 0.5 -> 0.717 Inexact Rounded +pwsx3926 power 0.0514 0.5 -> 0.227 Inexact Rounded +pwsx3927 power 0.515 0.5 -> 0.718 Inexact Rounded +pwsx3928 power 0.0515 0.5 -> 0.227 Inexact Rounded +pwsx3929 power 0.516 0.5 -> 0.718 Inexact Rounded +pwsx3930 power 0.0516 0.5 -> 0.227 Inexact Rounded +pwsx3931 power 0.517 0.5 -> 0.719 Inexact Rounded +pwsx3932 power 0.0517 0.5 -> 0.227 Inexact Rounded +pwsx3933 power 0.518 0.5 -> 0.720 Inexact Rounded +pwsx3934 power 0.0518 0.5 -> 0.228 Inexact Rounded +pwsx3935 power 0.519 0.5 -> 0.720 Inexact Rounded +pwsx3936 power 0.0519 0.5 -> 0.228 Inexact Rounded +pwsx3937 power 0.521 0.5 -> 0.722 Inexact Rounded +pwsx3938 power 0.0521 0.5 -> 0.228 Inexact Rounded +pwsx3939 power 0.522 0.5 -> 0.722 Inexact Rounded +pwsx3940 power 0.0522 0.5 -> 0.228 Inexact Rounded +pwsx3941 power 0.523 0.5 -> 0.723 Inexact Rounded +pwsx3942 power 0.0523 0.5 -> 0.229 Inexact Rounded +pwsx3943 power 0.524 0.5 -> 0.724 Inexact Rounded +pwsx3944 power 0.0524 0.5 -> 0.229 Inexact Rounded +pwsx3945 power 0.525 0.5 -> 0.725 Inexact Rounded +pwsx3946 power 0.0525 0.5 -> 0.229 Inexact Rounded +pwsx3947 power 0.526 0.5 -> 0.725 Inexact Rounded +pwsx3948 power 0.0526 0.5 -> 0.229 Inexact Rounded +pwsx3949 power 0.527 0.5 -> 0.726 Inexact Rounded +pwsx3950 power 0.0527 0.5 -> 0.230 Inexact Rounded +pwsx3951 power 0.528 0.5 -> 0.727 Inexact Rounded +pwsx3952 power 0.0528 0.5 -> 0.230 Inexact Rounded +pwsx3953 power 0.529 0.5 -> 0.727 Inexact Rounded +pwsx3954 power 0.0529 0.5 -> 0.230 Inexact Rounded +pwsx3955 power 0.531 0.5 -> 0.729 Inexact Rounded +pwsx3956 power 0.0531 0.5 -> 0.230 Inexact Rounded +pwsx3957 power 0.532 0.5 -> 0.729 Inexact Rounded +pwsx3958 power 0.0532 0.5 -> 0.231 Inexact Rounded +pwsx3959 power 0.533 0.5 -> 0.730 Inexact Rounded +pwsx3960 power 0.0533 0.5 -> 0.231 Inexact Rounded +pwsx3961 power 0.534 0.5 -> 0.731 Inexact Rounded +pwsx3962 power 0.0534 0.5 -> 0.231 Inexact Rounded +pwsx3963 power 0.535 0.5 -> 0.731 Inexact Rounded +pwsx3964 power 0.0535 0.5 -> 0.231 Inexact Rounded +pwsx3965 power 0.536 0.5 -> 0.732 Inexact Rounded +pwsx3966 power 0.0536 0.5 -> 0.232 Inexact Rounded +pwsx3967 power 0.537 0.5 -> 0.733 Inexact Rounded +pwsx3968 power 0.0537 0.5 -> 0.232 Inexact Rounded +pwsx3969 power 0.538 0.5 -> 0.733 Inexact Rounded +pwsx3970 power 0.0538 0.5 -> 0.232 Inexact Rounded +pwsx3971 power 0.539 0.5 -> 0.734 Inexact Rounded +pwsx3972 power 0.0539 0.5 -> 0.232 Inexact Rounded +pwsx3973 power 0.541 0.5 -> 0.736 Inexact Rounded +pwsx3974 power 0.0541 0.5 -> 0.233 Inexact Rounded +pwsx3975 power 0.542 0.5 -> 0.736 Inexact Rounded +pwsx3976 power 0.0542 0.5 -> 0.233 Inexact Rounded +pwsx3977 power 0.543 0.5 -> 0.737 Inexact Rounded +pwsx3978 power 0.0543 0.5 -> 0.233 Inexact Rounded +pwsx3979 power 0.544 0.5 -> 0.738 Inexact Rounded +pwsx3980 power 0.0544 0.5 -> 0.233 Inexact Rounded +pwsx3981 power 0.545 0.5 -> 0.738 Inexact Rounded +pwsx3982 power 0.0545 0.5 -> 0.233 Inexact Rounded +pwsx3983 power 0.546 0.5 -> 0.739 Inexact Rounded +pwsx3984 power 0.0546 0.5 -> 0.234 Inexact Rounded +pwsx3985 power 0.547 0.5 -> 0.740 Inexact Rounded +pwsx3986 power 0.0547 0.5 -> 0.234 Inexact Rounded +pwsx3987 power 0.548 0.5 -> 0.740 Inexact Rounded +pwsx3988 power 0.0548 0.5 -> 0.234 Inexact Rounded +pwsx3989 power 0.549 0.5 -> 0.741 Inexact Rounded +pwsx3990 power 0.0549 0.5 -> 0.234 Inexact Rounded +pwsx3991 power 0.551 0.5 -> 0.742 Inexact Rounded +pwsx3992 power 0.0551 0.5 -> 0.235 Inexact Rounded +pwsx3993 power 0.552 0.5 -> 0.743 Inexact Rounded +pwsx3994 power 0.0552 0.5 -> 0.235 Inexact Rounded +pwsx3995 power 0.553 0.5 -> 0.744 Inexact Rounded +pwsx3996 power 0.0553 0.5 -> 0.235 Inexact Rounded +pwsx3997 power 0.554 0.5 -> 0.744 Inexact Rounded +pwsx3998 power 0.0554 0.5 -> 0.235 Inexact Rounded +pwsx3999 power 0.555 0.5 -> 0.745 Inexact Rounded +pwsx4000 power 0.0555 0.5 -> 0.236 Inexact Rounded +pwsx4001 power 0.556 0.5 -> 0.746 Inexact Rounded +pwsx4002 power 0.0556 0.5 -> 0.236 Inexact Rounded +pwsx4003 power 0.557 0.5 -> 0.746 Inexact Rounded +pwsx4004 power 0.0557 0.5 -> 0.236 Inexact Rounded +pwsx4005 power 0.558 0.5 -> 0.747 Inexact Rounded +pwsx4006 power 0.0558 0.5 -> 0.236 Inexact Rounded +pwsx4007 power 0.559 0.5 -> 0.748 Inexact Rounded +pwsx4008 power 0.0559 0.5 -> 0.236 Inexact Rounded +pwsx4009 power 0.561 0.5 -> 0.749 Inexact Rounded +pwsx4010 power 0.0561 0.5 -> 0.237 Inexact Rounded +pwsx4011 power 0.562 0.5 -> 0.750 Inexact Rounded +pwsx4012 power 0.0562 0.5 -> 0.237 Inexact Rounded +pwsx4013 power 0.563 0.5 -> 0.750 Inexact Rounded +pwsx4014 power 0.0563 0.5 -> 0.237 Inexact Rounded +pwsx4015 power 0.564 0.5 -> 0.751 Inexact Rounded +pwsx4016 power 0.0564 0.5 -> 0.237 Inexact Rounded +pwsx4017 power 0.565 0.5 -> 0.752 Inexact Rounded +pwsx4018 power 0.0565 0.5 -> 0.238 Inexact Rounded +pwsx4019 power 0.566 0.5 -> 0.752 Inexact Rounded +pwsx4020 power 0.0566 0.5 -> 0.238 Inexact Rounded +pwsx4021 power 0.567 0.5 -> 0.753 Inexact Rounded +pwsx4022 power 0.0567 0.5 -> 0.238 Inexact Rounded +pwsx4023 power 0.568 0.5 -> 0.754 Inexact Rounded +pwsx4024 power 0.0568 0.5 -> 0.238 Inexact Rounded +pwsx4025 power 0.569 0.5 -> 0.754 Inexact Rounded +pwsx4026 power 0.0569 0.5 -> 0.239 Inexact Rounded +pwsx4027 power 0.571 0.5 -> 0.756 Inexact Rounded +pwsx4028 power 0.0571 0.5 -> 0.239 Inexact Rounded +pwsx4029 power 0.572 0.5 -> 0.756 Inexact Rounded +pwsx4030 power 0.0572 0.5 -> 0.239 Inexact Rounded +pwsx4031 power 0.573 0.5 -> 0.757 Inexact Rounded +pwsx4032 power 0.0573 0.5 -> 0.239 Inexact Rounded +pwsx4033 power 0.574 0.5 -> 0.758 Inexact Rounded +pwsx4034 power 0.0574 0.5 -> 0.240 Inexact Rounded +pwsx4035 power 0.575 0.5 -> 0.758 Inexact Rounded +pwsx4036 power 0.0575 0.5 -> 0.240 Inexact Rounded +pwsx4037 power 0.576 0.5 -> 0.759 Inexact Rounded +pwsx4038 power 0.0576 0.5 -> 0.240 Inexact Rounded +pwsx4039 power 0.577 0.5 -> 0.760 Inexact Rounded +pwsx4040 power 0.0577 0.5 -> 0.240 Inexact Rounded +pwsx4041 power 0.578 0.5 -> 0.760 Inexact Rounded +pwsx4042 power 0.0578 0.5 -> 0.240 Inexact Rounded +pwsx4043 power 0.579 0.5 -> 0.761 Inexact Rounded +pwsx4044 power 0.0579 0.5 -> 0.241 Inexact Rounded +pwsx4045 power 0.581 0.5 -> 0.762 Inexact Rounded +pwsx4046 power 0.0581 0.5 -> 0.241 Inexact Rounded +pwsx4047 power 0.582 0.5 -> 0.763 Inexact Rounded +pwsx4048 power 0.0582 0.5 -> 0.241 Inexact Rounded +pwsx4049 power 0.583 0.5 -> 0.764 Inexact Rounded +pwsx4050 power 0.0583 0.5 -> 0.241 Inexact Rounded +pwsx4051 power 0.584 0.5 -> 0.764 Inexact Rounded +pwsx4052 power 0.0584 0.5 -> 0.242 Inexact Rounded +pwsx4053 power 0.585 0.5 -> 0.765 Inexact Rounded +pwsx4054 power 0.0585 0.5 -> 0.242 Inexact Rounded +pwsx4055 power 0.586 0.5 -> 0.766 Inexact Rounded +pwsx4056 power 0.0586 0.5 -> 0.242 Inexact Rounded +pwsx4057 power 0.587 0.5 -> 0.766 Inexact Rounded +pwsx4058 power 0.0587 0.5 -> 0.242 Inexact Rounded +pwsx4059 power 0.588 0.5 -> 0.767 Inexact Rounded +pwsx4060 power 0.0588 0.5 -> 0.242 Inexact Rounded +pwsx4061 power 0.589 0.5 -> 0.767 Inexact Rounded +pwsx4062 power 0.0589 0.5 -> 0.243 Inexact Rounded +pwsx4063 power 0.591 0.5 -> 0.769 Inexact Rounded +pwsx4064 power 0.0591 0.5 -> 0.243 Inexact Rounded +pwsx4065 power 0.592 0.5 -> 0.769 Inexact Rounded +pwsx4066 power 0.0592 0.5 -> 0.243 Inexact Rounded +pwsx4067 power 0.593 0.5 -> 0.770 Inexact Rounded +pwsx4068 power 0.0593 0.5 -> 0.244 Inexact Rounded +pwsx4069 power 0.594 0.5 -> 0.771 Inexact Rounded +pwsx4070 power 0.0594 0.5 -> 0.244 Inexact Rounded +pwsx4071 power 0.595 0.5 -> 0.771 Inexact Rounded +pwsx4072 power 0.0595 0.5 -> 0.244 Inexact Rounded +pwsx4073 power 0.596 0.5 -> 0.772 Inexact Rounded +pwsx4074 power 0.0596 0.5 -> 0.244 Inexact Rounded +pwsx4075 power 0.597 0.5 -> 0.773 Inexact Rounded +pwsx4076 power 0.0597 0.5 -> 0.244 Inexact Rounded +pwsx4077 power 0.598 0.5 -> 0.773 Inexact Rounded +pwsx4078 power 0.0598 0.5 -> 0.245 Inexact Rounded +pwsx4079 power 0.599 0.5 -> 0.774 Inexact Rounded +pwsx4080 power 0.0599 0.5 -> 0.245 Inexact Rounded +pwsx4081 power 0.601 0.5 -> 0.775 Inexact Rounded +pwsx4082 power 0.0601 0.5 -> 0.245 Inexact Rounded +pwsx4083 power 0.602 0.5 -> 0.776 Inexact Rounded +pwsx4084 power 0.0602 0.5 -> 0.245 Inexact Rounded +pwsx4085 power 0.603 0.5 -> 0.777 Inexact Rounded +pwsx4086 power 0.0603 0.5 -> 0.246 Inexact Rounded +pwsx4087 power 0.604 0.5 -> 0.777 Inexact Rounded +pwsx4088 power 0.0604 0.5 -> 0.246 Inexact Rounded +pwsx4089 power 0.605 0.5 -> 0.778 Inexact Rounded +pwsx4090 power 0.0605 0.5 -> 0.246 Inexact Rounded +pwsx4091 power 0.606 0.5 -> 0.778 Inexact Rounded +pwsx4092 power 0.0606 0.5 -> 0.246 Inexact Rounded +pwsx4093 power 0.607 0.5 -> 0.779 Inexact Rounded +pwsx4094 power 0.0607 0.5 -> 0.246 Inexact Rounded +pwsx4095 power 0.608 0.5 -> 0.780 Inexact Rounded +pwsx4096 power 0.0608 0.5 -> 0.247 Inexact Rounded +pwsx4097 power 0.609 0.5 -> 0.780 Inexact Rounded +pwsx4098 power 0.0609 0.5 -> 0.247 Inexact Rounded +pwsx4099 power 0.611 0.5 -> 0.782 Inexact Rounded +pwsx4100 power 0.0611 0.5 -> 0.247 Inexact Rounded +pwsx4101 power 0.612 0.5 -> 0.782 Inexact Rounded +pwsx4102 power 0.0612 0.5 -> 0.247 Inexact Rounded +pwsx4103 power 0.613 0.5 -> 0.783 Inexact Rounded +pwsx4104 power 0.0613 0.5 -> 0.248 Inexact Rounded +pwsx4105 power 0.614 0.5 -> 0.784 Inexact Rounded +pwsx4106 power 0.0614 0.5 -> 0.248 Inexact Rounded +pwsx4107 power 0.615 0.5 -> 0.784 Inexact Rounded +pwsx4108 power 0.0615 0.5 -> 0.248 Inexact Rounded +pwsx4109 power 0.616 0.5 -> 0.785 Inexact Rounded +pwsx4110 power 0.0616 0.5 -> 0.248 Inexact Rounded +pwsx4111 power 0.617 0.5 -> 0.785 Inexact Rounded +pwsx4112 power 0.0617 0.5 -> 0.248 Inexact Rounded +pwsx4113 power 0.618 0.5 -> 0.786 Inexact Rounded +pwsx4114 power 0.0618 0.5 -> 0.249 Inexact Rounded +pwsx4115 power 0.619 0.5 -> 0.787 Inexact Rounded +pwsx4116 power 0.0619 0.5 -> 0.249 Inexact Rounded +pwsx4117 power 0.621 0.5 -> 0.788 Inexact Rounded +pwsx4118 power 0.0621 0.5 -> 0.249 Inexact Rounded +pwsx4119 power 0.622 0.5 -> 0.789 Inexact Rounded +pwsx4120 power 0.0622 0.5 -> 0.249 Inexact Rounded +pwsx4121 power 0.623 0.5 -> 0.789 Inexact Rounded +pwsx4122 power 0.0623 0.5 -> 0.250 Inexact Rounded +pwsx4123 power 0.624 0.5 -> 0.790 Inexact Rounded +pwsx4124 power 0.0624 0.5 -> 0.250 Inexact Rounded +pwsx4125 power 0.625 0.5 -> 0.791 Inexact Rounded +pwsx4126 power 0.0625 0.5 -> 0.250 Inexact Rounded +pwsx4127 power 0.626 0.5 -> 0.791 Inexact Rounded +pwsx4128 power 0.0626 0.5 -> 0.250 Inexact Rounded +pwsx4129 power 0.627 0.5 -> 0.792 Inexact Rounded +pwsx4130 power 0.0627 0.5 -> 0.250 Inexact Rounded +pwsx4131 power 0.628 0.5 -> 0.792 Inexact Rounded +pwsx4132 power 0.0628 0.5 -> 0.251 Inexact Rounded +pwsx4133 power 0.629 0.5 -> 0.793 Inexact Rounded +pwsx4134 power 0.0629 0.5 -> 0.251 Inexact Rounded +pwsx4135 power 0.631 0.5 -> 0.794 Inexact Rounded +pwsx4136 power 0.0631 0.5 -> 0.251 Inexact Rounded +pwsx4137 power 0.632 0.5 -> 0.795 Inexact Rounded +pwsx4138 power 0.0632 0.5 -> 0.251 Inexact Rounded +pwsx4139 power 0.633 0.5 -> 0.796 Inexact Rounded +pwsx4140 power 0.0633 0.5 -> 0.252 Inexact Rounded +pwsx4141 power 0.634 0.5 -> 0.796 Inexact Rounded +pwsx4142 power 0.0634 0.5 -> 0.252 Inexact Rounded +pwsx4143 power 0.635 0.5 -> 0.797 Inexact Rounded +pwsx4144 power 0.0635 0.5 -> 0.252 Inexact Rounded +pwsx4145 power 0.636 0.5 -> 0.797 Inexact Rounded +pwsx4146 power 0.0636 0.5 -> 0.252 Inexact Rounded +pwsx4147 power 0.637 0.5 -> 0.798 Inexact Rounded +pwsx4148 power 0.0637 0.5 -> 0.252 Inexact Rounded +pwsx4149 power 0.638 0.5 -> 0.799 Inexact Rounded +pwsx4150 power 0.0638 0.5 -> 0.253 Inexact Rounded +pwsx4151 power 0.639 0.5 -> 0.799 Inexact Rounded +pwsx4152 power 0.0639 0.5 -> 0.253 Inexact Rounded +pwsx4153 power 0.641 0.5 -> 0.801 Inexact Rounded +pwsx4154 power 0.0641 0.5 -> 0.253 Inexact Rounded +pwsx4155 power 0.642 0.5 -> 0.801 Inexact Rounded +pwsx4156 power 0.0642 0.5 -> 0.253 Inexact Rounded +pwsx4157 power 0.643 0.5 -> 0.802 Inexact Rounded +pwsx4158 power 0.0643 0.5 -> 0.254 Inexact Rounded +pwsx4159 power 0.644 0.5 -> 0.802 Inexact Rounded +pwsx4160 power 0.0644 0.5 -> 0.254 Inexact Rounded +pwsx4161 power 0.645 0.5 -> 0.803 Inexact Rounded +pwsx4162 power 0.0645 0.5 -> 0.254 Inexact Rounded +pwsx4163 power 0.646 0.5 -> 0.804 Inexact Rounded +pwsx4164 power 0.0646 0.5 -> 0.254 Inexact Rounded +pwsx4165 power 0.647 0.5 -> 0.804 Inexact Rounded +pwsx4166 power 0.0647 0.5 -> 0.254 Inexact Rounded +pwsx4167 power 0.648 0.5 -> 0.805 Inexact Rounded +pwsx4168 power 0.0648 0.5 -> 0.255 Inexact Rounded +pwsx4169 power 0.649 0.5 -> 0.806 Inexact Rounded +pwsx4170 power 0.0649 0.5 -> 0.255 Inexact Rounded +pwsx4171 power 0.651 0.5 -> 0.807 Inexact Rounded +pwsx4172 power 0.0651 0.5 -> 0.255 Inexact Rounded +pwsx4173 power 0.652 0.5 -> 0.807 Inexact Rounded +pwsx4174 power 0.0652 0.5 -> 0.255 Inexact Rounded +pwsx4175 power 0.653 0.5 -> 0.808 Inexact Rounded +pwsx4176 power 0.0653 0.5 -> 0.256 Inexact Rounded +pwsx4177 power 0.654 0.5 -> 0.809 Inexact Rounded +pwsx4178 power 0.0654 0.5 -> 0.256 Inexact Rounded +pwsx4179 power 0.655 0.5 -> 0.809 Inexact Rounded +pwsx4180 power 0.0655 0.5 -> 0.256 Inexact Rounded +pwsx4181 power 0.656 0.5 -> 0.810 Inexact Rounded +pwsx4182 power 0.0656 0.5 -> 0.256 Inexact Rounded +pwsx4183 power 0.657 0.5 -> 0.811 Inexact Rounded +pwsx4184 power 0.0657 0.5 -> 0.256 Inexact Rounded +pwsx4185 power 0.658 0.5 -> 0.811 Inexact Rounded +pwsx4186 power 0.0658 0.5 -> 0.257 Inexact Rounded +pwsx4187 power 0.659 0.5 -> 0.812 Inexact Rounded +pwsx4188 power 0.0659 0.5 -> 0.257 Inexact Rounded +pwsx4189 power 0.661 0.5 -> 0.813 Inexact Rounded +pwsx4190 power 0.0661 0.5 -> 0.257 Inexact Rounded +pwsx4191 power 0.662 0.5 -> 0.814 Inexact Rounded +pwsx4192 power 0.0662 0.5 -> 0.257 Inexact Rounded +pwsx4193 power 0.663 0.5 -> 0.814 Inexact Rounded +pwsx4194 power 0.0663 0.5 -> 0.257 Inexact Rounded +pwsx4195 power 0.664 0.5 -> 0.815 Inexact Rounded +pwsx4196 power 0.0664 0.5 -> 0.258 Inexact Rounded +pwsx4197 power 0.665 0.5 -> 0.815 Inexact Rounded +pwsx4198 power 0.0665 0.5 -> 0.258 Inexact Rounded +pwsx4199 power 0.666 0.5 -> 0.816 Inexact Rounded +pwsx4200 power 0.0666 0.5 -> 0.258 Inexact Rounded +pwsx4201 power 0.667 0.5 -> 0.817 Inexact Rounded +pwsx4202 power 0.0667 0.5 -> 0.258 Inexact Rounded +pwsx4203 power 0.668 0.5 -> 0.817 Inexact Rounded +pwsx4204 power 0.0668 0.5 -> 0.258 Inexact Rounded +pwsx4205 power 0.669 0.5 -> 0.818 Inexact Rounded +pwsx4206 power 0.0669 0.5 -> 0.259 Inexact Rounded +pwsx4207 power 0.671 0.5 -> 0.819 Inexact Rounded +pwsx4208 power 0.0671 0.5 -> 0.259 Inexact Rounded +pwsx4209 power 0.672 0.5 -> 0.820 Inexact Rounded +pwsx4210 power 0.0672 0.5 -> 0.259 Inexact Rounded +pwsx4211 power 0.673 0.5 -> 0.820 Inexact Rounded +pwsx4212 power 0.0673 0.5 -> 0.259 Inexact Rounded +pwsx4213 power 0.674 0.5 -> 0.821 Inexact Rounded +pwsx4214 power 0.0674 0.5 -> 0.260 Inexact Rounded +pwsx4215 power 0.675 0.5 -> 0.822 Inexact Rounded +pwsx4216 power 0.0675 0.5 -> 0.260 Inexact Rounded +pwsx4217 power 0.676 0.5 -> 0.822 Inexact Rounded +pwsx4218 power 0.0676 0.5 -> 0.260 Inexact Rounded +pwsx4219 power 0.677 0.5 -> 0.823 Inexact Rounded +pwsx4220 power 0.0677 0.5 -> 0.260 Inexact Rounded +pwsx4221 power 0.678 0.5 -> 0.823 Inexact Rounded +pwsx4222 power 0.0678 0.5 -> 0.260 Inexact Rounded +pwsx4223 power 0.679 0.5 -> 0.824 Inexact Rounded +pwsx4224 power 0.0679 0.5 -> 0.261 Inexact Rounded +pwsx4225 power 0.681 0.5 -> 0.825 Inexact Rounded +pwsx4226 power 0.0681 0.5 -> 0.261 Inexact Rounded +pwsx4227 power 0.682 0.5 -> 0.826 Inexact Rounded +pwsx4228 power 0.0682 0.5 -> 0.261 Inexact Rounded +pwsx4229 power 0.683 0.5 -> 0.826 Inexact Rounded +pwsx4230 power 0.0683 0.5 -> 0.261 Inexact Rounded +pwsx4231 power 0.684 0.5 -> 0.827 Inexact Rounded +pwsx4232 power 0.0684 0.5 -> 0.262 Inexact Rounded +pwsx4233 power 0.685 0.5 -> 0.828 Inexact Rounded +pwsx4234 power 0.0685 0.5 -> 0.262 Inexact Rounded +pwsx4235 power 0.686 0.5 -> 0.828 Inexact Rounded +pwsx4236 power 0.0686 0.5 -> 0.262 Inexact Rounded +pwsx4237 power 0.687 0.5 -> 0.829 Inexact Rounded +pwsx4238 power 0.0687 0.5 -> 0.262 Inexact Rounded +pwsx4239 power 0.688 0.5 -> 0.829 Inexact Rounded +pwsx4240 power 0.0688 0.5 -> 0.262 Inexact Rounded +pwsx4241 power 0.689 0.5 -> 0.830 Inexact Rounded +pwsx4242 power 0.0689 0.5 -> 0.262 Inexact Rounded +pwsx4243 power 0.691 0.5 -> 0.831 Inexact Rounded +pwsx4244 power 0.0691 0.5 -> 0.263 Inexact Rounded +pwsx4245 power 0.692 0.5 -> 0.832 Inexact Rounded +pwsx4246 power 0.0692 0.5 -> 0.263 Inexact Rounded +pwsx4247 power 0.693 0.5 -> 0.832 Inexact Rounded +pwsx4248 power 0.0693 0.5 -> 0.263 Inexact Rounded +pwsx4249 power 0.694 0.5 -> 0.833 Inexact Rounded +pwsx4250 power 0.0694 0.5 -> 0.263 Inexact Rounded +pwsx4251 power 0.695 0.5 -> 0.834 Inexact Rounded +pwsx4252 power 0.0695 0.5 -> 0.264 Inexact Rounded +pwsx4253 power 0.696 0.5 -> 0.834 Inexact Rounded +pwsx4254 power 0.0696 0.5 -> 0.264 Inexact Rounded +pwsx4255 power 0.697 0.5 -> 0.835 Inexact Rounded +pwsx4256 power 0.0697 0.5 -> 0.264 Inexact Rounded +pwsx4257 power 0.698 0.5 -> 0.835 Inexact Rounded +pwsx4258 power 0.0698 0.5 -> 0.264 Inexact Rounded +pwsx4259 power 0.699 0.5 -> 0.836 Inexact Rounded +pwsx4260 power 0.0699 0.5 -> 0.264 Inexact Rounded +pwsx4261 power 0.701 0.5 -> 0.837 Inexact Rounded +pwsx4262 power 0.0701 0.5 -> 0.265 Inexact Rounded +pwsx4263 power 0.702 0.5 -> 0.838 Inexact Rounded +pwsx4264 power 0.0702 0.5 -> 0.265 Inexact Rounded +pwsx4265 power 0.703 0.5 -> 0.838 Inexact Rounded +pwsx4266 power 0.0703 0.5 -> 0.265 Inexact Rounded +pwsx4267 power 0.704 0.5 -> 0.839 Inexact Rounded +pwsx4268 power 0.0704 0.5 -> 0.265 Inexact Rounded +pwsx4269 power 0.705 0.5 -> 0.840 Inexact Rounded +pwsx4270 power 0.0705 0.5 -> 0.266 Inexact Rounded +pwsx4271 power 0.706 0.5 -> 0.840 Inexact Rounded +pwsx4272 power 0.0706 0.5 -> 0.266 Inexact Rounded +pwsx4273 power 0.707 0.5 -> 0.841 Inexact Rounded +pwsx4274 power 0.0707 0.5 -> 0.266 Inexact Rounded +pwsx4275 power 0.708 0.5 -> 0.841 Inexact Rounded +pwsx4276 power 0.0708 0.5 -> 0.266 Inexact Rounded +pwsx4277 power 0.709 0.5 -> 0.842 Inexact Rounded +pwsx4278 power 0.0709 0.5 -> 0.266 Inexact Rounded +pwsx4279 power 0.711 0.5 -> 0.843 Inexact Rounded +pwsx4280 power 0.0711 0.5 -> 0.267 Inexact Rounded +pwsx4281 power 0.712 0.5 -> 0.844 Inexact Rounded +pwsx4282 power 0.0712 0.5 -> 0.267 Inexact Rounded +pwsx4283 power 0.713 0.5 -> 0.844 Inexact Rounded +pwsx4284 power 0.0713 0.5 -> 0.267 Inexact Rounded +pwsx4285 power 0.714 0.5 -> 0.845 Inexact Rounded +pwsx4286 power 0.0714 0.5 -> 0.267 Inexact Rounded +pwsx4287 power 0.715 0.5 -> 0.846 Inexact Rounded +pwsx4288 power 0.0715 0.5 -> 0.267 Inexact Rounded +pwsx4289 power 0.716 0.5 -> 0.846 Inexact Rounded +pwsx4290 power 0.0716 0.5 -> 0.268 Inexact Rounded +pwsx4291 power 0.717 0.5 -> 0.847 Inexact Rounded +pwsx4292 power 0.0717 0.5 -> 0.268 Inexact Rounded +pwsx4293 power 0.718 0.5 -> 0.847 Inexact Rounded +pwsx4294 power 0.0718 0.5 -> 0.268 Inexact Rounded +pwsx4295 power 0.719 0.5 -> 0.848 Inexact Rounded +pwsx4296 power 0.0719 0.5 -> 0.268 Inexact Rounded +pwsx4297 power 0.721 0.5 -> 0.849 Inexact Rounded +pwsx4298 power 0.0721 0.5 -> 0.269 Inexact Rounded +pwsx4299 power 0.722 0.5 -> 0.850 Inexact Rounded +pwsx4300 power 0.0722 0.5 -> 0.269 Inexact Rounded +pwsx4301 power 0.723 0.5 -> 0.850 Inexact Rounded +pwsx4302 power 0.0723 0.5 -> 0.269 Inexact Rounded +pwsx4303 power 0.724 0.5 -> 0.851 Inexact Rounded +pwsx4304 power 0.0724 0.5 -> 0.269 Inexact Rounded +pwsx4305 power 0.725 0.5 -> 0.851 Inexact Rounded +pwsx4306 power 0.0725 0.5 -> 0.269 Inexact Rounded +pwsx4307 power 0.726 0.5 -> 0.852 Inexact Rounded +pwsx4308 power 0.0726 0.5 -> 0.269 Inexact Rounded +pwsx4309 power 0.727 0.5 -> 0.853 Inexact Rounded +pwsx4310 power 0.0727 0.5 -> 0.270 Inexact Rounded +pwsx4311 power 0.728 0.5 -> 0.853 Inexact Rounded +pwsx4312 power 0.0728 0.5 -> 0.270 Inexact Rounded +pwsx4313 power 0.729 0.5 -> 0.854 Inexact Rounded +pwsx4314 power 0.0729 0.5 -> 0.270 Inexact Rounded +pwsx4315 power 0.731 0.5 -> 0.855 Inexact Rounded +pwsx4316 power 0.0731 0.5 -> 0.270 Inexact Rounded +pwsx4317 power 0.732 0.5 -> 0.856 Inexact Rounded +pwsx4318 power 0.0732 0.5 -> 0.271 Inexact Rounded +pwsx4319 power 0.733 0.5 -> 0.856 Inexact Rounded +pwsx4320 power 0.0733 0.5 -> 0.271 Inexact Rounded +pwsx4321 power 0.734 0.5 -> 0.857 Inexact Rounded +pwsx4322 power 0.0734 0.5 -> 0.271 Inexact Rounded +pwsx4323 power 0.735 0.5 -> 0.857 Inexact Rounded +pwsx4324 power 0.0735 0.5 -> 0.271 Inexact Rounded +pwsx4325 power 0.736 0.5 -> 0.858 Inexact Rounded +pwsx4326 power 0.0736 0.5 -> 0.271 Inexact Rounded +pwsx4327 power 0.737 0.5 -> 0.858 Inexact Rounded +pwsx4328 power 0.0737 0.5 -> 0.271 Inexact Rounded +pwsx4329 power 0.738 0.5 -> 0.859 Inexact Rounded +pwsx4330 power 0.0738 0.5 -> 0.272 Inexact Rounded +pwsx4331 power 0.739 0.5 -> 0.860 Inexact Rounded +pwsx4332 power 0.0739 0.5 -> 0.272 Inexact Rounded +pwsx4333 power 0.741 0.5 -> 0.861 Inexact Rounded +pwsx4334 power 0.0741 0.5 -> 0.272 Inexact Rounded +pwsx4335 power 0.742 0.5 -> 0.861 Inexact Rounded +pwsx4336 power 0.0742 0.5 -> 0.272 Inexact Rounded +pwsx4337 power 0.743 0.5 -> 0.862 Inexact Rounded +pwsx4338 power 0.0743 0.5 -> 0.273 Inexact Rounded +pwsx4339 power 0.744 0.5 -> 0.863 Inexact Rounded +pwsx4340 power 0.0744 0.5 -> 0.273 Inexact Rounded +pwsx4341 power 0.745 0.5 -> 0.863 Inexact Rounded +pwsx4342 power 0.0745 0.5 -> 0.273 Inexact Rounded +pwsx4343 power 0.746 0.5 -> 0.864 Inexact Rounded +pwsx4344 power 0.0746 0.5 -> 0.273 Inexact Rounded +pwsx4345 power 0.747 0.5 -> 0.864 Inexact Rounded +pwsx4346 power 0.0747 0.5 -> 0.273 Inexact Rounded +pwsx4347 power 0.748 0.5 -> 0.865 Inexact Rounded +pwsx4348 power 0.0748 0.5 -> 0.273 Inexact Rounded +pwsx4349 power 0.749 0.5 -> 0.865 Inexact Rounded +pwsx4350 power 0.0749 0.5 -> 0.274 Inexact Rounded +pwsx4351 power 0.751 0.5 -> 0.867 Inexact Rounded +pwsx4352 power 0.0751 0.5 -> 0.274 Inexact Rounded +pwsx4353 power 0.752 0.5 -> 0.867 Inexact Rounded +pwsx4354 power 0.0752 0.5 -> 0.274 Inexact Rounded +pwsx4355 power 0.753 0.5 -> 0.868 Inexact Rounded +pwsx4356 power 0.0753 0.5 -> 0.274 Inexact Rounded +pwsx4357 power 0.754 0.5 -> 0.868 Inexact Rounded +pwsx4358 power 0.0754 0.5 -> 0.275 Inexact Rounded +pwsx4359 power 0.755 0.5 -> 0.869 Inexact Rounded +pwsx4360 power 0.0755 0.5 -> 0.275 Inexact Rounded +pwsx4361 power 0.756 0.5 -> 0.869 Inexact Rounded +pwsx4362 power 0.0756 0.5 -> 0.275 Inexact Rounded +pwsx4363 power 0.757 0.5 -> 0.870 Inexact Rounded +pwsx4364 power 0.0757 0.5 -> 0.275 Inexact Rounded +pwsx4365 power 0.758 0.5 -> 0.871 Inexact Rounded +pwsx4366 power 0.0758 0.5 -> 0.275 Inexact Rounded +pwsx4367 power 0.759 0.5 -> 0.871 Inexact Rounded +pwsx4368 power 0.0759 0.5 -> 0.275 Inexact Rounded +pwsx4369 power 0.761 0.5 -> 0.872 Inexact Rounded +pwsx4370 power 0.0761 0.5 -> 0.276 Inexact Rounded +pwsx4371 power 0.762 0.5 -> 0.873 Inexact Rounded +pwsx4372 power 0.0762 0.5 -> 0.276 Inexact Rounded +pwsx4373 power 0.763 0.5 -> 0.873 Inexact Rounded +pwsx4374 power 0.0763 0.5 -> 0.276 Inexact Rounded +pwsx4375 power 0.764 0.5 -> 0.874 Inexact Rounded +pwsx4376 power 0.0764 0.5 -> 0.276 Inexact Rounded +pwsx4377 power 0.765 0.5 -> 0.875 Inexact Rounded +pwsx4378 power 0.0765 0.5 -> 0.277 Inexact Rounded +pwsx4379 power 0.766 0.5 -> 0.875 Inexact Rounded +pwsx4380 power 0.0766 0.5 -> 0.277 Inexact Rounded +pwsx4381 power 0.767 0.5 -> 0.876 Inexact Rounded +pwsx4382 power 0.0767 0.5 -> 0.277 Inexact Rounded +pwsx4383 power 0.768 0.5 -> 0.876 Inexact Rounded +pwsx4384 power 0.0768 0.5 -> 0.277 Inexact Rounded +pwsx4385 power 0.769 0.5 -> 0.877 Inexact Rounded +pwsx4386 power 0.0769 0.5 -> 0.277 Inexact Rounded +pwsx4387 power 0.771 0.5 -> 0.878 Inexact Rounded +pwsx4388 power 0.0771 0.5 -> 0.278 Inexact Rounded +pwsx4389 power 0.772 0.5 -> 0.879 Inexact Rounded +pwsx4390 power 0.0772 0.5 -> 0.278 Inexact Rounded +pwsx4391 power 0.773 0.5 -> 0.879 Inexact Rounded +pwsx4392 power 0.0773 0.5 -> 0.278 Inexact Rounded +pwsx4393 power 0.774 0.5 -> 0.880 Inexact Rounded +pwsx4394 power 0.0774 0.5 -> 0.278 Inexact Rounded +pwsx4395 power 0.775 0.5 -> 0.880 Inexact Rounded +pwsx4396 power 0.0775 0.5 -> 0.278 Inexact Rounded +pwsx4397 power 0.776 0.5 -> 0.881 Inexact Rounded +pwsx4398 power 0.0776 0.5 -> 0.279 Inexact Rounded +pwsx4399 power 0.777 0.5 -> 0.881 Inexact Rounded +pwsx4400 power 0.0777 0.5 -> 0.279 Inexact Rounded +pwsx4401 power 0.778 0.5 -> 0.882 Inexact Rounded +pwsx4402 power 0.0778 0.5 -> 0.279 Inexact Rounded +pwsx4403 power 0.779 0.5 -> 0.883 Inexact Rounded +pwsx4404 power 0.0779 0.5 -> 0.279 Inexact Rounded +pwsx4405 power 0.781 0.5 -> 0.884 Inexact Rounded +pwsx4406 power 0.0781 0.5 -> 0.279 Inexact Rounded +pwsx4407 power 0.782 0.5 -> 0.884 Inexact Rounded +pwsx4408 power 0.0782 0.5 -> 0.280 Inexact Rounded +pwsx4409 power 0.783 0.5 -> 0.885 Inexact Rounded +pwsx4410 power 0.0783 0.5 -> 0.280 Inexact Rounded +pwsx4411 power 0.784 0.5 -> 0.885 Inexact Rounded +pwsx4412 power 0.0784 0.5 -> 0.280 Inexact Rounded +pwsx4413 power 0.785 0.5 -> 0.886 Inexact Rounded +pwsx4414 power 0.0785 0.5 -> 0.280 Inexact Rounded +pwsx4415 power 0.786 0.5 -> 0.887 Inexact Rounded +pwsx4416 power 0.0786 0.5 -> 0.280 Inexact Rounded +pwsx4417 power 0.787 0.5 -> 0.887 Inexact Rounded +pwsx4418 power 0.0787 0.5 -> 0.281 Inexact Rounded +pwsx4419 power 0.788 0.5 -> 0.888 Inexact Rounded +pwsx4420 power 0.0788 0.5 -> 0.281 Inexact Rounded +pwsx4421 power 0.789 0.5 -> 0.888 Inexact Rounded +pwsx4422 power 0.0789 0.5 -> 0.281 Inexact Rounded +pwsx4423 power 0.791 0.5 -> 0.889 Inexact Rounded +pwsx4424 power 0.0791 0.5 -> 0.281 Inexact Rounded +pwsx4425 power 0.792 0.5 -> 0.890 Inexact Rounded +pwsx4426 power 0.0792 0.5 -> 0.281 Inexact Rounded +pwsx4427 power 0.793 0.5 -> 0.891 Inexact Rounded +pwsx4428 power 0.0793 0.5 -> 0.282 Inexact Rounded +pwsx4429 power 0.794 0.5 -> 0.891 Inexact Rounded +pwsx4430 power 0.0794 0.5 -> 0.282 Inexact Rounded +pwsx4431 power 0.795 0.5 -> 0.892 Inexact Rounded +pwsx4432 power 0.0795 0.5 -> 0.282 Inexact Rounded +pwsx4433 power 0.796 0.5 -> 0.892 Inexact Rounded +pwsx4434 power 0.0796 0.5 -> 0.282 Inexact Rounded +pwsx4435 power 0.797 0.5 -> 0.893 Inexact Rounded +pwsx4436 power 0.0797 0.5 -> 0.282 Inexact Rounded +pwsx4437 power 0.798 0.5 -> 0.893 Inexact Rounded +pwsx4438 power 0.0798 0.5 -> 0.282 Inexact Rounded +pwsx4439 power 0.799 0.5 -> 0.894 Inexact Rounded +pwsx4440 power 0.0799 0.5 -> 0.283 Inexact Rounded +pwsx4441 power 0.801 0.5 -> 0.895 Inexact Rounded +pwsx4442 power 0.0801 0.5 -> 0.283 Inexact Rounded +pwsx4443 power 0.802 0.5 -> 0.896 Inexact Rounded +pwsx4444 power 0.0802 0.5 -> 0.283 Inexact Rounded +pwsx4445 power 0.803 0.5 -> 0.896 Inexact Rounded +pwsx4446 power 0.0803 0.5 -> 0.283 Inexact Rounded +pwsx4447 power 0.804 0.5 -> 0.897 Inexact Rounded +pwsx4448 power 0.0804 0.5 -> 0.284 Inexact Rounded +pwsx4449 power 0.805 0.5 -> 0.897 Inexact Rounded +pwsx4450 power 0.0805 0.5 -> 0.284 Inexact Rounded +pwsx4451 power 0.806 0.5 -> 0.898 Inexact Rounded +pwsx4452 power 0.0806 0.5 -> 0.284 Inexact Rounded +pwsx4453 power 0.807 0.5 -> 0.898 Inexact Rounded +pwsx4454 power 0.0807 0.5 -> 0.284 Inexact Rounded +pwsx4455 power 0.808 0.5 -> 0.899 Inexact Rounded +pwsx4456 power 0.0808 0.5 -> 0.284 Inexact Rounded +pwsx4457 power 0.809 0.5 -> 0.899 Inexact Rounded +pwsx4458 power 0.0809 0.5 -> 0.284 Inexact Rounded +pwsx4459 power 0.811 0.5 -> 0.901 Inexact Rounded +pwsx4460 power 0.0811 0.5 -> 0.285 Inexact Rounded +pwsx4461 power 0.812 0.5 -> 0.901 Inexact Rounded +pwsx4462 power 0.0812 0.5 -> 0.285 Inexact Rounded +pwsx4463 power 0.813 0.5 -> 0.902 Inexact Rounded +pwsx4464 power 0.0813 0.5 -> 0.285 Inexact Rounded +pwsx4465 power 0.814 0.5 -> 0.902 Inexact Rounded +pwsx4466 power 0.0814 0.5 -> 0.285 Inexact Rounded +pwsx4467 power 0.815 0.5 -> 0.903 Inexact Rounded +pwsx4468 power 0.0815 0.5 -> 0.285 Inexact Rounded +pwsx4469 power 0.816 0.5 -> 0.903 Inexact Rounded +pwsx4470 power 0.0816 0.5 -> 0.286 Inexact Rounded +pwsx4471 power 0.817 0.5 -> 0.904 Inexact Rounded +pwsx4472 power 0.0817 0.5 -> 0.286 Inexact Rounded +pwsx4473 power 0.818 0.5 -> 0.904 Inexact Rounded +pwsx4474 power 0.0818 0.5 -> 0.286 Inexact Rounded +pwsx4475 power 0.819 0.5 -> 0.905 Inexact Rounded +pwsx4476 power 0.0819 0.5 -> 0.286 Inexact Rounded +pwsx4477 power 0.821 0.5 -> 0.906 Inexact Rounded +pwsx4478 power 0.0821 0.5 -> 0.287 Inexact Rounded +pwsx4479 power 0.822 0.5 -> 0.907 Inexact Rounded +pwsx4480 power 0.0822 0.5 -> 0.287 Inexact Rounded +pwsx4481 power 0.823 0.5 -> 0.907 Inexact Rounded +pwsx4482 power 0.0823 0.5 -> 0.287 Inexact Rounded +pwsx4483 power 0.824 0.5 -> 0.908 Inexact Rounded +pwsx4484 power 0.0824 0.5 -> 0.287 Inexact Rounded +pwsx4485 power 0.825 0.5 -> 0.908 Inexact Rounded +pwsx4486 power 0.0825 0.5 -> 0.287 Inexact Rounded +pwsx4487 power 0.826 0.5 -> 0.909 Inexact Rounded +pwsx4488 power 0.0826 0.5 -> 0.287 Inexact Rounded +pwsx4489 power 0.827 0.5 -> 0.909 Inexact Rounded +pwsx4490 power 0.0827 0.5 -> 0.288 Inexact Rounded +pwsx4491 power 0.828 0.5 -> 0.910 Inexact Rounded +pwsx4492 power 0.0828 0.5 -> 0.288 Inexact Rounded +pwsx4493 power 0.829 0.5 -> 0.910 Inexact Rounded +pwsx4494 power 0.0829 0.5 -> 0.288 Inexact Rounded +pwsx4495 power 0.831 0.5 -> 0.912 Inexact Rounded +pwsx4496 power 0.0831 0.5 -> 0.288 Inexact Rounded +pwsx4497 power 0.832 0.5 -> 0.912 Inexact Rounded +pwsx4498 power 0.0832 0.5 -> 0.288 Inexact Rounded +pwsx4499 power 0.833 0.5 -> 0.913 Inexact Rounded +pwsx4500 power 0.0833 0.5 -> 0.289 Inexact Rounded +pwsx4501 power 0.834 0.5 -> 0.913 Inexact Rounded +pwsx4502 power 0.0834 0.5 -> 0.289 Inexact Rounded +pwsx4503 power 0.835 0.5 -> 0.914 Inexact Rounded +pwsx4504 power 0.0835 0.5 -> 0.289 Inexact Rounded +pwsx4505 power 0.836 0.5 -> 0.914 Inexact Rounded +pwsx4506 power 0.0836 0.5 -> 0.289 Inexact Rounded +pwsx4507 power 0.837 0.5 -> 0.915 Inexact Rounded +pwsx4508 power 0.0837 0.5 -> 0.289 Inexact Rounded +pwsx4509 power 0.838 0.5 -> 0.915 Inexact Rounded +pwsx4510 power 0.0838 0.5 -> 0.289 Inexact Rounded +pwsx4511 power 0.839 0.5 -> 0.916 Inexact Rounded +pwsx4512 power 0.0839 0.5 -> 0.290 Inexact Rounded +pwsx4513 power 0.841 0.5 -> 0.917 Inexact Rounded +pwsx4514 power 0.0841 0.5 -> 0.290 Inexact Rounded +pwsx4515 power 0.842 0.5 -> 0.918 Inexact Rounded +pwsx4516 power 0.0842 0.5 -> 0.290 Inexact Rounded +pwsx4517 power 0.843 0.5 -> 0.918 Inexact Rounded +pwsx4518 power 0.0843 0.5 -> 0.290 Inexact Rounded +pwsx4519 power 0.844 0.5 -> 0.919 Inexact Rounded +pwsx4520 power 0.0844 0.5 -> 0.291 Inexact Rounded +pwsx4521 power 0.845 0.5 -> 0.919 Inexact Rounded +pwsx4522 power 0.0845 0.5 -> 0.291 Inexact Rounded +pwsx4523 power 0.846 0.5 -> 0.920 Inexact Rounded +pwsx4524 power 0.0846 0.5 -> 0.291 Inexact Rounded +pwsx4525 power 0.847 0.5 -> 0.920 Inexact Rounded +pwsx4526 power 0.0847 0.5 -> 0.291 Inexact Rounded +pwsx4527 power 0.848 0.5 -> 0.921 Inexact Rounded +pwsx4528 power 0.0848 0.5 -> 0.291 Inexact Rounded +pwsx4529 power 0.849 0.5 -> 0.921 Inexact Rounded +pwsx4530 power 0.0849 0.5 -> 0.291 Inexact Rounded +pwsx4531 power 0.851 0.5 -> 0.922 Inexact Rounded +pwsx4532 power 0.0851 0.5 -> 0.292 Inexact Rounded +pwsx4533 power 0.852 0.5 -> 0.923 Inexact Rounded +pwsx4534 power 0.0852 0.5 -> 0.292 Inexact Rounded +pwsx4535 power 0.853 0.5 -> 0.924 Inexact Rounded +pwsx4536 power 0.0853 0.5 -> 0.292 Inexact Rounded +pwsx4537 power 0.854 0.5 -> 0.924 Inexact Rounded +pwsx4538 power 0.0854 0.5 -> 0.292 Inexact Rounded +pwsx4539 power 0.855 0.5 -> 0.925 Inexact Rounded +pwsx4540 power 0.0855 0.5 -> 0.292 Inexact Rounded +pwsx4541 power 0.856 0.5 -> 0.925 Inexact Rounded +pwsx4542 power 0.0856 0.5 -> 0.293 Inexact Rounded +pwsx4543 power 0.857 0.5 -> 0.926 Inexact Rounded +pwsx4544 power 0.0857 0.5 -> 0.293 Inexact Rounded +pwsx4545 power 0.858 0.5 -> 0.926 Inexact Rounded +pwsx4546 power 0.0858 0.5 -> 0.293 Inexact Rounded +pwsx4547 power 0.859 0.5 -> 0.927 Inexact Rounded +pwsx4548 power 0.0859 0.5 -> 0.293 Inexact Rounded +pwsx4549 power 0.861 0.5 -> 0.928 Inexact Rounded +pwsx4550 power 0.0861 0.5 -> 0.293 Inexact Rounded +pwsx4551 power 0.862 0.5 -> 0.928 Inexact Rounded +pwsx4552 power 0.0862 0.5 -> 0.294 Inexact Rounded +pwsx4553 power 0.863 0.5 -> 0.929 Inexact Rounded +pwsx4554 power 0.0863 0.5 -> 0.294 Inexact Rounded +pwsx4555 power 0.864 0.5 -> 0.930 Inexact Rounded +pwsx4556 power 0.0864 0.5 -> 0.294 Inexact Rounded +pwsx4557 power 0.865 0.5 -> 0.930 Inexact Rounded +pwsx4558 power 0.0865 0.5 -> 0.294 Inexact Rounded +pwsx4559 power 0.866 0.5 -> 0.931 Inexact Rounded +pwsx4560 power 0.0866 0.5 -> 0.294 Inexact Rounded +pwsx4561 power 0.867 0.5 -> 0.931 Inexact Rounded +pwsx4562 power 0.0867 0.5 -> 0.294 Inexact Rounded +pwsx4563 power 0.868 0.5 -> 0.932 Inexact Rounded +pwsx4564 power 0.0868 0.5 -> 0.295 Inexact Rounded +pwsx4565 power 0.869 0.5 -> 0.932 Inexact Rounded +pwsx4566 power 0.0869 0.5 -> 0.295 Inexact Rounded +pwsx4567 power 0.871 0.5 -> 0.933 Inexact Rounded +pwsx4568 power 0.0871 0.5 -> 0.295 Inexact Rounded +pwsx4569 power 0.872 0.5 -> 0.934 Inexact Rounded +pwsx4570 power 0.0872 0.5 -> 0.295 Inexact Rounded +pwsx4571 power 0.873 0.5 -> 0.934 Inexact Rounded +pwsx4572 power 0.0873 0.5 -> 0.295 Inexact Rounded +pwsx4573 power 0.874 0.5 -> 0.935 Inexact Rounded +pwsx4574 power 0.0874 0.5 -> 0.296 Inexact Rounded +pwsx4575 power 0.875 0.5 -> 0.935 Inexact Rounded +pwsx4576 power 0.0875 0.5 -> 0.296 Inexact Rounded +pwsx4577 power 0.876 0.5 -> 0.936 Inexact Rounded +pwsx4578 power 0.0876 0.5 -> 0.296 Inexact Rounded +pwsx4579 power 0.877 0.5 -> 0.936 Inexact Rounded +pwsx4580 power 0.0877 0.5 -> 0.296 Inexact Rounded +pwsx4581 power 0.878 0.5 -> 0.937 Inexact Rounded +pwsx4582 power 0.0878 0.5 -> 0.296 Inexact Rounded +pwsx4583 power 0.879 0.5 -> 0.938 Inexact Rounded +pwsx4584 power 0.0879 0.5 -> 0.296 Inexact Rounded +pwsx4585 power 0.881 0.5 -> 0.939 Inexact Rounded +pwsx4586 power 0.0881 0.5 -> 0.297 Inexact Rounded +pwsx4587 power 0.882 0.5 -> 0.939 Inexact Rounded +pwsx4588 power 0.0882 0.5 -> 0.297 Inexact Rounded +pwsx4589 power 0.883 0.5 -> 0.940 Inexact Rounded +pwsx4590 power 0.0883 0.5 -> 0.297 Inexact Rounded +pwsx4591 power 0.884 0.5 -> 0.940 Inexact Rounded +pwsx4592 power 0.0884 0.5 -> 0.297 Inexact Rounded +pwsx4593 power 0.885 0.5 -> 0.941 Inexact Rounded +pwsx4594 power 0.0885 0.5 -> 0.297 Inexact Rounded +pwsx4595 power 0.886 0.5 -> 0.941 Inexact Rounded +pwsx4596 power 0.0886 0.5 -> 0.298 Inexact Rounded +pwsx4597 power 0.887 0.5 -> 0.942 Inexact Rounded +pwsx4598 power 0.0887 0.5 -> 0.298 Inexact Rounded +pwsx4599 power 0.888 0.5 -> 0.942 Inexact Rounded +pwsx4600 power 0.0888 0.5 -> 0.298 Inexact Rounded +pwsx4601 power 0.889 0.5 -> 0.943 Inexact Rounded +pwsx4602 power 0.0889 0.5 -> 0.298 Inexact Rounded +pwsx4603 power 0.891 0.5 -> 0.944 Inexact Rounded +pwsx4604 power 0.0891 0.5 -> 0.298 Inexact Rounded +pwsx4605 power 0.892 0.5 -> 0.944 Inexact Rounded +pwsx4606 power 0.0892 0.5 -> 0.299 Inexact Rounded +pwsx4607 power 0.893 0.5 -> 0.945 Inexact Rounded +pwsx4608 power 0.0893 0.5 -> 0.299 Inexact Rounded +pwsx4609 power 0.894 0.5 -> 0.946 Inexact Rounded +pwsx4610 power 0.0894 0.5 -> 0.299 Inexact Rounded +pwsx4611 power 0.895 0.5 -> 0.946 Inexact Rounded +pwsx4612 power 0.0895 0.5 -> 0.299 Inexact Rounded +pwsx4613 power 0.896 0.5 -> 0.947 Inexact Rounded +pwsx4614 power 0.0896 0.5 -> 0.299 Inexact Rounded +pwsx4615 power 0.897 0.5 -> 0.947 Inexact Rounded +pwsx4616 power 0.0897 0.5 -> 0.299 Inexact Rounded +pwsx4617 power 0.898 0.5 -> 0.948 Inexact Rounded +pwsx4618 power 0.0898 0.5 -> 0.300 Inexact Rounded +pwsx4619 power 0.899 0.5 -> 0.948 Inexact Rounded +pwsx4620 power 0.0899 0.5 -> 0.300 Inexact Rounded +pwsx4621 power 0.901 0.5 -> 0.949 Inexact Rounded +pwsx4622 power 0.0901 0.5 -> 0.300 Inexact Rounded +pwsx4623 power 0.902 0.5 -> 0.950 Inexact Rounded +pwsx4624 power 0.0902 0.5 -> 0.300 Inexact Rounded +pwsx4625 power 0.903 0.5 -> 0.950 Inexact Rounded +pwsx4626 power 0.0903 0.5 -> 0.300 Inexact Rounded +pwsx4627 power 0.904 0.5 -> 0.951 Inexact Rounded +pwsx4628 power 0.0904 0.5 -> 0.301 Inexact Rounded +pwsx4629 power 0.905 0.5 -> 0.951 Inexact Rounded +pwsx4630 power 0.0905 0.5 -> 0.301 Inexact Rounded +pwsx4631 power 0.906 0.5 -> 0.952 Inexact Rounded +pwsx4632 power 0.0906 0.5 -> 0.301 Inexact Rounded +pwsx4633 power 0.907 0.5 -> 0.952 Inexact Rounded +pwsx4634 power 0.0907 0.5 -> 0.301 Inexact Rounded +pwsx4635 power 0.908 0.5 -> 0.953 Inexact Rounded +pwsx4636 power 0.0908 0.5 -> 0.301 Inexact Rounded +pwsx4637 power 0.909 0.5 -> 0.953 Inexact Rounded +pwsx4638 power 0.0909 0.5 -> 0.301 Inexact Rounded +pwsx4639 power 0.911 0.5 -> 0.954 Inexact Rounded +pwsx4640 power 0.0911 0.5 -> 0.302 Inexact Rounded +pwsx4641 power 0.912 0.5 -> 0.955 Inexact Rounded +pwsx4642 power 0.0912 0.5 -> 0.302 Inexact Rounded +pwsx4643 power 0.913 0.5 -> 0.956 Inexact Rounded +pwsx4644 power 0.0913 0.5 -> 0.302 Inexact Rounded +pwsx4645 power 0.914 0.5 -> 0.956 Inexact Rounded +pwsx4646 power 0.0914 0.5 -> 0.302 Inexact Rounded +pwsx4647 power 0.915 0.5 -> 0.957 Inexact Rounded +pwsx4648 power 0.0915 0.5 -> 0.302 Inexact Rounded +pwsx4649 power 0.916 0.5 -> 0.957 Inexact Rounded +pwsx4650 power 0.0916 0.5 -> 0.303 Inexact Rounded +pwsx4651 power 0.917 0.5 -> 0.958 Inexact Rounded +pwsx4652 power 0.0917 0.5 -> 0.303 Inexact Rounded +pwsx4653 power 0.918 0.5 -> 0.958 Inexact Rounded +pwsx4654 power 0.0918 0.5 -> 0.303 Inexact Rounded +pwsx4655 power 0.919 0.5 -> 0.959 Inexact Rounded +pwsx4656 power 0.0919 0.5 -> 0.303 Inexact Rounded +pwsx4657 power 0.921 0.5 -> 0.960 Inexact Rounded +pwsx4658 power 0.0921 0.5 -> 0.303 Inexact Rounded +pwsx4659 power 0.922 0.5 -> 0.960 Inexact Rounded +pwsx4660 power 0.0922 0.5 -> 0.304 Inexact Rounded +pwsx4661 power 0.923 0.5 -> 0.961 Inexact Rounded +pwsx4662 power 0.0923 0.5 -> 0.304 Inexact Rounded +pwsx4663 power 0.924 0.5 -> 0.961 Inexact Rounded +pwsx4664 power 0.0924 0.5 -> 0.304 Inexact Rounded +pwsx4665 power 0.925 0.5 -> 0.962 Inexact Rounded +pwsx4666 power 0.0925 0.5 -> 0.304 Inexact Rounded +pwsx4667 power 0.926 0.5 -> 0.962 Inexact Rounded +pwsx4668 power 0.0926 0.5 -> 0.304 Inexact Rounded +pwsx4669 power 0.927 0.5 -> 0.963 Inexact Rounded +pwsx4670 power 0.0927 0.5 -> 0.304 Inexact Rounded +pwsx4671 power 0.928 0.5 -> 0.963 Inexact Rounded +pwsx4672 power 0.0928 0.5 -> 0.305 Inexact Rounded +pwsx4673 power 0.929 0.5 -> 0.964 Inexact Rounded +pwsx4674 power 0.0929 0.5 -> 0.305 Inexact Rounded +pwsx4675 power 0.931 0.5 -> 0.965 Inexact Rounded +pwsx4676 power 0.0931 0.5 -> 0.305 Inexact Rounded +pwsx4677 power 0.932 0.5 -> 0.965 Inexact Rounded +pwsx4678 power 0.0932 0.5 -> 0.305 Inexact Rounded +pwsx4679 power 0.933 0.5 -> 0.966 Inexact Rounded +pwsx4680 power 0.0933 0.5 -> 0.305 Inexact Rounded +pwsx4681 power 0.934 0.5 -> 0.966 Inexact Rounded +pwsx4682 power 0.0934 0.5 -> 0.306 Inexact Rounded +pwsx4683 power 0.935 0.5 -> 0.967 Inexact Rounded +pwsx4684 power 0.0935 0.5 -> 0.306 Inexact Rounded +pwsx4685 power 0.936 0.5 -> 0.967 Inexact Rounded +pwsx4686 power 0.0936 0.5 -> 0.306 Inexact Rounded +pwsx4687 power 0.937 0.5 -> 0.968 Inexact Rounded +pwsx4688 power 0.0937 0.5 -> 0.306 Inexact Rounded +pwsx4689 power 0.938 0.5 -> 0.969 Inexact Rounded +pwsx4690 power 0.0938 0.5 -> 0.306 Inexact Rounded +pwsx4691 power 0.939 0.5 -> 0.969 Inexact Rounded +pwsx4692 power 0.0939 0.5 -> 0.306 Inexact Rounded +pwsx4693 power 0.941 0.5 -> 0.970 Inexact Rounded +pwsx4694 power 0.0941 0.5 -> 0.307 Inexact Rounded +pwsx4695 power 0.942 0.5 -> 0.971 Inexact Rounded +pwsx4696 power 0.0942 0.5 -> 0.307 Inexact Rounded +pwsx4697 power 0.943 0.5 -> 0.971 Inexact Rounded +pwsx4698 power 0.0943 0.5 -> 0.307 Inexact Rounded +pwsx4699 power 0.944 0.5 -> 0.972 Inexact Rounded +pwsx4700 power 0.0944 0.5 -> 0.307 Inexact Rounded +pwsx4701 power 0.945 0.5 -> 0.972 Inexact Rounded +pwsx4702 power 0.0945 0.5 -> 0.307 Inexact Rounded +pwsx4703 power 0.946 0.5 -> 0.973 Inexact Rounded +pwsx4704 power 0.0946 0.5 -> 0.308 Inexact Rounded +pwsx4705 power 0.947 0.5 -> 0.973 Inexact Rounded +pwsx4706 power 0.0947 0.5 -> 0.308 Inexact Rounded +pwsx4707 power 0.948 0.5 -> 0.974 Inexact Rounded +pwsx4708 power 0.0948 0.5 -> 0.308 Inexact Rounded +pwsx4709 power 0.949 0.5 -> 0.974 Inexact Rounded +pwsx4710 power 0.0949 0.5 -> 0.308 Inexact Rounded +pwsx4711 power 0.951 0.5 -> 0.975 Inexact Rounded +pwsx4712 power 0.0951 0.5 -> 0.308 Inexact Rounded +pwsx4713 power 0.952 0.5 -> 0.976 Inexact Rounded +pwsx4714 power 0.0952 0.5 -> 0.309 Inexact Rounded +pwsx4715 power 0.953 0.5 -> 0.976 Inexact Rounded +pwsx4716 power 0.0953 0.5 -> 0.309 Inexact Rounded +pwsx4717 power 0.954 0.5 -> 0.977 Inexact Rounded +pwsx4718 power 0.0954 0.5 -> 0.309 Inexact Rounded +pwsx4719 power 0.955 0.5 -> 0.977 Inexact Rounded +pwsx4720 power 0.0955 0.5 -> 0.309 Inexact Rounded +pwsx4721 power 0.956 0.5 -> 0.978 Inexact Rounded +pwsx4722 power 0.0956 0.5 -> 0.309 Inexact Rounded +pwsx4723 power 0.957 0.5 -> 0.978 Inexact Rounded +pwsx4724 power 0.0957 0.5 -> 0.309 Inexact Rounded +pwsx4725 power 0.958 0.5 -> 0.979 Inexact Rounded +pwsx4726 power 0.0958 0.5 -> 0.310 Inexact Rounded +pwsx4727 power 0.959 0.5 -> 0.979 Inexact Rounded +pwsx4728 power 0.0959 0.5 -> 0.310 Inexact Rounded +pwsx4729 power 0.961 0.5 -> 0.980 Inexact Rounded +pwsx4730 power 0.0961 0.5 -> 0.310 Inexact Rounded +pwsx4731 power 0.962 0.5 -> 0.981 Inexact Rounded +pwsx4732 power 0.0962 0.5 -> 0.310 Inexact Rounded +pwsx4733 power 0.963 0.5 -> 0.981 Inexact Rounded +pwsx4734 power 0.0963 0.5 -> 0.310 Inexact Rounded +pwsx4735 power 0.964 0.5 -> 0.982 Inexact Rounded +pwsx4736 power 0.0964 0.5 -> 0.310 Inexact Rounded +pwsx4737 power 0.965 0.5 -> 0.982 Inexact Rounded +pwsx4738 power 0.0965 0.5 -> 0.311 Inexact Rounded +pwsx4739 power 0.966 0.5 -> 0.983 Inexact Rounded +pwsx4740 power 0.0966 0.5 -> 0.311 Inexact Rounded +pwsx4741 power 0.967 0.5 -> 0.983 Inexact Rounded +pwsx4742 power 0.0967 0.5 -> 0.311 Inexact Rounded +pwsx4743 power 0.968 0.5 -> 0.984 Inexact Rounded +pwsx4744 power 0.0968 0.5 -> 0.311 Inexact Rounded +pwsx4745 power 0.969 0.5 -> 0.984 Inexact Rounded +pwsx4746 power 0.0969 0.5 -> 0.311 Inexact Rounded +pwsx4747 power 0.971 0.5 -> 0.985 Inexact Rounded +pwsx4748 power 0.0971 0.5 -> 0.312 Inexact Rounded +pwsx4749 power 0.972 0.5 -> 0.986 Inexact Rounded +pwsx4750 power 0.0972 0.5 -> 0.312 Inexact Rounded +pwsx4751 power 0.973 0.5 -> 0.986 Inexact Rounded +pwsx4752 power 0.0973 0.5 -> 0.312 Inexact Rounded +pwsx4753 power 0.974 0.5 -> 0.987 Inexact Rounded +pwsx4754 power 0.0974 0.5 -> 0.312 Inexact Rounded +pwsx4755 power 0.975 0.5 -> 0.987 Inexact Rounded +pwsx4756 power 0.0975 0.5 -> 0.312 Inexact Rounded +pwsx4757 power 0.976 0.5 -> 0.988 Inexact Rounded +pwsx4758 power 0.0976 0.5 -> 0.312 Inexact Rounded +pwsx4759 power 0.977 0.5 -> 0.988 Inexact Rounded +pwsx4760 power 0.0977 0.5 -> 0.313 Inexact Rounded +pwsx4761 power 0.978 0.5 -> 0.989 Inexact Rounded +pwsx4762 power 0.0978 0.5 -> 0.313 Inexact Rounded +pwsx4763 power 0.979 0.5 -> 0.989 Inexact Rounded +pwsx4764 power 0.0979 0.5 -> 0.313 Inexact Rounded +pwsx4765 power 0.981 0.5 -> 0.990 Inexact Rounded +pwsx4766 power 0.0981 0.5 -> 0.313 Inexact Rounded +pwsx4767 power 0.982 0.5 -> 0.991 Inexact Rounded +pwsx4768 power 0.0982 0.5 -> 0.313 Inexact Rounded +pwsx4769 power 0.983 0.5 -> 0.991 Inexact Rounded +pwsx4770 power 0.0983 0.5 -> 0.314 Inexact Rounded +pwsx4771 power 0.984 0.5 -> 0.992 Inexact Rounded +pwsx4772 power 0.0984 0.5 -> 0.314 Inexact Rounded +pwsx4773 power 0.985 0.5 -> 0.992 Inexact Rounded +pwsx4774 power 0.0985 0.5 -> 0.314 Inexact Rounded +pwsx4775 power 0.986 0.5 -> 0.993 Inexact Rounded +pwsx4776 power 0.0986 0.5 -> 0.314 Inexact Rounded +pwsx4777 power 0.987 0.5 -> 0.993 Inexact Rounded +pwsx4778 power 0.0987 0.5 -> 0.314 Inexact Rounded +pwsx4779 power 0.988 0.5 -> 0.994 Inexact Rounded +pwsx4780 power 0.0988 0.5 -> 0.314 Inexact Rounded +pwsx4781 power 0.989 0.5 -> 0.994 Inexact Rounded +pwsx4782 power 0.0989 0.5 -> 0.314 Inexact Rounded +pwsx4783 power 0.991 0.5 -> 0.995 Inexact Rounded +pwsx4784 power 0.0991 0.5 -> 0.315 Inexact Rounded +pwsx4785 power 0.992 0.5 -> 0.996 Inexact Rounded +pwsx4786 power 0.0992 0.5 -> 0.315 Inexact Rounded +pwsx4787 power 0.993 0.5 -> 0.996 Inexact Rounded +pwsx4788 power 0.0993 0.5 -> 0.315 Inexact Rounded +pwsx4789 power 0.994 0.5 -> 0.997 Inexact Rounded +pwsx4790 power 0.0994 0.5 -> 0.315 Inexact Rounded +pwsx4791 power 0.995 0.5 -> 0.997 Inexact Rounded +pwsx4792 power 0.0995 0.5 -> 0.315 Inexact Rounded +pwsx4793 power 0.996 0.5 -> 0.998 Inexact Rounded +pwsx4794 power 0.0996 0.5 -> 0.316 Inexact Rounded +pwsx4795 power 0.997 0.5 -> 0.998 Inexact Rounded +pwsx4796 power 0.0997 0.5 -> 0.316 Inexact Rounded +pwsx4797 power 0.998 0.5 -> 0.999 Inexact Rounded +pwsx4798 power 0.0998 0.5 -> 0.316 Inexact Rounded +pwsx4799 power 0.999 0.5 -> 0.999 Inexact Rounded +pwsx4800 power 0.0999 0.5 -> 0.316 Inexact Rounded + +-- A group of precision 4 tests where Hull & Abrham adjustments are +-- needed in some cases (both up and down) [see Hull1985b] +rounding: half_even +maxExponent: 999 +minexponent: -999 +precision: 4 +pwsx5001 power 0.0118 0.5 -> 0.1086 Inexact Rounded +pwsx5002 power 0.119 0.5 -> 0.3450 Inexact Rounded +pwsx5003 power 0.0119 0.5 -> 0.1091 Inexact Rounded +pwsx5004 power 0.121 0.5 -> 0.3479 Inexact Rounded +pwsx5005 power 0.0121 0.5 -> 0.1100 Inexact Rounded +pwsx5006 power 0.122 0.5 -> 0.3493 Inexact Rounded +pwsx5007 power 0.0122 0.5 -> 0.1105 Inexact Rounded +pwsx5008 power 0.123 0.5 -> 0.3507 Inexact Rounded +pwsx5009 power 0.494 0.5 -> 0.7029 Inexact Rounded +pwsx5010 power 0.0669 0.5 -> 0.2587 Inexact Rounded +pwsx5011 power 0.9558 0.5 -> 0.9777 Inexact Rounded +pwsx5012 power 0.9348 0.5 -> 0.9669 Inexact Rounded +pwsx5013 power 0.9345 0.5 -> 0.9667 Inexact Rounded +pwsx5014 power 0.09345 0.5 -> 0.3057 Inexact Rounded +pwsx5015 power 0.9346 0.5 -> 0.9667 Inexact Rounded +pwsx5016 power 0.09346 0.5 -> 0.3057 Inexact Rounded +pwsx5017 power 0.9347 0.5 -> 0.9668 Inexact Rounded + +-- examples from decArith +precision: 9 +pwsx700 power 0 0.5 -> '0' +pwsx701 power -0 0.5 -> '0' +pwsx702 power 0.39 0.5 -> 0.624499800 Inexact Rounded +pwsx703 power 100 0.5 -> '10.0000000' Inexact Rounded +pwsx704 power 1.00 0.5 -> '1.00000000' Inexact Rounded +pwsx705 power 7 0.5 -> '2.64575131' Inexact Rounded +pwsx706 power 10 0.5 -> 3.16227766 Inexact Rounded + +-- some one-offs +precision: 9 +pwsx711 power 0.1 0.5 -> 0.316227766 Inexact Rounded +pwsx712 power 0.2 0.5 -> 0.447213595 Inexact Rounded +pwsx713 power 0.3 0.5 -> 0.547722558 Inexact Rounded +pwsx714 power 0.4 0.5 -> 0.632455532 Inexact Rounded +pwsx715 power 0.5 0.5 -> 0.707106781 Inexact Rounded +pwsx716 power 0.6 0.5 -> 0.774596669 Inexact Rounded +pwsx717 power 0.7 0.5 -> 0.836660027 Inexact Rounded +pwsx718 power 0.8 0.5 -> 0.894427191 Inexact Rounded +pwsx719 power 0.9 0.5 -> 0.948683298 Inexact Rounded +precision: 10 -- note no normalizatoin here +pwsx720 power +0.1 0.5 -> 0.3162277660 Inexact Rounded +precision: 11 +pwsx721 power +0.1 0.5 -> 0.31622776602 Inexact Rounded +precision: 12 +pwsx722 power +0.1 0.5 -> 0.316227766017 Inexact Rounded +precision: 9 +pwsx723 power 0.39 0.5 -> 0.624499800 Inexact Rounded +precision: 15 +pwsx724 power 0.39 0.5 -> 0.624499799839840 Inexact Rounded + +-- discussion cases +precision: 7 +pwsx731 power 9 0.5 -> 3.000000 Inexact Rounded +pwsx732 power 100 0.5 -> 10.00000 Inexact Rounded +pwsx733 power 123 0.5 -> 11.09054 Inexact Rounded +pwsx734 power 144 0.5 -> 12.00000 Inexact Rounded +pwsx735 power 156 0.5 -> 12.49000 Inexact Rounded +pwsx736 power 10000 0.5 -> 100.0000 Inexact Rounded + +-- values close to overflow (if there were input rounding) +maxexponent: 99 +minexponent: -99 +precision: 5 +pwsx760 power 9.9997E+99 0.5 -> 9.9998E+49 Inexact Rounded +pwsx761 power 9.9998E+99 0.5 -> 9.9999E+49 Inexact Rounded +pwsx762 power 9.9999E+99 0.5 -> 9.9999E+49 Inexact Rounded +pwsx763 power 9.99991E+99 0.5 -> 1.0000E+50 Inexact Rounded +pwsx764 power 9.99994E+99 0.5 -> 1.0000E+50 Inexact Rounded +pwsx765 power 9.99995E+99 0.5 -> 1.0000E+50 Inexact Rounded +pwsx766 power 9.99999E+99 0.5 -> 1.0000E+50 Inexact Rounded +precision: 9 +pwsx770 power 9.9997E+99 0.5 -> 9.99985000E+49 Inexact Rounded +pwsx771 power 9.9998E+99 0.5 -> 9.99990000E+49 Inexact Rounded +pwsx772 power 9.9999E+99 0.5 -> 9.99995000E+49 Inexact Rounded +pwsx773 power 9.99991E+99 0.5 -> 9.99995500E+49 Inexact Rounded +pwsx774 power 9.99994E+99 0.5 -> 9.99997000E+49 Inexact Rounded +pwsx775 power 9.99995E+99 0.5 -> 9.99997500E+49 Inexact Rounded +pwsx776 power 9.99999E+99 0.5 -> 9.99999500E+49 Inexact Rounded +precision: 20 +pwsx780 power 9.9997E+99 0.5 -> '9.9998499988749831247E+49' Inexact Rounded +pwsx781 power 9.9998E+99 0.5 -> '9.9998999994999949999E+49' Inexact Rounded +pwsx782 power 9.9999E+99 0.5 -> '9.9999499998749993750E+49' Inexact Rounded +pwsx783 power 9.99991E+99 0.5 -> '9.9999549998987495444E+49' Inexact Rounded +pwsx784 power 9.99994E+99 0.5 -> '9.9999699999549998650E+49' Inexact Rounded +pwsx785 power 9.99995E+99 0.5 -> '9.9999749999687499219E+49' Inexact Rounded +pwsx786 power 9.99999E+99 0.5 -> '9.9999949999987499994E+49' Inexact Rounded + +-- subnormals and underflows [these can only result when eMax is < digits+1] +-- Etiny = -(Emax + (precision-1)) +-- start with subnormal operands and normal results +maxexponent: 9 +minexponent: -9 +precision: 9 -- Etiny=-17 +pwsx800 power 1E-17 0.5 -> 3.16227766E-9 Inexact Rounded +pwsx801 power 10E-17 0.5 -> 1.00000000E-8 Inexact Rounded +precision: 10 -- Etiny=-18 +pwsx802 power 10E-18 0.5 -> 3.162277660E-9 Inexact Rounded +pwsx803 power 1E-18 0.5 -> 1.000000000E-9 Inexact Rounded + +precision: 11 -- Etiny=-19 +pwsx804 power 1E-19 0.5 -> 3.162277660E-10 Underflow Subnormal Inexact Rounded +-- The next test should be skipped for decNumber +pwsx805 power 10E-19 0.5 -> 1.0000000000E-9 Inexact Rounded +precision: 12 -- Etiny=-20 +pwsx806 power 10E-20 0.5 -> 3.1622776602E-10 Underflow Subnormal Inexact Rounded +pwsx807 power 1E-20 0.5 -> 1.0000000000E-10 Underflow Subnormal Inexact Rounded + +precision: 13 -- Etiny=-21 +pwsx808 power 1E-21 0.5 -> 3.1622776602E-11 Underflow Subnormal Inexact Rounded +pwsx809 power 10E-21 0.5 -> 1.00000000000E-10 Underflow Subnormal Inexact Rounded +precision: 14 -- Etiny=-22 +pwsx810 power 1E-21 0.5 -> 3.16227766017E-11 Underflow Subnormal Inexact Rounded +pwsx811 power 10E-22 0.5 -> 3.16227766017E-11 Underflow Subnormal Inexact Rounded +pwsx812 power 1E-22 0.5 -> 1.00000000000E-11 Underflow Subnormal Inexact Rounded + + +-- special values +maxexponent: 999 +minexponent: -999 +pwsx820 power Inf 0.5 -> Infinity +pwsx821 power -Inf 0.5 -> NaN Invalid_operation +pwsx822 power NaN 0.5 -> NaN +pwsx823 power sNaN 0.5 -> NaN Invalid_operation +-- propagating NaNs +pwsx824 power sNaN123 0.5 -> NaN123 Invalid_operation +pwsx825 power -sNaN321 0.5 -> -NaN321 Invalid_operation +pwsx826 power NaN456 0.5 -> NaN456 +pwsx827 power -NaN654 0.5 -> -NaN654 +pwsx828 power NaN1 0.5 -> NaN1 + +-- Null test +pwsx900 power # 0.5 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/rotate.decTest b/Lib/test/decimaltestdata/rotate.decTest index 12db821317..81ade79c22 100644 --- a/Lib/test/decimaltestdata/rotate.decTest +++ b/Lib/test/decimaltestdata/rotate.decTest @@ -1,247 +1,247 @@ -------------------------------------------------------------------------
--- rotate.decTest -- rotate coefficient left or right --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-extended: 1
-precision: 9
-rounding: half_up
-maxExponent: 999
-minExponent: -999
-
--- Sanity check
-rotx001 rotate 0 0 -> 0
-rotx002 rotate 0 2 -> 0
-rotx003 rotate 1 2 -> 100
-rotx004 rotate 34 8 -> 400000003
-rotx005 rotate 1 9 -> 1
-rotx006 rotate 1 -1 -> 100000000
-rotx007 rotate 123456789 -1 -> 912345678
-rotx008 rotate 123456789 -8 -> 234567891
-rotx009 rotate 123456789 -9 -> 123456789
-rotx010 rotate 0 -2 -> 0
-
--- rhs must be an integer
-rotx011 rotate 1 1.5 -> NaN Invalid_operation
-rotx012 rotate 1 1.0 -> NaN Invalid_operation
-rotx013 rotate 1 0.1 -> NaN Invalid_operation
-rotx014 rotate 1 0.0 -> NaN Invalid_operation
-rotx015 rotate 1 1E+1 -> NaN Invalid_operation
-rotx016 rotate 1 1E+99 -> NaN Invalid_operation
-rotx017 rotate 1 Inf -> NaN Invalid_operation
-rotx018 rotate 1 -Inf -> NaN Invalid_operation
--- and |rhs| <= precision
-rotx020 rotate 1 -1000 -> NaN Invalid_operation
-rotx021 rotate 1 -10 -> NaN Invalid_operation
-rotx022 rotate 1 10 -> NaN Invalid_operation
-rotx023 rotate 1 1000 -> NaN Invalid_operation
-
--- full pattern
-rotx030 rotate 123456789 -9 -> 123456789
-rotx031 rotate 123456789 -8 -> 234567891
-rotx032 rotate 123456789 -7 -> 345678912
-rotx033 rotate 123456789 -6 -> 456789123
-rotx034 rotate 123456789 -5 -> 567891234
-rotx035 rotate 123456789 -4 -> 678912345
-rotx036 rotate 123456789 -3 -> 789123456
-rotx037 rotate 123456789 -2 -> 891234567
-rotx038 rotate 123456789 -1 -> 912345678
-rotx039 rotate 123456789 -0 -> 123456789
-rotx040 rotate 123456789 +0 -> 123456789
-rotx041 rotate 123456789 +1 -> 234567891
-rotx042 rotate 123456789 +2 -> 345678912
-rotx043 rotate 123456789 +3 -> 456789123
-rotx044 rotate 123456789 +4 -> 567891234
-rotx045 rotate 123456789 +5 -> 678912345
-rotx046 rotate 123456789 +6 -> 789123456
-rotx047 rotate 123456789 +7 -> 891234567
-rotx048 rotate 123456789 +8 -> 912345678
-rotx049 rotate 123456789 +9 -> 123456789
-
--- zeros
-rotx060 rotate 0E-10 +9 -> 0E-10
-rotx061 rotate 0E-10 -9 -> 0E-10
-rotx062 rotate 0.000 +9 -> 0.000
-rotx063 rotate 0.000 -9 -> 0.000
-rotx064 rotate 0E+10 +9 -> 0E+10
-rotx065 rotate 0E+10 -9 -> 0E+10
-rotx066 rotate -0E-10 +9 -> -0E-10
-rotx067 rotate -0E-10 -9 -> -0E-10
-rotx068 rotate -0.000 +9 -> -0.000
-rotx069 rotate -0.000 -9 -> -0.000
-rotx070 rotate -0E+10 +9 -> -0E+10
-rotx071 rotate -0E+10 -9 -> -0E+10
-
--- Nmax, Nmin, Ntiny
-rotx141 rotate 9.99999999E+999 -1 -> 9.99999999E+999
-rotx142 rotate 9.99999999E+999 -8 -> 9.99999999E+999
-rotx143 rotate 9.99999999E+999 1 -> 9.99999999E+999
-rotx144 rotate 9.99999999E+999 8 -> 9.99999999E+999
-rotx145 rotate 1E-999 -1 -> 1.00000000E-991
-rotx146 rotate 1E-999 -8 -> 1.0E-998
-rotx147 rotate 1E-999 1 -> 1.0E-998
-rotx148 rotate 1E-999 8 -> 1.00000000E-991
-rotx151 rotate 1.00000000E-999 -1 -> 1.0000000E-1000
-rotx152 rotate 1.00000000E-999 -8 -> 1E-1007
-rotx153 rotate 1.00000000E-999 1 -> 1E-1007
-rotx154 rotate 1.00000000E-999 8 -> 1.0000000E-1000
-rotx155 rotate 9.00000000E-999 -1 -> 9.0000000E-1000
-rotx156 rotate 9.00000000E-999 -8 -> 9E-1007
-rotx157 rotate 9.00000000E-999 1 -> 9E-1007
-rotx158 rotate 9.00000000E-999 8 -> 9.0000000E-1000
-rotx160 rotate 1E-1007 -1 -> 1.00000000E-999
-rotx161 rotate 1E-1007 -8 -> 1.0E-1006
-rotx162 rotate 1E-1007 1 -> 1.0E-1006
-rotx163 rotate 1E-1007 8 -> 1.00000000E-999
--- negatives
-rotx171 rotate -9.99999999E+999 -1 -> -9.99999999E+999
-rotx172 rotate -9.99999999E+999 -8 -> -9.99999999E+999
-rotx173 rotate -9.99999999E+999 1 -> -9.99999999E+999
-rotx174 rotate -9.99999999E+999 8 -> -9.99999999E+999
-rotx175 rotate -1E-999 -1 -> -1.00000000E-991
-rotx176 rotate -1E-999 -8 -> -1.0E-998
-rotx177 rotate -1E-999 1 -> -1.0E-998
-rotx178 rotate -1E-999 8 -> -1.00000000E-991
-rotx181 rotate -1.00000000E-999 -1 -> -1.0000000E-1000
-rotx182 rotate -1.00000000E-999 -8 -> -1E-1007
-rotx183 rotate -1.00000000E-999 1 -> -1E-1007
-rotx184 rotate -1.00000000E-999 8 -> -1.0000000E-1000
-rotx185 rotate -9.00000000E-999 -1 -> -9.0000000E-1000
-rotx186 rotate -9.00000000E-999 -8 -> -9E-1007
-rotx187 rotate -9.00000000E-999 1 -> -9E-1007
-rotx188 rotate -9.00000000E-999 8 -> -9.0000000E-1000
-rotx190 rotate -1E-1007 -1 -> -1.00000000E-999
-rotx191 rotate -1E-1007 -8 -> -1.0E-1006
-rotx192 rotate -1E-1007 1 -> -1.0E-1006
-rotx193 rotate -1E-1007 8 -> -1.00000000E-999
-
--- more negatives (of sanities)
-rotx201 rotate -0 0 -> -0
-rotx202 rotate -0 2 -> -0
-rotx203 rotate -1 2 -> -100
-rotx204 rotate -1 8 -> -100000000
-rotx205 rotate -1 9 -> -1
-rotx206 rotate -1 -1 -> -100000000
-rotx207 rotate -123456789 -1 -> -912345678
-rotx208 rotate -123456789 -8 -> -234567891
-rotx209 rotate -123456789 -9 -> -123456789
-rotx210 rotate -0 -2 -> -0
-
--- Specials; NaNs are handled as usual
-rotx781 rotate -Inf -8 -> -Infinity
-rotx782 rotate -Inf -1 -> -Infinity
-rotx783 rotate -Inf -0 -> -Infinity
-rotx784 rotate -Inf 0 -> -Infinity
-rotx785 rotate -Inf 1 -> -Infinity
-rotx786 rotate -Inf 8 -> -Infinity
-rotx787 rotate -1000 -Inf -> NaN Invalid_operation
-rotx788 rotate -Inf -Inf -> NaN Invalid_operation
-rotx789 rotate -1 -Inf -> NaN Invalid_operation
-rotx790 rotate -0 -Inf -> NaN Invalid_operation
-rotx791 rotate 0 -Inf -> NaN Invalid_operation
-rotx792 rotate 1 -Inf -> NaN Invalid_operation
-rotx793 rotate 1000 -Inf -> NaN Invalid_operation
-rotx794 rotate Inf -Inf -> NaN Invalid_operation
-
-rotx800 rotate Inf -Inf -> NaN Invalid_operation
-rotx801 rotate Inf -8 -> Infinity
-rotx802 rotate Inf -1 -> Infinity
-rotx803 rotate Inf -0 -> Infinity
-rotx804 rotate Inf 0 -> Infinity
-rotx805 rotate Inf 1 -> Infinity
-rotx806 rotate Inf 8 -> Infinity
-rotx807 rotate Inf Inf -> NaN Invalid_operation
-rotx808 rotate -1000 Inf -> NaN Invalid_operation
-rotx809 rotate -Inf Inf -> NaN Invalid_operation
-rotx810 rotate -1 Inf -> NaN Invalid_operation
-rotx811 rotate -0 Inf -> NaN Invalid_operation
-rotx812 rotate 0 Inf -> NaN Invalid_operation
-rotx813 rotate 1 Inf -> NaN Invalid_operation
-rotx814 rotate 1000 Inf -> NaN Invalid_operation
-rotx815 rotate Inf Inf -> NaN Invalid_operation
-
-rotx821 rotate NaN -Inf -> NaN
-rotx822 rotate NaN -1000 -> NaN
-rotx823 rotate NaN -1 -> NaN
-rotx824 rotate NaN -0 -> NaN
-rotx825 rotate NaN 0 -> NaN
-rotx826 rotate NaN 1 -> NaN
-rotx827 rotate NaN 1000 -> NaN
-rotx828 rotate NaN Inf -> NaN
-rotx829 rotate NaN NaN -> NaN
-rotx830 rotate -Inf NaN -> NaN
-rotx831 rotate -1000 NaN -> NaN
-rotx832 rotate -1 NaN -> NaN
-rotx833 rotate -0 NaN -> NaN
-rotx834 rotate 0 NaN -> NaN
-rotx835 rotate 1 NaN -> NaN
-rotx836 rotate 1000 NaN -> NaN
-rotx837 rotate Inf NaN -> NaN
-
-
-
-rotx841 rotate sNaN -Inf -> NaN Invalid_operation
-rotx842 rotate sNaN -1000 -> NaN Invalid_operation
-rotx843 rotate sNaN -1 -> NaN Invalid_operation
-rotx844 rotate sNaN -0 -> NaN Invalid_operation
-rotx845 rotate sNaN 0 -> NaN Invalid_operation
-rotx846 rotate sNaN 1 -> NaN Invalid_operation
-rotx847 rotate sNaN 1000 -> NaN Invalid_operation
-rotx848 rotate sNaN NaN -> NaN Invalid_operation
-rotx849 rotate sNaN sNaN -> NaN Invalid_operation
-rotx850 rotate NaN sNaN -> NaN Invalid_operation
-rotx851 rotate -Inf sNaN -> NaN Invalid_operation
-rotx852 rotate -1000 sNaN -> NaN Invalid_operation
-rotx853 rotate -1 sNaN -> NaN Invalid_operation
-rotx854 rotate -0 sNaN -> NaN Invalid_operation
-rotx855 rotate 0 sNaN -> NaN Invalid_operation
-rotx856 rotate 1 sNaN -> NaN Invalid_operation
-rotx857 rotate 1000 sNaN -> NaN Invalid_operation
-rotx858 rotate Inf sNaN -> NaN Invalid_operation
-rotx859 rotate NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-rotx861 rotate NaN1 -Inf -> NaN1
-rotx862 rotate +NaN2 -1000 -> NaN2
-rotx863 rotate NaN3 1000 -> NaN3
-rotx864 rotate NaN4 Inf -> NaN4
-rotx865 rotate NaN5 +NaN6 -> NaN5
-rotx866 rotate -Inf NaN7 -> NaN7
-rotx867 rotate -1000 NaN8 -> NaN8
-rotx868 rotate 1000 NaN9 -> NaN9
-rotx869 rotate Inf +NaN10 -> NaN10
-rotx871 rotate sNaN11 -Inf -> NaN11 Invalid_operation
-rotx872 rotate sNaN12 -1000 -> NaN12 Invalid_operation
-rotx873 rotate sNaN13 1000 -> NaN13 Invalid_operation
-rotx874 rotate sNaN14 NaN17 -> NaN14 Invalid_operation
-rotx875 rotate sNaN15 sNaN18 -> NaN15 Invalid_operation
-rotx876 rotate NaN16 sNaN19 -> NaN19 Invalid_operation
-rotx877 rotate -Inf +sNaN20 -> NaN20 Invalid_operation
-rotx878 rotate -1000 sNaN21 -> NaN21 Invalid_operation
-rotx879 rotate 1000 sNaN22 -> NaN22 Invalid_operation
-rotx880 rotate Inf sNaN23 -> NaN23 Invalid_operation
-rotx881 rotate +NaN25 +sNaN24 -> NaN24 Invalid_operation
-rotx882 rotate -NaN26 NaN28 -> -NaN26
-rotx883 rotate -sNaN27 sNaN29 -> -NaN27 Invalid_operation
-rotx884 rotate 1000 -NaN30 -> -NaN30
-rotx885 rotate 1000 -sNaN31 -> -NaN31 Invalid_operation
-
--- payload decapitate
-precision: 5
-rotx886 rotate 11 -sNaN1234567890 -> -NaN67890 Invalid_operation
+------------------------------------------------------------------------ +-- rotate.decTest -- rotate coefficient left or right -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +extended: 1 +precision: 9 +rounding: half_up +maxExponent: 999 +minExponent: -999 + +-- Sanity check +rotx001 rotate 0 0 -> 0 +rotx002 rotate 0 2 -> 0 +rotx003 rotate 1 2 -> 100 +rotx004 rotate 34 8 -> 400000003 +rotx005 rotate 1 9 -> 1 +rotx006 rotate 1 -1 -> 100000000 +rotx007 rotate 123456789 -1 -> 912345678 +rotx008 rotate 123456789 -8 -> 234567891 +rotx009 rotate 123456789 -9 -> 123456789 +rotx010 rotate 0 -2 -> 0 + +-- rhs must be an integer +rotx011 rotate 1 1.5 -> NaN Invalid_operation +rotx012 rotate 1 1.0 -> NaN Invalid_operation +rotx013 rotate 1 0.1 -> NaN Invalid_operation +rotx014 rotate 1 0.0 -> NaN Invalid_operation +rotx015 rotate 1 1E+1 -> NaN Invalid_operation +rotx016 rotate 1 1E+99 -> NaN Invalid_operation +rotx017 rotate 1 Inf -> NaN Invalid_operation +rotx018 rotate 1 -Inf -> NaN Invalid_operation +-- and |rhs| <= precision +rotx020 rotate 1 -1000 -> NaN Invalid_operation +rotx021 rotate 1 -10 -> NaN Invalid_operation +rotx022 rotate 1 10 -> NaN Invalid_operation +rotx023 rotate 1 1000 -> NaN Invalid_operation + +-- full pattern +rotx030 rotate 123456789 -9 -> 123456789 +rotx031 rotate 123456789 -8 -> 234567891 +rotx032 rotate 123456789 -7 -> 345678912 +rotx033 rotate 123456789 -6 -> 456789123 +rotx034 rotate 123456789 -5 -> 567891234 +rotx035 rotate 123456789 -4 -> 678912345 +rotx036 rotate 123456789 -3 -> 789123456 +rotx037 rotate 123456789 -2 -> 891234567 +rotx038 rotate 123456789 -1 -> 912345678 +rotx039 rotate 123456789 -0 -> 123456789 +rotx040 rotate 123456789 +0 -> 123456789 +rotx041 rotate 123456789 +1 -> 234567891 +rotx042 rotate 123456789 +2 -> 345678912 +rotx043 rotate 123456789 +3 -> 456789123 +rotx044 rotate 123456789 +4 -> 567891234 +rotx045 rotate 123456789 +5 -> 678912345 +rotx046 rotate 123456789 +6 -> 789123456 +rotx047 rotate 123456789 +7 -> 891234567 +rotx048 rotate 123456789 +8 -> 912345678 +rotx049 rotate 123456789 +9 -> 123456789 + +-- zeros +rotx060 rotate 0E-10 +9 -> 0E-10 +rotx061 rotate 0E-10 -9 -> 0E-10 +rotx062 rotate 0.000 +9 -> 0.000 +rotx063 rotate 0.000 -9 -> 0.000 +rotx064 rotate 0E+10 +9 -> 0E+10 +rotx065 rotate 0E+10 -9 -> 0E+10 +rotx066 rotate -0E-10 +9 -> -0E-10 +rotx067 rotate -0E-10 -9 -> -0E-10 +rotx068 rotate -0.000 +9 -> -0.000 +rotx069 rotate -0.000 -9 -> -0.000 +rotx070 rotate -0E+10 +9 -> -0E+10 +rotx071 rotate -0E+10 -9 -> -0E+10 + +-- Nmax, Nmin, Ntiny +rotx141 rotate 9.99999999E+999 -1 -> 9.99999999E+999 +rotx142 rotate 9.99999999E+999 -8 -> 9.99999999E+999 +rotx143 rotate 9.99999999E+999 1 -> 9.99999999E+999 +rotx144 rotate 9.99999999E+999 8 -> 9.99999999E+999 +rotx145 rotate 1E-999 -1 -> 1.00000000E-991 +rotx146 rotate 1E-999 -8 -> 1.0E-998 +rotx147 rotate 1E-999 1 -> 1.0E-998 +rotx148 rotate 1E-999 8 -> 1.00000000E-991 +rotx151 rotate 1.00000000E-999 -1 -> 1.0000000E-1000 +rotx152 rotate 1.00000000E-999 -8 -> 1E-1007 +rotx153 rotate 1.00000000E-999 1 -> 1E-1007 +rotx154 rotate 1.00000000E-999 8 -> 1.0000000E-1000 +rotx155 rotate 9.00000000E-999 -1 -> 9.0000000E-1000 +rotx156 rotate 9.00000000E-999 -8 -> 9E-1007 +rotx157 rotate 9.00000000E-999 1 -> 9E-1007 +rotx158 rotate 9.00000000E-999 8 -> 9.0000000E-1000 +rotx160 rotate 1E-1007 -1 -> 1.00000000E-999 +rotx161 rotate 1E-1007 -8 -> 1.0E-1006 +rotx162 rotate 1E-1007 1 -> 1.0E-1006 +rotx163 rotate 1E-1007 8 -> 1.00000000E-999 +-- negatives +rotx171 rotate -9.99999999E+999 -1 -> -9.99999999E+999 +rotx172 rotate -9.99999999E+999 -8 -> -9.99999999E+999 +rotx173 rotate -9.99999999E+999 1 -> -9.99999999E+999 +rotx174 rotate -9.99999999E+999 8 -> -9.99999999E+999 +rotx175 rotate -1E-999 -1 -> -1.00000000E-991 +rotx176 rotate -1E-999 -8 -> -1.0E-998 +rotx177 rotate -1E-999 1 -> -1.0E-998 +rotx178 rotate -1E-999 8 -> -1.00000000E-991 +rotx181 rotate -1.00000000E-999 -1 -> -1.0000000E-1000 +rotx182 rotate -1.00000000E-999 -8 -> -1E-1007 +rotx183 rotate -1.00000000E-999 1 -> -1E-1007 +rotx184 rotate -1.00000000E-999 8 -> -1.0000000E-1000 +rotx185 rotate -9.00000000E-999 -1 -> -9.0000000E-1000 +rotx186 rotate -9.00000000E-999 -8 -> -9E-1007 +rotx187 rotate -9.00000000E-999 1 -> -9E-1007 +rotx188 rotate -9.00000000E-999 8 -> -9.0000000E-1000 +rotx190 rotate -1E-1007 -1 -> -1.00000000E-999 +rotx191 rotate -1E-1007 -8 -> -1.0E-1006 +rotx192 rotate -1E-1007 1 -> -1.0E-1006 +rotx193 rotate -1E-1007 8 -> -1.00000000E-999 + +-- more negatives (of sanities) +rotx201 rotate -0 0 -> -0 +rotx202 rotate -0 2 -> -0 +rotx203 rotate -1 2 -> -100 +rotx204 rotate -1 8 -> -100000000 +rotx205 rotate -1 9 -> -1 +rotx206 rotate -1 -1 -> -100000000 +rotx207 rotate -123456789 -1 -> -912345678 +rotx208 rotate -123456789 -8 -> -234567891 +rotx209 rotate -123456789 -9 -> -123456789 +rotx210 rotate -0 -2 -> -0 + +-- Specials; NaNs are handled as usual +rotx781 rotate -Inf -8 -> -Infinity +rotx782 rotate -Inf -1 -> -Infinity +rotx783 rotate -Inf -0 -> -Infinity +rotx784 rotate -Inf 0 -> -Infinity +rotx785 rotate -Inf 1 -> -Infinity +rotx786 rotate -Inf 8 -> -Infinity +rotx787 rotate -1000 -Inf -> NaN Invalid_operation +rotx788 rotate -Inf -Inf -> NaN Invalid_operation +rotx789 rotate -1 -Inf -> NaN Invalid_operation +rotx790 rotate -0 -Inf -> NaN Invalid_operation +rotx791 rotate 0 -Inf -> NaN Invalid_operation +rotx792 rotate 1 -Inf -> NaN Invalid_operation +rotx793 rotate 1000 -Inf -> NaN Invalid_operation +rotx794 rotate Inf -Inf -> NaN Invalid_operation + +rotx800 rotate Inf -Inf -> NaN Invalid_operation +rotx801 rotate Inf -8 -> Infinity +rotx802 rotate Inf -1 -> Infinity +rotx803 rotate Inf -0 -> Infinity +rotx804 rotate Inf 0 -> Infinity +rotx805 rotate Inf 1 -> Infinity +rotx806 rotate Inf 8 -> Infinity +rotx807 rotate Inf Inf -> NaN Invalid_operation +rotx808 rotate -1000 Inf -> NaN Invalid_operation +rotx809 rotate -Inf Inf -> NaN Invalid_operation +rotx810 rotate -1 Inf -> NaN Invalid_operation +rotx811 rotate -0 Inf -> NaN Invalid_operation +rotx812 rotate 0 Inf -> NaN Invalid_operation +rotx813 rotate 1 Inf -> NaN Invalid_operation +rotx814 rotate 1000 Inf -> NaN Invalid_operation +rotx815 rotate Inf Inf -> NaN Invalid_operation + +rotx821 rotate NaN -Inf -> NaN +rotx822 rotate NaN -1000 -> NaN +rotx823 rotate NaN -1 -> NaN +rotx824 rotate NaN -0 -> NaN +rotx825 rotate NaN 0 -> NaN +rotx826 rotate NaN 1 -> NaN +rotx827 rotate NaN 1000 -> NaN +rotx828 rotate NaN Inf -> NaN +rotx829 rotate NaN NaN -> NaN +rotx830 rotate -Inf NaN -> NaN +rotx831 rotate -1000 NaN -> NaN +rotx832 rotate -1 NaN -> NaN +rotx833 rotate -0 NaN -> NaN +rotx834 rotate 0 NaN -> NaN +rotx835 rotate 1 NaN -> NaN +rotx836 rotate 1000 NaN -> NaN +rotx837 rotate Inf NaN -> NaN + + + +rotx841 rotate sNaN -Inf -> NaN Invalid_operation +rotx842 rotate sNaN -1000 -> NaN Invalid_operation +rotx843 rotate sNaN -1 -> NaN Invalid_operation +rotx844 rotate sNaN -0 -> NaN Invalid_operation +rotx845 rotate sNaN 0 -> NaN Invalid_operation +rotx846 rotate sNaN 1 -> NaN Invalid_operation +rotx847 rotate sNaN 1000 -> NaN Invalid_operation +rotx848 rotate sNaN NaN -> NaN Invalid_operation +rotx849 rotate sNaN sNaN -> NaN Invalid_operation +rotx850 rotate NaN sNaN -> NaN Invalid_operation +rotx851 rotate -Inf sNaN -> NaN Invalid_operation +rotx852 rotate -1000 sNaN -> NaN Invalid_operation +rotx853 rotate -1 sNaN -> NaN Invalid_operation +rotx854 rotate -0 sNaN -> NaN Invalid_operation +rotx855 rotate 0 sNaN -> NaN Invalid_operation +rotx856 rotate 1 sNaN -> NaN Invalid_operation +rotx857 rotate 1000 sNaN -> NaN Invalid_operation +rotx858 rotate Inf sNaN -> NaN Invalid_operation +rotx859 rotate NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +rotx861 rotate NaN1 -Inf -> NaN1 +rotx862 rotate +NaN2 -1000 -> NaN2 +rotx863 rotate NaN3 1000 -> NaN3 +rotx864 rotate NaN4 Inf -> NaN4 +rotx865 rotate NaN5 +NaN6 -> NaN5 +rotx866 rotate -Inf NaN7 -> NaN7 +rotx867 rotate -1000 NaN8 -> NaN8 +rotx868 rotate 1000 NaN9 -> NaN9 +rotx869 rotate Inf +NaN10 -> NaN10 +rotx871 rotate sNaN11 -Inf -> NaN11 Invalid_operation +rotx872 rotate sNaN12 -1000 -> NaN12 Invalid_operation +rotx873 rotate sNaN13 1000 -> NaN13 Invalid_operation +rotx874 rotate sNaN14 NaN17 -> NaN14 Invalid_operation +rotx875 rotate sNaN15 sNaN18 -> NaN15 Invalid_operation +rotx876 rotate NaN16 sNaN19 -> NaN19 Invalid_operation +rotx877 rotate -Inf +sNaN20 -> NaN20 Invalid_operation +rotx878 rotate -1000 sNaN21 -> NaN21 Invalid_operation +rotx879 rotate 1000 sNaN22 -> NaN22 Invalid_operation +rotx880 rotate Inf sNaN23 -> NaN23 Invalid_operation +rotx881 rotate +NaN25 +sNaN24 -> NaN24 Invalid_operation +rotx882 rotate -NaN26 NaN28 -> -NaN26 +rotx883 rotate -sNaN27 sNaN29 -> -NaN27 Invalid_operation +rotx884 rotate 1000 -NaN30 -> -NaN30 +rotx885 rotate 1000 -sNaN31 -> -NaN31 Invalid_operation + +-- payload decapitate +precision: 5 +rotx886 rotate 11 -sNaN1234567890 -> -NaN67890 Invalid_operation diff --git a/Lib/test/decimaltestdata/scaleb.decTest b/Lib/test/decimaltestdata/scaleb.decTest index 372e3dd4c3..04a65d6eae 100644 --- a/Lib/test/decimaltestdata/scaleb.decTest +++ b/Lib/test/decimaltestdata/scaleb.decTest @@ -1,209 +1,209 @@ -------------------------------------------------------------------------
--- scaleb.decTest -- scale a number by powers of 10 --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-extended: 1
-precision: 9
-rounding: half_up
-maxExponent: 999
-minExponent: -999
-
--- Max |rhs| is 2*(999+9) = 2016
-
--- Sanity checks
-scbx001 scaleb 7.50 10 -> 7.50E+10
-scbx002 scaleb 7.50 3 -> 7.50E+3
-scbx003 scaleb 7.50 2 -> 750
-scbx004 scaleb 7.50 1 -> 75.0
-scbx005 scaleb 7.50 0 -> 7.50
-scbx006 scaleb 7.50 -1 -> 0.750
-scbx007 scaleb 7.50 -2 -> 0.0750
-scbx008 scaleb 7.50 -10 -> 7.50E-10
-scbx009 scaleb -7.50 3 -> -7.50E+3
-scbx010 scaleb -7.50 2 -> -750
-scbx011 scaleb -7.50 1 -> -75.0
-scbx012 scaleb -7.50 0 -> -7.50
-scbx013 scaleb -7.50 -1 -> -0.750
-
--- Infinities
-scbx014 scaleb Infinity 1 -> Infinity
-scbx015 scaleb -Infinity 2 -> -Infinity
-scbx016 scaleb Infinity -1 -> Infinity
-scbx017 scaleb -Infinity -2 -> -Infinity
-
--- Next two are somewhat undefined in 754r; treat as non-integer
-scbx018 scaleb 10 Infinity -> NaN Invalid_operation
-scbx019 scaleb 10 -Infinity -> NaN Invalid_operation
-
--- NaNs are undefined in 754r; assume usual processing
--- NaNs, 0 payload
-scbx021 scaleb NaN 1 -> NaN
-scbx022 scaleb -NaN -1 -> -NaN
-scbx023 scaleb sNaN 1 -> NaN Invalid_operation
-scbx024 scaleb -sNaN 1 -> -NaN Invalid_operation
-scbx025 scaleb 4 NaN -> NaN
-scbx026 scaleb -Inf -NaN -> -NaN
-scbx027 scaleb 4 sNaN -> NaN Invalid_operation
-scbx028 scaleb Inf -sNaN -> -NaN Invalid_operation
-
--- non-integer RHS
-scbx030 scaleb 1.23 1 -> 12.3
-scbx031 scaleb 1.23 1.00 -> NaN Invalid_operation
-scbx032 scaleb 1.23 1.1 -> NaN Invalid_operation
-scbx033 scaleb 1.23 1.01 -> NaN Invalid_operation
-scbx034 scaleb 1.23 0.01 -> NaN Invalid_operation
-scbx035 scaleb 1.23 0.11 -> NaN Invalid_operation
-scbx036 scaleb 1.23 0.999999999 -> NaN Invalid_operation
-scbx037 scaleb 1.23 -1 -> 0.123
-scbx038 scaleb 1.23 -1.00 -> NaN Invalid_operation
-scbx039 scaleb 1.23 -1.1 -> NaN Invalid_operation
-scbx040 scaleb 1.23 -1.01 -> NaN Invalid_operation
-scbx041 scaleb 1.23 -0.01 -> NaN Invalid_operation
-scbx042 scaleb 1.23 -0.11 -> NaN Invalid_operation
-scbx043 scaleb 1.23 -0.999999999 -> NaN Invalid_operation
-scbx044 scaleb 1.23 0.1 -> NaN Invalid_operation
-scbx045 scaleb 1.23 1E+1 -> NaN Invalid_operation
-scbx046 scaleb 1.23 1.1234E+6 -> NaN Invalid_operation
-scbx047 scaleb 1.23 1.123E+4 -> NaN Invalid_operation
-
-
-scbx120 scaleb 1.23 2015 -> Infinity Overflow Inexact Rounded
-scbx121 scaleb 1.23 2016 -> Infinity Overflow Inexact Rounded
-scbx122 scaleb 1.23 2017 -> NaN Invalid_operation
-scbx123 scaleb 1.23 2018 -> NaN Invalid_operation
-scbx124 scaleb 1.23 -2015 -> 0E-1007 Underflow Subnormal Inexact Rounded Clamped
-scbx125 scaleb 1.23 -2016 -> 0E-1007 Underflow Subnormal Inexact Rounded Clamped
-scbx126 scaleb 1.23 -2017 -> NaN Invalid_operation
-scbx127 scaleb 1.23 -2018 -> NaN Invalid_operation
-
--- NaNs, non-0 payload
--- propagating NaNs
-scbx861 scaleb NaN01 -Inf -> NaN1
-scbx862 scaleb -NaN02 -1000 -> -NaN2
-scbx863 scaleb NaN03 1000 -> NaN3
-scbx864 scaleb NaN04 Inf -> NaN4
-scbx865 scaleb NaN05 NaN61 -> NaN5
-scbx866 scaleb -Inf -NaN71 -> -NaN71
-scbx867 scaleb -1000 NaN81 -> NaN81
-scbx868 scaleb 1000 NaN91 -> NaN91
-scbx869 scaleb Inf NaN101 -> NaN101
-scbx871 scaleb sNaN011 -Inf -> NaN11 Invalid_operation
-scbx872 scaleb sNaN012 -1000 -> NaN12 Invalid_operation
-scbx873 scaleb -sNaN013 1000 -> -NaN13 Invalid_operation
-scbx874 scaleb sNaN014 NaN171 -> NaN14 Invalid_operation
-scbx875 scaleb sNaN015 sNaN181 -> NaN15 Invalid_operation
-scbx876 scaleb NaN016 sNaN191 -> NaN191 Invalid_operation
-scbx877 scaleb -Inf sNaN201 -> NaN201 Invalid_operation
-scbx878 scaleb -1000 sNaN211 -> NaN211 Invalid_operation
-scbx879 scaleb 1000 -sNaN221 -> -NaN221 Invalid_operation
-scbx880 scaleb Inf sNaN231 -> NaN231 Invalid_operation
-scbx881 scaleb NaN025 sNaN241 -> NaN241 Invalid_operation
-
--- finites
-scbx051 scaleb 7 -2 -> 0.07
-scbx052 scaleb -7 -2 -> -0.07
-scbx053 scaleb 75 -2 -> 0.75
-scbx054 scaleb -75 -2 -> -0.75
-scbx055 scaleb 7.50 -2 -> 0.0750
-scbx056 scaleb -7.50 -2 -> -0.0750
-scbx057 scaleb 7.500 -2 -> 0.07500
-scbx058 scaleb -7.500 -2 -> -0.07500
-scbx061 scaleb 7 -1 -> 0.7
-scbx062 scaleb -7 -1 -> -0.7
-scbx063 scaleb 75 -1 -> 7.5
-scbx064 scaleb -75 -1 -> -7.5
-scbx065 scaleb 7.50 -1 -> 0.750
-scbx066 scaleb -7.50 -1 -> -0.750
-scbx067 scaleb 7.500 -1 -> 0.7500
-scbx068 scaleb -7.500 -1 -> -0.7500
-scbx071 scaleb 7 0 -> 7
-scbx072 scaleb -7 0 -> -7
-scbx073 scaleb 75 0 -> 75
-scbx074 scaleb -75 0 -> -75
-scbx075 scaleb 7.50 0 -> 7.50
-scbx076 scaleb -7.50 0 -> -7.50
-scbx077 scaleb 7.500 0 -> 7.500
-scbx078 scaleb -7.500 0 -> -7.500
-scbx081 scaleb 7 1 -> 7E+1
-scbx082 scaleb -7 1 -> -7E+1
-scbx083 scaleb 75 1 -> 7.5E+2
-scbx084 scaleb -75 1 -> -7.5E+2
-scbx085 scaleb 7.50 1 -> 75.0
-scbx086 scaleb -7.50 1 -> -75.0
-scbx087 scaleb 7.500 1 -> 75.00
-scbx088 scaleb -7.500 1 -> -75.00
-scbx091 scaleb 7 2 -> 7E+2
-scbx092 scaleb -7 2 -> -7E+2
-scbx093 scaleb 75 2 -> 7.5E+3
-scbx094 scaleb -75 2 -> -7.5E+3
-scbx095 scaleb 7.50 2 -> 750
-scbx096 scaleb -7.50 2 -> -750
-scbx097 scaleb 7.500 2 -> 750.0
-scbx098 scaleb -7.500 2 -> -750.0
-
--- zeros
-scbx111 scaleb 0 1 -> 0E+1
-scbx112 scaleb -0 2 -> -0E+2
-scbx113 scaleb 0E+4 3 -> 0E+7
-scbx114 scaleb -0E+4 4 -> -0E+8
-scbx115 scaleb 0.0000 5 -> 0E+1
-scbx116 scaleb -0.0000 6 -> -0E+2
-scbx117 scaleb 0E-141 7 -> 0E-134
-scbx118 scaleb -0E-141 8 -> -0E-133
-
--- Nmax, Nmin, Ntiny
-scbx132 scaleb 9.99999999E+999 +999 -> Infinity Overflow Inexact Rounded
-scbx133 scaleb 9.99999999E+999 +10 -> Infinity Overflow Inexact Rounded
-scbx134 scaleb 9.99999999E+999 +1 -> Infinity Overflow Inexact Rounded
-scbx135 scaleb 9.99999999E+999 0 -> 9.99999999E+999
-scbx136 scaleb 9.99999999E+999 -1 -> 9.99999999E+998
-scbx137 scaleb 1E-999 +1 -> 1E-998
-scbx138 scaleb 1E-999 -0 -> 1E-999
-scbx139 scaleb 1E-999 -1 -> 1E-1000 Subnormal
-scbx140 scaleb 1.00000000E-999 +1 -> 1.00000000E-998
-scbx141 scaleb 1.00000000E-999 0 -> 1.00000000E-999
-scbx142 scaleb 1.00000000E-999 -1 -> 1.0000000E-1000 Subnormal Rounded
-scbx143 scaleb 1E-1007 +1 -> 1E-1006 Subnormal
-scbx144 scaleb 1E-1007 -0 -> 1E-1007 Subnormal
-scbx145 scaleb 1E-1007 -1 -> 0E-1007 Underflow Subnormal Inexact Rounded Clamped
-
-scbx150 scaleb -1E-1007 +1 -> -1E-1006 Subnormal
-scbx151 scaleb -1E-1007 -0 -> -1E-1007 Subnormal
-scbx152 scaleb -1E-1007 -1 -> -0E-1007 Underflow Subnormal Inexact Rounded Clamped
-scbx153 scaleb -1.00000000E-999 +1 -> -1.00000000E-998
-scbx154 scaleb -1.00000000E-999 +0 -> -1.00000000E-999
-scbx155 scaleb -1.00000000E-999 -1 -> -1.0000000E-1000 Subnormal Rounded
-scbx156 scaleb -1E-999 +1 -> -1E-998
-scbx157 scaleb -1E-999 -0 -> -1E-999
-scbx158 scaleb -1E-999 -1 -> -1E-1000 Subnormal
-scbx159 scaleb -9.99999999E+999 +1 -> -Infinity Overflow Inexact Rounded
-scbx160 scaleb -9.99999999E+999 +0 -> -9.99999999E+999
-scbx161 scaleb -9.99999999E+999 -1 -> -9.99999999E+998
-scbx162 scaleb -9E+999 +1 -> -Infinity Overflow Inexact Rounded
-scbx163 scaleb -1E+999 +1 -> -Infinity Overflow Inexact Rounded
-
--- Krah examples
-precision: 34
-maxExponent: 999999999
-minExponent: -999999999
--- integer overflow in 3.61 or earlier
-scbx164 scaleb 1E-999999999 -1200000000 -> NaN Invalid_operation
--- out of range
-scbx165 scaleb -1E-999999999 +1200000000 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- scaleb.decTest -- scale a number by powers of 10 -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +extended: 1 +precision: 9 +rounding: half_up +maxExponent: 999 +minExponent: -999 + +-- Max |rhs| is 2*(999+9) = 2016 + +-- Sanity checks +scbx001 scaleb 7.50 10 -> 7.50E+10 +scbx002 scaleb 7.50 3 -> 7.50E+3 +scbx003 scaleb 7.50 2 -> 750 +scbx004 scaleb 7.50 1 -> 75.0 +scbx005 scaleb 7.50 0 -> 7.50 +scbx006 scaleb 7.50 -1 -> 0.750 +scbx007 scaleb 7.50 -2 -> 0.0750 +scbx008 scaleb 7.50 -10 -> 7.50E-10 +scbx009 scaleb -7.50 3 -> -7.50E+3 +scbx010 scaleb -7.50 2 -> -750 +scbx011 scaleb -7.50 1 -> -75.0 +scbx012 scaleb -7.50 0 -> -7.50 +scbx013 scaleb -7.50 -1 -> -0.750 + +-- Infinities +scbx014 scaleb Infinity 1 -> Infinity +scbx015 scaleb -Infinity 2 -> -Infinity +scbx016 scaleb Infinity -1 -> Infinity +scbx017 scaleb -Infinity -2 -> -Infinity + +-- Next two are somewhat undefined in 754r; treat as non-integer +scbx018 scaleb 10 Infinity -> NaN Invalid_operation +scbx019 scaleb 10 -Infinity -> NaN Invalid_operation + +-- NaNs are undefined in 754r; assume usual processing +-- NaNs, 0 payload +scbx021 scaleb NaN 1 -> NaN +scbx022 scaleb -NaN -1 -> -NaN +scbx023 scaleb sNaN 1 -> NaN Invalid_operation +scbx024 scaleb -sNaN 1 -> -NaN Invalid_operation +scbx025 scaleb 4 NaN -> NaN +scbx026 scaleb -Inf -NaN -> -NaN +scbx027 scaleb 4 sNaN -> NaN Invalid_operation +scbx028 scaleb Inf -sNaN -> -NaN Invalid_operation + +-- non-integer RHS +scbx030 scaleb 1.23 1 -> 12.3 +scbx031 scaleb 1.23 1.00 -> NaN Invalid_operation +scbx032 scaleb 1.23 1.1 -> NaN Invalid_operation +scbx033 scaleb 1.23 1.01 -> NaN Invalid_operation +scbx034 scaleb 1.23 0.01 -> NaN Invalid_operation +scbx035 scaleb 1.23 0.11 -> NaN Invalid_operation +scbx036 scaleb 1.23 0.999999999 -> NaN Invalid_operation +scbx037 scaleb 1.23 -1 -> 0.123 +scbx038 scaleb 1.23 -1.00 -> NaN Invalid_operation +scbx039 scaleb 1.23 -1.1 -> NaN Invalid_operation +scbx040 scaleb 1.23 -1.01 -> NaN Invalid_operation +scbx041 scaleb 1.23 -0.01 -> NaN Invalid_operation +scbx042 scaleb 1.23 -0.11 -> NaN Invalid_operation +scbx043 scaleb 1.23 -0.999999999 -> NaN Invalid_operation +scbx044 scaleb 1.23 0.1 -> NaN Invalid_operation +scbx045 scaleb 1.23 1E+1 -> NaN Invalid_operation +scbx046 scaleb 1.23 1.1234E+6 -> NaN Invalid_operation +scbx047 scaleb 1.23 1.123E+4 -> NaN Invalid_operation + + +scbx120 scaleb 1.23 2015 -> Infinity Overflow Inexact Rounded +scbx121 scaleb 1.23 2016 -> Infinity Overflow Inexact Rounded +scbx122 scaleb 1.23 2017 -> NaN Invalid_operation +scbx123 scaleb 1.23 2018 -> NaN Invalid_operation +scbx124 scaleb 1.23 -2015 -> 0E-1007 Underflow Subnormal Inexact Rounded Clamped +scbx125 scaleb 1.23 -2016 -> 0E-1007 Underflow Subnormal Inexact Rounded Clamped +scbx126 scaleb 1.23 -2017 -> NaN Invalid_operation +scbx127 scaleb 1.23 -2018 -> NaN Invalid_operation + +-- NaNs, non-0 payload +-- propagating NaNs +scbx861 scaleb NaN01 -Inf -> NaN1 +scbx862 scaleb -NaN02 -1000 -> -NaN2 +scbx863 scaleb NaN03 1000 -> NaN3 +scbx864 scaleb NaN04 Inf -> NaN4 +scbx865 scaleb NaN05 NaN61 -> NaN5 +scbx866 scaleb -Inf -NaN71 -> -NaN71 +scbx867 scaleb -1000 NaN81 -> NaN81 +scbx868 scaleb 1000 NaN91 -> NaN91 +scbx869 scaleb Inf NaN101 -> NaN101 +scbx871 scaleb sNaN011 -Inf -> NaN11 Invalid_operation +scbx872 scaleb sNaN012 -1000 -> NaN12 Invalid_operation +scbx873 scaleb -sNaN013 1000 -> -NaN13 Invalid_operation +scbx874 scaleb sNaN014 NaN171 -> NaN14 Invalid_operation +scbx875 scaleb sNaN015 sNaN181 -> NaN15 Invalid_operation +scbx876 scaleb NaN016 sNaN191 -> NaN191 Invalid_operation +scbx877 scaleb -Inf sNaN201 -> NaN201 Invalid_operation +scbx878 scaleb -1000 sNaN211 -> NaN211 Invalid_operation +scbx879 scaleb 1000 -sNaN221 -> -NaN221 Invalid_operation +scbx880 scaleb Inf sNaN231 -> NaN231 Invalid_operation +scbx881 scaleb NaN025 sNaN241 -> NaN241 Invalid_operation + +-- finites +scbx051 scaleb 7 -2 -> 0.07 +scbx052 scaleb -7 -2 -> -0.07 +scbx053 scaleb 75 -2 -> 0.75 +scbx054 scaleb -75 -2 -> -0.75 +scbx055 scaleb 7.50 -2 -> 0.0750 +scbx056 scaleb -7.50 -2 -> -0.0750 +scbx057 scaleb 7.500 -2 -> 0.07500 +scbx058 scaleb -7.500 -2 -> -0.07500 +scbx061 scaleb 7 -1 -> 0.7 +scbx062 scaleb -7 -1 -> -0.7 +scbx063 scaleb 75 -1 -> 7.5 +scbx064 scaleb -75 -1 -> -7.5 +scbx065 scaleb 7.50 -1 -> 0.750 +scbx066 scaleb -7.50 -1 -> -0.750 +scbx067 scaleb 7.500 -1 -> 0.7500 +scbx068 scaleb -7.500 -1 -> -0.7500 +scbx071 scaleb 7 0 -> 7 +scbx072 scaleb -7 0 -> -7 +scbx073 scaleb 75 0 -> 75 +scbx074 scaleb -75 0 -> -75 +scbx075 scaleb 7.50 0 -> 7.50 +scbx076 scaleb -7.50 0 -> -7.50 +scbx077 scaleb 7.500 0 -> 7.500 +scbx078 scaleb -7.500 0 -> -7.500 +scbx081 scaleb 7 1 -> 7E+1 +scbx082 scaleb -7 1 -> -7E+1 +scbx083 scaleb 75 1 -> 7.5E+2 +scbx084 scaleb -75 1 -> -7.5E+2 +scbx085 scaleb 7.50 1 -> 75.0 +scbx086 scaleb -7.50 1 -> -75.0 +scbx087 scaleb 7.500 1 -> 75.00 +scbx088 scaleb -7.500 1 -> -75.00 +scbx091 scaleb 7 2 -> 7E+2 +scbx092 scaleb -7 2 -> -7E+2 +scbx093 scaleb 75 2 -> 7.5E+3 +scbx094 scaleb -75 2 -> -7.5E+3 +scbx095 scaleb 7.50 2 -> 750 +scbx096 scaleb -7.50 2 -> -750 +scbx097 scaleb 7.500 2 -> 750.0 +scbx098 scaleb -7.500 2 -> -750.0 + +-- zeros +scbx111 scaleb 0 1 -> 0E+1 +scbx112 scaleb -0 2 -> -0E+2 +scbx113 scaleb 0E+4 3 -> 0E+7 +scbx114 scaleb -0E+4 4 -> -0E+8 +scbx115 scaleb 0.0000 5 -> 0E+1 +scbx116 scaleb -0.0000 6 -> -0E+2 +scbx117 scaleb 0E-141 7 -> 0E-134 +scbx118 scaleb -0E-141 8 -> -0E-133 + +-- Nmax, Nmin, Ntiny +scbx132 scaleb 9.99999999E+999 +999 -> Infinity Overflow Inexact Rounded +scbx133 scaleb 9.99999999E+999 +10 -> Infinity Overflow Inexact Rounded +scbx134 scaleb 9.99999999E+999 +1 -> Infinity Overflow Inexact Rounded +scbx135 scaleb 9.99999999E+999 0 -> 9.99999999E+999 +scbx136 scaleb 9.99999999E+999 -1 -> 9.99999999E+998 +scbx137 scaleb 1E-999 +1 -> 1E-998 +scbx138 scaleb 1E-999 -0 -> 1E-999 +scbx139 scaleb 1E-999 -1 -> 1E-1000 Subnormal +scbx140 scaleb 1.00000000E-999 +1 -> 1.00000000E-998 +scbx141 scaleb 1.00000000E-999 0 -> 1.00000000E-999 +scbx142 scaleb 1.00000000E-999 -1 -> 1.0000000E-1000 Subnormal Rounded +scbx143 scaleb 1E-1007 +1 -> 1E-1006 Subnormal +scbx144 scaleb 1E-1007 -0 -> 1E-1007 Subnormal +scbx145 scaleb 1E-1007 -1 -> 0E-1007 Underflow Subnormal Inexact Rounded Clamped + +scbx150 scaleb -1E-1007 +1 -> -1E-1006 Subnormal +scbx151 scaleb -1E-1007 -0 -> -1E-1007 Subnormal +scbx152 scaleb -1E-1007 -1 -> -0E-1007 Underflow Subnormal Inexact Rounded Clamped +scbx153 scaleb -1.00000000E-999 +1 -> -1.00000000E-998 +scbx154 scaleb -1.00000000E-999 +0 -> -1.00000000E-999 +scbx155 scaleb -1.00000000E-999 -1 -> -1.0000000E-1000 Subnormal Rounded +scbx156 scaleb -1E-999 +1 -> -1E-998 +scbx157 scaleb -1E-999 -0 -> -1E-999 +scbx158 scaleb -1E-999 -1 -> -1E-1000 Subnormal +scbx159 scaleb -9.99999999E+999 +1 -> -Infinity Overflow Inexact Rounded +scbx160 scaleb -9.99999999E+999 +0 -> -9.99999999E+999 +scbx161 scaleb -9.99999999E+999 -1 -> -9.99999999E+998 +scbx162 scaleb -9E+999 +1 -> -Infinity Overflow Inexact Rounded +scbx163 scaleb -1E+999 +1 -> -Infinity Overflow Inexact Rounded + +-- Krah examples +precision: 34 +maxExponent: 999999999 +minExponent: -999999999 +-- integer overflow in 3.61 or earlier +scbx164 scaleb 1E-999999999 -1200000000 -> NaN Invalid_operation +-- out of range +scbx165 scaleb -1E-999999999 +1200000000 -> NaN Invalid_operation diff --git a/Lib/test/decimaltestdata/shift.decTest b/Lib/test/decimaltestdata/shift.decTest index 3fac72f722..78838cc10d 100644 --- a/Lib/test/decimaltestdata/shift.decTest +++ b/Lib/test/decimaltestdata/shift.decTest @@ -1,250 +1,250 @@ -------------------------------------------------------------------------
--- shift.decTest -- shift coefficient left or right --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-extended: 1
-precision: 9
-rounding: half_up
-maxExponent: 999
-minExponent: -999
-
--- Sanity check
-shix001 shift 0 0 -> 0
-shix002 shift 0 2 -> 0
-shix003 shift 1 2 -> 100
-shix004 shift 1 8 -> 100000000
-shix005 shift 1 9 -> 0
-shix006 shift 1 -1 -> 0
-shix007 shift 123456789 -1 -> 12345678
-shix008 shift 123456789 -8 -> 1
-shix009 shift 123456789 -9 -> 0
-shix010 shift 0 -2 -> 0
-
--- rhs must be an integer
-shix011 shift 1 1.5 -> NaN Invalid_operation
-shix012 shift 1 1.0 -> NaN Invalid_operation
-shix013 shift 1 0.1 -> NaN Invalid_operation
-shix014 shift 1 0.0 -> NaN Invalid_operation
-shix015 shift 1 1E+1 -> NaN Invalid_operation
-shix016 shift 1 1E+99 -> NaN Invalid_operation
-shix017 shift 1 Inf -> NaN Invalid_operation
-shix018 shift 1 -Inf -> NaN Invalid_operation
--- and |rhs| <= precision
-shix020 shift 1 -1000 -> NaN Invalid_operation
-shix021 shift 1 -10 -> NaN Invalid_operation
-shix022 shift 1 10 -> NaN Invalid_operation
-shix023 shift 1 1000 -> NaN Invalid_operation
-
--- full shifting pattern
-shix030 shift 123456789 -9 -> 0
-shix031 shift 123456789 -8 -> 1
-shix032 shift 123456789 -7 -> 12
-shix033 shift 123456789 -6 -> 123
-shix034 shift 123456789 -5 -> 1234
-shix035 shift 123456789 -4 -> 12345
-shix036 shift 123456789 -3 -> 123456
-shix037 shift 123456789 -2 -> 1234567
-shix038 shift 123456789 -1 -> 12345678
-shix039 shift 123456789 -0 -> 123456789
-shix040 shift 123456789 +0 -> 123456789
-shix041 shift 123456789 +1 -> 234567890
-shix042 shift 123456789 +2 -> 345678900
-shix043 shift 123456789 +3 -> 456789000
-shix044 shift 123456789 +4 -> 567890000
-shix045 shift 123456789 +5 -> 678900000
-shix046 shift 123456789 +6 -> 789000000
-shix047 shift 123456789 +7 -> 890000000
-shix048 shift 123456789 +8 -> 900000000
-shix049 shift 123456789 +9 -> 0
-
--- from examples
-shix051 shift 34 8 -> '400000000'
-shix052 shift 12 9 -> '0'
-shix053 shift 123456789 -2 -> '1234567'
-shix054 shift 123456789 0 -> '123456789'
-shix055 shift 123456789 +2 -> '345678900'
-
--- zeros
-shix060 shift 0E-10 +9 -> 0E-10
-shix061 shift 0E-10 -9 -> 0E-10
-shix062 shift 0.000 +9 -> 0.000
-shix063 shift 0.000 -9 -> 0.000
-shix064 shift 0E+10 +9 -> 0E+10
-shix065 shift 0E+10 -9 -> 0E+10
-shix066 shift -0E-10 +9 -> -0E-10
-shix067 shift -0E-10 -9 -> -0E-10
-shix068 shift -0.000 +9 -> -0.000
-shix069 shift -0.000 -9 -> -0.000
-shix070 shift -0E+10 +9 -> -0E+10
-shix071 shift -0E+10 -9 -> -0E+10
-
--- Nmax, Nmin, Ntiny
-shix141 shift 9.99999999E+999 -1 -> 9.9999999E+998
-shix142 shift 9.99999999E+999 -8 -> 9E+991
-shix143 shift 9.99999999E+999 1 -> 9.99999990E+999
-shix144 shift 9.99999999E+999 8 -> 9.00000000E+999
-shix145 shift 1E-999 -1 -> 0E-999
-shix146 shift 1E-999 -8 -> 0E-999
-shix147 shift 1E-999 1 -> 1.0E-998
-shix148 shift 1E-999 8 -> 1.00000000E-991
-shix151 shift 1.00000000E-999 -1 -> 1.0000000E-1000
-shix152 shift 1.00000000E-999 -8 -> 1E-1007
-shix153 shift 1.00000000E-999 1 -> 0E-1007
-shix154 shift 1.00000000E-999 8 -> 0E-1007
-shix155 shift 9.00000000E-999 -1 -> 9.0000000E-1000
-shix156 shift 9.00000000E-999 -8 -> 9E-1007
-shix157 shift 9.00000000E-999 1 -> 0E-1007
-shix158 shift 9.00000000E-999 8 -> 0E-1007
-shix160 shift 1E-1007 -1 -> 0E-1007
-shix161 shift 1E-1007 -8 -> 0E-1007
-shix162 shift 1E-1007 1 -> 1.0E-1006
-shix163 shift 1E-1007 8 -> 1.00000000E-999
--- negatives
-shix171 shift -9.99999999E+999 -1 -> -9.9999999E+998
-shix172 shift -9.99999999E+999 -8 -> -9E+991
-shix173 shift -9.99999999E+999 1 -> -9.99999990E+999
-shix174 shift -9.99999999E+999 8 -> -9.00000000E+999
-shix175 shift -1E-999 -1 -> -0E-999
-shix176 shift -1E-999 -8 -> -0E-999
-shix177 shift -1E-999 1 -> -1.0E-998
-shix178 shift -1E-999 8 -> -1.00000000E-991
-shix181 shift -1.00000000E-999 -1 -> -1.0000000E-1000
-shix182 shift -1.00000000E-999 -8 -> -1E-1007
-shix183 shift -1.00000000E-999 1 -> -0E-1007
-shix184 shift -1.00000000E-999 8 -> -0E-1007
-shix185 shift -9.00000000E-999 -1 -> -9.0000000E-1000
-shix186 shift -9.00000000E-999 -8 -> -9E-1007
-shix187 shift -9.00000000E-999 1 -> -0E-1007
-shix188 shift -9.00000000E-999 8 -> -0E-1007
-shix190 shift -1E-1007 -1 -> -0E-1007
-shix191 shift -1E-1007 -8 -> -0E-1007
-shix192 shift -1E-1007 1 -> -1.0E-1006
-shix193 shift -1E-1007 8 -> -1.00000000E-999
-
--- more negatives (of sanities)
-shix201 shift -0 0 -> -0
-shix202 shift -0 2 -> -0
-shix203 shift -1 2 -> -100
-shix204 shift -1 8 -> -100000000
-shix205 shift -1 9 -> -0
-shix206 shift -1 -1 -> -0
-shix207 shift -123456789 -1 -> -12345678
-shix208 shift -123456789 -8 -> -1
-shix209 shift -123456789 -9 -> -0
-shix210 shift -0 -2 -> -0
-shix211 shift -0 -0 -> -0
-
-
--- Specials; NaNs are handled as usual
-shix781 shift -Inf -8 -> -Infinity
-shix782 shift -Inf -1 -> -Infinity
-shix783 shift -Inf -0 -> -Infinity
-shix784 shift -Inf 0 -> -Infinity
-shix785 shift -Inf 1 -> -Infinity
-shix786 shift -Inf 8 -> -Infinity
-shix787 shift -1000 -Inf -> NaN Invalid_operation
-shix788 shift -Inf -Inf -> NaN Invalid_operation
-shix789 shift -1 -Inf -> NaN Invalid_operation
-shix790 shift -0 -Inf -> NaN Invalid_operation
-shix791 shift 0 -Inf -> NaN Invalid_operation
-shix792 shift 1 -Inf -> NaN Invalid_operation
-shix793 shift 1000 -Inf -> NaN Invalid_operation
-shix794 shift Inf -Inf -> NaN Invalid_operation
-
-shix800 shift Inf -Inf -> NaN Invalid_operation
-shix801 shift Inf -8 -> Infinity
-shix802 shift Inf -1 -> Infinity
-shix803 shift Inf -0 -> Infinity
-shix804 shift Inf 0 -> Infinity
-shix805 shift Inf 1 -> Infinity
-shix806 shift Inf 8 -> Infinity
-shix807 shift Inf Inf -> NaN Invalid_operation
-shix808 shift -1000 Inf -> NaN Invalid_operation
-shix809 shift -Inf Inf -> NaN Invalid_operation
-shix810 shift -1 Inf -> NaN Invalid_operation
-shix811 shift -0 Inf -> NaN Invalid_operation
-shix812 shift 0 Inf -> NaN Invalid_operation
-shix813 shift 1 Inf -> NaN Invalid_operation
-shix814 shift 1000 Inf -> NaN Invalid_operation
-shix815 shift Inf Inf -> NaN Invalid_operation
-
-shix821 shift NaN -Inf -> NaN
-shix822 shift NaN -1000 -> NaN
-shix823 shift NaN -1 -> NaN
-shix824 shift NaN -0 -> NaN
-shix825 shift NaN 0 -> NaN
-shix826 shift NaN 1 -> NaN
-shix827 shift NaN 1000 -> NaN
-shix828 shift NaN Inf -> NaN
-shix829 shift NaN NaN -> NaN
-shix830 shift -Inf NaN -> NaN
-shix831 shift -1000 NaN -> NaN
-shix832 shift -1 NaN -> NaN
-shix833 shift -0 NaN -> NaN
-shix834 shift 0 NaN -> NaN
-shix835 shift 1 NaN -> NaN
-shix836 shift 1000 NaN -> NaN
-shix837 shift Inf NaN -> NaN
-
-shix841 shift sNaN -Inf -> NaN Invalid_operation
-shix842 shift sNaN -1000 -> NaN Invalid_operation
-shix843 shift sNaN -1 -> NaN Invalid_operation
-shix844 shift sNaN -0 -> NaN Invalid_operation
-shix845 shift sNaN 0 -> NaN Invalid_operation
-shix846 shift sNaN 1 -> NaN Invalid_operation
-shix847 shift sNaN 1000 -> NaN Invalid_operation
-shix848 shift sNaN NaN -> NaN Invalid_operation
-shix849 shift sNaN sNaN -> NaN Invalid_operation
-shix850 shift NaN sNaN -> NaN Invalid_operation
-shix851 shift -Inf sNaN -> NaN Invalid_operation
-shix852 shift -1000 sNaN -> NaN Invalid_operation
-shix853 shift -1 sNaN -> NaN Invalid_operation
-shix854 shift -0 sNaN -> NaN Invalid_operation
-shix855 shift 0 sNaN -> NaN Invalid_operation
-shix856 shift 1 sNaN -> NaN Invalid_operation
-shix857 shift 1000 sNaN -> NaN Invalid_operation
-shix858 shift Inf sNaN -> NaN Invalid_operation
-shix859 shift NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-shix861 shift NaN1 -Inf -> NaN1
-shix862 shift +NaN2 -1000 -> NaN2
-shix863 shift NaN3 1000 -> NaN3
-shix864 shift NaN4 Inf -> NaN4
-shix865 shift NaN5 +NaN6 -> NaN5
-shix866 shift -Inf NaN7 -> NaN7
-shix867 shift -1000 NaN8 -> NaN8
-shix868 shift 1000 NaN9 -> NaN9
-shix869 shift Inf +NaN10 -> NaN10
-shix871 shift sNaN11 -Inf -> NaN11 Invalid_operation
-shix872 shift sNaN12 -1000 -> NaN12 Invalid_operation
-shix873 shift sNaN13 1000 -> NaN13 Invalid_operation
-shix874 shift sNaN14 NaN17 -> NaN14 Invalid_operation
-shix875 shift sNaN15 sNaN18 -> NaN15 Invalid_operation
-shix876 shift NaN16 sNaN19 -> NaN19 Invalid_operation
-shix877 shift -Inf +sNaN20 -> NaN20 Invalid_operation
-shix878 shift -1000 sNaN21 -> NaN21 Invalid_operation
-shix879 shift 1000 sNaN22 -> NaN22 Invalid_operation
-shix880 shift Inf sNaN23 -> NaN23 Invalid_operation
-shix881 shift +NaN25 +sNaN24 -> NaN24 Invalid_operation
-shix882 shift -NaN26 NaN28 -> -NaN26
-shix883 shift -sNaN27 sNaN29 -> -NaN27 Invalid_operation
-shix884 shift 1000 -NaN30 -> -NaN30
-shix885 shift 1000 -sNaN31 -> -NaN31 Invalid_operation
+------------------------------------------------------------------------ +-- shift.decTest -- shift coefficient left or right -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +extended: 1 +precision: 9 +rounding: half_up +maxExponent: 999 +minExponent: -999 + +-- Sanity check +shix001 shift 0 0 -> 0 +shix002 shift 0 2 -> 0 +shix003 shift 1 2 -> 100 +shix004 shift 1 8 -> 100000000 +shix005 shift 1 9 -> 0 +shix006 shift 1 -1 -> 0 +shix007 shift 123456789 -1 -> 12345678 +shix008 shift 123456789 -8 -> 1 +shix009 shift 123456789 -9 -> 0 +shix010 shift 0 -2 -> 0 + +-- rhs must be an integer +shix011 shift 1 1.5 -> NaN Invalid_operation +shix012 shift 1 1.0 -> NaN Invalid_operation +shix013 shift 1 0.1 -> NaN Invalid_operation +shix014 shift 1 0.0 -> NaN Invalid_operation +shix015 shift 1 1E+1 -> NaN Invalid_operation +shix016 shift 1 1E+99 -> NaN Invalid_operation +shix017 shift 1 Inf -> NaN Invalid_operation +shix018 shift 1 -Inf -> NaN Invalid_operation +-- and |rhs| <= precision +shix020 shift 1 -1000 -> NaN Invalid_operation +shix021 shift 1 -10 -> NaN Invalid_operation +shix022 shift 1 10 -> NaN Invalid_operation +shix023 shift 1 1000 -> NaN Invalid_operation + +-- full shifting pattern +shix030 shift 123456789 -9 -> 0 +shix031 shift 123456789 -8 -> 1 +shix032 shift 123456789 -7 -> 12 +shix033 shift 123456789 -6 -> 123 +shix034 shift 123456789 -5 -> 1234 +shix035 shift 123456789 -4 -> 12345 +shix036 shift 123456789 -3 -> 123456 +shix037 shift 123456789 -2 -> 1234567 +shix038 shift 123456789 -1 -> 12345678 +shix039 shift 123456789 -0 -> 123456789 +shix040 shift 123456789 +0 -> 123456789 +shix041 shift 123456789 +1 -> 234567890 +shix042 shift 123456789 +2 -> 345678900 +shix043 shift 123456789 +3 -> 456789000 +shix044 shift 123456789 +4 -> 567890000 +shix045 shift 123456789 +5 -> 678900000 +shix046 shift 123456789 +6 -> 789000000 +shix047 shift 123456789 +7 -> 890000000 +shix048 shift 123456789 +8 -> 900000000 +shix049 shift 123456789 +9 -> 0 + +-- from examples +shix051 shift 34 8 -> '400000000' +shix052 shift 12 9 -> '0' +shix053 shift 123456789 -2 -> '1234567' +shix054 shift 123456789 0 -> '123456789' +shix055 shift 123456789 +2 -> '345678900' + +-- zeros +shix060 shift 0E-10 +9 -> 0E-10 +shix061 shift 0E-10 -9 -> 0E-10 +shix062 shift 0.000 +9 -> 0.000 +shix063 shift 0.000 -9 -> 0.000 +shix064 shift 0E+10 +9 -> 0E+10 +shix065 shift 0E+10 -9 -> 0E+10 +shix066 shift -0E-10 +9 -> -0E-10 +shix067 shift -0E-10 -9 -> -0E-10 +shix068 shift -0.000 +9 -> -0.000 +shix069 shift -0.000 -9 -> -0.000 +shix070 shift -0E+10 +9 -> -0E+10 +shix071 shift -0E+10 -9 -> -0E+10 + +-- Nmax, Nmin, Ntiny +shix141 shift 9.99999999E+999 -1 -> 9.9999999E+998 +shix142 shift 9.99999999E+999 -8 -> 9E+991 +shix143 shift 9.99999999E+999 1 -> 9.99999990E+999 +shix144 shift 9.99999999E+999 8 -> 9.00000000E+999 +shix145 shift 1E-999 -1 -> 0E-999 +shix146 shift 1E-999 -8 -> 0E-999 +shix147 shift 1E-999 1 -> 1.0E-998 +shix148 shift 1E-999 8 -> 1.00000000E-991 +shix151 shift 1.00000000E-999 -1 -> 1.0000000E-1000 +shix152 shift 1.00000000E-999 -8 -> 1E-1007 +shix153 shift 1.00000000E-999 1 -> 0E-1007 +shix154 shift 1.00000000E-999 8 -> 0E-1007 +shix155 shift 9.00000000E-999 -1 -> 9.0000000E-1000 +shix156 shift 9.00000000E-999 -8 -> 9E-1007 +shix157 shift 9.00000000E-999 1 -> 0E-1007 +shix158 shift 9.00000000E-999 8 -> 0E-1007 +shix160 shift 1E-1007 -1 -> 0E-1007 +shix161 shift 1E-1007 -8 -> 0E-1007 +shix162 shift 1E-1007 1 -> 1.0E-1006 +shix163 shift 1E-1007 8 -> 1.00000000E-999 +-- negatives +shix171 shift -9.99999999E+999 -1 -> -9.9999999E+998 +shix172 shift -9.99999999E+999 -8 -> -9E+991 +shix173 shift -9.99999999E+999 1 -> -9.99999990E+999 +shix174 shift -9.99999999E+999 8 -> -9.00000000E+999 +shix175 shift -1E-999 -1 -> -0E-999 +shix176 shift -1E-999 -8 -> -0E-999 +shix177 shift -1E-999 1 -> -1.0E-998 +shix178 shift -1E-999 8 -> -1.00000000E-991 +shix181 shift -1.00000000E-999 -1 -> -1.0000000E-1000 +shix182 shift -1.00000000E-999 -8 -> -1E-1007 +shix183 shift -1.00000000E-999 1 -> -0E-1007 +shix184 shift -1.00000000E-999 8 -> -0E-1007 +shix185 shift -9.00000000E-999 -1 -> -9.0000000E-1000 +shix186 shift -9.00000000E-999 -8 -> -9E-1007 +shix187 shift -9.00000000E-999 1 -> -0E-1007 +shix188 shift -9.00000000E-999 8 -> -0E-1007 +shix190 shift -1E-1007 -1 -> -0E-1007 +shix191 shift -1E-1007 -8 -> -0E-1007 +shix192 shift -1E-1007 1 -> -1.0E-1006 +shix193 shift -1E-1007 8 -> -1.00000000E-999 + +-- more negatives (of sanities) +shix201 shift -0 0 -> -0 +shix202 shift -0 2 -> -0 +shix203 shift -1 2 -> -100 +shix204 shift -1 8 -> -100000000 +shix205 shift -1 9 -> -0 +shix206 shift -1 -1 -> -0 +shix207 shift -123456789 -1 -> -12345678 +shix208 shift -123456789 -8 -> -1 +shix209 shift -123456789 -9 -> -0 +shix210 shift -0 -2 -> -0 +shix211 shift -0 -0 -> -0 + + +-- Specials; NaNs are handled as usual +shix781 shift -Inf -8 -> -Infinity +shix782 shift -Inf -1 -> -Infinity +shix783 shift -Inf -0 -> -Infinity +shix784 shift -Inf 0 -> -Infinity +shix785 shift -Inf 1 -> -Infinity +shix786 shift -Inf 8 -> -Infinity +shix787 shift -1000 -Inf -> NaN Invalid_operation +shix788 shift -Inf -Inf -> NaN Invalid_operation +shix789 shift -1 -Inf -> NaN Invalid_operation +shix790 shift -0 -Inf -> NaN Invalid_operation +shix791 shift 0 -Inf -> NaN Invalid_operation +shix792 shift 1 -Inf -> NaN Invalid_operation +shix793 shift 1000 -Inf -> NaN Invalid_operation +shix794 shift Inf -Inf -> NaN Invalid_operation + +shix800 shift Inf -Inf -> NaN Invalid_operation +shix801 shift Inf -8 -> Infinity +shix802 shift Inf -1 -> Infinity +shix803 shift Inf -0 -> Infinity +shix804 shift Inf 0 -> Infinity +shix805 shift Inf 1 -> Infinity +shix806 shift Inf 8 -> Infinity +shix807 shift Inf Inf -> NaN Invalid_operation +shix808 shift -1000 Inf -> NaN Invalid_operation +shix809 shift -Inf Inf -> NaN Invalid_operation +shix810 shift -1 Inf -> NaN Invalid_operation +shix811 shift -0 Inf -> NaN Invalid_operation +shix812 shift 0 Inf -> NaN Invalid_operation +shix813 shift 1 Inf -> NaN Invalid_operation +shix814 shift 1000 Inf -> NaN Invalid_operation +shix815 shift Inf Inf -> NaN Invalid_operation + +shix821 shift NaN -Inf -> NaN +shix822 shift NaN -1000 -> NaN +shix823 shift NaN -1 -> NaN +shix824 shift NaN -0 -> NaN +shix825 shift NaN 0 -> NaN +shix826 shift NaN 1 -> NaN +shix827 shift NaN 1000 -> NaN +shix828 shift NaN Inf -> NaN +shix829 shift NaN NaN -> NaN +shix830 shift -Inf NaN -> NaN +shix831 shift -1000 NaN -> NaN +shix832 shift -1 NaN -> NaN +shix833 shift -0 NaN -> NaN +shix834 shift 0 NaN -> NaN +shix835 shift 1 NaN -> NaN +shix836 shift 1000 NaN -> NaN +shix837 shift Inf NaN -> NaN + +shix841 shift sNaN -Inf -> NaN Invalid_operation +shix842 shift sNaN -1000 -> NaN Invalid_operation +shix843 shift sNaN -1 -> NaN Invalid_operation +shix844 shift sNaN -0 -> NaN Invalid_operation +shix845 shift sNaN 0 -> NaN Invalid_operation +shix846 shift sNaN 1 -> NaN Invalid_operation +shix847 shift sNaN 1000 -> NaN Invalid_operation +shix848 shift sNaN NaN -> NaN Invalid_operation +shix849 shift sNaN sNaN -> NaN Invalid_operation +shix850 shift NaN sNaN -> NaN Invalid_operation +shix851 shift -Inf sNaN -> NaN Invalid_operation +shix852 shift -1000 sNaN -> NaN Invalid_operation +shix853 shift -1 sNaN -> NaN Invalid_operation +shix854 shift -0 sNaN -> NaN Invalid_operation +shix855 shift 0 sNaN -> NaN Invalid_operation +shix856 shift 1 sNaN -> NaN Invalid_operation +shix857 shift 1000 sNaN -> NaN Invalid_operation +shix858 shift Inf sNaN -> NaN Invalid_operation +shix859 shift NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +shix861 shift NaN1 -Inf -> NaN1 +shix862 shift +NaN2 -1000 -> NaN2 +shix863 shift NaN3 1000 -> NaN3 +shix864 shift NaN4 Inf -> NaN4 +shix865 shift NaN5 +NaN6 -> NaN5 +shix866 shift -Inf NaN7 -> NaN7 +shix867 shift -1000 NaN8 -> NaN8 +shix868 shift 1000 NaN9 -> NaN9 +shix869 shift Inf +NaN10 -> NaN10 +shix871 shift sNaN11 -Inf -> NaN11 Invalid_operation +shix872 shift sNaN12 -1000 -> NaN12 Invalid_operation +shix873 shift sNaN13 1000 -> NaN13 Invalid_operation +shix874 shift sNaN14 NaN17 -> NaN14 Invalid_operation +shix875 shift sNaN15 sNaN18 -> NaN15 Invalid_operation +shix876 shift NaN16 sNaN19 -> NaN19 Invalid_operation +shix877 shift -Inf +sNaN20 -> NaN20 Invalid_operation +shix878 shift -1000 sNaN21 -> NaN21 Invalid_operation +shix879 shift 1000 sNaN22 -> NaN22 Invalid_operation +shix880 shift Inf sNaN23 -> NaN23 Invalid_operation +shix881 shift +NaN25 +sNaN24 -> NaN24 Invalid_operation +shix882 shift -NaN26 NaN28 -> -NaN26 +shix883 shift -sNaN27 sNaN29 -> -NaN27 Invalid_operation +shix884 shift 1000 -NaN30 -> -NaN30 +shix885 shift 1000 -sNaN31 -> -NaN31 Invalid_operation diff --git a/Lib/test/decimaltestdata/tointegralx.decTest b/Lib/test/decimaltestdata/tointegralx.decTest index 0ce0d0935e..e250e3a06e 100644 --- a/Lib/test/decimaltestdata/tointegralx.decTest +++ b/Lib/test/decimaltestdata/tointegralx.decTest @@ -1,255 +1,255 @@ -------------------------------------------------------------------------
--- tointegralx.decTest -- round decimal to integral value, exact --
--- Copyright (c) IBM Corporation, 2001, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
--- This set of tests tests the extended specification 'round-to-integral
--- value' operation (from IEEE 854, later modified in 754r).
--- All non-zero results are defined as being those from either copy or
--- quantize, so those are assumed to have been tested.
-
--- This tests toIntegraExact, which may set Inexact
-
-extended: 1
-precision: 9
-rounding: half_up
-maxExponent: 999
-minExponent: -999
-
-intxx001 tointegralx 0 -> 0
-intxx002 tointegralx 0.0 -> 0
-intxx003 tointegralx 0.1 -> 0 Inexact Rounded
-intxx004 tointegralx 0.2 -> 0 Inexact Rounded
-intxx005 tointegralx 0.3 -> 0 Inexact Rounded
-intxx006 tointegralx 0.4 -> 0 Inexact Rounded
-intxx007 tointegralx 0.5 -> 1 Inexact Rounded
-intxx008 tointegralx 0.6 -> 1 Inexact Rounded
-intxx009 tointegralx 0.7 -> 1 Inexact Rounded
-intxx010 tointegralx 0.8 -> 1 Inexact Rounded
-intxx011 tointegralx 0.9 -> 1 Inexact Rounded
-intxx012 tointegralx 1 -> 1
-intxx013 tointegralx 1.0 -> 1 Rounded
-intxx014 tointegralx 1.1 -> 1 Inexact Rounded
-intxx015 tointegralx 1.2 -> 1 Inexact Rounded
-intxx016 tointegralx 1.3 -> 1 Inexact Rounded
-intxx017 tointegralx 1.4 -> 1 Inexact Rounded
-intxx018 tointegralx 1.5 -> 2 Inexact Rounded
-intxx019 tointegralx 1.6 -> 2 Inexact Rounded
-intxx020 tointegralx 1.7 -> 2 Inexact Rounded
-intxx021 tointegralx 1.8 -> 2 Inexact Rounded
-intxx022 tointegralx 1.9 -> 2 Inexact Rounded
--- negatives
-intxx031 tointegralx -0 -> -0
-intxx032 tointegralx -0.0 -> -0
-intxx033 tointegralx -0.1 -> -0 Inexact Rounded
-intxx034 tointegralx -0.2 -> -0 Inexact Rounded
-intxx035 tointegralx -0.3 -> -0 Inexact Rounded
-intxx036 tointegralx -0.4 -> -0 Inexact Rounded
-intxx037 tointegralx -0.5 -> -1 Inexact Rounded
-intxx038 tointegralx -0.6 -> -1 Inexact Rounded
-intxx039 tointegralx -0.7 -> -1 Inexact Rounded
-intxx040 tointegralx -0.8 -> -1 Inexact Rounded
-intxx041 tointegralx -0.9 -> -1 Inexact Rounded
-intxx042 tointegralx -1 -> -1
-intxx043 tointegralx -1.0 -> -1 Rounded
-intxx044 tointegralx -1.1 -> -1 Inexact Rounded
-intxx045 tointegralx -1.2 -> -1 Inexact Rounded
-intxx046 tointegralx -1.3 -> -1 Inexact Rounded
-intxx047 tointegralx -1.4 -> -1 Inexact Rounded
-intxx048 tointegralx -1.5 -> -2 Inexact Rounded
-intxx049 tointegralx -1.6 -> -2 Inexact Rounded
-intxx050 tointegralx -1.7 -> -2 Inexact Rounded
-intxx051 tointegralx -1.8 -> -2 Inexact Rounded
-intxx052 tointegralx -1.9 -> -2 Inexact Rounded
--- next two would be NaN using quantize(x, 0)
-intxx053 tointegralx 10E+30 -> 1.0E+31
-intxx054 tointegralx -10E+30 -> -1.0E+31
-
--- numbers around precision
-precision: 9
-intxx060 tointegralx '56267E-10' -> '0' Inexact Rounded
-intxx061 tointegralx '56267E-5' -> '1' Inexact Rounded
-intxx062 tointegralx '56267E-2' -> '563' Inexact Rounded
-intxx063 tointegralx '56267E-1' -> '5627' Inexact Rounded
-intxx065 tointegralx '56267E-0' -> '56267'
-intxx066 tointegralx '56267E+0' -> '56267'
-intxx067 tointegralx '56267E+1' -> '5.6267E+5'
-intxx068 tointegralx '56267E+2' -> '5.6267E+6'
-intxx069 tointegralx '56267E+3' -> '5.6267E+7'
-intxx070 tointegralx '56267E+4' -> '5.6267E+8'
-intxx071 tointegralx '56267E+5' -> '5.6267E+9'
-intxx072 tointegralx '56267E+6' -> '5.6267E+10'
-intxx073 tointegralx '1.23E+96' -> '1.23E+96'
-intxx074 tointegralx '1.23E+384' -> '1.23E+384'
-intxx075 tointegralx '1.23E+999' -> '1.23E+999'
-
-intxx080 tointegralx '-56267E-10' -> '-0' Inexact Rounded
-intxx081 tointegralx '-56267E-5' -> '-1' Inexact Rounded
-intxx082 tointegralx '-56267E-2' -> '-563' Inexact Rounded
-intxx083 tointegralx '-56267E-1' -> '-5627' Inexact Rounded
-intxx085 tointegralx '-56267E-0' -> '-56267'
-intxx086 tointegralx '-56267E+0' -> '-56267'
-intxx087 tointegralx '-56267E+1' -> '-5.6267E+5'
-intxx088 tointegralx '-56267E+2' -> '-5.6267E+6'
-intxx089 tointegralx '-56267E+3' -> '-5.6267E+7'
-intxx090 tointegralx '-56267E+4' -> '-5.6267E+8'
-intxx091 tointegralx '-56267E+5' -> '-5.6267E+9'
-intxx092 tointegralx '-56267E+6' -> '-5.6267E+10'
-intxx093 tointegralx '-1.23E+96' -> '-1.23E+96'
-intxx094 tointegralx '-1.23E+384' -> '-1.23E+384'
-intxx095 tointegralx '-1.23E+999' -> '-1.23E+999'
-
--- subnormal inputs
-intxx100 tointegralx 1E-999 -> 0 Inexact Rounded
-intxx101 tointegralx 0.1E-999 -> 0 Inexact Rounded
-intxx102 tointegralx 0.01E-999 -> 0 Inexact Rounded
-intxx103 tointegralx 0E-999 -> 0
-
--- specials and zeros
-intxx120 tointegralx 'Inf' -> Infinity
-intxx121 tointegralx '-Inf' -> -Infinity
-intxx122 tointegralx NaN -> NaN
-intxx123 tointegralx sNaN -> NaN Invalid_operation
-intxx124 tointegralx 0 -> 0
-intxx125 tointegralx -0 -> -0
-intxx126 tointegralx 0.000 -> 0
-intxx127 tointegralx 0.00 -> 0
-intxx128 tointegralx 0.0 -> 0
-intxx129 tointegralx 0 -> 0
-intxx130 tointegralx 0E-3 -> 0
-intxx131 tointegralx 0E-2 -> 0
-intxx132 tointegralx 0E-1 -> 0
-intxx133 tointegralx 0E-0 -> 0
-intxx134 tointegralx 0E+1 -> 0E+1
-intxx135 tointegralx 0E+2 -> 0E+2
-intxx136 tointegralx 0E+3 -> 0E+3
-intxx137 tointegralx 0E+4 -> 0E+4
-intxx138 tointegralx 0E+5 -> 0E+5
-intxx139 tointegralx -0.000 -> -0
-intxx140 tointegralx -0.00 -> -0
-intxx141 tointegralx -0.0 -> -0
-intxx142 tointegralx -0 -> -0
-intxx143 tointegralx -0E-3 -> -0
-intxx144 tointegralx -0E-2 -> -0
-intxx145 tointegralx -0E-1 -> -0
-intxx146 tointegralx -0E-0 -> -0
-intxx147 tointegralx -0E+1 -> -0E+1
-intxx148 tointegralx -0E+2 -> -0E+2
-intxx149 tointegralx -0E+3 -> -0E+3
-intxx150 tointegralx -0E+4 -> -0E+4
-intxx151 tointegralx -0E+5 -> -0E+5
--- propagating NaNs
-intxx152 tointegralx NaN808 -> NaN808
-intxx153 tointegralx sNaN080 -> NaN80 Invalid_operation
-intxx154 tointegralx -NaN808 -> -NaN808
-intxx155 tointegralx -sNaN080 -> -NaN80 Invalid_operation
-intxx156 tointegralx -NaN -> -NaN
-intxx157 tointegralx -sNaN -> -NaN Invalid_operation
-
--- examples
-rounding: half_up
-precision: 9
-intxx200 tointegralx 2.1 -> 2 Inexact Rounded
-intxx201 tointegralx 100 -> 100
-intxx202 tointegralx 100.0 -> 100 Rounded
-intxx203 tointegralx 101.5 -> 102 Inexact Rounded
-intxx204 tointegralx -101.5 -> -102 Inexact Rounded
-intxx205 tointegralx 10E+5 -> 1.0E+6
-intxx206 tointegralx 7.89E+77 -> 7.89E+77
-intxx207 tointegralx -Inf -> -Infinity
-
-
--- all rounding modes
-rounding: half_even
-
-intxx210 tointegralx 55.5 -> 56 Inexact Rounded
-intxx211 tointegralx 56.5 -> 56 Inexact Rounded
-intxx212 tointegralx 57.5 -> 58 Inexact Rounded
-intxx213 tointegralx -55.5 -> -56 Inexact Rounded
-intxx214 tointegralx -56.5 -> -56 Inexact Rounded
-intxx215 tointegralx -57.5 -> -58 Inexact Rounded
-
-rounding: half_up
-
-intxx220 tointegralx 55.5 -> 56 Inexact Rounded
-intxx221 tointegralx 56.5 -> 57 Inexact Rounded
-intxx222 tointegralx 57.5 -> 58 Inexact Rounded
-intxx223 tointegralx -55.5 -> -56 Inexact Rounded
-intxx224 tointegralx -56.5 -> -57 Inexact Rounded
-intxx225 tointegralx -57.5 -> -58 Inexact Rounded
-
-rounding: half_down
-
-intxx230 tointegralx 55.5 -> 55 Inexact Rounded
-intxx231 tointegralx 56.5 -> 56 Inexact Rounded
-intxx232 tointegralx 57.5 -> 57 Inexact Rounded
-intxx233 tointegralx -55.5 -> -55 Inexact Rounded
-intxx234 tointegralx -56.5 -> -56 Inexact Rounded
-intxx235 tointegralx -57.5 -> -57 Inexact Rounded
-
-rounding: up
-
-intxx240 tointegralx 55.3 -> 56 Inexact Rounded
-intxx241 tointegralx 56.3 -> 57 Inexact Rounded
-intxx242 tointegralx 57.3 -> 58 Inexact Rounded
-intxx243 tointegralx -55.3 -> -56 Inexact Rounded
-intxx244 tointegralx -56.3 -> -57 Inexact Rounded
-intxx245 tointegralx -57.3 -> -58 Inexact Rounded
-
-rounding: down
-
-intxx250 tointegralx 55.7 -> 55 Inexact Rounded
-intxx251 tointegralx 56.7 -> 56 Inexact Rounded
-intxx252 tointegralx 57.7 -> 57 Inexact Rounded
-intxx253 tointegralx -55.7 -> -55 Inexact Rounded
-intxx254 tointegralx -56.7 -> -56 Inexact Rounded
-intxx255 tointegralx -57.7 -> -57 Inexact Rounded
-
-rounding: ceiling
-
-intxx260 tointegralx 55.3 -> 56 Inexact Rounded
-intxx261 tointegralx 56.3 -> 57 Inexact Rounded
-intxx262 tointegralx 57.3 -> 58 Inexact Rounded
-intxx263 tointegralx -55.3 -> -55 Inexact Rounded
-intxx264 tointegralx -56.3 -> -56 Inexact Rounded
-intxx265 tointegralx -57.3 -> -57 Inexact Rounded
-
-rounding: floor
-
-intxx270 tointegralx 55.7 -> 55 Inexact Rounded
-intxx271 tointegralx 56.7 -> 56 Inexact Rounded
-intxx272 tointegralx 57.7 -> 57 Inexact Rounded
-intxx273 tointegralx -55.7 -> -56 Inexact Rounded
-intxx274 tointegralx -56.7 -> -57 Inexact Rounded
-intxx275 tointegralx -57.7 -> -58 Inexact Rounded
-
--- Int and uInt32 edge values for testing conversions
-precision: 16
-intxx300 tointegralx -2147483646 -> -2147483646
-intxx301 tointegralx -2147483647 -> -2147483647
-intxx302 tointegralx -2147483648 -> -2147483648
-intxx303 tointegralx -2147483649 -> -2147483649
-intxx304 tointegralx 2147483646 -> 2147483646
-intxx305 tointegralx 2147483647 -> 2147483647
-intxx306 tointegralx 2147483648 -> 2147483648
-intxx307 tointegralx 2147483649 -> 2147483649
-intxx308 tointegralx 4294967294 -> 4294967294
-intxx309 tointegralx 4294967295 -> 4294967295
-intxx310 tointegralx 4294967296 -> 4294967296
-intxx311 tointegralx 4294967297 -> 4294967297
+------------------------------------------------------------------------ +-- tointegralx.decTest -- round decimal to integral value, exact -- +-- Copyright (c) IBM Corporation, 2001, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +-- This set of tests tests the extended specification 'round-to-integral +-- value' operation (from IEEE 854, later modified in 754r). +-- All non-zero results are defined as being those from either copy or +-- quantize, so those are assumed to have been tested. + +-- This tests toIntegraExact, which may set Inexact + +extended: 1 +precision: 9 +rounding: half_up +maxExponent: 999 +minExponent: -999 + +intxx001 tointegralx 0 -> 0 +intxx002 tointegralx 0.0 -> 0 +intxx003 tointegralx 0.1 -> 0 Inexact Rounded +intxx004 tointegralx 0.2 -> 0 Inexact Rounded +intxx005 tointegralx 0.3 -> 0 Inexact Rounded +intxx006 tointegralx 0.4 -> 0 Inexact Rounded +intxx007 tointegralx 0.5 -> 1 Inexact Rounded +intxx008 tointegralx 0.6 -> 1 Inexact Rounded +intxx009 tointegralx 0.7 -> 1 Inexact Rounded +intxx010 tointegralx 0.8 -> 1 Inexact Rounded +intxx011 tointegralx 0.9 -> 1 Inexact Rounded +intxx012 tointegralx 1 -> 1 +intxx013 tointegralx 1.0 -> 1 Rounded +intxx014 tointegralx 1.1 -> 1 Inexact Rounded +intxx015 tointegralx 1.2 -> 1 Inexact Rounded +intxx016 tointegralx 1.3 -> 1 Inexact Rounded +intxx017 tointegralx 1.4 -> 1 Inexact Rounded +intxx018 tointegralx 1.5 -> 2 Inexact Rounded +intxx019 tointegralx 1.6 -> 2 Inexact Rounded +intxx020 tointegralx 1.7 -> 2 Inexact Rounded +intxx021 tointegralx 1.8 -> 2 Inexact Rounded +intxx022 tointegralx 1.9 -> 2 Inexact Rounded +-- negatives +intxx031 tointegralx -0 -> -0 +intxx032 tointegralx -0.0 -> -0 +intxx033 tointegralx -0.1 -> -0 Inexact Rounded +intxx034 tointegralx -0.2 -> -0 Inexact Rounded +intxx035 tointegralx -0.3 -> -0 Inexact Rounded +intxx036 tointegralx -0.4 -> -0 Inexact Rounded +intxx037 tointegralx -0.5 -> -1 Inexact Rounded +intxx038 tointegralx -0.6 -> -1 Inexact Rounded +intxx039 tointegralx -0.7 -> -1 Inexact Rounded +intxx040 tointegralx -0.8 -> -1 Inexact Rounded +intxx041 tointegralx -0.9 -> -1 Inexact Rounded +intxx042 tointegralx -1 -> -1 +intxx043 tointegralx -1.0 -> -1 Rounded +intxx044 tointegralx -1.1 -> -1 Inexact Rounded +intxx045 tointegralx -1.2 -> -1 Inexact Rounded +intxx046 tointegralx -1.3 -> -1 Inexact Rounded +intxx047 tointegralx -1.4 -> -1 Inexact Rounded +intxx048 tointegralx -1.5 -> -2 Inexact Rounded +intxx049 tointegralx -1.6 -> -2 Inexact Rounded +intxx050 tointegralx -1.7 -> -2 Inexact Rounded +intxx051 tointegralx -1.8 -> -2 Inexact Rounded +intxx052 tointegralx -1.9 -> -2 Inexact Rounded +-- next two would be NaN using quantize(x, 0) +intxx053 tointegralx 10E+30 -> 1.0E+31 +intxx054 tointegralx -10E+30 -> -1.0E+31 + +-- numbers around precision +precision: 9 +intxx060 tointegralx '56267E-10' -> '0' Inexact Rounded +intxx061 tointegralx '56267E-5' -> '1' Inexact Rounded +intxx062 tointegralx '56267E-2' -> '563' Inexact Rounded +intxx063 tointegralx '56267E-1' -> '5627' Inexact Rounded +intxx065 tointegralx '56267E-0' -> '56267' +intxx066 tointegralx '56267E+0' -> '56267' +intxx067 tointegralx '56267E+1' -> '5.6267E+5' +intxx068 tointegralx '56267E+2' -> '5.6267E+6' +intxx069 tointegralx '56267E+3' -> '5.6267E+7' +intxx070 tointegralx '56267E+4' -> '5.6267E+8' +intxx071 tointegralx '56267E+5' -> '5.6267E+9' +intxx072 tointegralx '56267E+6' -> '5.6267E+10' +intxx073 tointegralx '1.23E+96' -> '1.23E+96' +intxx074 tointegralx '1.23E+384' -> '1.23E+384' +intxx075 tointegralx '1.23E+999' -> '1.23E+999' + +intxx080 tointegralx '-56267E-10' -> '-0' Inexact Rounded +intxx081 tointegralx '-56267E-5' -> '-1' Inexact Rounded +intxx082 tointegralx '-56267E-2' -> '-563' Inexact Rounded +intxx083 tointegralx '-56267E-1' -> '-5627' Inexact Rounded +intxx085 tointegralx '-56267E-0' -> '-56267' +intxx086 tointegralx '-56267E+0' -> '-56267' +intxx087 tointegralx '-56267E+1' -> '-5.6267E+5' +intxx088 tointegralx '-56267E+2' -> '-5.6267E+6' +intxx089 tointegralx '-56267E+3' -> '-5.6267E+7' +intxx090 tointegralx '-56267E+4' -> '-5.6267E+8' +intxx091 tointegralx '-56267E+5' -> '-5.6267E+9' +intxx092 tointegralx '-56267E+6' -> '-5.6267E+10' +intxx093 tointegralx '-1.23E+96' -> '-1.23E+96' +intxx094 tointegralx '-1.23E+384' -> '-1.23E+384' +intxx095 tointegralx '-1.23E+999' -> '-1.23E+999' + +-- subnormal inputs +intxx100 tointegralx 1E-999 -> 0 Inexact Rounded +intxx101 tointegralx 0.1E-999 -> 0 Inexact Rounded +intxx102 tointegralx 0.01E-999 -> 0 Inexact Rounded +intxx103 tointegralx 0E-999 -> 0 + +-- specials and zeros +intxx120 tointegralx 'Inf' -> Infinity +intxx121 tointegralx '-Inf' -> -Infinity +intxx122 tointegralx NaN -> NaN +intxx123 tointegralx sNaN -> NaN Invalid_operation +intxx124 tointegralx 0 -> 0 +intxx125 tointegralx -0 -> -0 +intxx126 tointegralx 0.000 -> 0 +intxx127 tointegralx 0.00 -> 0 +intxx128 tointegralx 0.0 -> 0 +intxx129 tointegralx 0 -> 0 +intxx130 tointegralx 0E-3 -> 0 +intxx131 tointegralx 0E-2 -> 0 +intxx132 tointegralx 0E-1 -> 0 +intxx133 tointegralx 0E-0 -> 0 +intxx134 tointegralx 0E+1 -> 0E+1 +intxx135 tointegralx 0E+2 -> 0E+2 +intxx136 tointegralx 0E+3 -> 0E+3 +intxx137 tointegralx 0E+4 -> 0E+4 +intxx138 tointegralx 0E+5 -> 0E+5 +intxx139 tointegralx -0.000 -> -0 +intxx140 tointegralx -0.00 -> -0 +intxx141 tointegralx -0.0 -> -0 +intxx142 tointegralx -0 -> -0 +intxx143 tointegralx -0E-3 -> -0 +intxx144 tointegralx -0E-2 -> -0 +intxx145 tointegralx -0E-1 -> -0 +intxx146 tointegralx -0E-0 -> -0 +intxx147 tointegralx -0E+1 -> -0E+1 +intxx148 tointegralx -0E+2 -> -0E+2 +intxx149 tointegralx -0E+3 -> -0E+3 +intxx150 tointegralx -0E+4 -> -0E+4 +intxx151 tointegralx -0E+5 -> -0E+5 +-- propagating NaNs +intxx152 tointegralx NaN808 -> NaN808 +intxx153 tointegralx sNaN080 -> NaN80 Invalid_operation +intxx154 tointegralx -NaN808 -> -NaN808 +intxx155 tointegralx -sNaN080 -> -NaN80 Invalid_operation +intxx156 tointegralx -NaN -> -NaN +intxx157 tointegralx -sNaN -> -NaN Invalid_operation + +-- examples +rounding: half_up +precision: 9 +intxx200 tointegralx 2.1 -> 2 Inexact Rounded +intxx201 tointegralx 100 -> 100 +intxx202 tointegralx 100.0 -> 100 Rounded +intxx203 tointegralx 101.5 -> 102 Inexact Rounded +intxx204 tointegralx -101.5 -> -102 Inexact Rounded +intxx205 tointegralx 10E+5 -> 1.0E+6 +intxx206 tointegralx 7.89E+77 -> 7.89E+77 +intxx207 tointegralx -Inf -> -Infinity + + +-- all rounding modes +rounding: half_even + +intxx210 tointegralx 55.5 -> 56 Inexact Rounded +intxx211 tointegralx 56.5 -> 56 Inexact Rounded +intxx212 tointegralx 57.5 -> 58 Inexact Rounded +intxx213 tointegralx -55.5 -> -56 Inexact Rounded +intxx214 tointegralx -56.5 -> -56 Inexact Rounded +intxx215 tointegralx -57.5 -> -58 Inexact Rounded + +rounding: half_up + +intxx220 tointegralx 55.5 -> 56 Inexact Rounded +intxx221 tointegralx 56.5 -> 57 Inexact Rounded +intxx222 tointegralx 57.5 -> 58 Inexact Rounded +intxx223 tointegralx -55.5 -> -56 Inexact Rounded +intxx224 tointegralx -56.5 -> -57 Inexact Rounded +intxx225 tointegralx -57.5 -> -58 Inexact Rounded + +rounding: half_down + +intxx230 tointegralx 55.5 -> 55 Inexact Rounded +intxx231 tointegralx 56.5 -> 56 Inexact Rounded +intxx232 tointegralx 57.5 -> 57 Inexact Rounded +intxx233 tointegralx -55.5 -> -55 Inexact Rounded +intxx234 tointegralx -56.5 -> -56 Inexact Rounded +intxx235 tointegralx -57.5 -> -57 Inexact Rounded + +rounding: up + +intxx240 tointegralx 55.3 -> 56 Inexact Rounded +intxx241 tointegralx 56.3 -> 57 Inexact Rounded +intxx242 tointegralx 57.3 -> 58 Inexact Rounded +intxx243 tointegralx -55.3 -> -56 Inexact Rounded +intxx244 tointegralx -56.3 -> -57 Inexact Rounded +intxx245 tointegralx -57.3 -> -58 Inexact Rounded + +rounding: down + +intxx250 tointegralx 55.7 -> 55 Inexact Rounded +intxx251 tointegralx 56.7 -> 56 Inexact Rounded +intxx252 tointegralx 57.7 -> 57 Inexact Rounded +intxx253 tointegralx -55.7 -> -55 Inexact Rounded +intxx254 tointegralx -56.7 -> -56 Inexact Rounded +intxx255 tointegralx -57.7 -> -57 Inexact Rounded + +rounding: ceiling + +intxx260 tointegralx 55.3 -> 56 Inexact Rounded +intxx261 tointegralx 56.3 -> 57 Inexact Rounded +intxx262 tointegralx 57.3 -> 58 Inexact Rounded +intxx263 tointegralx -55.3 -> -55 Inexact Rounded +intxx264 tointegralx -56.3 -> -56 Inexact Rounded +intxx265 tointegralx -57.3 -> -57 Inexact Rounded + +rounding: floor + +intxx270 tointegralx 55.7 -> 55 Inexact Rounded +intxx271 tointegralx 56.7 -> 56 Inexact Rounded +intxx272 tointegralx 57.7 -> 57 Inexact Rounded +intxx273 tointegralx -55.7 -> -56 Inexact Rounded +intxx274 tointegralx -56.7 -> -57 Inexact Rounded +intxx275 tointegralx -57.7 -> -58 Inexact Rounded + +-- Int and uInt32 edge values for testing conversions +precision: 16 +intxx300 tointegralx -2147483646 -> -2147483646 +intxx301 tointegralx -2147483647 -> -2147483647 +intxx302 tointegralx -2147483648 -> -2147483648 +intxx303 tointegralx -2147483649 -> -2147483649 +intxx304 tointegralx 2147483646 -> 2147483646 +intxx305 tointegralx 2147483647 -> 2147483647 +intxx306 tointegralx 2147483648 -> 2147483648 +intxx307 tointegralx 2147483649 -> 2147483649 +intxx308 tointegralx 4294967294 -> 4294967294 +intxx309 tointegralx 4294967295 -> 4294967295 +intxx310 tointegralx 4294967296 -> 4294967296 +intxx311 tointegralx 4294967297 -> 4294967297 diff --git a/Lib/test/decimaltestdata/xor.decTest b/Lib/test/decimaltestdata/xor.decTest index cd71bbcf86..122976e44c 100644 --- a/Lib/test/decimaltestdata/xor.decTest +++ b/Lib/test/decimaltestdata/xor.decTest @@ -1,335 +1,335 @@ -------------------------------------------------------------------------
--- xor.decTest -- digitwise logical XOR --
--- Copyright (c) IBM Corporation, 1981, 2008. 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 --
-------------------------------------------------------------------------
-version: 2.59
-
-extended: 1
-precision: 9
-rounding: half_up
-maxExponent: 999
-minExponent: -999
-
--- Sanity check (truth table)
-xorx001 xor 0 0 -> 0
-xorx002 xor 0 1 -> 1
-xorx003 xor 1 0 -> 1
-xorx004 xor 1 1 -> 0
-xorx005 xor 1100 1010 -> 110
-xorx006 xor 1111 10 -> 1101
--- and at msd and msd-1
-xorx010 xor 000000000 000000000 -> 0
-xorx011 xor 000000000 100000000 -> 100000000
-xorx012 xor 100000000 000000000 -> 100000000
-xorx013 xor 100000000 100000000 -> 0
-xorx014 xor 000000000 000000000 -> 0
-xorx015 xor 000000000 010000000 -> 10000000
-xorx016 xor 010000000 000000000 -> 10000000
-xorx017 xor 010000000 010000000 -> 0
-
--- Various lengths
--- 123456789 123456789 123456789
-xorx021 xor 111111111 111111111 -> 0
-xorx022 xor 111111111111 111111111 -> 0
-xorx023 xor 11111111 11111111 -> 0
-xorx025 xor 1111111 1111111 -> 0
-xorx026 xor 111111 111111 -> 0
-xorx027 xor 11111 11111 -> 0
-xorx028 xor 1111 1111 -> 0
-xorx029 xor 111 111 -> 0
-xorx031 xor 11 11 -> 0
-xorx032 xor 1 1 -> 0
-xorx033 xor 111111111111 1111111111 -> 0
-xorx034 xor 11111111111 11111111111 -> 0
-xorx035 xor 1111111111 111111111111 -> 0
-xorx036 xor 111111111 1111111111111 -> 0
-
-xorx040 xor 111111111 111111111111 -> 0
-xorx041 xor 11111111 111111111111 -> 100000000
-xorx042 xor 11111111 111111111 -> 100000000
-xorx043 xor 1111111 100000010 -> 101111101
-xorx044 xor 111111 100000100 -> 100111011
-xorx045 xor 11111 100001000 -> 100010111
-xorx046 xor 1111 100010000 -> 100011111
-xorx047 xor 111 100100000 -> 100100111
-xorx048 xor 11 101000000 -> 101000011
-xorx049 xor 1 110000000 -> 110000001
-
-xorx050 xor 1111111111 1 -> 111111110
-xorx051 xor 111111111 1 -> 111111110
-xorx052 xor 11111111 1 -> 11111110
-xorx053 xor 1111111 1 -> 1111110
-xorx054 xor 111111 1 -> 111110
-xorx055 xor 11111 1 -> 11110
-xorx056 xor 1111 1 -> 1110
-xorx057 xor 111 1 -> 110
-xorx058 xor 11 1 -> 10
-xorx059 xor 1 1 -> 0
-
-xorx060 xor 1111111111 0 -> 111111111
-xorx061 xor 111111111 0 -> 111111111
-xorx062 xor 11111111 0 -> 11111111
-xorx063 xor 1111111 0 -> 1111111
-xorx064 xor 111111 0 -> 111111
-xorx065 xor 11111 0 -> 11111
-xorx066 xor 1111 0 -> 1111
-xorx067 xor 111 0 -> 111
-xorx068 xor 11 0 -> 11
-xorx069 xor 1 0 -> 1
-
-xorx070 xor 1 1111111111 -> 111111110
-xorx071 xor 1 111111111 -> 111111110
-xorx072 xor 1 11111111 -> 11111110
-xorx073 xor 1 1111111 -> 1111110
-xorx074 xor 1 111111 -> 111110
-xorx075 xor 1 11111 -> 11110
-xorx076 xor 1 1111 -> 1110
-xorx077 xor 1 111 -> 110
-xorx078 xor 1 11 -> 10
-xorx079 xor 1 1 -> 0
-
-xorx080 xor 0 1111111111 -> 111111111
-xorx081 xor 0 111111111 -> 111111111
-xorx082 xor 0 11111111 -> 11111111
-xorx083 xor 0 1111111 -> 1111111
-xorx084 xor 0 111111 -> 111111
-xorx085 xor 0 11111 -> 11111
-xorx086 xor 0 1111 -> 1111
-xorx087 xor 0 111 -> 111
-xorx088 xor 0 11 -> 11
-xorx089 xor 0 1 -> 1
-
-xorx090 xor 011111111 111101111 -> 100010000
-xorx091 xor 101111111 111101111 -> 10010000
-xorx092 xor 110111111 111101111 -> 1010000
-xorx093 xor 111011111 111101111 -> 110000
-xorx094 xor 111101111 111101111 -> 0
-xorx095 xor 111110111 111101111 -> 11000
-xorx096 xor 111111011 111101111 -> 10100
-xorx097 xor 111111101 111101111 -> 10010
-xorx098 xor 111111110 111101111 -> 10001
-
-xorx100 xor 111101111 011111111 -> 100010000
-xorx101 xor 111101111 101111111 -> 10010000
-xorx102 xor 111101111 110111111 -> 1010000
-xorx103 xor 111101111 111011111 -> 110000
-xorx104 xor 111101111 111101111 -> 0
-xorx105 xor 111101111 111110111 -> 11000
-xorx106 xor 111101111 111111011 -> 10100
-xorx107 xor 111101111 111111101 -> 10010
-xorx108 xor 111101111 111111110 -> 10001
-
--- non-0/1 should not be accepted, nor should signs
-xorx220 xor 111111112 111111111 -> NaN Invalid_operation
-xorx221 xor 333333333 333333333 -> NaN Invalid_operation
-xorx222 xor 555555555 555555555 -> NaN Invalid_operation
-xorx223 xor 777777777 777777777 -> NaN Invalid_operation
-xorx224 xor 999999999 999999999 -> NaN Invalid_operation
-xorx225 xor 222222222 999999999 -> NaN Invalid_operation
-xorx226 xor 444444444 999999999 -> NaN Invalid_operation
-xorx227 xor 666666666 999999999 -> NaN Invalid_operation
-xorx228 xor 888888888 999999999 -> NaN Invalid_operation
-xorx229 xor 999999999 222222222 -> NaN Invalid_operation
-xorx230 xor 999999999 444444444 -> NaN Invalid_operation
-xorx231 xor 999999999 666666666 -> NaN Invalid_operation
-xorx232 xor 999999999 888888888 -> NaN Invalid_operation
--- a few randoms
-xorx240 xor 567468689 -934981942 -> NaN Invalid_operation
-xorx241 xor 567367689 934981942 -> NaN Invalid_operation
-xorx242 xor -631917772 -706014634 -> NaN Invalid_operation
-xorx243 xor -756253257 138579234 -> NaN Invalid_operation
-xorx244 xor 835590149 567435400 -> NaN Invalid_operation
--- test MSD
-xorx250 xor 200000000 100000000 -> NaN Invalid_operation
-xorx251 xor 700000000 100000000 -> NaN Invalid_operation
-xorx252 xor 800000000 100000000 -> NaN Invalid_operation
-xorx253 xor 900000000 100000000 -> NaN Invalid_operation
-xorx254 xor 200000000 000000000 -> NaN Invalid_operation
-xorx255 xor 700000000 000000000 -> NaN Invalid_operation
-xorx256 xor 800000000 000000000 -> NaN Invalid_operation
-xorx257 xor 900000000 000000000 -> NaN Invalid_operation
-xorx258 xor 100000000 200000000 -> NaN Invalid_operation
-xorx259 xor 100000000 700000000 -> NaN Invalid_operation
-xorx260 xor 100000000 800000000 -> NaN Invalid_operation
-xorx261 xor 100000000 900000000 -> NaN Invalid_operation
-xorx262 xor 000000000 200000000 -> NaN Invalid_operation
-xorx263 xor 000000000 700000000 -> NaN Invalid_operation
-xorx264 xor 000000000 800000000 -> NaN Invalid_operation
-xorx265 xor 000000000 900000000 -> NaN Invalid_operation
--- test MSD-1
-xorx270 xor 020000000 100000000 -> NaN Invalid_operation
-xorx271 xor 070100000 100000000 -> NaN Invalid_operation
-xorx272 xor 080010000 100000001 -> NaN Invalid_operation
-xorx273 xor 090001000 100000010 -> NaN Invalid_operation
-xorx274 xor 100000100 020010100 -> NaN Invalid_operation
-xorx275 xor 100000000 070001000 -> NaN Invalid_operation
-xorx276 xor 100000010 080010100 -> NaN Invalid_operation
-xorx277 xor 100000000 090000010 -> NaN Invalid_operation
--- test LSD
-xorx280 xor 001000002 100000000 -> NaN Invalid_operation
-xorx281 xor 000000007 100000000 -> NaN Invalid_operation
-xorx282 xor 000000008 100000000 -> NaN Invalid_operation
-xorx283 xor 000000009 100000000 -> NaN Invalid_operation
-xorx284 xor 100000000 000100002 -> NaN Invalid_operation
-xorx285 xor 100100000 001000007 -> NaN Invalid_operation
-xorx286 xor 100010000 010000008 -> NaN Invalid_operation
-xorx287 xor 100001000 100000009 -> NaN Invalid_operation
--- test Middie
-xorx288 xor 001020000 100000000 -> NaN Invalid_operation
-xorx289 xor 000070001 100000000 -> NaN Invalid_operation
-xorx290 xor 000080000 100010000 -> NaN Invalid_operation
-xorx291 xor 000090000 100001000 -> NaN Invalid_operation
-xorx292 xor 100000010 000020100 -> NaN Invalid_operation
-xorx293 xor 100100000 000070010 -> NaN Invalid_operation
-xorx294 xor 100010100 000080001 -> NaN Invalid_operation
-xorx295 xor 100001000 000090000 -> NaN Invalid_operation
--- signs
-xorx296 xor -100001000 -000000000 -> NaN Invalid_operation
-xorx297 xor -100001000 000010000 -> NaN Invalid_operation
-xorx298 xor 100001000 -000000000 -> NaN Invalid_operation
-xorx299 xor 100001000 000011000 -> 100010000
-
--- Nmax, Nmin, Ntiny
-xorx331 xor 2 9.99999999E+999 -> NaN Invalid_operation
-xorx332 xor 3 1E-999 -> NaN Invalid_operation
-xorx333 xor 4 1.00000000E-999 -> NaN Invalid_operation
-xorx334 xor 5 1E-1007 -> NaN Invalid_operation
-xorx335 xor 6 -1E-1007 -> NaN Invalid_operation
-xorx336 xor 7 -1.00000000E-999 -> NaN Invalid_operation
-xorx337 xor 8 -1E-999 -> NaN Invalid_operation
-xorx338 xor 9 -9.99999999E+999 -> NaN Invalid_operation
-xorx341 xor 9.99999999E+999 -18 -> NaN Invalid_operation
-xorx342 xor 1E-999 01 -> NaN Invalid_operation
-xorx343 xor 1.00000000E-999 -18 -> NaN Invalid_operation
-xorx344 xor 1E-1007 18 -> NaN Invalid_operation
-xorx345 xor -1E-1007 -10 -> NaN Invalid_operation
-xorx346 xor -1.00000000E-999 18 -> NaN Invalid_operation
-xorx347 xor -1E-999 10 -> NaN Invalid_operation
-xorx348 xor -9.99999999E+999 -18 -> NaN Invalid_operation
-
--- A few other non-integers
-xorx361 xor 1.0 1 -> NaN Invalid_operation
-xorx362 xor 1E+1 1 -> NaN Invalid_operation
-xorx363 xor 0.0 1 -> NaN Invalid_operation
-xorx364 xor 0E+1 1 -> NaN Invalid_operation
-xorx365 xor 9.9 1 -> NaN Invalid_operation
-xorx366 xor 9E+1 1 -> NaN Invalid_operation
-xorx371 xor 0 1.0 -> NaN Invalid_operation
-xorx372 xor 0 1E+1 -> NaN Invalid_operation
-xorx373 xor 0 0.0 -> NaN Invalid_operation
-xorx374 xor 0 0E+1 -> NaN Invalid_operation
-xorx375 xor 0 9.9 -> NaN Invalid_operation
-xorx376 xor 0 9E+1 -> NaN Invalid_operation
-
--- All Specials are in error
-xorx780 xor -Inf -Inf -> NaN Invalid_operation
-xorx781 xor -Inf -1000 -> NaN Invalid_operation
-xorx782 xor -Inf -1 -> NaN Invalid_operation
-xorx783 xor -Inf -0 -> NaN Invalid_operation
-xorx784 xor -Inf 0 -> NaN Invalid_operation
-xorx785 xor -Inf 1 -> NaN Invalid_operation
-xorx786 xor -Inf 1000 -> NaN Invalid_operation
-xorx787 xor -1000 -Inf -> NaN Invalid_operation
-xorx788 xor -Inf -Inf -> NaN Invalid_operation
-xorx789 xor -1 -Inf -> NaN Invalid_operation
-xorx790 xor -0 -Inf -> NaN Invalid_operation
-xorx791 xor 0 -Inf -> NaN Invalid_operation
-xorx792 xor 1 -Inf -> NaN Invalid_operation
-xorx793 xor 1000 -Inf -> NaN Invalid_operation
-xorx794 xor Inf -Inf -> NaN Invalid_operation
-
-xorx800 xor Inf -Inf -> NaN Invalid_operation
-xorx801 xor Inf -1000 -> NaN Invalid_operation
-xorx802 xor Inf -1 -> NaN Invalid_operation
-xorx803 xor Inf -0 -> NaN Invalid_operation
-xorx804 xor Inf 0 -> NaN Invalid_operation
-xorx805 xor Inf 1 -> NaN Invalid_operation
-xorx806 xor Inf 1000 -> NaN Invalid_operation
-xorx807 xor Inf Inf -> NaN Invalid_operation
-xorx808 xor -1000 Inf -> NaN Invalid_operation
-xorx809 xor -Inf Inf -> NaN Invalid_operation
-xorx810 xor -1 Inf -> NaN Invalid_operation
-xorx811 xor -0 Inf -> NaN Invalid_operation
-xorx812 xor 0 Inf -> NaN Invalid_operation
-xorx813 xor 1 Inf -> NaN Invalid_operation
-xorx814 xor 1000 Inf -> NaN Invalid_operation
-xorx815 xor Inf Inf -> NaN Invalid_operation
-
-xorx821 xor NaN -Inf -> NaN Invalid_operation
-xorx822 xor NaN -1000 -> NaN Invalid_operation
-xorx823 xor NaN -1 -> NaN Invalid_operation
-xorx824 xor NaN -0 -> NaN Invalid_operation
-xorx825 xor NaN 0 -> NaN Invalid_operation
-xorx826 xor NaN 1 -> NaN Invalid_operation
-xorx827 xor NaN 1000 -> NaN Invalid_operation
-xorx828 xor NaN Inf -> NaN Invalid_operation
-xorx829 xor NaN NaN -> NaN Invalid_operation
-xorx830 xor -Inf NaN -> NaN Invalid_operation
-xorx831 xor -1000 NaN -> NaN Invalid_operation
-xorx832 xor -1 NaN -> NaN Invalid_operation
-xorx833 xor -0 NaN -> NaN Invalid_operation
-xorx834 xor 0 NaN -> NaN Invalid_operation
-xorx835 xor 1 NaN -> NaN Invalid_operation
-xorx836 xor 1000 NaN -> NaN Invalid_operation
-xorx837 xor Inf NaN -> NaN Invalid_operation
-
-xorx841 xor sNaN -Inf -> NaN Invalid_operation
-xorx842 xor sNaN -1000 -> NaN Invalid_operation
-xorx843 xor sNaN -1 -> NaN Invalid_operation
-xorx844 xor sNaN -0 -> NaN Invalid_operation
-xorx845 xor sNaN 0 -> NaN Invalid_operation
-xorx846 xor sNaN 1 -> NaN Invalid_operation
-xorx847 xor sNaN 1000 -> NaN Invalid_operation
-xorx848 xor sNaN NaN -> NaN Invalid_operation
-xorx849 xor sNaN sNaN -> NaN Invalid_operation
-xorx850 xor NaN sNaN -> NaN Invalid_operation
-xorx851 xor -Inf sNaN -> NaN Invalid_operation
-xorx852 xor -1000 sNaN -> NaN Invalid_operation
-xorx853 xor -1 sNaN -> NaN Invalid_operation
-xorx854 xor -0 sNaN -> NaN Invalid_operation
-xorx855 xor 0 sNaN -> NaN Invalid_operation
-xorx856 xor 1 sNaN -> NaN Invalid_operation
-xorx857 xor 1000 sNaN -> NaN Invalid_operation
-xorx858 xor Inf sNaN -> NaN Invalid_operation
-xorx859 xor NaN sNaN -> NaN Invalid_operation
-
--- propagating NaNs
-xorx861 xor NaN1 -Inf -> NaN Invalid_operation
-xorx862 xor +NaN2 -1000 -> NaN Invalid_operation
-xorx863 xor NaN3 1000 -> NaN Invalid_operation
-xorx864 xor NaN4 Inf -> NaN Invalid_operation
-xorx865 xor NaN5 +NaN6 -> NaN Invalid_operation
-xorx866 xor -Inf NaN7 -> NaN Invalid_operation
-xorx867 xor -1000 NaN8 -> NaN Invalid_operation
-xorx868 xor 1000 NaN9 -> NaN Invalid_operation
-xorx869 xor Inf +NaN10 -> NaN Invalid_operation
-xorx871 xor sNaN11 -Inf -> NaN Invalid_operation
-xorx872 xor sNaN12 -1000 -> NaN Invalid_operation
-xorx873 xor sNaN13 1000 -> NaN Invalid_operation
-xorx874 xor sNaN14 NaN17 -> NaN Invalid_operation
-xorx875 xor sNaN15 sNaN18 -> NaN Invalid_operation
-xorx876 xor NaN16 sNaN19 -> NaN Invalid_operation
-xorx877 xor -Inf +sNaN20 -> NaN Invalid_operation
-xorx878 xor -1000 sNaN21 -> NaN Invalid_operation
-xorx879 xor 1000 sNaN22 -> NaN Invalid_operation
-xorx880 xor Inf sNaN23 -> NaN Invalid_operation
-xorx881 xor +NaN25 +sNaN24 -> NaN Invalid_operation
-xorx882 xor -NaN26 NaN28 -> NaN Invalid_operation
-xorx883 xor -sNaN27 sNaN29 -> NaN Invalid_operation
-xorx884 xor 1000 -NaN30 -> NaN Invalid_operation
-xorx885 xor 1000 -sNaN31 -> NaN Invalid_operation
+------------------------------------------------------------------------ +-- xor.decTest -- digitwise logical XOR -- +-- Copyright (c) IBM Corporation, 1981, 2008. 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 -- +------------------------------------------------------------------------ +version: 2.59 + +extended: 1 +precision: 9 +rounding: half_up +maxExponent: 999 +minExponent: -999 + +-- Sanity check (truth table) +xorx001 xor 0 0 -> 0 +xorx002 xor 0 1 -> 1 +xorx003 xor 1 0 -> 1 +xorx004 xor 1 1 -> 0 +xorx005 xor 1100 1010 -> 110 +xorx006 xor 1111 10 -> 1101 +-- and at msd and msd-1 +xorx010 xor 000000000 000000000 -> 0 +xorx011 xor 000000000 100000000 -> 100000000 +xorx012 xor 100000000 000000000 -> 100000000 +xorx013 xor 100000000 100000000 -> 0 +xorx014 xor 000000000 000000000 -> 0 +xorx015 xor 000000000 010000000 -> 10000000 +xorx016 xor 010000000 000000000 -> 10000000 +xorx017 xor 010000000 010000000 -> 0 + +-- Various lengths +-- 123456789 123456789 123456789 +xorx021 xor 111111111 111111111 -> 0 +xorx022 xor 111111111111 111111111 -> 0 +xorx023 xor 11111111 11111111 -> 0 +xorx025 xor 1111111 1111111 -> 0 +xorx026 xor 111111 111111 -> 0 +xorx027 xor 11111 11111 -> 0 +xorx028 xor 1111 1111 -> 0 +xorx029 xor 111 111 -> 0 +xorx031 xor 11 11 -> 0 +xorx032 xor 1 1 -> 0 +xorx033 xor 111111111111 1111111111 -> 0 +xorx034 xor 11111111111 11111111111 -> 0 +xorx035 xor 1111111111 111111111111 -> 0 +xorx036 xor 111111111 1111111111111 -> 0 + +xorx040 xor 111111111 111111111111 -> 0 +xorx041 xor 11111111 111111111111 -> 100000000 +xorx042 xor 11111111 111111111 -> 100000000 +xorx043 xor 1111111 100000010 -> 101111101 +xorx044 xor 111111 100000100 -> 100111011 +xorx045 xor 11111 100001000 -> 100010111 +xorx046 xor 1111 100010000 -> 100011111 +xorx047 xor 111 100100000 -> 100100111 +xorx048 xor 11 101000000 -> 101000011 +xorx049 xor 1 110000000 -> 110000001 + +xorx050 xor 1111111111 1 -> 111111110 +xorx051 xor 111111111 1 -> 111111110 +xorx052 xor 11111111 1 -> 11111110 +xorx053 xor 1111111 1 -> 1111110 +xorx054 xor 111111 1 -> 111110 +xorx055 xor 11111 1 -> 11110 +xorx056 xor 1111 1 -> 1110 +xorx057 xor 111 1 -> 110 +xorx058 xor 11 1 -> 10 +xorx059 xor 1 1 -> 0 + +xorx060 xor 1111111111 0 -> 111111111 +xorx061 xor 111111111 0 -> 111111111 +xorx062 xor 11111111 0 -> 11111111 +xorx063 xor 1111111 0 -> 1111111 +xorx064 xor 111111 0 -> 111111 +xorx065 xor 11111 0 -> 11111 +xorx066 xor 1111 0 -> 1111 +xorx067 xor 111 0 -> 111 +xorx068 xor 11 0 -> 11 +xorx069 xor 1 0 -> 1 + +xorx070 xor 1 1111111111 -> 111111110 +xorx071 xor 1 111111111 -> 111111110 +xorx072 xor 1 11111111 -> 11111110 +xorx073 xor 1 1111111 -> 1111110 +xorx074 xor 1 111111 -> 111110 +xorx075 xor 1 11111 -> 11110 +xorx076 xor 1 1111 -> 1110 +xorx077 xor 1 111 -> 110 +xorx078 xor 1 11 -> 10 +xorx079 xor 1 1 -> 0 + +xorx080 xor 0 1111111111 -> 111111111 +xorx081 xor 0 111111111 -> 111111111 +xorx082 xor 0 11111111 -> 11111111 +xorx083 xor 0 1111111 -> 1111111 +xorx084 xor 0 111111 -> 111111 +xorx085 xor 0 11111 -> 11111 +xorx086 xor 0 1111 -> 1111 +xorx087 xor 0 111 -> 111 +xorx088 xor 0 11 -> 11 +xorx089 xor 0 1 -> 1 + +xorx090 xor 011111111 111101111 -> 100010000 +xorx091 xor 101111111 111101111 -> 10010000 +xorx092 xor 110111111 111101111 -> 1010000 +xorx093 xor 111011111 111101111 -> 110000 +xorx094 xor 111101111 111101111 -> 0 +xorx095 xor 111110111 111101111 -> 11000 +xorx096 xor 111111011 111101111 -> 10100 +xorx097 xor 111111101 111101111 -> 10010 +xorx098 xor 111111110 111101111 -> 10001 + +xorx100 xor 111101111 011111111 -> 100010000 +xorx101 xor 111101111 101111111 -> 10010000 +xorx102 xor 111101111 110111111 -> 1010000 +xorx103 xor 111101111 111011111 -> 110000 +xorx104 xor 111101111 111101111 -> 0 +xorx105 xor 111101111 111110111 -> 11000 +xorx106 xor 111101111 111111011 -> 10100 +xorx107 xor 111101111 111111101 -> 10010 +xorx108 xor 111101111 111111110 -> 10001 + +-- non-0/1 should not be accepted, nor should signs +xorx220 xor 111111112 111111111 -> NaN Invalid_operation +xorx221 xor 333333333 333333333 -> NaN Invalid_operation +xorx222 xor 555555555 555555555 -> NaN Invalid_operation +xorx223 xor 777777777 777777777 -> NaN Invalid_operation +xorx224 xor 999999999 999999999 -> NaN Invalid_operation +xorx225 xor 222222222 999999999 -> NaN Invalid_operation +xorx226 xor 444444444 999999999 -> NaN Invalid_operation +xorx227 xor 666666666 999999999 -> NaN Invalid_operation +xorx228 xor 888888888 999999999 -> NaN Invalid_operation +xorx229 xor 999999999 222222222 -> NaN Invalid_operation +xorx230 xor 999999999 444444444 -> NaN Invalid_operation +xorx231 xor 999999999 666666666 -> NaN Invalid_operation +xorx232 xor 999999999 888888888 -> NaN Invalid_operation +-- a few randoms +xorx240 xor 567468689 -934981942 -> NaN Invalid_operation +xorx241 xor 567367689 934981942 -> NaN Invalid_operation +xorx242 xor -631917772 -706014634 -> NaN Invalid_operation +xorx243 xor -756253257 138579234 -> NaN Invalid_operation +xorx244 xor 835590149 567435400 -> NaN Invalid_operation +-- test MSD +xorx250 xor 200000000 100000000 -> NaN Invalid_operation +xorx251 xor 700000000 100000000 -> NaN Invalid_operation +xorx252 xor 800000000 100000000 -> NaN Invalid_operation +xorx253 xor 900000000 100000000 -> NaN Invalid_operation +xorx254 xor 200000000 000000000 -> NaN Invalid_operation +xorx255 xor 700000000 000000000 -> NaN Invalid_operation +xorx256 xor 800000000 000000000 -> NaN Invalid_operation +xorx257 xor 900000000 000000000 -> NaN Invalid_operation +xorx258 xor 100000000 200000000 -> NaN Invalid_operation +xorx259 xor 100000000 700000000 -> NaN Invalid_operation +xorx260 xor 100000000 800000000 -> NaN Invalid_operation +xorx261 xor 100000000 900000000 -> NaN Invalid_operation +xorx262 xor 000000000 200000000 -> NaN Invalid_operation +xorx263 xor 000000000 700000000 -> NaN Invalid_operation +xorx264 xor 000000000 800000000 -> NaN Invalid_operation +xorx265 xor 000000000 900000000 -> NaN Invalid_operation +-- test MSD-1 +xorx270 xor 020000000 100000000 -> NaN Invalid_operation +xorx271 xor 070100000 100000000 -> NaN Invalid_operation +xorx272 xor 080010000 100000001 -> NaN Invalid_operation +xorx273 xor 090001000 100000010 -> NaN Invalid_operation +xorx274 xor 100000100 020010100 -> NaN Invalid_operation +xorx275 xor 100000000 070001000 -> NaN Invalid_operation +xorx276 xor 100000010 080010100 -> NaN Invalid_operation +xorx277 xor 100000000 090000010 -> NaN Invalid_operation +-- test LSD +xorx280 xor 001000002 100000000 -> NaN Invalid_operation +xorx281 xor 000000007 100000000 -> NaN Invalid_operation +xorx282 xor 000000008 100000000 -> NaN Invalid_operation +xorx283 xor 000000009 100000000 -> NaN Invalid_operation +xorx284 xor 100000000 000100002 -> NaN Invalid_operation +xorx285 xor 100100000 001000007 -> NaN Invalid_operation +xorx286 xor 100010000 010000008 -> NaN Invalid_operation +xorx287 xor 100001000 100000009 -> NaN Invalid_operation +-- test Middie +xorx288 xor 001020000 100000000 -> NaN Invalid_operation +xorx289 xor 000070001 100000000 -> NaN Invalid_operation +xorx290 xor 000080000 100010000 -> NaN Invalid_operation +xorx291 xor 000090000 100001000 -> NaN Invalid_operation +xorx292 xor 100000010 000020100 -> NaN Invalid_operation +xorx293 xor 100100000 000070010 -> NaN Invalid_operation +xorx294 xor 100010100 000080001 -> NaN Invalid_operation +xorx295 xor 100001000 000090000 -> NaN Invalid_operation +-- signs +xorx296 xor -100001000 -000000000 -> NaN Invalid_operation +xorx297 xor -100001000 000010000 -> NaN Invalid_operation +xorx298 xor 100001000 -000000000 -> NaN Invalid_operation +xorx299 xor 100001000 000011000 -> 100010000 + +-- Nmax, Nmin, Ntiny +xorx331 xor 2 9.99999999E+999 -> NaN Invalid_operation +xorx332 xor 3 1E-999 -> NaN Invalid_operation +xorx333 xor 4 1.00000000E-999 -> NaN Invalid_operation +xorx334 xor 5 1E-1007 -> NaN Invalid_operation +xorx335 xor 6 -1E-1007 -> NaN Invalid_operation +xorx336 xor 7 -1.00000000E-999 -> NaN Invalid_operation +xorx337 xor 8 -1E-999 -> NaN Invalid_operation +xorx338 xor 9 -9.99999999E+999 -> NaN Invalid_operation +xorx341 xor 9.99999999E+999 -18 -> NaN Invalid_operation +xorx342 xor 1E-999 01 -> NaN Invalid_operation +xorx343 xor 1.00000000E-999 -18 -> NaN Invalid_operation +xorx344 xor 1E-1007 18 -> NaN Invalid_operation +xorx345 xor -1E-1007 -10 -> NaN Invalid_operation +xorx346 xor -1.00000000E-999 18 -> NaN Invalid_operation +xorx347 xor -1E-999 10 -> NaN Invalid_operation +xorx348 xor -9.99999999E+999 -18 -> NaN Invalid_operation + +-- A few other non-integers +xorx361 xor 1.0 1 -> NaN Invalid_operation +xorx362 xor 1E+1 1 -> NaN Invalid_operation +xorx363 xor 0.0 1 -> NaN Invalid_operation +xorx364 xor 0E+1 1 -> NaN Invalid_operation +xorx365 xor 9.9 1 -> NaN Invalid_operation +xorx366 xor 9E+1 1 -> NaN Invalid_operation +xorx371 xor 0 1.0 -> NaN Invalid_operation +xorx372 xor 0 1E+1 -> NaN Invalid_operation +xorx373 xor 0 0.0 -> NaN Invalid_operation +xorx374 xor 0 0E+1 -> NaN Invalid_operation +xorx375 xor 0 9.9 -> NaN Invalid_operation +xorx376 xor 0 9E+1 -> NaN Invalid_operation + +-- All Specials are in error +xorx780 xor -Inf -Inf -> NaN Invalid_operation +xorx781 xor -Inf -1000 -> NaN Invalid_operation +xorx782 xor -Inf -1 -> NaN Invalid_operation +xorx783 xor -Inf -0 -> NaN Invalid_operation +xorx784 xor -Inf 0 -> NaN Invalid_operation +xorx785 xor -Inf 1 -> NaN Invalid_operation +xorx786 xor -Inf 1000 -> NaN Invalid_operation +xorx787 xor -1000 -Inf -> NaN Invalid_operation +xorx788 xor -Inf -Inf -> NaN Invalid_operation +xorx789 xor -1 -Inf -> NaN Invalid_operation +xorx790 xor -0 -Inf -> NaN Invalid_operation +xorx791 xor 0 -Inf -> NaN Invalid_operation +xorx792 xor 1 -Inf -> NaN Invalid_operation +xorx793 xor 1000 -Inf -> NaN Invalid_operation +xorx794 xor Inf -Inf -> NaN Invalid_operation + +xorx800 xor Inf -Inf -> NaN Invalid_operation +xorx801 xor Inf -1000 -> NaN Invalid_operation +xorx802 xor Inf -1 -> NaN Invalid_operation +xorx803 xor Inf -0 -> NaN Invalid_operation +xorx804 xor Inf 0 -> NaN Invalid_operation +xorx805 xor Inf 1 -> NaN Invalid_operation +xorx806 xor Inf 1000 -> NaN Invalid_operation +xorx807 xor Inf Inf -> NaN Invalid_operation +xorx808 xor -1000 Inf -> NaN Invalid_operation +xorx809 xor -Inf Inf -> NaN Invalid_operation +xorx810 xor -1 Inf -> NaN Invalid_operation +xorx811 xor -0 Inf -> NaN Invalid_operation +xorx812 xor 0 Inf -> NaN Invalid_operation +xorx813 xor 1 Inf -> NaN Invalid_operation +xorx814 xor 1000 Inf -> NaN Invalid_operation +xorx815 xor Inf Inf -> NaN Invalid_operation + +xorx821 xor NaN -Inf -> NaN Invalid_operation +xorx822 xor NaN -1000 -> NaN Invalid_operation +xorx823 xor NaN -1 -> NaN Invalid_operation +xorx824 xor NaN -0 -> NaN Invalid_operation +xorx825 xor NaN 0 -> NaN Invalid_operation +xorx826 xor NaN 1 -> NaN Invalid_operation +xorx827 xor NaN 1000 -> NaN Invalid_operation +xorx828 xor NaN Inf -> NaN Invalid_operation +xorx829 xor NaN NaN -> NaN Invalid_operation +xorx830 xor -Inf NaN -> NaN Invalid_operation +xorx831 xor -1000 NaN -> NaN Invalid_operation +xorx832 xor -1 NaN -> NaN Invalid_operation +xorx833 xor -0 NaN -> NaN Invalid_operation +xorx834 xor 0 NaN -> NaN Invalid_operation +xorx835 xor 1 NaN -> NaN Invalid_operation +xorx836 xor 1000 NaN -> NaN Invalid_operation +xorx837 xor Inf NaN -> NaN Invalid_operation + +xorx841 xor sNaN -Inf -> NaN Invalid_operation +xorx842 xor sNaN -1000 -> NaN Invalid_operation +xorx843 xor sNaN -1 -> NaN Invalid_operation +xorx844 xor sNaN -0 -> NaN Invalid_operation +xorx845 xor sNaN 0 -> NaN Invalid_operation +xorx846 xor sNaN 1 -> NaN Invalid_operation +xorx847 xor sNaN 1000 -> NaN Invalid_operation +xorx848 xor sNaN NaN -> NaN Invalid_operation +xorx849 xor sNaN sNaN -> NaN Invalid_operation +xorx850 xor NaN sNaN -> NaN Invalid_operation +xorx851 xor -Inf sNaN -> NaN Invalid_operation +xorx852 xor -1000 sNaN -> NaN Invalid_operation +xorx853 xor -1 sNaN -> NaN Invalid_operation +xorx854 xor -0 sNaN -> NaN Invalid_operation +xorx855 xor 0 sNaN -> NaN Invalid_operation +xorx856 xor 1 sNaN -> NaN Invalid_operation +xorx857 xor 1000 sNaN -> NaN Invalid_operation +xorx858 xor Inf sNaN -> NaN Invalid_operation +xorx859 xor NaN sNaN -> NaN Invalid_operation + +-- propagating NaNs +xorx861 xor NaN1 -Inf -> NaN Invalid_operation +xorx862 xor +NaN2 -1000 -> NaN Invalid_operation +xorx863 xor NaN3 1000 -> NaN Invalid_operation +xorx864 xor NaN4 Inf -> NaN Invalid_operation +xorx865 xor NaN5 +NaN6 -> NaN Invalid_operation +xorx866 xor -Inf NaN7 -> NaN Invalid_operation +xorx867 xor -1000 NaN8 -> NaN Invalid_operation +xorx868 xor 1000 NaN9 -> NaN Invalid_operation +xorx869 xor Inf +NaN10 -> NaN Invalid_operation +xorx871 xor sNaN11 -Inf -> NaN Invalid_operation +xorx872 xor sNaN12 -1000 -> NaN Invalid_operation +xorx873 xor sNaN13 1000 -> NaN Invalid_operation +xorx874 xor sNaN14 NaN17 -> NaN Invalid_operation +xorx875 xor sNaN15 sNaN18 -> NaN Invalid_operation +xorx876 xor NaN16 sNaN19 -> NaN Invalid_operation +xorx877 xor -Inf +sNaN20 -> NaN Invalid_operation +xorx878 xor -1000 sNaN21 -> NaN Invalid_operation +xorx879 xor 1000 sNaN22 -> NaN Invalid_operation +xorx880 xor Inf sNaN23 -> NaN Invalid_operation +xorx881 xor +NaN25 +sNaN24 -> NaN Invalid_operation +xorx882 xor -NaN26 NaN28 -> NaN Invalid_operation +xorx883 xor -sNaN27 sNaN29 -> NaN Invalid_operation +xorx884 xor 1000 -NaN30 -> NaN Invalid_operation +xorx885 xor 1000 -sNaN31 -> NaN Invalid_operation diff --git a/PC/VC6/_bsddb.dsp b/PC/VC6/_bsddb.dsp index 9cebad0b7f..809fc39b13 100644 --- a/PC/VC6/_bsddb.dsp +++ b/PC/VC6/_bsddb.dsp @@ -1,99 +1,99 @@ -# Microsoft Developer Studio Project File - Name="_bsddb" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=_bsddb - Win32 Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "_bsddb.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "_bsddb.mak" CFG="_bsddb - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "_bsddb - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "_bsddb - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName "_bsddb"
-# PROP Scc_LocalPath ".."
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "_bsddb - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-release\_bsddb"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-F90=df.exe
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\..\Include" /I ".." /I "..\..\..\db-4.7.25\build_windows" /D "Py_BUILD_CORE_MODULE" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib ..\..\..\db-4.7.25\build_windows\Release\libdb47s.lib /nologo /base:"0x1e180000" /subsystem:windows /dll /debug /machine:I386 /out:"./_bsddb.pyd"
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "_bsddb - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-debug\_bsddb"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-F90=df.exe
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /I "..\..\..\db-4.7.25\build_windows" /D "Py_BUILD_CORE_MODULE" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib ..\..\..\db-4.7.25\build_windows\Release\libdb47s.lib /nologo /base:"0x1e180000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"msvcrtd" /out:"./_bsddb_d.pyd" /pdbtype:sept
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF
-
-# Begin Target
-
-# Name "_bsddb - Win32 Release"
-# Name "_bsddb - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\..\Modules\_bsddb.c
-# End Source File
-# End Target
-# End Project
+# Microsoft Developer Studio Project File - Name="_bsddb" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=_bsddb - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "_bsddb.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "_bsddb.mak" CFG="_bsddb - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "_bsddb - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "_bsddb - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "_bsddb" +# PROP Scc_LocalPath ".." +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "_bsddb - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-release\_bsddb" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\..\Include" /I ".." /I "..\..\..\db-4.7.25\build_windows" /D "Py_BUILD_CORE_MODULE" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib ..\..\..\db-4.7.25\build_windows\Release\libdb47s.lib /nologo /base:"0x1e180000" /subsystem:windows /dll /debug /machine:I386 /out:"./_bsddb.pyd" +# SUBTRACT LINK32 /pdb:none + +!ELSEIF "$(CFG)" == "_bsddb - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-debug\_bsddb" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /I "..\..\..\db-4.7.25\build_windows" /D "Py_BUILD_CORE_MODULE" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib ..\..\..\db-4.7.25\build_windows\Release\libdb47s.lib /nologo /base:"0x1e180000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"msvcrtd" /out:"./_bsddb_d.pyd" /pdbtype:sept +# SUBTRACT LINK32 /pdb:none + +!ENDIF + +# Begin Target + +# Name "_bsddb - Win32 Release" +# Name "_bsddb - Win32 Debug" +# Begin Source File + +SOURCE=..\..\Modules\_bsddb.c +# End Source File +# End Target +# End Project diff --git a/PC/VC6/_ctypes.dsp b/PC/VC6/_ctypes.dsp index 1c98eac126..8ab89f6463 100644 --- a/PC/VC6/_ctypes.dsp +++ b/PC/VC6/_ctypes.dsp @@ -1,131 +1,131 @@ -# Microsoft Developer Studio Project File - Name="_ctypes" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=_ctypes - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "_ctypes.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "_ctypes.mak" CFG="_ctypes - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "_ctypes - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "_ctypes - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName "_ctypes"
-# PROP Scc_LocalPath ".."
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "_ctypes - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-release\_ctypes"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-F90=df.exe
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\..\Include" /I ".." /I "..\..\Modules\_ctypes\libffi_msvc" /D "Py_BUILD_CORE_MODULE" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x1d1a0000" /subsystem:windows /dll /debug /machine:I386 /out:"./_ctypes.pyd"
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "_ctypes - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-debug\_ctypes"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-F90=df.exe
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /I "..\..\Modules\_ctypes\libffi_msvc" /D "Py_BUILD_CORE_MODULE" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x1d1a0000" /subsystem:windows /dll /debug /machine:I386 /out:"./_ctypes_d.pyd" /pdbtype:sept
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF
-
-# Begin Target
-
-# Name "_ctypes - Win32 Release"
-# Name "_ctypes - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\..\Modules\_ctypes\_ctypes.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_ctypes\callbacks.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_ctypes\callproc.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_ctypes\cfield.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_ctypes\libffi_msvc\ffi.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_ctypes\malloc_closure.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_ctypes\libffi_msvc\prep_cif.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_ctypes\stgdict.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_ctypes\libffi_msvc\win32.c
-# End Source File
-# End Target
-# End Project
+# Microsoft Developer Studio Project File - Name="_ctypes" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=_ctypes - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "_ctypes.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "_ctypes.mak" CFG="_ctypes - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "_ctypes - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "_ctypes - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "_ctypes" +# PROP Scc_LocalPath ".." +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "_ctypes - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-release\_ctypes" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\..\Include" /I ".." /I "..\..\Modules\_ctypes\libffi_msvc" /D "Py_BUILD_CORE_MODULE" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x1d1a0000" /subsystem:windows /dll /debug /machine:I386 /out:"./_ctypes.pyd" +# SUBTRACT LINK32 /pdb:none + +!ELSEIF "$(CFG)" == "_ctypes - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-debug\_ctypes" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /I "..\..\Modules\_ctypes\libffi_msvc" /D "Py_BUILD_CORE_MODULE" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x1d1a0000" /subsystem:windows /dll /debug /machine:I386 /out:"./_ctypes_d.pyd" /pdbtype:sept +# SUBTRACT LINK32 /pdb:none + +!ENDIF + +# Begin Target + +# Name "_ctypes - Win32 Release" +# Name "_ctypes - Win32 Debug" +# Begin Source File + +SOURCE=..\..\Modules\_ctypes\_ctypes.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_ctypes\callbacks.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_ctypes\callproc.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_ctypes\cfield.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_ctypes\libffi_msvc\ffi.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_ctypes\malloc_closure.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_ctypes\libffi_msvc\prep_cif.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_ctypes\stgdict.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_ctypes\libffi_msvc\win32.c +# End Source File +# End Target +# End Project diff --git a/PC/VC6/_ctypes_test.dsp b/PC/VC6/_ctypes_test.dsp index d1eb217a49..75d2d1478a 100644 --- a/PC/VC6/_ctypes_test.dsp +++ b/PC/VC6/_ctypes_test.dsp @@ -1,99 +1,99 @@ -# Microsoft Developer Studio Project File - Name="_ctypes_test" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=_ctypes_test - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "_ctypes_test.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "_ctypes_test.mak" CFG="_ctypes_test - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "_ctypes_test - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "_ctypes_test - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName "_ctypes_test"
-# PROP Scc_LocalPath ".."
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "_ctypes_test - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-release\_ctypes_test"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-F90=df.exe
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"./_ctypes_test.pyd"
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "_ctypes_test - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-debug\_ctypes_test"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-F90=df.exe
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"./_ctypes_test_d.pyd" /pdbtype:sept
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF
-
-# Begin Target
-
-# Name "_ctypes_test - Win32 Release"
-# Name "_ctypes_test - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\..\Modules\_ctypes\_ctypes_test.c
-# End Source File
-# End Target
-# End Project
+# Microsoft Developer Studio Project File - Name="_ctypes_test" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=_ctypes_test - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "_ctypes_test.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "_ctypes_test.mak" CFG="_ctypes_test - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "_ctypes_test - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "_ctypes_test - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "_ctypes_test" +# PROP Scc_LocalPath ".." +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "_ctypes_test - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-release\_ctypes_test" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"./_ctypes_test.pyd" +# SUBTRACT LINK32 /pdb:none + +!ELSEIF "$(CFG)" == "_ctypes_test - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-debug\_ctypes_test" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"./_ctypes_test_d.pyd" /pdbtype:sept +# SUBTRACT LINK32 /pdb:none + +!ENDIF + +# Begin Target + +# Name "_ctypes_test - Win32 Release" +# Name "_ctypes_test - Win32 Debug" +# Begin Source File + +SOURCE=..\..\Modules\_ctypes\_ctypes_test.c +# End Source File +# End Target +# End Project diff --git a/PC/VC6/_elementtree.dsp b/PC/VC6/_elementtree.dsp index 8dc0cdd8f6..8ff3d25b86 100644 --- a/PC/VC6/_elementtree.dsp +++ b/PC/VC6/_elementtree.dsp @@ -1,111 +1,111 @@ -# Microsoft Developer Studio Project File - Name="_elementtree" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=_elementtree - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "_elementtree.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "_elementtree.mak" CFG="_elementtree - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "_elementtree - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "_elementtree - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName "_elementtree"
-# PROP Scc_LocalPath ".."
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "_elementtree - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-release\_elementtree"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-F90=df.exe
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\..\Include" /I ".." /I "..\..\Modules\expat" /D "Py_BUILD_CORE_MODULE" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "XML_NS" /D "XML_DTD" /D "BYTEORDER=1234" /D "XML_CONTEXT_BYTES=1024" /D "USE_PYEXPAT_CAPI" /D "XML_STATIC" /D "HAVE_MEMMOVE" /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x1d100000" /subsystem:windows /dll /debug /machine:I386 /out:"./_elementtree.pyd"
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "_elementtree - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-debug\_elementtree"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-F90=df.exe
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /I "..\..\Modules\expat" /D "Py_BUILD_CORE_MODULE" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "XML_NS" /D "XML_DTD" /D "BYTEORDER=1234" /D "XML_CONTEXT_BYTES=1024" /D "USE_PYEXPAT_CAPI" /D "XML_STATIC" /D "HAVE_MEMMOVE" /YX /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x1d100000" /subsystem:windows /dll /debug /machine:I386 /out:"./_elementtree_d.pyd" /pdbtype:sept
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF
-
-# Begin Target
-
-# Name "_elementtree - Win32 Release"
-# Name "_elementtree - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\..\Modules\_elementtree.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\expat\xmlparse.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\expat\xmlrole.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\expat\xmltok.c
-# End Source File
-# End Target
-# End Project
+# Microsoft Developer Studio Project File - Name="_elementtree" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=_elementtree - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "_elementtree.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "_elementtree.mak" CFG="_elementtree - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "_elementtree - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "_elementtree - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "_elementtree" +# PROP Scc_LocalPath ".." +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "_elementtree - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-release\_elementtree" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\..\Include" /I ".." /I "..\..\Modules\expat" /D "Py_BUILD_CORE_MODULE" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "XML_NS" /D "XML_DTD" /D "BYTEORDER=1234" /D "XML_CONTEXT_BYTES=1024" /D "USE_PYEXPAT_CAPI" /D "XML_STATIC" /D "HAVE_MEMMOVE" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x1d100000" /subsystem:windows /dll /debug /machine:I386 /out:"./_elementtree.pyd" +# SUBTRACT LINK32 /pdb:none + +!ELSEIF "$(CFG)" == "_elementtree - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-debug\_elementtree" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /I "..\..\Modules\expat" /D "Py_BUILD_CORE_MODULE" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "XML_NS" /D "XML_DTD" /D "BYTEORDER=1234" /D "XML_CONTEXT_BYTES=1024" /D "USE_PYEXPAT_CAPI" /D "XML_STATIC" /D "HAVE_MEMMOVE" /YX /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x1d100000" /subsystem:windows /dll /debug /machine:I386 /out:"./_elementtree_d.pyd" /pdbtype:sept +# SUBTRACT LINK32 /pdb:none + +!ENDIF + +# Begin Target + +# Name "_elementtree - Win32 Release" +# Name "_elementtree - Win32 Debug" +# Begin Source File + +SOURCE=..\..\Modules\_elementtree.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\expat\xmlparse.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\expat\xmlrole.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\expat\xmltok.c +# End Source File +# End Target +# End Project diff --git a/PC/VC6/_msi.dsp b/PC/VC6/_msi.dsp index 76a61bc597..aa6cc8df12 100644 --- a/PC/VC6/_msi.dsp +++ b/PC/VC6/_msi.dsp @@ -1,99 +1,99 @@ -# Microsoft Developer Studio Project File - Name="_msi" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=_msi - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "_msi.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "_msi.mak" CFG="_msi - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "_msi - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "_msi - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName "_msi"
-# PROP Scc_LocalPath ".."
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "_msi - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-release\_msi"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-F90=df.exe
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib fci.lib msi.lib rpcrt4.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib fci.lib msi.lib rpcrt4.lib /nologo /base:"0x1d1a0000" /subsystem:windows /dll /debug /machine:I386 /out:"./_msi.pyd"
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "_msi - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-debug\_msi"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-F90=df.exe
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib fci.lib msi.lib rpcrt4.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib fci.lib msi.lib rpcrt4.lib /nologo /base:"0x1d1a0000" /subsystem:windows /dll /debug /machine:I386 /out:"./_msi_d.pyd" /pdbtype:sept
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF
-
-# Begin Target
-
-# Name "_msi - Win32 Release"
-# Name "_msi - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\..\PC\_msi.c
-# End Source File
-# End Target
-# End Project
+# Microsoft Developer Studio Project File - Name="_msi" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=_msi - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "_msi.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "_msi.mak" CFG="_msi - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "_msi - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "_msi - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "_msi" +# PROP Scc_LocalPath ".." +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "_msi - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-release\_msi" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib fci.lib msi.lib rpcrt4.lib /nologo /subsystem:windows /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib fci.lib msi.lib rpcrt4.lib /nologo /base:"0x1d1a0000" /subsystem:windows /dll /debug /machine:I386 /out:"./_msi.pyd" +# SUBTRACT LINK32 /pdb:none + +!ELSEIF "$(CFG)" == "_msi - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-debug\_msi" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib fci.lib msi.lib rpcrt4.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib fci.lib msi.lib rpcrt4.lib /nologo /base:"0x1d1a0000" /subsystem:windows /dll /debug /machine:I386 /out:"./_msi_d.pyd" /pdbtype:sept +# SUBTRACT LINK32 /pdb:none + +!ENDIF + +# Begin Target + +# Name "_msi - Win32 Release" +# Name "_msi - Win32 Debug" +# Begin Source File + +SOURCE=..\..\PC\_msi.c +# End Source File +# End Target +# End Project diff --git a/PC/VC6/_multiprocessing.dsp b/PC/VC6/_multiprocessing.dsp index 2dcaf83ebe..32fdbd01a8 100644 --- a/PC/VC6/_multiprocessing.dsp +++ b/PC/VC6/_multiprocessing.dsp @@ -1,115 +1,115 @@ -# Microsoft Developer Studio Project File - Name="_multiprocessing" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=_multiprocessing - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "_multiprocessing.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "_multiprocessing.mak" CFG="_multiprocessing - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "_multiprocessing - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "_multiprocessing - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName "_multiprocessing"
-# PROP Scc_LocalPath ".."
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "_multiprocessing - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-release\_multiprocessing"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-F90=df.exe
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib /nologo /base:"0x1e1D0000" /subsystem:windows /dll /debug /machine:I386 /out:"./_multiprocessing.pyd"
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "_multiprocessing - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-debug\_multiprocessing"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-F90=df.exe
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib /nologo /base:"0x1e1d0000" /subsystem:windows /dll /debug /machine:I386 /out:"./_multiprocessing_d.pyd" /pdbtype:sept
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF
-
-# Begin Target
-
-# Name "_multiprocessing - Win32 Release"
-# Name "_multiprocessing - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\..\Modules\_multiprocessing\multiprocessing.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_multiprocessing\pipe_connection.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_multiprocessing\semaphore.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_multiprocessing\socket_connection.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_multiprocessing\win32_functions.c
-# End Source File
-# End Target
-# End Project
+# Microsoft Developer Studio Project File - Name="_multiprocessing" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=_multiprocessing - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "_multiprocessing.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "_multiprocessing.mak" CFG="_multiprocessing - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "_multiprocessing - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "_multiprocessing - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "_multiprocessing" +# PROP Scc_LocalPath ".." +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "_multiprocessing - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-release\_multiprocessing" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib /nologo /base:"0x1e1D0000" /subsystem:windows /dll /debug /machine:I386 /out:"./_multiprocessing.pyd" +# SUBTRACT LINK32 /pdb:none + +!ELSEIF "$(CFG)" == "_multiprocessing - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-debug\_multiprocessing" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib /nologo /base:"0x1e1d0000" /subsystem:windows /dll /debug /machine:I386 /out:"./_multiprocessing_d.pyd" /pdbtype:sept +# SUBTRACT LINK32 /pdb:none + +!ENDIF + +# Begin Target + +# Name "_multiprocessing - Win32 Release" +# Name "_multiprocessing - Win32 Debug" +# Begin Source File + +SOURCE=..\..\Modules\_multiprocessing\multiprocessing.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_multiprocessing\pipe_connection.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_multiprocessing\semaphore.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_multiprocessing\socket_connection.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_multiprocessing\win32_functions.c +# End Source File +# End Target +# End Project diff --git a/PC/VC6/_socket.dsp b/PC/VC6/_socket.dsp index 55ee8f2259..6de9ce710d 100644 --- a/PC/VC6/_socket.dsp +++ b/PC/VC6/_socket.dsp @@ -1,99 +1,99 @@ -# Microsoft Developer Studio Project File - Name="_socket" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=_socket - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "_socket.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "_socket.mak" CFG="_socket - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "_socket - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "_socket - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName "_socket"
-# PROP Scc_LocalPath ".."
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "_socket - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-release\_socket"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-F90=df.exe
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib /nologo /base:"0x1e1D0000" /subsystem:windows /dll /debug /machine:I386 /out:"./_socket.pyd"
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "_socket - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-debug\_socket"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-F90=df.exe
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib /nologo /base:"0x1e1D0000" /subsystem:windows /dll /debug /machine:I386 /out:"./_socket_d.pyd" /pdbtype:sept
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF
-
-# Begin Target
-
-# Name "_socket - Win32 Release"
-# Name "_socket - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\..\Modules\socketmodule.c
-# End Source File
-# End Target
-# End Project
+# Microsoft Developer Studio Project File - Name="_socket" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=_socket - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "_socket.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "_socket.mak" CFG="_socket - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "_socket - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "_socket - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "_socket" +# PROP Scc_LocalPath ".." +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "_socket - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-release\_socket" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib /nologo /base:"0x1e1D0000" /subsystem:windows /dll /debug /machine:I386 /out:"./_socket.pyd" +# SUBTRACT LINK32 /pdb:none + +!ELSEIF "$(CFG)" == "_socket - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-debug\_socket" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib /nologo /base:"0x1e1D0000" /subsystem:windows /dll /debug /machine:I386 /out:"./_socket_d.pyd" /pdbtype:sept +# SUBTRACT LINK32 /pdb:none + +!ENDIF + +# Begin Target + +# Name "_socket - Win32 Release" +# Name "_socket - Win32 Debug" +# Begin Source File + +SOURCE=..\..\Modules\socketmodule.c +# End Source File +# End Target +# End Project diff --git a/PC/VC6/_sqlite3.dsp b/PC/VC6/_sqlite3.dsp index 3869938007..7115a82334 100644 --- a/PC/VC6/_sqlite3.dsp +++ b/PC/VC6/_sqlite3.dsp @@ -1,131 +1,131 @@ -# Microsoft Developer Studio Project File - Name="_sqlite3" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=_sqlite3 - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "_sqlite3.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "_sqlite3.mak" CFG="_sqlite3 - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "_sqlite3 - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "_sqlite3 - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName "_sqlite3"
-# PROP Scc_LocalPath ".."
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "_sqlite3 - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-release\_sqlite3"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-F90=df.exe
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\..\Include" /I ".." /I "..\..\..\sqlite-source-3.3.4" /D "Py_BUILD_CORE_MODULE" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D MODULE_NAME=\"sqlite3\" /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\..\sqlite-source-3.3.4\sqlite3.lib /nologo /base:"0x1e180000" /subsystem:windows /dll /debug /machine:I386 /out:"./_sqlite3.pyd"
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "_sqlite3 - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-debug\_sqlite3"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-F90=df.exe
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /I "..\..\..\sqlite-source-3.3.4" /D "Py_BUILD_CORE_MODULE" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D MODULE_NAME=\"sqlite3\" /YX /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\..\sqlite-source-3.3.4\sqlite3.lib /nologo /base:"0x1e180000" /subsystem:windows /dll /debug /machine:I386 /out:"./_sqlite3_d.pyd" /pdbtype:sept
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF
-
-# Begin Target
-
-# Name "_sqlite3 - Win32 Release"
-# Name "_sqlite3 - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\..\Modules\_sqlite\cache.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_sqlite\connection.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_sqlite\cursor.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_sqlite\microprotocols.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_sqlite\module.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_sqlite\prepare_protocol.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_sqlite\row.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_sqlite\statement.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_sqlite\util.c
-# End Source File
-# End Target
-# End Project
+# Microsoft Developer Studio Project File - Name="_sqlite3" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=_sqlite3 - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "_sqlite3.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "_sqlite3.mak" CFG="_sqlite3 - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "_sqlite3 - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "_sqlite3 - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "_sqlite3" +# PROP Scc_LocalPath ".." +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "_sqlite3 - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-release\_sqlite3" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\..\Include" /I ".." /I "..\..\..\sqlite-source-3.3.4" /D "Py_BUILD_CORE_MODULE" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D MODULE_NAME=\"sqlite3\" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\..\sqlite-source-3.3.4\sqlite3.lib /nologo /base:"0x1e180000" /subsystem:windows /dll /debug /machine:I386 /out:"./_sqlite3.pyd" +# SUBTRACT LINK32 /pdb:none + +!ELSEIF "$(CFG)" == "_sqlite3 - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-debug\_sqlite3" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /I "..\..\..\sqlite-source-3.3.4" /D "Py_BUILD_CORE_MODULE" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D MODULE_NAME=\"sqlite3\" /YX /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\..\sqlite-source-3.3.4\sqlite3.lib /nologo /base:"0x1e180000" /subsystem:windows /dll /debug /machine:I386 /out:"./_sqlite3_d.pyd" /pdbtype:sept +# SUBTRACT LINK32 /pdb:none + +!ENDIF + +# Begin Target + +# Name "_sqlite3 - Win32 Release" +# Name "_sqlite3 - Win32 Debug" +# Begin Source File + +SOURCE=..\..\Modules\_sqlite\cache.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_sqlite\connection.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_sqlite\cursor.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_sqlite\microprotocols.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_sqlite\module.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_sqlite\prepare_protocol.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_sqlite\row.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_sqlite\statement.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_sqlite\util.c +# End Source File +# End Target +# End Project diff --git a/PC/VC6/_ssl.dsp b/PC/VC6/_ssl.dsp index e8bb993475..bd5e68afff 100644 --- a/PC/VC6/_ssl.dsp +++ b/PC/VC6/_ssl.dsp @@ -1,89 +1,89 @@ -# Microsoft Developer Studio Project File - Name="_ssl" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) External Target" 0x0106
-
-CFG=_ssl - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "_ssl.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "_ssl.mak" CFG="_ssl - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "_ssl - Win32 Release" (based on "Win32 (x86) External Target")
-!MESSAGE "_ssl - Win32 Debug" (based on "Win32 (x86) External Target")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-
-!IF "$(CFG)" == "_ssl - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Cmd_Line "NMAKE /f _ssl.mak"
-# PROP BASE Rebuild_Opt "/a"
-# PROP BASE Target_File "_ssl.exe"
-# PROP BASE Bsc_Name "_ssl.bsc"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-release\_ssl"
-# PROP Cmd_Line "python build_ssl.py"
-# PROP Rebuild_Opt "-a"
-# PROP Target_File "_ssl.pyd"
-# PROP Bsc_Name ""
-# PROP Target_Dir ""
-
-!ELSEIF "$(CFG)" == "_ssl - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "x86-temp-debug\_ssl"
-# PROP BASE Intermediate_Dir "x86-temp-debug\_ssl"
-# PROP BASE Cmd_Line "NMAKE /f _ssl.mak"
-# PROP BASE Rebuild_Opt "/a"
-# PROP BASE Target_File "_ssl_d.pyd"
-# PROP BASE Bsc_Name "_ssl_d.bsc"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-debug\_ssl"
-# PROP Cmd_Line "python_d -u build_ssl.py -d"
-# PROP Rebuild_Opt "-a"
-# PROP Target_File "_ssl_d.pyd"
-# PROP Bsc_Name ""
-# PROP Target_Dir ""
-
-!ENDIF
-
-# Begin Target
-
-# Name "_ssl - Win32 Release"
-# Name "_ssl - Win32 Debug"
-
-!IF "$(CFG)" == "_ssl - Win32 Release"
-
-!ELSEIF "$(CFG)" == "_ssl - Win32 Debug"
-
-!ENDIF
-
-# Begin Source File
-
-SOURCE=..\..\Modules\_ssl.c
-# End Source File
-# End Target
-# End Project
+# Microsoft Developer Studio Project File - Name="_ssl" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) External Target" 0x0106 + +CFG=_ssl - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "_ssl.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "_ssl.mak" CFG="_ssl - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "_ssl - Win32 Release" (based on "Win32 (x86) External Target") +!MESSAGE "_ssl - Win32 Debug" (based on "Win32 (x86) External Target") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" + +!IF "$(CFG)" == "_ssl - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Cmd_Line "NMAKE /f _ssl.mak" +# PROP BASE Rebuild_Opt "/a" +# PROP BASE Target_File "_ssl.exe" +# PROP BASE Bsc_Name "_ssl.bsc" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-release\_ssl" +# PROP Cmd_Line "python build_ssl.py" +# PROP Rebuild_Opt "-a" +# PROP Target_File "_ssl.pyd" +# PROP Bsc_Name "" +# PROP Target_Dir "" + +!ELSEIF "$(CFG)" == "_ssl - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "x86-temp-debug\_ssl" +# PROP BASE Intermediate_Dir "x86-temp-debug\_ssl" +# PROP BASE Cmd_Line "NMAKE /f _ssl.mak" +# PROP BASE Rebuild_Opt "/a" +# PROP BASE Target_File "_ssl_d.pyd" +# PROP BASE Bsc_Name "_ssl_d.bsc" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-debug\_ssl" +# PROP Cmd_Line "python_d -u build_ssl.py -d" +# PROP Rebuild_Opt "-a" +# PROP Target_File "_ssl_d.pyd" +# PROP Bsc_Name "" +# PROP Target_Dir "" + +!ENDIF + +# Begin Target + +# Name "_ssl - Win32 Release" +# Name "_ssl - Win32 Debug" + +!IF "$(CFG)" == "_ssl - Win32 Release" + +!ELSEIF "$(CFG)" == "_ssl - Win32 Debug" + +!ENDIF + +# Begin Source File + +SOURCE=..\..\Modules\_ssl.c +# End Source File +# End Target +# End Project diff --git a/PC/VC6/_testcapi.dsp b/PC/VC6/_testcapi.dsp index 0eaa25a1f0..746a2c006d 100644 --- a/PC/VC6/_testcapi.dsp +++ b/PC/VC6/_testcapi.dsp @@ -1,99 +1,99 @@ -# Microsoft Developer Studio Project File - Name="_testcapi" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=_testcapi - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "_testcapi.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "_testcapi.mak" CFG="_testcapi - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "_testcapi - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "_testcapi - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName "_testcapi"
-# PROP Scc_LocalPath ".."
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "_testcapi - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-release\_testcapi"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-F90=df.exe
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MMAP_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MMAP_EXPORTS" /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0xc09 /d "NDEBUG"
-# ADD RSC /l 0xc09 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x1e1F0000" /dll /machine:I386 /out:"./_testcapi.pyd"
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "_testcapi - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-debug\_testcapi"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-F90=df.exe
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MMAP_EXPORTS" /YX /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MMAP_EXPORTS" /YX /FD /GZ /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0xc09 /d "_DEBUG"
-# ADD RSC /l 0xc09 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x1e1F0000" /dll /debug /machine:I386 /out:"./_testcapi_d.pyd" /pdbtype:sept
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF
-
-# Begin Target
-
-# Name "_testcapi - Win32 Release"
-# Name "_testcapi - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\..\Modules\_testcapimodule.c
-# End Source File
-# End Target
-# End Project
+# Microsoft Developer Studio Project File - Name="_testcapi" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=_testcapi - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "_testcapi.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "_testcapi.mak" CFG="_testcapi - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "_testcapi - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "_testcapi - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "_testcapi" +# PROP Scc_LocalPath ".." +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "_testcapi - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-release\_testcapi" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MMAP_EXPORTS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MMAP_EXPORTS" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0xc09 /d "NDEBUG" +# ADD RSC /l 0xc09 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x1e1F0000" /dll /machine:I386 /out:"./_testcapi.pyd" +# SUBTRACT LINK32 /pdb:none + +!ELSEIF "$(CFG)" == "_testcapi - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-debug\_testcapi" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MMAP_EXPORTS" /YX /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MMAP_EXPORTS" /YX /FD /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0xc09 /d "_DEBUG" +# ADD RSC /l 0xc09 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x1e1F0000" /dll /debug /machine:I386 /out:"./_testcapi_d.pyd" /pdbtype:sept +# SUBTRACT LINK32 /pdb:none + +!ENDIF + +# Begin Target + +# Name "_testcapi - Win32 Release" +# Name "_testcapi - Win32 Debug" +# Begin Source File + +SOURCE=..\..\Modules\_testcapimodule.c +# End Source File +# End Target +# End Project diff --git a/PC/VC6/_tkinter.dsp b/PC/VC6/_tkinter.dsp index 5d69f590c1..496b6c1b59 100644 --- a/PC/VC6/_tkinter.dsp +++ b/PC/VC6/_tkinter.dsp @@ -1,103 +1,103 @@ -# Microsoft Developer Studio Project File - Name="_tkinter" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=_tkinter - Win32 Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "_tkinter.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "_tkinter.mak" CFG="_tkinter - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "_tkinter - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "_tkinter - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName "_tkinter"
-# PROP Scc_LocalPath "..\..\.."
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "_tkinter - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-debug\_tkinter"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-F90=df.exe
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\tcltk\include" /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "WITH_APPINIT" /YX /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 ..\..\..\tcltk\lib\tk85g.lib ..\..\..\tcltk\lib\tcl85g.lib odbc32.lib odbccp32.lib user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /base:"0x1e190000" /subsystem:windows /dll /debug /machine:I386 /out:"./_tkinter_d.pyd" /pdbtype:sept
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "_tkinter - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-release\_tkinter"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-F90=df.exe
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\..\..\tcltk\include" /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "WITH_APPINIT" /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 ..\..\..\tcltk\lib\tk85.lib ..\..\..\tcltk\lib\tcl85.lib odbc32.lib odbccp32.lib user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /base:"0x1e190000" /subsystem:windows /dll /debug /machine:I386 /out:"./_tkinter.pyd"
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF
-
-# Begin Target
-
-# Name "_tkinter - Win32 Release"
-# Name "_tkinter - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\..\Modules\_tkinter.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\tkappinit.c
-# End Source File
-# End Target
-# End Project
+# Microsoft Developer Studio Project File - Name="_tkinter" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=_tkinter - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "_tkinter.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "_tkinter.mak" CFG="_tkinter - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "_tkinter - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "_tkinter - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "_tkinter" +# PROP Scc_LocalPath "..\..\.." +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "_tkinter - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-debug\_tkinter" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\tcltk\include" /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "WITH_APPINIT" /YX /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 ..\..\..\tcltk\lib\tk85g.lib ..\..\..\tcltk\lib\tcl85g.lib odbc32.lib odbccp32.lib user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /base:"0x1e190000" /subsystem:windows /dll /debug /machine:I386 /out:"./_tkinter_d.pyd" /pdbtype:sept +# SUBTRACT LINK32 /pdb:none + +!ELSEIF "$(CFG)" == "_tkinter - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-release\_tkinter" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\..\..\tcltk\include" /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "WITH_APPINIT" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# ADD LINK32 ..\..\..\tcltk\lib\tk85.lib ..\..\..\tcltk\lib\tcl85.lib odbc32.lib odbccp32.lib user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /base:"0x1e190000" /subsystem:windows /dll /debug /machine:I386 /out:"./_tkinter.pyd" +# SUBTRACT LINK32 /pdb:none + +!ENDIF + +# Begin Target + +# Name "_tkinter - Win32 Release" +# Name "_tkinter - Win32 Debug" +# Begin Source File + +SOURCE=..\..\Modules\_tkinter.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\tkappinit.c +# End Source File +# End Target +# End Project diff --git a/PC/VC6/bz2.dsp b/PC/VC6/bz2.dsp index 3c164fa957..7aa16863f0 100644 --- a/PC/VC6/bz2.dsp +++ b/PC/VC6/bz2.dsp @@ -1,99 +1,99 @@ -# Microsoft Developer Studio Project File - Name="bz2" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=bz2 - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "bz2.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "bz2.mak" CFG="bz2 - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "bz2 - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "bz2 - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName "bz2"
-# PROP Scc_LocalPath ".."
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "bz2 - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-release\bz2"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-F90=df.exe
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\..\Include" /I ".." /I "..\..\..\bzip2-1.0.5" /D "Py_BUILD_CORE_MODULE" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 ..\..\..\bzip2-1.0.5\libbz2.lib /nologo /base:"0x1D170000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"libc" /out:"./bz2.pyd"
-# SUBTRACT LINK32 /pdb:none /nodefaultlib
-
-!ELSEIF "$(CFG)" == "bz2 - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-debug\bz2"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-F90=df.exe
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /I "..\..\..\bzip2-1.0.5" /D "Py_BUILD_CORE_MODULE" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 ..\..\..\bzip2-1.0.5\libbz2.lib /nologo /base:"0x1D170000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"msvcrt" /nodefaultlib:"libc" /out:"./bz2_d.pyd" /pdbtype:sept
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF
-
-# Begin Target
-
-# Name "bz2 - Win32 Release"
-# Name "bz2 - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\..\Modules\bz2module.c
-# End Source File
-# End Target
-# End Project
+# Microsoft Developer Studio Project File - Name="bz2" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=bz2 - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "bz2.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "bz2.mak" CFG="bz2 - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "bz2 - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "bz2 - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "bz2" +# PROP Scc_LocalPath ".." +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "bz2 - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-release\bz2" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\..\Include" /I ".." /I "..\..\..\bzip2-1.0.5" /D "Py_BUILD_CORE_MODULE" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# ADD LINK32 ..\..\..\bzip2-1.0.5\libbz2.lib /nologo /base:"0x1D170000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"libc" /out:"./bz2.pyd" +# SUBTRACT LINK32 /pdb:none /nodefaultlib + +!ELSEIF "$(CFG)" == "bz2 - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-debug\bz2" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /I "..\..\..\bzip2-1.0.5" /D "Py_BUILD_CORE_MODULE" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 ..\..\..\bzip2-1.0.5\libbz2.lib /nologo /base:"0x1D170000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"msvcrt" /nodefaultlib:"libc" /out:"./bz2_d.pyd" /pdbtype:sept +# SUBTRACT LINK32 /pdb:none + +!ENDIF + +# Begin Target + +# Name "bz2 - Win32 Release" +# Name "bz2 - Win32 Debug" +# Begin Source File + +SOURCE=..\..\Modules\bz2module.c +# End Source File +# End Target +# End Project diff --git a/PC/VC6/make_versioninfo.dsp b/PC/VC6/make_versioninfo.dsp index a735e123bf..766adef5fb 100644 --- a/PC/VC6/make_versioninfo.dsp +++ b/PC/VC6/make_versioninfo.dsp @@ -1,108 +1,108 @@ -# Microsoft Developer Studio Project File - Name="make_versioninfo" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=make_versioninfo - Win32 Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "make_versioninfo.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "make_versioninfo.mak" CFG="make_versioninfo - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "make_versioninfo - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "make_versioninfo - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName "make_versioninfo"
-# PROP Scc_LocalPath ".."
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "make_versioninfo - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-release\make_versioninfo"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\..\Include" /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /base:"0x1d000000" /subsystem:console /debug /machine:I386
-# SUBTRACT LINK32 /pdb:none
-# Begin Custom Build
-InputPath=.\make_versioninfo.exe
-SOURCE="$(InputPath)"
-
-"..\pythonnt_rc.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- .\make_versioninfo.exe >..\pythonnt_rc.h
-
-# End Custom Build
-
-!ELSEIF "$(CFG)" == "make_versioninfo - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-debug\make_versioninfo"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /i "..\..\Include" /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /base:"0x1d000000" /subsystem:console /debug /machine:I386 /out:"./make_versioninfo_d.exe" /pdbtype:sept
-# SUBTRACT LINK32 /pdb:none
-# Begin Custom Build
-InputPath=.\make_versioninfo_d.exe
-SOURCE="$(InputPath)"
-
-"..\pythonnt_rc_d.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- .\make_versioninfo_d.exe >..\pythonnt_rc_d.h
-
-# End Custom Build
-
-!ENDIF
-
-# Begin Target
-
-# Name "make_versioninfo - Win32 Release"
-# Name "make_versioninfo - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\make_versioninfo.c
-# End Source File
-# End Target
-# End Project
+# Microsoft Developer Studio Project File - Name="make_versioninfo" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=make_versioninfo - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "make_versioninfo.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "make_versioninfo.mak" CFG="make_versioninfo - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "make_versioninfo - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "make_versioninfo - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "make_versioninfo" +# PROP Scc_LocalPath ".." +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "make_versioninfo - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-release\make_versioninfo" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\..\Include" /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /base:"0x1d000000" /subsystem:console /debug /machine:I386 +# SUBTRACT LINK32 /pdb:none +# Begin Custom Build +InputPath=.\make_versioninfo.exe +SOURCE="$(InputPath)" + +"..\pythonnt_rc.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + .\make_versioninfo.exe >..\pythonnt_rc.h + +# End Custom Build + +!ELSEIF "$(CFG)" == "make_versioninfo - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-debug\make_versioninfo" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /i "..\..\Include" /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /base:"0x1d000000" /subsystem:console /debug /machine:I386 /out:"./make_versioninfo_d.exe" /pdbtype:sept +# SUBTRACT LINK32 /pdb:none +# Begin Custom Build +InputPath=.\make_versioninfo_d.exe +SOURCE="$(InputPath)" + +"..\pythonnt_rc_d.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + .\make_versioninfo_d.exe >..\pythonnt_rc_d.h + +# End Custom Build + +!ENDIF + +# Begin Target + +# Name "make_versioninfo - Win32 Release" +# Name "make_versioninfo - Win32 Debug" +# Begin Source File + +SOURCE=..\make_versioninfo.c +# End Source File +# End Target +# End Project diff --git a/PC/VC6/pcbuild.dsw b/PC/VC6/pcbuild.dsw index c10c7942ad..606f838b31 100644 --- a/PC/VC6/pcbuild.dsw +++ b/PC/VC6/pcbuild.dsw @@ -1,320 +1,320 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "_bsddb"=".\_bsddb.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name pythoncore
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "_ctypes"=".\_ctypes.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name pythoncore
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "_ctypes_test"=".\_ctypes_test.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "_elementtree"=".\_elementtree.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "_msi"=".\_msi.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name pythoncore
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "_multiprocessing"=".\_multiprocessing.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name pythoncore
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "_socket"=".\_socket.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name pythoncore
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "_sqlite3"=".\_sqlite3.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "_ssl"=".\_ssl.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name pythoncore
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name python
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name w9xpopen
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "_testcapi"=".\_testcapi.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name pythoncore
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "_tkinter"=".\_tkinter.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name pythoncore
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "bz2"=".\bz2.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "make_versioninfo"=".\make_versioninfo.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "pyexpat"=".\pyexpat.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name pythoncore
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "python"=".\python.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name pythoncore
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "pythoncore"=".\pythoncore.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name make_versioninfo
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "pythonw"=".\pythonw.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name pythoncore
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "select"=".\select.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name pythoncore
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "unicodedata"=".\unicodedata.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name pythoncore
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "w9xpopen"=".\w9xpopen.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "winsound"=".\winsound.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name pythoncore
- End Project Dependency
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
+Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "_bsddb"=".\_bsddb.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name pythoncore + End Project Dependency +}}} + +############################################################################### + +Project: "_ctypes"=".\_ctypes.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name pythoncore + End Project Dependency +}}} + +############################################################################### + +Project: "_ctypes_test"=".\_ctypes_test.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "_elementtree"=".\_elementtree.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "_msi"=".\_msi.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name pythoncore + End Project Dependency +}}} + +############################################################################### + +Project: "_multiprocessing"=".\_multiprocessing.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name pythoncore + End Project Dependency +}}} + +############################################################################### + +Project: "_socket"=".\_socket.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name pythoncore + End Project Dependency +}}} + +############################################################################### + +Project: "_sqlite3"=".\_sqlite3.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "_ssl"=".\_ssl.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name pythoncore + End Project Dependency + Begin Project Dependency + Project_Dep_Name python + End Project Dependency + Begin Project Dependency + Project_Dep_Name w9xpopen + End Project Dependency +}}} + +############################################################################### + +Project: "_testcapi"=".\_testcapi.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name pythoncore + End Project Dependency +}}} + +############################################################################### + +Project: "_tkinter"=".\_tkinter.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name pythoncore + End Project Dependency +}}} + +############################################################################### + +Project: "bz2"=".\bz2.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "make_versioninfo"=".\make_versioninfo.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "pyexpat"=".\pyexpat.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name pythoncore + End Project Dependency +}}} + +############################################################################### + +Project: "python"=".\python.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name pythoncore + End Project Dependency +}}} + +############################################################################### + +Project: "pythoncore"=".\pythoncore.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name make_versioninfo + End Project Dependency +}}} + +############################################################################### + +Project: "pythonw"=".\pythonw.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name pythoncore + End Project Dependency +}}} + +############################################################################### + +Project: "select"=".\select.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name pythoncore + End Project Dependency +}}} + +############################################################################### + +Project: "unicodedata"=".\unicodedata.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name pythoncore + End Project Dependency +}}} + +############################################################################### + +Project: "w9xpopen"=".\w9xpopen.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "winsound"=".\winsound.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name pythoncore + End Project Dependency +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/PC/VC6/pyexpat.dsp b/PC/VC6/pyexpat.dsp index 561c9ef94d..163662797c 100644 --- a/PC/VC6/pyexpat.dsp +++ b/PC/VC6/pyexpat.dsp @@ -1,111 +1,111 @@ -# Microsoft Developer Studio Project File - Name="pyexpat" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=pyexpat - Win32 Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "pyexpat.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "pyexpat.mak" CFG="pyexpat - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "pyexpat - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "pyexpat - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName "pyexpat"
-# PROP Scc_LocalPath ".."
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "pyexpat - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-release\pyexpat"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-F90=df.exe
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\..\Include" /I ".." /I "..\..\Modules\expat" /D "Py_BUILD_CORE_MODULE" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "XML_NS" /D "XML_DTD" /D BYTEORDER=1234 /D XML_CONTEXT_BYTES=1024 /D "XML_STATIC" /D "HAVE_MEMMOVE" /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x1D100000" /subsystem:windows /dll /debug /machine:I386 /out:"./pyexpat.pyd"
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "pyexpat - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-debug\pyexpat"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-F90=df.exe
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /I "..\..\Modules\expat" /D "Py_BUILD_CORE_MODULE" /D "_DEBUG" /D "HAVE_EXPAT_H" /D "WIN32" /D "_WINDOWS" /D "XML_NS" /D "XML_DTD" /D BYTEORDER=1234 /D XML_CONTEXT_BYTES=1024 /D "XML_STATIC" /D "HAVE_MEMMOVE" /YX /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x1D100000" /subsystem:windows /dll /debug /machine:I386 /out:"./pyexpat_d.pyd" /pdbtype:sept
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF
-
-# Begin Target
-
-# Name "pyexpat - Win32 Release"
-# Name "pyexpat - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\..\Modules\pyexpat.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\expat\xmlparse.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\expat\xmlrole.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\expat\xmltok.c
-# End Source File
-# End Target
-# End Project
+# Microsoft Developer Studio Project File - Name="pyexpat" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=pyexpat - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "pyexpat.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "pyexpat.mak" CFG="pyexpat - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "pyexpat - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "pyexpat - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "pyexpat" +# PROP Scc_LocalPath ".." +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "pyexpat - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-release\pyexpat" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\..\Include" /I ".." /I "..\..\Modules\expat" /D "Py_BUILD_CORE_MODULE" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "XML_NS" /D "XML_DTD" /D BYTEORDER=1234 /D XML_CONTEXT_BYTES=1024 /D "XML_STATIC" /D "HAVE_MEMMOVE" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x1D100000" /subsystem:windows /dll /debug /machine:I386 /out:"./pyexpat.pyd" +# SUBTRACT LINK32 /pdb:none + +!ELSEIF "$(CFG)" == "pyexpat - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-debug\pyexpat" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /I "..\..\Modules\expat" /D "Py_BUILD_CORE_MODULE" /D "_DEBUG" /D "HAVE_EXPAT_H" /D "WIN32" /D "_WINDOWS" /D "XML_NS" /D "XML_DTD" /D BYTEORDER=1234 /D XML_CONTEXT_BYTES=1024 /D "XML_STATIC" /D "HAVE_MEMMOVE" /YX /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x1D100000" /subsystem:windows /dll /debug /machine:I386 /out:"./pyexpat_d.pyd" /pdbtype:sept +# SUBTRACT LINK32 /pdb:none + +!ENDIF + +# Begin Target + +# Name "pyexpat - Win32 Release" +# Name "pyexpat - Win32 Debug" +# Begin Source File + +SOURCE=..\..\Modules\pyexpat.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\expat\xmlparse.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\expat\xmlrole.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\expat\xmltok.c +# End Source File +# End Target +# End Project diff --git a/PC/VC6/python.dsp b/PC/VC6/python.dsp index fa8b772a09..b64f5c194e 100644 --- a/PC/VC6/python.dsp +++ b/PC/VC6/python.dsp @@ -1,100 +1,100 @@ -# Microsoft Developer Studio Project File - Name="python" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=python - Win32 Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "python.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "python.mak" CFG="python - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "python - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "python - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName "python"
-# PROP Scc_LocalPath ".."
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "python - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-release\python"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\..\Include" /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /base:"0x1d000000" /subsystem:console /debug /machine:I386
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "python - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-debug\python"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /i "....\\Include" /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /base:"0x1d000000" /stack:0x200000 /subsystem:console /debug /machine:I386 /out:"./python_d.exe" /pdbtype:sept
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF
-
-# Begin Target
-
-# Name "python - Win32 Release"
-# Name "python - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\pycon.ico
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\python.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\python_exe.rc
-# End Source File
-# End Target
-# End Project
+# Microsoft Developer Studio Project File - Name="python" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=python - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "python.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "python.mak" CFG="python - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "python - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "python - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "python" +# PROP Scc_LocalPath ".." +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "python - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-release\python" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\..\Include" /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /base:"0x1d000000" /subsystem:console /debug /machine:I386 +# SUBTRACT LINK32 /pdb:none + +!ELSEIF "$(CFG)" == "python - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-debug\python" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /i "....\\Include" /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /base:"0x1d000000" /stack:0x200000 /subsystem:console /debug /machine:I386 /out:"./python_d.exe" /pdbtype:sept +# SUBTRACT LINK32 /pdb:none + +!ENDIF + +# Begin Target + +# Name "python - Win32 Release" +# Name "python - Win32 Debug" +# Begin Source File + +SOURCE=..\pycon.ico +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\python.c +# End Source File +# Begin Source File + +SOURCE=..\python_exe.rc +# End Source File +# End Target +# End Project diff --git a/PC/VC6/pythoncore.dsp b/PC/VC6/pythoncore.dsp index 4fe426afc7..893542ab4c 100644 --- a/PC/VC6/pythoncore.dsp +++ b/PC/VC6/pythoncore.dsp @@ -1,797 +1,797 @@ -# Microsoft Developer Studio Project File - Name="pythoncore" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=pythoncore - Win32 Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "pythoncore.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "pythoncore.mak" CFG="pythoncore - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "pythoncore - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "pythoncore - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName "pythoncore"
-# PROP Scc_LocalPath ".."
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "pythoncore - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-release\pythoncore"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-F90=df.exe
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\..\Include" /I ".." /I "..\..\modules\zlib" /D "Py_BUILD_CORE_MODULE" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "USE_DL_EXPORT" /YX /FD /Zm200 /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL"
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL"
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /i "..\..\Include" /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 largeint.lib kernel32.lib user32.lib advapi32.lib shell32.lib /nologo /base:"0x1e000000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"libc" /out:"./python27.dll"
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "pythoncore - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-debug\pythoncore"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-F90=df.exe
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /I "..\..\modules\zlib" /D "Py_BUILD_CORE_MODULE" /D "_DEBUG" /D "USE_DL_EXPORT" /D "WIN32" /D "_WINDOWS" /YX /FD /Zm200 /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL"
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL"
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /i "..\..\Include" /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 largeint.lib kernel32.lib user32.lib advapi32.lib shell32.lib /nologo /base:"0x1e000000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"libc" /out:"./python27_d.dll" /pdbtype:sept
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF
-
-# Begin Target
-
-# Name "pythoncore - Win32 Release"
-# Name "pythoncore - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\..\Modules\_bisectmodule.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\cjkcodecs\_codecs_cn.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\cjkcodecs\_codecs_hk.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\cjkcodecs\_codecs_iso2022.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\cjkcodecs\_codecs_jp.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\cjkcodecs\_codecs_kr.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\cjkcodecs\_codecs_tw.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_codecsmodule.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_collectionsmodule.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_csv.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_functoolsmodule.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_heapqmodule.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_hotshot.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_io\_iomodule.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_json.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_localemodule.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_lsprof.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_math.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_randommodule.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_sre.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_struct.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\PC\_subprocess.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\_warnings.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_weakref.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\_winreg.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\abstract.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Parser\acceler.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\zlib\adler32.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\arraymodule.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\asdl.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\ast.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\audioop.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\binascii.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Parser\bitset.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\bltinmodule.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\boolobject.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_io\bufferedio.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\bufferobject.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\bytearrayobject.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_io\bytesio.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\bytes_methods.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\capsule.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\cellobject.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\ceval.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\classobject.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\cmathmodule.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\cobject.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\codecs.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\codeobject.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\compile.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\complexobject.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\zlib\compress.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\config.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\cPickle.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\zlib\crc32.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\cStringIO.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\datetimemodule.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\zlib\deflate.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\descrobject.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\dictobject.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\dl_nt.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\dtoa.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\dynload_win.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\enumobject.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\errnomodule.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\errors.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\exceptions.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_io\fileio.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\fileobject.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Parser\firstsets.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\floatobject.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\formatter_string.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\formatter_unicode.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\frameobject.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\frozen.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\funcobject.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\future.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\future_builtins.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\gcmodule.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\genobject.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\getargs.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\getbuildinfo.c
-# ADD CPP /D BUILD=46
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\getcompiler.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\getcopyright.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\getopt.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\getpathp.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\getplatform.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\getversion.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\graminit.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Parser\grammar.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Parser\grammar1.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\zlib\gzio.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_io\iobase.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\imageop.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\import.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\import_nt.c
-# ADD CPP /I "..\..\Python"
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\importdl.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\zlib\infback.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\zlib\inffast.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\zlib\inflate.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\zlib\inftrees.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\intobject.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\iterobject.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\itertoolsmodule.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Parser\listnode.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\listobject.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\longobject.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\main.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\marshal.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\mathmodule.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\md5.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\md5module.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\memoryobject.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Parser\metagrammar.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\methodobject.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\mmapmodule.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\modsupport.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\moduleobject.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\msvcrtmodule.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\cjkcodecs\multibytecodec.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Parser\myreadline.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\mysnprintf.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\mystrtoul.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Parser\node.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\object.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\obmalloc.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\operator.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Parser\parser.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\parsermodule.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Parser\parsetok.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\peephole.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\posixmodule.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\pyarena.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\pyctype.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\pyfpe.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\pymath.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\pystate.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\pystrcmp.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\pystrtod.c
-# End Source File
-# Begin Source File
-
-SOURCE="..\..\Python\Python-ast.c"
-# End Source File
-# Begin Source File
-
-SOURCE=..\python_nt.rc
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\pythonrun.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\rangeobject.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\rotatingtree.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\setobject.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\sha256module.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\sha512module.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\shamodule.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\signalmodule.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\sliceobject.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_io\stringio.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\stringobject.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\stropmodule.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\structmember.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\structseq.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\symtable.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\symtablemodule.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\sysmodule.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\_io\textio.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\thread.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\threadmodule.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\timemodule.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Parser\tokenizer.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Python\traceback.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\zlib\trees.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\tupleobject.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\typeobject.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\zlib\uncompr.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\unicodectype.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\unicodeobject.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Objects\weakrefobject.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\xxsubtype.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\zipimport.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\zlibmodule.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\Modules\zlib\zutil.c
-# End Source File
-# End Target
-# End Project
+# Microsoft Developer Studio Project File - Name="pythoncore" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=pythoncore - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "pythoncore.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "pythoncore.mak" CFG="pythoncore - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "pythoncore - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "pythoncore - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "pythoncore" +# PROP Scc_LocalPath ".." +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "pythoncore - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-release\pythoncore" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\..\Include" /I ".." /I "..\..\modules\zlib" /D "Py_BUILD_CORE_MODULE" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "USE_DL_EXPORT" /YX /FD /Zm200 /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL" +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL" +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /i "..\..\Include" /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# ADD LINK32 largeint.lib kernel32.lib user32.lib advapi32.lib shell32.lib /nologo /base:"0x1e000000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"libc" /out:"./python27.dll" +# SUBTRACT LINK32 /pdb:none + +!ELSEIF "$(CFG)" == "pythoncore - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-debug\pythoncore" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /I "..\..\modules\zlib" /D "Py_BUILD_CORE_MODULE" /D "_DEBUG" /D "USE_DL_EXPORT" /D "WIN32" /D "_WINDOWS" /YX /FD /Zm200 /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL" +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL" +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /i "..\..\Include" /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 largeint.lib kernel32.lib user32.lib advapi32.lib shell32.lib /nologo /base:"0x1e000000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"libc" /out:"./python27_d.dll" /pdbtype:sept +# SUBTRACT LINK32 /pdb:none + +!ENDIF + +# Begin Target + +# Name "pythoncore - Win32 Release" +# Name "pythoncore - Win32 Debug" +# Begin Source File + +SOURCE=..\..\Modules\_bisectmodule.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\cjkcodecs\_codecs_cn.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\cjkcodecs\_codecs_hk.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\cjkcodecs\_codecs_iso2022.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\cjkcodecs\_codecs_jp.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\cjkcodecs\_codecs_kr.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\cjkcodecs\_codecs_tw.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_codecsmodule.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_collectionsmodule.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_csv.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_functoolsmodule.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_heapqmodule.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_hotshot.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_io\_iomodule.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_json.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_localemodule.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_lsprof.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_math.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_randommodule.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_sre.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_struct.c +# End Source File +# Begin Source File + +SOURCE=..\..\PC\_subprocess.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\_warnings.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_weakref.c +# End Source File +# Begin Source File + +SOURCE=..\_winreg.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\abstract.c +# End Source File +# Begin Source File + +SOURCE=..\..\Parser\acceler.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\zlib\adler32.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\arraymodule.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\asdl.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\ast.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\audioop.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\binascii.c +# End Source File +# Begin Source File + +SOURCE=..\..\Parser\bitset.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\bltinmodule.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\boolobject.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_io\bufferedio.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\bufferobject.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\bytearrayobject.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_io\bytesio.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\bytes_methods.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\capsule.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\cellobject.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\ceval.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\classobject.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\cmathmodule.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\cobject.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\codecs.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\codeobject.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\compile.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\complexobject.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\zlib\compress.c +# End Source File +# Begin Source File + +SOURCE=..\config.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\cPickle.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\zlib\crc32.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\cStringIO.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\datetimemodule.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\zlib\deflate.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\descrobject.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\dictobject.c +# End Source File +# Begin Source File + +SOURCE=..\dl_nt.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\dtoa.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\dynload_win.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\enumobject.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\errnomodule.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\errors.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\exceptions.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_io\fileio.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\fileobject.c +# End Source File +# Begin Source File + +SOURCE=..\..\Parser\firstsets.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\floatobject.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\formatter_string.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\formatter_unicode.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\frameobject.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\frozen.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\funcobject.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\future.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\future_builtins.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\gcmodule.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\genobject.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\getargs.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\getbuildinfo.c +# ADD CPP /D BUILD=46 +# End Source File +# Begin Source File + +SOURCE=..\..\Python\getcompiler.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\getcopyright.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\getopt.c +# End Source File +# Begin Source File + +SOURCE=..\getpathp.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\getplatform.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\getversion.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\graminit.c +# End Source File +# Begin Source File + +SOURCE=..\..\Parser\grammar.c +# End Source File +# Begin Source File + +SOURCE=..\..\Parser\grammar1.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\zlib\gzio.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_io\iobase.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\imageop.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\import.c +# End Source File +# Begin Source File + +SOURCE=..\import_nt.c +# ADD CPP /I "..\..\Python" +# End Source File +# Begin Source File + +SOURCE=..\..\Python\importdl.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\zlib\infback.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\zlib\inffast.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\zlib\inflate.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\zlib\inftrees.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\intobject.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\iterobject.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\itertoolsmodule.c +# End Source File +# Begin Source File + +SOURCE=..\..\Parser\listnode.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\listobject.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\longobject.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\main.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\marshal.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\mathmodule.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\md5.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\md5module.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\memoryobject.c +# End Source File +# Begin Source File + +SOURCE=..\..\Parser\metagrammar.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\methodobject.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\mmapmodule.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\modsupport.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\moduleobject.c +# End Source File +# Begin Source File + +SOURCE=..\msvcrtmodule.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\cjkcodecs\multibytecodec.c +# End Source File +# Begin Source File + +SOURCE=..\..\Parser\myreadline.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\mysnprintf.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\mystrtoul.c +# End Source File +# Begin Source File + +SOURCE=..\..\Parser\node.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\object.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\obmalloc.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\operator.c +# End Source File +# Begin Source File + +SOURCE=..\..\Parser\parser.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\parsermodule.c +# End Source File +# Begin Source File + +SOURCE=..\..\Parser\parsetok.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\peephole.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\posixmodule.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\pyarena.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\pyctype.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\pyfpe.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\pymath.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\pystate.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\pystrcmp.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\pystrtod.c +# End Source File +# Begin Source File + +SOURCE="..\..\Python\Python-ast.c" +# End Source File +# Begin Source File + +SOURCE=..\python_nt.rc +# End Source File +# Begin Source File + +SOURCE=..\..\Python\pythonrun.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\rangeobject.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\rotatingtree.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\setobject.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\sha256module.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\sha512module.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\shamodule.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\signalmodule.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\sliceobject.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_io\stringio.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\stringobject.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\stropmodule.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\structmember.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\structseq.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\symtable.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\symtablemodule.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\sysmodule.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\_io\textio.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\thread.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\threadmodule.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\timemodule.c +# End Source File +# Begin Source File + +SOURCE=..\..\Parser\tokenizer.c +# End Source File +# Begin Source File + +SOURCE=..\..\Python\traceback.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\zlib\trees.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\tupleobject.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\typeobject.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\zlib\uncompr.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\unicodectype.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\unicodeobject.c +# End Source File +# Begin Source File + +SOURCE=..\..\Objects\weakrefobject.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\xxsubtype.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\zipimport.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\zlibmodule.c +# End Source File +# Begin Source File + +SOURCE=..\..\Modules\zlib\zutil.c +# End Source File +# End Target +# End Project diff --git a/PC/VC6/pythonw.dsp b/PC/VC6/pythonw.dsp index e9c325c56d..5a075797a9 100644 --- a/PC/VC6/pythonw.dsp +++ b/PC/VC6/pythonw.dsp @@ -1,101 +1,101 @@ -# Microsoft Developer Studio Project File - Name="pythonw" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Application" 0x0101
-
-CFG=pythonw - Win32 Alpha Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "pythonw.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "pythonw.mak" CFG="pythonw - Win32 Alpha Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "pythonw - Win32 Release" (based on "Win32 (x86) Application")
-!MESSAGE "pythonw - Win32 Debug" (based on "Win32 (x86) Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName "pythonw"
-# PROP Scc_LocalPath "..\pc"
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "pythonw - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-release\pythonw"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\..\Include" /I ".." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x1d000000" /subsystem:windows /debug /machine:I386
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "pythonw - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-debug\pythonw"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x1d000000" /subsystem:windows /debug /machine:I386 /out:"./pythonw_d.exe" /pdbtype:sept
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF
-
-# Begin Target
-
-# Name "pythonw - Win32 Release"
-# Name "pythonw - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\python_exe.rc
-# End Source File
-# Begin Source File
-
-SOURCE=..\WinMain.c
-# End Source File
-# End Target
-# End Project
+# Microsoft Developer Studio Project File - Name="pythonw" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Application" 0x0101 + +CFG=pythonw - Win32 Alpha Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "pythonw.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "pythonw.mak" CFG="pythonw - Win32 Alpha Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "pythonw - Win32 Release" (based on "Win32 (x86) Application") +!MESSAGE "pythonw - Win32 Debug" (based on "Win32 (x86) Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "pythonw" +# PROP Scc_LocalPath "..\pc" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "pythonw - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-release\pythonw" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\..\Include" /I ".." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x1d000000" /subsystem:windows /debug /machine:I386 +# SUBTRACT LINK32 /pdb:none + +!ELSEIF "$(CFG)" == "pythonw - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-debug\pythonw" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x1d000000" /subsystem:windows /debug /machine:I386 /out:"./pythonw_d.exe" /pdbtype:sept +# SUBTRACT LINK32 /pdb:none + +!ENDIF + +# Begin Target + +# Name "pythonw - Win32 Release" +# Name "pythonw - Win32 Debug" +# Begin Source File + +SOURCE=..\python_exe.rc +# End Source File +# Begin Source File + +SOURCE=..\WinMain.c +# End Source File +# End Target +# End Project diff --git a/PC/VC6/select.dsp b/PC/VC6/select.dsp index 890ea6f08f..c0c6e12311 100644 --- a/PC/VC6/select.dsp +++ b/PC/VC6/select.dsp @@ -1,99 +1,99 @@ -# Microsoft Developer Studio Project File - Name="select" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=select - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "select.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "select.mak" CFG="select - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "select - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "select - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName "select"
-# PROP Scc_LocalPath ".."
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "select - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-release\select"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-F90=df.exe
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib /nologo /base:"0x1D110000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"libc" /out:"./select.pyd"
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "select - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-debug\select"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-F90=df.exe
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib /nologo /base:"0x1D110000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"libc" /nodefaultlib:"msvcrt" /out:"./select_d.pyd" /pdbtype:sept
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF
-
-# Begin Target
-
-# Name "select - Win32 Release"
-# Name "select - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\..\Modules\selectmodule.c
-# End Source File
-# End Target
-# End Project
+# Microsoft Developer Studio Project File - Name="select" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=select - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "select.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "select.mak" CFG="select - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "select - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "select - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "select" +# PROP Scc_LocalPath ".." +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "select - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-release\select" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib /nologo /base:"0x1D110000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"libc" /out:"./select.pyd" +# SUBTRACT LINK32 /pdb:none + +!ELSEIF "$(CFG)" == "select - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-debug\select" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib /nologo /base:"0x1D110000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"libc" /nodefaultlib:"msvcrt" /out:"./select_d.pyd" /pdbtype:sept +# SUBTRACT LINK32 /pdb:none + +!ENDIF + +# Begin Target + +# Name "select - Win32 Release" +# Name "select - Win32 Debug" +# Begin Source File + +SOURCE=..\..\Modules\selectmodule.c +# End Source File +# End Target +# End Project diff --git a/PC/VC6/unicodedata.dsp b/PC/VC6/unicodedata.dsp index a04db67e41..3b9a8b747e 100644 --- a/PC/VC6/unicodedata.dsp +++ b/PC/VC6/unicodedata.dsp @@ -1,99 +1,99 @@ -# Microsoft Developer Studio Project File - Name="unicodedata" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=unicodedata - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "unicodedata.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "unicodedata.mak" CFG="unicodedata - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "unicodedata - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "unicodedata - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName "unicodedata"
-# PROP Scc_LocalPath ".."
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "unicodedata - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-release\unicodedata"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-F90=df.exe
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MMAP_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MMAP_EXPORTS" /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0xc09 /d "NDEBUG"
-# ADD RSC /l 0xc09 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x1D120000" /dll /machine:I386 /out:"./unicodedata.pyd"
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "unicodedata - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-debug\unicodedata"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-F90=df.exe
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MMAP_EXPORTS" /YX /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MMAP_EXPORTS" /YX /FD /GZ /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0xc09 /d "_DEBUG"
-# ADD RSC /l 0xc09 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x1D120000" /dll /debug /machine:I386 /out:"./unicodedata_d.pyd" /pdbtype:sept
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF
-
-# Begin Target
-
-# Name "unicodedata - Win32 Release"
-# Name "unicodedata - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\..\Modules\unicodedata.c
-# End Source File
-# End Target
-# End Project
+# Microsoft Developer Studio Project File - Name="unicodedata" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=unicodedata - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "unicodedata.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "unicodedata.mak" CFG="unicodedata - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "unicodedata - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "unicodedata - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "unicodedata" +# PROP Scc_LocalPath ".." +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "unicodedata - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-release\unicodedata" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MMAP_EXPORTS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MMAP_EXPORTS" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0xc09 /d "NDEBUG" +# ADD RSC /l 0xc09 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x1D120000" /dll /machine:I386 /out:"./unicodedata.pyd" +# SUBTRACT LINK32 /pdb:none + +!ELSEIF "$(CFG)" == "unicodedata - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-debug\unicodedata" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MMAP_EXPORTS" /YX /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MMAP_EXPORTS" /YX /FD /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0xc09 /d "_DEBUG" +# ADD RSC /l 0xc09 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x1D120000" /dll /debug /machine:I386 /out:"./unicodedata_d.pyd" /pdbtype:sept +# SUBTRACT LINK32 /pdb:none + +!ENDIF + +# Begin Target + +# Name "unicodedata - Win32 Release" +# Name "unicodedata - Win32 Debug" +# Begin Source File + +SOURCE=..\..\Modules\unicodedata.c +# End Source File +# End Target +# End Project diff --git a/PC/VC6/w9xpopen.dsp b/PC/VC6/w9xpopen.dsp index 6a6403c3ab..ee63cb9cce 100644 --- a/PC/VC6/w9xpopen.dsp +++ b/PC/VC6/w9xpopen.dsp @@ -1,97 +1,97 @@ -# Microsoft Developer Studio Project File - Name="w9xpopen" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Application" 0x0101
-
-CFG=w9xpopen - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "w9xpopen.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "w9xpopen.mak" CFG="w9xpopen - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "w9xpopen - Win32 Release" (based on "Win32 (x86) Application")
-!MESSAGE "w9xpopen - Win32 Debug" (based on "Win32 (x86) Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "w9xpopen - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-release\w9xpopen"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0xc09 /d "NDEBUG"
-# ADD RSC /l 0xc09 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 user32.lib /nologo /machine:I386
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "w9xpopen - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-debug\w9xpopen"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0xc09 /d "_DEBUG"
-# ADD RSC /l 0xc09 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 user32.lib /nologo /debug /machine:I386 /out:"./w9xpopen_d.exe" /pdbtype:sept
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF
-
-# Begin Target
-
-# Name "w9xpopen - Win32 Release"
-# Name "w9xpopen - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\w9xpopen.c
-# End Source File
-# End Target
-# End Project
+# Microsoft Developer Studio Project File - Name="w9xpopen" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Application" 0x0101 + +CFG=w9xpopen - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "w9xpopen.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "w9xpopen.mak" CFG="w9xpopen - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "w9xpopen - Win32 Release" (based on "Win32 (x86) Application") +!MESSAGE "w9xpopen - Win32 Debug" (based on "Win32 (x86) Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "w9xpopen - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-release\w9xpopen" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0xc09 /d "NDEBUG" +# ADD RSC /l 0xc09 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 +# ADD LINK32 user32.lib /nologo /machine:I386 +# SUBTRACT LINK32 /pdb:none + +!ELSEIF "$(CFG)" == "w9xpopen - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-debug\w9xpopen" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0xc09 /d "_DEBUG" +# ADD RSC /l 0xc09 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept +# ADD LINK32 user32.lib /nologo /debug /machine:I386 /out:"./w9xpopen_d.exe" /pdbtype:sept +# SUBTRACT LINK32 /pdb:none + +!ENDIF + +# Begin Target + +# Name "w9xpopen - Win32 Release" +# Name "w9xpopen - Win32 Debug" +# Begin Source File + +SOURCE=..\w9xpopen.c +# End Source File +# End Target +# End Project diff --git a/PC/VC6/winsound.dsp b/PC/VC6/winsound.dsp index 6e09b9b74b..68e814c1b9 100644 --- a/PC/VC6/winsound.dsp +++ b/PC/VC6/winsound.dsp @@ -1,99 +1,99 @@ -# Microsoft Developer Studio Project File - Name="winsound" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=winsound - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "winsound.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "winsound.mak" CFG="winsound - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "winsound - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "winsound - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName "winsound"
-# PROP Scc_LocalPath "..\pc"
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "winsound - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-release\winsound"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-F90=df.exe
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "WINSOUND_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "WINSOUND_EXPORTS" /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0xc09 /d "NDEBUG"
-# ADD RSC /l 0xc09 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
-# ADD LINK32 kernel32.lib winmm.lib user32.lib /nologo /base:"0x1D160000" /dll /machine:I386 /out:"./winsound.pyd"
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "winsound - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "x86-temp-debug\winsound"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-F90=df.exe
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "WINSOUND_EXPORTS" /YX /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "WINSOUND_EXPORTS" /YX /FD /GZ /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0xc09 /d "_DEBUG"
-# ADD RSC /l 0xc09 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 user32.lib kernel32.lib winmm.lib /nologo /base:"0x1D160000" /dll /debug /machine:I386 /out:"./winsound_d.pyd" /pdbtype:sept
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF
-
-# Begin Target
-
-# Name "winsound - Win32 Release"
-# Name "winsound - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\winsound.c
-# End Source File
-# End Target
-# End Project
+# Microsoft Developer Studio Project File - Name="winsound" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=winsound - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "winsound.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "winsound.mak" CFG="winsound - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "winsound - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "winsound - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "winsound" +# PROP Scc_LocalPath "..\pc" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "winsound - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-release\winsound" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "WINSOUND_EXPORTS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "WINSOUND_EXPORTS" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0xc09 /d "NDEBUG" +# ADD RSC /l 0xc09 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 +# ADD LINK32 kernel32.lib winmm.lib user32.lib /nologo /base:"0x1D160000" /dll /machine:I386 /out:"./winsound.pyd" +# SUBTRACT LINK32 /pdb:none + +!ELSEIF "$(CFG)" == "winsound - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "." +# PROP Intermediate_Dir "x86-temp-debug\winsound" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "WINSOUND_EXPORTS" /YX /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Include" /I ".." /D "Py_BUILD_CORE_MODULE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "WINSOUND_EXPORTS" /YX /FD /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0xc09 /d "_DEBUG" +# ADD RSC /l 0xc09 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 user32.lib kernel32.lib winmm.lib /nologo /base:"0x1D160000" /dll /debug /machine:I386 /out:"./winsound_d.pyd" /pdbtype:sept +# SUBTRACT LINK32 /pdb:none + +!ENDIF + +# Begin Target + +# Name "winsound - Win32 Release" +# Name "winsound - Win32 Debug" +# Begin Source File + +SOURCE=..\winsound.c +# End Source File +# End Target +# End Project diff --git a/PC/VS7.1/build_ssl.bat b/PC/VS7.1/build_ssl.bat index 9aad44127b..f6be3c05f7 100644 --- a/PC/VS7.1/build_ssl.bat +++ b/PC/VS7.1/build_ssl.bat @@ -1,12 +1,12 @@ -if "%1" == "ReleaseAMD64" call "%MSSdk%\SetEnv" /XP64 /RETAIL
-
-@echo off
-if not defined HOST_PYTHON (
- if %1 EQU Debug (
- set HOST_PYTHON=python_d.exe
- ) ELSE (
- set HOST_PYTHON=python.exe
- )
-)
-%HOST_PYTHON% build_ssl.py %1 %2
-
+if "%1" == "ReleaseAMD64" call "%MSSdk%\SetEnv" /XP64 /RETAIL + +@echo off +if not defined HOST_PYTHON ( + if %1 EQU Debug ( + set HOST_PYTHON=python_d.exe + ) ELSE ( + set HOST_PYTHON=python.exe + ) +) +%HOST_PYTHON% build_ssl.py %1 %2 + diff --git a/PC/VS7.1/pcbuild.sln b/PC/VS7.1/pcbuild.sln index 336d3f700a..e44a39eefd 100644 --- a/PC/VS7.1/pcbuild.sln +++ b/PC/VS7.1/pcbuild.sln @@ -1,288 +1,288 @@ -Microsoft Visual Studio Solution File, Format Version 8.00
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_bsddb", "_bsddb.vcproj", "{E1DBB220-D64B-423D-A545-539A55AA7FE2}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_socket", "_socket.vcproj", "{324F66C2-44D0-4D50-B979-F9DAE7FD36DB}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ssl", "_ssl.vcproj", "{8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}"
- ProjectSection(ProjectDependencies) = postProject
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} = {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058} = {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testcapi", "_testcapi.vcproj", "{59CBF474-9E06-4C50-9142-C44A118BB447}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_tkinter", "_tkinter.vcproj", "{5B51DFF7-5DC0-41F8-8791-A4AB7114A151}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bz2", "bz2.vcproj", "{AC557788-6354-43F7-BE05-C9C8C59A344A}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_versioninfo", "make_versioninfo.vcproj", "{F0E0541E-F17D-430B-97C4-93ADF0DD284E}"
- ProjectSection(ProjectDependencies) = postProject
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pyexpat", "pyexpat.vcproj", "{7E551393-3C43-47F8-9F3F-5BC368A6C487}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python", "python.vcproj", "{B11D750F-CD1F-4A96-85CE-E69A5C5259F9}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythoncore", "pythoncore.vcproj", "{CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}"
- ProjectSection(ProjectDependencies) = postProject
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E} = {F0E0541E-F17D-430B-97C4-93ADF0DD284E}
- {C73F0EC1-358B-4177-940F-0846AC8B04CD} = {C73F0EC1-358B-4177-940F-0846AC8B04CD}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythonw", "pythonw.vcproj", "{F4229CC3-873C-49AE-9729-DD308ED4CD4A}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "select", "select.vcproj", "{97239A56-DBC0-41D2-BC14-C87D9B97D63B}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unicodedata", "unicodedata.vcproj", "{FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "w9xpopen", "w9xpopen.vcproj", "{E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}"
- ProjectSection(ProjectDependencies) = postProject
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winsound", "winsound.vcproj", "{51F35FAE-FB92-4B2C-9187-1542C065AD77}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_elementtree", "_elementtree.vcproj", "{1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_buildinfo", "make_buildinfo.vcproj", "{C73F0EC1-358B-4177-940F-0846AC8B04CD}"
- ProjectSection(ProjectDependencies) = postProject
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_msi", "_msi.vcproj", "{2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ctypes", "_ctypes.vcproj", "{F22F40F4-D318-40DC-96B3-88DC81CE0894}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ctypes_test", "_ctypes_test.vcproj", "{8CF334D9-4F82-42EB-97AF-83592C5AFD2F}"
- ProjectSection(ProjectDependencies) = postProject
- {F22F40F4-D318-40DC-96B3-88DC81CE0894} = {F22F40F4-D318-40DC-96B3-88DC81CE0894}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_sqlite3", "_sqlite3.vcproj", "{2FF0A312-22F9-4C34-B070-842916DE27A9}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Global
- GlobalSection(SolutionConfiguration) = preSolution
- Debug = Debug
- Release = Release
- ReleaseAMD64 = ReleaseAMD64
- ReleaseItanium = ReleaseItanium
- EndGlobalSection
- GlobalSection(ProjectConfiguration) = postSolution
- {E1DBB220-D64B-423D-A545-539A55AA7FE2}.Debug.ActiveCfg = Debug|Win32
- {E1DBB220-D64B-423D-A545-539A55AA7FE2}.Debug.Build.0 = Debug|Win32
- {E1DBB220-D64B-423D-A545-539A55AA7FE2}.Release.ActiveCfg = Release|Win32
- {E1DBB220-D64B-423D-A545-539A55AA7FE2}.Release.Build.0 = Release|Win32
- {E1DBB220-D64B-423D-A545-539A55AA7FE2}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32
- {E1DBB220-D64B-423D-A545-539A55AA7FE2}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32
- {E1DBB220-D64B-423D-A545-539A55AA7FE2}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32
- {E1DBB220-D64B-423D-A545-539A55AA7FE2}.ReleaseItanium.Build.0 = ReleaseItanium|Win32
- {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.Debug.ActiveCfg = Debug|Win32
- {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.Debug.Build.0 = Debug|Win32
- {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.Release.ActiveCfg = Release|Win32
- {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.Release.Build.0 = Release|Win32
- {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32
- {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32
- {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32
- {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.ReleaseItanium.Build.0 = ReleaseItanium|Win32
- {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.Debug.ActiveCfg = Debug|Win32
- {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.Debug.Build.0 = Debug|Win32
- {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.Release.ActiveCfg = Release|Win32
- {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.Release.Build.0 = Release|Win32
- {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32
- {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32
- {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32
- {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.ReleaseItanium.Build.0 = ReleaseItanium|Win32
- {59CBF474-9E06-4C50-9142-C44A118BB447}.Debug.ActiveCfg = Debug|Win32
- {59CBF474-9E06-4C50-9142-C44A118BB447}.Debug.Build.0 = Debug|Win32
- {59CBF474-9E06-4C50-9142-C44A118BB447}.Release.ActiveCfg = Release|Win32
- {59CBF474-9E06-4C50-9142-C44A118BB447}.Release.Build.0 = Release|Win32
- {59CBF474-9E06-4C50-9142-C44A118BB447}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32
- {59CBF474-9E06-4C50-9142-C44A118BB447}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32
- {59CBF474-9E06-4C50-9142-C44A118BB447}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32
- {59CBF474-9E06-4C50-9142-C44A118BB447}.ReleaseItanium.Build.0 = ReleaseItanium|Win32
- {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.Debug.ActiveCfg = Debug|Win32
- {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.Debug.Build.0 = Debug|Win32
- {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.Release.ActiveCfg = Release|Win32
- {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.Release.Build.0 = Release|Win32
- {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32
- {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32
- {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32
- {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.ReleaseItanium.Build.0 = ReleaseItanium|Win32
- {AC557788-6354-43F7-BE05-C9C8C59A344A}.Debug.ActiveCfg = Debug|Win32
- {AC557788-6354-43F7-BE05-C9C8C59A344A}.Debug.Build.0 = Debug|Win32
- {AC557788-6354-43F7-BE05-C9C8C59A344A}.Release.ActiveCfg = Release|Win32
- {AC557788-6354-43F7-BE05-C9C8C59A344A}.Release.Build.0 = Release|Win32
- {AC557788-6354-43F7-BE05-C9C8C59A344A}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32
- {AC557788-6354-43F7-BE05-C9C8C59A344A}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32
- {AC557788-6354-43F7-BE05-C9C8C59A344A}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32
- {AC557788-6354-43F7-BE05-C9C8C59A344A}.ReleaseItanium.Build.0 = ReleaseItanium|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug.ActiveCfg = Debug|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug.Build.0 = Debug|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release.ActiveCfg = Release|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release.Build.0 = Release|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.ReleaseAMD64.ActiveCfg = Release|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.ReleaseAMD64.Build.0 = Release|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.ReleaseItanium.ActiveCfg = Release|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.ReleaseItanium.Build.0 = Release|Win32
- {7E551393-3C43-47F8-9F3F-5BC368A6C487}.Debug.ActiveCfg = Debug|Win32
- {7E551393-3C43-47F8-9F3F-5BC368A6C487}.Debug.Build.0 = Debug|Win32
- {7E551393-3C43-47F8-9F3F-5BC368A6C487}.Release.ActiveCfg = Release|Win32
- {7E551393-3C43-47F8-9F3F-5BC368A6C487}.Release.Build.0 = Release|Win32
- {7E551393-3C43-47F8-9F3F-5BC368A6C487}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32
- {7E551393-3C43-47F8-9F3F-5BC368A6C487}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32
- {7E551393-3C43-47F8-9F3F-5BC368A6C487}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32
- {7E551393-3C43-47F8-9F3F-5BC368A6C487}.ReleaseItanium.Build.0 = ReleaseItanium|Win32
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug.ActiveCfg = Debug|Win32
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug.Build.0 = Debug|Win32
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release.ActiveCfg = Release|Win32
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release.Build.0 = Release|Win32
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.ReleaseItanium.Build.0 = ReleaseItanium|Win32
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug.ActiveCfg = Debug|Win32
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug.Build.0 = Debug|Win32
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release.ActiveCfg = Release|Win32
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release.Build.0 = Release|Win32
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.ReleaseItanium.Build.0 = ReleaseItanium|Win32
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug.ActiveCfg = Debug|Win32
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug.Build.0 = Debug|Win32
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release.ActiveCfg = Release|Win32
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release.Build.0 = Release|Win32
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.ReleaseItanium.Build.0 = ReleaseItanium|Win32
- {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.Debug.ActiveCfg = Debug|Win32
- {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.Debug.Build.0 = Debug|Win32
- {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.Release.ActiveCfg = Release|Win32
- {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.Release.Build.0 = Release|Win32
- {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32
- {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32
- {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32
- {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.ReleaseItanium.Build.0 = ReleaseItanium|Win32
- {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.Debug.ActiveCfg = Debug|Win32
- {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.Debug.Build.0 = Debug|Win32
- {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.Release.ActiveCfg = Release|Win32
- {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.Release.Build.0 = Release|Win32
- {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32
- {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32
- {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32
- {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.ReleaseItanium.Build.0 = ReleaseItanium|Win32
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug.ActiveCfg = Debug|Win32
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug.Build.0 = Debug|Win32
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release.ActiveCfg = Release|Win32
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release.Build.0 = Release|Win32
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.ReleaseAMD64.ActiveCfg = Release|Win32
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.ReleaseItanium.ActiveCfg = Release|Win32
- {51F35FAE-FB92-4B2C-9187-1542C065AD77}.Debug.ActiveCfg = Debug|Win32
- {51F35FAE-FB92-4B2C-9187-1542C065AD77}.Debug.Build.0 = Debug|Win32
- {51F35FAE-FB92-4B2C-9187-1542C065AD77}.Release.ActiveCfg = Release|Win32
- {51F35FAE-FB92-4B2C-9187-1542C065AD77}.Release.Build.0 = Release|Win32
- {51F35FAE-FB92-4B2C-9187-1542C065AD77}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32
- {51F35FAE-FB92-4B2C-9187-1542C065AD77}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32
- {51F35FAE-FB92-4B2C-9187-1542C065AD77}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32
- {51F35FAE-FB92-4B2C-9187-1542C065AD77}.ReleaseItanium.Build.0 = ReleaseItanium|Win32
- {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.Debug.ActiveCfg = Debug|Win32
- {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.Debug.Build.0 = Debug|Win32
- {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.Release.ActiveCfg = Release|Win32
- {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.Release.Build.0 = Release|Win32
- {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32
- {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32
- {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32
- {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.ReleaseItanium.Build.0 = ReleaseItanium|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug.ActiveCfg = Debug|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug.Build.0 = Debug|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release.ActiveCfg = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release.Build.0 = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.ReleaseAMD64.ActiveCfg = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.ReleaseAMD64.Build.0 = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.ReleaseItanium.ActiveCfg = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.ReleaseItanium.Build.0 = Release|Win32
- {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.Debug.ActiveCfg = Debug|Win32
- {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.Debug.Build.0 = Debug|Win32
- {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.Release.ActiveCfg = Release|Win32
- {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.Release.Build.0 = Release|Win32
- {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32
- {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32
- {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32
- {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.ReleaseItanium.Build.0 = ReleaseItanium|Win32
- {F22F40F4-D318-40DC-96B3-88DC81CE0894}.Debug.ActiveCfg = Debug|Win32
- {F22F40F4-D318-40DC-96B3-88DC81CE0894}.Debug.Build.0 = Debug|Win32
- {F22F40F4-D318-40DC-96B3-88DC81CE0894}.Release.ActiveCfg = Release|Win32
- {F22F40F4-D318-40DC-96B3-88DC81CE0894}.Release.Build.0 = Release|Win32
- {F22F40F4-D318-40DC-96B3-88DC81CE0894}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32
- {F22F40F4-D318-40DC-96B3-88DC81CE0894}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32
- {F22F40F4-D318-40DC-96B3-88DC81CE0894}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32
- {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.Debug.ActiveCfg = Debug|Win32
- {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.Debug.Build.0 = Debug|Win32
- {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.Release.ActiveCfg = Release|Win32
- {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.Release.Build.0 = Release|Win32
- {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32
- {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32
- {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32
- {2FF0A312-22F9-4C34-B070-842916DE27A9}.Debug.ActiveCfg = Debug|Win32
- {2FF0A312-22F9-4C34-B070-842916DE27A9}.Debug.Build.0 = Debug|Win32
- {2FF0A312-22F9-4C34-B070-842916DE27A9}.Release.ActiveCfg = Release|Win32
- {2FF0A312-22F9-4C34-B070-842916DE27A9}.Release.Build.0 = Release|Win32
- {2FF0A312-22F9-4C34-B070-842916DE27A9}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32
- {2FF0A312-22F9-4C34-B070-842916DE27A9}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32
- {2FF0A312-22F9-4C34-B070-842916DE27A9}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32
- {2FF0A312-22F9-4C34-B070-842916DE27A9}.ReleaseItanium.Build.0 = ReleaseItanium|Win32
- EndGlobalSection
- GlobalSection(SolutionItems) = postSolution
- ..\Modules\getbuildinfo.c = ..\Modules\getbuildinfo.c
- readme.txt = readme.txt
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- EndGlobalSection
- GlobalSection(ExtensibilityAddIns) = postSolution
- EndGlobalSection
-EndGlobal
+Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_bsddb", "_bsddb.vcproj", "{E1DBB220-D64B-423D-A545-539A55AA7FE2}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_socket", "_socket.vcproj", "{324F66C2-44D0-4D50-B979-F9DAE7FD36DB}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ssl", "_ssl.vcproj", "{8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}" + ProjectSection(ProjectDependencies) = postProject + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} = {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058} = {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testcapi", "_testcapi.vcproj", "{59CBF474-9E06-4C50-9142-C44A118BB447}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_tkinter", "_tkinter.vcproj", "{5B51DFF7-5DC0-41F8-8791-A4AB7114A151}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bz2", "bz2.vcproj", "{AC557788-6354-43F7-BE05-C9C8C59A344A}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_versioninfo", "make_versioninfo.vcproj", "{F0E0541E-F17D-430B-97C4-93ADF0DD284E}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pyexpat", "pyexpat.vcproj", "{7E551393-3C43-47F8-9F3F-5BC368A6C487}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python", "python.vcproj", "{B11D750F-CD1F-4A96-85CE-E69A5C5259F9}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythoncore", "pythoncore.vcproj", "{CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}" + ProjectSection(ProjectDependencies) = postProject + {F0E0541E-F17D-430B-97C4-93ADF0DD284E} = {F0E0541E-F17D-430B-97C4-93ADF0DD284E} + {C73F0EC1-358B-4177-940F-0846AC8B04CD} = {C73F0EC1-358B-4177-940F-0846AC8B04CD} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythonw", "pythonw.vcproj", "{F4229CC3-873C-49AE-9729-DD308ED4CD4A}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "select", "select.vcproj", "{97239A56-DBC0-41D2-BC14-C87D9B97D63B}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unicodedata", "unicodedata.vcproj", "{FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "w9xpopen", "w9xpopen.vcproj", "{E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winsound", "winsound.vcproj", "{51F35FAE-FB92-4B2C-9187-1542C065AD77}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_elementtree", "_elementtree.vcproj", "{1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_buildinfo", "make_buildinfo.vcproj", "{C73F0EC1-358B-4177-940F-0846AC8B04CD}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_msi", "_msi.vcproj", "{2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ctypes", "_ctypes.vcproj", "{F22F40F4-D318-40DC-96B3-88DC81CE0894}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ctypes_test", "_ctypes_test.vcproj", "{8CF334D9-4F82-42EB-97AF-83592C5AFD2F}" + ProjectSection(ProjectDependencies) = postProject + {F22F40F4-D318-40DC-96B3-88DC81CE0894} = {F22F40F4-D318-40DC-96B3-88DC81CE0894} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_sqlite3", "_sqlite3.vcproj", "{2FF0A312-22F9-4C34-B070-842916DE27A9}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + Release = Release + ReleaseAMD64 = ReleaseAMD64 + ReleaseItanium = ReleaseItanium + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {E1DBB220-D64B-423D-A545-539A55AA7FE2}.Debug.ActiveCfg = Debug|Win32 + {E1DBB220-D64B-423D-A545-539A55AA7FE2}.Debug.Build.0 = Debug|Win32 + {E1DBB220-D64B-423D-A545-539A55AA7FE2}.Release.ActiveCfg = Release|Win32 + {E1DBB220-D64B-423D-A545-539A55AA7FE2}.Release.Build.0 = Release|Win32 + {E1DBB220-D64B-423D-A545-539A55AA7FE2}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {E1DBB220-D64B-423D-A545-539A55AA7FE2}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {E1DBB220-D64B-423D-A545-539A55AA7FE2}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {E1DBB220-D64B-423D-A545-539A55AA7FE2}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 + {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.Debug.ActiveCfg = Debug|Win32 + {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.Debug.Build.0 = Debug|Win32 + {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.Release.ActiveCfg = Release|Win32 + {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.Release.Build.0 = Release|Win32 + {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 + {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.Debug.ActiveCfg = Debug|Win32 + {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.Debug.Build.0 = Debug|Win32 + {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.Release.ActiveCfg = Release|Win32 + {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.Release.Build.0 = Release|Win32 + {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 + {59CBF474-9E06-4C50-9142-C44A118BB447}.Debug.ActiveCfg = Debug|Win32 + {59CBF474-9E06-4C50-9142-C44A118BB447}.Debug.Build.0 = Debug|Win32 + {59CBF474-9E06-4C50-9142-C44A118BB447}.Release.ActiveCfg = Release|Win32 + {59CBF474-9E06-4C50-9142-C44A118BB447}.Release.Build.0 = Release|Win32 + {59CBF474-9E06-4C50-9142-C44A118BB447}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {59CBF474-9E06-4C50-9142-C44A118BB447}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {59CBF474-9E06-4C50-9142-C44A118BB447}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {59CBF474-9E06-4C50-9142-C44A118BB447}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 + {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.Debug.ActiveCfg = Debug|Win32 + {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.Debug.Build.0 = Debug|Win32 + {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.Release.ActiveCfg = Release|Win32 + {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.Release.Build.0 = Release|Win32 + {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 + {AC557788-6354-43F7-BE05-C9C8C59A344A}.Debug.ActiveCfg = Debug|Win32 + {AC557788-6354-43F7-BE05-C9C8C59A344A}.Debug.Build.0 = Debug|Win32 + {AC557788-6354-43F7-BE05-C9C8C59A344A}.Release.ActiveCfg = Release|Win32 + {AC557788-6354-43F7-BE05-C9C8C59A344A}.Release.Build.0 = Release|Win32 + {AC557788-6354-43F7-BE05-C9C8C59A344A}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {AC557788-6354-43F7-BE05-C9C8C59A344A}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {AC557788-6354-43F7-BE05-C9C8C59A344A}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {AC557788-6354-43F7-BE05-C9C8C59A344A}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug.ActiveCfg = Debug|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug.Build.0 = Debug|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release.ActiveCfg = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release.Build.0 = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.ReleaseAMD64.ActiveCfg = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.ReleaseAMD64.Build.0 = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.ReleaseItanium.ActiveCfg = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.ReleaseItanium.Build.0 = Release|Win32 + {7E551393-3C43-47F8-9F3F-5BC368A6C487}.Debug.ActiveCfg = Debug|Win32 + {7E551393-3C43-47F8-9F3F-5BC368A6C487}.Debug.Build.0 = Debug|Win32 + {7E551393-3C43-47F8-9F3F-5BC368A6C487}.Release.ActiveCfg = Release|Win32 + {7E551393-3C43-47F8-9F3F-5BC368A6C487}.Release.Build.0 = Release|Win32 + {7E551393-3C43-47F8-9F3F-5BC368A6C487}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {7E551393-3C43-47F8-9F3F-5BC368A6C487}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {7E551393-3C43-47F8-9F3F-5BC368A6C487}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {7E551393-3C43-47F8-9F3F-5BC368A6C487}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug.ActiveCfg = Debug|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug.Build.0 = Debug|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release.ActiveCfg = Release|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release.Build.0 = Release|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug.ActiveCfg = Debug|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug.Build.0 = Debug|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release.ActiveCfg = Release|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release.Build.0 = Release|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug.ActiveCfg = Debug|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug.Build.0 = Debug|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release.ActiveCfg = Release|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release.Build.0 = Release|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 + {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.Debug.ActiveCfg = Debug|Win32 + {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.Debug.Build.0 = Debug|Win32 + {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.Release.ActiveCfg = Release|Win32 + {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.Release.Build.0 = Release|Win32 + {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 + {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.Debug.ActiveCfg = Debug|Win32 + {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.Debug.Build.0 = Debug|Win32 + {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.Release.ActiveCfg = Release|Win32 + {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.Release.Build.0 = Release|Win32 + {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug.ActiveCfg = Debug|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug.Build.0 = Debug|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release.ActiveCfg = Release|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release.Build.0 = Release|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.ReleaseAMD64.ActiveCfg = Release|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.ReleaseItanium.ActiveCfg = Release|Win32 + {51F35FAE-FB92-4B2C-9187-1542C065AD77}.Debug.ActiveCfg = Debug|Win32 + {51F35FAE-FB92-4B2C-9187-1542C065AD77}.Debug.Build.0 = Debug|Win32 + {51F35FAE-FB92-4B2C-9187-1542C065AD77}.Release.ActiveCfg = Release|Win32 + {51F35FAE-FB92-4B2C-9187-1542C065AD77}.Release.Build.0 = Release|Win32 + {51F35FAE-FB92-4B2C-9187-1542C065AD77}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {51F35FAE-FB92-4B2C-9187-1542C065AD77}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {51F35FAE-FB92-4B2C-9187-1542C065AD77}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {51F35FAE-FB92-4B2C-9187-1542C065AD77}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 + {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.Debug.ActiveCfg = Debug|Win32 + {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.Debug.Build.0 = Debug|Win32 + {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.Release.ActiveCfg = Release|Win32 + {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.Release.Build.0 = Release|Win32 + {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug.ActiveCfg = Debug|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug.Build.0 = Debug|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release.Build.0 = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.ReleaseAMD64.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.ReleaseAMD64.Build.0 = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.ReleaseItanium.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.ReleaseItanium.Build.0 = Release|Win32 + {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.Debug.ActiveCfg = Debug|Win32 + {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.Debug.Build.0 = Debug|Win32 + {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.Release.ActiveCfg = Release|Win32 + {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.Release.Build.0 = Release|Win32 + {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 + {F22F40F4-D318-40DC-96B3-88DC81CE0894}.Debug.ActiveCfg = Debug|Win32 + {F22F40F4-D318-40DC-96B3-88DC81CE0894}.Debug.Build.0 = Debug|Win32 + {F22F40F4-D318-40DC-96B3-88DC81CE0894}.Release.ActiveCfg = Release|Win32 + {F22F40F4-D318-40DC-96B3-88DC81CE0894}.Release.Build.0 = Release|Win32 + {F22F40F4-D318-40DC-96B3-88DC81CE0894}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {F22F40F4-D318-40DC-96B3-88DC81CE0894}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {F22F40F4-D318-40DC-96B3-88DC81CE0894}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.Debug.ActiveCfg = Debug|Win32 + {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.Debug.Build.0 = Debug|Win32 + {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.Release.ActiveCfg = Release|Win32 + {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.Release.Build.0 = Release|Win32 + {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {2FF0A312-22F9-4C34-B070-842916DE27A9}.Debug.ActiveCfg = Debug|Win32 + {2FF0A312-22F9-4C34-B070-842916DE27A9}.Debug.Build.0 = Debug|Win32 + {2FF0A312-22F9-4C34-B070-842916DE27A9}.Release.ActiveCfg = Release|Win32 + {2FF0A312-22F9-4C34-B070-842916DE27A9}.Release.Build.0 = Release|Win32 + {2FF0A312-22F9-4C34-B070-842916DE27A9}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {2FF0A312-22F9-4C34-B070-842916DE27A9}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {2FF0A312-22F9-4C34-B070-842916DE27A9}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {2FF0A312-22F9-4C34-B070-842916DE27A9}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 + EndGlobalSection + GlobalSection(SolutionItems) = postSolution + ..\Modules\getbuildinfo.c = ..\Modules\getbuildinfo.c + readme.txt = readme.txt + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/PC/VS8.0/_multiprocessing.vcproj b/PC/VS8.0/_multiprocessing.vcproj index c2bbec449d..ee76aecec3 100644 --- a/PC/VS8.0/_multiprocessing.vcproj +++ b/PC/VS8.0/_multiprocessing.vcproj @@ -1,557 +1,557 @@ -<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="8.00"
- Name="_multiprocessing"
- ProjectGUID="{9E48B300-37D1-11DD-8C41-005056C00008}"
- RootNamespace="_multiprocessing"
- Keyword="Win32Proj"
- TargetFrameworkVersion="196613"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- <Platform
- Name="x64"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- ConfigurationType="2"
- InheritedPropertySheets=".\pyd_d.vsprops"
- CharacterSet="0"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="ws2_32.lib"
- BaseAddress="0x1e1D0000"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Debug|x64"
- ConfigurationType="2"
- InheritedPropertySheets=".\pyd_d.vsprops;.\x64.vsprops"
- CharacterSet="0"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- TargetEnvironment="3"
- />
- <Tool
- Name="VCCLCompilerTool"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="ws2_32.lib"
- BaseAddress="0x1e1D0000"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- ConfigurationType="2"
- InheritedPropertySheets=".\pyd.vsprops"
- CharacterSet="0"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="ws2_32.lib"
- BaseAddress="0x1e1D0000"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|x64"
- ConfigurationType="2"
- InheritedPropertySheets=".\pyd.vsprops;.\x64.vsprops"
- CharacterSet="0"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- TargetEnvironment="3"
- />
- <Tool
- Name="VCCLCompilerTool"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="ws2_32.lib"
- BaseAddress="0x1e1D0000"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="PGInstrument|Win32"
- ConfigurationType="2"
- InheritedPropertySheets=".\pyd.vsprops;.\pginstrument.vsprops"
- CharacterSet="0"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="ws2_32.lib"
- BaseAddress="0x1e1D0000"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="PGInstrument|x64"
- ConfigurationType="2"
- InheritedPropertySheets=".\pyd.vsprops;.\x64.vsprops;.\pginstrument.vsprops"
- CharacterSet="0"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- TargetEnvironment="3"
- />
- <Tool
- Name="VCCLCompilerTool"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="ws2_32.lib"
- BaseAddress="0x1e1D0000"
- TargetMachine="17"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="PGUpdate|Win32"
- ConfigurationType="2"
- InheritedPropertySheets=".\pyd.vsprops;.\pgupdate.vsprops"
- CharacterSet="0"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="ws2_32.lib"
- BaseAddress="0x1e1D0000"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="PGUpdate|x64"
- ConfigurationType="2"
- InheritedPropertySheets=".\pyd.vsprops;.\x64.vsprops;.\pgupdate.vsprops"
- CharacterSet="0"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- TargetEnvironment="3"
- />
- <Tool
- Name="VCCLCompilerTool"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="ws2_32.lib"
- BaseAddress="0x1e1D0000"
- TargetMachine="17"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Header Files"
- >
- <File
- RelativePath="..\..\Modules\_multiprocessing\multiprocessing.h"
- >
- </File>
- <File
- RelativePath="..\..\Modules\_multiprocessing\connection.h"
- >
- </File>
- </Filter>
- <Filter
- Name="Source Files"
- >
- <File
- RelativePath="..\..\Modules\_multiprocessing\multiprocessing.c"
- >
- </File>
- <File
- RelativePath="..\..\Modules\_multiprocessing\pipe_connection.c"
- >
- </File>
- <File
- RelativePath="..\..\Modules\_multiprocessing\semaphore.c"
- >
- </File>
- <File
- RelativePath="..\..\Modules\_multiprocessing\socket_connection.c"
- >
- </File>
- <File
- RelativePath="..\..\Modules\_multiprocessing\win32_functions.c"
- >
- </File>
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
+<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8.00" + Name="_multiprocessing" + ProjectGUID="{9E48B300-37D1-11DD-8C41-005056C00008}" + RootNamespace="_multiprocessing" + Keyword="Win32Proj" + TargetFrameworkVersion="196613" + > + <Platforms> + <Platform + Name="Win32" + /> + <Platform + Name="x64" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + ConfigurationType="2" + InheritedPropertySheets=".\pyd_d.vsprops" + CharacterSet="0" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="ws2_32.lib" + BaseAddress="0x1e1D0000" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Debug|x64" + ConfigurationType="2" + InheritedPropertySheets=".\pyd_d.vsprops;.\x64.vsprops" + CharacterSet="0" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + TargetEnvironment="3" + /> + <Tool + Name="VCCLCompilerTool" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="ws2_32.lib" + BaseAddress="0x1e1D0000" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + ConfigurationType="2" + InheritedPropertySheets=".\pyd.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="ws2_32.lib" + BaseAddress="0x1e1D0000" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|x64" + ConfigurationType="2" + InheritedPropertySheets=".\pyd.vsprops;.\x64.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + TargetEnvironment="3" + /> + <Tool + Name="VCCLCompilerTool" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="ws2_32.lib" + BaseAddress="0x1e1D0000" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="PGInstrument|Win32" + ConfigurationType="2" + InheritedPropertySheets=".\pyd.vsprops;.\pginstrument.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="ws2_32.lib" + BaseAddress="0x1e1D0000" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="PGInstrument|x64" + ConfigurationType="2" + InheritedPropertySheets=".\pyd.vsprops;.\x64.vsprops;.\pginstrument.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + TargetEnvironment="3" + /> + <Tool + Name="VCCLCompilerTool" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="ws2_32.lib" + BaseAddress="0x1e1D0000" + TargetMachine="17" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="PGUpdate|Win32" + ConfigurationType="2" + InheritedPropertySheets=".\pyd.vsprops;.\pgupdate.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="ws2_32.lib" + BaseAddress="0x1e1D0000" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="PGUpdate|x64" + ConfigurationType="2" + InheritedPropertySheets=".\pyd.vsprops;.\x64.vsprops;.\pgupdate.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + TargetEnvironment="3" + /> + <Tool + Name="VCCLCompilerTool" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="ws2_32.lib" + BaseAddress="0x1e1D0000" + TargetMachine="17" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Header Files" + > + <File + RelativePath="..\..\Modules\_multiprocessing\multiprocessing.h" + > + </File> + <File + RelativePath="..\..\Modules\_multiprocessing\connection.h" + > + </File> + </Filter> + <Filter + Name="Source Files" + > + <File + RelativePath="..\..\Modules\_multiprocessing\multiprocessing.c" + > + </File> + <File + RelativePath="..\..\Modules\_multiprocessing\pipe_connection.c" + > + </File> + <File + RelativePath="..\..\Modules\_multiprocessing\semaphore.c" + > + </File> + <File + RelativePath="..\..\Modules\_multiprocessing\socket_connection.c" + > + </File> + <File + RelativePath="..\..\Modules\_multiprocessing\win32_functions.c" + > + </File> + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/PC/VS8.0/build.bat b/PC/VS8.0/build.bat index a6d961e43f..9bc818676f 100644 --- a/PC/VS8.0/build.bat +++ b/PC/VS8.0/build.bat @@ -1,17 +1,17 @@ -@echo off
-rem A batch program to build or rebuild a particular configuration.
-rem just for convenience.
-
-setlocal
-set platf=Win32
-set conf=Release
-set build=/build
-
-:CheckOpts
-if "%1"=="-c" (set conf=%2) & shift & shift & goto CheckOpts
-if "%1"=="-p" (set platf=%2) & shift & shift & goto CheckOpts
-if "%1"=="-r" (set build=/rebuild) & shift & goto CheckOpts
-
-set cmd=devenv pcbuild.sln %build% "%conf%|%platf%"
-echo %cmd%
-%cmd%
+@echo off +rem A batch program to build or rebuild a particular configuration. +rem just for convenience. + +setlocal +set platf=Win32 +set conf=Release +set build=/build + +:CheckOpts +if "%1"=="-c" (set conf=%2) & shift & shift & goto CheckOpts +if "%1"=="-p" (set platf=%2) & shift & shift & goto CheckOpts +if "%1"=="-r" (set build=/rebuild) & shift & goto CheckOpts + +set cmd=devenv pcbuild.sln %build% "%conf%|%platf%" +echo %cmd% +%cmd% diff --git a/PC/VS8.0/build_env.bat b/PC/VS8.0/build_env.bat index 01024cff21..4c67ae3ac2 100644 --- a/PC/VS8.0/build_env.bat +++ b/PC/VS8.0/build_env.bat @@ -1 +1 @@ -@%comspec% /k env.bat %*
+@%comspec% /k env.bat %* diff --git a/PC/VS8.0/build_pgo.bat b/PC/VS8.0/build_pgo.bat index d28a767300..a37b5bfd93 100644 --- a/PC/VS8.0/build_pgo.bat +++ b/PC/VS8.0/build_pgo.bat @@ -1,41 +1,41 @@ -@echo off
-rem A batch program to build PGO (Profile guided optimization) by first
-rem building instrumented binaries, then running the testsuite, and
-rem finally building the optimized code.
-rem Note, after the first instrumented run, one can just keep on
-rem building the PGUpdate configuration while developing.
-
-setlocal
-set platf=Win32
-
-rem use the performance testsuite. This is quick and simple
-set job1=..\..\tools\pybench\pybench.py -n 1 -C 1 --with-gc
-set path1=..\..\tools\pybench
-
-rem or the whole testsuite for more thorough testing
-set job2=..\..\lib\test\regrtest.py
-set path2=..\..\lib
-
-set job=%job1%
-set clrpath=%path1%
-
-:CheckOpts
-if "%1"=="-p" (set platf=%2) & shift & shift & goto CheckOpts
-if "%1"=="-2" (set job=%job2%) & (set clrpath=%path2%) & shift & goto CheckOpts
-
-set PGI=%platf%-pgi
-set PGO=%platf%-pgo
-
-@echo on
-rem build the instrumented version
-call build -p %platf% -c PGInstrument
-
-rem remove .pyc files, .pgc files and execute the job
-%PGI%\python.exe rmpyc.py %clrpath%
-del %PGI%\*.pgc
-%PGI%\python.exe %job%
-
-rem finally build the optimized version
-if exist %PGO% del /s /q %PGO%
-call build -p %platf% -c PGUpdate
-
+@echo off +rem A batch program to build PGO (Profile guided optimization) by first +rem building instrumented binaries, then running the testsuite, and +rem finally building the optimized code. +rem Note, after the first instrumented run, one can just keep on +rem building the PGUpdate configuration while developing. + +setlocal +set platf=Win32 + +rem use the performance testsuite. This is quick and simple +set job1=..\..\tools\pybench\pybench.py -n 1 -C 1 --with-gc +set path1=..\..\tools\pybench + +rem or the whole testsuite for more thorough testing +set job2=..\..\lib\test\regrtest.py +set path2=..\..\lib + +set job=%job1% +set clrpath=%path1% + +:CheckOpts +if "%1"=="-p" (set platf=%2) & shift & shift & goto CheckOpts +if "%1"=="-2" (set job=%job2%) & (set clrpath=%path2%) & shift & goto CheckOpts + +set PGI=%platf%-pgi +set PGO=%platf%-pgo + +@echo on +rem build the instrumented version +call build -p %platf% -c PGInstrument + +rem remove .pyc files, .pgc files and execute the job +%PGI%\python.exe rmpyc.py %clrpath% +del %PGI%\*.pgc +%PGI%\python.exe %job% + +rem finally build the optimized version +if exist %PGO% del /s /q %PGO% +call build -p %platf% -c PGUpdate + diff --git a/PC/VS8.0/build_ssl.bat b/PC/VS8.0/build_ssl.bat index f06c2d1b63..2531a5be93 100644 --- a/PC/VS8.0/build_ssl.bat +++ b/PC/VS8.0/build_ssl.bat @@ -1,12 +1,12 @@ -@echo off
-if not defined HOST_PYTHON (
- if %1 EQU Debug (
- set HOST_PYTHON=python_d.exe
- if not exist python27_d.dll exit 1
- ) ELSE (
- set HOST_PYTHON=python.exe
- if not exist python27.dll exit 1
- )
-)
-%HOST_PYTHON% build_ssl.py %1 %2 %3
-
+@echo off +if not defined HOST_PYTHON ( + if %1 EQU Debug ( + set HOST_PYTHON=python_d.exe + if not exist python27_d.dll exit 1 + ) ELSE ( + set HOST_PYTHON=python.exe + if not exist python27.dll exit 1 + ) +) +%HOST_PYTHON% build_ssl.py %1 %2 %3 + diff --git a/PC/VS8.0/debug.vsprops b/PC/VS8.0/debug.vsprops index bc643cb6be..2be7f74231 100644 --- a/PC/VS8.0/debug.vsprops +++ b/PC/VS8.0/debug.vsprops @@ -1,15 +1,15 @@ -<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioPropertySheet
- ProjectType="Visual C++"
- Version="8.00"
- Name="debug"
- >
- <Tool
- Name="VCCLCompilerTool"
- PreprocessorDefinitions="_DEBUG"
- />
- <UserMacro
- Name="KillPythonExe"
- Value="$(OutDir)\kill_python_d.exe"
- />
-</VisualStudioPropertySheet>
+<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioPropertySheet + ProjectType="Visual C++" + Version="8.00" + Name="debug" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="_DEBUG" + /> + <UserMacro + Name="KillPythonExe" + Value="$(OutDir)\kill_python_d.exe" + /> +</VisualStudioPropertySheet> diff --git a/PC/VS8.0/env.bat b/PC/VS8.0/env.bat index 7717d01d4b..a4990a8365 100644 --- a/PC/VS8.0/env.bat +++ b/PC/VS8.0/env.bat @@ -1,5 +1,5 @@ -@echo off
-set VS8=%ProgramFiles%\Microsoft Visual Studio 8
-echo Build environments: x86, ia64, amd64, x86_amd64, x86_ia64
-echo.
-call "%VS8%\VC\vcvarsall.bat" %1
+@echo off +set VS8=%ProgramFiles%\Microsoft Visual Studio 8 +echo Build environments: x86, ia64, amd64, x86_amd64, x86_ia64 +echo. +call "%VS8%\VC\vcvarsall.bat" %1 diff --git a/PC/VS8.0/idle.bat b/PC/VS8.0/idle.bat index 274ae1a9f2..123e704bae 100644 --- a/PC/VS8.0/idle.bat +++ b/PC/VS8.0/idle.bat @@ -1,15 +1,15 @@ -@echo off
-rem start idle
-rem Usage: idle [-d]
-rem -d Run Debug build (python_d.exe). Else release build.
-
-setlocal
-set exe=python
-PATH %PATH%;..\..\..\tcltk\bin
-
-if "%1"=="-d" (set exe=python_d) & shift
-
-set cmd=%exe% ../../Lib/idlelib/idle.py %1 %2 %3 %4 %5 %6 %7 %8 %9
-
-echo on
-%cmd%
+@echo off +rem start idle +rem Usage: idle [-d] +rem -d Run Debug build (python_d.exe). Else release build. + +setlocal +set exe=python +PATH %PATH%;..\..\..\tcltk\bin + +if "%1"=="-d" (set exe=python_d) & shift + +set cmd=%exe% ../../Lib/idlelib/idle.py %1 %2 %3 %4 %5 %6 %7 %8 %9 + +echo on +%cmd% diff --git a/PC/VS8.0/pcbuild.sln b/PC/VS8.0/pcbuild.sln index 18eed69d09..5f43524ab3 100644 --- a/PC/VS8.0/pcbuild.sln +++ b/PC/VS8.0/pcbuild.sln @@ -1,559 +1,559 @@ -Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual Studio 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python", "python.vcproj", "{B11D750F-CD1F-4A96-85CE-E69A5C5259F9}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058} = {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_versioninfo", "make_versioninfo.vcproj", "{F0E0541E-F17D-430B-97C4-93ADF0DD284E}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythoncore", "pythoncore.vcproj", "{CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}"
- ProjectSection(ProjectDependencies) = postProject
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E} = {F0E0541E-F17D-430B-97C4-93ADF0DD284E}
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31} = {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}
- {C73F0EC1-358B-4177-940F-0846AC8B04CD} = {C73F0EC1-358B-4177-940F-0846AC8B04CD}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythonw", "pythonw.vcproj", "{F4229CC3-873C-49AE-9729-DD308ED4CD4A}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "w9xpopen", "w9xpopen.vcproj", "{E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}"
- ProjectSection(ProjectDependencies) = postProject
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31} = {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_buildinfo", "make_buildinfo.vcproj", "{C73F0EC1-358B-4177-940F-0846AC8B04CD}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{553EC33E-9816-4996-A660-5D6186A0B0B3}"
- ProjectSection(SolutionItems) = preProject
- ..\..\Modules\getbuildinfo.c = ..\..\Modules\getbuildinfo.c
- readme.txt = readme.txt
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winsound", "winsound.vcproj", "{28B5D777-DDF2-4B6B-B34F-31D938813856}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_bsddb", "_bsddb.vcproj", "{B4D38F3F-68FB-42EC-A45D-E00657BB3627}"
- ProjectSection(ProjectDependencies) = postProject
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31} = {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ctypes", "_ctypes.vcproj", "{0E9791DB-593A-465F-98BC-681011311618}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ctypes_test", "_ctypes_test.vcproj", "{9EC7190A-249F-4180-A900-548FDCF3055F}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_elementtree", "_elementtree.vcproj", "{17E1E049-C309-4D79-843F-AE483C264AEA}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_msi", "_msi.vcproj", "{31FFC478-7B4A-43E8-9954-8D03E2187E9C}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_socket", "_socket.vcproj", "{86937F53-C189-40EF-8CE8-8759D8E7D480}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_sqlite3", "_sqlite3.vcproj", "{13CECB97-4119-4316-9D42-8534019A5A44}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- {A1A295E5-463C-437F-81CA-1F32367685DA} = {A1A295E5-463C-437F-81CA-1F32367685DA}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ssl", "_ssl.vcproj", "{C6E20F84-3247-4AD6-B051-B073268F73BA}"
- ProjectSection(ProjectDependencies) = postProject
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} = {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}
- {86937F53-C189-40EF-8CE8-8759D8E7D480} = {86937F53-C189-40EF-8CE8-8759D8E7D480}
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testcapi", "_testcapi.vcproj", "{6901D91C-6E48-4BB7-9FEC-700C8131DF1D}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_tkinter", "_tkinter.vcproj", "{4946ECAC-2E69-4BF8-A90A-F5136F5094DF}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bz2", "bz2.vcproj", "{73FCD2BD-F133-46B7-8EC1-144CD82A59D5}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "select", "select.vcproj", "{18CAE28C-B454-46C1-87A0-493D91D97F03}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unicodedata", "unicodedata.vcproj", "{ECC7CEAC-A5E5-458E-BB9E-2413CC847881}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pyexpat", "pyexpat.vcproj", "{D06B6426-4762-44CC-8BAD-D79052507F2F}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bdist_wininst", "bdist_wininst.vcproj", "{EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_hashlib", "_hashlib.vcproj", "{447F05A8-F581-4CAC-A466-5AC7936E207E}"
- ProjectSection(ProjectDependencies) = postProject
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} = {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sqlite3", "sqlite3.vcproj", "{A1A295E5-463C-437F-81CA-1F32367685DA}"
- ProjectSection(ProjectDependencies) = postProject
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31} = {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_multiprocessing", "_multiprocessing.vcproj", "{9E48B300-37D1-11DD-8C41-005056C00008}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "kill_python", "kill_python.vcproj", "{6DE10744-E396-40A5-B4E2-1B69AA7C8D31}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Debug|x64 = Debug|x64
- PGInstrument|Win32 = PGInstrument|Win32
- PGInstrument|x64 = PGInstrument|x64
- PGUpdate|Win32 = PGUpdate|Win32
- PGUpdate|x64 = PGUpdate|x64
- Release|Win32 = Release|Win32
- Release|x64 = Release|x64
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|Win32.ActiveCfg = Debug|Win32
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|Win32.Build.0 = Debug|Win32
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|x64.ActiveCfg = Debug|x64
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|x64.Build.0 = Debug|x64
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|Win32.ActiveCfg = Release|Win32
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|Win32.Build.0 = Release|Win32
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|x64.ActiveCfg = Release|x64
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|x64.Build.0 = Release|x64
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|Win32.ActiveCfg = Debug|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|Win32.Build.0 = Debug|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|x64.ActiveCfg = Debug|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|x64.Build.0 = Debug|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|Win32.ActiveCfg = Release|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|Win32.Build.0 = Release|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|x64.ActiveCfg = Release|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|x64.Build.0 = Release|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|Win32.ActiveCfg = Release|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|Win32.Build.0 = Release|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|x64.ActiveCfg = Release|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|x64.Build.0 = Release|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|Win32.ActiveCfg = Release|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|Win32.Build.0 = Release|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|x64.ActiveCfg = Release|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|x64.Build.0 = Release|Win32
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|Win32.ActiveCfg = Debug|Win32
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|Win32.Build.0 = Debug|Win32
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|x64.ActiveCfg = Debug|x64
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|x64.Build.0 = Debug|x64
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|Win32.ActiveCfg = Release|Win32
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|Win32.Build.0 = Release|Win32
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|x64.ActiveCfg = Release|x64
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|x64.Build.0 = Release|x64
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|Win32.ActiveCfg = Debug|Win32
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|Win32.Build.0 = Debug|Win32
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|x64.ActiveCfg = Debug|x64
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|x64.Build.0 = Debug|x64
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|Win32.ActiveCfg = Release|Win32
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|Win32.Build.0 = Release|Win32
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|x64.ActiveCfg = Release|x64
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|x64.Build.0 = Release|x64
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|Win32.ActiveCfg = Debug|Win32
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|Win32.Build.0 = Debug|Win32
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|x64.ActiveCfg = Debug|x64
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|x64.Build.0 = Debug|x64
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|Win32.ActiveCfg = Release|Win32
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|Win32.Build.0 = Release|Win32
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|x64.ActiveCfg = Release|x64
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|x64.Build.0 = Release|x64
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|Win32.ActiveCfg = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|Win32.Build.0 = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|x64.ActiveCfg = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|x64.Build.0 = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|Win32.ActiveCfg = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|Win32.Build.0 = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|x64.ActiveCfg = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|x64.Build.0 = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|Win32.ActiveCfg = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|Win32.Build.0 = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|x64.ActiveCfg = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|x64.Build.0 = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|Win32.ActiveCfg = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|Win32.Build.0 = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|x64.ActiveCfg = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|x64.Build.0 = Release|Win32
- {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|Win32.ActiveCfg = Debug|Win32
- {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|Win32.Build.0 = Debug|Win32
- {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|x64.ActiveCfg = Debug|x64
- {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|x64.Build.0 = Debug|x64
- {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {28B5D777-DDF2-4B6B-B34F-31D938813856}.Release|Win32.ActiveCfg = Release|Win32
- {28B5D777-DDF2-4B6B-B34F-31D938813856}.Release|Win32.Build.0 = Release|Win32
- {28B5D777-DDF2-4B6B-B34F-31D938813856}.Release|x64.ActiveCfg = Release|x64
- {28B5D777-DDF2-4B6B-B34F-31D938813856}.Release|x64.Build.0 = Release|x64
- {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Debug|Win32.ActiveCfg = Debug|Win32
- {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Debug|Win32.Build.0 = Debug|Win32
- {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Debug|x64.ActiveCfg = Debug|x64
- {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Debug|x64.Build.0 = Debug|x64
- {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Release|Win32.ActiveCfg = Release|Win32
- {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Release|Win32.Build.0 = Release|Win32
- {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Release|x64.ActiveCfg = Release|x64
- {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Release|x64.Build.0 = Release|x64
- {0E9791DB-593A-465F-98BC-681011311618}.Debug|Win32.ActiveCfg = Debug|Win32
- {0E9791DB-593A-465F-98BC-681011311618}.Debug|Win32.Build.0 = Debug|Win32
- {0E9791DB-593A-465F-98BC-681011311618}.Debug|x64.ActiveCfg = Debug|x64
- {0E9791DB-593A-465F-98BC-681011311618}.Debug|x64.Build.0 = Debug|x64
- {0E9791DB-593A-465F-98BC-681011311618}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {0E9791DB-593A-465F-98BC-681011311618}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {0E9791DB-593A-465F-98BC-681011311618}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {0E9791DB-593A-465F-98BC-681011311618}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {0E9791DB-593A-465F-98BC-681011311618}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {0E9791DB-593A-465F-98BC-681011311618}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {0E9791DB-593A-465F-98BC-681011311618}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {0E9791DB-593A-465F-98BC-681011311618}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {0E9791DB-593A-465F-98BC-681011311618}.Release|Win32.ActiveCfg = Release|Win32
- {0E9791DB-593A-465F-98BC-681011311618}.Release|Win32.Build.0 = Release|Win32
- {0E9791DB-593A-465F-98BC-681011311618}.Release|x64.ActiveCfg = Release|x64
- {0E9791DB-593A-465F-98BC-681011311618}.Release|x64.Build.0 = Release|x64
- {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|Win32.ActiveCfg = Debug|Win32
- {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|Win32.Build.0 = Debug|Win32
- {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|x64.ActiveCfg = Debug|x64
- {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|x64.Build.0 = Debug|x64
- {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|Win32.ActiveCfg = Release|Win32
- {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|Win32.Build.0 = Release|Win32
- {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|x64.ActiveCfg = Release|x64
- {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|x64.Build.0 = Release|x64
- {17E1E049-C309-4D79-843F-AE483C264AEA}.Debug|Win32.ActiveCfg = Debug|Win32
- {17E1E049-C309-4D79-843F-AE483C264AEA}.Debug|Win32.Build.0 = Debug|Win32
- {17E1E049-C309-4D79-843F-AE483C264AEA}.Debug|x64.ActiveCfg = Debug|x64
- {17E1E049-C309-4D79-843F-AE483C264AEA}.Debug|x64.Build.0 = Debug|x64
- {17E1E049-C309-4D79-843F-AE483C264AEA}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {17E1E049-C309-4D79-843F-AE483C264AEA}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {17E1E049-C309-4D79-843F-AE483C264AEA}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {17E1E049-C309-4D79-843F-AE483C264AEA}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {17E1E049-C309-4D79-843F-AE483C264AEA}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {17E1E049-C309-4D79-843F-AE483C264AEA}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {17E1E049-C309-4D79-843F-AE483C264AEA}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {17E1E049-C309-4D79-843F-AE483C264AEA}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {17E1E049-C309-4D79-843F-AE483C264AEA}.Release|Win32.ActiveCfg = Release|Win32
- {17E1E049-C309-4D79-843F-AE483C264AEA}.Release|Win32.Build.0 = Release|Win32
- {17E1E049-C309-4D79-843F-AE483C264AEA}.Release|x64.ActiveCfg = Release|x64
- {17E1E049-C309-4D79-843F-AE483C264AEA}.Release|x64.Build.0 = Release|x64
- {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Debug|Win32.ActiveCfg = Debug|Win32
- {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Debug|Win32.Build.0 = Debug|Win32
- {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Debug|x64.ActiveCfg = Debug|x64
- {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Debug|x64.Build.0 = Debug|x64
- {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Release|Win32.ActiveCfg = Release|Win32
- {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Release|Win32.Build.0 = Release|Win32
- {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Release|x64.ActiveCfg = Release|x64
- {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Release|x64.Build.0 = Release|x64
- {86937F53-C189-40EF-8CE8-8759D8E7D480}.Debug|Win32.ActiveCfg = Debug|Win32
- {86937F53-C189-40EF-8CE8-8759D8E7D480}.Debug|Win32.Build.0 = Debug|Win32
- {86937F53-C189-40EF-8CE8-8759D8E7D480}.Debug|x64.ActiveCfg = Debug|x64
- {86937F53-C189-40EF-8CE8-8759D8E7D480}.Debug|x64.Build.0 = Debug|x64
- {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {86937F53-C189-40EF-8CE8-8759D8E7D480}.Release|Win32.ActiveCfg = Release|Win32
- {86937F53-C189-40EF-8CE8-8759D8E7D480}.Release|Win32.Build.0 = Release|Win32
- {86937F53-C189-40EF-8CE8-8759D8E7D480}.Release|x64.ActiveCfg = Release|x64
- {86937F53-C189-40EF-8CE8-8759D8E7D480}.Release|x64.Build.0 = Release|x64
- {13CECB97-4119-4316-9D42-8534019A5A44}.Debug|Win32.ActiveCfg = Debug|Win32
- {13CECB97-4119-4316-9D42-8534019A5A44}.Debug|Win32.Build.0 = Debug|Win32
- {13CECB97-4119-4316-9D42-8534019A5A44}.Debug|x64.ActiveCfg = Debug|x64
- {13CECB97-4119-4316-9D42-8534019A5A44}.Debug|x64.Build.0 = Debug|x64
- {13CECB97-4119-4316-9D42-8534019A5A44}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {13CECB97-4119-4316-9D42-8534019A5A44}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {13CECB97-4119-4316-9D42-8534019A5A44}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {13CECB97-4119-4316-9D42-8534019A5A44}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {13CECB97-4119-4316-9D42-8534019A5A44}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {13CECB97-4119-4316-9D42-8534019A5A44}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {13CECB97-4119-4316-9D42-8534019A5A44}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {13CECB97-4119-4316-9D42-8534019A5A44}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {13CECB97-4119-4316-9D42-8534019A5A44}.Release|Win32.ActiveCfg = Release|Win32
- {13CECB97-4119-4316-9D42-8534019A5A44}.Release|Win32.Build.0 = Release|Win32
- {13CECB97-4119-4316-9D42-8534019A5A44}.Release|x64.ActiveCfg = Release|x64
- {13CECB97-4119-4316-9D42-8534019A5A44}.Release|x64.Build.0 = Release|x64
- {C6E20F84-3247-4AD6-B051-B073268F73BA}.Debug|Win32.ActiveCfg = Debug|Win32
- {C6E20F84-3247-4AD6-B051-B073268F73BA}.Debug|Win32.Build.0 = Debug|Win32
- {C6E20F84-3247-4AD6-B051-B073268F73BA}.Debug|x64.ActiveCfg = Debug|x64
- {C6E20F84-3247-4AD6-B051-B073268F73BA}.Debug|x64.Build.0 = Debug|x64
- {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {C6E20F84-3247-4AD6-B051-B073268F73BA}.Release|Win32.ActiveCfg = Release|Win32
- {C6E20F84-3247-4AD6-B051-B073268F73BA}.Release|Win32.Build.0 = Release|Win32
- {C6E20F84-3247-4AD6-B051-B073268F73BA}.Release|x64.ActiveCfg = Release|x64
- {C6E20F84-3247-4AD6-B051-B073268F73BA}.Release|x64.Build.0 = Release|x64
- {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Debug|Win32.ActiveCfg = Debug|Win32
- {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Debug|Win32.Build.0 = Debug|Win32
- {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Debug|x64.ActiveCfg = Debug|x64
- {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Debug|x64.Build.0 = Debug|x64
- {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|Win32.ActiveCfg = Release|Win32
- {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|Win32.Build.0 = Release|Win32
- {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|x64.ActiveCfg = Release|x64
- {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|x64.Build.0 = Release|x64
- {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|Win32.ActiveCfg = Debug|Win32
- {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|Win32.Build.0 = Debug|Win32
- {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|x64.ActiveCfg = Debug|x64
- {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|x64.Build.0 = Debug|x64
- {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Release|Win32.ActiveCfg = Release|Win32
- {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Release|Win32.Build.0 = Release|Win32
- {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Release|x64.ActiveCfg = Release|x64
- {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Release|x64.Build.0 = Release|x64
- {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Debug|Win32.ActiveCfg = Debug|Win32
- {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Debug|Win32.Build.0 = Debug|Win32
- {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Debug|x64.ActiveCfg = Debug|x64
- {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Debug|x64.Build.0 = Debug|x64
- {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Release|Win32.ActiveCfg = Release|Win32
- {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Release|Win32.Build.0 = Release|Win32
- {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Release|x64.ActiveCfg = Release|x64
- {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Release|x64.Build.0 = Release|x64
- {18CAE28C-B454-46C1-87A0-493D91D97F03}.Debug|Win32.ActiveCfg = Debug|Win32
- {18CAE28C-B454-46C1-87A0-493D91D97F03}.Debug|Win32.Build.0 = Debug|Win32
- {18CAE28C-B454-46C1-87A0-493D91D97F03}.Debug|x64.ActiveCfg = Debug|x64
- {18CAE28C-B454-46C1-87A0-493D91D97F03}.Debug|x64.Build.0 = Debug|x64
- {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {18CAE28C-B454-46C1-87A0-493D91D97F03}.Release|Win32.ActiveCfg = Release|Win32
- {18CAE28C-B454-46C1-87A0-493D91D97F03}.Release|Win32.Build.0 = Release|Win32
- {18CAE28C-B454-46C1-87A0-493D91D97F03}.Release|x64.ActiveCfg = Release|x64
- {18CAE28C-B454-46C1-87A0-493D91D97F03}.Release|x64.Build.0 = Release|x64
- {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Debug|Win32.ActiveCfg = Debug|Win32
- {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Debug|Win32.Build.0 = Debug|Win32
- {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Debug|x64.ActiveCfg = Debug|x64
- {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Debug|x64.Build.0 = Debug|x64
- {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Release|Win32.ActiveCfg = Release|Win32
- {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Release|Win32.Build.0 = Release|Win32
- {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Release|x64.ActiveCfg = Release|x64
- {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Release|x64.Build.0 = Release|x64
- {D06B6426-4762-44CC-8BAD-D79052507F2F}.Debug|Win32.ActiveCfg = Debug|Win32
- {D06B6426-4762-44CC-8BAD-D79052507F2F}.Debug|Win32.Build.0 = Debug|Win32
- {D06B6426-4762-44CC-8BAD-D79052507F2F}.Debug|x64.ActiveCfg = Debug|x64
- {D06B6426-4762-44CC-8BAD-D79052507F2F}.Debug|x64.Build.0 = Debug|x64
- {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|Win32.ActiveCfg = Release|Win32
- {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|Win32.Build.0 = Release|Win32
- {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|x64.ActiveCfg = Release|x64
- {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|x64.Build.0 = Release|x64
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Debug|Win32.ActiveCfg = Release|Win32
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Debug|x64.ActiveCfg = Release|x64
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGInstrument|Win32.ActiveCfg = Release|Win32
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGInstrument|x64.ActiveCfg = Release|x64
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGUpdate|Win32.ActiveCfg = Release|Win32
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGUpdate|x64.ActiveCfg = Release|x64
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Release|Win32.ActiveCfg = Release|Win32
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Release|x64.ActiveCfg = Release|x64
- {447F05A8-F581-4CAC-A466-5AC7936E207E}.Debug|Win32.ActiveCfg = Debug|Win32
- {447F05A8-F581-4CAC-A466-5AC7936E207E}.Debug|Win32.Build.0 = Debug|Win32
- {447F05A8-F581-4CAC-A466-5AC7936E207E}.Debug|x64.ActiveCfg = Debug|x64
- {447F05A8-F581-4CAC-A466-5AC7936E207E}.Debug|x64.Build.0 = Debug|x64
- {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {447F05A8-F581-4CAC-A466-5AC7936E207E}.Release|Win32.ActiveCfg = Release|Win32
- {447F05A8-F581-4CAC-A466-5AC7936E207E}.Release|Win32.Build.0 = Release|Win32
- {447F05A8-F581-4CAC-A466-5AC7936E207E}.Release|x64.ActiveCfg = Release|x64
- {447F05A8-F581-4CAC-A466-5AC7936E207E}.Release|x64.Build.0 = Release|x64
- {A1A295E5-463C-437F-81CA-1F32367685DA}.Debug|Win32.ActiveCfg = Debug|Win32
- {A1A295E5-463C-437F-81CA-1F32367685DA}.Debug|Win32.Build.0 = Debug|Win32
- {A1A295E5-463C-437F-81CA-1F32367685DA}.Debug|x64.ActiveCfg = Debug|x64
- {A1A295E5-463C-437F-81CA-1F32367685DA}.Debug|x64.Build.0 = Debug|x64
- {A1A295E5-463C-437F-81CA-1F32367685DA}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {A1A295E5-463C-437F-81CA-1F32367685DA}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {A1A295E5-463C-437F-81CA-1F32367685DA}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {A1A295E5-463C-437F-81CA-1F32367685DA}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {A1A295E5-463C-437F-81CA-1F32367685DA}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {A1A295E5-463C-437F-81CA-1F32367685DA}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {A1A295E5-463C-437F-81CA-1F32367685DA}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {A1A295E5-463C-437F-81CA-1F32367685DA}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {A1A295E5-463C-437F-81CA-1F32367685DA}.Release|Win32.ActiveCfg = Release|Win32
- {A1A295E5-463C-437F-81CA-1F32367685DA}.Release|Win32.Build.0 = Release|Win32
- {A1A295E5-463C-437F-81CA-1F32367685DA}.Release|x64.ActiveCfg = Release|x64
- {A1A295E5-463C-437F-81CA-1F32367685DA}.Release|x64.Build.0 = Release|x64
- {9E48B300-37D1-11DD-8C41-005056C00008}.Debug|Win32.ActiveCfg = Debug|Win32
- {9E48B300-37D1-11DD-8C41-005056C00008}.Debug|Win32.Build.0 = Debug|Win32
- {9E48B300-37D1-11DD-8C41-005056C00008}.Debug|x64.ActiveCfg = Debug|x64
- {9E48B300-37D1-11DD-8C41-005056C00008}.Debug|x64.Build.0 = Debug|x64
- {9E48B300-37D1-11DD-8C41-005056C00008}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {9E48B300-37D1-11DD-8C41-005056C00008}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {9E48B300-37D1-11DD-8C41-005056C00008}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {9E48B300-37D1-11DD-8C41-005056C00008}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {9E48B300-37D1-11DD-8C41-005056C00008}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {9E48B300-37D1-11DD-8C41-005056C00008}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {9E48B300-37D1-11DD-8C41-005056C00008}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {9E48B300-37D1-11DD-8C41-005056C00008}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {9E48B300-37D1-11DD-8C41-005056C00008}.Release|Win32.ActiveCfg = Release|Win32
- {9E48B300-37D1-11DD-8C41-005056C00008}.Release|Win32.Build.0 = Release|Win32
- {9E48B300-37D1-11DD-8C41-005056C00008}.Release|x64.ActiveCfg = Release|x64
- {9E48B300-37D1-11DD-8C41-005056C00008}.Release|x64.Build.0 = Release|x64
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Debug|Win32.ActiveCfg = Debug|Win32
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Debug|Win32.Build.0 = Debug|Win32
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Debug|x64.ActiveCfg = Debug|x64
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Debug|x64.Build.0 = Debug|x64
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGInstrument|Win32.ActiveCfg = Release|Win32
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGInstrument|Win32.Build.0 = Release|Win32
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGInstrument|x64.ActiveCfg = Release|x64
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGInstrument|x64.Build.0 = Release|x64
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGUpdate|Win32.ActiveCfg = Release|Win32
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGUpdate|Win32.Build.0 = Release|Win32
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGUpdate|x64.ActiveCfg = Release|x64
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGUpdate|x64.Build.0 = Release|x64
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Release|Win32.ActiveCfg = Release|Win32
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Release|Win32.Build.0 = Release|Win32
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Release|x64.ActiveCfg = Release|x64
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Release|x64.Build.0 = Release|x64
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
+Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python", "python.vcproj", "{B11D750F-CD1F-4A96-85CE-E69A5C5259F9}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058} = {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_versioninfo", "make_versioninfo.vcproj", "{F0E0541E-F17D-430B-97C4-93ADF0DD284E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythoncore", "pythoncore.vcproj", "{CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}" + ProjectSection(ProjectDependencies) = postProject + {F0E0541E-F17D-430B-97C4-93ADF0DD284E} = {F0E0541E-F17D-430B-97C4-93ADF0DD284E} + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31} = {6DE10744-E396-40A5-B4E2-1B69AA7C8D31} + {C73F0EC1-358B-4177-940F-0846AC8B04CD} = {C73F0EC1-358B-4177-940F-0846AC8B04CD} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythonw", "pythonw.vcproj", "{F4229CC3-873C-49AE-9729-DD308ED4CD4A}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "w9xpopen", "w9xpopen.vcproj", "{E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}" + ProjectSection(ProjectDependencies) = postProject + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31} = {6DE10744-E396-40A5-B4E2-1B69AA7C8D31} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_buildinfo", "make_buildinfo.vcproj", "{C73F0EC1-358B-4177-940F-0846AC8B04CD}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{553EC33E-9816-4996-A660-5D6186A0B0B3}" + ProjectSection(SolutionItems) = preProject + ..\..\Modules\getbuildinfo.c = ..\..\Modules\getbuildinfo.c + readme.txt = readme.txt + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winsound", "winsound.vcproj", "{28B5D777-DDF2-4B6B-B34F-31D938813856}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_bsddb", "_bsddb.vcproj", "{B4D38F3F-68FB-42EC-A45D-E00657BB3627}" + ProjectSection(ProjectDependencies) = postProject + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31} = {6DE10744-E396-40A5-B4E2-1B69AA7C8D31} + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ctypes", "_ctypes.vcproj", "{0E9791DB-593A-465F-98BC-681011311618}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ctypes_test", "_ctypes_test.vcproj", "{9EC7190A-249F-4180-A900-548FDCF3055F}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_elementtree", "_elementtree.vcproj", "{17E1E049-C309-4D79-843F-AE483C264AEA}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_msi", "_msi.vcproj", "{31FFC478-7B4A-43E8-9954-8D03E2187E9C}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_socket", "_socket.vcproj", "{86937F53-C189-40EF-8CE8-8759D8E7D480}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_sqlite3", "_sqlite3.vcproj", "{13CECB97-4119-4316-9D42-8534019A5A44}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + {A1A295E5-463C-437F-81CA-1F32367685DA} = {A1A295E5-463C-437F-81CA-1F32367685DA} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ssl", "_ssl.vcproj", "{C6E20F84-3247-4AD6-B051-B073268F73BA}" + ProjectSection(ProjectDependencies) = postProject + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} = {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} + {86937F53-C189-40EF-8CE8-8759D8E7D480} = {86937F53-C189-40EF-8CE8-8759D8E7D480} + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testcapi", "_testcapi.vcproj", "{6901D91C-6E48-4BB7-9FEC-700C8131DF1D}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_tkinter", "_tkinter.vcproj", "{4946ECAC-2E69-4BF8-A90A-F5136F5094DF}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bz2", "bz2.vcproj", "{73FCD2BD-F133-46B7-8EC1-144CD82A59D5}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "select", "select.vcproj", "{18CAE28C-B454-46C1-87A0-493D91D97F03}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unicodedata", "unicodedata.vcproj", "{ECC7CEAC-A5E5-458E-BB9E-2413CC847881}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pyexpat", "pyexpat.vcproj", "{D06B6426-4762-44CC-8BAD-D79052507F2F}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bdist_wininst", "bdist_wininst.vcproj", "{EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_hashlib", "_hashlib.vcproj", "{447F05A8-F581-4CAC-A466-5AC7936E207E}" + ProjectSection(ProjectDependencies) = postProject + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} = {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sqlite3", "sqlite3.vcproj", "{A1A295E5-463C-437F-81CA-1F32367685DA}" + ProjectSection(ProjectDependencies) = postProject + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31} = {6DE10744-E396-40A5-B4E2-1B69AA7C8D31} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_multiprocessing", "_multiprocessing.vcproj", "{9E48B300-37D1-11DD-8C41-005056C00008}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "kill_python", "kill_python.vcproj", "{6DE10744-E396-40A5-B4E2-1B69AA7C8D31}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + PGInstrument|Win32 = PGInstrument|Win32 + PGInstrument|x64 = PGInstrument|x64 + PGUpdate|Win32 = PGUpdate|Win32 + PGUpdate|x64 = PGUpdate|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|Win32.ActiveCfg = Debug|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|Win32.Build.0 = Debug|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|x64.ActiveCfg = Debug|x64 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|x64.Build.0 = Debug|x64 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|Win32.ActiveCfg = Release|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|Win32.Build.0 = Release|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|x64.ActiveCfg = Release|x64 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|x64.Build.0 = Release|x64 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|Win32.ActiveCfg = Debug|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|Win32.Build.0 = Debug|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|x64.ActiveCfg = Debug|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|x64.Build.0 = Debug|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|Win32.ActiveCfg = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|Win32.Build.0 = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|x64.ActiveCfg = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|x64.Build.0 = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|Win32.ActiveCfg = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|Win32.Build.0 = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|x64.ActiveCfg = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|x64.Build.0 = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|Win32.ActiveCfg = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|Win32.Build.0 = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|x64.ActiveCfg = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|x64.Build.0 = Release|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|Win32.ActiveCfg = Debug|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|Win32.Build.0 = Debug|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|x64.ActiveCfg = Debug|x64 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|x64.Build.0 = Debug|x64 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|Win32.ActiveCfg = Release|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|Win32.Build.0 = Release|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|x64.ActiveCfg = Release|x64 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|x64.Build.0 = Release|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|Win32.ActiveCfg = Debug|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|Win32.Build.0 = Debug|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|x64.ActiveCfg = Debug|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|x64.Build.0 = Debug|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|Win32.ActiveCfg = Release|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|Win32.Build.0 = Release|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|x64.ActiveCfg = Release|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|x64.Build.0 = Release|x64 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|Win32.ActiveCfg = Debug|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|Win32.Build.0 = Debug|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|x64.ActiveCfg = Debug|x64 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|x64.Build.0 = Debug|x64 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|Win32.ActiveCfg = Release|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|Win32.Build.0 = Release|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|x64.ActiveCfg = Release|x64 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|x64.Build.0 = Release|x64 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|Win32.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|Win32.Build.0 = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|x64.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|x64.Build.0 = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|Win32.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|Win32.Build.0 = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|x64.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|x64.Build.0 = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|Win32.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|Win32.Build.0 = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|x64.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|x64.Build.0 = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|Win32.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|Win32.Build.0 = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|x64.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|x64.Build.0 = Release|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|Win32.ActiveCfg = Debug|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|Win32.Build.0 = Debug|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|x64.ActiveCfg = Debug|x64 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|x64.Build.0 = Debug|x64 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.Release|Win32.ActiveCfg = Release|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.Release|Win32.Build.0 = Release|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.Release|x64.ActiveCfg = Release|x64 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.Release|x64.Build.0 = Release|x64 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Debug|Win32.ActiveCfg = Debug|Win32 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Debug|Win32.Build.0 = Debug|Win32 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Debug|x64.ActiveCfg = Debug|x64 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Debug|x64.Build.0 = Debug|x64 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Release|Win32.ActiveCfg = Release|Win32 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Release|Win32.Build.0 = Release|Win32 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Release|x64.ActiveCfg = Release|x64 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Release|x64.Build.0 = Release|x64 + {0E9791DB-593A-465F-98BC-681011311618}.Debug|Win32.ActiveCfg = Debug|Win32 + {0E9791DB-593A-465F-98BC-681011311618}.Debug|Win32.Build.0 = Debug|Win32 + {0E9791DB-593A-465F-98BC-681011311618}.Debug|x64.ActiveCfg = Debug|x64 + {0E9791DB-593A-465F-98BC-681011311618}.Debug|x64.Build.0 = Debug|x64 + {0E9791DB-593A-465F-98BC-681011311618}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {0E9791DB-593A-465F-98BC-681011311618}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {0E9791DB-593A-465F-98BC-681011311618}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {0E9791DB-593A-465F-98BC-681011311618}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {0E9791DB-593A-465F-98BC-681011311618}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {0E9791DB-593A-465F-98BC-681011311618}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {0E9791DB-593A-465F-98BC-681011311618}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {0E9791DB-593A-465F-98BC-681011311618}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {0E9791DB-593A-465F-98BC-681011311618}.Release|Win32.ActiveCfg = Release|Win32 + {0E9791DB-593A-465F-98BC-681011311618}.Release|Win32.Build.0 = Release|Win32 + {0E9791DB-593A-465F-98BC-681011311618}.Release|x64.ActiveCfg = Release|x64 + {0E9791DB-593A-465F-98BC-681011311618}.Release|x64.Build.0 = Release|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|Win32.ActiveCfg = Debug|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|Win32.Build.0 = Debug|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|x64.ActiveCfg = Debug|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|x64.Build.0 = Debug|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|Win32.ActiveCfg = Release|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|Win32.Build.0 = Release|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|x64.ActiveCfg = Release|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|x64.Build.0 = Release|x64 + {17E1E049-C309-4D79-843F-AE483C264AEA}.Debug|Win32.ActiveCfg = Debug|Win32 + {17E1E049-C309-4D79-843F-AE483C264AEA}.Debug|Win32.Build.0 = Debug|Win32 + {17E1E049-C309-4D79-843F-AE483C264AEA}.Debug|x64.ActiveCfg = Debug|x64 + {17E1E049-C309-4D79-843F-AE483C264AEA}.Debug|x64.Build.0 = Debug|x64 + {17E1E049-C309-4D79-843F-AE483C264AEA}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {17E1E049-C309-4D79-843F-AE483C264AEA}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {17E1E049-C309-4D79-843F-AE483C264AEA}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {17E1E049-C309-4D79-843F-AE483C264AEA}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {17E1E049-C309-4D79-843F-AE483C264AEA}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {17E1E049-C309-4D79-843F-AE483C264AEA}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {17E1E049-C309-4D79-843F-AE483C264AEA}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {17E1E049-C309-4D79-843F-AE483C264AEA}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {17E1E049-C309-4D79-843F-AE483C264AEA}.Release|Win32.ActiveCfg = Release|Win32 + {17E1E049-C309-4D79-843F-AE483C264AEA}.Release|Win32.Build.0 = Release|Win32 + {17E1E049-C309-4D79-843F-AE483C264AEA}.Release|x64.ActiveCfg = Release|x64 + {17E1E049-C309-4D79-843F-AE483C264AEA}.Release|x64.Build.0 = Release|x64 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Debug|Win32.ActiveCfg = Debug|Win32 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Debug|Win32.Build.0 = Debug|Win32 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Debug|x64.ActiveCfg = Debug|x64 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Debug|x64.Build.0 = Debug|x64 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Release|Win32.ActiveCfg = Release|Win32 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Release|Win32.Build.0 = Release|Win32 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Release|x64.ActiveCfg = Release|x64 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Release|x64.Build.0 = Release|x64 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.Debug|Win32.ActiveCfg = Debug|Win32 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.Debug|Win32.Build.0 = Debug|Win32 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.Debug|x64.ActiveCfg = Debug|x64 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.Debug|x64.Build.0 = Debug|x64 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.Release|Win32.ActiveCfg = Release|Win32 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.Release|Win32.Build.0 = Release|Win32 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.Release|x64.ActiveCfg = Release|x64 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.Release|x64.Build.0 = Release|x64 + {13CECB97-4119-4316-9D42-8534019A5A44}.Debug|Win32.ActiveCfg = Debug|Win32 + {13CECB97-4119-4316-9D42-8534019A5A44}.Debug|Win32.Build.0 = Debug|Win32 + {13CECB97-4119-4316-9D42-8534019A5A44}.Debug|x64.ActiveCfg = Debug|x64 + {13CECB97-4119-4316-9D42-8534019A5A44}.Debug|x64.Build.0 = Debug|x64 + {13CECB97-4119-4316-9D42-8534019A5A44}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {13CECB97-4119-4316-9D42-8534019A5A44}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {13CECB97-4119-4316-9D42-8534019A5A44}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {13CECB97-4119-4316-9D42-8534019A5A44}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {13CECB97-4119-4316-9D42-8534019A5A44}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {13CECB97-4119-4316-9D42-8534019A5A44}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {13CECB97-4119-4316-9D42-8534019A5A44}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {13CECB97-4119-4316-9D42-8534019A5A44}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {13CECB97-4119-4316-9D42-8534019A5A44}.Release|Win32.ActiveCfg = Release|Win32 + {13CECB97-4119-4316-9D42-8534019A5A44}.Release|Win32.Build.0 = Release|Win32 + {13CECB97-4119-4316-9D42-8534019A5A44}.Release|x64.ActiveCfg = Release|x64 + {13CECB97-4119-4316-9D42-8534019A5A44}.Release|x64.Build.0 = Release|x64 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.Debug|Win32.ActiveCfg = Debug|Win32 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.Debug|Win32.Build.0 = Debug|Win32 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.Debug|x64.ActiveCfg = Debug|x64 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.Debug|x64.Build.0 = Debug|x64 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.Release|Win32.ActiveCfg = Release|Win32 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.Release|Win32.Build.0 = Release|Win32 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.Release|x64.ActiveCfg = Release|x64 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.Release|x64.Build.0 = Release|x64 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Debug|Win32.ActiveCfg = Debug|Win32 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Debug|Win32.Build.0 = Debug|Win32 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Debug|x64.ActiveCfg = Debug|x64 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Debug|x64.Build.0 = Debug|x64 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|Win32.ActiveCfg = Release|Win32 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|Win32.Build.0 = Release|Win32 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|x64.ActiveCfg = Release|x64 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|x64.Build.0 = Release|x64 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|Win32.ActiveCfg = Debug|Win32 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|Win32.Build.0 = Debug|Win32 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|x64.ActiveCfg = Debug|x64 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|x64.Build.0 = Debug|x64 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Release|Win32.ActiveCfg = Release|Win32 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Release|Win32.Build.0 = Release|Win32 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Release|x64.ActiveCfg = Release|x64 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Release|x64.Build.0 = Release|x64 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Debug|Win32.ActiveCfg = Debug|Win32 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Debug|Win32.Build.0 = Debug|Win32 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Debug|x64.ActiveCfg = Debug|x64 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Debug|x64.Build.0 = Debug|x64 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Release|Win32.ActiveCfg = Release|Win32 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Release|Win32.Build.0 = Release|Win32 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Release|x64.ActiveCfg = Release|x64 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Release|x64.Build.0 = Release|x64 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.Debug|Win32.ActiveCfg = Debug|Win32 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.Debug|Win32.Build.0 = Debug|Win32 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.Debug|x64.ActiveCfg = Debug|x64 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.Debug|x64.Build.0 = Debug|x64 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.Release|Win32.ActiveCfg = Release|Win32 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.Release|Win32.Build.0 = Release|Win32 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.Release|x64.ActiveCfg = Release|x64 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.Release|x64.Build.0 = Release|x64 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Debug|Win32.ActiveCfg = Debug|Win32 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Debug|Win32.Build.0 = Debug|Win32 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Debug|x64.ActiveCfg = Debug|x64 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Debug|x64.Build.0 = Debug|x64 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Release|Win32.ActiveCfg = Release|Win32 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Release|Win32.Build.0 = Release|Win32 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Release|x64.ActiveCfg = Release|x64 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Release|x64.Build.0 = Release|x64 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.Debug|Win32.ActiveCfg = Debug|Win32 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.Debug|Win32.Build.0 = Debug|Win32 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.Debug|x64.ActiveCfg = Debug|x64 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.Debug|x64.Build.0 = Debug|x64 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|Win32.ActiveCfg = Release|Win32 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|Win32.Build.0 = Release|Win32 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|x64.ActiveCfg = Release|x64 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|x64.Build.0 = Release|x64 + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Debug|Win32.ActiveCfg = Release|Win32 + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Debug|x64.ActiveCfg = Release|x64 + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGInstrument|Win32.ActiveCfg = Release|Win32 + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGInstrument|x64.ActiveCfg = Release|x64 + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGUpdate|Win32.ActiveCfg = Release|Win32 + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGUpdate|x64.ActiveCfg = Release|x64 + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Release|Win32.ActiveCfg = Release|Win32 + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Release|x64.ActiveCfg = Release|x64 + {447F05A8-F581-4CAC-A466-5AC7936E207E}.Debug|Win32.ActiveCfg = Debug|Win32 + {447F05A8-F581-4CAC-A466-5AC7936E207E}.Debug|Win32.Build.0 = Debug|Win32 + {447F05A8-F581-4CAC-A466-5AC7936E207E}.Debug|x64.ActiveCfg = Debug|x64 + {447F05A8-F581-4CAC-A466-5AC7936E207E}.Debug|x64.Build.0 = Debug|x64 + {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {447F05A8-F581-4CAC-A466-5AC7936E207E}.Release|Win32.ActiveCfg = Release|Win32 + {447F05A8-F581-4CAC-A466-5AC7936E207E}.Release|Win32.Build.0 = Release|Win32 + {447F05A8-F581-4CAC-A466-5AC7936E207E}.Release|x64.ActiveCfg = Release|x64 + {447F05A8-F581-4CAC-A466-5AC7936E207E}.Release|x64.Build.0 = Release|x64 + {A1A295E5-463C-437F-81CA-1F32367685DA}.Debug|Win32.ActiveCfg = Debug|Win32 + {A1A295E5-463C-437F-81CA-1F32367685DA}.Debug|Win32.Build.0 = Debug|Win32 + {A1A295E5-463C-437F-81CA-1F32367685DA}.Debug|x64.ActiveCfg = Debug|x64 + {A1A295E5-463C-437F-81CA-1F32367685DA}.Debug|x64.Build.0 = Debug|x64 + {A1A295E5-463C-437F-81CA-1F32367685DA}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {A1A295E5-463C-437F-81CA-1F32367685DA}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {A1A295E5-463C-437F-81CA-1F32367685DA}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {A1A295E5-463C-437F-81CA-1F32367685DA}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {A1A295E5-463C-437F-81CA-1F32367685DA}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {A1A295E5-463C-437F-81CA-1F32367685DA}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {A1A295E5-463C-437F-81CA-1F32367685DA}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {A1A295E5-463C-437F-81CA-1F32367685DA}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {A1A295E5-463C-437F-81CA-1F32367685DA}.Release|Win32.ActiveCfg = Release|Win32 + {A1A295E5-463C-437F-81CA-1F32367685DA}.Release|Win32.Build.0 = Release|Win32 + {A1A295E5-463C-437F-81CA-1F32367685DA}.Release|x64.ActiveCfg = Release|x64 + {A1A295E5-463C-437F-81CA-1F32367685DA}.Release|x64.Build.0 = Release|x64 + {9E48B300-37D1-11DD-8C41-005056C00008}.Debug|Win32.ActiveCfg = Debug|Win32 + {9E48B300-37D1-11DD-8C41-005056C00008}.Debug|Win32.Build.0 = Debug|Win32 + {9E48B300-37D1-11DD-8C41-005056C00008}.Debug|x64.ActiveCfg = Debug|x64 + {9E48B300-37D1-11DD-8C41-005056C00008}.Debug|x64.Build.0 = Debug|x64 + {9E48B300-37D1-11DD-8C41-005056C00008}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {9E48B300-37D1-11DD-8C41-005056C00008}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {9E48B300-37D1-11DD-8C41-005056C00008}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {9E48B300-37D1-11DD-8C41-005056C00008}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {9E48B300-37D1-11DD-8C41-005056C00008}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {9E48B300-37D1-11DD-8C41-005056C00008}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {9E48B300-37D1-11DD-8C41-005056C00008}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {9E48B300-37D1-11DD-8C41-005056C00008}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {9E48B300-37D1-11DD-8C41-005056C00008}.Release|Win32.ActiveCfg = Release|Win32 + {9E48B300-37D1-11DD-8C41-005056C00008}.Release|Win32.Build.0 = Release|Win32 + {9E48B300-37D1-11DD-8C41-005056C00008}.Release|x64.ActiveCfg = Release|x64 + {9E48B300-37D1-11DD-8C41-005056C00008}.Release|x64.Build.0 = Release|x64 + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Debug|Win32.ActiveCfg = Debug|Win32 + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Debug|Win32.Build.0 = Debug|Win32 + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Debug|x64.ActiveCfg = Debug|x64 + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Debug|x64.Build.0 = Debug|x64 + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGInstrument|Win32.ActiveCfg = Release|Win32 + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGInstrument|Win32.Build.0 = Release|Win32 + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGInstrument|x64.ActiveCfg = Release|x64 + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGInstrument|x64.Build.0 = Release|x64 + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGUpdate|Win32.ActiveCfg = Release|Win32 + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGUpdate|Win32.Build.0 = Release|Win32 + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGUpdate|x64.ActiveCfg = Release|x64 + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGUpdate|x64.Build.0 = Release|x64 + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Release|Win32.ActiveCfg = Release|Win32 + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Release|Win32.Build.0 = Release|Win32 + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Release|x64.ActiveCfg = Release|x64 + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/PC/VS8.0/pginstrument.vsprops b/PC/VS8.0/pginstrument.vsprops index 38c5f18ed3..93b968760c 100644 --- a/PC/VS8.0/pginstrument.vsprops +++ b/PC/VS8.0/pginstrument.vsprops @@ -1,34 +1,34 @@ -<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioPropertySheet
- ProjectType="Visual C++"
- Version="8.00"
- Name="pginstrument"
- OutputDirectory="$(OutDirPGI)"
- IntermediateDirectory="$(SolutionDir)$(PlatformName)-temp-pgi\$(ProjectName)\"
- >
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- InlineFunctionExpansion="1"
- EnableIntrinsicFunctions="false"
- FavorSizeOrSpeed="2"
- OmitFramePointers="true"
- EnableFiberSafeOptimizations="false"
- WholeProgramOptimization="true"
- StringPooling="true"
- ExceptionHandling="0"
- BufferSecurityCheck="false"
- />
- <Tool
- Name="VCLinkerTool"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- LinkTimeCodeGeneration="2"
- ProfileGuidedDatabase="$(SolutionDir)$(PlatformName)-pgi\$(TargetName).pgd"
- ImportLibrary="$(OutDirPGI)\$(TargetName).lib"
- />
- <UserMacro
- Name="OutDirPGI"
- Value="$(SolutionDir)$(PlatformName)-pgi\"
- />
-</VisualStudioPropertySheet>
+<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioPropertySheet + ProjectType="Visual C++" + Version="8.00" + Name="pginstrument" + OutputDirectory="$(OutDirPGI)" + IntermediateDirectory="$(SolutionDir)$(PlatformName)-temp-pgi\$(ProjectName)\" + > + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + EnableIntrinsicFunctions="false" + FavorSizeOrSpeed="2" + OmitFramePointers="true" + EnableFiberSafeOptimizations="false" + WholeProgramOptimization="true" + StringPooling="true" + ExceptionHandling="0" + BufferSecurityCheck="false" + /> + <Tool + Name="VCLinkerTool" + OptimizeReferences="2" + EnableCOMDATFolding="2" + LinkTimeCodeGeneration="2" + ProfileGuidedDatabase="$(SolutionDir)$(PlatformName)-pgi\$(TargetName).pgd" + ImportLibrary="$(OutDirPGI)\$(TargetName).lib" + /> + <UserMacro + Name="OutDirPGI" + Value="$(SolutionDir)$(PlatformName)-pgi\" + /> +</VisualStudioPropertySheet> diff --git a/PC/VS8.0/pgupdate.vsprops b/PC/VS8.0/pgupdate.vsprops index 26cfc2d0dd..7ce4a3a10b 100644 --- a/PC/VS8.0/pgupdate.vsprops +++ b/PC/VS8.0/pgupdate.vsprops @@ -1,14 +1,14 @@ -<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioPropertySheet
- ProjectType="Visual C++"
- Version="8.00"
- Name="pgupdate"
- OutputDirectory="$(SolutionDir)$(PlatformName)-pgo\"
- InheritedPropertySheets="$(SolutionDir)\pginstrument.vsprops"
- >
- <Tool
- Name="VCLinkerTool"
- AdditionalManifestDependencies=""
- LinkTimeCodeGeneration="4"
- />
-</VisualStudioPropertySheet>
+<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioPropertySheet + ProjectType="Visual C++" + Version="8.00" + Name="pgupdate" + OutputDirectory="$(SolutionDir)$(PlatformName)-pgo\" + InheritedPropertySheets="$(SolutionDir)\pginstrument.vsprops" + > + <Tool + Name="VCLinkerTool" + AdditionalManifestDependencies="" + LinkTimeCodeGeneration="4" + /> +</VisualStudioPropertySheet> diff --git a/PC/VS8.0/pyd.vsprops b/PC/VS8.0/pyd.vsprops index 34c21e15c5..ce039eb966 100644 --- a/PC/VS8.0/pyd.vsprops +++ b/PC/VS8.0/pyd.vsprops @@ -1,28 +1,28 @@ -<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioPropertySheet
- ProjectType="Visual C++"
- Version="8.00"
- Name="pyd"
- InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops"
- >
- <Tool
- Name="VCCLCompilerTool"
- PreprocessorDefinitions="Py_BUILD_CORE_MODULE"
- RuntimeLibrary="2"
- />
- <Tool
- Name="VCLinkerTool"
- OutputFile="$(OutDir)\$(ProjectName).pyd"
- ProgramDatabaseFile="$(OutDir)\$(ProjectName).pdb"
- ImportLibrary="$(OutDir)\$(TargetName).lib"
- GenerateManifest="false"
- />
- <Tool
- Name="VCManifestTool"
- EmbedManifest="false"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine=""
- />
-</VisualStudioPropertySheet>
+<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioPropertySheet + ProjectType="Visual C++" + Version="8.00" + Name="pyd" + InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="Py_BUILD_CORE_MODULE" + RuntimeLibrary="2" + /> + <Tool + Name="VCLinkerTool" + OutputFile="$(OutDir)\$(ProjectName).pyd" + ProgramDatabaseFile="$(OutDir)\$(ProjectName).pdb" + ImportLibrary="$(OutDir)\$(TargetName).lib" + GenerateManifest="false" + /> + <Tool + Name="VCManifestTool" + EmbedManifest="false" + /> + <Tool + Name="VCPostBuildEventTool" + CommandLine="" + /> +</VisualStudioPropertySheet> diff --git a/PC/VS8.0/pyd_d.vsprops b/PC/VS8.0/pyd_d.vsprops index 313a30b782..8508156314 100644 --- a/PC/VS8.0/pyd_d.vsprops +++ b/PC/VS8.0/pyd_d.vsprops @@ -1,36 +1,36 @@ -<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioPropertySheet
- ProjectType="Visual C++"
- Version="8.00"
- Name="pyd_d"
- InheritedPropertySheets=".\pyproject.vsprops;.\debug.vsprops"
- >
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- InlineFunctionExpansion="0"
- EnableIntrinsicFunctions="false"
- PreprocessorDefinitions="Py_BUILD_CORE_MODULE"
- RuntimeLibrary="3"
- />
- <Tool
- Name="VCLinkerTool"
- OutputFile="$(OutDir)\$(ProjectName)_d.pyd"
- LinkIncremental="1"
- ProgramDatabaseFile="$(OutDir)\$(ProjectName)_d.pdb"
- ImportLibrary="$(OutDir)\$(TargetName).lib"
- GenerateManifest="false"
- />
- <Tool
- Name="VCManifestTool"
- EmbedManifest="false"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine=""
- />
- <UserMacro
- Name="PythonExe"
- Value="$(SolutionDir)python_d.exe"
- />
-</VisualStudioPropertySheet>
+<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioPropertySheet + ProjectType="Visual C++" + Version="8.00" + Name="pyd_d" + InheritedPropertySheets=".\pyproject.vsprops;.\debug.vsprops" + > + <Tool + Name="VCCLCompilerTool" + Optimization="0" + InlineFunctionExpansion="0" + EnableIntrinsicFunctions="false" + PreprocessorDefinitions="Py_BUILD_CORE_MODULE" + RuntimeLibrary="3" + /> + <Tool + Name="VCLinkerTool" + OutputFile="$(OutDir)\$(ProjectName)_d.pyd" + LinkIncremental="1" + ProgramDatabaseFile="$(OutDir)\$(ProjectName)_d.pdb" + ImportLibrary="$(OutDir)\$(TargetName).lib" + GenerateManifest="false" + /> + <Tool + Name="VCManifestTool" + EmbedManifest="false" + /> + <Tool + Name="VCPostBuildEventTool" + CommandLine="" + /> + <UserMacro + Name="PythonExe" + Value="$(SolutionDir)python_d.exe" + /> +</VisualStudioPropertySheet> diff --git a/PC/VS8.0/pyproject.vsprops b/PC/VS8.0/pyproject.vsprops index 2692b89b0d..ffae49040b 100644 --- a/PC/VS8.0/pyproject.vsprops +++ b/PC/VS8.0/pyproject.vsprops @@ -1,111 +1,111 @@ -<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioPropertySheet
- ProjectType="Visual C++"
- Version="8.00"
- Name="pyproject"
- OutputDirectory="$(SolutionDir)"
- IntermediateDirectory="$(SolutionDir)$(PlatformName)-temp-$(ConfigurationName)\$(ProjectName)\"
- >
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- InlineFunctionExpansion="1"
- EnableIntrinsicFunctions="true"
- AdditionalIncludeDirectories="..\..\Include; ..\..\PC"
- PreprocessorDefinitions="_WIN32"
- StringPooling="true"
- ExceptionHandling="0"
- RuntimeLibrary="0"
- EnableFunctionLevelLinking="true"
- WarningLevel="3"
- DebugInformationFormat="3"
- CompileAs="0"
- />
- <Tool
- Name="VCLinkerTool"
- LinkIncremental="1"
- AdditionalLibraryDirectories="$(OutDir)"
- GenerateDebugInformation="true"
- ProgramDatabaseFile="$(OutDir)$(TargetName).pdb"
- SubSystem="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="0"
- TargetMachine="1"
- />
- <Tool
- Name="VCResourceCompilerTool"
- AdditionalIncludeDirectories="..\..\PC;..\..\Include"
- />
- <UserMacro
- Name="PyDllName"
- Value="python27"
- />
- <UserMacro
- Name="PythonExe"
- Value="$(SolutionDir)\python.exe"
- />
- <UserMacro
- Name="externalsDir"
- Value="..\..\.."
- />
- <UserMacro
- Name="bsddb47Dir"
- Value="$(externalsDir)\db-4.7.25.0\build_windows"
- />
- <UserMacro
- Name="bsddb47DepLibs"
- Value="ws2_32.lib"
- />
- <UserMacro
- Name="bsddbDir"
- Value="$(bsddb47Dir)"
- />
- <UserMacro
- Name="bsddbDepLibs"
- Value="$(bsddb47DepLibs)"
- />
- <UserMacro
- Name="bsddb44Dir"
- Value="$(externalsDir)\db-4.4.20\build_win32"
- />
- <UserMacro
- Name="bsddb44DepLibs"
- Value=""
- />
- <UserMacro
- Name="sqlite3Dir"
- Value="$(externalsDir)\sqlite-3.6.21"
- />
- <UserMacro
- Name="bz2Dir"
- Value="$(externalsDir)\bzip2-1.0.5"
- />
- <UserMacro
- Name="opensslDir"
- Value="$(externalsDir)\openssl-0.9.8l"
- />
- <UserMacro
- Name="tcltkDir"
- Value="$(externalsDir)\tcltk"
- />
- <UserMacro
- Name="tcltk64Dir"
- Value="$(externalsDir)\tcltk64"
- />
- <UserMacro
- Name="tcltkLib"
- Value="$(tcltkDir)\lib\tcl85.lib $(tcltkDir)\lib\tk85.lib"
- />
- <UserMacro
- Name="tcltkLibDebug"
- Value="$(tcltkDir)\lib\tcl85g.lib $(tcltkDir)\lib\tk85g.lib"
- />
- <UserMacro
- Name="tcltk64Lib"
- Value="$(tcltk64Dir)\lib\tcl85.lib $(tcltk64Dir)\lib\tk85.lib"
- />
- <UserMacro
- Name="tcltk64LibDebug"
- Value="$(tcltk64Dir)\lib\tcl85g.lib $(tcltk64Dir)\lib\tk85g.lib"
- />
-</VisualStudioPropertySheet>
+<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioPropertySheet + ProjectType="Visual C++" + Version="8.00" + Name="pyproject" + OutputDirectory="$(SolutionDir)" + IntermediateDirectory="$(SolutionDir)$(PlatformName)-temp-$(ConfigurationName)\$(ProjectName)\" + > + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + EnableIntrinsicFunctions="true" + AdditionalIncludeDirectories="..\..\Include; ..\..\PC" + PreprocessorDefinitions="_WIN32" + StringPooling="true" + ExceptionHandling="0" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + WarningLevel="3" + DebugInformationFormat="3" + CompileAs="0" + /> + <Tool + Name="VCLinkerTool" + LinkIncremental="1" + AdditionalLibraryDirectories="$(OutDir)" + GenerateDebugInformation="true" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" + SubSystem="2" + RandomizedBaseAddress="1" + DataExecutionPrevention="0" + TargetMachine="1" + /> + <Tool + Name="VCResourceCompilerTool" + AdditionalIncludeDirectories="..\..\PC;..\..\Include" + /> + <UserMacro + Name="PyDllName" + Value="python27" + /> + <UserMacro + Name="PythonExe" + Value="$(SolutionDir)\python.exe" + /> + <UserMacro + Name="externalsDir" + Value="..\..\.." + /> + <UserMacro + Name="bsddb47Dir" + Value="$(externalsDir)\db-4.7.25.0\build_windows" + /> + <UserMacro + Name="bsddb47DepLibs" + Value="ws2_32.lib" + /> + <UserMacro + Name="bsddbDir" + Value="$(bsddb47Dir)" + /> + <UserMacro + Name="bsddbDepLibs" + Value="$(bsddb47DepLibs)" + /> + <UserMacro + Name="bsddb44Dir" + Value="$(externalsDir)\db-4.4.20\build_win32" + /> + <UserMacro + Name="bsddb44DepLibs" + Value="" + /> + <UserMacro + Name="sqlite3Dir" + Value="$(externalsDir)\sqlite-3.6.21" + /> + <UserMacro + Name="bz2Dir" + Value="$(externalsDir)\bzip2-1.0.5" + /> + <UserMacro + Name="opensslDir" + Value="$(externalsDir)\openssl-0.9.8l" + /> + <UserMacro + Name="tcltkDir" + Value="$(externalsDir)\tcltk" + /> + <UserMacro + Name="tcltk64Dir" + Value="$(externalsDir)\tcltk64" + /> + <UserMacro + Name="tcltkLib" + Value="$(tcltkDir)\lib\tcl85.lib $(tcltkDir)\lib\tk85.lib" + /> + <UserMacro + Name="tcltkLibDebug" + Value="$(tcltkDir)\lib\tcl85g.lib $(tcltkDir)\lib\tk85g.lib" + /> + <UserMacro + Name="tcltk64Lib" + Value="$(tcltk64Dir)\lib\tcl85.lib $(tcltk64Dir)\lib\tk85.lib" + /> + <UserMacro + Name="tcltk64LibDebug" + Value="$(tcltk64Dir)\lib\tcl85g.lib $(tcltk64Dir)\lib\tk85g.lib" + /> +</VisualStudioPropertySheet> diff --git a/PC/VS8.0/release.vsprops b/PC/VS8.0/release.vsprops index 08def90651..6d6842d623 100644 --- a/PC/VS8.0/release.vsprops +++ b/PC/VS8.0/release.vsprops @@ -1,15 +1,15 @@ -<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioPropertySheet
- ProjectType="Visual C++"
- Version="8.00"
- Name="release"
- >
- <Tool
- Name="VCCLCompilerTool"
- PreprocessorDefinitions="NDEBUG"
- />
- <UserMacro
- Name="KillPythonExe"
- Value="$(OutDir)\kill_python.exe"
- />
-</VisualStudioPropertySheet>
+<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioPropertySheet + ProjectType="Visual C++" + Version="8.00" + Name="release" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="NDEBUG" + /> + <UserMacro + Name="KillPythonExe" + Value="$(OutDir)\kill_python.exe" + /> +</VisualStudioPropertySheet> diff --git a/PC/VS8.0/rt.bat b/PC/VS8.0/rt.bat index 90fd794421..767af766a5 100644 --- a/PC/VS8.0/rt.bat +++ b/PC/VS8.0/rt.bat @@ -1,52 +1,52 @@ -@echo off
-rem Run Tests. Run the regression test suite.
-rem Usage: rt [-d] [-O] [-q] regrtest_args
-rem -d Run Debug build (python_d.exe). Else release build.
-rem -O Run python.exe or python_d.exe (see -d) with -O.
-rem -q "quick" -- normally the tests are run twice, the first time
-rem after deleting all the .py[co] files reachable from Lib/.
-rem -q runs the tests just once, and without deleting .py[co] files.
-rem All leading instances of these switches are shifted off, and
-rem whatever remains is passed to regrtest.py. For example,
-rem rt -O -d -x test_thread
-rem runs
-rem python_d -O ../lib/test/regrtest.py -x test_thread
-rem twice, and
-rem rt -q -g test_binascii
-rem runs
-rem python_d ../lib/test/regrtest.py -g test_binascii
-rem to generate the expected-output file for binascii quickly.
-rem
-rem Confusing: if you want to pass a comma-separated list, like
-rem -u network,largefile
-rem then you have to quote it on the rt line, like
-rem rt -u "network,largefile"
-
-setlocal
-
-set exe=python
-set qmode=
-set dashO=
-PATH %PATH%;..\..\..\tcltk\bin
-
-:CheckOpts
-if "%1"=="-O" (set dashO=-O) & shift & goto CheckOpts
-if "%1"=="-q" (set qmode=yes) & shift & goto CheckOpts
-if "%1"=="-d" (set exe=python_d) & shift & goto CheckOpts
-
-set cmd=%exe% %dashO% -E -tt ../../lib/test/regrtest.py %1 %2 %3 %4 %5 %6 %7 %8 %9
-if defined qmode goto Qmode
-
-echo Deleting .pyc/.pyo files ...
-%exe% rmpyc.py
-
-echo on
-%cmd%
-@echo off
-
-echo About to run again without deleting .pyc/.pyo first:
-pause
-
-:Qmode
-echo on
-%cmd%
+@echo off +rem Run Tests. Run the regression test suite. +rem Usage: rt [-d] [-O] [-q] regrtest_args +rem -d Run Debug build (python_d.exe). Else release build. +rem -O Run python.exe or python_d.exe (see -d) with -O. +rem -q "quick" -- normally the tests are run twice, the first time +rem after deleting all the .py[co] files reachable from Lib/. +rem -q runs the tests just once, and without deleting .py[co] files. +rem All leading instances of these switches are shifted off, and +rem whatever remains is passed to regrtest.py. For example, +rem rt -O -d -x test_thread +rem runs +rem python_d -O ../lib/test/regrtest.py -x test_thread +rem twice, and +rem rt -q -g test_binascii +rem runs +rem python_d ../lib/test/regrtest.py -g test_binascii +rem to generate the expected-output file for binascii quickly. +rem +rem Confusing: if you want to pass a comma-separated list, like +rem -u network,largefile +rem then you have to quote it on the rt line, like +rem rt -u "network,largefile" + +setlocal + +set exe=python +set qmode= +set dashO= +PATH %PATH%;..\..\..\tcltk\bin + +:CheckOpts +if "%1"=="-O" (set dashO=-O) & shift & goto CheckOpts +if "%1"=="-q" (set qmode=yes) & shift & goto CheckOpts +if "%1"=="-d" (set exe=python_d) & shift & goto CheckOpts + +set cmd=%exe% %dashO% -E -tt ../../lib/test/regrtest.py %1 %2 %3 %4 %5 %6 %7 %8 %9 +if defined qmode goto Qmode + +echo Deleting .pyc/.pyo files ... +%exe% rmpyc.py + +echo on +%cmd% +@echo off + +echo About to run again without deleting .pyc/.pyo first: +pause + +:Qmode +echo on +%cmd% diff --git a/PC/VS8.0/sqlite3.vsprops b/PC/VS8.0/sqlite3.vsprops index 83003289f8..0b7102d3f8 100644 --- a/PC/VS8.0/sqlite3.vsprops +++ b/PC/VS8.0/sqlite3.vsprops @@ -1,14 +1,14 @@ -<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioPropertySheet
- ProjectType="Visual C++"
- Version="8.00"
- Name="sqlite3"
- InheritedPropertySheets=".\pyproject.vsprops"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories="..\..\..\sqlite-3.6.21"
- PreprocessorDefinitions="SQLITE_API=__declspec(dllexport)"
- WarningLevel="1"
- />
-</VisualStudioPropertySheet>
+<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioPropertySheet + ProjectType="Visual C++" + Version="8.00" + Name="sqlite3" + InheritedPropertySheets=".\pyproject.vsprops" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="..\..\..\sqlite-3.6.21" + PreprocessorDefinitions="SQLITE_API=__declspec(dllexport)" + WarningLevel="1" + /> +</VisualStudioPropertySheet> diff --git a/PC/VS8.0/x64.vsprops b/PC/VS8.0/x64.vsprops index 9f88d443fe..07200842d3 100644 --- a/PC/VS8.0/x64.vsprops +++ b/PC/VS8.0/x64.vsprops @@ -1,22 +1,22 @@ -<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioPropertySheet
- ProjectType="Visual C++"
- Version="8.00"
- Name="amd64"
- OutputDirectory="$(SolutionDir)\amd64\"
- IntermediateDirectory="$(SolutionDir)$(PlatformName)-temp-$(ConfigurationName)\$(ProjectName)\"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalOptions="/USECL:MS_OPTERON /GS-"
- PreprocessorDefinitions="_WIN64;_M_X64"
- />
- <Tool
- Name="VCLinkerTool"
- TargetMachine="17"
- />
- <UserMacro
- Name="PythonExe"
- Value="$(HOST_PYTHON)"
- />
-</VisualStudioPropertySheet>
+<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioPropertySheet + ProjectType="Visual C++" + Version="8.00" + Name="amd64" + OutputDirectory="$(SolutionDir)\amd64\" + IntermediateDirectory="$(SolutionDir)$(PlatformName)-temp-$(ConfigurationName)\$(ProjectName)\" + > + <Tool + Name="VCCLCompilerTool" + AdditionalOptions="/USECL:MS_OPTERON /GS-" + PreprocessorDefinitions="_WIN64;_M_X64" + /> + <Tool + Name="VCLinkerTool" + TargetMachine="17" + /> + <UserMacro + Name="PythonExe" + Value="$(HOST_PYTHON)" + /> +</VisualStudioPropertySheet> diff --git a/PC/bdist_wininst/wininst-7.1.sln b/PC/bdist_wininst/wininst-7.1.sln index e205d25c50..ff5250cedd 100644 --- a/PC/bdist_wininst/wininst-7.1.sln +++ b/PC/bdist_wininst/wininst-7.1.sln @@ -1,21 +1,21 @@ -Microsoft Visual Studio Solution File, Format Version 8.00
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wininst", "wininst-7.1.vcproj", "{EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}"
- ProjectSection(ProjectDependencies) = postProject
- EndProjectSection
-EndProject
-Global
- GlobalSection(SolutionConfiguration) = preSolution
- Debug = Debug
- Release = Release
- EndGlobalSection
- GlobalSection(ProjectConfiguration) = postSolution
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Debug.ActiveCfg = Debug|Win32
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Debug.Build.0 = Debug|Win32
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Release.ActiveCfg = Release|Win32
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Release.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- EndGlobalSection
- GlobalSection(ExtensibilityAddIns) = postSolution
- EndGlobalSection
-EndGlobal
+Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wininst", "wininst-7.1.vcproj", "{EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + Release = Release + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Debug.ActiveCfg = Debug|Win32 + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Debug.Build.0 = Debug|Win32 + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Release.ActiveCfg = Release|Win32 + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Release.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/PC/bdist_wininst/wininst-8.sln b/PC/bdist_wininst/wininst-8.sln index 25f16cfba2..1dec8a2eb1 100644 --- a/PC/bdist_wininst/wininst-8.sln +++ b/PC/bdist_wininst/wininst-8.sln @@ -1,19 +1,19 @@ -Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual Studio 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wininst", "wininst-8.vcproj", "{EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Debug|Win32.ActiveCfg = Debug|Win32
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Debug|Win32.Build.0 = Debug|Win32
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Release|Win32.ActiveCfg = Release|Win32
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Release|Win32.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
+Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wininst", "wininst-8.vcproj", "{EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Debug|Win32.ActiveCfg = Debug|Win32 + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Debug|Win32.Build.0 = Debug|Win32 + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Release|Win32.ActiveCfg = Release|Win32 + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/PC/example_nt/example.sln b/PC/example_nt/example.sln index d8a3119f2f..e78c0e32b6 100644 --- a/PC/example_nt/example.sln +++ b/PC/example_nt/example.sln @@ -1,21 +1,21 @@ -Microsoft Visual Studio Solution File, Format Version 8.00
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example", "example.vcproj", "{A0608D6F-84ED-44AE-A2A6-A3CC7F4A4030}"
- ProjectSection(ProjectDependencies) = postProject
- EndProjectSection
-EndProject
-Global
- GlobalSection(SolutionConfiguration) = preSolution
- Debug = Debug
- Release = Release
- EndGlobalSection
- GlobalSection(ProjectConfiguration) = postSolution
- {A0608D6F-84ED-44AE-A2A6-A3CC7F4A4030}.Debug.ActiveCfg = Debug|Win32
- {A0608D6F-84ED-44AE-A2A6-A3CC7F4A4030}.Debug.Build.0 = Debug|Win32
- {A0608D6F-84ED-44AE-A2A6-A3CC7F4A4030}.Release.ActiveCfg = Release|Win32
- {A0608D6F-84ED-44AE-A2A6-A3CC7F4A4030}.Release.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- EndGlobalSection
- GlobalSection(ExtensibilityAddIns) = postSolution
- EndGlobalSection
-EndGlobal
+Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example", "example.vcproj", "{A0608D6F-84ED-44AE-A2A6-A3CC7F4A4030}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + Release = Release + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {A0608D6F-84ED-44AE-A2A6-A3CC7F4A4030}.Debug.ActiveCfg = Debug|Win32 + {A0608D6F-84ED-44AE-A2A6-A3CC7F4A4030}.Debug.Build.0 = Debug|Win32 + {A0608D6F-84ED-44AE-A2A6-A3CC7F4A4030}.Release.ActiveCfg = Release|Win32 + {A0608D6F-84ED-44AE-A2A6-A3CC7F4A4030}.Release.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/PC/python.mk b/PC/python.mk index a76510628b..5f66eb980a 100644 --- a/PC/python.mk +++ b/PC/python.mk @@ -1,5 +1,5 @@ -project : n:\python\python-1.5.1\pc\wat_os2\pyth_os2.exe n:\python\python-1.&
-5.1\pc\wat_dos\pyth_dos.exe .SYMBOLIC
-
-!include n:\python\python-1.5.1\pc\wat_os2\pyth_os2.mk1
-!include n:\python\python-1.5.1\pc\wat_dos\pyth_dos.mk1
+project : n:\python\python-1.5.1\pc\wat_os2\pyth_os2.exe n:\python\python-1.& +5.1\pc\wat_dos\pyth_dos.exe .SYMBOLIC + +!include n:\python\python-1.5.1\pc\wat_os2\pyth_os2.mk1 +!include n:\python\python-1.5.1\pc\wat_dos\pyth_dos.mk1 diff --git a/PCbuild/pcbuild.sln b/PCbuild/pcbuild.sln index 725c6ea7bf..c5e072e12e 100644 --- a/PCbuild/pcbuild.sln +++ b/PCbuild/pcbuild.sln @@ -1,559 +1,559 @@ -Microsoft Visual Studio Solution File, Format Version 10.00
-# Visual Studio 2008
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python", "python.vcproj", "{B11D750F-CD1F-4A96-85CE-E69A5C5259F9}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058} = {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_versioninfo", "make_versioninfo.vcproj", "{F0E0541E-F17D-430B-97C4-93ADF0DD284E}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythoncore", "pythoncore.vcproj", "{CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}"
- ProjectSection(ProjectDependencies) = postProject
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E} = {F0E0541E-F17D-430B-97C4-93ADF0DD284E}
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31} = {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}
- {C73F0EC1-358B-4177-940F-0846AC8B04CD} = {C73F0EC1-358B-4177-940F-0846AC8B04CD}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythonw", "pythonw.vcproj", "{F4229CC3-873C-49AE-9729-DD308ED4CD4A}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "w9xpopen", "w9xpopen.vcproj", "{E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}"
- ProjectSection(ProjectDependencies) = postProject
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31} = {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_buildinfo", "make_buildinfo.vcproj", "{C73F0EC1-358B-4177-940F-0846AC8B04CD}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{553EC33E-9816-4996-A660-5D6186A0B0B3}"
- ProjectSection(SolutionItems) = preProject
- ..\Modules\getbuildinfo.c = ..\Modules\getbuildinfo.c
- readme.txt = readme.txt
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winsound", "winsound.vcproj", "{28B5D777-DDF2-4B6B-B34F-31D938813856}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_bsddb", "_bsddb.vcproj", "{B4D38F3F-68FB-42EC-A45D-E00657BB3627}"
- ProjectSection(ProjectDependencies) = postProject
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31} = {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ctypes", "_ctypes.vcproj", "{0E9791DB-593A-465F-98BC-681011311618}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ctypes_test", "_ctypes_test.vcproj", "{9EC7190A-249F-4180-A900-548FDCF3055F}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_elementtree", "_elementtree.vcproj", "{17E1E049-C309-4D79-843F-AE483C264AEA}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_msi", "_msi.vcproj", "{31FFC478-7B4A-43E8-9954-8D03E2187E9C}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_socket", "_socket.vcproj", "{86937F53-C189-40EF-8CE8-8759D8E7D480}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_sqlite3", "_sqlite3.vcproj", "{13CECB97-4119-4316-9D42-8534019A5A44}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- {A1A295E5-463C-437F-81CA-1F32367685DA} = {A1A295E5-463C-437F-81CA-1F32367685DA}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ssl", "_ssl.vcproj", "{C6E20F84-3247-4AD6-B051-B073268F73BA}"
- ProjectSection(ProjectDependencies) = postProject
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} = {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}
- {86937F53-C189-40EF-8CE8-8759D8E7D480} = {86937F53-C189-40EF-8CE8-8759D8E7D480}
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testcapi", "_testcapi.vcproj", "{6901D91C-6E48-4BB7-9FEC-700C8131DF1D}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_tkinter", "_tkinter.vcproj", "{4946ECAC-2E69-4BF8-A90A-F5136F5094DF}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bz2", "bz2.vcproj", "{73FCD2BD-F133-46B7-8EC1-144CD82A59D5}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "select", "select.vcproj", "{18CAE28C-B454-46C1-87A0-493D91D97F03}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unicodedata", "unicodedata.vcproj", "{ECC7CEAC-A5E5-458E-BB9E-2413CC847881}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pyexpat", "pyexpat.vcproj", "{D06B6426-4762-44CC-8BAD-D79052507F2F}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bdist_wininst", "bdist_wininst.vcproj", "{EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_hashlib", "_hashlib.vcproj", "{447F05A8-F581-4CAC-A466-5AC7936E207E}"
- ProjectSection(ProjectDependencies) = postProject
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} = {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sqlite3", "sqlite3.vcproj", "{A1A295E5-463C-437F-81CA-1F32367685DA}"
- ProjectSection(ProjectDependencies) = postProject
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31} = {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_multiprocessing", "_multiprocessing.vcproj", "{9E48B300-37D1-11DD-8C41-005056C00008}"
- ProjectSection(ProjectDependencies) = postProject
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "kill_python", "kill_python.vcproj", "{6DE10744-E396-40A5-B4E2-1B69AA7C8D31}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Debug|x64 = Debug|x64
- PGInstrument|Win32 = PGInstrument|Win32
- PGInstrument|x64 = PGInstrument|x64
- PGUpdate|Win32 = PGUpdate|Win32
- PGUpdate|x64 = PGUpdate|x64
- Release|Win32 = Release|Win32
- Release|x64 = Release|x64
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|Win32.ActiveCfg = Debug|Win32
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|Win32.Build.0 = Debug|Win32
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|x64.ActiveCfg = Debug|x64
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|x64.Build.0 = Debug|x64
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|Win32.ActiveCfg = Release|Win32
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|Win32.Build.0 = Release|Win32
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|x64.ActiveCfg = Release|x64
- {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|x64.Build.0 = Release|x64
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|Win32.ActiveCfg = Debug|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|Win32.Build.0 = Debug|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|x64.ActiveCfg = Debug|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|x64.Build.0 = Debug|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|Win32.ActiveCfg = Release|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|Win32.Build.0 = Release|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|x64.ActiveCfg = Release|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|x64.Build.0 = Release|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|Win32.ActiveCfg = Release|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|Win32.Build.0 = Release|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|x64.ActiveCfg = Release|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|x64.Build.0 = Release|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|Win32.ActiveCfg = Release|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|Win32.Build.0 = Release|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|x64.ActiveCfg = Release|Win32
- {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|x64.Build.0 = Release|Win32
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|Win32.ActiveCfg = Debug|Win32
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|Win32.Build.0 = Debug|Win32
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|x64.ActiveCfg = Debug|x64
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|x64.Build.0 = Debug|x64
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|Win32.ActiveCfg = Release|Win32
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|Win32.Build.0 = Release|Win32
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|x64.ActiveCfg = Release|x64
- {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|x64.Build.0 = Release|x64
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|Win32.ActiveCfg = Debug|Win32
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|Win32.Build.0 = Debug|Win32
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|x64.ActiveCfg = Debug|x64
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|x64.Build.0 = Debug|x64
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|Win32.ActiveCfg = Release|Win32
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|Win32.Build.0 = Release|Win32
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|x64.ActiveCfg = Release|x64
- {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|x64.Build.0 = Release|x64
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|Win32.ActiveCfg = Debug|Win32
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|Win32.Build.0 = Debug|Win32
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|x64.ActiveCfg = Debug|x64
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|x64.Build.0 = Debug|x64
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|Win32.ActiveCfg = Release|Win32
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|Win32.Build.0 = Release|Win32
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|x64.ActiveCfg = Release|x64
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|x64.Build.0 = Release|x64
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|Win32.ActiveCfg = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|Win32.Build.0 = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|x64.ActiveCfg = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|x64.Build.0 = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|Win32.ActiveCfg = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|Win32.Build.0 = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|x64.ActiveCfg = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|x64.Build.0 = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|Win32.ActiveCfg = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|Win32.Build.0 = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|x64.ActiveCfg = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|x64.Build.0 = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|Win32.ActiveCfg = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|Win32.Build.0 = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|x64.ActiveCfg = Release|Win32
- {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|x64.Build.0 = Release|Win32
- {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|Win32.ActiveCfg = Debug|Win32
- {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|Win32.Build.0 = Debug|Win32
- {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|x64.ActiveCfg = Debug|x64
- {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|x64.Build.0 = Debug|x64
- {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {28B5D777-DDF2-4B6B-B34F-31D938813856}.Release|Win32.ActiveCfg = Release|Win32
- {28B5D777-DDF2-4B6B-B34F-31D938813856}.Release|Win32.Build.0 = Release|Win32
- {28B5D777-DDF2-4B6B-B34F-31D938813856}.Release|x64.ActiveCfg = Release|x64
- {28B5D777-DDF2-4B6B-B34F-31D938813856}.Release|x64.Build.0 = Release|x64
- {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Debug|Win32.ActiveCfg = Debug|Win32
- {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Debug|Win32.Build.0 = Debug|Win32
- {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Debug|x64.ActiveCfg = Debug|x64
- {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Debug|x64.Build.0 = Debug|x64
- {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Release|Win32.ActiveCfg = Release|Win32
- {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Release|Win32.Build.0 = Release|Win32
- {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Release|x64.ActiveCfg = Release|x64
- {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Release|x64.Build.0 = Release|x64
- {0E9791DB-593A-465F-98BC-681011311618}.Debug|Win32.ActiveCfg = Debug|Win32
- {0E9791DB-593A-465F-98BC-681011311618}.Debug|Win32.Build.0 = Debug|Win32
- {0E9791DB-593A-465F-98BC-681011311618}.Debug|x64.ActiveCfg = Debug|x64
- {0E9791DB-593A-465F-98BC-681011311618}.Debug|x64.Build.0 = Debug|x64
- {0E9791DB-593A-465F-98BC-681011311618}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {0E9791DB-593A-465F-98BC-681011311618}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {0E9791DB-593A-465F-98BC-681011311618}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {0E9791DB-593A-465F-98BC-681011311618}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {0E9791DB-593A-465F-98BC-681011311618}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {0E9791DB-593A-465F-98BC-681011311618}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {0E9791DB-593A-465F-98BC-681011311618}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {0E9791DB-593A-465F-98BC-681011311618}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {0E9791DB-593A-465F-98BC-681011311618}.Release|Win32.ActiveCfg = Release|Win32
- {0E9791DB-593A-465F-98BC-681011311618}.Release|Win32.Build.0 = Release|Win32
- {0E9791DB-593A-465F-98BC-681011311618}.Release|x64.ActiveCfg = Release|x64
- {0E9791DB-593A-465F-98BC-681011311618}.Release|x64.Build.0 = Release|x64
- {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|Win32.ActiveCfg = Debug|Win32
- {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|Win32.Build.0 = Debug|Win32
- {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|x64.ActiveCfg = Debug|x64
- {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|x64.Build.0 = Debug|x64
- {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|Win32.ActiveCfg = Release|Win32
- {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|Win32.Build.0 = Release|Win32
- {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|x64.ActiveCfg = Release|x64
- {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|x64.Build.0 = Release|x64
- {17E1E049-C309-4D79-843F-AE483C264AEA}.Debug|Win32.ActiveCfg = Debug|Win32
- {17E1E049-C309-4D79-843F-AE483C264AEA}.Debug|Win32.Build.0 = Debug|Win32
- {17E1E049-C309-4D79-843F-AE483C264AEA}.Debug|x64.ActiveCfg = Debug|x64
- {17E1E049-C309-4D79-843F-AE483C264AEA}.Debug|x64.Build.0 = Debug|x64
- {17E1E049-C309-4D79-843F-AE483C264AEA}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {17E1E049-C309-4D79-843F-AE483C264AEA}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {17E1E049-C309-4D79-843F-AE483C264AEA}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {17E1E049-C309-4D79-843F-AE483C264AEA}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {17E1E049-C309-4D79-843F-AE483C264AEA}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {17E1E049-C309-4D79-843F-AE483C264AEA}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {17E1E049-C309-4D79-843F-AE483C264AEA}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {17E1E049-C309-4D79-843F-AE483C264AEA}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {17E1E049-C309-4D79-843F-AE483C264AEA}.Release|Win32.ActiveCfg = Release|Win32
- {17E1E049-C309-4D79-843F-AE483C264AEA}.Release|Win32.Build.0 = Release|Win32
- {17E1E049-C309-4D79-843F-AE483C264AEA}.Release|x64.ActiveCfg = Release|x64
- {17E1E049-C309-4D79-843F-AE483C264AEA}.Release|x64.Build.0 = Release|x64
- {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Debug|Win32.ActiveCfg = Debug|Win32
- {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Debug|Win32.Build.0 = Debug|Win32
- {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Debug|x64.ActiveCfg = Debug|x64
- {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Debug|x64.Build.0 = Debug|x64
- {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Release|Win32.ActiveCfg = Release|Win32
- {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Release|Win32.Build.0 = Release|Win32
- {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Release|x64.ActiveCfg = Release|x64
- {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Release|x64.Build.0 = Release|x64
- {86937F53-C189-40EF-8CE8-8759D8E7D480}.Debug|Win32.ActiveCfg = Debug|Win32
- {86937F53-C189-40EF-8CE8-8759D8E7D480}.Debug|Win32.Build.0 = Debug|Win32
- {86937F53-C189-40EF-8CE8-8759D8E7D480}.Debug|x64.ActiveCfg = Debug|x64
- {86937F53-C189-40EF-8CE8-8759D8E7D480}.Debug|x64.Build.0 = Debug|x64
- {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {86937F53-C189-40EF-8CE8-8759D8E7D480}.Release|Win32.ActiveCfg = Release|Win32
- {86937F53-C189-40EF-8CE8-8759D8E7D480}.Release|Win32.Build.0 = Release|Win32
- {86937F53-C189-40EF-8CE8-8759D8E7D480}.Release|x64.ActiveCfg = Release|x64
- {86937F53-C189-40EF-8CE8-8759D8E7D480}.Release|x64.Build.0 = Release|x64
- {13CECB97-4119-4316-9D42-8534019A5A44}.Debug|Win32.ActiveCfg = Debug|Win32
- {13CECB97-4119-4316-9D42-8534019A5A44}.Debug|Win32.Build.0 = Debug|Win32
- {13CECB97-4119-4316-9D42-8534019A5A44}.Debug|x64.ActiveCfg = Debug|x64
- {13CECB97-4119-4316-9D42-8534019A5A44}.Debug|x64.Build.0 = Debug|x64
- {13CECB97-4119-4316-9D42-8534019A5A44}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {13CECB97-4119-4316-9D42-8534019A5A44}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {13CECB97-4119-4316-9D42-8534019A5A44}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {13CECB97-4119-4316-9D42-8534019A5A44}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {13CECB97-4119-4316-9D42-8534019A5A44}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {13CECB97-4119-4316-9D42-8534019A5A44}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {13CECB97-4119-4316-9D42-8534019A5A44}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {13CECB97-4119-4316-9D42-8534019A5A44}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {13CECB97-4119-4316-9D42-8534019A5A44}.Release|Win32.ActiveCfg = Release|Win32
- {13CECB97-4119-4316-9D42-8534019A5A44}.Release|Win32.Build.0 = Release|Win32
- {13CECB97-4119-4316-9D42-8534019A5A44}.Release|x64.ActiveCfg = Release|x64
- {13CECB97-4119-4316-9D42-8534019A5A44}.Release|x64.Build.0 = Release|x64
- {C6E20F84-3247-4AD6-B051-B073268F73BA}.Debug|Win32.ActiveCfg = Debug|Win32
- {C6E20F84-3247-4AD6-B051-B073268F73BA}.Debug|Win32.Build.0 = Debug|Win32
- {C6E20F84-3247-4AD6-B051-B073268F73BA}.Debug|x64.ActiveCfg = Debug|x64
- {C6E20F84-3247-4AD6-B051-B073268F73BA}.Debug|x64.Build.0 = Debug|x64
- {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {C6E20F84-3247-4AD6-B051-B073268F73BA}.Release|Win32.ActiveCfg = Release|Win32
- {C6E20F84-3247-4AD6-B051-B073268F73BA}.Release|Win32.Build.0 = Release|Win32
- {C6E20F84-3247-4AD6-B051-B073268F73BA}.Release|x64.ActiveCfg = Release|x64
- {C6E20F84-3247-4AD6-B051-B073268F73BA}.Release|x64.Build.0 = Release|x64
- {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Debug|Win32.ActiveCfg = Debug|Win32
- {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Debug|Win32.Build.0 = Debug|Win32
- {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Debug|x64.ActiveCfg = Debug|x64
- {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Debug|x64.Build.0 = Debug|x64
- {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|Win32.ActiveCfg = Release|Win32
- {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|Win32.Build.0 = Release|Win32
- {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|x64.ActiveCfg = Release|x64
- {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|x64.Build.0 = Release|x64
- {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|Win32.ActiveCfg = Debug|Win32
- {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|Win32.Build.0 = Debug|Win32
- {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|x64.ActiveCfg = Debug|x64
- {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|x64.Build.0 = Debug|x64
- {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Release|Win32.ActiveCfg = Release|Win32
- {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Release|Win32.Build.0 = Release|Win32
- {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Release|x64.ActiveCfg = Release|x64
- {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Release|x64.Build.0 = Release|x64
- {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Debug|Win32.ActiveCfg = Debug|Win32
- {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Debug|Win32.Build.0 = Debug|Win32
- {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Debug|x64.ActiveCfg = Debug|x64
- {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Debug|x64.Build.0 = Debug|x64
- {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Release|Win32.ActiveCfg = Release|Win32
- {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Release|Win32.Build.0 = Release|Win32
- {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Release|x64.ActiveCfg = Release|x64
- {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Release|x64.Build.0 = Release|x64
- {18CAE28C-B454-46C1-87A0-493D91D97F03}.Debug|Win32.ActiveCfg = Debug|Win32
- {18CAE28C-B454-46C1-87A0-493D91D97F03}.Debug|Win32.Build.0 = Debug|Win32
- {18CAE28C-B454-46C1-87A0-493D91D97F03}.Debug|x64.ActiveCfg = Debug|x64
- {18CAE28C-B454-46C1-87A0-493D91D97F03}.Debug|x64.Build.0 = Debug|x64
- {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {18CAE28C-B454-46C1-87A0-493D91D97F03}.Release|Win32.ActiveCfg = Release|Win32
- {18CAE28C-B454-46C1-87A0-493D91D97F03}.Release|Win32.Build.0 = Release|Win32
- {18CAE28C-B454-46C1-87A0-493D91D97F03}.Release|x64.ActiveCfg = Release|x64
- {18CAE28C-B454-46C1-87A0-493D91D97F03}.Release|x64.Build.0 = Release|x64
- {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Debug|Win32.ActiveCfg = Debug|Win32
- {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Debug|Win32.Build.0 = Debug|Win32
- {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Debug|x64.ActiveCfg = Debug|x64
- {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Debug|x64.Build.0 = Debug|x64
- {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Release|Win32.ActiveCfg = Release|Win32
- {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Release|Win32.Build.0 = Release|Win32
- {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Release|x64.ActiveCfg = Release|x64
- {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Release|x64.Build.0 = Release|x64
- {D06B6426-4762-44CC-8BAD-D79052507F2F}.Debug|Win32.ActiveCfg = Debug|Win32
- {D06B6426-4762-44CC-8BAD-D79052507F2F}.Debug|Win32.Build.0 = Debug|Win32
- {D06B6426-4762-44CC-8BAD-D79052507F2F}.Debug|x64.ActiveCfg = Debug|x64
- {D06B6426-4762-44CC-8BAD-D79052507F2F}.Debug|x64.Build.0 = Debug|x64
- {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|Win32.ActiveCfg = Release|Win32
- {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|Win32.Build.0 = Release|Win32
- {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|x64.ActiveCfg = Release|x64
- {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|x64.Build.0 = Release|x64
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Debug|Win32.ActiveCfg = Release|Win32
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Debug|x64.ActiveCfg = Release|x64
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGInstrument|Win32.ActiveCfg = Release|Win32
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGInstrument|x64.ActiveCfg = Release|x64
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGUpdate|Win32.ActiveCfg = Release|Win32
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGUpdate|x64.ActiveCfg = Release|x64
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Release|Win32.ActiveCfg = Release|Win32
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Release|x64.ActiveCfg = Release|x64
- {447F05A8-F581-4CAC-A466-5AC7936E207E}.Debug|Win32.ActiveCfg = Debug|Win32
- {447F05A8-F581-4CAC-A466-5AC7936E207E}.Debug|Win32.Build.0 = Debug|Win32
- {447F05A8-F581-4CAC-A466-5AC7936E207E}.Debug|x64.ActiveCfg = Debug|x64
- {447F05A8-F581-4CAC-A466-5AC7936E207E}.Debug|x64.Build.0 = Debug|x64
- {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {447F05A8-F581-4CAC-A466-5AC7936E207E}.Release|Win32.ActiveCfg = Release|Win32
- {447F05A8-F581-4CAC-A466-5AC7936E207E}.Release|Win32.Build.0 = Release|Win32
- {447F05A8-F581-4CAC-A466-5AC7936E207E}.Release|x64.ActiveCfg = Release|x64
- {447F05A8-F581-4CAC-A466-5AC7936E207E}.Release|x64.Build.0 = Release|x64
- {A1A295E5-463C-437F-81CA-1F32367685DA}.Debug|Win32.ActiveCfg = Debug|Win32
- {A1A295E5-463C-437F-81CA-1F32367685DA}.Debug|Win32.Build.0 = Debug|Win32
- {A1A295E5-463C-437F-81CA-1F32367685DA}.Debug|x64.ActiveCfg = Debug|x64
- {A1A295E5-463C-437F-81CA-1F32367685DA}.Debug|x64.Build.0 = Debug|x64
- {A1A295E5-463C-437F-81CA-1F32367685DA}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {A1A295E5-463C-437F-81CA-1F32367685DA}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {A1A295E5-463C-437F-81CA-1F32367685DA}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {A1A295E5-463C-437F-81CA-1F32367685DA}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {A1A295E5-463C-437F-81CA-1F32367685DA}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {A1A295E5-463C-437F-81CA-1F32367685DA}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {A1A295E5-463C-437F-81CA-1F32367685DA}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {A1A295E5-463C-437F-81CA-1F32367685DA}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {A1A295E5-463C-437F-81CA-1F32367685DA}.Release|Win32.ActiveCfg = Release|Win32
- {A1A295E5-463C-437F-81CA-1F32367685DA}.Release|Win32.Build.0 = Release|Win32
- {A1A295E5-463C-437F-81CA-1F32367685DA}.Release|x64.ActiveCfg = Release|x64
- {A1A295E5-463C-437F-81CA-1F32367685DA}.Release|x64.Build.0 = Release|x64
- {9E48B300-37D1-11DD-8C41-005056C00008}.Debug|Win32.ActiveCfg = Debug|Win32
- {9E48B300-37D1-11DD-8C41-005056C00008}.Debug|Win32.Build.0 = Debug|Win32
- {9E48B300-37D1-11DD-8C41-005056C00008}.Debug|x64.ActiveCfg = Debug|x64
- {9E48B300-37D1-11DD-8C41-005056C00008}.Debug|x64.Build.0 = Debug|x64
- {9E48B300-37D1-11DD-8C41-005056C00008}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {9E48B300-37D1-11DD-8C41-005056C00008}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {9E48B300-37D1-11DD-8C41-005056C00008}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {9E48B300-37D1-11DD-8C41-005056C00008}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {9E48B300-37D1-11DD-8C41-005056C00008}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {9E48B300-37D1-11DD-8C41-005056C00008}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {9E48B300-37D1-11DD-8C41-005056C00008}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {9E48B300-37D1-11DD-8C41-005056C00008}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {9E48B300-37D1-11DD-8C41-005056C00008}.Release|Win32.ActiveCfg = Release|Win32
- {9E48B300-37D1-11DD-8C41-005056C00008}.Release|Win32.Build.0 = Release|Win32
- {9E48B300-37D1-11DD-8C41-005056C00008}.Release|x64.ActiveCfg = Release|x64
- {9E48B300-37D1-11DD-8C41-005056C00008}.Release|x64.Build.0 = Release|x64
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Debug|Win32.ActiveCfg = Debug|Win32
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Debug|Win32.Build.0 = Debug|Win32
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Debug|x64.ActiveCfg = Debug|x64
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Debug|x64.Build.0 = Debug|x64
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGInstrument|Win32.ActiveCfg = Release|Win32
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGInstrument|Win32.Build.0 = Release|Win32
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGInstrument|x64.ActiveCfg = Release|x64
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGInstrument|x64.Build.0 = Release|x64
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGUpdate|Win32.ActiveCfg = Release|Win32
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGUpdate|Win32.Build.0 = Release|Win32
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGUpdate|x64.ActiveCfg = Release|x64
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGUpdate|x64.Build.0 = Release|x64
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Release|Win32.ActiveCfg = Release|Win32
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Release|Win32.Build.0 = Release|Win32
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Release|x64.ActiveCfg = Release|x64
- {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Release|x64.Build.0 = Release|x64
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
+Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python", "python.vcproj", "{B11D750F-CD1F-4A96-85CE-E69A5C5259F9}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058} = {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_versioninfo", "make_versioninfo.vcproj", "{F0E0541E-F17D-430B-97C4-93ADF0DD284E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythoncore", "pythoncore.vcproj", "{CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}" + ProjectSection(ProjectDependencies) = postProject + {F0E0541E-F17D-430B-97C4-93ADF0DD284E} = {F0E0541E-F17D-430B-97C4-93ADF0DD284E} + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31} = {6DE10744-E396-40A5-B4E2-1B69AA7C8D31} + {C73F0EC1-358B-4177-940F-0846AC8B04CD} = {C73F0EC1-358B-4177-940F-0846AC8B04CD} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythonw", "pythonw.vcproj", "{F4229CC3-873C-49AE-9729-DD308ED4CD4A}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "w9xpopen", "w9xpopen.vcproj", "{E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}" + ProjectSection(ProjectDependencies) = postProject + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31} = {6DE10744-E396-40A5-B4E2-1B69AA7C8D31} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_buildinfo", "make_buildinfo.vcproj", "{C73F0EC1-358B-4177-940F-0846AC8B04CD}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{553EC33E-9816-4996-A660-5D6186A0B0B3}" + ProjectSection(SolutionItems) = preProject + ..\Modules\getbuildinfo.c = ..\Modules\getbuildinfo.c + readme.txt = readme.txt + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winsound", "winsound.vcproj", "{28B5D777-DDF2-4B6B-B34F-31D938813856}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_bsddb", "_bsddb.vcproj", "{B4D38F3F-68FB-42EC-A45D-E00657BB3627}" + ProjectSection(ProjectDependencies) = postProject + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31} = {6DE10744-E396-40A5-B4E2-1B69AA7C8D31} + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ctypes", "_ctypes.vcproj", "{0E9791DB-593A-465F-98BC-681011311618}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ctypes_test", "_ctypes_test.vcproj", "{9EC7190A-249F-4180-A900-548FDCF3055F}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_elementtree", "_elementtree.vcproj", "{17E1E049-C309-4D79-843F-AE483C264AEA}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_msi", "_msi.vcproj", "{31FFC478-7B4A-43E8-9954-8D03E2187E9C}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_socket", "_socket.vcproj", "{86937F53-C189-40EF-8CE8-8759D8E7D480}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_sqlite3", "_sqlite3.vcproj", "{13CECB97-4119-4316-9D42-8534019A5A44}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + {A1A295E5-463C-437F-81CA-1F32367685DA} = {A1A295E5-463C-437F-81CA-1F32367685DA} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ssl", "_ssl.vcproj", "{C6E20F84-3247-4AD6-B051-B073268F73BA}" + ProjectSection(ProjectDependencies) = postProject + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} = {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} + {86937F53-C189-40EF-8CE8-8759D8E7D480} = {86937F53-C189-40EF-8CE8-8759D8E7D480} + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testcapi", "_testcapi.vcproj", "{6901D91C-6E48-4BB7-9FEC-700C8131DF1D}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_tkinter", "_tkinter.vcproj", "{4946ECAC-2E69-4BF8-A90A-F5136F5094DF}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bz2", "bz2.vcproj", "{73FCD2BD-F133-46B7-8EC1-144CD82A59D5}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "select", "select.vcproj", "{18CAE28C-B454-46C1-87A0-493D91D97F03}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unicodedata", "unicodedata.vcproj", "{ECC7CEAC-A5E5-458E-BB9E-2413CC847881}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pyexpat", "pyexpat.vcproj", "{D06B6426-4762-44CC-8BAD-D79052507F2F}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bdist_wininst", "bdist_wininst.vcproj", "{EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_hashlib", "_hashlib.vcproj", "{447F05A8-F581-4CAC-A466-5AC7936E207E}" + ProjectSection(ProjectDependencies) = postProject + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} = {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sqlite3", "sqlite3.vcproj", "{A1A295E5-463C-437F-81CA-1F32367685DA}" + ProjectSection(ProjectDependencies) = postProject + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31} = {6DE10744-E396-40A5-B4E2-1B69AA7C8D31} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_multiprocessing", "_multiprocessing.vcproj", "{9E48B300-37D1-11DD-8C41-005056C00008}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "kill_python", "kill_python.vcproj", "{6DE10744-E396-40A5-B4E2-1B69AA7C8D31}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + PGInstrument|Win32 = PGInstrument|Win32 + PGInstrument|x64 = PGInstrument|x64 + PGUpdate|Win32 = PGUpdate|Win32 + PGUpdate|x64 = PGUpdate|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|Win32.ActiveCfg = Debug|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|Win32.Build.0 = Debug|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|x64.ActiveCfg = Debug|x64 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|x64.Build.0 = Debug|x64 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|Win32.ActiveCfg = Release|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|Win32.Build.0 = Release|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|x64.ActiveCfg = Release|x64 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|x64.Build.0 = Release|x64 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|Win32.ActiveCfg = Debug|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|Win32.Build.0 = Debug|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|x64.ActiveCfg = Debug|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|x64.Build.0 = Debug|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|Win32.ActiveCfg = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|Win32.Build.0 = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|x64.ActiveCfg = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|x64.Build.0 = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|Win32.ActiveCfg = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|Win32.Build.0 = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|x64.ActiveCfg = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|x64.Build.0 = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|Win32.ActiveCfg = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|Win32.Build.0 = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|x64.ActiveCfg = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|x64.Build.0 = Release|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|Win32.ActiveCfg = Debug|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|Win32.Build.0 = Debug|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|x64.ActiveCfg = Debug|x64 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|x64.Build.0 = Debug|x64 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|Win32.ActiveCfg = Release|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|Win32.Build.0 = Release|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|x64.ActiveCfg = Release|x64 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|x64.Build.0 = Release|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|Win32.ActiveCfg = Debug|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|Win32.Build.0 = Debug|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|x64.ActiveCfg = Debug|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|x64.Build.0 = Debug|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|Win32.ActiveCfg = Release|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|Win32.Build.0 = Release|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|x64.ActiveCfg = Release|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|x64.Build.0 = Release|x64 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|Win32.ActiveCfg = Debug|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|Win32.Build.0 = Debug|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|x64.ActiveCfg = Debug|x64 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|x64.Build.0 = Debug|x64 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|Win32.ActiveCfg = Release|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|Win32.Build.0 = Release|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|x64.ActiveCfg = Release|x64 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|x64.Build.0 = Release|x64 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|Win32.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|Win32.Build.0 = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|x64.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|x64.Build.0 = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|Win32.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|Win32.Build.0 = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|x64.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|x64.Build.0 = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|Win32.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|Win32.Build.0 = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|x64.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|x64.Build.0 = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|Win32.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|Win32.Build.0 = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|x64.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|x64.Build.0 = Release|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|Win32.ActiveCfg = Debug|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|Win32.Build.0 = Debug|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|x64.ActiveCfg = Debug|x64 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|x64.Build.0 = Debug|x64 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.Release|Win32.ActiveCfg = Release|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.Release|Win32.Build.0 = Release|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.Release|x64.ActiveCfg = Release|x64 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.Release|x64.Build.0 = Release|x64 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Debug|Win32.ActiveCfg = Debug|Win32 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Debug|Win32.Build.0 = Debug|Win32 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Debug|x64.ActiveCfg = Debug|x64 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Debug|x64.Build.0 = Debug|x64 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Release|Win32.ActiveCfg = Release|Win32 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Release|Win32.Build.0 = Release|Win32 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Release|x64.ActiveCfg = Release|x64 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Release|x64.Build.0 = Release|x64 + {0E9791DB-593A-465F-98BC-681011311618}.Debug|Win32.ActiveCfg = Debug|Win32 + {0E9791DB-593A-465F-98BC-681011311618}.Debug|Win32.Build.0 = Debug|Win32 + {0E9791DB-593A-465F-98BC-681011311618}.Debug|x64.ActiveCfg = Debug|x64 + {0E9791DB-593A-465F-98BC-681011311618}.Debug|x64.Build.0 = Debug|x64 + {0E9791DB-593A-465F-98BC-681011311618}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {0E9791DB-593A-465F-98BC-681011311618}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {0E9791DB-593A-465F-98BC-681011311618}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {0E9791DB-593A-465F-98BC-681011311618}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {0E9791DB-593A-465F-98BC-681011311618}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {0E9791DB-593A-465F-98BC-681011311618}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {0E9791DB-593A-465F-98BC-681011311618}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {0E9791DB-593A-465F-98BC-681011311618}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {0E9791DB-593A-465F-98BC-681011311618}.Release|Win32.ActiveCfg = Release|Win32 + {0E9791DB-593A-465F-98BC-681011311618}.Release|Win32.Build.0 = Release|Win32 + {0E9791DB-593A-465F-98BC-681011311618}.Release|x64.ActiveCfg = Release|x64 + {0E9791DB-593A-465F-98BC-681011311618}.Release|x64.Build.0 = Release|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|Win32.ActiveCfg = Debug|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|Win32.Build.0 = Debug|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|x64.ActiveCfg = Debug|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|x64.Build.0 = Debug|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|Win32.ActiveCfg = Release|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|Win32.Build.0 = Release|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|x64.ActiveCfg = Release|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|x64.Build.0 = Release|x64 + {17E1E049-C309-4D79-843F-AE483C264AEA}.Debug|Win32.ActiveCfg = Debug|Win32 + {17E1E049-C309-4D79-843F-AE483C264AEA}.Debug|Win32.Build.0 = Debug|Win32 + {17E1E049-C309-4D79-843F-AE483C264AEA}.Debug|x64.ActiveCfg = Debug|x64 + {17E1E049-C309-4D79-843F-AE483C264AEA}.Debug|x64.Build.0 = Debug|x64 + {17E1E049-C309-4D79-843F-AE483C264AEA}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {17E1E049-C309-4D79-843F-AE483C264AEA}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {17E1E049-C309-4D79-843F-AE483C264AEA}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {17E1E049-C309-4D79-843F-AE483C264AEA}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {17E1E049-C309-4D79-843F-AE483C264AEA}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {17E1E049-C309-4D79-843F-AE483C264AEA}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {17E1E049-C309-4D79-843F-AE483C264AEA}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {17E1E049-C309-4D79-843F-AE483C264AEA}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {17E1E049-C309-4D79-843F-AE483C264AEA}.Release|Win32.ActiveCfg = Release|Win32 + {17E1E049-C309-4D79-843F-AE483C264AEA}.Release|Win32.Build.0 = Release|Win32 + {17E1E049-C309-4D79-843F-AE483C264AEA}.Release|x64.ActiveCfg = Release|x64 + {17E1E049-C309-4D79-843F-AE483C264AEA}.Release|x64.Build.0 = Release|x64 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Debug|Win32.ActiveCfg = Debug|Win32 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Debug|Win32.Build.0 = Debug|Win32 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Debug|x64.ActiveCfg = Debug|x64 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Debug|x64.Build.0 = Debug|x64 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Release|Win32.ActiveCfg = Release|Win32 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Release|Win32.Build.0 = Release|Win32 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Release|x64.ActiveCfg = Release|x64 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Release|x64.Build.0 = Release|x64 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.Debug|Win32.ActiveCfg = Debug|Win32 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.Debug|Win32.Build.0 = Debug|Win32 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.Debug|x64.ActiveCfg = Debug|x64 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.Debug|x64.Build.0 = Debug|x64 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.Release|Win32.ActiveCfg = Release|Win32 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.Release|Win32.Build.0 = Release|Win32 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.Release|x64.ActiveCfg = Release|x64 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.Release|x64.Build.0 = Release|x64 + {13CECB97-4119-4316-9D42-8534019A5A44}.Debug|Win32.ActiveCfg = Debug|Win32 + {13CECB97-4119-4316-9D42-8534019A5A44}.Debug|Win32.Build.0 = Debug|Win32 + {13CECB97-4119-4316-9D42-8534019A5A44}.Debug|x64.ActiveCfg = Debug|x64 + {13CECB97-4119-4316-9D42-8534019A5A44}.Debug|x64.Build.0 = Debug|x64 + {13CECB97-4119-4316-9D42-8534019A5A44}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {13CECB97-4119-4316-9D42-8534019A5A44}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {13CECB97-4119-4316-9D42-8534019A5A44}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {13CECB97-4119-4316-9D42-8534019A5A44}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {13CECB97-4119-4316-9D42-8534019A5A44}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {13CECB97-4119-4316-9D42-8534019A5A44}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {13CECB97-4119-4316-9D42-8534019A5A44}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {13CECB97-4119-4316-9D42-8534019A5A44}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {13CECB97-4119-4316-9D42-8534019A5A44}.Release|Win32.ActiveCfg = Release|Win32 + {13CECB97-4119-4316-9D42-8534019A5A44}.Release|Win32.Build.0 = Release|Win32 + {13CECB97-4119-4316-9D42-8534019A5A44}.Release|x64.ActiveCfg = Release|x64 + {13CECB97-4119-4316-9D42-8534019A5A44}.Release|x64.Build.0 = Release|x64 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.Debug|Win32.ActiveCfg = Debug|Win32 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.Debug|Win32.Build.0 = Debug|Win32 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.Debug|x64.ActiveCfg = Debug|x64 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.Debug|x64.Build.0 = Debug|x64 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.Release|Win32.ActiveCfg = Release|Win32 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.Release|Win32.Build.0 = Release|Win32 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.Release|x64.ActiveCfg = Release|x64 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.Release|x64.Build.0 = Release|x64 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Debug|Win32.ActiveCfg = Debug|Win32 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Debug|Win32.Build.0 = Debug|Win32 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Debug|x64.ActiveCfg = Debug|x64 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Debug|x64.Build.0 = Debug|x64 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|Win32.ActiveCfg = Release|Win32 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|Win32.Build.0 = Release|Win32 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|x64.ActiveCfg = Release|x64 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|x64.Build.0 = Release|x64 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|Win32.ActiveCfg = Debug|Win32 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|Win32.Build.0 = Debug|Win32 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|x64.ActiveCfg = Debug|x64 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|x64.Build.0 = Debug|x64 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Release|Win32.ActiveCfg = Release|Win32 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Release|Win32.Build.0 = Release|Win32 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Release|x64.ActiveCfg = Release|x64 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Release|x64.Build.0 = Release|x64 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Debug|Win32.ActiveCfg = Debug|Win32 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Debug|Win32.Build.0 = Debug|Win32 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Debug|x64.ActiveCfg = Debug|x64 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Debug|x64.Build.0 = Debug|x64 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Release|Win32.ActiveCfg = Release|Win32 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Release|Win32.Build.0 = Release|Win32 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Release|x64.ActiveCfg = Release|x64 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Release|x64.Build.0 = Release|x64 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.Debug|Win32.ActiveCfg = Debug|Win32 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.Debug|Win32.Build.0 = Debug|Win32 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.Debug|x64.ActiveCfg = Debug|x64 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.Debug|x64.Build.0 = Debug|x64 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.Release|Win32.ActiveCfg = Release|Win32 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.Release|Win32.Build.0 = Release|Win32 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.Release|x64.ActiveCfg = Release|x64 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.Release|x64.Build.0 = Release|x64 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Debug|Win32.ActiveCfg = Debug|Win32 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Debug|Win32.Build.0 = Debug|Win32 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Debug|x64.ActiveCfg = Debug|x64 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Debug|x64.Build.0 = Debug|x64 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Release|Win32.ActiveCfg = Release|Win32 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Release|Win32.Build.0 = Release|Win32 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Release|x64.ActiveCfg = Release|x64 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Release|x64.Build.0 = Release|x64 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.Debug|Win32.ActiveCfg = Debug|Win32 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.Debug|Win32.Build.0 = Debug|Win32 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.Debug|x64.ActiveCfg = Debug|x64 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.Debug|x64.Build.0 = Debug|x64 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|Win32.ActiveCfg = Release|Win32 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|Win32.Build.0 = Release|Win32 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|x64.ActiveCfg = Release|x64 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|x64.Build.0 = Release|x64 + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Debug|Win32.ActiveCfg = Release|Win32 + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Debug|x64.ActiveCfg = Release|x64 + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGInstrument|Win32.ActiveCfg = Release|Win32 + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGInstrument|x64.ActiveCfg = Release|x64 + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGUpdate|Win32.ActiveCfg = Release|Win32 + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGUpdate|x64.ActiveCfg = Release|x64 + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Release|Win32.ActiveCfg = Release|Win32 + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Release|x64.ActiveCfg = Release|x64 + {447F05A8-F581-4CAC-A466-5AC7936E207E}.Debug|Win32.ActiveCfg = Debug|Win32 + {447F05A8-F581-4CAC-A466-5AC7936E207E}.Debug|Win32.Build.0 = Debug|Win32 + {447F05A8-F581-4CAC-A466-5AC7936E207E}.Debug|x64.ActiveCfg = Debug|x64 + {447F05A8-F581-4CAC-A466-5AC7936E207E}.Debug|x64.Build.0 = Debug|x64 + {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {447F05A8-F581-4CAC-A466-5AC7936E207E}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {447F05A8-F581-4CAC-A466-5AC7936E207E}.Release|Win32.ActiveCfg = Release|Win32 + {447F05A8-F581-4CAC-A466-5AC7936E207E}.Release|Win32.Build.0 = Release|Win32 + {447F05A8-F581-4CAC-A466-5AC7936E207E}.Release|x64.ActiveCfg = Release|x64 + {447F05A8-F581-4CAC-A466-5AC7936E207E}.Release|x64.Build.0 = Release|x64 + {A1A295E5-463C-437F-81CA-1F32367685DA}.Debug|Win32.ActiveCfg = Debug|Win32 + {A1A295E5-463C-437F-81CA-1F32367685DA}.Debug|Win32.Build.0 = Debug|Win32 + {A1A295E5-463C-437F-81CA-1F32367685DA}.Debug|x64.ActiveCfg = Debug|x64 + {A1A295E5-463C-437F-81CA-1F32367685DA}.Debug|x64.Build.0 = Debug|x64 + {A1A295E5-463C-437F-81CA-1F32367685DA}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {A1A295E5-463C-437F-81CA-1F32367685DA}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {A1A295E5-463C-437F-81CA-1F32367685DA}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {A1A295E5-463C-437F-81CA-1F32367685DA}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {A1A295E5-463C-437F-81CA-1F32367685DA}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {A1A295E5-463C-437F-81CA-1F32367685DA}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {A1A295E5-463C-437F-81CA-1F32367685DA}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {A1A295E5-463C-437F-81CA-1F32367685DA}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {A1A295E5-463C-437F-81CA-1F32367685DA}.Release|Win32.ActiveCfg = Release|Win32 + {A1A295E5-463C-437F-81CA-1F32367685DA}.Release|Win32.Build.0 = Release|Win32 + {A1A295E5-463C-437F-81CA-1F32367685DA}.Release|x64.ActiveCfg = Release|x64 + {A1A295E5-463C-437F-81CA-1F32367685DA}.Release|x64.Build.0 = Release|x64 + {9E48B300-37D1-11DD-8C41-005056C00008}.Debug|Win32.ActiveCfg = Debug|Win32 + {9E48B300-37D1-11DD-8C41-005056C00008}.Debug|Win32.Build.0 = Debug|Win32 + {9E48B300-37D1-11DD-8C41-005056C00008}.Debug|x64.ActiveCfg = Debug|x64 + {9E48B300-37D1-11DD-8C41-005056C00008}.Debug|x64.Build.0 = Debug|x64 + {9E48B300-37D1-11DD-8C41-005056C00008}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {9E48B300-37D1-11DD-8C41-005056C00008}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {9E48B300-37D1-11DD-8C41-005056C00008}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {9E48B300-37D1-11DD-8C41-005056C00008}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {9E48B300-37D1-11DD-8C41-005056C00008}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {9E48B300-37D1-11DD-8C41-005056C00008}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {9E48B300-37D1-11DD-8C41-005056C00008}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {9E48B300-37D1-11DD-8C41-005056C00008}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {9E48B300-37D1-11DD-8C41-005056C00008}.Release|Win32.ActiveCfg = Release|Win32 + {9E48B300-37D1-11DD-8C41-005056C00008}.Release|Win32.Build.0 = Release|Win32 + {9E48B300-37D1-11DD-8C41-005056C00008}.Release|x64.ActiveCfg = Release|x64 + {9E48B300-37D1-11DD-8C41-005056C00008}.Release|x64.Build.0 = Release|x64 + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Debug|Win32.ActiveCfg = Debug|Win32 + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Debug|Win32.Build.0 = Debug|Win32 + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Debug|x64.ActiveCfg = Debug|x64 + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Debug|x64.Build.0 = Debug|x64 + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGInstrument|Win32.ActiveCfg = Release|Win32 + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGInstrument|Win32.Build.0 = Release|Win32 + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGInstrument|x64.ActiveCfg = Release|x64 + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGInstrument|x64.Build.0 = Release|x64 + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGUpdate|Win32.ActiveCfg = Release|Win32 + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGUpdate|Win32.Build.0 = Release|Win32 + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGUpdate|x64.ActiveCfg = Release|x64 + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.PGUpdate|x64.Build.0 = Release|x64 + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Release|Win32.ActiveCfg = Release|Win32 + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Release|Win32.Build.0 = Release|Win32 + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Release|x64.ActiveCfg = Release|x64 + {6DE10744-E396-40A5-B4E2-1B69AA7C8D31}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Tools/buildbot/build-amd64.bat b/Tools/buildbot/build-amd64.bat index 8ec332884e..5175c6231e 100644 --- a/Tools/buildbot/build-amd64.bat +++ b/Tools/buildbot/build-amd64.bat @@ -1,6 +1,6 @@ -@rem Used by the buildbot "compile" step.
-cmd /c Tools\buildbot\external-amd64.bat
-call "%VS90COMNTOOLS%\..\..\VC\vcvarsall.bat" x86_amd64
-cmd /c Tools\buildbot\clean-amd64.bat
-vcbuild /useenv PCbuild\kill_python.vcproj "Debug|x64" && PCbuild\amd64\kill_python_d.exe
-vcbuild PCbuild\pcbuild.sln "Debug|x64"
+@rem Used by the buildbot "compile" step. +cmd /c Tools\buildbot\external-amd64.bat +call "%VS90COMNTOOLS%\..\..\VC\vcvarsall.bat" x86_amd64 +cmd /c Tools\buildbot\clean-amd64.bat +vcbuild /useenv PCbuild\kill_python.vcproj "Debug|x64" && PCbuild\amd64\kill_python_d.exe +vcbuild PCbuild\pcbuild.sln "Debug|x64" diff --git a/Tools/buildbot/build.bat b/Tools/buildbot/build.bat index 976ce72b0f..ab3ea7da46 100644 --- a/Tools/buildbot/build.bat +++ b/Tools/buildbot/build.bat @@ -1,7 +1,7 @@ -@rem Used by the buildbot "compile" step.
-cmd /c Tools\buildbot\external.bat
-call "%VS90COMNTOOLS%vsvars32.bat"
-cmd /c Tools\buildbot\clean.bat
-vcbuild /useenv PCbuild\kill_python.vcproj "Debug|Win32" && PCbuild\kill_python_d.exe
-vcbuild /useenv PCbuild\pcbuild.sln "Debug|Win32"
-
+@rem Used by the buildbot "compile" step. +cmd /c Tools\buildbot\external.bat +call "%VS90COMNTOOLS%vsvars32.bat" +cmd /c Tools\buildbot\clean.bat +vcbuild /useenv PCbuild\kill_python.vcproj "Debug|Win32" && PCbuild\kill_python_d.exe +vcbuild /useenv PCbuild\pcbuild.sln "Debug|Win32" + diff --git a/Tools/buildbot/buildmsi.bat b/Tools/buildbot/buildmsi.bat index b4f63dc847..a0f43a6287 100644 --- a/Tools/buildbot/buildmsi.bat +++ b/Tools/buildbot/buildmsi.bat @@ -1,20 +1,20 @@ -@rem Used by the buildbot "buildmsi" step.
-
-cmd /c Tools\buildbot\external.bat
-@rem build release versions of things
-call "%VS90COMNTOOLS%vsvars32.bat"
-
-@rem build Python
-vcbuild /useenv PCbuild\pcbuild.sln "Release|Win32"
-
-@rem build the documentation
-bash.exe -c 'cd Doc;make PYTHON=python2.5 update htmlhelp'
-"%ProgramFiles%\HTML Help Workshop\hhc.exe" Doc\build\htmlhelp\python26a3.hhp
-
-@rem build the MSI file
-cd PC
-nmake /f icons.mak
-cd ..\Tools\msi
-del *.msi
-nmake /f msisupport.mak
-%HOST_PYTHON% msi.py
+@rem Used by the buildbot "buildmsi" step. + +cmd /c Tools\buildbot\external.bat +@rem build release versions of things +call "%VS90COMNTOOLS%vsvars32.bat" + +@rem build Python +vcbuild /useenv PCbuild\pcbuild.sln "Release|Win32" + +@rem build the documentation +bash.exe -c 'cd Doc;make PYTHON=python2.5 update htmlhelp' +"%ProgramFiles%\HTML Help Workshop\hhc.exe" Doc\build\htmlhelp\python26a3.hhp + +@rem build the MSI file +cd PC +nmake /f icons.mak +cd ..\Tools\msi +del *.msi +nmake /f msisupport.mak +%HOST_PYTHON% msi.py diff --git a/Tools/buildbot/clean-amd64.bat b/Tools/buildbot/clean-amd64.bat index 1ce16052a7..9fb35e9453 100644 --- a/Tools/buildbot/clean-amd64.bat +++ b/Tools/buildbot/clean-amd64.bat @@ -1,7 +1,7 @@ -@rem Used by the buildbot "clean" step.
-call "%VS90COMNTOOLS%\..\..\VC\vcvarsall.bat" x86_amd64
-cd PCbuild
-@echo Deleting .pyc/.pyo files ...
-del /s Lib\*.pyc Lib\*.pyo
-vcbuild /clean pcbuild.sln "Release|x64"
-vcbuild /clean pcbuild.sln "Debug|x64"
+@rem Used by the buildbot "clean" step. +call "%VS90COMNTOOLS%\..\..\VC\vcvarsall.bat" x86_amd64 +cd PCbuild +@echo Deleting .pyc/.pyo files ... +del /s Lib\*.pyc Lib\*.pyo +vcbuild /clean pcbuild.sln "Release|x64" +vcbuild /clean pcbuild.sln "Debug|x64" diff --git a/Tools/buildbot/clean.bat b/Tools/buildbot/clean.bat index 0d4d12e353..ec71804da0 100644 --- a/Tools/buildbot/clean.bat +++ b/Tools/buildbot/clean.bat @@ -1,7 +1,7 @@ -@rem Used by the buildbot "clean" step.
-call "%VS90COMNTOOLS%vsvars32.bat"
-@echo Deleting .pyc/.pyo files ...
-del /s Lib\*.pyc Lib\*.pyo
-cd PCbuild
-vcbuild /clean pcbuild.sln "Release|Win32"
-vcbuild /clean pcbuild.sln "Debug|Win32"
+@rem Used by the buildbot "clean" step. +call "%VS90COMNTOOLS%vsvars32.bat" +@echo Deleting .pyc/.pyo files ... +del /s Lib\*.pyc Lib\*.pyo +cd PCbuild +vcbuild /clean pcbuild.sln "Release|Win32" +vcbuild /clean pcbuild.sln "Debug|Win32" diff --git a/Tools/buildbot/external-amd64.bat b/Tools/buildbot/external-amd64.bat index 902e37a9d6..e9c7011b51 100644 --- a/Tools/buildbot/external-amd64.bat +++ b/Tools/buildbot/external-amd64.bat @@ -1,20 +1,20 @@ -@rem Fetches (and builds if necessary) external dependencies
-
-@rem Assume we start inside the Python source directory
-call "Tools\buildbot\external-common.bat"
-call "%VS90COMNTOOLS%\..\..\VC\vcvarsall.bat" x86_amd64
-
-if not exist tcltk64\bin\tcl85g.dll (
- cd tcl-8.5.2.1\win
- nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 clean all
- nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 install
- cd ..\..
-)
-
-if not exist tcltk64\bin\tk85g.dll (
- cd tk-8.5.2.0\win
- nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.5.2.1 clean
- nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.5.2.1 all
- nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.5.2.1 install
- cd ..\..
-)
+@rem Fetches (and builds if necessary) external dependencies + +@rem Assume we start inside the Python source directory +call "Tools\buildbot\external-common.bat" +call "%VS90COMNTOOLS%\..\..\VC\vcvarsall.bat" x86_amd64 + +if not exist tcltk64\bin\tcl85g.dll ( + cd tcl-8.5.2.1\win + nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 clean all + nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 install + cd ..\.. +) + +if not exist tcltk64\bin\tk85g.dll ( + cd tk-8.5.2.0\win + nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.5.2.1 clean + nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.5.2.1 all + nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.5.2.1 install + cd ..\.. +) diff --git a/Tools/buildbot/external-common.bat b/Tools/buildbot/external-common.bat index 7395db5b50..834920e3ac 100644 --- a/Tools/buildbot/external-common.bat +++ b/Tools/buildbot/external-common.bat @@ -1,45 +1,45 @@ -@rem Common file shared between external.bat and external-amd64.bat. Responsible for
-@rem fetching external components into the root\.. buildbot directories.
-
-cd ..
-@rem XXX: If you need to force the buildbots to start from a fresh environment, uncomment
-@rem the following, check it in, then check it out, comment it out, then check it back in.
-@rem if exist bzip2-1.0.5 rd /s/q bzip2-1.0.5
-@rem if exist tcltk rd /s/q tcltk
-@rem if exist tcltk64 rd /s/q tcltk64
-@rem if exist tcl8.4.12 rd /s/q tcl8.4.12
-@rem if exist tcl8.4.16 rd /s/q tcl8.4.16
-@rem if exist tcl-8.4.18.1 rd /s/q tcl-8.4.18.1
-@rem if exist tk8.4.12 rd /s/q tk8.4.12
-@rem if exist tk8.4.16 rd /s/q tk8.4.16
-@rem if exist tk-8.4.18.1 rd /s/q tk-8.4.18.1
-@rem if exist db-4.4.20 rd /s/q db-4.4.20
-@rem if exist db-4.7.25.0 rd /s/q db-4.7.25.0
-@rem if exist openssl-0.9.8l rd /s/q openssl-0.9.8l
-@rem if exist sqlite-3.6.21 rd /s/q sqlite-3.6.21
-
-@rem bzip
-if not exist bzip2-1.0.5 (
- rd /s/q bzip2-1.0.3
- svn export http://svn.python.org/projects/external/bzip2-1.0.5
-)
-
-@rem Berkeley DB
-if exist db-4.4.20 rd /s/q db-4.4.20
-if not exist db-4.7.25.0 svn export http://svn.python.org/projects/external/db-4.7.25.0
-
-@rem OpenSSL
-if not exist openssl-0.9.8l svn export http://svn.python.org/projects/external/openssl-0.9.8l
-
-@rem tcl/tk
-if not exist tcl-8.5.2.1 (
- rd /s/q tcltk tcltk64
- svn export http://svn.python.org/projects/external/tcl-8.5.2.1
-)
-if not exist tk-8.5.2.0 svn export http://svn.python.org/projects/external/tk-8.5.2.0
-
-@rem sqlite3
-if not exist sqlite-3.6.21 (
- rd /s/q sqlite-source-3.3.4
- svn export http://svn.python.org/projects/external/sqlite-3.6.21
-)
+@rem Common file shared between external.bat and external-amd64.bat. Responsible for +@rem fetching external components into the root\.. buildbot directories. + +cd .. +@rem XXX: If you need to force the buildbots to start from a fresh environment, uncomment +@rem the following, check it in, then check it out, comment it out, then check it back in. +@rem if exist bzip2-1.0.5 rd /s/q bzip2-1.0.5 +@rem if exist tcltk rd /s/q tcltk +@rem if exist tcltk64 rd /s/q tcltk64 +@rem if exist tcl8.4.12 rd /s/q tcl8.4.12 +@rem if exist tcl8.4.16 rd /s/q tcl8.4.16 +@rem if exist tcl-8.4.18.1 rd /s/q tcl-8.4.18.1 +@rem if exist tk8.4.12 rd /s/q tk8.4.12 +@rem if exist tk8.4.16 rd /s/q tk8.4.16 +@rem if exist tk-8.4.18.1 rd /s/q tk-8.4.18.1 +@rem if exist db-4.4.20 rd /s/q db-4.4.20 +@rem if exist db-4.7.25.0 rd /s/q db-4.7.25.0 +@rem if exist openssl-0.9.8l rd /s/q openssl-0.9.8l +@rem if exist sqlite-3.6.21 rd /s/q sqlite-3.6.21 + +@rem bzip +if not exist bzip2-1.0.5 ( + rd /s/q bzip2-1.0.3 + svn export http://svn.python.org/projects/external/bzip2-1.0.5 +) + +@rem Berkeley DB +if exist db-4.4.20 rd /s/q db-4.4.20 +if not exist db-4.7.25.0 svn export http://svn.python.org/projects/external/db-4.7.25.0 + +@rem OpenSSL +if not exist openssl-0.9.8l svn export http://svn.python.org/projects/external/openssl-0.9.8l + +@rem tcl/tk +if not exist tcl-8.5.2.1 ( + rd /s/q tcltk tcltk64 + svn export http://svn.python.org/projects/external/tcl-8.5.2.1 +) +if not exist tk-8.5.2.0 svn export http://svn.python.org/projects/external/tk-8.5.2.0 + +@rem sqlite3 +if not exist sqlite-3.6.21 ( + rd /s/q sqlite-source-3.3.4 + svn export http://svn.python.org/projects/external/sqlite-3.6.21 +) diff --git a/Tools/buildbot/external.bat b/Tools/buildbot/external.bat index d6b18ae78f..d90e8cefbb 100644 --- a/Tools/buildbot/external.bat +++ b/Tools/buildbot/external.bat @@ -1,21 +1,21 @@ -@rem Fetches (and builds if necessary) external dependencies
-
-@rem Assume we start inside the Python source directory
-call "Tools\buildbot\external-common.bat"
-call "%VS90COMNTOOLS%\vsvars32.bat"
-
-if not exist tcltk\bin\tcl85g.dll (
- @rem all and install need to be separate invocations, otherwise nmakehlp is not found on install
- cd tcl-8.5.2.1\win
- nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 INSTALLDIR=..\..\tcltk clean all
- nmake -f makefile.vc DEBUG=1 INSTALLDIR=..\..\tcltk install
- cd ..\..
-)
-
-if not exist tcltk\bin\tk85g.dll (
- cd tk-8.5.2.0\win
- nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.2.1 clean
- nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.2.1 all
- nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.2.1 install
- cd ..\..
-)
+@rem Fetches (and builds if necessary) external dependencies + +@rem Assume we start inside the Python source directory +call "Tools\buildbot\external-common.bat" +call "%VS90COMNTOOLS%\vsvars32.bat" + +if not exist tcltk\bin\tcl85g.dll ( + @rem all and install need to be separate invocations, otherwise nmakehlp is not found on install + cd tcl-8.5.2.1\win + nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 INSTALLDIR=..\..\tcltk clean all + nmake -f makefile.vc DEBUG=1 INSTALLDIR=..\..\tcltk install + cd ..\.. +) + +if not exist tcltk\bin\tk85g.dll ( + cd tk-8.5.2.0\win + nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.2.1 clean + nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.2.1 all + nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.2.1 install + cd ..\.. +) diff --git a/Tools/buildbot/test-amd64.bat b/Tools/buildbot/test-amd64.bat index 6124b51d96..d178c92fb5 100644 --- a/Tools/buildbot/test-amd64.bat +++ b/Tools/buildbot/test-amd64.bat @@ -1,3 +1,3 @@ -@rem Used by the buildbot "test" step.
-cd PCbuild
-call rt.bat -q -d -x64 -uall -rw
+@rem Used by the buildbot "test" step. +cd PCbuild +call rt.bat -q -d -x64 -uall -rw diff --git a/Tools/buildbot/test.bat b/Tools/buildbot/test.bat index cffd850e05..3eccce8125 100644 --- a/Tools/buildbot/test.bat +++ b/Tools/buildbot/test.bat @@ -1,3 +1,3 @@ -@rem Used by the buildbot "test" step.
-cd PCbuild
-call rt.bat -d -q -uall -rwW
+@rem Used by the buildbot "test" step. +cd PCbuild +call rt.bat -d -q -uall -rwW diff --git a/Tools/unicode/genwincodecs.bat b/Tools/unicode/genwincodecs.bat index 6a6a671f81..2228d898d7 100644 --- a/Tools/unicode/genwincodecs.bat +++ b/Tools/unicode/genwincodecs.bat @@ -1,7 +1,7 @@ -@rem Recreate some python charmap codecs from the Windows function
-@rem MultiByteToWideChar.
-
-@cd /d %~dp0
-@mkdir build
-@rem Arabic DOS code page
-c:\python26\python genwincodec.py 720 > build/cp720.py
+@rem Recreate some python charmap codecs from the Windows function +@rem MultiByteToWideChar. + +@cd /d %~dp0 +@mkdir build +@rem Arabic DOS code page +c:\python26\python genwincodec.py 720 > build/cp720.py |