Yary, There already is a Perl 6 continue fractions module. Spoiler alert: it doesn't work in the least. But I'd be happy to give you a commit bit.
I don't think we should even begin to think about including something like that in the Perl 6 core before we have a complete, working implementation in a module. Frankly, I'm much more concerned with making the math functions we already have support the types we already have. For instance, right now most such operations use standard floating point doubles under the hood. The exact range of Ints and Rats vastly exceeds that of doubles, so this means that (at least in theory) there are perfectly good mathematical answers we could return that we're not. So, for instance, according to Wolfram Alpha, ln(3 * 10 ** 500) = 1152.391158785690951700390972579104629505198234872209237468398... On the other hand, if I give Rakudo that same problem (switch ln to log), we get "Inf", because 3 * 10 ** 500 cannot be presented as a double. That said, I'm not terrible concerned about that problem, either. But if you were hankering for a Perl 6 math problem to work on, IMO it would be a much better one than trying to exactly represent irrational numbers. On Mon, Jun 22, 2015 at 1:41 PM, yary <not....@gmail.com> wrote: > Thinking over my programming career, there were a few occasions I had to > spend time working around floating point errors, and it was a nuisance. > There were even fewer times when I worked with transcendental numbers- > programs dealing with geometry or tones or logarithmic scales- and those > times, floating point was good enough. > > Which is to say, Perl 6's Rats would have solved my nuisance issues, and I > would not have appreciated exact types for irrational numbers in my tasks > to date. > > Still, I couldn't resist thinking about them and web-searching on them a > bit more, and here's my brain-dump. Periodic continued fractions > <https://en.wikipedia.org/wiki/Continued_fraction> can represent any quadratic > root > <http://www.millersville.edu/~bikenaga/number-theory/periodic-continued-fractions/periodic-continued-fractions.html>. > Haskel has this package implementing a quadratic irrational type > <https://hackage.haskell.org/package/quadratic-irrational-0.0.2/docs/Numeric-QuadraticIrrational.html>, > and it can translate between those and continued fractions. ... here is a > decent intro to continued fractions > <http://www.maths.surrey.ac.uk/hosted-sites/R.Knott/Fibonacci/cfINTRO.html> > . > > That's a comprehensive answer for square roots of rationals, but not for > transcendental > numbers <http://sprott.physics.wisc.edu/pickover/trans.html>. My math is > not so hot, but perhaps a generalized continued fraction > <https://en.wikipedia.org/wiki/Generalized_continued_fraction> type could > perfectly represent transcendental constants like pi and e, with trig and > log/exponentiation functions using them. Then Perl 6 could get this famous > relationship *exactly right*: > > say 1 + e ** (pi * i) > > ... though I suspect it really does take a symbolic math package to get > all combinations of the trig & exponential functions right > <https://cloud.sagemath.com/projects/3966ff36-7109-449d-83a9-49e48e078fea/files/2015-06-22-133206.sagews> > . > > -y > -- Solomon Foster: colo...@gmail.com HarmonyWare, Inc: http://www.harmonyware.com