• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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