Results 1 
9 of
9
Fast FloatingPoint Processing in Common Lisp
 ACM Trans. on Math. Software
, 1995
"... this paper we explore an approach which enables all of the problems listed above to be solved at a single stroke: use Lisp as the source language for the numeric and graphical code! This is not a new idea  it was tried at MIT and UCB in the 1970's. While these experiments were modestly succe ..."
Abstract

Cited by 5 (1 self)
 Add to MetaCart
(Show Context)
this paper we explore an approach which enables all of the problems listed above to be solved at a single stroke: use Lisp as the source language for the numeric and graphical code! This is not a new idea  it was tried at MIT and UCB in the 1970's. While these experiments were modestly successful, the particular systems are obsolete. Fortunately, some of those ideas used in Maclisp [37], NIL [38] and Franz Lisp [20] were incorporated in the subsequent standardization of Common Lisp (CL) [35]. In this new setting it is appropriate to reexamine the theoretical and practical implications of writing numeric code in Lisp. The popular conceptions of Lisp's inefficiency for numerics have been based on rumor, supposition, and experience with early and (in fact) inefficient implementations. It is certainly possible to continue to write inefficient programs: As one example of the results of deemphasizing numerics in the design, consider the situation of the basic arithmetic operators. The definitions of these functions require that they are generic, (e.g. "+" must be able to add any combination of several precisions of floats, arbitraryprecision integers, rational numbers, and complexes), The very simple way of implementing this arithmetic  by subroutine calls  is also very inefficient. Even with appropriate declarations to enable more specific treatment of numeric types, compilers are free to ignore declarations and such implementations naturally do not accommodate the needs of intensive numbercrunching. (See the appendix for further discussion of declarations). Be this as it may, the situation with respect to Lisp has changed for the better in recent years. With the advent of ANSI standard Common Lisp, several active vendors of implementations and one active universi...
Problem Solving Environments and Symbolic Computing
, 1997
"... ion, representation, communication : : : : : : : : : : 29 5.5 System and human interface design issues : : : : : : : : : : : 31 5.6 Miscellany : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 32 6 Acknowledgments 33 Abstract What role should be played by symbolic mathematical computation ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
ion, representation, communication : : : : : : : : : : 29 5.5 System and human interface design issues : : : : : : : : : : : 31 5.6 Miscellany : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 32 6 Acknowledgments 33 Abstract What role should be played by symbolic mathematical computation facilities in scientific and engineering "problem solving environments"? Most observers agree with us that in conjunction with numerical libraries and other facilities, symbolic computation should be useful for the creation and manipulation of mathematical models, the production of custom numerical software, and the solution of certains classes of mathematical problems that are difficult to handle by traditional floatingpoint computation. Even further, though, symbolic representation and manipulation can potentially play a more central role  with more general representations a program can naturally deal with computational objects of a more general nature. Numerical, graphical, and other...
Generation and Verification of Algorithms for SymbolicNumeric Processing
 Journal of Symbolic Computation
, 1998
"... This paper presents a new method in which the algorithms suitable for implementation in numerical code are designed by human and coded in language of a CAS. The algorithms are tested by comparing their results on representative input data sets with results of the symbolic algorithms included in the ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
(Show Context)
This paper presents a new method in which the algorithms suitable for implementation in numerical code are designed by human and coded in language of a CAS. The algorithms are tested by comparing their results on representative input data sets with results of the symbolic algorithms included in the CAS. The comparision is done in precise arithmetics and at the algebraic level in the CAS. The numerical implementation is then automatically generated from the same source, provided that the computer algebra system in question contains a facility to convert both mathematical functions and its own control language into a code in programming language suitable for the numerical applications. The method uses a CAS for advanced debugging of symbolicnumeric algorithms and allows also comparisions of the algorithms in different floatingpoint arithmetics. By such approach one can have strong confidence that the numerical code is correct. So here the knowledge from the computer algebra system is used to verify the correctness of proposed algorithms. In the work reported here, the computer algebra system REDUCE (Hearn, 1993) with the standard code generation package GENTRAN (Gates, 1986) is used to develop codes in FORTRAN. Generally we deal here with the development of a particular symbolic processing algorithm which is usually used as a part of a large numerical code. Typically the algorithm deals only with a special domain of formulas. Many papers e.g. (Steinberg, 1985, Wang, 1986, Dewar and Richardson, 1990, Cook, 1992, Kant, 1993) were dealing with code generation of numerical algorithms. Some work has also been reported on program transformation techniques e.g. (Zippel, 1992) and automatic differentiation of numerical codes (Rostaing, Dalmas and Galligo, 1993), however we are ...
Automated and parallel code generation for finitedifferencing stencils with arbitrary data types
 Computer Science, Massey University
