
This package gives a complete version of the code that illustrates
the article :

Thierry Graud, Yoann Fabre, and Alexandre Duret-Lutz. Applying
Generic Programming to Image Processing. Submitted to the Symposium on
Advances in Computer Applications of the IASTED International
Conference on Applied Informatics (AI'2001), Innsbruck, Austria,
February 2001.


This package contains:
----------------------


./README                        this file


./Makefile                      a global makefile
./options.cf                    compilation options


./c_classic                     sub-package for classic C approach
                                (array version) -- article section 2
./c_classic/main.c
./c_classic/Makefile


./c_classic_offsets             sub-package for classic C approach
                                (buffer version)
./c_classic_offsets/main.c
./c_classic_offsets/Makefile


./cpp_classic                   sub-package for classic C++ approach
                                (array version) -- article section 3.2
./cpp_classic/aggregate.hh
./cpp_classic/image2d.hh
./cpp_classic/image3d.hh
./cpp_classic/main.cc
./cpp_classic/iterator.hh
./cpp_classic/Makefile


./cpp_generic                   sub-package for a generic programming-based
                                approach (array version) -- article
                                section 4.1
./cpp_generic/image2d.hh
./cpp_generic/image3d.hh
./cpp_generic/main.cc
./cpp_generic/Makefile


./cpp_generic_offsets           sub-package for a generic programming-based
                                approach (buffer version)
./cpp_generic_offsets/Makefile
./cpp_generic_offsets/image2d.hh
./cpp_generic_offsets/image3d.hh
./cpp_generic_offsets/main.cc



How to compile:
---------------

In the top directory, change the compilation settings in the file
options.cf then execute 'make all' to compile and 'make run' to
execute the different code samples.



Nota bene:
----------

* In the array version, data are accessed by natural indices (for
  instance, i and j in 2D images), whereas, in the buffer version,
  data are accessed by linear offsets (for instance, k = i * ncols + j
  in 2D images). The latter version is faster than the former one.

* To be able to compile, the generic programming code sample, an
  almost recent C++ compiler is required.
