# Copyright Daryle Walker, Hubert Holin, John Maddock 2006 - 2007
# copyright Paul A. Bristow 2006 - 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.
# \math_toolkit\libs\math\test\jamfile.v2
# Runs all math toolkit tests, functions & distributions,
# and build math examples.

# bring in the rules for testing
import testing ;
import modules ;
import path ;
import pch ;

local ntl-path = [ modules.peek : NTL_PATH ] ;
local gmp_path = [ modules.peek : GMP_PATH ] ;

project  
    : requirements 
      <toolset>gcc:<cxxflags>-Wno-missing-braces
      <toolset>darwin:<cxxflags>-Wno-missing-braces
      <toolset>acc:<cxxflags>+W2068,2461,2236,4070,4069
      <toolset>intel-win:<cxxflags>-nologo 
      <toolset>intel-win:<linkflags>-nologo 
      #<toolset>intel-linux:<pch>off
      <toolset>intel-darwin:<pch>off
      <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 # needed for lexical cast - temporary.
      <toolset>msvc-7.1:<source>../vc71_fix//vc_fix
      <toolset>msvc-7.1:<pch>off
      <toolset>borland:<link>static
      <toolset>borland:<runtime-link>static
      # <toolset>msvc:<cxxflags>/wd4506 has no effect?
      # suppress xstring(237) : warning C4506: no definition for inline function
      <include>../../..
      <source>../../regex/build//boost_regex
      <link>shared:<define>BOOST_REGEX_DYN_LINK=1
      # Sunpro and cygwin/Mingw have problems building regex as a shared lib:
      <toolset>sun:<link>static
	    <toolset>gcc-mw:<link>static
	    <toolset>gcc-mingw:<link>static
      <toolset>gcc-cygwin:<link>static
      <define>BOOST_ALL_NO_LIB=1
      <define>BOOST_UBLAS_UNSUPPORTED_COMPILER=0
      <include>.
      <include>$(ntl-path)/include
      <include>$(gmp_path) <include>$(gmp_path)/mpfr <include>$(gmp_path)/gmpfrxx
    ;

cpp-pch pch : pch.hpp : <use>../../test/build//boost_test_exec_monitor ;

run hypot_test.cpp pch ../../test/build//boost_test_exec_monitor ;
run pow_test.cpp ../../test/build//boost_test_exec_monitor ;
run log1p_expm1_test.cpp pch ../../test/build//boost_test_exec_monitor ;
run powm1_sqrtp1m1_test.cpp pch ../../test/build//boost_test_exec_monitor ;
run special_functions_test.cpp ../../test/build//boost_unit_test_framework/<link>static ;
run test_bernoulli.cpp ../../test/build//boost_test_exec_monitor ;
run test_constants.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_bessel_j.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_bessel_y.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_bessel_i.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_bessel_k.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_beta.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_beta_dist.cpp ../../test/build//boost_test_exec_monitor ;
run test_binomial.cpp  ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_FLOAT
	      <toolset>intel:<pch>off
        : test_binomial_float ;
run test_binomial.cpp  ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_DOUBLE
	      <toolset>intel:<pch>off
        : test_binomial_double ;
run test_binomial.cpp  ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_LDOUBLE
	      <toolset>intel:<pch>off
        : test_binomial_long_double ;
run test_binomial.cpp  ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_REAL_CONCEPT
	      <define>TEST_ROUNDING=0
	      <toolset>intel:<pch>off
        : test_binomial_real_concept0 ;
run test_binomial.cpp  ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_REAL_CONCEPT
	      <define>TEST_ROUNDING=1
	      <toolset>intel:<pch>off
        : test_binomial_real_concept1 ;
run test_binomial.cpp  ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_REAL_CONCEPT
	      <define>TEST_ROUNDING=2
	      <toolset>intel:<pch>off
        : test_binomial_real_concept2 ;
