YalAA 0.92
Yet Another Library for Affine Arithmetic
YalAA - Yet Another Library for Affine Arithmetic

Introduction

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.

Installation

Requirements

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.

Microsoft Windows

Linux/Unix-like

Documentation

For creating the documentation you need Doxygen.

Usage

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.

Examples

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

Further Documentation, References and Libraries

License

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.

Download

Current version

Old versions

Contact

If you have any questions, suggenstions or bug reports regarding YalAA do not hesitate to write me an email.

 All Classes Namespaces Files Functions Typedefs Enumerations