12 citations found. Retrieving documents...
T. Veldhuizen. Arrays in Blitz++. Proceedings of the 2nd International Symposium on Computing in Object-oriented Parallel Environments, 1998.

 Home/Search   Document Details and Download   Summary   Related Articles   Check  

This paper is cited in the following contexts:
CHASM: Static Analysis and Automatic Code.. - Rasmussen.. (2001)   (2 citations)  (Correct)

....compiler in performing static type checking. When developing algorithms, and when using the indexing operator, one must be aware that Fortran arrays are laid out in column major order. Rather than managing the details of this directly, we simply provide an interface to the Blitz array library [15] which provides this functionality. Blitz is an expression template C library that provides very good support for high performance array computations in C . Blitz allows for a Fortran like array syntax within C , without introducing abstraction penalties during runtime. 4.1 Arrays Passed ....

T. Veldhuizen. Arrays in Blitz++. Proceedings of the 2nd International Symposium on Computing in Object-oriented Parallel Environments, 1998.


OoLaLa: an Object Oriented Analysis and Design of.. - Luján, Freeman, Gurd (2000)   (1 citation)  (Correct)

....[70] focuses on nite dimensional vector spaces instead of matrix algebra. Other object oriented linear algebra libraries that have not been reviewed include TNT [77, 67] and some others listed at #########################. Object oriented multi dimensional arrays libraries, suchas Blitz [91, 13], A P [76] POOMA [50, 56, 1] in C ) and IBM s ArrayPackage [73] in Java) are related to object oriented numerical linear algebra since the onedimensional and two dimensional arrays provide methods that implement matrix operations. These libraries have the common characteristic that they ....

T. L. Veldhuizen. Arrays in Blitz++. In D. Caromel, R. R. Oldehoeft, and M. Tholburn, editors, Computing in Object-Oriented Parallel Environments, Second International Symposium ISCOPE 98,volume 1505 of Lecture Notes in Computer Science, pages 223-230. Springer-Verlag, 1998. 252


Themis: Component Dependence Metadata In Adaptive.. - Kelly, Beckmann.. (2001)   (Correct)

....to date in supporting sophisticated scientific applications has been the development of libraries in C to support rich data types and associated operations. Examples include the Standard Template Library [38] the LEDA library for computational geometry [21] the Blitz scientific array package [37], BoxLib [28] and others. Libraries supporting parallel computation on irregular data have lagged behind; STAPL is a parallel development of the Standard Template Library [27] POOMA [25] is a C library designed to represent common abstractions in computational science applications. PETSc [4, ....

Todd L. Veldhuizen. Arrays in Blitz++. In ISCOPE'98: Proceedings of the 2nd International Scientific Computing in ObjectOriented Parallel Environments, number 1505 in LNCS. Springer-Verlag, 1998.


Loci: A Deductive Framework for Graph-Based Algorithms - Edward Luke Nsf (1999)   (1 citation)  (Correct)

....a deductive framework for the coordination of numerical value classes constructed in C . 1 Introduction Recent developments in object oriented numerics can roughly be classified into two broad branches: 1) the development of flexible high performance value classes such as MTL[1] Blitz [2], and POOMA II [3] and 2) the development of application level frameworks or toolkits such as PetSc [4] and LPARX [5] High performance value classes have significant reuse potential since their abstractions are generally built from well known and often used mathematical constructions such as ....

