Prev Next

Printing AD Values During Forward Mode

Syntax
f.Forward(0, x)
PrintFor(beforevar)
PrintFor(posbeforevarafter)

Purpose
The zero order forward mode command
     f
.Forward(0, x)
assigns the independent variable vector equal to x . It then computes a value for all of the dependent variables in the operation sequence corresponding to f . Putting a PrintFor in the operation sequence will cause the value of var , corresponding to x , to be printed during zero order forward operations.

f.Forward(0, x)
The objects f , x, and the purpose for this operation, are documented in Forward .

pos
If present, the argument pos has one of the following prototypes
     const AD<
Base>&               pos
     const VecAD<
Base>::reference& pos
In this case the text and var will be printed if and only if pos is not greater than zero and a finite number.

before
The argument before has prototype
     const char* 
before
This text is written to std::cout before var .

var
The argument var has one of the following prototypes
     const AD<
Base>&               var
     const VecAD<
Base>::reference& var
The value of var , that corresponds to x, is written to std::cout during the execution of
     
f.Forward(0, x)
Note that var may be a variable or parameter . (A parameters value does not depend on the value of the independent variable vector x .)

after
The argument after has prototype
     const char* 
after
This text is written to std::cout after var .

Discussion
This is helpful for understanding why tape evaluations have trouble. For example, if one of the operations in f is log(var) and var <= 0 , the corresponding result will be nan .

Alternative
The Output section describes the normal printing of values; i.e., printing when the corresponding code is executed.

Example
The program print_for_cout.cpp is an example and test that prints to standard output. The output of this program states the conditions for passing and failing the test. The function print_for_string.cpp is an example and test that prints to an standard string stream. This function automatically check for correct output.
Input File: cppad/local/print_for.hpp