1 date: December 12, 1997 le: walters9. Automatic Dierentiation. form of an algorithm (e.g. computer program) so

Size: px
Start display at page:

Download "1 date: December 12, 1997 le: walters9. Automatic Dierentiation. form of an algorithm (e.g. computer program) so"

Transcription

1 1 date: December 12, 1997 le: walters9 AUTOMATIC DIFFERENTIATION: POINT AND INTERVAL TAYLOR OPERATORS Abstract. Frequently of use in optimization problems, automatic dierentiation may be used to generate Taylor coecients. Specialized software tools generate Taylor series approximations, one term at a time, more eciently than the general AD software used to compute (partial) derivatives. Through the use of operator overloading, these tools provide a relatively easy-to-use interface that minimizes the complications of working with both point and interval operations. Introduction. First, we briey survey the tools of automatic dierentiation and operator overloading used to compute point- and interval-valued Taylor coef- cients. We assume that f is an analytic function f : R! R. Automatic dierentiation (AD or computational dierentiation) is the process of computing the derivatives of a function f at a point t = t 0 by applying rules of calculus for dierentiation [10, 11, 18, 19]. One way to implement AD uses overloaded operators. Operator Overloading. An overloaded (or generic) operator invokes a procedure corresponding to the types of its operands. Most programming languages implement this technique for arithmetic operations. The sums of two oating point numbers, two integers, or one oating point number and one integer are computed using three dierent procedures for addition. Fortran 77 or C denies the programmer the ability to replace or modify the various routines used implicitly for integer, oating point, or mixed-operand arithmetic, but Fortran 90, C++, and Ada support operator overloading for user-dened types. Once we have de- ned an overloaded operator for each rule of differentiation, AD software performs those operations on program code for f, as shown below. The operators either propagate derivative values or construct a code list for their computation. We give prototypical examples of operators overloaded to propagate Taylor coecients below. Automatic Dierentiation. The AD process requires that we have f in the form of an algorithm (e.g. computer program) so that we can easily separate and order its operations. For example, given f(t) = e t =(2 + t), we can express f as an algorithm in Fortran 90 or in C++ (using an assumed AD module or class): program Example1 use AD_Module type(ad_independent) :: t type(ad_dependent) f = exp(t) / (2 + t) end program Example1 #include "AD_class.h" void main (void) { AD_Independent t(0); AD_Dependent f; = AD_Independent(0) f = exp (t) / (2 + t); :: f Figure 1. Fortran & C++ calls to AD operators. In this section, we use AD to compute rst derivatives. In the next section, we extend to point- and interval-valued Taylor series. To understand the AD process, we parse the program above into a sequence of unary and binary operations, called a code list, computational graph, or \tape" [10]: x 0 = t 0 x 2 = 2 + x 0 x 1 = exp(x 0 ) x 3 = x 1 =x 2 Dierentiation is a simple mechanical process for propagating derivative values. Let t = t 0 represent the value of the independent variable with respect to which we dierentiate. We know how to take the derivative of a variable, a constant, and unary and binary operations (i.e. +,?,, =, sin, cos, exp, etc.). Then AD software annotates the code list: x 0 = t 0 ; rx 0 = 1 x 1 = exp(x 0 ); rx 1 = exp(x 0 ) rx 0 x 2 = 2 + x 0 ; rx 2 = 0 + rx 0 x 3 = x 1 =x 2 ; rx 3 = (rx 1? rx 2 x 3 )=x 2

