Results 1  10
of
25
The C++ Programming Language
, 1995
"... This overview of C++ presents the key design, programming, and languagetechnical concepts using examples to give the reader a feel for the language. C++ is a generalpurpose programming language with a bias towards systems programming that supports efficient lowlevel computation, data abstraction, ..."
Abstract

Cited by 1492 (15 self)
 Add to MetaCart
This overview of C++ presents the key design, programming, and languagetechnical concepts using examples to give the reader a feel for the language. C++ is a generalpurpose programming language with a bias towards systems programming that supports efficient lowlevel computation, data abstraction, objectoriented programming, and generic programming. 1
On the design of CGAL a computational geometry algorithms library
 Softw. – Pract. Exp
, 1998
"... CGAL is a Computational Geometry Algorithms Library written in C++, which is being developed by research groups in Europe and Israel. The goal is to make the large body of geometric algorithms developed in the field of computational geometry available for industrial application. We discuss the major ..."
Abstract

Cited by 90 (15 self)
 Add to MetaCart
CGAL is a Computational Geometry Algorithms Library written in C++, which is being developed by research groups in Europe and Israel. The goal is to make the large body of geometric algorithms developed in the field of computational geometry available for industrial application. We discuss the major design goals for CGAL, which are correctness, flexibility, easeofuse, efficiency, and robustness, and present our approach to reach these goals. Generic programming using templates in C++ plays a central role in the architecture of CGAL. We give a short introduction to generic programming in C++, compare it to the objectoriented programming paradigm, and present examples where both paradigms are used effectively in CGAL. Moreover, we give an overview of the current structure of the CGALlibrary and consider software engineering aspects in the CGALproject. Copyright c ○ 1999 John Wiley & Sons, Ltd. KEY WORDS: computational geometry; software library; C++; generic programming;
An adaptable and extensible geometry kernel
 In Proc. Workshop on Algorithm Engineering
, 2001
"... ii ..."
ConceptControlled Polymorphism
 In Frank Pfennig and Yannis Smaragdakis, editors, Generative Programming and Component Engineering, volume 2830 of LNCS
, 2003
"... Concepts  sets of abstractions related by common requirements  have a central role in generic programming. This paper proposes a general framework for using concepts to control polymorphism in different ways. First, concepts can be used to constrain parametric polymorphism, as exemplified by ..."
Abstract

Cited by 13 (5 self)
 Add to MetaCart
Concepts  sets of abstractions related by common requirements  have a central role in generic programming. This paper proposes a general framework for using concepts to control polymorphism in different ways. First, concepts can be used to constrain parametric polymorphism, as exemplified by type classes in Haskell. Second, concepts can be used to provide finegrained control of function and operator overloading. Finally, generic functions can be overloaded (specialized) based on concepts, rather than simply on types. We describe aC ++ implementation of a new mechanism, which we call enable if , and its role in conceptcontrolled polymorphism.
A Type System for Computer Algebra
 Journal of Symbolic Computation
, 1994
"... ing RationalFun from Rational yields a higher order type operator that, given a specification, forms the type of objects that satisfy it. Philip Santas DeclareDomain := (Fun: Type?Category) +? (((Rep: Type) +? with(Rep,Fun(Rep))) SomeRep) The type of Rational objects can now be expressed by applyi ..."
Abstract

Cited by 12 (0 self)
 Add to MetaCart
