On Dec 10, 2013, at 11:45 AM, Bradley Lucier lucier@math.purdue.edu wrote:
Thanks for the comments.
On 12/10/2013 09:38 AM, Marc Feeley wrote:
On Dec 9, 2013, at 10:28 PM, Bradley Lucier lucier@math.purdue.edu wrote:
lib/_num.scm: Add ##flsquare, ##square, and square.
Is the naming consistent with other Schemes?
Yes.
Add ##exact-int.negative?
Fine.
Use it in ##abs. Add functions from Kahan's paper: ##kahan.abs, ##kahan.arg, ##kahan.cssqs, ##kahan.csqrt, ##kahan.cacos, ##kahan.casin, ##kahan.casinh, ##kahan.catanh, ##kahan.ctanh, ##kahan.ctan; and constants ##kahan.omega, ##kahan.epsilon, ##kahan.lambda.
I dislike the naming. Is "kahan" the best prefix? In any case, for consistency with the rest, it should be "kahan-" not "kahan." because the prefix "T." is used to name functions related to type T. Kahan is not a type (or is it?).
I renamed all the ##kahan. functions to just begin with "##c" (as in "c"omplex).
Add functions ##conjugate and conjugate.
Is the naming consistent with other Schemes?
Yes.
Great.
Marc: I'd like to have the compiler recognize ##flsquare.
Easy.
I'll attach the patch. I would really appreciate any comments.
What is missing for this patch is a bunch of unit tests. Each of the new inlined primitives should be tested for precision (after all, that is why they were added, so unit tests should verify this).
Later. I promise. :-)
Not good enough! If I don't take a hard line on this one, things will slip. But I can help you!
From now on, patches for new functionality will have to come with appropriate unit tests. Unit tests for existing features will have to be added too.
Marc