English version

Algorithme SLZ - Résultats

L'algorithme SLZ est un nouvel algorithme pour trouver les pires cas pour l'arrondi correct d'une fonction mathématique à une variable. Le problème et l'algorithme sont décrits dans les articles suivants:

Cet algorithme a été implémenté par Paul Zimmermann pour trouver les pires cas de la fonction 2x entre 1/2 et 1 dans un système à virgule flottante en base 2. Télécharger le programme (distribué sous la GNU General Public License).

Ce programme a été utilisé pour trouver les pires cas dans un système avec 64 bits de mantisse (il s'agit de la précision étendue sur les processeurs x86). Il a été lancé avec les 4 premiers arguments suivants (voir la documentation): 128 64 56 24. Le 64 correspond à la taille de la mantisse, nous avons cherché les pires cas avec au moins 56 bits identiques suivant le bit d'arrondi (cf les résultats ci-dessous), et le 24 n'est qu'un paramètre d'optimisation, trouvé en essayant différentes valeurs sur un petit intervalle. La recherche a été effectuée entre 0 et 263 = 9223372036854775808.

Les résultats obtenus sont donnés dans les tableaux ci-dessous. Cette recherche exhaustive a demandé 37227 heures sur un cluster de l'INRIA Rocquencourt, 22945 heures sur un cluster du Centre Charles Hermite, 5628 heures sur le cluster de notre projet SPACES, 3305 heures sur un cluster du LIP, et 274 heures sur des machines du centre de calcul MEDICIS, du 21 mars 2004 au 10 janvier 2005.

Donnons d'abord quelques explications sur les notations. Pour x nombre machine, on considère la mantisse de la valeur exacte 2x; on peut écrire 263 2x = Y + F, où Y est un entier vérifiant 263 ≤ Y < 264 et la partie fractionnaire F s'écrit en binaire: 0.rfff...fff..., i.e. elle est formée d'un bit quelconque r (appelé bit d'arrondi) suivi d'une succession de bits identiques f. On note m ce nombre maximum de bits identiques; si x n'est pas un entier, alors m est fini. Si m est suffisamment grand (par exemple, m ≥ 56), alors on dit que x est un pire cas. Dans la suite, on considère les pires cas entre 1/2 et 1, et on note x = 1/2 + t/264, où t est un entier vérifiant 0 ≤ t < 263.

