<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Performance</title>
<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
<link rel="home" href="../../index.html" title="Math Toolkit">
<link rel="up" href="../main_overview.html" title="Overview">
<link rel="prev" href="threads.html" title="Thread Safety">
<link rel="next" href="building.html" title="If and How to Build a Boost.Math Library, and its Examples and Tests">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="threads.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../main_overview.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="building.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="math_toolkit.main_overview.perf_over"></a><a class="link" href="perf_over.html" title="Performance"> Performance</a>
</h3></div></div></div>
<p>
        </p>
<p>
          By and large the performance of this library should be acceptable for most
          needs. However, you should note that this library's primary emphasis is
          on accuracy and numerical stability, and <span class="emphasis"><em>not</em></span> speed.
        </p>
<p>
        </p>
<p>
          In terms of the algorithms used, this library aims to use the same "best
          of breed" algorithms as many other libraries: the principle difference
          is that this library is implemented in C++ - taking advantage of all the
          abstraction mechanisms that C++ offers - where as most traditional numeric
          libraries are implemented in C or FORTRAN. Traditionally languages such
          as C or FORTRAN are perceived as easier to optimise than more complex languages
          like C++, so in a sense this library provides a good test of current compiler
          technology, and the "abstraction penalty" - if any - of C++ compared
          to other languages.
        </p>
<p>
        </p>
<p>
          The two most important things you can do to ensure the best performance
          from this library are:
        </p>
<p>
        </p>
<div class="orderedlist"><ol type="1">
<li>
              Turn on your compilers optimisations: the difference between "release"
              and "debug" builds can easily be a <a class="link" href="../perf/getting_best.html" title="Getting the Best Performance from this Library">factor
              of 20</a>.
            </li>
<li>
              Pick your compiler carefully: <a class="link" href="../perf/comp_compilers.html" title="Comparing Compilers">performance
              differences of up to 8 fold</a> have been found between some Windows
              compilers for example.
            </li>
</ol></div>
<p>
        </p>
<p>
          The <a class="link" href="../perf.html" title="Performance">performance section</a> contains
          more information on the performance of this library, what you can do to
          fine tune it, and how this library compares to some other open source alternatives.
        </p>
<p>
      </p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2006 , 2007, 2008, 2009, 2010 John Maddock, Paul A. Bristow,
      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani and
      Thijs van den Berg<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="threads.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../main_overview.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="building.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
