oln-0.10 10.256: Add a third version of the computation of a the max-tree based on Fiorio's and Gustedt's labelling algorithm.

2006-08-29 Roland Levillain <roland@lrde.epita.fr> Add a third version of the computation of a the max-tree based on Fiorio's and Gustedt's labelling algorithm. * oln/lrde/ufmt/fiorio-3.hh: New file. * oln/lrde/ufmt/bin/fiorio.cc: Handle fiorio-3.hh. Add copyright notice. * oln/lrde/ufmt/bin/Makefile.am (AM_CXXFLAGS): Add -DNDEBUG. (check_PROGRAMS): Add fiorio-3. (fiorio_3_SOURCES, fiorio_3_CPPFLAGS): New. * oln/lrde/ufmt/Makefile.am (noinst_HEADERS): Add fiorio-3.hh. * oln/lrde/ufmt/fiorio-1.hh, oln/lrde/ufmt/fiorio-2.hh: Typo in comment. * oln/lrde/ufmt/README: Update. --- 10.255/olena/oln/lrde/ufmt/README Mon, 28 Aug 2006 14:48:16 +0200 theo (oln/x/22_README 1.5 644) +++ 10.256/olena/oln/lrde/ufmt/README Tue, 29 Aug 2006 14:48:46 +0200 levill_r (oln/x/22_README 1.6 644) @@ -142,3 +142,12 @@ ** fiorio-2.hh My second implementation of the max-tree computation using Fiorio's and Gustedt's algorithm, using routines of Theo's (anc, insert, etc.) + +** fiorio-3.hh +A variation on fiorio-2.hh, which computes a max-tree for each line +of the image independently, and then merges them column per column. + + +Local Variables: +ispell-local-dictionary: "american" +End: --- 10.255/olena/oln/lrde/ufmt/Makefile.am Mon, 28 Aug 2006 18:31:56 +0200 berger_c (oln/x/26_Makefile.a 1.2 644) +++ 10.256/olena/oln/lrde/ufmt/Makefile.am Tue, 29 Aug 2006 14:48:46 +0200 levill_r (oln/x/26_Makefile.a 1.3 644) @@ -16,6 +16,7 @@ basic_salembier.hh \ fiorio-1.hh \ fiorio-2.hh \ + fiorio-3.hh \ hdc_maxtree.hh \ hpc_maxtree.hh \ log.hh \ --- 10.255/olena/oln/lrde/ufmt/fiorio-1.hh Fri, 25 Aug 2006 18:19:26 +0200 levill_r (oln/x/27_fiorio-1.h 1.2 644) +++ 10.256/olena/oln/lrde/ufmt/fiorio-1.hh Tue, 29 Aug 2006 14:48:46 +0200 levill_r (oln/x/27_fiorio-1.h 1.3 644) @@ -26,7 +26,7 @@ // Public License. -/** \brief An adadpatation of Fiorio's and Gustedt's algorithm +/** \brief An adaptation of Fiorio's and Gustedt's algorithm (fiorio.96.tcs). Ref.: Christophe Fiorio and Jens Gustedt. Two linear time --- 10.255/olena/oln/lrde/ufmt/fiorio-2.hh Fri, 25 Aug 2006 18:19:26 +0200 levill_r (oln/x/28_fiorio-2.h 1.2 644) +++ 10.256/olena/oln/lrde/ufmt/fiorio-2.hh Tue, 29 Aug 2006 14:48:46 +0200 levill_r (oln/x/28_fiorio-2.h 1.3 644) @@ -26,7 +26,7 @@ // Public License. -/** \brief An adadpatation of Fiorio's and Gustedt's algorithm +/** \brief An adaptation of Fiorio's and Gustedt's algorithm (fiorio.96.tcs). Ref.: Christophe Fiorio and Jens Gustedt. Two linear time @@ -237,6 +237,44 @@ merge_(r, t); } +// FIXME: ``New'' Version (iterative, instead of recursive). To be tested. +#if 0 + void merge_(point p, point q) + { + precondition (p != q); + precondition (ima_[p] >= ima_[q]); + + point r = find_ancestor(p, ima_[q]); + point s = find_level_root(q); + + // Stop the recursion when R and S are equal (i.e., they are + // already merged). + while (r != s) + { + invariant (p != q); + invariant (ima_[p] >= ima_[q]); + + point t = parent_[s]; + if (ima_[s] == ima_[r]) + { + parent_[s] = r; + // Update the number of level roots. + --n_level_roots_cpt_; + } + else + { + if (not is_top(r)) + parent_[s] = parent_[r]; + parent_[r] = s; + } + p = r; + q = t; + r = find_ancestor(p, ima_[q]); + s = find_level_root(q); + } + } +#endif + /// \note Theo calls this function ``is_root'. bool is_top(const point& p) const { --- 10.255/olena/oln/lrde/ufmt/bin/Makefile.am Mon, 28 Aug 2006 18:31:56 +0200 berger_c (oln/x/29_Makefile.a 1.2 644) +++ 10.256/olena/oln/lrde/ufmt/bin/Makefile.am Tue, 29 Aug 2006 14:48:46 +0200 levill_r (oln/x/29_Makefile.a 1.3 644) @@ -1,19 +1,22 @@ -AM_CXXFLAGS = -O3 -ggdb -Wall -Werror -ansi -pedantic +AM_CXXFLAGS = -Wall -Werror -ansi -pedantic -ggdb -O3 -DNDEBUG AM_LDFLAGS = $(ZLIB_LDFLAGS) -check_PROGRAMS = basic_maxtree basic_najman basic_salembier fiorio-1 fiorio-2 \ +check_PROGRAMS = \ + basic_maxtree basic_najman basic_salembier \ + fiorio-1 fiorio-2 fiorio-3 \ hdc_maxtree hpc_maxtree r1ic_maxtree rpc_maxtree basic_maxtree_SOURCES = basic_maxtree.cc basic_najman_SOURCES = basic_najman.cc basic_salembier_SOURCES = basic_salembier.cc +fiorio_1_SOURCES = fiorio.cc +fiorio_2_SOURCES = fiorio.cc +fiorio_2_CPPFLAGS = -DFIORIO_VERSION=2 +fiorio_3_SOURCES = fiorio.cc +fiorio_3_CPPFLAGS = -DFIORIO_VERSION=3 hdc_maxtree_SOURCES = hdc_maxtree.cc hpc_maxtree_SOURCES = hpc_maxtree.cc r1ic_maxtree_SOURCES = r1ic_maxtree.cc rpc_maxtree_SOURCES = rpc_maxtree.cc -fiorio_1_SOURCES = fiorio.cc -fiorio_2_SOURCES = fiorio.cc -fiorio_2_CPPFLAGS = -DFIORIO_VERSION=2 - # FIXME: Write (runtime) tests! --- 10.255/olena/oln/lrde/ufmt/bin/fiorio.cc Fri, 25 Aug 2006 18:19:26 +0200 levill_r (oln/x/30_fiorio.cc 1.2 644) +++ 10.256/olena/oln/lrde/ufmt/bin/fiorio.cc Tue, 29 Aug 2006 14:48:46 +0200 levill_r (oln/x/30_fiorio.cc 1.3 644) @@ -1,3 +1,30 @@ +// Copyright (C) 2006 EPITA Research and Development Laboratory +// +// 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 <cstdlib> #include <ntg/int.hh> @@ -7,10 +34,14 @@ #include <oln/level/fill.hh> // Max-tree computation base on Fiorio's and Gustedt's algorithm. -#if defined(FIORIO_VERSION) && FIORIO_VERSION == 2 -# include <oln/lrde/ufmt/fiorio-2.hh> +#if defined(FIORIO_VERSION) && FIORIO_VERSION == 3 +# include <oln/lrde/ufmt/fiorio-3.hh> #else -# include <oln/lrde/ufmt/fiorio-1.hh> +# if defined(FIORIO_VERSION) && FIORIO_VERSION == 2 +# include <oln/lrde/ufmt/fiorio-2.hh> +# else +# include <oln/lrde/ufmt/fiorio-1.hh> +# endif #endif --- 10.255/olena/oln/lrde/ufmt/fiorio-3.hh Tue, 29 Aug 2006 14:52:01 +0200 levill_r () +++ 10.256/olena/oln/lrde/ufmt/fiorio-3.hh Tue, 29 Aug 2006 14:48:46 +0200 levill_r (oln/x/44_fiorio-3.h 1.1 644) @@ -0,0 +1,281 @@ +// Copyright (C) 2006 EPITA Research and Development Laboratory +// +// 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. + + +/** \brief An adaptation of Fiorio's and Gustedt's algorithm + (fiorio.96.tcs). + + Ref.: Christophe Fiorio and Jens Gustedt. Two linear time + Union-Find strategies for image processing. Theoretical Computer + Science, 1996. + + \note This is the third version of my implementation, augmented + with Theo's (better) routines and ideas + another merge/update + method. */ + + +#ifndef OLENA_LRDE_UFMT_FIORIO_3_HH +# define OLENA_LRDE_UFMT_FIORIO_3_HH + +# include <algorithm> + +# include <oln/core/image2d.hh> +# include <oln/level/fill.hh> + +namespace oln +{ + namespace lrde + { + namespace ufmt + { + + // FIXME: Not generic (works only on 2-D images). + template <typename I> + class fiorio + { + typedef oln_point_type(I) point; + typedef oln_value_type(I) value; + typedef oln_iter_type(I) piter; + typedef typename mute<I, point>::ret parent_type; + + public: + fiorio(const abstract::image<I>& ima) : + ima_(ima.exact().clone()), parent_(ima.size()), + n_level_roots_cpt_(ima.npoints()) + { + // Init the image of parents. + piter p (parent_); + for_all (p) + parent_[p] = p; + } + + /// Entry point of the algorithm. + void go() + { + scan_line(); + } + + + /// Images accessors. + /// \{ + public: + const I& ima() const + { + return ima_; + } + + const parent_type& parent() const + { + return parent_; + } + /// \} + + + /// Level roots. + /// \{ + /// Get the number of level roots (method 1, using a counter + /// updated by the algorithm). + unsigned n_level_roots1() const + { + return n_level_roots_cpt_; + } + + /// Get the number of level roots (method 2, computing from the + /// PARENT image. + unsigned n_level_roots2() const + { + unsigned n_level_roots = 0; + oln_iter_type(parent_type) p(parent_); + for_all (p) + if (is_level_root(p)) + ++n_level_roots; + return n_level_roots; + } + + /// The type of an image of level roots + typedef typename mute<parent_type, bool>::ret level_roots_image_type; + + /// \brief Compute the image of level roots. + /// + /// A value of \a true means that the point is a level root in ima. + level_roots_image_type level_roots() const + { + // Image of level roots. + level_roots_image_type level_roots (ima_.size()); + oln_iter_type(parent_type) p(ima_); + for_all (p) + level_roots[p] = is_level_root(p); + return level_roots; + } + /// \} + + + protected: + // FIXME: Improve to handle other neighborhoods than 4-c. + void scan_line() + { + // Build the max-tree of each line separately. + for (coord i = 0; i < ima_.nrows(); ++i) + build_tree_of_line(i); + // Then merge all max-trees, line per line. + for (coord j = 0; j < ima_.ncols(); ++j) + for (coord i = 0; i < ima_.nrows() - 1; ++i) + merge(point(i, j), point(i + 1, j)); + } + + void build_tree_of_line(coord row) + { + // Start at the second pixel (the first pixel has no left + // neighbor. + for (coord j = 1; j < ima_.ncols(); ++j) + { + point left = find_level_root(point(row, j - 1)); + point this_one = point(row, j); + insert(this_one, left); + } + } + + /// Insert \a p in a tree of which \a n is a neighbor of \a p. + void insert(const point& p, const point& n) + { + point r = find_ancestor(n, ima_[p]); + if (ima_[r] <= ima_[p]) + { + parent_[p] = r; + if (ima_[r] == ima_[p]) + // Update the number of level roots. + --n_level_roots_cpt_; + } + else + { + if (not is_top(r)) + parent_[p] = parent_[r]; + parent_[r] = p; + } + } + + /// \brief Front-end to \a merge_. + /// \note Theo calls this method ``update'. + void merge(const point& p, const point& q) + { + // The \a merge_ routine assumes that P has a value greater + // or equal to Q; swap them if needed. + if (ima_[p] >= ima_[q]) + merge_(p, q); + else + merge_(q, p); + } + + // FIXME: Turn this recursive method into a loop! + void merge_(const point& p, const point& q) + { + precondition (p != q); + precondition (ima_[p] >= ima_[q]); + + point r = find_ancestor(p, ima_[q]); + point s = find_level_root(q); + + // Stop the recursion when R and S are equal (i.e., they are + // already merged). + if (r == s) + return; + + point t = parent_[s]; + + if (ima_[s] == ima_[r]) + { + parent_[s] = r; + // Update the number of level roots. + --n_level_roots_cpt_; + } + else + { + if (not is_top(r)) + parent_[s] = parent_[r]; + parent_[r] = s; + } + merge_(r, t); + } + + /// \note Theo calls this function ``is_root'. + bool is_top(const point& p) const + { + return parent_[p] == p; + } + + point find_top(point p) const + { + while (not is_top(p)) + p = parent_[p]; + return p; + } + + bool is_level_root(const point& p) const + { + return + is_top(p) || + (ima_[parent_[p]] != ima_[p]); + } + + /// \brief Find the level root of the component that P belongs to. + /// \note From Theo. + point find_level_root(const point& p) + { + // Is P a level root at the end the routine? + if (is_level_root(p)) + return p; + else + // Path compression. + return parent_[p] = find_level_root(parent_[p]); + } + + /// \note From Theo. + /// \note Theo calls this method ``anc''. + point find_ancestor(point p, const value& level) + { + while (not is_top(p) and ima_[parent_[p]] >= level) + p = find_level_root(parent_[p]); + return p; + } + + protected: + /// \note Theo calls this image ``f''. + I ima_; + /// \note Theo calls this image ``par''. + parent_type parent_; + // Counter of level roots (method 1). + unsigned n_level_roots_cpt_; + + }; + + } // end of namespace oln::lrde::ufmt + + } // end of namespace oln::lrde + +} // end of namespace oln + +#endif // ! OLENA_LRDE_UFMT_FIORIO_3_HH --- 10.255/oln.prj +++ 10.256/oln.prj @@ -1,13 +1,27 @@ ;; -*- Prcs -*- (Created-By-Prcs-Version 1 3 3) (Project-Description "Olena") -(Project-Version oln 10 255) -(Parent-Version oln 10 254) -(Version-Log "Fix ChangeLog and add entries for basic_najman in Makefiles(.am). +(Project-Version oln 10 256) +(Parent-Version oln 10 251) +(Version-Log "2006-08-29 Roland Levillain <roland@lrde.epita.fr> + + Add a third version of the computation of a the max-tree based on + Fiorio's and Gustedt's labelling algorithm. + + * oln/lrde/ufmt/fiorio-3.hh: New file. + * oln/lrde/ufmt/bin/fiorio.cc: Handle fiorio-3.hh. + Add copyright notice. + * oln/lrde/ufmt/bin/Makefile.am (AM_CXXFLAGS): Add -DNDEBUG. + (check_PROGRAMS): Add fiorio-3. + (fiorio_3_SOURCES, fiorio_3_CPPFLAGS): New. + * oln/lrde/ufmt/Makefile.am (noinst_HEADERS): Add fiorio-3.hh. + * oln/lrde/ufmt/fiorio-1.hh, oln/lrde/ufmt/fiorio-2.hh: Typo in + comment. + * oln/lrde/ufmt/README: Update. ") (New-Version-Log "") -(Checkin-Time "Mon, 28 Aug 2006 18:31:56 +0200") -(Checkin-Login berger_c) +(Checkin-Time "Tue, 29 Aug 2006 14:48:46 +0200") +(Checkin-Login levill_r) ;; diff-ignore tests/data/.*pbm$ ;; diff-ignore .*\.pbm$ ;; diff-ignore .*\.pgm$ @@ -36,6 +50,7 @@ "stamp-h\\([0-9]\\)\\?$" "CVS/" ".cvsignore$" + "^_build" "obsolete/" "/obsolete/" "autom4te.cache" @@ -67,11 +82,15 @@ "^\\(.*/\\)\\?aclocal.m4$" "/configure$" "^configure$" + "^config\\.site$" "utilities/morpho/morpho-rules.make$" "doc/ref/filelists.make$" "config.h\\(in\\)\\?$" "doc/ref/ref-level.tex" "doc/ref/ref-morpho.tex" + "^doc/ref/exdoc\\.mk$" + "^doc/ref/doxygen\\.config$" + "^doc/ref/out/exdoc\\.config$" "utilities/.*\\.1$" "^attic/" "oln-" @@ -93,6 +112,7 @@ "olena/img/lena16b.ppgm" "olena/img/lena16b.pgm" "^tools/swilena/src/.*\\.i" + "^tools/swilena/doc/swilena\\.info$" "olena/img/lena1d.ppbm" "olena/img/lena1d128.pgm" "olena/img/lena1d.pppm" @@ -106,16 +126,10 @@ "olena/img/lena1d16b.ppbm" "\\.xvpics/" "old/" - "^config/config\\.sub$" - "^doc/ref/exdoc\\.mk$" - "^doc/ref/out/exdoc\\.config$" - "^config/config\\.guess$" - "^doc/ref/doxygen\\.config$" - "^config/ltmain\\.sh$" "^libtool$" - "^_build" - "^tools/swilena/doc/swilena\\.info$" - "^config\\.site$")) + "^config/ltmain\\.sh$" + "^config/config\\.guess$" + "^config/config\\.sub$")) (Project-Keywords) (Files @@ -123,7 +137,7 @@ (doc/ChangeLog (oln/o/31_ChangeLog 1.38.1.7.1.5.1.14.1.17 600)) (integre/ChangeLog (oln/q/35_ChangeLog 1.12.1.2.1.51 600)) (metalic/ChangeLog (oln/q/30_ChangeLog 1.3.1.44 600)) - (olena/ChangeLog (oln/o/30_ChangeLog 1.27.1.36.1.3.1.11.1.5.1.64.1.47.1.93.1.27.2.17 600)) + (olena/ChangeLog (oln/o/30_ChangeLog 1.27.1.36.1.3.1.11.1.5.1.64.1.47.1.93.1.27.2.18 600)) (tools/ChangeLog (oln/o/32_ChangeLog 1.10.1.17 600)) (tools/swilena/ChangeLog (oln/n/37_ChangeLog 1.7.1.48 600)) @@ -1559,7 +1573,7 @@ - (olena/oln/lrde/ufmt/README (oln/x/22_README 1.5 644)) + (olena/oln/lrde/ufmt/README (oln/x/22_README 1.6 644)) ;; Files deleted by depopulate at Fri, 04 Aug 2006 18:41:16 +0200, ;; from version 10.245(w), by theo: @@ -1571,17 +1585,29 @@ ; (olena/oln/lrde/ufmt/bin/exe/basic_salembier () :no-keywords) ; (olena/oln/lrde/ufmt/bin/exe/basic_maxtree () :no-keywords) +;; Files deleted by depopulate at Thu, 17 Aug 2006 10:46:05 +0200, +;; from version 10.246(w), by levill_r: + + ; (libtool ()) + ; (config/ltmain.sh ()) + ; (config/config.sub ()) + ; (config/config.guess ()) + ; (doc/ref/exdoc.mk ()) + ; (doc/ref/doxygen.config ()) + ; (doc/ref/out/exdoc.config ()) + +;; Files added by populate at Fri, 25 Aug 2006 17:30:22 +0200, +;; to version 10.248(w), by levill_r: (TODO (oln/x/23_TODO 1.1 644)) (olena/TODO (oln/x/24_TODO 1.1 644)) (olena/oln/lrde/Makefile.am (oln/x/25_Makefile.a 1.1 644)) - (olena/oln/lrde/ufmt/Makefile.am (oln/x/26_Makefile.a 1.2 644)) - (olena/oln/lrde/ufmt/fiorio-1.hh (oln/x/27_fiorio-1.h 1.2 644)) - (olena/oln/lrde/ufmt/fiorio-2.hh (oln/x/28_fiorio-2.h 1.2 644)) - (olena/oln/lrde/ufmt/bin/Makefile.am (oln/x/29_Makefile.a 1.2 644)) - (olena/oln/lrde/ufmt/bin/fiorio.cc (oln/x/30_fiorio.cc 1.2 644)) -;; Files added by populate at Mon, 28 Aug 2006 10:51:36 +0200, -;; to version 10.249(w), by theo: + (olena/oln/lrde/ufmt/Makefile.am (oln/x/26_Makefile.a 1.3 644)) + (olena/oln/lrde/ufmt/fiorio-1.hh (oln/x/27_fiorio-1.h 1.3 644)) + (olena/oln/lrde/ufmt/fiorio-2.hh (oln/x/28_fiorio-2.h 1.3 644)) + (olena/oln/lrde/ufmt/bin/Makefile.am (oln/x/29_Makefile.a 1.3 644)) + (olena/oln/lrde/ufmt/bin/fiorio.cc (oln/x/30_fiorio.cc 1.3 644)) + (olena/oln/lrde/ufmt/hpx_maxtree.hh (oln/x/31_hpx_maxtre 1.1 644)) (olena/oln/lrde/ufmt/attributes.hh (oln/x/32_attributes 1.1 644)) @@ -1590,38 +1616,29 @@ (olena/oln/lrde/ufmt/bin/hdx_maxtree.cc (oln/x/35_hdx_maxtre 1.1 644)) (olena/oln/lrde/ufmt/bin/gen_worst_salembier.cc (oln/x/36_gen_worst_ 1.1 644)) (olena/oln/lrde/ufmt/bin/hpx_maxtree.cc (oln/x/37_hpx_maxtre 1.1 644)) - -;; Files added by populate at Mon, 28 Aug 2006 14:40:45 +0200, -;; to version 10.252(w), by theo: - (olena/oln/lrde/ufmt/bin/sp_maxtree.cc (oln/x/38_sp_maxtree 1.1 644)) - -;; Files added by populate at Mon, 28 Aug 2006 14:40:49 +0200, -;; to version 10.252(w), by theo: - (olena/oln/lrde/ufmt/bin/spx_maxtree.cc (oln/x/39_spx_maxtre 1.1 644)) - -;; Files added by populate at Mon, 28 Aug 2006 14:40:54 +0200, -;; to version 10.252(w), by theo: - (olena/oln/lrde/ufmt/spx_maxtree.hh (oln/x/40_spx_maxtre 1.1 644)) - -;; Files added by populate at Mon, 28 Aug 2006 14:40:58 +0200, -;; to version 10.252(w), by theo: - (olena/oln/lrde/ufmt/sp_maxtree.hh (oln/x/41_sp_maxtree 1.1 644)) - -;; Files added by populate at Mon, 28 Aug 2006 18:08:07 +0200, -;; to version 10.253(w), by berger_c: - (olena/oln/lrde/ufmt/basic_najman.hh (oln/x/42_basic_najm 1.1 644)) + (olena/oln/lrde/ufmt/bin/basic_najman.cc (oln/x/43_basic_najm 1.1 644)) -;; Files added by populate at Mon, 28 Aug 2006 18:08:14 +0200, -;; to version 10.253(w), by berger_c: +;; Files added by populate at Tue, 29 Aug 2006 11:05:19 +0200, +;; to version 10.251(w), by levill_r: - (olena/oln/lrde/ufmt/bin/basic_najman.cc (oln/x/43_basic_najm 1.1 644)) + (olena/oln/lrde/ufmt/fiorio-3.hh (oln/x/44_fiorio-3.h 1.1 644)) ) (Merge-Parents - (10.254 complete) + (10.255 complete + (olena/ChangeLog olena/ChangeLog olena/ChangeLog r) (olena/oln/lrde/ufmt/utils.hh olena/oln/lrde/ufmt/utils.hh olena/oln/lrde/ufmt/utils.hh r) + (olena/oln/lrde/ufmt/rpc_maxtree.hh olena/oln/lrde/ufmt/rpc_maxtree.hh olena/oln/lrde/ufmt/rpc_maxtree.hh r) (olena/oln/lrde/ufmt/hpc_maxtree.hh olena/oln/lrde/ufmt/hpc_maxtree.hh olena/oln/lrde/ufmt/hpc_maxtree.hh r) + (olena/oln/lrde/ufmt/README olena/oln/lrde/ufmt/README olena/oln/lrde/ufmt/README m) (olena/oln/lrde/ufmt/Makefile.am olena/oln/lrde/ufmt/Makefile.am olena/oln/lrde/ufmt/Makefile.am m) + (olena/oln/lrde/ufmt/bin/Makefile.am olena/oln/lrde/ufmt/bin/Makefile.am olena/oln/lrde/ufmt/bin/Makefile.am m) (() () olena/oln/lrde/ufmt/hpx_maxtree.hh a) + (() () olena/oln/lrde/ufmt/attributes.hh a) (() () olena/oln/lrde/ufmt/hdx_maxtree.hh a) + (() () olena/oln/lrde/ufmt/attributes_bis.hh a) (() () olena/oln/lrde/ufmt/bin/hdx_maxtree.cc a) + (() () olena/oln/lrde/ufmt/bin/gen_worst_salembier.cc a) (() () olena/oln/lrde/ufmt/bin/hpx_maxtree.cc a) + (() () olena/oln/lrde/ufmt/bin/sp_maxtree.cc a) (() () olena/oln/lrde/ufmt/bin/spx_maxtree.cc a) + (() () olena/oln/lrde/ufmt/spx_maxtree.hh a) (() () olena/oln/lrde/ufmt/sp_maxtree.hh a) + (() () olena/oln/lrde/ufmt/basic_najman.hh a) (() () olena/oln/lrde/ufmt/bin/basic_najman.cc a)) ) (New-Merge-Parents)
participants (1)
-
Roland Levillain