Prev | Next | whats_new_08 |
int y
to
const int &y
.
In the implementation for pow
make the integer base case
agree with the documentation; i.e., change
from
int x
to
const int &x
.
test_more
directory).
ipopt_cppad/ipopt_cppad_ode
example was
provided in the section ipopt_cppad_ode.
example/ipopt_cppad_nlp
to
ipopt_cppad/ipopt_cppad_nlp
.
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 warnings are no longer generated because
these inline
directives are converted to
empty code when a Microsoft Visual C++ is used.
tanh(x)
was added to the
unary_standard_math
functions.
The abs
and erf
functions were removed from the
Base requirements
.
The restrictions about the Base class were removed from
abs
, atan2
, LuRatio
, erf
.
Visual Studio Version 9.0 could not handle the large number of static
constants in the CppAD erf
function.
This function was changed to a simpler representation
that is much faster and that
is differentiable at all points (not defined differently on subregions).
The down side to this is that the new version
is not as accurate.
ipopt_cppad/ipopt_cppad_ode
helper routines
to use const
(where appropriate).
ipopt_cppad/ipopt_cppad_ode
example.
ipopt_cppad/ipopt_cppad_ode
.
cppad_ipopt_nlp
(since removed),
multiple argument forward (completed with forward_dir
),
and sparsity patterns
(sparsity patterns
has been fulfilled).
ipopt_cppad/ipopt_cppad_ode
to use @(@
y(t)
@)@ for
the solution of the ODE to distinguish it for @(@
x
@)@,
the vector we are optimizing with respect to.
ipopt_cppad/ipopt_cppad_ode
to a case where @(@
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).
ipopt_cppad/ipopt_cppad_ode
to a case where there are
two components in the ODE (instead of one).
Also removed an initialization section that was only intended for tests
with a specific initial value.
ipopt_cppad/ipopt_cppad_ode
, an example and test
that optimizes the solution of an ODE.
Change r_eval
to eval_r
in cppad_ipopt_nlp
.
Fix a dimension of u_ad
error in ipopt_cppad_nlp
.
In cppad_ipopt_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).
ipopt_cppad/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 cppad_ipopt_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
cppad_ipopt_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.
ipopt_nlp_get_started.cpp
was added.
This is a preliminary version of this example.
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 sparsity pattern entry
(the sparsity pattern
entry
has been fulfilled).
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 compound assignment entry from wish list
(it was fixed on 2007-05-26
).
Add an expression hashing entry to the wish_list
(it has since been removed).
Add Library and Scripting Languages to the wish list
(this has since been fulfilled by the example ad_in_c.cpp
).
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.
w
instead of just one component
l
.