$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
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