October 11th, 2010, 6:01 pm
QuoteOriginally posted by: outrunQuoteOriginally posted by: CuchulainnQuoteOriginally posted by: outrunQuoteOriginally posted by: CuchulainnDo Microsoft /Intel use Pade, or is it something else? This is how Intel does it: The Computation of Transcendental Functions on the IA-64 ArchitectureI had a look at this. Fair enough.Now play 'advocaat van de duivel'.They wrote x = Nlog(2)/2^K + rand then exp(x) = 2^(N/2)^K * exp(r)Now:1. They they use Remez to approxmate exp(r) by a polynomial of degree 5 (==> Solve a matrix system). 2. They get typically r < log(2)/64 = 0.01 which can be done with Pade, so why use Remez?You could try Intel solution versus the bespoke R(1,1) solution. I miss the rationale for Remez (btw Remez uses rational functions, they mention polynomials which can be notoriously bad). They build table lookups as well.I don't think they solve a matrix system... I expect that they find the coeficient *once*, and cast that in logic. After that they just evaluate the polynomial with the constant coeffiients -at least that's how I would do it-.Would be cool to compare various alternatives, especially for fast evaluation / low precision. Maybe the downside of Pade is *not* the precision / number of terms, but the fact that is has a division? The double precision Intel version described in the papers costs 70 cycles, a single division already 30.According to the Remez algo they do find the polynomial coefficients by solving a linear system. At least from wiki.I just get the feeling that there's a lot going on, so a comparative analysis would indeed be very useful. Maybe renorm would solve it in a day.