# \libs\math\example\jamfile.v2
# Runs statistics examples
# Copyright 2007 John Maddock
# Copyright Paul A. Bristow 2007, 2010.
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

# bring in the rules for testing
import testing ;

project
    : requirements
      <toolset>gcc:<cxxflags>-Wno-missing-braces
      <toolset>darwin:<cxxflags>-Wno-missing-braces
      <toolset>acc:<cxxflags>+W2068,2461,2236,4070
      <toolset>intel:<cxxflags>-Qwd264,239
      <toolset>msvc:<warnings>all
      <toolset>msvc:<asynch-exceptions>on
      <toolset>msvc:<cxxflags>/wd4996
      <toolset>msvc:<cxxflags>/wd4512
      <toolset>msvc:<cxxflags>/wd4610
      <toolset>msvc:<cxxflags>/wd4510
      <toolset>msvc:<cxxflags>/wd4127
      <toolset>msvc:<cxxflags>/wd4701
      <toolset>msvc:<cxxflags>/wd4127
      <toolset>msvc:<cxxflags>/wd4305
      <include>../../..
    ;

run binomial_coinflip_example.cpp ;
run binomial_confidence_limits.cpp ;
run binomial_example_nag.cpp ;
run binomial_quiz_example.cpp ;
run binomial_sample_sizes.cpp ;
run c_error_policy_example.cpp ;
run chi_square_std_dev_test.cpp ;
run distribution_construction.cpp ;
run error_handling_example.cpp ;
run error_policies_example.cpp ;
run error_policy_example.cpp ;
run f_test.cpp ;
run find_location_example.cpp ;
run find_mean_and_sd_normal.cpp ;
run find_root_example.cpp ;
run find_scale_example.cpp ;
run laplace_example.cpp ;
run nc_chi_sq_example.cpp ;
run neg_binom_confidence_limits.cpp ;
run neg_binomial_sample_sizes.cpp ;
run negative_binomial_example1.cpp ;
run negative_binomial_example2.cpp ;
run normal_misc_examples.cpp ;
run policy_eg_1.cpp ;
run policy_eg_10.cpp ;
run policy_eg_2.cpp ;
run policy_eg_3.cpp ;
run policy_eg_4.cpp ;
run policy_eg_5.cpp ;
run policy_eg_6.cpp ;
run policy_eg_7.cpp ;
run policy_eg_8.cpp ;
run policy_eg_9.cpp ;
run policy_ref_snip1.cpp ;
run policy_ref_snip10.cpp ;
run policy_ref_snip11.cpp ;
run policy_ref_snip12.cpp ;
run policy_ref_snip13.cpp ;
run policy_ref_snip2.cpp ;
run policy_ref_snip3.cpp ;
run policy_ref_snip4.cpp ;
run policy_ref_snip5.cpp ;
run policy_ref_snip6.cpp ;
run policy_ref_snip7.cpp ;
run policy_ref_snip8.cpp ;
run policy_ref_snip9.cpp ;
run students_t_example1.cpp ;
run students_t_example2.cpp ;
run students_t_example3.cpp ;
run students_t_single_sample.cpp ;
run students_t_two_samples.cpp ;




