URL: https://svn.lrde.epita.fr/svn/oln/trunk/milena
ChangeLog:
2009-06-08 Edwin Carlinet <carlinet(a)lrde.epita.fr>
Move logical accumulators to their own directory.
* mln/accu/all.hh,
* mln/accu/logic/all.hh:
Update all.hh with respect to new logical accus directory.
* mln/accu/land.hh,
* mln/accu/land_basic.hh,
* mln/accu/lor.hh,
* mln/accu/lor_basic.hh: Move to...
* mln/accu/logic,
* mln/accu/logic/land.hh,
* mln/accu/logic/land_basic.hh
* mln/accu/logic/lor.hh,
* mln/accu/logic/lor_basic.hh:
Move land, land_basic, lor, lor_basic accumulators to logic directory.
* mln/morpho/dilation.hh,
* mln/morpho/erosion.hh,
* sandbox/abraham/mln/morpho/vector_median.hh,
* sandbox/abraham/mln/morpho/vmt.hh,
Replace accu::accu_name by accu::logic::accu_name,
accu::meta::accu_name by accu::meta::logic::accu_name,
accu/accu_name.hh by accu/logic/accu_name.hh,
and update mln_morpho_select_accu call maccro.
---
mln/accu/all.hh | 5
mln/accu/logic/all.hh | 58 +++++++++
mln/accu/logic/land.hh | 179 ++++++++++++++++++++++++++++
mln/accu/logic/land_basic.hh | 177 +++++++++++++++++++++++++++
mln/accu/logic/lor.hh | 179 ++++++++++++++++++++++++++++
mln/accu/logic/lor_basic.hh | 176 +++++++++++++++++++++++++++
mln/morpho/dilation.hh | 14 +-
mln/morpho/erosion.hh | 14 +-
sandbox/abraham/mln/morpho/vector_median.hh | 4
sandbox/abraham/mln/morpho/vmt.hh | 4
10 files changed, 788 insertions(+), 22 deletions(-)
Index: trunk/milena/mln/accu/lor.hh (deleted)
===================================================================
Index: trunk/milena/mln/accu/land_basic.hh (deleted)
===================================================================
Index: trunk/milena/mln/accu/lor_basic.hh (deleted)
===================================================================
Index: trunk/milena/mln/accu/land.hh (deleted)
===================================================================
Index: trunk/milena/mln/accu/logic/all.hh
===================================================================
--- trunk/milena/mln/accu/logic/all.hh (revision 0)
+++ trunk/milena/mln/accu/logic/all.hh (revision 4032)
@@ -0,0 +1,58 @@
+// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+//
+// This file is part of the Milena 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_ACCU_LOGIC_ALL_HH
+# define MLN_ACCU_LOGIC_ALL_HH
+
+/// \file mln/accu/logic/all.hh
+///
+/// File that includes all logical accumulator types.
+
+
+namespace mln
+{
+ namespace accu
+ {
+ namespace meta
+ {
+ /// Namespace of logical meta-accumulators.
+ namespace logic {}
+ }
+
+ /// Namespace of logical accumulators.
+ namespace logic {}
+
+ }
+}
+
+# include <mln/accu/logic/lor.hh>
+# include <mln/accu/logic/lor_basic.hh>
+# include <mln/accu/logic/land.hh>
+# include <mln/accu/logic/land_basic.hh>
+
+#endif // ! MLN_ACCU_LOGIC_ALL_HH
+
Property changes on: trunk/milena/mln/accu/logic/all.hh
___________________________________________________________________
Added: svn:mergeinfo
Index: trunk/milena/mln/accu/logic/lor.hh
===================================================================
--- trunk/milena/mln/accu/logic/lor.hh (revision 0)
+++ trunk/milena/mln/accu/logic/lor.hh (revision 4032)
@@ -0,0 +1,179 @@
+// Copyright (C) 2007, 2008, 2009 EPITA Research and Development
+// Laboratory (LRDE)
+//
+// This file is part of the Milena 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_ACCU_LOGIC_LOR_HH
+# define MLN_ACCU_LOGIC_LOR_HH
+
+/// \file mln/accu/logic/lor.hh
+///
+/// Define a 'logical-or' accumulator.
+///
+/// \todo Have lor be parameterized.
+
+# include <mln/core/concept/meta_accumulator.hh>
+# include <mln/accu/internal/base.hh>
+
+
+namespace mln
+{
+
+ namespace accu
+ {
+
+ namespace logic
+ {
+ // Forward declaration.
+ struct lor;
+ }
+
+ namespace meta
+ {
+
+ namespace logic
+ {
+ /// Meta accumulator for lor.
+ struct lor : public Meta_Accumulator< lor >
+ {
+ template <typename T>
+ struct with
+ {
+ typedef accu::logic::lor ret;
+ };
+ };
+
+ } // end of namespace mln::accu::meta::logic
+ } // end of namespace mln::accu::meta
+
+ namespace logic
+ {
+
+ /// \brief "Logical-or" accumulator.
+ ///
+ /// \ingroup modaccuvalues
+ //
+ struct lor : public mln::accu::internal::base< bool, lor >
+ {
+ typedef bool argument;
+
+ lor();
+
+ /// Manipulators.
+ /// \{
+ void init();
+ void take_as_init_(const argument& t);
+
+ void take(const argument& t);
+ void take(const lor& other);
+
+ void untake(const argument& t);
+ void untake(const lor& other);
+ /// \}
+
+ /// Get the value of the accumulator.
+ bool to_result() const;
+
+ /// Check whether this accu is able to return a result.
+ /// Always true here.
+ bool is_valid() const;
+
+ protected:
+ unsigned ntrue_;
+ };
+
+# ifndef MLN_INCLUDE_ONLY
+
+ inline
+ lor::lor()
+ {
+ init();
+ }
+
+ inline
+ void
+ lor::init()
+ {
+ ntrue_ = 0;
+ }
+
+ inline
+ void lor::take_as_init_(const argument& t)
+ {
+ ntrue_ = t ? 1 : 0;
+ }
+
+ inline
+ void lor::take(const argument& t)
+ {
+ if (t == true)
+ ++ntrue_;
+ }
+
+ inline
+ void
+ lor::take(const lor& other)
+ {
+ ntrue_ += other.ntrue_;
+ }
+
+ inline
+ void lor::untake(const argument& t)
+ {
+ if (t == true)
+ --ntrue_;
+ }
+
+ inline
+ void
+ lor::untake(const lor& other)
+ {
+ mln_precondition(other.ntrue_ <= ntrue_);
+ ntrue_ -= other.ntrue_;
+ }
+
+ inline
+ bool
+ lor::to_result() const
+ {
+ return ntrue_ != 0;
+ }
+
+ inline
+ bool
+ lor::is_valid() const
+ {
+ return true;
+ }
+
+# endif // ! MLN_INCLUDE_ONLY
+
+ } // end of namespace mln::accu::logic
+ } // end of namespace mln::accu
+} // end of namespace mln
+
+
+#endif // ! MLN_ACCU_LOGIC_LOR_HH
Property changes on: trunk/milena/mln/accu/logic/lor.hh
___________________________________________________________________
Added: svn:mergeinfo
Index: trunk/milena/mln/accu/logic/lor_basic.hh
===================================================================
--- trunk/milena/mln/accu/logic/lor_basic.hh (revision 0)
+++ trunk/milena/mln/accu/logic/lor_basic.hh (revision 4032)
@@ -0,0 +1,176 @@
+// Copyright (C) 2007, 2008, 2009 EPITA Research and Development
+// Laboratory (LRDE)
+//
+// This file is part of the Milena 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_ACCU_LOGIC_LOR_BASIC_HH
+# define MLN_ACCU_LOGIC_LOR_BASIC_HH
+
+/// \file mln/accu/logic/lor_basic.hh
+///
+/// Define a basic 'logical-or' accumulator.
+///
+/// \todo Have lor_basic be parameterized.
+
+# include <mln/core/concept/meta_accumulator.hh>
+# include <mln/accu/internal/base.hh>
+
+
+namespace mln
+{
+
+ namespace accu
+ {
+
+ namespace logic
+ {
+ // Forward declaration.
+ struct lor_basic;
+ }
+
+ namespace meta
+ {
+
+ namespace logic
+ {
+ /// Meta accumulator for lor_basic.
+ struct lor_basic : public Meta_Accumulator< lor_basic >
+ {
+ template <typename T>
+ struct with
+ {
+ typedef accu::logic::lor_basic ret;
+ };
+ };
+
+ } // end of namespace mln::accu::meta::logic
+ } // end of namespace mln::accu::meta
+
+
+ namespace logic
+ {
+
+ /// \brief "Logical-or" accumulator class.
+ /// Conversely to accu::logic::lor, this version does not have the 'untake'
+ /// method but features the 'can_stop' method.
+ ///
+ /// \ingroup modaccuvalues
+ //
+ struct lor_basic : public mln::accu::internal::base< bool, lor_basic >
+ {
+ typedef bool argument;
+
+ lor_basic();
+
+ /// Manipulators.
+ /// \{
+ void init();
+ void take_as_init_(const argument& t);
+
+ void take(const argument& t);
+ void take(const lor_basic& other);
+ /// \}
+
+ /// Get the value of the accumulator.
+ bool to_result() const;
+
+ /// Check whether this accu is able to return a result.
+ /// Always true here.
+ bool is_valid() const;
+
+ /// Test if it is worth for this accumulator to take extra data.
+ /// If the result is already 'true' (because this accumulator
+ /// has already taken a 'true' value), can_stop returns true.
+ bool can_stop() const;
+
+ protected:
+ bool res_;
+ };
+
+# ifndef MLN_INCLUDE_ONLY
+
+ inline
+ lor_basic::lor_basic()
+ {
+ init();
+ }
+
+ inline
+ void
+ lor_basic::init()
+ {
+ res_ = false;
+ }
+
+ inline
+ void lor_basic::take_as_init_(const argument& t)
+ {
+ res_ = t;
+ }
+
+ inline
+ void lor_basic::take(const argument& t)
+ {
+ if (res_ == false && t == true)
+ res_ = true;
+ }
+
+ inline
+ void
+ lor_basic::take(const lor_basic& other)
+ {
+ res_ = res_ || other.res_;
+ }
+
+ inline
+ bool
+ lor_basic::to_result() const
+ {
+ return res_;
+ }
+
+ inline
+ bool
+ lor_basic::is_valid() const
+ {
+ return true;
+ }
+
+ inline
+ bool
+ lor_basic::can_stop() const
+ {
+ return res_ == true;
+ }
+
+# endif // ! MLN_INCLUDE_ONLY
+
+ } // end of namespace mln::accu::logic
+ } // end of namespace mln::accu
+} // end of namespace mln
+
+
+#endif // ! MLN_ACCU_LOGIC_LOR_BASIC_HH
Property changes on: trunk/milena/mln/accu/logic/lor_basic.hh
___________________________________________________________________
Added: svn:mergeinfo
Index: trunk/milena/mln/accu/logic/land.hh
===================================================================
--- trunk/milena/mln/accu/logic/land.hh (revision 0)
+++ trunk/milena/mln/accu/logic/land.hh (revision 4032)
@@ -0,0 +1,179 @@
+// Copyright (C) 2007, 2008, 2009 EPITA Research and Development
+// Laboratory (LRDE)
+//
+// This file is part of the Milena 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_ACCU_LOGIC_LAND_HH
+# define MLN_ACCU_LOGIC_LAND_HH
+
+/// \file mln/accu/logic/land.hh
+///
+/// Define a 'logical-and' accumulator.
+///
+/// \todo Have land be parameterized.
+
+# include <mln/core/concept/meta_accumulator.hh>
+# include <mln/accu/internal/base.hh>
+
+
+namespace mln
+{
+
+ namespace accu
+ {
+
+ namespace logic
+ {
+ // Forward declaration.
+ struct land;
+ }
+
+ namespace meta
+ {
+ namespace logic
+ {
+
+ /// Meta accumulator for land.
+ struct land : public Meta_Accumulator< land >
+ {
+ template <typename T>
+ struct with
+ {
+ typedef accu::logic::land ret;
+ };
+ };
+
+ } // end of namespace mln::accu::meta::logic
+ } // end of namespace mln::accu::meta
+
+ namespace logic
+ {
+
+ /// \brief "Logical-and" accumulator.
+ ///
+ /// \ingroup modaccuvalues
+ //
+ struct land : public mln::accu::internal::base< bool, land >
+ {
+ typedef bool argument;
+
+ land();
+
+ /// Manipulators.
+ /// \{
+ void init();
+ void take_as_init_(const argument& t);
+
+ void take(const argument& t);
+ void take(const land& other);
+
+ void untake(const argument& t);
+ void untake(const land& other);
+ /// \}
+
+ /// Get the value of the accumulator.
+ bool to_result() const;
+
+ /// Check whether this accu is able to return a result.
+ /// Always true here.
+ bool is_valid() const;
+
+ protected:
+ unsigned nfalse_;
+ };
+
+
+# ifndef MLN_INCLUDE_ONLY
+
+ inline
+ land::land()
+ {
+ init();
+ }
+
+ inline
+ void
+ land::init()
+ {
+ nfalse_ = 0;
+ }
+
+ inline
+ void land::take_as_init_(const argument& t)
+ {
+ nfalse_ = t ? 0 : 1;
+ }
+
+ inline
+ void land::take(const argument& t)
+ {
+ if (t == false)
+ ++nfalse_;
+ }
+
+ inline
+ void
+ land::take(const land& other)
+ {
+ nfalse_ += other.nfalse_;
+ }
+
+ inline
+ void land::untake(const argument& t)
+ {
+ if (t == false)
+ --nfalse_;
+ }
+
+ inline
+ void
+ land::untake(const land& other)
+ {
+ mln_precondition(other.nfalse_ <= nfalse_);
+ nfalse_ -= other.nfalse_;
+ }
+
+ inline
+ bool
+ land::to_result() const
+ {
+ return nfalse_ == 0;
+ }
+
+ inline
+ bool
+ land::is_valid() const
+ {
+ return true;
+ }
+
+# endif // ! MLN_INCLUDE_ONLY
+
+ } // end of namespace mln::accu::logic
+ } // end of namespace mln::accu
+} // end of namespace mln
+
+#endif // ! MLN_ACCU_LOGIC_LAND_HH
Property changes on: trunk/milena/mln/accu/logic/land.hh
___________________________________________________________________
Added: svn:mergeinfo
Index: trunk/milena/mln/accu/logic/land_basic.hh
===================================================================
--- trunk/milena/mln/accu/logic/land_basic.hh (revision 0)
+++ trunk/milena/mln/accu/logic/land_basic.hh (revision 4032)
@@ -0,0 +1,177 @@
+// Copyright (C) 2007, 2008, 2009 EPITA Research and Development
+// Laboratory (LRDE)
+//
+// This file is part of the Milena 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_ACCU_LOGIC_LAND_BASIC_HH
+# define MLN_ACCU_LOGIC_LAND_BASIC_HH
+
+/// \file mln/accu/logic/land_basic.hh
+///
+/// Define a basic 'logical-and' accumulator.
+///
+/// \todo Have land_basic be parameterized.
+
+# include <mln/core/concept/meta_accumulator.hh>
+# include <mln/accu/internal/base.hh>
+
+
+namespace mln
+{
+
+ namespace accu
+ {
+
+ namespace logic
+ {
+ // Forward declaration.
+ struct land_basic;
+ }
+
+ namespace meta
+ {
+
+ namespace logic
+ {
+
+ /// Meta accumulator for land_basic.
+ struct land_basic : public Meta_Accumulator< land_basic >
+ {
+ template <typename T>
+ struct with
+ {
+ typedef accu::logic::land_basic ret;
+ };
+ };
+
+ } // end of namespace mln::accu::meta::logic
+ } // end of namespace mln::accu::meta
+
+
+ namespace logic
+ {
+
+ /// \brief "Logical-and" accumulator.
+ /// Conversely to accu::logic::land, this version does not have the 'untake'
+ /// method but features the 'can_stop' method.
+ ///
+ /// \ingroup modaccuvalues
+ //
+ struct land_basic : public mln::accu::internal::base< bool, land_basic >
+ {
+ typedef bool argument;
+
+ land_basic();
+
+ /// Manipulators.
+ /// \{
+ void init();
+ void take_as_init_(const argument& t);
+
+ void take(const argument& t);
+ void take(const land_basic& other);
+ /// \}
+
+ /// Get the value of the accumulator.
+ bool to_result() const;
+
+ /// Check whether this accu is able to return a result.
+ /// Always true here.
+ bool is_valid() const;
+
+ /// Test if it is worth for this accumulator to take extra data.
+ /// If the result is already 'false' (because this accumulator
+ /// has already taken a 'false' value), can_stop returns true.
+ bool can_stop() const;
+
+ protected:
+ bool res_;
+ };
+
+# ifndef MLN_INCLUDE_ONLY
+
+ inline
+ land_basic::land_basic()
+ {
+ init();
+ }
+
+ inline
+ void
+ land_basic::init()
+ {
+ res_ = true;
+ }
+
+ inline
+ void land_basic::take_as_init_(const argument& t)
+ {
+ res_ = t;
+ }
+
+ inline
+ void land_basic::take(const argument& t)
+ {
+ if (res_ == true && t == false)
+ res_ = false;
+ }
+
+ inline
+ void
+ land_basic::take(const land_basic& other)
+ {
+ res_ = res_ && other.res_;
+ }
+
+ inline
+ bool
+ land_basic::to_result() const
+ {
+ return res_;
+ }
+
+ inline
+ bool
+ land_basic::is_valid() const
+ {
+ return true;
+ }
+
+ inline
+ bool
+ land_basic::can_stop() const
+ {
+ return res_ == false;
+ }
+
+# endif // ! MLN_INCLUDE_ONLY
+
+ } // end of namespace mln::accu::logic
+ } // end of namespace mln::accu
+} // end of namespace mln
+
+
+#endif // ! MLN_ACCU_LOGIC_LAND_BASIC_HH
Property changes on: trunk/milena/mln/accu/logic/land_basic.hh
___________________________________________________________________
Added: svn:mergeinfo
Index: trunk/milena/mln/accu/all.hh
===================================================================
--- trunk/milena/mln/accu/all.hh (revision 4031)
+++ trunk/milena/mln/accu/all.hh (revision 4032)
@@ -64,11 +64,7 @@
# include <mln/accu/height.hh>
# include <mln/accu/histo.hh>
# include <mln/accu/label_used.hh>
-# include <mln/accu/land.hh>
-# include <mln/accu/land_basic.hh>
# include <mln/accu/line.hh>
-# include <mln/accu/lor.hh>
-# include <mln/accu/lor_basic.hh>
# include <mln/accu/nil.hh>
# include <mln/accu/pair.hh>
# include <mln/accu/rank.hh>
@@ -93,6 +89,7 @@
# include <mln/accu/image/all.hh>
# include <mln/accu/site_set/all.hh>
# include <mln/accu/stat/all.hh>
+# include <mln/accu/logic/all.hh>
#endif // ! MLN_ACCU_ALL_HH
Index: trunk/milena/mln/morpho/erosion.hh
===================================================================
--- trunk/milena/mln/morpho/erosion.hh (revision 4031)
+++ trunk/milena/mln/morpho/erosion.hh (revision 4032)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory
+// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory
// (LRDE)
//
// This file is part of the Milena Library. This library is free
@@ -37,8 +37,8 @@
# include <mln/morpho/general.hh>
# include <mln/morpho/includes.hh>
-# include <mln/accu/land.hh>
-# include <mln/accu/land_basic.hh>
+# include <mln/accu/logic/land.hh>
+# include <mln/accu/logic/land_basic.hh>
# include <mln/accu/stat/min.hh>
# include <mln/accu/stat/min_h.hh>
@@ -61,18 +61,18 @@
{
template <typename I>
- mln_morpho_select_accu(I, land_basic, stat::min)
+ mln_morpho_select_accu(I, logic::land_basic, stat::min)
accu(const Image<I>&) const
{
- mln_morpho_select_accu(I, land_basic, stat::min) tmp;
+ mln_morpho_select_accu(I, logic::land_basic, stat::min) tmp;
return tmp;
}
template <typename I>
- mln_morpho_select_accu(I, land, stat::min_h)
+ mln_morpho_select_accu(I, logic::land, stat::min_h)
accu_incr(const Image<I>&) const
{
- mln_morpho_select_accu(I, land, stat::min_h) tmp;
+ mln_morpho_select_accu(I, logic::land, stat::min_h) tmp;
return tmp;
}
Index: trunk/milena/mln/morpho/dilation.hh
===================================================================
--- trunk/milena/mln/morpho/dilation.hh (revision 4031)
+++ trunk/milena/mln/morpho/dilation.hh (revision 4032)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory
+// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory
// (LRDE)
//
// This file is part of the Milena Library. This library is free
@@ -37,8 +37,8 @@
# include <mln/morpho/includes.hh>
# include <mln/morpho/general.hh>
-# include <mln/accu/lor.hh>
-# include <mln/accu/lor_basic.hh>
+# include <mln/accu/logic/lor.hh>
+# include <mln/accu/logic/lor_basic.hh>
# include <mln/accu/stat/max.hh>
# include <mln/accu/stat/max_h.hh>
@@ -62,18 +62,18 @@
{
template <typename I>
- mln_morpho_select_accu(I, lor_basic, stat::max)
+ mln_morpho_select_accu(I, logic::lor_basic, stat::max)
accu(const Image<I>&) const
{
- mln_morpho_select_accu(I, lor_basic, stat::max) tmp;
+ mln_morpho_select_accu(I, logic::lor_basic, stat::max) tmp;
return tmp;
}
template <typename I>
- mln_morpho_select_accu(I, lor, stat::max_h)
+ mln_morpho_select_accu(I, logic::lor, stat::max_h)
accu_incr(const Image<I>&) const
{
- mln_morpho_select_accu(I, lor, stat::max_h) tmp;
+ mln_morpho_select_accu(I, logic::lor, stat::max_h) tmp;
return tmp;
}
Index: trunk/milena/sandbox/abraham/mln/morpho/vmt.hh
===================================================================
--- trunk/milena/sandbox/abraham/mln/morpho/vmt.hh (revision 4031)
+++ trunk/milena/sandbox/abraham/mln/morpho/vmt.hh (revision 4032)
@@ -37,8 +37,8 @@
# include <mln/morpho/includes.hh>
# include <mln/morpho/general.hh>
-# include <mln/accu/land.hh>
-# include <mln/accu/land_basic.hh>
+# include <mln/accu/logic/land.hh>
+# include <mln/accu/logic/land_basic.hh>
# include <mln/accu/stat/min.hh>
# include <mln/accu/stat/min_h.hh>
# include <mln/norm/l2.hh>
Index: trunk/milena/sandbox/abraham/mln/morpho/vector_median.hh
===================================================================
--- trunk/milena/sandbox/abraham/mln/morpho/vector_median.hh (revision 4031)
+++ trunk/milena/sandbox/abraham/mln/morpho/vector_median.hh (revision 4032)
@@ -37,8 +37,8 @@
# include <mln/morpho/includes.hh>
# include <mln/morpho/general.hh>
-# include <mln/accu/land.hh>
-# include <mln/accu/land_basic.hh>
+# include <mln/accu/logic/land.hh>
+# include <mln/accu/logic/land_basic.hh>
# include <mln/accu/stat/min.hh>
# include <mln/accu/stat/min_h.hh>
# include <mln/norm/l2.hh>
* build-aux/regen-recursive.mk: New.
---
ChangeLog | 6 +++++
build-aux/regen-recursive.mk | 52 ++++++++++++++++++++++++++++++++++++++++++
2 files changed, 58 insertions(+), 0 deletions(-)
create mode 100644 build-aux/regen-recursive.mk
diff --git a/ChangeLog b/ChangeLog
index 4c8240a..8310f5c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2009-06-08 Roland Levillain <roland(a)lrde.epita.fr>
+ Introduce an Automake helper to factor regen recursive targets.
+
+ * build-aux/regen-recursive.mk: New.
+
+2009-06-08 Roland Levillain <roland(a)lrde.epita.fr>
+
Introduce an Automake helper to factor extra recursive targets.
* build-aux/extra-recursive-targets.mk: New.
diff --git a/build-aux/regen-recursive.mk b/build-aux/regen-recursive.mk
new file mode 100644
index 0000000..cfa7e69
--- /dev/null
+++ b/build-aux/regen-recursive.mk
@@ -0,0 +1,52 @@
+# regen-recursive.mk -*- Automake -*-
+# Regenerate files recursively.
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2008 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+# To use this file, include it in Makefile.am and populate
+# REGEN_SUBDIRS (using `+=') with the subdirectories to visit.
+
+REGEN_SUBDIRS =
+
+regen: regen-recursive
+regen-am:
+# Copied and adjusted from a generated Makefile.in (rule
+# `$(RECURSIVE_TARGETS)'). (Automake does not allow us to interact
+# with the code it generates in Makefile.in.) We might want to
+# propose this as a patch to the Automake project.
+regen-recursive:
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(REGEN_SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+.PHONY: regen regen-am regen-recursive
--
1.6.1.2