FACTOID # 34: Ethiopians are by far the most agricultural people on earth (both men and women)
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
WHAT'S NEW
RECENT ARTICLES
More Recent Articles »
 

FACTS & STATISTICS    Simple view

  1. Select countries to view: (hold down Control key and click to select several)

     

     

    Compare:

     

     

  1. Select fact or statistic: (* = graphable)

     

     

     

  2. (OPTIONAL) Compare to statistic: (both need to be graphable)

     

     

     

  3. View result as:

     

       
(OR) SEARCH ALL encyclopedia, stats & forums:   

Encyclopedia > Boost library

Boost is a collection of libraries that extend the functionality of C++. The libraries are licensed under the Boost Software License, a very open license designed to allow Boost to be used with any project. Several Boost libraries have been accepted for incorporation into the next library technical report of the C++ standard committee (many of Boost's founders are in the committee). Image File history File links Boost. ... Illustration of an application which may use libvorbisfile. ... C++ (pronounced see plus plus, IPA: /siː pləs pləs/) is a general-purpose computer programming language. ... ISO/IEC International Standard 14882, Programming Languages — C++, is the official standard for the C++ programming language and library, defined by the JTC1/SC22/WG21 working group. ...


Boost has a noticeable bias towards researching and extending the metaprogramming and generic programming features of the C++ language, with extensive use of templates. Because of very thorough peer review and quality control, libraries included in Boost exhibit very high quality. In order to use these libraries the programmer needs to be familiar with "modern C++". Metaprogramming is the writing of programs that write or manipulate other programs (or themselves) as their data or that do part of the work that is otherwise done at runtime during compile time. ... In computer science, generics is a technique that allows one value to take different datatypes (so-called polymorphism) as long as certain contracts such as subtypes and signature are kept. ... In computer science, generics is a technique that allows one value to take different datatypes (so-called polymorphism) as long as certain contracts such as subtypes and signature are kept. ... Peer review (known as refereeing in some academic fields) is a scholarly process used in the publication of manuscripts and in the awarding of funding for research. ...

Contents


Libraries

Boost provides extension libraries in the following areas:

  • Algorithms
  • Workarounds for Broken Compilers
  • Concurrent Programming (Threads)
  • Containers
  • Correctness and testing
  • Data Structures
  • Function Objects and Higher-Order Programming
  • Generic Programming
  • Graphs
  • Input/Output
  • Interlanguage Support
  • Iterators
  • Math and Numerics
  • Memory
  • Misc
  • Parsing
  • Preprocessor Metaprogramming
  • Smart pointers (shared_ptr), with automatic reference counting[1]
  • String and Text Processing
  • Template Metaprogramming

A smart pointer is an abstract data type that simulates a pointer while providing additional features, such as automatic garbage collection or bounds checking. ...

Linear algebra

Boost includes a linear algebra library called uBLAS, with BLAS support for vectors and matrices. Linear algebra is the branch of mathematics concerned with the study of vectors, vector spaces (or linear spaces), linear transformations, and systems of linear equations. ... Basic Linear Algebra Subprograms (BLAS) are routines which perform basic linear algebra operations such as vector and matrix multiplication. ...

  • Example showing how to multiply a vector with a matrix:
 #include <boost/numeric/ublas/vector.hpp> #include <boost/numeric/ublas/matrix.hpp> #include <boost/numeric/ublas/io.hpp> using namespace boost::numeric::ublas; /* "y = Ax" example */ int main () { vector<double> x (2); x(0) = 1; x(1) = 2; matrix<double> A(2,2); A(0,0) = 0; A(0,1) = 1; A(1,0) = 2; A(1,1) = 3; vector<double> y = prod(A, x); std::cout << y << std::endl; return 0; } 

Check the uBLAS documentation and overview of matrix and vector operations for more details.


Generating random numbers

Boost provides several pseudo-random number generators, together with several target distributions.

 #include <boost/random.hpp> #include <time.h> using namespace boost; double SampleNormal (double mean, double sigma) { mt19937 rng; // select random number generator rng.seed((unsigned int) time(0)); // seed generator with #seconds since 1970 // select desired probability distribution normal_distribution<double> norm_dist(mean, sigma); // bind random number generator to distribution, forming a function variate_generator<mt19937&, normal_distribution<double> > normal_sampler(rng, norm_dist); // sample from the distribution return normal_sampler(); } 

Check Boost Random Number Library for more details. The normal distribution, also called Gaussian distribution, is an extremely important probability distribution in many fields. ...


External links


  Results from FactBites:
 
C plus plus - Facts, Information, and Encyclopedia Reference article (4032 words)
The 1998 C++ standard consists of two parts: the core language and the C++ standard library; the latter includes most of the Standard Template Library and a slightly modified version of the C standard library.
Many C++ libraries exist which are not part of the standard, such as the Boost library.
The first addition to the C++ standard library was the stream I/O library which provided facilities to replace the traditional C functions such as printf and scanf.
Template metaprogramming - Wikipedia, the free encyclopedia (981 words)
David Abrahams, Aleksey Gurtovoy: C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond, Addison-Wesley, ISBN 0-321-22725-5
The Boost Lambda library (use STL algorithms easily)
Templates Revisited, an article on template metaprogramming in the D programming language.
  More results at FactBites »


 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments
Please enter the 5-letter protection code

Want to know more?
Search encyclopedia, statistics and forums:

 


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms.