File: complex.pxd

package info (click to toggle)
cython 0.21.1-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 23,804 kB
  • ctags: 31,405
  • sloc: python: 55,862; ansic: 8,318; xml: 1,031; cpp: 777; makefile: 383; lisp: 206; sh: 7
file content (101 lines) | stat: -rw-r--r-- 2,928 bytes parent folder | download
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(complex[T]&)
    long double real(long double)
    double real(double)
    float real(float)

    # Return imaginary part
    T imag(complex[T]&)
    long double imag(long double)
    double imag(double)
    float imag(float)

    T abs(complex[T]&)
    T arg(complex[T]&)
    long double arg(long double)
    double arg(double)
    float arg(float)

    T norm(complex[T])
    long double norm(long double)
    double norm(double)
    float norm(float)

    complex[T] conj(complex[T]&)
    complex[long double] conj(long double)
    complex[double] conj(double)
    complex[float] conj(float)

    complex[T] proj(complex[T])
    complex[long double] proj(long double)
    complex[double] proj(double)
    complex[float] proj(float)

    complex[T] polar(T&, T&)
    complex[T] ploar(T&)

    complex[T] exp(complex[T]&)
    complex[T] log(complex[T]&)
    complex[T] log10(complex[T]&)

    complex[T] pow(complex[T]&, complex[T]&)
    complex[T] pow(complex[T]&, T&)
    complex[T] pow(T&, complex[T]&)
    # There are some promotion versions too

    complex[T] sqrt(complex[T]&)

    complex[T] sin(complex[T]&)
    complex[T] cos(complex[T]&)
    complex[T] tan(complex[T]&)
    complex[T] asin(complex[T]&)
    complex[T] acos(complex[T]&)
    complex[T] atan(complex[T]&)

    complex[T] sinh(complex[T]&)
    complex[T] cosh(complex[T]&)
    complex[T] tanh(complex[T]&)

    complex[T] asinh(complex[T]&)
    complex[T] acosh(complex[T]&)
    complex[T] atanh(complex[T]&)