YalAA 0.92
Yet Another Library for Affine Arithmetic
|
YalAA
is an object-oriented C++ based template library for affine arithmetic (AA). Similarly to interval arithmetic (IA), this computation model allows us to derive bounds on a function's codomain. In contrast to IA, AA tracks first-order dependencies during the computation process resulting often in tighter bounds on the codomain at the price of an increased computational effort.
YalAA
supports both Microsoft Windows and Linux/Unix-like platforms You can choose one of the following supported compilers
Furthermore, YalAA
requires the Boost libaries >= 1.4.7
In order to use YalAA
an external library for interval arithmetic is required. The following libraries are currently supported
If you want to use another library, you have to provide a specialization of the interval_traits template class. Please refer to Usage of a custom interval library.
tar xfj yalaa.tar.bz2
) ./configure --help
) ./configure --with-cxsc=<CXSC-PATH> --with-boost==<BOOST-PATH>
) make
) make install
) prefix
option of configure
if to install YalAA
in your $HOME
directoryFor creating the documentation you need Doxygen.
configure
script make
doxygen-doc) doc
To use the library you have to include the yalaa.hpp
(or yalaa_fwd.hpp
for forward declations) headers and link your program against the respective library libyalaa.so
on Linux or libyalaa.lib on Windows.
You can use one of the predfined types described in the table below or you can defined your own type based on our templates. All of them are located in the namespace yalaa.ExactErrorFP
If you use custom types, please note that YalAA
uses an explicit template instantiation approach. To avoid linker errors you have to use explicit template instatiations like it is done for the predefined types in yalaa_fp_impl.cpp
.
Name | Base type | Kernel | Policy | Error handling |
---|---|---|---|---|
aff_e_d | double | ExactErrorFP | AF0 | Standard |
aff_af1_e_d | double | ExactErrorFP | AF1 | Standard |
aff_af2_e_d | double | ExactErrorFP | AF2 | Standard |
aff_e_d_dec | double | ExactErrorFP | AF0 | Decorations |
aff_af1_e_d_dec | double | ExactErrorFP | AF1 | Decorations |
aff_af2_e_d_dec | double | ExactErrorFP | AF2 | Decorations |
The different error handling approaches and the policy types are explained in YalAA's
implementation paper. Furthermore, the namespace yalaa::concepts contains templates for creating your own policies.
To illustrate the usage of YalAA
in more detail we distribute some examples with the library.
Example | Description |
---|---|
function.cpp | Evaluates a function with YalAA |
decorations.cpp | Shows the usage of decorations in YalAA |
policies.cpp | Shows how the different policies alter the computation in YalAA |
libaa
are available on this site.) YalAA
is free software and available under the terms of the GNU Lesser General Public License Version 3. For more details refer to the files COPYING and COPYING.LESSER, which are included in the distribution.
Current version
Old versions
If you have any questions, suggenstions or bug reports regarding YalAA
do not hesitate to write me an email.