<div dir="auto">Hi David, <div dir="auto"><br></div><div dir="auto">I have one suggestion for the haddocks. I made a solid effort to wade into the explanation of branch cuts and negative zeros, but I never managed to figure out why I should care. ;) In other words: tl;dr.</div><div dir="auto"><br></div><div dir="auto">Would it be possible to write a pithy few words right at the beginning as an introduction that motivates the topic? If, as you say, few other languages take the subject into account, it's very likely that few programmers take it into account either.</div><div dir="auto"><br></div><div dir="auto">In general, as a math-conscious member of the community, I'm happy to see this kind of work being accomplished, so thanks!</div><div dir="auto"><br></div><div dir="auto">-Bryan</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, 22 Oct 2021, 17.48 David James, <<a href="mailto:dj112358@outlook.com">dj112358@outlook.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang="EN-GB" link="blue" vlink="#954F72" style="word-wrap:break-word">
<div class="m_-5719309557482422116WordSection1">
<p class="MsoNormal">Hi all – I now have fixes for all the issues I’m aware of. However, it’s quite possible I’ve made a mistake somewhere (either in the new code or the testing), so if anyone would like to help review either please let me know.</p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><b>Group 1 issues</b> (real numbers in Windows, where the defects are in mingw-w64: I’ve raised issue
<a href="https://gitlab.haskell.org/ghc/ghc/-/issues/20424" target="_blank" rel="noreferrer">#20424</a> for this. The fixes (commits
<a href="https://github.com/mingw-w64/mingw-w64/commit/66ba5f3221c786de24f5fc4b9c0236b704c2d31d" target="_blank" rel="noreferrer">
66ba5f32</a> and <a href="https://github.com/mingw-w64/mingw-w64/commit/021dffb8a482eb9d1b39569cd1ea42b87226fdf7" target="_blank" rel="noreferrer">
021dffb8a</a>) have been made in mingw-w64 and are getting integrated into Haskell soon.</p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><b>Group 2 issues</b> (complex numbers, where the defects are in Complex.hs). I’ve raised issue
<a href="https://gitlab.haskell.org/ghc/ghc/-/issues/20425" target="_blank" rel="noreferrer">#20425</a> for this and have the code fixes
<a href="https://gitlab.haskell.org/davjam/ghc/-/blob/ComplexBranchCuts/libraries/base/Data/Complex.hs" target="_blank" rel="noreferrer">
here</a>. The new code changes many of the functions (I’ve given examples in the issue) and adds a few. I’ve also put the Haddock output
<a href="https://davjam.github.io/HaskellNumericsTestsFixes/TrigDiags/Data-Complex.html" target="_blank" rel="noreferrer">
here</a>. (It now defines and gives an explanation of the branch cuts). I’ve also put some diagrams
<a href="https://davjam.github.io/HaskellNumericsTestsFixes/TrigDiags/Curr.html" target="_blank" rel="noreferrer">
here</a> illustrating some of the problems.</p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I’ve done about as much testing as I can think of, using the code
<a href="https://github.com/davjam/HaskellNumericsTestsFixes/blob/main/ComplexTests.hs" target="_blank" rel="noreferrer">
here</a>. Ideally I’d bulk-test against a reliable independent source, but can’t find one. AFAICT
<a href="https://www.wolframalpha.com/input/?i=sin%28-0.0%29" target="_blank" rel="noreferrer">WolframAlpha</a>, Excel, gnumeric, CLISP don’t support negative zeros.
<a href="https://www.python.org/" target="_blank" rel="noreferrer">Python</a> seems to, but cmath has incorrect branch cuts (cmath.sqrt(-4-0j) gives 2j).
<a href="https://www.advanpix.com/2016/04/28/branch-cuts-and-signed-zeros-in-matlab/" target="_blank" rel="noreferrer">
Matlab</a> also seems deficient in a number of areas. (Hmmm: maybe no one cares about these working correctly??)<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Sorry about the delay in sending this, David.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>

_______________________________________________<br>
Haskell-Cafe mailing list<br>
To (un)subscribe, modify options or view archives go to:<br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
Only members subscribed via the mailman list are allowed to post.</blockquote></div>