<div dir="ltr"><div>I've been digging into calc code. And it makes me wonder about a few things.</div><div>First, in here: <a href="https://opengrok.libreoffice.org/xref/core/">core</a>/<a href="https://opengrok.libreoffice.org/xref/core/include/">include</a>/<a href="https://opengrok.libreoffice.org/xref/core/include/rtl/">rtl</a>/<a href="https://opengrok.libreoffice.org/xref/core/include/rtl/math.hxx">math.hxx</a> <br></div><div>We have our own isnan, isinf, isfinite, ... and some of them with quite strange code.</div><div>Why is the default c++ standard library isn't good enough?</div><div>The same goes for floor / ceil / round ...</div><div>Thank you for your time.<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">El jue, 10 dic 2020 a las 14:38, Dante Doménech (<<a href="mailto:dante19031999@gmail.com">dante19031999@gmail.com</a>>) escribió:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto">Ok.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">El jue., 10 dic. 2020 10:00, Noel Grandin <<a href="mailto:noelgrandin@gmail.com" target="_blank">noelgrandin@gmail.com</a>> escribió:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 10 Dec 2020 at 01:25, Dante Doménech <<a href="mailto:dante19031999@gmail.com" rel="noreferrer" target="_blank">dante19031999@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>I-ll implement a second order kahan algorithm. Third order would be overkill ( I don't think anyone is gonna use it for high precision calculus  ).<br></div><div>But it's not only sum and average, variance (stats) and any other formula with sums is affected. That's why I need time to track it.<br></div><div>And by the way, what about using long double for intermediate steps, to improve precision. For what I know glibc or whatever uses gcc on fedora uses it, </div></div></blockquote><div><br></div><div><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">Note that calc is, in general, quite performance sensitive in that people care about how long it takes to calculate large spreadsheets (and some of them can get very large indeed).</div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">So 128-bit floating point would probably be tricky since CPU largely don't have hardware support for direction operations on that.</div><div class="gmail_default" style="font-family:tahoma,sans-serif"></div></div></div>
</blockquote></div>
</blockquote></div>