run test_binomial.cpp  ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_REAL_CONCEPT
	      <define>TEST_ROUNDING=3
	      <toolset>intel:<pch>off
        : test_binomial_real_concept3 ;
run test_binomial.cpp  ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_REAL_CONCEPT
	      <define>TEST_ROUNDING=4
	      <toolset>intel:<pch>off
        : test_binomial_real_concept4 ;
run test_binomial.cpp  ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_REAL_CONCEPT
	      <define>TEST_ROUNDING=5
	      <toolset>intel:<pch>off
        : test_binomial_real_concept5 ;
run test_binomial.cpp  ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_REAL_CONCEPT
	      <define>TEST_ROUNDING=6
	      <toolset>intel:<pch>off
        : test_binomial_real_concept6 ;
run test_binomial_coeff.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_carlson.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_cauchy.cpp ../../test/build//boost_test_exec_monitor ;
run test_cbrt.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_chi_squared.cpp ../../test/build//boost_test_exec_monitor ;
run test_classify.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_digamma.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_dist_overloads.cpp ../../test/build//boost_test_exec_monitor ;
run test_ellint_1.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_ellint_2.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_ellint_3.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_erf.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_error_handling.cpp ../../test/build//boost_test_exec_monitor ;
run test_expint.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_exponential_dist.cpp ../../test/build//boost_test_exec_monitor ;
run test_extreme_value.cpp ../../test/build//boost_test_exec_monitor ;
run test_factorials.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_find_location.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_find_scale.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_fisher_f.cpp ../../test/build//boost_test_exec_monitor ;
run test_gamma.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_gamma_dist.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_hermite.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_hypergeometric_dist.cpp ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_QUANT=0
	      <toolset>intel:<pch>off
        : test_hypergeometric_dist0 ;
run test_hypergeometric_dist.cpp ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_QUANT=1
	      <toolset>intel:<pch>off
        : test_hypergeometric_dist1 ;
run test_hypergeometric_dist.cpp ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_QUANT=2
	      <toolset>intel:<pch>off
        : test_hypergeometric_dist2 ;
run test_hypergeometric_dist.cpp ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_QUANT=3
	      <toolset>intel:<pch>off
        : test_hypergeometric_dist3 ;
run test_hypergeometric_dist.cpp ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_QUANT=4
	      <toolset>intel:<pch>off
        : test_hypergeometric_dist4 ;
run test_hypergeometric_dist.cpp ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_QUANT=5
	      <toolset>intel:<pch>off
        : test_hypergeometric_dist5 ;
run test_ibeta.cpp  pch ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_FLOAT
	      <toolset>intel:<pch>off
        : test_ibeta_float ;
run test_ibeta.cpp  pch ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_DOUBLE
	      <toolset>intel:<pch>off
        : test_ibeta_double ;
run test_ibeta.cpp  pch ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_LDOUBLE
	      <toolset>intel:<pch>off
        : test_ibeta_long_double ;
run test_ibeta.cpp  pch ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_REAL_CONCEPT
	      <define>TEST_DATA=1
	      <toolset>intel:<pch>off
        : test_ibeta_real_concept1 ;
run test_ibeta.cpp  pch ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_REAL_CONCEPT
	      <define>TEST_DATA=2
	      <toolset>intel:<pch>off
        : test_ibeta_real_concept2 ;
run test_ibeta.cpp  pch ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_REAL_CONCEPT
	      <define>TEST_DATA=3
	      <toolset>intel:<pch>off
        : test_ibeta_real_concept3 ;
run test_ibeta.cpp  pch ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_REAL_CONCEPT
	      <define>TEST_DATA=4
	      <toolset>intel:<pch>off
        : test_ibeta_real_concept4 ;
run test_ibeta_inv.cpp  pch ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_FLOAT
	      <toolset>intel:<pch>off
        : test_ibeta_inv_float ;
run test_ibeta_inv.cpp  pch ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_DOUBLE
	      <toolset>intel:<pch>off
        : test_ibeta_inv_double ;
