Move setting of ioready 'wait' earlier in call chain, to
[python/dscho.git] / Tools / modulator / Templates / object_tp_as_number
blobe69aa9a556bc018b6837c09d5e3ac6d21431c522
2 /* Code to access $name$ objects as numbers */
4 static PyObject *
5 $abbrev$_add($abbrev$object *v, $abbrev$object *w)
7         /* XXXX Add them */
10 static PyObject *
11 $abbrev$_sub($abbrev$object *v, $abbrev$object *w)
13         /* XXXX Subtract them */
16 static PyObject *
17 $abbrev$_mul($abbrev$object *v, $abbrev$object *w)
19         /* XXXX Multiply them */
22 static PyObject *
23 $abbrev$_div($abbrev$object *x, $abbrev$object *y)
25         /* XXXX Divide them */
28 static PyObject *
29 $abbrev$_mod($abbrev$object *x, $abbrev$object *y)
31         /* XXXX Modulo them */
34 static PyObject *
35 $abbrev$_divmod($abbrev$object *x, $abbrev$object *y)
37         /* XXXX Return 2-tuple with div and mod */
40 static PyObject *
41 $abbrev$_pow($abbrev$object *v, $abbrev$object *w, $abbrev$object *z)
43         /* XXXX */
44 }                               
46 static PyObject *
47 $abbrev$_neg($abbrev$object *v)
49         /* XXXX */
52 static PyObject *
53 $abbrev$_pos($abbrev$object *v)
55         /* XXXX */
58 static PyObject *
59 $abbrev$_abs($abbrev$object *v)
61         /* XXXX */
64 static int
65 $abbrev$_nonzero($abbrev$object *v)
67         /* XXXX Return 1 if non-zero */
70 static PyObject *
71 $abbrev$_invert($abbrev$object *v)
73         /* XXXX */
76 static PyObject *
77 $abbrev$_lshift($abbrev$object *v, $abbrev$object *w)
79         /* XXXX */
82 static PyObject *
83 $abbrev$_rshift($abbrev$object *v, $abbrev$object *w)
85         /* XXXX */
88 static PyObject *
89 $abbrev$_and($abbrev$object *v, $abbrev$object *w)
91         /* XXXX */
94 static PyObject *
95 $abbrev$_xor($abbrev$object *v, $abbrev$object *w)
97         /* XXXX */
100 static PyObject *
101 $abbrev$_or($abbrev$object *v, $abbrev$object *w)
103         /* XXXX */
106 static int
107 $abbrev$_coerce(PyObject **pv, PyObject **pw)
109         /* XXXX I haven't a clue... */
110         return 1;
113 static PyObject *
114 $abbrev$_int($abbrev$object *v)
116         /* XXXX */
119 static PyObject *
120 $abbrev$_long($abbrev$object *v)
122         /* XXXX */
125 static PyObject *
126 $abbrev$_float($abbrev$object *v)
128         /* XXXX */
131 static PyObject *
132 $abbrev$_oct($abbrev$object *v)
134         /* XXXX Return object as octal stringobject */
137 static PyObject *
138 $abbrev$_hex($abbrev$object *v)
140         /* XXXX Return object as hex stringobject */
143 static PyNumberMethods $abbrev$_as_number = {
144         (binaryfunc)$abbrev$_add,       /*nb_add*/
145         (binaryfunc)$abbrev$_sub,       /*nb_subtract*/
146         (binaryfunc)$abbrev$_mul,       /*nb_multiply*/
147         (binaryfunc)$abbrev$_div,       /*nb_divide*/
148         (binaryfunc)$abbrev$_mod,       /*nb_remainder*/
149         (binaryfunc)$abbrev$_divmod,    /*nb_divmod*/
150         (ternaryfunc)$abbrev$_pow,      /*nb_power*/
151         (unaryfunc)$abbrev$_neg,        /*nb_negative*/
152         (unaryfunc)$abbrev$_pos,        /*nb_positive*/
153         (unaryfunc)$abbrev$_abs,        /*nb_absolute*/
154         (inquiry)$abbrev$_nonzero,      /*nb_nonzero*/
155         (unaryfunc)$abbrev$_invert,     /*nb_invert*/
156         (binaryfunc)$abbrev$_lshift,    /*nb_lshift*/
157         (binaryfunc)$abbrev$_rshift,    /*nb_rshift*/
158         (binaryfunc)$abbrev$_and,       /*nb_and*/
159         (binaryfunc)$abbrev$_xor,       /*nb_xor*/
160         (binaryfunc)$abbrev$_or,        /*nb_or*/
161         (coercion)$abbrev$_coerce,      /*nb_coerce*/
162         (unaryfunc)$abbrev$_int,        /*nb_int*/
163         (unaryfunc)$abbrev$_long,       /*nb_long*/
164         (unaryfunc)$abbrev$_float,      /*nb_float*/
165         (unaryfunc)$abbrev$_oct,        /*nb_oct*/
166         (unaryfunc)$abbrev$_hex,        /*nb_hex*/
169 /* ------------------------------------------------------- */