Prev | Next | whats_new_11 |
AD< AD<double> >
argument, whereby the corresponding AD<double>
operation sequence
depended on the value of the argument to the abs
function.
AD<Base>
list of
available functions.
In addition, add the
sign
function to the list of
base type requirements
.
cppad/cppad.hpp
.
This has been fixed.
SizeVector
,
NumberVector
,
ADNumber
, and
ADVector
,
were in the global namespace and this was causing warnings
about the shadowing of these declarations.
The
cppad_ipopt namespace
was created to avoid these problems.
The simplest way to make old cppad_ipopt_nlp
code work with this
change is to use the command
using namespace cppad_ipopt;
team_start
to team_create
and team_stop
to team_destroy
.
NDEBUG
mentions to include link to
NDEBUG
.
multi_thread.cpp
to thread_test.cpp
and fix its running
instructions.
boost_dir
for
team_bthread.cpp
with out using boost vectors.
sum_i_inv.cpp
to harmonic.cpp
.
test_time
to the nearest integer.
This has been fixed.
test_time
(it used to always run at least two).
sum_i_inv_time.cpp
and multi_newton.cpp
routines were calling the test an extra time at the end to check for
correctness.
The results of the last test are now cached and used for the correctness
test so that an extra call is not necessary (to make the tests run faster
when only a few repetitions are necessary).
double
instead of a size_t
.
The use it for the timing tests in
sum_i_inv_time.cpp
and multi_newton_time
.
test_time
as a command line argument
to the multi-threading sum_i_inv
and multi_newton
timing tests.
thread_team.hpp
to team_thread.hpp
and do
the same for all other names that ended in _team
; e.g.,
team_openmp.cpp
.
test_vector
was not actually changing
the tests that the user ran. This have been fixed.
sum_i_inv.cpp
results were failing
when mega_sum
was large.
This check has been modified to include a correction for
mega_sum
.
branches/thread
:
openmp
to example/multi_thread/openmp
.
and create example/multi_thread/bthread
, multi_thread/pthread
with similar tests.
multi_thread
directory
and threading system specific code in
example/multi_thread/threading
for
threading
equal to openmp
, bthread
,
and pthread
.
bug/optimize.sh
file (no longer a bug).
arc_tan.cpp
utility that can be used by multiple multi-threading tests.
make test
would run the tests for the current directory.
sum_i_inv.cpp
and multi_newton.cpp
so they run
using Boost threads and pthreads (as well as OpenMP threads).
g++
version 4.6.1 20110908
.
pthread
library does not include the
pthread_barrier_wait
function; i.e., is not compliant with
the IEEE Std 1003.1, 2004 Edition for pthread
.
This caused the pthread_simple_ad.cpp
to fail to compile on the MAC.
This has been fixed by not compiling the pthread
examples
unless pthread_barrier_wait
is present.
retape(k)
is false.
bthread_simple_ad.cpp
.
parallel_setup
.
bthread_simple_ad.cpp
example.
pthread_simple_ad.cpp
,
including avoiding a Bug in Cygwin
.
openmp/run.cpp
was not setting
the number of threads for the one thread case (so dynamic thread adjustment was
used). This has been fixed.
example/example.vcproj
file and a attempt was made
to link to missing OpenMP routines (this has been fixed).
In addition,
some Microsoft compiler warning have been fixed; see the examples and tests
in the Windows install instructions.
CPPAD_MAX_NUM_THREAD
was being set to 2 when _OPENMP
was not defined.
This has been fixed and
CPPAD_MAX_NUM_THREADS
has been documented and is now part of the CppAD API.
pthread_simple_ad.cpp
test failed under cygwin.
This was because the previous test openmp_ad.cpp
was
set up calls to OpenMP routines that were still in effect
when pthread/simple_ad
ran.
This has been fixed by making
num_threads == 1
a special case in
parallel_setup
.
https://projects.coin-or.org/svn/CppAD/branches/pthread
These changes are described below under the headings
08-21
through
08-31
.
sum_i_inv_time.cpp
test from
openmp/run.sh
to openmp/run.cpp
.
--with-openmp
to
OPENMP_FLAGS=openmp_flags
configure
command line argument.
openmp/run.cpp
program
and move the openmp_multi_newton.cpp
test from
openmp/run.sh
to openmp/run.cpp
.
This uses configure
information for building the tests.
--with-openmp
configure
command line argument.
openmp/multi_newton.hpp
to
openmp/newton_method.hpp
and
openmp/multi_newton.cpp
to
openmp/newton_example.cpp
.
pthread_simple_ad.cpp
example that does AD using the
pthread library.
In addition, fix some problems in openmp_simple_ad.cpp
openmp/example_a11c.cpp
to
example/a11c_openmp.cpp
.
openmp/parallel_ad.cpp
to
openmp_simple_ad.cpp
.
omp_
,
and change all thread_alloc
section names to begin with new_
.
openmp_simple_ad.cpp
.
These OpenMP examples were originally in the openmp
directory,
and have been moved, and modified to conform, to the normal example directory.
https://projects.coin-or.org/svn/CppAD/branches/base_require
These changes are described below under the headings
08-04
through
08-10
.
s
in
f.Forward(0, x, s)
See zero order forward mode
and PrintFor
.
Base
type requirements.
epsilon
to AD types.
abs_geq
to the requirements
for a user defined
Base
type.
optimize
and hence the zero order forward mode results may not be exactly the same.)
AD<Base>
arguments
and a non-standard
Base
type.
nan
print because it results in false for all comparisons.
PrintFor(text, y, z)
which only prints when
z <= 0
.
This is useful for error reporting during forward mode; i.e.,
reporting when the argument to the log
function is not valid.
get_max_num_threads
were created.
User's will need to replace calls to
max_num_threads
by calls to set_max_num_threads
.
example
and test_more
subdirectory
project files.
tan
and tanh
atomic_base
operations; see tan_forward
and tan_reverse
.
tan
and tanh
CppAD atomic operations.
k
,
were not passed into the atomic_one
forward
callback function.
Tan and Tanh
.
parallel_ad.cpp
from example
directory
to openmp
directory (and convert it from a function to a program).
example_a11c.cpp
by making it just a correctness test.
openmp/run.sh
so that it runs correctness tests with
the compiler debugging flags.
AD<Base>
operations
omp_in_parallel
execution mode. This has been fixed.
parallel_ad.cpp
example.
example_a11c.cpp
example so that is just a correctness
(not speed) test.
nan
,
Rosen34
, and
Runge45
.
openmp/run.sh
:
openmp/run.sh
maximum number of threads
instead of specifying the entire set of values to be tested.
newton_example
so that n_gird
is a multiple of the maximum number of threads.
openmp
directory
(was commented out).
openmp/run.sh
was moved to the
multi_thread
section.
openmp_newton_example.cpp
and
sum_i_inv_time.cpp
assumed was being done.
AD<Base>
in parallel
execution mode.
Error detected by false result for
! omp_in_parallel()
at line n in the file
prefix/include/cppad/omp_alloc.hpp
sometimes occurred.
openmp/run.sh
routine was changed to use zero,
instead of automatic
, for automatic choice of
openmp/run.sh
number of repeats
and
maximum number of threads.
openmp/run.sh
)
was changed to be valid matlab / octave assignment statements.
openmp/run.sh
output.
sizeof(CppAD_TAPE_ADDR_TYPE)
where it used to use sizeof(size_t)
.
cppad/config.h
from CppAD distribution,
(put the information in cppad/configure.hpp
.)
This removes the need to undefine symbols that were
defined by cppad/config.h
and that did not begin with CPPAD_
.
ADOL-C-2.2.0
.
omp_alloc
tracing so it prints the same pointer
as returned to the user (not an offset version of that pointer).
cppad/omp_alloc.hpp
,
suppress the following Microsoft Visual Studio warning
warning C4345: behavior change: an object of POD type constructed with
an initializer of the form () will be default-initialized
TrackNewDel
by omp_alloc
has been throughout the CppAD source code, including the examples
that used TrackNewDel
; namely,
mul_level_adolc.cpp
, mul_level_adolc_ode.cpp
.
omp_alloc
memory
manager.
This should improves its speed of memory allocation
omp_in_parallel
sections of a program.
make test
were not
being detected.
This has been fixed.
NDEBUG
is not defined,
the hasnan
function is used to make sure that the
results of any Forward
operation does not contain a
nan (not a number).
If so, an error message is generated and the program terminates.
This error message and termination can be caught; see ErrorHandler
.
NDEBUG
is not defined and the default error
handler has not been replaced).
speed_cppad
before the new speed
test organization was created on 2006-12-11
(revision 715 of the repository).
The old speed tests have not been used for years and so have been deleted.
openmp/run.sh
script what changed
to take an argument that specifies which tests is run
(it no longer runs all the tests).
Also improve the openmp test program output formatting.
use_ad
option was added to the
openmp_newton_example.cpp
test case.
bin/.svn
was mistakenly part of the
compressed tar file It has been removed.
atomic_one
function
rev_hes_sparse
must have size greater than or equal to
n
.
There was a check that its size was greater than or equal
q
.
This was incorrect and has been fixed.
NDEBUG
was not defined,
the thread corresponding to parameters was one, but the only valid thread
number was zero (only one thread)
and an CPPAD stopped with an assertion error.
This has been fixed.
openmp/run.sh
where it attempted
to remove a non-existent file in the case where
openmp/run.sh
openmp_flag was not ""
.
This has been fixed.
atomic_one.hpp
was declare of type
Base
when it should have been declared of type size_t
.
It caused the atomic_one
feature to fail with some base types.
This has been fixed.
The old_mat_mul.hpp example has been improved by
caching the @(@
x
@)@ variable information and using it during
reverse Hessian sparsity
calculations.
Some of the atomic_one
documentation was extended to
include more explanation.
The documentation for RevSparseHes
had a dimension error.
This has been fixed.
A faster set operations item was added to the wish list.
This has since been satisfied by
cppad_sparse_list
choice during
the install process (since removed).
subversion
instructions.
cppad.pc
is stored has been moved from
prefixdir/lib/pkgconfig/cppad.pc
to
prefixdir/share/pkgconfig/cppad.pc
;
see
devel@lists.fedoraproject.org
.
omh/appendix/11.omh
has been required to build the
documentation (and it has been missing from the distribution).
-Wshadow
flag
with the g++
compiler.
The Fadbad speed
tests have a special
flag with this warning removed from the
cxx_flags
.
make test
in the releases
http://www.coin-or.org/download/source/CppAD/cppad-20110101.0.license.tgz
where
license
is gpl
or cpl
.
makefile.in
files did not define abs_top_builddir
.
cppad_ipopt_nlp.hpp
was always installed, even if
ipopt_dir
was not defined on the
configure
command line.
libspeed.a
was being installed
(it is only intended for testing).
http://www.coin-or.org/download/source/CppAD/cppad-20110101.1.license.tgz
will not have this problem.