https://svn.lrde.epita.fr/svn/oln/trunk/milena
Index: ChangeLog
from Thierry Geraud <thierry.geraud(a)lrde.epita.fr>
Make doc examples tuto_one compile again.
* mln/core/concept/window.hh (mln_is_fastest_IW): New.
* mln/accu/transform_directional.hh,
* mln/accu/transform_diagonal.hh,
* mln/accu/transform.hh,
* mln/accu/transform_stop.hh,
* mln/accu/transform_snake.hh: Check in dispatch that win is
simple to choose the fastest specialization.
accu/transform.hh | 6 +++---
accu/transform_diagonal.hh | 12 ++++++------
accu/transform_directional.hh | 6 +++---
accu/transform_snake.hh | 6 +++---
accu/transform_stop.hh | 6 +++---
core/concept/window.hh | 7 +++++++
6 files changed, 25 insertions(+), 18 deletions(-)
Index: mln/core/concept/window.hh
--- mln/core/concept/window.hh (revision 2976)
+++ mln/core/concept/window.hh (working copy)
@@ -60,6 +60,13 @@
mln::trait::window::definition::unique) > >
+# define mln_is_fastest_IW(I, W) \
+ \
+mlc_and(mlc_is(mln_trait_image_speed(I), \
+ trait::image::speed::fastest), \
+ mln_is_simple_window(W))
+
+
namespace mln
{
Index: mln/accu/transform_directional.hh
--- mln/accu/transform_directional.hh (revision 2976)
+++ mln/accu/transform_directional.hh (working copy)
@@ -253,7 +253,7 @@
template <typename A, typename I, typename W>
inline
mln_ch_value(I, mln_result(A))
- transform_directional_dispatch(trait::image::speed::any,
+ transform_directional_dispatch(metal::false_,
const Accumulator<A>& a,
const Image<I>& input, const Window<W>& win,
unsigned dir)
@@ -267,7 +267,7 @@
template <typename A, typename I, typename W>
inline
mln_ch_value(I, mln_result(A))
- transform_directional_dispatch(trait::image::speed::fastest,
+ transform_directional_dispatch(metal::true_,
const Accumulator<A>& a,
const Image<I>& input, const Window<W>& win,
unsigned dir)
@@ -285,7 +285,7 @@
const Image<I>& input, const Window<W>& win,
unsigned dir)
{
- return transform_directional_dispatch(mln_trait_image_speed(I)(),
+ return transform_directional_dispatch(mln_is_fastest_IW(I, W)(),
a, input, win, dir);
}
Index: mln/accu/transform_diagonal.hh
--- mln/accu/transform_diagonal.hh (revision 2976)
+++ mln/accu/transform_diagonal.hh (working copy)
@@ -357,7 +357,7 @@
template <typename A, typename I>
inline
mln_ch_value(I, mln_result(A))
- transform_diagonal_dispatch(trait::image::speed::any,
+ transform_diagonal_dispatch(metal::false_,
const Accumulator<A>& a,
const Image<I>& input, const win::diag2d& win)
{
@@ -367,10 +367,10 @@
return f.output;
}
- template <typename A, typename I>
+ template <typename B, typename A, typename I>
inline
mln_ch_value(I, mln_result(A))
- transform_diagonal_dispatch(trait::image::speed::any,
+ transform_diagonal_dispatch(metal::false_,
const Accumulator<A>& a,
const Image<I>& input, const win::backdiag2d& win)
{
@@ -383,7 +383,7 @@
template <typename A, typename I>
inline
mln_ch_value(I, mln_result(A))
- transform_diagonal_dispatch(trait::image::speed::fastest,
+ transform_diagonal_dispatch(metal::true_,
const Accumulator<A>& a,
const Image<I>& input, const win::diag2d& win)
{
@@ -396,7 +396,7 @@
template <typename A, typename I>
inline
mln_ch_value(I, mln_result(A))
- transform_diagonal_dispatch(trait::image::speed::fastest,
+ transform_diagonal_dispatch(metal::true_,
const Accumulator<A>& a,
const Image<I>& input, const win::backdiag2d& win)
{
@@ -412,7 +412,7 @@
transform_diagonal_dispatch(const Accumulator<A>& a,
const Image<I>& input, const Window<W>& win)
{
- return transform_diagonal_dispatch(mln_trait_image_speed(I)(),
+ return transform_diagonal_dispatch(mln_is_fastest_IW(I, W)(),
a, input, exact(win));
}
Index: mln/accu/transform.hh
--- mln/accu/transform.hh (revision 2976)
+++ mln/accu/transform.hh (working copy)
@@ -154,7 +154,7 @@
template <typename I, typename A, typename W>
mln_ch_value(I, mln_result(A))
- transform_dispatch(trait::image::speed::any,
+ transform_dispatch(metal::false_,
const Image<I>& input, const Accumulator<A>& a, const
Window<W>& win)
{
return impl::generic::transform(input, a, win);
@@ -162,7 +162,7 @@
template <typename I, typename A, typename W>
mln_ch_value(I, mln_result(A))
- transform_dispatch(trait::image::speed::fastest,
+ transform_dispatch(metal::true_,
const Image<I>& input, const Accumulator<A>& a, const
Window<W>& win)
{
return impl::transform_fastest(input, a, win);
@@ -172,7 +172,7 @@
mln_ch_value(I, mln_result(A))
transform_dispatch(const Image<I>& input, const Accumulator<A>&
a, const Window<W>& win)
{
- return transform_dispatch(mln_trait_image_speed(I)(),
+ return transform_dispatch(mln_is_fastest_IW(I, W)(),
input, a, win);
}
Index: mln/accu/transform_stop.hh
--- mln/accu/transform_stop.hh (revision 2976)
+++ mln/accu/transform_stop.hh (working copy)
@@ -158,7 +158,7 @@
template <typename I, typename A, typename W>
mln_ch_value(I, mln_result(A))
- transform_stop_dispatch(trait::image::speed::any,
+ transform_stop_dispatch(metal::false_,
const Image<I>& input, const Accumulator<A>& a, const
Window<W>& win)
{
return impl::generic::transform_stop(input, a, win);
@@ -166,7 +166,7 @@
template <typename I, typename A, typename W>
mln_ch_value(I, mln_result(A))
- transform_stop_dispatch(trait::image::speed::fastest,
+ transform_stop_dispatch(metal::true_,
const Image<I>& input, const Accumulator<A>& a, const
Window<W>& win)
{
return impl::transform_stop_fastest(input, a, win);
@@ -176,7 +176,7 @@
mln_ch_value(I, mln_result(A))
transform_stop_dispatch(const Image<I>& input, const
Accumulator<A>& a, const Window<W>& win)
{
- return transform_stop_dispatch(mln_trait_image_speed(I)(),
+ return transform_stop_dispatch(mln_is_fastest_IW(I, W)(),
input, a, win);
}
Index: mln/accu/transform_snake.hh
--- mln/accu/transform_snake.hh (revision 2976)
+++ mln/accu/transform_snake.hh (working copy)
@@ -395,7 +395,7 @@
template <typename A, typename I, typename W>
inline
mln_ch_value(I, mln_result(A))
- transform_snake_dispatch(trait::image::speed::any,
+ transform_snake_dispatch(metal::false_,
const Accumulator<A>& a,
const Image<I>& input, const Window<W>& win)
{
@@ -408,7 +408,7 @@
template <typename A, typename I, typename W>
inline
mln_ch_value(I, mln_result(A))
- transform_snake_dispatch(trait::image::speed::fastest,
+ transform_snake_dispatch(metal::true_,
const Accumulator<A>& a,
const Image<I>& input, const Window<W>& win)
{
@@ -424,7 +424,7 @@
transform_snake_dispatch(const Accumulator<A>& a,
const Image<I>& input, const Window<W>& win)
{
- return transform_snake_dispatch(mln_trait_image_speed(I)(),
+ return transform_snake_dispatch(mln_is_fastest_IW(I, W)(),
a, input, win);
}