Boost logo

Boost-Commit :

From: john_at_[hidden]
Date: 2007-08-22 13:48:14


Author: johnmaddock
Date: 2007-08-22 13:48:10 EDT (Wed, 22 Aug 2007)
New Revision: 38855
URL: http://svn.boost.org/trac/boost/changeset/38855

Log:
Updated performance test app, and added performance docs and logs.
Added:
   sandbox/math_toolkit/libs/math/doc/performance.qbk (contents, props changed)
   sandbox/math_toolkit/libs/math/performance/Jamfile.v2 (contents, props changed)
   sandbox/math_toolkit/libs/math/performance/gcc-3.4-w32.log (contents, props changed)
   sandbox/math_toolkit/libs/math/performance/gcc-4.2-linux.log (contents, props changed)
   sandbox/math_toolkit/libs/math/performance/gcc-4.2-long-double-linux.log (contents, props changed)
   sandbox/math_toolkit/libs/math/performance/intel-10-linux.log (contents, props changed)
   sandbox/math_toolkit/libs/math/performance/intel-10-w32.log (contents, props changed)
   sandbox/math_toolkit/libs/math/performance/msvc-8-debug.log (contents, props changed)
   sandbox/math_toolkit/libs/math/performance/msvc-8.log (contents, props changed)
Text files modified:
   sandbox/math_toolkit/libs/math/doc/Jamfile.v2 | 4 ++++
   sandbox/math_toolkit/libs/math/doc/issues.qbk | 2 --
   sandbox/math_toolkit/libs/math/doc/math.qbk | 12 ++++++++++--
   sandbox/math_toolkit/libs/math/performance/main.cpp | 10 ++++++++++
   sandbox/math_toolkit/libs/math/performance/test_ibeta.cpp | 2 +-
   sandbox/math_toolkit/libs/math/performance/test_igamma.cpp | 3 +--
   6 files changed, 26 insertions(+), 7 deletions(-)

Modified: sandbox/math_toolkit/libs/math/doc/Jamfile.v2
==============================================================================
--- sandbox/math_toolkit/libs/math/doc/Jamfile.v2 (original)
+++ sandbox/math_toolkit/libs/math/doc/Jamfile.v2 2007-08-22 13:48:10 EDT (Wed, 22 Aug 2007)
@@ -16,6 +16,10 @@
         <xsl:param>boost.libraries=$(boost-root)/libs/libraries.htm
         # Use the main Boost stylesheet:
         <xsl:param>html.stylesheet=../../../../../../trunk/doc/html/boostbook.css
+
+ # Some general style settings:
+ <xsl:param>table.footnote.number.format=1
+ <xsl:param>footnote.number.format=1
 
         # HTML options first:
         # Use graphics not text for navigation:

Modified: sandbox/math_toolkit/libs/math/doc/issues.qbk
==============================================================================
--- sandbox/math_toolkit/libs/math/doc/issues.qbk (original)
+++ sandbox/math_toolkit/libs/math/doc/issues.qbk 2007-08-22 13:48:10 EDT (Wed, 22 Aug 2007)
@@ -37,8 +37,6 @@
 
 [h4 Elliptic Integrals]
 
-[template para[text] '''<para>'''[text]'''</para>''']
-
 * Carlson's algorithms are essentially unchanged from Xiaogang Zhang's
 Google Summer of Code student project, and are based on Carlson's
 original papers. However, Carlson has revised his algorithms since then

Modified: sandbox/math_toolkit/libs/math/doc/math.qbk
==============================================================================
--- sandbox/math_toolkit/libs/math/doc/math.qbk (original)
+++ sandbox/math_toolkit/libs/math/doc/math.qbk 2007-08-22 13:48:10 EDT (Wed, 22 Aug 2007)
@@ -172,11 +172,17 @@
 [/ distribution def names end in distrib to avoid clashes]
 [def __beta_distrib [link math_toolkit.dist.dist_ref.dists.beta_dist Beta Distribution]]
 [def __binomial_distrib [link math_toolkit.dist.dist_ref.dists.binomial_dist Binomial Distribution]]
-[def __negative_binomial_distrib [link math_toolkit.dist.dist_ref.dists.negative_binomial_dist Negative Binomial Distribution]]
+[def __cauchy_distrib [link math_toolkit.dist.dist_ref.dists.cauchy_dist Cauchy Distribution]]
 [def __chi_squared_distrib [link math_toolkit.dist.dist_ref.dists.chi_squared_dist Chi Squared Distribution]]
-[def __normal_distrib [link math_toolkit.dist.dist_ref.dists.normal_dist Normal Distribution]]
+[def __exp_distrib [link math_toolkit.dist.dist_ref.dists.exp_dist Exponential Distribution]]
 [def __F_distrib [link math_toolkit.dist.dist_ref.dists.f_dist Fisher F Distribution]]
+[def __gamma_distrib [link math_toolkit.dist.dist_ref.dists.gamma_dist Gamma Distribution]]
+[def __lognormal_distrib [link math_toolkit.dist.dist_ref.dists.lognormal_dist Log-normal Distribution]]
+[def __negative_binomial_distrib [link math_toolkit.dist.dist_ref.dists.negative_binomial_dist Negative Binomial Distribution]]
+[def __normal_distrib [link math_toolkit.dist.dist_ref.dists.normal_dist Normal Distribution]]
+[def __poisson_distrib [link math_toolkit.dist.dist_ref.dists.poisson_dist Poisson Distribution]]
 [def __students_t_distrib [link math_toolkit.dist.dist_ref.dists.students_t_dist Students t Distribution]]
+[def __weibull_distrib [link math_toolkit.dist.dist_ref.dists.weibull Weibull Distribution]]
 
 [/links to policy]
 [def __Policy [link math_toolkit.policy Policy]] [/ Used in distribution template specifications]
@@ -313,6 +319,8 @@
 
 [include structure.qbk] [/getting about]
 
+[include performance.qbk]
+
 [section:dist Statistical Distributions and Functions]
 [include dist_tutorial.qbk]
 [include dist_reference.qbk]

