| 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>()) |