 |
|
|
|
Actions
|
|
[ 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
|
|