import source from 1.3.40
[external/swig.git] / Lib / octave / octopers.swg
1 /* ------------------------------------------------------------
2  * Overloaded operator support
3  * ------------------------------------------------------------ */
4
5 #ifdef __cplusplus
6
7 // operators supported in Octave, and the methods they are routed to
8
9 // __brace__      a{args}
10 // __brace_asgn__ a{args} = rhs
11 // __paren__      a(args)
12 // __paren_asgn__ a(args) = rhs
13 // __str__        generates string rep
14
15 // __not__        !a
16 // __uplus__      +a
17 // __uminus__     -a
18 // __transpose__  a.'
19 // __hermitian__  a'
20 // __incr__       a++
21 // __decr__       a--
22 // __add__        a + b
23 // __sub__        a - b
24 // __mul__        a * b
25 // __div__        a / b
26 // __pow__        a ^ b
27 // __ldiv__       a \ b
28 // __lshift__     a << b
29 // __rshift__     a >> b
30 // __lt__         a < b
31 // __le__         a <= b
32 // __eq__         a == b
33 // __ge__         a >= b
34 // __gt__         a > b
35 // __ne__         a != b
36 // __el_mul__     a .* b
37 // __el_div__     a ./ b
38 // __el_pow__     a .^ b
39 // __el_ldiv__    a .\ b
40 // __el_and__     a & b
41 // __el_or__      a | b
42
43 // operators supported in C++, and the methods that route to them
44
45 %rename(__add__)       *::operator+;
46 %rename(__add__)       *::operator+();
47 %rename(__add__)       *::operator+() const;
48 %rename(__sub__)       *::operator-;
49 %rename(__uminus__)    *::operator-();
50 %rename(__uminus__)    *::operator-() const;
51 %rename(__mul__)       *::operator*;
52 %rename(__div__)       *::operator/;
53 %rename(__mod__)       *::operator%;
54 %rename(__lshift__)    *::operator<<;
55 %rename(__rshift__)    *::operator>>;
56 %rename(__el_and__)    *::operator&&;
57 %rename(__el_or__)     *::operator||;
58 %rename(__xor__)       *::operator^;
59 %rename(__invert__)    *::operator~;
60 %rename(__lt__)        *::operator<;
61 %rename(__le__)        *::operator<=;
62 %rename(__gt__)        *::operator>;
63 %rename(__ge__)        *::operator>=;
64 %rename(__eq__)        *::operator==;
65 %rename(__ne__)        *::operator!=;
66 %rename(__not__)       *::operator!;
67 %rename(__incr__)      *::operator++;
68 %rename(__decr__)      *::operator--;
69 %rename(__paren__)     *::operator();
70 %rename(__brace__)     *::operator[];
71
72 // Ignored inplace operators
73 %ignoreoperator(PLUSEQ)     operator+=;
74 %ignoreoperator(MINUSEQ)    operator-=;
75 %ignoreoperator(MULEQ)      operator*=;
76 %ignoreoperator(DIVEQ)      operator/=;
77 %ignoreoperator(MODEQ)      operator%=;
78 %ignoreoperator(LSHIFTEQ)   operator<<=;
79 %ignoreoperator(RSHIFTEQ)   operator>>=;
80 %ignoreoperator(ANDEQ)      operator&=;
81 %ignoreoperator(OREQ)       operator|=;
82 %ignoreoperator(XOREQ)      operator^=;
83
84 // Ignored operators
85 %ignoreoperator(EQ)         operator=;
86 %ignoreoperator(ARROWSTAR)  operator->*;
87
88 #endif /* __cplusplus */