1[section:navigation Navigation] 2 3[indexterm1 navigation] 4 5Boost.Math documentation is provided in both HTML and PDF formats. 6 7* [*Tutorials] are listed in the ['Table of Contents] and 8include many examples that should help you get started quickly. 9* [*Source code] of the many ['Examples] will often be your quickest starting point. 10* [*Index] (general) includes all entries. 11* [*Specific Indexes] list only functions, class signatures, macros and typedefs. 12 13[h5 Using the Indexes] 14 15The main index will usually help, 16especially if you know a word describing what it does, 17without needing to know the exact name chosen for the function. 18 19[tip When using the index, keep in mind that clicking on an index term 20only takes you to the [*section] containing the index entry. 21This section may be several pages long, 22so you may need to use the [*find] facility of your browser or PDF reader 23to get to the index term itself.] 24 25[tip A PDF reader usually allows a [*global] find; this can be really useful 26if the term you expect to be indexed is not the one chosen by the authors. 27You might find searching the PDF version and viewing the HTML version 28will locate an elusive item.] 29 30[endsect] [/section:navigation Navigation] 31 32[section:conventions Document Conventions] 33 34[indexterm1 conventions] 35 36This documentation aims to use of the following naming and formatting conventions. 37 38* C++ Code is in `fixed width font` and is syntax-highlighted in color, for example `double`. 39* Other code is in block [^teletype fixed-width font]. 40* Replaceable text that [*you] will need to supply is in [~italics]. 41* If a name refers to a free function, it is specified like this: 42 `free_function()`; that is, it is in [~code font] and its name is followed by `()` 43 to indicate that it is a free function. 44* If a name refers to a class template, it is specified like this: 45 `class_template<>`; that is, it is in code font and its name is followed by `<>` 46 to indicate that it is a class template. 47* If a name refers to a function-like macro, it is specified like this: `MACRO()`; 48 that is, it is uppercase in code font and its name is followed by `()` to 49 indicate that it is a function-like macro. Object-like macros appear without the 50 trailing `()`. 51* Names that refer to ['concepts] in the generic programming sense 52(like template parameter names) are specified in CamelCase. 53 54[endsect] [/section:conventions Document Conventions] 55 56[section:hints Other Hints and tips] 57 58* Historical records of issues are at [@https://svn.boost.org/trac/boost/ Boost Trac], now read-only. 59* Always ensure that you are using the [@https://www.boost.org/users/download/#live current release version]. 60* The current documentation for the release version is [@https://www.boost.org/doc/libs/release/libs/math/doc/html/index.html here]. 61* The current documentation for the version being developed is [@https://www.boost.org/doc/libs/develop/libs/math/doc/html/index.html here]. 62* See [@https://github.com/boostorg/math develop branch(es)] where changes are being assembled and tested ready for the next release.[br] 63You may, at your own risk, download new versions from there. 64* If you have a new feature request, raise a new [@https://github.com/boostorg/math/issues Boost.Math issue], 65* If it appears that the implementation is in error, 66please search first at [@https://github.com/boostorg/math/issues Boost.Math issues]. 67Entries may indicate that updates or corrections that solve your problem are in 68[@https://github.com/boostorg/math Boost.Math on Github]. 69* If you have a suggested enhancements or fix, 70you are most welcome to submit [@https://github.com/boostorg/math/pulls pull requests]. 71* If you do not understand why things work the way they do, see first the ['rationale] section. 72* If you do not find satisfaction for your idea/feature/complaint, 73please reach the author(s) preferably through the Boost user or 74development lists [@https://www.boost.org/community/groups.html], 75or raise a new [@https://github.com/boostorg/math/issues Boost.Math issue], 76or email the author(s) direct. 77 78[h5:admonishments Admonishments] 79 80[note In addition, notes such as this one specify non-essential information that 81provides additional background or rationale.] 82 83[tip These blocks contain information that you may find helpful while coding.] 84 85[important These contain information that is imperative to understanding a concept. 86Failure to follow suggestions in these blocks will probably result in undesired behavior. 87Read all of these you find.] 88 89[warning Failure to heed this will lead to incorrect, and very likely undesired, results!] 90 91[endsect] [/section:hints Other Hints and tips] 92 93 94[section:directories Directory and File Structure] 95 96[h4 boost\/math] 97 98[variablelist 99[[\/concepts\/] 100 [Prototype defining the *essential* features of a RealType 101 class (see real_concept.hpp). Most applications will use `double` 102 as the RealType (and short `typedef` names of distributions are 103 reserved for this type where possible), a few will use `float` or 104 `long double`, but it is also possible to use higher precision types 105 like __NTL_RR, __GMP, __MPFR, __multiprecision like cpp_bin_float_50 106that conform to the requirements specified by `real_concept`.]] 107 108[[\/constants\/] 109 [Templated definition of some highly accurate math constants ([@https://github.com/boostorg/math/blob/develop/include/boost/math/constants/constants.hpp constants.hpp]).]] 110 111[[\/distributions\/] 112 [Distributions used in mathematics and, especially, statistics: 113 Gaussian, Students-t, Fisher, Binomial etc]] 114 115[[\/policies\/] 116 [Policy framework, for handling user requested behaviour modifications.]] 117 118[[\/special_functions\/] 119 [Math functions generally regarded as 'special', like beta, 120 cbrt, erf, gamma, lgamma, tgamma ... (Some of these are specified in 121 C++, and C99\/TR1, and perhaps TR2).]] 122 123[[\/tools\/] 124 [Tools used by functions, like evaluating polynomials, continued fractions, 125 root finding, precision and limits, and by tests. Some will 126 find application outside this package.]] 127] 128 129[h4 boost\/libs] 130 131[variablelist 132[[\/doc\/] 133 [Documentation source files in Quickbook format processed into 134 html and pdf formats.]] 135 136[[\/examples\/] 137 [Examples and demos of using math functions and distributions.]] 138 139[[\/performance\/] 140 [Performance testing and tuning program.]] 141 142[[\/test\/] 143 [Test files, in many .cpp files, most using Boost.Test 144 (some with test data as .ipp files, usually generated using NTL RR 145 type with ample precision for the type, often for precisions 146 suitable for up to 256-bit significand real types).]] 147 148[[\/tools\/] 149 [Programs used to generate test data. Also changes to the 150 [@http://shoup.net/ntl/ NTL] released package to provide a few additional 151 (and vital) extra features.]] 152] 153 154[endsect] [/section:directories Directory and File Structure] 155 156[section:namespaces Namespaces] 157 158All math functions and distributions are in `namespace boost::math`. 159 160So, for example, the Students-t distribution template in `namespace boost::math` is 161 162 template <class RealType> class students_t_distribution 163 164and can be instantiated with the help of the reserved name `students_t`(for `RealType double`) 165 166 typedef students_t_distribution<double> students_t; 167 168 student_t mydist(10); 169 170[warning Some distribution names are also used in std random library, 171so to avoid the risk of ambiguity it is better to make explicit using declarations, 172for example: `using boost::math::students_t_distribution`] 173 174Functions not intended for use by applications are in `boost::math::detail`. 175 176Functions that may have more general use, like `digits` 177(significand), `max_value`, `min_value` and `epsilon` are in 178`boost::math::tools`. 179 180__Policy and configuration information is in `namespace` `boost::math::policies`. 181 182[tip Many code snippets assume implicit namespace(s), 183for example, `std::` or `boost::math`.] 184 185[tip Start your work from a copy of the example source code; links usually provided.] 186 187[endsect] [/section:namespaces Namespaces] 188 189 190[/ structure.qbk 191 Copyright 2006, 2010, 2012 John Maddock and Paul A. Bristow. 192 Distributed under the Boost Software License, Version 1.0. 193 (See accompanying file LICENSE_1_0.txt or copy at 194 http://www.boost.org/LICENSE_1_0.txt). 195] 196