![]() |
Prev | Next | WishList |
BenderQuad
specifications.
retape(k)
is true for some
k
,
one can still use the structure of the representation to compute a
sparsity structure. Currently ipopt_cppad_nlp
uses a dense
sparsity structure for this case
new_x
flag could be used to avoid zero order forward mode
computations. Because the same ADFun
object is used at different
argument values, this would require forward mode at multiple argument values
(see multiple arguments
).
AD<double>
.
This would speed up compilation for the most common usage where
the Base type is double
.
std::numeric_limits<double>::epsilon()
instead
1e-10
for a small number in correctness checks; e.g.,
see tan.cpp
.
warning C4396:%...%
for every template function that is declared as a both a friend and inline
(it thinks it is only doing this for specializations of template functions).
The CPPAD_INLINE
preprocessor symbol is used to convert
these inline
directives to
empty code (if a Microsoft Visual C++ is used).
If it is shown to be faster and does not slow down CppAD with other compilers,
non-friend functions should be used to map these operations
to member functions so that both can be compiled inline.
AD<double>
and ADFun<double>
that
would make it easy to connect the SWIG languages, e.g., Python, see,
SWIG
for a description of SWIG
and a list of the languages.
This could also be used for faster evaluation of algorithms
that have a fixed operation sequence
.
This would require the library
wish list
entry to be implemented.
USE_CPPAD_SPARSE_HESSIAN
equal to
1
(true) and 0
(false)
indicates that sparse_hessian
is more efficient
than Hessian
(for large sparse cases).
Create an implementation of sparse_hessian
that is more efficient
(the initial implementation was only meant as a demonstration).
For example, use arrays of index sets where for each row (column) the
index contains the non-zero column (row) indices.
(Also see Ipopt
wish list.)
tan
and tanh
functions
are implemented using the AD sin
, cos
, sinh
and cosh
functions.
They could be improved by making them atomic using the equations
\[
\begin{array}{rcl}
\tan^{(1)} (x) & = & 1 + \tan (x)^2 \\
\tanh^{(1)} (x) & = & 1 - \tanh (x)^2
\end{array}
\]
see standard math functions
.
int
when assigning
from double
to
VecAD< AD<double> >::reference
object.