aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/tools/cython/Cython/Includes/libcpp/complex.pxd
diff options
context:
space:
mode:
authoralexv-smirnov <alex@ydb.tech>2023-06-13 11:05:01 +0300
committeralexv-smirnov <alex@ydb.tech>2023-06-13 11:05:01 +0300
commitbf0f13dd39ee3e65092ba3572bb5b1fcd125dcd0 (patch)
tree1d1df72c0541a59a81439842f46d95396d3e7189 /contrib/tools/cython/Cython/Includes/libcpp/complex.pxd
parent8bfdfa9a9bd19bddbc58d888e180fbd1218681be (diff)
downloadydb-bf0f13dd39ee3e65092ba3572bb5b1fcd125dcd0.tar.gz
add ymake export to ydb
Diffstat (limited to 'contrib/tools/cython/Cython/Includes/libcpp/complex.pxd')
-rw-r--r--contrib/tools/cython/Cython/Includes/libcpp/complex.pxd101
1 files changed, 101 insertions, 0 deletions
diff --git a/contrib/tools/cython/Cython/Includes/libcpp/complex.pxd b/contrib/tools/cython/Cython/Includes/libcpp/complex.pxd
new file mode 100644
index 0000000000..c875d5e5bd
--- /dev/null
+++ b/contrib/tools/cython/Cython/Includes/libcpp/complex.pxd
@@ -0,0 +1,101 @@
+# Note: add integer versions of the functions?
+
+cdef extern from "<complex>" namespace "std" nogil:
+ cdef cppclass complex[T]:
+ complex() except +
+ complex(T, T) except +
+ complex(complex[T]&) except +
+ # How to make the converting constructor, i.e. convert complex[double]
+ # to complex[float]?
+
+ complex[T] operator+(complex[T]&)
+ complex[T] operator-(complex[T]&)
+ complex[T] operator+(complex[T]&, complex[T]&)
+ complex[T] operator+(complex[T]&, T&)
+ complex[T] operator+(T&, complex[T]&)
+ complex[T] operator-(complex[T]&, complex[T]&)
+ complex[T] operator-(complex[T]&, T&)
+ complex[T] operator-(T&, complex[T]&)
+ complex[T] operator*(complex[T]&, complex[T]&)
+ complex[T] operator*(complex[T]&, T&)
+ complex[T] operator*(T&, complex[T]&)
+ complex[T] operator/(complex[T]&, complex[T]&)
+ complex[T] operator/(complex[T]&, T&)
+ complex[T] operator/(T&, complex[T]&)
+
+ bint operator==(complex[T]&, complex[T]&)
+ bint operator==(complex[T]&, T&)
+ bint operator==(T&, complex[T]&)
+ bint operator!=(complex[T]&, complex[T]&)
+ bint operator!=(complex[T]&, T&)
+ bint operator!=(T&, complex[T]&)
+
+ # Access real part
+ T real()
+ void real(T)
+
+ # Access imaginary part
+ T imag()
+ void imag(T)
+
+ # Return real part
+ T real[T](complex[T]&)
+ long double real(long double)
+ double real(double)
+ float real(float)
+
+ # Return imaginary part
+ T imag[T](complex[T]&)
+ long double imag(long double)
+ double imag(double)
+ float imag(float)
+
+ T abs[T](complex[T]&)
+ T arg[T](complex[T]&)
+ long double arg(long double)
+ double arg(double)
+ float arg(float)
+
+ T norm[T](complex[T])
+ long double norm(long double)
+ double norm(double)
+ float norm(float)
+
+ complex[T] conj[T](complex[T]&)
+ complex[long double] conj(long double)
+ complex[double] conj(double)
+ complex[float] conj(float)
+
+ complex[T] proj[T](complex[T])
+ complex[long double] proj(long double)
+ complex[double] proj(double)
+ complex[float] proj(float)
+
+ complex[T] polar[T](T&, T&)
+ complex[T] ploar[T](T&)
+
+ complex[T] exp[T](complex[T]&)
+ complex[T] log[T](complex[T]&)
+ complex[T] log10[T](complex[T]&)
+
+ complex[T] pow[T](complex[T]&, complex[T]&)
+ complex[T] pow[T](complex[T]&, T&)
+ complex[T] pow[T](T&, complex[T]&)
+ # There are some promotion versions too
+
+ complex[T] sqrt[T](complex[T]&)
+
+ complex[T] sin[T](complex[T]&)
+ complex[T] cos[T](complex[T]&)
+ complex[T] tan[T](complex[T]&)
+ complex[T] asin[T](complex[T]&)
+ complex[T] acos[T](complex[T]&)
+ complex[T] atan[T](complex[T]&)
+
+ complex[T] sinh[T](complex[T]&)
+ complex[T] cosh[T](complex[T]&)
+ complex[T] tanh[T](complex[T]&)
+
+ complex[T] asinh[T](complex[T]&)
+ complex[T] acosh[T](complex[T]&)
+ complex[T] atanh[T](complex[T]&)