Added: sandbox/math_toolkit/libs/math/doc/performance.qbk
==============================================================================
--- (empty file)
+++ sandbox/math_toolkit/libs/math/doc/performance.qbk 2007-08-22 13:48:10 EDT (Wed, 22 Aug 2007)
@@ -0,0 +1,355 @@
+
+[section:perf Performance]
+
+[template perf[name value] [value]]
+[template para[text] '''<para>'''[text]'''</para>''']
+
+By and large the performance of this library should be acceptable
+for most needs. However, you should note that the library's primary
+emphasis is on accuracy and numerical stability, and /not/ speed.
+
+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 FORTAN 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.
+
+[heading Getting the Best Performance from this Library]
+
+By far the most important thing you can do when using this library
+is turn on your compiler's optimisation options. As the following
+table shows the penalty for using the library in debug mode can be
+quite large.
+
+[caution
+In all of the following tables, the best performing
+result in each row, is assigned a relative value of "1" and shown
+in bold, so a score of "2" means ['"twice as slow as the best
+performing result".] Actual timings in seconds per function call
+are also shown in parenthesis.
+
+Result were obtained on a system
+with an Intel 2.8GHz Pentium 4 processor with 2Gb of RAM and running
+either Windows XP or Mandriva Linux.
+
+As usual
+with performance results these should be taken with a large pinch
+of salt: relative performance is known to shift quite a bit depending
+upon the architecture of the particular test system used. Further
+more, our performance results were obtained using our own test data:
+these test values are designed to provide good coverage of our code and test
+all the appropriate corner cases. They do not necessarily represent
+"typical" usage: whatever that may be.
+]
+
+[table Performance Comparison of Release and Debug Settings
+[[Function]
+ [Microsoft Visual C++ 8.0
+
+ Debug Settings: /Od /ZI
+ ]
+ [Microsoft Visual C++ 8.0
+
+ Release settings: /Ox /arch:SSE2
+ ]]
+
+[[__erf][[perf msvc-debug-erf..[para 16.65][para (1.028e-006s)]]][[perf msvc-erf..[para *1.00*][para (6.173e-008s)]]]]
+[[__erf_inv][[perf msvc-debug-erf_inv..[para 19.28][para (1.215e-006s)]]][[perf msvc-erf_inv..[para *1.00*][para (6.302e-008s)]]]]
+[[__ibeta and __ibetac][[perf msvc-debug-ibeta..[para 8.32][para (1.540e-005s)]]][[perf msvc-ibeta..[para *1.00*][para (1.852e-006s)]]]]
+[[__ibeta_inv and ibetac_inv][[perf msvc-debug-ibeta_inv..[para 10.25][para (7.492e-005s)]]][[perf msvc-ibeta_inv..[para *1.00*][para (7.311e-006s)]]]]
+[[__ibeta_inva, __ibetac_inva, __ibeta_invb and __ibetac_invb][[perf msvc-debug-ibeta_invab..[para 8.57][para (2.441e-004s)]]][[perf msvc-ibeta_invab..[para *1.00*][para (2.847e-005s)]]]]
+[[__gamma_p and gamma_q][[perf msvc-debug-igamma..[para 10.98][para (1.044e-005s)]]][[perf msvc-igamma..[para *1.00*][para (9.504e-007s)]]]]
+[[__gamma_p_inv and gamma_q_inv][[perf msvc-debug-igamma_inv..[para 10.25][para (3.721e-005s)]]][[perf msvc-igamma_inv..[para *1.00*][para (3.631e-006s)]]]]
+[[__gamma_p_inva and gamma_q_inva][[perf msvc-debug-igamma_inva..[para 11.26][para (1.124e-004s)]]][[perf msvc-igamma_inva..[para *1.00*][para (9.982e-006s)]]]]
+]
+
+[heading Comparing Compilers]
+
+After a good choice of build settings the next most important thing
+you can do, is choose your compiler
+- and the standard C library it sits on top of - very carefully. GCC-3.x
+in particular has been found to be particularly bad at inlining code,
+and performing the kinds of high level transformations that good C++ performance
+demands (thankfully GCC-4.x is somewhat better in this respect).
+
+[table Performance Comparison of Various Windows Compilers
+[[Function]
+ [Intel C++ 10.0
+
+ ( /Ox /Qipo /QxN )
+ ]
+ [Microsoft Visual C++ 8.0
+
+ ( /Ox /arch:SSE2 )
+ ]
+ [Cygwin G++ 3.4
+
+ ( /O3 )
+ ]]
+[[__erf][[perf intel-erf..[para *1.00*][para (4.118e-008s)]]][[perf msvc-erf..[para 1.50][para (6.173e-008s)]]][[perf gcc-erf..[para 3.24][para (1.336e-007s)]]]]
+[[__erf_inv][[perf intel-erf_inv..[para *1.00*][para (4.439e-008s)]]][[perf msvc-erf_inv..[para 1.42][para (6.302e-008s)]]][[perf gcc-erf_inv..[para 7.88][para (3.500e-007s)]]]]
+[[__ibeta and __ibetac][[perf intel-ibeta..[para *1.00*][para (1.631e-006s)]]][[perf msvc-ibeta..[para 1.14][para (1.852e-006s)]]][[perf gcc-ibeta..[para 3.05][para (4.975e-006s)]]]]
+[[__ibeta_inv and ibetac_inv][[perf intel-ibeta_inv..[para *1.00*][para (6.133e-006s)]]][[perf msvc-ibeta_inv..[para 1.19][para (7.311e-006s)]]][[perf gcc-ibeta_inv..[para 2.60][para (1.597e-005s)]]]]
+[[__ibeta_inva, __ibetac_inva, __ibeta_invb and __ibetac_invb][[perf intel-ibeta_invab..[para *1.00*][para (2.453e-005s)]]][[perf msvc-ibeta_invab..[para 1.16][para (2.847e-005s)]]][[perf gcc-ibeta_invab..[para 2.83][para (6.947e-005s)]]]]
+[[__gamma_p and gamma_q][[perf intel-igamma..[para *1.00*][para (6.735e-007s)]]][[perf msvc-igamma..[para 1.41][para (9.504e-007s)]]][[perf gcc-igamma..[para 2.78][para (1.872e-006s)]]]]
+[[__gamma_p_inv and gamma_q_inv][[perf intel-igamma_inv..[para *1.00*][para (2.637e-006s)]]][[perf msvc-igamma_inv..[para 1.38][para (3.631e-006s)]]][[perf gcc-igamma_inv..[para 3.31][para (8.736e-006s)]]]]
+[[__gamma_p_inva and gamma_q_inva][[perf intel-igamma_inva..[para *1.00*][para (7.716e-006s)]]][[perf msvc-igamma_inva..[para 1.29][para (9.982e-006s)]]][[perf gcc-igamma_inva..[para 2.56][para (1.974e-005s)]]]]
+]
+
+[heading Performance Tuning Macros]
+
+There are a small number of performance tuning options
+that are determined by configuration macros. These should be set
+in boost/math/tools/user.hpp; or else reported to the Boost-development
+mailing list so that the appropriate option for a given compiler and
+OS platform can be set automatically in our configuration setup.
+
+[table
+[[Macro][Meaning]]
+[[BOOST_MATH_POLY_METHOD]
+ [Determines how polynomials and most rational functions
+ are evaluated. Define to one
+ of the values 0, 1, 2 or 3: see below for the meaning of these values.]]
+[[BOOST_MATH_RATIONAL_METHOD]
+ [Determines how symmetrical rational functions are evaluated: mostly
+ this only effects how the Lanczos approximation is evaluated, and how
+ the `evaluate_rational` function behaves. Define to one
+ of the values 0, 1, 2 or 3: see below for the meaning of these values.
+ ]]
+[[BOOST_MATH_MAX_POLY_ORDER]
+ [The maximum order of polynomial or rational function that will
+ be evaluated by a method other than 0 (a simple "for" loop).
+ ]]
+[[BOOST_MATH_INT_TABLE_TYPE(RT, IT)]
+ [Many of the coefficients to the polynomials and rational functions
+ used by this library are integers. Normally these are stored as tables
+ as integers, but if mixed integer / floating point arithmetic is much
+ slower than regular floating point arithmetic then they can be stored
+ as tables of floating point values instead. If mixed arithmetic is slow
+ then add:
+
+ #define BOOST_MATH_INT_TABLE_TYPE(RT, IT) RT
+
+ to boost/math/tools/user.hpp, otherwise the default of:
+
+ #define BOOST_MATH_INT_TABLE_TYPE(RT, IT) IT
+
+ Set in boost/math/config.hpp is fine, and may well result in smaller
+ code.
+ ]]
+]
+
+The values to which `BOOST_MATH_POLY_METHOD` and `BOOST_MATH_RATIONAL_METHOD`
+may be set are as follows:
+
+[table
+[[Value][Effect]]
+[[0][The polynomial or rational function is evaluated using Horner's
+ method, and a simple for-loop.
+
+ Note that if the order of the polynomial
+ or rational function is a runtime parameter, or the order is
+ greater than the value of `BOOST_MATH_MAX_POLY_ORDER`, then
+ this method is always used, irrespective of the value
+ of `BOOST_MATH_POLY_METHOD` or `BOOST_MATH_RATIONAL_METHOD`.]]
+[[1][The polynomial or rational function is evaluated without
+ the use of a loop, and using Horner's method. This only occurs
+ if the order of the polynomial is known at compile time and is less
+ than or equal to `BOOST_MATH_MAX_POLY_ORDER`. ]]
+[[2][The polynomial or rational function is evaluated without
+ the use of a loop, and using a second order Horner's method.
+ In theory this permits two operations to occur in parallel
+ for polynomials, and four in parallel for rational functions.
+ This only occurs
+ if the order of the polynomial is known at compile time and is less
+ than or equal to `BOOST_MATH_MAX_POLY_ORDER`.]]
+[[3][The polynomial or rational function is evaluated without
+ the use of a loop, and using a second order Horner's method.
+ In theory this permits two operations to occur in parallel
+ for polynomials, and four in parallel for rational functions.
+ This differs from method "2" in that the code is carefully ordered
+ to make the parallelisation more obvious to the compiler: rather than
+ relying on the compiler's optimiser to spot the parallelisation
+ opportunities.
+ This only occurs
+ if the order of the polynomial is known at compile time and is less
+ than or equal to `BOOST_MATH_MAX_POLY_ORDER`.]]
+]
+
+To determine which
+of these options is best for your particular compiler/platform build
+the performance test application with your usual release settings,
+and run the program with the --tune command line option.
+
+In practice the difference between methods is rather small at present,
+as the following table shows. However, parallelisation /vectorisation
+is likely to become more important in the future: quite likely the methods
+currently supported will need to be supplemented or replaced by ones more
+suited to highly vectorisable processors in the future.
+
+[table A Comparison of Polynomial Evaluation Methods
+[[Compiler/platform][Method 0][Method 1][Method 2][Method 3]]
+[[Microsoft C++ 8.0, Polynomial evaluation] [[perf msvc-Polynomial-method-0..[para 1.34][para (1.161e-007s)]]][[perf msvc-Polynomial-method-1..[para 1.13][para (9.777e-008s)]]][[perf msvc-Polynomial-method-2..[para 1.07][para (9.289e-008s)]]][[perf msvc-Polynomial-method-3..[para *1.00*][para (8.678e-008s)]]]]
+[[Microsoft C++ 8.0, Rational evaluation] [[perf msvc-Rational-method-0..[para *1.00*][para (1.443e-007s)]]][[perf msvc-Rational-method-1..[para 1.03][para (1.492e-007s)]]][[perf msvc-Rational-method-2..[para 1.20][para (1.736e-007s)]]][[perf msvc-Rational-method-3..[para 1.07][para (1.540e-007s)]]]]
+[[Intel C++ 10.0 (Windows), Polynomial evaluation] [[perf intel-Polynomial-method-0..[para 1.03][para (7.702e-008s)]]][[perf intel-Polynomial-method-1..[para 1.03][para (7.702e-008s)]]][[perf intel-Polynomial-method-2..[para *1.00*][para (7.446e-008s)]]][[perf intel-Polynomial-method-3..[para 1.03][para (7.690e-008s)]]]]
+[[Intel C++ 10.0 (Windows), Rational evaluation] [[perf intel-Rational-method-0..[para *1.00*][para (1.245e-007s)]]][[perf intel-Rational-method-1..[para *1.00*][para (1.245e-007s)]]][[perf intel-Rational-method-2..[para 1.18][para (1.465e-007s)]]][[perf intel-Rational-method-3..[para 1.06][para (1.318e-007s)]]]]
+[[GNU G++ 4.2 (Linux), Polynomial evaluation] [[perf gcc-4_2-ld-Polynomial-method-0..[para 1.61][para (1.220e-007s)]]][[perf gcc-4_2-ld-Polynomial-method-1..[para 1.68][para (1.269e-007s)]]][[perf gcc-4_2-ld-Polynomial-method-2..[para 1.23][para (9.275e-008s)]]][[perf gcc-4_2-ld-Polynomial-method-3..[para *1.00*][para (7.566e-008s)]]]]
+[[GNU G++ 4.2 (Linux), Rational evaluation] [[perf gcc-4_2-ld-Rational-method-0..[para 1.26][para (1.660e-007s)]]][[perf gcc-4_2-ld-Rational-method-1..[para 1.33][para (1.758e-007s)]]][[perf gcc-4_2-ld-Rational-method-2..[para *1.00*][para (1.318e-007s)]]][[perf gcc-4_2-ld-Rational-method-3..[para 1.15][para (1.513e-007s)]]]]
+[[Intel C++ 10.0 (Linux), Polynomial evaluation] [[perf intel-linux-Polynomial-method-0..[para 1.15][para (9.154e-008s)]]][[perf intel-linux-Polynomial-method-1..[para 1.15][para (9.154e-008s)]]][[perf intel-linux-Polynomial-method-2..[para *1.00*][para (7.934e-008s)]]][[perf intel-linux-Polynomial-method-3..[para *1.00*][para (7.934e-008s)]]]]
+[[Intel C++ 10.0 (Linux), Rational evaluation] [[perf intel-linux-Rational-method-0..[para *1.00*][para (1.245e-007s)]]][[perf intel-linux-Rational-method-1..[para *1.00*][para (1.245e-007s)]]][[perf intel-linux-Rational-method-2..[para 1.35][para (1.684e-007s)]]][[perf intel-linux-Rational-method-3..[para 1.04][para (1.294e-007s)]]]]
+]
+
+There is one final performance tuning option that is available as a compile time
+[link math_toolkit.policy policy]. Normally when evaluating functions at `double`
+precision, these are actually evaluated at `long double` precision internally:
+this helps to ensure that as close to full `double` precision as possible is
+achieved, but may slow down execution in some environments. The defaults for
+this policy can be changed by
+[link math_toolkit.policy.pol_ref.policy_defaults
+defining the macro `BOOST_MATH_PROMOTE_DOUBLE_POLICY`]
+to `false`, or
+[link math_toolkit.policy.pol_ref.internal_promotion
+by specifying a specific policy] when calling the special
+functions or distributions. See also the
+[link math_toolkit.policy.pol_tutorial policy tutorial].
+
+[table Performance Comparison with and Without Internal Promotion to long double
+[[Function]
+ [GCC 4.2 , Linux
+
+ (with internal promotion of double to long double).
+ ]
+ [GCC 4.2, Linux
+
+ (without promotion of double).
+ ]
+]
+[[__erf][[perf gcc-4_2-ld-erf..[para 1.48][para (1.387e-007s)]]][[perf gcc-4_2-erf..[para *1.00*][para (9.377e-008s)]]]]
+[[__erf_inv][[perf gcc-4_2-ld-erf_inv..[para 1.11][para (4.009e-007s)]]][[perf gcc-4_2-erf_inv..[para *1.00*][para (3.598e-007s)]]]]
+[[__ibeta and __ibetac][[perf gcc-4_2-ld-ibeta..[para 1.29][para (5.354e-006s)]]][[perf gcc-4_2-ibeta..[para *1.00*][para (4.137e-006s)]]]]
+[[__ibeta_inv and ibetac_inv][[perf gcc-4_2-ld-ibeta_inv..[para 1.44][para (2.220e-005s)]]][[perf gcc-4_2-ibeta_inv..[para *1.00*][para (1.538e-005s)]]]]
+[[__ibeta_inva, __ibetac_inva, __ibeta_invb and __ibetac_invb][[perf gcc-4_2-ld-ibeta_invab..[para 1.25][para (7.009e-005s)]]][[perf gcc-4_2-ibeta_invab..[para *1.00*][para (5.607e-005s)]]]]
+[[__gamma_p and gamma_q][[perf gcc-4_2-ld-igamma..[para 1.26][para (3.116e-006s)]]][[perf gcc-4_2-igamma..[para *1.00*][para (2.464e-006s)]]]]
+[[__gamma_p_inv and gamma_q_inv][[perf gcc-4_2-ld-igamma_inv..[para 1.27][para (1.178e-005s)]]][[perf gcc-4_2-igamma_inv..[para *1.00*][para (9.291e-006s)]]]]
+[[__gamma_p_inva and gamma_q_inva][[perf gcc-4_2-ld-igamma_inva..[para 1.20][para (2.765e-005s)]]][[perf gcc-4_2-igamma_inva..[para *1.00*][para (2.311e-005s)]]]]
+]
+
+[heading Comparisons to Other Open Source Libraries]
+
+We've run our performance tests both for our own code, and against other
+open source implementations of the same functions. The results are
+presented below to give you a rough idea of how they all compare.
+
+[caution
+You should exercise extreme caution when interpreting
+these results, relative performance may vary by platform, the tests use
+data that gives good code coverage of /our/ code, but which may skew the
+results towards the corner cases. Finally, remember that different
+libraries make different choices with regard to performance verses
+numerical stability.
+]
+
+[heading Comparison to GSL-1.9 and Cephes]
+
+All the results were measured on a 2.8GHz Intel Pentium 4, 2Gb RAM, Windows XP
+machine, with all the libraries compiled with Microsoft Visual C++ 2005 using
+the `/Ox /arch:SSE2` options.
+
+[table
+[[Function][Boost][GSL-1.9][Cephes]]
+[[__tgamma][[perf msvc-gamma..[para 1.50][para (2.566e-007s)]]][[perf msvc-gamma-gsl..[para 1.54][para (2.627e-007s)]]][[perf msvc-gamma-cephes..[para *1.00*][para (1.709e-007s)]]]]
+[[__lgamma][[perf msvc-lgamma..[para 1.73][para (2.688e-007s)]]][[perf msvc-lgamma-gsl..[para 3.61][para (5.621e-007s)]]][[perf msvc-lgamma-cephes..[para *1.00*][para (1.556e-007s)]]]]
+[[__gamma_p and __gamma_q][[perf msvc-igamma..[para *1.00*][para (9.504e-007s)]]][[perf msvc-igamma-gsl..[para 2.15][para (2.042e-006s)]]][[perf msvc-igamma-cephes..[para 2.57][para (2.439e-006s)]]]]
+[[__gamma_p_inv and __gamma_q_inv][[perf msvc-igamma_inv..[para *1.00*][para (3.631e-006s)]]][N\/A][+INF [footnote Cephes gets stuck in an infinite loop while trying to execute our test cases.]]]
+[[__ibeta and __ibetac][[perf msvc-ibeta..[para *1.00*][para (1.852e-006s)]]][[perf msvc-ibeta-cephes..[para 1.07][para (1.974e-006s)]]][[perf msvc-ibeta-cephes..[para 1.07][para (1.974e-006s)]]]]
+[[__ibeta_inv and __ibetac_inv][[perf msvc-ibeta_inv..[para *1.00*][para (7.311e-006s)]]][N\/A][[perf msvc-ibeta_inv-cephes..[para 2.24][para (1.637e-005s)]]]]
+]
+
+[heading Comparison to the R Statistical Library on Windows]
+
+All the results were measured on a 2.8GHz Intel Pentium 4, 2Gb RAM, Windows XP
+machine, with the test program compiled with Microsoft Visual C++ 2005, and
+R-2.5.0 compiled in "standalone mode" with MinGW-3.4
+(R-2.5.0 appears not to be buildable with Visual C++).
+
+[table A Comparison to the R Statistical Library on Windows XP
+[[Statistical Function][Boost][R]]
+[[__beta_distrib CDF][[perf msvc-dist-beta-cdf..[para 1.20][para (1.916e-006s)]]][[perf msvc-dist-beta-R-cdf..[para *1.00*][para (1.597e-006s)]]]]
+[[__beta_distrib Quantile][[perf msvc-dist-beta-quantile..[para *1.00*][para (6.570e-006s)]]][[perf msvc-dist-beta-R-quantile..[para 74.66[footnote There are a small number of our test cases where the R library fails to converge on a result: these tend to dominate the performance result.]][para (4.905e-004s)]][para (4.905e-004s)]]]]
+[[__binomial_distrib CDF][[perf msvc-dist-binomial-cdf..[para *1.00*][para (5.276e-007s)]]][[perf msvc-dist-binom-R-cdf..[para 2.45][para (1.293e-006s)]]]]
+[[__binomial_distrib Quantile][[perf msvc-dist-binomial-quantile..[para *1.00*][para (4.013e-006s)]]][[perf msvc-dist-binom-R-quantile..[para 1.32][para (5.280e-006s)]]]]
+[[__cauchy_distrib CDF][[perf msvc-dist-cauchy-cdf..[para *1.00*][para (1.231e-007s)]]][[perf msvc-dist-cauchy-R-cdf..[para 1.28][para (1.576e-007s)]]]]
+[[__cauchy_distrib Quantile][[perf msvc-dist-cauchy-quantile..[para *1.00*][para (1.498e-007s)]]][[perf msvc-dist-cauchy-R-quantile..[para *1.00*][para (1.498e-007s)]]]]
+[[__chi_squared_distrib CDF][[perf msvc-dist-chi_squared-cdf..[para *1.00*][para (7.889e-007s)]]][[perf msvc-dist-chisq-R-cdf..[para 2.48][para (1.955e-006s)]]]]
+[[__chi_squared_distrib Quantile][[perf msvc-dist-chi_squared-quantile..[para *1.00*][para (4.303e-006s)]]][[perf msvc-dist-chisq-R-quantile..[para 1.61][para (6.925e-006s)]]]]
+[[__exp_distrib CDF][[perf msvc-dist-exponential-cdf..[para *1.00*][para (1.955e-007s)]]][[perf msvc-dist-exp-R-cdf..[para 1.97][para (3.844e-007s)]]]]
+[[__exp_distrib Quantile][[perf msvc-dist-exponential-quantile..[para 1.07][para (1.206e-007s)]]][[perf msvc-dist-exp-R-quantile..[para *1.00*][para (1.126e-007s)]]]]
+[[__F_distrib CDF][[perf msvc-dist-fisher_f-cdf..[para *1.00*][para (1.309e-006s)]]][[perf msvc-dist-f-R-cdf..[para 2.12][para (2.780e-006s)]]]]
+[[__F_distrib Quantile][[perf msvc-dist-fisher_f-quantile..[para *1.00*][para (7.204e-006s)]]][[perf msvc-dist-f-R-quantile..[para 1.78][para (1.280e-005s)]]]]
+[[__gamma_distrib CDF][[perf msvc-dist-gamma-cdf..[para *1.00*][para (1.076e-006s)]]][[perf msvc-dist-gamma-R-cdf..[para 2.07][para (2.227e-006s)]]]]
+[[__gamma_distrib Quantile][[perf msvc-dist-gamma-quantile..[para *1.00*][para (5.189e-006s)]]][[perf msvc-dist-gamma-R-quantile..[para 1.14][para (5.937e-006s)]]]]
+[[__lognormal_distrib CDF][[perf msvc-dist-lognormal-cdf..[para *1.00*][para (2.078e-007s)]]][[perf msvc-dist-lnorm-R-cdf..[para 1.41][para (2.930e-007s)]]]]
+[[__lognormal_distrib Quantile][[perf msvc-dist-lognormal-quantile..[para *1.00*][para (6.692e-007s)]]][[perf msvc-dist-lnorm-R-quantile..[para 1.63][para (1.090e-006s)]]]]
+[[__negative_binomial_distrib CDF][[perf msvc-dist-negative_binomial-cdf..[para *1.00*][para (9.005e-007s)]]][[perf msvc-dist-nbinom-R-cdf..[para 2.42][para (2.178e-006s)]]]]
+[[__negative_binomial_distrib Quantile][[perf msvc-dist-negative_binomial-quantile..[para *1.00*][para (9.601e-006s)]]][[perf msvc-dist-nbinom-R-quantile..[para 53.59[footnote The R library appears to use a linear-search strategy, that can perform very badly in a small number of pathological cases, but may or may not be more efficient in "typical" cases]][para (5.145e-004s)]][para (5.145e-004s)]]]]
+[[__normal_distrib CDF][[perf msvc-dist-normal-cdf..[para *1.00*][para (5.926e-008s)]]][[perf msvc-dist-norm-R-cdf..[para 3.01][para (1.785e-007s)]]]]
+[[__normal_distrib Quantile][[perf msvc-dist-normal-quantile..[para *1.00*][para (1.248e-007s)]]][[perf msvc-dist-norm-R-quantile..[para 1.05][para (1.311e-007s)]]]]
+[[__poisson_distrib CDF][[perf msvc-dist-poisson-cdf..[para *1.00*][para (8.999e-007s)]]][[perf msvc-dist-pois-R-cdf..[para 2.42][para (2.175e-006s)]]]]
+[[__poisson_distrib][[perf msvc-dist-poisson-quantile..[para *1.00*][para (1.853e-006s)]]][[perf msvc-dist-pois-R-quantile..[para 2.17][para (4.014e-006s)]]]]
+[[__students_t_distrib CDF][[perf msvc-dist-students_t-cdf..[para *1.00*][para (1.223e-006s)]]][[perf msvc-dist-t-R-cdf..[para 1.13][para (1.376e-006s)]]]]
+[[__students_t_distrib Quantile][[perf msvc-dist-students_t-quantile..[para *1.00*][para (2.570e-006s)]]][[perf msvc-dist-t-R-quantile..[para 1.04][para (2.668e-006s)]]]]
+[[__weibull_distrib CDF][[perf msvc-dist-weibull-cdf..[para *1.00*][para (4.741e-007s)]]][[perf msvc-dist-weibull-R-cdf..[para 1.46][para (6.943e-007s)]]]]
+[[__weibull_distrib Quantile][[perf msvc-dist-weibull-quantile..[para *1.00*][para (7.926e-007s)]]][[perf msvc-dist-weibull-R-quantile..[para 1.08][para (8.542e-007s)]]]]
+]
+
+[heading Comparison to the R Statistical Library on Linux]
+
+All the results were measured on a 2.8GHz Intel Pentium 4, 2Gb RAM, Mandriva Linux
+machine, with the test program and R-2.5.0 compiled with GNU G++ 4.2.0.
+
+[table A Comparison to the R Statistical Library on Linux
+[[Statistical Function][Boost][R]]
+[[__beta_distrib CDF][[perf gcc-4_2-dist-beta-cdf..[para 1.71][para (3.508e-006s)]]][[perf gcc-4_2-dist-beta-R-cdf..[para *1.00*][para (2.050e-006s)]]]]
+[[__beta_distrib Quantile][[perf gcc-4_2-dist-beta-quantile..[para *1.00*][para (1.294e-005s)]]][[perf gcc-4_2-dist-beta-R-quantile..[para 44.06[footnote There are a small number of our test cases where the R library fails to converge on a result: these tend to dominate the performance result.]][para (5.701e-004s)]][para (5.701e-004s)]]]]
+[[__binomial_distrib CDF][[perf gcc-4_2-dist-binomial-cdf..[para 1.22][para (1.342e-006s)]]][[perf gcc-4_2-dist-binom-R-cdf..[para *1.00*][para (1.104e-006s)]]]]
+[[__binomial_distrib Quantile][[perf gcc-4_2-dist-binomial-quantile..[para 1.36][para (7.083e-006s)]]][[perf gcc-4_2-dist-binom-R-quantile..[para *1.00*][para (5.194e-006s)]]]]
+[[__cauchy_distrib CDF][[perf gcc-4_2-dist-cauchy-cdf..[para *1.00*][para (1.372e-007s)]]][[perf gcc-4_2-dist-cauchy-R-cdf..[para 1.47][para (2.017e-007s)]]]]
+[[__cauchy_distrib Quantile][[perf gcc-4_2-dist-cauchy-quantile..[para *1.00*][para (1.542e-007s)]]][[perf gcc-4_2-dist-cauchy-R-quantile..[para 1.14][para (1.752e-007s)]]]]
+[[__chi_squared_distrib CDF][[perf gcc-4_2-dist-chi_squared-cdf..[para 1.04][para (1.820e-006s)]]][[perf gcc-4_2-dist-chisq-R-cdf..[para *1.00*][para (1.753e-006s)]]]]
+[[__chi_squared_distrib Quantile][[perf gcc-4_2-dist-chi_squared-quantile..[para 1.39][para (9.345e-006s)]]][[perf gcc-4_2-dist-chisq-R-quantile..[para *1.00*][para (6.728e-006s)]]]]
+[[__exp_distrib CDF][[perf gcc-4_2-dist-exponential-cdf..[para *1.00*][para (2.195e-007s)]]][[perf gcc-4_2-dist-exp-R-cdf..[para 1.17][para (2.561e-007s)]]]]
+[[__exp_distrib Quantile][[perf gcc-4_2-dist-exponential-quantile..[para *1.00*][para (1.123e-007s)]]][[perf gcc-4_2-dist-exp-R-quantile..[para 1.03][para (1.155e-007s)]]]]
+[[__F_distrib CDF][[perf gcc-4_2-dist-fisher_f-cdf..[para *1.00*][para (2.744e-006s)]]][[perf gcc-4_2-dist-f-R-cdf..[para 1.08][para (2.970e-006s)]]]]
+[[__F_distrib Quantile][[perf gcc-4_2-dist-fisher_f-quantile..[para 1.14][para (1.550e-005s)]]][[perf gcc-4_2-dist-f-R-quantile..[para *1.00*][para (1.359e-005s)]]]]
+[[__gamma_distrib CDF][[perf gcc-4_2-dist-gamma-cdf..[para 1.29][para (2.578e-006s)]]][[perf gcc-4_2-dist-gamma-R-cdf..[para *1.00*][para (1.992e-006s)]]]]
+[[__gamma_distrib Quantile][[perf gcc-4_2-dist-gamma-quantile..[para 1.77][para (1.020e-005s)]]][[perf gcc-4_2-dist-gamma-R-quantile..[para *1.00*][para (5.757e-006s)]]]]
+[[__lognormal_distrib CDF][[perf gcc-4_2-dist-lognormal-cdf..[para *1.00*][para (1.782e-007s)]]][[perf gcc-4_2-dist-lnorm-R-cdf..[para 2.00][para (3.564e-007s)]]]]
+[[__lognormal_distrib Quantile][[perf gcc-4_2-dist-lognormal-quantile..[para *1.00*][para (7.093e-007s)]]][[perf gcc-4_2-dist-lnorm-R-quantile..[para 1.07][para (7.607e-007s)]]]]
+[[__negative_binomial_distrib CDF][[perf gcc-4_2-dist-negative_binomial-cdf..[para 1.03][para (2.209e-006s)]]][[perf gcc-4_2-dist-nbinom-R-cdf..[para *1.00*][para (2.141e-006s)]]]]
+[[__negative_binomial_distrib Quantile][[perf gcc-4_2-dist-negative_binomial-quantile..[para *1.00*][para (1.826e-005s)]]][[perf gcc-4_2-dist-nbinom-R-quantile..[para 30.07[footnote The R library appears to use a linear-search strategy, that can perform very badly in a small number of pathological cases, but may or may not be more efficient in "typical" cases]][para (5.490e-004s)]][para (5.490e-004s)]]]]
+[[__normal_distrib CDF][[perf gcc-4_2-dist-normal-cdf..[para *1.00*][para (8.542e-008s)]]][[perf gcc-4_2-dist-norm-R-cdf..[para 2.09][para (1.782e-007s)]]]]
+[[__normal_distrib Quantile][[perf gcc-4_2-dist-normal-quantile..[para *1.00*][para (1.362e-007s)]]][[perf gcc-4_2-dist-norm-R-quantile..[para 1.26][para (1.722e-007s)]]]]
+[[__poisson_distrib CDF][[perf gcc-4_2-dist-poisson-cdf..[para 1.10][para (1.953e-006s)]]][[perf gcc-4_2-dist-pois-R-cdf..[para *1.00*][para (1.775e-006s)]]]]
+[[__poisson_distrib][[perf gcc-4_2-dist-poisson-quantile..[para 1.12][para (4.214e-006s)]]][[perf gcc-4_2-dist-pois-R-quantile..[para *1.00*][para (3.752e-006s)]]]]
+[[__students_t_distrib CDF][[perf gcc-4_2-dist-students_t-cdf..[para 1.55][para (2.441e-006s)]]][[perf gcc-4_2-dist-t-R-cdf..[para *1.00*][para (1.576e-006s)]]]]
+[[__students_t_distrib Quantile][[perf gcc-4_2-dist-students_t-quantile..[para 1.33][para (3.972e-006s)]]][[perf gcc-4_2-dist-t-R-quantile..[para *1.00*][para (2.990e-006s)]]]]
+[[__weibull_distrib CDF][[perf gcc-4_2-dist-weibull-cdf..[para *1.00*][para (6.640e-007s)]]][[perf gcc-4_2-dist-weibull-R-cdf..[para 1.06][para (7.031e-007s)]]]]
+[[__weibull_distrib Quantile][[perf gcc-4_2-dist-weibull-quantile..[para *1.00*][para (7.504e-007s)]]][[perf gcc-4_2-dist-weibull-R-quantile..[para 1.03][para (7.710e-007s)]]]]
+]
+
+[endsect]
+
+
+
+
+
+
+
+
+
+
+

