123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426 |
- ------------------------------------------------------------------------
- -- 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
|