f.optimizeprocedure reduces the number of operations, and thereby the time and the memory, required to compute function and derivative values.
The default for
const std::string& options
optionsis the empty string. If it is present, it must consist of one or more of the options below separated by a single space character.
optimizefunction can create conditional skip operators to improve the speed of conditional expressions; see optimize . If the sub-string
options, conditional skip operations are not be generated. This may make the optimize routine use significantly less memory and take less time to optimize
f. If conditional skip operations are generated, it may save a significant amount of time when using
ffor forward or reverse mode calculations; see number_skip .
options, comparison operators will be removed from the optimized function. These operators are necessary for the compare_change functions to be meaningful. On the other hand, they are not necessary, and take extra time, when the compare_change functions are not used.
options, PrintFor operations will be removed form the optimized function. These operators are useful for reporting problems evaluating derivatives at independent variable values different from those used to record a function.
|forward_active.cpp||Example Optimization and Forward Activity Analysis|
|reverse_active.cpp||Example Optimization and Reverse Activity Analysis|
|compare_op.cpp||Example Optimization and Comparison Operators|
|print_for_op.cpp||Example Optimization and Print Forward Operators|
|conditional_skip.cpp||Example Optimization and Conditional Expressions|
|nest_conditional.cpp||Example Optimization and Nested Conditional Expressions|
|cumulative_sum.cpp||Example Optimization and Cumulative Sum Operations|
f, it will require more memory and time than required after the optimization procedure. In addition, it will need to be redone. For this reason, it is more efficient to use
See the discussion about sequence constructors .
ADFun<Base> f(x, y)
onetapeis true and
optimizeis true, the optimized tape will be reused many times. If
onetapeis false and
optimizeis true, the tape will be re-optimized for each test.
uaffect the dependent variables of
f. For each atomic operation, the current atomic_sparsity setting is used to determine if
set_sparsity_enumis used to determine dependency relations between argument and result variables.
u[i]does not affect the value of the dependent variables for
f, the value of
u[i]is set to nan .
fand the results are checked to see that they are the same as before. If they are not the same, the ErrorHandler is called with a known error message related to