....specification area qnds pos , while method compute provides an interface for the actual computation of areas. Lecture Notes in Computer Science 9 class quadarea : public pointwiserule inline void quadarea: calculate(Entity fc) conststore vect3d pos ; vect3d dv1 = pos[qnds[fc][2]] pos[qnds[fc] 0] constMapVec 4 qnds ; vect3d dv2 = pos[qnds[fc] 1] pos[qnds[fc] 3] store Area area ; public: area[fc] n = cross(dv1,dv2) quadarea( real sada = sqrt(dot(area[fc] n,area[fc] n) void calculate(Entity fc) area[fc] n = 1. sada EPSILON) ....

T. L. Veldhuizen. Arrays in Blitz++. In Proceedings of the 2nd International Scientific Computing in Object-Oriented Parallel Environments (ISCOPE'98), Lecture Notes in Computer Science. ISCOPE, Springer-Verlag, 1998.


A Modern Framework for Portable High Performance Numerical Linear.. - Siek (1999)   (6 citations)  (Correct)

....could be used to provide a more natural mathematical notation for the MTL user interface. Expression templates [56] are a promising technology in this regard and their use within the MTL framework warrants further investigation. In addition there is the possibility of integrating MTL with Blitz [57], a high performance C library for multi dimensional arrays and tensor operations. 10.1.2 MTL Functionality Another direction for future work is to broaden the number of matrix types supported in the MTL, including diagonally oriented matrices, Hermitian matrices, hierarchical matrices, and ....

T. L. Veldhuizen. Arrays in Blitz++. In Proceedings of the 2nd International Scientific Computing in Object-Oriented Parallel Environments (ISCOPE'98), Lecture Notes in Computer Science. Springer-Verlag, 1998.


Generative Programming and Active Libraries (Extended.. - Czarnecki, Eisenecker, al. (1998)   (Correct)

....the description of active libraries. This trend is a result of two main factors: a desire for high level abstractions which closely model the problem domain, and the inability of traditional compilers to optimize such abstractions. We describe two such libraries here. Blitz The Blitz library [35] provides array objects for C similar to those in Fortran 90. The largest performance problem for arrays in C has been temporaries which result from overloaded operators. Blitz solves this problem using the expression templates technique [33] which allows it to generate custom evaluation ....

T. L. Veldhuizen. Arrays in Blitz++. In ISCOPE'98, volume 1505 of Lecture Notes in Computer Science, 1998.


A Rule-Based Specification System For Computational Fluid Dynamics - Luke (1999)   (1 citation)  (Correct)

....at Sandia, puts together a package of C classes and templates for the development of data parallel computations. In many ways, this library provides many of the features that were previously only available through specialized compilers. Through the use of expression templates developed in Blitz [23], POOMA II is able to deliver performance comparable to a specialized compiler. However, since POOMA II is a library, it can move quickly to adapt problem specific optimizations; moreover, POOMA II uses C template facilities to provide a generic data parallel interface that can work with built ....

T. L. Veldhuizen, "Arrays in Blitz++," in Proceedings of the 2nd International Scientific Computing in Object-Oriented Parallel Environments (ISCOPE'98), Lecture Notes in Computer Science, ISCOPE, Springer-Verlag, 1998.


Loci: A Deductive Framework for Graph Based Algorithms - Edward Luke (1999)   (1 citation)  (Correct)

....a deductive framework for the coordination of numerical value classes constructed in C . 1 Introduction Recent developments in object oriented numerics can roughly be classified into two broad branches: 1) the development of flexible high performance value classes such as MTL[1] and Blitz [2], and 2) the development of application level frameworks or toolkits such as PetSc [3] POOMA II [4] and LPARX [5] High performance value classes have significant reuse potential since their abstractions are generally built from well known and often used mathematical constructions such as ....

....constructor for this rule creates the specification area qnds pos , while method compute provides an interface for the actual computation of areas. class quadarea : public pointwiserule inline void quadarea: calculate(Entity fc) conststore vect3d pos ; vect3d dv1 = pos[qnds[fc][2]] pos[qnds[fc] 0] constMapVec 4 qnds ; vect3d dv2 = pos[qnds[fc] 1] pos[qnds[fc] 3] store Area area ; public: area[fc] n = cross(dv1,dv2) quadarea( real sada = sqrt(dot(area[fc] n,area[fc] n) void calculate(Entity fc) area[fc] n = 1. sada EPSILON) virtual ....

T. L. Veldhuizen. Arrays in Blitz++. In Proceedings of the 2nd International Scientific Computing in Object-Oriented Parallel Environments (ISCOPE'98), Lecture Notes in Computer Science. Springer-Verlag, 1998.


Efficient Implementations of Software Architectures via.. - Marlet, Thibault, Consel (1999)   (6 citations)  (Correct)

....(as is C or Scheme) templates (as in C ) etc. The idea is to program code expansion. Although automatic, this approach is not systematic: each new optimization (i.e. code expansion) must be explictly programmed. However, finely tuning code expansion can lead to a fast final implementation [4, 46, 74]. One major limitation to this approach is that the optimization usually can only be local, not contextual: two separate rewritings cannot usually cooperate. The reason is that the rewriting language often does not have states (or states more complex than scalars) nor scoping mechanisms. For ....

T.L. Veldhuizen. Arrays in Blitz++. In ISCOPE'98 [35].


Just when you thought your little language was safe.. - Veldhuizen (2000)   Self-citation (Veldhuizen)   (Correct)

....Figure 1: Partial evaluation example For each array position i, expr.eval(i) traverses the parse tree, evaluating the expression. C semantics require that this traversal be done at compile time, so the resulting loop is efficient. This technique is the basis of C libraries such as Blitz [19] and POOMA [9] Of these approaches, expression template based array libraries have been popular for C , since they deliver efficiency without compiler extensions. It turns out that templates in C are strikingly like partial evaluation. A partial evaluator takes a program, performs the ....

Veldhuizen, T. L. Arrays in Blitz++. In Proceedings of the 2nd International Scientific Computing in Object-Oriented Parallel Environments (ISCOPE'98) (1998), Lecture Notes in Computer Science, SpringerVerlag.


C++ Templates as Partial Evaluation - Veldhuizen (1999)   (1 citation)  Self-citation (Veldhuizen)   (Correct)

....trees tends to be complex as well. C templates may point the way to a more usable solution. Template techniques have been used to solve the performance problems of C for arrays and linear algebra, and several libraries based on these techniques are being distributed (e.g. POOMA [11] Blitz [20], and MTL [14] The syntax used to implement these libraries is awkward. Partial evaluation offers hope for a cleaner syntax: there is a strong resemblance between templates and partial evaluation, so some mechanism based directly on partial evaluation might solve the abstraction penalty problem, ....

....This is the basis of the expression templates technique [18] which creates parse trees of array expressions at compile time. These parse trees are used to generate efficient evaluation routines for array expressions. This technique is the backbone of several libraries for object oriented numerics [11, 20]. 2.4 Traits The traits technique [12] allows programmers to define functions which operate on and return types rather than data. As a motivating example, consider a template function which calculates the average value of an array. What should its return type be If the array contains ....

Veldhuizen, T. L. Arrays in Blitz++. In ISCOPE'98 (1998), vol. 1505 of Lecture Notes in Computer Science.

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