<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Credits and Acknowledgements</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="../status.html" title="Library Status">
<link rel="prev" href="issues.html" title="Known Issues, and Todo List">
</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="issues.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../status.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>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="math_toolkit.status.credits"></a><a class="link" href="credits.html" title="Credits and Acknowledgements"> Credits and Acknowledgements</a>
</h3></div></div></div>
<p>
        Hubert Holin started the Boost.Math library. The inverse hyperbolic functions,
        and the sinus cardinal functions are his.
      </p>
<p>
        John Maddock started this library, the beta, gamma, erf, polynomial, and
        factorial functions are his, as is the "Toolkit" section, and many
        of the statistical distributions.
      </p>
<p>
        Paul A. Bristow threw down the challenge in <a href="http://www2.open-std.org/JTC1/SC22/WG21/docs/papers/2004/n1668.pdf" target="_top">A
        Proposal to add Mathematical Functions for Statistics to the C++ Standard
        Library</a> to add the key math functions, especially those essential
        for statistics. After JM accepted and solved the difficult problems, not
        only numerically, but in full C++ template style, PAB implemented a few of
        the statistical distributions. PAB also tirelessly proof-read everything
        that JM threw at him (so that all remaining editorial mistakes are his fault).
      </p>
<p>
        Xiaogang Zhang worked on the Bessel functions and elliptic integrals for
        his Google Summer of Code project 2006.
      </p>
<p>
        Bruno Lalande submitted the "compile time power of a runtime base"
        code.
      </p>
<p>
        Johan R&#229;de wrote the optimised floating point classification code.
      </p>
<p>
        Gautam Sewani coded the logistic distribution as part of a Google Summer
        of Code project 2008.
      </p>
<p>
        M. A. (Thijs) van den Berg coded the Laplace distribution. (Thijs has also
        threatened to implement some multivariate distributions).
      </p>
<p>
        Thomas Mang requested the inverse gamma in chi squared distributions for
        Bayesian applications and helped in their implementation.
      </p>
<p>
        Professor Nico Temme for advice on the inverse incomplete beta function.
      </p>
<p>
        <a href="http://www.shoup.net" target="_top">Victor Shoup for NTL</a>, without which
        it would have much more difficult to produce high accuracy constants, and
        especially the tables of accurate values for testing.
      </p>
<p>
        We are grateful to Joel Guzman for helping us stress-test his <a href="http://www.boost.org/tools/quickbook/index.htm" target="_top">Boost.Quickbook</a>
        program used to generate the html and pdf versions of this document, adding
        several new features en route.
      </p>
<p>
        Thanks to Mark Coleman and Georgi Boshnakov for spot test values from <a href="http://www.wolfram.com/products/mathematica/index.html" target="_top">Wolfram Mathematica</a>,
        and of course, to Eric Weissten for nurturing <a href="http://mathworld.wolfram.com" target="_top">Wolfram
        MathWorld</a>, an invaluable resource.
      </p>
<p>
        Plots of the functions and distributions were prepared in <a href="http://www.w3.org/" target="_top">W3C</a>
        standard <a href="http://www.svg.org/" target="_top">Scalable Vector Graphic (SVG)</a>
        format using a program created by Jacob Voytko during a <a href="http://code.google.com/soc/2007/" target="_top">Google
        Summer of Code (2007)</a>. Since browser support for rendering SVG is
        still not universal (Microsoft Internet Explorer, even IE 8 beta, still lacks
        native SVG support but can be made to work with <a href="http://www.adobe.com/svg/viewer/install/" target="_top">Adobe's
        free SVG viewer</a> plugin), so the SVG files were batch converted to
        JPEG using <a href="http://www.inkscape.org/" target="_top">Inkscape</a>.
      </p>
<p>
        We are also indebted to Matthias Schabel for managing the formal Boost-review
        of this library, and to all the reviewers - including Guillaume Melquiond,
        Arnaldur Gylfason, John Phillips, Stephan Tolksdorf and Jeff Garland - for
        their many helpful comments.
      </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="issues.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../status.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>
</div>
</body>
</html>
