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