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

Jules Bergmann jules at codesourcery.com
Fri Oct 21 19:21:11 UTC 2005


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



More information about the vsipl++ mailing list