Re: [eigen] log10 support?

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


OK, thanks. I'm on a really old machine and can't check sse here. I'll test your code and generate another patch. Unless I hear that is is unwanted.

(This just goes in eigenNes/Eigen/src/Core/arch/SSE/MathFunctions.h) right?

-Trevor

On 7 June 2010 15:46, Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx> wrote:
Let me try to answer for Benoit. :)

On Mon, Jun 7, 2010 at 11:20 PM, Trevor Irons <trevorirons@xxxxxxxxx> wrote:
> Sure, I can do this. I prefer store a minimum of constants. But if it will
> be faster, then sure.
>
> Why won't calls to std::log10 be vectorized? No sse instructions?

This is because std::log is not right away available as an SSE
intrinsic and we have a special version based on the code from here:
http://gruntthepeon.free.fr/ssemath/

Nonetheless I think your patch is the right way to go. We could
achieve easily what Benoit suggests by offering a version of ei_plog10
such as

Packet4f ei_plog10(Packet4f x)
{
 const Packet4f ei_p4f_log10 = ei_plog(ei_pset1(10.0f));
 return ei_pdiv(ei_plog(x), ei_p4f_log10);
}

which uses "Packet4f ei_plog(Packet4f x)". The constant would probably
be taken care of by a decent compiler, i.e. I don't think we need
manual caching.

> Also, is there any desire to have log10 defined your way in Eigen, for convenience? Or are you just suggesting I do this locally?

I am pretty sure he meant that it would be nice to really have this in
Eigen and not just in a local copy... though I am wildly guessing.

- Hauke

p.s. I am pretty tired an hope that I picked the right conversion factor ....





Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/