From 81958d302494e137f98a8b1d7869841532f90388 Mon Sep 17 00:00:00 2001 From: JaimeIvanCervantes <jimmycc80@hotmail.com> Date: Fri, 16 Jun 2017 13:21:45 -0700 Subject: [PATCH] multi_convolution: Fix for incorrect template parameter type when using unsigned int N for TinyVector SIZE. (Fixes #414) --- include/vigra/multi_convolution.hxx | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/include/vigra/multi_convolution.hxx b/include/vigra/multi_convolution.hxx index 1b5efa740..ec89bcf58 100644 --- a/include/vigra/multi_convolution.hxx +++ b/include/vigra/multi_convolution.hxx @@ -1426,7 +1426,7 @@ gaussianSmoothMultiArray(MultiArrayView<N, T1, S1> const & source, class T2, class S2> void gaussianGradientMultiArray(MultiArrayView<N, T1, S1> const & source, - MultiArrayView<N, TinyVector<T2, N>, S2> dest, + MultiArrayView<N, TinyVector<T2, int(N)>, S2> dest, double sigma, ConvolutionOptions<N> opt = ConvolutionOptions<N>()); @@ -1435,7 +1435,7 @@ gaussianSmoothMultiArray(MultiArrayView<N, T1, S1> const & source, class T2, class S2> void gaussianGradientMultiArray(MultiArrayView<N, T1, S1> const & source, - MultiArrayView<N, TinyVector<T2, N>, S2> dest, + MultiArrayView<N, TinyVector<T2, int(N)>, S2> dest, ConvolutionOptions<N> opt); // likewise, but execute algorithm in parallel @@ -1443,7 +1443,7 @@ gaussianSmoothMultiArray(MultiArrayView<N, T1, S1> const & source, class T2, class S2> void gaussianGradientMultiArray(MultiArrayView<N, T1, S1> const & source, - MultiArrayView<N, TinyVector<T2, N>, S2> dest, + MultiArrayView<N, TinyVector<T2, int(N)>, S2> dest, BlockwiseConvolutionOptions<N> opt); } \endcode @@ -1590,7 +1590,7 @@ template <unsigned int N, class T1, class S1, class T2, class S2> inline void gaussianGradientMultiArray(MultiArrayView<N, T1, S1> const & source, - MultiArrayView<N, TinyVector<T2, N>, S2> dest, + MultiArrayView<N, TinyVector<T2, int(N)>, S2> dest, ConvolutionOptions<N> opt ) { if(opt.to_point != typename MultiArrayShape<N>::type()) @@ -1614,7 +1614,7 @@ template <unsigned int N, class T1, class S1, class T2, class S2> inline void gaussianGradientMultiArray(MultiArrayView<N, T1, S1> const & source, - MultiArrayView<N, TinyVector<T2, N>, S2> dest, + MultiArrayView<N, TinyVector<T2, int(N)>, S2> dest, double sigma, ConvolutionOptions<N> opt = ConvolutionOptions<N>()) { @@ -1653,7 +1653,7 @@ gaussianGradientMagnitudeImpl(MultiArrayView<N+1, T1, S1> const & src, dest.init(0.0); typedef typename NumericTraits<T1>::RealPromote TmpType; - MultiArray<N, TinyVector<TmpType, N> > grad(dest.shape()); + MultiArray<N, TinyVector<TmpType, int(N)> > grad(dest.shape()); using namespace multi_math; @@ -1771,7 +1771,7 @@ gaussianGradientMagnitude(MultiArrayView<N+1, Multiband<T1>, S1> const & src, class T2, class S2> void symmetricGradientMultiArray(MultiArrayView<N, T1, S1> const & source, - MultiArrayView<N, TinyVector<T2, N>, S2> dest, + MultiArrayView<N, TinyVector<T2, int(N)>, S2> dest, ConvolutionOptions<N> opt = ConvolutionOptions<N>()); // execute algorithm in parallel @@ -1779,7 +1779,7 @@ gaussianGradientMagnitude(MultiArrayView<N+1, Multiband<T1>, S1> const & src, class T2, class S2> void symmetricGradientMultiArray(MultiArrayView<N, T1, S1> const & source, - MultiArrayView<N, TinyVector<T2, N>, S2> dest, + MultiArrayView<N, TinyVector<T2, int(N)>, S2> dest, BlockwiseConvolutionOptions<N> opt); } \endcode @@ -1895,7 +1895,7 @@ template <unsigned int N, class T1, class S1, class T2, class S2> inline void symmetricGradientMultiArray(MultiArrayView<N, T1, S1> const & source, - MultiArrayView<N, TinyVector<T2, N>, S2> dest, + MultiArrayView<N, TinyVector<T2, int(N)>, S2> dest, ConvolutionOptions<N> opt = ConvolutionOptions<N>()) { if(opt.to_point != typename MultiArrayShape<N>::type()) @@ -2214,14 +2214,14 @@ laplacianOfGaussianMultiArray(MultiArrayView<N, T1, S1> const & source, template <unsigned int N, class T1, class S1, class T2, class S2> void - gaussianDivergenceMultiArray(MultiArrayView<N, TinyVector<T1, N>, S1> const & vectorField, + gaussianDivergenceMultiArray(MultiArrayView<N, TinyVector<T1, int(N)>, S1> const & vectorField, MultiArrayView<N, T2, S2> divergence, ConvolutionOptions<N> const & opt); template <unsigned int N, class T1, class S1, class T2, class S2> void - gaussianDivergenceMultiArray(MultiArrayView<N, TinyVector<T1, N>, S1> const & vectorField, + gaussianDivergenceMultiArray(MultiArrayView<N, TinyVector<T1, int(N)>, S1> const & vectorField, MultiArrayView<N, T2, S2> divergence, double sigma, ConvolutionOptions<N> opt = ConvolutionOptions<N>()); @@ -2231,7 +2231,7 @@ laplacianOfGaussianMultiArray(MultiArrayView<N, T1, S1> const & source, template <unsigned int N, class T1, class S1, class T2, class S2> void - gaussianDivergenceMultiArray(MultiArrayView<N, TinyVector<T1, N>, S1> const & vectorField, + gaussianDivergenceMultiArray(MultiArrayView<N, TinyVector<T1, int(N)>, S1> const & vectorField, MultiArrayView<N, T2, S2> divergence, BlockwiseConvolutionOptions<N> const & opt); } @@ -2324,7 +2324,7 @@ gaussianDivergenceMultiArray(Iterator vectorField, Iterator vectorFieldEnd, template <unsigned int N, class T1, class S1, class T2, class S2> inline void -gaussianDivergenceMultiArray(MultiArrayView<N, TinyVector<T1, N>, S1> const & vectorField, +gaussianDivergenceMultiArray(MultiArrayView<N, TinyVector<T1, int(N)>, S1> const & vectorField, MultiArrayView<N, T2, S2> divergence, ConvolutionOptions<N> const & opt) { @@ -2338,7 +2338,7 @@ gaussianDivergenceMultiArray(MultiArrayView<N, TinyVector<T1, N>, S1> const & ve template <unsigned int N, class T1, class S1, class T2, class S2> inline void -gaussianDivergenceMultiArray(MultiArrayView<N, TinyVector<T1, N>, S1> const & vectorField, +gaussianDivergenceMultiArray(MultiArrayView<N, TinyVector<T1, int(N)>, S1> const & vectorField, MultiArrayView<N, T2, S2> divergence, double sigma, ConvolutionOptions<N> opt = ConvolutionOptions<N>())