Useful Resources
There are a huge number of free (and usually open source) C++ and Python libraries available.
Here we have collected some links to packages and toolkits which you may find useful. If you
have suggestions for additions let us know.
C++
- Boost. The Boost libraries are very useful language extensions
which are quite likely to become incorporated into the standard during the next iteration. Too diverse
to describe here - go and look!
- STL. The Standard Template Library is
part of the language now. It provides strings, containers such as lists, vectors, and maps,
algorithms such as sorting and finding. It makes heavy use of templates so it is generic
but highly efficient.
- CLHEP. CLHEP includes: high quality random numbers;
3- and 4- vector and matrix arithmetic; Event generator interfaces; physical units and constants;
an interpreted C expression evaluator, and generic function objects which can be used to build
complex functions out of simpler ones.
- SIUnits uses the
strong typing of C++ to trap unit and dimension inconsistencies at compile time. It's very useful and has
no effect on run-time performance.
- GSL. The GNU Scientific Library is an open-source
library of mathematical functions similar in scope to MATHLIB or NagC. It is not 'guaranteed safe',
of course!
- Doxygen is an extremely powerful, flexible and user-friendly
tool for producing reference documentation from C, C++ and Java source code.
- Qt is a powerful open source C++ 2D graphical toolkit. It is the
foundation layer for Qplotter, the KDE window manager and many other packages. It includes the full range
of windows, buttons, widgets etc. and is fully thread safe. Although
developed by a commercial company, it is released under the LGPL for non-commercial use. It is distributed
as part of Anaphe.
- zlib is a data compression library.
Python
- The Python Library Reference on the
official Python website shows the modules included in the standard distribution of Python
- more to come...
Can't find what you want? For C++, Trumphurst
maintains a long list of C++ libraries and utilities (most are free for non-commercial use, and many are
open source). If you use Linux the
Linux Software Encyclopaedia contains
a vast categorised list of software for every imaginable task, written in a variety of languages. Many of
these are open source so could be built on other platforms if required.
|
|