2 le: walters9 date: December 12, AD propagates values of derivatives, not expressions as symbolic dierentiation does. AD values are exact (up to round-o), not approximations of unknown quality as nite dierences. For more information regarding AD and its applications, see [2, 9, 10, 11, 18, 19], or the bibliography [22]. AD software can use overloaded operators in two dierent ways. Operators can propagate both the value x i and its derivative rx i, as suggested by the annotated code list above. This approach is easy to understand and to program. We give prototypical Taylor operators of this avor below. The second approach has the operators construct and store the code list. Various optimizations and parallel scheduling [1, 4, 13] may be applied to the code list. Then the code list is interpreted to propagate derivative values. This is the approach of AD tools such as ADOL{C [12], ADOL{F [21], AD01 [17], or INTOPT 90 [14]. The second approach is much more exible, allowing the code list to be traversed in either the forward or reverse modes of AD (see [10]) or with various arithmetics (e.g. point- or intervalvalued series). AD may be applied to functions of more than one variable, in which partial derivatives with respect to each are computed in turn, and to vector functions, in which the component functions are dierentiated in succession. In addition, we can compute higher order derivative values. One application of AD involving higher order derivatives of f is the computation of Taylor (series) coecients to which we turn in the next section. Source code transformation is a third approach to AD software used by ATOMFT [5] for Taylor series and by ADIFOR [3], PADRE2 [15], or Odyssee [20] for partial derivatives. Such tools accept the algorithm for f as data, rather than for execution, and produce code for computing the desired derivatives. The resulting code often executes more rapidly than code using overloaded operators. Taylor Coecients. We dene the Taylor coecients of the analytic function f at the point t = t 0 : (fjt 0 ) i := 1 d i f(t 0 ) ; i! dt i for i = 0; 1; 2; 3; : : :, and let F := ((fjt 0 ) i ) denote the vector of Taylor coecients. Then Taylor's Theorem says that there exists some point (usually not practically obtainable) between t and t 0 such that f(t) = px i=0 (fjt 0 ) i (t? t 0 ) i (1) + 1 d p+1 f() (t? t (p + 1)! dt p+1 0 ) p+1 : Computation of Taylor coecients requires dierentiation of f. We generate Taylor coef- cients automatically using recursion formulas for unary and binary operations. For example, the recurrences we need for our example f(t) = e t =(2 + t) are x(t) = exp u(t) =) x 0 = xu 0 (x) 0 = exp(u) 0 (x) i = Pi?1 (x) j=0 j (u) i?j (i? j)=i x(t) = u(t) + v(t) (x) i = (u) i + (v) i x(t) = u(t)=v(t) =) xv = u (x) i = (u) i? Pi?1 j=0 (x) j (v) i?j =(v) 0 : The recursion relations are described in more detail in [18]. Except for + and?, each recurrence follows from Leibnitz' rule for the Taylor coecients of a product. The relations can be viewed as a lower triangular system. The recurrence represents a solution by forward substitution, but there are sometimes accuracy or stability advantages in an iterative solution to the lower triangular system. The recurrences for each operation can be evaluated in oatingpoint, complex, interval, or other appropriate arithmetic.

3 3 date: December 12, 1997 le: walters9 To compute the formal series for f(t) = e t =(2 + t) expanded at t = 0, X 0 := (t 0 ; 1; 0; : : :) = (0; 1; 0; : : :) X 1 := exp X 0 = (1; 1; 1=2!; 1=3!; : : :) X 2 := 2 + X 0 = (2; 1; 0; : : :) X 3 := X 2 =X 3 = (1=2; 1=4; 1=8; 1=48; : : :) (2) Point and Interval Taylor Operators. As foreshadowed by this example, we dene an abstract data type for Taylor series and use operator overloading to dene actions on objects of that type using previously dened oatingpoint and interval operations. Design of Operators. In this section, we give prototypical operators for the direct propagation of Taylor coecients such as might be called from code similar to that shown in Figure 1. Direct propagation of values works by translating each operation into a call to the appropriate AD routine at compile time. Thus, simply compiling the source code for f and linking it with the overloaded operator routines creates a program that computes the Taylor coecients of f at t = t 0. For illustration, we provide only a stripped-down prototype with operators required for the example f(t) = e t =(2+t). We surpress issues of references and the like that are essential to the design of a useful class. See [6] for a description of a set of interval Taylor operators in Ada. class Taylor { private: // Or make a template: const int Max_Length = 20; Value_type coef[max_length]; public: Taylor ( Value_type t_0 ) { // Constructor for Independents coef[0] = t_0; coef[1] = 1; for (int i = 2; i < Max_Length; i++) { coef[i] = 0; Taylor ( void ) { // Constructor for Dependents for (int i = 0; i < Max_Length; i++) { coef[i] = 0; Taylor ( Taylor &U ) { // Copy Constructor for (int i = 0; i < Max_Length; i++) {coef[i] = Value_type(U.coef[i]); friend Taylor operator + (int u, Taylor V) { V.coef[0] += u; return V; friend Taylor operator / Taylor X; (Taylor U, Taylor V) { for (int i = 0; i < Max_Length; i++){ Value_type sum = U.coef[i]; for (int j = 0; j < i; j++) {sum -= X.coef[j] * V.coef[i-j]; X.coef[i] = sum / V.coef[0]; return X; friend Taylor exp (Taylor U) { /* Similar to divide */ Value_type getcoef (int i) { return coef[i]; ; // end class Taylor If instead, operators for AD type record a code list, then an interpreter reads each node from the code list and calls the appropriate operator from class Taylor: Taylor Operand[MemSize]; for (int i = 0; i < CodeSize; i++) { Node = getnextoperation (); switch (Node.OpCode) { case PLUS : Operand[Node.Result]... = Operand[Node.Left] + Operand[Node.Right]; break; case EXP : Operand[Node.Result]... = exp ( Operand[Node.Left] ); break; Use of Interval Operators. We have mentioned the possibility of working with interval values but not the signicance of doing so. From Equation (1) for an interval t,

4 le: walters9 date: December 12, and for all t 2 t, f(t) 2 px i=0 (fjt 0 ) i (t? t 0 ) i (3) + 1 d p+1 f(t) (t? t (p + 1)! dt p+1 0 ) p+1 : f In a computer implementation, the summation is done in interval arithmetic to ensure enclosure. The series Taylor coecients (fjt0) i are narrow intervals whose width comes only from outward rounding. The remainder term is the Taylor coecient (fjt) i, where the recurrence relations are evaluated in interval arithmetic. The series (3) can be used to bound the range of f (see [7]), for validated quadrature [8], or for rigorous solution of ODEs [16]. For the example f(t) = e t =(2 + t), we repeat the sequence of computations of Equation (2) for the interval t0 = [0; 0] and for t = [?1; 1]: ((fj[0]) i ) = (1=2; 1=4; 1=8; 1=48; : : :) ((fj[?1; 1]) i ) = ([0:12; 2:72]; [?2:59; 2:68]; [?2:64; 4:04]; : : :) Assembling these according to Equation (3) yields enclosures for all t 2 [?1; 1]: f(t) 2 (fj[?1; 1]) 0 = [0:12; 2:72] 2 (fj[0]) 0 + (fj[?1; 1]) 1 (t? 0) = 1 + [?2:59; 2:68]t 2 2 (fj[0]) 0 + (fj[0]) 1 (t? 0). +(fj[?1; 1]) 2 (t? 0) 2 = t + [?2:64; 4:04]t2 4 To demonstrate the true power of this approximation technique, we plot the corresponding 5, 10, and 20 term enclosures in Figure t Figure 2 { Taylor series enclosures of f One-at-a-time Coecient Generation. The Taylor operators described the preceding section accept vectors of p Taylor coecients for operands u and v and return Taylor coecients for result x with complexity O(p 2 ). However, for applications such as ODEs or orderadaptive quadrature, the entire operand series is not known, and we need to compute terms one at a time [6]. For example, for the DE u 0 = f(t; u) = exp(u)=(2 + t); u(0) = 1; initial condition u(0) = 1 =) (uj0) 0 = 1; DE u 0 = exp(u)=(2 + t) =) (uj0) 1 = exp(1)=(2 + 0) = e=2; u 00 = u0 exp(u) 2+t? exp(u) (2+t) 2 =) (uj0) 2 = (e=2) exp(1)=(2 + 0)? e=4 = e(e? 1)=4 etc. Successive terms can be computed by interpreting the code list for f(t; u) repeatedly for series of increasing length for u. Each iteration of the automatic generation process yields an additional Taylor coecient. Unfortunately, a simple implementation of Taylor operators has complexity O(p 3 ) because already known coecients of u 0 are recomputed. However, since the order of operations is the same in each iteration, we can increase the eciency of the computations by storing intermediate results [6]. Each overloaded operator routine calls a memory allocation procedure that refers it to the next space in an array. If that space is empty, we store Taylor

5 5 date: December 12, 1997 le: walters9 coecient values for that variable. Otherwise, the space must contain the previously computed Taylor coecients of that variable, which we can then use to more quickly compute the next coef- cient in the set. With clever book-keeping, we compute p oating-point or interval-valued Taylor coecients one at a time in O(p 2 ) time. Trade-os. We may strive for three goals when writing software for point and interval Taylor operations: storage space eciency, time eciency, and ease of use. These three factors are often at odds with each other. Carefully implemented operator overloading provides an easy to use interface and provides reasonable time and space eciency. We may achieve greater time and space eciency by using source code transformation. In conclusion, automatic dierentiation through Taylor operators shows merit as a technique for computing guaranteed interval enclosures about a function f. Further eorts to rene this technique may provide us with a tool that handles multi-variate functions, and runs signicantly faster thanks to parallelization and improved optimization techniques. References [1] Benary, Jochen: `Parallelism in the Reverse Mode', Computational Dierentiation: Techniques, Applications, and Tools, in [2], pp. 137{147. [2] Berz, Martin, Bischof, Christian, Corliss, George, and Griewank, Andreas (eds.): Computational Dierentiation: Techniques, Applications, and Tools, SIAM, Philadelphia, Penn., [3] Bischof, Christian H., Carle, Alan, Khademi, Peyvand M., Mauer, Andrew, and Hovland, Paul: ADIFOR 2.0 User's Guide, Technical Memorandum ANL/MCS{TM{192, Mathematics and Computer Science Division, Argonne National Laboratory, [4] Bischof, Christian H., and Haghighat, Mohammad R.: `Hierarchical Approaches to Automatic Dierentiation', Computational Dierentiation: Techniques, Applications, and Tools, in [2], pp. 83{94. [5] Chang, Y. F., and Corliss, George F.: `ATOMFT: Solving ODEs and DAEs Using Taylor Series', Computers and Mathematics with Applications 28 (1994), 209{233. [6] Corliss, George F.: `Overloading Point and Interval Taylor Operators', Automatic Dierentiation of Algorithms: Theory, Implementation, and Application, in [11], pp. 139{146. [7] Corliss, George F.: `Automatic Dierentiation: Computing the Range of Derivatives', this volume. [8] Corliss, George F., and Rall, Louis B.: `Adaptive, Self-Validating Quadrature', SIAM J. Sci. Stat. Comput. 8, no. 5 (1987), 831{847. [9] Griewank, Andreas: `On Automatic Dierentiation', Mathematical Programming: Recent Developments and Applications, in Masao Iri and Kunio Tanabe (eds.). Kluwer Academic Publishers, Dordrecht, 1989, pp. 83{108. [10] Griewank, Andreas: `The Chain Rule Revisited in Scientic Computing', SIAM News 24 (May & July 1991), no. 3, p. 20 & no. 4, p. 8. [11] Griewank, Andreas, and Corliss, George F. (eds.): Automatic Dierentiation of Algorithms: Theory, Implementation, and Application, SIAM, Philadelphia, Penn., [12] Griewank, Andreas, Juedes, David, and Utke, Jean: `ADOL{C, A Package for the Automatic Dierentiation of Algorithms Written in C/C++', ACM Trans. Math. Software 22, no. 2 (1996), 131{ 167. [13] Griewank, Andreas, and Reese, Shawn: `On the Calculation of Jacobian Matrices by the Markowitz Rule', Automatic Dierentiation of Algorithms: Theory, Implementation, and Application, in [11], pp. 126{135. [14] Kearfott, R. Baker: `A Fortran 90 Environment for Research and Prototyping of Enclosure Algorithms for Nonlinear Equations and Global Optimization', ACM Trans. Math. Software 21, no. 1 (1995), 63{78. [15] Kubota, Koichi: `PADRE2 - Fortran Precompiler for Automatic Dierentiation and Estimates of Rounding Error', Computational Dierentiation: Techniques, Applications, and Tools, in [2], pp. 367{ 374. [16] Lohner, Rudolf J.: `Enclosing the solutions of ordinary initial and boundary value problems', Computer Arithmetic: Scientic Computation and Programming Languages, in Edgar W. Kaucher, Ulrich W. Kulisch, and Christian Ullrich (eds.). Wiley-Teubner Series in Computer Science, Stuttgart, 1987, pp. 255{286. [17] Pryce, John D., and Reid, John K.: AD01: a Fortran 90 Code for Automatic Dierentiation, Technical Report RAL-TR-97xxx, Rutherford-Appleton Laboratory, [18] Rall, Louis B.: Automatic Dierentiation: Techniques and Applications, Vol. 120 of Lecture Notes in Computer Science, Springer-Verlag, Berlin, 1981.

6 le: walters9 date: December 12, [19] Rall, Louis B., and Corliss, George F.: `An Introduction to Automatic Dierentiation', Computational Dierentiation: Techniques, Applications, and Tools, in [2], pp. 1{17. [20] Rostaing, Nicole, Dalmas, Stephane, and Galligo, Andre: `Automatic Dierentiation in Odyssee', Tellus 45A (1993), 558{568. [21] Shiriaev, Dmitri: `ADOL{F Automatic Dierentiation of Fortran Codes', Computational Dierentiation: Techniques, Applications, and Tools, in [2], pp. 375{384. [22] Yang, Wenhong, and Corliss, George: `Bibliography of Computational Dierentiation', Computational Dierentiation: Techniques, Applications, and Tools, in [2], pp. 393{418. James B. Walters and George F. Corliss Marquette University, Milwaukee, Wisc. USA address: [walters georgec]@mscs.mu.edu Key words and phrases: automatic dierentiation, code list, interval arithmetic, overloaded operator, Taylor series.

Operator Overloading as an. Enabling Technology for. Automatic Dierentiation. George F. Corliss. Andreas Griewank. May 1993.

Operator Overloading as an. Enabling Technology for. Automatic Dierentiation. George F. Corliss. Andreas Griewank. May 1993. Operator Overloading as an Enabling Technology for Automatic Dierentiation George F. Corliss Andreas Griewank CRPC-TR93431 May 1993 Center for Research on Parallel Computation Rice University 6100 South

More information

Extra-High Speed Matrix Multiplication on the Cray-2. David H. Bailey. September 2, 1987

Extra-High Speed Matrix Multiplication on the Cray-2. David H. Bailey. September 2, 1987 Extra-High Speed Matrix Multiplication on the Cray-2 David H. Bailey September 2, 1987 Ref: SIAM J. on Scientic and Statistical Computing, vol. 9, no. 3, (May 1988), pg. 603{607 Abstract The Cray-2 is

More information

Plaintext (P) + F. Ciphertext (T)

Plaintext (P) + F. Ciphertext (T) Applying Dierential Cryptanalysis to DES Reduced to 5 Rounds Terence Tay 18 October 1997 Abstract Dierential cryptanalysis is a powerful attack developed by Eli Biham and Adi Shamir. It has been successfully

More information

Image Registration with Automatic Computation of Gradients

Image Registration with Automatic Computation of Gradients Image Registration with Automatic Computation of Gradients Release 1.0 E. G. Kahn 1 and L. H. Staib 2 July 29, 2008 1 The Johns Hopkins University Applied Physics Laboratory, Laurel, Maryland 2 Yale University,

More information

ambrosys The Taylor series method for ordinary differential equations Karsten Ahnert 1,2 Mario Mulansky 2 December, 8, 2011

ambrosys The Taylor series method for ordinary differential equations Karsten Ahnert 1,2 Mario Mulansky 2 December, 8, 2011 1 The Taylor series method for ordinary differential equations Karsten Ahnert 1,2 Mario Mulansky 2 1 Ambrosys GmbH, Potsdam 2 Institut für Physik und Astronomie, Universität Potsdam December, 8, 2011 ambrosys

More information

Automatic Sparsity Detection Implemented as a Source-to-Source Transformation

Automatic Sparsity Detection Implemented as a Source-to-Source Transformation Automatic Sparsity Detection Implemented as a Source-to-Source Transformation Ralf Giering and Thomas Kaminski FastOpt, Schanzenstr. 36, 20357 Hamburg, Germany http://www.fastopt.com Abstract. An implementation

More information

Automatic Differentiation for Message-Passing Parallel Programs

Automatic Differentiation for Message-Passing Parallel Programs Automatic Differentiation for Message-Passing Parallel Programs Paul Hovland Christian Bischof Mathematics and Computer Science Division Argonne National Laboratory 97 S. Cass Avenue Argonne, IL 6439 Abstract

More information

Overview (4) CPE 101 mod/reusing slides from a UW course. Assignment Statement: Review. Why Study Expressions? D-1

Overview (4) CPE 101 mod/reusing slides from a UW course. Assignment Statement: Review. Why Study Expressions? D-1 CPE 101 mod/reusing slides from a UW course Overview (4) Lecture 4: Arithmetic Expressions Arithmetic expressions Integer and floating-point (double) types Unary and binary operators Precedence Associativity

More information

c-xsc R. Klatte U. Kulisch A. Wiethoff C. Lawo M. Rauch A C++ Class Library for Extended Scientific Computing Springer-Verlag Berlin Heidelberg GmbH

c-xsc R. Klatte U. Kulisch A. Wiethoff C. Lawo M. Rauch A C++ Class Library for Extended Scientific Computing Springer-Verlag Berlin Heidelberg GmbH R. Klatte U. Kulisch A. Wiethoff C. Lawo M. Rauch c-xsc A C++ Class Library for Extended Scientific Computing Translated by G. F. Corliss C. Lawo R. Klatte A. Wiethoff C. Wolff Springer-Verlag Berlin Heidelberg

More information

Arithmetic Parameterization of General Purpose CFD Code

Arithmetic Parameterization of General Purpose CFD Code Arithmetic Parameterization of General Purpose CFD Code Aleksandar Jemcov 1 Development Department, ANSYS/Fluent Inc., Lebanon, NH, 03766, USA Email: aj@fluent.com ABSTRACT In this paper we describe the

More information

A Distributed Application Server for Automatic Differentiation

A Distributed Application Server for Automatic Differentiation A Distributed Application Server for Automatic Differentiation Boyana Norris and Paul D. Hovland Mathematics and Computer Science Division Argonne National Laboratory 9700 S. Cass Avenue, Argonne, IL 60439-4844

More information

Inner and outer approximation of capture basin using interval analysis

Inner and outer approximation of capture basin using interval analysis Inner and outer approximation of capture basin using interval analysis M. Lhommeau 1 L. Jaulin 2 L. Hardouin 1 1 Laboratoire d'ingénierie des Systèmes Automatisés ISTIA - Université d'angers 62, av. Notre

More information

Automatic Differentiation and Sparse Matrices

Automatic Differentiation and Sparse Matrices Automatic Differentiation and Sparse Matrices Shaun A. Forth 1 Naveen Kr. Sharma 2 1 S.A.Forth@cranfield.ac.uk Applied Mathematics & Scientific Computation Cranfield University, Shrivenham, UK 2 Department

More information

Sparsity Detection in Matlab

Sparsity Detection in Matlab Sparsity Detection in Matlab 11th European Workshop on Automatic Differentiation Cranfield University, Shrivenham 9th December 2010 Shaun Forth 1 and Anand Chaturvedi 2 1 Applied Mathematics & Scientific

More information

Y. Han* B. Narahari** H-A. Choi** University of Kentucky. The George Washington University

Y. Han* B. Narahari** H-A. Choi** University of Kentucky. The George Washington University Mapping a Chain Task to Chained Processors Y. Han* B. Narahari** H-A. Choi** *Department of Computer Science University of Kentucky Lexington, KY 40506 **Department of Electrical Engineering and Computer

More information

Algorithmic Differentiation of Implicit Functions and Optimal Values

Algorithmic Differentiation of Implicit Functions and Optimal Values Algorithmic Differentiation of Implicit Functions and Optimal Values Bradley M. Bell 1 and James V. Burke 2 1 Applied Physics Laboratory, University of Washington, Seattle, WA 98195, USA, bradbell@washington.edu

More information

programming language encourages the use of AD because it strongly depend on operator overloading. Object oriented programming has been gathering attra

programming language encourages the use of AD because it strongly depend on operator overloading. Object oriented programming has been gathering attra Forward Mode Automatic Differentiation and C++ in Scientific Computation Yuya Takahashi Department of Civil Engineering, Faculty of Science and Engineering, Chuo University, 1-13-27 Kasuga, Bunkyo-ku,

More information

Precision Control and Exception Handling in Scientic Computing. K. R. Jackson and N. S. Nedialkov. Computer Science Dept., University of Toronto,

Precision Control and Exception Handling in Scientic Computing. K. R. Jackson and N. S. Nedialkov. Computer Science Dept., University of Toronto, Precision Control and Exception Handling in Scientic Computing K. R. Jackson and N. S. Nedialkov Computer Science Dept., University of Toronto, Toronto, Ontario, Canada M5S 1A4. fkrj, nedg@cs.toronto.edu

More information

An Introduction to Numerical Analysis

An Introduction to Numerical Analysis Weimin Han AMCS & Dept of Math University of Iowa MATH:38 Example 1 Question: What is the area of the region between y = e x 2 and the x-axis for x 1? Answer: Z 1 e x 2 dx = : 1.9.8.7.6.5.4.3.2.1 1.5.5

More information

LECTURE 0: Introduction and Background

LECTURE 0: Introduction and Background 1 LECTURE 0: Introduction and Background September 10, 2012 1 Computational science The role of computational science has become increasingly significant during the last few decades. It has become the

More information

perform. If more storage is required, more can be added without having to modify the processor (provided that the extra memory is still addressable).

perform. If more storage is required, more can be added without having to modify the processor (provided that the extra memory is still addressable). How to Make Zuse's Z3 a Universal Computer Raul Rojas January 14, 1998 Abstract The computing machine Z3, built by Konrad Zuse between 1938 and 1941, could only execute xed sequences of oating-point arithmetical

More information

LECTURE 3. Compiler Phases

LECTURE 3. Compiler Phases LECTURE 3 Compiler Phases COMPILER PHASES Compilation of a program proceeds through a fixed series of phases. Each phase uses an (intermediate) form of the program produced by an earlier phase. Subsequent

More information

Programming Lecture 3

Programming Lecture 3 Programming Lecture 3 Expressions (Chapter 3) Primitive types Aside: Context Free Grammars Constants, variables Identifiers Variable declarations Arithmetic expressions Operator precedence Assignment statements

More information

OBJECT ORIENTED PROGRAMMING USING C++ CSCI Object Oriented Analysis and Design By Manali Torpe

OBJECT ORIENTED PROGRAMMING USING C++ CSCI Object Oriented Analysis and Design By Manali Torpe OBJECT ORIENTED PROGRAMMING USING C++ CSCI 5448- Object Oriented Analysis and Design By Manali Torpe Fundamentals of OOP Class Object Encapsulation Abstraction Inheritance Polymorphism Reusability C++

More information

However, m pq is just an approximation of M pq. As it was pointed out by Lin [2], more precise approximation can be obtained by exact integration of t

However, m pq is just an approximation of M pq. As it was pointed out by Lin [2], more precise approximation can be obtained by exact integration of t FAST CALCULATION OF GEOMETRIC MOMENTS OF BINARY IMAGES Jan Flusser Institute of Information Theory and Automation Academy of Sciences of the Czech Republic Pod vodarenskou vez 4, 82 08 Prague 8, Czech

More information

Advanced Algorithms and Computational Models (module A)

Advanced Algorithms and Computational Models (module A) Advanced Algorithms and Computational Models (module A) Giacomo Fiumara giacomo.fiumara@unime.it 2014-2015 1 / 34 Python's built-in classes A class is immutable if each object of that class has a xed value

More information

ON THE IMPLEMENTATION OF THE P-ADAPTIVE FINITE ELEMENT METHOD USING THE OBJECT

ON THE IMPLEMENTATION OF THE P-ADAPTIVE FINITE ELEMENT METHOD USING THE OBJECT ON THE IMPLEMENTATION OF THE P-ADAPTIVE FINITE ELEMENT METHOD USING THE OBJECT ORIENTED PROGRAMMING PHILOSOFY Philippe R.B. Devloo Faculdade de Engenharia Civil - UNICAMP Carlos Armando Magalhaes Duarte

More information

Introduction to Computers and C++ Programming p. 1 Computer Systems p. 2 Hardware p. 2 Software p. 7 High-Level Languages p. 8 Compilers p.

Introduction to Computers and C++ Programming p. 1 Computer Systems p. 2 Hardware p. 2 Software p. 7 High-Level Languages p. 8 Compilers p. Introduction to Computers and C++ Programming p. 1 Computer Systems p. 2 Hardware p. 2 Software p. 7 High-Level Languages p. 8 Compilers p. 9 Self-Test Exercises p. 11 History Note p. 12 Programming and

More information

CSCI 171 Chapter Outlines

CSCI 171 Chapter Outlines Contents CSCI 171 Chapter 1 Overview... 2 CSCI 171 Chapter 2 Programming Components... 3 CSCI 171 Chapter 3 (Sections 1 4) Selection Structures... 5 CSCI 171 Chapter 3 (Sections 5 & 6) Iteration Structures

More information

Dierential-Linear Cryptanalysis of Serpent? Haifa 32000, Israel. Haifa 32000, Israel

Dierential-Linear Cryptanalysis of Serpent? Haifa 32000, Israel. Haifa 32000, Israel Dierential-Linear Cryptanalysis of Serpent Eli Biham, 1 Orr Dunkelman, 1 Nathan Keller 2 1 Computer Science Department, Technion. Haifa 32000, Israel fbiham,orrdg@cs.technion.ac.il 2 Mathematics Department,

More information

Lecture 3 Tao Wang 1

Lecture 3 Tao Wang 1 Lecture 3 Tao Wang 1 Objectives In this chapter, you will learn about: Arithmetic operations Variables and declaration statements Program input using the cin object Common programming errors C++ for Engineers

More information

Preface... (vii) CHAPTER 1 INTRODUCTION TO COMPUTERS

Preface... (vii) CHAPTER 1 INTRODUCTION TO COMPUTERS Contents Preface... (vii) CHAPTER 1 INTRODUCTION TO COMPUTERS 1.1. INTRODUCTION TO COMPUTERS... 1 1.2. HISTORY OF C & C++... 3 1.3. DESIGN, DEVELOPMENT AND EXECUTION OF A PROGRAM... 3 1.4 TESTING OF PROGRAMS...

More information

Parallel Computing and AD. Tools and Issues

Parallel Computing and AD. Tools and Issues Parallel Computing and AD Tools and Issues Graz, 27.06.2013 Matthias Meuter Parallel Computing 2 Parallel Computing Multicore Desktop PCs Large Clusters 3 Parallel Computing Multicore Desktop PCs Large

More information

Ordinary Differential Equation Solver Language (ODESL) Reference Manual

Ordinary Differential Equation Solver Language (ODESL) Reference Manual Ordinary Differential Equation Solver Language (ODESL) Reference Manual Rui Chen 11/03/2010 1. Introduction ODESL is a computer language specifically designed to solve ordinary differential equations (ODE

More information

1. Introduction. It is well known (see for example [2]) that reverse accumulation can be used to extract all components of the gradient vector rf of a

1. Introduction. It is well known (see for example [2]) that reverse accumulation can be used to extract all components of the gradient vector rf of a reverse accumulation of functions containing gradients Bruce Christianson School of Information Sciences, University of Hertfordshire Hateld, Herts AL10 9AB, England, Europe Numerical Optimisation Centre

More information

Introduction to Functional Programming: Lecture 7 2 Functions as innite data structures Ordinary ML data structures are always nite. We can, however,

Introduction to Functional Programming: Lecture 7 2 Functions as innite data structures Ordinary ML data structures are always nite. We can, however, Introduction to Functional Programming: Lecture 7 1 Introduction to Functional Programming John Harrison University of Cambridge Lecture 7 Innite data structures Topics covered: Functions as innite data

More information

ENGINEERING 1020 Introduction to Computer Programming M A Y 2 6, R E Z A S H A H I D I

ENGINEERING 1020 Introduction to Computer Programming M A Y 2 6, R E Z A S H A H I D I ENGINEERING 1020 Introduction to Computer Programming M A Y 2 6, 2 0 1 0 R E Z A S H A H I D I Today s class Constants Assignment statement Parameters and calling functions Expressions Mixed precision

More information

Operators and Expressions:

Operators and Expressions: Operators and Expressions: Operators and expression using numeric and relational operators, mixed operands, type conversion, logical operators, bit operations, assignment operator, operator precedence

More information

Load Balancing for Problems with Good Bisectors, and Applications in Finite Element Simulations

Load Balancing for Problems with Good Bisectors, and Applications in Finite Element Simulations Load Balancing for Problems with Good Bisectors, and Applications in Finite Element Simulations Stefan Bischof, Ralf Ebner, and Thomas Erlebach Institut für Informatik Technische Universität München D-80290

More information

Introduction to Programming, Aug-Dec 2008

Introduction to Programming, Aug-Dec 2008 Introduction to Programming, Aug-Dec 2008 Lecture 1, Monday 4 Aug 2008 Administrative matters Resource material Textbooks and other resource material for the course: The Craft of Functional Programming

More information

Edge detection based on single layer CNN simulator using RK6(4)

Edge detection based on single layer CNN simulator using RK6(4) Edge detection based on single layer CNN simulator using RK64) Osama H. Abdelwahed 1, and M. El-Sayed Wahed 1 Mathematics Department, Faculty of Science, Suez Canal University, Egypt Department of Computer

More information

Optimizing INTBIS on the CRAY Y-MP

Optimizing INTBIS on the CRAY Y-MP Optimizing INTBIS on the CRAY Y-MP Chenyi Hu, Joe Sheldon, R. Baker Kearfott, and Qing Yang Abstract INTBIS is a well-tested software package which uses an interval Newton/generalized bisection method

More information

(Not Quite) Minijava

(Not Quite) Minijava (Not Quite) Minijava CMCS22620, Spring 2004 April 5, 2004 1 Syntax program mainclass classdecl mainclass class identifier { public static void main ( String [] identifier ) block } classdecl class identifier

More information

Finding a winning strategy in variations of Kayles

Finding a winning strategy in variations of Kayles Finding a winning strategy in variations of Kayles Simon Prins ICA-3582809 Utrecht University, The Netherlands July 15, 2015 Abstract Kayles is a two player game played on a graph. The game can be dened

More information

Short Notes of CS201

Short Notes of CS201 #includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system

More information

X.-P. HANG ETAL, FROM THE WAVELET SERIES TO THE DISCRETE WAVELET TRANSFORM Abstract Discrete wavelet transform (DWT) is computed by subband lters bank

X.-P. HANG ETAL, FROM THE WAVELET SERIES TO THE DISCRETE WAVELET TRANSFORM Abstract Discrete wavelet transform (DWT) is computed by subband lters bank X.-P. HANG ETAL, FROM THE WAVELET SERIES TO THE DISCRETE WAVELET TRANSFORM 1 From the Wavelet Series to the Discrete Wavelet Transform the Initialization Xiao-Ping hang, Li-Sheng Tian and Ying-Ning Peng

More information

CS201 - Introduction to Programming Glossary By

CS201 - Introduction to Programming Glossary By CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with

More information

Introduction. Following are the types of operators: Unary requires a single operand Binary requires two operands Ternary requires three operands

Introduction. Following are the types of operators: Unary requires a single operand Binary requires two operands Ternary requires three operands Introduction Operators are the symbols which operates on value or a variable. It tells the compiler to perform certain mathematical or logical manipulations. Can be of following categories: Unary requires

More information

International Journal of Foundations of Computer Science c World Scientic Publishing Company DFT TECHNIQUES FOR SIZE ESTIMATION OF DATABASE JOIN OPERA

International Journal of Foundations of Computer Science c World Scientic Publishing Company DFT TECHNIQUES FOR SIZE ESTIMATION OF DATABASE JOIN OPERA International Journal of Foundations of Computer Science c World Scientic Publishing Company DFT TECHNIQUES FOR SIZE ESTIMATION OF DATABASE JOIN OPERATIONS KAM_IL SARAC, OMER E GEC_IO GLU, AMR EL ABBADI

More information

Absolute C++ Walter Savitch

Absolute C++ Walter Savitch Absolute C++ sixth edition Walter Savitch Global edition This page intentionally left blank Absolute C++, Global Edition Cover Title Page Copyright Page Preface Acknowledgments Brief Contents Contents

More information

Ch. 12: Operator Overloading

Ch. 12: Operator Overloading Ch. 12: Operator Overloading Operator overloading is just syntactic sugar, i.e. another way to make a function call: shift_left(42, 3); 42

More information

Review of the C Programming Language

Review of the C Programming Language Review of the C Programming Language Prof. James L. Frankel Harvard University Version of 11:55 AM 22-Apr-2018 Copyright 2018, 2016, 2015 James L. Frankel. All rights reserved. Reference Manual for the

More information

Reduction of Huge, Sparse Matrices over Finite Fields Via Created Catastrophes

Reduction of Huge, Sparse Matrices over Finite Fields Via Created Catastrophes Reduction of Huge, Sparse Matrices over Finite Fields Via Created Catastrophes Carl Pomerance and J. W. Smith CONTENTS 1. Introduction 2. Description of the Method 3. Outline of Experiments 4. Conclusion

More information

Surface intersection using ane arithmetic. Computer Systems Group, Department of Computer Science, University of Waterloo

Surface intersection using ane arithmetic. Computer Systems Group, Department of Computer Science, University of Waterloo Surface intersection using ane arithmetic Luiz Henrique de Figueiredo Computer Systems Group, Department of Computer Science, University of Waterloo Waterloo, Ontario, Canada N2L 3G1 lhf@csg.uwaterloo.ca

More information

A sparse matrix approach to reverse mode automatic differentiation in Matlab

A sparse matrix approach to reverse mode automatic differentiation in Matlab A sparse matrix approach to reverse mode automatic differentiation in Matlab Shaun A. Forth and Naveen Kr. Sharma International Conference on Computational Science, ICCS 2010, University of Amsterdam,

More information

9/21/17. Outline. Expression Evaluation and Control Flow. Arithmetic Expressions. Operators. Operators. Notation & Placement

9/21/17. Outline. Expression Evaluation and Control Flow. Arithmetic Expressions. Operators. Operators. Notation & Placement Outline Expression Evaluation and Control Flow In Text: Chapter 6 Notation Operator evaluation order Operand evaluation order Overloaded operators Type conversions Short-circuit evaluation of conditions

More information

1. Introduction and Summary. Automatic dierentiation with reverse accumulation can be used to obtain the gradient vector of a function of many variabl

1. Introduction and Summary. Automatic dierentiation with reverse accumulation can be used to obtain the gradient vector of a function of many variabl automatic hessians by reverse accumulation Bruce Christianson School of Information Sciences, University of Hertfordshire Hateld, Herts AL10 9AB, England, Europe Numerical Optimisation Centre Technical

More information

Operators in C. Staff Incharge: S.Sasirekha

Operators in C. Staff Incharge: S.Sasirekha Operators in C Staff Incharge: S.Sasirekha Operators An operator is a symbol which helps the user to command the computer to do a certain mathematical or logical manipulations. Operators are used in C

More information

J. Weston, A. Gammerman, M. Stitson, V. Vapnik, V. Vovk, C. Watkins. Technical Report. February 5, 1998

J. Weston, A. Gammerman, M. Stitson, V. Vapnik, V. Vovk, C. Watkins. Technical Report. February 5, 1998 Density Estimation using Support Vector Machines J. Weston, A. Gammerman, M. Stitson, V. Vapnik, V. Vovk, C. Watkins. Technical Report CSD-TR-97-3 February 5, 998!()+, -./ 3456 Department of Computer Science

More information

of m clauses, each containing the disjunction of boolean variables from a nite set V = fv 1 ; : : : ; vng of size n [8]. Each variable occurrence with

of m clauses, each containing the disjunction of boolean variables from a nite set V = fv 1 ; : : : ; vng of size n [8]. Each variable occurrence with A Hybridised 3-SAT Algorithm Andrew Slater Automated Reasoning Project, Computer Sciences Laboratory, RSISE, Australian National University, 0200, Canberra Andrew.Slater@anu.edu.au April 9, 1999 1 Introduction

More information

Getting Started with ADOL-C

Getting Started with ADOL-C Getting Started with ADOL-C Andrea Walther 1 Department of Mathematics University of Paderborn 33098 Paderborn, Germany andrea.walther@math.uni-paderborn.de Abstract. The C++ package ADOL-C described in

More information

Rectangular Matrix Multiplication Revisited

Rectangular Matrix Multiplication Revisited JOURNAL OF COMPLEXITY, 13, 42 49 (1997) ARTICLE NO. CM970438 Rectangular Matrix Multiplication Revisited Don Coppersmith IBM Research, T. J. Watson Research Center, Yorktown Heights, New York 10598 Received

More information

Floating-point arithmetic in the Coq system

Floating-point arithmetic in the Coq system Floating-point arithmetic in the Coq system Guillaume Melquiond a,1 a INRIA Saclay Île-de-France, PCRI, bât. 650, Université Paris 11, F-91405 Orsay Cedex, France Abstract The process of proving some mathematical

More information

3.Constructors and Destructors. Develop cpp program to implement constructor and destructor.

3.Constructors and Destructors. Develop cpp program to implement constructor and destructor. 3.Constructors and Destructors Develop cpp program to implement constructor and destructor. Constructors A constructor is a special member function whose task is to initialize the objects of its class.

More information

Recursion. Comp Sci 1575 Data Structures. Introduction. Simple examples. The call stack. Types of recursion. Recursive programming

Recursion. Comp Sci 1575 Data Structures. Introduction. Simple examples. The call stack. Types of recursion. Recursive programming Recursion Comp Sci 1575 Data Structures Outline 1 2 3 4 Definitions To understand, you must understand. Familiar of recursive definitions Natural numbers are either: n+1, where n is a natural number 1

More information

The Matrix Market Exchange Formats:

The Matrix Market Exchange Formats: NISTIR 5935 The Matrix Market Exchange Formats: Initial Design Ronald F. Boisvert Roldan Pozo Karin A. Remington U. S. Department of Commerce Technology Administration National Institute of Standards and

More information

CS321 Introduction To Numerical Methods

CS321 Introduction To Numerical Methods CS3 Introduction To Numerical Methods Fuhua (Frank) Cheng Department of Computer Science University of Kentucky Lexington KY 456-46 - - Table of Contents Errors and Number Representations 3 Error Types

More information

Java Primer 1: Types, Classes and Operators

Java Primer 1: Types, Classes and Operators Java Primer 1 3/18/14 Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and M. H. Goldwasser, Wiley, 2014 Java Primer 1: Types,

More information

Topic Binary Trees (Non-Linear Data Structures)

Topic Binary Trees (Non-Linear Data Structures) Topic Binary Trees (Non-Linear Data Structures) CIS210 1 Linear Data Structures Arrays Linked lists Skip lists Self-organizing lists CIS210 2 Non-Linear Data Structures Hierarchical representation? Trees

More information

CS321. Introduction to Numerical Methods

CS321. Introduction to Numerical Methods CS31 Introduction to Numerical Methods Lecture 1 Number Representations and Errors Professor Jun Zhang Department of Computer Science University of Kentucky Lexington, KY 40506 0633 August 5, 017 Number

More information

SOLVING SYSTEMS OF LINEAR INTERVAL EQUATIONS USING THE INTERVAL EXTENDED ZERO METHOD AND MULTIMEDIA EXTENSIONS

SOLVING SYSTEMS OF LINEAR INTERVAL EQUATIONS USING THE INTERVAL EXTENDED ZERO METHOD AND MULTIMEDIA EXTENSIONS Please cite this article as: Mariusz Pilarek, Solving systems of linear interval equations using the "interval extended zero" method and multimedia extensions, Scientific Research of the Institute of Mathematics

More information

GENETIC ALGORITHMS, FLOATING POINT NUMBERS AND APPLICATIONS

GENETIC ALGORITHMS, FLOATING POINT NUMBERS AND APPLICATIONS International Journal of Modern Physics C Vol. 16, No. 11 (2005) 1811 1816 c World Scientific Publishing Company GENETIC ALGORITHMS, FLOATING POINT NUMBERS AND APPLICATIONS YORICK HARDY and WILLI-HANS

More information

Announcements. Lab Friday, 1-2:30 and 3-4:30 in Boot your laptop and start Forte, if you brought your laptop

Announcements. Lab Friday, 1-2:30 and 3-4:30 in Boot your laptop and start Forte, if you brought your laptop Announcements Lab Friday, 1-2:30 and 3-4:30 in 26-152 Boot your laptop and start Forte, if you brought your laptop Create an empty file called Lecture4 and create an empty main() method in a class: 1.00

More information

100 Myung Hwan Na log-hazard function. The discussion section of Abrahamowicz, et al.(1992) contains a good review of many of the papers on the use of

100 Myung Hwan Na log-hazard function. The discussion section of Abrahamowicz, et al.(1992) contains a good review of many of the papers on the use of J. KSIAM Vol.3, No.2, 99-106, 1999 SPLINE HAZARD RATE ESTIMATION USING CENSORED DATA Myung Hwan Na Abstract In this paper, the spline hazard rate model to the randomly censored data is introduced. The

More information

Tilings. Mark McClure. July 16, Self-similarity is a concept often associated with fractal geometry. There

Tilings. Mark McClure. July 16, Self-similarity is a concept often associated with fractal geometry. There Digraph Self-Similar Sets and Aperiodic Tilings Mark McClure July 16, 2001 1 Introduction Self-similarity is a concept often associated with fractal geometry. There are many interesting self-similar sets

More information

A parallel frontal solver for nite element applications

A parallel frontal solver for nite element applications INTERNATIONAL JOURNAL FOR NUMERICAL METHODS IN ENGINEERING Int. J. Numer. Meth. Engng 2001; 50:1131 1144 A parallel frontal solver for nite element applications Jennifer A. Scott ; Computational Science

More information

Determination of Inner and Outer Bounds of Reachable Sets

Determination of Inner and Outer Bounds of Reachable Sets Determination of Inner and Outer Bounds of Reachable Sets Francisco Rego (francisco.rego@aero.ist.utl.pt) Abstract - To verify the safety of a dynamic system, one important procedure is to compute its

More information

Lecture 9 - Matrix Multiplication Equivalences and Spectral Graph Theory 1

Lecture 9 - Matrix Multiplication Equivalences and Spectral Graph Theory 1 CME 305: Discrete Mathematics and Algorithms Instructor: Professor Aaron Sidford (sidford@stanfordedu) February 6, 2018 Lecture 9 - Matrix Multiplication Equivalences and Spectral Graph Theory 1 In the

More information

Introduction to Computational Mathematics

Introduction to Computational Mathematics Introduction to Computational Mathematics Introduction Computational Mathematics: Concerned with the design, analysis, and implementation of algorithms for the numerical solution of problems that have

More information

Reproducibility in Stochastic Simulation

Reproducibility in Stochastic Simulation Reproducibility in Stochastic Simulation Prof. Michael Mascagni Department of Computer Science Department of Mathematics Department of Scientific Computing Graduate Program in Molecular Biophysics Florida

More information

Let v be a vertex primed by v i (s). Then the number f(v) of neighbours of v which have

Let v be a vertex primed by v i (s). Then the number f(v) of neighbours of v which have Let v be a vertex primed by v i (s). Then the number f(v) of neighbours of v which have been red in the sequence up to and including v i (s) is deg(v)? s(v), and by the induction hypothesis this sequence

More information

Symbolic Evaluation of Sums for Parallelising Compilers

Symbolic Evaluation of Sums for Parallelising Compilers Symbolic Evaluation of Sums for Parallelising Compilers Rizos Sakellariou Department of Computer Science University of Manchester Oxford Road Manchester M13 9PL United Kingdom e-mail: rizos@csmanacuk Keywords:

More information

to be known. Let i be the leg lengths (the distance between A i and B i ), X a 6-dimensional vector dening the pose of the end-eector: the three rst c

to be known. Let i be the leg lengths (the distance between A i and B i ), X a 6-dimensional vector dening the pose of the end-eector: the three rst c A formal-numerical approach to determine the presence of singularity within the workspace of a parallel robot J-P. Merlet INRIA Sophia-Antipolis France Abstract: Determining if there is a singularity within

More information

Expressions and Casting

Expressions and Casting Expressions and Casting C# Programming Rob Miles Data Manipulation We know that programs use data storage (variables) to hold values and statements to process the data The statements are obeyed in sequence

More information

Comparison of Packages for Interval Arithmetic

Comparison of Packages for Interval Arithmetic INFORMATICA, 2005, Vol. 16, No. 1, 145 154 145 2005 Institute of Mathematics and Informatics, Vilnius Comparison of Packages for Interval Arithmetic Julius ŽILINSKAS Institute of Mathematics and Informatics

More information

Computational Methods. Sources of Errors

Computational Methods. Sources of Errors Computational Methods Sources of Errors Manfred Huber 2011 1 Numerical Analysis / Scientific Computing Many problems in Science and Engineering can not be solved analytically on a computer Numeric solutions

More information

The driving motivation behind the design of the Janus framework is to provide application-oriented, easy-to-use and ecient abstractions for the above

The driving motivation behind the design of the Janus framework is to provide application-oriented, easy-to-use and ecient abstractions for the above Janus a C++ Template Library for Parallel Dynamic Mesh Applications Jens Gerlach, Mitsuhisa Sato, and Yutaka Ishikawa fjens,msato,ishikawag@trc.rwcp.or.jp Tsukuba Research Center of the Real World Computing

More information

is bad when combined with a LCG with a small multiplier. In section 2 this observation is examined. Section 3 gives portable implementations for LCGs

is bad when combined with a LCG with a small multiplier. In section 2 this observation is examined. Section 3 gives portable implementations for LCGs Version: 25.11.92 (To appear in ACM TOMS) A Portable Uniform Random Number Generator Well Suited for the Rejection Method W. Hormann and G. Deringer University of Economics and Business Administration

More information

(5 2) Introduction to Classes in C++ Instructor - Andrew S. O Fallon CptS 122 (February 7, 2018) Washington State University

(5 2) Introduction to Classes in C++ Instructor - Andrew S. O Fallon CptS 122 (February 7, 2018) Washington State University (5 2) Introduction to Classes in C++ Instructor - Andrew S. O Fallon CptS 122 (February 7, 2018) Washington State University Key Concepts Function templates Defining classes with member functions The Rule

More information

Incremental Flow Analysis. Andreas Krall and Thomas Berger. Institut fur Computersprachen. Technische Universitat Wien. Argentinierstrae 8

Incremental Flow Analysis. Andreas Krall and Thomas Berger. Institut fur Computersprachen. Technische Universitat Wien. Argentinierstrae 8 Incremental Flow Analysis Andreas Krall and Thomas Berger Institut fur Computersprachen Technische Universitat Wien Argentinierstrae 8 A-1040 Wien fandi,tbg@mips.complang.tuwien.ac.at Abstract Abstract

More information

ADJOINT CALCULATION USING TIMEMINIMAL PROGRAM REVERSALS FOR

ADJOINT CALCULATION USING TIMEMINIMAL PROGRAM REVERSALS FOR ADJOINT CALCULATION USING TIMEMINIMAL PROGRAM REVERSALS FOR MULTI-PROCESSOR MACHINES Andrea Walther Institute of Scientific Computing Technical University Dresden awa lther@ math. tu-dresden.de Uwe Lehmann

More information

Numerical Aspects of Special Functions

Numerical Aspects of Special Functions Numerical Aspects of Special Functions Nico M. Temme In collaboration with Amparo Gil and Javier Segura, Santander, Spain. Nico.Temme@cwi.nl Centrum voor Wiskunde en Informatica (CWI), Amsterdam Numerics

More information

Existence Verification for Singular Zeros of Nonlinear Systems

Existence Verification for Singular Zeros of Nonlinear Systems Existence Verification for Singular Zeros of Nonlinear Systems by R. Baker Kearfott, rbk@usl.edu Department of Mathematics, University of Southwestern Louisiana and Jianwei Dian, dian@usl.edu Department

More information

F A S C I C U L I M A T H E M A T I C I

F A S C I C U L I M A T H E M A T I C I F A S C I C U L I M A T H E M A T I C I Nr 35 2005 B.G. Pachpatte EXPLICIT BOUNDS ON SOME RETARDED INTEGRAL INEQUALITIES Abstract: In this paper we establish some new retarded integral inequalities which

More information

Reliable Nonlinear Parameter Estimation Using Interval Analysis: Error-in-Variable Approach

Reliable Nonlinear Parameter Estimation Using Interval Analysis: Error-in-Variable Approach Reliable Nonlinear Parameter Estimation Using Interval Analysis: Error-in-Variable Approach Chao-Yang Gau and Mark A. Stadtherr Λ Department of Chemical Engineering University of Notre Dame Notre Dame,

More information

An Interactive Desk Calculator. Project P2 of. Common Lisp: An Interactive Approach. Stuart C. Shapiro. Department of Computer Science

An Interactive Desk Calculator. Project P2 of. Common Lisp: An Interactive Approach. Stuart C. Shapiro. Department of Computer Science An Interactive Desk Calculator Project P2 of Common Lisp: An Interactive Approach Stuart C. Shapiro Department of Computer Science State University of New York at Bualo January 25, 1996 The goal of this

More information

F k G A S S1 3 S 2 S S V 2 V 3 V 1 P 01 P 11 P 10 P 00

F k G A S S1 3 S 2 S S V 2 V 3 V 1 P 01 P 11 P 10 P 00 PRLLEL SPRSE HOLESKY FTORIZTION J URGEN SHULZE University of Paderborn, Department of omputer Science Furstenallee, 332 Paderborn, Germany Sparse matrix factorization plays an important role in many numerical

More information

8ns. 8ns. 16ns. 10ns COUT S3 COUT S3 A3 B3 A2 B2 A1 B1 B0 2 B0 CIN CIN COUT S3 A3 B3 A2 B2 A1 B1 A0 B0 CIN S0 S1 S2 S3 COUT CIN 2 A0 B0 A2 _ A1 B1

8ns. 8ns. 16ns. 10ns COUT S3 COUT S3 A3 B3 A2 B2 A1 B1 B0 2 B0 CIN CIN COUT S3 A3 B3 A2 B2 A1 B1 A0 B0 CIN S0 S1 S2 S3 COUT CIN 2 A0 B0 A2 _ A1 B1 Delay Abstraction in Combinational Logic Circuits Noriya Kobayashi Sharad Malik C&C Research Laboratories Department of Electrical Engineering NEC Corp. Princeton University Miyamae-ku, Kawasaki Japan

More information

Using the HP 38G in upper school: preliminary thoughts

Using the HP 38G in upper school: preliminary thoughts Using the HP 38G in upper school: preliminary thoughts Barry Kissane Murdoch University The following examples have been devised to show some of the range of ways in which the HP 38G graphics calculator

More information

G Programming Languages - Fall 2012

G Programming Languages - Fall 2012 G22.2110-003 Programming Languages - Fall 2012 Lecture 3 Thomas Wies New York University Review Last week Names and Bindings Lifetimes and Allocation Garbage Collection Scope Outline Control Flow Sequencing

More information