[vsipl++] [patch] HPEC CFAR and SVD combined patches

Jules Bergmann jules at codesourcery.com
Thu May 25 15:30:18 UTC 2006


Don McCoy wrote:
> For convenience, I've put together these two recent patches along with 
> some other minor changes needed for building the HPEC benchmarks on the 
> Mercury system.
> 
> Relative to the previously posted patch, the changes to the CFAR 
> benchmark were only to correct a usage of a non-const array size and 
> (also for SVD) the modification needed to elimate a sign-change warning 
> on the r/wiob_per_point() functions (which was also done to FIR Bank).

Don,

This looks good, please check it in (with one exception, see below).

				-- Jules

> 	* src/vsip/signal-window.cpp: Added instantiations of three versions
> 	  of vsip::impl::cost(Block, LP) to include these in the library
> 	  (because of the way the GreenHills compiler behaves).


What benchmark failed to build because of these missing instantiations? 
  We may need to fix this another way (making vsip::impl::cost inline is 
the most likely solution) if the set of instantiations needs to grow 
further.

> Index: src/vsip/signal-window.cpp
> ===================================================================
> RCS file: /home/cvs/Repository/vpp/src/vsip/signal-window.cpp,v
> retrieving revision 1.8
> diff -c -p -r1.8 signal-window.cpp
> *** src/vsip/signal-window.cpp	14 May 2006 20:57:05 -0000	1.8
> --- src/vsip/signal-window.cpp	25 May 2006 06:43:17 -0000
> *************** kaiser( length_type len, scalar_f beta )
> *** 231,235 ****
> --- 231,241 ----
>   #pragma instantiate bool vsip::impl::data_access::is_direct_ok<impl::Fast_block<1, complex<float>, impl::Layout<1, row1_type, impl::Stride_unit_dense, impl::Cmplx_split_fmt>, Local_map>, impl::Rt_layout<1> >(const impl::Fast_block<1, complex<float>, impl::Layout<1, row1_type, impl::Stride_unit_dense, impl::Cmplx_split_fmt>, Local_map> &, const impl::Rt_layout<1>&)
>   #endif
>   
> + #pragma instantiate int vsip::impl::cost<vsip::impl::Layout<1, vsip::tuple<0, 1, 2>, vsip::impl::Stride_unknown, vsip::impl::Cmplx_inter_fmt>, vsip::impl::Component_block<vsip::Dense<1, std::complex<float>, vsip::tuple<0, 1, 2>, vsip::Local_map>, vsip::impl::Real_extractor> >(  vsip::impl::Component_block<vsip::Dense<1, std::complex<float>, vsip::tuple<0, 1, 2>, vsip::Local_map>, vsip::impl::Real_extractor> const& block, vsip::impl::Layout<1, vsip::tuple<0, 1, 2>, vsip::impl::Stride_unknown, vsip::impl::Cmplx_inter_fmt> const& layout)
> + 
> + #pragma instantiate int vsip::impl::cost<vsip::impl::Layout<1, vsip::tuple<0, 1, 2>, vsip::impl::Stride_unit_dense, vsip::impl::Cmplx_inter_fmt>, vsip::Dense<1, std::complex<float>, vsip::tuple<0, 1, 2>, vsip::Local_map> >(const vsip::Dense<1, std::complex<float>, vsip::tuple<0, 1, 2>, vsip::Local_map> & block, const vsip::impl::Layout<1, vsip::tuple<0, 1, 2>, vsip::impl::Stride_unit_dense, vsip::impl::Cmplx_inter_fmt> & layout)
> + 
> + #pragma instantiate int vsip::impl::cost<vsip::impl::Layout<1, vsip::tuple<0, 1, 2>, vsip::impl::Stride_unit_dense, vsip::impl::Cmplx_inter_fmt>, vsip::impl::Fast_block<1, std::complex<float>, vsip::impl::Layout<1, vsip::tuple<0, 1, 2>, vsip::impl::Stride_unit_dense, vsip::impl::Cmplx_inter_fmt>, vsip::Local_map> >(const vsip::impl::Fast_block<1, std::complex<float>, vsip::impl::Layout<1, vsip::tuple<0, 1, 2>, vsip::impl::Stride_unit_dense, vsip::impl::Cmplx_inter_fmt>, vsip::Local_map> & block, const vsip::impl::Layout<1, vsip::tuple<0, 1, 2>, vsip::impl::Stride_unit_dense, vsip::impl::Cmplx_inter_fmt> & layout)
> + 
>   } // namespace vsip


-- 
Jules Bergmann
CodeSourcery
jules at codesourcery.com
(650) 331-3385 x705



More information about the vsipl++ mailing list