Since my last report on the Numeric grant, most of my time has actually gone to moving my family. We are now mostly settled in two hours’ north of where we lived a month ago. In that time I made less progress than I hoped to on Numeric, but now things should be well positioned to make some real progress.
So far I’ve focused on the unpolar methods, the rounding methods, and the trig support methods. The unpolar methods,
unpolar, I have moved to Real, both in the spec and in the code. Implemented using the new
Bridge method (my current method name for the lingua franca type I was calling RealX in previous posts, not yet specced),
unpolar should work for any type that does the Real role and implements a working version of
Bridge. Similarly, the rounding methods,
round, are also all implemented generically in Real now. Both
floor forward to the bridge type versions of those functions, while
round are built on
At Moritz’s prodding, I also moved
from-radians from Any to Numeric, made them public, and specced them. In my experience, if you’re working with trig functions, sooner or later you will need those functions. If we already have to implement them for ourselves, no reason we shouldn’t save every other Perl 6 programmer from having to do the same.
At the moment, there are several Rakudo bugs concerning roles which need to be sorted out before Numeric and Real can be fully implemented. I’m hoping to have time to work on this with Jonathan this week.
Thanks to the Perl Foundation and Ian Hague for supporting this work.