ing RationalFun from Rational yields a higher order type operator that, given a specification, forms the type of objects that satisfy it. Philip Santas DeclareDomain := (Fun: Type?Category) +? (((Rep: Type) +? with(Rep,Fun(Rep))) SomeRep) The type of Rational objects can now be expressed by applying the DeclareDomain constructor to the specification RationalFun: Rational := DeclareDomain(RationalFun) or the shortcut: Rational : RationalFun In order to give proper treatment to the interaction between representations and subtyping, it is necessary to separate Rational into the specifications of its functions and the operators which capture the common structure of all object types. This separation is also important for the semantical construction of categories and the definition of the internal structures of the types. 2.1. Multiple Representations Rationals are created using the function box, which captures the semantics of dynamic objects in object oriented programming.A rational...
A static C++ objectoriented programming (SCOOP) paradigm mixing benefits of traditional OOP and generic programming
 IN PROCEEDINGS OF THE WORKSHOP ON MULTIPLE PARADIGM WITH OO LANGUAGES (MPOOL
, 2003
"... Objectoriented and generic programming are both supported in C++. The former provides high expressiveness whereas the latter leads to more efficient programs by avoiding dynamic typing. This paper presents SCOOP, a new paradigm which enables both classical objectoriented design and high performanc ..."
Abstract

Cited by 8 (1 self)
 Add to MetaCart
Objectoriented and generic programming are both supported in C++. The former provides high expressiveness whereas the latter leads to more efficient programs by avoiding dynamic typing. This paper presents SCOOP, a new paradigm which enables both classical objectoriented design and high performance in C++ by mixing objectoriented programming and generic programming. We show how classical and advanced objectoriented features such as virtual methods, multiple inheritance, argument covariance, virtual types and multimethods can be implemented in a fully statically typed model, hence without runtime overhead.
Towards a unified framework for scientific computing
 Domain Decomposition Methods in Science and Engineering, volume 40 of LNCSE
, 2005
"... Summary. Most finite element, or finite volume software is built around a fixed mesh data structure. Therefore, each software package can only be used efficiently for a relatively narrow class of applications. For example, implementations supporting unstructured meshes allow the approximation of com ..."
Abstract

Cited by 5 (3 self)
 Add to MetaCart
Summary. Most finite element, or finite volume software is built around a fixed mesh data structure. Therefore, each software package can only be used efficiently for a relatively narrow class of applications. For example, implementations supporting unstructured meshes allow the approximation of complex geometries but are in general much slower and require more memory than implementations using structured meshes. In this paper we show how a generic mesh interface can be defined such that one algorithm, e. g. a discretization scheme, works on different mesh implementations. For a cell centered finite volume scheme we show that the same algorithm runs thirty times faster on a structured mesh implementation than on an unstructured mesh and is only four times slower than a nongeneric version for a structured mesh. The generic mesh interface is realized within the Distributed Unified Numerics Environment DUNE. 1
How to express C++ concepts in Fortran90
 Institute of Plasma and Fusion Research, UCLA Dept. of Physics and Astronomy, Los Angeles, CA
, 1997
"... This paper summarizes techniques for emulating in Fortran90 the most important objectoriented concepts of C++: classes (including abstract data types, encapsulation and function overloading), inheritance and dynamic dispatching. 1 I. ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
This paper summarizes techniques for emulating in Fortran90 the most important objectoriented concepts of C++: classes (including abstract data types, encapsulation and function overloading), inheritance and dynamic dispatching. 1 I.
Design Principles of Reusable Software Components for the Numerical Solution of PDE Problems
, 1998
"... this paper. A more detailed elaboration of these topics will be given in [4] ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
this paper. A more detailed elaboration of these topics will be given in [4]
Generic Components for Grid Data Structures and Algorithms with C++
 In First Workshop on C++ Template Programming
, 2000
"... Grids are fundamental data structures for representing geometric structures or their subdivisions. We propose a strategy for decoupling algorithms working on grids from the details of grid representations, using a generic programming approach in C++. Functionality of grid data structures is captured ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
Grids are fundamental data structures for representing geometric structures or their subdivisions. We propose a strategy for decoupling algorithms working on grids from the details of grid representations, using a generic programming approach in C++. Functionality of grid data structures is captured by a small set of primitives, divided into combinatorial and geometric ones. Special attention is paid to the generic implementation of grid functions, which correspond to the notion of mappings from grid elements (e. g. vertices) to entities of a given type. Experiments indicate that the overhead of the generic formulation is low and can be completely eliminated in some cases. 1 Introduction Representation of spatial or planar geometric structures is central to many application domains, such as computational geometry, geometric modeling, geographical information systems (GIS), and computational simulation by numerical solution of partial di#erential equations (PDEs). Spatial structures a...