last modified: 26-OCT-1988 | catalog | categories | new | search |

NESC1058 JAKEF.

JAKEF, Gradient or Jacobian Function from Objective Function or Vector Function

top ]
1. NAME OR DESIGNATION OF PROGRAM:  JAKEF.
top ]
2. COMPUTERS
To submit a request, click below on the link of the version you wish to order. Only liaison officers are authorised to submit online requests. Rules for requesters are available here.
Program name Package id Status Status date
JAKEF NESC1058/02 Tested 26-OCT-1988

Machines used:

Package ID Orig. computer Test computer
NESC1058/02 Many Computers DEC VAX 8810
top ]
3. DESCRIPTION OF PROGRAM OR FUNCTION

JAKEF is a language processor that accepts as input a single- or double-precision ANSI standard 1977 FORTRAN subroutine defining an objective function f(x), or a vector function F(x), and produces as output a single- or double- precision ANSI standard 1977 FORTRAN subroutine defining the gradient of f(x), or the Jacobian of F(x).
top ]
4. METHOD OF SOLUTION

JAKEF is a four-pass compiler consisting of a lexical preprocessor, a parser, a tree-building and flow analysis pass, and a differentiator and output construction pass. The lexical preprocessor reworks the input FORTRAN program to give it a recognizable lexical structure. The parser transforms the preprocessed input into a string of tokens in a postfix representation of the program tree. The tree-building and flow analysis pass constructs a tree out of the postfix token string. The differentiator indentifies relevant assignment statements; then, if necessary, it analyzes them into component statements governed by a single differentiation rule and augments each of these statements  with a call to a member of the run-time support package which implements the differentiation rule. After completing the construction of the main body of the routine, JAKEF inserts calls to support package routines that complete the differentiation. This results in a modified program tree in a form compatible with FORTRAN rules.
top ]
5. RESTRICTIONS ON THE COMPLEXITY OF THE PROBLEM

Statement functions  and EQUIVALENCE's that involve the independent variables are not handled correctly. Variables, constants, or functions of type COMPLEX are not recognized. Character substring expressions and alternate returns are not permitted.
top ]
6. TYPICAL RUNNING TIME

The sample problem required 10 CPU seconds and 15 CPU seconds on a DEC VAX11/780 and an IBM4331, respectively.  NESC9877/02: NEA-DB executed all tests included in this package on VAX 8810. The complete run required 47 seconds of CPU time.
top ]
7. UNUSUAL FEATURES OF THE PROGRAM

JAKEF produces derivative codes that are reliable, as accurate as their hand-coded counterparts, and more accurate than difference approximations. Timming tests indicate that the gradient codes are more efficient and the Jacobian codes less efficient than differencing schemes.
top ]
8. RELATED AND AUXILIARY PROGRAMS:
top ]
9. STATUS
Package ID Status date Status
NESC1058/02 26-OCT-1988 Tested at NEADB
top ]
10. REFERENCES

- JAKEF, NESC No. 1058, JAKEF Tape Description,
  National Energy Softawre Center Note 87-87, August 28, 1987.
NESC1058/02, included references:
- K.E. Hillstrom:
  User Guide for JAKEF.
  ANL/MCS-TM-16, Rev. 1  (December 1985)
- K.E. Hillstrom:
  Installation Guide for JAKEF.
  ANL/MCS-TM-17, Rev. 1  (December 1985)
- L. Eyberger:
  Availability of JAKEF Replacement Edition
  NESC Note 87-94  (September 25, 1987)
top ]
11. MACHINE REQUIREMENTS

167K bytes of memory are required for execution on a DEC VAX11/780; the IBM4331 requires 581K bytes of memory.
NESC9877/01: Storage requirements for running the tests on a VAX-11/780 computer are: 164K bytes (JAKEF processor); 48K bytes (single-precision checkout programs); 70K bytes (double-precision checkout programs).
top ]
12. PROGRAMMING LANGUAGE(S) USED
Package ID Computer language
NESC1058/02 FORTRAN-77
top ]
13. OPERATING SYSTEM UNDER WHICH PROGRAM IS EXECUTED

UNIX, VMS 4.2 (DEC VAX11), VM/CMS (IBM4331).
NESC9877/02: VMS-V5.0-1 (VAX 8810).
top ]
14. OTHER PROGRAMMING OR OPERATING INFORMATION OR RESTRICTIONS

JAKEF uses an extented character set and transfer of control into an IF- block from outside the IF-block. Consequently, it is portable in the sense that it can be used without alteration at any installation that accepts these conditions. In particular, JAKEF is not compatible with the CDC FTN5 compiler.
top ]
15. NAME AND ESTABLISHMENT OF AUTHORS

K.E. Hillstrom
Argonne National Laboratory
Mathematics and Computer Science Division
9700 South Cass Avenue
Argonne, Illinois 60439
top ]
16. MATERIAL AVAILABLE
NESC1058/02
File name File description Records
NESC1058_02.001 Information file 102
NESC1058_02.002 Command procedure for 4 sample problems 88
NESC1058_02.003 Sample main program for JAKEF processor 11
NESC1058_02.004 JAKED1 interface routine 52
NESC1058_02.005 JAKEF1 interface routine 41
NESC1058_02.006 JAKEF processor 5997
NESC1058_02.007 Single-precision run-time routines 162
NESC1058_02.008 Double-precision run-time routines 162
NESC1058_02.009 JAKEF user guide 1272
NESC1058_02.010 Single-precision CHEB function/Sample-1 33
NESC1058_02.011 Single-precision CHEB driver 162
NESC1058_02.012 Single-precision WATSN function/Sample-2 33
NESC1058_02.013 Single-precision WATSN driver 166
NESC1058_02.014 Double-precision CHEB function/Sample 3 33
NESC1058_02.015 Double-precision CHEB driver 162
NESC1058_02.016 Ddouble-precision WATSN function/Sample 4 33
NESC1058_02.017 Double-precision WATSN driver 166
NESC1058_02.018 VAX command procedure for Sample-1 53
NESC1058_02.019 IBM command procedure for Sample-1 53
NESC1058_02.020 Produced function from sample case 1 67
NESC1058_02.021 Produced function from sample case 2 71
NESC1058_02.022 Produced function from sample case 3 67
NESC1058_02.023 Produced function from sample case 4 71
NESC1058_02.024 Check-out for sample case 1 33
NESC1058_02.025 Check-out for sample case 2 33
NESC1058_02.026 Check-out for sample case 3 33
NESC1058_02.027 Check-out for sample case 4 33
top ]
17. CATEGORIES
  • P. General Mathematical and Computing System Routines

Keywords: FORTRAN, algorithms, differential equations.