Actions

icon Post
text/html Subscribe
text/html Unsubscribe

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [vsipl++] [PATCH] Use IPP for Fir<>


  • To: "Nathan (Jasper) Myers" <ncm@xxxxxxxxxxxxxxxx>
  • Subject: Re: [vsipl++] [PATCH] Use IPP for Fir<>
  • From: Jules Bergmann <jules@xxxxxxxxxxxxxxxx>
  • Date: Fri, 21 Oct 2005 15:21:11 -0400

Nathan,

Just need to make the final push here so we can check this off as done. Can you:

 - Encapsulate the use of IPP so that user programs don't see the
   ipps.h header.  This could go into ipp.hpp/ipp.cpp.

 - Have the IPP version defer to the generic version for types
   not supported by IPP (such as long-double and possibly int).

 - Get the benchmark checked in.

 - Fix the assertions to handle unsigned wrap-around when the input
   view is size 0.

 - Add tracker issue for the copy constructor and NOTHROW.

				thanks,
				-- Jules

Nathan (Jasper) Myers wrote:
I have checked in the patch below.

It makes vsip::Fir<> use IPP's FIR support where possible.  In practice,
that means whenever block size and decimation are not relatively prime. (IPP produces bad output when they are. The IPP API seems to make it impossible, so it amounts to an IPP documentation bug.) Fir<> uses the native C++ implementation for such cases. They are probably rare in real programs.

The spec says the copy constructor Fir(Fir const&) is supposed to be VSIP_NOTHROW, but it seems to me that to implement it safely, it needs to do allocation. I declared it VSIP_THROW((std::bad_alloc)).

The no-macro method used here to adapt to IPP's version of overloading is similar to that in fft-core.hpp, and seems practical for general use.

Nathan Myers
ncm