stands for Automatic
It implements graph elimination techniques in
order to find the cheapest accumulation of Jacobian matrices.
has been developed as an independent library but is primarily used by
framework for automatic differentiation.
Sparse representation of c-graphs and their dual
line graphs including many helper functions to work with them
Vertex, edge, and face elimination
Structured graph generator
Heuristics for selecting next vertex, edge or face
Lowest Markowitz degree first
Lowest relative Markowitz degree first
Maximal overall path length reduction
Maximal overall Markowitz degree reduction
Lowest Markowitz minimal damage
- Scarcity-aware edge eliminations
It is intended to optimize elimination sequences
but written as universally as possible and can be applied to any
where neighborhood relation and objective function are provided as
Metropolis with fixed temperature
Logarithmic simulated annealing
Note, that the Unix name for this sourceforge project is angellib.
All of the current development work for the core library with detailed descriptions of the changes, is kept
in a Mercurial repository hosted at Argonne National Laboratory.
While we find Mercurial to be much more convenient than subversion
for our development is still is somewhat unknown and therefore
we use a SVN repository hosted at sourceforge for distribution.
To checkout the sources execute:
svn co https://angellib.svn.sourceforge.net/svnroot/angellib/trunk angel
The SVN repository is updated whenever a set of changes has passed regression testing.
More infrequently we provide snapshots of the angel library as a dated release.
Prior to Feb/09/2010 the library source was distributed via a CVS repository with the module name angel.
The CVS source code repository is no longer updated but still available together with other unmaintained modules.
Sourceforge provides instructions to checkout sources from SVN and the obsoleted CVS repositories.
None of the CVS repositories are used by OpenAD.
The repositories listed below have last been updated in 2003 and are compatible with angel_base
but are not compatible with the current version of angel.
The module programs has been partially updated in March 2008 for purposes unrelated to OpenAD.
The sourceforge CVS repository is frequently synchronized to the latest changes in the Mercurial development repository.
- angel_base: a 2003 baseline version of angel
- angel_paper_programs: example programs
- cgraphs: example graphs
- lsaface: draft on randomized face elimination
- papers: drafts of randomized edge elimination etc.
- boost libraries
- OpenAD : this
dependency can be avoided by commenting out
CPPFLAGS += -DUSEXAIFBOOSTER
and the lines below that one in
details on classes and functions
in ANGEL see
the reference manual PDF or html pages (last
generated on Wednesday, 11-Mar-2009 15:41:51 UTC)
Author & Acknowledgments
- the main author of the original version is Peter Gottschling
- further contributions have been made by Uwe Naumann, Jean Utke and Andrew Lyons
- the initial development of ANGEL was part of the XCOp
project and was supported
by the Engineering and Physical Sciences Research Council (EPSRC - UK)
under grant number GR/R/38101/01.
- further development was supported under the NSF's
Technology Research (ITR) program under contract OCE-0205590
This page was last updated on Tuesday, 09-Feb-2010 17:52:42 UTC.