run test_ibeta_inv.cpp  pch ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_LDOUBLE
	      <toolset>intel:<pch>off
        : test_ibeta_inv_long_double ;
run test_ibeta_inv.cpp  pch ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_REAL_CONCEPT
	      <define>TEST_DATA=1
	      <toolset>intel:<pch>off
        : test_ibeta_inv_real_concept1 ;
run test_ibeta_inv.cpp  ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_REAL_CONCEPT
	      <define>TEST_DATA=2
	      <toolset>intel:<pch>off
        : test_ibeta_inv_real_concept2 ;
run test_ibeta_inv.cpp  ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_REAL_CONCEPT
	      <define>TEST_DATA=3
	      <toolset>intel:<pch>off
        : test_ibeta_inv_real_concept3 ;
run test_ibeta_inv.cpp  ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_REAL_CONCEPT
	      <define>TEST_DATA=4
	      <toolset>intel:<pch>off
        : test_ibeta_inv_real_concept4 ;
run test_ibeta_inv_ab.cpp  pch ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_FLOAT
	      <toolset>intel:<pch>off
        : test_ibeta_inv_ab_float ;
run test_ibeta_inv_ab.cpp  pch ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_DOUBLE
	      <toolset>intel:<pch>off
        : test_ibeta_inv_ab_double ;
run test_ibeta_inv_ab.cpp  pch ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_LDOUBLE
	      <toolset>intel:<pch>off
        : test_ibeta_inv_ab_long_double ;
run test_ibeta_inv_ab.cpp  pch ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_REAL_CONCEPT
	      <define>TEST_DATA=1
	      <toolset>intel:<pch>off
        : test_ibeta_inv_ab_real_concept1 ;
run test_ibeta_inv_ab.cpp  ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_REAL_CONCEPT
	      <define>TEST_DATA=2
	      <toolset>intel:<pch>off
        : test_ibeta_inv_ab_real_concept2 ;
run test_ibeta_inv_ab.cpp  ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_REAL_CONCEPT
	      <define>TEST_DATA=3
	      <toolset>intel:<pch>off
        : test_ibeta_inv_ab_real_concept3 ;
run test_igamma.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_igamma_inv.cpp pch  ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_FLOAT
	      <toolset>intel:<pch>off
        : test_igamma_inv_float ;
run test_igamma_inv.cpp  pch ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_DOUBLE
	      <toolset>intel:<pch>off
        : test_igamma_inv_double ;
run test_igamma_inv.cpp  pch ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_LDOUBLE
	      <toolset>intel:<pch>off
        : test_igamma_inv_long_double ;
run test_igamma_inv.cpp  pch ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_REAL_CONCEPT
	      <toolset>intel:<pch>off
        : test_igamma_inv_real_concept ;
run test_igamma_inva.cpp  pch ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_FLOAT
	      <toolset>intel:<pch>off
        : test_igamma_inva_float ;
run test_igamma_inva.cpp  pch ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_DOUBLE
	      <toolset>intel:<pch>off
        : test_igamma_inva_double ;
run test_igamma_inva.cpp  pch ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_LDOUBLE
	      <toolset>intel:<pch>off
        : test_igamma_inva_long_double ;
run test_igamma_inva.cpp  pch ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_REAL_CONCEPT
	      <toolset>intel:<pch>off
        : test_igamma_inva_real_concept ;
run test_instantiate1.cpp test_instantiate2.cpp ;

run test_inverse_gamma_distribution.cpp ../../test/build//boost_test_exec_monitor ;
run test_inverse_chi_squared_distribution.cpp ../../test/build//boost_test_exec_monitor ;

run test_laplace.cpp ../../test/build//boost_unit_test_framework/<link>static ;
run test_inv_hyp.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_laguerre.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_legendre.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_logistic_dist.cpp ../../test/build//boost_test_exec_monitor ;
run test_lognormal.cpp ../../test/build//boost_test_exec_monitor ;
run test_minima.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_negative_binomial.cpp ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_FLOAT
	      <toolset>intel:<pch>off
        : test_negative_binomial_float ;
