Re: Recommendation: "What Every Computer Scientist Should Know About Floating-Point Arithmetic"
Chen Shapira <[email protected]> Fri, 5 Feb 2010 13:51:59 -0800
| Newsgroups | gmane.culture.hackers.israel |
|---|---|
| Message-ID | <[email protected]> |
--00032555a33afe1145047ee17550 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable The specific bug you refer to (error when attempting to calculate linear regression slope where y=3D0.74) is not impossible to solve - R for example will not give you an error. Did you study Numerical Methods? There are many techniques for improving accuracy during calculations that involve floating point numbers. Chen On Fri, Feb 5, 2010 at 1:40 PM, Shlomi Fish <shlomif-ik1l9ssToec+JF/[email protected]> wrote: > > > Hi all! > > I've read the following paper and can recommend it: > > http://docs.sun.com/source/806-3568/ncg_goldberg.html > > "What Every Computer Scientist Should Know About Floating-Point Arithmeti= c" > > It's a bit long, but not too long, and it's also enlightening. I've been > getting quite a lot of requests for help and bug reports about problems > induced by floating point issues while maintaining the following CPAN > module: > > http://search.cpan.org/dist/Statistics-Descriptive/ > > This article explains why people should not expect the impossible out of > code > like that. > > Regards, > > Shlomi Fish > > -- > ---------------------------------------------------------- > Shlomi Fish http://www.shlomifish.org/ > Why I Love Perl - http://shlom.in/joy-of-perl > > Deletionists delete Wikipedia articles that they consider lame. > Chuck Norris deletes deletionists whom he considers lame. > > Please reply to list if it's a mailing list post - http://shlom.in/reply = . >=20=20 > --00032555a33afe1145047ee17550 Content-Type: text/html; charset=windows-1252 Content-Transfer-Encoding: quoted-printable <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/htm= l4/strict.dtd"> <html> <head> </head> <body style=3D"background-color: #fff;"> <span style=3D"display:none"> </span> <!--~-|**|PrettyHtmlStartT|**|-~--> <div id=3D"ygrp-mlmsg" style=3D"position:relative;"> <div id=3D"ygrp-msg" style=3D"z-index: 1;"> <!--~-|**|PrettyHtmlEndT|**|-~--> <div id=3D"ygrp-text" > =20=20=20=20=20=20 =20=20=20=20=20=20 <p>The specific bug you refer to (error when attempting to calculate = linear regression slope where y=3D0.74) is not impossible to solve - R for = example will not give you an error.<div><br></div><div>Did you study Numeri= cal Methods? There are many techniques for improving accuracy during calcul= ations that involve floating point numbers.</div> <div><br></div><div>Chen<br><br><div class=3D"gmail_quote">On Fri, Feb 5, 2= 010 at 1:40 PM, Shlomi Fish <span dir=3D"ltr"><<a href=3D"mailto:shlomif= @iglu.org.il">shlomif@iglu.<wbr>org.il</a>></span> wrote:<br><blockquote= class=3D"gmail_quote" style=3D"border-left:1px #ccc solid;"> <div style=3D"background-color:#fff;"> <span>=A0</span> <div> <div> <div> =20=20=20=20=20=20 =20=20=20=20=20=20 <p>Hi all!<br> <br> I've read the following paper and can recommend it:<br> <br> <a href=3D"http://docs.sun.com/source/806-3568/ncg_goldberg.html" target=3D= "_blank">http://docs.<wbr>sun.com/source/<wbr>806-3568/<wbr>ncg_goldberg.<w= br>html</a><br> <br> "What Every Computer Scientist Should Know About Floating-Point Arithm= etic"<br> <br> It's a bit long, but not too long, and it's also enlightening. I= 9;ve been <br> getting quite a lot of requests for help and bug reports about problems <br= > induced by floating point issues while maintaining the following CPAN modul= e:<br> <br> <a href=3D"http://search.cpan.org/dist/Statistics-Descriptive/" target=3D"_= blank">http://search.<wbr>cpan.org/<wbr>dist/Statistics-<wbr>Descriptive/</= a><br> <br> This article explains why people should not expect the impossible out of co= de <br> like that. <br> <br> Regards,<br> <br> Shlomi Fish<br> <br> -- <br> ------------<wbr>---------<wbr>---------<wbr>---------<wbr>---------<wbr>--= -------<wbr>-<br> Shlomi Fish <a href=3D"http://www.shlomifish.org/" target=3D"_blank">= http://www.shlomifi<wbr>sh.org/</a><br> Why I Love Perl - <a href=3D"http://shlom.in/joy-of-perl" target=3D"_blank"= >http://shlom.<wbr>in/joy-of-<wbr>perl</a><br> <br> Deletionists delete Wikipedia articles that they consider lame.<br> Chuck Norris deletes deletionists whom he considers lame.<br> <br> Please reply to list if it's a mailing list post - <a href=3D"http://sh= lom.in/reply" target=3D"_blank">http://shlom.<wbr>in/reply</a> .<br> </p> </div> =20=20=20=20=20 =20=20=20=20 <div style=3D"color:#fff;"></div> </div> =20=20 </div></div></blockquote></div><br></div> </p> </div> =20=20=20=20=20 <!--~-|**|PrettyHtmlStart|**|-~--> <div style=3D"color: #fff; height: 0;">__._,_.___</div> =20=20=20=20=20=20=20=20 =20=20 =20=20=20 <div id=3D"ygrp-actbar" style=3D"clear: both; margin-bottom: 10px; whit= e-space: nowrap; color: #666; padding-top: 15px;"> <div> <a href=3D"mailto:[email protected]?subject=3DRe: [hackers-il] Recom= mendation: "What Every Computer Scientist &nbs= p; Should Know About Floating-Point Arithmetic""> Reply to <span style=3D"font-weight: 700;">sender</span></a> | <a href=3D"mailto:[email protected]?subject=3DRe: [hac= kers-il] Recommendation: "What Every Computer Scientist &n= bsp; Should Know About Floating-Point Arithmetic""> Reply to <span style=3D"font-weight: 700;">group</span></a> </div> <a href=3D"http://groups.yahoo.com/group/hackers-il/message= /5104;_ylc=3DX3oDMTM0ZjZtMzQ3BF9TAzk3MzU5NzE0BGdycElkAzE4NTczMzIEZ3Jwc3BJZA= MxNzA1MDA2NzY0BG1zZ0lkAzUxMDUEc2VjA2Z0cgRzbGsDdnRwYwRzdGltZQMxMjY1NDA2NzI0B= HRwY0lkAzUxMDQ-">Messages in this topic</a> (<span style=3D"font-weight: 700;">2</span>) </div>=20 <!------- Start Nav Bar ------> <!-- |**|begin egp html banner|**| --> <div id=3D"ygrp-vital" style=3D"background-color: #e0ecee; font-family: Ver= dana; font-size: 10px; margin-bottom: 10px; padding: 10px;"> <span id=3D"vithd" style=3D"font-weight: bold; color: #333; text-tran= sform: uppercase; ">Recent Activity:</span> <ul style=3D"list-style-type: none; margin: 0; padding: 0; display: inl= ine;"> </ul> =20=20=20=20 <div style=3D"clear: both; padding-top: 2px; color: #1e66ae;"> <a href=3D"http://groups.yahoo.com/group/hackers-il;_ylc=3DX3oDMTJlZDF0= YWI4BF9TAzk3MzU5NzE0BGdycElkAzE4NTczMzIEZ3Jwc3BJZAMxNzA1MDA2NzY0BHNlYwN2dGw= Ec2xrA3ZnaHAEc3RpbWUDMTI2NTQwNjcyNA--" style=3D"border-right: 1px solid #00= 0; padding-right: 5px; margin-right: 2px; text-decoration: none;">Visit You= r Group</a> <a href=3D"http://groups.yahoo.com/group/hackers-il/post;_ylc=3DX3oDMTJ= laHJqM25xBF9TAzk3MzU5NzE0BGdycElkAzE4NTczMzIEZ3Jwc3BJZAMxNzA1MDA2NzY0BHNlYw= NmdHIEc2xrA250cGMEc3RpbWUDMTI2NTQwNjcyNA--" style=3D"font-weight: 700; text= -decoration: none;">Start a New Topic</a> </div> </div> <div id=3D"ygrp-mkp" style=3D"border: 1px solid #d8d8d8; clea= r: both; float: left; font-family: Arial; margin: 5px 0 10px 0; padding: 0 = 10px;"> <div id=3D"hd" style=3D"color: #628c2a; font-size: 85%; font-weight: = 700; line-height: 122%; margin: 10px 0;">MARKETPLACE</div> <div id=3D"ads" style=3D"margin-bottom: 10px;"> <div class=3D"ad" style=3D"color: #628C2A; font-family: A= rial; font-weight: 700; padding: 0 0;"> <p><a href=3D"http://us.ard.yahoo.com/SIG=3D14ku0baoj/M=3D49306= 4.13814333.13821539.13298430/D=3Dgroups/S=3D1705006764:MKP1/Y=3DYAHOO/EXP= =3D1265413925/L=3D/B=3D_XNOBESO5.Q-/J=3D1265406725456169/K=3DN2VD8Is71.PlDg= fh01YdFA/A=3D5922843/R=3D0/SIG=3D11ckn2mo6/*http://advision.webevents.yahoo= .com/green/">Going Green: Your Yahoo! Groups resource for green living</a><= /p> </div> </div> </div> =20=20 <div id=3D"ft" style=3D"font-family: Arial; font-size: 11px; margin-top: 5p= x; padding: 0 2px 0 0; clear: both;"> <a href=3D"http://groups.yahoo.com/;_ylc=3DX3oDMTJkdmYwNjZhBF9TAzk3NDc2NT= kwBGdycElkAzE4NTczMzIEZ3Jwc3BJZAMxNzA1MDA2NzY0BHNlYwNmdHIEc2xrA2dmcARzdGltZ= QMxMjY1NDA2NzI0" style=3D"float: left;"><img src=3D"http://l.yimg.com/a/i/u= s/yg/logo/us.gif" height=3D"15" width=3D"137" alt=3D"Yahoo! Groups" style= =3D"border: 0;"/></a> <div style=3D"color: #747575; float: right;">Switch to: <a href=3D"mailto= :[email protected]?subject=3DChange Delivery Format: T= raditional" style=3D"text-decoration: none;">Text-Only</a>, <a href=3D"mail= to:[email protected]?subject=3DEmail Delivery: Digest" clas= s=3D"margin-rt" style=3D"text-decoration: none;">Daily Digest</a> • <a= href=3D"mailto:[email protected]?subject=3DUnsubscrib= e" style=3D"text-decoration: none;">Unsubscribe</a> • <a href=3D"http:= //docs.yahoo.com/info/terms/" style=3D"text-decoration: none;">Terms of Use= </a></div> </div> <!-- |**|end egp html banner|**| --> </div> <!-- ygrp-msg --> <!-- Sponsor --> <!-- |**|begin egp html banner|**| --> <div id=3D"ygrp-sponsor" style=3D"width:160px; float:right; clear:none; m= argin:0 0 25px 0; background: #fff;"> <!-- Start Recommendations --> <div id=3D"ygrp-reco"> </div> <!-- End Recommendations --> </div> <!-- |**|end egp html banner|**| --> <div style=3D"clear:both; color: #FFF; font-size:1px;">.</div> </div> <img src=3D"http://geo.yahoo.com/serv?s=3D97359714/grpId=3D1857332/grpspI= d=3D1705006764/msgId=3D5105/stime=3D1265406724/nc1=3D4507179/nc2=3D3848642/= nc3=3D5741392" width=3D"1" height=3D"1"> <br> <div style=3D"color: #fff; height: 0;">__,_._,___</div> <!--~-|**|PrettyHtmlEnd|**|-~--> </body> <!--~-|**|PrettyHtmlStart|**|-~--> <head> <style type=3D"text/css"> <!-- #ygrp-mkp { border: 1px solid #d8d8d8; font-family: Arial; margin: 10px 0; padding: 0 10px; } #ygrp-mkp hr { border: 1px solid #d8d8d8; } #ygrp-mkp #hd { color: #628c2a; font-size: 85%; font-weight: 700; line-height: 122%; margin: 10px 0; } #ygrp-mkp #ads { margin-bottom: 10px; } #ygrp-mkp .ad { padding: 0 0; } #ygrp-mkp .ad a { color: #0000ff; text-decoration: none; } #ygrp-sponsor #ygrp-lc { font-family: Arial; } #ygrp-sponsor #ygrp-lc #hd { margin: 10px 0px; font-weight: 700; font-size: 78%; line-height: 122%; } #ygrp-sponsor #ygrp-lc .ad { margin-bottom: 10px; padding: 0 0; } a { color: #1e66ae; } #actions { font-family: Verdana; font-size: 11px; padding: 10px 0; } #activity { background-color: #e0ecee; float: left; font-family: Verdana; font-size: 10px; padding: 10px; } #activity span { font-weight: 700; } #activity span:first-child { text-transform: uppercase; } #activity span a { color: #5085b6; text-decoration: none; } #activity span span { color: #ff7900; } #activity span .underline { text-decoration: underline; } .attach { clear: both; display: table; font-family: Arial; font-size: 12px; padding: 10px 0; width: 400px; } .attach div a { text-decoration: none; } .attach img { border: none; padding-right: 5px; } .attach label { display: block; margin-bottom: 5px; } .attach label a { text-decoration: none; } =20=20 blockquote { margin: 0 0 0 4px; } .bold { font-family: Arial; font-size: 13px; font-weight: 700; } .bold a { text-decoration: none; } dd.last p a { font-family: Verdana; font-weight: 700; } dd.last p span { margin-right: 10px; font-family: Verdana; font-weight: 700; } dd.last p span.yshortcuts { margin-right: 0; } div.attach-table div div a { text-decoration: none; } div.attach-table { width: 400px; } div.file-title a, div.file-title a:active, div.file-title a:hover, div.fi= le-title a:visited { text-decoration: none; } div.photo-title a, div.photo-title a:active, div.photo-title a:hover, div= .photo-title a:visited { text-decoration: none; } div#ygrp-mlmsg #ygrp-msg p a span.yshortcuts { font-family: Verdana; font-size: 10px; font-weight: normal; } .green { color: #628c2a; } .MsoNormal { margin: 0 0 0 0; } o { font-size: 0; } #photos div { float: left; width: 72px; } #photos div div { border: 1px solid #666666; height: 62px; overflow: hidden; width: 62px; } #photos div label { color: #666666; font-size: 10px; overflow: hidden; text-align: center; white-space: nowrap; width: 64px; } #reco-category { font-size: 77%; } #reco-desc { font-size: 77%; } .replbq { margin: 4px; } #ygrp-actbar div a:first-child { /* border-right: 0px solid #000;*/ margin-right: 2px; padding-right: 5px; } #ygrp-mlmsg { font-size: 13px; font-family: Arial, helvetica,clean, sans-serif; *font-size: small; *font: x-small; } #ygrp-mlmsg table { font-size: inherit; font: 100%; } #ygrp-mlmsg select, input, textarea { font: 99% Arial, Helvetica, clean, sans-serif; } #ygrp-mlmsg pre, code { font:115% monospace; *font-size:100%; } #ygrp-mlmsg * { line-height: 1.22em; } #ygrp-mlmsg #logo { padding-bottom: 10px; } #ygrp-mlmsg a { color: #1E66AE; } #ygrp-msg p a { font-family: Verdana; } #ygrp-msg p#attach-count span { color: #1E66AE; font-weight: 700; } #ygrp-reco #reco-head { color: #ff7900; font-weight: 700; } #ygrp-reco { margin-bottom: 20px; padding: 0px; } #ygrp-sponsor #ov li a { font-size: 130%; text-decoration: none; } #ygrp-sponsor #ov li { font-size: 77%; list-style-type: square; padding: 6px 0; }=20 #ygrp-sponsor #ov ul { margin: 0; padding: 0 0 0 8px; } #ygrp-text { font-family: Georgia; } #ygrp-text p { margin: 0 0 1em 0; } #ygrp-text tt { font-size: 120%; } #ygrp-vital ul li:last-child { border-right: none !important;=20 }=20 --> </style> </head> <!--~-|**|PrettyHtmlEnd|**|-~--> </html> <!-- end group email --> --00032555a33afe1145047ee17550--