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

static object *
$abbrev$_add($abbrev$Object *v, $abbrev$Object *w)
{
	/* XXXX Add them */
#ifdef $abbrev$_add_impl
	$abbrev$_add_impl(v, w)
#else
	$abbrev$_add_(v, w)
#endif
}

static object *
$abbrev$_sub($abbrev$Object *v, $abbrev$Object *w)
{
	/* XXXX Subtract them */
#ifdef $abbrev$_sub_impl
	$abbrev$_sub_impl(v, w)
#else
	$abbrev$_sub_(v, w)
#endif
}

static object *
$abbrev$_mul($abbrev$Object *v, $abbrev$Object *w)
{
	/* XXXX Multiply them */
#ifdef $abbrev$_mul_impl
	$abbrev$_mul_impl(v, w)
#else
	$abbrev$_mul_(v, w)
#endif
}

static object *
$abbrev$_div($abbrev$Object *v, $abbrev$Object *w)
{
	/* XXXX Divide them */
#ifdef $abbrev$_div_impl
	$abbrev$_div_impl(v, w)
#else
	$abbrev$_div_(v, w)
#endif
}

static object *
$abbrev$_mod($abbrev$Object *v, $abbrev$Object *w)
{
	/* XXXX Modulo them */
#ifdef $abbrev$_mod_impl
	$abbrev$_mod_impl(v, w)
#else
	$abbrev$_mod_(v, w)
#endif
}

static PyObject *
$abbrev$_divmod($abbrev$Object *v, $abbrev$Object *w)
{
	/* XXXX Return 2-tuple with div and mod */
#ifdef $abbrev$_divmod_impl
	$abbrev$_divmod_impl(v, w)
#else
	$abbrev$_divmod_(v, w)
#endif
}

static PyObject *
$abbrev$_pow($abbrev$Object *v, $abbrev$Object *w, $abbrev$Object *z)
{
#ifdef $abbrev$_pow_impl
	$abbrev$_pow_impl(v, w, z)
#else
	$abbrev$_pow_(v, w, z)
#endif
}				

static PyObject *
$abbrev$_neg($abbrev$Object *v)
{
#ifdef $abbrev$_neg_impl
	$abbrev$_neg_impl(v)
#else
	$abbrev$_neg_(v)
#endif
}

static PyObject *
$abbrev$_pos($abbrev$Object *v)
{
#ifdef $abbrev$_pos_impl
	$abbrev$_pos_impl(v)
#else
	$abbrev$_pos_(v)
#endif
}

static PyObject *
$abbrev$_abs($abbrev$Object *v)
{
#ifdef $abbrev$_abs
	$abbrev$_abs_impl(v)
#else
	$abbrev$_abs_(v)
#endif
}

static int
$abbrev$_nonzero($abbrev$Object *v)
{
	/* XXXX Return 1 if non-zero */
#ifdef $abbrev$_nonzero_impl
	$abbrev$_nonzero_impl(v)
#else
	$abbrev$_nonzero_(v)
#endif
}

static PyObject *
$abbrev$_invert($abbrev$Object *v)
{
#ifdef $abbrev$_invert_impl
	$abbrev$_invert_impl(v)
#else
	$abbrev$_invert_(v)
#endif
}

static PyObject *
$abbrev$_lshift($abbrev$Object *v, $abbrev$Object *w)
{
#ifdef $abbrev$_lshift_impl
	$abbrev$_lshift_impl(v, w)
#else
	$abbrev$_lshift_(v, w)
#endif
}

static PyObject *
$abbrev$_rshift($abbrev$Object *v, $abbrev$Object *w)
{
#ifdef $abbrev$_rshift_impl
	$abbrev$_rshift_impl(v, w)
#else
	$abbrev$_rshift_(v, w)
#endif
}

static PyObject *
$abbrev$_and($abbrev$Object *v, $abbrev$Object *w)
{
#ifdef $abbrev$_and_impl
	$abbrev$_and_impl(v, w)
#else
	$abbrev$_and_(v, w)
#endif
}

static PyObject *
$abbrev$_xor($abbrev$Object *v, $abbrev$Object *w)
{
#ifdef $abbrev$_xor_impl
	$abbrev$_xor_impl(v, w)
#else
	$abbrev$_xor_(v, w)
#endif
}

static PyObject *
$abbrev$_or($abbrev$Object *v, $abbrev$Object *w)
{
#ifdef $abbrev$_or_impl
	$abbrev$_or_impl(v, w)
#else
	$abbrev$_or_(v, w)
#endif
}

static int
$abbrev$_coerce($abbrev$Object *v, $abbrev$Object *w)
{
	/* XXXX I haven't a clue... */
#ifdef $abbrev$_coerce_impl
	$abbrev$_coerce_impl(v, w)
#else
	$abbrev$_coerce_(v, w)
#endif
	return 1;
}

static PyObject *
$abbrev$_int($abbrev$Object *v)
{
#ifdef $abbrev$_int_impl
	$abbrev$_int_impl(v)
#else
	$abbrev$_int_(v)
#endif
}

static PyObject *
$abbrev$_long($abbrev$Object *v)
{
#ifdef $abbrev$_long_impl
	$abbrev$_long_impl(v)
#else
	$abbrev$_long_(v)
#endif
}

static PyObject *
$abbrev$_float($abbrev$Object *v)
{
#ifdef $abbrev$_float_impl
	$abbrev$_float_impl(v)
#else
	$abbrev$_float_(v)
#endif
}

static PyObject *
$abbrev$_oct($abbrev$Object *v)
{
	/* Return object as octal stringobject */
#ifdef $abbrev$_oct_impl
	$abbrev$_oct_impl(v)
#else
	$abbrev$_oct_(v)
#endif
}

static PyObject *
$abbrev$_hex($abbrev$Object *v)
{
	/* Return object as hex stringobject */
#ifdef $abbrev$_hex_impl
	$abbrev$_hex_impl(v)
#else
	$abbrev$_hex_(v)
#endif
}

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