Prev | Next | whats_new_06 |
exp_eps_ad
to exp_eps_cppad
and
add exercises to the following sections:
exp_eps_rev1
,
exp_eps_cppad
.
Add operation sequence indices to help track operations in
exp_eps_for0
,
exp_eps_for1
,
exp_eps_rev1
.
Move the exponential example to the subdirectory
introduction/exp_apx
and change the
--with-Introduction
unix configure option
to build both the get_started.cpp
and exp_apx.cpp
example programs.
(The --with-GetStarted
configure command line option has been removed.)
The get_started.cpp
section has been moved
into the Introduction
and
exercises
were added to that section.
In addition some sections has switched position between
the top level CppAD
and the Appendix
.
Separate the specifications for the source in
speed_utility
and add cross reference to the following routine
specification and implementations:
det_by_minor
,
det_grad_33
,
uniform_01
,
det_of_minor
,
det_by_lu
,
LuInvert
,
LuFactor
,
LuSolve
.
Change the speed test output name det_poly
to poly
(as it should have been).
Add to the specifications that each repeated test corresponds to a
different matrix in
det_lu
and
det_minor
.
In addition, modify all the speed tests so that they abide by this rule.
Change some references from the deprecated name CppAD.h
to
new name cppad.hpp
.
Change adolc_det_minor.cpp
and cppad_det_minor.cpp
to tape once and reuse operation sequence for each repeated
matrix in the test.
Add the poly
speed test for all three packages.
In addition, correct a missing include in poly
routine.
speed/ | template functions that are speed tested |
speed/example
| example usage of speed template functions |
speed/adolc | Adolc drivers for the template functions |
speed/cppad | CppAD drivers for the template functions |
speed/fadbad | Fadbad drivers for the template functions |
speed/profile | profiling version of CppAD drivers |
speed_cppad
from the documentation and replace it by
speed/cppad
, see speed_cppad
for the new CppAD speed
test routines.
adolc
director to speed/adolc
and
fadbad
to speed/fadbad
.
speed/example
directory and moving the relevant
examples from
example/*.cpp
and
speed_example/*.cpp
to
speed/example/*.cpp
.
In addition, the relevant include files have been moved from
example/*.hpp
to
speed/*.hpp
.
A new speed_test
routine was added to the library.
AD<Base>
atomic_base
operation.
This function used to return a nan
if
x
is negative because it was implemented as
pow(x, y) = exp( log(x) * y )
This has been fixed so that the function and its derivatives are now
calculated properly when
x
is less than zero.
The pow
documentation was improved
and the pow.cpp
example was changed to
test more cases and to use the same variable
names as in the documentation.
The prototype for int
arguments in binary operations
(for example addition
) was documented as
const int &
but was actually just plain int
.
This has been fixed.
(Later changed to double
.)
The some of the automatically generated makefile.in
files
had an improper license statement in the GPL license version.
This has been fixed.
postfix_dir
option.
Create a fixed
whats_new
section above the section for each particular year.
Also improve the CppAD distribution README
file.
CppAD
was changed to be all
lower case; i.e., cppad
.
If you are using a Unix system, see include_deprecated
.
This completes the following wish_list
items (which were removed):
.hpp
extension.
Correct some file name references under the Windows heading in
speed_cppad
.
Makefile.am
and Makefile
files were changed
to lower case; i.e., makefile.am
and makefile
.
Fix compiler warning while compiling cppad/RombergOne/
(mistake occurred during 11-20
change).
yy-mm-dd
format to
yyyymmdd
; i.e.
cppad-06-11-30
was changed to cppad-20061130
.
double
. This has been fixed.
Makefile.am
referenced Doc
when it should have
referenced doc
. This has been fixed.
DetOfMinor
was changed to det_of_minor
,
in preparation for
more formal speed comparisons with other packages.
To be specific, its documentation was improved,
its dependence on the rest of CppAD was removed
(it no longer includes CppAD.h
).
test_more/test_more.cpp
programs were
changed to print out the number of tests that passed or failed instead
of just "All the tests passed" or "At least one of the tests failed".
The windows project files for
examples and testing
should have been changes to use lower case file names on
as part of the 11-08 change below. This has been fixed.
Example
directory to example
and change all its files to use lower case names.
TestMore
directory to test_more
and change all its files to use lower case names.
Memory
and Size
functions because they
have been deprecated
.
Correct some references to var_size
that should have been
size_var
.
print_for.cpp
examples.
(Now documentation can be built from a subversion checkout with out
needing to execute automake.)
The PrintFor.cpp
and
speedtest.cpp
examples were missing in ListAllExamples
(which has been fixed).
Move the Speed
directory to speed
and change all its files to use lower case names.
print_for
directory was referenced as PrintFor
in the root CppAD Makefile.am
this has been fixed.
The documentation for the Adolc helper routines
AllocVec
and AllocMat
were not being included.
This has been fixed.
Move the GetStarted
directory to get_started
and change all its files to use lower case names.
PrintFor
directory to print_for
and change all its files to use lower case names.
SpeedExample
directory to speed_cppad_example
and change all its files to use lower case names.
Adolc
directory to adolc
and change all its files to use lower case names.
Change all the file in the omh
directory to
use lower case names.
The file Makefile.am
in the distribution directory had the
CPL copyright message in the GPL version. This has been fixed.
example/OneTest
and TestMore/OneTest
were GPL
(in the CPL distribution).
This has been fixed by moving them to
example/OneTest.sh
and TestMore/OneTest.sh
so that
the distribution automatically edits the copyright message.
ADFun<Base>
constructor
.
Fix definition of preprocessor symbol
PACKAGE_STRING
in Speed/Speed.cpp
(broken by change on 10-18).
Added the example
hes_lagrangian.cpp
which computes the Hessian
of a Lagrangian.
CppAD
or CPPAD_
.
Include a default value for the file cppad/config.h
in the subversion repository.
AD< AD<double> >
.
Discrete.cpp
example to tape_index.cpp
.
Fix the Microsoft project file so that the Windows install
examples and testing works properly
(it was missing the stack_machine.cpp
example).
# define
commands
in cppad/local/*.hpp
to use upper case names.
valgrind --tool=memcheck example/example
valgrind --tool=memcheck TestMore/TestMore
These were not really bugs, but they have been fixed to avoid
this conflict between CppAD and valgrind
.
f(x, y)
no longer executes a zero order
Forward
operation when a new operation sequence is stored in
f
.
In addition, the syntax for this operation was changed to
f.Dependent(y)
(see Dependent
).
"We would like to be able to erase the function
values so that ADFun
objects use less memory.
We may even want to erase the AD operation sequence so that
ADFun
objects use even less memory and can be used
for a subsequent AD operation sequence."
taylor_size
, and defined
size_order
in its place.
ADFun
object with out having to use
ADFun
pointers together with new
and delete
.
The compiling instructions for the speed_cppad
routines have been improved.
The Value
function has been extended to allow for
parameter
arguments even if the corresponding
tape is in the Recording state.
The BenderQuad
documentation and example have been improved
by changing
Vector
to
BAvector
to emphasize that
it corresponds to a vector of
Base
objects.
Base
instead of
AD<Base>
where every possible.
This allows for more calculations to be done in the base type; i.e.,
is more efficient.
BenderQuad
.
In the Introduction
example,
@(@
exp_eps
@)@ was changed to @(@
{\rm exp\_eps}
@)@.
BenderQuad
interface,
fun.fy
was changed to
fun.h
.
Added special specifications for resize(0)
to CppAD_vector
.
Add more discussion and a reference for a
gcc 3.4.4 -O2
bug (since been removed).
An operation sequence entry was added to the wish_list
.
Add the FunCheck
section for checking that a sequence of
operations is as intended.
Definitions were added for an atomic operation
and for an operation sequence being
dependent and independent of the values of specific operands.
The definition of AD sequence of operations was made abstract
and moved to the glossary as
Type operation sequence
.
RevTwo
was made more efficient
(it used to possibly calculate some first order partials that were not used).
The conversion from
VecAD<Base>::reference
to AD
gave a compile error (this has been fixed).
Code example for this fix
VecAD<double> V(1);
AD<double> zero = 0;
V[zero] = 1.;
static_cast< AD<double> > ( V[zero] );
VecAD<Base>
operands).
In addition, the
ForSparseJac
, RevSparseJac
and RevSparseHes
documentation and examples were improved.
The useVecAD
member function was added to ADFun
objects.
The var_size
member function was changed to
size_var
(this is not backward compatible, but var_size
was just added on
04-03
).
The ADFun Size
member function
has been deprecated (use size_order
instead).
The Reverse
member function is now declared,
and documented as, const
; i.e.,
it does not effect the state of the ADFun object.
Change the examples that use Reverse
to use the same
return value notation as the documentation; i.e., dw
.
Base
operation sequence
have been grouped into the fun_property
section.
In addition, the fun_property.cpp
example has been added.
The CompareChange
function documentation was improved
and moved to a separate section.
Group the documentation for the ADFun
member functions that
evaluate functions and derivative values.
This organization has since been changed.
Remove the old Fun.cpp
example and extend
independent.cpp
so that it demonstrates using different
choices for the SimpleVector
type.
The following member functions of ADFun
have been
deprecated
:
Order
, Memory
.
The wish list entry for Memory usage
was updated on 04-01.
The request was implemented on 06-19
and the entry was removed from the wish list.
Move the Parameter
and Variable
functions from
the ADFun
section to the AD
section.
In the examples for the AD
sections,
refer to the range space vector instead of the dependent variable vector
because some of the components may not be
variables
.
Move the definition of an
AD of
Base
operation sequence
from the glossary to the AD
section.
Improve the definition of tape state.
Add mention of taping to
Erf
, BoolFun
, NearEqualExt
,and Pow
.
Change the definition for
VecAD<Base>::reference
so that it stands out of the text better.
Fix a bug derivative computation for
abs(x)
when
x
had type
AD< AD<double> >
and
x
had value zero.
Fix a bug using non-zero AD indices for VecAD
vectors
while the tape is in the empty state.
Extend erf
to include float
, double
,
and
VecAD<Base>::reference
.
Mention the VecAD<Base>::reference
case
and generally improve
addition
documentation and examples.
VecADelem<Base>
to
VecAD_reference<Base>
(so that it looks more like
VecAD<Base>::reference
).
Mention the VecAD<Base>::reference
case
and generally improve
Value
, ad_output
and assignment
documentation
and examples.
Extend Integer
and PrintFor
to include the
VecAD<Base>::reference
case
(and mention in documentation and examples).
The copies of the atan2
function were included
in the CppAD namespace for the
float
and double
types.
cppad/local/MathOther.h
had a file name case error
that prevented the documentation from building and tests from running
(except under Cygwin which is not really case sensitive).
This has been fixed.
The term AD of
Base
operation sequence
has been defined.
It will be used to improve the user's understanding of exactly
how an ADFun
object is related to the C++ algorithm.
MathOther
.
The documentation and examples have been improved for the
following functions:
abs
, atan2
.
tan
function has been added to CppAD.
The examples Acos.cpp
, Asin.cpp
and
atan.cpp
have been improved.
There was a bug RevTwo
that was not detected by the
rev_two.cpp
test. This bug was reported by
Kasper Kristensen
A test was added TestMore/rev_two.cpp
that detects this problem
and the problem has been fixed.
The documentation and examples have been improved for the following sections:
assignment
, UnaryPlus
, UnaryMinus
.
Some of the error messaging during ADFun
construction
has been improved.
CppAD::vector
.
The routines Runge45
and Rosen34
had static vectors to avoid recalculation on each call.
These have been changed to be plain vectors to avoid memory
leak detection by TrackCount
.
/usr/share/aclocal/...: warning: underquoted definition of
...
The shell script file FixAclocal
,
which attempts to fix these warnings,
was added to the distribution.
cppad/CppADError.h
to using a class defined in
include/cppad/utility/error_handler.hpp
.
The macros CppADUnknownError
and CppADUsageError
have been deprecated (they are temporarily still available in the
file cppad/local/CppADError.h
).
Speed/gprof.sed
to aid in the display of the
profiling
output.
Make the following source code files easier to understand:
Add.h
, Sub.h
, Mul.h
, Div.h
(in the directory cppad/local
).
RevSparseHes.h
,
Reverse.h
,
Fun.h
,
Forward.h
,
ForSparseJac.h
,
RevSparseJac.h
(in the directory cppad/local
).