aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/tools/cython/Cython/Includes/libcpp/complex.pxd
blob: 7ae6fd0908e4c6b69215b16e955f68f265934e0d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
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]&)