Added: sandbox/math_toolkit/libs/math/performance/Jamfile.v2
==============================================================================
--- (empty file)
+++ sandbox/math_toolkit/libs/math/performance/Jamfile.v2 2007-08-22 13:48:10 EDT (Wed, 22 Aug 2007)
@@ -0,0 +1,22 @@
+
+
+exe math_performance :
+distributions.cpp
+main.cpp
+test_erf.cpp
+test_gamma.cpp
+test_ibeta.cpp
+test_igamma.cpp
+test_polynomial.cpp
+test_reference.cpp ;
+
+install dist-bin
+ :
+ math_performance
+ :
+ <install-type>EXE
+ <location>./bin
+ :
+ release
+ ;
+

Added: sandbox/math_toolkit/libs/math/performance/gcc-3.4-w32.log
==============================================================================
--- (empty file)
+++ sandbox/math_toolkit/libs/math/performance/gcc-3.4-w32.log 2007-08-22 13:48:10 EDT (Wed, 22 Aug 2007)
@@ -0,0 +1,86 @@
+Currently, polynomial evaluation uses method 3
+Currently, rational function evaluation uses method 3
+Currently, the largest order of polynomial or rational function that uses a method other than 0, is 17
+Currently, rational functions with integer coefficients are evaluated using all real arithmetic (integer coefficients are actually stored as reals)
+
+Policies are currently set as follows:
+
+Policy Value
+BOOST_MATH_DOMAIN_ERROR_POLICY ignore_error
+BOOST_MATH_POLE_ERROR_POLICY throw_on_error
+BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+BOOST_MATH_UNDERFLOW_ERROR_POLICY ignore_error
+BOOST_MATH_DENORM_ERROR_POLICY ignore_error
+BOOST_MATH_EVALUATION_ERROR_POLICY throw_on_error
+BOOST_MATH_DIGITS10_POLICY 0
+BOOST_MATH_PROMOTE_FLOAT_POLICY true
+BOOST_MATH_PROMOTE_DOUBLE_POLICY false
+BOOST_MATH_DISCRETE_QUANTILE_POLICY integer_round_outwards
+BOOST_MATH_ASSERT_UNDEFINED_POLICY true
+BOOST_MATH_MAX_ITER 1000000
+Testing gcc-Polynomial-method-0 2.102e-07
+Testing gcc-Polynomial-method-1 1.002e-07
+Testing gcc-Polynomial-method-2 1.025e-07
+Testing gcc-Polynomial-method-3 7.688e-08
+Testing gcc-Polynomial-mixed-method-0 1.115e-06
+Testing gcc-Polynomial-mixed-method-1 3.032e-07
+Testing gcc-Polynomial-mixed-method-2 2.690e-07
+Testing gcc-Polynomial-mixed-method-3 3.227e-07
+Testing gcc-Rational-method-0 1.638e-07
+Testing gcc-Rational-method-1 1.711e-07
+Testing gcc-Rational-method-2 1.711e-07
+Testing gcc-Rational-method-3 1.418e-07
+Testing gcc-Rational-mixed-method-0 6.748e-07
+Testing gcc-Rational-mixed-method-1 6.357e-07
+Testing gcc-Rational-mixed-method-2 5.674e-07
+Testing gcc-Rational-mixed-method-3 5.674e-07
+Testing gcc-dist-beta-cdf 3.786e-06
+Testing gcc-dist-beta-pdf 1.825e-06
+Testing gcc-dist-beta-quantile 1.350e-05
+Testing gcc-dist-binomial-cdf 1.378e-06
+Testing gcc-dist-binomial-pdf 1.378e-06
+Testing gcc-dist-binomial-quantile 6.768e-06
+Testing gcc-dist-cauchy-cdf 1.089e-07
+Testing gcc-dist-cauchy-pdf 3.025e-08
+Testing gcc-dist-cauchy-quantile 2.341e-07
+Testing gcc-dist-chi_squared-cdf 1.289e-06
+Testing gcc-dist-chi_squared-pdf 1.243e-06
+Testing gcc-dist-chi_squared-quantile 7.392e-06
+Testing gcc-dist-exponential-cdf 1.021e-07
+Testing gcc-dist-exponential-pdf 1.174e-07
+Testing gcc-dist-exponential-quantile 3.667e-07
+Testing gcc-dist-fisher_f-cdf 2.683e-06
+Testing gcc-dist-fisher_f-pdf 1.617e-06
+Testing gcc-dist-fisher_f-quantile 1.550e-05
+Testing gcc-dist-gamma-cdf 2.031e-06
+Testing gcc-dist-gamma-pdf 1.662e-06
+Testing gcc-dist-gamma-quantile 1.005e-05
+Testing gcc-dist-lognormal-cdf 2.734e-07
+Testing gcc-dist-lognormal-pdf 3.667e-07
+Testing gcc-dist-lognormal-quantile 6.486e-07
+Testing gcc-dist-negative_binomial-cdf 2.042e-06
+Testing gcc-dist-negative_binomial-pdf 1.869e-06
+Testing gcc-dist-negative_binomial-quantile 1.766e-05
+Testing gcc-dist-normal-cdf 8.677e-08
+Testing gcc-dist-normal-pdf 1.198e-07
+Testing gcc-dist-normal-quantile 1.776e-07
+Testing gcc-dist-poisson-cdf 1.400e-06
+Testing gcc-dist-poisson-pdf 8.998e-07
+Testing gcc-dist-poisson-quantile 2.418e-06
+Testing gcc-dist-students_t-cdf 2.486e-06
+Testing gcc-dist-students_t-pdf 2.224e-06
+Testing gcc-dist-students_t-quantile 5.897e-06
+Testing gcc-dist-weibull-cdf 9.004e-07
+Testing gcc-dist-weibull-pdf 1.801e-06
+Testing gcc-dist-weibull-quantile 1.585e-06
+Testing gcc-erf 1.336e-07
+Testing gcc-erf_inv 3.500e-07
+Testing gcc-gamma 9.655e-07
+Testing gcc-ibeta 4.975e-06
+Testing gcc-ibeta_inv 1.597e-05
+Testing gcc-ibeta_invab 6.947e-05
+Testing gcc-igamma 1.872e-06
+Testing gcc-igamma_inv 8.736e-06
+Testing gcc-igamma_inva 1.974e-05
+Testing gcc-lgamma 8.679e-07
+

