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:
@@ -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
@@ -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)})
|
||||
{
|
||||
|
||||
1079
test/Jamfile.v2
1079
test/Jamfile.v2
File diff suppressed because it is too large
Load Diff
@@ -106,4 +106,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,4 +107,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,4 +107,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -107,4 +107,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,4 +107,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,4 +106,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,4 +106,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,4 +106,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,4 +106,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,4 +106,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,4 +106,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,4 +107,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -108,4 +108,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,4 +106,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,4 +106,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,4 +106,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,4 +106,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,4 +106,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,4 +106,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,4 +107,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -108,4 +108,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,4 +106,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,4 +106,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,4 +106,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,4 +106,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,4 +106,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,4 +106,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,4 +106,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,4 +106,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,4 +106,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,4 +106,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,4 +106,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,4 +106,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,4 +106,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,4 +106,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,4 +106,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,4 +106,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,4 +106,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,4 +106,4 @@ int main(void)
|
||||
std::cerr << "Stopped with exception: " << e.what() << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user