gmpy2_abs.h
1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 2 * gmpy2_abs.h * 3 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 4 * Python interface to the GMP or MPIR, MPFR, and MPC multiple precision * 5 * libraries. * 6 * * 7 * Copyright 2000 - 2009 Alex Martelli * 8 * * 9 * Copyright 2008 - 2021 Case Van Horsen * 10 * * 11 * This file is part of GMPY2. * 12 * * 13 * GMPY2 is free software: you can redistribute it and/or modify it under * 14 * the terms of the GNU Lesser General Public License as published by the * 15 * Free Software Foundation, either version 3 of the License, or (at your * 16 * option) any later version. * 17 * * 18 * GMPY2 is distributed in the hope that it will be useful, but WITHOUT * 19 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * 20 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public * 21 * License for more details. * 22 * * 23 * You should have received a copy of the GNU Lesser General Public * 24 * License along with GMPY2; if not, see <http://www.gnu.org/licenses/> * 25 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 26 27 #ifndef GMPY2_ABS_H 28 #define GMPY2_ABS_H 29 30 #ifdef __cplusplus 31 extern "C" { 32 #endif 33 34 /* Public API */ 35 36 static PyObject * GMPy_Number_Abs(PyObject *x, CTXT_Object *context); 37 38 /* Private API */ 39 40 static PyObject * GMPy_Integer_AbsWithType(PyObject *x, int xtype, CTXT_Object *context); 41 static PyObject * GMPy_Rational_AbsWithType(PyObject *x, int xtype, CTXT_Object *context); 42 static PyObject * GMPy_Real_AbsWithType(PyObject *x, int xtype, CTXT_Object *context); 43 static PyObject * GMPy_Complex_AbsWithType(PyObject *x, int xtype, CTXT_Object *context); 44 45 static PyObject * GMPy_MPZ_Abs_Slot(MPZ_Object *x); 46 static PyObject * GMPy_MPQ_Abs_Slot(MPQ_Object *x); 47 static PyObject * GMPy_MPFR_Abs_Slot(MPFR_Object *x); 48 static PyObject * GMPy_MPC_Abs_Slot(MPC_Object *x); 49 50 static PyObject * GMPy_Context_Abs(PyObject *self, PyObject *args); 51 52 #ifdef __cplusplus 53 } 54 #endif 55 #endif