Added: sandbox/math_toolkit/libs/math/performance/gcc-4.2-linux.log
==============================================================================
--- (empty file)
+++ sandbox/math_toolkit/libs/math/performance/gcc-4.2-linux.log 2007-08-22 13:48:10 EDT (Wed, 22 Aug 2007)
@@ -0,0 +1,105 @@
+Testing gcc-4_2-Polynomial-method-0 1.220e-07
+Testing gcc-4_2-Polynomial-method-1 1.269e-07
+Testing gcc-4_2-Polynomial-method-2 9.275e-08
+Testing gcc-4_2-Polynomial-method-3 7.566e-08
+Testing gcc-4_2-Polynomial-mixed-method-0 4.590e-07
+Testing gcc-4_2-Polynomial-mixed-method-1 1.269e-07
+Testing gcc-4_2-Polynomial-mixed-method-2 9.275e-08
+Testing gcc-4_2-Polynomial-mixed-method-3 7.566e-08
+Testing gcc-4_2-Rational-method-0 1.660e-07
+Testing gcc-4_2-Rational-method-1 1.758e-07
+Testing gcc-4_2-Rational-method-2 1.318e-07
+Testing gcc-4_2-Rational-method-3 1.489e-07
+Testing gcc-4_2-Rational-mixed-method-0 5.273e-07
+Testing gcc-4_2-Rational-mixed-method-1 1.758e-07
+Testing gcc-4_2-Rational-mixed-method-2 1.318e-07
+Testing gcc-4_2-Rational-mixed-method-3 1.513e-07
+Testing gcc-4_2-dist-beta-R-cdf 2.050e-06
+Testing gcc-4_2-dist-beta-R-pdf 1.458e-06
+Testing gcc-4_2-dist-beta-R-quantile 5.701e-04
+Testing gcc-4_2-dist-beta-cdf 3.508e-06
+Testing gcc-4_2-dist-beta-pdf 2.551e-06
+Testing gcc-4_2-dist-beta-quantile 1.294e-05
+Testing gcc-4_2-dist-binom-R-cdf 1.104e-06
+Testing gcc-4_2-dist-binom-R-pdf 7.561e-07
+Testing gcc-4_2-dist-binom-R-quantile 5.194e-06
+Testing gcc-4_2-dist-binomial-cdf 1.342e-06
+Testing gcc-4_2-dist-binomial-pdf 2.073e-06
+Testing gcc-4_2-dist-binomial-quantile 7.083e-06
+Testing gcc-4_2-dist-cauchy-R-cdf 2.017e-07
+Testing gcc-4_2-dist-cauchy-R-pdf 5.849e-08
+Testing gcc-4_2-dist-cauchy-R-quantile 1.752e-07
+Testing gcc-4_2-dist-cauchy-cdf 1.372e-07
+Testing gcc-4_2-dist-cauchy-pdf 3.125e-08
+Testing gcc-4_2-dist-cauchy-quantile 1.542e-07
+Testing gcc-4_2-dist-chi_squared-cdf 1.820e-06
+Testing gcc-4_2-dist-chi_squared-pdf 1.731e-06
+Testing gcc-4_2-dist-chi_squared-quantile 9.345e-06
+Testing gcc-4_2-dist-chisq-R-cdf 1.753e-06
+Testing gcc-4_2-dist-chisq-R-pdf 5.768e-07
+Testing gcc-4_2-dist-chisq-R-quantile 6.728e-06
+Testing gcc-4_2-dist-exp-R-cdf 2.561e-07
+Testing gcc-4_2-dist-exp-R-pdf 2.439e-07
+Testing gcc-4_2-dist-exp-R-quantile 1.155e-07
+Testing gcc-4_2-dist-exponential-cdf 2.195e-07
+Testing gcc-4_2-dist-exponential-pdf 2.164e-07
+Testing gcc-4_2-dist-exponential-quantile 1.123e-07
+Testing gcc-4_2-dist-f-R-cdf 2.970e-06
+Testing gcc-4_2-dist-f-R-pdf 1.114e-06
+Testing gcc-4_2-dist-f-R-quantile 1.359e-05
+Testing gcc-4_2-dist-fisher_f-cdf 2.744e-06
+Testing gcc-4_2-dist-fisher_f-pdf 1.969e-06
+Testing gcc-4_2-dist-fisher_f-quantile 1.550e-05
+Testing gcc-4_2-dist-gamma-R-cdf 1.992e-06
+Testing gcc-4_2-dist-gamma-R-pdf 7.812e-07
+Testing gcc-4_2-dist-gamma-R-quantile 5.757e-06
+Testing gcc-4_2-dist-gamma-cdf 2.578e-06
+Testing gcc-4_2-dist-gamma-pdf 1.934e-06
+Testing gcc-4_2-dist-gamma-quantile 1.020e-05
+Testing gcc-4_2-dist-lnorm-R-cdf 3.564e-07
+Testing gcc-4_2-dist-lnorm-R-pdf 4.052e-07
+Testing gcc-4_2-dist-lnorm-R-quantile 7.607e-07
+Testing gcc-4_2-dist-lognormal-cdf 1.782e-07
+Testing gcc-4_2-dist-lognormal-pdf 3.857e-07
+Testing gcc-4_2-dist-lognormal-quantile 7.093e-07
+Testing gcc-4_2-dist-nbinom-R-cdf 2.141e-06
+Testing gcc-4_2-dist-nbinom-R-pdf 1.376e-06
+Testing gcc-4_2-dist-nbinom-R-quantile 5.490e-04
+Testing gcc-4_2-dist-negative_binomial-cdf 2.209e-06
+Testing gcc-4_2-dist-negative_binomial-pdf 2.956e-06
+Testing gcc-4_2-dist-negative_binomial-quantile 1.826e-05
+Testing gcc-4_2-dist-norm-R-cdf 1.782e-07
+Testing gcc-4_2-dist-norm-R-pdf 3.027e-07
+Testing gcc-4_2-dist-norm-R-quantile 1.722e-07
+Testing gcc-4_2-dist-normal-cdf 8.542e-08
+Testing gcc-4_2-dist-normal-pdf 2.539e-07
+Testing gcc-4_2-dist-normal-quantile 1.362e-07
+Testing gcc-4_2-dist-pois-R-cdf 1.775e-06
+Testing gcc-4_2-dist-pois-R-pdf 6.545e-07
+Testing gcc-4_2-dist-pois-R-quantile 3.752e-06
+Testing gcc-4_2-dist-poisson-cdf 1.953e-06
+Testing gcc-4_2-dist-poisson-pdf 1.864e-06
+Testing gcc-4_2-dist-poisson-quantile 4.214e-06
+Testing gcc-4_2-dist-students_t-cdf 2.441e-06
+Testing gcc-4_2-dist-students_t-pdf 2.885e-06
+Testing gcc-4_2-dist-students_t-quantile 3.972e-06
+Testing gcc-4_2-dist-t-R-cdf 1.576e-06
+Testing gcc-4_2-dist-t-R-pdf 6.545e-07
+Testing gcc-4_2-dist-t-R-quantile 2.990e-06
+Testing gcc-4_2-dist-weibull-R-cdf 7.031e-07
+Testing gcc-4_2-dist-weibull-R-pdf 1.016e-06
+Testing gcc-4_2-dist-weibull-R-quantile 7.710e-07
+Testing gcc-4_2-dist-weibull-cdf 6.640e-07
+Testing gcc-4_2-dist-weibull-pdf 1.484e-06
+Testing gcc-4_2-dist-weibull-quantile 7.504e-07
+Testing gcc-4_2-erf 9.377e-08
+Testing gcc-4_2-erf_inv 3.598e-07
+Testing gcc-4_2-gamma 1.294e-06
+Testing gcc-4_2-ibeta 4.137e-06
+Testing gcc-4_2-ibeta_inv 1.538e-05
+Testing gcc-4_2-ibeta_invab 5.607e-05
+Testing gcc-4_2-igamma 2.464e-06
+Testing gcc-4_2-igamma_inv 9.291e-06
+Testing gcc-4_2-igamma_inva 2.311e-05
+Testing gcc-4_2-lgamma 1.343e-06
+

