Prev | Next | whats_new_13 |
cppad.hpp
.
eigen
was used for the cppad testvector
.
This has been fixed.
--with-implicit_ctor
option
(later removed on 2017-02-10
.)
AD<Base>
was
implicit, but there was no specification to this effect.
The caused problems when using CppAD with
eigen 3.2
(scheduled to be fixed in 3.3).
The default for this constructor has been changed to be
explicit
.
In addition, other
implicit
constructors
are now listed in the documentation.
If you get a compiler error on an constructor / assignment of the form
AD<Base> x = y
(that used to work) try changing the constructor call to
AD<Base>( y )
A deprecated alternative is to make this constructor implicit using the
cmake cppad_deprecated
option during the install procedure.
NumTraits< CppAD::AD<Base> >::dummy_epsilon()
that should have been named dummy_precision()
.
This has been fixed.
atomic_two_norm_sq.cpp
, an atomic function example
with domain dimension two and range dimension one.
std::set
version of
atomic_two_rev_sparse_jac
for each atomic function that was
part of an ADFun
object that was optimized
.
Now the current
atomic_sparsity
setting is used
to determine if the bool
or std::set
version of
rev_sparse_jac
is used by the optimization process.
NDEBUG
is not defined)
has been added for the following case:
Using optimize
with atomic_two
functions that have not defined
rev_sparse_jac
.
x = CondExpLt(left_x, right_x, true_x, false_x)
y = CondExpGt(left_y, right_y, true_y, false_y)
z = CondExpEq(left_z, right_z, x, y)
only two of the conditional expressions will be evaluated
(one will be skipped depending on the result of left_z == right_z
).
For more details, see optimize_nest_conditional.cpp
.
build
directory.
Note that this local install of Adolc requires ColPack; see
get_colpack.sh
.
In addition, the requirement that ColPack and Adolc are installed
with the same prefix was added.
<cppad/cppad.hpp>
file concludes.
g++
error on OSX system:
error: no match for 'operator|=' (operand types are
'std::vector<bool>::reference {aka std::_Bit_reference}' and 'bool')
Check[i * n + j] |= F2[i * n + k] & r[ k * n + j];
^
NDEBUG
is not defined,
an error message is generated.
Ipopt/src/Algorithm/IpIpoptAlg.cpp
that the option sb
to yes
suppress the printing of the Ipopt banner.
The Ipopt examples and tests have been changed to use this option
(although it is not in the ipopt documentation).
ipopt_solve
Integer
options
(Numeric
was changed to Integer
).
optimize
was used to make the
checkpoint functions faster.
The bug has been fixed and the checkpoint functions now use
optimize (and hence should be faster).
nan
as a special
case in checkpoint
functions that
atomic functions
in within
another function is optimized.
nan
.)
f
,
f.optimize()
would fail.
This has been fixed.
In addition, documentation about using optimize
with atomic functions
has been added.
test_more/num_limits.cpp
failed because
double inf = std::numeric_limits<double>::infinity();
double check = std::complex<double>(inf) / std::complex<float>(1.)
can result in the imaginary part of check
being - nan
.
const::string&
as a possible type for
name
in the atomic_base
constructor.
ok
return flag from
checkpoint algo
and
checkpoint atom_fun
.
m
(range dimension) and sparsity pattern was a
vector of bool
.
user
.
std::cout << X
,
would generate a compile error when
X
was an Eigen matrix
with
CppAD::AD<Base>
elements.
This has been fixed.
<<
with
and eigen
matrix of AD
elements.
This has been fixed using a template partial specialization of
template <class Scalar, bool IsInteger>
struct significant_decimals_default_impl
because the original template requires definition of a implicit conversion
from the scalar type to an int
and this is dangerous for AD types
(note that Integer
is used for explicit conversions).