Another important note: the base algorithm here, though simple at heart, needs to be attributed to Andrew Robbins. There's been talk that perhaps someone else devised the basic algorithm earlier, and either didn't publish it, or published it in a different form, or only described it, or whatever. But for now, I continue to call it "Andrew Robbin's slog".
It's a clever approach, because I had independently tried my hand at solving a system of equations for tetration (base e) directly, and it involved nonlinear equations that became damned hard to solve beyond about 12 coefficients. This was probably fine for getting within about 0.1% accuracy (I'm actually curious to go back and check), but that's about it.
Andrew's approach of solving the slog, amazingly enough, yields a system of linear equations, trivial to solve on today's hardware with free math libraries.
The only potential difficulty is that it takes a very large system (thousands of rows and columns) to get even marginal accuracy (i.e., better than double precision). I've devised the acceleration technique independently, though who knows if I'm the first. The acceleration technique eeks out significantly more precision with a small increase in computations (fairly insignificant, in fact, for systems larger than 500x500). So I consider this source code a "collaborative effort" of sorts. Hats off to Andrew!
It's a clever approach, because I had independently tried my hand at solving a system of equations for tetration (base e) directly, and it involved nonlinear equations that became damned hard to solve beyond about 12 coefficients. This was probably fine for getting within about 0.1% accuracy (I'm actually curious to go back and check), but that's about it.
Andrew's approach of solving the slog, amazingly enough, yields a system of linear equations, trivial to solve on today's hardware with free math libraries.
The only potential difficulty is that it takes a very large system (thousands of rows and columns) to get even marginal accuracy (i.e., better than double precision). I've devised the acceleration technique independently, though who knows if I'm the first. The acceleration technique eeks out significantly more precision with a small increase in computations (fairly insignificant, in fact, for systems larger than 500x500). So I consider this source code a "collaborative effort" of sorts. Hats off to Andrew!
~ Jay Daniel Fox

