cython
1# mode: run
2# tag: cpp, werror, cpp17
3
4from libcpp.cmath cimport beta, legendre, hypot
5
6def test_beta(double x, double y):
7"""
8Test C++17 std::beta function
9>>> test_beta(1.0, 1.0)
101.0
11>>> test_beta(1.0, 2.0)
120.5
13"""
14return beta(x, y)
15
16def test_legendre(int x, double y):
17"""
18Test C++17 std::legendre function
19>>> test_legendre(1, 0.5)
200.5
21>>> test_legendre(2, 0.5)
22-0.125
23"""
24return legendre(x, y)
25
26def test_hypot(double x, double y, double z):
27"""
28Test C++17 std::hypot function
29>>> test_hypot(1.0, 2.0, 2.0)
303.0
31>>> test_hypot(3.0, 4.0, 0.0)
325.0
33"""
34return hypot(x, y, z)