
* headers.mk: update distributed file list. * mln/core/clock_neighb.hh: fix ambiguity between window type and window typedef. * mln/trait/next/solve.hh, * mln/fun/i2v/all_to.hh: update doc. * mln/fun/point/sli.hh: fix invalid trait specialization. * mln/fun/v2v/hsi_to_rgb.hh: move parts of rgb_to_hsi.hh here. * mln/fun/v2v/hsl_to_rgb.hh: move parts of rgb_to_hsl.hh here. * mln/fun/v2w2v/all.hh, * mln/fun/v2w_w2v/all.hh, * mln/fun/vv2b/all.hh: update includes. * mln/trait/next/solve_proxy.hh: add missing forward declaration. * tests/fun/v2v/wrap.cc: change l2l to v2v. * tests/unit_test/unit-tests.mk: update test list. * doc/outputs/site_set_create.txt: add reference file for doc generation. --- milena/ChangeLog | 31 +++++ milena/doc/outputs/site_set_create.txt | 6 + milena/headers.mk | 9 ++ milena/mln/core/clock_neighb.hh | 2 +- milena/mln/fun/i2v/all_to.hh | 10 +- milena/mln/fun/point/sli.hh | 2 +- milena/mln/fun/v2v/hsi_to_rgb.hh | 124 +++++++++++++++++ milena/mln/fun/v2v/hsl_to_rgb.hh | 139 ++++++++++++++++++++ .../fun/v2v/wrap.cc => mln/fun/v2w2v/all.hh} | 56 ++++---- .../fun/v2v/wrap.cc => mln/fun/v2w_w2v/all.hh} | 50 ++++---- .../{tests/fun/v2v/wrap.cc => mln/fun/vv2b/all.hh} | 55 ++++---- milena/mln/trait/next/solve.hh | 15 +-- milena/mln/trait/next/solve_proxy.hh | 9 +- milena/tests/fun/v2v/wrap.cc | 8 +- milena/tests/unit_test/unit-tests.mk | 18 +++ 15 files changed, 432 insertions(+), 102 deletions(-) create mode 100644 milena/doc/outputs/site_set_create.txt create mode 100644 milena/mln/fun/v2v/hsi_to_rgb.hh create mode 100644 milena/mln/fun/v2v/hsl_to_rgb.hh copy milena/{tests/fun/v2v/wrap.cc => mln/fun/v2w2v/all.hh} (67%) copy milena/{tests/fun/v2v/wrap.cc => mln/fun/v2w_w2v/all.hh} (72%) copy milena/{tests/fun/v2v/wrap.cc => mln/fun/vv2b/all.hh} (67%) diff --git a/milena/ChangeLog b/milena/ChangeLog index 85607ae..1757f3b 100644 --- a/milena/ChangeLog +++ b/milena/ChangeLog @@ -1,5 +1,36 @@ 2009-05-05 Guillaume Lazzara <lazzara@lrde.epita.fr> + Small fixes. + + * headers.mk: update distributed file list. + + * mln/core/clock_neighb.hh: fix ambiguity between window type and + window typedef. + + * mln/trait/next/solve.hh, + * mln/fun/i2v/all_to.hh: update doc. + + * mln/fun/point/sli.hh: fix invalid trait specialization. + + * mln/fun/v2v/hsi_to_rgb.hh: move parts of rgb_to_hsi.hh here. + + * mln/fun/v2v/hsl_to_rgb.hh: move parts of rgb_to_hsl.hh here. + + * mln/fun/v2w2v/all.hh, + * mln/fun/v2w_w2v/all.hh, + * mln/fun/vv2b/all.hh: update includes. + + * mln/trait/next/solve_proxy.hh: add missing forward declaration. + + * tests/fun/v2v/wrap.cc: change l2l to v2v. + + * tests/unit_test/unit-tests.mk: update test list. + + * doc/outputs/site_set_create.txt: add reference file for doc + generation. + +2009-05-05 Guillaume Lazzara <lazzara@lrde.epita.fr> + Improve graph support. * headers.mk: update distributed file list. diff --git a/milena/doc/outputs/site_set_create.txt b/milena/doc/outputs/site_set_create.txt new file mode 100644 index 0000000..1cfac41 --- /dev/null +++ b/milena/doc/outputs/site_set_create.txt @@ -0,0 +1,6 @@ +\{ +(0,0), (0,1), (0,2), (0,3), (1,0), (1,1), (1,2), (1,3), (2,0), (2,1), (2,2), (2,3), (3,0), (3,1), (3,2), (3,3), +\} +\{ +(-2,-2), (-2,-1), (-2,0), (-2,1), (-2,2), (-1,-2), (-1,-1), (-1,0), (-1,1), (-1,2), (0,-2), (0,-1), (0,0), (0,1), (0,2), (1,-2), (1,-1), (1,0), (1,1), (1,2), (2,-2), (2,-1), (2,0), (2,1), (2,2), +\} diff --git a/milena/headers.mk b/milena/headers.mk index 6631c1d..7d75826 100644 --- a/milena/headers.mk +++ b/milena/headers.mk @@ -51,6 +51,7 @@ mln/literal/origin.hh \ mln/literal/grays.hh \ mln/literal/all.hh \ mln/literal/colors.hh \ +mln/literal/identity.hh \ mln/literal/black.hh \ mln/literal/one.hh \ mln/literal/min.hh \ @@ -240,6 +241,7 @@ mln/fun/spe/binary.hh \ mln/fun/spe/unary.hh \ mln/fun/unary_param.hh \ mln/fun/v2w_w2v/norm.hh \ +mln/fun/v2w_w2v/all.hh \ mln/fun/p2v/ternary.hh \ mln/fun/p2v/iota.hh \ mln/fun/p2v/elifs.hh \ @@ -275,10 +277,14 @@ mln/fun/v2v/wrap.hh \ mln/fun/v2v/enc.hh \ mln/fun/v2v/projection.hh \ mln/fun/v2v/convert.hh \ +mln/fun/v2v/hsl_to_rgb.hh \ +mln/fun/v2v/hsi_to_rgb.hh \ mln/fun/v2v/essential.hh \ +mln/fun/v2w2v/all.hh \ mln/fun/v2w2v/cos.hh \ mln/fun/unary.hh \ mln/fun/vv2b/implies.hh \ +mln/fun/vv2b/all.hh \ mln/fun/vv2b/le.hh \ mln/fun/vv2b/gt.hh \ mln/fun/vv2b/ge.hh \ @@ -423,6 +429,7 @@ mln/accu/site_set/all.hh \ mln/accu/site_set/essential.hh \ mln/accu/stat/variance.hh \ mln/accu/stat/deviation.hh \ +mln/accu/stat/var.hh \ mln/accu/max.hh \ mln/accu/lor.hh \ mln/accu/rank.hh \ @@ -471,6 +478,7 @@ mln/accu/image/all.hh \ mln/accu/image/set_value.hh \ mln/accu/image/take.hh \ mln/accu/image/take_as_init.hh \ +mln/accu/image/take_n_times.hh \ mln/accu/image/essential.hh \ mln/accu/center.hh \ mln/accu/line.hh \ @@ -1233,6 +1241,7 @@ mln/border/duplicate.hh \ mln/border/find.hh \ mln/border/thickness.hh \ mln/border/all.hh \ +mln/border/resize_equal.hh \ mln/border/mirror.hh \ mln/border/get.hh \ mln/border/equalize.hh \ diff --git a/milena/mln/core/clock_neighb.hh b/milena/mln/core/clock_neighb.hh index 1474978..caa238c 100644 --- a/milena/mln/core/clock_neighb.hh +++ b/milena/mln/core/clock_neighb.hh @@ -62,7 +62,7 @@ namespace mln typedef mln_psite(D) site; /// Window associated type. - typedef window<dpsite> window; + typedef mln::window<dpsite> window; /// Site_Iterator type to browse the psites of a generic /// neighborhood w.r.t. the ordering of delta-psites. diff --git a/milena/mln/fun/i2v/all_to.hh b/milena/mln/fun/i2v/all_to.hh index 84f9859..c554e8f 100644 --- a/milena/mln/fun/i2v/all_to.hh +++ b/milena/mln/fun/i2v/all_to.hh @@ -1,4 +1,5 @@ -// Copyright (C) 2007 EPITA Research and Development Laboratory +// Copyright (C) 2007, 2009 EPITA Research and Development Laboratory +// (LRDE) // // This file is part of the Olena Library. This library is free // software; you can redistribute it and/or modify it under the terms @@ -28,10 +29,9 @@ #ifndef MLN_FUN_I2V_ALL_TO_HH # define MLN_FUN_I2V_ALL_TO_HH -/*! \file mln/fun/i2v/all_to.hh - * - * \brief FIXME. - */ +/// \file mln/fun/i2v/all_to.hh +/// +/// FIXME. # include <mln/core/concept/function.hh> diff --git a/milena/mln/fun/point/sli.hh b/milena/mln/fun/point/sli.hh index 2a22727..f899e21 100644 --- a/milena/mln/fun/point/sli.hh +++ b/milena/mln/fun/point/sli.hh @@ -55,7 +55,7 @@ namespace mln { template <typename G, typename C> - struct set_precise_unary_<mln::fun::col, mln::point<G, C> > + struct set_precise_unary_<mln::fun::sli, mln::point<G, C> > { typedef set_precise_unary_ ret; typedef mln::point<G,C> argument; diff --git a/milena/mln/fun/v2v/hsi_to_rgb.hh b/milena/mln/fun/v2v/hsi_to_rgb.hh new file mode 100644 index 0000000..9e5358c --- /dev/null +++ b/milena/mln/fun/v2v/hsi_to_rgb.hh @@ -0,0 +1,124 @@ +// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory +// (LRDE) +// +// This file is part of the Olena Library. This library is free +// software; you can redistribute it and/or modify it under the terms +// of the GNU General Public License version 2 as published by the +// Free Software Foundation. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING. If not, write to +// the Free Software Foundation, 51 Franklin Street, Fifth Floor, +// Boston, MA 02111-1307, USA. +// +// As a special exception, you may use this file as part of a free +// software library without restriction. Specifically, if other files +// instantiate templates or use macros or inline functions from this +// file, or you compile this file and link it with other files to +// produce an executable, this file does not by itself cause the +// resulting executable to be covered by the GNU General Public +// License. +// reasons why the executable file might be covered by the GNU General +// Public License. + +#ifndef MLN_FUN_V2V_HSI_TO_RGB_HH +# define MLN_FUN_V2V_HSI_TO_RGB_HH + +/// \file mln/fun/v2v/hsi_to_rgb.hh +/// +/// Convert a rgb value to hsi. + +#include <cmath> + +#include <mln/value/rgb8.hh> +#include <mln/math/round.hh> + +#include <mln/value/hsi.hh> + + +namespace mln +{ + + + namespace fun + { + + namespace v2v + { + + /// \brief Convert a hsi value to rgb. + /// + /// \ingroup modfunv2v + // + template <typename T_rgb> + struct f_hsi_to_rgb_ : public Function_v2v< f_hsi_to_rgb_<T_rgb> > + { + typedef T_rgb result; + + template <typename T_hsi> + T_rgb operator()(const T_hsi& hsi) const; + + }; + + typedef f_hsi_to_rgb_<value::rgb8> f_hsi_to_rgb_3x8_t; + + extern f_hsi_to_rgb_3x8_t f_hsi_to_rgb_3x8; + + +# ifndef MLN_INCLUDE_ONLY + + /// Global variable. + /// \{ + f_hsi_to_rgb_3x8_t f_hsi_to_rgb_3x8; + /// \} + + template <typename T_rgb> + template <typename T_hsi> + inline + T_rgb + f_hsi_to_rgb_<T_rgb>::operator()(const T_hsi& hsi) const + { + typedef typename T_rgb::red_t red_t; + typedef typename T_rgb::green_t green_t; + typedef typename T_rgb::blue_t blue_t; + + static math::round<red_t> to_r; + static math::round<green_t> to_g; + static math::round<blue_t> to_b; + + static const float + sqrt3_3 = std::sqrt(3) / 3, + inv_sqrt6 = 1 / std::sqrt(6), + inv_sqrt2 = 1 / std::sqrt(2); + + float + h = hsi.hue() / 180.0 * 3.1415, + alpha = hsi.sat() * std::cos(h), + beta = hsi.sat() * std::sin(h); + + + red_t r = to_r(sqrt3_3 * hsi.inty() + 2 * inv_sqrt6 * beta); + green_t g = + to_g(sqrt3_3 * hsi.inty() + inv_sqrt2 * alpha - inv_sqrt6 * beta); + blue_t b = + to_b(sqrt3_3 * hsi.inty() - inv_sqrt2 * alpha - inv_sqrt6 * beta); + + T_rgb rgb(r, g, b); + + return rgb; + } + +# endif // !MLN_INCLUDE_ONLY + + } // end of namespace fun::v2v + + } // end of namespace fun + +} // end of namespace mln + +#endif // ! MLN_FUN_V2V_HSI_TO_RGB_HH diff --git a/milena/mln/fun/v2v/hsl_to_rgb.hh b/milena/mln/fun/v2v/hsl_to_rgb.hh new file mode 100644 index 0000000..a2e6958 --- /dev/null +++ b/milena/mln/fun/v2v/hsl_to_rgb.hh @@ -0,0 +1,139 @@ +// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory +// (LRDE) +// +// This file is part of the Olena Library. This library is free +// software; you can redistribute it and/or modify it under the terms +// of the GNU General Public License version 2 as published by the +// Free Software Foundation. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING. If not, write to +// the Free Software Foundation, 51 Franklin Street, Fifth Floor, +// Boston, MA 02111-1307, USA. +// +// As a special exception, you may use this file as part of a free +// software library without restriction. Specifically, if other files +// instantiate templates or use macros or inline functions from this +// file, or you compile this file and link it with other files to +// produce an executable, this file does not by itself cause the +// resulting executable to be covered by the GNU General Public +// License. +// reasons why the executable file might be covered by the GNU General +// Public License. + +#ifndef MLN_FUN_V2V_HSL_TO_RGB_HH +# define MLN_FUN_V2V_HSL_TO_RGB_HH + +/// \file mln/fun/v2v/hsl_to_rgb.hh +/// +/// Convert hsl values to rgb. + + +# include <cmath> + +# include <mln/math/round.hh> +# include <mln/math/max.hh> +# include <mln/math/min.hh> + +# include <mln/trait/value_.hh> + +# include <mln/value/rgb.hh> + + + +namespace mln +{ + + // Forward declarations + namespace value + { + template <typename H, typename S, typename L> class hsl_; + typedef hsl_<float, float, float> hsl_f; + } + + namespace fun + { + + namespace v2v + { + + /// \brief Convert hsl values to rgb. + /// + /// \ingroup modfunv2v + // + template <typename T_rgb> + struct f_hsl_to_rgb_ : public Function_v2v< f_hsl_to_rgb_<T_rgb> > + { + typedef T_rgb result; + + template <typename T_hsl> + T_rgb operator()(const T_hsl& hsl) const; + + }; + + typedef f_hsl_to_rgb_< value::rgb<8> > f_hsl_to_rgb_3x8_t; + typedef f_hsl_to_rgb_< value::rgb<16> > f_hsl_to_rgb_3x16_t; + + extern f_hsl_to_rgb_3x8_t f_hsl_to_rgb_3x8; + extern f_hsl_to_rgb_3x16_t f_hsl_to_rgb_3x16; + + +# ifndef MLN_INCLUDE_ONLY + + /// Global variables. + /// \{ + f_hsl_to_rgb_3x8_t f_hsl_to_rgb_3x8; + f_hsl_to_rgb_3x16_t f_hsl_to_rgb_3x16; + /// \} + + + template <typename T_rgb> + template <typename T_hsl> + inline + T_rgb + f_hsl_to_rgb_<T_rgb>::operator()(const T_hsl& hsl) const + { + typedef typename T_rgb::red_t red_t; + typedef typename T_rgb::green_t green_t; + typedef typename T_rgb::blue_t blue_t; + + static math::round<red_t> to_r; + static math::round<green_t> to_g; + static math::round<blue_t> to_b; + + static const float + sqrt3_3 = std::sqrt(3) / 3, + inv_sqrt6 = 1 / std::sqrt(6), + inv_sqrt2 = 1 / std::sqrt(2); + + float + h = hsl.hue() / 180.0 * 3.1415, + alpha = hsl.sat() * std::cos(h), + beta = hsl.sat() * std::sin(h); + + + red_t r = to_r(sqrt3_3 * hsl.lum() + 2 * inv_sqrt6 * beta); + green_t g = + to_g(sqrt3_3 * hsl.lum() + inv_sqrt2 * alpha - inv_sqrt6 * beta); + blue_t b = + to_b(sqrt3_3 * hsl.lum() - inv_sqrt2 * alpha - inv_sqrt6 * beta); + + T_rgb rgb(r, g, b); + + return rgb; + } + +# endif // !MLN_INCLUDE_ONLY + + } // end of namespace fun::v2v + + } // end of namespace fun + +} // end of namespace mln + +#endif // ! MLN_FUN_V2V_HSL_TO_RGB_HH diff --git a/milena/tests/fun/v2v/wrap.cc b/milena/mln/fun/v2w2v/all.hh similarity index 67% copy from milena/tests/fun/v2v/wrap.cc copy to milena/mln/fun/v2w2v/all.hh index 78d339a..234b963 100644 --- a/milena/tests/fun/v2v/wrap.cc +++ b/milena/mln/fun/v2w2v/all.hh @@ -1,4 +1,5 @@ -// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE) +// Copyright (C) 2009 EPITA Research and Development Laboratory +// (LRDE) // // This file is part of the Olena Library. This library is free // software; you can redistribute it and/or modify it under the terms @@ -25,34 +26,33 @@ // reasons why the executable file might be covered by the GNU General // Public License. -/// \file tests/fun/l2l/wrap.cc -/// -/// Test on mln::fun::l2l::wrap. +#ifndef MLN_FUN_V2W2V_ALL_HH +# define MLN_FUN_V2W2V_ALL_HH -#include <mln/fun/l2l/wrap.hh> +namespace mln +{ -#include <mln/value/int_u8.hh> -#include <mln/value/label_16.hh> + namespace fun + { + /*! \defgroup modfunv2w2v v2w2v functions + * + * \brief All bijective functions. + * + * \ingroup modfun + */ -int main() -{ - using namespace mln; - - fun::l2l::wrap<value::int_u8> f; - - value::label_16 - l0 = 0, - l1 = 1, - l255 = 255, - l256 = 256, - l510 = 510, - l511 = 511; - - mln_assertion(f(l0) == 0u); - mln_assertion(f(l1) == 1u); - mln_assertion(f(l255) == 255u); - mln_assertion(f(l256) == 1u); - mln_assertion(f(l510) == 255u); - mln_assertion(f(l511) == 1u); -} + /// Namespace of bijective functions. + namespace v2w2v + { + + } // end of namespace mln::fun::v2w2v + + } // end of namespace mln::fun + +} // end of namespace mln + + +# include <mln/fun/v2w2v/cos.hh> + +#endif // ! MLN_FUN_V2W2V_ALL_HH diff --git a/milena/tests/fun/v2v/wrap.cc b/milena/mln/fun/v2w_w2v/all.hh similarity index 72% copy from milena/tests/fun/v2v/wrap.cc copy to milena/mln/fun/v2w_w2v/all.hh index 78d339a..516368e 100644 --- a/milena/tests/fun/v2v/wrap.cc +++ b/milena/mln/fun/v2w_w2v/all.hh @@ -25,34 +25,34 @@ // reasons why the executable file might be covered by the GNU General // Public License. -/// \file tests/fun/l2l/wrap.cc +#ifndef MLN_FUN_V2W_W2V_ALL_HH +# define MLN_FUN_V2W_W2V_ALL_HH + +/// \file mln/fun/v2w_w2v/all.hh /// -/// Test on mln::fun::l2l::wrap. +/// File that includes all bijective functions. + +namespace mln +{ -#include <mln/fun/l2l/wrap.hh> + namespace fun + { -#include <mln/value/int_u8.hh> -#include <mln/value/label_16.hh> + /*! \defgroup modfunv2w_w2v v2w_w2v functions + * + * \brief All bijective function. + * + * \ingroup modfun + */ + /// Namespace of functions from value to value. + namespace v2w_w2v {} -int main() -{ - using namespace mln; - - fun::l2l::wrap<value::int_u8> f; - - value::label_16 - l0 = 0, - l1 = 1, - l255 = 255, - l256 = 256, - l510 = 510, - l511 = 511; - - mln_assertion(f(l0) == 0u); - mln_assertion(f(l1) == 1u); - mln_assertion(f(l255) == 255u); - mln_assertion(f(l256) == 1u); - mln_assertion(f(l510) == 255u); - mln_assertion(f(l511) == 1u); + } } + + +# include <mln/fun/v2w_w2v/norm.hh> + +#endif // ! MLN_FUN_V2W_W2V_ALL_HH + diff --git a/milena/tests/fun/v2v/wrap.cc b/milena/mln/fun/vv2b/all.hh similarity index 67% copy from milena/tests/fun/v2v/wrap.cc copy to milena/mln/fun/vv2b/all.hh index 78d339a..8e8257c 100644 --- a/milena/tests/fun/v2v/wrap.cc +++ b/milena/mln/fun/vv2b/all.hh @@ -25,34 +25,39 @@ // reasons why the executable file might be covered by the GNU General // Public License. -/// \file tests/fun/l2l/wrap.cc +#ifndef MLN_FUN_VV2B_ALL_HH +# define MLN_FUN_VV2B_ALL_HH + +/// \file mln/fun/v2w_w2v/all.hh /// -/// Test on mln::fun::l2l::wrap. +/// File that includes all functions mapping two values to a logical value. + +namespace mln +{ -#include <mln/fun/l2l/wrap.hh> + namespace fun + { -#include <mln/value/int_u8.hh> -#include <mln/value/label_16.hh> + /*! \defgroup modfunvv2b vv2b functions + * + * \brief All functions mapping two values to a logical value. + * + * \ingroup modfun + */ + /// Namespace of functions from value to value. + namespace vv2b {} -int main() -{ - using namespace mln; - - fun::l2l::wrap<value::int_u8> f; - - value::label_16 - l0 = 0, - l1 = 1, - l255 = 255, - l256 = 256, - l510 = 510, - l511 = 511; - - mln_assertion(f(l0) == 0u); - mln_assertion(f(l1) == 1u); - mln_assertion(f(l255) == 255u); - mln_assertion(f(l256) == 1u); - mln_assertion(f(l510) == 255u); - mln_assertion(f(l511) == 1u); + } } + + +# include <mln/fun/vv2b/eq.hh> +# include <mln/fun/vv2b/ge.hh> +# include <mln/fun/vv2b/gt.hh> +# include <mln/fun/vv2b/implies.hh> +# include <mln/fun/vv2b/le.hh> +# include <mln/fun/vv2b/lt.hh> + +#endif // ! MLN_FUN_VV2B_ALL_HH + diff --git a/milena/mln/trait/next/solve.hh b/milena/mln/trait/next/solve.hh index 3184ddd..e19c758 100644 --- a/milena/mln/trait/next/solve.hh +++ b/milena/mln/trait/next/solve.hh @@ -1,4 +1,5 @@ -// Copyright (C) 2006, 2008 EPITA Research and Development Laboratory +// Copyright (C) 2006, 2008, 2009 EPITA Research and Development +// Laboratory (LRDE) // // This file is part of the Olena Library. This library is free // software; you can redistribute it and/or modify it under the terms @@ -28,14 +29,10 @@ #ifndef MLN_TRAIT_NEXT_SOLVE_HH # define MLN_TRAIT_NEXT_SOLVE_HH -/*! - * \file mln/trait/next/solve.hh - * - * \brief FIXME - * - * - */ - +/// \file mln/trait/next/solve.hh +/// +/// FIXME + # include <mln/core/category.hh> # include <mln/metal/equal.hh> # include <mln/metal/if.hh> diff --git a/milena/mln/trait/next/solve_proxy.hh b/milena/mln/trait/next/solve_proxy.hh index 0d123a5..1e1e7b6 100644 --- a/milena/mln/trait/next/solve_proxy.hh +++ b/milena/mln/trait/next/solve_proxy.hh @@ -28,10 +28,10 @@ #ifndef MLN_TRAIT_NEXT_SOLVE_PROXY_HH # define MLN_TRAIT_NEXT_SOLVE_PROXY_HH -/*! \file mln/trait/next/solve_proxy.hh - * - * \brief Proxy support for "next" trait solver. - */ +/// \file mln/trait/next/solve_proxy.hh +/// +/// Proxy support for "next" trait solver. + # include <mln/core/concept/object.hh> # include <mln/core/concept/proxy.hh> @@ -50,6 +50,7 @@ namespace mln // Needed by mln_trait_nbinary. template < typename Name, typename L_, typename R_ > struct solve_binary; + template < typename Name, typename T_ > struct solve_unary; diff --git a/milena/tests/fun/v2v/wrap.cc b/milena/tests/fun/v2v/wrap.cc index 78d339a..54c7c14 100644 --- a/milena/tests/fun/v2v/wrap.cc +++ b/milena/tests/fun/v2v/wrap.cc @@ -25,11 +25,11 @@ // reasons why the executable file might be covered by the GNU General // Public License. -/// \file tests/fun/l2l/wrap.cc +/// \file tests/fun/v2v/wrap.cc /// -/// Test on mln::fun::l2l::wrap. +/// Test on mln::fun::v2v::wrap. -#include <mln/fun/l2l/wrap.hh> +#include <mln/fun/v2v/wrap.hh> #include <mln/value/int_u8.hh> #include <mln/value/label_16.hh> @@ -39,7 +39,7 @@ int main() { using namespace mln; - fun::l2l::wrap<value::int_u8> f; + fun::v2v::wrap<value::int_u8> f; value::label_16 l0 = 0, diff --git a/milena/tests/unit_test/unit-tests.mk b/milena/tests/unit_test/unit-tests.mk index b276d8b..6869395 100644 --- a/milena/tests/unit_test/unit-tests.mk +++ b/milena/tests/unit_test/unit-tests.mk @@ -49,6 +49,7 @@ mln_literal_origin \ mln_literal_grays \ mln_literal_all \ mln_literal_colors \ +mln_literal_identity \ mln_literal_black \ mln_literal_one \ mln_literal_min \ @@ -235,6 +236,7 @@ mln_fun_spe_binary \ mln_fun_spe_unary \ mln_fun_unary_param \ mln_fun_v2w_w2v_norm \ +mln_fun_v2w_w2v_all \ mln_fun_p2v_ternary \ mln_fun_p2v_iota \ mln_fun_p2v_elifs \ @@ -270,10 +272,14 @@ mln_fun_v2v_wrap \ mln_fun_v2v_enc \ mln_fun_v2v_projection \ mln_fun_v2v_convert \ +mln_fun_v2v_hsl_to_rgb \ +mln_fun_v2v_hsi_to_rgb \ mln_fun_v2v_essential \ +mln_fun_v2w2v_all \ mln_fun_v2w2v_cos \ mln_fun_unary \ mln_fun_vv2b_implies \ +mln_fun_vv2b_all \ mln_fun_vv2b_le \ mln_fun_vv2b_gt \ mln_fun_vv2b_ge \ @@ -418,6 +424,7 @@ mln_accu_site_set_all \ mln_accu_site_set_essential \ mln_accu_stat_variance \ mln_accu_stat_deviation \ +mln_accu_stat_var \ mln_accu_max \ mln_accu_lor \ mln_accu_rank \ @@ -466,6 +473,7 @@ mln_accu_image_all \ mln_accu_image_set_value \ mln_accu_image_take \ mln_accu_image_take_as_init \ +mln_accu_image_take_n_times \ mln_accu_image_essential \ mln_accu_center \ mln_accu_line \ @@ -1199,6 +1207,7 @@ mln_border_duplicate \ mln_border_find \ mln_border_thickness \ mln_border_all \ +mln_border_resize_equal \ mln_border_mirror \ mln_border_get \ mln_border_equalize \ @@ -1258,6 +1267,7 @@ mln_literal_origin_SOURCES = mln_literal_origin.cc mln_literal_grays_SOURCES = mln_literal_grays.cc mln_literal_all_SOURCES = mln_literal_all.cc mln_literal_colors_SOURCES = mln_literal_colors.cc +mln_literal_identity_SOURCES = mln_literal_identity.cc mln_literal_black_SOURCES = mln_literal_black.cc mln_literal_one_SOURCES = mln_literal_one.cc mln_literal_min_SOURCES = mln_literal_min.cc @@ -1444,6 +1454,7 @@ mln_fun_spe_binary_SOURCES = mln_fun_spe_binary.cc mln_fun_spe_unary_SOURCES = mln_fun_spe_unary.cc mln_fun_unary_param_SOURCES = mln_fun_unary_param.cc mln_fun_v2w_w2v_norm_SOURCES = mln_fun_v2w_w2v_norm.cc +mln_fun_v2w_w2v_all_SOURCES = mln_fun_v2w_w2v_all.cc mln_fun_p2v_ternary_SOURCES = mln_fun_p2v_ternary.cc mln_fun_p2v_iota_SOURCES = mln_fun_p2v_iota.cc mln_fun_p2v_elifs_SOURCES = mln_fun_p2v_elifs.cc @@ -1479,10 +1490,14 @@ mln_fun_v2v_wrap_SOURCES = mln_fun_v2v_wrap.cc mln_fun_v2v_enc_SOURCES = mln_fun_v2v_enc.cc mln_fun_v2v_projection_SOURCES = mln_fun_v2v_projection.cc mln_fun_v2v_convert_SOURCES = mln_fun_v2v_convert.cc +mln_fun_v2v_hsl_to_rgb_SOURCES = mln_fun_v2v_hsl_to_rgb.cc +mln_fun_v2v_hsi_to_rgb_SOURCES = mln_fun_v2v_hsi_to_rgb.cc mln_fun_v2v_essential_SOURCES = mln_fun_v2v_essential.cc +mln_fun_v2w2v_all_SOURCES = mln_fun_v2w2v_all.cc mln_fun_v2w2v_cos_SOURCES = mln_fun_v2w2v_cos.cc mln_fun_unary_SOURCES = mln_fun_unary.cc mln_fun_vv2b_implies_SOURCES = mln_fun_vv2b_implies.cc +mln_fun_vv2b_all_SOURCES = mln_fun_vv2b_all.cc mln_fun_vv2b_le_SOURCES = mln_fun_vv2b_le.cc mln_fun_vv2b_gt_SOURCES = mln_fun_vv2b_gt.cc mln_fun_vv2b_ge_SOURCES = mln_fun_vv2b_ge.cc @@ -1627,6 +1642,7 @@ mln_accu_site_set_all_SOURCES = mln_accu_site_set_all.cc mln_accu_site_set_essential_SOURCES = mln_accu_site_set_essential.cc mln_accu_stat_variance_SOURCES = mln_accu_stat_variance.cc mln_accu_stat_deviation_SOURCES = mln_accu_stat_deviation.cc +mln_accu_stat_var_SOURCES = mln_accu_stat_var.cc mln_accu_max_SOURCES = mln_accu_max.cc mln_accu_lor_SOURCES = mln_accu_lor.cc mln_accu_rank_SOURCES = mln_accu_rank.cc @@ -1675,6 +1691,7 @@ mln_accu_image_all_SOURCES = mln_accu_image_all.cc mln_accu_image_set_value_SOURCES = mln_accu_image_set_value.cc mln_accu_image_take_SOURCES = mln_accu_image_take.cc mln_accu_image_take_as_init_SOURCES = mln_accu_image_take_as_init.cc +mln_accu_image_take_n_times_SOURCES = mln_accu_image_take_n_times.cc mln_accu_image_essential_SOURCES = mln_accu_image_essential.cc mln_accu_center_SOURCES = mln_accu_center.cc mln_accu_line_SOURCES = mln_accu_line.cc @@ -2408,6 +2425,7 @@ mln_border_duplicate_SOURCES = mln_border_duplicate.cc mln_border_find_SOURCES = mln_border_find.cc mln_border_thickness_SOURCES = mln_border_thickness.cc mln_border_all_SOURCES = mln_border_all.cc +mln_border_resize_equal_SOURCES = mln_border_resize_equal.cc mln_border_mirror_SOURCES = mln_border_mirror.cc mln_border_get_SOURCES = mln_border_get.cc mln_border_equalize_SOURCES = mln_border_equalize.cc -- 1.5.6.5