Re: [eigen] sse asin implementation

[ Thread Index | Date Index | More Archives ]

On Tue, Mar 31, 2009 at 10:19 PM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx> wrote:
> 2009/3/31 Rohit Garg <rpg.314@xxxxxxxxx>:
>> For general exponentiation, I think a cheap and easy route would be
>> just exp(b*log(a))
>> I looked at the cephes library implementation of pow and they do a lot
>> of hacks just to get 3 bits of precision. In the use case that you
>> have cited, I think it's better to just have the above implementation.
>> It is certainly good enough for the -ffast-math case.
> OK, seems sensible. But I thought the main justification for a simd
> pow() would be performance, that it could be faster than the above
> formula. If that's not the case then sure, I agree with you.

ATM, I don't know of any way to do that without going the log ->exp
route. cephes does something without taking a full blown log and an
exp but the general approach is same. But yes, we'll have to flush the
denormals if we want any real performance benefit. Perhaps this is a
candidate to be vectorized only if the fast-math is chosen. And
looking at the log code already in eigen, ATM the user has no way to
select the default route if he wants the denormals to be treated with
respect. Silently killing them is suitable only if the -ffast-math is

>> BTW, what do you think of enabling the fast math paths in eigen when
>> just -ffast-math is supplied to gcc. It can be detected by the
>> __FAST_MATH__ macro.
> That seems like a good idea! Let's see what Gael thinks.
> Cheers,
> Benoit

Rohit Garg

Senior Undergraduate
Department of Physics
Indian Institute of Technology

Mail converted by MHonArc 2.6.19+