Added: sandbox/math_toolkit/libs/math/performance/gcc-4.2-long-double-linux.log
==============================================================================
--- (empty file)
+++ sandbox/math_toolkit/libs/math/performance/gcc-4.2-long-double-linux.log 2007-08-22 13:48:10 EDT (Wed, 22 Aug 2007)
@@ -0,0 +1,105 @@
+Testing gcc-4_2-ld-Polynomial-method-0 1.220e-07
+Testing gcc-4_2-ld-Polynomial-method-1 1.269e-07
+Testing gcc-4_2-ld-Polynomial-method-2 9.275e-08
+Testing gcc-4_2-ld-Polynomial-method-3 7.566e-08
+Testing gcc-4_2-ld-Polynomial-mixed-method-0 4.590e-07
+Testing gcc-4_2-ld-Polynomial-mixed-method-1 1.269e-07
+Testing gcc-4_2-ld-Polynomial-mixed-method-2 9.275e-08
+Testing gcc-4_2-ld-Polynomial-mixed-method-3 7.566e-08
+Testing gcc-4_2-ld-Rational-method-0 1.660e-07
+Testing gcc-4_2-ld-Rational-method-1 1.758e-07
+Testing gcc-4_2-ld-Rational-method-2 1.318e-07
+Testing gcc-4_2-ld-Rational-method-3 1.513e-07
+Testing gcc-4_2-ld-Rational-mixed-method-0 5.273e-07
+Testing gcc-4_2-ld-Rational-mixed-method-1 1.758e-07
+Testing gcc-4_2-ld-Rational-mixed-method-2 1.318e-07
+Testing gcc-4_2-ld-Rational-mixed-method-3 1.513e-07
+Testing gcc-4_2-ld-dist-beta-R-cdf 2.050e-06
+Testing gcc-4_2-ld-dist-beta-R-pdf 1.458e-06
+Testing gcc-4_2-ld-dist-beta-R-quantile 5.715e-04
+Testing gcc-4_2-ld-dist-beta-cdf 4.556e-06
+Testing gcc-4_2-ld-dist-beta-pdf 2.916e-06
+Testing gcc-4_2-ld-dist-beta-quantile 1.658e-05
+Testing gcc-4_2-ld-dist-binom-R-cdf 1.104e-06
+Testing gcc-4_2-ld-dist-binom-R-pdf 7.561e-07
+Testing gcc-4_2-ld-dist-binom-R-quantile 5.194e-06
+Testing gcc-4_2-ld-dist-binomial-cdf 1.512e-06
+Testing gcc-4_2-ld-dist-binomial-pdf 2.345e-06
+Testing gcc-4_2-ld-dist-binomial-quantile 8.814e-06
+Testing gcc-4_2-ld-dist-cauchy-R-cdf 2.017e-07
+Testing gcc-4_2-ld-dist-cauchy-R-pdf 5.748e-08
+Testing gcc-4_2-ld-dist-cauchy-R-quantile 1.752e-07
+Testing gcc-4_2-ld-dist-cauchy-cdf 1.352e-07
+Testing gcc-4_2-ld-dist-cauchy-pdf 3.125e-08
+Testing gcc-4_2-ld-dist-cauchy-quantile 1.542e-07
+Testing gcc-4_2-ld-dist-chi_squared-cdf 2.175e-06
+Testing gcc-4_2-ld-dist-chi_squared-pdf 2.175e-06
+Testing gcc-4_2-ld-dist-chi_squared-quantile 1.159e-05
+Testing gcc-4_2-ld-dist-chisq-R-cdf 1.753e-06
+Testing gcc-4_2-ld-dist-chisq-R-pdf 5.657e-07
+Testing gcc-4_2-ld-dist-chisq-R-quantile 6.728e-06
+Testing gcc-4_2-ld-dist-exp-R-cdf 2.561e-07
+Testing gcc-4_2-ld-dist-exp-R-pdf 2.439e-07
+Testing gcc-4_2-ld-dist-exp-R-quantile 1.139e-07
+Testing gcc-4_2-ld-dist-exponential-cdf 2.195e-07
+Testing gcc-4_2-ld-dist-exponential-pdf 2.164e-07
+Testing gcc-4_2-ld-dist-exponential-quantile 1.123e-07
+Testing gcc-4_2-ld-dist-f-R-cdf 2.938e-06
+Testing gcc-4_2-ld-dist-f-R-pdf 1.114e-06
+Testing gcc-4_2-ld-dist-f-R-quantile 1.359e-05
+Testing gcc-4_2-ld-dist-fisher_f-cdf 3.422e-06
+Testing gcc-4_2-ld-dist-fisher_f-pdf 2.357e-06
+Testing gcc-4_2-ld-dist-fisher_f-quantile 2.175e-05
+Testing gcc-4_2-ld-dist-gamma-R-cdf 1.992e-06
+Testing gcc-4_2-ld-dist-gamma-R-pdf 7.812e-07
+Testing gcc-4_2-ld-dist-gamma-R-quantile 5.757e-06
+Testing gcc-4_2-ld-dist-gamma-cdf 3.086e-06
+Testing gcc-4_2-ld-dist-gamma-pdf 2.305e-06
+Testing gcc-4_2-ld-dist-gamma-quantile 1.266e-05
+Testing gcc-4_2-ld-dist-lnorm-R-cdf 3.515e-07
+Testing gcc-4_2-ld-dist-lnorm-R-pdf 4.052e-07
+Testing gcc-4_2-ld-dist-lnorm-R-quantile 7.607e-07
+Testing gcc-4_2-ld-dist-lognormal-cdf 2.075e-07
+Testing gcc-4_2-ld-dist-lognormal-pdf 3.857e-07
+Testing gcc-4_2-ld-dist-lognormal-quantile 7.710e-07
+Testing gcc-4_2-ld-dist-nbinom-R-cdf 2.141e-06
+Testing gcc-4_2-ld-dist-nbinom-R-pdf 1.376e-06
+Testing gcc-4_2-ld-dist-nbinom-R-quantile 5.515e-04
+Testing gcc-4_2-ld-dist-negative_binomial-cdf 2.583e-06
+Testing gcc-4_2-ld-dist-negative_binomial-pdf 3.398e-06
+Testing gcc-4_2-ld-dist-negative_binomial-quantile 2.329e-05
+Testing gcc-4_2-ld-dist-norm-R-cdf 1.782e-07
+Testing gcc-4_2-ld-dist-norm-R-pdf 3.027e-07
+Testing gcc-4_2-ld-dist-norm-R-quantile 1.722e-07
+Testing gcc-4_2-ld-dist-normal-cdf 9.885e-08
+Testing gcc-4_2-ld-dist-normal-pdf 2.490e-07
+Testing gcc-4_2-ld-dist-normal-quantile 2.081e-07
+Testing gcc-4_2-ld-dist-pois-R-cdf 1.775e-06
+Testing gcc-4_2-ld-dist-pois-R-pdf 6.656e-07
+Testing gcc-4_2-ld-dist-pois-R-quantile 3.752e-06
+Testing gcc-4_2-ld-dist-poisson-cdf 2.308e-06
+Testing gcc-4_2-ld-dist-poisson-pdf 1.908e-06
+Testing gcc-4_2-ld-dist-poisson-quantile 5.345e-06
+Testing gcc-4_2-ld-dist-students_t-cdf 3.151e-06
+Testing gcc-4_2-ld-dist-students_t-pdf 3.196e-06
+Testing gcc-4_2-ld-dist-students_t-quantile 5.233e-06
+Testing gcc-4_2-ld-dist-t-R-cdf 1.598e-06
+Testing gcc-4_2-ld-dist-t-R-pdf 6.434e-07
+Testing gcc-4_2-ld-dist-t-R-quantile 2.990e-06
+Testing gcc-4_2-ld-dist-weibull-R-cdf 7.031e-07
+Testing gcc-4_2-ld-dist-weibull-R-pdf 1.035e-06
+Testing gcc-4_2-ld-dist-weibull-R-quantile 7.710e-07
+Testing gcc-4_2-ld-dist-weibull-cdf 6.543e-07
+Testing gcc-4_2-ld-dist-weibull-pdf 1.484e-06
+Testing gcc-4_2-ld-dist-weibull-quantile 7.504e-07
+Testing gcc-4_2-ld-erf 1.387e-07
+Testing gcc-4_2-ld-erf_inv 4.009e-07
+Testing gcc-4_2-ld-gamma 1.489e-06
+Testing gcc-4_2-ld-ibeta 5.354e-06
+Testing gcc-4_2-ld-ibeta_inv 2.220e-05
+Testing gcc-4_2-ld-ibeta_invab 7.009e-05
+Testing gcc-4_2-ld-igamma 3.116e-06
+Testing gcc-4_2-ld-igamma_inv 1.178e-05
+Testing gcc-4_2-ld-igamma_inva 2.765e-05
+Testing gcc-4_2-ld-lgamma 1.562e-06
+

