40 citations found. Retrieving documents...
Todd Veldhuizen. Using C++ template metaprograms. C++ Report, May 1995.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:

First 50 documents

Exploring Extensibility and Performance in a Generic Programming.. - Burton (2001)   (Correct)

....problem of Chapter III using the library. Chapter V contrasts the implementation of another nite element library with that of our own. Chapter VI explains the programming techniques that we employed in implementing our C library, including Generic Programming[28] and Template Metaprogramming[42]. Chapter VII introduces static data structures that minimize the cost of objectoriented modularity by transferring much of the computation involved in the software decomposition to the compiler rather than to run time execution. Chapter VIII explains our solution to the problem of obtaining ....

....without sacri cing run time 54 performance. The next section describes our solution to this problem. VI.A. 2 The Solution We can avoid run time polymorphism by using a technique called Generic Programming[28] We can achieve further performance increases by making use of Template Metaprogramming[42]. However, we will show that these two techniques are inadequate by themselves for inlining the innermost loops of a Finite Element program. In Chapter VII we will introduce our solution to this problem, a technique called static data structures. We will cover Generic Programming and Template ....

[Article contains additional citation context not shown here]

T. Veldhuizen. Using C++ template metaprograms. C++ Report, 7(4):36-43, May 1995. Reprinted in C++ Gems, ed. Stanley Lippman.


High-Level Design of Soft IPs using C++ and SystemC - Damasevicius, Stuikys (2002)   (Correct)

