Printing AD Values During Forward Mode

Syntax
f.Forward(0, x)  PrintFor(before, var)  PrintFor(pos, before, var, after) 
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 .

Redirecting Output
You can redirect this output to any standard output stream; see the s in the forward mode documentation.

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 ad_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.