@string{OONSKI93 = "Proceedings of the First Annual Object-Oriented Numerics Conference (OON-SKI'93)"} @string{OONSKI94 = "Proceedings of the Second Annual Object-Oriented Numerics Conference (OON-SKI'94)"} @ARTICLE { Wong93, AUTHOR = "Michael K.W. Wong and Kent G. Budge and James S. Peery and Allen C. Robinson", TITLE = "Object-Oriented Numerics: A Paradigm for Numerical Object-Oriented Programming", JOURNAL = "Computers In Physics", YEAR = "1993", VOLUME = 7, NUMBER = 6, PAGES = "655-663", MONTH = "Nov/Dec", ANNOTE = "A basic introduction to the field of object-oriented numerics, aimed at a non-C++ audience. Good discussion of performance issues." } @ARTICLE { Sullivan95, AUTHOR = "Stephen J. Sullivan and Benjamin G. Zorn", TITLE = "Numerical Analysis Using Nonprocedural Paradigms", JOURNAL = "ACM Transactions on Mathematical Software", YEAR = "1995", VOLUME = 21, NUMBER = 3, PAGES = "267-298", MONTH = "Sept", ANNOTE = "Looks at alternatives to Fortran for numerical programming. A broad survey, and consequently not a lot of depth about any one language. A performance comparison is given using a Gaussian elimination benchmark. Covers C++, Fortran 77, Fortran 90, Haskell, Lisp/CLOS, Modula-3, Sather and SML." } @ARTICLE{Angus93, AUTHOR = "Ian G. Angus", TITLE = "Applications Demand Class-Specific Optimizations: The {C++} Compiler Can Do More.", JOURNAL = "Scientific Programming", VOLUME = "2", NUMBER = "4", PAGES = "123--131", YEAR = "1993", ANNOTE = "Good summary of the performance problems associated with using C++ for numerical computing. Author suggests that the solution is to provide information about class semantics to the compiler, so that class-dependent optimizations can be performed." } @ARTICLE{Sharp93, AUTHOR = "Michael D. Sharp and Steve W. Otto", TITLE = "A Class Specific Optimizing Compiler", JOURNAL = "Scientific Programming", VOLUME = "2", NUMBER = "4", PAGES = "235--238", YEAR = "1993", } @inproceedings{Budge94, AUTHOR = "Kent G. Budge", TITLE = "{C++} Optimization and Excluding Middle-Level Code", BOOKTITLE = OONSKI94, YEAR = "April 24--27, 1994", PAGES = "107--119", } @inproceedings{Hamilton93, AUTHOR = "Lisa Hamilton and Mark Stalzer and Steve Turley and John Visher and Stephen Wandzura", TITLE = "FastScat: An Object-Oriented Program for Fast Scattering Computation", BOOKTITLE = OONSKI93, YEAR = "April 24--27, 1994", PAGES = "247--256" } @inproceedings{Davies94, AUTHOR = "Robert B. Davies", TITLE = "Writing a matrix package in {C++}", BOOKTITLE = OONSKI94, YEAR = "April 24--27, 1994", PAGES = "207--213", } @inproceedings{Kershaw94, AUTHOR = "David S. Kershaw", TITLE = "Object-Oriented Development of a Three-Dimensional Unstructured Grid Shock Hydrodynamics Model", BOOKTITLE = OONSKI94, YEAR = "April 24--27, 1994", PAGES = "339--350", } @inproceedings{Quinlan94, AUTHOR = "Rebecca Parsons and Daniel Quinlan", TITLE = "{A++/P++} Array Classes for Architecture Independent Finite Difference Computations", BOOKTITLE = OONSKI94, YEAR = "April 24--27, 1994", PAGES = "408--418", } @inproceedings{Knopp94, AUTHOR = "{J\"{u}rgen} Knopp", TITLE = "Sparse++: Hiding Data Representations Does not Exclude Efficiency", BOOKTITLE = OONSKI94, YEAR = "April 24--27, 1994", PAGES = "454--459", } @inproceedings{Bodin94, AUTHOR = "Francois Bodin and Peter Beckman and Dennis Gannon and Jacob Gotwals and Srinivas Narayana and Suresh Srinivas and Beata Winnicka", TITLE = "Sage++: An Object-Oriented Toolkit and Class Library for Building Fortran and {C++} Restructuring Tools", BOOKTITLE = OONSKI94, YEAR = "April 24--27, 1994", PAGES = "122--138" } @inproceedings{Dongarra94, AUTHOR = "Jack Dongarra and Andrew Lumsdaine and Xinhui Niu and Roldan Pozo and Karin Remington", TITLE = "Sparse Matrix Libraries in {C++} for High Performance Architectures", BOOKTITLE = OONSKI94, YEAR = "April 24--27, 1994", PAGES = "122-138" } @inproceedings{Robison96a, AUTHOR = "Arch D. Robison", TITLE = "The Abstraction Penalty for Small Objects in {C++}", BOOKTITLE = "{POOMA'96}: The Parallel Object-Oriented Methods and Applications Conference", MONTH = "Feb. 28 - Mar. 1", YEAR = "1996", NOTE = "Santa Fe, New Mexico", URL = "http://www.acl.lanl.gov/Pooma96/abstracts/robison.html" } @inproceedings{Myers96, AUTHOR = "Chris Myers", TITLE = "Abstractions, Applications and Accomodations: Thoughts on Developing Object-Oriented Software Using Someone Else's Class Library", BOOKTITLE = "{POOMA'96}: The Parallel Object-Oriented Methods and Applications Conference", MONTH = "Feb. 28 - Mar. 1", YEAR = "1996", NOTE = "Santa Fe, New Mexico", URL = "http://www.acl.lanl.gov/Pooma96/abstracts/myers.html", ANNOTE = "Some comments on performance issues of C++: mentions that most C++ compilers will not do strength reduction to efficiently calculate addresses of multidimensional arrays." } @inproceedings{Dean95, AUTHOR = "Jeffrey Dean and Craig Chambers and David Grove", TITLE = "Selective Specialization for Object-Oriented Languages", BOOKTITLE = "PLDI'95 Conference Proceedings", MONTH = "June", YEAR = "1995", ADDRESS = "La Jolla, California", URL = "http://www.cs.washington.edu/research/projects/cecil/www/Papers/specialize-pldi.html", ANNOTE = "Authors describe an object-oriented language optimizer which replaces virtual function invokations with direct procedure calls when possible." } @ARTICLE { Haney94, AUTHOR = "Scott Haney", TITLE = "Is {C++} Fast Enough for Scientific Computing?", JOURNAL = "Computers In Physics", YEAR = "1994", VOLUME = "8", NUMBER = "6", PAGES = "690-694", MONTH = "Nov/Dec" } @MISC { Pozo96, AUTHOR = "Roldan Pozo", NOTE = "Private communication", MONTH = "March", YEAR = "1996" } @ARTICLE { Myers95, AUTHOR = "Nathan Myers", TITLE = "A new and useful Template technique: {``Traits''}", JOURNAL = "{C++} Report", YEAR = "1995", VOLUME = "7", NUMBER = "5", PAGES = "32-35", MONTH = "June" } @BOOK { Barton94, AUTHOR = "John Barton and Lee Nackman", TITLE = "Scientific and Engineering {C++}", PUBLISHER = "Addison-Wesley", YEAR = "1994" } @BOOK { Stroustrup91, AUTHOR = "Bjarne Stroustrup", TITLE = "The {C++} programming language", PUBLISHER = "Addison-Wesley", YEAR = "1991", EDITION = "2nd" } @ARTICLE { Donescu96, AUTHOR = "Pompiliu Donescu and Tod A. Laursen", TITLE = "A generalized object-oriented approach to solving ordinary and partial differential equations using finite elements", JOURNAL = "Finite Elements in Analysis and Design", VOLUME = "22", PAGES = "93--107", YEAR = "1996" } @ARTICLE { Veldhuizen95b, AUTHOR = "Todd L. Veldhuizen", TITLE = "Expression Templates", JOURNAL = "{C++} Report", YEAR = "1995", VOLUME = 7, NUMBER = 5, PAGES = "26-31", MONTH = "June", NOTE = "Reprinted in C++ Gems, ed. Stanley Lippman" } @ARTICLE { Veldhuizen95a, AUTHOR = "Todd L. Veldhuizen", TITLE = "Using {C++} Template Metaprograms", JOURNAL = "C++ Report", YEAR = "1995", VOLUME = 7, NUMBER = 4, PAGES = "36-43", MONTH = "May", NOTE = "Reprinted in C++ Gems, ed. Stanley Lippman" } @INCOLLECTION { Veldhuizen96:meta, title = "Using {C++} Template Metaprograms", author = "Todd L. Veldhuizen", booktitle = "{C++ Gems}", editor = "Stanley Lippman", publisher = "SIGS Books", year = "1996" } @ARTICLE { Veldhuizen96a, AUTHOR = "Todd L. Veldhuizen", TITLE = "Rapid Linear Algebra in {C++}", JOURNAL = "Dr. Dobb's Journal", YEAR = "1996", MONTH = "August" } @ARTICLE { Haney96, AUTHOR = "Scott W. Haney", TITLE = "Beating the Abstraction Penalty in {C++} Using Expression Templates", JOURNAL = "Computers in Physics", YEAR = "1996", MONTH = "Nov/Dec", VOLUME = 10, NUMBER = 6, PAGES = "552--557" } @ARTICLE { Robison96, AUTHOR = "Arch D. Robison", TITLE = "{C++} Gets Faster for Scientific Computing", JOURNAL = "Computers in Physics", YEAR = "1996", MONTH = "Sep/Oct", VOLUME = "10", NUMBER = 5, PAGES = "458--462" } @BOOK { Stroustrup94, AUTHOR = "Bjarne Stroustrup", TITLE = "Design and Evolution of {C++}", YEAR = "1994", PUBLISHER = "Addison-Wesley", } @MISC { Stepanov94, AUTHOR = "Alex Stepanov", TITLE = "Stepanov's Abstraction Penalty Benchmark", YEAR = "??", NOTE = "Need a citation for this" } @MANUAL { Stepanov95, AUTHOR = "Alex Stepanov and Meng Lee", TITLE = "The Standard Template Library", ORGANIZATION = "Hewlett Packard Laboratories", ADDRESS = "1501 Page Mill Road, Palo Alto, CA 94304", YEAR = "1995", MONTH = "February" } @ARTICLE { Musser94, AUTHOR = "David R. Musser and Alexander A. Stepanov", TITLE = "Algorithm-oriented Generic Libraries", JOURNAL = "Software: Practice and Experience", VOLUME = "24", NUMBER = "7", PAGES = "632--642", MONTH = "July", YEAR = "1994" } @MANUAL { lia, TITLE = "Language Independent Arithmetic Standard", ORGANIZATION = "ISO/IEC", YEAR = "1994", NOTE = "Doc. No. 10967-1:1994(E)" } @MANUAL { ansi:c++, TITLE = "Working Paper for Draft Proposed International Standard for Information Systems-- Programming Language C++", ORGANIZATION = "ANSI/ISO", YEAR = "1995", MONTH = "April", PUBLISHER = "The American National Standards Institute", ADDRESS = "Washington DC", NOTE = "Doc. No. ANSI X3J16/95-0087 ISO WG21/N0687" } @MISC { Robison96b, AUTHOR = "Arch D. Robison", ORGANIZATION = "Kuck & Associates, Inc.", YEAR = "1996", MONTH = "March", NOTE = "Private communication" } @BOOK { Dowd93, AUTHOR = "Kevin Dowd", TITLE = "High Performance Computing", PUBLISHER = "O'Reilly \& Associates, Inc.", YEAR = "1993" } @BOOK { Wilson96, EDITOR = "Gregory V. Wilson and Paul Lu", TITLE = "Parallel Programming Using C++", PUBLISHER = "MIT Press", YEAR = "1996", ANNOTE = "A survey of systems for parallel programming in C++." } @MISC { Holly92, AUTHOR = "M. Holly", TITLE = "{ANSI X3J16-92-0057/ISO WG21-134}", MONTH = "June", YEAR = "1992", ANNOTE = "Proposal to add a ``restrict'' keyword to the C++ standard. This would have avoided problems with aliasing ambiguities which prohibit compilers from making certain optimizations. The proposal was turned down." } @ARTICLE { Miller91, AUTHOR = "G. R. Miller", TITLE = "An object-oriented approach to structural analysis and design", JOURNAL = "Computers and Structures", VOLUME = "40", NUMBER = "1", PAGES = "75--82", YEAR = "1991" } @ARTICLE { Pidaparti93, AUTHOR = "R. M. V. Pidaparti and A. V. Hudli", TITLE = "Dynamic analysis of structures using object-oriented techniques", JOURNAL = "Computers and Structures", VOLUME = "49", NUMBER = "1", PAGES = "149--156", YEAR = "1993" } @ARTICLE { Scholz92, AUTHOR = "S. P. Scholz", TITLE = "Elements of an object-oriented FEM++ program in C++", JOURNAL = "Computers and Structures", VOLUME = "43", NUMBER = "3", PAGES = "517--529", YEAR = "1992" } @ARTICLE { Zeglinski94, AUTHOR = "Gordon W. Zeglinski and Ray S. Han and Peter Aitchison", TITLE = "Object-oriented matrix classes for use in a finite element code using C++", JOURNAL = "International Journal for Numerical Methods in Engineering", VOLUME = "37", PAGES = "3921--3937", YEAR = "1994" } @MISC { Unruh94, AUTHOR = "Erwin Unruh", TITLE = "Prime number computation", NOTE = "ANSI X3J16-94-0075/ISO WG21-462", YEAR = "1994", ANNOTE = "Unruh demonstrates a template which computes prime numbers at compile time, and outputs them as a list of warning messages." } @MISC { Orost96, AUTHOR = "Joseph M. Orost and Dr. Barbara Ryder", TITLE = "The Bench++ Benchmark Suite", YEAR = "1996", NOTE = "To appear", URL = "http://paul.rutgers.edu/~orost/bench_plus_plus/paper.html" } @incollection{Pooma96, title = "{POOMA}", author = "John V. W. Reynders and Paul J. Hinker and Julian C. Cummings and Susan R. Atlas and Subhankar Banerjee and William F. Humphrey and Steve R. Karmesin and Katarzyna Keahey and M. Srikant and {MaryDell} Tholburn", booktitle = "Parallel Programming Using {C++}", editor = "Gregory V. Wilson and Paul Lu", publisher = "MIT Press", year = "1996", } @ARTICLE { Eyheramendy96, AUTHOR = "D. Eyheramendy and Th. Zimmermann", TITLE = "Object-oriented finite elements II: a symbolic environment for automatic programming", JOURNAL = "Computer Methods in Applied Mechanics and Engineering", VOLUME = "132", PAGES = "277--304", YEAR = "1996" } @ARTICLE { Forde90, AUTHOR = "Bruce W. R. Forde and Ricardo O. Foschi and Siegfried F. Steimer", TITLE = "Object-oriented finite element analysis", JOURNAL = "Computers and Structures", VOLUME = "34", NUMBER = "3", PAGES = "355--374", YEAR = "1990" } @BOOK { Dubois97, AUTHOR = "Paul F. Dubois", TITLE = "Object technology for scientific computing", YEAR = "1997", ANNOTE = "From the preface: I would like this book to serve scientists who are considering the application of object technology to scientific programs. In addition, I would like to assist those who are combining Fortran or C with the Eiffel language or who are writing programs in Eiffel that use mathematical or statistical software. Here is how I have organized the information: Part I reviews traditional methods of developing scientific software. I explain some of the principal ideas behind object-oriented programming with examples from a scientific point of view. I introduce the Eiffel Method and discuss the features of Eiffel and C++ that are of importance to the scientific programmer. Part II explains the practical details about the task of combining existing programs in Fortran, C, or C++ with Eiffel. This information about Eiffel is not widely available nor explained elsewhere in as much detail. I also discuss nuances of Fortran/C interaction. Part III presents EiffelMath, a library of proven mathematical algorithms developed by the Numerical Algorithms Group, Oxford, UK, now available to Eiffel users. Even scientists who are not yet Eiffel users may find it interesting to see how groups of mathematical algorithms can be related and packaged into easy-to-use software components. The compact disk that accompanies this book offers free versions of Interactive Software Engineerings Eiffel compiler for most Unix systems, including Linux. (Instructions are also provided for obtaining Windows versions via FTP). Also included are all of the test routines I used to create EiffelMath. These routines illustrate proper use of the library and Eiffel, but they may also be modified by scientists to solve problems in their area of interest." } @BOOK { Buzzi93, TITLE = "Scientific {C++}: Building numerical libraries the object-oriented way", AUTHOR = "Guido Buzzi-Ferraris", YEAR = "1993", PUBLISHER = "Addison-Wesley" } @Article{Machiels:1997:FEO, author = "L. Machiels and M. O. Deville", title = "{Fortran 90}: An Entry to Object-Oriented Programming for Solution of Partial Differential Equations", journal = "{ACM} Transactions on Mathematical Software", volume = "23", number = "1", pages = "32--49", month = mar, year = "1997", CODEN = "ACMSCU", ISSN = "0098-3500", URL = "http://www.acm.org/pubs/citations/journals/toms/1997-23-1/p32-machiels/", abstract = "The aim of this work is to set up a programming model suitable for numerical computing while taking benefit of Fortran 90's features. The use of concepts from object-oriented programming avoids the weaknesses of the traditional global data programming model of Fortran 77. This work supports the view that object-oriented concepts are not in contradiction with good Fortran 77 programming practices but complement them. These concepts can be embodied in a module-based programming style and result in an efficient and easy-to-maintain code (maintainability means code clarity, scope for further enhancements and ease of debugging). After introducing the terminology associated with object-oriented programming, it is shown how these concepts are implemented in the framework of Fortran 90. Then, we present an object-oriented implementation of a spectral element solver for a Poisson equation.", accepted = "July 1996", keywords = "design", subject = "{\bf D.1.5}: Software, PROGRAMMING TECHNIQUES, Object-Oriented Programming. {\bf D.3.2}: Software, PROGRAMMING LANGUAGES, Language Classifications, FORTRAN 90. {\bf G.1.8}: Mathematics of Computing, NUMERICAL ANALYSIS, Partial Differential Equations.", } @Article{Bruaset:1997:OOD, author = "Are Magnus Bruaset and Hans Petter Langtangen", title = "Object-Oriented Design of Preconditioned Iterative Methods in {Diffpack}", journal = "{ACM} Transactions on Mathematical Software", volume = "23", number = "1", pages = "50--80", month = mar, year = "1997", CODEN = "ACMSCU", ISSN = "0098-3500", URL = "http://www.acm.org/pubs/citations/journals/toms/1997-23-1/p50-bruaset/", abstract = "As modern programming methodologies migrate from computer science to scientific computing, developers of numerical software are faced with new possibilities and challenges. Based on experiences from an ongoing project that develops C++ software for the solution of partial differential equations, this article has its focus on object-oriented design of iterative solvers for linear systems of equations. Special attention is paid to possible conflicts that have to be resolved in order to achieve a flexible, yet efficient, code.", accepted = "August 1996", keywords = "design, performance", subject = "{\bf D.2.8}: Software, SOFTWARE ENGINEERING, Tools and Techniques, software libraries. {\bf D.3.2}: Software, PROGRAMMING LANGUAGES, Language Classifications, C++. {\bf G.1.3}: Mathematics of Computing, NUMERICAL ANALYSIS, Numerical Linear Algebra, linear systems, sparse and very large systems.", } @Article{Aberth:1992:PCU, author = "Oliver Aberth and Mark J. Schaefer", title = "Precise Computation Using Range Arithmetic, via {C++}", journal = j-TOMS, volume = "18", number = "4", pages = "481--491", month = dec, year = "1992", CODEN = "ACMSCU", ISSN = "0098-3500", bibdate = "Fri Sep 30 00:53:58 1994", URL = "http://www.acm.org/pubs/citations/journals/toms/1992-18-4/p481-aberth/", abstract = "An arithmetic is described that can replace floating-point arithmetic for programming tasks requiring assured accuracy. A general explanation is given of how the arithmetic is constructed with C++, and a programming example in this language is supplied. Times for solving representative problems are presented.", acknowledgement = ack-nhfb, keywords = "algorithms; languages", subject = "{\bf G.1.0}: Mathematics of Computing, NUMERICAL ANALYSIS, General, Computer arithmetic. {\bf D.3.2}: Software, PROGRAMMING LANGUAGES, Language Classifications, C++.", } @Article{Griewank:1996:AAP, author = "Andreas Griewank and David Juedes and Jean Utke", title = "Algorithm 755: {ADOL-C}: a package for the automatic differentiation of algorithms written in {C\slash C++}", journal = j-TOMS, volume = "22", number = "2", pages = "131--167", month = jun, year = "1996", CODEN = "ACMSCU", ISSN = "0098-3500", bibdate = "Sat Aug 31 16:07:02 MDT 1996", bibsource = "http://www.acm.org/pubs/toc/", URL = "http://www.acm.org/pubs/citations/journals/toms/1996-22-2/p131-griewank/", abstract = "The C++ package ADOL-C described here facilitates the evaluation of first and higher derivatives of vector functions that are defined by computer programs written in C or C++. The resulting derivative evaluation routines may be called from C/C++, Fortran, or any other language that can be linked with C. The numerical values of derivative vectors are obtained free of truncation errors at a small multiple of the run-time and randomly accessed memory of the given function evaluation program. Derivative matrices are obtained by columns or rows. For solution curves defined by ordinary differential equations, special routines are provided that evaluate the Taylor coefficient vectors and their Jacobians with respect to the current state vector. The derivative calculations involve a possibly substantial (but always predictable) amount of data that are accessed strictly sequentially and are therefore automatically paged out to external files.", acknowledgement = ack-nhfb, keywords = "algorithms; performance", subject = "{\bf G.1.4}: Mathematics of Computing, NUMERICAL ANALYSIS, Quadrature and Numerical Differentiation. {\bf I.1.2}: Computing Methodologies, ALGEBRAIC MANIPULATION, Algorithms, Analysis of algorithms. {\bf I.1.2}: Computing Methodologies, ALGEBRAIC MANIPULATION, Algorithms.", } @Article{Cools:1997:ACC, author = "Ronald Cools and Dirk Laurie and Luc Pluym", title = "Algorithm 764: {Cubpack++} --- {A C++} Package for Automatic Two-Dimensional Cubature", journal = j-TOMS, volume = "23", number = "1", pages = "1--15", month = mar, year = "1997", CODEN = "ACMSCU", ISSN = "0098-3500", URL = "http://www.acm.org/pubs/citations/journals/toms/1997-23-1/p1-cools/", abstract = "In this article, software for the numerical approximation of double integrals over a variety of regions is described. The software was written in C++. Classes for a large number of shapes are provided. A global adaptive integration algorithm is used based on transformations and subdivisions of regions.", accepted = "July 1996", acknowledgement = ack-rfb # " and " # ack-kr, keywords = "algorithms", subject = "{\bf D.3.2}: Software, PROGRAMMING LANGUAGES, Language Classifications, C++. {\bf G.1.4}: Mathematics of Computing, NUMERICAL ANALYSIS, Quadrature and Numerical Differentiation, adaptive quadrature, multiple quadrature. {\bf G.4}: Mathematics of Computing, MATHEMATICAL SOFTWARE, efficiency, reliability and robustness.", } @Article{Liu:1996:OPA, author = "J.-L. Liu and I.-J. Lin and M.-Z. Shih and R.-C. Chen and M.-C. Hsieh", title = "Object-oriented programming of adaptive finite element and finite volume methods", journal = "Applied Numerical Mathematics: Transactions of IMACS", volume = "21", number = "4", pages = "439--??", month = "????", year = "1996", coden = "ANMAEL", ISSN = "0168-9274", bibdate = "Sat Feb 8 10:05:15 MST 1997", acknowledgement = ack-nhfb, } @Article{Horstmann:1996:CCL, author = "C. S. Horstmann", title = "{C++} class libraries for numerical programming", journal = "C++ Report", volume = "8", number = "1", pages = "61--64, 66", month = jan, year = "1996", coden = "CRPTE7", ISSN = "1040-6042", bibdate = "Tue Mar 25 13:34:48 MST 1997", acknowledgement = ack-nhfb, classcodes = "C7310 (Mathematics computing); C6110J (Object-oriented programming); C4140 (Linear algebra); C4190 (Other numerical methods); C6140D (High level languages)", corpsource = "San Jose State Univ., CA, USA", keywords = "C language; C++ class libraries; computing; FORTRAN LINPACK; Fourier transforms; IMSL Math Module; library; linear algebra; M++; mathematical; mathematics; number generators; numerical algorithms; numerical programming; object-oriented; object-oriented languages; probability distributions; problems; programming; programming problems; random; random number generation; software libraries; statistical functions", treatment = "P Practical", } @Article{McDonald:1989:OPL, author = "J. A. McDonald", title = "Object-oriented programming for linear algebra", journal = "ACM SIG{\-}PLAN Notices", volume = "24", number = "10", pages = "175--184", month = oct, year = "1989", coden = "SINODQ", ISSN = "0362-1340", bibdate = "Sat Aug 13 17:16:20 MDT 1994", acknowledgement = ack-nhfb, keywords = "algorithms; design; languages", subject = "D.3.2 Software, PROGRAMMING LANGUAGES, Language Classifications, Common LISP \\ D.1.0 Software, PROGRAMMING TECHNIQUES, General \\ I.1.2 Computing Methodologies, ALGEBRAIC MANIPULATION, Algorithms \\ G.1.0 Mathematics of Computing, NUMERICAL ANALYSIS, General", } @Article{Bruaset:1997:OOD, author = "Are Magnus Bruaset and Hans Petter Langtangen", title = "Object-Oriented Design of Preconditioned Iterative Methods in {Diffpack}", journal = "ACM Transactions on Mathematical Software", volume = "23", number = "1", pages = "50--80", month = mar, year = "1997", coden = "ACMSCU", ISSN = "0098-3500", url = "http://www.acm.org/pubs/citations/journals/toms/1997-23-1/p50-bruaset/", abstract = "As modern programming methodologies migrate from computer science to scientific computing, developers of numerical software are faced with new possibilities and challenges. Based on experiences from an ongoing project that develops C++ software for the solution of partial differential equations, this article has its focus on object-oriented design of iterative solvers for linear systems of equations. Special attention is paid to possible conflicts that have to be resolved in order to achieve a flexible, yet efficient, code.", accepted = "August 1996", acknowledgement = ack-rfb # " and " # ack-kr, keywords = "design, performance", subject = "{\bf D.2.8}: Software, SOFTWARE ENGINEERING, Tools and Techniques, software libraries. {\bf D.3.2}: Software, PROGRAMMING LANGUAGES, Language Classifications, C++. {\bf G.1.3}: Mathematics of Computing, NUMERICAL ANALYSIS, Numerical Linear Algebra, linear systems, sparse and very large systems.", } @InProceedings{Dongarra:1993:LDO, author = "J. J. Dongarra and R. Pozo and D. W. Walker", booktitle = "Proceedings SUPERCOMPUTING '93", title = "{LAPACK++}: {A} design overview of object-oriented extensions for high performance linear algebra", booktitle = "Proceedings, Supercomputing '93: Portland, Oregon, November 15--19, 1993", publisher = "IEEE Computer Society Press", address = "1109 Spring Street, Suite 300, Silver Spring, MD 20910, USA", year = "1993", ISBN = "0-8186-4340-4 (paperback), 0-8186-4341-2 (microfiche), 0-8186-4342-0 (hardback)", pages = "162--171", year = "1993", bibdate = "Sat Mar 22 15:39:54 MST 1997", acknowledgement = ack-nhfb, classcodes = "C4140 (Linear algebra); C6110J (Object-oriented programming); C4130 (Interpolation and function approximation); C6110P (Parallel programming); C7310 (Mathematics computing)", conflocation = "Portland, OR, USA; 15-19 Nov. 1993", conftitle = "SUPERCOMPUTING '93", corpsource = "Oak Ridge Nat. Lab., TN, USA", keywords = "approximations; architectures; calling sequences; decomposition classes; design overview; distributed memory; eigenvalue problems; eigenvalues and eigenfunctions; extendible; generality; high; high-performance computer; LAPACK++; least squares; linear algebra; linear least; linear systems; mathematics computing; matrix; matrix algebra; numerical linear algebra; object-oriented approach; object-oriented C++ extension; object-oriented extensions; object-oriented programming; parallel; performance linear algebra; programming; representations; ScaLAPACK++; software framework; software libraries; squares; subroutines", sponsororg = "IEEE; ACM SIGARCH", treatment = "T Theoretical or Mathematical", } @Article{Dubois:1996:NP, author = "P. F. Dubois and K. Hinsen and J. Hugunin", title = "Numerical Python", journal = "Computers in Physics", volume = "10", number = "3", pages = "262--267", month = may # "-" # jun, year = "1996", coden = "CPHYE2", ISSN = "0894-1866", bibdate = "Sun Apr 13 12:29:32 MDT 1997", abstract = "Python is a small and easy-to-learn language with surprising capabilities. It is an interpreted object-oriented scripting language and has a full range of sophisticated features such as first-class functions, garbage collection, and exception handling. Python has properties that make it especially appealing for scientific programming: Python is quite simple and easy to learn, but it is a full and complete language. It is simple to extend Python with your own compiled objects and functions. Python is portable, from Unix to Windows 95 to Linux to Macintosh. Python is free, with no license required even if you make a commercial product out of it. Python has a large user-contributed library of ``modules''. These modules cover a wide variety of needs, such as audio and image processing, World Wide Web programming, and graphical user interfaces. In particular, there is an interface to the popular Tk package for building windowing applications. And now, Python has a high-performance array module similar to the facilities in specialized array languages such as Matlab, IDL, Basis, or Yorick. This extension also adds complex numbers to the language. Array operations in Python lead to the execution of loops in C, so that most of the work is done at full compiled speed.", acknowledgement = ack-nhfb, classcodes = "C6140D (High level languages); C6110J (Object-oriented programming); C6150C (Compilers, interpreters and other processors); C7300 (Natural sciences computing)", corpsource = "Lawrence Livermore Nat. Lab., CA, USA", keywords = "applications; compiled objects; exception; first-class functions; garbage collection; graphical user interfaces; handling; high-performance array module; interpreted object-oriented scripting language; natural sciences computing; object-oriented languages; program interpreters; Python; scientific programming; Wide Web programming; windowing; World", treatment = "P Practical", } @Article{Veldhuizen:1996:LAC, author = "Todd L. Veldhuizen and Kumaraswamy Ponnambalam", title = "Linear algebra with {C++} template metaprograms", journal = "Dr. Dobb's Journal of Software Tools", volume = "21", number = "8", pages = "38--44", month = aug, year = "1996", coden = "DDJOEB", ISSN = "1044-789X", bibdate = "Fri Jan 3 06:28:31 MST 1997", acknowledgement = ack-nhfb, }