Check an ADFun Object For Nan Results
Keywords: check adfun object nan results syntax debugging f b default error message vector_size file_name index get_check_for_nan vec file example

| Prev | Next |  |  |  |  |  |

Check an ADFun Object For Nan Results
Syntax
`f.check_for_nan(b)
` `b = f.check_for_nan()
` `get_check_for_nan(vec, file)
`
Debugging
If `NDEBUG` is not defined, and the result of a forward or reverse calculation contains a nan , CppAD can halt with an error message.
f
For the syntax where `b` is an argument, `f` has prototype `
ADFun<Base> f
` (see `ADFun<Base>` constructor ). For the syntax where `b` is the result, `f` has prototype `
const ADFun<Base> f
`
b
This argument or result has prototype `
bool b
` Future calls to `f.Forward` will (will not) check for `nan`. depending on if `b` is true (false).
Default
The value for this setting after construction of `f` ) is true. The value of this setting is not affected by calling Dependent for this function object.
Error Message
If this error is detected during zero order forward mode, the values of the independent variables that resulted in the `nan` are written to a temporary binary file. This is so that you can run the original source code with those values to see what is causing the `nan`.
vector_size
The error message with contain the text `vector_size = vector_size` followed the newline character `'\n'`. The value of `vector_size` is the number of elements in the independent vector.
file_name
The error message with contain the text `file_name = file_name` followed the newline character `'\n'`. The value of `file_name` is the name of the temporary file that contains the dependent variable values.
index
The error message will contain the text `index = index` followed by the newline character `'\n'`. The value of `index` is the lowest dependent variable index that has the value `nan`.
get_check_for_nan
This routine can be used to get the independent variable values that result in a `nan`.
vec
This argument has prototype `
CppAD::vector<Base>& vec
` It size must be equal to the corresponding value of vector_size in the corresponding error message. The input value of its elements does not matter. Upon return, it will contain the values for the independent variables, in the corresponding call to Independent , that resulted in the `nan`. (Note that the call to `Independent` uses an vector with elements of type `AD<Base>` and `vec` has elements of type `Base` .)
file
This argument has prototype `
const std::string& file
` It must be the value of file_name in the corresponding error message.
Example
The file check_for_nan.cpp contains an example and test of these operations. It returns true if it succeeds and false otherwise.

Input File: cppad/local/check_for_nan.hpp