1. 25 Sep, 2006 1 commit
    • Thierry Geraud's avatar
      2006-09-25 Thierry GERAUD <theo@tegucigalpa.lrde.epita.fr> · a5e25b0e
      Thierry Geraud authored
      	Update image_extension, add_neighborhood, and some related
      	* oln/automatic/image.hh: New.
      	* oln/core/abstract/image.hh: Include oln/automatic/image.hh.
      	Inherit from automatic::impl.
      	(has): Add FIXME.
      	* oln/core/abstract/image_having_neighborhood.hh (neighborhood):
      	Change so that it relies on topo().  impl_neighborhood() is now
      	obsolete in image classes.
      	* oln/core/2d/aliases.hh (topo2d, fwd_piter2d, bkd_piter2d):
      	Update aliases.
      	* oln/basics2d.hh: Update.
      	* oln/core/2d/image2d.hh (topo2d, fwd_piter2d, bkd_piter2d):
      	Update and make them explicit.
      	(ctor): Add border argument with default.
      	(impl_op_read): Change fake code.
      	* oln/core/2d/neighb2d.hh: Cosmetics.
      	* oln/core/gen/bbox.hh: Include files for piter types.
      	* oln/morpher/internal/image_extension.hh (morpher_type): New.
      	This class thus factors this definition.
      	(impl_topo, impl_op_read, impl_has): Remove.  These methods
      	are expected to be automatically fetch from top implementation
      	(self_t, image_t, topo_t, value_t, point_t): Remove cause obsolete.
      	* oln/morpher/add_neighborhood.hh (add_neighborhood): Add second
      	parameter Neighb.
      	(include, set_super_type): Update.
      	(neighborhood_type): Change.
      	(ctor): Update.
      	(impl_neighborhood): Remove.
      	(impl_topo): New.
      	(nbh_): Remove.
      	(topo_): New.
      	* tests/add_neighborhood_morpher.cc: Update.
      	* tests/morphers.cc: Update.
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@565 4aad255d-cdde-0310-9447-f3009e2ae8c0
  2. 20 Sep, 2006 1 commit
    • Roland Levillain's avatar
      Fix the identity and neighborhood addition morphers. · 507b4bda
      Roland Levillain authored
      	* oln/automatic/image_having_neighborhood.hh: Add a forward
      	declaration of oln::abstract::image_having_neighborhood.
      	(impl<abstract::image_having_neighborhood, morpher::tag::identity, E>):
      	Inherit from abstract::image<E>.
      	(impl_neighborhood): Make it const.
      	Get the exact type before calling delegate().
      	* oln/core/abstract/image_having_neighborhood.hh
      	(oln/automatic/image_having_neighborhood.hh): Include it.
      	(oln::abstract::image_having_neighborhood::neighborhood): New.
      	(case_<image_hierarchy_wrt_neighborhood, E, 1>): Only inherit from
      	oln::abstract::image_having_neighborhood if neighborhood is
      	different from mlc::not_found.
      	(oln::ext_vtype<image_entry<E>, typedef_::neighborhood_type>):
      	* oln/core/image_entry.hh
      	(single_vtype<image_entry<E>, typedef_::morpher_type>): Remove.
      	Instead, defined the `morpher' virtual type...
      	(vtypes< image_entry<E> >): ...here.
      	* oln/morpher/internal/image_extension.hh (image_extension):
      	Fix the inheritance: derive from `oln::image_entry<Exact>' instead
      	of `oln::image_entry< image_extension<Image, Exact> >'.
      	* oln/morpher/identity.hh (oln/morpher/tags.hh): Include it.
      	(oln::single_vtype<morpher::identity<Image>, typedef_::morpher_type>):
      	Instead, defined the `morpher' virtual type...
      	(oln::vtypes< morpher::identity<Image> >): ...here
      	(oln::morpher::tag::identity): Move...
      	* oln/morpher/tags.hh: ...here (new file).
      	* oln/morpher/add_neighborhood.hh (oln/morpher/tags.hh)
      	(oln/core/2d/aliases.hh): Include them.
      	 typedef_::morpher_type>): Remove.
      	Instead, defined the `morpher' virtual type...
      	(oln::vtypes< morpher::add_neighborhood<Image> >): ...here
      	(oln::morpher::add_neighborhood::neighborhood_t): Fix the virtual
      	type retrieval: get it from `self_t', not from `Image'.
      	(ext_vtype<morpher::add_neighborhood< oln::image2d<T> >,
      	 typedef_::neighborhood_type>): Remove.
      	Remove corresponding forward declarations as well.
      	(oln::morpher::tag::add_neighborhood): Move...
      	* oln/morpher/tags.hh: ...here.
      	* tests/identity_morpher.cc, tests/morphers.cc: Fix the test.
      	Add more static assertions.
      	* oln/Makefile.am (nobase_oln_HEADERS): Add core/2d/neighb2d.hh,
      	core/abstract/neighborhood.hh, core/gen/neighb.hh and
      	* oln/core/2d/image2d.hh: Fix copyright header.
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@555 4aad255d-cdde-0310-9447-f3009e2ae8c0
  3. 07 Sep, 2006 1 commit
    • Thierry Geraud's avatar
      2006-09-07 Thierry GERAUD <theo@tegucigalpa.lrde.epita.fr> · dd2ae6da
      Thierry Geraud authored
      	Add image2d and fix topo-related classes.
      	* olena/tests/npoints.cc: New.
      	* olena/tests/Makefile.am: Update.
      	* olena/oln/core/image_entry.hh: New.
      	* olena/oln/core/2d/image2d.hh: New.
      	* olena/oln/basics2d.hh: Force instantiation and include
      	* olena/oln/core/typedefs.hh: Include mlc/assert.hh and
      	(piter_type): Uncomment.
      	(rvalue_type): New.
      	(psite_type): New.
      	(concrete_type): Uncomment.
      	(size_type): Add comment.
      	(topo_type): New.
      	* olena/oln/core/abstract/topo.hh (bbox): Remove this method which
      	is redundant with the one of topo_with_bbox.
      	* olena/oln/core/abstract/topo_with_bbox.hh (bbox): Fix typo.
      	* olena/oln/core/abstract/entry.hh (next_entry_node): New
      	specialization to handle the specific and rare case of having no
      	* olena/oln/core/abstract/topo_ra.hh: Fix cut n paste errors.
      	* olena/oln/core/abstract/pset.hh (piter): New vtype decl.
      	* olena/oln/core/gen/fwd_piter.hh (fwd_piter_): Add commented
      	forthcoming ctors.
      	* olena/oln/core/gen/bbox_topo.hh: Cosmetics.
      	* olena/oln/core/pset_entry.hh (piter_type): New.
      	* olena/oln/core/abstract/image.hh: Update.
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@527 4aad255d-cdde-0310-9447-f3009e2ae8c0
  4. 04 Sep, 2006 1 commit
    • Roland Levillain's avatar
      Adjust virtual types class names. · 8d0886b4
      Roland Levillain authored
      	* oln/core/abstract/image.hh,
      	* oln/core/abstract/image_dimension.hh,
      	* oln/core/abstract/image_typeness.hh,
      	* oln/core/abstract/grid.hh, oln/core/1d/grid1d.hh,
      	* oln/core/2d/grid2d.hh, oln/core/3d/grid3d.hh,
      	* tests/image_entry.cc (vtypes): Rename as...
      	(vtypes_in_category): ...this.
      	* oln/core/abstract/image.hh, oln/core/abstract/grid.hh,
      	* tests/image_entry.cc (packed_vtypes): Rename as...
      	(packed_vtypes_in_category): ...this.
      	* oln/core/abstract/point.hh, oln/core/abstract/dpoint.hh,
      	* oln/core/abstract/piter.hh, oln/core/abstract/pset.hh,
      	* oln/core/gen/bbox.hh,
      	* oln/core/gen/bkd_piter.hh, oln/core/gen/fwd_piter.hh,
      	* oln/core/2d/point2d.hh, oln/core/2d/dpoint2d.hh (vtypes_):
      	Rename as...
      	* oln/core/abstract/pset.hh, oln/core/abstract/bbox.hh
      	(ext_vtype_): Rename as...
      	(ext_vtype): ...this.
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@521 4aad255d-cdde-0310-9447-f3009e2ae8c0
  5. 31 Aug, 2006 1 commit
    • Thierry Geraud's avatar
      2006-08-31 Thierry GERAUD <theo@tegucigalpa.lrde.epita.fr> · 65f043b1
      Thierry Geraud authored
      	Add dpoint, oln traits, and operators on point/dpoint.
      	* oln/core/type.hh: New.
      	* oln/core/traits_id.hh: New.
      	* oln/core/abstract/dpoint.hh: New.
      	* oln/core/abstract/dpoint_nd.hh: New.
      	* oln/core/traits.hh: New.
      	* oln/core/2d/dpoint2d.hh: New.
      	* oln/core/abstract/point.hh (point): Add inheritance to
      	(operators): New.
      	* oln/core/abstract/point_nd.hh (point_): New meta-function.
      	(impl_eq): Rename as...
      	(impl_equal): ...this.
      	(coord): Rename as...
      	(coord_t): ...this.
      	(impl_less): New.
      	(impl_plus_equal, impl_plus): New.
      	(impl_minus_equal, impl_minus, impl_minus): New.
      	(vec): New.
      	(case_): New specializations.
      	(point_nd): New ctor.
      	* oln/core/2d/point2d.hh: Update forward declarations.
      	(point_, dpoint_): New specializations.
      	(point2d): New ctor.
      	(coord): Rename as...
      	(coord_t): ...this.
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@511 4aad255d-cdde-0310-9447-f3009e2ae8c0
  6. 30 Aug, 2006 1 commit
  7. 05 Jun, 2006 1 commit
  8. 25 Apr, 2006 1 commit
    • Roland Levillain's avatar
      Add grids. · ec13303d
      Roland Levillain authored
      	* oln/core/abstract/grid.hh,
      	* oln/core/1d/grid1d.hh,
      	* oln/core/2d/grid2d.hh,
      	* oln/core/3d/grid3d.hh: New files (imported from Olena proto-1.0,
      	and modified).
      	* oln/core/typedefs.hh (grid_type, point_type, dpoint_type)
      	(size_type, dimvalue_type, coord_type): Enable these types.
      	* oln/core/abstract/image.hh (grid_type): Don't mlc-declare this
      	typedef, since oln/core/typedefs.hh already takes care of it.
      	(vtypes< category::image, abstract::image<I> >): Enable	grid_type.
      	(packed_vtypes): Likewise.
      	* oln/core/abstract/internal/image_impl.hh: Improve comment.
      	* tests/grid.cc: New test.
      	* tests/image_entry.cc: Update this test.
      	* oln/Makefile.am (nobase_oln_HEADERS): Add core/abstract/grid.hh,
      	core/1d/grid1d.hh, core/2d/grid2d.hh and core/3d/grid3d.hh.
      	* tests/Makefile.am (check_PROGRAMS): Add grid.
      	(grid_SOURCES): New.
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@470 4aad255d-cdde-0310-9447-f3009e2ae8c0
  9. 21 Apr, 2006 1 commit
    • Roland Levillain's avatar
      Fix copyright notices. · bab301fd
      Roland Levillain authored
      	* extended/xtd/res.hh,
      	* extended/xtd/math.hh,
      	* extended/xtd/cast.hh,
      	* extended/xtd/cfun.hh,
      	* extended/xtd/mexpr.hh,
      	* extended/xtd/math/log.hh,
      	* extended/xtd/math/floor.hh,
      	* extended/xtd/math/tan.hh,
      	* extended/xtd/math/log10.hh,
      	* extended/xtd/math/atan.hh,
      	* extended/xtd/math/cos.hh,
      	* extended/xtd/math/acos.hh,
      	* extended/xtd/math/sqrt.hh,
      	* extended/xtd/math/sin.hh,
      	* extended/xtd/math/tanh.hh,
      	* extended/xtd/math/asin.hh,
      	* extended/xtd/math/cosh.hh,
      	* extended/xtd/math/id.hh,
      	* extended/xtd/math/exp.hh,
      	* extended/xtd/math/logic.hh,
      	* extended/xtd/math/sinh.hh,
      	* extended/xtd/math/abs.hh,
      	* extended/xtd/math/pow.hh,
      	* extended/xtd/math/atan2.hh,
      	* extended/xtd/math/includes.hh,
      	* extended/xtd/math/arith.hh,
      	* extended/xtd/math/constraints.hh,
      	* extended/xtd/math/ceil.hh,
      	* extended/xtd/math/cmp.hh,
      	* extended/xtd/literal.hh,
      	* extended/xtd/args.hh,
      	* extended/xtd/mfun.hh,
      	* extended/xtd/abstract/nary_fun.hh,
      	* extended/xtd/abstract/open_nary_fun.hh,
      	* extended/xtd/abstract/plain_nary_fun.hh,
      	* extended/xtd/abstract/fun_expr.hh,
      	* extended/xtd/abstract/meta_nary_fun.hh,
      	* extended/xtd/abstract/fun.hh,
      	* extended/xtd/abstract/open_fun.hh,
      	* extended/xtd/abstract/plain_fun.hh,
      	* extended/xtd/abstract/meta_fun.hh,
      	* extended/xtd/abstract/fun_nary_expr.hh,
      	* extended/xtd/optraits.hh,
      	* extended/xtd/traits.hh,
      	* extended/xtd/builtin/traits.hh,
      	* extended/xtd/arg.hh,
      	* extended/xtd/bind.hh,
      	* extended/xtd/internal/opmacros.hh,
      	* extended/xtd/internal/mlc.hh,
      	* metalic/mlc/elt.hh,
      	* metalic/mlc/ret.hh,
      	* metalic/mlc/int.hh,
      	* metalic/mlc/pair.hh,
      	* metalic/mlc/bool.hh,
      	* metalic/mlc/flags.hh,
      	* metalic/mlc/comma.hh,
      	* metalic/mlc/logic.hh,
      	* metalic/mlc/if.hh,
      	* metalic/mlc/values.hh,
      	* metalic/mlc/typedef.hh,
      	* metalic/mlc/assert.hh,
      	* metalic/mlc/switch.hh,
      	* metalic/mlc/valist.hh,
      	* metalic/mlc/implies.hh,
      	* metalic/mlc/abstract/type.hh,
      	* metalic/mlc/abstract/bexpr.hh,
      	* metalic/mlc/abort.hh,
      	* metalic/mlc/to_string.hh,
      	* metalic/mlc/wrap.hh,
      	* metalic/mlc/is_a.hh,
      	* metalic/mlc/case.hh,
      	* metalic/mlc/value.hh,
      	* metalic/mlc/char.hh,
      	* metalic/mlc/contract.hh,
      	* metalic/mlc/uint.hh,
      	* metalic/mlc/cmp.hh,
      	* metalic/mlc/bexpr.hh,
      	* static/tests/properties.cc,
      	* static/tests/entry.cc,
      	* static/tests/any.cc: Update the FSF postal address.
      	* extended/tests/cfun.cc,
      	* extended/tests/id.cc,
      	* extended/tests/bind.cc,
      	* extended/tests/bi_traits/bool.cc,
      	* extended/tests/bi_traits/char.cc,
      	* extended/tests/bi_traits/sint.cc,
      	* extended/tests/bi_traits/uint.cc,
      	* extended/tests/bi_traits/schar.cc,
      	* extended/tests/bi_traits/slong.cc,
      	* extended/tests/bi_traits/sshort.cc,
      	* extended/tests/bi_traits/uchar.cc,
      	* extended/tests/bi_traits/ushort.cc,
      	* extended/tests/bi_traits/ulong.cc,
      	* extended/tests/bi_traits/float.cc,
      	* extended/tests/bi_traits/ldouble.cc,
      	* extended/tests/bi_traits/double.cc,
      	* extended/tests/cos.cc,
      	* extended/tests/abs.cc,
      	* extended/tests/optraits.cc,
      	* extended/tests/lit.cc,
      	* extended/tests/math.cc,
      	* extended/tests/cast.cc,
      	* metalic/tests/is_a.cc,
      	* metalic/tests/case.cc,
      	* metalic/tests/if.cc,
      	* metalic/tests/typedef.cc,
      	* metalic/tests/or.cc,
      	* metalic/tests/switch.cc,
      	* metalic/tests/gcase.cc,
      	* metalic/tests/protected.cc,
      	* metalic/tests/ret.cc,
      	* static/stc/entry.hh,
      	* static/stc/any.hh,
      	* static/stc/properties.hh: Add missing copyright notices.
      	* olena/oln/core/typedefs.hh,
      	* olena/oln/core/abstract/image.hh,
      	* olena/oln/core/abstract/image_entry.hh,
      	* olena/oln/core/abstract/macros.hh,
      	* olena/oln/core/abstract/image_dimension.hh,
      	* olena/oln/core/abstract/any.hh,
      	* olena/oln/core/abstract/internal/image_impl.hh: .
      	* olena/tests/image_entry.cc: Fix the FSF postal address.
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@465 4aad255d-cdde-0310-9447-f3009e2ae8c0
  10. 21 Mar, 2006 1 commit
    • Thierry Geraud's avatar
      Disambiguate Boolean value types and Boolean expression types. · b14a413a
      Thierry Geraud authored
      - tests/ret.cc: Update.
      - mlc/ret.hh: Fix missing include.
      The Boolean value classes are re-written and internal::value_ is
      removed; this class was too ambiguous since precise types, e.g.,
      int_<i>, are provided and it was weirdly located in the value class
      - mlc/bool.hh (bool_<true>, bool_<false>): Merge those
      specializations into the single and once for all written class
      (bool_<true>::is_true): Remove since this mark is now factored
      in the base class bexpr_is_<b>.
      (bool_<b>): Add inheritance so that a Boolean value can be
      considered as a Boolean expression type.
      (internal::value_<bool, b>): Remove this specialization since
      the class internal::value_ is also removed.
      (logic.hh): Remove inclusion.
      (mlc_bool): Move to...
      The Boolean expression types are now handled by special classes.
      Yet mlc::true_ and mlc::false_ remain expression types in addition
      of value types.
      - mlc/bexpr.hh: ...this file.  This macro only applies on Boolean
      expression types.
      (bexpr_): Remove this obsolete wrapper.
      (bexpr_is_<b>): New base class with its couple of specializations
      which act as a replacement for bool_<b> for expression types.
      (internal::bool_of_): Replace the meta-code for mlc_bool.
      Those changes induce a lot of updates described below.
      - mlc/pair.hh: Update includes.
      - mlc/logic.hh: Update.  Instead of deriving from bool_<b>
      Boolean expression types now derive from bexpr_is_<b>.
      (and_list_, or_list_): Comment to postpone updating while keeping
      code compile.
      - mlc/implies.hh: Update inheritance.
      - mlc/if.hh: Update includes and add assertion.
      - mlc/assert.hh: Update includes.
      - mlc/valist.hh: Likewise.
      - mlc/wrap.hh: Remove obsolete code.
      - mlc/is_a.hh: Update inheritance.
      (bexpr_): Replace by wrap_.
      - mlc/case.hh: Update.  Now use mlc_bool instead of ::value.
      - mlc/cmp.hh: Update inheritance.
      (eq_::ensure): Remove this obsolete feature.
      - mlc/value.hh: Move sub-classes of value to...
      - mlc/int.hh, mlc/char.hh: ...these new files.
      - mlc/values.hh: New file that includes the whole value types material.
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@429 4aad255d-cdde-0310-9447-f3009e2ae8c0
  11. 03 Mar, 2006 1 commit
  12. 02 Mar, 2006 1 commit
    • Thierry Geraud's avatar
      Add meta switch-case; disambiguate typedef_. · 55d35dcf
      Thierry Geraud authored
      	"typedef exists but its value is not_found" and "typedef is
      	not found because it does not exist".
      - tests/case.cc: New file.
      - tests/switch.cc (where_): Precise name.
      - tests/ret.cc: New file.
      - mlc/bool.hh (assert): Remove is_true to avoid cryptic error
      message such as "is_true" inaccessible.
      - mlc/flags.hh (found): New class.
      - mlc/typedef.hh (result2): New inner class to disambiguate between
      "typedef is found but its value is not_found" and "typedef is not
      (mlc_ret, mlc_decl_typedef(ret)): Move to...
      - mlc/ret.hh: ...this new file.
      - mlc/switch.hh: Change that makes this file soon obsolete.
      - mlc/case.hh: New file.
      git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@415 4aad255d-cdde-0310-9447-f3009e2ae8c0
  13. 17 Feb, 2006 2 commits