Exemplo n.º 1
0
static PyObject *
GMPy_Number_Minus(PyObject *x, CTXT_Object *context)
{
    if (MPZ_Check(x))
        return _GMPy_MPZ_Minus(x, context);

    if (MPQ_Check(x))
        return _GMPy_MPQ_Minus(x, context);

    if (MPFR_Check(x))
        return _GMPy_MPFR_Minus(x, context);

    if (MPC_Check(x))
        return _GMPy_MPC_Minus(x, context);

    if (IS_INTEGER(x))
        return GMPy_Integer_Minus(x, context);

    if (IS_RATIONAL_ONLY(x))
        return GMPy_Rational_Minus(x, context);

    if (IS_REAL_ONLY(x))
        return GMPy_Real_Minus(x, context);

    if (IS_COMPLEX_ONLY(x))
        return GMPy_Complex_Minus(x, context);

    TYPE_ERROR("minus() argument type not supported");
    return NULL;
}
Exemplo n.º 2
0
static PyObject *
GMPy_Number_Sign(PyObject *x, CTXT_Object *context)
{
    if (IS_INTEGER(x))
        return GMPy_Integer_Sign(x, context);
    else if (IS_RATIONAL_ONLY(x))
        return GMPy_Rational_Sign(x, context);
    else if (IS_REAL_ONLY(x))
        return GMPy_Real_Sign(x, context);

    TYPE_ERROR("sign() argument type not supported");
    return NULL;
}
Exemplo n.º 3
0
static PyObject *
GMPy_Number_Abs(PyObject *x, CTXT_Object *context)
{
    if (IS_INTEGER(x))
        return GMPy_Integer_Abs(x, context);

    if (IS_RATIONAL_ONLY(x))
        return GMPy_Rational_Abs(x, context);

    if (IS_REAL_ONLY(x))
        return GMPy_Real_Abs(x, context);

    if (IS_COMPLEX_ONLY(x))
        return GMPy_Complex_Abs(x, context);

    TYPE_ERROR("abs() argument type not supported");
    return NULL;
}