
/* Code to access $name$ objects as numbers */

static PyObject *
$abbrev$_add(v, w)
	$abbrev$object *v;
	$abbrev$object *w;
{
	/* XXXX Add them */
}

static PyObject *
$abbrev$_sub(v, w)
	$abbrev$object *v;
	$abbrev$object *w;
{
	/* XXXX Subtract them */
}

static PyObject *
$abbrev$_mul(v, w)
	$abbrev$object *v;
	$abbrev$object *w;
{
	/* XXXX Multiply them */
}

static PyObject *
$abbrev$_div(x, y)
	$abbrev$object *x;
	$abbrev$object *y;
{
	/* XXXX Divide them */
}

static PyObject *
$abbrev$_mod(x, y)
	$abbrev$object *x;
	$abbrev$object *y;
{
	/* XXXX Modulo them */
}

static PyObject *
$abbrev$_divmod(x, y)
	$abbrev$object *x;
	$abbrev$object *y;
{
	/* XXXX Return 2-tuple with div and mod */
}

static PyObject *
$abbrev$_pow(v, w, z)
	$abbrev$object *v;
	$abbrev$object *w;
	$abbrev$object *z;
{
	/* XXXX */
}				

static PyObject *
$abbrev$_neg(v)
	$abbrev$object *v;
{
	/* XXXX */
}

static PyObject *
$abbrev$_pos(v)
	$abbrev$object *v;
{
	/* XXXX */
}

static PyObject *
$abbrev$_abs(v)
	$abbrev$object *v;
{
	/* XXXX */
}

static int
$abbrev$_nonzero(v)
	$abbrev$object *v;
{
	/* XXXX Return 1 if non-zero */
}

static PyObject *
$abbrev$_invert(v)
	$abbrev$object *v;
{
	/* XXXX */
}

static PyObject *
$abbrev$_lshift(v, w)
	$abbrev$object *v;
	$abbrev$object *w;
{
	/* XXXX */
}

static PyObject *
$abbrev$_rshift(v, w)
	$abbrev$object *v;
	$abbrev$object *w;
{
	/* XXXX */
}

static PyObject *
$abbrev$_and(v, w)
	$abbrev$object *v;
	$abbrev$object *w;
{
	/* XXXX */
}

static PyObject *
$abbrev$_xor(v, w)
	$abbrev$object *v;
	$abbrev$object *w;
{
	/* XXXX */
}

static PyObject *
$abbrev$_or(v, w)
	$abbrev$object *v;
	$abbrev$object *w;
{
	/* XXXX */
}

static int
$abbrev$_coerce(pv, pw)
	PyObject **pv;
	PyObject **pw;
{
	/* XXXX I haven't a clue... */
	return 1;
}

static PyObject *
$abbrev$_int(v)
	$abbrev$object *v;
{
	/* XXXX */
}

static PyObject *
$abbrev$_long(v)
	$abbrev$object *v;
{
	/* XXXX */
}

static PyObject *
$abbrev$_float(v)
	$abbrev$object *v;
{
	/* XXXX */
}

static PyObject *
$abbrev$_oct(v)
	$abbrev$object *v;
{
	/* XXXX Return object as octal stringobject */
}

static PyObject *
$abbrev$_hex(v)
	$abbrev$object *v;
{
	/* XXXX Return object as hex stringobject */
}

static PyNumberMethods $abbrev$_as_number = {
	(binaryfunc)$abbrev$_add,	/*nb_add*/
	(binaryfunc)$abbrev$_sub,	/*nb_subtract*/
	(binaryfunc)$abbrev$_mul,	/*nb_multiply*/
	(binaryfunc)$abbrev$_div,	/*nb_divide*/
	(binaryfunc)$abbrev$_mod,	/*nb_remainder*/
	(binaryfunc)$abbrev$_divmod,	/*nb_divmod*/
	(ternaryfunc)$abbrev$_pow,	/*nb_power*/
	(unaryfunc)$abbrev$_neg,	/*nb_negative*/
	(unaryfunc)$abbrev$_pos,	/*nb_positive*/
	(unaryfunc)$abbrev$_abs,	/*nb_absolute*/
	(inquiry)$abbrev$_nonzero,	/*nb_nonzero*/
	(unaryfunc)$abbrev$_invert,	/*nb_invert*/
	(binaryfunc)$abbrev$_lshift,	/*nb_lshift*/
	(binaryfunc)$abbrev$_rshift,	/*nb_rshift*/
	(binaryfunc)$abbrev$_and,	/*nb_and*/
	(binaryfunc)$abbrev$_xor,	/*nb_xor*/
	(binaryfunc)$abbrev$_or,	/*nb_or*/
	(coercion)$abbrev$_coerce,	/*nb_coerce*/
	(unaryfunc)$abbrev$_int,	/*nb_int*/
	(unaryfunc)$abbrev$_long,	/*nb_long*/
	(unaryfunc)$abbrev$_float,	/*nb_float*/
	(unaryfunc)$abbrev$_oct,	/*nb_oct*/
	(unaryfunc)$abbrev$_hex,	/*nb_hex*/
};

/* ------------------------------------------------------- */