run test_negative_binomial.cpp ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_DOUBLE
	      <toolset>intel:<pch>off
        : test_negative_binomial_double ;
run test_negative_binomial.cpp ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_LDOUBLE
	      <toolset>intel:<pch>off
        : test_negative_binomial_long_double ;
run test_negative_binomial.cpp ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_REAL_CONCEPT
	      <toolset>intel:<pch>off
        : test_negative_binomial_real_concept ;
run test_next.cpp pch pch ../../test/build//boost_test_exec_monitor ;
run test_nc_chi_squared.cpp  pch ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_FLOAT
	      <toolset>intel:<pch>off
        : test_nc_chi_squared_float ;
run test_nc_chi_squared.cpp  pch ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_DOUBLE
	      <toolset>intel:<pch>off
        : test_nc_chi_squared_double ;
run test_nc_chi_squared.cpp  pch ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_LDOUBLE
	      <toolset>intel:<pch>off
        : test_nc_chi_squared_long_double ;
run test_nc_chi_squared.cpp  pch ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_REAL_CONCEPT
	      <toolset>intel:<pch>off
        : test_nc_chi_squared_real_concept ;
run test_nc_beta.cpp  pch ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_FLOAT
	      <toolset>intel:<pch>off
        : test_nc_beta_float ;
run test_nc_beta.cpp  pch ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_DOUBLE
	      <toolset>intel:<pch>off
        : test_nc_beta_double ;
run test_nc_beta.cpp  pch ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_LDOUBLE
	      <toolset>intel:<pch>off
        : test_nc_beta_long_double ;
run test_nc_beta.cpp  pch ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_REAL_CONCEPT
	      <define>TEST_DATA=1
	      <toolset>intel:<pch>off
        : test_nc_beta_real_concept1 ;
run test_nc_beta.cpp  ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_REAL_CONCEPT
	      <define>TEST_DATA=2
	      <toolset>intel:<pch>off
        : test_nc_beta_real_concept2 ;
run test_nc_f.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_nc_t.cpp  pch ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_FLOAT
	      <toolset>intel:<pch>off
        : test_nc_t_float ;
run test_nc_t.cpp  pch ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_DOUBLE
	      <toolset>intel:<pch>off
        : test_nc_t_double ;
run test_nc_t.cpp  pch ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_LDOUBLE
	      <toolset>intel:<pch>off
        : test_nc_t_long_double ;
run test_nc_t.cpp  pch ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_REAL_CONCEPT
	      <toolset>intel:<pch>off
        : test_nc_t_real_concept ;
run test_normal.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_pareto.cpp ../../test/build//boost_test_exec_monitor ;
run test_poisson.cpp ../../test/build//boost_test_exec_monitor 
        : # command line
        : # input files
        : # requirements
	      <define>TEST_FLOAT
	      <toolset>intel:<pch>off
        : test_poisson_float ;
run test_poisson.cpp  ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_DOUBLE
	      <toolset>intel:<pch>off
        : test_poisson_double ;
run test_poisson.cpp  ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_LDOUBLE
	      <toolset>intel:<pch>off
        : test_poisson_long_double ;
run test_poisson.cpp  ../../test/build//boost_test_exec_monitor
        : # command line
        : # input files
        : # requirements
	      <define>TEST_REAL_CONCEPT
	      <toolset>intel:<pch>off
        : test_poisson_real_concept ;
run test_rayleigh.cpp ../../test/build//boost_test_exec_monitor ;

run test_rationals.cpp ../../test/build//boost_test_exec_monitor 
test_rational_instances/test_rational_double1.cpp
test_rational_instances/test_rational_double2.cpp
test_rational_instances/test_rational_double3.cpp
test_rational_instances/test_rational_double4.cpp
test_rational_instances/test_rational_double5.cpp
test_rational_instances/test_rational_float1.cpp
test_rational_instances/test_rational_float2.cpp
test_rational_instances/test_rational_float3.cpp
test_rational_instances/test_rational_float4.cpp
test_rational_instances/test_rational_ldouble1.cpp
test_rational_instances/test_rational_ldouble2.cpp
test_rational_instances/test_rational_ldouble3.cpp
test_rational_instances/test_rational_ldouble4.cpp
test_rational_instances/test_rational_ldouble5.cpp
test_rational_instances/test_rational_real_concept1.cpp
test_rational_instances/test_rational_real_concept2.cpp
test_rational_instances/test_rational_real_concept3.cpp
test_rational_instances/test_rational_real_concept4.cpp
test_rational_instances/test_rational_real_concept5.cpp
;

run test_real_concept.cpp ../../test/build//boost_test_exec_monitor ;
run test_remez.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_roots.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_round.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_spherical_harmonic.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_students_t.cpp ../../test/build//boost_test_exec_monitor ;
run test_sign.cpp ../../test/build//boost_test_exec_monitor ;
run test_tgamma_ratio.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_toms748_solve.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_triangular.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_uniform.cpp pch ../../test/build//boost_test_exec_monitor ;
run test_weibull.cpp ../../test/build//boost_test_exec_monitor ;
run test_zeta.cpp pch ../../test/build//boost_test_exec_monitor ;

run test_policy.cpp ../../test/build//boost_test_exec_monitor ;
run test_policy_2.cpp ../../test/build//boost_test_exec_monitor ;
run test_policy_3.cpp ../../test/build//boost_test_exec_monitor ;
run test_policy_4.cpp ../../test/build//boost_test_exec_monitor ;
run test_policy_5.cpp ../../test/build//boost_test_exec_monitor ;
run test_policy_6.cpp ../../test/build//boost_test_exec_monitor ;
run test_policy_7.cpp ../../test/build//boost_test_exec_monitor ;
run test_policy_8.cpp ../../test/build//boost_test_exec_monitor ;
run test_policy_sf.cpp ../../test/build//boost_test_exec_monitor ;

run test_tr1.cpp
   ../build//boost_math_tr1
   ../build//boost_math_tr1f
   ../build//boost_math_c99
   ../build//boost_math_c99f
   ../../test/build//boost_test_exec_monitor 
   ;

run test_tr1.cpp
   ../build//boost_math_tr1l 
   ../build//boost_math_c99l 
   ../../test/build//boost_test_exec_monitor 
   : : :
   <define>TEST_LD=1
   [ check-target-builds ../config//has_long_double_support : : <build>no ]
   :
   test_tr1_long_double
   ;
   
run test_long_double_support.cpp ../../test/build//boost_test_exec_monitor 
: : : [ check-target-builds ../config//has_long_double_support : : <build>no ] ;

run  compile_test/compl_abs_incl_test.cpp compile_test/main.cpp ;
run  compile_test/compl_acos_incl_test.cpp compile_test/main.cpp ;
run  compile_test/compl_acosh_incl_test.cpp compile_test/main.cpp ;
run  compile_test/compl_asin_incl_test.cpp compile_test/main.cpp ;
run  compile_test/compl_asinh_incl_test.cpp compile_test/main.cpp ;
run  compile_test/compl_atan_incl_test.cpp compile_test/main.cpp ;
run  compile_test/compl_atanh_incl_test.cpp compile_test/main.cpp ;
run  compile_test/dist_bernoulli_incl_test.cpp compile_test/main.cpp ;
run  compile_test/dist_beta_incl_test.cpp compile_test/main.cpp ;
run  compile_test/dist_binomial_incl_test.cpp compile_test/main.cpp ;
run  compile_test/dist_cauchy_incl_test.cpp compile_test/main.cpp ;
run  compile_test/dist_chi_squared_incl_test.cpp compile_test/main.cpp ;
run  compile_test/dist_complement_incl_test.cpp compile_test/main.cpp ;
run  compile_test/dist_exponential_incl_test.cpp compile_test/main.cpp ;
run  compile_test/dist_extreme_val_incl_test.cpp compile_test/main.cpp ;
run  compile_test/dist_find_location_incl_test.cpp compile_test/main.cpp ;
run  compile_test/dist_find_scale_incl_test.cpp compile_test/main.cpp ;
run  compile_test/dist_fisher_f_incl_test.cpp compile_test/main.cpp ;
run  compile_test/dist_gamma_incl_test.cpp compile_test/main.cpp ;
run  compile_test/dist_inv_gamma_incl_test.cpp compile_test/main.cpp ;
run  compile_test/dist_inv_chi_sq_incl_test.cpp compile_test/main.cpp ;
run  compile_test/dist_hypergeo_incl_test.cpp compile_test/main.cpp ;
run  compile_test/dist_laplace_incl_test.cpp compile_test/main.cpp ;
run  compile_test/dist_logistic_incl_test.cpp compile_test/main.cpp ;
run  compile_test/dist_lognormal_incl_test.cpp compile_test/main.cpp ;
run  compile_test/dist_neg_binom_incl_test.cpp compile_test/main.cpp ;
run  compile_test/dist_nc_chi_squ_incl_test.cpp compile_test/main.cpp ;
run  compile_test/dist_nc_beta_incl_test.cpp compile_test/main.cpp ;
run  compile_test/dist_nc_f_incl_test.cpp compile_test/main.cpp ;
run  compile_test/dist_nc_t_incl_test.cpp compile_test/main.cpp ;
run  compile_test/dist_normal_incl_test.cpp compile_test/main.cpp ;
run  compile_test/dist_poisson_incl_test.cpp compile_test/main.cpp ;
run  compile_test/dist_students_t_incl_test.cpp compile_test/main.cpp ;
run  compile_test/dist_triangular_incl_test.cpp compile_test/main.cpp ;
run  compile_test/dist_uniform_incl_test.cpp compile_test/main.cpp ;
run  compile_test/dist_weibull_incl_test.cpp compile_test/main.cpp ;
run  compile_test/distribution_concept_check.cpp ;
run  compile_test/sf_beta_incl_test.cpp compile_test/main.cpp ;
run  compile_test/sf_bessel_incl_test.cpp compile_test/main.cpp ;
run  compile_test/sf_binomial_incl_test.cpp compile_test/main.cpp ;
run  compile_test/sf_cbrt_incl_test.cpp compile_test/main.cpp ;
run  compile_test/sf_cos_pi_incl_test.cpp compile_test/main.cpp ;
run  compile_test/sf_digamma_incl_test.cpp compile_test/main.cpp ;
run  compile_test/sf_ellint_1_incl_test.cpp compile_test/main.cpp ;
run  compile_test/sf_ellint_2_incl_test.cpp compile_test/main.cpp ;
run  compile_test/sf_ellint_3_incl_test.cpp compile_test/main.cpp ;
run  compile_test/sf_ellint_rc_incl_test.cpp compile_test/main.cpp ;
run  compile_test/sf_ellint_rd_incl_test.cpp compile_test/main.cpp ;
run  compile_test/sf_ellint_rf_incl_test.cpp compile_test/main.cpp ;
run  compile_test/sf_ellint_rj_incl_test.cpp compile_test/main.cpp ;
run  compile_test/sf_erf_incl_test.cpp compile_test/main.cpp ;
run  compile_test/sf_expint_incl_test.cpp compile_test/main.cpp ;
run  compile_test/sf_expm1_incl_test.cpp compile_test/main.cpp ;
run  compile_test/sf_factorials_incl_test.cpp compile_test/main.cpp ;
run  compile_test/sf_fpclassify_incl_test.cpp compile_test/main.cpp ;
run  compile_test/sf_gamma_incl_test.cpp compile_test/main.cpp ;
run  compile_test/sf_hermite_incl_test.cpp compile_test/main.cpp ;
run  compile_test/sf_hypot_incl_test.cpp compile_test/main.cpp ;
run  compile_test/sf_laguerre_incl_test.cpp compile_test/main.cpp ;
compile  compile_test/sf_lanczos_incl_test.cpp ;
run  compile_test/sf_legendre_incl_test.cpp compile_test/main.cpp ;
run  compile_test/sf_log1p_incl_test.cpp compile_test/main.cpp ;
compile  compile_test/sf_math_fwd_incl_test.cpp ;
run  compile_test/sf_modf_incl_test.cpp compile_test/main.cpp ;
run  compile_test/sf_next_incl_test.cpp compile_test/main.cpp ;
run  compile_test/sf_powm1_incl_test.cpp compile_test/main.cpp ;
run  compile_test/sf_round_incl_test.cpp compile_test/main.cpp ;
run  compile_test/sf_sign_incl_test.cpp compile_test/main.cpp ;
run  compile_test/sf_sin_pi_incl_test.cpp compile_test/main.cpp ;
run  compile_test/sf_sinc_incl_test.cpp compile_test/main.cpp ;
run  compile_test/sf_sinhc_incl_test.cpp compile_test/main.cpp ;
run  compile_test/sf_sph_harm_incl_test.cpp compile_test/main.cpp ;
run  compile_test/sf_sqrt1pm1_incl_test.cpp compile_test/main.cpp ;
run  compile_test/sf_trunc_incl_test.cpp compile_test/main.cpp ;
run  compile_test/sf_zeta_incl_test.cpp compile_test/main.cpp ;
run  compile_test/std_real_concept_check.cpp ;
compile  compile_test/test_traits.cpp ;
compile  compile_test/tools_config_inc_test.cpp ;
compile  compile_test/tools_fraction_inc_test.cpp ;
compile  compile_test/tools_minima_inc_test.cpp ;
compile  compile_test/tools_polynomial_inc_test.cpp ;
compile  compile_test/tools_precision_inc_test.cpp ;
compile  compile_test/tools_rational_inc_test.cpp ;
compile  compile_test/tools_real_cast_inc_test.cpp ;
compile  compile_test/tools_remez_inc_test.cpp ;
compile  compile_test/tools_roots_inc_test.cpp ;
compile  compile_test/tools_series_inc_test.cpp ;
compile  compile_test/tools_solve_inc_test.cpp ;
compile  compile_test/tools_stats_inc_test.cpp ;
compile  compile_test/tools_test_data_inc_test.cpp ;
compile  compile_test/tools_test_inc_test.cpp ;
compile  compile_test/tools_toms748_inc_test.cpp ;

run ../test/common_factor_test.cpp
    ../../test/build//boost_unit_test_framework/<link>static ;

run ../octonion/octonion_test.cpp
    ../../test/build//boost_unit_test_framework/<link>static ;

run ../quaternion/quaternion_test.cpp
    ../../test/build//boost_unit_test_framework/<link>static ;

run ../quaternion/quaternion_mult_incl_test.cpp 
    ../quaternion/quaternion_mi1.cpp
    ../quaternion/quaternion_mi2.cpp
    ../../test/build//boost_unit_test_framework/<link>static ;

run complex_test.cpp ../../test/build//boost_test_exec_monitor ;

compile ntl_concept_check.cpp : [ check-target-builds ../config//has_ntl_rr : : <build>no ] ;
compile mpfr_concept_check.cpp : [ check-target-builds ../config//has_mpfr_class : : <build>no ] ;
compile test_common_factor_gmpxx.cpp : [ check-target-builds ../config//has_gmpxx : : <build>no ] ;

build-project ../example ;