....C as a core language to support the extension based MPG. The role (1) is the same for which C has been devised, i.e. for describing a wide range of domain algorithms for the SW based IPs. The internal MPG (role (2) is based on the template meta programming mechanism and used, e.g. in C [24] and SystemC [25] Additionally, C has CPP pre processing directives (#include, #define, #ifdef) which allow to support at some extent the external MPG within the same design environment. As the main operations with a target program in the external MPG are those which describe manipulations ....

....all occurrences of the parameter with its value creates an instance of the template. Templates are good for declaring generic parameters, however, the programming of the conditional and repetitive statements is more difficult, and can be implemented using the template specialisation technique [24]. SystemC 2.0 fully supports the template based design [25] Templates allow adapting HW models to different system requirements by changing their parameters used for instantiation, without changing the implementation of a design. The class templates are a good choice for HW designs, since they ....

T.L. Veldhuizen, Using C++ template meta-programs, C++ Report 7(4), pp. 36-43, 1995.


Implementing a High Performance Tensor Library - Landry (2001)   (1 citation)  (Correct)

....Tensor1; template class T class Tensor1 T,2 9 T x, y; template class T class Tensor1 T ,2 mutable T x, y; template class T class Tensor1 T,3 T x, y, z; and so on. We can even make the arithmetic operators dimension agnostic with some template meta programming [9]. Then, if you re trying to follow Buckaroo Banzai across the 8th dimension, you only have to de ne the Tensor1, Tensor2, Tensor3, etc. classes for eight dimensions, and all of the arithmetic operators are ready to use. We have implemented this generalization [11] but it complicates the logic ....

Todd Veldhuizen, Using C++ template metaprograms, C++ Report, Vol. 7 No. 4 (May 1995), pp. 36-43.


Portable High-Performance Programs - Frigo (1992)   (1 citation)  (Correct)

....Another program called genfft generating Haskell FFT subroutines is part of the nofib benchmark for Haskell [122] Unlike my program, this genfft is limited to transforms of size # . The program in nofib is not documented at all, but apparently it can be traced back to [77] Veldhuizen [146] used a template metaprograms technique to generate C programs. The technique exploits the template facility of C to force the C compiler to perform computations at compile time. All these code generators are restricted to complex transforms, and the FFT algorithm is known apriori. To my ....

T. VELDHUIZEN, Using C++ template metaprograms, C++ Report, 7 (1995), pp. 36--43. Reprinted in C++ Gems, ed. Stanley Lippman.


Open PROMOL: An Experimental Language for Target.. - Stuikys.. (2001)   (Correct)

....parameters are defined, and a lower level is called the component implementation (specification body) Parameterization. Parameterization is a simple and understandable model for combining and customizing components. They are not constrained to a particular type (as, e.g. in C templates [10]) but can take string values of any length and content. The language implements two parameterization models: the conditional (the assignment of a value to a parameter depends on a condition) and the hierarchical ones (through deep nesting and the usage of external modules, which can form the ....

T. L. Veldhuizen, Using C++ template meta-programs, C++ Report 7(4), pp. 36-43, 1995.


Two- and Three-Dimensional Coding Schemes for Wavelet and.. - Alexander (2001)   (Correct)

....data would use as much of the same code as possible. To this end, a general container class, Array , was created. Array is templated on data type and dimension. The class is quite similar to the blitz class described in [55] For efficiency reasons, the methods of template meta programs [54] and expression templates [53] were introduced by Todd Veldhuizen (author of the aforementioned blitz package) The primary advantages of using Array as a container class are as follows: 1. a fairly natural syntax 2. slicing and subarrays in an dimension and direction 3. avoids copying data ....

T. Veldhuizen. Using C++ template metaprograms. C++ Report, 7(4):36--43, May 1995. Reprinted in C++ Gems, ed. Stanley Lippman.


Scenario Adapters: Efficiently Adapting Components - Fröhlich, Schröder-Preikschat (2000)   (Correct)

....advantage of these statically metaprogrammed scenario adapters is that they can easily be optimized by the compiler: segments of the metaprogram that are not used are not included in the output. A collection of SCENARIO ADAPTERS can be arranged to form a statically metaprogrammed framework [8]. Such a framework would define scenario independent relationships among abstractions, letting open holes where IM PLEMENTORS can be plugged in. 5. The EPOS System The project EPOS [3] aims at the construction of highly adaptable run time system to support parallel computing on distributed ....

Todd Veldhuizen. Using C++ Template Metaprograms. C++ Report, 7(4):36--43, 1995.


Generative Binary Components - Kamin, Callahan, Clausen (2001)   (Correct)

....different binaries: for one implementation, it might invoke a set of subroutines, as in traditional component technologies; for another, it might create in line code with no subroutine calls at all; thus, it allows for what we have referred to above as lightweight components. Some researchers [29, 8, 9] have taken this a step further, viewing the C template facility as a compile time programming language and using it to generate efficient, specialized code for a variety of purposes. However, these generative technologies are applicable only for compile time generation of code. Consider this ....

....complex; it also imposes a significant compilation cost. The approaches based on aggressive use of the C template mechanism are an interesting contrast to ours. Stepanov s Standard Template Library (STL) 24] accounts for lightweight components, based on the infix mechanism of C . Veldhuizen [29] and Czarnecki and Eisenecker [8, 9] take this idea even further. Observing that the template mechanism actually provides a Turing complete compile time language embedded in C , they show how to create template metaprograms, thereby accounting for generative components as well. Furthermore, the ....

Todd Veldhuizen. Using C++ template metaprograms. C++ Report, 7(4):36--43, May 1995.


An Algebraic Programming Style for Numerical Software.. - Dinesh, Haveraaen.. (1998)   (7 citations)  (Correct)

....in various HPC applications. We preferred ASF SDF mainly because of its strong syntactic capabilities enabling us to generate a C environment fairly quickly given the complexity of the language. Another alternative would have been the use of template metaprogramming and or expression templates [21,22]. This approach is highly C specific, however, and cannot be adapted to Fortran 90 95. Basically, the ASF SDF implementation of CodeBoost involves the following two steps: 256 T.B. Dinesh et al. An algebraic programming style for numerical software and its optimization 1. Specify the C ....

T.L. Veldhuizen, Using C++ template metaprograms, C++ Report 7(4) (May 1995), 36--43.


Compile time sparse vectors in C++ - Järvi (1997)   (Correct)

....to make the compiler to perform as an interpreter at compile time. For instance compile time bounded loops and branching statements (if, switch) can be written using recursive template definitions and instance specialisation. This kind of usage of templates is referred to as template metaprograms [1]. In this report template metaprograms are utilised in definition of compile time sparse vector (CTSV) classes. The term compile time here means that the structure of the vectors (the positions containing zero and non zero elements) must be known at compile time. This is of course a major ....

....using some integral type as the template parameter and giving specialisations for each case of the value. The integral type can be an enumeration, so case labels can be used. The default case is given as the general template definition. For an excellent introduction to template metaprograms see [1], which is also the source of the previous examples. 1.2. Sparse vectors A vector is called sparse if only a relative small number of its elements are nonzero. The sparseness of vectors can be taken advantage of when storing or processing them. Instead of storing all the elements of a vector, ....

T. Veldhuizen, Using C++ template metaprograms, C++ Report, Vol. 7, No. 4, May 1995, pp. 36-43.


Code Generators for Automatic Tuning of Numerical Kernels.. - Vuduc, Demmel   (1 citation)  (Correct)

....could be done either at compile time (i.e. library or kernel installation time) at run time, or through some hybrid scheme. In this report, we focus on the generation process. In addition to PHiPAC and FFTW, other recent automatic code generation systems for specific kernels include Blitz [29, 30], ATLAS [33] the Matrix Template Library [26] all three of which target dense linear algebra kernels. More recently, the Sparsity system [17] has been developed for highly optimized sparse matrix vector multplication and includes automatic code generation as well. PHiPAC, ATLAS, FFTW, and ....

T. Veldhuizen. Using C++ template metaprograms. C++ Report Magazine, 7(4):36--43, May 1995.


Applicability Of Open PROMOL For Generic COMPONENT .. - Stuikys.. (2000)   (Correct)

....Chirokoff et al. 1999 [11] In the usage of generative metaprogramming, the specialized program is generated from a parameterized generic algorithm, representing the particular specification requirements. The examples include expression templates and template metaprogramming (Veldhuizen, 1995 [32]; Veldhuizen, 1996 [33] Veldhuizen and Ponnambalam, 1996 [34] Other authors (Czarnecki, 1998 [14] use template instantiation mechanism in C , too. The approach presented in this paper is similar to that technique, because we use the two language approach, too. The algorithm specialization ....

T.L. Veldhuizen. Using C++ template metaprograms. C++ Report 7(4), 1995, 36-43.


Generic Components: A Symbiosis of Paradigms - Becker   (Correct)

....templates, or compile time parameters and optimizations. Wherever it does not contradict efficiency and comprehensibility, the deployment of such mechanisms is a natural and well known way to realize the required variability. Examples are the approaches of template meta programming [Vel98][Vel95] and generative programming [Cza99] that both extensively utilize the template mechanism offered by C to build variable implementations. One drawback of these mechanisms is that the implementation of the common and the variable parts are mixed up, thus complicating the location of the ....

Veldhuizen, T.: Template Metaprograms, http://www.cs.rpi.edu/~musser/ap/blitz/meta-art.html, 1998


Concepts: Linguistic Support for Generic Programming in C++ - Douglas Gregor Dgregor   (Correct)

No context found.

Todd Veldhuizen. Using C++ template metaprograms. C++ Report, May 1995.


A Semantic Analysis of C++ Templates - Siek, Taha (2006)   (Correct)

No context found.

Todd Veldhuizen. Using C++ template metaprograms. C++ Report, 7(4):36--43, May 1995. Reprinted in C++ Gems, ed. Stanley Lippman.


In Search of a Program Generator to Implement.. - Cohen, Donadio.. (2005)   (Correct)

No context found.

T. Veldhuizen, Using C++ template metaprograms, C++ Report 7 (4) (1995), pp. 36-- 43.


A Language for the Compact Representation of.. - Donadio, Brodman, .. (2005)   (Correct)

No context found.

T. Veldhuizen. Using C++ template metaprograms. C++ Report, 7(4):36--43, 1995.


Compile-time meta-programming in Converge - Tratt (2004)   (Correct)

No context found.

Veldhuizen, T.: Using C++ template metaprograms. C++ Report 7 (1995) 36--43


In Search of a Program Generator to Implement.. - Cohen, Donadio.. (2005)   (Correct)

No context found.

T. Veldhuizen, Using C++ template metaprograms, C++ Report 7 (4) (1995), pp. 36-- 43.


A Language for the Compact Representation of.. - Donadio, Brodman, .. (2005)   (Correct)

No context found.

T. Veldhuizen. Using C++ template metaprograms. C++ Report, 7(4):36--43, 1995.


In Search of a Program Generator to Implement.. - Cohen, Donadio.. (2004)   (Correct)

No context found.

T. Veldhuizen. Using C++ template metaprograms. C++ Report, 7(4):36--43, 1995.


Expression Templates in Ada - Duret-Lutz (2001)   (Correct)

No context found.

Todd Veldhuizen. Using C++ template metaprograms. C++ Report, 7(4):36--43, May 1995. Reprinted in C++ Gems, ed. Stanley Lippman.


DSL Implementation in MetaOCaml, Template Haskell, and.. - Czarnecki, O'Donnell..   (Correct)

No context found.

Todd L. Veldhuizen. Template metaprograms. C++ Report, 7(4):36-43, 1995.


A Subset-Based Comparison Of Main Design Languages - Damasevicius (2004)   (Correct)

No context found.

T. L. Veldhuizen. Using C++ template metaprograms. C++ Report 7(4), 1995, 36-43.


Scripting Language Open PROMOL: Extension, Environment and.. - Damasevicius (2001)   (Correct)

No context found.

Veldhuizen, T.L. (1995). Using C++ template meta-programs. C++ Report 7(4), 36-43.

First 50 documents

Online articles have much greater impact   More about CiteSeer.IST   Add search form to your site   Submit documents   Feedback  

CiteSeer.IST - Copyright Penn State and NEC