Extensions to ADOL-C version 1.7 (ext1_patch.tar.gz) ================================ Go to the ADOL-C directory and unpack the tared and compressed patch files by typing tar -xzvf ext1_patch.tar.gz This will place additional source files and the patch files into the appropriate subdirectories. Now type do_patch This will perform the calls to the patch routine and call make to recompile the library libad.a. -------------------------------------------------------------------------------- The calling sequence of tape_doc is: void tape_doc(short tnum, /* tape id */ int depcheck, /* consistency chk on # of dependents */ int indcheck, /* consistency chk on # of independents */ double *basepoint, /* independent variable values */ double *valuepoint) /* dependent variable values */ The parameters are analogous to the parameters in the forward routines. The routine tape_doc writes the contents of a tape to a LaTeX2e tabular in a file tape.tex. The order of locations and numerical values corresponds to the tape format given in four tables in tape_doc.tex. -------------------------------------------------------------------------------- The calling sequence of zos_forward is: int zos_forward(short tnum, /* tape id */ int depcheck, /* consistency chk on # of dependents */ int indcheck, /* consistency chk on # of independents */ int keep, /* flag for reverse sweep */ double *argument, /* independent variable values */ double *taylors) /* dependent variable values */ The parameters are similar to the parameters in hos_forward except that no derivative information is involved. If the keep parameter is 1 then zos_forward stores the zero order taylor coefficients for a succeeding first order reverse sweep (similar to keep in the trace_on routine). -------------------------------------------------------------------------------- The routine tensor: int tensor( int tag, int m, int n, double* argument, double* functions, double** gradients, double** hessians, /* in symmetric storage mode */ double** tensors /* in symmetric storage mode */ ) calculates the derivative tensors up to degree 3 in forward mode according to the approach given in: "Evaluating higher derivative tensors by forward propagation of univariate Taylor series", first draft, 1995 that can be retrieved from: ftp://ftp.math.tu-dresden.de/pub/ADOLC/ADOLC_BETA/tensors.ps.Z -------------------------------------------------------------------------------- The calling sequence of makePatFile is: void makePatFile(int tnum, /* tape id */ int dep, /* consistency chk on # of dependents */ int ind ) /* consistency chk on # of independents */ The routine makePatFile writes a sequence of integers (ASCII) to a file named , where FNAMENZ is from usrprms.h, default: "_adol-NZ_tape.". The integers are the nonzeros of the Jacobian of the tape tnum. The rows of the Jacobian are separated by -1, each integer represents the column index (ranging from 0 to ind-1) of one nonzero element of the row. Therefore the file contains (dep + nonzeros_in_Jacobian) integers. For saving space one can switch to write a binary integer file by compiling lines 35-37 instead 39-41 in file PatFile.C. For testing add the line makePatFile(1,n,n); after line 60 in /SRC/DEX/odexam.c (/SRC/DEX/odexam.C on RS/6000). This will produce a file called '_adol-NZ_tape.1' which contains the sparsity pattern for the 3x3 Jacobian of this example. --------------------------------------------------------------------------------