1 date: December 12, 1997 le: walters9. Automatic Dierentiation. form of an algorithm (e.g. computer program) so
|
|
- Baldwin Ryan
- 5 years ago
- Views:
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 CRPC-TR93431 May 1993 Center for Research on Parallel Computation Rice University 6100 South
More informationExtra-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 informationPlaintext (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 informationImage 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 informationambrosys 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 informationAutomatic 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 informationAutomatic 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 informationOverview (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 informationc-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 informationArithmetic 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 informationA 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 informationInner 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 informationAutomatic 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 informationSparsity 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 informationY. 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 informationAlgorithmic 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 informationprogramming 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 informationPrecision 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 informationAn 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 informationLECTURE 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 informationperform. 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 informationLECTURE 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 informationProgramming 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 informationOBJECT 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 informationHowever, 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 informationAdvanced 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 informationON 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 informationIntroduction 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 informationCSCI 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 informationDierential-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 informationLecture 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 informationPreface... (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 informationParallel 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 informationOrdinary 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 information1. 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 informationIntroduction 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 informationENGINEERING 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 informationOperators 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 informationLoad 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 informationIntroduction 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 informationEdge 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 informationOptimizing 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 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 informationFinding 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 informationShort 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 informationX.-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 informationCS201 - 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 informationIntroduction. 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 informationInternational 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 informationAbsolute 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 informationCh. 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 informationReview 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 informationReduction 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 informationSurface 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 informationA 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 information9/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 information1. 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 informationOperators 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 informationJ. 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 informationof 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 informationGetting 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 informationRectangular 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 informationFloating-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 information3.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 informationRecursion. 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 informationThe 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 informationCS321 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 informationJava 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 informationTopic 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 informationCS321. 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 informationSOLVING 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 informationGENETIC 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 informationAnnouncements. 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 information100 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 informationTilings. 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 informationA 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 informationDetermination 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 informationLecture 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 informationIntroduction 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 informationReproducibility 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 informationLet 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 informationSymbolic 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 informationto 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 informationExpressions 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 informationComparison 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 informationComputational 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 informationThe 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 informationis 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 Key Concepts Function templates Defining classes with member functions The Rule
More informationIncremental 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 informationADJOINT 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 informationNumerical 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 informationExistence 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 informationF 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 informationReliable 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 informationAn 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 informationF 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 information8ns. 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 informationUsing 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 informationG 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