Added: sandbox/math_toolkit/libs/math/performance/intel-10-linux.log
==============================================================================
--- (empty file)
+++ sandbox/math_toolkit/libs/math/performance/intel-10-linux.log 2007-08-22 13:48:10 EDT (Wed, 22 Aug 2007)
@@ -0,0 +1,100 @@
+Testing intel-linux-Polynomial-method-0 9.154e-08
+Testing intel-linux-Polynomial-method-1 9.154e-08
+Testing intel-linux-Polynomial-method-2 7.934e-08
+Testing intel-linux-Polynomial-method-3 7.934e-08
+Testing intel-linux-Polynomial-mixed-method-0 9.154e-08
+Testing intel-linux-Polynomial-mixed-method-1 9.154e-08
+Testing intel-linux-Polynomial-mixed-method-2 7.934e-08
+Testing intel-linux-Polynomial-mixed-method-3 7.934e-08
+Testing intel-linux-Rational-method-0 1.245e-07
+Testing intel-linux-Rational-method-1 1.245e-07
+Testing intel-linux-Rational-method-2 1.684e-07
+Testing intel-linux-Rational-method-3 1.294e-07
+Testing intel-linux-Rational-mixed-method-0 1.245e-07
+Testing intel-linux-Rational-mixed-method-1 1.245e-07
+Testing intel-linux-Rational-mixed-method-2 1.684e-07
+Testing intel-linux-Rational-mixed-method-3 1.294e-07
+Testing intel-linux-dist-beta-R-cdf 1.709e-06
+Testing intel-linux-dist-beta-R-pdf 1.276e-06
+Testing intel-linux-dist-beta-R-quantile 4.243e-04
+Testing intel-linux-dist-beta-cdf 3.371e-06
+Testing intel-linux-dist-beta-pdf 2.460e-06
+Testing intel-linux-dist-beta-quantile 1.203e-05
+Testing intel-linux-dist-binom-R-cdf 8.835e-07
+Testing intel-linux-dist-binom-R-pdf 5.692e-07
+Testing intel-linux-dist-binom-R-quantile 4.486e-06
+Testing intel-linux-dist-binomial-cdf 1.308e-06
+Testing intel-linux-dist-binomial-pdf 2.073e-06
+Testing intel-linux-dist-binomial-quantile 6.532e-06
+Testing intel-linux-dist-cauchy-R-cdf 1.291e-07
+Testing intel-linux-dist-cauchy-R-pdf 5.548e-08
+Testing intel-linux-dist-cauchy-R-quantile 1.145e-07
+Testing intel-linux-dist-cauchy-cdf 8.171e-08
+Testing intel-linux-dist-cauchy-pdf 3.278e-08
+Testing intel-linux-dist-cauchy-quantile 1.098e-07
+Testing intel-linux-dist-chi_squared-cdf 1.842e-06
+Testing intel-linux-dist-chi_squared-pdf 1.864e-06
+Testing intel-linux-dist-chi_squared-quantile 9.532e-06
+Testing intel-linux-dist-chisq-R-cdf 1.398e-06
+Testing intel-linux-dist-chisq-R-pdf 3.550e-07
+Testing intel-linux-dist-chisq-R-quantile 5.794e-06
+Testing intel-linux-dist-exp-R-cdf 8.077e-08
+Testing intel-linux-dist-exp-R-pdf 1.113e-07
+Testing intel-linux-dist-exp-R-quantile 8.026e-08
+Testing intel-linux-dist-exponential-cdf 4.568e-08
+Testing intel-linux-dist-exponential-pdf 7.161e-08
+Testing intel-linux-dist-exponential-quantile 9.311e-08
+Testing intel-linux-dist-f-R-cdf 2.486e-06
+Testing intel-linux-dist-f-R-pdf 8.394e-07
+Testing intel-linux-dist-f-R-quantile 1.115e-05
+Testing intel-linux-dist-fisher_f-cdf 2.615e-06
+Testing intel-linux-dist-fisher_f-pdf 2.002e-06
+Testing intel-linux-dist-fisher_f-quantile 1.468e-05
+Testing intel-linux-dist-gamma-R-cdf 1.562e-06
+Testing intel-linux-dist-gamma-R-pdf 4.980e-07
+Testing intel-linux-dist-gamma-R-quantile 4.852e-06
+Testing intel-linux-dist-gamma-cdf 2.461e-06
+Testing intel-linux-dist-gamma-pdf 1.953e-06
+Testing intel-linux-dist-gamma-quantile 1.036e-05
+Testing intel-linux-dist-lnorm-R-cdf 2.685e-07
+Testing intel-linux-dist-lnorm-R-pdf 1.782e-07
+Testing intel-linux-dist-lnorm-R-quantile 5.551e-07
+Testing intel-linux-dist-lognormal-cdf 1.147e-07
+Testing intel-linux-dist-lognormal-pdf 1.489e-07
+Testing intel-linux-dist-lognormal-quantile 5.140e-07
+Testing intel-linux-dist-nbinom-R-cdf 1.699e-06
+Testing intel-linux-dist-nbinom-R-pdf 1.036e-06
+Testing intel-linux-dist-nbinom-R-quantile 4.734e-04
+Testing intel-linux-dist-negative_binomial-cdf 2.107e-06
+Testing intel-linux-dist-negative_binomial-pdf 3.058e-06
+Testing intel-linux-dist-negative_binomial-quantile 1.700e-05
+Testing intel-linux-dist-norm-R-cdf 1.538e-07
+Testing intel-linux-dist-norm-R-pdf 1.172e-07
+Testing intel-linux-dist-norm-R-quantile 1.490e-07
+Testing intel-linux-dist-normal-cdf 5.736e-08
+Testing intel-linux-dist-normal-pdf 5.919e-08
+Testing intel-linux-dist-normal-quantile 1.066e-07
+Testing intel-linux-dist-pois-R-cdf 1.443e-06
+Testing intel-linux-dist-pois-R-pdf 4.549e-07
+Testing intel-linux-dist-pois-R-quantile 3.289e-06
+Testing intel-linux-dist-poisson-cdf 1.953e-06
+Testing intel-linux-dist-poisson-pdf 2.020e-06
+Testing intel-linux-dist-poisson-quantile 4.317e-06
+Testing intel-linux-dist-students_t-cdf 2.486e-06
+Testing intel-linux-dist-students_t-pdf 3.152e-06
+Testing intel-linux-dist-students_t-quantile 3.037e-06
+Testing intel-linux-dist-t-R-cdf 1.198e-06
+Testing intel-linux-dist-t-R-pdf 4.993e-07
+Testing intel-linux-dist-t-R-quantile 2.313e-06
+Testing intel-linux-dist-weibull-R-cdf 1.733e-07
+Testing intel-linux-dist-weibull-R-pdf 5.371e-07
+Testing intel-linux-dist-weibull-R-quantile 5.243e-07
+Testing intel-linux-dist-weibull-cdf 1.611e-07
+Testing intel-linux-dist-weibull-pdf 4.736e-07
+Testing intel-linux-dist-weibull-quantile 5.243e-07
+Testing intel-linux-erf 5.396e-08
+Testing intel-linux-erf_inv 3.392e-07
+Testing intel-linux-gamma 1.392e-06
+Testing intel-linux-ibeta 3.602e-06
+Testing intel-linux-ibeta_inv 1.382e-05
+Testing intel-linux-ibeta_invab

