1 From 81958d302494e137f98a8b1d7869841532f90388 Mon Sep 17 00:00:00 2001
2 From: JaimeIvanCervantes <jimmycc80@hotmail.com>
3 Date: Fri, 16 Jun 2017 13:21:45 -0700
4 Subject: [PATCH] multi_convolution: Fix for incorrect template parameter type
5 when using unsigned int N for TinyVector SIZE. (Fixes #414)
8 include/vigra/multi_convolution.hxx | 28 ++++++++++++++--------------
9 1 file changed, 14 insertions(+), 14 deletions(-)
11 diff --git a/include/vigra/multi_convolution.hxx b/include/vigra/multi_convolution.hxx
12 index 1b5efa740..ec89bcf58 100644
13 --- a/include/vigra/multi_convolution.hxx
14 +++ b/include/vigra/multi_convolution.hxx
15 @@ -1426,7 +1426,7 @@ gaussianSmoothMultiArray(MultiArrayView<N, T1, S1> const & source,
18 gaussianGradientMultiArray(MultiArrayView<N, T1, S1> const & source,
19 - MultiArrayView<N, TinyVector<T2, N>, S2> dest,
20 + MultiArrayView<N, TinyVector<T2, int(N)>, S2> dest,
22 ConvolutionOptions<N> opt = ConvolutionOptions<N>());
24 @@ -1435,7 +1435,7 @@ gaussianSmoothMultiArray(MultiArrayView<N, T1, S1> const & source,
27 gaussianGradientMultiArray(MultiArrayView<N, T1, S1> const & source,
28 - MultiArrayView<N, TinyVector<T2, N>, S2> dest,
29 + MultiArrayView<N, TinyVector<T2, int(N)>, S2> dest,
30 ConvolutionOptions<N> opt);
32 // likewise, but execute algorithm in parallel
33 @@ -1443,7 +1443,7 @@ gaussianSmoothMultiArray(MultiArrayView<N, T1, S1> const & source,
36 gaussianGradientMultiArray(MultiArrayView<N, T1, S1> const & source,
37 - MultiArrayView<N, TinyVector<T2, N>, S2> dest,
38 + MultiArrayView<N, TinyVector<T2, int(N)>, S2> dest,
39 BlockwiseConvolutionOptions<N> opt);
42 @@ -1590,7 +1590,7 @@ template <unsigned int N, class T1, class S1,
45 gaussianGradientMultiArray(MultiArrayView<N, T1, S1> const & source,
46 - MultiArrayView<N, TinyVector<T2, N>, S2> dest,
47 + MultiArrayView<N, TinyVector<T2, int(N)>, S2> dest,
48 ConvolutionOptions<N> opt )
50 if(opt.to_point != typename MultiArrayShape<N>::type())
51 @@ -1614,7 +1614,7 @@ template <unsigned int N, class T1, class S1,
54 gaussianGradientMultiArray(MultiArrayView<N, T1, S1> const & source,
55 - MultiArrayView<N, TinyVector<T2, N>, S2> dest,
56 + MultiArrayView<N, TinyVector<T2, int(N)>, S2> dest,
58 ConvolutionOptions<N> opt = ConvolutionOptions<N>())
60 @@ -1653,7 +1653,7 @@ gaussianGradientMagnitudeImpl(MultiArrayView<N+1, T1, S1> const & src,
63 typedef typename NumericTraits<T1>::RealPromote TmpType;
64 - MultiArray<N, TinyVector<TmpType, N> > grad(dest.shape());
65 + MultiArray<N, TinyVector<TmpType, int(N)> > grad(dest.shape());
67 using namespace multi_math;
69 @@ -1771,7 +1771,7 @@ gaussianGradientMagnitude(MultiArrayView<N+1, Multiband<T1>, S1> const & src,
72 symmetricGradientMultiArray(MultiArrayView<N, T1, S1> const & source,
73 - MultiArrayView<N, TinyVector<T2, N>, S2> dest,
74 + MultiArrayView<N, TinyVector<T2, int(N)>, S2> dest,
75 ConvolutionOptions<N> opt = ConvolutionOptions<N>());
77 // execute algorithm in parallel
78 @@ -1779,7 +1779,7 @@ gaussianGradientMagnitude(MultiArrayView<N+1, Multiband<T1>, S1> const & src,
81 symmetricGradientMultiArray(MultiArrayView<N, T1, S1> const & source,
82 - MultiArrayView<N, TinyVector<T2, N>, S2> dest,
83 + MultiArrayView<N, TinyVector<T2, int(N)>, S2> dest,
84 BlockwiseConvolutionOptions<N> opt);
87 @@ -1895,7 +1895,7 @@ template <unsigned int N, class T1, class S1,
90 symmetricGradientMultiArray(MultiArrayView<N, T1, S1> const & source,
91 - MultiArrayView<N, TinyVector<T2, N>, S2> dest,
92 + MultiArrayView<N, TinyVector<T2, int(N)>, S2> dest,
93 ConvolutionOptions<N> opt = ConvolutionOptions<N>())
95 if(opt.to_point != typename MultiArrayShape<N>::type())
96 @@ -2214,14 +2214,14 @@ laplacianOfGaussianMultiArray(MultiArrayView<N, T1, S1> const & source,
97 template <unsigned int N, class T1, class S1,
100 - gaussianDivergenceMultiArray(MultiArrayView<N, TinyVector<T1, N>, S1> const & vectorField,
101 + gaussianDivergenceMultiArray(MultiArrayView<N, TinyVector<T1, int(N)>, S1> const & vectorField,
102 MultiArrayView<N, T2, S2> divergence,
103 ConvolutionOptions<N> const & opt);
105 template <unsigned int N, class T1, class S1,
108 - gaussianDivergenceMultiArray(MultiArrayView<N, TinyVector<T1, N>, S1> const & vectorField,
109 + gaussianDivergenceMultiArray(MultiArrayView<N, TinyVector<T1, int(N)>, S1> const & vectorField,
110 MultiArrayView<N, T2, S2> divergence,
112 ConvolutionOptions<N> opt = ConvolutionOptions<N>());
113 @@ -2231,7 +2231,7 @@ laplacianOfGaussianMultiArray(MultiArrayView<N, T1, S1> const & source,
114 template <unsigned int N, class T1, class S1,
117 - gaussianDivergenceMultiArray(MultiArrayView<N, TinyVector<T1, N>, S1> const & vectorField,
118 + gaussianDivergenceMultiArray(MultiArrayView<N, TinyVector<T1, int(N)>, S1> const & vectorField,
119 MultiArrayView<N, T2, S2> divergence,
120 BlockwiseConvolutionOptions<N> const & opt);
122 @@ -2324,7 +2324,7 @@ gaussianDivergenceMultiArray(Iterator vectorField, Iterator vectorFieldEnd,
123 template <unsigned int N, class T1, class S1,
126 -gaussianDivergenceMultiArray(MultiArrayView<N, TinyVector<T1, N>, S1> const & vectorField,
127 +gaussianDivergenceMultiArray(MultiArrayView<N, TinyVector<T1, int(N)>, S1> const & vectorField,
128 MultiArrayView<N, T2, S2> divergence,
129 ConvolutionOptions<N> const & opt)
131 @@ -2338,7 +2338,7 @@ gaussianDivergenceMultiArray(MultiArrayView<N, TinyVector<T1, N>, S1> const & ve
132 template <unsigned int N, class T1, class S1,
135 -gaussianDivergenceMultiArray(MultiArrayView<N, TinyVector<T1, N>, S1> const & vectorField,
136 +gaussianDivergenceMultiArray(MultiArrayView<N, TinyVector<T1, int(N)>, S1> const & vectorField,
137 MultiArrayView<N, T2, S2> divergence,
139 ConvolutionOptions<N> opt = ConvolutionOptions<N>())