![]() |
Prev | Next | whats_new_08 |
x(t)
is a pair of exponential functions instead of a linear and quadratic.
Fixed some of the comments in this example and included the source
code in the documentation (which was missing by mistake).
r_eval
to eval_r
in ipopt_cppad_nlp
.
Fix a dimension of u_ad
error in ipopt_cppad_nlp
.
J_{k, \ell}
was different for different values of
k
and
\ell
.
In ipopt_cppad_nlp
,
combined
fg_info->domain_index()
and
fg_info->range_index()
into a single function called
fg_info->index()
.
Also added more error checking (if NDEBUG
is not defined).
J_{k, \ell}
was different for different values of
k
and
\ell
.)
example/ipopt_cppad_nlp.cpp
source:
for(j = 0; j < n_; j++)
- x_ad_vec[0] = x[j];
+ x_ad_vec[j] = x[j];
This did not show up in testing because there currently is no test of
ipopt_cppad_nlp
where the operation sequence depends
on the value of
x
.
Changed eval_grad_f
in ipopt_cppad_nlp.cpp
to be more efficient.
size_t
instead of Ipopt::Index
.
push_vector
member function was missing from the
vectorBool
class.
This has been fixed.
In addition, it seems that for some cases (or compilers)
the assignment
x[i] = y[j]
did not work properly when both
x
and
y
had type vectorBool
.
This has been fixed.
The ipopt_cppad_nlp
example has been extended
so that it allows for both scalar and vector evaluation of the
objective and constraints; see the argument
fg_vector
in
ipopt_cppad_nlp
.
In the case where there is not a lot of common terms
between the functions, the scalar evaluation may be more efficient.
CppAD::vector
template class.
This makes it easy to accumulate multiple scalars and
simple vectors
into one large CppAD::vector
.
retape
equal to false
case.
This has been fixed.
In addition, the missing
retape
documentation was added.
SparseHessian
.
An optional sparsity pattern argument was added to SparseHessian
so that it need not be recalculated each time.
SparseJacobian
.
An optional sparsity pattern argument was added to SparseJacobian
so that it need not be recalculated each time.
The example in sparse_hessian
pointed to Hessian.cpp
instead of sparse_hessian.cpp
.
This has been fixed.
retape
flag has been added to speed_main
.
In addition the routines
link_det_minor
, link_poly
, and link_ode
pass this flag along to the speed test implementations
(because the corresponding tests have a fixed operation sequence).
If this flag is false, a test implementation is allowed to just tape
the operation sequence once and reuse it.
The following tests use this flag:
adolc_det_minor.cpp
,
cppad_det_minor.cpp
,
cppad_ode.cpp
,
adolc_poly.cpp
,
cppad_poly.cpp
.
Create specialized zero order forward mode routine that should be faster,
but does not test out as faster under cygwin g++ (GCC) 3.4.4.
cppad
and double
cases; see speed_main
.
In addition,
added the examples ode_evaluate.cpp
and sparse_hessian.cpp
.
Changed the speed_main
routines defined for each package
from
compute_name
to
link_name
.
For example, in speed/cppad/det_minor.cpp
,
the function name
compute_det_minor
was changed to link_det_minor
.
new
and delete
directly.
This makes it easy to check for memory allocation errors and leaks
(when NDEBUG
is not defined).
Also include in documentation sub functions that indicate
the sparse_hessian
speed test is not available for
double_sparse_hessian.cpp
,
fadbad_sparse_hessian.cpp
, and
sacado_sparse_hessian.cpp
.
USE_CPPAD_SPARSE_HESSIAN
is 1
.
Also added a wish list
sparse Hessian
entry.
Change the name of speedtest.cpp
to speed_program.cpp
.
speed/cppad
, speed/double
, and speed/example
were missing. This has also been fixed.
x
op
y
where x and y were AD<double>
and
op was a member operator of that class.
This has been fixed by making all such member functions friends
instead of members of AD<double>
.
Remove computed assignment entry from wish list
(it was fixed on 2007-05-26
).
Add
expression hashing
,
library
,
and scripting languages
entries to the wish list.
configure
command line options.
yum
on
Fedora
operating systems.
1e-13
. A test for this has been added to the
test_more/test_more
program; see
--with-Testing
in Unix install instructions or
more correctness testing
in Windows install instructions.