Olena-patches
Threads by month
- ----- 2025 -----
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
December 2008
- 12 participants
- 201 discussions
* headers.mk: Update distributed headers list.
* mln/make/image.hh,
* mln/make/image2d.hh,
* mln/fun/v2v/convert.hh,
* mln/core/image/interpolated.hh,
* mln/convert/from_to.hh: update comments.
* mln/core/image/graph_window_piter.hh,
* mln/core/internal/graph_psite_base.hh,
* mln/core/site_set/p_graph_piter.hh: unify the hook returning the
underlying element of these piters/psite.
* mln/fun/x2v/bilinear.hh: Fix a wrong namespace.
* mln/value/stack.hh: add missing init_ member.
* tests/core/image/Makefile.am: re-enable interpolated test.
* tests/fun/x2x/rotation.cc,
* tests/core/image/interpolated.cc: Fix wrong template arguments.
* tests/core/other/graph_elt_neighborhood.cc,
* tests/core/other/graph_elt_window.cc,
* tests/core/other/line_graph_elt_neighborhood.cc,
* tests/core/other/line_graph_elt_window.cc: make them compile and
write a real test.
* tests/fun/x2x/Makefile.am: re-enable rotation test.
* tests/labeling/compute.cc: rename label type.
* tests/unit_test/Makefile.am,
* tests/unit_test/mln_core_concept_all.cc,
* tests/unit_test/mln_core_site_set_operators.cc: update unit tests.
---
milena/ChangeLog | 40 +
milena/headers.mk | 4 +-
milena/mln/convert/from_to.hh | 20 +-
milena/mln/core/image/graph_window_piter.hh | 2 +-
milena/mln/core/image/interpolated.hh | 26 +-
milena/mln/core/internal/graph_psite_base.hh | 13 +-
milena/mln/core/site_set/p_graph_piter.hh | 4 +-
milena/mln/fun/v2v/convert.hh | 14 +-
milena/mln/fun/x2v/bilinear.hh | 24 +-
milena/mln/make/image.hh | 36 +-
milena/mln/make/image2d.hh | 12 +-
milena/mln/value/stack.hh | 51 +-
milena/tests/core/image/Makefile.am | 4 +-
milena/tests/core/image/interpolated.cc | 21 +-
milena/tests/core/other/graph_elt_neighborhood.cc | 30 +-
milena/tests/core/other/graph_elt_window.cc | 24 +-
.../core/other/line_graph_elt_neighborhood.cc | 31 +-
milena/tests/core/other/line_graph_elt_window.cc | 19 +-
milena/tests/fun/x2x/Makefile.am | 4 +-
milena/tests/fun/x2x/rotation.cc | 7 +-
milena/tests/labeling/compute.cc | 8 +-
milena/tests/unit_test/Makefile.am | 3698 ++++++++++----------
milena/tests/unit_test/mln_core_concept_all.cc | 8 +
.../tests/unit_test/mln_core_site_set_operators.cc | 8 +
24 files changed, 2090 insertions(+), 2018 deletions(-)
create mode 100644 milena/tests/unit_test/mln_core_concept_all.cc
create mode 100644 milena/tests/unit_test/mln_core_site_set_operators.cc
diff --git a/milena/ChangeLog b/milena/ChangeLog
index 700adb2..6a90c97 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,5 +1,45 @@
2008-12-09 Guillaume Lazzara <z(a)lrde.epita.fr>
+ Fix various tests.
+
+ * headers.mk: Update distributed headers list.
+
+ * mln/make/image.hh,
+ * mln/make/image2d.hh,
+ * mln/fun/v2v/convert.hh,
+ * mln/core/image/interpolated.hh,
+ * mln/convert/from_to.hh: update comments.
+
+ * mln/core/image/graph_window_piter.hh,
+ * mln/core/internal/graph_psite_base.hh,
+ * mln/core/site_set/p_graph_piter.hh: unify the hook returning the
+ underlying element of these piters/psite.
+
+ * mln/fun/x2v/bilinear.hh: Fix a wrong namespace.
+
+ * mln/value/stack.hh: add missing init_ member.
+
+ * tests/core/image/Makefile.am: re-enable interpolated test.
+
+ * tests/fun/x2x/rotation.cc,
+ * tests/core/image/interpolated.cc: Fix wrong template arguments.
+
+ * tests/core/other/graph_elt_neighborhood.cc,
+ * tests/core/other/graph_elt_window.cc,
+ * tests/core/other/line_graph_elt_neighborhood.cc,
+ * tests/core/other/line_graph_elt_window.cc: make them compile and
+ write a real test.
+
+ * tests/fun/x2x/Makefile.am: re-enable rotation test.
+
+ * tests/labeling/compute.cc: rename label type.
+
+ * tests/unit_test/Makefile.am,
+ * tests/unit_test/mln_core_concept_all.cc,
+ * tests/unit_test/mln_core_site_set_operators.cc: update unit tests.
+
+2008-12-09 Guillaume Lazzara <z(a)lrde.epita.fr>
+
Fix a warning during configure.
* Makefile.am: use = instead of +=.
diff --git a/milena/headers.mk b/milena/headers.mk
index e87c752..f88845e 100644
--- a/milena/headers.mk
+++ b/milena/headers.mk
@@ -229,7 +229,6 @@ mln/convert/to_fun.hh \
mln/convert/all.hh \
mln/convert/to_window.hh \
mln/convert/from_to.hh \
-mln/convert/to_std_set.hh \
mln/convert/impl/from_value_to_value.hh \
mln/convert/impl/all.hh \
mln/convert/impl/from_image_to_site_set.hh \
@@ -673,6 +672,7 @@ mln/core/site_set/p_faces.hh \
mln/core/site_set/p_set.hh \
mln/core/site_set/p_queue.hh \
mln/core/site_set/p_if.hh \
+mln/core/site_set/operators.hh \
mln/core/site_set/p_mutable_array_of.hh \
mln/core/site_set/p_edges_psite.hh \
mln/core/site_set/complex_psite.hh \
@@ -812,6 +812,7 @@ mln/core/concept/value_set.hh \
mln/core/concept/proxy.hh \
mln/core/concept/site.hh \
mln/core/concept/weighted_window.hh \
+mln/core/concept/all.hh \
mln/core/concept/gpoint.hh \
mln/core/concept/site_iterator.hh \
mln/core/concept/point.hh \
@@ -997,7 +998,6 @@ mln/set/all.hh \
mln/set/get.hh \
mln/set/sym_diff.hh \
mln/set/has.hh \
-mln/set/is_subset_of.hh \
mln/set/diff.hh \
mln/set/compute.hh \
mln/set/essential.hh \
diff --git a/milena/mln/convert/from_to.hh b/milena/mln/convert/from_to.hh
index 95af453..877ac7a 100644
--- a/milena/mln/convert/from_to.hh
+++ b/milena/mln/convert/from_to.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2008 EPITA Research and Development Laboratory
+// Copyright (C) 2008 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 +28,14 @@
#ifndef MLN_CONVERT_FROM_TO_HH
# define MLN_CONVERT_FROM_TO_HH
-/*! \file mln/convert/from_to.hh
- *
- * \brief General conversion procedure between two objects.
- *
- * \todo Test the effectiveness of guards.
- * \todo Add fwd decls.
- * \todo Dispatch code in appropriate files.
- */
+/// \file mln/convert/from_to.hh
+///
+/// General conversion procedure between two objects.
+///
+/// \todo Test the effectiveness of guards.
+/// \todo Add fwd decls.
+/// \todo Dispatch code in appropriate files.
+
# include <mln/core/concept/object.hh>
# include <mln/core/concept/gpoint.hh>
@@ -61,7 +61,6 @@ namespace mln
void
from_to(const Object<F>& from, Object<T>& to);
-
template <typename T>
void
from_to(const float& from, Object<T>& to);
@@ -110,7 +109,6 @@ namespace mln
mln::convert::impl::from_value_to_value(from, to);
}
-
// float -> Object
template <typename T>
inline
diff --git a/milena/mln/core/image/graph_window_piter.hh b/milena/mln/core/image/graph_window_piter.hh
index 16213e8..e4186f3 100644
--- a/milena/mln/core/image/graph_window_piter.hh
+++ b/milena/mln/core/image/graph_window_piter.hh
@@ -165,7 +165,7 @@ namespace mln
graph_window_piter<S, W, I>::center_at(const Pref& c)
{
super_::center_at(c);
- iter_.center_at(c.hook_iter_());
+ iter_.center_at(c.hook_elt_());
}
template <typename S, typename W, typename I>
diff --git a/milena/mln/core/image/interpolated.hh b/milena/mln/core/image/interpolated.hh
index f3e85d8..1d6dff1 100644
--- a/milena/mln/core/image/interpolated.hh
+++ b/milena/mln/core/image/interpolated.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2007, 2008 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,13 +29,13 @@
#ifndef MLN_CORE_IMAGE_INTERPOLATED_HH
# define MLN_CORE_IMAGE_INTERPOLATED_HH
-/*! \file mln/core/image/interpolated.hh
- *
- * \brief Definition of a morpher that makes an image become readable
- * with floating coordinates.
- *
- * \todo think having has(algebra::vec v) as a method
- */
+/// \file mln/core/image/interpolated.hh
+///
+/// Definition of a morpher that makes an image become readable
+/// with floating coordinates.
+///
+/// \todo think having has(algebra::vec v) as a method
+
# include <cmath>
@@ -45,13 +46,13 @@
namespace mln
{
- // Fwd decl.
+ // Forward declaration.
template <typename I, template <class> class F> struct interpolated;
namespace internal
{
- /// Data structure for \c mln::interpolated<I>.
+ /// Data structure for \c mln::interpolated<I, F>.
template <typename I, template <class> class F>
struct data< interpolated<I,F> >
{
@@ -77,9 +78,8 @@ namespace mln
} // end of namespace mln::trait
- /*! \brief Morpher that makes underlaying image being accessed with floating coordinate.
- *
- */
+ /// Morpher that makes underlaying image being accessed with floating coordinate.
+ ///
template <typename I, template <class> class F>
struct interpolated :
public mln::internal::image_identity< I, mln_pset(I), interpolated<I,F> >
diff --git a/milena/mln/core/internal/graph_psite_base.hh b/milena/mln/core/internal/graph_psite_base.hh
index c1fe14d..cbff5f0 100644
--- a/milena/mln/core/internal/graph_psite_base.hh
+++ b/milena/mln/core/internal/graph_psite_base.hh
@@ -99,6 +99,9 @@ namespace mln
/// Explicit conversion towards the graph element (vertex or edge).
const typename S::graph_element& element() const;
+ /// Return the underlying element.
+ const typename S::graph_element& hook_elt_() const;
+
protected:
/// Constructors.
@@ -121,7 +124,7 @@ namespace mln
/* FIXME: Shouldn't those comparisons be part of a much general
mechanism? */
-
+
/// Comparison of two mln::graph_psite_base<S,E> instances.
/// \{
/// \brief Is \a lhs equal to \a rhs?
@@ -280,6 +283,14 @@ namespace mln
return elt_;
}
+ template <typename S, typename E>
+ inline
+ const typename S::graph_element&
+ graph_psite_base<S,E>::hook_elt_() const
+ {
+ return elt_;
+ }
+
/*--------------.
| Comparisons. |
diff --git a/milena/mln/core/site_set/p_graph_piter.hh b/milena/mln/core/site_set/p_graph_piter.hh
index 2b02ed4..d91a2cb 100644
--- a/milena/mln/core/site_set/p_graph_piter.hh
+++ b/milena/mln/core/site_set/p_graph_piter.hh
@@ -86,7 +86,7 @@ namespace mln
const typename S::graph_t& graph() const;
/// Return the underlying iterator.
- const iter& hook_iter_() const;
+ const iter& hook_elt_() const;
/// Convert towards the graph element id.
operator unsigned() const;
@@ -185,7 +185,7 @@ namespace mln
template <typename S, typename I>
inline
const I&
- p_graph_piter<S,I>::hook_iter_() const
+ p_graph_piter<S,I>::hook_elt_() const
{
return iter_;
}
diff --git a/milena/mln/fun/v2v/convert.hh b/milena/mln/fun/v2v/convert.hh
index 1b014e3..1b2dcdf 100644
--- a/milena/mln/fun/v2v/convert.hh
+++ b/milena/mln/fun/v2v/convert.hh
@@ -1,4 +1,5 @@
// Copyright (C) 2008 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,13 +29,12 @@
#ifndef MLN_FUN_V2V_CONVERT_HH
# define MLN_FUN_V2V_CONVERT_HH
-/*! \file mln/fun/v2v/convert.hh
- *
- * \brief FIXME.
- *
- * \todo The function is intrisically meta; how to handle that
- * particular case?
- */
+/// \file mln/fun/v2v/convert.hh
+///
+/// FIXME.
+///
+/// \todo The function is intrisically meta; how to handle that
+/// particular case?
# include <mln/core/concept/function.hh>
# include <mln/convert/to.hh>
diff --git a/milena/mln/fun/x2v/bilinear.hh b/milena/mln/fun/x2v/bilinear.hh
index e1e577b..b997da2 100644
--- a/milena/mln/fun/x2v/bilinear.hh
+++ b/milena/mln/fun/x2v/bilinear.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2008 EPITA Research and Development Laboratory
+// Copyright (C) 2008 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,8 +25,8 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-#ifndef MLN_FUN_X2X_BILINEAR_HH
-# define MLN_FUN_X2X_BILINEAR_HH
+#ifndef MLN_FUN_X2V_BILINEAR_HH
+# define MLN_FUN_X2V_BILINEAR_HH
# include <mln/core/image/image2d.hh>
# include <mln/core/concept/function.hh>
@@ -34,10 +34,9 @@
# include <mln/convert/to.hh>
# include <mln/algebra/vec.hh>
-/*! \file mln/fun/x2v/bilinear.hh
- *
- * \brief Define a bilinear interpolation of values from an underlying image
- */
+/// \file mln/fun/x2v/bilinear.hh
+///
+/// Define a bilinear interpolation of values from an underlying image
namespace mln
{
@@ -45,12 +44,11 @@ namespace mln
namespace fun
{
- namespace x2x
+ namespace x2v
{
- /*! \brief Represent a bilinear interolation of values from an underlying image
- *
- */
+ /// Represent a bilinear interolation of values from an underlying image
+ ///
template < typename I >
struct bilinear
: public fun::internal::selector_<const algebra::vec<3,float>,
@@ -125,11 +123,11 @@ namespace mln
# endif // ! MLN_INCLUDE_ONLY
- } // end of namespace mln::fun::x2x
+ } // end of namespace mln::fun::x2v
} // end of namespace mln::fun
} // end of namespace mln
-#endif // ! MLN_FUN_X2X_BILINEAR_HH
+#endif // ! MLN_FUN_X2V_BILINEAR_HH
diff --git a/milena/mln/make/image.hh b/milena/mln/make/image.hh
index 4aa7817..d846170 100644
--- a/milena/mln/make/image.hh
+++ b/milena/mln/make/image.hh
@@ -45,32 +45,32 @@ namespace mln
namespace make
{
- /*! \brief Create an image1d from an 1D array of values.
- *
- * \param[in] values 1D array.
- *
- * \return A 1D image.
- */
+ /// Create an image1d from an 1D array of values.
+ ///
+ /// \param[in] values 1D array.
+ ///
+ /// \return A 1D image.
+ ///
template <typename V, unsigned L>
mln::image1d<V> image(V (&values)[L]);
- /*! \brief Create an image2d from an 2D array of values.
- *
- * \param[in] values 2D array.
- *
- * \return A 2D image.
- */
+ /// Create an image2d from an 2D array of values.
+ ///
+ /// \param[in] values 2D array.
+ ///
+ /// \return A 2D image.
+ ///
template <typename V, unsigned R, unsigned C>
mln::image2d<V> image(V (&values)[R][C]);
- /*! \brief Create an image3d from an 3D array of values.
- *
- * \param[in] values 3D array.
- *
- * \return A 3D image.
- */
+ /// Create an image3d from an 3D array of values.
+ ///
+ /// \param[in] values 3D array.
+ ///
+ /// \return A 3D image.
+ ///
template <typename V, unsigned S, unsigned R, unsigned C>
mln::image3d<V> image(V (&values)[S][R][C]);
diff --git a/milena/mln/make/image2d.hh b/milena/mln/make/image2d.hh
index 43bb3b5..4a03100 100644
--- a/milena/mln/make/image2d.hh
+++ b/milena/mln/make/image2d.hh
@@ -41,12 +41,12 @@ namespace mln
namespace make
{
- /*! \brief Create an image2d from an 2D array of values.
- *
- * \param[in] values 2D array.
- *
- * \return A 2D image.
- */
+ /// Create an image2d from an 2D array of values.
+ ///
+ /// \param[in] values 2D array.
+ ///
+ /// \return A 2D image.
+ ///
template <typename V, unsigned S>
mln::image2d<V>
image2d(V (&values)[S]);
diff --git a/milena/mln/value/stack.hh b/milena/mln/value/stack.hh
index 882a3b2..877f74c 100644
--- a/milena/mln/value/stack.hh
+++ b/milena/mln/value/stack.hh
@@ -29,10 +29,9 @@
#ifndef MLN_VALUE_STACK_HH
# define MLN_VALUE_STACK_HH
-/*! \file mln/value/stack.hh
- *
- * \brief Definition of the stack image type.
- */
+/// \file mln/value/stack.hh
+///
+/// Definition of the stack image type.
# include <mln/core/internal/image_value_morpher.hh>
@@ -44,16 +43,15 @@
namespace mln
{
- // Fwd decl.
+ // Forward declaration.
namespace value { template <unsigned n, typename I> struct stack_image; }
namespace internal
{
- /*! data structure for stack_image.
- *
- */
+ /// data structure for stack_image.
+ ///
template <unsigned n, typename I>
struct data< value::stack_image<n, I> >
{
@@ -132,19 +130,19 @@ namespace mln
namespace value
{
- /*! \brief Stack image class.
- *
- * mln::value::stack_image stores a vector of n images of the same
- * domain.
- *
- * The parameter \c n is the number of images, \c I is the type of
- * a stack element. Acces a value will compute a vector which
- * contains n coordinates :
- * [stack[0](p),
- * stack[1](p),
- * ... ,
- * stack[n](p)]
- */
+ /// Stack image class.
+ ///
+ /// mln::value::stack_image stores a vector of n images of the same
+ /// domain.
+ ///
+ /// The parameter \c n is the number of images, \c I is the type of
+ /// a stack element. Acces a value will compute a vector which
+ /// contains n coordinates :
+ /// [stack[0](p),
+ /// stack[1](p),
+ /// ... ,
+ /// stack[n](p)]
+ ///
template <unsigned n, typename I>
struct stack_image
: public mln::internal::image_value_morpher< I,
@@ -180,6 +178,8 @@ namespace mln
stack_image();
/// \}
+ /// Initialize an empty image.
+ void init_(const algebra::vec<n,I>& imas);
/// Test if this image has been initialized.
bool has_data() const;
@@ -193,7 +193,6 @@ namespace mln
void write_(const psite& p, const value& v);
};
-
/// \{ Shortcut to build a stack with two images.
template <typename I>
stack_image<2, const I>
@@ -238,6 +237,14 @@ namespace mln
inline
stack_image<n,I>::stack_image(const algebra::vec<n,I>& imas)
{
+ init_(imas);
+ }
+
+ template <unsigned n, typename I>
+ inline
+ void
+ stack_image<n,I>::init_(const algebra::vec<n,I>& imas)
+ {
this->data_ = new mln::internal::data< stack_image<n, I> >(imas);
for (unsigned i = 0; i < n; ++i)
{
diff --git a/milena/tests/core/image/Makefile.am b/milena/tests/core/image/Makefile.am
index 0e8f84b..7d60304 100644
--- a/milena/tests/core/image/Makefile.am
+++ b/milena/tests/core/image/Makefile.am
@@ -16,7 +16,7 @@ check_PROGRAMS = \
## image2d_h \
image3d \
image_if \
-## interpolated \
+ interpolated \
line_graph_image \
## mono_obased_rle_image \
## mono_rle_image \
@@ -42,7 +42,7 @@ image2d_SOURCES = image2d.cc
##image2d_h_SOURCES = image2d_h.cc
image3d_SOURCES = image3d.cc
image_if_SOURCES = image_if.cc
-##interpolated_SOURCES = interpolated.cc
+interpolated_SOURCES = interpolated.cc
line_graph_image_SOURCES = line_graph_image.cc
##mono_obased_rle_image_SOURCES = mono_obased_rle_image.cc
##mono_rle_image_SOURCES = mono_rle_image.cc
diff --git a/milena/tests/core/image/interpolated.cc b/milena/tests/core/image/interpolated.cc
index e05f07f..e4333f9 100644
--- a/milena/tests/core/image/interpolated.cc
+++ b/milena/tests/core/image/interpolated.cc
@@ -1,4 +1,5 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2007, 2008 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,10 +26,9 @@
// reasons why the executable file might be covered by the GNU General
// Public License.
-/*! \file tests/core/image/interpolated.cc
- *
- * \brief Tests on mln::interpolated.
- */
+/// \file tests/core/image/interpolated.cc
+///
+/// Tests on mln::interpolated.
#include <iostream>
@@ -41,24 +41,21 @@
#include <mln/debug/println.hh>
+#include <mln/fun/x2v/bilinear.hh>
+
int main()
{
using namespace mln;
- const unsigned nrows = 4;
- const unsigned ncols = 4;
- const unsigned border = 4;
-
- image2d<float> f(nrows, ncols, border);
float tab[] = {1., 3., 5., 7.,
4., 7., 10., 13.,
7., 11., 15., 19.,
10., 15., 20., 25.};
- level::fill(f, tab);
+ image2d<float> f = make::image2d(tab);
- interpolated< image2d<float> > inter(f);
+ interpolated<image2d<float>, fun::x2v::bilinear> inter(f);
algebra::vec<2, float> v1 = make::vec(2.3, 0.6);
algebra::vec<2, float> v2 = make::vec(3.2, 1.8);
diff --git a/milena/tests/core/other/graph_elt_neighborhood.cc b/milena/tests/core/other/graph_elt_neighborhood.cc
index 54d6b94..4de2216 100644
--- a/milena/tests/core/other/graph_elt_neighborhood.cc
+++ b/milena/tests/core/other/graph_elt_neighborhood.cc
@@ -26,21 +26,22 @@
// Public License.
/// \file tests/core/other/graph_elt_neighborhood.cc
-/// \brief Tests on mln::graph_elt_neighborhood.
+///
+/// Tests on mln::graph_elt_neighborhood.
#include <iostream>
#include <vector>
+#include <mln/core/neighb.hh>
#include <mln/core/alias/point2d.hh>
-#include <mln/core/image/graph_elt_neighborhood.hh>
+#include <mln/core/image/graph_elt_window.hh>
#include <mln/core/site_set/p_vertices.hh>
#include <mln/util/graph.hh>
-#include <mln/debug/iota.hh>
-#include <mln/debug/println.hh>
-
+unsigned fwd_neighb[] = { 0, 2, 3 };
+unsigned bkd_neighb[] = { 3, 2, 0 };
int main()
{
@@ -77,9 +78,11 @@ int main()
// Edges.
typedef mln::util::graph G;
G g;
+
// Populate the graph with vertices.
for (unsigned i = 0; i < points.size(); ++i)
g.add_vertex ();
+
// Populate the graph with edges.
g.add_edge(0, 1);
g.add_edge(1, 2);
@@ -92,20 +95,23 @@ int main()
`-------------------------*/
// Graph psite set.
- p_vertices<G, F> pg(g, points);
+ typedef p_vertices<G, F> pv_t;
+ pv_t pg(g, points);
+
// Graph point site.
- p_vertices_psite<G, F> p(pg, 1);
+ mln_psite_(pv_t) p(pg, 1);
+
// ``Sliding'' neighborhood of a psite of PG.
- typedef graph_elt_neighborhood<G, F> nbh_t;
+ typedef neighb< graph_elt_window<G, F> > nbh_t;
nbh_t nbh;
+ unsigned i = 0;
mln_fwd_niter_(nbh_t) fq(nbh, p);
for_all(fq)
- std::cout << fq << " ";
- std::cout << std::endl;
+ mln_assertion(fq.element().id() == fwd_neighb[i++]);
+ i = 0;
mln_bkd_niter_(nbh_t) bq(nbh, p);
for_all(bq)
- std::cout << bq << " ";
- std::cout << std::endl;
+ mln_assertion(bq.element().id() == bkd_neighb[i++]);
}
diff --git a/milena/tests/core/other/graph_elt_window.cc b/milena/tests/core/other/graph_elt_window.cc
index a006543..46da228 100644
--- a/milena/tests/core/other/graph_elt_window.cc
+++ b/milena/tests/core/other/graph_elt_window.cc
@@ -26,7 +26,8 @@
// Public License.
/// \file tests/core/other/graph_elt_window.cc
-/// \brief Tests on mln::graph_elt_window.
+///
+/// Tests on mln::graph_elt_window.
#include <iostream>
@@ -38,8 +39,8 @@
#include <mln/util/graph.hh>
-#include <mln/debug/iota.hh>
-#include <mln/debug/println.hh>
+unsigned fwd_neighb[] = { 0, 2, 3 };
+unsigned bkd_neighb[] = { 3, 2, 0 };
int main()
@@ -77,9 +78,11 @@ int main()
// Edges.
typedef mln::util::graph G;
G g;
+
// Populate the graph with vertices.
for (unsigned i = 0; i < points.size(); ++i)
g.add_vertex ();
+
// Populate the graph with edges.
g.add_edge(0, 1);
g.add_edge(1, 2);
@@ -92,20 +95,23 @@ int main()
`------------------*/
// Graph psite set.
- p_vertices<G, F> pg(g, points);
+ typedef p_vertices<G, F> pg_t;
+ pg_t pg(g, points);
+
// Graph point site.
- p_vertices_psite<G, F> p(pg, 1);
+ mln_psite_(pg_t) p(pg, 1);
+
// ``Sliding'' window of a psite of PG.
typedef graph_elt_window<G, F> win_t;
win_t win;
+ unsigned i = 0;
mln_fwd_qiter_(win_t) fq(win, p);
for_all(fq)
- std::cout << fq << " ";
- std::cout << std::endl;
+ mln_assertion(fq.element().id() == fwd_neighb[i++]);
+ i = 0;
mln_bkd_qiter_(win_t) bq(win, p);
for_all(bq)
- std::cout << bq << " ";
- std::cout << std::endl;
+ mln_assertion(bq.element().id() == bkd_neighb[i++]);
}
diff --git a/milena/tests/core/other/line_graph_elt_neighborhood.cc b/milena/tests/core/other/line_graph_elt_neighborhood.cc
index 0b70ae8..2564c7d 100644
--- a/milena/tests/core/other/line_graph_elt_neighborhood.cc
+++ b/milena/tests/core/other/line_graph_elt_neighborhood.cc
@@ -26,18 +26,20 @@
// Public License.
/// \file tests/core/other/line_graph_elt_neighborhood.cc
-/// \brief Tests on mln::line_graph_elt_neighborhood.
+///
+/// Tests on mln::line_graph_elt_neighborhood.
#include <vector>
#include <mln/core/alias/point2d.hh>
-#include <mln/core/image/line_graph_elt_neighborhood.hh>
+#include <mln/core/neighb.hh>
#include <mln/core/site_set/p_edges.hh>
+#include <mln/core/image/line_graph_elt_window.hh>
#include <mln/util/graph.hh>
-#include <mln/debug/iota.hh>
-#include <mln/debug/println.hh>
+unsigned fwd_neighb[] = { 0, 2, 4 };
+unsigned bkd_neighb[] = { 4, 2, 0 };
int main()
@@ -54,7 +56,7 @@ int main()
0 1 2 3 4 0 1 2 3 4
.----------- .-----------
- | |
+ | |
0 | 0 2 0 | * *
1 | \ / | 1 | 0 1 |
2 | 1 | 2 | * 4
@@ -75,9 +77,11 @@ int main()
// Edges.
typedef mln::util::graph G;
G g;
+
// Populate the graph with vertices.
for (unsigned i = 0; i < points.size(); ++i)
g.add_vertex ();
+
// Populate the graph with edges.
g.add_edge(0, 1);
g.add_edge(1, 2);
@@ -90,20 +94,23 @@ int main()
`-------------------------*/
// Line graph psite set.
- p_edges<G, F> pe(g, points);
+ typedef p_edges<G, F> pe_t;
+ pe_t pe(g, points);
+
// Line graph point site.
- p_edges_psite<G, F> p(pe, 1);
+ mln_psite_(pe_t) p(pe, 1);
+
// ``Sliding'' neighborhood of a psite of PLG.
- typedef line_graph_elt_neighborhood<G, F> nbh_t;
+ typedef neighb< line_graph_elt_window<G, F> > nbh_t;
nbh_t nbh;
+ unsigned i = 0;
mln_fwd_niter_(nbh_t) fq(nbh, p);
for_all(fq)
- std::cout << fq << " ";
- std::cout << std::endl;
+ mln_assertion(fq.element().id() == fwd_neighb[i++]);
+ i = 0;
mln_bkd_niter_(nbh_t) bq(nbh, p);
for_all(bq)
- std::cout << bq << " ";
- std::cout << std::endl;
+ mln_assertion(bq.element().id() == bkd_neighb[i++]);
}
diff --git a/milena/tests/core/other/line_graph_elt_window.cc b/milena/tests/core/other/line_graph_elt_window.cc
index 81a0fa5..4792d67 100644
--- a/milena/tests/core/other/line_graph_elt_window.cc
+++ b/milena/tests/core/other/line_graph_elt_window.cc
@@ -26,18 +26,20 @@
// Public License.
/// \file tests/core/other/line_graph_elt_window.cc
-/// \brief Tests on mln::line_graph_elt_window.
+///
+/// Tests on mln::line_graph_elt_window.
#include <vector>
#include <mln/core/alias/point2d.hh>
-#include <mln/core/image/line_graph_elt_window.hh>
+#include <mln/core/neighb.hh>
#include <mln/core/site_set/p_edges.hh>
+#include <mln/core/image/line_graph_elt_window.hh>
#include <mln/util/graph.hh>
-#include <mln/debug/iota.hh>
-#include <mln/debug/println.hh>
+unsigned fwd_neighb[] = { 0, 2, 4 };
+unsigned bkd_neighb[] = { 4, 2, 0 };
int main()
@@ -97,13 +99,14 @@ int main()
typedef line_graph_elt_window<G, F> win_t;
win_t win;
+ unsigned i = 0;
mln_fwd_qiter_(win_t) fq(win, p);
for_all(fq)
- std::cout << fq << " ";
- std::cout << std::endl;
+ mln_assertion(fq.element().id() == fwd_neighb[i++]);
+ i = 0;
mln_bkd_qiter_(win_t) bq(win, p);
for_all(bq)
- std::cout << bq << " ";
- std::cout << std::endl;
+ mln_assertion(bq.element().id() == bkd_neighb[i++]);
+
}
diff --git a/milena/tests/fun/x2x/Makefile.am b/milena/tests/fun/x2x/Makefile.am
index 84d915e..a56a762 100644
--- a/milena/tests/fun/x2x/Makefile.am
+++ b/milena/tests/fun/x2x/Makefile.am
@@ -4,11 +4,11 @@ include $(top_srcdir)/milena/tests/tests.mk
check_PROGRAMS = \
composed \
-## rotation \
+ rotation \
translation
composed_SOURCES = composed.cc
-##rotation_SOURCES = rotation.cc
+rotation_SOURCES = rotation.cc
translation_SOURCES = translation.cc
TESTS = $(check_PROGRAMS)
diff --git a/milena/tests/fun/x2x/rotation.cc b/milena/tests/fun/x2x/rotation.cc
index 900bb96..85b9619 100644
--- a/milena/tests/fun/x2x/rotation.cc
+++ b/milena/tests/fun/x2x/rotation.cc
@@ -38,6 +38,7 @@
#include <mln/io/pgm/save.hh>
#include <mln/core/image/interpolated.hh>
#include <mln/make/vec.hh>
+#include <mln/fun/x2v/bilinear.hh>
#include "tests/data.hh"
@@ -55,15 +56,15 @@ int main()
io::pgm::load(lena, MLN_IMG_DIR "/lena.pgm");
image2d<int_u8> out(lena.domain());
- interpolated<image2d<int_u8> > inter(lena);
+ interpolated<image2d<int_u8>, fun::x2x::bilinear> inter(lena);
fun::x2x::rotation<2,float> rot1(0.1, axis);
- image2d<int_u8>::fwd_piter p(out.domain());
+ mln_piter_(image2d<int_u8>) p(out.domain());
for_all(p)
{
- algebra::vec<2,float> v = rot1.inv()((point2d::vec_t)(point2d)p);
+ algebra::vec<2,float> v = rot1.inv()(p.to_site().to_vec());
if (inter.has(v))
out(p) = inter(v);
else
diff --git a/milena/tests/labeling/compute.cc b/milena/tests/labeling/compute.cc
index 1d26ab1..ff3f549 100644
--- a/milena/tests/labeling/compute.cc
+++ b/milena/tests/labeling/compute.cc
@@ -42,7 +42,7 @@
int main()
{
using namespace mln;
- using value::label8;
+ using value::label_8;
using value::int_u8;
int_u8 vals[6][5] = {
@@ -55,7 +55,7 @@ int main()
};
image2d<int_u8> ima = make::image(vals);
- label8 lblvals[6][5] = {
+ label_8 lblvals[6][5] = {
{0, 1, 1, 0, 0},
{0, 1, 1, 0, 0},
{0, 0, 0, 0, 0},
@@ -63,8 +63,8 @@ int main()
{2, 0, 3, 3, 3},
{2, 0, 0, 0, 0}
};
- image2d<label8> lbl = make::image(lblvals);
- label8 nlabels = 3;
+ image2d<label_8> lbl = make::image(lblvals);
+ label_8 nlabels = 3;
accu::sum<int_u8> sum;
util::array<float> sums = labeling::compute(sum, ima, lbl, nlabels);
diff --git a/milena/tests/unit_test/Makefile.am b/milena/tests/unit_test/Makefile.am
index 408e5c2..d17cd67 100644
--- a/milena/tests/unit_test/Makefile.am
+++ b/milena/tests/unit_test/Makefile.am
@@ -3,2012 +3,1994 @@
include $(top_srcdir)/milena/tests/tests.mk
check_PROGRAMS = \
-mln_trace_quiet\
-mln_trace_resume\
+mln_histo_all\
+mln_histo_data\
+mln_histo_compute\
+mln_histo_essential\
+mln_geom_pmin_pmax\
+mln_geom_max_row\
+mln_geom_chamfer\
+mln_geom_min_row\
+mln_geom_seeds2tiling\
+mln_geom_size1d\
+mln_geom_all\
+mln_geom_size2d\
+mln_geom_max_ind\
+mln_geom_max_col\
+mln_geom_size3d\
+mln_geom_ninds\
+mln_geom_nslis\
+mln_geom_delta\
+mln_geom_resize\
+mln_geom_nsites\
+mln_geom_min_col\
+mln_geom_complex_geometry\
+mln_geom_ncols\
+mln_geom_nrows\
+mln_geom_min_ind\
+mln_geom_bbox\
+mln_geom_seeds2tiling_roundness\
+mln_geom_min_sli\
+mln_geom_essential\
+mln_geom_max_sli\
+mln_draw_box\
+mln_draw_all\
+mln_draw_plot\
+mln_draw_line\
+mln_draw_essential\
+mln_pw_image\
+mln_pw_all\
+mln_pw_value\
+mln_pw_cst\
+mln_pw_var\
+mln_pw_essential\
+mln_literal_zero\
+mln_literal_ops\
+mln_literal_origin\
+mln_literal_grays\
+mln_literal_all\
+mln_literal_colors\
+mln_literal_black\
+mln_literal_one\
+mln_literal_white\
+mln_literal_essential\
+mln_registration_get_rtransf\
+mln_registration_internal_rms\
+mln_registration_get_rot\
+mln_registration_all\
+mln_registration_multiscale\
+mln_registration_registration\
+mln_registration_essential\
+mln_registration_icp\
+mln_util_graph\
+mln_util_max\
+mln_util_lazy_set\
+mln_util_set\
+mln_util_tree_to_image\
+mln_util_lemmings\
+mln_util_greater_point\
+mln_util_internal_graph_iter_base\
+mln_util_internal_boost_graph_access\
+mln_util_internal_boost_graph_structure\
+mln_util_internal_graph_iter\
+mln_util_internal_graph_nbh_iter\
+mln_util_internal_vertex_impl\
+mln_util_internal_edge_impl\
+mln_util_internal_graph_base\
+mln_util_internal_boost_graph\
+mln_util_internal_graph_nbh_iter_base\
+mln_util_internal_boost_graph_property\
+mln_util_ord_pair\
+mln_util_edge\
+mln_util_all\
+mln_util_dindex\
+mln_util_tracked_ptr\
+mln_util_ignore\
+mln_util_greater_psite\
+mln_util_timer\
+mln_util_yes\
+mln_util_line_graph\
+mln_util_ord\
+mln_util_tree_fast_to_image\
+mln_util_tree\
+mln_util_index\
+mln_util_multi_site\
+mln_util_branch_iter\
+mln_util_branch_iter_ind\
+mln_util_tree_to_fast\
+mln_util_array\
+mln_util_vertex\
+mln_util_pix\
+mln_util_tree_fast\
+mln_util_site_pair\
+mln_util_nil\
+mln_util_eat\
+mln_util_essential\
+mln_tag_init\
+mln_tag_skeleton\
+mln_tag_all\
+mln_tag_essential\
mln_trace_entering\
mln_trace_all\
-mln_trace_stop\
-mln_trace_essential\
mln_trace_warning\
mln_trace_exiting\
-mln_tag_all\
-mln_tag_essential\
-mln_tag_init\
-mln_tag_skeleton\
+mln_trace_resume\
+mln_trace_quiet\
+mln_trace_stop\
+mln_trace_essential\
+mln_make_graph\
+mln_make_double_neighb2d\
+mln_make_dpoint2d_h\
mln_make_w_window\
+mln_make_image\
+mln_make_vec\
mln_make_all\
+mln_make_dual_neighb\
+mln_make_w_window3d\
+mln_make_mat\
mln_make_win_chamfer\
-mln_make_image\
-mln_make_box2d_h\
-mln_make_w_window_directional\
-mln_make_point2d_h\
-mln_make_+win_multiple\
+mln_make_w_window2d_int\
+mln_make_box1d\
mln_make_voronoi\
-mln_make_pix\
+mln_make_box2d\
mln_make_w_window2d\
+mln_make_box3d\
+mln_make_relabelfun\
+mln_make_pixel\
+mln_make_pix\
+mln_make_box2d_h\
mln_make_w_window1d\
-mln_make_graph\
-mln_make_dpoint2d_h\
-mln_make_w_window2d_int\
mln_make_image2d\
+mln_make_w_window_directional\
mln_make_w_window3d_int\
-mln_make_w_window3d\
mln_make_essential\
-mln_make_box1d\
-mln_make_relabelfun\
-mln_make_double_neighb2d\
mln_make_w_window1d_int\
-mln_make_dual_neighb\
-mln_make_pixel\
-mln_make_vec\
-mln_make_mat\
-mln_make_box2d\
-mln_make_box3d\
-mln_histo_all\
-mln_histo_data\
-mln_histo_essential\
-mln_histo_compute\
-mln_essential_2d\
+mln_make_point2d_h\
+mln_display_all\
+mln_display_essential\
+mln_extension_adjust\
+mln_extension_duplicate\
+mln_extension_adjust_duplicate\
+mln_extension_all\
+mln_extension_adjust_fill\
+mln_extension_fill\
+mln_extension_essential\
+mln_fun_p2b_chess\
+mln_fun_p2b_all\
+mln_fun_p2b_has\
+mln_fun_p2b_big_chess\
+mln_fun_p2b_essential\
+mln_fun_p2p_mirror\
+mln_fun_x2p_closest_point\
+mln_fun_x2p_all\
+mln_fun_x2p_essential\
+mln_fun_ops\
+mln_fun_c\
+mln_fun_vv2v_max\
+mln_fun_vv2v_lor\
+mln_fun_vv2v_land_not\
+mln_fun_vv2v_vec\
+mln_fun_vv2v_all\
+mln_fun_vv2v_macros\
+mln_fun_vv2v_lxor\
+mln_fun_vv2v_diff_abs\
+mln_fun_vv2v_land\
+mln_fun_vv2v_min\
+mln_fun_vv2v_essential\
+mln_fun_internal_array_base\
+mln_fun_internal_x2x_linear_impl\
+mln_fun_internal_selector\
+mln_fun_p2v_ternary\
+mln_fun_p2v_iota\
+mln_fun_p2v_elifs\
+mln_fun_p2v_all\
+mln_fun_p2v_essential\
+mln_fun_all\
+mln_fun_v2b_lnot\
+mln_fun_v2b_all\
+mln_fun_v2b_threshold\
+mln_fun_v2b_essential\
+mln_fun_v2v_norm\
+mln_fun_v2v_linear\
+mln_fun_v2v_id\
+mln_fun_v2v_saturate\
+mln_fun_v2v_inc\
+mln_fun_v2v_all\
+mln_fun_v2v_dec\
+mln_fun_v2v_abs\
+mln_fun_v2v_cast\
+mln_fun_v2v_rgb_to_hsi\
+mln_fun_v2v_enc\
+mln_fun_v2v_convert\
+mln_fun_v2v_essential\
+mln_fun_cast\
+mln_fun_i2v_all\
+mln_fun_i2v_array\
+mln_fun_i2v_all_to\
+mln_fun_i2v_essential\
+mln_fun_l2l_relabel\
+mln_fun_l2l_all\
+mln_fun_l2l_essential\
+mln_fun_x2x_composed\
+mln_fun_x2x_all\
+mln_fun_x2x_translation\
+mln_fun_x2x_rotation\
+mln_fun_x2x_essential\
+mln_fun_x2v_linear\
+mln_fun_x2v_bilinear\
+mln_fun_x2v_all\
+mln_fun_x2v_l1_norm\
+mln_fun_x2v_nneighbor\
+mln_fun_x2v_essential\
+mln_fun_essential\
+mln_all\
+mln_convert_to_p_set\
+mln_convert_to\
+mln_convert_to_upper_window\
+mln_convert_to_image\
+mln_convert_to_fun\
+mln_convert_all\
+mln_convert_to_window\
+mln_convert_from_to\
+mln_convert_impl_from_value_to_value\
+mln_convert_impl_all\
+mln_convert_impl_from_image_to_site_set\
+mln_convert_to_dpoint\
+mln_convert_to_p_array\
+mln_convert_to_rgb\
+mln_convert_essential\
+mln_value_float01_f\
+mln_value_float01_16\
+mln_value_lut_vec\
+mln_value_glf\
+mln_value_other\
+mln_value_graylevel_f\
+mln_value_aliases\
+mln_value_label_16\
+mln_value_ops\
+mln_value_set\
+mln_value_int_u_sat\
+mln_value_float01_8\
+mln_value_int_u8\
+mln_value_equiv\
+mln_value_internal_integer\
+mln_value_internal_gray_f\
+mln_value_internal_all\
+mln_value_internal_value_like\
+mln_value_internal_iterable_set\
+mln_value_internal_encoding\
+mln_value_internal_convert\
+mln_value_internal_gray_\
+mln_value_internal_essential\
+mln_value_proxy\
+mln_value_viter\
+mln_value_graylevel\
+mln_value_all\
+mln_value_super_value\
+mln_value_builtin_symbolics\
+mln_value_builtin_ops\
+mln_value_builtin_all\
+mln_value_builtin_promotions\
+mln_value_builtin_integers\
+mln_value_builtin_floatings\
+mln_value_builtin_essential\
+mln_value_sign\
+mln_value_hsi\
+mln_value_interval\
+mln_value_gl16\
+mln_value_scalar\
+mln_value_float01\
+mln_value_cast\
+mln_value_int_u\
+mln_value_int_s8\
+mln_value_int_s16\
+mln_value_int_u16\
+mln_value_label\
+mln_value_rgb\
+mln_value_stack\
+mln_value_concept_integer\
+mln_value_concept_structured\
+mln_value_concept_built_in\
+mln_value_concept_all\
+mln_value_concept_scalar\
+mln_value_concept_data\
+mln_value_concept_floating\
+mln_value_concept_symbolic\
+mln_value_concept_vectorial\
+mln_value_concept_essential\
+mln_value_int_s\
+mln_value_rgb8\
+mln_value_int_s32\
+mln_value_float01_\
+mln_value_rgb16\
+mln_value_int_u32\
+mln_value_gl8\
+mln_value_label_8\
+mln_value_essential\
+mln_accu_tuple\
+mln_accu_min_h\
+mln_accu_max\
+mln_accu_lor\
+mln_accu_rank\
+mln_accu_transform_stop\
+mln_accu_maj_h\
+mln_accu_min_max\
+mln_accu_internal_base\
+mln_accu_transform_snake\
+mln_accu_rank_high_quant\
+mln_accu_count\
+mln_accu_median_h\
+mln_accu_all\
+mln_accu_land_basic\
+mln_accu_p\
+mln_accu_transform\
+mln_accu_median_alt\
+mln_accu_volume\
+mln_accu_sum\
+mln_accu_height\
+mln_accu_land\
+mln_accu_take\
+mln_accu_histo\
+mln_accu_pair\
+mln_accu_count_adjacent_vertices\
+mln_accu_convolve\
+mln_accu_v\
+mln_accu_rank_bool\
+mln_accu_min\
+mln_accu_transform_directional\
+mln_accu_compute\
+mln_accu_mean\
+mln_accu_lor_basic\
+mln_accu_transform_diagonal\
+mln_accu_nil\
+mln_accu_bbox\
+mln_accu_center\
+mln_accu_line\
+mln_accu_essential\
+mln_accu_max_h\
+mln_level_compare\
+mln_level_memset_\
+mln_level_transform_inplace\
+mln_level_replace\
+mln_level_memcpy_\
+mln_level_apply\
+mln_level_approx_all\
+mln_level_approx_essential\
+mln_level_approx_median\
+mln_level_saturate\
+mln_level_all\
+mln_level_paste\
+mln_level_fast_median\
+mln_level_abs\
+mln_level_fill_with_image\
+mln_level_transform\
+mln_level_fill_with_value\
+mln_level_stretch\
+mln_level_was_median\
+mln_level_compute\
+mln_level_convert\
+mln_level_to_enc\
+mln_level_naive_all\
+mln_level_naive_essential\
+mln_level_naive_median\
+mln_level_sort_psites\
+mln_level_update\
+mln_level_fill\
+mln_level_essential\
+mln_level_assign\
+mln_level_median\
+mln_math_jacobi\
+mln_math_max\
+mln_math_sqr\
+mln_math_all\
+mln_math_sign\
+mln_math_abs\
+mln_math_diff_abs\
+mln_math_round\
+mln_math_min\
+mln_math_sqrt\
+mln_math_essential\
+mln_math_round_sat\
+mln_binarization_includes\
+mln_binarization_all\
+mln_binarization_binarization\
+mln_binarization_threshold\
+mln_binarization_essential\
+mln_trait_site_set_props\
+mln_trait_site_set_print\
+mln_trait_promote\
+mln_trait_solve_binary\
+mln_trait_value_\
+mln_trait_all\
+mln_trait_value_all\
+mln_trait_value_nature\
+mln_trait_value_quant\
+mln_trait_value_kind\
+mln_trait_value_print\
+mln_trait_value_essential\
+mln_trait_images\
+mln_trait_window_props\
+mln_trait_window_print\
+mln_trait_ch_value\
+mln_trait_solve\
+mln_trait_solve_unary\
+mln_trait_op_postdec\
+mln_trait_op_mod\
+mln_trait_op_lor\
+mln_trait_op_neq\
+mln_trait_op_plus\
+mln_trait_op_xor\
+mln_trait_op_all\
+mln_trait_op_geq\
+mln_trait_op_uminus\
+mln_trait_op_not\
+mln_trait_op_times\
+mln_trait_op_less\
+mln_trait_op_decl\
+mln_trait_op_ord\
+mln_trait_op_and\
+mln_trait_op_or\
+mln_trait_op_predec\
+mln_trait_op_minus\
+mln_trait_op_div\
+mln_trait_op_leq\
+mln_trait_op_preinc\
+mln_trait_op_greater\
+mln_trait_op_postinc\
+mln_trait_op_uplus\
+mln_trait_op_essential\
+mln_trait_op_eq\
+mln_trait_concrete\
+mln_trait_windows\
+mln_trait_site_sets\
+mln_trait_image_from_grid\
+mln_trait_undef\
+mln_trait_image_props\
+mln_trait_image_print\
+mln_trait_neighborhood\
+mln_trait_essential\
+mln_canvas_labeling\
+mln_canvas_browsing_hyper_directional\
+mln_canvas_browsing_snake_generic\
+mln_canvas_browsing_backdiagonal2d\
+mln_canvas_browsing_snake_vert\
+mln_canvas_browsing_snake_fwd\
+mln_canvas_browsing_all\
+mln_canvas_browsing_diagonal2d\
+mln_canvas_browsing_fwd\
+mln_canvas_browsing_dir_struct_elt_incr_update\
+mln_canvas_browsing_directional\
+mln_canvas_browsing_essential\
+mln_canvas_chamfer\
+mln_canvas_distance_geodesic\
+mln_canvas_all\
+mln_canvas_distance_front\
+mln_canvas_morpho_all\
+mln_canvas_morpho_algebraic_union_find\
+mln_canvas_morpho_essential\
+mln_canvas_essential\
+mln_metal_is_const\
+mln_metal_none\
+mln_metal_equal\
+mln_metal_unptr\
+mln_metal_not_equal\
+mln_metal_is_ref\
+mln_metal_ret\
+mln_metal_unqualif\
+mln_metal_is_not\
+mln_metal_vec\
+mln_metal_is\
+mln_metal_bool\
+mln_metal_all\
+mln_metal_math_pow\
+mln_metal_math_max\
+mln_metal_math_all\
+mln_metal_math_root\
+mln_metal_math_sqrt\
+mln_metal_mat\
+mln_metal_is_not_const\
+mln_metal_fix_return\
+mln_metal_ands\
+mln_metal_const\
+mln_metal_is_unqualif\
+mln_metal_unconst\
+mln_metal_bexpr\
+mln_metal_array2d\
+mln_metal_is_not_a\
+mln_metal_is_a\
+mln_metal_array1d\
+mln_metal_if\
+mln_metal_unref\
+mln_metal_array\
+mln_metal_ref\
+mln_metal_same_point\
+mln_metal_int\
+mln_metal_abort\
+mln_metal_same_coord\
+mln_metal_templated_by\
+mln_metal_has_neighborhood\
+mln_metal_goes_to\
+mln_metal_is_not_ref\
+mln_metal_converts_to\
+mln_metal_essential\
+mln_metal_array3d\
+mln_algebra_vec\
+mln_algebra_all\
+mln_algebra_h_vec\
+mln_algebra_mat\
+mln_algebra_h_mat\
+mln_algebra_quat\
+mln_algebra_essential\
+mln_linear_convolve_2x1d\
+mln_linear_all\
+mln_linear_ch_convolve\
+mln_linear_gaussian\
+mln_linear_convolve\
+mln_linear_sobel_2d\
+mln_linear_local_convolve\
+mln_linear_lap\
+mln_linear_convolve_directional\
+mln_linear_log\
+mln_linear_essential\
+mln_morpho_thinning\
+mln_morpho_meyer_wst\
+mln_morpho_opening\
+mln_morpho_includes\
+mln_morpho_elementary_opening\
+mln_morpho_elementary_gradient_internal\
+mln_morpho_elementary_dilation\
+mln_morpho_elementary_laplacian\
+mln_morpho_elementary_all\
+mln_morpho_elementary_gradient_external\
+mln_morpho_elementary_like_ero_fun\
+mln_morpho_elementary_gradient\
+mln_morpho_elementary_like_ero_set\
+mln_morpho_elementary_closing\
+mln_morpho_elementary_top_hat\
+mln_morpho_elementary_erosion\
+mln_morpho_elementary_essential\
+mln_morpho_thin_fit\
+mln_morpho_skeleton_constrained\
+mln_morpho_complementation\
+mln_morpho_line_gradient\
+mln_morpho_hit_or_miss\
+mln_morpho_closing_height\
+mln_morpho_plus\
+mln_morpho_general\
+mln_morpho_internal_elementary\
+mln_morpho_contrast\
+mln_morpho_opening_area\
+mln_morpho_opening_height\
+mln_morpho_thickening\
+mln_morpho_dilation\
+mln_morpho_laplacian\
+mln_morpho_all\
+mln_morpho_opening_attribute\
+mln_morpho_opening_volume\
+mln_morpho_closing_area_on_vertices\
+mln_morpho_closing_volume\
+mln_morpho_minus\
+mln_morpho_gradient\
+mln_morpho_tree_max\
+mln_morpho_tree_compute_parent\
+mln_morpho_tree_all\
+mln_morpho_tree_utils\
+mln_morpho_tree_data\
+mln_morpho_tree_compute_attribute_image\
+mln_morpho_opening_area_on_vertices\
+mln_morpho_min\
+mln_morpho_closing\
+mln_morpho_top_hat\
+mln_morpho_erosion\
+mln_morpho_Rd\
+mln_morpho_closing_area\
+mln_morpho_thick_miss\
+mln_morpho_closing_attribute\
+mln_morpho_rank_filter\
+mln_morpho_essential\
+mln_topo_n_face_iter\
+mln_topo_face_iter\
+mln_topo_is_simple_2d\
+mln_topo_centered_iter_adapter\
+mln_topo_internal_complex_set_iterator_base\
+mln_topo_internal_complex_iterator_base\
+mln_topo_internal_complex_relative_iterator_base\
+mln_topo_internal_complex_relative_iterator_sequence\
+mln_topo_algebraic_n_face\
+mln_topo_attic_faces_iter\
+mln_topo_adj_lower_dim_connected_n_face_iter\
+mln_topo_n_face\
+mln_topo_adj_lower_higher_face_iter\
+mln_topo_all\
+mln_topo_face_data\
+mln_topo_static_n_face_iter\
+mln_topo_face\
+mln_topo_adj_m_face_iter\
+mln_topo_complex\
+mln_topo_adj_higher_face_iter\
+mln_topo_adj_lower_face_iter\
+mln_topo_complex_iterators\
+mln_topo_center_only_iter\
+mln_topo_adj_higher_dim_connected_n_face_iter\
+mln_topo_algebraic_face\
+mln_topo_n_faces_set\
+mln_topo_essential\
+mln_essential_1d\
mln_essential_routine\
mln_essential_3d\
-mln_essential_1d\
-mln_set_get\
-mln_set_uni\
-mln_set_all\
-mln_set_sym_diff\
-mln_set_essential\
-mln_set_diff\
-mln_set_compute\
-mln_set_has\
-mln_set_inter\
-mln_transform_all\
-mln_transform_internal_influence_zone_functor\
-mln_transform_internal_all\
-mln_transform_internal_distance_functor\
-mln_transform_distance_geodesic\
-mln_transform_+old_distance\
-mln_transform_essential\
-mln_transform_influence_zone_geodesic\
-mln_transform_distance_front\
-mln_transform_influence_zone_front\
-mln_core_alias_neighb2d\
-mln_core_alias_point3df\
-mln_core_alias_w_window3d_float\
-mln_core_alias_point2d\
-mln_core_alias_w_window1d_float\
-mln_core_alias_box2d_h\
-mln_core_alias_point2d_h\
-mln_core_alias_neighb1d\
-mln_core_alias_p_run2d\
-mln_core_alias_window2d\
-mln_core_alias_window3d\
-mln_core_alias_dpoint2d_h\
-mln_core_alias_p_runs2d\
-mln_core_alias_w_window2d_int\
-mln_core_alias_w_window3d_int\
-mln_core_alias_box1d\
-mln_core_alias_w_window2d_float\
-mln_core_alias_w_window1d_int\
-mln_core_alias_dpoint1d\
-mln_core_alias_point1d\
-mln_core_alias_complex_image\
-mln_core_alias_window1d\
-mln_core_alias_dpoint2d\
-mln_core_alias_neighb3d\
-mln_core_alias_point3d\
-mln_core_alias_dpoint3d\
-mln_core_alias_complex_geometry\
-mln_core_alias_box2d\
-mln_core_alias_box3d\
-mln_core_clock_neighb2d\
-mln_core_macros\
-mln_core_w_window\
-mln_core_all\
-mln_core_category\
-mln_core_faces_psite\
-mln_core_trait_all\
-mln_core_trait_pixter\
-mln_core_trait_op_mult\
-mln_core_trait_essential\
-mln_core_trait_qlf_value\
+mln_essential_2d\
+mln_win_inter\
+mln_win_backdiag2d\
+mln_win_segment1d\
+mln_win_cuboid3d\
+mln_win_vline2d\
+mln_win_octagon2d\
+mln_win_all\
+mln_win_multiple_size\
+mln_win_cube3d\
+mln_win_shift\
+mln_win_sym\
+mln_win_diff\
+mln_win_multiple\
+mln_win_diag2d\
+mln_win_disk2d\
+mln_win_rectangle2d\
+mln_win_hline2d\
+mln_win_line\
+mln_win_essential\
+mln_core_clock_neighb\
+mln_core_pixter2d\
+mln_core_def_low_quant_nbits\
+mln_core_def_all\
+mln_core_def_coordf\
+mln_core_def_coord\
+mln_core_def_essential\
+mln_core_site_set_box\
+mln_core_site_set_p_vertices\
+mln_core_site_set_p_vaccess\
+mln_core_site_set_p_if_piter\
+mln_core_site_set_p_run_piter\
+mln_core_site_set_p_key\
+mln_core_site_set_p_double\
+mln_core_site_set_p_complex_piter\
+mln_core_site_set_p_complex\
+mln_core_site_set_p_image\
+mln_core_site_set_attic_p_complex_faces_piter\
+mln_core_site_set_attic_p_faces_piter\
+mln_core_site_set_p_priority\
+mln_core_site_set_p_set_of\
+mln_core_site_set_all\
+mln_core_site_set_p_edges\
+mln_core_site_set_box_piter\
+mln_core_site_set_p_faces\
+mln_core_site_set_p_set\
+mln_core_site_set_p_queue\
mln_core_site_set_p_if\
-mln_core_site_set_complex_psite\
+mln_core_site_set_operators\
mln_core_site_set_p_mutable_array_of\
-mln_core_site_set_p_complex_piter\
-mln_core_site_set_box\
mln_core_site_set_p_edges_psite\
-mln_core_site_set_all\
+mln_core_site_set_complex_psite\
+mln_core_site_set_p_run\
+mln_core_site_set_p_n_faces_piter\
+mln_core_site_set_p_centered\
+mln_core_site_set_p_bgraph\
mln_core_site_set_p_bgraph_piter\
mln_core_site_set_p_array\
mln_core_site_set_p_vertices_psite\
-mln_core_site_set_box_piter\
-mln_core_site_set_attic_p_faces_piter\
-mln_core_site_set_attic_p_complex_faces_piter\
-mln_core_site_set_p_complex\
-mln_core_site_set_p_image\
-mln_core_site_set_p_edges\
mln_core_site_set_p_line2d\
-mln_core_site_set_p_vertices\
-mln_core_site_set_p_double\
-mln_core_site_set_p_graph_piter\
mln_core_site_set_p_queue_fast\
-mln_core_site_set_p_priority\
-mln_core_site_set_p_centered\
+mln_core_site_set_p_graph_piter\
mln_core_site_set_essential\
-mln_core_site_set_p_faces\
-mln_core_site_set_p_bgraph\
-mln_core_site_set_p_run_piter\
-mln_core_site_set_p_run\
-mln_core_site_set_p_n_faces_piter\
-mln_core_site_set_p_if_piter\
-mln_core_site_set_p_set\
-mln_core_site_set_p_vaccess\
-mln_core_site_set_p_queue\
-mln_core_site_set_p_set_of\
-mln_core_site_set_operators\
-mln_core_site_set_p_key\
+mln_core_dpsites_piter\
+mln_core_w_window\
+mln_core_grids\
+mln_core_dpoints_pixter\
+mln_core_internal_graph_psite_base\
+mln_core_internal_run_image\
+mln_core_internal_pixel_impl\
+mln_core_internal_site_set_base\
+mln_core_internal_image_value_morpher\
+mln_core_internal_site_iterator_base\
+mln_core_internal_complex_neighborhood_base\
+mln_core_internal_site_relative_iterator_base\
+mln_core_internal_site_set_impl\
+mln_core_internal_exact\
+mln_core_internal_p_complex_piter_base\
+mln_core_internal_neighb_niter_impl\
+mln_core_internal_pixel_iterator_base\
+mln_core_internal_classical_window_base\
+mln_core_internal_data\
+mln_core_internal_force_exact\
+mln_core_internal_image_base\
+mln_core_internal_check_image_fastest\
+mln_core_internal_check_image_all\
+mln_core_internal_fixme\
+mln_core_internal_morpher_lvalue\
+mln_core_internal_image_domain_morpher\
+mln_core_internal_image_primary\
+mln_core_internal_set_of\
+mln_core_internal_complex_window_p_base\
+mln_core_internal_graph_window_base\
+mln_core_internal_piter_adaptor\
+mln_core_internal_weighted_window_base\
+mln_core_internal_neighborhood_base\
+mln_core_internal_image_morpher\
+mln_core_internal_coord_impl\
+mln_core_internal_geom_bbox\
+mln_core_internal_image_identity\
+mln_core_internal_pseudo_site_base\
+mln_core_internal_window_base\
+mln_core_internal_box_impl\
+mln_core_internal_site_set_iterator_base\
+mln_core_contract\
+mln_core_all\
+mln_core_point\
+mln_core_neighb\
+mln_core_routine_initialize\
+mln_core_routine_primary\
+mln_core_routine_init\
+mln_core_routine_ops\
+mln_core_routine_all\
+mln_core_routine_clone\
+mln_core_routine_exact\
+mln_core_routine_extend\
+mln_core_routine_essential\
+mln_core_trait_op_mult\
+mln_core_trait_all\
+mln_core_trait_pixter\
+mln_core_trait_qlf_value\
+mln_core_trait_essential\
+mln_core_pixter1d\
+mln_core_category\
+mln_core_macros\
mln_core_box_runstart_piter\
-mln_core_var\
-mln_core_concept_browsing\
-mln_core_concept_regular_grid\
-mln_core_concept_pixel_iterator\
+mln_core_tags\
+mln_core_dpoint\
+mln_core_alias_dpoint2d_h\
+mln_core_alias_p_run2d\
+mln_core_alias_point3d\
+mln_core_alias_neighb3d\
+mln_core_alias_window3d\
+mln_core_alias_neighb2d\
+mln_core_alias_complex_image\
+mln_core_alias_w_window1d_float\
+mln_core_alias_neighb1d\
+mln_core_alias_w_window2d_float\
+mln_core_alias_w_window2d_int\
+mln_core_alias_box1d\
+mln_core_alias_box2d\
+mln_core_alias_window1d\
+mln_core_alias_point1d\
+mln_core_alias_box3d\
+mln_core_alias_dpoint3d\
+mln_core_alias_complex_geometry\
+mln_core_alias_w_window3d_float\
+mln_core_alias_box2d_h\
+mln_core_alias_point2d\
+mln_core_alias_window2d\
+mln_core_alias_p_runs2d\
+mln_core_alias_point3df\
+mln_core_alias_dpoint1d\
+mln_core_alias_w_window3d_int\
+mln_core_alias_dpoint2d\
+mln_core_alias_w_window1d_int\
+mln_core_alias_point2d_h\
+mln_core_window\
+mln_core_concept_site_proxy\
mln_core_concept_point_site\
-mln_core_concept_iterator\
mln_core_concept_box\
-mln_core_concept_site_proxy\
-mln_core_concept_object\
-mln_core_concept_all\
-mln_core_concept_image\
mln_core_concept_generalized_pixel\
-mln_core_concept_value_iterator\
-mln_core_concept_value_set\
-mln_core_concept_site_set\
-mln_core_concept_point\
-mln_core_concept_weighted_window\
mln_core_concept_graph\
-mln_core_concept_function\
-mln_core_concept_site_iterator\
-mln_core_concept_gpoint\
-mln_core_concept_meta_accumulator\
-mln_core_concept_gdpoint\
-mln_core_concept_doc_pixel_iterator\
+mln_core_concept_iterator\
mln_core_concept_doc_point_site\
-mln_core_concept_doc_iterator\
mln_core_concept_doc_box\
-mln_core_concept_doc_object\
-mln_core_concept_doc_image\
mln_core_concept_doc_generalized_pixel\
-mln_core_concept_doc_value_iterator\
+mln_core_concept_doc_iterator\
+mln_core_concept_doc_image_fastest\
+mln_core_concept_doc_image\
mln_core_concept_doc_value_set\
-mln_core_concept_doc_site_set\
mln_core_concept_doc_weighted_window\
-mln_core_concept_doc_image_fastest\
+mln_core_concept_doc_pixel_iterator\
+mln_core_concept_doc_value_iterator\
mln_core_concept_doc_dpoint\
-mln_core_concept_doc_accumulator\
-mln_core_concept_doc_point_iterator\
mln_core_concept_doc_window\
+mln_core_concept_doc_accumulator\
+mln_core_concept_doc_site_set\
+mln_core_concept_doc_object\
mln_core_concept_doc_neighborhood\
-mln_core_concept_delta_point_site\
-mln_core_concept_literal\
-mln_core_concept_value\
-mln_core_concept_dpoint\
+mln_core_concept_doc_point_iterator\
mln_core_concept_pseudo_site\
-mln_core_concept_accumulator\
+mln_core_concept_image\
+mln_core_concept_value_set\
mln_core_concept_proxy\
mln_core_concept_site\
+mln_core_concept_weighted_window\
+mln_core_concept_all\
+mln_core_concept_gpoint\
+mln_core_concept_site_iterator\
+mln_core_concept_point\
+mln_core_concept_literal\
+mln_core_concept_pixel_iterator\
+mln_core_concept_value_iterator\
+mln_core_concept_meta_accumulator\
+mln_core_concept_gdpoint\
+mln_core_concept_regular_grid\
+mln_core_concept_mesh\
+mln_core_concept_dpoint\
+mln_core_concept_function\
mln_core_concept_window\
+mln_core_concept_value\
+mln_core_concept_accumulator\
+mln_core_concept_site_set\
+mln_core_concept_object\
+mln_core_concept_delta_point_site\
mln_core_concept_neighborhood\
-mln_core_concept_mesh\
-mln_core_dpoints_pixter\
-mln_core_internal_graph_window_base\
-mln_core_internal_complex_window_p_base\
-mln_core_internal_pixel_iterator_base\
-mln_core_internal_weighted_window_base\
-mln_core_internal_neighborhood_base\
-mln_core_internal_complex_neighborhood_base\
-mln_core_internal_data\
-mln_core_internal_run_image\
-mln_core_internal_window_base\
-mln_core_internal_graph_psite_base\
-mln_core_internal_site_relative_iterator_base\
-mln_core_internal_image_base\
-mln_core_internal_set_of\
-mln_core_internal_exact\
-mln_core_internal_p_complex_piter_base\
-mln_core_internal_morpher_lvalue\
-mln_core_internal_site_iterator_base\
-mln_core_internal_pseudo_site_base\
-mln_core_internal_pixel_impl\
-mln_core_internal_force_exact\
-mln_core_internal_site_set_iterator_base\
-mln_core_internal_geom_bbox\
-mln_core_internal_site_set_base\
-mln_core_internal_classical_window_base\
-mln_core_internal_image_value_morpher\
-mln_core_internal_coord_impl\
-mln_core_internal_check_image_all\
-mln_core_internal_check_image_fastest\
-mln_core_internal_fixme\
-mln_core_internal_piter_adaptor\
-mln_core_internal_image_domain_morpher\
-mln_core_internal_neighb_niter_impl\
-mln_core_internal_image_morpher\
-mln_core_internal_image_primary\
-mln_core_internal_image_identity\
-mln_core_internal_site_set_impl\
-mln_core_internal_box_impl\
-mln_core_pixter2d\
-mln_core_point\
-mln_core_a_point_of\
-mln_core_clock_neighb\
-mln_core_grids\
-mln_core_tags\
-mln_core_routine_all\
-mln_core_routine_initialize\
-mln_core_routine_exact\
-mln_core_routine_essential\
-mln_core_routine_init\
-mln_core_routine_extend\
-mln_core_routine_primary\
-mln_core_routine_clone\
-mln_core_routine_ops\
-mln_core_contract\
-mln_core_essential\
-mln_core_pixter1d\
-mln_core_neighb\
+mln_core_concept_browsing\
mln_core_pixel\
-mln_core_dpoint\
-mln_core_+memo_dpoints_piter\
+mln_core_clock_neighb2d\
+mln_core_pixter3d\
+mln_core_image_obased_rle_encode\
mln_core_image_plain\
-mln_core_image_image_if\
-mln_core_image_t_image\
-mln_core_image_complex_window_piter\
-mln_core_image_interpolated\
-mln_core_image_sparse_image\
+mln_core_image_graph_image\
+mln_core_image_image3d\
+mln_core_image_decorated_image\
+mln_core_image_extension_ima\
+mln_core_image_flat_image\
mln_core_image_complex_neighborhood_piter\
-mln_core_image_ch_piter\
-mln_core_image_tr_image\
-mln_core_image_extension_val\
-mln_core_image_value_enc_image\
-mln_core_image_all\
-mln_core_image_fi_adaptor\
-mln_core_image_extended\
-mln_core_image_rle_encode\
-mln_core_image_graph_window_piter\
+mln_core_image_tr_mesh\
+mln_core_image_graph_elt_window\
+mln_core_image_obased_rle_image\
+mln_core_image_mono_obased_rle_image\
+mln_core_image_interpolated\
mln_core_image_lazy_image\
-mln_core_image_bgraph_image\
-mln_core_image_image2d_h\
-mln_core_image_bgraph_psite\
+mln_core_image_t_image\
mln_core_image_hexa_piter\
-mln_core_image_image2d\
-mln_core_image_decorated_image\
-mln_core_image_hexa\
-mln_core_image_essential\
-mln_core_image_mono_obased_rle_encode\
-mln_core_image_graph_image\
-mln_core_image_image1d\
+mln_core_image_value_enc_image\
+mln_core_image_sub_image_if\
+mln_core_image_all\
mln_core_image_mono_rle_image\
-mln_core_image_mono_obased_rle_image\
-mln_core_image_flat_image\
-mln_core_image_graph_elt_window\
+mln_core_image_complex_image\
mln_core_image_cast_image\
-mln_core_image_sparse_encode\
-mln_core_image_tr_mesh\
-mln_core_image_extension_fun\
-mln_core_image_safe\
-mln_core_image_extension_ima\
-mln_core_image_obased_rle_encode\
+mln_core_image_rle_encode\
+mln_core_image_complex_window_piter\
+mln_core_image_tr_image\
+mln_core_image_sub_image\
mln_core_image_rle_image\
-mln_core_image_complex_image\
-mln_core_image_line_graph_image\
mln_core_image_line_graph_elt_window\
-mln_core_image_sub_image_if\
-mln_core_image_sub_image\
mln_core_image_mono_rle_encode\
-mln_core_image_obased_rle_image\
-mln_core_image_value_encode\
+mln_core_image_bgraph_psite\
+mln_core_image_sparse_image\
+mln_core_image_bgraph_image\
mln_core_image_complex_neighborhoods\
-mln_core_image_image3d\
+mln_core_image_graph_window_piter\
+mln_core_image_sparse_encode\
+mln_core_image_safe\
+mln_core_image_extension_fun\
+mln_core_image_image1d\
+mln_core_image_extension_val\
+mln_core_image_image_if\
+mln_core_image_hexa\
+mln_core_image_extended\
+mln_core_image_image2d_h\
+mln_core_image_image2d\
+mln_core_image_ch_piter\
mln_core_image_complex_windows\
-mln_core_dpsites_piter\
-mln_core_window\
-mln_core_def_coordf\
-mln_core_def_all\
-mln_core_def_low_quant_nbits\
-mln_core_def_essential\
-mln_core_def_coord\
-mln_core_pixter3d\
-mln_all\
-mln_estim_all\
-mln_estim_sum\
-mln_estim_min_max\
-mln_estim_essential\
-mln_estim_mean\
-mln_math_sqrt\
-mln_math_round_sat\
-mln_math_sqr\
-mln_math_all\
-mln_math_round\
-mln_math_min\
-mln_math_diff_abs\
-mln_math_essential\
-mln_math_abs\
-mln_math_jacobi\
-mln_math_max\
-mln_math_sign\
-mln_morpho_closing\
-mln_morpho_opening_volume\
-mln_morpho_closing_attribute\
-mln_morpho_minus\
-mln_morpho_complementation\
-mln_morpho_top_hat\
-mln_morpho_skeleton_constrained\
-mln_morpho_laplacian\
-mln_morpho_opening_area_on_vertices\
-mln_morpho_thinning\
-mln_morpho_dilation\
-mln_morpho_all\
-mln_morpho_general\
-mln_morpho_includes\
-mln_morpho_thick_miss\
-mln_morpho_tree_compute_parent\
-mln_morpho_tree_all\
-mln_morpho_tree_data\
-mln_morpho_tree_utils\
-mln_morpho_tree_compute_attribute_image\
-mln_morpho_tree_max\
-mln_morpho_internal_elementary\
-mln_morpho_meyer_wst\
-mln_morpho_elementary_closing\
-mln_morpho_elementary_top_hat\
-mln_morpho_elementary_laplacian\
-mln_morpho_elementary_dilation\
-mln_morpho_elementary_all\
-mln_morpho_elementary_like_ero_set\
-mln_morpho_elementary_gradient_internal\
-mln_morpho_elementary_gradient\
-mln_morpho_elementary_essential\
-mln_morpho_elementary_opening\
-mln_morpho_elementary_erosion\
-mln_morpho_elementary_gradient_external\
-mln_morpho_elementary_like_ero_fun\
-mln_morpho_opening_height\
-mln_morpho_gradient\
-mln_morpho_min\
-mln_morpho_closing_area\
-mln_morpho_essential\
-mln_morpho_line_gradient\
-mln_morpho_opening\
-mln_morpho_erosion\
-mln_morpho_thin_fit\
-mln_morpho_Rd\
-mln_morpho_hit_or_miss\
-mln_morpho_closing_area_on_vertices\
-mln_morpho_closing_height\
-mln_morpho_plus\
-mln_morpho_opening_area\
-mln_morpho_rank_filter\
-mln_morpho_contrast\
-mln_morpho_thickening\
-mln_morpho_opening_attribute\
-mln_morpho_closing_volume\
-mln_trait_concrete\
-mln_trait_promote\
-mln_trait_all\
-mln_trait_site_set_props\
-mln_trait_site_set_print\
-mln_trait_value_\
-mln_trait_image_from_grid\
-mln_trait_ch_value\
-mln_trait_solve_unary\
-mln_trait_site_sets\
-mln_trait_essential\
-mln_trait_value_all\
-mln_trait_value_print\
-mln_trait_value_kind\
-mln_trait_value_nature\
-mln_trait_value_essential\
-mln_trait_value_quant\
-mln_trait_windows\
-mln_trait_window_props\
-mln_trait_window_print\
-mln_trait_image_props\
-mln_trait_image_print\
-mln_trait_images\
-mln_trait_undef\
-mln_trait_op_postdec\
-mln_trait_op_div\
-mln_trait_op_uplus\
-mln_trait_op_minus\
-mln_trait_op_less\
-mln_trait_op_predec\
-mln_trait_op_eq\
-mln_trait_op_all\
-mln_trait_op_leq\
-mln_trait_op_preinc\
-mln_trait_op_and\
-mln_trait_op_greater\
-mln_trait_op_lor\
-mln_trait_op_or\
-mln_trait_op_not\
-mln_trait_op_uminus\
-mln_trait_op_essential\
-mln_trait_op_times\
-mln_trait_op_neq\
-mln_trait_op_ord\
-mln_trait_op_postinc\
-mln_trait_op_xor\
-mln_trait_op_mod\
-mln_trait_op_plus\
-mln_trait_op_decl\
-mln_trait_op_geq\
-mln_trait_solve_binary\
-mln_trait_neighborhood\
-mln_trait_solve\
-mln_draw_box\
-mln_draw_line\
-mln_draw_all\
-mln_draw_essential\
-mln_draw_plot\
-mln_labeling_foreground\
-mln_labeling_all\
-mln_labeling_+old_level\
-mln_labeling_regional_maxima\
-mln_labeling_flat_zones\
+mln_core_image_fi_adaptor\
+mln_core_image_mono_obased_rle_encode\
+mln_core_image_line_graph_image\
+mln_core_image_value_encode\
+mln_core_image_essential\
+mln_core_a_point_of\
+mln_core_var\
+mln_core_essential\
+mln_core_faces_psite\
mln_labeling_blobs\
-mln_labeling_essential\
-mln_labeling_relabel\
-mln_labeling_regional_minima\
mln_labeling_background\
-mln_labeling_compute\
+mln_labeling_relabel\
+mln_labeling_all\
mln_labeling_level\
-mln_binarization_all\
-mln_binarization_includes\
-mln_binarization_essential\
-mln_binarization_binarization\
-mln_binarization_threshold\
-mln_topo_adj_lower_dim_connected_n_face_iter\
-mln_topo_face_iter\
-mln_topo_adj_lower_face_iter\
-mln_topo_complex\
-mln_topo_n_face_iter\
-mln_topo_adj_lower_higher_face_iter\
-mln_topo_centered_iter_adapter\
-mln_topo_all\
-mln_topo_complex_iterators\
-mln_topo_attic_faces_iter\
-mln_topo_internal_complex_set_iterator_base\
-mln_topo_internal_complex_iterator_base\
-mln_topo_internal_complex_relative_iterator_base\
-mln_topo_internal_complex_relative_iterator_sequence\
-mln_topo_face_data\
-mln_topo_adj_m_face_iter\
-mln_topo_algebraic_face\
-mln_topo_algebraic_n_face\
-mln_topo_is_simple_2d\
-mln_topo_n_faces_set\
-mln_topo_essential\
-mln_topo_face\
-mln_topo_static_n_face_iter\
-mln_topo_center_only_iter\
-mln_topo_adj_higher_dim_connected_n_face_iter\
-mln_topo_n_face\
-mln_topo_adj_higher_face_iter\
-mln_canvas_all\
-mln_canvas_morpho_all\
-mln_canvas_morpho_algebraic_union_find\
-mln_canvas_morpho_essential\
-mln_canvas_distance_geodesic\
-mln_canvas_essential\
-mln_canvas_labeling\
-mln_canvas_+old_labeling\
-mln_canvas_chamfer\
-mln_canvas_browsing_directional\
-mln_canvas_browsing_snake_fwd\
-mln_canvas_browsing_snake_generic\
-mln_canvas_browsing_all\
-mln_canvas_browsing_fwd\
-mln_canvas_browsing_backdiagonal2d\
-mln_canvas_browsing_snake_vert\
-mln_canvas_browsing_dir_struct_elt_incr_update\
-mln_canvas_browsing_essential\
-mln_canvas_browsing_diagonal2d\
-mln_canvas_browsing_hyper_directional\
-mln_canvas_distance_front\
-mln_util_line_graph\
-mln_util_lazy_set\
-mln_util_eat\
-mln_util_ignore\
-mln_util_timer\
-mln_util_all\
-mln_util_tracked_ptr\
-mln_util_internal_graph_nbh_iter\
-mln_util_internal_boost_graph_structure\
-mln_util_internal_edge_impl\
-mln_util_internal_graph_base\
-mln_util_internal_vertex_impl\
-mln_util_internal_graph_iter\
-mln_util_internal_graph_nbh_iter_base\
-mln_util_internal_boost_graph_access\
-mln_util_internal_graph_iter_base\
-mln_util_internal_boost_graph_property\
-mln_util_internal_boost_graph\
-mln_util_pix\
-mln_util_greater_point\
-mln_util_edge\
-mln_util_multi_site\
-mln_util_tree_fast_to_image\
-mln_util_graph\
-mln_util_site_pair\
-mln_util_yes\
-mln_util_essential\
-mln_util_tree_to_fast\
-mln_util_ord\
-mln_util_greater_psite\
-mln_util_vertex\
-mln_util_branch_iter\
-mln_util_tree_fast\
-mln_util_dindex\
-mln_util_branch_iter_ind\
-mln_util_tree\
-mln_util_set\
-mln_util_index\
-mln_util_tree_to_image\
-mln_util_max\
-mln_util_ord_pair\
-mln_util_array\
-mln_util_lemmings\
-mln_util_nil\
-mln_test_all\
+mln_labeling_flat_zones\
+mln_labeling_foreground\
+mln_labeling_regional_maxima\
+mln_labeling_compute\
+mln_labeling_regional_minima\
+mln_labeling_essential\
mln_test_predicate\
-mln_test_essential\
+mln_test_all\
mln_test_positive\
-mln_border_get\
-mln_border_equalize\
-mln_border_all\
-mln_border_duplicate\
-mln_border_essential\
-mln_border_find\
-mln_border_adjust\
-mln_border_resize\
-mln_border_fill\
-mln_border_thickness\
-mln_border_mirror\
-mln_accu_histo\
-mln_accu_max_h\
-mln_accu_take\
-mln_accu_center\
-mln_accu_bbox\
-mln_accu_median_alt\
-mln_accu_line\
-mln_accu_all\
-mln_accu_volume\
-mln_accu_min_h\
-mln_accu_land_basic\
-mln_accu_convolve\
-mln_accu_lor_basic\
-mln_accu_sum\
-mln_accu_internal_base\
-mln_accu_min_max\
-mln_accu_rank\
-mln_accu_lor\
-mln_accu_min\
-mln_accu_rank_high_quant\
-mln_accu_transform_directional\
-mln_accu_pair\
-mln_accu_essential\
-mln_accu_median_h\
-mln_accu_transform\
-mln_accu_maj_h\
-mln_accu_p\
-mln_accu_v\
-mln_accu_tuple\
-mln_accu_mean\
-mln_accu_rank_bool\
-mln_accu_compute\
-mln_accu_max\
-mln_accu_land\
-mln_accu_transform_stop\
-mln_accu_count_adjacent_vertices\
-mln_accu_count\
-mln_accu_transform_diagonal\
-mln_accu_transform_snake\
-mln_accu_height\
-mln_accu_nil\
-mln_extension_adjust_duplicate\
-mln_extension_all\
-mln_extension_duplicate\
-mln_extension_essential\
-mln_extension_adjust\
-mln_extension_fill\
-mln_extension_adjust_fill\
-mln_io_pnm_load\
-mln_io_pnm_macros\
-mln_io_pnm_max_component\
-mln_io_pnm_all\
-mln_io_pnm_load_header\
-mln_io_pnm_save\
-mln_io_pnm_save_header\
-mln_io_off_load\
-mln_io_off_all\
-mln_io_off_save\
+mln_test_essential\
+mln_transform_distance_geodesic\
+mln_transform_internal_all\
+mln_transform_internal_distance_functor\
+mln_transform_internal_influence_zone_functor\
+mln_transform_all\
+mln_transform_influence_zone_front\
+mln_transform_distance_front\
+mln_transform_influence_zone_geodesic\
+mln_transform_essential\
+mln_arith_includes\
+mln_arith_plus\
+mln_arith_all\
+mln_arith_times\
+mln_arith_diff_abs\
+mln_arith_minus\
+mln_arith_min\
+mln_arith_revert\
+mln_arith_essential\
+mln_io_pgm_load\
+mln_io_pgm_all\
+mln_io_pgm_save\
+mln_io_ppm_load\
+mln_io_ppm_all\
+mln_io_ppm_save\
+mln_io_pfm_load\
+mln_io_pfm_all\
+mln_io_pfm_save\
mln_io_all\
mln_io_pbm_load\
mln_io_pbm_all\
mln_io_pbm_save\
-mln_io_pfm_load\
-mln_io_pfm_all\
-mln_io_pfm_save\
-mln_io_fits_load\
-mln_io_fits_all\
+mln_io_pnm_max_component\
+mln_io_pnm_load\
+mln_io_pnm_load_header\
+mln_io_pnm_all\
+mln_io_pnm_macros\
+mln_io_pnm_save\
+mln_io_pnm_save_header\
mln_io_txt_all\
mln_io_txt_save\
mln_io_abort\
+mln_io_fits_load\
+mln_io_fits_all\
+mln_io_off_load\
+mln_io_off_all\
+mln_io_off_save\
mln_io_essential\
-mln_io_ppm_load\
-mln_io_ppm_all\
-mln_io_ppm_save\
-mln_io_pgm_load\
-mln_io_pgm_all\
-mln_io_pgm_save\
-mln_arith_minus\
-mln_arith_all\
-mln_arith_includes\
-mln_arith_min\
-mln_arith_diff_abs\
-mln_arith_essential\
-mln_arith_times\
-mln_arith_revert\
-mln_arith_plus\
-mln_convert_to_p_array\
-mln_convert_to\
-mln_convert_to_dpoint\
-mln_convert_all\
-mln_convert_to_upper_window\
-mln_convert_impl_all\
-mln_convert_impl_from_value_to_value\
-mln_convert_impl_from_image_to_site_set\
-mln_convert_essential\
-mln_convert_from_to\
-mln_convert_to_fun\
-mln_convert_to_image\
-mln_convert_to_window\
-mln_convert_to_rgb\
-mln_convert_to_p_set\
-mln_win_backdiag2d\
-mln_win_cube3d\
-mln_win_line\
-mln_win_all\
-mln_win_rectangle2d\
-mln_win_disk2d\
-mln_win_cuboid3d\
-mln_win_diag2d\
-mln_win_shift\
-mln_win_essential\
-mln_win_octagon2d\
-mln_win_sym\
-mln_win_hline2d\
-mln_win_segment1d\
-mln_win_diff\
-mln_win_vline2d\
-mln_win_inter\
-mln_win_multiple_size\
-mln_win_multiple\
-mln_algebra_all\
-mln_algebra_h_mat\
-mln_algebra_essential\
-mln_algebra_h_vec\
-mln_algebra_vec\
-mln_algebra_quat\
-mln_algebra_mat\
-mln_debug_colorize\
+mln_logical_includes\
+mln_logical_and_not\
+mln_logical_xor\
+mln_logical_all\
+mln_logical_not\
+mln_logical_and\
+mln_logical_or\
+mln_logical_essential\
+mln_norm_all\
+mln_norm_l1\
+mln_norm_l2\
+mln_norm_linfty\
+mln_norm_essential\
mln_debug_iota\
-mln_debug_draw_graph\
-mln_debug_format\
mln_debug_all\
-mln_debug_essential\
mln_debug_println_with_border\
-mln_debug_println\
+mln_debug_colorize\
+mln_debug_draw_graph\
mln_debug_put_word\
-mln_value_int_u8\
-mln_value_viter\
-mln_value_glf\
-mln_value_label\
-mln_value_int_u_sat\
-mln_value_float01_8\
-mln_value_all\
-mln_value_rgb\
-mln_value_int_s16\
-mln_value_concept_vectorial\
-mln_value_concept_floating\
-mln_value_concept_all\
-mln_value_concept_data\
-mln_value_concept_built_in\
-mln_value_concept_integer\
-mln_value_concept_essential\
-mln_value_concept_symbolic\
-mln_value_concept_structured\
-mln_value_concept_scalar\
-mln_value_internal_all\
-mln_value_internal_value_like\
-mln_value_internal_gray_f\
-mln_value_internal_integer\
-mln_value_internal_essential\
-mln_value_internal_convert\
-mln_value_internal_gray_\
-mln_value_internal_encoding\
-mln_value_internal_iterable_set\
-mln_value_int_s32\
-mln_value_int_s\
-mln_value_float01_\
-mln_value_label_16\
-mln_value_int_u16\
-mln_value_int_u\
-mln_value_hsi\
-mln_value_essential\
-mln_value_gl16\
-mln_value_label_8\
-mln_value_int_u32\
-mln_value_interval\
-mln_value_builtin_floatings\
-mln_value_builtin_all\
-mln_value_builtin_symbolics\
-mln_value_builtin_promotions\
-mln_value_builtin_essential\
-mln_value_builtin_integers\
-mln_value_builtin_ops\
-mln_value_rgb16\
-mln_value_graylevel_f\
-mln_value_gl8\
-mln_value_super_value\
-mln_value_lut_vec\
-mln_value_float01\
-mln_value_aliases\
-mln_value_proxy\
-mln_value_set\
-mln_value_cast\
-mln_value_rgb8\
-mln_value_stack\
-mln_value_float01_f\
-mln_value_other\
-mln_value_scalar\
-mln_value_equiv\
-mln_value_float01_16\
-mln_value_graylevel\
-mln_value_sign\
-mln_value_ops\
-mln_value_int_s8\
-mln_fun_x2x_all\
-mln_fun_x2x_translation\
-mln_fun_x2x_essential\
-mln_fun_x2x_rotation\
-mln_fun_x2x_composed\
-mln_fun_x2p_all\
-mln_fun_x2p_essential\
-mln_fun_x2p_closest_point\
-mln_fun_v2b_all\
-mln_fun_v2b_essential\
-mln_fun_v2b_threshold\
-mln_fun_v2b_lnot\
-mln_fun_p2v_iota\
-mln_fun_p2v_elifs\
-mln_fun_p2v_all\
-mln_fun_p2v_essential\
-mln_fun_p2v_ternary\
-mln_fun_all\
-mln_fun_internal_array_base\
-mln_fun_internal_selector\
-mln_fun_internal_x2x_linear_impl\
-mln_fun_vv2v_macros\
-mln_fun_vv2v_all\
-mln_fun_vv2v_lor\
-mln_fun_vv2v_min\
-mln_fun_vv2v_diff_abs\
-mln_fun_vv2v_essential\
-mln_fun_vv2v_land_not\
-mln_fun_vv2v_vec\
-mln_fun_vv2v_lxor\
-mln_fun_vv2v_max\
-mln_fun_vv2v_land\
-mln_fun_p2p_mirror\
-mln_fun_v2v_norm\
-mln_fun_v2v_all\
-mln_fun_v2v_inc\
-mln_fun_v2v_essential\
-mln_fun_v2v_abs\
-mln_fun_v2v_linear\
-mln_fun_v2v_convert\
-mln_fun_v2v_rgb_to_hsi\
-mln_fun_v2v_dec\
-mln_fun_v2v_cast\
-mln_fun_v2v_id\
-mln_fun_v2v_enc\
-mln_fun_v2v_saturate\
-mln_fun_essential\
-mln_fun_p2b_all\
-mln_fun_p2b_big_chess\
-mln_fun_p2b_essential\
-mln_fun_p2b_has\
-mln_fun_p2b_chess\
-mln_fun_c\
-mln_fun_i2v_all_to\
-mln_fun_i2v_all\
-mln_fun_i2v_essential\
-mln_fun_i2v_array\
-mln_fun_x2v_all\
-mln_fun_x2v_l1_norm\
-mln_fun_x2v_essential\
-mln_fun_x2v_linear\
-mln_fun_x2v_bilinear\
-mln_fun_x2v_nneighbor\
-mln_fun_cast\
-mln_fun_l2l_all\
-mln_fun_l2l_essential\
-mln_fun_l2l_relabel\
-mln_fun_ops\
-mln_norm_all\
-mln_norm_essential\
-mln_norm_linfty\
-mln_norm_l1\
-mln_norm_l2\
-mln_metal_is\
-mln_metal_is_a\
-mln_metal_array3d\
-mln_metal_if\
-mln_metal_same_coord\
-mln_metal_ands\
-mln_metal_goes_to\
-mln_metal_is_not_ref\
-mln_metal_has_neighborhood\
-mln_metal_equal\
-mln_metal_all\
-mln_metal_unref\
-mln_metal_math_sqrt\
-mln_metal_math_root\
-mln_metal_math_all\
-mln_metal_math_pow\
-mln_metal_math_max\
-mln_metal_unqualif\
-mln_metal_array2d\
-mln_metal_bool\
-mln_metal_is_unqualif\
-mln_metal_not_equal\
-mln_metal_templated_by\
-mln_metal_is_const\
-mln_metal_same_point\
-mln_metal_is_not_a\
-mln_metal_int\
-mln_metal_abort\
-mln_metal_essential\
-mln_metal_ref\
-mln_metal_array1d\
-mln_metal_unconst\
-mln_metal_none\
-mln_metal_is_not_const\
-mln_metal_vec\
-mln_metal_is_not\
-mln_metal_const\
-mln_metal_converts_to\
-mln_metal_fix_return\
-mln_metal_bexpr\
-mln_metal_array\
-mln_metal_ret\
-mln_metal_mat\
-mln_metal_is_ref\
-mln_metal_unptr\
-mln_+__proto___fake_run\
-mln_+__proto___fake_utils\
-mln_+__proto___fake_array\
-mln_level_+memo_fill\
-mln_level_assign\
-mln_level_stretch\
-mln_level_to_enc\
-mln_level_all\
-mln_level_median\
-mln_level_compare\
-mln_level_approx_all\
-mln_level_approx_median\
-mln_level_approx_essential\
-mln_level_paste\
-mln_level_fast_median\
-mln_level_replace\
-mln_level_essential\
-mln_level_transform\
-mln_level_abs\
-mln_level_sort_psites\
-mln_level_memcpy_\
-mln_level_update\
-mln_level_was_median\
-mln_level_fill\
-mln_level_fill_with_image\
-mln_level_convert\
-mln_level_fill_with_value\
-mln_level_naive_all\
-mln_level_naive_median\
-mln_level_naive_essential\
-mln_level_compute\
-mln_level_memset_\
-mln_level_apply\
-mln_level_transform_inplace\
-mln_level_saturate\
-mln_subsampling_all\
+mln_debug_format\
+mln_debug_println\
+mln_debug_essential\
+mln_estim_min_max\
+mln_estim_all\
+mln_estim_sum\
+mln_estim_mean\
+mln_estim_essential\
+mln_set_uni\
+mln_set_inter\
+mln_set_all\
+mln_set_get\
+mln_set_sym_diff\
+mln_set_has\
+mln_set_diff\
+mln_set_compute\
+mln_set_essential\
+mln_border_adjust\
+mln_border_duplicate\
+mln_border_find\
+mln_border_thickness\
+mln_border_all\
+mln_border_mirror\
+mln_border_get\
+mln_border_equalize\
+mln_border_resize\
+mln_border_fill\
+mln_border_essential\
mln_subsampling_gaussian_subsampling\
-mln_subsampling_essential\
+mln_subsampling_all\
mln_subsampling_subsampling\
-mln_logical_all\
-mln_logical_includes\
-mln_logical_and\
-mln_logical_and_not\
-mln_logical_or\
-mln_logical_not\
-mln_logical_essential\
-mln_logical_xor\
-mln_linear_lap\
-mln_linear_all\
-mln_linear_convolve\
-mln_linear_gaussian\
-mln_linear_essential\
-mln_linear_log\
-mln_linear_ch_convolve\
-mln_linear_local_convolve\
-mln_linear_convolve_directional\
-mln_linear_convolve_2x1d\
-mln_linear_sobel_2d\
-mln_display_all\
-mln_display_essential\
-mln_pw_all\
-mln_pw_image\
-mln_pw_cst\
-mln_pw_var\
-mln_pw_essential\
-mln_pw_value\
-mln_geom_size1d\
-mln_geom_size2d\
-mln_geom_bbox\
-mln_geom_nslis\
-mln_geom_ninds\
-mln_geom_all\
-mln_geom_seeds2tiling\
-mln_geom_min_row\
-mln_geom_ncols\
-mln_geom_nrows\
-mln_geom_delta\
-mln_geom_nsites\
-mln_geom_max_col\
-mln_geom_seeds2tiling_roundness\
-mln_geom_min_ind\
-mln_geom_max_sli\
-mln_geom_max_row\
-mln_geom_essential\
-mln_geom_pmin_pmax\
-mln_geom_min_sli\
-mln_geom_resize\
-mln_geom_max_ind\
-mln_geom_chamfer\
-mln_geom_min_col\
-mln_geom_size3d\
-mln_geom_complex_geometry\
-mln_registration_multiscale\
-mln_registration_all\
-mln_registration_internal_rms\
-mln_registration_icp\
-mln_registration_registration\
-mln_registration_essential\
-mln_registration_get_rtransf\
-mln_registration_get_rot\
-mln_literal_white\
-mln_literal_all\
-mln_literal_black\
-mln_literal_grays\
-mln_literal_zero\
-mln_literal_essential\
-mln_literal_origin\
-mln_literal_one\
-mln_literal_colors\
-mln_literal_ops
+mln_subsampling_essential
-mln_trace_quiet_SOURCES = mln_trace_quiet.cc
-mln_trace_resume_SOURCES = mln_trace_resume.cc
+mln_histo_all_SOURCES = mln_histo_all.cc
+mln_histo_data_SOURCES = mln_histo_data.cc
+mln_histo_compute_SOURCES = mln_histo_compute.cc
+mln_histo_essential_SOURCES = mln_histo_essential.cc
+mln_geom_pmin_pmax_SOURCES = mln_geom_pmin_pmax.cc
+mln_geom_max_row_SOURCES = mln_geom_max_row.cc
+mln_geom_chamfer_SOURCES = mln_geom_chamfer.cc
+mln_geom_min_row_SOURCES = mln_geom_min_row.cc
+mln_geom_seeds2tiling_SOURCES = mln_geom_seeds2tiling.cc
+mln_geom_size1d_SOURCES = mln_geom_size1d.cc
+mln_geom_all_SOURCES = mln_geom_all.cc
+mln_geom_size2d_SOURCES = mln_geom_size2d.cc
+mln_geom_max_ind_SOURCES = mln_geom_max_ind.cc
+mln_geom_max_col_SOURCES = mln_geom_max_col.cc
+mln_geom_size3d_SOURCES = mln_geom_size3d.cc
+mln_geom_ninds_SOURCES = mln_geom_ninds.cc
+mln_geom_nslis_SOURCES = mln_geom_nslis.cc
+mln_geom_delta_SOURCES = mln_geom_delta.cc
+mln_geom_resize_SOURCES = mln_geom_resize.cc
+mln_geom_nsites_SOURCES = mln_geom_nsites.cc
+mln_geom_min_col_SOURCES = mln_geom_min_col.cc
+mln_geom_complex_geometry_SOURCES = mln_geom_complex_geometry.cc
+mln_geom_ncols_SOURCES = mln_geom_ncols.cc
+mln_geom_nrows_SOURCES = mln_geom_nrows.cc
+mln_geom_min_ind_SOURCES = mln_geom_min_ind.cc
+mln_geom_bbox_SOURCES = mln_geom_bbox.cc
+mln_geom_seeds2tiling_roundness_SOURCES = mln_geom_seeds2tiling_roundness.cc
+mln_geom_min_sli_SOURCES = mln_geom_min_sli.cc
+mln_geom_essential_SOURCES = mln_geom_essential.cc
+mln_geom_max_sli_SOURCES = mln_geom_max_sli.cc
+mln_draw_box_SOURCES = mln_draw_box.cc
+mln_draw_all_SOURCES = mln_draw_all.cc
+mln_draw_plot_SOURCES = mln_draw_plot.cc
+mln_draw_line_SOURCES = mln_draw_line.cc
+mln_draw_essential_SOURCES = mln_draw_essential.cc
+mln_pw_image_SOURCES = mln_pw_image.cc
+mln_pw_all_SOURCES = mln_pw_all.cc
+mln_pw_value_SOURCES = mln_pw_value.cc
+mln_pw_cst_SOURCES = mln_pw_cst.cc
+mln_pw_var_SOURCES = mln_pw_var.cc
+mln_pw_essential_SOURCES = mln_pw_essential.cc
+mln_literal_zero_SOURCES = mln_literal_zero.cc
+mln_literal_ops_SOURCES = mln_literal_ops.cc
+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_black_SOURCES = mln_literal_black.cc
+mln_literal_one_SOURCES = mln_literal_one.cc
+mln_literal_white_SOURCES = mln_literal_white.cc
+mln_literal_essential_SOURCES = mln_literal_essential.cc
+mln_registration_get_rtransf_SOURCES = mln_registration_get_rtransf.cc
+mln_registration_internal_rms_SOURCES = mln_registration_internal_rms.cc
+mln_registration_get_rot_SOURCES = mln_registration_get_rot.cc
+mln_registration_all_SOURCES = mln_registration_all.cc
+mln_registration_multiscale_SOURCES = mln_registration_multiscale.cc
+mln_registration_registration_SOURCES = mln_registration_registration.cc
+mln_registration_essential_SOURCES = mln_registration_essential.cc
+mln_registration_icp_SOURCES = mln_registration_icp.cc
+mln_util_graph_SOURCES = mln_util_graph.cc
+mln_util_max_SOURCES = mln_util_max.cc
+mln_util_lazy_set_SOURCES = mln_util_lazy_set.cc
+mln_util_set_SOURCES = mln_util_set.cc
+mln_util_tree_to_image_SOURCES = mln_util_tree_to_image.cc
+mln_util_lemmings_SOURCES = mln_util_lemmings.cc
+mln_util_greater_point_SOURCES = mln_util_greater_point.cc
+mln_util_internal_graph_iter_base_SOURCES = mln_util_internal_graph_iter_base.cc
+mln_util_internal_boost_graph_access_SOURCES = mln_util_internal_boost_graph_access.cc
+mln_util_internal_boost_graph_structure_SOURCES = mln_util_internal_boost_graph_structure.cc
+mln_util_internal_graph_iter_SOURCES = mln_util_internal_graph_iter.cc
+mln_util_internal_graph_nbh_iter_SOURCES = mln_util_internal_graph_nbh_iter.cc
+mln_util_internal_vertex_impl_SOURCES = mln_util_internal_vertex_impl.cc
+mln_util_internal_edge_impl_SOURCES = mln_util_internal_edge_impl.cc
+mln_util_internal_graph_base_SOURCES = mln_util_internal_graph_base.cc
+mln_util_internal_boost_graph_SOURCES = mln_util_internal_boost_graph.cc
+mln_util_internal_graph_nbh_iter_base_SOURCES = mln_util_internal_graph_nbh_iter_base.cc
+mln_util_internal_boost_graph_property_SOURCES = mln_util_internal_boost_graph_property.cc
+mln_util_ord_pair_SOURCES = mln_util_ord_pair.cc
+mln_util_edge_SOURCES = mln_util_edge.cc
+mln_util_all_SOURCES = mln_util_all.cc
+mln_util_dindex_SOURCES = mln_util_dindex.cc
+mln_util_tracked_ptr_SOURCES = mln_util_tracked_ptr.cc
+mln_util_ignore_SOURCES = mln_util_ignore.cc
+mln_util_greater_psite_SOURCES = mln_util_greater_psite.cc
+mln_util_timer_SOURCES = mln_util_timer.cc
+mln_util_yes_SOURCES = mln_util_yes.cc
+mln_util_line_graph_SOURCES = mln_util_line_graph.cc
+mln_util_ord_SOURCES = mln_util_ord.cc
+mln_util_tree_fast_to_image_SOURCES = mln_util_tree_fast_to_image.cc
+mln_util_tree_SOURCES = mln_util_tree.cc
+mln_util_index_SOURCES = mln_util_index.cc
+mln_util_multi_site_SOURCES = mln_util_multi_site.cc
+mln_util_branch_iter_SOURCES = mln_util_branch_iter.cc
+mln_util_branch_iter_ind_SOURCES = mln_util_branch_iter_ind.cc
+mln_util_tree_to_fast_SOURCES = mln_util_tree_to_fast.cc
+mln_util_array_SOURCES = mln_util_array.cc
+mln_util_vertex_SOURCES = mln_util_vertex.cc
+mln_util_pix_SOURCES = mln_util_pix.cc
+mln_util_tree_fast_SOURCES = mln_util_tree_fast.cc
+mln_util_site_pair_SOURCES = mln_util_site_pair.cc
+mln_util_nil_SOURCES = mln_util_nil.cc
+mln_util_eat_SOURCES = mln_util_eat.cc
+mln_util_essential_SOURCES = mln_util_essential.cc
+mln_tag_init_SOURCES = mln_tag_init.cc
+mln_tag_skeleton_SOURCES = mln_tag_skeleton.cc
+mln_tag_all_SOURCES = mln_tag_all.cc
+mln_tag_essential_SOURCES = mln_tag_essential.cc
mln_trace_entering_SOURCES = mln_trace_entering.cc
mln_trace_all_SOURCES = mln_trace_all.cc
-mln_trace_stop_SOURCES = mln_trace_stop.cc
-mln_trace_essential_SOURCES = mln_trace_essential.cc
mln_trace_warning_SOURCES = mln_trace_warning.cc
mln_trace_exiting_SOURCES = mln_trace_exiting.cc
-mln_tag_all_SOURCES = mln_tag_all.cc
-mln_tag_essential_SOURCES = mln_tag_essential.cc
-mln_tag_init_SOURCES = mln_tag_init.cc
-mln_tag_skeleton_SOURCES = mln_tag_skeleton.cc
+mln_trace_resume_SOURCES = mln_trace_resume.cc
+mln_trace_quiet_SOURCES = mln_trace_quiet.cc
+mln_trace_stop_SOURCES = mln_trace_stop.cc
+mln_trace_essential_SOURCES = mln_trace_essential.cc
+mln_make_graph_SOURCES = mln_make_graph.cc
+mln_make_double_neighb2d_SOURCES = mln_make_double_neighb2d.cc
+mln_make_dpoint2d_h_SOURCES = mln_make_dpoint2d_h.cc
mln_make_w_window_SOURCES = mln_make_w_window.cc
+mln_make_image_SOURCES = mln_make_image.cc
+mln_make_vec_SOURCES = mln_make_vec.cc
mln_make_all_SOURCES = mln_make_all.cc
+mln_make_dual_neighb_SOURCES = mln_make_dual_neighb.cc
+mln_make_w_window3d_SOURCES = mln_make_w_window3d.cc
+mln_make_mat_SOURCES = mln_make_mat.cc
mln_make_win_chamfer_SOURCES = mln_make_win_chamfer.cc
-mln_make_image_SOURCES = mln_make_image.cc
-mln_make_box2d_h_SOURCES = mln_make_box2d_h.cc
-mln_make_w_window_directional_SOURCES = mln_make_w_window_directional.cc
-mln_make_point2d_h_SOURCES = mln_make_point2d_h.cc
-mln_make_+win_multiple_SOURCES = mln_make_+win_multiple.cc
+mln_make_w_window2d_int_SOURCES = mln_make_w_window2d_int.cc
+mln_make_box1d_SOURCES = mln_make_box1d.cc
mln_make_voronoi_SOURCES = mln_make_voronoi.cc
-mln_make_pix_SOURCES = mln_make_pix.cc
+mln_make_box2d_SOURCES = mln_make_box2d.cc
mln_make_w_window2d_SOURCES = mln_make_w_window2d.cc
+mln_make_box3d_SOURCES = mln_make_box3d.cc
+mln_make_relabelfun_SOURCES = mln_make_relabelfun.cc
+mln_make_pixel_SOURCES = mln_make_pixel.cc
+mln_make_pix_SOURCES = mln_make_pix.cc
+mln_make_box2d_h_SOURCES = mln_make_box2d_h.cc
mln_make_w_window1d_SOURCES = mln_make_w_window1d.cc
-mln_make_graph_SOURCES = mln_make_graph.cc
-mln_make_dpoint2d_h_SOURCES = mln_make_dpoint2d_h.cc
-mln_make_w_window2d_int_SOURCES = mln_make_w_window2d_int.cc
mln_make_image2d_SOURCES = mln_make_image2d.cc
+mln_make_w_window_directional_SOURCES = mln_make_w_window_directional.cc
mln_make_w_window3d_int_SOURCES = mln_make_w_window3d_int.cc
-mln_make_w_window3d_SOURCES = mln_make_w_window3d.cc
mln_make_essential_SOURCES = mln_make_essential.cc
-mln_make_box1d_SOURCES = mln_make_box1d.cc
-mln_make_relabelfun_SOURCES = mln_make_relabelfun.cc
-mln_make_double_neighb2d_SOURCES = mln_make_double_neighb2d.cc
mln_make_w_window1d_int_SOURCES = mln_make_w_window1d_int.cc
-mln_make_dual_neighb_SOURCES = mln_make_dual_neighb.cc
-mln_make_pixel_SOURCES = mln_make_pixel.cc
-mln_make_vec_SOURCES = mln_make_vec.cc
-mln_make_mat_SOURCES = mln_make_mat.cc
-mln_make_box2d_SOURCES = mln_make_box2d.cc
-mln_make_box3d_SOURCES = mln_make_box3d.cc
-mln_histo_all_SOURCES = mln_histo_all.cc
-mln_histo_data_SOURCES = mln_histo_data.cc
-mln_histo_essential_SOURCES = mln_histo_essential.cc
-mln_histo_compute_SOURCES = mln_histo_compute.cc
-mln_essential_2d_SOURCES = mln_essential_2d.cc
+mln_make_point2d_h_SOURCES = mln_make_point2d_h.cc
+mln_display_all_SOURCES = mln_display_all.cc
+mln_display_essential_SOURCES = mln_display_essential.cc
+mln_extension_adjust_SOURCES = mln_extension_adjust.cc
+mln_extension_duplicate_SOURCES = mln_extension_duplicate.cc
+mln_extension_adjust_duplicate_SOURCES = mln_extension_adjust_duplicate.cc
+mln_extension_all_SOURCES = mln_extension_all.cc
+mln_extension_adjust_fill_SOURCES = mln_extension_adjust_fill.cc
+mln_extension_fill_SOURCES = mln_extension_fill.cc
+mln_extension_essential_SOURCES = mln_extension_essential.cc
+mln_fun_p2b_chess_SOURCES = mln_fun_p2b_chess.cc
+mln_fun_p2b_all_SOURCES = mln_fun_p2b_all.cc
+mln_fun_p2b_has_SOURCES = mln_fun_p2b_has.cc
+mln_fun_p2b_big_chess_SOURCES = mln_fun_p2b_big_chess.cc
+mln_fun_p2b_essential_SOURCES = mln_fun_p2b_essential.cc
+mln_fun_p2p_mirror_SOURCES = mln_fun_p2p_mirror.cc
+mln_fun_x2p_closest_point_SOURCES = mln_fun_x2p_closest_point.cc
+mln_fun_x2p_all_SOURCES = mln_fun_x2p_all.cc
+mln_fun_x2p_essential_SOURCES = mln_fun_x2p_essential.cc
+mln_fun_ops_SOURCES = mln_fun_ops.cc
+mln_fun_c_SOURCES = mln_fun_c.cc
+mln_fun_vv2v_max_SOURCES = mln_fun_vv2v_max.cc
+mln_fun_vv2v_lor_SOURCES = mln_fun_vv2v_lor.cc
+mln_fun_vv2v_land_not_SOURCES = mln_fun_vv2v_land_not.cc
+mln_fun_vv2v_vec_SOURCES = mln_fun_vv2v_vec.cc
+mln_fun_vv2v_all_SOURCES = mln_fun_vv2v_all.cc
+mln_fun_vv2v_macros_SOURCES = mln_fun_vv2v_macros.cc
+mln_fun_vv2v_lxor_SOURCES = mln_fun_vv2v_lxor.cc
+mln_fun_vv2v_diff_abs_SOURCES = mln_fun_vv2v_diff_abs.cc
+mln_fun_vv2v_land_SOURCES = mln_fun_vv2v_land.cc
+mln_fun_vv2v_min_SOURCES = mln_fun_vv2v_min.cc
+mln_fun_vv2v_essential_SOURCES = mln_fun_vv2v_essential.cc
+mln_fun_internal_array_base_SOURCES = mln_fun_internal_array_base.cc
+mln_fun_internal_x2x_linear_impl_SOURCES = mln_fun_internal_x2x_linear_impl.cc
+mln_fun_internal_selector_SOURCES = mln_fun_internal_selector.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
+mln_fun_p2v_all_SOURCES = mln_fun_p2v_all.cc
+mln_fun_p2v_essential_SOURCES = mln_fun_p2v_essential.cc
+mln_fun_all_SOURCES = mln_fun_all.cc
+mln_fun_v2b_lnot_SOURCES = mln_fun_v2b_lnot.cc
+mln_fun_v2b_all_SOURCES = mln_fun_v2b_all.cc
+mln_fun_v2b_threshold_SOURCES = mln_fun_v2b_threshold.cc
+mln_fun_v2b_essential_SOURCES = mln_fun_v2b_essential.cc
+mln_fun_v2v_norm_SOURCES = mln_fun_v2v_norm.cc
+mln_fun_v2v_linear_SOURCES = mln_fun_v2v_linear.cc
+mln_fun_v2v_id_SOURCES = mln_fun_v2v_id.cc
+mln_fun_v2v_saturate_SOURCES = mln_fun_v2v_saturate.cc
+mln_fun_v2v_inc_SOURCES = mln_fun_v2v_inc.cc
+mln_fun_v2v_all_SOURCES = mln_fun_v2v_all.cc
+mln_fun_v2v_dec_SOURCES = mln_fun_v2v_dec.cc
+mln_fun_v2v_abs_SOURCES = mln_fun_v2v_abs.cc
+mln_fun_v2v_cast_SOURCES = mln_fun_v2v_cast.cc
+mln_fun_v2v_rgb_to_hsi_SOURCES = mln_fun_v2v_rgb_to_hsi.cc
+mln_fun_v2v_enc_SOURCES = mln_fun_v2v_enc.cc
+mln_fun_v2v_convert_SOURCES = mln_fun_v2v_convert.cc
+mln_fun_v2v_essential_SOURCES = mln_fun_v2v_essential.cc
+mln_fun_cast_SOURCES = mln_fun_cast.cc
+mln_fun_i2v_all_SOURCES = mln_fun_i2v_all.cc
+mln_fun_i2v_array_SOURCES = mln_fun_i2v_array.cc
+mln_fun_i2v_all_to_SOURCES = mln_fun_i2v_all_to.cc
+mln_fun_i2v_essential_SOURCES = mln_fun_i2v_essential.cc
+mln_fun_l2l_relabel_SOURCES = mln_fun_l2l_relabel.cc
+mln_fun_l2l_all_SOURCES = mln_fun_l2l_all.cc
+mln_fun_l2l_essential_SOURCES = mln_fun_l2l_essential.cc
+mln_fun_x2x_composed_SOURCES = mln_fun_x2x_composed.cc
+mln_fun_x2x_all_SOURCES = mln_fun_x2x_all.cc
+mln_fun_x2x_translation_SOURCES = mln_fun_x2x_translation.cc
+mln_fun_x2x_rotation_SOURCES = mln_fun_x2x_rotation.cc
+mln_fun_x2x_essential_SOURCES = mln_fun_x2x_essential.cc
+mln_fun_x2v_linear_SOURCES = mln_fun_x2v_linear.cc
+mln_fun_x2v_bilinear_SOURCES = mln_fun_x2v_bilinear.cc
+mln_fun_x2v_all_SOURCES = mln_fun_x2v_all.cc
+mln_fun_x2v_l1_norm_SOURCES = mln_fun_x2v_l1_norm.cc
+mln_fun_x2v_nneighbor_SOURCES = mln_fun_x2v_nneighbor.cc
+mln_fun_x2v_essential_SOURCES = mln_fun_x2v_essential.cc
+mln_fun_essential_SOURCES = mln_fun_essential.cc
+mln_all_SOURCES = mln_all.cc
+mln_convert_to_p_set_SOURCES = mln_convert_to_p_set.cc
+mln_convert_to_SOURCES = mln_convert_to.cc
+mln_convert_to_upper_window_SOURCES = mln_convert_to_upper_window.cc
+mln_convert_to_image_SOURCES = mln_convert_to_image.cc
+mln_convert_to_fun_SOURCES = mln_convert_to_fun.cc
+mln_convert_all_SOURCES = mln_convert_all.cc
+mln_convert_to_window_SOURCES = mln_convert_to_window.cc
+mln_convert_from_to_SOURCES = mln_convert_from_to.cc
+mln_convert_impl_from_value_to_value_SOURCES = mln_convert_impl_from_value_to_value.cc
+mln_convert_impl_all_SOURCES = mln_convert_impl_all.cc
+mln_convert_impl_from_image_to_site_set_SOURCES = mln_convert_impl_from_image_to_site_set.cc
+mln_convert_to_dpoint_SOURCES = mln_convert_to_dpoint.cc
+mln_convert_to_p_array_SOURCES = mln_convert_to_p_array.cc
+mln_convert_to_rgb_SOURCES = mln_convert_to_rgb.cc
+mln_convert_essential_SOURCES = mln_convert_essential.cc
+mln_value_float01_f_SOURCES = mln_value_float01_f.cc
+mln_value_float01_16_SOURCES = mln_value_float01_16.cc
+mln_value_lut_vec_SOURCES = mln_value_lut_vec.cc
+mln_value_glf_SOURCES = mln_value_glf.cc
+mln_value_other_SOURCES = mln_value_other.cc
+mln_value_graylevel_f_SOURCES = mln_value_graylevel_f.cc
+mln_value_aliases_SOURCES = mln_value_aliases.cc
+mln_value_label_16_SOURCES = mln_value_label_16.cc
+mln_value_ops_SOURCES = mln_value_ops.cc
+mln_value_set_SOURCES = mln_value_set.cc
+mln_value_int_u_sat_SOURCES = mln_value_int_u_sat.cc
+mln_value_float01_8_SOURCES = mln_value_float01_8.cc
+mln_value_int_u8_SOURCES = mln_value_int_u8.cc
+mln_value_equiv_SOURCES = mln_value_equiv.cc
+mln_value_internal_integer_SOURCES = mln_value_internal_integer.cc
+mln_value_internal_gray_f_SOURCES = mln_value_internal_gray_f.cc
+mln_value_internal_all_SOURCES = mln_value_internal_all.cc
+mln_value_internal_value_like_SOURCES = mln_value_internal_value_like.cc
+mln_value_internal_iterable_set_SOURCES = mln_value_internal_iterable_set.cc
+mln_value_internal_encoding_SOURCES = mln_value_internal_encoding.cc
+mln_value_internal_convert_SOURCES = mln_value_internal_convert.cc
+mln_value_internal_gray__SOURCES = mln_value_internal_gray_.cc
+mln_value_internal_essential_SOURCES = mln_value_internal_essential.cc
+mln_value_proxy_SOURCES = mln_value_proxy.cc
+mln_value_viter_SOURCES = mln_value_viter.cc
+mln_value_graylevel_SOURCES = mln_value_graylevel.cc
+mln_value_all_SOURCES = mln_value_all.cc
+mln_value_super_value_SOURCES = mln_value_super_value.cc
+mln_value_builtin_symbolics_SOURCES = mln_value_builtin_symbolics.cc
+mln_value_builtin_ops_SOURCES = mln_value_builtin_ops.cc
+mln_value_builtin_all_SOURCES = mln_value_builtin_all.cc
+mln_value_builtin_promotions_SOURCES = mln_value_builtin_promotions.cc
+mln_value_builtin_integers_SOURCES = mln_value_builtin_integers.cc
+mln_value_builtin_floatings_SOURCES = mln_value_builtin_floatings.cc
+mln_value_builtin_essential_SOURCES = mln_value_builtin_essential.cc
+mln_value_sign_SOURCES = mln_value_sign.cc
+mln_value_hsi_SOURCES = mln_value_hsi.cc
+mln_value_interval_SOURCES = mln_value_interval.cc
+mln_value_gl16_SOURCES = mln_value_gl16.cc
+mln_value_scalar_SOURCES = mln_value_scalar.cc
+mln_value_float01_SOURCES = mln_value_float01.cc
+mln_value_cast_SOURCES = mln_value_cast.cc
+mln_value_int_u_SOURCES = mln_value_int_u.cc
+mln_value_int_s8_SOURCES = mln_value_int_s8.cc
+mln_value_int_s16_SOURCES = mln_value_int_s16.cc
+mln_value_int_u16_SOURCES = mln_value_int_u16.cc
+mln_value_label_SOURCES = mln_value_label.cc
+mln_value_rgb_SOURCES = mln_value_rgb.cc
+mln_value_stack_SOURCES = mln_value_stack.cc
+mln_value_concept_integer_SOURCES = mln_value_concept_integer.cc
+mln_value_concept_structured_SOURCES = mln_value_concept_structured.cc
+mln_value_concept_built_in_SOURCES = mln_value_concept_built_in.cc
+mln_value_concept_all_SOURCES = mln_value_concept_all.cc
+mln_value_concept_scalar_SOURCES = mln_value_concept_scalar.cc
+mln_value_concept_data_SOURCES = mln_value_concept_data.cc
+mln_value_concept_floating_SOURCES = mln_value_concept_floating.cc
+mln_value_concept_symbolic_SOURCES = mln_value_concept_symbolic.cc
+mln_value_concept_vectorial_SOURCES = mln_value_concept_vectorial.cc
+mln_value_concept_essential_SOURCES = mln_value_concept_essential.cc
+mln_value_int_s_SOURCES = mln_value_int_s.cc
+mln_value_rgb8_SOURCES = mln_value_rgb8.cc
+mln_value_int_s32_SOURCES = mln_value_int_s32.cc
+mln_value_float01__SOURCES = mln_value_float01_.cc
+mln_value_rgb16_SOURCES = mln_value_rgb16.cc
+mln_value_int_u32_SOURCES = mln_value_int_u32.cc
+mln_value_gl8_SOURCES = mln_value_gl8.cc
+mln_value_label_8_SOURCES = mln_value_label_8.cc
+mln_value_essential_SOURCES = mln_value_essential.cc
+mln_accu_tuple_SOURCES = mln_accu_tuple.cc
+mln_accu_min_h_SOURCES = mln_accu_min_h.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
+mln_accu_transform_stop_SOURCES = mln_accu_transform_stop.cc
+mln_accu_maj_h_SOURCES = mln_accu_maj_h.cc
+mln_accu_min_max_SOURCES = mln_accu_min_max.cc
+mln_accu_internal_base_SOURCES = mln_accu_internal_base.cc
+mln_accu_transform_snake_SOURCES = mln_accu_transform_snake.cc
+mln_accu_rank_high_quant_SOURCES = mln_accu_rank_high_quant.cc
+mln_accu_count_SOURCES = mln_accu_count.cc
+mln_accu_median_h_SOURCES = mln_accu_median_h.cc
+mln_accu_all_SOURCES = mln_accu_all.cc
+mln_accu_land_basic_SOURCES = mln_accu_land_basic.cc
+mln_accu_p_SOURCES = mln_accu_p.cc
+mln_accu_transform_SOURCES = mln_accu_transform.cc
+mln_accu_median_alt_SOURCES = mln_accu_median_alt.cc
+mln_accu_volume_SOURCES = mln_accu_volume.cc
+mln_accu_sum_SOURCES = mln_accu_sum.cc
+mln_accu_height_SOURCES = mln_accu_height.cc
+mln_accu_land_SOURCES = mln_accu_land.cc
+mln_accu_take_SOURCES = mln_accu_take.cc
+mln_accu_histo_SOURCES = mln_accu_histo.cc
+mln_accu_pair_SOURCES = mln_accu_pair.cc
+mln_accu_count_adjacent_vertices_SOURCES = mln_accu_count_adjacent_vertices.cc
+mln_accu_convolve_SOURCES = mln_accu_convolve.cc
+mln_accu_v_SOURCES = mln_accu_v.cc
+mln_accu_rank_bool_SOURCES = mln_accu_rank_bool.cc
+mln_accu_min_SOURCES = mln_accu_min.cc
+mln_accu_transform_directional_SOURCES = mln_accu_transform_directional.cc
+mln_accu_compute_SOURCES = mln_accu_compute.cc
+mln_accu_mean_SOURCES = mln_accu_mean.cc
+mln_accu_lor_basic_SOURCES = mln_accu_lor_basic.cc
+mln_accu_transform_diagonal_SOURCES = mln_accu_transform_diagonal.cc
+mln_accu_nil_SOURCES = mln_accu_nil.cc
+mln_accu_bbox_SOURCES = mln_accu_bbox.cc
+mln_accu_center_SOURCES = mln_accu_center.cc
+mln_accu_line_SOURCES = mln_accu_line.cc
+mln_accu_essential_SOURCES = mln_accu_essential.cc
+mln_accu_max_h_SOURCES = mln_accu_max_h.cc
+mln_level_compare_SOURCES = mln_level_compare.cc
+mln_level_memset__SOURCES = mln_level_memset_.cc
+mln_level_transform_inplace_SOURCES = mln_level_transform_inplace.cc
+mln_level_replace_SOURCES = mln_level_replace.cc
+mln_level_memcpy__SOURCES = mln_level_memcpy_.cc
+mln_level_apply_SOURCES = mln_level_apply.cc
+mln_level_approx_all_SOURCES = mln_level_approx_all.cc
+mln_level_approx_essential_SOURCES = mln_level_approx_essential.cc
+mln_level_approx_median_SOURCES = mln_level_approx_median.cc
+mln_level_saturate_SOURCES = mln_level_saturate.cc
+mln_level_all_SOURCES = mln_level_all.cc
+mln_level_paste_SOURCES = mln_level_paste.cc
+mln_level_fast_median_SOURCES = mln_level_fast_median.cc
+mln_level_abs_SOURCES = mln_level_abs.cc
+mln_level_fill_with_image_SOURCES = mln_level_fill_with_image.cc
+mln_level_transform_SOURCES = mln_level_transform.cc
+mln_level_fill_with_value_SOURCES = mln_level_fill_with_value.cc
+mln_level_stretch_SOURCES = mln_level_stretch.cc
+mln_level_was_median_SOURCES = mln_level_was_median.cc
+mln_level_compute_SOURCES = mln_level_compute.cc
+mln_level_convert_SOURCES = mln_level_convert.cc
+mln_level_to_enc_SOURCES = mln_level_to_enc.cc
+mln_level_naive_all_SOURCES = mln_level_naive_all.cc
+mln_level_naive_essential_SOURCES = mln_level_naive_essential.cc
+mln_level_naive_median_SOURCES = mln_level_naive_median.cc
+mln_level_sort_psites_SOURCES = mln_level_sort_psites.cc
+mln_level_update_SOURCES = mln_level_update.cc
+mln_level_fill_SOURCES = mln_level_fill.cc
+mln_level_essential_SOURCES = mln_level_essential.cc
+mln_level_assign_SOURCES = mln_level_assign.cc
+mln_level_median_SOURCES = mln_level_median.cc
+mln_math_jacobi_SOURCES = mln_math_jacobi.cc
+mln_math_max_SOURCES = mln_math_max.cc
+mln_math_sqr_SOURCES = mln_math_sqr.cc
+mln_math_all_SOURCES = mln_math_all.cc
+mln_math_sign_SOURCES = mln_math_sign.cc
+mln_math_abs_SOURCES = mln_math_abs.cc
+mln_math_diff_abs_SOURCES = mln_math_diff_abs.cc
+mln_math_round_SOURCES = mln_math_round.cc
+mln_math_min_SOURCES = mln_math_min.cc
+mln_math_sqrt_SOURCES = mln_math_sqrt.cc
+mln_math_essential_SOURCES = mln_math_essential.cc
+mln_math_round_sat_SOURCES = mln_math_round_sat.cc
+mln_binarization_includes_SOURCES = mln_binarization_includes.cc
+mln_binarization_all_SOURCES = mln_binarization_all.cc
+mln_binarization_binarization_SOURCES = mln_binarization_binarization.cc
+mln_binarization_threshold_SOURCES = mln_binarization_threshold.cc
+mln_binarization_essential_SOURCES = mln_binarization_essential.cc
+mln_trait_site_set_props_SOURCES = mln_trait_site_set_props.cc
+mln_trait_site_set_print_SOURCES = mln_trait_site_set_print.cc
+mln_trait_promote_SOURCES = mln_trait_promote.cc
+mln_trait_solve_binary_SOURCES = mln_trait_solve_binary.cc
+mln_trait_value__SOURCES = mln_trait_value_.cc
+mln_trait_all_SOURCES = mln_trait_all.cc
+mln_trait_value_all_SOURCES = mln_trait_value_all.cc
+mln_trait_value_nature_SOURCES = mln_trait_value_nature.cc
+mln_trait_value_quant_SOURCES = mln_trait_value_quant.cc
+mln_trait_value_kind_SOURCES = mln_trait_value_kind.cc
+mln_trait_value_print_SOURCES = mln_trait_value_print.cc
+mln_trait_value_essential_SOURCES = mln_trait_value_essential.cc
+mln_trait_images_SOURCES = mln_trait_images.cc
+mln_trait_window_props_SOURCES = mln_trait_window_props.cc
+mln_trait_window_print_SOURCES = mln_trait_window_print.cc
+mln_trait_ch_value_SOURCES = mln_trait_ch_value.cc
+mln_trait_solve_SOURCES = mln_trait_solve.cc
+mln_trait_solve_unary_SOURCES = mln_trait_solve_unary.cc
+mln_trait_op_postdec_SOURCES = mln_trait_op_postdec.cc
+mln_trait_op_mod_SOURCES = mln_trait_op_mod.cc
+mln_trait_op_lor_SOURCES = mln_trait_op_lor.cc
+mln_trait_op_neq_SOURCES = mln_trait_op_neq.cc
+mln_trait_op_plus_SOURCES = mln_trait_op_plus.cc
+mln_trait_op_xor_SOURCES = mln_trait_op_xor.cc
+mln_trait_op_all_SOURCES = mln_trait_op_all.cc
+mln_trait_op_geq_SOURCES = mln_trait_op_geq.cc
+mln_trait_op_uminus_SOURCES = mln_trait_op_uminus.cc
+mln_trait_op_not_SOURCES = mln_trait_op_not.cc
+mln_trait_op_times_SOURCES = mln_trait_op_times.cc
+mln_trait_op_less_SOURCES = mln_trait_op_less.cc
+mln_trait_op_decl_SOURCES = mln_trait_op_decl.cc
+mln_trait_op_ord_SOURCES = mln_trait_op_ord.cc
+mln_trait_op_and_SOURCES = mln_trait_op_and.cc
+mln_trait_op_or_SOURCES = mln_trait_op_or.cc
+mln_trait_op_predec_SOURCES = mln_trait_op_predec.cc
+mln_trait_op_minus_SOURCES = mln_trait_op_minus.cc
+mln_trait_op_div_SOURCES = mln_trait_op_div.cc
+mln_trait_op_leq_SOURCES = mln_trait_op_leq.cc
+mln_trait_op_preinc_SOURCES = mln_trait_op_preinc.cc
+mln_trait_op_greater_SOURCES = mln_trait_op_greater.cc
+mln_trait_op_postinc_SOURCES = mln_trait_op_postinc.cc
+mln_trait_op_uplus_SOURCES = mln_trait_op_uplus.cc
+mln_trait_op_essential_SOURCES = mln_trait_op_essential.cc
+mln_trait_op_eq_SOURCES = mln_trait_op_eq.cc
+mln_trait_concrete_SOURCES = mln_trait_concrete.cc
+mln_trait_windows_SOURCES = mln_trait_windows.cc
+mln_trait_site_sets_SOURCES = mln_trait_site_sets.cc
+mln_trait_image_from_grid_SOURCES = mln_trait_image_from_grid.cc
+mln_trait_undef_SOURCES = mln_trait_undef.cc
+mln_trait_image_props_SOURCES = mln_trait_image_props.cc
+mln_trait_image_print_SOURCES = mln_trait_image_print.cc
+mln_trait_neighborhood_SOURCES = mln_trait_neighborhood.cc
+mln_trait_essential_SOURCES = mln_trait_essential.cc
+mln_canvas_labeling_SOURCES = mln_canvas_labeling.cc
+mln_canvas_browsing_hyper_directional_SOURCES = mln_canvas_browsing_hyper_directional.cc
+mln_canvas_browsing_snake_generic_SOURCES = mln_canvas_browsing_snake_generic.cc
+mln_canvas_browsing_backdiagonal2d_SOURCES = mln_canvas_browsing_backdiagonal2d.cc
+mln_canvas_browsing_snake_vert_SOURCES = mln_canvas_browsing_snake_vert.cc
+mln_canvas_browsing_snake_fwd_SOURCES = mln_canvas_browsing_snake_fwd.cc
+mln_canvas_browsing_all_SOURCES = mln_canvas_browsing_all.cc
+mln_canvas_browsing_diagonal2d_SOURCES = mln_canvas_browsing_diagonal2d.cc
+mln_canvas_browsing_fwd_SOURCES = mln_canvas_browsing_fwd.cc
+mln_canvas_browsing_dir_struct_elt_incr_update_SOURCES = mln_canvas_browsing_dir_struct_elt_incr_update.cc
+mln_canvas_browsing_directional_SOURCES = mln_canvas_browsing_directional.cc
+mln_canvas_browsing_essential_SOURCES = mln_canvas_browsing_essential.cc
+mln_canvas_chamfer_SOURCES = mln_canvas_chamfer.cc
+mln_canvas_distance_geodesic_SOURCES = mln_canvas_distance_geodesic.cc
+mln_canvas_all_SOURCES = mln_canvas_all.cc
+mln_canvas_distance_front_SOURCES = mln_canvas_distance_front.cc
+mln_canvas_morpho_all_SOURCES = mln_canvas_morpho_all.cc
+mln_canvas_morpho_algebraic_union_find_SOURCES = mln_canvas_morpho_algebraic_union_find.cc
+mln_canvas_morpho_essential_SOURCES = mln_canvas_morpho_essential.cc
+mln_canvas_essential_SOURCES = mln_canvas_essential.cc
+mln_metal_is_const_SOURCES = mln_metal_is_const.cc
+mln_metal_none_SOURCES = mln_metal_none.cc
+mln_metal_equal_SOURCES = mln_metal_equal.cc
+mln_metal_unptr_SOURCES = mln_metal_unptr.cc
+mln_metal_not_equal_SOURCES = mln_metal_not_equal.cc
+mln_metal_is_ref_SOURCES = mln_metal_is_ref.cc
+mln_metal_ret_SOURCES = mln_metal_ret.cc
+mln_metal_unqualif_SOURCES = mln_metal_unqualif.cc
+mln_metal_is_not_SOURCES = mln_metal_is_not.cc
+mln_metal_vec_SOURCES = mln_metal_vec.cc
+mln_metal_is_SOURCES = mln_metal_is.cc
+mln_metal_bool_SOURCES = mln_metal_bool.cc
+mln_metal_all_SOURCES = mln_metal_all.cc
+mln_metal_math_pow_SOURCES = mln_metal_math_pow.cc
+mln_metal_math_max_SOURCES = mln_metal_math_max.cc
+mln_metal_math_all_SOURCES = mln_metal_math_all.cc
+mln_metal_math_root_SOURCES = mln_metal_math_root.cc
+mln_metal_math_sqrt_SOURCES = mln_metal_math_sqrt.cc
+mln_metal_mat_SOURCES = mln_metal_mat.cc
+mln_metal_is_not_const_SOURCES = mln_metal_is_not_const.cc
+mln_metal_fix_return_SOURCES = mln_metal_fix_return.cc
+mln_metal_ands_SOURCES = mln_metal_ands.cc
+mln_metal_const_SOURCES = mln_metal_const.cc
+mln_metal_is_unqualif_SOURCES = mln_metal_is_unqualif.cc
+mln_metal_unconst_SOURCES = mln_metal_unconst.cc
+mln_metal_bexpr_SOURCES = mln_metal_bexpr.cc
+mln_metal_array2d_SOURCES = mln_metal_array2d.cc
+mln_metal_is_not_a_SOURCES = mln_metal_is_not_a.cc
+mln_metal_is_a_SOURCES = mln_metal_is_a.cc
+mln_metal_array1d_SOURCES = mln_metal_array1d.cc
+mln_metal_if_SOURCES = mln_metal_if.cc
+mln_metal_unref_SOURCES = mln_metal_unref.cc
+mln_metal_array_SOURCES = mln_metal_array.cc
+mln_metal_ref_SOURCES = mln_metal_ref.cc
+mln_metal_same_point_SOURCES = mln_metal_same_point.cc
+mln_metal_int_SOURCES = mln_metal_int.cc
+mln_metal_abort_SOURCES = mln_metal_abort.cc
+mln_metal_same_coord_SOURCES = mln_metal_same_coord.cc
+mln_metal_templated_by_SOURCES = mln_metal_templated_by.cc
+mln_metal_has_neighborhood_SOURCES = mln_metal_has_neighborhood.cc
+mln_metal_goes_to_SOURCES = mln_metal_goes_to.cc
+mln_metal_is_not_ref_SOURCES = mln_metal_is_not_ref.cc
+mln_metal_converts_to_SOURCES = mln_metal_converts_to.cc
+mln_metal_essential_SOURCES = mln_metal_essential.cc
+mln_metal_array3d_SOURCES = mln_metal_array3d.cc
+mln_algebra_vec_SOURCES = mln_algebra_vec.cc
+mln_algebra_all_SOURCES = mln_algebra_all.cc
+mln_algebra_h_vec_SOURCES = mln_algebra_h_vec.cc
+mln_algebra_mat_SOURCES = mln_algebra_mat.cc
+mln_algebra_h_mat_SOURCES = mln_algebra_h_mat.cc
+mln_algebra_quat_SOURCES = mln_algebra_quat.cc
+mln_algebra_essential_SOURCES = mln_algebra_essential.cc
+mln_linear_convolve_2x1d_SOURCES = mln_linear_convolve_2x1d.cc
+mln_linear_all_SOURCES = mln_linear_all.cc
+mln_linear_ch_convolve_SOURCES = mln_linear_ch_convolve.cc
+mln_linear_gaussian_SOURCES = mln_linear_gaussian.cc
+mln_linear_convolve_SOURCES = mln_linear_convolve.cc
+mln_linear_sobel_2d_SOURCES = mln_linear_sobel_2d.cc
+mln_linear_local_convolve_SOURCES = mln_linear_local_convolve.cc
+mln_linear_lap_SOURCES = mln_linear_lap.cc
+mln_linear_convolve_directional_SOURCES = mln_linear_convolve_directional.cc
+mln_linear_log_SOURCES = mln_linear_log.cc
+mln_linear_essential_SOURCES = mln_linear_essential.cc
+mln_morpho_thinning_SOURCES = mln_morpho_thinning.cc
+mln_morpho_meyer_wst_SOURCES = mln_morpho_meyer_wst.cc
+mln_morpho_opening_SOURCES = mln_morpho_opening.cc
+mln_morpho_includes_SOURCES = mln_morpho_includes.cc
+mln_morpho_elementary_opening_SOURCES = mln_morpho_elementary_opening.cc
+mln_morpho_elementary_gradient_internal_SOURCES = mln_morpho_elementary_gradient_internal.cc
+mln_morpho_elementary_dilation_SOURCES = mln_morpho_elementary_dilation.cc
+mln_morpho_elementary_laplacian_SOURCES = mln_morpho_elementary_laplacian.cc
+mln_morpho_elementary_all_SOURCES = mln_morpho_elementary_all.cc
+mln_morpho_elementary_gradient_external_SOURCES = mln_morpho_elementary_gradient_external.cc
+mln_morpho_elementary_like_ero_fun_SOURCES = mln_morpho_elementary_like_ero_fun.cc
+mln_morpho_elementary_gradient_SOURCES = mln_morpho_elementary_gradient.cc
+mln_morpho_elementary_like_ero_set_SOURCES = mln_morpho_elementary_like_ero_set.cc
+mln_morpho_elementary_closing_SOURCES = mln_morpho_elementary_closing.cc
+mln_morpho_elementary_top_hat_SOURCES = mln_morpho_elementary_top_hat.cc
+mln_morpho_elementary_erosion_SOURCES = mln_morpho_elementary_erosion.cc
+mln_morpho_elementary_essential_SOURCES = mln_morpho_elementary_essential.cc
+mln_morpho_thin_fit_SOURCES = mln_morpho_thin_fit.cc
+mln_morpho_skeleton_constrained_SOURCES = mln_morpho_skeleton_constrained.cc
+mln_morpho_complementation_SOURCES = mln_morpho_complementation.cc
+mln_morpho_line_gradient_SOURCES = mln_morpho_line_gradient.cc
+mln_morpho_hit_or_miss_SOURCES = mln_morpho_hit_or_miss.cc
+mln_morpho_closing_height_SOURCES = mln_morpho_closing_height.cc
+mln_morpho_plus_SOURCES = mln_morpho_plus.cc
+mln_morpho_general_SOURCES = mln_morpho_general.cc
+mln_morpho_internal_elementary_SOURCES = mln_morpho_internal_elementary.cc
+mln_morpho_contrast_SOURCES = mln_morpho_contrast.cc
+mln_morpho_opening_area_SOURCES = mln_morpho_opening_area.cc
+mln_morpho_opening_height_SOURCES = mln_morpho_opening_height.cc
+mln_morpho_thickening_SOURCES = mln_morpho_thickening.cc
+mln_morpho_dilation_SOURCES = mln_morpho_dilation.cc
+mln_morpho_laplacian_SOURCES = mln_morpho_laplacian.cc
+mln_morpho_all_SOURCES = mln_morpho_all.cc
+mln_morpho_opening_attribute_SOURCES = mln_morpho_opening_attribute.cc
+mln_morpho_opening_volume_SOURCES = mln_morpho_opening_volume.cc
+mln_morpho_closing_area_on_vertices_SOURCES = mln_morpho_closing_area_on_vertices.cc
+mln_morpho_closing_volume_SOURCES = mln_morpho_closing_volume.cc
+mln_morpho_minus_SOURCES = mln_morpho_minus.cc
+mln_morpho_gradient_SOURCES = mln_morpho_gradient.cc
+mln_morpho_tree_max_SOURCES = mln_morpho_tree_max.cc
+mln_morpho_tree_compute_parent_SOURCES = mln_morpho_tree_compute_parent.cc
+mln_morpho_tree_all_SOURCES = mln_morpho_tree_all.cc
+mln_morpho_tree_utils_SOURCES = mln_morpho_tree_utils.cc
+mln_morpho_tree_data_SOURCES = mln_morpho_tree_data.cc
+mln_morpho_tree_compute_attribute_image_SOURCES = mln_morpho_tree_compute_attribute_image.cc
+mln_morpho_opening_area_on_vertices_SOURCES = mln_morpho_opening_area_on_vertices.cc
+mln_morpho_min_SOURCES = mln_morpho_min.cc
+mln_morpho_closing_SOURCES = mln_morpho_closing.cc
+mln_morpho_top_hat_SOURCES = mln_morpho_top_hat.cc
+mln_morpho_erosion_SOURCES = mln_morpho_erosion.cc
+mln_morpho_Rd_SOURCES = mln_morpho_Rd.cc
+mln_morpho_closing_area_SOURCES = mln_morpho_closing_area.cc
+mln_morpho_thick_miss_SOURCES = mln_morpho_thick_miss.cc
+mln_morpho_closing_attribute_SOURCES = mln_morpho_closing_attribute.cc
+mln_morpho_rank_filter_SOURCES = mln_morpho_rank_filter.cc
+mln_morpho_essential_SOURCES = mln_morpho_essential.cc
+mln_topo_n_face_iter_SOURCES = mln_topo_n_face_iter.cc
+mln_topo_face_iter_SOURCES = mln_topo_face_iter.cc
+mln_topo_is_simple_2d_SOURCES = mln_topo_is_simple_2d.cc
+mln_topo_centered_iter_adapter_SOURCES = mln_topo_centered_iter_adapter.cc
+mln_topo_internal_complex_set_iterator_base_SOURCES = mln_topo_internal_complex_set_iterator_base.cc
+mln_topo_internal_complex_iterator_base_SOURCES = mln_topo_internal_complex_iterator_base.cc
+mln_topo_internal_complex_relative_iterator_base_SOURCES = mln_topo_internal_complex_relative_iterator_base.cc
+mln_topo_internal_complex_relative_iterator_sequence_SOURCES = mln_topo_internal_complex_relative_iterator_sequence.cc
+mln_topo_algebraic_n_face_SOURCES = mln_topo_algebraic_n_face.cc
+mln_topo_attic_faces_iter_SOURCES = mln_topo_attic_faces_iter.cc
+mln_topo_adj_lower_dim_connected_n_face_iter_SOURCES = mln_topo_adj_lower_dim_connected_n_face_iter.cc
+mln_topo_n_face_SOURCES = mln_topo_n_face.cc
+mln_topo_adj_lower_higher_face_iter_SOURCES = mln_topo_adj_lower_higher_face_iter.cc
+mln_topo_all_SOURCES = mln_topo_all.cc
+mln_topo_face_data_SOURCES = mln_topo_face_data.cc
+mln_topo_static_n_face_iter_SOURCES = mln_topo_static_n_face_iter.cc
+mln_topo_face_SOURCES = mln_topo_face.cc
+mln_topo_adj_m_face_iter_SOURCES = mln_topo_adj_m_face_iter.cc
+mln_topo_complex_SOURCES = mln_topo_complex.cc
+mln_topo_adj_higher_face_iter_SOURCES = mln_topo_adj_higher_face_iter.cc
+mln_topo_adj_lower_face_iter_SOURCES = mln_topo_adj_lower_face_iter.cc
+mln_topo_complex_iterators_SOURCES = mln_topo_complex_iterators.cc
+mln_topo_center_only_iter_SOURCES = mln_topo_center_only_iter.cc
+mln_topo_adj_higher_dim_connected_n_face_iter_SOURCES = mln_topo_adj_higher_dim_connected_n_face_iter.cc
+mln_topo_algebraic_face_SOURCES = mln_topo_algebraic_face.cc
+mln_topo_n_faces_set_SOURCES = mln_topo_n_faces_set.cc
+mln_topo_essential_SOURCES = mln_topo_essential.cc
+mln_essential_1d_SOURCES = mln_essential_1d.cc
mln_essential_routine_SOURCES = mln_essential_routine.cc
mln_essential_3d_SOURCES = mln_essential_3d.cc
-mln_essential_1d_SOURCES = mln_essential_1d.cc
-mln_set_get_SOURCES = mln_set_get.cc
-mln_set_uni_SOURCES = mln_set_uni.cc
-mln_set_all_SOURCES = mln_set_all.cc
-mln_set_sym_diff_SOURCES = mln_set_sym_diff.cc
-mln_set_essential_SOURCES = mln_set_essential.cc
-mln_set_diff_SOURCES = mln_set_diff.cc
-mln_set_compute_SOURCES = mln_set_compute.cc
-mln_set_has_SOURCES = mln_set_has.cc
-mln_set_inter_SOURCES = mln_set_inter.cc
-mln_transform_all_SOURCES = mln_transform_all.cc
-mln_transform_internal_influence_zone_functor_SOURCES = mln_transform_internal_influence_zone_functor.cc
-mln_transform_internal_all_SOURCES = mln_transform_internal_all.cc
-mln_transform_internal_distance_functor_SOURCES = mln_transform_internal_distance_functor.cc
-mln_transform_distance_geodesic_SOURCES = mln_transform_distance_geodesic.cc
-mln_transform_+old_distance_SOURCES = mln_transform_+old_distance.cc
-mln_transform_essential_SOURCES = mln_transform_essential.cc
-mln_transform_influence_zone_geodesic_SOURCES = mln_transform_influence_zone_geodesic.cc
-mln_transform_distance_front_SOURCES = mln_transform_distance_front.cc
-mln_transform_influence_zone_front_SOURCES = mln_transform_influence_zone_front.cc
-mln_core_alias_neighb2d_SOURCES = mln_core_alias_neighb2d.cc
-mln_core_alias_point3df_SOURCES = mln_core_alias_point3df.cc
-mln_core_alias_w_window3d_float_SOURCES = mln_core_alias_w_window3d_float.cc
-mln_core_alias_point2d_SOURCES = mln_core_alias_point2d.cc
-mln_core_alias_w_window1d_float_SOURCES = mln_core_alias_w_window1d_float.cc
-mln_core_alias_box2d_h_SOURCES = mln_core_alias_box2d_h.cc
-mln_core_alias_point2d_h_SOURCES = mln_core_alias_point2d_h.cc
-mln_core_alias_neighb1d_SOURCES = mln_core_alias_neighb1d.cc
-mln_core_alias_p_run2d_SOURCES = mln_core_alias_p_run2d.cc
-mln_core_alias_window2d_SOURCES = mln_core_alias_window2d.cc
-mln_core_alias_window3d_SOURCES = mln_core_alias_window3d.cc
-mln_core_alias_dpoint2d_h_SOURCES = mln_core_alias_dpoint2d_h.cc
-mln_core_alias_p_runs2d_SOURCES = mln_core_alias_p_runs2d.cc
-mln_core_alias_w_window2d_int_SOURCES = mln_core_alias_w_window2d_int.cc
-mln_core_alias_w_window3d_int_SOURCES = mln_core_alias_w_window3d_int.cc
-mln_core_alias_box1d_SOURCES = mln_core_alias_box1d.cc
-mln_core_alias_w_window2d_float_SOURCES = mln_core_alias_w_window2d_float.cc
-mln_core_alias_w_window1d_int_SOURCES = mln_core_alias_w_window1d_int.cc
-mln_core_alias_dpoint1d_SOURCES = mln_core_alias_dpoint1d.cc
-mln_core_alias_point1d_SOURCES = mln_core_alias_point1d.cc
-mln_core_alias_complex_image_SOURCES = mln_core_alias_complex_image.cc
-mln_core_alias_window1d_SOURCES = mln_core_alias_window1d.cc
-mln_core_alias_dpoint2d_SOURCES = mln_core_alias_dpoint2d.cc
-mln_core_alias_neighb3d_SOURCES = mln_core_alias_neighb3d.cc
-mln_core_alias_point3d_SOURCES = mln_core_alias_point3d.cc
-mln_core_alias_dpoint3d_SOURCES = mln_core_alias_dpoint3d.cc
-mln_core_alias_complex_geometry_SOURCES = mln_core_alias_complex_geometry.cc
-mln_core_alias_box2d_SOURCES = mln_core_alias_box2d.cc
-mln_core_alias_box3d_SOURCES = mln_core_alias_box3d.cc
-mln_core_clock_neighb2d_SOURCES = mln_core_clock_neighb2d.cc
-mln_core_macros_SOURCES = mln_core_macros.cc
-mln_core_w_window_SOURCES = mln_core_w_window.cc
-mln_core_all_SOURCES = mln_core_all.cc
-mln_core_category_SOURCES = mln_core_category.cc
-mln_core_faces_psite_SOURCES = mln_core_faces_psite.cc
-mln_core_trait_all_SOURCES = mln_core_trait_all.cc
-mln_core_trait_pixter_SOURCES = mln_core_trait_pixter.cc
-mln_core_trait_op_mult_SOURCES = mln_core_trait_op_mult.cc
-mln_core_trait_essential_SOURCES = mln_core_trait_essential.cc
-mln_core_trait_qlf_value_SOURCES = mln_core_trait_qlf_value.cc
+mln_essential_2d_SOURCES = mln_essential_2d.cc
+mln_win_inter_SOURCES = mln_win_inter.cc
+mln_win_backdiag2d_SOURCES = mln_win_backdiag2d.cc
+mln_win_segment1d_SOURCES = mln_win_segment1d.cc
+mln_win_cuboid3d_SOURCES = mln_win_cuboid3d.cc
+mln_win_vline2d_SOURCES = mln_win_vline2d.cc
+mln_win_octagon2d_SOURCES = mln_win_octagon2d.cc
+mln_win_all_SOURCES = mln_win_all.cc
+mln_win_multiple_size_SOURCES = mln_win_multiple_size.cc
+mln_win_cube3d_SOURCES = mln_win_cube3d.cc
+mln_win_shift_SOURCES = mln_win_shift.cc
+mln_win_sym_SOURCES = mln_win_sym.cc
+mln_win_diff_SOURCES = mln_win_diff.cc
+mln_win_multiple_SOURCES = mln_win_multiple.cc
+mln_win_diag2d_SOURCES = mln_win_diag2d.cc
+mln_win_disk2d_SOURCES = mln_win_disk2d.cc
+mln_win_rectangle2d_SOURCES = mln_win_rectangle2d.cc
+mln_win_hline2d_SOURCES = mln_win_hline2d.cc
+mln_win_line_SOURCES = mln_win_line.cc
+mln_win_essential_SOURCES = mln_win_essential.cc
+mln_core_clock_neighb_SOURCES = mln_core_clock_neighb.cc
+mln_core_pixter2d_SOURCES = mln_core_pixter2d.cc
+mln_core_def_low_quant_nbits_SOURCES = mln_core_def_low_quant_nbits.cc
+mln_core_def_all_SOURCES = mln_core_def_all.cc
+mln_core_def_coordf_SOURCES = mln_core_def_coordf.cc
+mln_core_def_coord_SOURCES = mln_core_def_coord.cc
+mln_core_def_essential_SOURCES = mln_core_def_essential.cc
+mln_core_site_set_box_SOURCES = mln_core_site_set_box.cc
+mln_core_site_set_p_vertices_SOURCES = mln_core_site_set_p_vertices.cc
+mln_core_site_set_p_vaccess_SOURCES = mln_core_site_set_p_vaccess.cc
+mln_core_site_set_p_if_piter_SOURCES = mln_core_site_set_p_if_piter.cc
+mln_core_site_set_p_run_piter_SOURCES = mln_core_site_set_p_run_piter.cc
+mln_core_site_set_p_key_SOURCES = mln_core_site_set_p_key.cc
+mln_core_site_set_p_double_SOURCES = mln_core_site_set_p_double.cc
+mln_core_site_set_p_complex_piter_SOURCES = mln_core_site_set_p_complex_piter.cc
+mln_core_site_set_p_complex_SOURCES = mln_core_site_set_p_complex.cc
+mln_core_site_set_p_image_SOURCES = mln_core_site_set_p_image.cc
+mln_core_site_set_attic_p_complex_faces_piter_SOURCES = mln_core_site_set_attic_p_complex_faces_piter.cc
+mln_core_site_set_attic_p_faces_piter_SOURCES = mln_core_site_set_attic_p_faces_piter.cc
+mln_core_site_set_p_priority_SOURCES = mln_core_site_set_p_priority.cc
+mln_core_site_set_p_set_of_SOURCES = mln_core_site_set_p_set_of.cc
+mln_core_site_set_all_SOURCES = mln_core_site_set_all.cc
+mln_core_site_set_p_edges_SOURCES = mln_core_site_set_p_edges.cc
+mln_core_site_set_box_piter_SOURCES = mln_core_site_set_box_piter.cc
+mln_core_site_set_p_faces_SOURCES = mln_core_site_set_p_faces.cc
+mln_core_site_set_p_set_SOURCES = mln_core_site_set_p_set.cc
+mln_core_site_set_p_queue_SOURCES = mln_core_site_set_p_queue.cc
mln_core_site_set_p_if_SOURCES = mln_core_site_set_p_if.cc
-mln_core_site_set_complex_psite_SOURCES = mln_core_site_set_complex_psite.cc
+mln_core_site_set_operators_SOURCES = mln_core_site_set_operators.cc
mln_core_site_set_p_mutable_array_of_SOURCES = mln_core_site_set_p_mutable_array_of.cc
-mln_core_site_set_p_complex_piter_SOURCES = mln_core_site_set_p_complex_piter.cc
-mln_core_site_set_box_SOURCES = mln_core_site_set_box.cc
mln_core_site_set_p_edges_psite_SOURCES = mln_core_site_set_p_edges_psite.cc
-mln_core_site_set_all_SOURCES = mln_core_site_set_all.cc
+mln_core_site_set_complex_psite_SOURCES = mln_core_site_set_complex_psite.cc
+mln_core_site_set_p_run_SOURCES = mln_core_site_set_p_run.cc
+mln_core_site_set_p_n_faces_piter_SOURCES = mln_core_site_set_p_n_faces_piter.cc
+mln_core_site_set_p_centered_SOURCES = mln_core_site_set_p_centered.cc
+mln_core_site_set_p_bgraph_SOURCES = mln_core_site_set_p_bgraph.cc
mln_core_site_set_p_bgraph_piter_SOURCES = mln_core_site_set_p_bgraph_piter.cc
mln_core_site_set_p_array_SOURCES = mln_core_site_set_p_array.cc
mln_core_site_set_p_vertices_psite_SOURCES = mln_core_site_set_p_vertices_psite.cc
-mln_core_site_set_box_piter_SOURCES = mln_core_site_set_box_piter.cc
-mln_core_site_set_attic_p_faces_piter_SOURCES = mln_core_site_set_attic_p_faces_piter.cc
-mln_core_site_set_attic_p_complex_faces_piter_SOURCES = mln_core_site_set_attic_p_complex_faces_piter.cc
-mln_core_site_set_p_complex_SOURCES = mln_core_site_set_p_complex.cc
-mln_core_site_set_p_image_SOURCES = mln_core_site_set_p_image.cc
-mln_core_site_set_p_edges_SOURCES = mln_core_site_set_p_edges.cc
mln_core_site_set_p_line2d_SOURCES = mln_core_site_set_p_line2d.cc
-mln_core_site_set_p_vertices_SOURCES = mln_core_site_set_p_vertices.cc
-mln_core_site_set_p_double_SOURCES = mln_core_site_set_p_double.cc
-mln_core_site_set_p_graph_piter_SOURCES = mln_core_site_set_p_graph_piter.cc
mln_core_site_set_p_queue_fast_SOURCES = mln_core_site_set_p_queue_fast.cc
-mln_core_site_set_p_priority_SOURCES = mln_core_site_set_p_priority.cc
-mln_core_site_set_p_centered_SOURCES = mln_core_site_set_p_centered.cc
+mln_core_site_set_p_graph_piter_SOURCES = mln_core_site_set_p_graph_piter.cc
mln_core_site_set_essential_SOURCES = mln_core_site_set_essential.cc
-mln_core_site_set_p_faces_SOURCES = mln_core_site_set_p_faces.cc
-mln_core_site_set_p_bgraph_SOURCES = mln_core_site_set_p_bgraph.cc
-mln_core_site_set_p_run_piter_SOURCES = mln_core_site_set_p_run_piter.cc
-mln_core_site_set_p_run_SOURCES = mln_core_site_set_p_run.cc
-mln_core_site_set_p_n_faces_piter_SOURCES = mln_core_site_set_p_n_faces_piter.cc
-mln_core_site_set_p_if_piter_SOURCES = mln_core_site_set_p_if_piter.cc
-mln_core_site_set_p_set_SOURCES = mln_core_site_set_p_set.cc
-mln_core_site_set_p_vaccess_SOURCES = mln_core_site_set_p_vaccess.cc
-mln_core_site_set_p_queue_SOURCES = mln_core_site_set_p_queue.cc
-mln_core_site_set_p_set_of_SOURCES = mln_core_site_set_p_set_of.cc
-mln_core_site_set_operators_SOURCES = mln_core_site_set_operators.cc
-mln_core_site_set_p_key_SOURCES = mln_core_site_set_p_key.cc
+mln_core_dpsites_piter_SOURCES = mln_core_dpsites_piter.cc
+mln_core_w_window_SOURCES = mln_core_w_window.cc
+mln_core_grids_SOURCES = mln_core_grids.cc
+mln_core_dpoints_pixter_SOURCES = mln_core_dpoints_pixter.cc
+mln_core_internal_graph_psite_base_SOURCES = mln_core_internal_graph_psite_base.cc
+mln_core_internal_run_image_SOURCES = mln_core_internal_run_image.cc
+mln_core_internal_pixel_impl_SOURCES = mln_core_internal_pixel_impl.cc
+mln_core_internal_site_set_base_SOURCES = mln_core_internal_site_set_base.cc
+mln_core_internal_image_value_morpher_SOURCES = mln_core_internal_image_value_morpher.cc
+mln_core_internal_site_iterator_base_SOURCES = mln_core_internal_site_iterator_base.cc
+mln_core_internal_complex_neighborhood_base_SOURCES = mln_core_internal_complex_neighborhood_base.cc
+mln_core_internal_site_relative_iterator_base_SOURCES = mln_core_internal_site_relative_iterator_base.cc
+mln_core_internal_site_set_impl_SOURCES = mln_core_internal_site_set_impl.cc
+mln_core_internal_exact_SOURCES = mln_core_internal_exact.cc
+mln_core_internal_p_complex_piter_base_SOURCES = mln_core_internal_p_complex_piter_base.cc
+mln_core_internal_neighb_niter_impl_SOURCES = mln_core_internal_neighb_niter_impl.cc
+mln_core_internal_pixel_iterator_base_SOURCES = mln_core_internal_pixel_iterator_base.cc
+mln_core_internal_classical_window_base_SOURCES = mln_core_internal_classical_window_base.cc
+mln_core_internal_data_SOURCES = mln_core_internal_data.cc
+mln_core_internal_force_exact_SOURCES = mln_core_internal_force_exact.cc
+mln_core_internal_image_base_SOURCES = mln_core_internal_image_base.cc
+mln_core_internal_check_image_fastest_SOURCES = mln_core_internal_check_image_fastest.cc
+mln_core_internal_check_image_all_SOURCES = mln_core_internal_check_image_all.cc
+mln_core_internal_fixme_SOURCES = mln_core_internal_fixme.cc
+mln_core_internal_morpher_lvalue_SOURCES = mln_core_internal_morpher_lvalue.cc
+mln_core_internal_image_domain_morpher_SOURCES = mln_core_internal_image_domain_morpher.cc
+mln_core_internal_image_primary_SOURCES = mln_core_internal_image_primary.cc
+mln_core_internal_set_of_SOURCES = mln_core_internal_set_of.cc
+mln_core_internal_complex_window_p_base_SOURCES = mln_core_internal_complex_window_p_base.cc
+mln_core_internal_graph_window_base_SOURCES = mln_core_internal_graph_window_base.cc
+mln_core_internal_piter_adaptor_SOURCES = mln_core_internal_piter_adaptor.cc
+mln_core_internal_weighted_window_base_SOURCES = mln_core_internal_weighted_window_base.cc
+mln_core_internal_neighborhood_base_SOURCES = mln_core_internal_neighborhood_base.cc
+mln_core_internal_image_morpher_SOURCES = mln_core_internal_image_morpher.cc
+mln_core_internal_coord_impl_SOURCES = mln_core_internal_coord_impl.cc
+mln_core_internal_geom_bbox_SOURCES = mln_core_internal_geom_bbox.cc
+mln_core_internal_image_identity_SOURCES = mln_core_internal_image_identity.cc
+mln_core_internal_pseudo_site_base_SOURCES = mln_core_internal_pseudo_site_base.cc
+mln_core_internal_window_base_SOURCES = mln_core_internal_window_base.cc
+mln_core_internal_box_impl_SOURCES = mln_core_internal_box_impl.cc
+mln_core_internal_site_set_iterator_base_SOURCES = mln_core_internal_site_set_iterator_base.cc
+mln_core_contract_SOURCES = mln_core_contract.cc
+mln_core_all_SOURCES = mln_core_all.cc
+mln_core_point_SOURCES = mln_core_point.cc
+mln_core_neighb_SOURCES = mln_core_neighb.cc
+mln_core_routine_initialize_SOURCES = mln_core_routine_initialize.cc
+mln_core_routine_primary_SOURCES = mln_core_routine_primary.cc
+mln_core_routine_init_SOURCES = mln_core_routine_init.cc
+mln_core_routine_ops_SOURCES = mln_core_routine_ops.cc
+mln_core_routine_all_SOURCES = mln_core_routine_all.cc
+mln_core_routine_clone_SOURCES = mln_core_routine_clone.cc
+mln_core_routine_exact_SOURCES = mln_core_routine_exact.cc
+mln_core_routine_extend_SOURCES = mln_core_routine_extend.cc
+mln_core_routine_essential_SOURCES = mln_core_routine_essential.cc
+mln_core_trait_op_mult_SOURCES = mln_core_trait_op_mult.cc
+mln_core_trait_all_SOURCES = mln_core_trait_all.cc
+mln_core_trait_pixter_SOURCES = mln_core_trait_pixter.cc
+mln_core_trait_qlf_value_SOURCES = mln_core_trait_qlf_value.cc
+mln_core_trait_essential_SOURCES = mln_core_trait_essential.cc
+mln_core_pixter1d_SOURCES = mln_core_pixter1d.cc
+mln_core_category_SOURCES = mln_core_category.cc
+mln_core_macros_SOURCES = mln_core_macros.cc
mln_core_box_runstart_piter_SOURCES = mln_core_box_runstart_piter.cc
-mln_core_var_SOURCES = mln_core_var.cc
-mln_core_concept_browsing_SOURCES = mln_core_concept_browsing.cc
-mln_core_concept_regular_grid_SOURCES = mln_core_concept_regular_grid.cc
-mln_core_concept_pixel_iterator_SOURCES = mln_core_concept_pixel_iterator.cc
+mln_core_tags_SOURCES = mln_core_tags.cc
+mln_core_dpoint_SOURCES = mln_core_dpoint.cc
+mln_core_alias_dpoint2d_h_SOURCES = mln_core_alias_dpoint2d_h.cc
+mln_core_alias_p_run2d_SOURCES = mln_core_alias_p_run2d.cc
+mln_core_alias_point3d_SOURCES = mln_core_alias_point3d.cc
+mln_core_alias_neighb3d_SOURCES = mln_core_alias_neighb3d.cc
+mln_core_alias_window3d_SOURCES = mln_core_alias_window3d.cc
+mln_core_alias_neighb2d_SOURCES = mln_core_alias_neighb2d.cc
+mln_core_alias_complex_image_SOURCES = mln_core_alias_complex_image.cc
+mln_core_alias_w_window1d_float_SOURCES = mln_core_alias_w_window1d_float.cc
+mln_core_alias_neighb1d_SOURCES = mln_core_alias_neighb1d.cc
+mln_core_alias_w_window2d_float_SOURCES = mln_core_alias_w_window2d_float.cc
+mln_core_alias_w_window2d_int_SOURCES = mln_core_alias_w_window2d_int.cc
+mln_core_alias_box1d_SOURCES = mln_core_alias_box1d.cc
+mln_core_alias_box2d_SOURCES = mln_core_alias_box2d.cc
+mln_core_alias_window1d_SOURCES = mln_core_alias_window1d.cc
+mln_core_alias_point1d_SOURCES = mln_core_alias_point1d.cc
+mln_core_alias_box3d_SOURCES = mln_core_alias_box3d.cc
+mln_core_alias_dpoint3d_SOURCES = mln_core_alias_dpoint3d.cc
+mln_core_alias_complex_geometry_SOURCES = mln_core_alias_complex_geometry.cc
+mln_core_alias_w_window3d_float_SOURCES = mln_core_alias_w_window3d_float.cc
+mln_core_alias_box2d_h_SOURCES = mln_core_alias_box2d_h.cc
+mln_core_alias_point2d_SOURCES = mln_core_alias_point2d.cc
+mln_core_alias_window2d_SOURCES = mln_core_alias_window2d.cc
+mln_core_alias_p_runs2d_SOURCES = mln_core_alias_p_runs2d.cc
+mln_core_alias_point3df_SOURCES = mln_core_alias_point3df.cc
+mln_core_alias_dpoint1d_SOURCES = mln_core_alias_dpoint1d.cc
+mln_core_alias_w_window3d_int_SOURCES = mln_core_alias_w_window3d_int.cc
+mln_core_alias_dpoint2d_SOURCES = mln_core_alias_dpoint2d.cc
+mln_core_alias_w_window1d_int_SOURCES = mln_core_alias_w_window1d_int.cc
+mln_core_alias_point2d_h_SOURCES = mln_core_alias_point2d_h.cc
+mln_core_window_SOURCES = mln_core_window.cc
+mln_core_concept_site_proxy_SOURCES = mln_core_concept_site_proxy.cc
mln_core_concept_point_site_SOURCES = mln_core_concept_point_site.cc
-mln_core_concept_iterator_SOURCES = mln_core_concept_iterator.cc
mln_core_concept_box_SOURCES = mln_core_concept_box.cc
-mln_core_concept_site_proxy_SOURCES = mln_core_concept_site_proxy.cc
-mln_core_concept_object_SOURCES = mln_core_concept_object.cc
-mln_core_concept_all_SOURCES = mln_core_concept_all.cc
-mln_core_concept_image_SOURCES = mln_core_concept_image.cc
mln_core_concept_generalized_pixel_SOURCES = mln_core_concept_generalized_pixel.cc
-mln_core_concept_value_iterator_SOURCES = mln_core_concept_value_iterator.cc
-mln_core_concept_value_set_SOURCES = mln_core_concept_value_set.cc
-mln_core_concept_site_set_SOURCES = mln_core_concept_site_set.cc
-mln_core_concept_point_SOURCES = mln_core_concept_point.cc
-mln_core_concept_weighted_window_SOURCES = mln_core_concept_weighted_window.cc
mln_core_concept_graph_SOURCES = mln_core_concept_graph.cc
-mln_core_concept_function_SOURCES = mln_core_concept_function.cc
-mln_core_concept_site_iterator_SOURCES = mln_core_concept_site_iterator.cc
-mln_core_concept_gpoint_SOURCES = mln_core_concept_gpoint.cc
-mln_core_concept_meta_accumulator_SOURCES = mln_core_concept_meta_accumulator.cc
-mln_core_concept_gdpoint_SOURCES = mln_core_concept_gdpoint.cc
-mln_core_concept_doc_pixel_iterator_SOURCES = mln_core_concept_doc_pixel_iterator.cc
+mln_core_concept_iterator_SOURCES = mln_core_concept_iterator.cc
mln_core_concept_doc_point_site_SOURCES = mln_core_concept_doc_point_site.cc
-mln_core_concept_doc_iterator_SOURCES = mln_core_concept_doc_iterator.cc
mln_core_concept_doc_box_SOURCES = mln_core_concept_doc_box.cc
-mln_core_concept_doc_object_SOURCES = mln_core_concept_doc_object.cc
-mln_core_concept_doc_image_SOURCES = mln_core_concept_doc_image.cc
mln_core_concept_doc_generalized_pixel_SOURCES = mln_core_concept_doc_generalized_pixel.cc
-mln_core_concept_doc_value_iterator_SOURCES = mln_core_concept_doc_value_iterator.cc
+mln_core_concept_doc_iterator_SOURCES = mln_core_concept_doc_iterator.cc
+mln_core_concept_doc_image_fastest_SOURCES = mln_core_concept_doc_image_fastest.cc
+mln_core_concept_doc_image_SOURCES = mln_core_concept_doc_image.cc
mln_core_concept_doc_value_set_SOURCES = mln_core_concept_doc_value_set.cc
-mln_core_concept_doc_site_set_SOURCES = mln_core_concept_doc_site_set.cc
mln_core_concept_doc_weighted_window_SOURCES = mln_core_concept_doc_weighted_window.cc
-mln_core_concept_doc_image_fastest_SOURCES = mln_core_concept_doc_image_fastest.cc
+mln_core_concept_doc_pixel_iterator_SOURCES = mln_core_concept_doc_pixel_iterator.cc
+mln_core_concept_doc_value_iterator_SOURCES = mln_core_concept_doc_value_iterator.cc
mln_core_concept_doc_dpoint_SOURCES = mln_core_concept_doc_dpoint.cc
-mln_core_concept_doc_accumulator_SOURCES = mln_core_concept_doc_accumulator.cc
-mln_core_concept_doc_point_iterator_SOURCES = mln_core_concept_doc_point_iterator.cc
mln_core_concept_doc_window_SOURCES = mln_core_concept_doc_window.cc
+mln_core_concept_doc_accumulator_SOURCES = mln_core_concept_doc_accumulator.cc
+mln_core_concept_doc_site_set_SOURCES = mln_core_concept_doc_site_set.cc
+mln_core_concept_doc_object_SOURCES = mln_core_concept_doc_object.cc
mln_core_concept_doc_neighborhood_SOURCES = mln_core_concept_doc_neighborhood.cc
-mln_core_concept_delta_point_site_SOURCES = mln_core_concept_delta_point_site.cc
-mln_core_concept_literal_SOURCES = mln_core_concept_literal.cc
-mln_core_concept_value_SOURCES = mln_core_concept_value.cc
-mln_core_concept_dpoint_SOURCES = mln_core_concept_dpoint.cc
+mln_core_concept_doc_point_iterator_SOURCES = mln_core_concept_doc_point_iterator.cc
mln_core_concept_pseudo_site_SOURCES = mln_core_concept_pseudo_site.cc
-mln_core_concept_accumulator_SOURCES = mln_core_concept_accumulator.cc
+mln_core_concept_image_SOURCES = mln_core_concept_image.cc
+mln_core_concept_value_set_SOURCES = mln_core_concept_value_set.cc
mln_core_concept_proxy_SOURCES = mln_core_concept_proxy.cc
mln_core_concept_site_SOURCES = mln_core_concept_site.cc
+mln_core_concept_weighted_window_SOURCES = mln_core_concept_weighted_window.cc
+mln_core_concept_all_SOURCES = mln_core_concept_all.cc
+mln_core_concept_gpoint_SOURCES = mln_core_concept_gpoint.cc
+mln_core_concept_site_iterator_SOURCES = mln_core_concept_site_iterator.cc
+mln_core_concept_point_SOURCES = mln_core_concept_point.cc
+mln_core_concept_literal_SOURCES = mln_core_concept_literal.cc
+mln_core_concept_pixel_iterator_SOURCES = mln_core_concept_pixel_iterator.cc
+mln_core_concept_value_iterator_SOURCES = mln_core_concept_value_iterator.cc
+mln_core_concept_meta_accumulator_SOURCES = mln_core_concept_meta_accumulator.cc
+mln_core_concept_gdpoint_SOURCES = mln_core_concept_gdpoint.cc
+mln_core_concept_regular_grid_SOURCES = mln_core_concept_regular_grid.cc
+mln_core_concept_mesh_SOURCES = mln_core_concept_mesh.cc
+mln_core_concept_dpoint_SOURCES = mln_core_concept_dpoint.cc
+mln_core_concept_function_SOURCES = mln_core_concept_function.cc
mln_core_concept_window_SOURCES = mln_core_concept_window.cc
+mln_core_concept_value_SOURCES = mln_core_concept_value.cc
+mln_core_concept_accumulator_SOURCES = mln_core_concept_accumulator.cc
+mln_core_concept_site_set_SOURCES = mln_core_concept_site_set.cc
+mln_core_concept_object_SOURCES = mln_core_concept_object.cc
+mln_core_concept_delta_point_site_SOURCES = mln_core_concept_delta_point_site.cc
mln_core_concept_neighborhood_SOURCES = mln_core_concept_neighborhood.cc
-mln_core_concept_mesh_SOURCES = mln_core_concept_mesh.cc
-mln_core_dpoints_pixter_SOURCES = mln_core_dpoints_pixter.cc
-mln_core_internal_graph_window_base_SOURCES = mln_core_internal_graph_window_base.cc
-mln_core_internal_complex_window_p_base_SOURCES = mln_core_internal_complex_window_p_base.cc
-mln_core_internal_pixel_iterator_base_SOURCES = mln_core_internal_pixel_iterator_base.cc
-mln_core_internal_weighted_window_base_SOURCES = mln_core_internal_weighted_window_base.cc
-mln_core_internal_neighborhood_base_SOURCES = mln_core_internal_neighborhood_base.cc
-mln_core_internal_complex_neighborhood_base_SOURCES = mln_core_internal_complex_neighborhood_base.cc
-mln_core_internal_data_SOURCES = mln_core_internal_data.cc
-mln_core_internal_run_image_SOURCES = mln_core_internal_run_image.cc
-mln_core_internal_window_base_SOURCES = mln_core_internal_window_base.cc
-mln_core_internal_graph_psite_base_SOURCES = mln_core_internal_graph_psite_base.cc
-mln_core_internal_site_relative_iterator_base_SOURCES = mln_core_internal_site_relative_iterator_base.cc
-mln_core_internal_image_base_SOURCES = mln_core_internal_image_base.cc
-mln_core_internal_set_of_SOURCES = mln_core_internal_set_of.cc
-mln_core_internal_exact_SOURCES = mln_core_internal_exact.cc
-mln_core_internal_p_complex_piter_base_SOURCES = mln_core_internal_p_complex_piter_base.cc
-mln_core_internal_morpher_lvalue_SOURCES = mln_core_internal_morpher_lvalue.cc
-mln_core_internal_site_iterator_base_SOURCES = mln_core_internal_site_iterator_base.cc
-mln_core_internal_pseudo_site_base_SOURCES = mln_core_internal_pseudo_site_base.cc
-mln_core_internal_pixel_impl_SOURCES = mln_core_internal_pixel_impl.cc
-mln_core_internal_force_exact_SOURCES = mln_core_internal_force_exact.cc
-mln_core_internal_site_set_iterator_base_SOURCES = mln_core_internal_site_set_iterator_base.cc
-mln_core_internal_geom_bbox_SOURCES = mln_core_internal_geom_bbox.cc
-mln_core_internal_site_set_base_SOURCES = mln_core_internal_site_set_base.cc
-mln_core_internal_classical_window_base_SOURCES = mln_core_internal_classical_window_base.cc
-mln_core_internal_image_value_morpher_SOURCES = mln_core_internal_image_value_morpher.cc
-mln_core_internal_coord_impl_SOURCES = mln_core_internal_coord_impl.cc
-mln_core_internal_check_image_all_SOURCES = mln_core_internal_check_image_all.cc
-mln_core_internal_check_image_fastest_SOURCES = mln_core_internal_check_image_fastest.cc
-mln_core_internal_fixme_SOURCES = mln_core_internal_fixme.cc
-mln_core_internal_piter_adaptor_SOURCES = mln_core_internal_piter_adaptor.cc
-mln_core_internal_image_domain_morpher_SOURCES = mln_core_internal_image_domain_morpher.cc
-mln_core_internal_neighb_niter_impl_SOURCES = mln_core_internal_neighb_niter_impl.cc
-mln_core_internal_image_morpher_SOURCES = mln_core_internal_image_morpher.cc
-mln_core_internal_image_primary_SOURCES = mln_core_internal_image_primary.cc
-mln_core_internal_image_identity_SOURCES = mln_core_internal_image_identity.cc
-mln_core_internal_site_set_impl_SOURCES = mln_core_internal_site_set_impl.cc
-mln_core_internal_box_impl_SOURCES = mln_core_internal_box_impl.cc
-mln_core_pixter2d_SOURCES = mln_core_pixter2d.cc
-mln_core_point_SOURCES = mln_core_point.cc
-mln_core_a_point_of_SOURCES = mln_core_a_point_of.cc
-mln_core_clock_neighb_SOURCES = mln_core_clock_neighb.cc
-mln_core_grids_SOURCES = mln_core_grids.cc
-mln_core_tags_SOURCES = mln_core_tags.cc
-mln_core_routine_all_SOURCES = mln_core_routine_all.cc
-mln_core_routine_initialize_SOURCES = mln_core_routine_initialize.cc
-mln_core_routine_exact_SOURCES = mln_core_routine_exact.cc
-mln_core_routine_essential_SOURCES = mln_core_routine_essential.cc
-mln_core_routine_init_SOURCES = mln_core_routine_init.cc
-mln_core_routine_extend_SOURCES = mln_core_routine_extend.cc
-mln_core_routine_primary_SOURCES = mln_core_routine_primary.cc
-mln_core_routine_clone_SOURCES = mln_core_routine_clone.cc
-mln_core_routine_ops_SOURCES = mln_core_routine_ops.cc
-mln_core_contract_SOURCES = mln_core_contract.cc
-mln_core_essential_SOURCES = mln_core_essential.cc
-mln_core_pixter1d_SOURCES = mln_core_pixter1d.cc
-mln_core_neighb_SOURCES = mln_core_neighb.cc
+mln_core_concept_browsing_SOURCES = mln_core_concept_browsing.cc
mln_core_pixel_SOURCES = mln_core_pixel.cc
-mln_core_dpoint_SOURCES = mln_core_dpoint.cc
-mln_core_+memo_dpoints_piter_SOURCES = mln_core_+memo_dpoints_piter.cc
+mln_core_clock_neighb2d_SOURCES = mln_core_clock_neighb2d.cc
+mln_core_pixter3d_SOURCES = mln_core_pixter3d.cc
+mln_core_image_obased_rle_encode_SOURCES = mln_core_image_obased_rle_encode.cc
mln_core_image_plain_SOURCES = mln_core_image_plain.cc
-mln_core_image_image_if_SOURCES = mln_core_image_image_if.cc
-mln_core_image_t_image_SOURCES = mln_core_image_t_image.cc
-mln_core_image_complex_window_piter_SOURCES = mln_core_image_complex_window_piter.cc
-mln_core_image_interpolated_SOURCES = mln_core_image_interpolated.cc
-mln_core_image_sparse_image_SOURCES = mln_core_image_sparse_image.cc
+mln_core_image_graph_image_SOURCES = mln_core_image_graph_image.cc
+mln_core_image_image3d_SOURCES = mln_core_image_image3d.cc
+mln_core_image_decorated_image_SOURCES = mln_core_image_decorated_image.cc
+mln_core_image_extension_ima_SOURCES = mln_core_image_extension_ima.cc
+mln_core_image_flat_image_SOURCES = mln_core_image_flat_image.cc
mln_core_image_complex_neighborhood_piter_SOURCES = mln_core_image_complex_neighborhood_piter.cc
-mln_core_image_ch_piter_SOURCES = mln_core_image_ch_piter.cc
-mln_core_image_tr_image_SOURCES = mln_core_image_tr_image.cc
-mln_core_image_extension_val_SOURCES = mln_core_image_extension_val.cc
-mln_core_image_value_enc_image_SOURCES = mln_core_image_value_enc_image.cc
-mln_core_image_all_SOURCES = mln_core_image_all.cc
-mln_core_image_fi_adaptor_SOURCES = mln_core_image_fi_adaptor.cc
-mln_core_image_extended_SOURCES = mln_core_image_extended.cc
-mln_core_image_rle_encode_SOURCES = mln_core_image_rle_encode.cc
-mln_core_image_graph_window_piter_SOURCES = mln_core_image_graph_window_piter.cc
+mln_core_image_tr_mesh_SOURCES = mln_core_image_tr_mesh.cc
+mln_core_image_graph_elt_window_SOURCES = mln_core_image_graph_elt_window.cc
+mln_core_image_obased_rle_image_SOURCES = mln_core_image_obased_rle_image.cc
+mln_core_image_mono_obased_rle_image_SOURCES = mln_core_image_mono_obased_rle_image.cc
+mln_core_image_interpolated_SOURCES = mln_core_image_interpolated.cc
mln_core_image_lazy_image_SOURCES = mln_core_image_lazy_image.cc
-mln_core_image_bgraph_image_SOURCES = mln_core_image_bgraph_image.cc
-mln_core_image_image2d_h_SOURCES = mln_core_image_image2d_h.cc
-mln_core_image_bgraph_psite_SOURCES = mln_core_image_bgraph_psite.cc
+mln_core_image_t_image_SOURCES = mln_core_image_t_image.cc
mln_core_image_hexa_piter_SOURCES = mln_core_image_hexa_piter.cc
-mln_core_image_image2d_SOURCES = mln_core_image_image2d.cc
-mln_core_image_decorated_image_SOURCES = mln_core_image_decorated_image.cc
-mln_core_image_hexa_SOURCES = mln_core_image_hexa.cc
-mln_core_image_essential_SOURCES = mln_core_image_essential.cc
-mln_core_image_mono_obased_rle_encode_SOURCES = mln_core_image_mono_obased_rle_encode.cc
-mln_core_image_graph_image_SOURCES = mln_core_image_graph_image.cc
-mln_core_image_image1d_SOURCES = mln_core_image_image1d.cc
+mln_core_image_value_enc_image_SOURCES = mln_core_image_value_enc_image.cc
+mln_core_image_sub_image_if_SOURCES = mln_core_image_sub_image_if.cc
+mln_core_image_all_SOURCES = mln_core_image_all.cc
mln_core_image_mono_rle_image_SOURCES = mln_core_image_mono_rle_image.cc
-mln_core_image_mono_obased_rle_image_SOURCES = mln_core_image_mono_obased_rle_image.cc
-mln_core_image_flat_image_SOURCES = mln_core_image_flat_image.cc
-mln_core_image_graph_elt_window_SOURCES = mln_core_image_graph_elt_window.cc
+mln_core_image_complex_image_SOURCES = mln_core_image_complex_image.cc
mln_core_image_cast_image_SOURCES = mln_core_image_cast_image.cc
-mln_core_image_sparse_encode_SOURCES = mln_core_image_sparse_encode.cc
-mln_core_image_tr_mesh_SOURCES = mln_core_image_tr_mesh.cc
-mln_core_image_extension_fun_SOURCES = mln_core_image_extension_fun.cc
-mln_core_image_safe_SOURCES = mln_core_image_safe.cc
-mln_core_image_extension_ima_SOURCES = mln_core_image_extension_ima.cc
-mln_core_image_obased_rle_encode_SOURCES = mln_core_image_obased_rle_encode.cc
+mln_core_image_rle_encode_SOURCES = mln_core_image_rle_encode.cc
+mln_core_image_complex_window_piter_SOURCES = mln_core_image_complex_window_piter.cc
+mln_core_image_tr_image_SOURCES = mln_core_image_tr_image.cc
+mln_core_image_sub_image_SOURCES = mln_core_image_sub_image.cc
mln_core_image_rle_image_SOURCES = mln_core_image_rle_image.cc
-mln_core_image_complex_image_SOURCES = mln_core_image_complex_image.cc
-mln_core_image_line_graph_image_SOURCES = mln_core_image_line_graph_image.cc
mln_core_image_line_graph_elt_window_SOURCES = mln_core_image_line_graph_elt_window.cc
-mln_core_image_sub_image_if_SOURCES = mln_core_image_sub_image_if.cc
-mln_core_image_sub_image_SOURCES = mln_core_image_sub_image.cc
mln_core_image_mono_rle_encode_SOURCES = mln_core_image_mono_rle_encode.cc
-mln_core_image_obased_rle_image_SOURCES = mln_core_image_obased_rle_image.cc
-mln_core_image_value_encode_SOURCES = mln_core_image_value_encode.cc
+mln_core_image_bgraph_psite_SOURCES = mln_core_image_bgraph_psite.cc
+mln_core_image_sparse_image_SOURCES = mln_core_image_sparse_image.cc
+mln_core_image_bgraph_image_SOURCES = mln_core_image_bgraph_image.cc
mln_core_image_complex_neighborhoods_SOURCES = mln_core_image_complex_neighborhoods.cc
-mln_core_image_image3d_SOURCES = mln_core_image_image3d.cc
+mln_core_image_graph_window_piter_SOURCES = mln_core_image_graph_window_piter.cc
+mln_core_image_sparse_encode_SOURCES = mln_core_image_sparse_encode.cc
+mln_core_image_safe_SOURCES = mln_core_image_safe.cc
+mln_core_image_extension_fun_SOURCES = mln_core_image_extension_fun.cc
+mln_core_image_image1d_SOURCES = mln_core_image_image1d.cc
+mln_core_image_extension_val_SOURCES = mln_core_image_extension_val.cc
+mln_core_image_image_if_SOURCES = mln_core_image_image_if.cc
+mln_core_image_hexa_SOURCES = mln_core_image_hexa.cc
+mln_core_image_extended_SOURCES = mln_core_image_extended.cc
+mln_core_image_image2d_h_SOURCES = mln_core_image_image2d_h.cc
+mln_core_image_image2d_SOURCES = mln_core_image_image2d.cc
+mln_core_image_ch_piter_SOURCES = mln_core_image_ch_piter.cc
mln_core_image_complex_windows_SOURCES = mln_core_image_complex_windows.cc
-mln_core_dpsites_piter_SOURCES = mln_core_dpsites_piter.cc
-mln_core_window_SOURCES = mln_core_window.cc
-mln_core_def_coordf_SOURCES = mln_core_def_coordf.cc
-mln_core_def_all_SOURCES = mln_core_def_all.cc
-mln_core_def_low_quant_nbits_SOURCES = mln_core_def_low_quant_nbits.cc
-mln_core_def_essential_SOURCES = mln_core_def_essential.cc
-mln_core_def_coord_SOURCES = mln_core_def_coord.cc
-mln_core_pixter3d_SOURCES = mln_core_pixter3d.cc
-mln_all_SOURCES = mln_all.cc
-mln_estim_all_SOURCES = mln_estim_all.cc
-mln_estim_sum_SOURCES = mln_estim_sum.cc
-mln_estim_min_max_SOURCES = mln_estim_min_max.cc
-mln_estim_essential_SOURCES = mln_estim_essential.cc
-mln_estim_mean_SOURCES = mln_estim_mean.cc
-mln_math_sqrt_SOURCES = mln_math_sqrt.cc
-mln_math_round_sat_SOURCES = mln_math_round_sat.cc
-mln_math_sqr_SOURCES = mln_math_sqr.cc
-mln_math_all_SOURCES = mln_math_all.cc
-mln_math_round_SOURCES = mln_math_round.cc
-mln_math_min_SOURCES = mln_math_min.cc
-mln_math_diff_abs_SOURCES = mln_math_diff_abs.cc
-mln_math_essential_SOURCES = mln_math_essential.cc
-mln_math_abs_SOURCES = mln_math_abs.cc
-mln_math_jacobi_SOURCES = mln_math_jacobi.cc
-mln_math_max_SOURCES = mln_math_max.cc
-mln_math_sign_SOURCES = mln_math_sign.cc
-mln_morpho_closing_SOURCES = mln_morpho_closing.cc
-mln_morpho_opening_volume_SOURCES = mln_morpho_opening_volume.cc
-mln_morpho_closing_attribute_SOURCES = mln_morpho_closing_attribute.cc
-mln_morpho_minus_SOURCES = mln_morpho_minus.cc
-mln_morpho_complementation_SOURCES = mln_morpho_complementation.cc
-mln_morpho_top_hat_SOURCES = mln_morpho_top_hat.cc
-mln_morpho_skeleton_constrained_SOURCES = mln_morpho_skeleton_constrained.cc
-mln_morpho_laplacian_SOURCES = mln_morpho_laplacian.cc
-mln_morpho_opening_area_on_vertices_SOURCES = mln_morpho_opening_area_on_vertices.cc
-mln_morpho_thinning_SOURCES = mln_morpho_thinning.cc
-mln_morpho_dilation_SOURCES = mln_morpho_dilation.cc
-mln_morpho_all_SOURCES = mln_morpho_all.cc
-mln_morpho_general_SOURCES = mln_morpho_general.cc
-mln_morpho_includes_SOURCES = mln_morpho_includes.cc
-mln_morpho_thick_miss_SOURCES = mln_morpho_thick_miss.cc
-mln_morpho_tree_compute_parent_SOURCES = mln_morpho_tree_compute_parent.cc
-mln_morpho_tree_all_SOURCES = mln_morpho_tree_all.cc
-mln_morpho_tree_data_SOURCES = mln_morpho_tree_data.cc
-mln_morpho_tree_utils_SOURCES = mln_morpho_tree_utils.cc
-mln_morpho_tree_compute_attribute_image_SOURCES = mln_morpho_tree_compute_attribute_image.cc
-mln_morpho_tree_max_SOURCES = mln_morpho_tree_max.cc
-mln_morpho_internal_elementary_SOURCES = mln_morpho_internal_elementary.cc
-mln_morpho_meyer_wst_SOURCES = mln_morpho_meyer_wst.cc
-mln_morpho_elementary_closing_SOURCES = mln_morpho_elementary_closing.cc
-mln_morpho_elementary_top_hat_SOURCES = mln_morpho_elementary_top_hat.cc
-mln_morpho_elementary_laplacian_SOURCES = mln_morpho_elementary_laplacian.cc
-mln_morpho_elementary_dilation_SOURCES = mln_morpho_elementary_dilation.cc
-mln_morpho_elementary_all_SOURCES = mln_morpho_elementary_all.cc
-mln_morpho_elementary_like_ero_set_SOURCES = mln_morpho_elementary_like_ero_set.cc
-mln_morpho_elementary_gradient_internal_SOURCES = mln_morpho_elementary_gradient_internal.cc
-mln_morpho_elementary_gradient_SOURCES = mln_morpho_elementary_gradient.cc
-mln_morpho_elementary_essential_SOURCES = mln_morpho_elementary_essential.cc
-mln_morpho_elementary_opening_SOURCES = mln_morpho_elementary_opening.cc
-mln_morpho_elementary_erosion_SOURCES = mln_morpho_elementary_erosion.cc
-mln_morpho_elementary_gradient_external_SOURCES = mln_morpho_elementary_gradient_external.cc
-mln_morpho_elementary_like_ero_fun_SOURCES = mln_morpho_elementary_like_ero_fun.cc
-mln_morpho_opening_height_SOURCES = mln_morpho_opening_height.cc
-mln_morpho_gradient_SOURCES = mln_morpho_gradient.cc
-mln_morpho_min_SOURCES = mln_morpho_min.cc
-mln_morpho_closing_area_SOURCES = mln_morpho_closing_area.cc
-mln_morpho_essential_SOURCES = mln_morpho_essential.cc
-mln_morpho_line_gradient_SOURCES = mln_morpho_line_gradient.cc
-mln_morpho_opening_SOURCES = mln_morpho_opening.cc
-mln_morpho_erosion_SOURCES = mln_morpho_erosion.cc
-mln_morpho_thin_fit_SOURCES = mln_morpho_thin_fit.cc
-mln_morpho_Rd_SOURCES = mln_morpho_Rd.cc
-mln_morpho_hit_or_miss_SOURCES = mln_morpho_hit_or_miss.cc
-mln_morpho_closing_area_on_vertices_SOURCES = mln_morpho_closing_area_on_vertices.cc
-mln_morpho_closing_height_SOURCES = mln_morpho_closing_height.cc
-mln_morpho_plus_SOURCES = mln_morpho_plus.cc
-mln_morpho_opening_area_SOURCES = mln_morpho_opening_area.cc
-mln_morpho_rank_filter_SOURCES = mln_morpho_rank_filter.cc
-mln_morpho_contrast_SOURCES = mln_morpho_contrast.cc
-mln_morpho_thickening_SOURCES = mln_morpho_thickening.cc
-mln_morpho_opening_attribute_SOURCES = mln_morpho_opening_attribute.cc
-mln_morpho_closing_volume_SOURCES = mln_morpho_closing_volume.cc
-mln_trait_concrete_SOURCES = mln_trait_concrete.cc
-mln_trait_promote_SOURCES = mln_trait_promote.cc
-mln_trait_all_SOURCES = mln_trait_all.cc
-mln_trait_site_set_props_SOURCES = mln_trait_site_set_props.cc
-mln_trait_site_set_print_SOURCES = mln_trait_site_set_print.cc
-mln_trait_value__SOURCES = mln_trait_value_.cc
-mln_trait_image_from_grid_SOURCES = mln_trait_image_from_grid.cc
-mln_trait_ch_value_SOURCES = mln_trait_ch_value.cc
-mln_trait_solve_unary_SOURCES = mln_trait_solve_unary.cc
-mln_trait_site_sets_SOURCES = mln_trait_site_sets.cc
-mln_trait_essential_SOURCES = mln_trait_essential.cc
-mln_trait_value_all_SOURCES = mln_trait_value_all.cc
-mln_trait_value_print_SOURCES = mln_trait_value_print.cc
-mln_trait_value_kind_SOURCES = mln_trait_value_kind.cc
-mln_trait_value_nature_SOURCES = mln_trait_value_nature.cc
-mln_trait_value_essential_SOURCES = mln_trait_value_essential.cc
-mln_trait_value_quant_SOURCES = mln_trait_value_quant.cc
-mln_trait_windows_SOURCES = mln_trait_windows.cc
-mln_trait_window_props_SOURCES = mln_trait_window_props.cc
-mln_trait_window_print_SOURCES = mln_trait_window_print.cc
-mln_trait_image_props_SOURCES = mln_trait_image_props.cc
-mln_trait_image_print_SOURCES = mln_trait_image_print.cc
-mln_trait_images_SOURCES = mln_trait_images.cc
-mln_trait_undef_SOURCES = mln_trait_undef.cc
-mln_trait_op_postdec_SOURCES = mln_trait_op_postdec.cc
-mln_trait_op_div_SOURCES = mln_trait_op_div.cc
-mln_trait_op_uplus_SOURCES = mln_trait_op_uplus.cc
-mln_trait_op_minus_SOURCES = mln_trait_op_minus.cc
-mln_trait_op_less_SOURCES = mln_trait_op_less.cc
-mln_trait_op_predec_SOURCES = mln_trait_op_predec.cc
-mln_trait_op_eq_SOURCES = mln_trait_op_eq.cc
-mln_trait_op_all_SOURCES = mln_trait_op_all.cc
-mln_trait_op_leq_SOURCES = mln_trait_op_leq.cc
-mln_trait_op_preinc_SOURCES = mln_trait_op_preinc.cc
-mln_trait_op_and_SOURCES = mln_trait_op_and.cc
-mln_trait_op_greater_SOURCES = mln_trait_op_greater.cc
-mln_trait_op_lor_SOURCES = mln_trait_op_lor.cc
-mln_trait_op_or_SOURCES = mln_trait_op_or.cc
-mln_trait_op_not_SOURCES = mln_trait_op_not.cc
-mln_trait_op_uminus_SOURCES = mln_trait_op_uminus.cc
-mln_trait_op_essential_SOURCES = mln_trait_op_essential.cc
-mln_trait_op_times_SOURCES = mln_trait_op_times.cc
-mln_trait_op_neq_SOURCES = mln_trait_op_neq.cc
-mln_trait_op_ord_SOURCES = mln_trait_op_ord.cc
-mln_trait_op_postinc_SOURCES = mln_trait_op_postinc.cc
-mln_trait_op_xor_SOURCES = mln_trait_op_xor.cc
-mln_trait_op_mod_SOURCES = mln_trait_op_mod.cc
-mln_trait_op_plus_SOURCES = mln_trait_op_plus.cc
-mln_trait_op_decl_SOURCES = mln_trait_op_decl.cc
-mln_trait_op_geq_SOURCES = mln_trait_op_geq.cc
-mln_trait_solve_binary_SOURCES = mln_trait_solve_binary.cc
-mln_trait_neighborhood_SOURCES = mln_trait_neighborhood.cc
-mln_trait_solve_SOURCES = mln_trait_solve.cc
-mln_draw_box_SOURCES = mln_draw_box.cc
-mln_draw_line_SOURCES = mln_draw_line.cc
-mln_draw_all_SOURCES = mln_draw_all.cc
-mln_draw_essential_SOURCES = mln_draw_essential.cc
-mln_draw_plot_SOURCES = mln_draw_plot.cc
-mln_labeling_foreground_SOURCES = mln_labeling_foreground.cc
-mln_labeling_all_SOURCES = mln_labeling_all.cc
-mln_labeling_+old_level_SOURCES = mln_labeling_+old_level.cc
-mln_labeling_regional_maxima_SOURCES = mln_labeling_regional_maxima.cc
-mln_labeling_flat_zones_SOURCES = mln_labeling_flat_zones.cc
+mln_core_image_fi_adaptor_SOURCES = mln_core_image_fi_adaptor.cc
+mln_core_image_mono_obased_rle_encode_SOURCES = mln_core_image_mono_obased_rle_encode.cc
+mln_core_image_line_graph_image_SOURCES = mln_core_image_line_graph_image.cc
+mln_core_image_value_encode_SOURCES = mln_core_image_value_encode.cc
+mln_core_image_essential_SOURCES = mln_core_image_essential.cc
+mln_core_a_point_of_SOURCES = mln_core_a_point_of.cc
+mln_core_var_SOURCES = mln_core_var.cc
+mln_core_essential_SOURCES = mln_core_essential.cc
+mln_core_faces_psite_SOURCES = mln_core_faces_psite.cc
mln_labeling_blobs_SOURCES = mln_labeling_blobs.cc
-mln_labeling_essential_SOURCES = mln_labeling_essential.cc
-mln_labeling_relabel_SOURCES = mln_labeling_relabel.cc
-mln_labeling_regional_minima_SOURCES = mln_labeling_regional_minima.cc
mln_labeling_background_SOURCES = mln_labeling_background.cc
-mln_labeling_compute_SOURCES = mln_labeling_compute.cc
+mln_labeling_relabel_SOURCES = mln_labeling_relabel.cc
+mln_labeling_all_SOURCES = mln_labeling_all.cc
mln_labeling_level_SOURCES = mln_labeling_level.cc
-mln_binarization_all_SOURCES = mln_binarization_all.cc
-mln_binarization_includes_SOURCES = mln_binarization_includes.cc
-mln_binarization_essential_SOURCES = mln_binarization_essential.cc
-mln_binarization_binarization_SOURCES = mln_binarization_binarization.cc
-mln_binarization_threshold_SOURCES = mln_binarization_threshold.cc
-mln_topo_adj_lower_dim_connected_n_face_iter_SOURCES = mln_topo_adj_lower_dim_connected_n_face_iter.cc
-mln_topo_face_iter_SOURCES = mln_topo_face_iter.cc
-mln_topo_adj_lower_face_iter_SOURCES = mln_topo_adj_lower_face_iter.cc
-mln_topo_complex_SOURCES = mln_topo_complex.cc
-mln_topo_n_face_iter_SOURCES = mln_topo_n_face_iter.cc
-mln_topo_adj_lower_higher_face_iter_SOURCES = mln_topo_adj_lower_higher_face_iter.cc
-mln_topo_centered_iter_adapter_SOURCES = mln_topo_centered_iter_adapter.cc
-mln_topo_all_SOURCES = mln_topo_all.cc
-mln_topo_complex_iterators_SOURCES = mln_topo_complex_iterators.cc
-mln_topo_attic_faces_iter_SOURCES = mln_topo_attic_faces_iter.cc
-mln_topo_internal_complex_set_iterator_base_SOURCES = mln_topo_internal_complex_set_iterator_base.cc
-mln_topo_internal_complex_iterator_base_SOURCES = mln_topo_internal_complex_iterator_base.cc
-mln_topo_internal_complex_relative_iterator_base_SOURCES = mln_topo_internal_complex_relative_iterator_base.cc
-mln_topo_internal_complex_relative_iterator_sequence_SOURCES = mln_topo_internal_complex_relative_iterator_sequence.cc
-mln_topo_face_data_SOURCES = mln_topo_face_data.cc
-mln_topo_adj_m_face_iter_SOURCES = mln_topo_adj_m_face_iter.cc
-mln_topo_algebraic_face_SOURCES = mln_topo_algebraic_face.cc
-mln_topo_algebraic_n_face_SOURCES = mln_topo_algebraic_n_face.cc
-mln_topo_is_simple_2d_SOURCES = mln_topo_is_simple_2d.cc
-mln_topo_n_faces_set_SOURCES = mln_topo_n_faces_set.cc
-mln_topo_essential_SOURCES = mln_topo_essential.cc
-mln_topo_face_SOURCES = mln_topo_face.cc
-mln_topo_static_n_face_iter_SOURCES = mln_topo_static_n_face_iter.cc
-mln_topo_center_only_iter_SOURCES = mln_topo_center_only_iter.cc
-mln_topo_adj_higher_dim_connected_n_face_iter_SOURCES = mln_topo_adj_higher_dim_connected_n_face_iter.cc
-mln_topo_n_face_SOURCES = mln_topo_n_face.cc
-mln_topo_adj_higher_face_iter_SOURCES = mln_topo_adj_higher_face_iter.cc
-mln_canvas_all_SOURCES = mln_canvas_all.cc
-mln_canvas_morpho_all_SOURCES = mln_canvas_morpho_all.cc
-mln_canvas_morpho_algebraic_union_find_SOURCES = mln_canvas_morpho_algebraic_union_find.cc
-mln_canvas_morpho_essential_SOURCES = mln_canvas_morpho_essential.cc
-mln_canvas_distance_geodesic_SOURCES = mln_canvas_distance_geodesic.cc
-mln_canvas_essential_SOURCES = mln_canvas_essential.cc
-mln_canvas_labeling_SOURCES = mln_canvas_labeling.cc
-mln_canvas_+old_labeling_SOURCES = mln_canvas_+old_labeling.cc
-mln_canvas_chamfer_SOURCES = mln_canvas_chamfer.cc
-mln_canvas_browsing_directional_SOURCES = mln_canvas_browsing_directional.cc
-mln_canvas_browsing_snake_fwd_SOURCES = mln_canvas_browsing_snake_fwd.cc
-mln_canvas_browsing_snake_generic_SOURCES = mln_canvas_browsing_snake_generic.cc
-mln_canvas_browsing_all_SOURCES = mln_canvas_browsing_all.cc
-mln_canvas_browsing_fwd_SOURCES = mln_canvas_browsing_fwd.cc
-mln_canvas_browsing_backdiagonal2d_SOURCES = mln_canvas_browsing_backdiagonal2d.cc
-mln_canvas_browsing_snake_vert_SOURCES = mln_canvas_browsing_snake_vert.cc
-mln_canvas_browsing_dir_struct_elt_incr_update_SOURCES = mln_canvas_browsing_dir_struct_elt_incr_update.cc
-mln_canvas_browsing_essential_SOURCES = mln_canvas_browsing_essential.cc
-mln_canvas_browsing_diagonal2d_SOURCES = mln_canvas_browsing_diagonal2d.cc
-mln_canvas_browsing_hyper_directional_SOURCES = mln_canvas_browsing_hyper_directional.cc
-mln_canvas_distance_front_SOURCES = mln_canvas_distance_front.cc
-mln_util_line_graph_SOURCES = mln_util_line_graph.cc
-mln_util_lazy_set_SOURCES = mln_util_lazy_set.cc
-mln_util_eat_SOURCES = mln_util_eat.cc
-mln_util_ignore_SOURCES = mln_util_ignore.cc
-mln_util_timer_SOURCES = mln_util_timer.cc
-mln_util_all_SOURCES = mln_util_all.cc
-mln_util_tracked_ptr_SOURCES = mln_util_tracked_ptr.cc
-mln_util_internal_graph_nbh_iter_SOURCES = mln_util_internal_graph_nbh_iter.cc
-mln_util_internal_boost_graph_structure_SOURCES = mln_util_internal_boost_graph_structure.cc
-mln_util_internal_edge_impl_SOURCES = mln_util_internal_edge_impl.cc
-mln_util_internal_graph_base_SOURCES = mln_util_internal_graph_base.cc
-mln_util_internal_vertex_impl_SOURCES = mln_util_internal_vertex_impl.cc
-mln_util_internal_graph_iter_SOURCES = mln_util_internal_graph_iter.cc
-mln_util_internal_graph_nbh_iter_base_SOURCES = mln_util_internal_graph_nbh_iter_base.cc
-mln_util_internal_boost_graph_access_SOURCES = mln_util_internal_boost_graph_access.cc
-mln_util_internal_graph_iter_base_SOURCES = mln_util_internal_graph_iter_base.cc
-mln_util_internal_boost_graph_property_SOURCES = mln_util_internal_boost_graph_property.cc
-mln_util_internal_boost_graph_SOURCES = mln_util_internal_boost_graph.cc
-mln_util_pix_SOURCES = mln_util_pix.cc
-mln_util_greater_point_SOURCES = mln_util_greater_point.cc
-mln_util_edge_SOURCES = mln_util_edge.cc
-mln_util_multi_site_SOURCES = mln_util_multi_site.cc
-mln_util_tree_fast_to_image_SOURCES = mln_util_tree_fast_to_image.cc
-mln_util_graph_SOURCES = mln_util_graph.cc
-mln_util_site_pair_SOURCES = mln_util_site_pair.cc
-mln_util_yes_SOURCES = mln_util_yes.cc
-mln_util_essential_SOURCES = mln_util_essential.cc
-mln_util_tree_to_fast_SOURCES = mln_util_tree_to_fast.cc
-mln_util_ord_SOURCES = mln_util_ord.cc
-mln_util_greater_psite_SOURCES = mln_util_greater_psite.cc
-mln_util_vertex_SOURCES = mln_util_vertex.cc
-mln_util_branch_iter_SOURCES = mln_util_branch_iter.cc
-mln_util_tree_fast_SOURCES = mln_util_tree_fast.cc
-mln_util_dindex_SOURCES = mln_util_dindex.cc
-mln_util_branch_iter_ind_SOURCES = mln_util_branch_iter_ind.cc
-mln_util_tree_SOURCES = mln_util_tree.cc
-mln_util_set_SOURCES = mln_util_set.cc
-mln_util_index_SOURCES = mln_util_index.cc
-mln_util_tree_to_image_SOURCES = mln_util_tree_to_image.cc
-mln_util_max_SOURCES = mln_util_max.cc
-mln_util_ord_pair_SOURCES = mln_util_ord_pair.cc
-mln_util_array_SOURCES = mln_util_array.cc
-mln_util_lemmings_SOURCES = mln_util_lemmings.cc
-mln_util_nil_SOURCES = mln_util_nil.cc
-mln_test_all_SOURCES = mln_test_all.cc
+mln_labeling_flat_zones_SOURCES = mln_labeling_flat_zones.cc
+mln_labeling_foreground_SOURCES = mln_labeling_foreground.cc
+mln_labeling_regional_maxima_SOURCES = mln_labeling_regional_maxima.cc
+mln_labeling_compute_SOURCES = mln_labeling_compute.cc
+mln_labeling_regional_minima_SOURCES = mln_labeling_regional_minima.cc
+mln_labeling_essential_SOURCES = mln_labeling_essential.cc
mln_test_predicate_SOURCES = mln_test_predicate.cc
-mln_test_essential_SOURCES = mln_test_essential.cc
+mln_test_all_SOURCES = mln_test_all.cc
mln_test_positive_SOURCES = mln_test_positive.cc
-mln_border_get_SOURCES = mln_border_get.cc
-mln_border_equalize_SOURCES = mln_border_equalize.cc
-mln_border_all_SOURCES = mln_border_all.cc
-mln_border_duplicate_SOURCES = mln_border_duplicate.cc
-mln_border_essential_SOURCES = mln_border_essential.cc
-mln_border_find_SOURCES = mln_border_find.cc
-mln_border_adjust_SOURCES = mln_border_adjust.cc
-mln_border_resize_SOURCES = mln_border_resize.cc
-mln_border_fill_SOURCES = mln_border_fill.cc
-mln_border_thickness_SOURCES = mln_border_thickness.cc
-mln_border_mirror_SOURCES = mln_border_mirror.cc
-mln_accu_histo_SOURCES = mln_accu_histo.cc
-mln_accu_max_h_SOURCES = mln_accu_max_h.cc
-mln_accu_take_SOURCES = mln_accu_take.cc
-mln_accu_center_SOURCES = mln_accu_center.cc
-mln_accu_bbox_SOURCES = mln_accu_bbox.cc
-mln_accu_median_alt_SOURCES = mln_accu_median_alt.cc
-mln_accu_line_SOURCES = mln_accu_line.cc
-mln_accu_all_SOURCES = mln_accu_all.cc
-mln_accu_volume_SOURCES = mln_accu_volume.cc
-mln_accu_min_h_SOURCES = mln_accu_min_h.cc
-mln_accu_land_basic_SOURCES = mln_accu_land_basic.cc
-mln_accu_convolve_SOURCES = mln_accu_convolve.cc
-mln_accu_lor_basic_SOURCES = mln_accu_lor_basic.cc
-mln_accu_sum_SOURCES = mln_accu_sum.cc
-mln_accu_internal_base_SOURCES = mln_accu_internal_base.cc
-mln_accu_min_max_SOURCES = mln_accu_min_max.cc
-mln_accu_rank_SOURCES = mln_accu_rank.cc
-mln_accu_lor_SOURCES = mln_accu_lor.cc
-mln_accu_min_SOURCES = mln_accu_min.cc
-mln_accu_rank_high_quant_SOURCES = mln_accu_rank_high_quant.cc
-mln_accu_transform_directional_SOURCES = mln_accu_transform_directional.cc
-mln_accu_pair_SOURCES = mln_accu_pair.cc
-mln_accu_essential_SOURCES = mln_accu_essential.cc
-mln_accu_median_h_SOURCES = mln_accu_median_h.cc
-mln_accu_transform_SOURCES = mln_accu_transform.cc
-mln_accu_maj_h_SOURCES = mln_accu_maj_h.cc
-mln_accu_p_SOURCES = mln_accu_p.cc
-mln_accu_v_SOURCES = mln_accu_v.cc
-mln_accu_tuple_SOURCES = mln_accu_tuple.cc
-mln_accu_mean_SOURCES = mln_accu_mean.cc
-mln_accu_rank_bool_SOURCES = mln_accu_rank_bool.cc
-mln_accu_compute_SOURCES = mln_accu_compute.cc
-mln_accu_max_SOURCES = mln_accu_max.cc
-mln_accu_land_SOURCES = mln_accu_land.cc
-mln_accu_transform_stop_SOURCES = mln_accu_transform_stop.cc
-mln_accu_count_adjacent_vertices_SOURCES = mln_accu_count_adjacent_vertices.cc
-mln_accu_count_SOURCES = mln_accu_count.cc
-mln_accu_transform_diagonal_SOURCES = mln_accu_transform_diagonal.cc
-mln_accu_transform_snake_SOURCES = mln_accu_transform_snake.cc
-mln_accu_height_SOURCES = mln_accu_height.cc
-mln_accu_nil_SOURCES = mln_accu_nil.cc
-mln_extension_adjust_duplicate_SOURCES = mln_extension_adjust_duplicate.cc
-mln_extension_all_SOURCES = mln_extension_all.cc
-mln_extension_duplicate_SOURCES = mln_extension_duplicate.cc
-mln_extension_essential_SOURCES = mln_extension_essential.cc
-mln_extension_adjust_SOURCES = mln_extension_adjust.cc
-mln_extension_fill_SOURCES = mln_extension_fill.cc
-mln_extension_adjust_fill_SOURCES = mln_extension_adjust_fill.cc
-mln_io_pnm_load_SOURCES = mln_io_pnm_load.cc
-mln_io_pnm_macros_SOURCES = mln_io_pnm_macros.cc
-mln_io_pnm_max_component_SOURCES = mln_io_pnm_max_component.cc
-mln_io_pnm_all_SOURCES = mln_io_pnm_all.cc
-mln_io_pnm_load_header_SOURCES = mln_io_pnm_load_header.cc
-mln_io_pnm_save_SOURCES = mln_io_pnm_save.cc
-mln_io_pnm_save_header_SOURCES = mln_io_pnm_save_header.cc
-mln_io_off_load_SOURCES = mln_io_off_load.cc
-mln_io_off_all_SOURCES = mln_io_off_all.cc
-mln_io_off_save_SOURCES = mln_io_off_save.cc
+mln_test_essential_SOURCES = mln_test_essential.cc
+mln_transform_distance_geodesic_SOURCES = mln_transform_distance_geodesic.cc
+mln_transform_internal_all_SOURCES = mln_transform_internal_all.cc
+mln_transform_internal_distance_functor_SOURCES = mln_transform_internal_distance_functor.cc
+mln_transform_internal_influence_zone_functor_SOURCES = mln_transform_internal_influence_zone_functor.cc
+mln_transform_all_SOURCES = mln_transform_all.cc
+mln_transform_influence_zone_front_SOURCES = mln_transform_influence_zone_front.cc
+mln_transform_distance_front_SOURCES = mln_transform_distance_front.cc
+mln_transform_influence_zone_geodesic_SOURCES = mln_transform_influence_zone_geodesic.cc
+mln_transform_essential_SOURCES = mln_transform_essential.cc
+mln_arith_includes_SOURCES = mln_arith_includes.cc
+mln_arith_plus_SOURCES = mln_arith_plus.cc
+mln_arith_all_SOURCES = mln_arith_all.cc
+mln_arith_times_SOURCES = mln_arith_times.cc
+mln_arith_diff_abs_SOURCES = mln_arith_diff_abs.cc
+mln_arith_minus_SOURCES = mln_arith_minus.cc
+mln_arith_min_SOURCES = mln_arith_min.cc
+mln_arith_revert_SOURCES = mln_arith_revert.cc
+mln_arith_essential_SOURCES = mln_arith_essential.cc
+mln_io_pgm_load_SOURCES = mln_io_pgm_load.cc
+mln_io_pgm_all_SOURCES = mln_io_pgm_all.cc
+mln_io_pgm_save_SOURCES = mln_io_pgm_save.cc
+mln_io_ppm_load_SOURCES = mln_io_ppm_load.cc
+mln_io_ppm_all_SOURCES = mln_io_ppm_all.cc
+mln_io_ppm_save_SOURCES = mln_io_ppm_save.cc
+mln_io_pfm_load_SOURCES = mln_io_pfm_load.cc
+mln_io_pfm_all_SOURCES = mln_io_pfm_all.cc
+mln_io_pfm_save_SOURCES = mln_io_pfm_save.cc
mln_io_all_SOURCES = mln_io_all.cc
mln_io_pbm_load_SOURCES = mln_io_pbm_load.cc
mln_io_pbm_all_SOURCES = mln_io_pbm_all.cc
mln_io_pbm_save_SOURCES = mln_io_pbm_save.cc
-mln_io_pfm_load_SOURCES = mln_io_pfm_load.cc
-mln_io_pfm_all_SOURCES = mln_io_pfm_all.cc
-mln_io_pfm_save_SOURCES = mln_io_pfm_save.cc
-mln_io_fits_load_SOURCES = mln_io_fits_load.cc
-mln_io_fits_all_SOURCES = mln_io_fits_all.cc
+mln_io_pnm_max_component_SOURCES = mln_io_pnm_max_component.cc
+mln_io_pnm_load_SOURCES = mln_io_pnm_load.cc
+mln_io_pnm_load_header_SOURCES = mln_io_pnm_load_header.cc
+mln_io_pnm_all_SOURCES = mln_io_pnm_all.cc
+mln_io_pnm_macros_SOURCES = mln_io_pnm_macros.cc
+mln_io_pnm_save_SOURCES = mln_io_pnm_save.cc
+mln_io_pnm_save_header_SOURCES = mln_io_pnm_save_header.cc
mln_io_txt_all_SOURCES = mln_io_txt_all.cc
mln_io_txt_save_SOURCES = mln_io_txt_save.cc
mln_io_abort_SOURCES = mln_io_abort.cc
+mln_io_fits_load_SOURCES = mln_io_fits_load.cc
+mln_io_fits_all_SOURCES = mln_io_fits_all.cc
+mln_io_off_load_SOURCES = mln_io_off_load.cc
+mln_io_off_all_SOURCES = mln_io_off_all.cc
+mln_io_off_save_SOURCES = mln_io_off_save.cc
mln_io_essential_SOURCES = mln_io_essential.cc
-mln_io_ppm_load_SOURCES = mln_io_ppm_load.cc
-mln_io_ppm_all_SOURCES = mln_io_ppm_all.cc
-mln_io_ppm_save_SOURCES = mln_io_ppm_save.cc
-mln_io_pgm_load_SOURCES = mln_io_pgm_load.cc
-mln_io_pgm_all_SOURCES = mln_io_pgm_all.cc
-mln_io_pgm_save_SOURCES = mln_io_pgm_save.cc
-mln_arith_minus_SOURCES = mln_arith_minus.cc
-mln_arith_all_SOURCES = mln_arith_all.cc
-mln_arith_includes_SOURCES = mln_arith_includes.cc
-mln_arith_min_SOURCES = mln_arith_min.cc
-mln_arith_diff_abs_SOURCES = mln_arith_diff_abs.cc
-mln_arith_essential_SOURCES = mln_arith_essential.cc
-mln_arith_times_SOURCES = mln_arith_times.cc
-mln_arith_revert_SOURCES = mln_arith_revert.cc
-mln_arith_plus_SOURCES = mln_arith_plus.cc
-mln_convert_to_p_array_SOURCES = mln_convert_to_p_array.cc
-mln_convert_to_SOURCES = mln_convert_to.cc
-mln_convert_to_dpoint_SOURCES = mln_convert_to_dpoint.cc
-mln_convert_all_SOURCES = mln_convert_all.cc
-mln_convert_to_upper_window_SOURCES = mln_convert_to_upper_window.cc
-mln_convert_impl_all_SOURCES = mln_convert_impl_all.cc
-mln_convert_impl_from_value_to_value_SOURCES = mln_convert_impl_from_value_to_value.cc
-mln_convert_impl_from_image_to_site_set_SOURCES = mln_convert_impl_from_image_to_site_set.cc
-mln_convert_essential_SOURCES = mln_convert_essential.cc
-mln_convert_from_to_SOURCES = mln_convert_from_to.cc
-mln_convert_to_fun_SOURCES = mln_convert_to_fun.cc
-mln_convert_to_image_SOURCES = mln_convert_to_image.cc
-mln_convert_to_window_SOURCES = mln_convert_to_window.cc
-mln_convert_to_rgb_SOURCES = mln_convert_to_rgb.cc
-mln_convert_to_p_set_SOURCES = mln_convert_to_p_set.cc
-mln_win_backdiag2d_SOURCES = mln_win_backdiag2d.cc
-mln_win_cube3d_SOURCES = mln_win_cube3d.cc
-mln_win_line_SOURCES = mln_win_line.cc
-mln_win_all_SOURCES = mln_win_all.cc
-mln_win_rectangle2d_SOURCES = mln_win_rectangle2d.cc
-mln_win_disk2d_SOURCES = mln_win_disk2d.cc
-mln_win_cuboid3d_SOURCES = mln_win_cuboid3d.cc
-mln_win_diag2d_SOURCES = mln_win_diag2d.cc
-mln_win_shift_SOURCES = mln_win_shift.cc
-mln_win_essential_SOURCES = mln_win_essential.cc
-mln_win_octagon2d_SOURCES = mln_win_octagon2d.cc
-mln_win_sym_SOURCES = mln_win_sym.cc
-mln_win_hline2d_SOURCES = mln_win_hline2d.cc
-mln_win_segment1d_SOURCES = mln_win_segment1d.cc
-mln_win_diff_SOURCES = mln_win_diff.cc
-mln_win_vline2d_SOURCES = mln_win_vline2d.cc
-mln_win_inter_SOURCES = mln_win_inter.cc
-mln_win_multiple_size_SOURCES = mln_win_multiple_size.cc
-mln_win_multiple_SOURCES = mln_win_multiple.cc
-mln_algebra_all_SOURCES = mln_algebra_all.cc
-mln_algebra_h_mat_SOURCES = mln_algebra_h_mat.cc
-mln_algebra_essential_SOURCES = mln_algebra_essential.cc
-mln_algebra_h_vec_SOURCES = mln_algebra_h_vec.cc
-mln_algebra_vec_SOURCES = mln_algebra_vec.cc
-mln_algebra_quat_SOURCES = mln_algebra_quat.cc
-mln_algebra_mat_SOURCES = mln_algebra_mat.cc
-mln_debug_colorize_SOURCES = mln_debug_colorize.cc
+mln_logical_includes_SOURCES = mln_logical_includes.cc
+mln_logical_and_not_SOURCES = mln_logical_and_not.cc
+mln_logical_xor_SOURCES = mln_logical_xor.cc
+mln_logical_all_SOURCES = mln_logical_all.cc
+mln_logical_not_SOURCES = mln_logical_not.cc
+mln_logical_and_SOURCES = mln_logical_and.cc
+mln_logical_or_SOURCES = mln_logical_or.cc
+mln_logical_essential_SOURCES = mln_logical_essential.cc
+mln_norm_all_SOURCES = mln_norm_all.cc
+mln_norm_l1_SOURCES = mln_norm_l1.cc
+mln_norm_l2_SOURCES = mln_norm_l2.cc
+mln_norm_linfty_SOURCES = mln_norm_linfty.cc
+mln_norm_essential_SOURCES = mln_norm_essential.cc
mln_debug_iota_SOURCES = mln_debug_iota.cc
-mln_debug_draw_graph_SOURCES = mln_debug_draw_graph.cc
-mln_debug_format_SOURCES = mln_debug_format.cc
mln_debug_all_SOURCES = mln_debug_all.cc
-mln_debug_essential_SOURCES = mln_debug_essential.cc
mln_debug_println_with_border_SOURCES = mln_debug_println_with_border.cc
-mln_debug_println_SOURCES = mln_debug_println.cc
+mln_debug_colorize_SOURCES = mln_debug_colorize.cc
+mln_debug_draw_graph_SOURCES = mln_debug_draw_graph.cc
mln_debug_put_word_SOURCES = mln_debug_put_word.cc
-mln_value_int_u8_SOURCES = mln_value_int_u8.cc
-mln_value_viter_SOURCES = mln_value_viter.cc
-mln_value_glf_SOURCES = mln_value_glf.cc
-mln_value_label_SOURCES = mln_value_label.cc
-mln_value_int_u_sat_SOURCES = mln_value_int_u_sat.cc
-mln_value_float01_8_SOURCES = mln_value_float01_8.cc
-mln_value_all_SOURCES = mln_value_all.cc
-mln_value_rgb_SOURCES = mln_value_rgb.cc
-mln_value_int_s16_SOURCES = mln_value_int_s16.cc
-mln_value_concept_vectorial_SOURCES = mln_value_concept_vectorial.cc
-mln_value_concept_floating_SOURCES = mln_value_concept_floating.cc
-mln_value_concept_all_SOURCES = mln_value_concept_all.cc
-mln_value_concept_data_SOURCES = mln_value_concept_data.cc
-mln_value_concept_built_in_SOURCES = mln_value_concept_built_in.cc
-mln_value_concept_integer_SOURCES = mln_value_concept_integer.cc
-mln_value_concept_essential_SOURCES = mln_value_concept_essential.cc
-mln_value_concept_symbolic_SOURCES = mln_value_concept_symbolic.cc
-mln_value_concept_structured_SOURCES = mln_value_concept_structured.cc
-mln_value_concept_scalar_SOURCES = mln_value_concept_scalar.cc
-mln_value_internal_all_SOURCES = mln_value_internal_all.cc
-mln_value_internal_value_like_SOURCES = mln_value_internal_value_like.cc
-mln_value_internal_gray_f_SOURCES = mln_value_internal_gray_f.cc
-mln_value_internal_integer_SOURCES = mln_value_internal_integer.cc
-mln_value_internal_essential_SOURCES = mln_value_internal_essential.cc
-mln_value_internal_convert_SOURCES = mln_value_internal_convert.cc
-mln_value_internal_gray__SOURCES = mln_value_internal_gray_.cc
-mln_value_internal_encoding_SOURCES = mln_value_internal_encoding.cc
-mln_value_internal_iterable_set_SOURCES = mln_value_internal_iterable_set.cc
-mln_value_int_s32_SOURCES = mln_value_int_s32.cc
-mln_value_int_s_SOURCES = mln_value_int_s.cc
-mln_value_float01__SOURCES = mln_value_float01_.cc
-mln_value_label_16_SOURCES = mln_value_label_16.cc
-mln_value_int_u16_SOURCES = mln_value_int_u16.cc
-mln_value_int_u_SOURCES = mln_value_int_u.cc
-mln_value_hsi_SOURCES = mln_value_hsi.cc
-mln_value_essential_SOURCES = mln_value_essential.cc
-mln_value_gl16_SOURCES = mln_value_gl16.cc
-mln_value_label_8_SOURCES = mln_value_label_8.cc
-mln_value_int_u32_SOURCES = mln_value_int_u32.cc
-mln_value_interval_SOURCES = mln_value_interval.cc
-mln_value_builtin_floatings_SOURCES = mln_value_builtin_floatings.cc
-mln_value_builtin_all_SOURCES = mln_value_builtin_all.cc
-mln_value_builtin_symbolics_SOURCES = mln_value_builtin_symbolics.cc
-mln_value_builtin_promotions_SOURCES = mln_value_builtin_promotions.cc
-mln_value_builtin_essential_SOURCES = mln_value_builtin_essential.cc
-mln_value_builtin_integers_SOURCES = mln_value_builtin_integers.cc
-mln_value_builtin_ops_SOURCES = mln_value_builtin_ops.cc
-mln_value_rgb16_SOURCES = mln_value_rgb16.cc
-mln_value_graylevel_f_SOURCES = mln_value_graylevel_f.cc
-mln_value_gl8_SOURCES = mln_value_gl8.cc
-mln_value_super_value_SOURCES = mln_value_super_value.cc
-mln_value_lut_vec_SOURCES = mln_value_lut_vec.cc
-mln_value_float01_SOURCES = mln_value_float01.cc
-mln_value_aliases_SOURCES = mln_value_aliases.cc
-mln_value_proxy_SOURCES = mln_value_proxy.cc
-mln_value_set_SOURCES = mln_value_set.cc
-mln_value_cast_SOURCES = mln_value_cast.cc
-mln_value_rgb8_SOURCES = mln_value_rgb8.cc
-mln_value_stack_SOURCES = mln_value_stack.cc
-mln_value_float01_f_SOURCES = mln_value_float01_f.cc
-mln_value_other_SOURCES = mln_value_other.cc
-mln_value_scalar_SOURCES = mln_value_scalar.cc
-mln_value_equiv_SOURCES = mln_value_equiv.cc
-mln_value_float01_16_SOURCES = mln_value_float01_16.cc
-mln_value_graylevel_SOURCES = mln_value_graylevel.cc
-mln_value_sign_SOURCES = mln_value_sign.cc
-mln_value_ops_SOURCES = mln_value_ops.cc
-mln_value_int_s8_SOURCES = mln_value_int_s8.cc
-mln_fun_x2x_all_SOURCES = mln_fun_x2x_all.cc
-mln_fun_x2x_translation_SOURCES = mln_fun_x2x_translation.cc
-mln_fun_x2x_essential_SOURCES = mln_fun_x2x_essential.cc
-mln_fun_x2x_rotation_SOURCES = mln_fun_x2x_rotation.cc
-mln_fun_x2x_composed_SOURCES = mln_fun_x2x_composed.cc
-mln_fun_x2p_all_SOURCES = mln_fun_x2p_all.cc
-mln_fun_x2p_essential_SOURCES = mln_fun_x2p_essential.cc
-mln_fun_x2p_closest_point_SOURCES = mln_fun_x2p_closest_point.cc
-mln_fun_v2b_all_SOURCES = mln_fun_v2b_all.cc
-mln_fun_v2b_essential_SOURCES = mln_fun_v2b_essential.cc
-mln_fun_v2b_threshold_SOURCES = mln_fun_v2b_threshold.cc
-mln_fun_v2b_lnot_SOURCES = mln_fun_v2b_lnot.cc
-mln_fun_p2v_iota_SOURCES = mln_fun_p2v_iota.cc
-mln_fun_p2v_elifs_SOURCES = mln_fun_p2v_elifs.cc
-mln_fun_p2v_all_SOURCES = mln_fun_p2v_all.cc
-mln_fun_p2v_essential_SOURCES = mln_fun_p2v_essential.cc
-mln_fun_p2v_ternary_SOURCES = mln_fun_p2v_ternary.cc
-mln_fun_all_SOURCES = mln_fun_all.cc
-mln_fun_internal_array_base_SOURCES = mln_fun_internal_array_base.cc
-mln_fun_internal_selector_SOURCES = mln_fun_internal_selector.cc
-mln_fun_internal_x2x_linear_impl_SOURCES = mln_fun_internal_x2x_linear_impl.cc
-mln_fun_vv2v_macros_SOURCES = mln_fun_vv2v_macros.cc
-mln_fun_vv2v_all_SOURCES = mln_fun_vv2v_all.cc
-mln_fun_vv2v_lor_SOURCES = mln_fun_vv2v_lor.cc
-mln_fun_vv2v_min_SOURCES = mln_fun_vv2v_min.cc
-mln_fun_vv2v_diff_abs_SOURCES = mln_fun_vv2v_diff_abs.cc
-mln_fun_vv2v_essential_SOURCES = mln_fun_vv2v_essential.cc
-mln_fun_vv2v_land_not_SOURCES = mln_fun_vv2v_land_not.cc
-mln_fun_vv2v_vec_SOURCES = mln_fun_vv2v_vec.cc
-mln_fun_vv2v_lxor_SOURCES = mln_fun_vv2v_lxor.cc
-mln_fun_vv2v_max_SOURCES = mln_fun_vv2v_max.cc
-mln_fun_vv2v_land_SOURCES = mln_fun_vv2v_land.cc
-mln_fun_p2p_mirror_SOURCES = mln_fun_p2p_mirror.cc
-mln_fun_v2v_norm_SOURCES = mln_fun_v2v_norm.cc
-mln_fun_v2v_all_SOURCES = mln_fun_v2v_all.cc
-mln_fun_v2v_inc_SOURCES = mln_fun_v2v_inc.cc
-mln_fun_v2v_essential_SOURCES = mln_fun_v2v_essential.cc
-mln_fun_v2v_abs_SOURCES = mln_fun_v2v_abs.cc
-mln_fun_v2v_linear_SOURCES = mln_fun_v2v_linear.cc
-mln_fun_v2v_convert_SOURCES = mln_fun_v2v_convert.cc
-mln_fun_v2v_rgb_to_hsi_SOURCES = mln_fun_v2v_rgb_to_hsi.cc
-mln_fun_v2v_dec_SOURCES = mln_fun_v2v_dec.cc
-mln_fun_v2v_cast_SOURCES = mln_fun_v2v_cast.cc
-mln_fun_v2v_id_SOURCES = mln_fun_v2v_id.cc
-mln_fun_v2v_enc_SOURCES = mln_fun_v2v_enc.cc
-mln_fun_v2v_saturate_SOURCES = mln_fun_v2v_saturate.cc
-mln_fun_essential_SOURCES = mln_fun_essential.cc
-mln_fun_p2b_all_SOURCES = mln_fun_p2b_all.cc
-mln_fun_p2b_big_chess_SOURCES = mln_fun_p2b_big_chess.cc
-mln_fun_p2b_essential_SOURCES = mln_fun_p2b_essential.cc
-mln_fun_p2b_has_SOURCES = mln_fun_p2b_has.cc
-mln_fun_p2b_chess_SOURCES = mln_fun_p2b_chess.cc
-mln_fun_c_SOURCES = mln_fun_c.cc
-mln_fun_i2v_all_to_SOURCES = mln_fun_i2v_all_to.cc
-mln_fun_i2v_all_SOURCES = mln_fun_i2v_all.cc
-mln_fun_i2v_essential_SOURCES = mln_fun_i2v_essential.cc
-mln_fun_i2v_array_SOURCES = mln_fun_i2v_array.cc
-mln_fun_x2v_all_SOURCES = mln_fun_x2v_all.cc
-mln_fun_x2v_l1_norm_SOURCES = mln_fun_x2v_l1_norm.cc
-mln_fun_x2v_essential_SOURCES = mln_fun_x2v_essential.cc
-mln_fun_x2v_linear_SOURCES = mln_fun_x2v_linear.cc
-mln_fun_x2v_bilinear_SOURCES = mln_fun_x2v_bilinear.cc
-mln_fun_x2v_nneighbor_SOURCES = mln_fun_x2v_nneighbor.cc
-mln_fun_cast_SOURCES = mln_fun_cast.cc
-mln_fun_l2l_all_SOURCES = mln_fun_l2l_all.cc
-mln_fun_l2l_essential_SOURCES = mln_fun_l2l_essential.cc
-mln_fun_l2l_relabel_SOURCES = mln_fun_l2l_relabel.cc
-mln_fun_ops_SOURCES = mln_fun_ops.cc
-mln_norm_all_SOURCES = mln_norm_all.cc
-mln_norm_essential_SOURCES = mln_norm_essential.cc
-mln_norm_linfty_SOURCES = mln_norm_linfty.cc
-mln_norm_l1_SOURCES = mln_norm_l1.cc
-mln_norm_l2_SOURCES = mln_norm_l2.cc
-mln_metal_is_SOURCES = mln_metal_is.cc
-mln_metal_is_a_SOURCES = mln_metal_is_a.cc
-mln_metal_array3d_SOURCES = mln_metal_array3d.cc
-mln_metal_if_SOURCES = mln_metal_if.cc
-mln_metal_same_coord_SOURCES = mln_metal_same_coord.cc
-mln_metal_ands_SOURCES = mln_metal_ands.cc
-mln_metal_goes_to_SOURCES = mln_metal_goes_to.cc
-mln_metal_is_not_ref_SOURCES = mln_metal_is_not_ref.cc
-mln_metal_has_neighborhood_SOURCES = mln_metal_has_neighborhood.cc
-mln_metal_equal_SOURCES = mln_metal_equal.cc
-mln_metal_all_SOURCES = mln_metal_all.cc
-mln_metal_unref_SOURCES = mln_metal_unref.cc
-mln_metal_math_sqrt_SOURCES = mln_metal_math_sqrt.cc
-mln_metal_math_root_SOURCES = mln_metal_math_root.cc
-mln_metal_math_all_SOURCES = mln_metal_math_all.cc
-mln_metal_math_pow_SOURCES = mln_metal_math_pow.cc
-mln_metal_math_max_SOURCES = mln_metal_math_max.cc
-mln_metal_unqualif_SOURCES = mln_metal_unqualif.cc
-mln_metal_array2d_SOURCES = mln_metal_array2d.cc
-mln_metal_bool_SOURCES = mln_metal_bool.cc
-mln_metal_is_unqualif_SOURCES = mln_metal_is_unqualif.cc
-mln_metal_not_equal_SOURCES = mln_metal_not_equal.cc
-mln_metal_templated_by_SOURCES = mln_metal_templated_by.cc
-mln_metal_is_const_SOURCES = mln_metal_is_const.cc
-mln_metal_same_point_SOURCES = mln_metal_same_point.cc
-mln_metal_is_not_a_SOURCES = mln_metal_is_not_a.cc
-mln_metal_int_SOURCES = mln_metal_int.cc
-mln_metal_abort_SOURCES = mln_metal_abort.cc
-mln_metal_essential_SOURCES = mln_metal_essential.cc
-mln_metal_ref_SOURCES = mln_metal_ref.cc
-mln_metal_array1d_SOURCES = mln_metal_array1d.cc
-mln_metal_unconst_SOURCES = mln_metal_unconst.cc
-mln_metal_none_SOURCES = mln_metal_none.cc
-mln_metal_is_not_const_SOURCES = mln_metal_is_not_const.cc
-mln_metal_vec_SOURCES = mln_metal_vec.cc
-mln_metal_is_not_SOURCES = mln_metal_is_not.cc
-mln_metal_const_SOURCES = mln_metal_const.cc
-mln_metal_converts_to_SOURCES = mln_metal_converts_to.cc
-mln_metal_fix_return_SOURCES = mln_metal_fix_return.cc
-mln_metal_bexpr_SOURCES = mln_metal_bexpr.cc
-mln_metal_array_SOURCES = mln_metal_array.cc
-mln_metal_ret_SOURCES = mln_metal_ret.cc
-mln_metal_mat_SOURCES = mln_metal_mat.cc
-mln_metal_is_ref_SOURCES = mln_metal_is_ref.cc
-mln_metal_unptr_SOURCES = mln_metal_unptr.cc
-mln_+__proto___fake_run_SOURCES = mln_+__proto___fake_run.cc
-mln_+__proto___fake_utils_SOURCES = mln_+__proto___fake_utils.cc
-mln_+__proto___fake_array_SOURCES = mln_+__proto___fake_array.cc
-mln_level_+memo_fill_SOURCES = mln_level_+memo_fill.cc
-mln_level_assign_SOURCES = mln_level_assign.cc
-mln_level_stretch_SOURCES = mln_level_stretch.cc
-mln_level_to_enc_SOURCES = mln_level_to_enc.cc
-mln_level_all_SOURCES = mln_level_all.cc
-mln_level_median_SOURCES = mln_level_median.cc
-mln_level_compare_SOURCES = mln_level_compare.cc
-mln_level_approx_all_SOURCES = mln_level_approx_all.cc
-mln_level_approx_median_SOURCES = mln_level_approx_median.cc
-mln_level_approx_essential_SOURCES = mln_level_approx_essential.cc
-mln_level_paste_SOURCES = mln_level_paste.cc
-mln_level_fast_median_SOURCES = mln_level_fast_median.cc
-mln_level_replace_SOURCES = mln_level_replace.cc
-mln_level_essential_SOURCES = mln_level_essential.cc
-mln_level_transform_SOURCES = mln_level_transform.cc
-mln_level_abs_SOURCES = mln_level_abs.cc
-mln_level_sort_psites_SOURCES = mln_level_sort_psites.cc
-mln_level_memcpy__SOURCES = mln_level_memcpy_.cc
-mln_level_update_SOURCES = mln_level_update.cc
-mln_level_was_median_SOURCES = mln_level_was_median.cc
-mln_level_fill_SOURCES = mln_level_fill.cc
-mln_level_fill_with_image_SOURCES = mln_level_fill_with_image.cc
-mln_level_convert_SOURCES = mln_level_convert.cc
-mln_level_fill_with_value_SOURCES = mln_level_fill_with_value.cc
-mln_level_naive_all_SOURCES = mln_level_naive_all.cc
-mln_level_naive_median_SOURCES = mln_level_naive_median.cc
-mln_level_naive_essential_SOURCES = mln_level_naive_essential.cc
-mln_level_compute_SOURCES = mln_level_compute.cc
-mln_level_memset__SOURCES = mln_level_memset_.cc
-mln_level_apply_SOURCES = mln_level_apply.cc
-mln_level_transform_inplace_SOURCES = mln_level_transform_inplace.cc
-mln_level_saturate_SOURCES = mln_level_saturate.cc
-mln_subsampling_all_SOURCES = mln_subsampling_all.cc
+mln_debug_format_SOURCES = mln_debug_format.cc
+mln_debug_println_SOURCES = mln_debug_println.cc
+mln_debug_essential_SOURCES = mln_debug_essential.cc
+mln_estim_min_max_SOURCES = mln_estim_min_max.cc
+mln_estim_all_SOURCES = mln_estim_all.cc
+mln_estim_sum_SOURCES = mln_estim_sum.cc
+mln_estim_mean_SOURCES = mln_estim_mean.cc
+mln_estim_essential_SOURCES = mln_estim_essential.cc
+mln_set_uni_SOURCES = mln_set_uni.cc
+mln_set_inter_SOURCES = mln_set_inter.cc
+mln_set_all_SOURCES = mln_set_all.cc
+mln_set_get_SOURCES = mln_set_get.cc
+mln_set_sym_diff_SOURCES = mln_set_sym_diff.cc
+mln_set_has_SOURCES = mln_set_has.cc
+mln_set_diff_SOURCES = mln_set_diff.cc
+mln_set_compute_SOURCES = mln_set_compute.cc
+mln_set_essential_SOURCES = mln_set_essential.cc
+mln_border_adjust_SOURCES = mln_border_adjust.cc
+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_mirror_SOURCES = mln_border_mirror.cc
+mln_border_get_SOURCES = mln_border_get.cc
+mln_border_equalize_SOURCES = mln_border_equalize.cc
+mln_border_resize_SOURCES = mln_border_resize.cc
+mln_border_fill_SOURCES = mln_border_fill.cc
+mln_border_essential_SOURCES = mln_border_essential.cc
mln_subsampling_gaussian_subsampling_SOURCES = mln_subsampling_gaussian_subsampling.cc
-mln_subsampling_essential_SOURCES = mln_subsampling_essential.cc
+mln_subsampling_all_SOURCES = mln_subsampling_all.cc
mln_subsampling_subsampling_SOURCES = mln_subsampling_subsampling.cc
-mln_logical_all_SOURCES = mln_logical_all.cc
-mln_logical_includes_SOURCES = mln_logical_includes.cc
-mln_logical_and_SOURCES = mln_logical_and.cc
-mln_logical_and_not_SOURCES = mln_logical_and_not.cc
-mln_logical_or_SOURCES = mln_logical_or.cc
-mln_logical_not_SOURCES = mln_logical_not.cc
-mln_logical_essential_SOURCES = mln_logical_essential.cc
-mln_logical_xor_SOURCES = mln_logical_xor.cc
-mln_linear_lap_SOURCES = mln_linear_lap.cc
-mln_linear_all_SOURCES = mln_linear_all.cc
-mln_linear_convolve_SOURCES = mln_linear_convolve.cc
-mln_linear_gaussian_SOURCES = mln_linear_gaussian.cc
-mln_linear_essential_SOURCES = mln_linear_essential.cc
-mln_linear_log_SOURCES = mln_linear_log.cc
-mln_linear_ch_convolve_SOURCES = mln_linear_ch_convolve.cc
-mln_linear_local_convolve_SOURCES = mln_linear_local_convolve.cc
-mln_linear_convolve_directional_SOURCES = mln_linear_convolve_directional.cc
-mln_linear_convolve_2x1d_SOURCES = mln_linear_convolve_2x1d.cc
-mln_linear_sobel_2d_SOURCES = mln_linear_sobel_2d.cc
-mln_display_all_SOURCES = mln_display_all.cc
-mln_display_essential_SOURCES = mln_display_essential.cc
-mln_pw_all_SOURCES = mln_pw_all.cc
-mln_pw_image_SOURCES = mln_pw_image.cc
-mln_pw_cst_SOURCES = mln_pw_cst.cc
-mln_pw_var_SOURCES = mln_pw_var.cc
-mln_pw_essential_SOURCES = mln_pw_essential.cc
-mln_pw_value_SOURCES = mln_pw_value.cc
-mln_geom_size1d_SOURCES = mln_geom_size1d.cc
-mln_geom_size2d_SOURCES = mln_geom_size2d.cc
-mln_geom_bbox_SOURCES = mln_geom_bbox.cc
-mln_geom_nslis_SOURCES = mln_geom_nslis.cc
-mln_geom_ninds_SOURCES = mln_geom_ninds.cc
-mln_geom_all_SOURCES = mln_geom_all.cc
-mln_geom_seeds2tiling_SOURCES = mln_geom_seeds2tiling.cc
-mln_geom_min_row_SOURCES = mln_geom_min_row.cc
-mln_geom_ncols_SOURCES = mln_geom_ncols.cc
-mln_geom_nrows_SOURCES = mln_geom_nrows.cc
-mln_geom_delta_SOURCES = mln_geom_delta.cc
-mln_geom_nsites_SOURCES = mln_geom_nsites.cc
-mln_geom_max_col_SOURCES = mln_geom_max_col.cc
-mln_geom_seeds2tiling_roundness_SOURCES = mln_geom_seeds2tiling_roundness.cc
-mln_geom_min_ind_SOURCES = mln_geom_min_ind.cc
-mln_geom_max_sli_SOURCES = mln_geom_max_sli.cc
-mln_geom_max_row_SOURCES = mln_geom_max_row.cc
-mln_geom_essential_SOURCES = mln_geom_essential.cc
-mln_geom_pmin_pmax_SOURCES = mln_geom_pmin_pmax.cc
-mln_geom_min_sli_SOURCES = mln_geom_min_sli.cc
-mln_geom_resize_SOURCES = mln_geom_resize.cc
-mln_geom_max_ind_SOURCES = mln_geom_max_ind.cc
-mln_geom_chamfer_SOURCES = mln_geom_chamfer.cc
-mln_geom_min_col_SOURCES = mln_geom_min_col.cc
-mln_geom_size3d_SOURCES = mln_geom_size3d.cc
-mln_geom_complex_geometry_SOURCES = mln_geom_complex_geometry.cc
-mln_registration_multiscale_SOURCES = mln_registration_multiscale.cc
-mln_registration_all_SOURCES = mln_registration_all.cc
-mln_registration_internal_rms_SOURCES = mln_registration_internal_rms.cc
-mln_registration_icp_SOURCES = mln_registration_icp.cc
-mln_registration_registration_SOURCES = mln_registration_registration.cc
-mln_registration_essential_SOURCES = mln_registration_essential.cc
-mln_registration_get_rtransf_SOURCES = mln_registration_get_rtransf.cc
-mln_registration_get_rot_SOURCES = mln_registration_get_rot.cc
-mln_literal_white_SOURCES = mln_literal_white.cc
-mln_literal_all_SOURCES = mln_literal_all.cc
-mln_literal_black_SOURCES = mln_literal_black.cc
-mln_literal_grays_SOURCES = mln_literal_grays.cc
-mln_literal_zero_SOURCES = mln_literal_zero.cc
-mln_literal_essential_SOURCES = mln_literal_essential.cc
-mln_literal_origin_SOURCES = mln_literal_origin.cc
-mln_literal_one_SOURCES = mln_literal_one.cc
-mln_literal_colors_SOURCES = mln_literal_colors.cc
-mln_literal_ops_SOURCES = mln_literal_ops.cc
+mln_subsampling_essential_SOURCES = mln_subsampling_essential.cc
TESTS = $(check_PROGRAMS)
diff --git a/milena/tests/unit_test/mln_core_concept_all.cc b/milena/tests/unit_test/mln_core_concept_all.cc
new file mode 100644
index 0000000..bc2f7ee
--- /dev/null
+++ b/milena/tests/unit_test/mln_core_concept_all.cc
@@ -0,0 +1,8 @@
+// Unit test for mln/core/concept/all.hh.
+// Generated file, do not modify.
+#include <mln/core/concept/all.hh>
+
+int main()
+{
+ // Nothing.
+}
diff --git a/milena/tests/unit_test/mln_core_site_set_operators.cc b/milena/tests/unit_test/mln_core_site_set_operators.cc
new file mode 100644
index 0000000..aa1a6e9
--- /dev/null
+++ b/milena/tests/unit_test/mln_core_site_set_operators.cc
@@ -0,0 +1,8 @@
+// Unit test for mln/core/site_set/operators.hh.
+// Generated file, do not modify.
+#include <mln/core/site_set/operators.hh>
+
+int main()
+{
+ // Nothing.
+}
--
1.5.6.5
1
0
URL: https://svn.lrde.epita.fr/svn/oln/trunk/milena/sandbox
ChangeLog:
2008-12-09 Matthieu Garrigues <garrigues(a)lrde.epita.fr>
[Markov] Make the algotithm work.
* markov/markov.hh: Fix compute_energy and use of random.
* markov/random.hxx: Fix random on boolean.
---
markov.hh | 45 +++++++++++++++++++++++++++++++--------------
random.hxx | 10 +++++++++-
2 files changed, 40 insertions(+), 15 deletions(-)
Index: trunk/milena/sandbox/markov/random.hxx
===================================================================
--- trunk/milena/sandbox/markov/random.hxx (revision 3015)
+++ trunk/milena/sandbox/markov/random.hxx (revision 3016)
@@ -21,9 +21,17 @@
T
Random<T>::get () const
{
- return (sup_ - inf_) * (((double) rand ()) / RAND_MAX) + inf_;
+ double res = (sup_ - inf_) * (((double) rand ()) / RAND_MAX) + inf_;
+ return res;
}
+template <>
+bool
+Random<bool>::get () const
+{
+ bool res = rand () > (RAND_MAX / 2);
+ return res;
+}
#endif /* !RANDOM_HXX_ */
Index: trunk/milena/sandbox/markov/markov.hh
===================================================================
--- trunk/milena/sandbox/markov/markov.hh (revision 3015)
+++ trunk/milena/sandbox/markov/markov.hh (revision 3016)
@@ -2,9 +2,11 @@
# define MARKOV_HH_
# include <cmath>
+# include <iomanip>
# include <random.hh>
# include <T_gen.hh>
# include <mln/binarization/threshold.hh>
+# include <mln/core/routine/clone.hh>
namespace mln
{
@@ -14,10 +16,10 @@
{
// Compute u(x,y)
double u;
- if (xi)
- u = (double) ima(p) / mln_max(mln_value(I));
+ if (xi == ima(p))
+ u = 0;
else
- u = 1. - (double) ima(p) / mln_max(mln_value(I));
+ u = 1;
// u(x) is cst so we don't care
@@ -34,7 +36,20 @@
diff_sum /= coeff;
- return 1 * (u + diff_sum);
+// std::cout << "energy : " << (u + diff_sum) << std::endl;
+
+ return (u + diff_sum * 5);
+ }
+
+ template <typename I>
+ void dump(const Image<I>& ima)
+ {
+ static int id = 0;
+ std::stringstream filename, is_filename;
+ filename << "trace_" << std::setw(5) << std::setfill('0')
+ << std::right << id++ << ".pbm";
+
+ io::pbm::save(ima, filename.str());
}
template <typename I, typename N> // I == int_u8
@@ -43,13 +58,15 @@
const I &ima = exact(ima_);
const N &nbh = exact(nbh_);
- // mln_ch_value(I, bool) out(ima.domain()); // FIXME: generalize, we might not do a binarisation
- mln_ch_value(I, bool) out = binarization::threshold(ima, 255 / 2); // FIXME : max
+ mln_ch_value(I, bool) bin = binarization::threshold(ima, 255 / 2); // FIXME : max
+ mln_ch_value(I, bool) out(bin.domain());
+
+ io::pbm::save(out, "threshold.pbm");
temperature_generator gtemp(start_temp, 0.8);
double temp = start_temp;
- Random<int> v_random(0, 1); // mettre max et min ?
+ Random<bool> v_random(0, 1); // mettre max et min ?
Random<double> p_random(0., 1.); // idem
unsigned modifications = 42;
@@ -59,23 +76,23 @@
while (!gradient || modifications)
{
- mln_piter(I) p(ima.domain());
+ // Trace.
+// dump(out);
+
+ mln_piter(I) p(bin.domain());
modifications = 0;
for_all(p)
{
bool v = v_random.get();
- // std::cout << "Random : " << v << std::endl;
- double u = compute_energy(ima, out, nbh, out(p), p);
- double up = compute_energy(ima, out, nbh, v, p);
+ double u = compute_energy(bin, out, nbh, out(p), p);
+ double up = compute_energy(bin, out, nbh, v, p);
double d_u = up - u;
double proba = exp(-d_u / temp);
- // std::cout << "u : " << u << " up : " << up << "Difference : " << d_u << std::endl;
-
- if (d_u < 0 || !gradient && (p_random.get() < proba))
+ if ((d_u < 0 || !gradient && (p_random.get() < proba)) && out(p) != v)
{
if (d_u < 0)
diffneg ++;
1
0
* Makefile.am: use = instead of +=.
---
milena/ChangeLog | 6 ++++++
milena/Makefile.am | 2 +-
2 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index 9460b41..700adb2 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,3 +1,9 @@
+2008-12-09 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Fix a warning during configure.
+
+ * Makefile.am: use = instead of +=.
+
2008-12-08 Guillaume Lazzara <z(a)lrde.epita.fr>
Various small fixes.
diff --git a/milena/Makefile.am b/milena/Makefile.am
index 767b64d..64d0365 100644
--- a/milena/Makefile.am
+++ b/milena/Makefile.am
@@ -14,7 +14,7 @@ doc:
include $(top_srcdir)/milena/headers.mk
-EXTRA_DIST += \
+EXTRA_DIST = \
img/lena.pbm \
img/fly.pbm \
img/squares-lc.pgm \
--
1.5.6.5
1
0
* bootstrap: cleanup and fix.
---
ChangeLog | 6 ++++++
bootstrap | 4 +---
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 753ac62..f78d6f4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-12-09 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Cleanup and fix bootstrap.
+
+ * bootstrap: cleanup and fix.
+
2008-12-08 Guillaume Lazzara <z(a)lrde.epita.fr>
Generate list of headers to be distributed.
diff --git a/bootstrap b/bootstrap
index fa3a8da..52ffabf 100755
--- a/bootstrap
+++ b/bootstrap
@@ -118,13 +118,11 @@ dist_headers ()
echo "generating headers.mk"
find mln -type f | sed -e 's/$/ \\/g' >> headers.mk
- echo "backup last line"
last_line=`tail -n 1 headers.mk | sed -e 's/\\\//g'` # remove '\' in last line
- echo "remove last line"
sed '$d' < headers.mk > headers.mk.tmp # remove last line
mv headers.mk.tmp headers.mk
- echo "put back last line"
echo $last_line >> headers.mk # put the cleaned last line back.
+ cd -
}
# Failures do matter.
--
1.5.6.5
1
0
URL: https://svn.lrde.epita.fr/svn/oln/trunk/milena/sandbox
ChangeLog:
2008-12-09 Matthieu Garrigues <garrigues(a)lrde.epita.fr>
The canvas
* garrigues/union_find/canvas/reconstruction.hh: New.
* garrigues/union_find/canvas: New.
Differents implementations of reconstruction.
* garrigues/union_find: New.
* garrigues/union_find/reconstructions.cc: New.
* garrigues/union_find/reconstructions.hh: New.
Some small test images.
* garrigues/union_find/images/marker.pbm: New.
* garrigues/union_find/images/marker_to_dilate.pbm: New.
* garrigues/union_find/images/mask.pbm: New.
* garrigues/union_find/images: New.
---
canvas/reconstruction.hh | 149 +++++++++++++++++++++++++++++
images/marker_to_dilate.pbm | 4
images/mask.pbm | 5 +
reconstructions.cc | 57 +++++++++++
reconstructions.hh | 220 ++++++++++++++++++++++++++++++++++++++++++++
5 files changed, 435 insertions(+)
Index: trunk/milena/sandbox/garrigues/union_find/reconstructions.hh
===================================================================
--- trunk/milena/sandbox/garrigues/union_find/reconstructions.hh (revision 0)
+++ trunk/milena/sandbox/garrigues/union_find/reconstructions.hh (revision 3013)
@@ -0,0 +1,220 @@
+// Copyright (C) 2007, 2008 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. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+#ifndef MLN_RECONSTRUCTIONS_HH
+# define MLN_RECONSTRUCTIONS_HH
+
+# include <mln/core/image/image2d.hh>
+# include <mln/core/alias/neighb2d.hh>
+# include <mln/level/fill.hh>
+# include <mln/level/paste.hh>
+
+# include "canvas/reconstruction.hh"
+
+namespace mln
+{
+
+ namespace impl
+ {
+
+ struct reconstruction_by_dilation_t
+ {
+ typedef image2d<bool> I;
+ typedef mln_site_(I) P;
+
+ reconstruction_by_dilation_t (const I& marker, const I& mask, I& output)
+ : marker(marker), mask(mask), output(output)
+ {}
+
+ bool is_in_D(P p) { return mask(p); }
+ void set_default_output() { level::fill(output, false); }
+ void init(P p) { output(p) = marker(p); }
+ void merge(P r, P p) { output(p) = output(p) || output(r); }
+ void visit_ext_border(P n, P p) { (void) n; (void) p; }
+
+ const I& marker; // F
+ const I& mask; // G
+ I& output; // O
+ };
+
+
+ struct reconstruction_by_dilation_alt_t
+ {
+ typedef image2d<bool> I;
+ typedef mln_site_(I) P;
+
+ reconstruction_by_dilation_alt_t (const I& marker, const I& mask, I& output)
+ : marker(marker), mask(mask), output(output)
+ {}
+
+ bool is_in_D(P p) { return mask(p) && !marker(p); }
+ void set_default_output() { level::paste(marker, output); }
+ void init(P p) { output(p) = false; }
+ void merge(P r, P p) { output(p) = output(p) || output(r); }
+ void visit_ext_border(P n, P p) { if (marker(n)) output(p) = true; }
+
+ const I& marker; // F
+ const I& mask; // G
+ I& output; // O
+ };
+
+
+ struct reconstruction_by_erosion_t
+ {
+ typedef image2d<bool> I;
+ typedef mln_site_(I) P;
+
+ reconstruction_by_erosion_t (const I& marker, const I& mask, I& output)
+ : marker(marker), mask(mask), output(output)
+ {}
+
+ bool is_in_D(P p) { return !mask(p); }
+ void set_default_output() { level::fill(output, true); }
+ void init(P p) { output(p) = marker(p); }
+ void merge(P r, P p) { output(p) = output(p) && output(r); }
+ void visit_ext_border(P n, P p) { (void) n; (void) p; }
+
+ const I& marker; // F
+ const I& mask; // G
+ I& output; // O
+ };
+
+ struct reconstruction_by_erosion_alt_t
+ {
+ typedef image2d<bool> I;
+ typedef mln_site_(I) P;
+
+ reconstruction_by_erosion_alt_t (const I& marker, const I& mask, I& output)
+ : marker(marker), mask(mask), output(output)
+ {}
+
+ bool is_in_D(P p) { return !mask(p) && marker(p); }
+ void set_default_output() { level::paste(mask, output); }
+ void init(P p) { output(p) = true; }
+ void merge(P r, P p) { output(p) = output(p) && output(r); }
+ void visit_ext_border(P n, P p) { if (!marker(n)) output(p) = false; }
+
+ const I& marker; // F
+ const I& mask; // G
+ I& output; // O
+ };
+
+ } // end of namespace mln::impl
+
+
+ image2d<bool>
+ reconstruction_by_dilation(const image2d<bool>& marker,
+ const image2d<bool>& mask,
+ const neighb2d& nbh)
+ {
+ trace::entering("morpho::reconstruction_by_dilation");
+
+ mln_precondition(exact(marker).has_data());
+ mln_precondition(exact(mask).has_data());
+
+ image2d<bool> output;
+ initialize(output, marker);
+
+ typedef impl::reconstruction_by_dilation_t F;
+ F f(marker, mask, output);
+ canvas::morpho::reconstruction(mask, nbh, f, output);
+
+ trace::exiting("morpho::reconstruction_by_dilation");
+ return output;
+ }
+
+
+ image2d<bool>
+ reconstruction_by_dilation_alt(const image2d<bool>& marker,
+ const image2d<bool>& mask,
+ const neighb2d& nbh)
+ {
+ trace::entering("morpho::reconstruction_by_dilation_alt");
+
+ mln_precondition(exact(marker).has_data());
+ mln_precondition(exact(mask).has_data());
+
+ image2d<bool> output;
+ initialize(output, marker);
+
+ typedef impl::reconstruction_by_dilation_alt_t F;
+ F f(marker, mask, output);
+ canvas::morpho::reconstruction(mask, nbh, f, output);
+
+ trace::exiting("morpho::reconstruction_by_dilation_alt");
+ return output;
+ }
+
+
+ image2d<bool>
+ reconstruction_by_erosion(const image2d<bool>& marker,
+ const image2d<bool>& mask,
+ const neighb2d& nbh)
+ {
+ trace::entering("morpho::reconstruction_by_erosion");
+
+ mln_precondition(exact(marker).has_data());
+ mln_precondition(exact(mask).has_data());
+
+ image2d<bool> output;
+ initialize(output, marker);
+
+ typedef impl::reconstruction_by_erosion_t F;
+ F f(marker, mask, output);
+ canvas::morpho::reconstruction(mask, nbh, f, output);
+
+ trace::exiting("morpho::reconstruction_by_erosion");
+ return output;
+ }
+
+
+ image2d<bool>
+ reconstruction_by_erosion_alt(const image2d<bool>& marker,
+ const image2d<bool>& mask,
+ const neighb2d& nbh)
+ {
+ trace::entering("morpho::reconstruction_by_erosion_alt");
+
+ mln_precondition(exact(marker).has_data());
+ mln_precondition(exact(mask).has_data());
+
+ image2d<bool> output;
+ initialize(output, marker);
+
+ typedef impl::reconstruction_by_erosion_alt_t F;
+ F f(marker, mask, output);
+ canvas::morpho::reconstruction(mask, nbh, f, output);
+
+ trace::exiting("morpho::reconstruction_by_erosion_alt");
+ return output;
+ }
+
+} // end of namespace mln.
+
+
+#endif // ! MLN_RECONSTRUCTIONS_HH
Index: trunk/milena/sandbox/garrigues/union_find/images/marker_to_dilate.pbm
===================================================================
--- trunk/milena/sandbox/garrigues/union_find/images/marker_to_dilate.pbm (revision 0)
+++ trunk/milena/sandbox/garrigues/union_find/images/marker_to_dilate.pbm (revision 3013)
@@ -0,0 +1,4 @@
+P4
+# CREATOR: GIMP PNM Filter Version 1.1
+30 30
+ÿÿÿìÿÿÿÄÿÿÿÄÿÿÿìÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿþÿüÿüÿüÿüüÿüüÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿüÏÿÿüÿÿüÿÿüÿÿüßÿÿüÿÿÿü
\ No newline at end of file
Index: trunk/milena/sandbox/garrigues/union_find/images/mask.pbm
===================================================================
--- trunk/milena/sandbox/garrigues/union_find/images/mask.pbm (revision 0)
+++ trunk/milena/sandbox/garrigues/union_find/images/mask.pbm (revision 3013)
@@ -0,0 +1,5 @@
+P4
+# CREATOR: XV version 3.10a-jumboFix+Enh of 20050501
+# CREATOR: GIMP PNM Filter Version 1.1
+30 30
+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ?ÿÿÀ?ÿÿÌ?ÿÿÌ?ÿÿÌ?ÿÿÀ?ÿÿÀ?ÿÿÏÿÿÿÏÿÿÿÏÿÿÿÏÿÿÿÀ?ÿÿÀ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
Index: trunk/milena/sandbox/garrigues/union_find/images/marker.pbm
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/milena/sandbox/garrigues/union_find/images/marker.pbm
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Index: trunk/milena/sandbox/garrigues/union_find/reconstructions.cc
===================================================================
--- trunk/milena/sandbox/garrigues/union_find/reconstructions.cc (revision 0)
+++ trunk/milena/sandbox/garrigues/union_find/reconstructions.cc (revision 3013)
@@ -0,0 +1,57 @@
+// Copyright (C) 2007, 2008 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. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+# include "reconstructions.hh"
+# include <mln/core/alias/neighb2d.hh>
+# include <mln/core/image/image2d.hh>
+# include <mln/io/pbm/load.hh>
+# include <mln/io/pbm/save.hh>
+
+int main(int argc, char** argv)
+{
+ using namespace mln;
+ typedef image2d<bool> I;
+
+ image2d<bool> marker;
+ image2d<bool> mask;
+ image2d<bool> output;
+
+ if (argc < 2)
+ {
+ std::cerr << "Usage: " << argv[0] << " marker.pbm mask.pbm" << std::endl;
+ return 1;
+ }
+
+ io::pbm::load(marker, argv[1]);
+ io::pbm::load(mask, argv[2]);
+
+ io::pbm::save(reconstruction_by_dilation (marker, mask, c4()), "r1.pbm");
+ io::pbm::save(reconstruction_by_dilation_alt(marker, mask, c4()), "r2.pbm");
+ io::pbm::save(reconstruction_by_erosion (marker, mask, c4()), "r3.pbm");
+ io::pbm::save(reconstruction_by_erosion_alt (marker, mask, c4()), "r4.pbm");
+}
Index: trunk/milena/sandbox/garrigues/union_find/canvas/reconstruction.hh
===================================================================
--- trunk/milena/sandbox/garrigues/union_find/canvas/reconstruction.hh (revision 0)
+++ trunk/milena/sandbox/garrigues/union_find/canvas/reconstruction.hh (revision 3013)
@@ -0,0 +1,149 @@
+// Copyright (C) 2007, 2008 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. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+#ifndef MLN_CANVAS_ON_SET_HH
+# define MLN_CANVAS_ON_SET_HH
+
+# include <mln/core/image/image2d.hh>
+# include <mln/level/fill.hh>
+# include <mln/literal/zero.hh>
+# include <mln/convert/to_upper_window.hh>
+# include <mln/accu/count.hh>
+# include <mln/util/pix.hh>
+
+# include <mln/core/alias/neighb2d.hh>
+
+# include <mln/io/pbm/save.hh>
+# include <mln/io/pbm/load.hh>
+
+namespace mln
+{
+
+
+ namespace canvas
+ {
+
+ namespace morpho
+ {
+
+ template <typename I>
+ static inline
+ mln_psite(I)
+ find_root(I& parent,
+ const mln_psite(I)& x)
+ {
+ if (parent(x) == x)
+ return x;
+ else
+ return parent(x) = find_root(parent, parent(x));
+ }
+
+ template <typename N, typename F, typename I, typename O>
+ void
+ reconstruction(const Image<I>& mask_,
+ const Neighborhood<N>& nbh_,
+ F& f,
+ O& output)
+ {
+ trace::entering("canvas::morpho::reconstruction");
+
+ const N& nbh = exact(nbh_);
+ const I& mask = exact(mask_);
+
+ mln_precondition(mask.domain() == output.domain());
+
+ // Local type.
+ typedef typename F::P P;
+
+ // Auxiliary data.
+ mln_ch_value(O, bool) deja_vu;
+ mln_ch_value(O, P) parent;
+
+ // init
+ {
+ initialize(deja_vu, mask);
+ initialize(parent, mask);
+
+ mln::level::fill(deja_vu, false);
+ f.set_default_output(); // Client initialization.
+ }
+
+ // first pass
+ {
+ mln_fwd_piter(I) p(mask.domain());
+ mln_niter(N) n(nbh, p);
+ for_all(p)
+ {
+ if (f.is_in_D(p))
+ {
+ // Make set.
+ parent(p) = p;
+ f.init(p);
+
+ for_all(n) if (mask.domain().has(n))
+ {
+ if (deja_vu(n) && f.is_in_D(n))
+ {
+ //do_union(n, p);
+ P r = find_root(parent, n);
+ if (r != p)
+ {
+ f.merge(r, p);
+ parent(r) = p;
+ }
+ }
+ else
+ // Visit boundaries of D.
+ f.visit_ext_border(n, p);
+ }
+ deja_vu(p) = true;
+ }
+
+ }
+ }
+
+ // second pass
+ {
+ mln_bkd_piter(I) p(mask.domain());
+ for_all(p)
+ if (f.is_in_D(p))
+ if (parent(p) != p) // if p is not a root.
+ output(p) = output(parent(p));
+ }
+
+ trace::exiting("canvas::morpho::reconstruction");
+ }
+
+
+ } // end of namespace mln::canvas::morpho
+
+ } // end of namespace mln::canvas
+
+} // end of namespace mln.
+
+#endif // ! MLN_CANVAS_ON_SET_HH
1
0
https://svn.lrde.epita.fr/svn/oln/trunk/milena/sandbox
Index: ChangeLog
from Ugo Jardonnet <ugo.jardonnet(a)lrde.epita.fr>
Test watershed over attribute.
* jardonnet/n_cmpt/test_attribute_watershed.cc: Here.
test_attribute_watershed.cc | 79 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 79 insertions(+)
Index: jardonnet/n_cmpt/test_attribute_watershed.cc
--- jardonnet/n_cmpt/test_attribute_watershed.cc (revision 0)
+++ jardonnet/n_cmpt/test_attribute_watershed.cc (revision 0)
@@ -0,0 +1,79 @@
+
+#include <iostream>
+
+//#include <mln/core/site_set/p_array.hh>
+
+#include <mln/core/image/image2d.hh>
+#include <mln/core/alias/neighb2d.hh>
+#include <mln/value/int_u8.hh>
+
+#include <mln/morpho/meyer_wst.hh>
+
+#include <mln/accu/volume.hh>
+#include <mln/morpho/tree/data.hh>
+#include <mln/morpho/tree/compute_attribute_image.hh>
+
+#include <mln/morpho/closing_volume.hh>
+
+#include <mln/io/pgm/load.hh>
+#include <mln/io/ppm/save.hh>
+
+#include <mln/debug/println.hh>
+
+#include <mln/literal/colors.hh>
+
+using namespace mln;
+using namespace mln::value;
+
+bool usage(int argc, char ** argv)
+{
+ if (argc != 2)
+ {
+ std::cout << argv[0] << " ima.pgm" << std::endl;
+ return false;
+ }
+ return true;
+}
+
+int main(int argc, char ** argv)
+{
+ if (not usage(argc,argv))
+ return 1;
+
+ typedef image2d<int_u8> I;
+ I ima;
+ io::pgm::load(ima, argv[1]);
+
+ // compute volume image
+ typedef p_array<mln_psite_(I)> S;
+ typedef mln_ch_value_(I,unsigned) V;
+ typedef accu::volume<I> A;
+
+ S sp = level::sort_psites_decreasing(ima);
+ morpho::tree::data<I,S> t(ima, sp, c4());
+ V volume = morpho::tree::compute_attribute_image(A(), t);
+
+ std::cout << "/volume/" << std::endl;
+ //debug::println(volume);
+
+ // volume closing
+
+ image2d<unsigned> volume_ = morpho::closing_volume(volume, c4(), 500);
+
+ // watershed on volume
+ int_u16 nbasins = 0;
+ image2d<int_u16> ws =
+ morpho::meyer_wst(volume_, c4(), nbasins);
+
+ image2d<rgb8> out(ima.domain());
+ mln_piter_(image2d<int_u8>) pp(ws.domain());
+ for_all(pp)
+ {
+ if (ws(pp) == 0u)
+ out(pp) = literal::red;
+ else
+ out(pp) = rgb8(ima(pp),ima(pp),ima(pp));
+ }
+
+ io::ppm::save(out, "out.ppm");
+}
1
0
* scribo/demat.hh: Rename label8 to label_8 and label16 to label_16.
---
milena/sandbox/ChangeLog | 6 ++++
milena/sandbox/scribo/demat.hh | 64 ++++++++++++++++++++--------------------
2 files changed, 38 insertions(+), 32 deletions(-)
diff --git a/milena/sandbox/ChangeLog b/milena/sandbox/ChangeLog
index 54d1411..f9896e2 100644
--- a/milena/sandbox/ChangeLog
+++ b/milena/sandbox/ChangeLog
@@ -1,3 +1,9 @@
+2008-12-08 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ [Scribo] rename label types.
+
+ * scribo/demat.hh: Rename label8 to label_8 and label16 to label_16.
+
2008-12-06 Ugo Jardonnet <ugo.jardonnet(a)lrde.epita.fr>
Add n_cmpt4 : version without util::set.
diff --git a/milena/sandbox/scribo/demat.hh b/milena/sandbox/scribo/demat.hh
index 7b99765..ff059d2 100644
--- a/milena/sandbox/scribo/demat.hh
+++ b/milena/sandbox/scribo/demat.hh
@@ -60,7 +60,7 @@ namespace scribo
{
using namespace mln;
- using value::label16;
+ using value::label_16;
using value::rgb8;
@@ -190,7 +190,7 @@ namespace scribo
///
/// FIXME: For each text bbox, we create a new image. We may like to avoid that.
void
- text_recognition(const image2d<bool>& in, const image2d<label16>& lbl,
+ text_recognition(const image2d<bool>& in, const image2d<label_16>& lbl,
const util::array<box2d>& tboxes)
{
/// Use txt bboxes here with Tesseract
@@ -443,8 +443,8 @@ namespace scribo
component_boxes(const image2d<bool>& filter)
{
std::cout << "component boxes" << std::endl;
- label16 nlabels = 0;
- image2d<label16> lbl = labeling::blobs(filter, c8(), nlabels);
+ label_16 nlabels = 0;
+ image2d<label_16> lbl = labeling::blobs(filter, c8(), nlabels);
return labeling::compute(accu::meta::bbox(), lbl, nlabels);
}
@@ -472,7 +472,7 @@ namespace scribo
util::array<box2d> >
extract_tables(image2d<bool>& in)
{
- typedef image2d<label16> I;
+ typedef image2d<label_16> I;
typedef accu::bbox<mln_psite_(I)> A;
typedef util::array<mln_result_(A)> boxes_t;
@@ -526,16 +526,16 @@ namespace scribo
//-***************************************
/// \{
- fun::l2l::relabel<label16>
+ fun::l2l::relabel<label_16>
make_relabel_fun(const util::graph& g)
{
- fun::l2l::relabel<label16> fun(g.v_nmax(), mln_max(label16));
+ fun::l2l::relabel<label_16> fun(g.v_nmax(), mln_max(label_16));
// The first vertex (id 0) IS the background (component 0).
unsigned ncomp = 0;
mln_vertex_iter_(util::graph) v(g);
for_all(v)
- if (fun(v.id()) == mln_max(label16))
+ if (fun(v.id()) == mln_max(label_16))
{
std::queue<unsigned> queue;
queue.push(v.id());
@@ -545,7 +545,7 @@ namespace scribo
util::vertex<util::graph> current_v = g.vertex(queue.front());
queue.pop();
for (unsigned nv = 0; nv < current_v.nmax_nbh_vertices(); ++nv)
- if (fun(current_v.ith_nbh_vertex(nv)) == mln_max(label16))
+ if (fun(current_v.ith_nbh_vertex(nv)) == mln_max(label_16))
{
fun(current_v.ith_nbh_vertex(nv)) = ncomp;
queue.push(current_v.ith_nbh_vertex(nv));
@@ -569,7 +569,7 @@ namespace scribo
}
/// Return false if the components is smaller than a given size.
- bool operator()(const label16& l) const
+ bool operator()(const label_16& l) const
{
return nsitecomp_[l] >= settings.min_comp_size;
}
@@ -589,7 +589,7 @@ namespace scribo
}
/// Return false if the components is smaller than a given size.
- bool operator()(const label16& l) const
+ bool operator()(const label_16& l) const
{
return nsitecomp_[l].first >= settings.min_comp_size
&& nsitecomp_[l].first < settings.max_comp_size
@@ -604,13 +604,13 @@ namespace scribo
void
- cleanup_components(image2d<label16>& lbl,
- label16& nlabels)
+ cleanup_components(image2d<label_16>& lbl,
+ label_16& nlabels)
{
std::cout << "Cleanup components..." << std::endl;
- typedef accu::count<mln_psite_(image2d<label16>)> accu_count_t;
- typedef accu::bbox<mln_psite_(image2d<label16>)> accu_bbox_t;
+ typedef accu::count<mln_psite_(image2d<label_16>)> accu_count_t;
+ typedef accu::bbox<mln_psite_(image2d<label_16>)> accu_bbox_t;
typedef accu::pair<accu_count_t, accu_bbox_t> accu_pair_t;
typedef mln_result_(accu_pair_t) accu_pair_res_t;
typedef mln_result_(accu_count_t) accu_count_res_t;
@@ -634,10 +634,10 @@ namespace scribo
/// Merge bboxes according to their left box neighbor.
util::array< box2d >
- group_bboxes(const util::graph& g, image2d<label16>& lbl,
- util::array<box2d>& cboxes, label16& nlabels)
+ group_bboxes(const util::graph& g, image2d<label_16>& lbl,
+ util::array<box2d>& cboxes, label_16& nlabels)
{
- fun::l2l::relabel<label16> relabel_fun = make_relabel_fun(g);
+ fun::l2l::relabel<label_16> relabel_fun = make_relabel_fun(g);
util::array< accu::bbox<point2d> > tboxes;
tboxes.resize(nlabels.next());
@@ -659,7 +659,7 @@ namespace scribo
nlabels = result.nelements();
#ifndef NOUT
- image2d<label16> lbl2 = clone(lbl);
+ image2d<label_16> lbl2 = clone(lbl);
util::array<unsigned> treated(g.v_nmax(), mln_max(unsigned));
util::set<unsigned> comp_vertices;
mln_vertex_iter_(util::graph) v(g);
@@ -700,7 +700,7 @@ namespace scribo
/// Update the lookup table \p left if a neighbor is found on the right of
/// the current bbox.
- void update_link(util::graph& g, image2d<label16>& lbl,
+ void update_link(util::graph& g, image2d<label_16>& lbl,
const point2d& p, const point2d& c,
unsigned i, int dmax)
{
@@ -714,7 +714,7 @@ namespace scribo
/// Map each character bbox to its left bbox neighbor if possible.
/// Iterate to the right but link boxes to the left.
util::graph
- link_character_bboxes(image2d<label16>& lbl,
+ link_character_bboxes(image2d<label_16>& lbl,
const util::array<box2d>& cboxes,
unsigned ncomp)
{
@@ -743,12 +743,12 @@ namespace scribo
util::array<box2d>
extract_text(image2d<bool>& in,
- image2d<label16>& lbl,
- label16& nlabels)
+ image2d<label_16>& lbl,
+ label_16& nlabels)
{
std::cout << "extract text" << std::endl;
- typedef label16 V;
+ typedef label_16 V;
typedef image2d<V> I;
typedef util::array<box2d> boxes_t;
@@ -857,8 +857,8 @@ namespace scribo
void maptext_to_cells(const image2d<bool>& in, const image2d<bool>& table, const util::array<box2d>& tboxes)
{
std::cout << "map text to cells" << std::endl;
- label16 nlabels;
- image2d<label16> tblelbl = labeling::background(table, c8(), nlabels);
+ label_16 nlabels;
+ image2d<label_16> tblelbl = labeling::background(table, c8(), nlabels);
image2d<rgb8> color = debug::colorize(rgb8(), tblelbl, nlabels);
# ifndef NOUT
io::ppm::save(color, output_file("cells-labels.ppm"));
@@ -875,14 +875,14 @@ namespace scribo
void merge_aligned_text_boxes(const image2d<bool>& in, util::array<box2d>& tboxes,
- image2d<label16>& lbl, label16& nlabels)
+ image2d<label_16>& lbl, label_16& nlabels)
{
std::cout << "Merging aligned text boxes" << std::endl;
- image2d<label16> lbl_iz = clone(lbl);
+ image2d<label_16> lbl_iz = clone(lbl);
io::ppm::save(debug::colorize(rgb8(), lbl, nlabels), output_file("tboxes-lbl.ppm"));
- image2d<label16> iz = transform::influence_zone_geodesic(lbl_iz, c8(), settings.bbox_distance);
+ image2d<label_16> iz = transform::influence_zone_geodesic(lbl_iz, c8(), settings.bbox_distance);
#ifndef NOUT
io::ppm::save(debug::colorize(rgb8(), iz, nlabels), output_file("tboxes-iz.ppm"));
#endif
@@ -959,7 +959,7 @@ namespace scribo
{
using namespace mln;
using value::rgb8;
- using value::label16;
+ using value::label_16;
//Useful debug variables
@@ -982,8 +982,8 @@ namespace scribo
internal::settings.max_comp_size = in.ncols() * in.nrows() * 0.05;
//Label and remove small components.
- label16 nlabels;
- image2d<label16> lbl = labeling::blobs(in, c8(), nlabels);
+ label_16 nlabels;
+ image2d<label_16> lbl = labeling::blobs(in, c8(), nlabels);
/// Do we really want to cleanup before removing tables?
if (!treat_tables)
--
1.5.6.5
1
0
* mln/value/label_16.hh
* mln/value/label_8.hh
* tests/labeling/relabel.cc
* tests/morpho/meyer_wst_long.cc
* doc/examples/erosion.cc
* doc/examples/graph.cc
* doc/tutorial/samples/fill-part-image.cc
* doc/tutorial/samples/fill-subdomain-shorter.cc
* doc/tutorial/samples/fill-subdomain.cc
* doc/tutorial/samples/fill-subimage-cfun.cc
* doc/tutorial/samples/labeling-compute.cc: rename label8 to label_8
and label16 to label_16.
* doc/tutorial/tutorial.tex: fix wrong include.
* mln/core/site_set/p_graph_piter.hh: add a conversion toward the
graph element id.
* mln/debug/draw_graph.hh: update.
* mln/level/fill_with_value.hh: fix comments.
---
milena/ChangeLog | 26 ++++++
milena/doc/examples/erosion.cc | 6 +-
milena/doc/examples/graph.cc | 91 ++++----------------
milena/doc/tutorial/samples/fill-part-image.cc | 2 +-
.../doc/tutorial/samples/fill-subdomain-shorter.cc | 6 +-
milena/doc/tutorial/samples/fill-subdomain.cc | 8 +-
milena/doc/tutorial/samples/fill-subimage-cfun.cc | 2 +-
milena/doc/tutorial/samples/labeling-compute.cc | 6 +-
milena/doc/tutorial/tutorial.tex | 2 +-
milena/mln/core/site_set/p_graph_piter.hh | 10 ++
milena/mln/debug/draw_graph.hh | 10 +-
milena/mln/level/fill_with_value.hh | 20 ++--
milena/mln/value/label_16.hh | 6 +-
milena/mln/value/label_8.hh | 6 +-
milena/tests/labeling/relabel.cc | 24 +++---
milena/tests/morpho/meyer_wst_long.cc | 2 +-
16 files changed, 104 insertions(+), 123 deletions(-)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index 1efcb92..9460b41 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,5 +1,31 @@
2008-12-08 Guillaume Lazzara <z(a)lrde.epita.fr>
+ Various small fixes.
+
+ * mln/value/label_16.hh
+ * mln/value/label_8.hh
+ * tests/labeling/relabel.cc
+ * tests/morpho/meyer_wst_long.cc
+ * doc/examples/erosion.cc
+ * doc/examples/graph.cc
+ * doc/tutorial/samples/fill-part-image.cc
+ * doc/tutorial/samples/fill-subdomain-shorter.cc
+ * doc/tutorial/samples/fill-subdomain.cc
+ * doc/tutorial/samples/fill-subimage-cfun.cc
+ * doc/tutorial/samples/labeling-compute.cc: rename label8 to label_8
+ and label16 to label_16.
+
+ * doc/tutorial/tutorial.tex: fix wrong include.
+
+ * mln/core/site_set/p_graph_piter.hh: add a conversion toward the
+ graph element id.
+
+ * mln/debug/draw_graph.hh: update.
+
+ * mln/level/fill_with_value.hh: fix comments.
+
+2008-12-08 Guillaume Lazzara <z(a)lrde.epita.fr>
+
Allow construction of pw images using Function_v2v.
* mln/core/internal/graph_psite_base.hh: Add conversion to graph
diff --git a/milena/doc/examples/erosion.cc b/milena/doc/examples/erosion.cc
index 890fd81..b11d574 100644
--- a/milena/doc/examples/erosion.cc
+++ b/milena/doc/examples/erosion.cc
@@ -62,10 +62,10 @@ void clean_lines(mln::image2d<bool>& in,
unsigned bbox_larger)
{
using namespace mln;
- using value::label8;
+ using value::label_8;
- label8 nlabels;
- image2d<label8> lbl = labeling::blobs(ima, c4(), nlabels);
+ label_8 nlabels;
+ image2d<label_8> lbl = labeling::blobs(ima, c4(), nlabels);
for (unsigned i = nlabels; i > 0; --i)
{
diff --git a/milena/doc/examples/graph.cc b/milena/doc/examples/graph.cc
index 2330c29..499a877 100644
--- a/milena/doc/examples/graph.cc
+++ b/milena/doc/examples/graph.cc
@@ -35,70 +35,6 @@
#include <mln/debug/colorize.hh>
-
-struct gcolor_t : public mln::Function< gcolor_t >
-{
- typedef mln::value::rgb8 result;
-
- template <typename G>
- mln::value::rgb8
- operator()(const mln::util::vertex<G>&) const
- {
- return mln::literal::cyan;
- }
-
- template <typename G>
- mln::value::rgb8
- operator()(const mln::util::edge<G>&) const
- {
- return mln::literal::magenta;
- }
-
-};
-
-struct gcolorarr_t : public mln::Function< gcolorarr_t >
-{
- typedef mln::value::rgb8 result;
-
- gcolorarr_t(unsigned n, const mln::value::rgb8& val)
- : v_(n, val)
- {
- }
-
- template <typename G>
- const mln::value::rgb8&
- operator()(const mln::util::vertex<G>& v) const
- {
- return v_[v.id()];
- }
-
- template <typename G>
- const mln::value::rgb8&
- operator()(const mln::util::edge<G>& e) const
- {
- return v_[e.id()];
- }
-
- template <typename G>
- mln::value::rgb8&
- operator()(const mln::util::vertex<G>& v)
- {
- return v_[v.id()];
- }
-
- template <typename G>
- mln::value::rgb8&
- operator()(const mln::util::edge<G>& e)
- {
- return v_[e.id()];
- }
-
- std::vector<mln::value::rgb8> v_;
-};
-
-
-
-
template <typename P>
struct lg_vertex_values : public mln::Function_p2v< lg_vertex_values<P> >
{
@@ -123,7 +59,7 @@ struct lg_vertex_values : public mln::Function_p2v< lg_vertex_values<P> >
int main(int argc, char *argv[])
{
using namespace mln;
- using value::label16;
+ using value::label_16;
using value::rgb8;
if (argc < 2)
@@ -138,14 +74,14 @@ int main(int argc, char *argv[])
io::pbm::load(ima, argv[1]);
logical::not_inplace(ima);
- label16 nlabels;
- image2d<label16> lbl = labeling::blobs(ima, c8(), nlabels);
+ label_16 nlabels;
+ image2d<label_16> lbl = labeling::blobs(ima, c8(), nlabels);
#ifndef NOUT
io::ppm::save(debug::colorize(rgb8(), lbl, nlabels), "01-lbl.ppm");
#endif
- image2d<label16> iz = transform::influence_zone_geodesic(lbl, c8(), mln_max(int));
+ image2d<label_16> iz = transform::influence_zone_geodesic(lbl, c8(), mln_max(int));
#ifndef NOUT
io::ppm::save(debug::colorize(rgb8(), iz, nlabels), "02-iz.ppm");
@@ -165,7 +101,10 @@ int main(int argc, char *argv[])
#ifndef NOUT
image2d<rgb8> gima = level::convert(rgb8(), ima);
- debug::draw_graph(gima, pv, gcolor_t(), gcolor_t());
+ debug::draw_graph(gima,
+ pv,
+ pw::cst(literal::cyan),
+ pw::cst(literal::olive));
io::ppm::save(gima, "03-graph.ppm");
#endif
@@ -185,7 +124,10 @@ int main(int argc, char *argv[])
#ifndef NOUT
image2d<rgb8> lgima = level::convert(rgb8(), ima);
- debug::draw_graph(lgima, pvlg, gcolor_t(), gcolor_t());
+ debug::draw_graph(lgima,
+ pvlg,
+ pw::cst(literal::cyan),
+ pw::cst(literal::olive));
io::ppm::save(lgima, "04-line-graph.ppm");
#endif
@@ -201,16 +143,19 @@ int main(int argc, char *argv[])
//
// literal::olive: cos(angle) < max_cos and cos(angle) > - max_cos
// literal::red: cos(angle) > max_cos or cos(angle) < - max_cos
- gcolorarr_t ecolor(pvlg.nsites(), literal::olive);
+ typedef fun::i2v::array<value::rgb8> lgcolor_t;
+ lgcolor_t ecolor(pvlg.nsites());
mln_piter_(lg_ima_t) p(lg_ima.domain());
for_all (p)
if ((lg_ima(p) > max_cos) || (lg_ima(p) < - max_cos))
- ecolor(p.element()) = literal::red;
+ ecolor(p) = literal::red;
+ else
+ ecolor(p) = literal::olive;
#ifndef NOUT
image2d<rgb8> lgima2 = level::convert(rgb8(), ima);
- debug::draw_graph(lgima2, pvlg, gcolor_t(), ecolor);
+ debug::draw_graph(lgima2, pvlg, pw::cst(literal::cyan), ecolor);
io::ppm::save(lgima2, "05-line-graph-cleanup.ppm");
#endif
}
diff --git a/milena/doc/tutorial/samples/fill-part-image.cc b/milena/doc/tutorial/samples/fill-part-image.cc
index c3bc89e..0c90f35 100644
--- a/milena/doc/tutorial/samples/fill-part-image.cc
+++ b/milena/doc/tutorial/samples/fill-part-image.cc
@@ -3,7 +3,7 @@ int main()
{
using namespace mln;
using value::int_u8;
- using value::label8;
+ using value::label_8;
// \{
diff --git a/milena/doc/tutorial/samples/fill-subdomain-shorter.cc b/milena/doc/tutorial/samples/fill-subdomain-shorter.cc
index a5f7e9f..da3ce7b 100644
--- a/milena/doc/tutorial/samples/fill-subdomain-shorter.cc
+++ b/milena/doc/tutorial/samples/fill-subdomain-shorter.cc
@@ -3,7 +3,7 @@ int main()
{
using namespace mln;
using value::rgb8;
- using value::label8;
+ using value::label_8;
// \{
@@ -21,8 +21,8 @@ int main()
// Find and label the different components.
// Fill the sites of component 2 with red.
// \{
- label8 nlabels;
- image2d<label8> lab = labeling::blobs(ima, c4(), nlabels);
+ label_8 nlabels;
+ image2d<label_8> lab = labeling::blobs(ima, c4(), nlabels);
image2d<rgb8> ima2;
initialize(ima2, ima);
diff --git a/milena/doc/tutorial/samples/fill-subdomain.cc b/milena/doc/tutorial/samples/fill-subdomain.cc
index 124a663..efe8d58 100644
--- a/milena/doc/tutorial/samples/fill-subdomain.cc
+++ b/milena/doc/tutorial/samples/fill-subdomain.cc
@@ -4,7 +4,7 @@ int main()
{
using namespace mln;
using value::rgb8;
- using value::label8;
+ using value::label_8;
// \{
@@ -23,8 +23,8 @@ int main()
// Find and label the different components.
// \{
- label8 nlabels;
- image2d<label8> lbl = labeling::blobs(ima, c4(), nlabels);
+ label_8 nlabels;
+ image2d<label_8> lbl = labeling::blobs(ima, c4(), nlabels);
// \}
doc::ppmsave(debug::colorize(rgb8(), lbl, nlabels), "fill-subdomain");
@@ -34,7 +34,7 @@ int main()
mln_VAR(lbl_2, lbl | (pw::value(lbl) == pw::cst(2u)));
// \}
- image2d<label8> tmp;
+ image2d<label_8> tmp;
initialize(tmp, lbl);
level::fill(tmp, 0);
level::fill((tmp | lbl_2.domain()).rw(), 1);
diff --git a/milena/doc/tutorial/samples/fill-subimage-cfun.cc b/milena/doc/tutorial/samples/fill-subimage-cfun.cc
index 6deabf3..6f3a4dd 100644
--- a/milena/doc/tutorial/samples/fill-subimage-cfun.cc
+++ b/milena/doc/tutorial/samples/fill-subimage-cfun.cc
@@ -10,7 +10,7 @@ int main()
{
using namespace mln;
using value::rgb8;
- using value::label8;
+ using value::label_8;
// \{
diff --git a/milena/doc/tutorial/samples/labeling-compute.cc b/milena/doc/tutorial/samples/labeling-compute.cc
index 381c401..c91fc05 100644
--- a/milena/doc/tutorial/samples/labeling-compute.cc
+++ b/milena/doc/tutorial/samples/labeling-compute.cc
@@ -4,7 +4,7 @@ int main()
{
using namespace mln;
using value::rgb8;
- using value::label8;
+ using value::label_8;
// \{
@@ -21,8 +21,8 @@ int main()
doc::pbmsave(ima, "labeling-compute");
// \{
- label8 nlabels;
- image2d<label8> lbl = labeling::blobs(ima, c4(), nlabels);
+ label_8 nlabels;
+ image2d<label_8> lbl = labeling::blobs(ima, c4(), nlabels);
// \}
doc::ppmsave(debug::colorize(rgb8(), lbl, nlabels),
"labeling-compute");
diff --git a/milena/doc/tutorial/tutorial.tex b/milena/doc/tutorial/tutorial.tex
index 1c4bb16..8b69fcf 100644
--- a/milena/doc/tutorial/tutorial.tex
+++ b/milena/doc/tutorial/tutorial.tex
@@ -75,7 +75,7 @@ showstringspaces=false,linewidth=14cm}
\newcommand{\doxyrawcode}[1]{
\backslash endhtmlonly%
-\backslash include #1.cc%
+\backslash include #1.cc.raw%
\backslash htmlonly%
}
diff --git a/milena/mln/core/site_set/p_graph_piter.hh b/milena/mln/core/site_set/p_graph_piter.hh
index 543a817..2b02ed4 100644
--- a/milena/mln/core/site_set/p_graph_piter.hh
+++ b/milena/mln/core/site_set/p_graph_piter.hh
@@ -88,6 +88,9 @@ namespace mln
/// Return the underlying iterator.
const iter& hook_iter_() const;
+ /// Convert towards the graph element id.
+ operator unsigned() const;
+
private:
/// Update the psite corresponding to this iterator.
@@ -189,6 +192,13 @@ namespace mln
template <typename S, typename I>
inline
+ p_graph_piter<S,I>::operator unsigned() const
+ {
+ return iter_.id();
+ }
+
+ template <typename S, typename I>
+ inline
void
p_graph_piter<S,I>::update_()
{
diff --git a/milena/mln/debug/draw_graph.hh b/milena/mln/debug/draw_graph.hh
index 1febe63..ae7fcad 100644
--- a/milena/mln/debug/draw_graph.hh
+++ b/milena/mln/debug/draw_graph.hh
@@ -122,13 +122,13 @@ namespace mln
typedef p_vertices<G, F> pv_t;
mln_edge_iter(G) ei(g);
for_all(ei)
- draw::line(exact(ima), pv(ei.v1()), pv(ei.v2()), ecolor(ei.subj_()));
+ draw::line(exact(ima), pv(ei.v1()), pv(ei.v2()), ecolor(ei.id()));
// Draw vertices.
mln_piter(pv_t) p(pv);
for_all(p)
if (exact(ima).has(p))
- exact(ima)(p) = vcolor(p.element());
+ exact(ima)(p) = vcolor(p);
}
// FIXME: Refactor + be more restrictive on the function type.
@@ -152,13 +152,13 @@ namespace mln
{
p_line2d l = pv(vi.id());
// Draw edges (Line graph vertices).
- draw::line(exact(ima), l.begin(), l.end(), ecolor(vi.subj_()));
+ draw::line(exact(ima), l.begin(), l.end(), ecolor(vi.id()));
// Draw vertices (graph vertices).
if (exact(ima).has(l.begin()))
- exact(ima)(l.begin()) = vcolor(g.vertex(g.edge(vi).v1()));
+ exact(ima)(l.begin()) = vcolor(g.edge(vi).v1());
if (exact(ima).has(l.end()))
- exact(ima)(l.end()) = vcolor(g.vertex(g.edge(vi).v2()));
+ exact(ima)(l.end()) = vcolor(g.edge(vi).v2());
}
}
diff --git a/milena/mln/level/fill_with_value.hh b/milena/mln/level/fill_with_value.hh
index 3abf2d5..f81b6a6 100644
--- a/milena/mln/level/fill_with_value.hh
+++ b/milena/mln/level/fill_with_value.hh
@@ -1,4 +1,5 @@
// Copyright (C) 2008 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,15 +29,14 @@
#ifndef MLN_LEVEL_FILL_WITH_VALUE_HH
# define MLN_LEVEL_FILL_WITH_VALUE_HH
-/*! \file mln/level/fill_with_value.hh
- *
- * \brief Fill an image with a value, that is, set all pixel values to
- * the given value.
- *
- * \todo Move specializations in a extra file.
- * \toto Activate fill_with_value_cell_wise.
- * \todo Optimize when \p ima is large and sizeof(mln_value(I)) > 1.
- */
+/// \file mln/level/fill_with_value.hh
+///
+/// Fill an image with a value, that is, set all pixel values to
+/// the given value.
+///
+/// \todo Move specializations in a extra file.
+/// \todo Activate fill_with_value_cell_wise.
+/// \todo Optimize when \p ima is large and sizeof(mln_value(I)) > 1.
# include <cstdlib>
@@ -54,7 +54,7 @@ namespace mln
namespace level
{
- /// \brief Fill the whole image \p ima with the single value \p v.
+ /// Fill the whole image \p ima with the single value \p v.
///
/// \param[in,out] ima The image to be filled.
/// \param[in] val The value to assign to all sites.
diff --git a/milena/mln/value/label_16.hh b/milena/mln/value/label_16.hh
index c7d4e13..4fc1792 100644
--- a/milena/mln/value/label_16.hh
+++ b/milena/mln/value/label_16.hh
@@ -28,9 +28,9 @@
#ifndef MLN_VALUE_LABEL_16_HH
# define MLN_VALUE_LABEL_16_HH
-/// \file mln/value/label16.hh
+/// \file mln/value/label_16.hh
///
-/// Define the alias value::label16.
+/// Define the alias value::label_16.
# include <mln/value/label.hh>
@@ -43,7 +43,7 @@ namespace mln
/// Alias for 16-bit integers.
- typedef label<16> label16;
+ typedef label<16> label_16;
} // end of namespace mln::value
diff --git a/milena/mln/value/label_8.hh b/milena/mln/value/label_8.hh
index 2a27179..7f1a8b3 100644
--- a/milena/mln/value/label_8.hh
+++ b/milena/mln/value/label_8.hh
@@ -28,9 +28,9 @@
#ifndef MLN_VALUE_LABEL_8_HH
# define MLN_VALUE_LABEL_8_HH
-/// \file mln/value/label8.hh
+/// \file mln/value/label_8.hh
///
-/// Define the alias value::label8.
+/// Define the alias value::label_8.
# include <mln/value/label.hh>
@@ -43,7 +43,7 @@ namespace mln
/// Alias for 8-bit labels.
- typedef mln::value::label<8> label8;
+ typedef mln::value::label<8> label_8;
} // end of namespace mln::value
diff --git a/milena/tests/labeling/relabel.cc b/milena/tests/labeling/relabel.cc
index 409ded7..ac1f612 100644
--- a/milena/tests/labeling/relabel.cc
+++ b/milena/tests/labeling/relabel.cc
@@ -39,14 +39,14 @@
struct not_to_removed : public mln::Function_l2b< not_to_removed >
{
- bool operator()(const mln::value::label16& l) const
+ bool operator()(const mln::value::label_16& l) const
{
- return l < mln::value::label16(3);
+ return l < mln::value::label_16(3);
}
};
-bool is_valid(const mln::value::label16& l)
+bool is_valid(const mln::value::label_16& l)
{
return l == 0u|| l == 1u || l == 2u;
}
@@ -56,9 +56,9 @@ bool is_valid(const mln::value::label16& l)
int main()
{
using namespace mln;
- using value::label16;
+ using value::label_16;
- label16 vals[6][5] = {
+ label_16 vals[6][5] = {
{0, 1, 1, 0, 0},
{0, 1, 1, 4, 0},
{0, 0, 0, 0, 0},
@@ -67,29 +67,29 @@ int main()
{2, 5, 5, 0, 0}
};
- image2d<label16> lbl = make::image(vals);
- label16 nlabels = 5;
+ image2d<label_16> lbl = make::image(vals);
+ label_16 nlabels = 5;
{
- label16 new_nlabels;
- image2d<label16> lbl2 = labeling::relabel(lbl,
+ label_16 new_nlabels;
+ image2d<label_16> lbl2 = labeling::relabel(lbl,
nlabels,
new_nlabels,
not_to_removed());
mln_assertion(new_nlabels == 2u);
- mln_piter_(image2d<label16>) p(lbl2.domain());
+ mln_piter_(image2d<label_16>) p(lbl2.domain());
for_all(p)
mln_assertion(is_valid(lbl2(p)));
}
{
- label16 new_nlabels;
+ label_16 new_nlabels;
labeling::relabel_inplace(lbl,
nlabels,
not_to_removed());
mln_assertion(nlabels == 2u);
- mln_piter_(image2d<label16>) p(lbl.domain());
+ mln_piter_(image2d<label_16>) p(lbl.domain());
for_all(p)
mln_assertion(is_valid(lbl(p)));
}
diff --git a/milena/tests/morpho/meyer_wst_long.cc b/milena/tests/morpho/meyer_wst_long.cc
index b938985..34a1822 100644
--- a/milena/tests/morpho/meyer_wst_long.cc
+++ b/milena/tests/morpho/meyer_wst_long.cc
@@ -68,7 +68,7 @@ int main()
clo = morpho::closing_area(grad, c4(), 200);
// Perform a Watershed Transform.
- typedef value::label16 L;
+ typedef value::label_16 L;
L nbasins;
image2d<L> ws = morpho::meyer_wst(clo, c4(), nbasins);
--
1.5.6.5
1
0
08 Dec '08
* mln/core/internal/graph_psite_base.hh: Add conversion to graph
element id (unsigned).
* mln/pw/image.hh: Allow construction of pw::image from Function_v2v
instead of Function_p2v.
* tests/core/image/graph_image.cc,
* tests/core/image/line_graph_image.cc: cleanup code.
---
milena/ChangeLog | 13 +++++++++
milena/mln/core/internal/graph_psite_base.hh | 11 +++++++
milena/mln/pw/image.hh | 37 ++++++++++++--------------
milena/tests/core/image/graph_image.cc | 31 +++-------------------
milena/tests/core/image/line_graph_image.cc | 31 +++-------------------
5 files changed, 49 insertions(+), 74 deletions(-)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index 4edc4c2..1efcb92 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,5 +1,18 @@
2008-12-08 Guillaume Lazzara <z(a)lrde.epita.fr>
+ Allow construction of pw images using Function_v2v.
+
+ * mln/core/internal/graph_psite_base.hh: Add conversion to graph
+ element id (unsigned).
+
+ * mln/pw/image.hh: Allow construction of pw::image from Function_v2v
+ instead of Function_p2v.
+
+ * tests/core/image/graph_image.cc,
+ * tests/core/image/line_graph_image.cc: cleanup code.
+
+2008-12-08 Guillaume Lazzara <z(a)lrde.epita.fr>
+
Fix build system.
* Makefile.am: Split and move data related to headers distribution...
diff --git a/milena/mln/core/internal/graph_psite_base.hh b/milena/mln/core/internal/graph_psite_base.hh
index 2309862..c1fe14d 100644
--- a/milena/mln/core/internal/graph_psite_base.hh
+++ b/milena/mln/core/internal/graph_psite_base.hh
@@ -90,6 +90,9 @@ namespace mln
/// Invalidate this psite.
void invalidate();
+ /// Convertion towards the graph element Id.
+ operator unsigned() const;
+
/// Conversion towards the graph element (vertex or edge).
operator const typename S::graph_element&() const;
@@ -254,6 +257,14 @@ namespace mln
template <typename S, typename E>
inline
+ graph_psite_base<S,E>::operator unsigned() const
+ {
+ mln_precondition(is_valid());
+ return elt_.id();
+ }
+
+ template <typename S, typename E>
+ inline
graph_psite_base<S,E>::operator const typename S::graph_element&() const
{
mln_precondition(is_valid());
diff --git a/milena/mln/pw/image.hh b/milena/mln/pw/image.hh
index b6ba3a8..5a35153 100644
--- a/milena/mln/pw/image.hh
+++ b/milena/mln/pw/image.hh
@@ -1,4 +1,5 @@
// Copyright (C) 2007, 2008 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,12 +29,10 @@
#ifndef MLN_PW_IMAGE_HH
# define MLN_PW_IMAGE_HH
-/*! \file mln/pw/image.hh
- *
- * \brief FIXME.
- *
- * \todo Relax Function_p2v into Function_v2v.
- */
+/// \file mln/pw/image.hh
+///
+/// FIXME.
+
# include <mln/core/internal/image_primary.hh>
# include <mln/core/concept/function.hh>
@@ -49,12 +48,11 @@ namespace mln
- /*! \brief FIXME
- *
- */
+ /// Construct an image from a function and a site set.
+ /// image = function | site_set.
template <typename F, typename S>
pw::image<F,S>
- operator | (const Function_p2v<F>& f, const Site_Set<S>& ps);
+ operator | (const Function_v2v<F>& f, const Site_Set<S>& ps);
@@ -114,9 +112,8 @@ namespace mln
namespace pw
{
- /*! \brief FIXME
- *
- */
+ /// FIXME
+ ///
template <typename F, typename S>
struct image :
public internal::image_primary<mln_result(F), S, image<F,S> >
@@ -138,10 +135,10 @@ namespace mln
image();
/// Constructor.
- image(const Function_p2v<F>& f, const Site_Set<S>& ps);
+ image(const Function_v2v<F>& f, const Site_Set<S>& ps);
/// Initialize an empty image.
- void init_(const Function_p2v<F>& f, const Site_Set<S>& ps);
+ void init_(const Function_v2v<F>& f, const Site_Set<S>& ps);
/// Give the definition domain.
const S& domain() const;
@@ -159,7 +156,7 @@ namespace mln
} // end of namespace mln::pw
template <typename F, typename S>
- void init_(tag::function_t, Function_p2v<F>& target,
+ void init_(tag::function_t, Function_v2v<F>& target,
const mln::pw::image<F,S>& model);
template <typename F, typename S, typename J>
@@ -171,7 +168,7 @@ namespace mln
// init_
template <typename F, typename S>
- void init_(tag::function_t, Function_p2v<F>& target,
+ void init_(tag::function_t, Function_v2v<F>& target,
const mln::pw::image<F,S>& model)
{
target = model.function();
@@ -192,7 +189,7 @@ namespace mln
template <typename F, typename S>
inline
pw::image<F,S>
- operator | (const Function_p2v<F>& f, const Site_Set<S>& ps)
+ operator | (const Function_v2v<F>& f, const Site_Set<S>& ps)
{
pw::image<F,S> tmp(f, ps);
return tmp;
@@ -226,7 +223,7 @@ namespace mln
template <typename F, typename S>
inline
- image<F,S>::image(const Function_p2v<F>& f, const Site_Set<S>& ps)
+ image<F,S>::image(const Function_v2v<F>& f, const Site_Set<S>& ps)
{
this->data_ = new internal::data< pw::image<F,S> >(exact(f), exact(ps));
}
@@ -234,7 +231,7 @@ namespace mln
template <typename F, typename S>
inline
void
- image<F,S>::init_(const Function_p2v<F>& f, const Site_Set<S>& ps)
+ image<F,S>::init_(const Function_v2v<F>& f, const Site_Set<S>& ps)
{
this->data_ = new internal::data< image<F,S> >(exact(f), exact(ps));
}
diff --git a/milena/tests/core/image/graph_image.cc b/milena/tests/core/image/graph_image.cc
index bd47c8a..2094a24 100644
--- a/milena/tests/core/image/graph_image.cc
+++ b/milena/tests/core/image/graph_image.cc
@@ -62,32 +62,6 @@ static unsigned bkd[5][3] = { { 1, -1, -1 },
{ 2, 3, -1 } };
-
-template <typename S>
-struct viota_t : public mln::Function_p2v< viota_t<S> >
-{
- typedef unsigned result;
-
- viota_t(unsigned size)
- {
- v_.resize(size);
- for (unsigned i = 0; i < size; ++i)
- v_[i] = 10 + i;
- }
-
- unsigned
- operator()(const mln_psite(S)& p) const
- {
- return v_[p.v().id()];
- }
-
- protected:
- std::vector<result> v_;
-};
-
-
-
-
int main()
{
using namespace mln;
@@ -144,7 +118,10 @@ int main()
`-------------*/
// Graph values.
- viota_t<S> iota(5);
+ typedef fun::i2v::array<unsigned> viota_t;
+ viota_t iota(pv.nsites());
+ for (unsigned i = 0; i < iota.size(); ++i)
+ iota(i) = 10 + i;
// Create graph image.
mln_const_VAR(ima, (iota | pv));
diff --git a/milena/tests/core/image/line_graph_image.cc b/milena/tests/core/image/line_graph_image.cc
index 14a43db..36a836f 100644
--- a/milena/tests/core/image/line_graph_image.cc
+++ b/milena/tests/core/image/line_graph_image.cc
@@ -59,32 +59,6 @@ static unsigned bkd[5][3] = { { 2, 1, -1 },
{ 3, 1, -1 } };
-
-template <typename S>
-struct viota_t : public mln::Function_p2v< viota_t<S> >
-{
- typedef unsigned result;
-
- viota_t(unsigned size)
- {
- v_.resize(size);
- for (unsigned i = 0; i < size; ++i)
- v_[i] = 10 + i;
- }
-
- unsigned
- operator()(const mln_psite(S)& p) const
- {
- return v_[p.e().id()];
- }
-
- protected:
- std::vector<result> v_;
-};
-
-
-
-
int main()
{
using namespace mln;
@@ -138,7 +112,10 @@ int main()
`-------------------*/
// Graph values.
- viota_t<S> iota(5);
+ typedef fun::i2v::array<unsigned> viota_t;
+ viota_t iota(pe.nsites());
+ for (unsigned i = 0; i < iota.size(); ++i)
+ iota(i) = 10 + i;
// Create line graph image.
mln_const_VAR(ima, (iota | pe));
--
1.5.6.5
1
0
* bootstrap: generate milena/headers.mk at bootstrap.
---
ChangeLog | 6 ++++++
bootstrap | 21 +++++++++++++++++++++
2 files changed, 27 insertions(+), 0 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 39d71a0..753ac62 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2008-12-08 Guillaume Lazzara <z(a)lrde.epita.fr>
+ Generate list of headers to be distributed.
+
+ * bootstrap: generate milena/headers.mk at bootstrap.
+
+2008-12-08 Guillaume Lazzara <z(a)lrde.epita.fr>
+
Remove deprecated makefile entries.
* configure.ac: update.
diff --git a/bootstrap b/bootstrap
index 575c158..fa3a8da 100755
--- a/bootstrap
+++ b/bootstrap
@@ -108,6 +108,24 @@ run ()
)
}
+# Generate milena/headers.mk
+# ------------------------------
+# List all the headers in order to make them part of distribution.
+dist_headers ()
+{
+ cd "milena"
+ echo "nobase_include_HEADERS = \\" > headers.mk
+ echo "generating headers.mk"
+ find mln -type f | sed -e 's/$/ \\/g' >> headers.mk
+
+ echo "backup last line"
+ last_line=`tail -n 1 headers.mk | sed -e 's/\\\//g'` # remove '\' in last line
+ echo "remove last line"
+ sed '$d' < headers.mk > headers.mk.tmp # remove last line
+ mv headers.mk.tmp headers.mk
+ echo "put back last line"
+ echo $last_line >> headers.mk # put the cleaned last line back.
+}
# Failures do matter.
set -e
@@ -119,6 +137,9 @@ require automake 1.9.4
# Generate unit test files.
run milena/tests/unit_test ./build_unit_test.sh
+# Generate headers distribution config file.
+dist_headers
+
# Tell what's going on.
set -x
--
1.5.6.5
1
0