Added: sandbox/math_toolkit/libs/math/performance/intel-10-w32.log
==============================================================================
--- (empty file)
+++ sandbox/math_toolkit/libs/math/performance/intel-10-w32.log 2007-08-22 13:48:10 EDT (Wed, 22 Aug 2007)
@@ -0,0 +1,85 @@
+Currently, polynomial evaluation uses method 2
+Currently, rational function evaluation uses method 2
+Currently, the largest order of polynomial or rational function that uses a method other than 0, is 17
+Currently, rational functions with integer coefficients are evaluated using mixed integer/real arithmetic
+Policies are currently set as follows:
+
+Policy Value
+BOOST_MATH_DOMAIN_ERROR_POLICY ignore_error
+BOOST_MATH_POLE_ERROR_POLICY throw_on_error
+BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+BOOST_MATH_UNDERFLOW_ERROR_POLICY ignore_error
+BOOST_MATH_DENORM_ERROR_POLICY ignore_error
+BOOST_MATH_EVALUATION_ERROR_POLICY throw_on_error
+BOOST_MATH_DIGITS10_POLICY 0
+BOOST_MATH_PROMOTE_FLOAT_POLICY true
+BOOST_MATH_PROMOTE_DOUBLE_POLICY true
+BOOST_MATH_DISCRETE_QUANTILE_POLICY integer_round_outwards
+BOOST_MATH_ASSERT_UNDEFINED_POLICY true
+BOOST_MATH_MAX_ITER 1000000
+Testing intel-Polynomial-method-0 7.702e-008
+Testing intel-Polynomial-method-1 7.702e-008
+Testing intel-Polynomial-method-2 7.446e-008
+Testing intel-Polynomial-method-3 7.690e-008
+Testing intel-Polynomial-mixed-method-0 7.702e-008
+Testing intel-Polynomial-mixed-method-1 7.702e-008
+Testing intel-Polynomial-mixed-method-2 6.591e-008
+Testing intel-Polynomial-mixed-method-3 7.934e-008
+Testing intel-Rational-method-0 1.245e-007
+Testing intel-Rational-method-1 1.245e-007
+Testing intel-Rational-method-2 1.465e-007
+Testing intel-Rational-method-3 1.318e-007
+Testing intel-Rational-mixed-method-0 1.245e-007
+Testing intel-Rational-mixed-method-1 1.245e-007
+Testing intel-Rational-mixed-method-2 1.443e-007
+Testing intel-Rational-mixed-method-3 1.294e-007
+Testing intel-dist-beta-cdf 1.779e-006
+Testing intel-dist-beta-pdf 6.959e-007
+Testing intel-dist-beta-quantile 5.112e-006
+Testing intel-dist-binomial-cdf 4.163e-007
+Testing intel-dist-binomial-pdf 4.673e-007
+Testing intel-dist-binomial-quantile 3.935e-006
+Testing intel-dist-cauchy-cdf 6.456e-008
+Testing intel-dist-cauchy-pdf 2.830e-008
+Testing intel-dist-cauchy-quantile 1.264e-007
+Testing intel-dist-chi_squared-cdf 4.999e-007
+Testing intel-dist-chi_squared-pdf 4.278e-007
+Testing intel-dist-chi_squared-quantile 2.902e-006
+Testing intel-dist-exponential-cdf 6.032e-008
+Testing intel-dist-exponential-pdf 5.498e-008
+Testing intel-dist-exponential-quantile 3.087e-007
+Testing intel-dist-fisher_f-cdf 1.180e-006
+Testing intel-dist-fisher_f-pdf 8.087e-007
+Testing intel-dist-fisher_f-quantile 6.056e-006
+Testing intel-dist-gamma-cdf 6.943e-007
+Testing intel-dist-gamma-pdf 5.371e-007
+Testing intel-dist-gamma-quantile 3.335e-006
+Testing intel-dist-lognormal-cdf 1.663e-007
+Testing intel-dist-lognormal-pdf 1.736e-007
+Testing intel-dist-lognormal-quantile 2.315e-007
+Testing intel-dist-negative_binomial-cdf 7.570e-007
+Testing intel-dist-negative_binomial-pdf 8.343e-007
+Testing intel-dist-negative_binomial-quantile 9.774e-006
+Testing intel-dist-normal-cdf 4.583e-008
+Testing intel-dist-normal-pdf 4.767e-008
+Testing intel-dist-normal-quantile 2.033e-007
+Testing intel-dist-poisson-cdf 5.443e-007
+Testing intel-dist-poisson-pdf 2.774e-007
+Testing intel-dist-poisson-quantile 1.311e-006
+Testing intel-dist-students_t-cdf 1.044e-006
+Testing intel-dist-students_t-pdf 6.225e-007
+Testing intel-dist-students_t-quantile 2.152e-006
+Testing intel-dist-weibull-cdf 2.446e-007
+Testing intel-dist-weibull-pdf 2.642e-007
+Testing intel-dist-weibull-quantile 4.734e-007
+Testing intel-erf 4.118e-008
+Testing intel-erf_inv 4.439e-008
+Testing intel-gamma 1.987e-007
+Testing intel-ibeta 1.631e-006
+Testing intel-ibeta_inv 6.133e-006
+Testing intel-ibeta_invab 2.453e-005
+Testing intel-igamma 6.735e-007
+Testing intel-igamma_inv 2.637e-006
+Testing intel-igamma_inva 7.716e-006
+Testing intel-lgamma 2.048e-007
+

Modified: sandbox/math_toolkit/libs/math/performance/main.cpp
==============================================================================
--- sandbox/math_toolkit/libs/math/performance/main.cpp (original)
+++ sandbox/math_toolkit/libs/math/performance/main.cpp 2007-08-22 13:48:10 EDT (Wed, 22 Aug 2007)
@@ -10,6 +10,12 @@
 #include "performance_measure.hpp"
 #include <boost/math/policies/policy.hpp>
 
+#ifdef TEST_GSL
+#include <gsl/gsl_errno.h>
+#include <gsl/gsl_message.h>
+#endif
+
+
 extern void reference_evaluate();
 
 std::map<std::string, double> times;