, 2009
"... FiniteDi↵erencing and other regular and direct approaches to solving partial di↵erential equations (PDEs) are methods that fit well on dataparallel computer systems. These problems continue to arise in many application areas of computational science and engineering but still o↵er some programming ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
(Show Context)
FiniteDi↵erencing and other regular and direct approaches to solving partial di↵erential equations (PDEs) are methods that fit well on dataparallel computer systems. These problems continue to arise in many application areas of computational science and engineering but still o↵er some programming challenges as they are not readily incorporated into a general standard software library that could cover all possible PDEs. Achieving high performance on numerical solutions to PDEs generally requires exposure of the field data structures and application of knowledge of how best to map them to the memory and processing architecture of a particular parallel computer system. Stencil methods for solving PDEs are however readily implemented as semiautomatically generated skeletal frameworks. We have implemented semi automated stencil source code generators for a number of target programming languages including dataparallel languages such as CUDA for graphics processing units (GPUs) and other accelerators. We report on some performance evaluations for our generated PDE simulations on GPUs and other platforms. In this article we focus on (di↵usive) PDEs with a nontrivial data type requirement such as having vector or complex field variables. We discuss the issues and compromises involved implementing equation solvers with fields comprising arbitrary data types on GPUs and other current compute devices.
Chapter 1 PROBLEM SOLVING ENVIRONMENTS AND SYMBOLIC COMPUTING
"... Abstract What role should be played by symbolic mathematical computation facilities in scientific and engineering “problem solving environments”? Drawing upon standard facilities such as numerical and graphical libraries, symbolic computation should be useful for: The creation and manipulation of ma ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract What role should be played by symbolic mathematical computation facilities in scientific and engineering “problem solving environments”? Drawing upon standard facilities such as numerical and graphical libraries, symbolic computation should be useful for: The creation and manipulation of mathematical models; The production of customoptimized numerical software; The solution of delicate classes of mathematical problems that require handling beyond that available in traditional machinesupported floatingpoint computation. Symbolic representation and manipulation can potentially play a central organizing role in PSEs since their more general object representation allows a program to deal with a wider range of computational issues. In particular Numerical, graphical, and other processing can be viewed as special cases of symbolic manipulation with interactive symbolic computing providing both an organizing backbone and the communication “glue ” among otherwise dissimilar components.
University ofWaikato
"... Lisp, one of the oldest higherlevel programming languages [29] [21] has rarely been used for fast numerical ( oatingpoint) computation. We explore the bene ts of Common Lisp [35], an emerging new language standard with some excellent implementations, for numerical computation. We compare it to For ..."
Abstract
 Add to MetaCart
(Show Context)
Lisp, one of the oldest higherlevel programming languages [29] [21] has rarely been used for fast numerical ( oatingpoint) computation. We explore the bene ts of Common Lisp [35], an emerging new language standard with some excellent implementations, for numerical computation. We compare it to Fortran in terms of the speed of e ciency of generated code, as well as the structure and convenience of the language. There are a surprising number of advantages to Lisp, especially in cases where a mixture of symbolic and numeric processing is needed. Categories and Subject Descriptors: G.4 [Mathematics of Computing]: MathematicalSoftware{ e ciency, portability � D.3.4 [Programming Languages]: Processors{compilers, interpreters,
Excerpts from a proposal to the National Science Foundation on Programming Environments and Tools for Advanced Scientific Computation
"... "by hand" mathematical models whose consequences can be simulated by running computer programs. These programs are typically written in Fortran, but are increasingly being written in C, C++, or other languages that have better tools for abstraction and data structures. In part, the computa ..."
Abstract
 Add to MetaCart
(Show Context)
"by hand" mathematical models whose consequences can be simulated by running computer programs. These programs are typically written in Fortran, but are increasingly being written in C, C++, or other languages that have better tools for abstraction and data structures. In part, the computational approach we advocate involves the use of computers in that earlier "by hand" stage of model formulation, using symbolic mathematics. The blossoming of this area via commercial programs typified by Mathematica and Maple, as well as some less widely used but still viable competitors (Axiom, Macsyma, MuPAD) might suggests that this approach is (a) successful and (b) needs no more academic research. Actually, the relatively higher level of activity (and funding) in Europe has demonstrated that important results remain to be found in advancement of algorithms and building systems. Work at RISCLinz (Austria), ETH (Zurich), CAN (Netherlands), INRIA (France) and the multinational POSSO project are ju
Automatically Generating Efficient Simulation Codes on GPUs from Partial Differential Equations
, 2010
"... We show how compiler technology can generate fast and efficient yet humanreadable dataparallel simulation code for solving certain partial differential equation (PDE) based problems. We present a code parser and generator based on an ANTLR grammar and tree walking approach that transforms a mathem ..."
Abstract
 Add to MetaCart
(Show Context)
We show how compiler technology can generate fast and efficient yet humanreadable dataparallel simulation code for solving certain partial differential equation (PDE) based problems. We present a code parser and generator based on an ANTLR grammar and tree walking approach that transforms a mathematical formulation of an equation such as the CahnHilliard family into simulation software in C++ or in NVIDIA’s Compute Unified Device Architecture (CUDA) language for programming Graphical Processing Units (GPUS). We present software architectural ideas, generated specimen code and detailed performance data on modern GPUs. We discuss how code generation techniques can be used to speed up code development and computational run time for related complex system simulation problems.