ADIC: an extensible automatic differentiation tool for ANSI-C

被引:0
|
作者
Bischof, CH
Roh, L
Mauer-oats, AJ
机构
[1] Argonne Natl Lab, Div Math & Comp Sci, Argonne, IL 60439 USA
[2] Univ Illinois, Dept Math, Urbana, IL 61802 USA
来源
SOFTWARE-PRACTICE & EXPERIENCE | 1997年 / 27卷 / 12期
关键词
automatic differentiation; derivatives; semantic augmentation; source transformation;
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
In scientific computing, we often require the derivatives partial derivative f/partial derivative x of a function f expressed as a program with respect to some input parameter(s) x, say, Automatic Differentiation (AD) techniques augment the program with derivative computation by applying the chain rule of calculus to elementary operations in an automated fashion, This article introduces ADIC (Automatic Differentiation of C), a new AD tool for ANSI-C programs, ADIC is currently the only tool for ANSI-C that employs a source-to-source program transformation approach; that is, it takes a C code and produces a new C code that computes the original results as well as the derivatives, We first present ADIC 'by example' to illustrate the functionality and ease of use of ADIC and then describe in detail the architecture of ADIC. ADIC incorporates a modular design that provides a foundation for both rapid prototyping of better AD algorithms and their sharing across AD tools for different languages, A component architecture called AIF (Automatic Differentiation Intermediate Form) separates core AD concepts from their language-specific implementation and allows the development of generic AD modules that can be reused directly in other AIF-based AD tools, The language-specific ADIC front-end and back-end canonicalize C: programs to make them fit for semantic augmentation and manage, for example, the association of a program variable with its derivative object, We also report on applications of ADIC to a semiconductor device simulator, 3-D CFD grid generator, vehicle simulator, and neural network code. (C) 1997 by John Wiley & Sons, Ltd.
引用
收藏
页码:1427 / 1456
页数:30
相关论文
共 50 条
  • [21] Implementation of the Memory-safe Full ANSI-C Compiler
    Oiwa, Yutaka
    [J]. ACM SIGPLAN NOTICES, 2009, 44 (06) : 259 - 269
  • [22] Model checking LTL properties over ANSI-C programs with bounded traces
    Jeremy Morse
    Lucas Cordeiro
    Denis Nicole
    Bernd Fischer
    [J]. Software & Systems Modeling, 2015, 14 : 65 - 81
  • [23] COMPUTING A-STAR-B (MOD-N) EFFICIENTLY IN ANSI-C
    BAKER, HG
    [J]. SIGPLAN NOTICES, 1992, 27 (01): : 95 - 98
  • [24] SMT-Based Bounded Model Checking for Embedded ANSI-C Software
    Cordeiro, Lucas
    Fischer, Bernd
    Marques-Silva, Joao
    [J]. 2009 IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING, PROCEEDINGS, 2009, : 137 - 148
  • [25] Model checking LTL properties over ANSI-C programs with bounded traces
    Morse, Jeremy
    Cordeiro, Lucas
    Nicole, Denis
    Fischer, Bernd
    [J]. SOFTWARE AND SYSTEMS MODELING, 2015, 14 (01): : 65 - 81
  • [26] SMT-Based Bounded Model Checking for Embedded ANSI-C Software
    Cordeiro, Lucas
    Fischer, Bernd
    Marques-Silva, Joao
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2012, 38 (04) : 957 - 974
  • [27] From UML to ANSI-C - An Eclipse-based code generation framework
    Funk, Mathias
    Nyssen, Alexander
    Lichter, Horst
    [J]. ICSOFT 2008: PROCEEDINGS OF THE THIRD INTERNATIONAL CONFERENCE ON SOFTWARE AND DATA TECHNOLOGIES, VOL SE/GSDCA/MUSE, 2008, : 12 - +
  • [28] Context-Bounded Model Checking of LTL Properties for ANSI-C Software
    Morse, Jeremy
    Cordeiro, Lucas
    Nicole, Denis
    Fischer, Bernd
    [J]. SOFTWARE ENGINEERING AND FORMAL METHODS, 2011, 7041 : 302 - +
  • [29] Scheduling and partitioning ANSI-C programs onto multi-FPGA CCM architectures
    Peterson, JB
    OConnor, RB
    Athanas, PM
    [J]. IEEE SYMPOSIUM ON FPGAS FOR CUSTOM COMPUTING MACHINES, PROCEEDINGS, 1996, : 178 - 187
  • [30] ANSI-C in safety critical applications lessons-learned from software evaluation
    Lindner, A
    [J]. COMPUTER SAFETY, RELIABILITY AND SECURITY, 1998, 1516 : 209 - 217