@@ -112,6 +118,10 @@
 {
    try{
 
+#ifdef TEST_GSL
+ gsl_set_error_handler_off();
+#endif
+
    if(argc >= 2)
    {
       for(int i = 1; i < argc; ++i)

Added: sandbox/math_toolkit/libs/math/performance/msvc-8-debug.log
==============================================================================
--- (empty file)
+++ sandbox/math_toolkit/libs/math/performance/msvc-8-debug.log 2007-08-22 13:48:10 EDT (Wed, 22 Aug 2007)
@@ -0,0 +1,85 @@
+Currently, polynomial evaluation uses method 3
+Currently, rational function evaluation uses method 0
+Currently, the largest order of polynomial or rational function that uses a method other than 0, is 17
+Currently, rational functions with integer coefficients are evaluated using mixed integer/real arithmetic
+Policies are currently set as follows:
+
+Policy Value
+BOOST_MATH_DOMAIN_ERROR_POLICY ignore_error
+BOOST_MATH_POLE_ERROR_POLICY throw_on_error
+BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+BOOST_MATH_UNDERFLOW_ERROR_POLICY ignore_error
+BOOST_MATH_DENORM_ERROR_POLICY ignore_error
+BOOST_MATH_EVALUATION_ERROR_POLICY throw_on_error
+BOOST_MATH_DIGITS10_POLICY 0
+BOOST_MATH_PROMOTE_FLOAT_POLICY true
+BOOST_MATH_PROMOTE_DOUBLE_POLICY true
+BOOST_MATH_DISCRETE_QUANTILE_POLICY integer_round_outwards
+BOOST_MATH_ASSERT_UNDEFINED_POLICY true
+BOOST_MATH_MAX_ITER 1000000
+Testing msvc-debug-Polynomial-method-0 1.369e-006
+Testing msvc-debug-Polynomial-method-1 7.625e-007
+Testing msvc-debug-Polynomial-method-2 5.955e-007
+Testing msvc-debug-Polynomial-method-3 9.393e-007
+Testing msvc-debug-Polynomial-mixed-method-0 1.758e-006
+Testing msvc-debug-Polynomial-mixed-method-1 1.330e-006
+Testing msvc-debug-Polynomial-mixed-method-2 1.252e-006
+Testing msvc-debug-Polynomial-mixed-method-3 1.467e-006
+Testing msvc-debug-Rational-method-0 8.016e-007
+Testing msvc-debug-Rational-method-1 4.495e-007
+Testing msvc-debug-Rational-method-2 4.691e-007
+Testing msvc-debug-Rational-method-3 6.551e-007
+Testing msvc-debug-Rational-mixed-method-0 1.191e-006
+Testing msvc-debug-Rational-mixed-method-1 9.979e-007
+Testing msvc-debug-Rational-mixed-method-2 9.588e-007
+Testing msvc-debug-Rational-mixed-method-3 1.172e-006
+Testing msvc-debug-dist-beta-cdf 1.895e-005
+Testing msvc-debug-dist-beta-pdf 8.301e-006
+Testing msvc-debug-dist-beta-quantile 6.276e-005
+Testing msvc-debug-dist-binomial-cdf 4.085e-006
+Testing msvc-debug-dist-binomial-pdf 4.696e-006
+Testing msvc-debug-dist-binomial-quantile 3.777e-005
+Testing msvc-debug-dist-cauchy-cdf 9.700e-007
+Testing msvc-debug-dist-cauchy-pdf 5.979e-007
+Testing msvc-debug-dist-cauchy-quantile 9.167e-007
+Testing msvc-debug-dist-chi_squared-cdf 5.689e-006
+Testing msvc-debug-dist-chi_squared-pdf 4.176e-006
+Testing msvc-debug-dist-chi_squared-quantile 4.269e-005
+Testing msvc-debug-dist-exponential-cdf 1.585e-006
+Testing msvc-debug-dist-exponential-pdf 6.099e-007
+Testing msvc-debug-dist-exponential-quantile 6.801e-007
+Testing msvc-debug-dist-fisher_f-cdf 1.021e-005
+Testing msvc-debug-dist-fisher_f-pdf 6.586e-006
+Testing msvc-debug-dist-fisher_f-quantile 7.732e-005
+Testing msvc-debug-dist-gamma-cdf 7.969e-006
+Testing msvc-debug-dist-gamma-pdf 5.078e-006
+Testing msvc-debug-dist-gamma-quantile 5.270e-005
+Testing msvc-debug-dist-lognormal-cdf 1.953e-006
+Testing msvc-debug-dist-lognormal-pdf 1.408e-006
+Testing msvc-debug-dist-lognormal-quantile 2.718e-006
+Testing msvc-debug-dist-negative_binomial-cdf 7.204e-006
+Testing msvc-debug-dist-negative_binomial-pdf 6.932e-006
+Testing msvc-debug-dist-negative_binomial-quantile 8.701e-005
+Testing msvc-debug-dist-normal-cdf 1.074e-006
+Testing msvc-debug-dist-normal-pdf 6.258e-007
+Testing msvc-debug-dist-normal-quantile 1.832e-006
+Testing msvc-debug-dist-poisson-cdf 6.133e-006
+Testing msvc-debug-dist-poisson-pdf 2.178e-006
+Testing msvc-debug-dist-poisson-quantile 2.097e-005
+Testing msvc-debug-dist-students_t-cdf 9.409e-006
+Testing msvc-debug-dist-students_t-pdf 4.526e-006
+Testing msvc-debug-dist-students_t-quantile 1.906e-005
+Testing msvc-debug-dist-weibull-cdf 2.621e-006
+Testing msvc-debug-dist-weibull-pdf 2.347e-006
+Testing msvc-debug-dist-weibull-quantile 2.348e-006
+Testing msvc-debug-erf 1.028e-006
+Testing msvc-debug-erf_inv 1.215e-006
+Testing msvc-debug-gamma 2.321e-006
+Testing msvc-debug-ibeta 1.540e-005
+Testing msvc-debug-ibeta_inv 7.492e-005
+Testing msvc-debug-ibeta_invab 2.441e-004
+Testing msvc-debug-igamma 1.044e-005
+Testing msvc-debug-igamma_inv 3.721e-005
+Testing msvc-debug-igamma_inva 1.124e-004
+Testing msvc-debug-lgamma 2.490e-006
+

Added: sandbox/math_toolkit/libs/math/performance/msvc-8.log
==============================================================================
--- (empty file)
+++ sandbox/math_toolkit/libs/math/performance/msvc-8.log 2007-08-22 13:48:10 EDT (Wed, 22 Aug 2007)
@@ -0,0 +1,141 @@
+Currently, polynomial evaluation uses method 3
+Currently, rational function evaluation uses method 0
+Currently, the largest order of polynomial or rational function that uses a method other than 0, is 17
+Currently, rational functions with integer coefficients are evaluated using mixed integer/real arithmetic
+Policies are currently set as follows:
+
+Policy Value
+BOOST_MATH_DOMAIN_ERROR_POLICY ignore_error
+BOOST_MATH_POLE_ERROR_POLICY throw_on_error
+BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+BOOST_MATH_UNDERFLOW_ERROR_POLICY ignore_error
+BOOST_MATH_DENORM_ERROR_POLICY ignore_error
+BOOST_MATH_EVALUATION_ERROR_POLICY throw_on_error
+BOOST_MATH_DIGITS10_POLICY 0
+BOOST_MATH_PROMOTE_FLOAT_POLICY true
+BOOST_MATH_PROMOTE_DOUBLE_POLICY true
+BOOST_MATH_DISCRETE_QUANTILE_POLICY integer_round_outwards
+BOOST_MATH_ASSERT_UNDEFINED_POLICY true
+BOOST_MATH_MAX_ITER 1000000
+Testing msvc-Polynomial-method-0 1.161e-007
+Testing msvc-Polynomial-method-1 9.777e-008
+Testing msvc-Polynomial-method-2 9.289e-008
+Testing msvc-Polynomial-method-3 8.678e-008
+Testing msvc-Polynomial-mixed-method-0 1.638e-007
+Testing msvc-Polynomial-mixed-method-1 9.777e-008
+Testing msvc-Polynomial-mixed-method-2 9.289e-008
+Testing msvc-Polynomial-mixed-method-3 8.678e-008
+Testing msvc-Rational-method-0 1.443e-007
+Testing msvc-Rational-method-1 1.492e-007
+Testing msvc-Rational-method-2 1.736e-007
+Testing msvc-Rational-method-3 1.540e-007
+Testing msvc-Rational-mixed-method-0 1.418e-007
+Testing msvc-Rational-mixed-method-1 1.514e-007
+Testing msvc-Rational-mixed-method-2 1.736e-007
+Testing msvc-Rational-mixed-method-3 1.540e-007
+Testing msvc-dist-beta-R-cdf 1.597e-006
+Testing msvc-dist-beta-R-pdf 1.412e-006
+Testing msvc-dist-beta-R-quantile 4.905e-004
+Testing msvc-dist-beta-cdf 1.916e-006
+Testing msvc-dist-beta-pdf 7.643e-007
+Testing msvc-dist-beta-quantile 6.570e-006
+Testing msvc-dist-binom-R-cdf 1.293e-006
+Testing msvc-dist-binom-R-pdf 1.055e-006
+Testing msvc-dist-binom-R-quantile 5.280e-006
+Testing msvc-dist-binomial-cdf 5.276e-007
+Testing msvc-dist-binomial-pdf 9.685e-007
+Testing msvc-dist-binomial-quantile 4.013e-006
+Testing msvc-dist-cauchy-R-cdf 1.576e-007
+Testing msvc-dist-cauchy-R-pdf 3.586e-008
+Testing msvc-dist-cauchy-R-quantile 1.498e-007
+Testing msvc-dist-cauchy-cdf 1.231e-007
+Testing msvc-dist-cauchy-pdf 4.191e-008
+Testing msvc-dist-cauchy-quantile 1.498e-007
+Testing msvc-dist-ch-cephes-cdf 1.067e-006
+Testing msvc-dist-ch-cephes-quantile 4.336e-005
+Testing msvc-dist-chi_squared-cdf 7.889e-007
+Testing msvc-dist-chi_squared-pdf 7.324e-007
+Testing msvc-dist-chi_squared-quantile 4.303e-006
+Testing msvc-dist-chisq-R-cdf 1.955e-006
+Testing msvc-dist-chisq-R-pdf 8.111e-007
+Testing msvc-dist-chisq-R-quantile 6.925e-006
+Testing msvc-dist-exp-R-cdf 3.844e-007
+Testing msvc-dist-exp-R-pdf 4.400e-007
+Testing msvc-dist-exp-R-quantile 1.126e-007
+Testing msvc-dist-exponential-cdf 1.955e-007
+Testing msvc-dist-exponential-pdf 2.016e-007
+Testing msvc-dist-exponential-quantile 1.206e-007
+Testing msvc-dist-f-R-cdf 2.780e-006
+Testing msvc-dist-f-R-pdf 1.115e-006
+Testing msvc-dist-f-R-quantile 1.280e-005
+Testing msvc-dist-f-cephes-cdf 1.390e-006
+Testing msvc-dist-f-cephes-quantile 2.719e-005
+Testing msvc-dist-fisher_f-cdf 1.309e-006
+Testing msvc-dist-fisher_f-pdf 8.555e-007
+Testing msvc-dist-fisher_f-quantile 7.204e-006
+Testing msvc-dist-gamma-R-cdf 2.227e-006
+Testing msvc-dist-gamma-R-pdf 9.785e-007
+Testing msvc-dist-gamma-R-quantile 5.937e-006
+Testing msvc-dist-gamma-cdf 1.076e-006
+Testing msvc-dist-gamma-pdf 9.092e-007
+Testing msvc-dist-gamma-quantile 5.189e-006
+Testing msvc-dist-lnorm-R-cdf 2.930e-007
+Testing msvc-dist-lnorm-R-pdf 5.576e-007
+Testing msvc-dist-lnorm-R-quantile 1.090e-006
+Testing msvc-dist-lognormal-cdf 2.078e-007
+Testing msvc-dist-lognormal-pdf 4.546e-007
+Testing msvc-dist-lognormal-quantile 6.692e-007
+Testing msvc-dist-nbinom-R-cdf 2.178e-006
+Testing msvc-dist-nbinom-R-pdf 1.531e-006
+Testing msvc-dist-nbinom-R-quantile 5.145e-004
+Testing msvc-dist-negative_binomial-cdf 9.005e-007
+Testing msvc-dist-negative_binomial-pdf 9.515e-007
+Testing msvc-dist-negative_binomial-quantile 9.601e-006
+Testing msvc-dist-norm-R-cdf 1.785e-007
+Testing msvc-dist-norm-R-pdf 5.273e-007
+Testing msvc-dist-norm-R-quantile 1.311e-007
+Testing msvc-dist-normal-cdf 5.926e-008
+Testing msvc-dist-normal-pdf 2.539e-007
+Testing msvc-dist-normal-quantile 1.248e-007
+Testing msvc-dist-pois-R-cdf 2.175e-006
+Testing msvc-dist-pois-R-pdf 1.287e-006
+Testing msvc-dist-pois-R-quantile 4.014e-006
+Testing msvc-dist-poisson-cdf 8.999e-007
+Testing msvc-dist-poisson-pdf 5.770e-007
+Testing msvc-dist-poisson-quantile 1.853e-006
+Testing msvc-dist-students_t-cdf 1.223e-006
+Testing msvc-dist-students_t-pdf 7.668e-007
+Testing msvc-dist-students_t-quantile 2.570e-006
+Testing msvc-dist-t-R-cdf 1.376e-006
+Testing msvc-dist-t-R-pdf 8.333e-007
+Testing msvc-dist-t-R-quantile 2.668e-006
+Testing msvc-dist-weibull-R-cdf 6.943e-007
+Testing msvc-dist-weibull-R-pdf 1.074e-006
+Testing msvc-dist-weibull-R-quantile 8.542e-007
+Testing msvc-dist-weibull-cdf 4.741e-007
+Testing msvc-dist-weibull-pdf 7.725e-007
+Testing msvc-dist-weibull-quantile 7.926e-007
+Testing msvc-erf 6.173e-008
+Testing msvc-erf-cephes 8.094e-008
+Testing msvc-erf-gsl 4.374e-007
+Testing msvc-erf_inv 6.302e-008
+Testing msvc-gamma 2.566e-007
+Testing msvc-gamma-cephes 1.709e-007
+Testing msvc-gamma-gsl 2.627e-007
+Testing msvc-ibeta 1.852e-006
+Testing msvc-ibeta-cephes 1.974e-006
+Testing msvc-ibeta-gsl 2.095e-006
+Testing msvc-ibeta_inv 7.311e-006
+Testing msvc-ibeta_inv-cephes 1.637e-005
+Testing msvc-ibeta_invab 2.847e-005
+Testing msvc-igamma 9.504e-007
+Testing msvc-igamma-cephes 2.439e-006
+Testing msvc-igamma-gsl 2.042e-006
+Testing msvc-igamma_inv 3.631e-006
+Testing msvc-igamma_inva 9.982e-006
+Testing msvc-lgamma 2.688e-007
+Testing msvc-lgamma-cephes 1.556e-007
+Testing msvc-lgamma-gsl 5.621e-007
+
+
+

Modified: sandbox/math_toolkit/libs/math/performance/test_ibeta.cpp
==============================================================================
--- sandbox/math_toolkit/libs/math/performance/test_ibeta.cpp (original)
+++ sandbox/math_toolkit/libs/math/performance/test_ibeta.cpp 2007-08-22 13:48:10 EDT (Wed, 22 Aug 2007)
@@ -150,7 +150,7 @@
 
 #endif
 
-#ifdef TEST_GSL___
+#ifdef TEST_GSL
 //
 // This test segfaults inside GSL....
 //

Modified: sandbox/math_toolkit/libs/math/performance/test_igamma.cpp
==============================================================================
--- sandbox/math_toolkit/libs/math/performance/test_igamma.cpp (original)
+++ sandbox/math_toolkit/libs/math/performance/test_igamma.cpp 2007-08-22 13:48:10 EDT (Wed, 22 Aug 2007)
@@ -132,7 +132,7 @@
       result += igami(data[i][0], data[i][3]); // note needs complement of probability!!
    return result;
 }
-/*
+
 //
 // This test does not run to completion, gets stuck
 // in infinite loop inside cephes....
@@ -151,7 +151,6 @@
       + sizeof(igamma_med_data)
       + sizeof(igamma_small_data)) / sizeof(igamma_big_data[0]));
 }
-*/
 #endif
 
 #ifdef TEST_GSL


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk