2
0
mirror of https://github.com/boostorg/math.git synced 2026-01-19 04:22:09 +00:00

Merge pull request #1319 from demroz/fix-long-running-tests

Fix long running tests
This commit is contained in:
Matt Borland
2025-09-18 07:41:57 +02:00
committed by GitHub
1029 changed files with 21231 additions and 3975 deletions

View File

@@ -241,135 +241,132 @@ Some key points about reverse mode automatic differentiation:
[[ldexp] [expression, &int] [ x*pow(2,int) ] [expression] [pow(2,int)] []]
]
[h1:table-of-specfuns Specfun Support]
\[/ BEGIN SPECFUN TABLE\]
[table
[[Function] [compiles with ET ON] [runs with ET ON] [compiles with ET OFF] [runs with ET OFF] [works with multiprecision] [known issues]]
[[tgamma] [YES] [YES] [YES] [YES] [NO] [N/A]]
[[tgamma1pm1] [NO] [N/A] [YES] [YES] [NO] [N/A]]
[[lgamma] [YES] [YES] [YES] [YES] [NO] [N/A]]
[[digamma] [YES] [YES] [YES] [YES] [NO] [N/A]]
[[trigamma] [YES] [YES] [YES] [YES] [NO] [N/A]]
[[polygamma] [NO] [N/A] [YES] [YES] [NO] [N/A]]
[[tgamma_ratio] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[tgamma_delta_ratio] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[gamma_p] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[gamma_q] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[tgamma_lower] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[rising_factorial] [NO] [N/A] [YES] [YES] [NO] [N/A]]
[[falling_factorial] [NO] [N/A] [YES] [YES] [NO] [N/A]]
[[beta] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[ibeta] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[ibetac] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[betac] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[ibeta_inv] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[ibetac_inv] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[ibeta_inva] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[ibetac_inva] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[ibeta_invb] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[ibetac_invb] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[ibeta_derivative] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[legendre_p] [NO] [N/A] [YES] [YES] [NO] [N/A]]
[[legendre_p_prime] [YES] [YES] [YES] [YES] [NO] [N/A]]
[[legendre_q] [NO] [N/A] [YES] [YES] [NO] [N/A]]
[[laguerre] [YES] [YES] [YES] [YES] [NO] [N/A]]
[[hermite] [YES] [YES] [YES] [YES] [NO] [N/A]]
[[chebyshev_t] [YES] [YES] [YES] [YES] [NO] [N/A]]
[[chebyshev_u] [YES] [YES] [YES] [YES] [NO] [N/A]]
[[chebyshev_t_prime] [YES] [YES] [YES] [YES] [NO] [N/A]]
[[shperical_harmonic] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[spherical_harmonic_r] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[spherical_harmonic_i] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[gegenbauer] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[gegenbauer_prime] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[gegenbauer_derivative] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[jacobi] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[jacobi_derivative] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[jacobi_prime] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[jacobi_double_prime] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[cyl_bessel_j] [NO] [N/A] [YES] [YES] [NO] [N/A]]
[[cyl_neumann] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[cyl_bessel_i] [NO] [N/A] [YES] [YES] [NO] [N/A]]
[[cyl_bessel_k] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[sph_bessel] [NO] [N/A] [YES] [YES] [NO] [N/A]]
[[sph_neumann] [NO] [N/A] [YES] [YES] [NO] [N/A]]
[[cyl_bessel_j_prime] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[cyl_neumann_prime] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[cyl_bessel_i_prime] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[cyl_bessel_k_prime] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[sph_bessel_prime] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[sph_neumann_prime] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[cyl_hankel_1] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[cyl_hankel_2] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[sph_hankel_1] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[sph_hankel_2] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[airy_ai] [NO] [N/A] [YES] [YES] [NO] [N/A]]
[[airy_bi] [NO] [N/A] [YES] [YES] [NO] [N/A]]
[[airy_ai_prime] [NO] [N/A] [YES] [YES] [NO] [N/A]]
[[airy_bi_prime] [NO] [N/A] [YES] [YES] [NO] [N/A]]
[[ellint_rf] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[ellint_rd] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[ellint_rj] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[ellint_rc] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[ellint_rg] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[ellint_1] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[ellint_2] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[ellint_3] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[ellint_d] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[jacobi_zeta] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[heuman_labda] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[jacobi_cd] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[jacobi_cn] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[jacobi_cs] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[jacobi_dc] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[jacobi_dn] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[jacobi_ds] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[jacobi_nc] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[jacobi_nd] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[jacobi_ns] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[jacobi_sc] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[jacobi_sd] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[jacobi_sn] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[jacobi_theta1] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[jacobi_theta1tau] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[jacobi_theta2] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[jacobi_theta1tau] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[jacobi_theta3] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[jacobi_theta3tau] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[jacobi_theta3m1] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[jacobi_theta3m1tau] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[jacobi_theta4] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[jacobi_theta4tau] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[jacobi_theta4m1] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[jacobi_theta4m1tau] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[lambert_w0] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[lambert_wm1] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[lambert_w0_prime] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[lambert_wm1_prime] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[zeta] [NO] [N/A] [YES] [YES] [NO] [N/A]]
[[expint] [NO] [N/A] [YES] [YES] [NO] [N/A]]
[[hypergeometric_1F0] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[hypergeometric_0F1] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[hypergeometric_2F0] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[hypergeometric_1F1] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[sin_pi] [YES] [YES] [YES] [YES] [NO] [N/A]]
[[cos_pi] [YES] [YES] [YES] [YES] [NO] [N/A]]
[[log1p] [YES] [NO] [YES] [NO] [NO] [N/A]]
[[expm1] [YES] [YES] [YES] [YES] [NO] [N/A]]
[[cbrt] [YES] [YES] [YES] [YES] [NO] [N/A]]
[[sqrt1pm1] [NO] [N/A] [YES] [YES] [NO] [N/A]]
[[powm1] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[hypot] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[rsqrt] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[logaddexp] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[logsumexp] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[sinc_pi] [YES] [YES] [YES] [YES] [NO] [N/A]]
[[sinhc_pi] [YES] [YES] [YES] [YES] [NO] [N/A]]
[[owens_t] [NO] [N/A] [NO] [N/A] [NO] [N/A]]
[[Function] [compiles with ET ON] [runs with ET ON] [compiles with ET OFF] [runs with ET OFF] [works with multiprecision] [known issues]]
[[tgamma] [True] [True] [True] [False] [False] [derivatives incorrect when argument is an integer]]
[[tgamma1pm1] [False] [N/A] [True] [False] [False] [N/A]]
[[lgamma] [True] [True] [True] [False] [False] [N/A]]
[[digamma] [True] [True] [True] [False] [False] [N/A]]
[[trigamma] [True] [True] [True] [False] [False] [N/A]]
[[polygamma] [False] [N/A] [True] [False] [False] [N/A]]
[[tgamma_ratio] [False] [N/A] [True] [False] [False] [N/A]]
[[tgamma_delta_ratio] [False] [N/A] [True] [False] [False] [N/A]]
[[gamma_p] [False] [N/A] [True] [False] [False] [N/A]]
[[gamma_q] [False] [N/A] [True] [False] [False] [N/A]]
[[tgamma_lower] [False] [N/A] [True] [False] [False] [N/A]]
[[rising_factorial] [False] [N/A] [True] [False] [False] [N/A]]
[[falling_factorial] [False] [N/A] [True] [False] [False] [N/A]]
[[beta] [False] [N/A] [True] [False] [False] [N/A]]
[[ibeta] [False] [N/A] [True] [False] [False] [N/A]]
[[ibetac] [False] [N/A] [True] [False] [False] [N/A]]
[[betac] [False] [N/A] [True] [False] [False] [N/A]]
[[ibeta_inv] [False] [N/A] [True] [False] [False] [N/A]]
[[ibetac_inv] [False] [N/A] [True] [False] [False] [N/A]]
[[ibeta_inva] [False] [N/A] [True] [False] [False] [N/A]]
[[ibetac_inva] [False] [N/A] [True] [False] [False] [N/A]]
[[ibeta_invb] [False] [N/A] [True] [False] [False] [N/A]]
[[ibetac_invb] [False] [N/A] [True] [False] [False] [N/A]]
[[ibeta_derivative] [False] [N/A] [True] [False] [False] [N/A]]
[[legendre_p] [False] [N/A] [True] [False] [False] [N/A]]
[[legendre_p_prime] [True] [True] [True] [False] [False] [N/A]]
[[legendre_q] [False] [N/A] [True] [False] [False] [N/A]]
[[laguerre] [True] [True] [True] [False] [False] [N/A]]
[[hermite] [True] [True] [True] [False] [False] [N/A]]
[[chebyshev_t] [True] [True] [True] [False] [False] [N/A]]
[[chebyshev_u] [True] [True] [True] [False] [False] [N/A]]
[[chebyshev_t_prime] [True] [True] [True] [False] [False] [N/A]]
[[spherical_harmonic] [False] [N/A] [False] [N/A] [False] [N/A]]
[[spherical_harmonic_r] [False] [N/A] [True] [False] [False] [N/A]]
[[spherical_harmonic_i] [False] [N/A] [True] [False] [False] [N/A]]
[[gegenbauer] [False] [N/A] [False] [N/A] [False] [N/A]]
[[gegenbauer_prime] [False] [N/A] [False] [N/A] [False] [N/A]]
[[gegenbauer_derivative] [False] [N/A] [False] [N/A] [False] [N/A]]
[[jacobi] [True] [True] [True] [False] [False] [N/A]]
[[jacobi_derivative] [True] [True] [True] [False] [False] [N/A]]
[[jacobi_prime] [True] [True] [True] [False] [False] [N/A]]
[[jacobi_double_prime] [True] [True] [True] [False] [False] [N/A]]
[[cyl_bessel_j] [False] [N/A] [True] [False] [False] [N/A]]
[[cyl_neumann] [False] [N/A] [True] [False] [False] [N/A]]
[[cyl_bessel_i] [False] [N/A] [True] [False] [False] [N/A]]
[[cyl_bessel_k] [False] [N/A] [True] [False] [False] [N/A]]
[[sph_bessel] [False] [N/A] [True] [False] [False] [N/A]]
[[sph_neumann] [False] [N/A] [True] [False] [False] [N/A]]
[[cyl_bessel_j_prime] [False] [N/A] [True] [False] [False] [N/A]]
[[cyl_neumann_prime] [False] [N/A] [True] [False] [False] [N/A]]
[[cyl_bessel_i_prime] [False] [N/A] [True] [False] [False] [N/A]]
[[cyl_bessel_k_prime] [False] [N/A] [True] [False] [False] [N/A]]
[[sph_bessel_prime] [False] [N/A] [False] [N/A] [False] [N/A]]
[[sph_neumann_prime] [False] [N/A] [False] [N/A] [False] [N/A]]
[[cyl_hankel_1] [False] [N/A] [False] [N/A] [False] [N/A]]
[[cyl_hankel_2] [False] [N/A] [False] [N/A] [False] [N/A]]
[[sph_hankel_1] [False] [N/A] [False] [N/A] [False] [N/A]]
[[sph_hankel_2] [False] [N/A] [False] [N/A] [False] [N/A]]
[[airy_ai] [False] [N/A] [True] [False] [False] [N/A]]
[[airy_bi] [False] [N/A] [True] [False] [False] [N/A]]
[[airy_ai_prime] [False] [N/A] [True] [False] [False] [N/A]]
[[airy_bi_prime] [False] [N/A] [True] [False] [False] [N/A]]
[[ellint_rf] [False] [N/A] [True] [False] [False] [N/A]]
[[ellint_rd] [False] [N/A] [True] [False] [False] [N/A]]
[[ellint_rj] [False] [N/A] [True] [False] [False] [N/A]]
[[ellint_rc] [False] [N/A] [True] [False] [False] [N/A]]
[[ellint_rg] [False] [N/A] [True] [False] [False] [N/A]]
[[ellint_1] [False] [N/A] [True] [False] [False] [N/A]]
[[ellint_2] [False] [N/A] [True] [False] [False] [N/A]]
[[ellint_3] [False] [N/A] [True] [False] [False] [N/A]]
[[ellint_d] [False] [N/A] [True] [False] [False] [N/A]]
[[jacobi_zeta] [False] [N/A] [True] [False] [False] [N/A]]
[[heuman_lambda] [False] [N/A] [True] [False] [False] [N/A]]
[[jacobi_cd] [True] [True] [True] [False] [False] [N/A]]
[[jacobi_cn] [True] [True] [True] [False] [False] [N/A]]
[[jacobi_cs] [True] [True] [True] [False] [False] [N/A]]
[[jacobi_dc] [True] [True] [True] [False] [False] [N/A]]
[[jacobi_dn] [True] [True] [True] [False] [False] [N/A]]
[[jacobi_ds] [True] [True] [True] [False] [False] [N/A]]
[[jacobi_nc] [True] [True] [True] [False] [False] [N/A]]
[[jacobi_nd] [True] [True] [True] [False] [False] [N/A]]
[[jacobi_ns] [True] [True] [True] [False] [False] [N/A]]
[[jacobi_sc] [True] [True] [True] [False] [False] [N/A]]
[[jacobi_sd] [True] [True] [True] [False] [False] [N/A]]
[[jacobi_sn] [True] [True] [True] [False] [False] [N/A]]
[[jacobi_theta1] [True] [True] [True] [False] [False] [N/A]]
[[jacobi_theta1tau] [True] [True] [True] [False] [False] [N/A]]
[[jacobi_theta2] [True] [True] [True] [False] [False] [N/A]]
[[jacobi_theta1tau] [True] [True] [True] [False] [False] [N/A]]
[[jacobi_theta3] [True] [True] [True] [False] [False] [N/A]]
[[jacobi_theta3tau] [True] [True] [True] [False] [False] [N/A]]
[[jacobi_theta3m1] [True] [True] [True] [False] [False] [N/A]]
[[jacobi_theta3m1tau] [True] [True] [True] [False] [False] [N/A]]
[[jacobi_theta4] [True] [True] [True] [False] [False] [N/A]]
[[jacobi_theta4tau] [True] [True] [True] [False] [False] [N/A]]
[[jacobi_theta4m1] [True] [True] [True] [False] [False] [N/A]]
[[jacobi_theta4m1tau] [True] [True] [True] [False] [False] [N/A]]
[[lambert_w0] [False] [N/A] [False] [N/A] [False] [N/A]]
[[lambert_wm1] [False] [N/A] [False] [N/A] [False] [N/A]]
[[lambert_w0_prime] [False] [N/A] [False] [N/A] [False] [N/A]]
[[lambert_wm1_prime] [False] [N/A] [False] [N/A] [False] [N/A]]
[[zeta] [False] [N/A] [True] [False] [False] [N/A]]
[[expint] [False] [N/A] [True] [False] [False] [N/A]]
[[hypergeometric_1F0] [True] [True] [True] [False] [False] [N/A]]
[[hypergeometric_0F1] [False] [N/A] [True] [False] [False] [N/A]]
[[hypergeometric_2F0] [False] [N/A] [True] [False] [False] [N/A]]
[[hypergeometric_1F1] [False] [N/A] [True] [False] [False] [N/A]]
[[sin_pi] [True] [True] [True] [False] [False] [N/A]]
[[cos_pi] [True] [True] [True] [False] [False] [N/A]]
[[log1p] [True] [True] [True] [False] [False] [N/A]]
[[expm1] [True] [True] [True] [False] [False] [N/A]]
[[cbrt] [True] [True] [True] [False] [False] [N/A]]
[[sqrt1pm1] [False] [N/A] [True] [False] [False] [N/A]]
[[powm1] [False] [N/A] [True] [False] [False] [N/A]]
[[hypot] [True] [True] [True] [False] [False] [N/A]]
[[rsqrt] [False] [N/A] [False] [N/A] [False] [N/A]]
[[logaddexp] [False] [N/A] [False] [N/A] [False] [N/A]]
[[logsumexp] [False] [N/A] [False] [N/A] [False] [N/A]]
[[sinc_pi] [True] [True] [True] [False] [False] [N/A]]
[[sinhc_pi] [True] [True] [True] [False] [False] [N/A]]
[[owens_t] [False] [N/A] [True] [False] [False] [N/A]]
]
\[/ END SPECFUN TABLE\]
[h1:expression_templates Example 1: Linear Regression]
Although autodiff is overkill for linear regression, its a useful example for demonstrating a typical gradient based optimization usecase.

File diff suppressed because it is too large Load Diff

View File

@@ -464,8 +464,7 @@ public:
}
template<typename T,
typename = typename std::enable_if<std::is_same<T, double>::value
&& !std::is_same<RealType, double>::value>::type>
typename = std::enable_if_t<is_floating_point_v<T> && !is_same_v<T, RealType>>>
rvar(T v)
: value_(inner_t{static_cast<RealType>(v)})
{

File diff suppressed because it is too large Load Diff

View File

@@ -106,4 +106,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -107,4 +107,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -107,4 +107,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -158,5 +158,5 @@ static_assert(std::is_same<RandomSample<bmp::cpp_bin_float_50>::dist_t,
template<typename T>
constexpr T boost_close_tol(T scale_factor = 1e5)
{
return std::numeric_limits<T>::epsilon() * scale_factor;
return 0.01;
}

View File

@@ -107,4 +107,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -107,4 +107,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -106,4 +106,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -106,4 +106,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -106,4 +106,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -106,4 +106,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -106,4 +106,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -106,4 +106,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -107,4 +107,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -108,4 +108,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -106,4 +106,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -106,4 +106,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -106,4 +106,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -106,4 +106,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -106,4 +106,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -106,4 +106,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -107,4 +107,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -108,4 +108,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -106,4 +106,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -106,4 +106,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -106,4 +106,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -106,4 +106,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -106,4 +106,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -106,4 +106,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -106,4 +106,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -106,4 +106,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -106,4 +106,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -106,4 +106,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -106,4 +106,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -106,4 +106,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -106,4 +106,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -106,4 +106,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -106,4 +106,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -106,4 +106,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -106,4 +106,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -106,4 +106,4 @@ int main(void)
std::cerr << "Stopped with exception: " << e.what() << std::endl;
}
return 0;
}
}

View File

@@ -0,0 +1,33 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_OFF
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
BOOST_AUTO_TEST_SUITE(test_airy_ai_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_ai, T, bin_float_types)
{
RandomSample<T> rng{ -10, 10
};
T x = rng.next();
rvar<T, 1> x_ad = x;
auto y = boost::math::airy_ai(x_ad);
auto y_expect = boost::math::airy_ai(x);
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -1,14 +1,15 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
//Distributed under the Boost Software License, Version 1.0.
//(See accompanying file LICENSE_1_0.txt or copy at
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_OFF
#include "../../test_autodiff_reverse.hpp"
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
@@ -27,3 +28,4 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_ai, T, bin_float_types)
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -1,14 +1,15 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
//Distributed under the Boost Software License, Version 1.0.
//(See accompanying file LICENSE_1_0.txt or copy at
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_OFF
#include "../../test_autodiff_reverse.hpp"
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
@@ -16,7 +17,7 @@ BOOST_AUTO_TEST_SUITE(test_airy_ai_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_ai, T, bmp::cpp_bin_float_50)
BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_ai, T, multiprecision_float_types)
{
RandomSample<T> rng{-10, 10};
T x = rng.next();
@@ -27,3 +28,4 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_ai, T, bmp::cpp_bin_float_50)
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -0,0 +1,33 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_OFF
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
BOOST_AUTO_TEST_SUITE(test_airy_ai_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_ai, T, multiprecision_float_types)
{
RandomSample<T> rng{ -10, 10
};
T x = rng.next();
rvar<T, 1> x_ad = x;
auto y = boost::math::airy_ai(x_ad);
auto y_expect = boost::math::airy_ai(x);
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -0,0 +1,33 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_ON
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
BOOST_AUTO_TEST_SUITE(test_airy_ai_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_ai, T, bin_float_types)
{
RandomSample<T> rng{ -10, 10
};
T x = rng.next();
rvar<T, 1> x_ad = x;
auto y = boost::math::airy_ai(x_ad);
auto y_expect = boost::math::airy_ai(x);
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -1,14 +1,15 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
//Distributed under the Boost Software License, Version 1.0.
//(See accompanying file LICENSE_1_0.txt or copy at
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_ON
#include "../../test_autodiff_reverse.hpp"
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
@@ -27,3 +28,4 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_ai, T, bin_float_types)
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -1,14 +1,15 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
//Distributed under the Boost Software License, Version 1.0.
//(See accompanying file LICENSE_1_0.txt or copy at
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_ON
#include "../../test_autodiff_reverse.hpp"
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
@@ -16,7 +17,7 @@ BOOST_AUTO_TEST_SUITE(test_airy_ai_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_ai, T, bmp::cpp_bin_float_50)
BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_ai, T, multiprecision_float_types)
{
RandomSample<T> rng{-10, 10};
T x = rng.next();
@@ -27,3 +28,4 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_ai, T, bmp::cpp_bin_float_50)
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -0,0 +1,33 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_ON
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
BOOST_AUTO_TEST_SUITE(test_airy_ai_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_ai, T, multiprecision_float_types)
{
RandomSample<T> rng{ -10, 10
};
T x = rng.next();
rvar<T, 1> x_ad = x;
auto y = boost::math::airy_ai(x_ad);
auto y_expect = boost::math::airy_ai(x);
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -0,0 +1,33 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_OFF
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
BOOST_AUTO_TEST_SUITE(test_airy_ai_prime_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_ai_prime, T, bin_float_types)
{
RandomSample<T> rng{ -1, 1
};
T x = rng.next();
rvar<T, 1> x_ad = x;
auto y = boost::math::airy_ai_prime(x_ad);
auto y_expect = boost::math::airy_ai_prime(x);
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -1,14 +1,15 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
//Distributed under the Boost Software License, Version 1.0.
//(See accompanying file LICENSE_1_0.txt or copy at
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_OFF
#include "../../test_autodiff_reverse.hpp"
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
@@ -27,3 +28,4 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_ai_prime, T, bin_float_types)
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -1,14 +1,15 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
//Distributed under the Boost Software License, Version 1.0.
//(See accompanying file LICENSE_1_0.txt or copy at
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_OFF
#include "../../test_autodiff_reverse.hpp"
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
@@ -16,7 +17,7 @@ BOOST_AUTO_TEST_SUITE(test_airy_ai_prime_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_ai_prime, T, bmp::cpp_bin_float_50)
BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_ai_prime, T, multiprecision_float_types)
{
RandomSample<T> rng{-1, 1};
T x = rng.next();
@@ -27,3 +28,4 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_ai_prime, T, bmp::cpp_bin_float_50)
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -0,0 +1,33 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_OFF
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
BOOST_AUTO_TEST_SUITE(test_airy_ai_prime_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_ai_prime, T, multiprecision_float_types)
{
RandomSample<T> rng{ -1, 1
};
T x = rng.next();
rvar<T, 1> x_ad = x;
auto y = boost::math::airy_ai_prime(x_ad);
auto y_expect = boost::math::airy_ai_prime(x);
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -0,0 +1,33 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_ON
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
BOOST_AUTO_TEST_SUITE(test_airy_ai_prime_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_ai_prime, T, bin_float_types)
{
RandomSample<T> rng{ -1, 1
};
T x = rng.next();
rvar<T, 1> x_ad = x;
auto y = boost::math::airy_ai_prime(x_ad);
auto y_expect = boost::math::airy_ai_prime(x);
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -1,14 +1,15 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
//Distributed under the Boost Software License, Version 1.0.
//(See accompanying file LICENSE_1_0.txt or copy at
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_ON
#include "../../test_autodiff_reverse.hpp"
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
@@ -27,3 +28,4 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_ai_prime, T, bin_float_types)
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -1,14 +1,15 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
//Distributed under the Boost Software License, Version 1.0.
//(See accompanying file LICENSE_1_0.txt or copy at
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_ON
#include "../../test_autodiff_reverse.hpp"
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
@@ -16,7 +17,7 @@ BOOST_AUTO_TEST_SUITE(test_airy_ai_prime_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_ai_prime, T, bmp::cpp_bin_float_50)
BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_ai_prime, T, multiprecision_float_types)
{
RandomSample<T> rng{-1, 1};
T x = rng.next();
@@ -27,3 +28,4 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_ai_prime, T, bmp::cpp_bin_float_50)
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -0,0 +1,33 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_ON
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
BOOST_AUTO_TEST_SUITE(test_airy_ai_prime_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_ai_prime, T, multiprecision_float_types)
{
RandomSample<T> rng{ -1, 1
};
T x = rng.next();
rvar<T, 1> x_ad = x;
auto y = boost::math::airy_ai_prime(x_ad);
auto y_expect = boost::math::airy_ai_prime(x);
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -0,0 +1,33 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_OFF
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
BOOST_AUTO_TEST_SUITE(test_airy_bi_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_bi, T, bin_float_types)
{
RandomSample<T> rng{ -10, 10
};
T x = rng.next();
rvar<T, 1> x_ad = x;
auto y = boost::math::airy_bi(x_ad);
auto y_expect = boost::math::airy_bi(x);
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -1,14 +1,15 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
//Distributed under the Boost Software License, Version 1.0.
//(See accompanying file LICENSE_1_0.txt or copy at
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_OFF
#include "../../test_autodiff_reverse.hpp"
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
@@ -27,3 +28,4 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_bi, T, bin_float_types)
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -1,14 +1,15 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
//Distributed under the Boost Software License, Version 1.0.
//(See accompanying file LICENSE_1_0.txt or copy at
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_OFF
#include "../../test_autodiff_reverse.hpp"
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
@@ -16,7 +17,7 @@ BOOST_AUTO_TEST_SUITE(test_airy_bi_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_bi, T, bmp::cpp_bin_float_50)
BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_bi, T, multiprecision_float_types)
{
RandomSample<T> rng{-10, 10};
T x = rng.next();
@@ -27,3 +28,4 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_bi, T, bmp::cpp_bin_float_50)
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -0,0 +1,33 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_OFF
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
BOOST_AUTO_TEST_SUITE(test_airy_bi_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_bi, T, multiprecision_float_types)
{
RandomSample<T> rng{ -10, 10
};
T x = rng.next();
rvar<T, 1> x_ad = x;
auto y = boost::math::airy_bi(x_ad);
auto y_expect = boost::math::airy_bi(x);
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -0,0 +1,33 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_ON
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
BOOST_AUTO_TEST_SUITE(test_airy_bi_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_bi, T, bin_float_types)
{
RandomSample<T> rng{ -10, 10
};
T x = rng.next();
rvar<T, 1> x_ad = x;
auto y = boost::math::airy_bi(x_ad);
auto y_expect = boost::math::airy_bi(x);
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -1,14 +1,15 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
//Distributed under the Boost Software License, Version 1.0.
//(See accompanying file LICENSE_1_0.txt or copy at
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_ON
#include "../../test_autodiff_reverse.hpp"
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
@@ -27,3 +28,4 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_bi, T, bin_float_types)
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -1,14 +1,15 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
//Distributed under the Boost Software License, Version 1.0.
//(See accompanying file LICENSE_1_0.txt or copy at
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_ON
#include "../../test_autodiff_reverse.hpp"
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
@@ -16,7 +17,7 @@ BOOST_AUTO_TEST_SUITE(test_airy_bi_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_bi, T, bmp::cpp_bin_float_50)
BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_bi, T, multiprecision_float_types)
{
RandomSample<T> rng{-10, 10};
T x = rng.next();
@@ -27,3 +28,4 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_bi, T, bmp::cpp_bin_float_50)
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -0,0 +1,33 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_ON
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
BOOST_AUTO_TEST_SUITE(test_airy_bi_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_bi, T, multiprecision_float_types)
{
RandomSample<T> rng{ -10, 10
};
T x = rng.next();
rvar<T, 1> x_ad = x;
auto y = boost::math::airy_bi(x_ad);
auto y_expect = boost::math::airy_bi(x);
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -0,0 +1,33 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_OFF
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
BOOST_AUTO_TEST_SUITE(test_airy_bi_prime_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_bi_prime, T, bin_float_types)
{
RandomSample<T> rng{ -5, 0
};
T x = rng.next();
rvar<T, 1> x_ad = x;
auto y = boost::math::airy_bi_prime(x_ad);
auto y_expect = boost::math::airy_bi_prime(x);
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -1,14 +1,15 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
//Distributed under the Boost Software License, Version 1.0.
//(See accompanying file LICENSE_1_0.txt or copy at
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_OFF
#include "../../test_autodiff_reverse.hpp"
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
@@ -27,3 +28,4 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_bi_prime, T, bin_float_types)
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -1,14 +1,15 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
//Distributed under the Boost Software License, Version 1.0.
//(See accompanying file LICENSE_1_0.txt or copy at
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_OFF
#include "../../test_autodiff_reverse.hpp"
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
@@ -16,7 +17,7 @@ BOOST_AUTO_TEST_SUITE(test_airy_bi_prime_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_bi_prime, T, bmp::cpp_bin_float_50)
BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_bi_prime, T, multiprecision_float_types)
{
RandomSample<T> rng{-5, 0};
T x = rng.next();
@@ -27,3 +28,4 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_bi_prime, T, bmp::cpp_bin_float_50)
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -0,0 +1,33 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_OFF
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
BOOST_AUTO_TEST_SUITE(test_airy_bi_prime_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_bi_prime, T, multiprecision_float_types)
{
RandomSample<T> rng{ -5, 0
};
T x = rng.next();
rvar<T, 1> x_ad = x;
auto y = boost::math::airy_bi_prime(x_ad);
auto y_expect = boost::math::airy_bi_prime(x);
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -0,0 +1,33 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_ON
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
BOOST_AUTO_TEST_SUITE(test_airy_bi_prime_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_bi_prime, T, bin_float_types)
{
RandomSample<T> rng{ -5, 0
};
T x = rng.next();
rvar<T, 1> x_ad = x;
auto y = boost::math::airy_bi_prime(x_ad);
auto y_expect = boost::math::airy_bi_prime(x);
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -1,14 +1,15 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
//Distributed under the Boost Software License, Version 1.0.
//(See accompanying file LICENSE_1_0.txt or copy at
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_ON
#include "../../test_autodiff_reverse.hpp"
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
@@ -27,3 +28,4 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_bi_prime, T, bin_float_types)
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -1,14 +1,15 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
//Distributed under the Boost Software License, Version 1.0.
//(See accompanying file LICENSE_1_0.txt or copy at
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_ON
#include "../../test_autodiff_reverse.hpp"
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
@@ -16,7 +17,7 @@ BOOST_AUTO_TEST_SUITE(test_airy_bi_prime_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_bi_prime, T, bmp::cpp_bin_float_50)
BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_bi_prime, T, multiprecision_float_types)
{
RandomSample<T> rng{-5, 0};
T x = rng.next();
@@ -27,3 +28,4 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_bi_prime, T, bmp::cpp_bin_float_50)
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -0,0 +1,33 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_ON
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
BOOST_AUTO_TEST_SUITE(test_airy_bi_prime_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_airy_bi_prime, T, multiprecision_float_types)
{
RandomSample<T> rng{ -5, 0
};
T x = rng.next();
rvar<T, 1> x_ad = x;
auto y = boost::math::airy_bi_prime(x_ad);
auto y_expect = boost::math::airy_bi_prime(x);
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -0,0 +1,222 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# boost-no-inspect
# Copyright Maksym Zhelyeznyakov 2025-2026
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# https://www.boost.org/LICENSE_1_0.txt)
#
import sys, os, subprocess
import logging
import re
from pathlib import Path
TEST_FOLDER="./"
SPECFUN_LIST=f"{TEST_FOLDER}specfun_list.txt"
CC="g++"
CPPFLAGS="--std=c++23"
CWD=os.getcwd()
BOOST_ROOT_DIR=f"{CWD}/../../../../"
BOOST_MATH_DIR=f"{BOOST_ROOT_DIR}/libs/math/"
BOOST_MATH_TEST_DIR=f"{BOOST_MATH_DIR}/test/"
INCLUDE_FLAGS=f"-I{BOOST_MATH_DIR}/include/ -I{BOOST_ROOT_DIR} -I{BOOST_MATH_TEST_DIR}"
COMPILATION_TABLE=f"{BOOST_ROOT_DIR}/libs/math/doc/differentiation/compilation_table.txt"
LOG_FILE=f"{CWD}/autogen.log"
LOG_FILE_VERBOSE=f"{CWD}/autogen_verbose.log"
JAM_COMPILE_COMMANDS_OUT="generated_jam_compile_commands.txt"
DOC_FILE = f"{CWD}/../../doc/differentiation/autodiff_reverse.qbk"
logger = logging.getLogger("my_logger")
logger.setLevel(logging.INFO)
file_handler = logging.FileHandler(f"{LOG_FILE}", mode="w")
file_handler.setLevel(logging.INFO)
console_handler = logging.StreamHandler(sys.stdout)
console_handler.setLevel(logging.INFO)
formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")
file_handler.setFormatter(formatter)
console_handler.setFormatter(formatter)
logger.addHandler(file_handler)
logger.addHandler(console_handler)
logger2 = logging.getLogger("logger2")
logger2.setLevel(logging.INFO)
file_handler2 = logging.FileHandler(f"{LOG_FILE_VERBOSE}", mode="w")
file_handler2.setLevel(logging.INFO)
formatter2 = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")
file_handler2.setFormatter(formatter2)
logger2.addHandler(file_handler2)
def generate_boost_test(func_sig,
et_str,
type_str,
min_val,
max_val,
cpp_file_dir):
func_name = func_sig.split("(")[0] # extract base function name
filestr = f"""
// Copyright Maksym Zhelyeznyakov 2025-2026
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_{et_str}
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
BOOST_AUTO_TEST_SUITE(test_{func_name}_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_{func_name}, T, {type_str})
{{
RandomSample<T> rng{{ {min_val}, {max_val} }};
T x = rng.next();
rvar<T, 1> x_ad = x;
auto y = boost::math::{func_sig.replace("arg", "x_ad")};
auto y_expect = boost::math::{func_sig.replace("arg", "x")};
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}}
BOOST_AUTO_TEST_SUITE_END()
"""
cpp_file_sig = f"test_reverse_mode_autodiff_{func_name}_compile_test_ET_{et_str}_{type_str}.cpp"
cpp_file_loc = f"{cpp_file_dir}/{cpp_file_sig}"
with open(cpp_file_loc,"w") as cpp_file:
cpp_file.write(filestr)
return cpp_file_loc
def compile_cpp_file(filename):
base_file_name = filename.split("/")[-1]
file_name_no_ext = base_file_name.split(".")[0]
program_name = f"/tmp/{file_name_no_ext}"
clean_up_command = f"rm {program_name}"
compile_command = f"{CC} -o {program_name} {CPPFLAGS} {INCLUDE_FLAGS} -lboost_unit_test_framework {filename}"
logger.info("cleaning up old executable")
result_clean_up = subprocess.run(clean_up_command,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
logger.info(f"attempting to compile {filename}")
result_compile = subprocess.run(compile_command,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
if result_compile.returncode == 0:
logger.info(f"successfully compiled {filename}")
return program_name, True
else:
logger.info(f"{filename} does not compile")
logger2.error(f"{result_compile.stderr}")
return program_name, False
if __name__=="__main__":
bin_floats="bin_float_types"
mp_type="multiprecision_float_types"
floats_to_test = {
"cpp_types" : bin_floats,
"mp_types" : mp_type
}
compile_table_file = open(COMPILATION_TABLE, "w")
jam_compile_commands = open(JAM_COMPILE_COMMANDS_OUT,"w")
jam_compile_commands.write("test-suite autodiff-long-running-tests\n")
jam_compile_commands.write(" :\n")
compile_table_file.write("[table\n[[Function]\t[compiles with ET ON]\t[runs with ET ON]\t[compiles with ET OFF] \t[runs with ET OFF]\t[works with multiprecision]\t[known issues]]\n")
with open(SPECFUN_LIST,"r") as specfun_file:
for line in specfun_file:
if not line.count("#"):
logger.info(line)
split_str = line.split("\t")
group, func_sig, minval, maxval = split_str[0], split_str[1], split_str[2], split_str[3]
func_name = func_sig.split("(")[0]
if not os.path.exists(group):
os.makedirs(group)
filename_et_on_cpp = generate_boost_test(func_sig, "ON", floats_to_test["cpp_types"], minval, maxval, group)
filename_et_off_cpp = generate_boost_test(func_sig, "OFF", floats_to_test["cpp_types"], minval, maxval, group)
filename_et_on_mp = generate_boost_test(func_sig, "ON", floats_to_test["mp_types"], minval, maxval, group)
filename_et_off_mp = generate_boost_test(func_sig, "OFF", floats_to_test["mp_types"], minval, maxval, group)
et_on_cpp_program, et_on_cpp_compiles = compile_cpp_file(filename_et_on_cpp)
et_off_cpp_program, et_off_cpp_compiles = compile_cpp_file(filename_et_off_cpp)
et_on_mp_program, et_on_mp_compiles = compile_cpp_file(filename_et_on_mp)
et_off_mp_program, et_off_mp_compiles = compile_cpp_file(filename_et_off_mp)
et_on_cpp_runs = "N/A"
et_off_cpp_runs = "N/A"
et_on_mp_runs = "N/A"
et_off_mp_runs = "N/A"
if et_on_cpp_compiles:
run_info = subprocess.run(f"{et_on_cpp_program}",shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
if not run_info.returncode:
logger.info(f"{filename_et_on_cpp} ran successfully")
et_on_cpp_runs = "True"
jam_compile_commands.write(f" [ run test_reverse_mode_autodiff_special_functions_compile/{filename_et_on_cpp} ]\n")
else:
logger.error(f"{filename_et_on_cpp} failed to run")
et_on_cpp_runs = "False"
jam_compile_commands.write(f" [ run-fail test_reverse_mode_autodiff_special_functions_compile/{filename_et_on_cpp} ]\n")
else:
jam_compile_commands.write(f" [ compile-fail test_reverse_mode_autodiff_special_functions_compile/{filename_et_on_cpp} ]\n")
if et_off_cpp_compiles:
run_info = subprocess.run(f"{et_off_cpp_program}",shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
if not run_info.returncode:
logger.info(f"{filename_et_off_cpp} ran successfully")
et_off_cpp_runs = "True"
jam_compile_commands.write(f" [ run test_reverse_mode_autodiff_special_functions_compile/{filename_et_off_cpp} ]\n")
if not run_info.returncode:
logger.error(f"{filename_et_off_cpp} failed to run")
et_off_cpp_runs = "False"
jam_compile_commands.write(f" [ run-fail test_reverse_mode_autodiff_special_functions_compile/{filename_et_off_cpp} ]\n")
else:
jam_compile_commands.write(f" [ compile-fail test_reverse_mode_autodiff_special_functions_compile/{filename_et_off_cpp} ]\n")
if et_on_mp_compiles:
run_info = subprocess.run(f"{et_on_mp_program}",shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
if not run_info.returncode:
logger.info(f"{filename_et_on_mp} ran successfully")
et_on_mp_runs = True
jam_compile_commands.write(f" [ run test_reverse_mode_autodiff_special_functions_compile/{filename_et_on_mp} ]\n")
else:
logger.info(f"{filename_et_on_mp} failed to run")
et_on_mp_runs = False
jam_compile_commands.write(f" [ run-fail test_reverse_mode_autodiff_special_functions_compile/{filename_et_on_mp} ]\n")
else:
jam_compile_commands.write(f" [ compile-fail test_reverse_mode_autodiff_special_functions_compile/{filename_et_on_mp} ]\n")
if et_off_mp_compiles:
run_info = subprocess.run(f"{et_off_mp_program}",shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
if not run_info.returncode:
logger.info(f"{filename_et_off_mp} ran successfully")
et_off_mp_runs = True
jam_compile_commands.write(f" [ run test_reverse_mode_autodiff_special_functions_compile/{filename_et_off_mp} ]\n")
if not run_info.returncode:
logger.error(f"{filename_et_off_mp} failed to run")
et_off_mp_runs = False
jam_compile_commands.write(f" [ run-fail test_reverse_mode_autodiff_special_functions_compile/{filename_et_off_mp} ]\n")
else:
jam_compile_commands.write(f" [ compile-fail test_reverse_mode_autodiff_special_functions_compile/{filename_et_off_mp} ]\n")
works_with_mp = et_on_mp_compiles and et_on_mp_runs and et_off_mp_compiles and et_off_mp_runs
works_with_mp_str = ""
if works_with_mp:
works_with_mp_str = "True"
else:
works_with_mp = "False"
compile_table_file.write(f"[[{func_name}]\t[{et_on_cpp_compiles}]\t[{et_on_cpp_runs}]\t[{et_off_cpp_compiles}]\t[{et_off_cpp_runs}]\t[{works_with_mp}]\t[N/A]]\n")
compile_table_file.write(
"""]"""
)
jam_compile_commands.write(" ;")
compile_table_file.close()
jam_compile_commands.close()

View File

@@ -1,158 +0,0 @@
#!/bin/bash
# Copyright Maksym Zhelyeznyakov 2025-2026
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# https://www.boost.org/LICENSE_1_0.txt)
TEST_FOLDER="./"
SPECFUN_LIST="${TEST_FOLDER}specfun_list.txt"
CC="g++"
CPPFLAGS="--std=c++14"
CWD=$(pwd)
BOOST_ROOT_DIR="$CWD/../../../../"
BOOST_MATH_DIR="$BOOST_ROOT_DIR/libs/math/"
BOOST_MATH_TEST_DIR="$BOOST_MATH_DIR/test/"
INCLUDE_FLAGS="-I$BOOST_MATH_DIR/include/ -I$BOOST_ROOT_DIR -I$BOOST_MATH_TEST_DIR"
LOG_FILE="$BOOST_ROOT_DIR/libs/math/doc/differentiation/compilation_table.txt"
echo "current working direcotry $CWD"
echo "boost root $BOOST_ROOT_DIR"
echo "math test dir $BOOST_MATH_TEST_DIR"
echo "include flags $INCLUDE_FLAGS"
generate_boost_test() {
local func_sig="$1"
local et_str="$2"
local type_str="$3"
local func_name=$(echo "$func_sig" | cut -d'(' -f1)
local min_val="$4"
local max_val="$5"
cat <<EOF
// Copyright Maksym Zhelyeznyakov 2025-2026
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_${et_str}
#include "../../test_autodiff_reverse.hpp"
#include <boost/math/special_functions.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
BOOST_AUTO_TEST_SUITE(test_${func_name}_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_${func_name}, T, ${type_str})
{
RandomSample<T> rng{${min_val}, ${max_val}};
T x = rng.next();
rvar<T, 1> x_ad = x;
auto y = boost::math::${func_sig/arg/x_ad};
auto y_expect = boost::math::${func_sig/arg/x};
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()
EOF
}
JAM_COMPILE_COMMANDS_OUT="generated_jam_compile_commands.txt" # "$BOOST_ROOT_DIR/libs/math/doc/differentiation/generated_jam_compile_commands.txt"
echo "# Autogenerated Jamfile test entries" >> "$JAM_COMPILE_COMMANDS_OUT"
test_and_get_result() {
local func_name="$1"
local et_str="$2"
local float_type="$3"
local function_group="$4"
local func_sig="$5"
local min_val="$6"
local max_val="$7"
local outfilename="${TEST_FOLDER}${function_group}/test_reverse_mode_autodiff_${func_name}_compile_test_ET_${et_str}_${float_type}.cpp"
local temp_executable="/tmp/test_reverse_mode_autodiff_${func_name}_ET_${et_str}_${float_type}"
generate_boost_test "$func_sig" "$et_str" "${floats_to_test[$float_type]}" "$min_val" "$max_val" > "$outfilename"
$CC -o "$temp_executable" $CPPFLAGS $INCLUDE_FLAGS -lboost_unit_test_framework "$outfilename" &>/dev/null
local compile_status=$?
local jam_cmd=""
if [ $compile_status -eq 0 ]; then
"$temp_executable" &>/dev/null
local run_status=$?
if [ $run_status -eq 0 ]; then
echo "YES]\t[YES"
jam_cmd="[ run ${outfilename} ]"
else
echo "YES]\t[NO"
jam_cmd="[ run-fail ${outfilename} ]"
fi
else
echo "NO]\t[N/A"
jam_cmd="[ compile-fail ${outfilename} ]"
fi
# Append Jamfile command
echo "$jam_cmd" >> "$JAM_COMPILE_COMMANDS_OUT"
}
echo -e "[table\n
[[Function]\t[compiles with ET ON]\t[runs with ET ON]\t[compiles with ET OFF]\t[runs with ET OFF]\t[works with multiprecision]\t[known issues]]\n" > "$LOG_FILE"
# Check if the list file exists
if [[ ! -f "$SPECFUN_LIST" ]]; then
echo "Error: ${SPECFUN_LIST} not found!"
exit 1
fi
# Define float types to test using an associative array
bin_floats="bin_float_types"
mp_type="bmp::cpp_bin_float_50"
declare -A floats_to_test
floats_to_test["cpp_types"]="${bin_floats}"
floats_to_test["mp_types"]="${mp_type}"
# Skip the header (first line) and read the list of special functions line by line.
# The `IFS=$'\t'` ensures that the fields are split by a tab character.
tail -n +2 "$SPECFUN_LIST" | grep -v '^[[:space:]]*#' | while IFS=$'\t' read -r function_group specfun min_val max_val; do
# Create the directory if it doesn't exist
if [[ ! -d "${TEST_FOLDER}${function_group}" ]]; then
mkdir -p "${TEST_FOLDER}${function_group}"
fi
func_name=$(echo "$specfun" | cut -d'(' -f1)
# Run tests for standard C++ types
cpp_et_on_result=$(test_and_get_result "$func_name" "ON" "cpp_types" "$function_group" "$specfun" "$min_val" "$max_val")
cpp_et_off_result=$(test_and_get_result "$func_name" "OFF" "cpp_types" "$function_group" "$specfun" "$min_val" "$max_val")
# Run tests for multiprecision types
mp_et_on_result=$(test_and_get_result "$func_name" "ON" "mp_types" "$function_group" "$specfun" "$min_val" "$max_val")
mp_et_off_result=$(test_and_get_result "$func_name" "OFF" "mp_types" "$function_group" "$specfun" "$min_val" "$max_val")
# Determine the "works with multiprecision" column value
mp_status="NO"
if [[ "$mp_et_on_result" == *"PASS"* ]]; then
mp_status="with ET ON"
if [[ "$mp_et_off_result" == *"PASS"* ]]; then
mp_status="with ET ON, with ET OFF"
fi
elif [[ "$mp_et_off_result" == *"PASS"* ]]; then
mp_status="with ET OFF"
fi
# Append the completed line to the log file
func_name=$(echo "$specfun" | cut -d'(' -f1)
known_issues_status="N/A"
if [[ "$func_name" == "[tgamma]" ]]; then
known_issues_status="derivative incorrect at integer arguments"
fi
# Append the completed line to the log file
echo -e "[[$func_name]\t[${cpp_et_on_result}]\t[${cpp_et_off_result}]\t[${mp_status}]\t[${known_issues_status}]]" >> "$LOG_FILE"
done
echo -e "]" >> "$LOG_FILE"

View File

@@ -0,0 +1,33 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_OFF
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
BOOST_AUTO_TEST_SUITE(test_cbrt_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_cbrt, T, bin_float_types)
{
RandomSample<T> rng{ 0, 10
};
T x = rng.next();
rvar<T, 1> x_ad = x;
auto y = boost::math::cbrt(x_ad);
auto y_expect = boost::math::cbrt(x);
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -1,14 +1,15 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
//Distributed under the Boost Software License, Version 1.0.
//(See accompanying file LICENSE_1_0.txt or copy at
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_OFF
#include "../../test_autodiff_reverse.hpp"
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
@@ -18,7 +19,7 @@ using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_cbrt, T, bin_float_types)
{
RandomSample<T> rng{-10, 10};
RandomSample<T> rng{0, 10};
T x = rng.next();
rvar<T, 1> x_ad = x;
@@ -27,3 +28,4 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(test_cbrt, T, bin_float_types)
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -1,14 +1,15 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
//Distributed under the Boost Software License, Version 1.0.
//(See accompanying file LICENSE_1_0.txt or copy at
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_OFF
#include "../../test_autodiff_reverse.hpp"
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
@@ -16,9 +17,9 @@ BOOST_AUTO_TEST_SUITE(test_cbrt_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_cbrt, T, bmp::cpp_bin_float_50)
BOOST_AUTO_TEST_CASE_TEMPLATE(test_cbrt, T, multiprecision_float_types)
{
RandomSample<T> rng{-10, 10};
RandomSample<T> rng{0, 10};
T x = rng.next();
rvar<T, 1> x_ad = x;
@@ -27,3 +28,4 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(test_cbrt, T, bmp::cpp_bin_float_50)
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -0,0 +1,33 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_OFF
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
BOOST_AUTO_TEST_SUITE(test_cbrt_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_cbrt, T, multiprecision_float_types)
{
RandomSample<T> rng{ 0, 10
};
T x = rng.next();
rvar<T, 1> x_ad = x;
auto y = boost::math::cbrt(x_ad);
auto y_expect = boost::math::cbrt(x);
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -0,0 +1,33 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_ON
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
BOOST_AUTO_TEST_SUITE(test_cbrt_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_cbrt, T, bin_float_types)
{
RandomSample<T> rng{ 0, 10
};
T x = rng.next();
rvar<T, 1> x_ad = x;
auto y = boost::math::cbrt(x_ad);
auto y_expect = boost::math::cbrt(x);
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -1,14 +1,15 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
//Distributed under the Boost Software License, Version 1.0.
//(See accompanying file LICENSE_1_0.txt or copy at
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_ON
#include "../../test_autodiff_reverse.hpp"
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
@@ -18,7 +19,7 @@ using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_cbrt, T, bin_float_types)
{
RandomSample<T> rng{-10, 10};
RandomSample<T> rng{0, 10};
T x = rng.next();
rvar<T, 1> x_ad = x;
@@ -27,3 +28,4 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(test_cbrt, T, bin_float_types)
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -1,14 +1,15 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
//Distributed under the Boost Software License, Version 1.0.
//(See accompanying file LICENSE_1_0.txt or copy at
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_ON
#include "../../test_autodiff_reverse.hpp"
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
@@ -16,9 +17,9 @@ BOOST_AUTO_TEST_SUITE(test_cbrt_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_cbrt, T, bmp::cpp_bin_float_50)
BOOST_AUTO_TEST_CASE_TEMPLATE(test_cbrt, T, multiprecision_float_types)
{
RandomSample<T> rng{-10, 10};
RandomSample<T> rng{0, 10};
T x = rng.next();
rvar<T, 1> x_ad = x;
@@ -27,3 +28,4 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(test_cbrt, T, bmp::cpp_bin_float_50)
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -0,0 +1,33 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_ON
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
BOOST_AUTO_TEST_SUITE(test_cbrt_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_cbrt, T, multiprecision_float_types)
{
RandomSample<T> rng{ 0, 10
};
T x = rng.next();
rvar<T, 1> x_ad = x;
auto y = boost::math::cbrt(x_ad);
auto y_expect = boost::math::cbrt(x);
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -0,0 +1,33 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_OFF
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
BOOST_AUTO_TEST_SUITE(test_cos_pi_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_cos_pi, T, bin_float_types)
{
RandomSample<T> rng{ -10, 10
};
T x = rng.next();
rvar<T, 1> x_ad = x;
auto y = boost::math::cos_pi(x_ad);
auto y_expect = boost::math::cos_pi(x);
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -1,14 +1,15 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
//Distributed under the Boost Software License, Version 1.0.
//(See accompanying file LICENSE_1_0.txt or copy at
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_OFF
#include "../../test_autodiff_reverse.hpp"
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
@@ -27,3 +28,4 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(test_cos_pi, T, bin_float_types)
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -1,14 +1,15 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
//Distributed under the Boost Software License, Version 1.0.
//(See accompanying file LICENSE_1_0.txt or copy at
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_OFF
#include "../../test_autodiff_reverse.hpp"
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
@@ -16,7 +17,7 @@ BOOST_AUTO_TEST_SUITE(test_cos_pi_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_cos_pi, T, bmp::cpp_bin_float_50)
BOOST_AUTO_TEST_CASE_TEMPLATE(test_cos_pi, T, multiprecision_float_types)
{
RandomSample<T> rng{-10, 10};
T x = rng.next();
@@ -27,3 +28,4 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(test_cos_pi, T, bmp::cpp_bin_float_50)
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -0,0 +1,33 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_OFF
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
BOOST_AUTO_TEST_SUITE(test_cos_pi_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_cos_pi, T, multiprecision_float_types)
{
RandomSample<T> rng{ -10, 10
};
T x = rng.next();
rvar<T, 1> x_ad = x;
auto y = boost::math::cos_pi(x_ad);
auto y_expect = boost::math::cos_pi(x);
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -0,0 +1,33 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_ON
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
BOOST_AUTO_TEST_SUITE(test_cos_pi_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_cos_pi, T, bin_float_types)
{
RandomSample<T> rng{ -10, 10
};
T x = rng.next();
rvar<T, 1> x_ad = x;
auto y = boost::math::cos_pi(x_ad);
auto y_expect = boost::math::cos_pi(x);
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -1,14 +1,15 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
//Distributed under the Boost Software License, Version 1.0.
//(See accompanying file LICENSE_1_0.txt or copy at
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_ON
#include "../../test_autodiff_reverse.hpp"
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
@@ -27,3 +28,4 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(test_cos_pi, T, bin_float_types)
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -1,14 +1,15 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
//Distributed under the Boost Software License, Version 1.0.
//(See accompanying file LICENSE_1_0.txt or copy at
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_ON
#include "../../test_autodiff_reverse.hpp"
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
@@ -16,7 +17,7 @@ BOOST_AUTO_TEST_SUITE(test_cos_pi_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_cos_pi, T, bmp::cpp_bin_float_50)
BOOST_AUTO_TEST_CASE_TEMPLATE(test_cos_pi, T, multiprecision_float_types)
{
RandomSample<T> rng{-10, 10};
T x = rng.next();
@@ -27,3 +28,4 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(test_cos_pi, T, bmp::cpp_bin_float_50)
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -0,0 +1,33 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_ON
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
BOOST_AUTO_TEST_SUITE(test_cos_pi_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_cos_pi, T, multiprecision_float_types)
{
RandomSample<T> rng{ -10, 10
};
T x = rng.next();
rvar<T, 1> x_ad = x;
auto y = boost::math::cos_pi(x_ad);
auto y_expect = boost::math::cos_pi(x);
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -0,0 +1,33 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_OFF
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
BOOST_AUTO_TEST_SUITE(test_expm1_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_expm1, T, bin_float_types)
{
RandomSample<T> rng{ -10, 10
};
T x = rng.next();
rvar<T, 1> x_ad = x;
auto y = boost::math::expm1(x_ad);
auto y_expect = boost::math::expm1(x);
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -1,14 +1,15 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
//Distributed under the Boost Software License, Version 1.0.
//(See accompanying file LICENSE_1_0.txt or copy at
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_OFF
#include "../../test_autodiff_reverse.hpp"
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
@@ -27,3 +28,4 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(test_expm1, T, bin_float_types)
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -1,14 +1,15 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
//Distributed under the Boost Software License, Version 1.0.
//(See accompanying file LICENSE_1_0.txt or copy at
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_OFF
#include "../../test_autodiff_reverse.hpp"
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
@@ -16,7 +17,7 @@ BOOST_AUTO_TEST_SUITE(test_expm1_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_expm1, T, bmp::cpp_bin_float_50)
BOOST_AUTO_TEST_CASE_TEMPLATE(test_expm1, T, multiprecision_float_types)
{
RandomSample<T> rng{-10, 10};
T x = rng.next();
@@ -27,3 +28,4 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(test_expm1, T, bmp::cpp_bin_float_50)
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -0,0 +1,33 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_OFF
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
BOOST_AUTO_TEST_SUITE(test_expm1_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_expm1, T, multiprecision_float_types)
{
RandomSample<T> rng{ -10, 10
};
T x = rng.next();
rvar<T, 1> x_ad = x;
auto y = boost::math::expm1(x_ad);
auto y_expect = boost::math::expm1(x);
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -0,0 +1,33 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_ON
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
BOOST_AUTO_TEST_SUITE(test_expm1_compiles)
using namespace rdiff;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_expm1, T, bin_float_types)
{
RandomSample<T> rng{ -10, 10
};
T x = rng.next();
rvar<T, 1> x_ad = x;
auto y = boost::math::expm1(x_ad);
auto y_expect = boost::math::expm1(x);
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

View File

@@ -1,14 +1,15 @@
// Copyright Maksym Zhelyeznyakov 2025-2026
//Distributed under the Boost Software License, Version 1.0.
//(See accompanying file LICENSE_1_0.txt or copy at
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//
// This file was generated automatically with math/tests/autogen_rvar_specfun_tests.sh
// DO NOT EDIT MANUALLY
#define BOOST_MATH_REVERSE_MODE_ET_ON
#include "../../test_autodiff_reverse.hpp"
#include <test_autodiff_reverse.hpp>
#include <boost/math/special_functions.hpp>
#include <boost/math/special_functions/logaddexp.hpp>
#include <boost/math/tools/workaround.hpp>
#include <cmath>
@@ -27,3 +28,4 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(test_expm1, T, bin_float_types)
BOOST_CHECK_CLOSE(y.item(), y_expect, 1000*boost_close_tol<T>());
}
BOOST_AUTO_TEST_SUITE_END()

Some files were not shown because too many files have changed in this diff Show More