Prev | Next | autotools |
c++11
extensions.
You should use the cmake
instructions to install CppAD.
dist_dir
.
dist_dir/build
,
which will be referred to as the build directory below.
./configure \
--prefix=prefix_dir \
--with-Documentation \
--with-testvector \
--enable-msvc \
MAX_NUM_THREADS=max_num_threads \
CXX_FLAGS=cxx_flags \
OPENMP_FLAGS=openmp_flags \
POSTFIX_DIR=postfix_dir \
ADOLC_DIR=adolc_dir \
BOOST_DIR=boost_dir \
EIGEN_DIR=eigen_dir \
FADBAD_DIR=fadbad_dir \
SADADO_DIR=sacado_dir \
IPOPT_DIR=ipopt_dir \
TAPE_ADDR_TYPE=tape_addr_type \
TAPE_ID_TYPE=tape_id_type
where only the configure
line need appear; i.e.,
the entries in all of the other lines are optional.
The text in italic above is replaced values that you choose
(see discussion below).
configure.hpp
from
the build to the source directory and then builds
some object libraries that are used by the tests:
make
make
command,
you can run the correctness and speed tests.
The following command will build and run all the correctness and speed tests.
make test
cd speed/profile
make test
After executing make test
, you can run a profile speed test
by executing the command
./speed_profile test seed option_list
see speed_main
for the meaning of the command line
arguments to this program.
After you have run a profiling speed test,
you can then obtain the profiling results with
gprof -b speed_profile
In C++, template parameters and argument types become part of a
routines's name.
This can make the gprof
output hard to read
(the routine names can be very long).
You can remove the template parameters and argument types from the
routine names by executing the following command
gprof -b speed_profile | sed -f gprof.sed
$HOME
i.e., by default the CppAD include files
will install
below $HOME
.
If you want to install elsewhere, you will have to use this option.
As an example of using the
--prefix=prefix_dir
option,
if you specify
./configure --prefix=/usr/local
the CppAD include files will be installed in the directory
/usr/local/include/cppad
If --with-Documentation
is specified, the CppAD documentation files will be installed in the directory
/usr/local/share/doc/cppad-yyyymmdd
where
yyyymmdd
is the year, month, and day corresponding
to the version of CppAD.
--with-Documentation
is specified,
the CppAD documentation HTML and XML files are copied to the directory
prefix_dir/share/doc/postfix_dir/cppad-yyyymmdd
(see postfix_dir
).
The top of the CppAD HTML documentation tree
(with mathematics displayed as LaTex command) will be located at
prefix_dir/share/doc/postfix_dir/cppad-yyyymmdd/cppad.htm
CppAD::vector<Scalar>
.
If one, and only one, of the following command line arguments is specified:
--with-stdvector
--with-boostvector
--with-eigenvector
the corresponding of the following template classes is used
std::vector<Scalar>
boost::numeric::ublas::vector<Scalar>
Eigen::matrix<Scalar, Eigen::Dynamic, 1>
See also,
boost_dir
and
eigen_dir
.
cl
compiler will be
placed at the front of the list of compilers to search for.
max_num_threads >= 4
.
CompilerFlags
is present,
it specifies compiler flags.
For example,
CXX_FLAGS="-Wall -ansi"
would specify that warning flags -Wall
and -ansi
should be included
in all the C++ compile commands.
The error and warning flags chosen must be valid options
for the C++ compiler.
The default value for
CompilerFlags
is the
empty string.
OpenmpFlags
is present,
it specifies the necessary flags so that the compiler will
properly interpret OpenMP directives.
For example, when using the GNU g++
compiler,
the following setting includes the OpenMP tests:
OPENMP_FLAGS=-fopenmp
If you specify configure command,
the CppAD OpenMP correctness and speed tests will be built; see
threading
multi-threading tests.
POSTFIX_DIR=postfix_dir
option,
if you specify
./configure --prefix=/usr/local POSTFIX_DIR=coin
the CppAD include files will be
installed
in the directory
/usr/local/include/coin-or/cppad
If --with-Documentation
is specified, the CppAD documentation files will be installed in the directory
/usr/local/share/doc/coin-or/cppad-yyyymmdd
adolc_dir
in the
configure
command line.
The value of
adolc_dir
must be such that
adolc_dir/include/adolc/adouble.h
is a valid way to reference adouble.h
.
In this case, you can run the Adolc speed correctness tests
by executing the following commands starting in the build directory:
cd speed/adolc
make test
After executing make test
, you can run an Adolc speed tests
by executing the command ./adolc
;
see speed_main
for the meaning of the command line
options to this program.
Note that these speed tests assume Adolc has been configure with
its sparse matrix computations enabled using
--with-colpack=colpack_dir
adolc_dir/lib
to LD_LIBRARY_PATH
.
For example, if you use the bash
shell to run your programs,
you could include
LD_LIBRARY_PATH=adolc_dir/lib:${LD_LIBRARY_PATH}
export LD_LIBRARY_PATH
in your $HOME/.bash_profile
file.
.bash_profile
in your home directory:
PATH=adolc_dir/bin:${PATH}
export PATH
in order for Adolc to run properly.
If
adolc_dir
begins with a disk specification,
you must use the Cygwin format for the disk specification.
For example,
if d:/adolc_base
is the proper directory,
/cygdrive/d/adolc_base
should be used for
adolc_dir
.
BOOST_DIR=boost_dir
is present, it must be such that files
boost_dir/include/boost/numeric/ublas/vector.hpp
boost_dir/include/boost/thread.hpp
are present.
In this case, these files will be used by CppAD.
See also, --with-boostvector
eigen_dir
.
It must be such that
eigen_dir/include/Eigen/Core
is a valid include file.
In this case CppAD will compile and test the Eigen examples; e.g.,
eigen_array.cpp
.
See also, --with-eigenvector
fadbad_dir
.
It must be such that
fadbad_dir/include/FADBAD++/badiff.h
is a valid reference to badiff.h
.
In this case, you can run the Fadbad speed correctness tests
by executing the following commands starting in the build directory:
cd speed/fadbad
make test
After executing make test
, you can run a Fadbad speed tests
by executing the command ./fadbad
;
see speed_main
for the meaning of the command line
options to this program.
ipopt_dir
.
It must be such that
ipopt_dir/include/coin-or/IpIpoptApplication.hpp
is a valid reference to IpIpoptApplication.hpp
.
In this case, the CppAD interface to Ipopt
examples can be built and tested
by executing the following commands starting in the build directory:
make
#
cd cppad_ipopt/example
make test
#
cd ../test
make test
#
cd ../speed
make test
Once this has been done, you can execute the program
./speed
in the build/cppad_ipopt/speed
directory;
see ipopt_ode_speed.cpp
.
sacado_dir
.
It must be such that
sacado_dir/include/Sacado.hpp
is a valid reference to Sacado.hpp
.
In this case, you can run the Sacado speed correctness tests
by executing the following commands starting in the build directory:
cd speed/sacado
make test
After executing make test
, you can run a Sacado speed tests
by executing the command ./sacado
;
see speed_main
for the meaning of the command line
options to this program.
tape_addr_type
is present,
it specifies the type used for address in the AD recordings (tapes).
The valid values for this argument are
unsigned short int
,
unsigned int
,
size_t
.
The smaller the value of
sizeof(tape_addr_type)
,
the less memory is used.
On the other hand, the value
std::numeric_limits<tape_addr_type>::max()
must be larger than any of the following:
size_op
,
size_op_arg
,
size_par
,
size_par
,
size_par
.
tape_id_type
is present,
it specifies the type used for identifying tapes.
The valid values for this argument are
unsigned short int
,
unsigned int
,
size_t
.
The smaller the value of
sizeof(tape_id_type)
,
the less memory is used.
On the other hand, the value
std::numeric_limits<tape_id_type>::max()
must be larger than the maximum number of tapes per thread
times max_num_threads
.
make install
This will install CppAD in the location specified by
prefix_dir
.
You must have permission to write in the
prefix_dir
directory to execute this command.
You may optionally specify a destination directory for the install; i.e.,
make install DESTDIR=DestinationDirectory