[eigen] Zeros affect sequence of operation |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
Custom scalar AD types, for example Adolc
https://eigen.tuxfamily.org/dox/TopicCustomizing_CustomScalar.html
record an operation sequence and can use it at different values for the
independent variables.
It appears that Eigen will short circuit certain operations when a value
is zero. In CppAD there is a notion of a variable and a parameter.
Parameters do not depend on the independent variables.
Because CppAD can have multiple levels of AD, a parameter at one level
may be a variable at another. Therefore, in CppAD, it is necessary to
have the notation of identically equal zero; i.e., this value will
always be zero no matter what. Multiplication of a variable by an
identically zero value results in an identically zero value (which leads
to certain optimizations).
Note that, for the type double, identically zero and zero are the same.
It would be nice if Eigen understood variables and parameters and chose
its operation sequence accordingly.
Brad.