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.