Results 1 
6 of
6
Design Patterns for Generic Programming in C++
 In Proceedings of the 6th USENIX Conference on ObjectOriented Technologies and Systems (COOTS’01
, 2001
"... Generic programming is a paradigm whose wide adoption by the C community is quite recent. In this scheme most classes and procedures are parameterized, leading to the construction of general and efficient software components. In this paper, we show how some design patterns from Gamma et al. can be a ..."
Abstract

Cited by 13 (2 self)
 Add to MetaCart
(Show Context)
Generic programming is a paradigm whose wide adoption by the C community is quite recent. In this scheme most classes and procedures are parameterized, leading to the construction of general and efficient software components. In this paper, we show how some design patterns from Gamma et al. can be adapted to this paradigm. Although these patterns rely highly on dynamic binding, we show that, by intensive use of parametric polymorphism, the method calls in these patterns can be resolved at compiletime. In intensive computations, the generic patterns bring a significant speedup compared to their classical peers.
Generic Implementation Of Morphological Image Operators
 In Mathematical Morphology, Proc. of ISMM
, 2002
"... Several libraries dedicated to mathematical morphology exist. But they lack genericity, that is to say, the ability for operators to accept input of di#erent natures 2D binary images, graphs enclosing floating values, etc. We describe solutions which are integrated in Olena, a library providing m ..."
Abstract

Cited by 10 (4 self)
 Add to MetaCart
(Show Context)
Several libraries dedicated to mathematical morphology exist. But they lack genericity, that is to say, the ability for operators to accept input of di#erent natures 2D binary images, graphs enclosing floating values, etc. We describe solutions which are integrated in Olena, a library providing morphological operators. We demonstrate with some examples that translating mathematical formulas and algorithms into source code is made easy and safe with Olena. Moreover, experimental results show that no extra costs at runtime are induced.
Applying generic programming to image processing
 In the Proceedings of the IASTED International Conference on Applied Informatics – Symposium Advances in Computer Applications
, 2001
"... This paper presents the evolution of algorithms implementation in image processing libraries and discusses the limits of these implementations in terms of reusability. In particular, we show that in C++, an algorithm can have a general implementation; said differently, an implementation can be gen ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
(Show Context)
This paper presents the evolution of algorithms implementation in image processing libraries and discusses the limits of these implementations in terms of reusability. In particular, we show that in C++, an algorithm can have a general implementation; said differently, an implementation can be generic, i.e., independent of both the input aggregate type and the type of the data contained in the input aggregate. A total reusability of algorithms can therefore be obtained; moreover, a generic implementation is more natural and does not introduce a meaningful additional cost in execution time as compared to an implementation dedicated to a particular input type.
Problem
"... How to improve the performance of design patterns when they are involved in intensive computing? Context Implementation of algorithms that have to be both efficient and reusable with a language that features genericity, i.e., parameterization. We give here C++ snippets but this pattern also applies ..."
Abstract
 Add to MetaCart
(Show Context)
How to improve the performance of design patterns when they are involved in intensive computing? Context Implementation of algorithms that have to be both efficient and reusable with a language that features genericity, i.e., parameterization. We give here C++ snippets but this pattern also applies with other languages such as Ada or Eiffel. Example Let us consider a very simple algorithm: the addition of a constant to each element of an aggregate. We aim at having a single implementation of the algorithm, which means that this procedure should accept various aggregate types and data types (the types of the aggregate elements). A general implementation is possible thanks to the ITERATOR pattern [6], parameterized by the data type: template< typename T> void add ( Aggregate<T> & input, T value) Iterator<T> & iter = input.CreateIterator();
Olena: a ComponentBased Platform for Image Processing, mixing Generic, Generative and OO Programming
"... This paper presents Olena, a toolkit for programming and designing image processing chains in which each processing is a component. But since there exist many image types (different structures such as 2D images, 3D images or graphs, as well as different value types) the platform has been designed wi ..."
Abstract
 Add to MetaCart
(Show Context)
This paper presents Olena, a toolkit for programming and designing image processing chains in which each processing is a component. But since there exist many image types (different structures such as 2D images, 3D images or graphs, as well as different value types) the platform has been designed with genericity and reusability in mind: