Results 1  10
of
30
ADOLC: A Package for the Automatic Differentiation of Algorithms Written in C/C++
, 1995
"... The C++ package ADOLC 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 ..."
Abstract

Cited by 149 (24 self)
 Add to MetaCart
The C++ package ADOLC 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.
On Automatic Differentiation
 IN MATHEMATICAL PROGRAMMING: RECENT DEVELOPMENTS AND APPLICATIONS
, 1989
"... In comparison to symbolic differentiation and numerical differencing, the chain rule based technique of automatic differentiation is shown to evaluate partial derivatives accurately and cheaply. In particular it is demonstrated that the reverse mode of automatic differentiation yields any gradient v ..."
Abstract

Cited by 138 (14 self)
 Add to MetaCart
In comparison to symbolic differentiation and numerical differencing, the chain rule based technique of automatic differentiation is shown to evaluate partial derivatives accurately and cheaply. In particular it is demonstrated that the reverse mode of automatic differentiation yields any gradient vector at no more than five times the cost of evaluating the underlying scalar function. After developing the basic mathematics we describe several software implementations and briefly discuss the ramifications for optimization.
A Fortran 90 Environment for Research and Prototyping of Enclosure Algorithms for Nonlinear Equations and Global Optimization
"... An environment for general research into and prototyping of algorithms for reliable constrained and unconstrained global nonlinear optimization and reliable enclosure of all roots of nonlinear systems of equations, with or without inequality constraints, is being developed. This environment should b ..."
Abstract

Cited by 40 (19 self)
 Add to MetaCart
An environment for general research into and prototyping of algorithms for reliable constrained and unconstrained global nonlinear optimization and reliable enclosure of all roots of nonlinear systems of equations, with or without inequality constraints, is being developed. This environment should be portable, easy to learn, use, and maintain, and sufficiently fast for some production work. The motivation, design principles, uses, and capabilities for this environment are outlined. The environment includes an interval data type, a symbolic form of automatic differentiation to obtain an internal representation for functions, a special technique to allow conditional branches with operator overloading and interval computations, and generic routines to give interval and noninterval function and derivative information. Some of these generic routines use a special version of the backward mode of automatic differentiation. The package also includes dynamic data structures for exhaustive sear...
A software package for the numerical integration of ODE by means of highorder Taylor methods
, 2001
"... This paper revisits the Taylor method for the numerical integration of initial value problems of Ordinary Dierential Equations (ODEs). The main issue is to present a computer program that, given a set of ODEs, produces the corresponding Taylor numerical integrator. The step size control adaptivel ..."
Abstract

Cited by 14 (1 self)
 Add to MetaCart
This paper revisits the Taylor method for the numerical integration of initial value problems of Ordinary Dierential Equations (ODEs). The main issue is to present a computer program that, given a set of ODEs, produces the corresponding Taylor numerical integrator. The step size control adaptively selects both order and step size to achieve a prescribed error, and trying to minimize the global number of operations. The package provides support for several extended precision arithmetics, including userdened types.
A differentiationenabled Fortran 95 compiler
 CODEN ACMSCU. ISSN 00983500 (print), 15577295 (electronic). 215 Tang:2005:DNI
, 2005
"... ..."
OpenAD/F: A Modular, OpenSource Tool for Automatic Differentiation of Fortran Codes
"... The OpenAD/F tool allows the evaluation of derivatives of functions defined by a Fortran program. The derivative evaluation is performed by a Fortran code resulting from the analysis and transformation of the original program that defines the function of interest. OpenAD/F has been designed with a ..."
Abstract

Cited by 11 (5 self)
 Add to MetaCart
The OpenAD/F tool allows the evaluation of derivatives of functions defined by a Fortran program. The derivative evaluation is performed by a Fortran code resulting from the analysis and transformation of the original program that defines the function of interest. OpenAD/F has been designed with a particular emphasis on modularity, flexibility, and the use of open source components. While the code transformation follows the basic principles of automatic differentiation, the tool implements new algorithmic approaches at various levels, for example, for basic block preaccumulation and call graph reversal. Unlike most other automatic differentiation tools, OpenAD/F uses components provided by the OpenAD framework, which supports a comparatively easy extension of the code transformations in a languageindependent fashion. It uses code analysis results implemented in the OpenAnalysis component. The interface to the languageindependent transformation engine is an XMLbased format, specified through an XML schema. The implemented transformation algorithms allow efficient derivative computations using locally optimized crosscountry sequences
Guaranteed Error Bounds for Ordinary Differential Equations
 In Theory of Numerics in Ordinary and Partial Differential Equations
, 1994
"... Hamming once said, "The purpose of computing is insight, not numbers." If that is so, then the speed of our computers should be measured in insights per year, not operations per second. One key insight we wish from nearly all computing in engineering and scientific applications is, "How accurate is ..."
Abstract

Cited by 10 (0 self)
 Add to MetaCart
Hamming once said, "The purpose of computing is insight, not numbers." If that is so, then the speed of our computers should be measured in insights per year, not operations per second. One key insight we wish from nearly all computing in engineering and scientific applications is, "How accurate is the answer?" Standard numerical analysis has developed techniques of forward and backward error analysis to help provide this insight, but even the best codes for computing approximate answers can be fooled. In contrast, validated computation ffl checks that the hypotheses of appropriate existence and uniqueness theorems are satisfied, ffl uses interval arithmetic with directed rounding to capture truncation and rounding errors in computation, and ffl organizes the computations to obtain as tight an enclosure of the answer as possible. These notes for a series of lectures at the VIth SERC Numerical Analysis Summer School, Leicester University, apply the principles of validated computatio...
FirstClass Nonstandard Interpretations by Opening Closures
 In Proceedings of the Symposium on Principles of Programming Languages (POPL
, 2007
"... We motivate and discuss a novel functional programming construct that allows convenient modular runtime nonstandard interpretation via reflection on closure environments. This mapclosure construct encompasses both the ability to examine the contents of a closure environment and to construct a new ..."
Abstract

Cited by 10 (4 self)
 Add to MetaCart
We motivate and discuss a novel functional programming construct that allows convenient modular runtime nonstandard interpretation via reflection on closure environments. This mapclosure construct encompasses both the ability to examine the contents of a closure environment and to construct a new closure with a modified environment. From the user’s perspective, mapclosure is a powerful and useful construct that supports such tasks as tracing, security logging, sandboxing, error checking, profiling, code instrumentation and metering, runtime code patching, and resource monitoring. From the implementor’s perspective, mapclosure is analogous to call/cc. Just as call/cc is a nonreferentiallytransparent mechanism that reifies the continuations that are only implicit in programs written in direct style,mapclosure is a nonreferentiallytransparent mechanism that reifies the closure environments that are only implicit in higherorder programs. Just as CPS conversion is a nonlocal but purely syntactic transformation that can eliminate references to call/cc, closure conversion is a nonlocal but purely syntactic transformation that can eliminate references to mapclosure. We show how the combination of mapclosure and call/cc can be used to implement set! as a procedure definition and a local macro transformation. Categories and Subject Descriptors D.3.2 [Language Classifications]: Applicative (functional) languages; D.3.3 [Language constructs
Lazy multivariate higherorder forwardmode AD
 In Proceedings of the 2007 Symposium on Principles of Programming Languages
, 2007
"... A method is presented for computing all higherorder partial derivatives of a multivariate function R n → R. This method works by evaluating the function under a nonstandard interpretation, lifting reals to multivariate power series. Multivariate power series, with potentially an infinite number of ..."
Abstract

Cited by 7 (2 self)
 Add to MetaCart
A method is presented for computing all higherorder partial derivatives of a multivariate function R n → R. This method works by evaluating the function under a nonstandard interpretation, lifting reals to multivariate power series. Multivariate power series, with potentially an infinite number of terms with nonzero coefficients, are represented using a lazy data structure constructed out of linear terms. A complete implementation of this method in SCHEME is presented, along with a straightforward exposition, based on Taylor expansions, of the method’s correctness.
Nesting forwardmode AD in a functional framework
"... Abstract. We discuss the implications of the desire to augment a functionalprogramming language with a derivativetaking operator using forwardmode automatic differentiation (AD). The primary technical difficulty in doing so lies in ensuring correctness in the face of nested invocation of that oper ..."
Abstract

Cited by 6 (4 self)
 Add to MetaCart
Abstract. We discuss the implications of the desire to augment a functionalprogramming language with a derivativetaking operator using forwardmode automatic differentiation (AD). The primary technical difficulty in doing so lies in ensuring correctness in the face of nested invocation of that operator, due to the need to distinguish perturbations introduced by distinct invocations. We exhibit a series of implementations of a referentiallytransparent forwardmode AD derivativetaking operator, each of which uses a different nonreferentiallytransparent mechanism to distinguish perturbations. Even though the forwardmode AD derivativetaking operator is itself referentially transparent, we hypothesize that one cannot correctly formulate this operator as a function definition in current pure dialects of Haskell.