From 11a752b4eb9c0539b6f171879f26dafdc2d0859e Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Mon, 15 Oct 2018 19:19:42 +0100 Subject: [PATCH] Documentation: Update overview. Add README.md. [CI SKIP] --- README.md | 91 +++++++++++++++++++++ doc/html/index.html | 2 +- doc/html/indexes/s01.html | 2 +- doc/html/indexes/s02.html | 2 +- doc/html/indexes/s03.html | 2 +- doc/html/indexes/s04.html | 2 +- doc/html/indexes/s05.html | 8 +- doc/html/math_toolkit/conventions.html | 2 +- doc/html/math_toolkit/main_intro.html | 108 +++++++++++++++++-------- doc/html/math_toolkit/navigation.html | 2 +- doc/overview/overview.qbk | 68 +++++++++------- 11 files changed, 217 insertions(+), 72 deletions(-) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 000000000..81963624b --- /dev/null +++ b/README.md @@ -0,0 +1,91 @@ +Boost Math Library +================== + +This library is divided into several interconnected parts: + +===Floating Point Utilities=== + +Utility functions for dealing with floating point arithmetic, includes functions for floating point classification (fpclassify, isnan, isinf etc), sign manipulation, rounding, comparison, and computing the distance between floating point numbers. + +===Specific Width Floating Point Types=== + +A set of typedefs similar to those provided by but for floating point types. + +===Mathematical Constants=== + +A wide range of constants ranging from various multiples of pi, fractions, through to euler's constant etc. + +These are of course usable from template code, or as non-templates with a simplified interface if that is more appropriate. + +===Statistical Distributions=== + +Provides a reasonably comprehensive set of statistical distributions, upon which higher level statistical tests can be built. + +The initial focus is on the central univariate distributions. Both continuous (like normal & Fisher) and discrete (like binomial & Poisson) distributions are provided. + +A comprehensive tutorial is provided, along with a series of worked examples illustrating how the library is used to conduct statistical tests. + +===Mathematical Special Functions=== + +Provides a small number of high quality special functions, initially these were concentrated on functions used in statistical applications along with those in the Technical Report on C++ Library Extensions. + +The function families currently implemented are the gamma, beta & erf functions along with the incomplete gamma and beta functions (four variants of each) and all the possible inverses of these, plus digamma, various factorial functions, Bessel functions, elliptic integrals, sinus cardinals (along with their hyperbolic variants), inverse hyperbolic functions, Legrendre/Laguerre/Hermite polynomials and various special power and logarithmic functions. + +All the implementations are fully generic and support the use of arbitrary "real-number" types, including Boost.Multiprecision, although they are optimised for use with types with known-about significand (or mantissa) sizes: typically float, double or long double. + +These functions also provide the basis of support for the TR1 special functions. + +===Root Finding and Function Minimisation=== + +A comprehensive set of root finding algorithms over the real-line, both with and without derivative support. + +Also function minimisation via Brent's Method. + +===Polynomials and Rational Functions=== + +Tools for manipulating polynomials and for efficient evaluation of rationals or polynomials. + +===Interpolation=== + +Function interpolation via Barycentic or cubic B_spline approximations. + +===Numerical Integration and Differentiation=== + +A reasonably comprehensive set of routines for integration (trapezoidal, Gaus-Legendre, Gaus-Kronrod and double-exponential) and differentiation. + +The integration routines are all usable for functions returning complex results - and as a result for contour integrals as well. + +===Quaternions and Octonions=== + +Quaternion and Octonians as class templates similar to std::complex. + +The full documentation is available on [boost.org](http://www.boost.org/doc/libs/release/libs/math). + +## Support, bugs and feature requests ## + +Bugs and feature requests can be reported through the [Gitub issue tracker](https://github.com/boostorg/math/issues) +(see [open issues](https://github.com/boostorg/math/issues) and +[closed issues](https://github.com/boostorg/math/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aclosed)). + +You can submit your changes through a [pull request](https://github.com/boostorg/math/pulls). + +There is no mailing-list specific to Boost Math, although you can use the general-purpose Boost [mailing-list](http://lists.boost.org/mailman/listinfo.cgi/boost-users) using the tag [math]. + + +## Development ## + +Clone the whole boost project, which includes the individual Boost projects as submodules ([see boost+git doc](https://github.com/boostorg/boost/wiki/Getting-Started)): + + git clone https://github.com/boostorg/boost + cd boost + git submodule update --init + +The Boost Math Library is located in `libs/math/`. + +### Running tests ### +First, make sure you are in `libs/math/test`. +You can either run all the tests listed in `Jamfile.v2` or run a single test: + + ../../../b2 <- run all tests + ../../../b2 static_assert_test <- single test + diff --git a/doc/html/index.html b/doc/html/index.html index 491a1246a..3f67a02e3 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -122,7 +122,7 @@ This manual is also available in -

Last revised: October 10, 2018 at 19:16:15 GMT

+

Last revised: October 15, 2018 at 18:11:40 GMT


diff --git a/doc/html/indexes/s01.html b/doc/html/indexes/s01.html index 4b2caf3d5..70f5d2690 100644 --- a/doc/html/indexes/s01.html +++ b/doc/html/indexes/s01.html @@ -24,7 +24,7 @@

-Function Index

+Function Index

1 2 4 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

diff --git a/doc/html/indexes/s02.html b/doc/html/indexes/s02.html index f04cc1445..f0059284e 100644 --- a/doc/html/indexes/s02.html +++ b/doc/html/indexes/s02.html @@ -24,7 +24,7 @@

-Class Index

+Class Index

A B C D E F G H I L M N O P Q R S T U W

diff --git a/doc/html/indexes/s03.html b/doc/html/indexes/s03.html index d794c8036..b898dcfc6 100644 --- a/doc/html/indexes/s03.html +++ b/doc/html/indexes/s03.html @@ -24,7 +24,7 @@

-Typedef Index

+Typedef Index

A B C D E F G H I L N O P R S T U V W

diff --git a/doc/html/indexes/s04.html b/doc/html/indexes/s04.html index 582d556b7..7cac22171 100644 --- a/doc/html/indexes/s04.html +++ b/doc/html/indexes/s04.html @@ -24,7 +24,7 @@

-Macro Index

+Macro Index

B F

diff --git a/doc/html/indexes/s05.html b/doc/html/indexes/s05.html index bf7d50382..3598b86ab 100644 --- a/doc/html/indexes/s05.html +++ b/doc/html/indexes/s05.html @@ -23,7 +23,7 @@

-Index

+Index

1 2 4 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

@@ -67,7 +67,10 @@

- +

This documentation aims to use of the following naming and formatting conventions. diff --git a/doc/html/math_toolkit/main_intro.html b/doc/html/math_toolkit/main_intro.html index 52184b773..bfe53072c 100644 --- a/doc/html/math_toolkit/main_intro.html +++ b/doc/html/math_toolkit/main_intro.html @@ -27,10 +27,42 @@ About the Math Toolkit

- This library is divided into three interconnected parts: + This library is divided into several interconnected parts:

+ Floating + Point Utilities +
+

+ Utility functions for dealing with floating point arithmetic, includes functions + for floating point classification (fpclassify, isnan, isinf etc), sign manipulation, + rounding, comparison, and computing the distance between floating point numbers. +

+
+ + Specific + Width Floating Point Types +
+

+ A set of typedefs similar to those provided by <cstdint> + but for floating point types. +

+
+ + Mathematical + Constants +
+

+ A wide range of constants ranging from various multiples of π, fractions, through + to euler's constant etc. +

+

+ These are of course usable from template code, or as non-templates with a simplified + interface if that is more appropriate. +

+
+ Statistical Distributions
@@ -55,7 +87,7 @@ illustrating how the library is used to conduct statistical tests.

- + Mathematical Special Functions
@@ -81,45 +113,57 @@ double or long double.

+

+ These functions also provide the basis of support for the TR1 special functions. +

- - Implementation - Toolkit + + Root Finding + and Function Minimisation

- The section Internal tools - provides many of the tools required to implement mathematical special functions: - hopefully the presence of these will encourage other authors to contribute - more special function implementations in the future. + A comprehensive set of root finding algorithms over the real-line, both with + and without derivative support.

- Some tools are now considered well-tried and their signatures stable and unlikely - to change. + Also function minimisation via Brent's Method. +

+
+ + Polynomials + and Rational Functions +
+

+ Tools for manipulating polynomials and for efficient evaluation of rationals + or polynomials. +

+
+ + Interpolation +
+

+ Function interpolation via Barycentic or cubic B_spline approximations. +

+
+ + Numerical + Integration and Differentiation +
+

+ A reasonably comprehensive set of routines for integration (trapezoidal, Gaus-Legendre, + Gaus-Kronrod and double-exponential) and differentiation.

- There is a fairly comprehensive set of root finding both root-finding - without derivatives and root-finding - with derivatives with derivative support, and function minimization - using Brent's method. + The integration routines are all usable for functions returning complex results + - and as a result for contour integrals as well.

+
+ + Quaternions + and Octonions +

- Other Internal tools - are currently still considered experimental: they are "exposed implementation - details" whose interfaces and/or implementations may change without notice. -

-

- There are helpers for the evaluation - of infinite series, continued - fractions and rational approximations. - A Remez algorithm implementation - allows for the locating of minimax rational approximations. -

-

- There are also (experimental) classes for the manipulation - of polynomials, for testing - a special function against tabulated test data, and for the rapid - generation of test data and/or data for output to an external graphing - application. + Quaternion and Octonians as class templates similar to std::complex.

diff --git a/doc/html/math_toolkit/navigation.html b/doc/html/math_toolkit/navigation.html index 54b9d334b..313ac01a5 100644 --- a/doc/html/math_toolkit/navigation.html +++ b/doc/html/math_toolkit/navigation.html @@ -27,7 +27,7 @@ Navigation

- +

Boost.Math documentation is provided in both HTML and PDF formats. diff --git a/doc/overview/overview.qbk b/doc/overview/overview.qbk index 5aab8cee8..3f2cfa7f9 100644 --- a/doc/overview/overview.qbk +++ b/doc/overview/overview.qbk @@ -1,6 +1,22 @@ [section:main_intro About the Math Toolkit] -This library is divided into three interconnected parts: +This library is divided into several interconnected parts: + +[h4 Floating Point Utilities] + +Utility functions for dealing with floating point arithmetic, includes functions +for floating point classification (fpclassify, isnan, isinf etc), sign manipulation, +rounding, comparison, and computing the distance between floating point numbers. + +[h4 Specific Width Floating Point Types] + +A set of typedefs similar to those provided by `` but for floating point types. + +[h4 Mathematical Constants] + +A wide range of constants ranging from various multiples of [pi], fractions, through to euler's constant etc. + +These are of course usable from template code, or as non-templates with a simplified interface if that is more appropriate. [h4 Statistical Distributions] @@ -47,43 +63,33 @@ although they are optimised for use with types with known-about [@http://en.wikipedia.org/wiki/Significand significand (or mantissa)] sizes: typically `float`, `double` or `long double`. -[h4 Implementation Toolkit] +These functions also provide the basis of support for the TR1 special functions. -The section [link math_toolkit.internals_overview Internal tools] -provides many of the tools required to implement -mathematical special functions: hopefully the presence of -these will encourage other authors to contribute more special -function implementations in the future. +[h4 Root Finding and Function Minimisation] -Some tools are now considered well-tried and their signatures stable and unlikely to change. +A comprehensive set of root finding algorithms over the real-line, both with and without derivative support. -There is a fairly comprehensive set of root finding both -__root_finding_without_derivatives -and __root_finding_with_derivatives with derivative support, -and function minimization using __brent_minima. +Also function minimisation via Brent's Method. -Other [link math_toolkit.internals_overview Internal tools] -are currently still considered experimental: they are "exposed implementation details" -whose interfaces and\/or implementations may change without notice. +[h4 Polynomials and Rational Functions] -There are helpers for the -[link math_toolkit.internals.series_evaluation evaluation of infinite series], -[link math_toolkit.internals.cf continued -fractions] and [link math_toolkit.rational -rational approximations]. -A [link math_toolkit.internals.minimax Remez algorithm implementation] -allows for the locating of minimax rational -approximations. +Tools for manipulating polynomials and for efficient evaluation of rationals or polynomials. -There are also (experimental) classes for the -[link math_toolkit.polynomials manipulation of polynomials], for -[link math_toolkit.internals.error_test -testing a special function against tabulated test data], and for -the [link math_toolkit.internals.test_data -rapid generation of test data] and/or data for output to an -external graphing application. +[h4 Interpolation] -[endsect] [/section:intro Introduction] +Function interpolation via Barycentic or cubic B_spline approximations. + +[h4 Numerical Integration and Differentiation] + +A reasonably comprehensive set of routines for integration (trapezoidal, Gaus-Legendre, Gaus-Kronrod and double-exponential) and differentiation. + +The integration routines are all usable for functions returning complex results - and as a result for contour integrals as well. + +[h4 Quaternions and Octonions] + +Quaternion and Octonians as class templates similar to `std::complex`. + +[endsect] [/ Copyright 2006, 2012, 2015 John Maddock and Paul A. Bristow.