Pires cas tels que m ≥ 61.
tYrfm
3990454322510295554151539002802145756690063
6518293577585535693166638712751853625021063
3290325252245217247147604334371947714950162
4615310181812425562155139135064415025440162
5616344742595204558161085747766566559781062
2256116274034458266141978305976329477011161
4857243867142968605156555903859875299691161
8409434541252955234178911057743974349850161
Tous les pires cas (m ≥ 56).
tYrfm
133850042647202529131095868763547946561156
182980980364065044131338111486748286140158
196588764607520696131405284519609331470056
218458896984223004131513315530842736730056
226726968562936763131554180121938124461156
272931936729688460131782780069891048141156
289222692028363449131863473570092140300156
311406082214516909131973434697768776280157
331750539704885130132074361004570253150157
406507340324366648132445883469314101591057
420948772043459301132517774099992397730156
444313274696158993132634167154869831520156
526950950637747283133046657415885014640156
529684803398089779133060325483991176561156
620037727437548328133512841514985481031156
629850985640957850133562081972174892800057
693413511707684629133881462772355138980156
744330557202037967134137855028062199081056
777855226633226274134306936169552141280158
860246573308119370134723381716176778031156
863711176164549917134740921750656772011156
873582249691074545134790907957763109741056
906576078849340332134958120287321708141158
912939079185759853134990391748148534500057
940407024171638008135129790507097220661056
945650999860294085135156419840812133061157
954525838166252050135201498945572445700056
988219720759236495135372781548964581850156
991648927212979388135390226056120628560056
1038104895921246638135626771006802344041159
1088730823315774620135885019203225641561160
1113125603325691406136009635054186722380156
1115075546780288091136019600881145545710157
1123866517564456573136064539094598336500158
1146451920336816845136180060597534430580156
1167423012576505482136287412917817730831156
1194159005280400099136424398849873035711156
1273989595382990699136834242925963599680056
1288525743033532174136909002784346401911158
1312620158825014981137033011085498363401157
1362747201623509683137291363245191927220159
1365282678358313268137304443893646354031056
1427603265979853534137626350931444645250056
1447673178324977395137730179431170362510057
1448393217898900344137733905896570424640157
1521080116978378062138110606193641992480156
1535793730203210057138186984876707108790156
1598209750268648463138511457702547397491056
1648086775693572110138771293519089820111056
1686166255270288629138969997754121867851157
1705039925275377477139068588727418320720158
1769922788322788733139408053182463329271156
1863730957915617439139900319260154324721059
1868078596932679988139923175953226906001056
1910240869482388368140145028015288098131057
1924825254538664499140221850891172206810057
1932740039916945820140263559447573943140157
1980321214166368107140514559633581139961156
2034362705768622578140800184106078064321057
2069519430457281946140986308912826775101056
2131350977705632111141314251185151108741057
2146419870964755577141394289146120877930056
2156393464556712368141447288509904049861059
2174249330314415817141542223646426808761158
2229596635796981353141836896355830628660056
2256116274034458266141978305976329477011161
2262390510686676344142011782458867985670057
2297941175592916179142201613815061591330157
2314438503695056805142289791459164214900058
2315663558030329123142296341512384958691156
2508008292379127216143328508926005353560156
2516986511282717084143376870649608771231056
2586541575572914692143752086560103295370057
2660400662283056640144151595605415316340157
2713769822112536488144440963999002945771056
2727552840291618254144515790064928794861056
2756437464586610448144672726385636633290158
2803560955352034797144929124257648606830056
2865848722716209641145268728027778555821057
2873732875990820247145311770505463117481156
2889567661563196628145398256927158980940156
2935550222283957682145649696330469451700057
2949060373731429463145723654436231837190056
3095875368907342599146529783697453010440058
3100207462058553390146553637893350676540157
3133452547403073575146736827606850704961057
3147964835945017689146816866152063324650058
3179071356284179756146988572739524108601157
3208322348438616698147150220095824458200056
3224768714686836326147241184360247531470056
3279188226025564828147542577794035433080056
3290325252245217247147604334371947714950162
3322830766339964238147784730470955411411056
3356848903074085583147973757288743320800158
3375111675504973989148075336811906150521057
3430238025839814705148382378670270956070057
3442625169570884434148451459941406905150057
3455763367258369201148524764875655962401057
3504936086429248760148799446824595419010058
3608564935121886722149379988705421693071056
3629474770326357288149497402573174438370056
3632746778946763415149515784055156917111157
3633525338745663873149520158179341847510157
3637703000392678216149543631408429345511156
3661224434918444580149675861226920291391156
3704534517761914499149919642282057765051157
3704840323841499479149921364994880029841056
3731437483696261573150071271874978690151056
3797939632220345563150446747467459987841058
3800247101682191369150459792444873997590157
3824979957413520783150599687473960567590156
3833704077118555915150649064236453750171156
3874099040338709868150877902706597729820057
3879595336967621914150909066218064966540157
3927777643009438809151182531282137809890056
3974223987786872407151446612749090494200056
3990454322510295554151539002802145756690063
3991598139205230204151545516024843695141056
3996481386104691452151573325792313105320057
4014340441814006786151675075398832358671059
4071175280056761570151999339154916393421156
4141746593549567178152402939555198775591058
4190842314906233570152684352054103742790158
4200242344908127599152738291466356058170058
4251756165239931971153034227478468635490057
4260644784539340309153085348691204203040156
4321292810328850097153434610406170556671056
4348706168245517922153592740674018934950057
4349368973017115998153596565991304049650160
4376330557070810681153752253102008743590157
4473927436082487998154317137702954114490158
4481583756980638256154361539699460096011157
4528899057949705104154636223198277960390056
4615310181812425562155139135064415025440162
4645441682834636617155314884423722872310158
4739904633167155443155867154247998813210056
4791824712232760063156171536550109823800058
4857243867142968605156555903859875299691161
4892979958138701250156766269038132006330056
4907324033117775937156850786793113660461156
4919366527649250477156921778425341239400056
4943973470299093630157066938576327007481056
4968688328623845765157212870503428828731056
4985635068804498261157313012971407323901156
5022459153114389914157530835523536361481056
5043598115699327031157656013370781955890060
5115599526482164357158083128453760556650056
5121825699005585596158120116655197289550156
5140734885076331005158232504669340141431156
5183010621972494394158484062371662395541159
5213183196524870164158663845907200563921159
5278649855282633887159054631165472877121056
5380449335379381456159664208075885464701057
5405332067798724730159813561238697816621158
5423863436920563874159924882492437292311056
5445941731461504277160057611993097316920156
5525411672667393542160536279066775355651157
5541300523263398001160632153114431149121157
5553898706982795926160708211824338654141157
5616344742595204558161085747766566559781062
5629239014495551217161163814299872718700057
5671278795966453027161418601022110812050056
5684722841873731485161500165113920748190157
5743931550860016881161859870963152276491156
5744502689350420321161863344652827942061157
5883442407585992230162710600988760701760057
5964017349466708736163203978330245392280056
5973459447254299635163261892124380308911056
6069726679925570614163853528372857186001056
6099400507039865826164036328815301158901156
6157531132765796526164395023694609387261156
6178562284125711820164524989489775155681158
6212432146235793893164734510426502657860156
6247536521353118889164951949724932478111157
6255328463451249420165000252545099714171156
6282010972093399590165165766546683109540159
6300403786790023105165279955490212189230156
6325277577732520787165434506155012546991158
6332961916890230222165482281195524960730160
6359109488140938898165644949132795570370057
6392206616580663214165851080618541793310156
6438158609236542674166137698570982395481058
6464159191624272016166300092269061806381057
6473124129355565412166356122015488590200060
6518293577585535693166638712751853625021063
6676572977334646112167632739671191432670156
6702691400422571167167797337712577522981056
6729876109507238553167968827130032936460156
6738272920764177605168021832190529622000056
6857081996347094411168773612327669045670156
6846705465128789305168707819611275232040056
6869564992572653613168852795150808744550156
6922688477515345325169190186606337972311156
6932790084748474154169254418956491992630056
6972253124684634928169505583498204589400157
6982478780566929852169570725988774790330156
7088752235011269671170249224400816138111056
7146980056199525089170622128032552793911060
7153060256420755107170661114024216638580056
7192077614313733548170911503788057049200159
7200273207085616994170964144805875799820057
7208255074248749278171015428629953834151158
7273364825365353525171434336417566789721156
7305612574761580574171642194113742702661059
7318855510763828709171727626421049257421057
7321543180503984692171744970200312454920058
7329091389958745521171793688856317905411156
7365384884122995176172028132193014546940156
7474032148664831638172731869882400582170156
7498790658508643982172892639784040907681156
7590442813238617281173489088307560100510058
7595858493387435917173524396468694631871156
7595910128468963300173524733144237837640156
7613052972561063604173636545521857784800056
7635439037589096225173782664728987652310056
7674389664192472267174037197961677625461156
7689132330774227350174133635066120613570056
7699295484122981780174200147036142391420056
7713995308780376501174296393849203185900056
7748349563666940536174521535069275032911156
7750825840283332363174537774624283708171056
7776945383154905554174709160048166283591056
7847426201171859662175172465660132029190157
7851264120309502095175197729462619257901156
7865168635113140427175289288982941493551157
7865677354341746476175292639743712331900157
7873720631986924899175345626594718645711156
7973489249674372448176004207207306439461056
7977389548302976353176030003569902754341057
8070578792577968249176647477774748648790156
8078520297042736573176700198425656675640156
8173612544154088118177332703502861826340056
8215649319069444864177613031842297585930056
8218012792019075935177628806156499244920057
8221893512924902599177654709940530269541156
8265318168328141090177944826964652409960156
8330956504449928535178384251549385106481058
8350582060584498110178515848057244326940156
8368770677120784969178637896038470264501056
8377722893939544150178697997214861139760056
8409434541252955234178911057743974349850161
8428330006871339696179038131160169081430156
8450298653225319752179185985418227274480157
8469890976012345106179317949450492589771057
8612633474594647776180282329051841815250156
8630212760869341495180401454235198867901158
8631831424358141992180412426986875284541057
8647887296213776426180521304224629456681156
8698830891479006480180867195437886654170157
8717852163525069780180996513834713111591158
8746321388117145448181190238045639533390057
8798816078220886249181547991888722351450159
8799218103814722852181550734436300292881056
8820776215081882382181697860756076845551060
9060924863682637632183344872327257441820156
9104227470438832117183643439407231822241057
9115114377318171787183718579979575742050057
9150662263111875286183964142836643545131057