Lines Matching refs:dec
74 mpd_t dec;
109 #define MPD(v) (&((PyDecObject *)v)->dec)
1883 PyDecObject *dec;
1886 dec = PyObject_New(PyDecObject, &PyDec_Type);
1889 dec = (PyDecObject *)type->tp_alloc(type, 0);
1891 if (dec == NULL) {
1895 dec->hash = -1;
1897 MPD(dec)->flags = MPD_STATIC|MPD_STATIC_DATA;
1898 MPD(dec)->exp = 0;
1899 MPD(dec)->digits = 0;
1900 MPD(dec)->len = 0;
1901 MPD(dec)->alloc = _Py_DEC_MINALLOC;
1902 MPD(dec)->data = dec->data;
1904 return (PyObject *)dec;
1909 dec_dealloc(PyObject *dec)
1911 mpd_del(MPD(dec));
1912 Py_TYPE(dec)->tp_free(dec);
2000 PyObject *dec;
2003 dec = PyDecType_New(type);
2004 if (dec == NULL) {
2008 mpd_qset_string(MPD(dec), s, CTX(context), &status);
2010 Py_DECREF(dec);
2013 return dec;
2023 PyObject *dec;
2027 dec = PyDecType_New(type);
2028 if (dec == NULL) {
2034 mpd_qset_string(MPD(dec), s, &maxctx, &status);
2037 mpd_seterror(MPD(dec), MPD_Invalid_operation, &status);
2041 Py_DECREF(dec);
2045 return dec;
2053 PyObject *dec;
2061 dec = PyDecType_FromCString(type, s, context);
2063 return dec;
2073 PyObject *dec;
2081 dec = PyDecType_FromCStringExact(type, s, context);
2083 return dec;
2088 _dec_settriple(PyObject *dec, uint8_t sign, uint32_t v, mpd_ssize_t exp)
2092 MPD(dec)->data[0] = v;
2093 MPD(dec)->len = 1;
2098 MPD(dec)->data[1] = q;
2099 MPD(dec)->data[0] = r;
2100 MPD(dec)->len = q ? 2 : 1;
2102 mpd_set_flags(MPD(dec), sign);
2103 MPD(dec)->exp = exp;
2104 mpd_setdigits(MPD(dec));
2111 PyObject *dec;
2114 dec = PyDecType_New(type);
2115 if (dec == NULL) {
2119 mpd_qset_ssize(MPD(dec), v, CTX(context), &status);
2121 Py_DECREF(dec);
2124 return dec;
2131 PyObject *dec;
2135 dec = PyDecType_New(type);
2136 if (dec == NULL) {
2142 mpd_qset_ssize(MPD(dec), v, &maxctx, &status);
2144 Py_DECREF(dec);
2147 return dec;
2156 PyObject *dec;
2162 dec = PyDecType_New(type);
2163 if (dec == NULL) {
2169 _dec_settriple(dec, MPD_POS, 0, 0);
2170 return dec;
2183 _dec_settriple(dec, sign, *l->ob_digit, 0);
2184 mpd_qfinalize(MPD(dec), ctx, status);
2185 return dec;
2189 mpd_qimport_u32(MPD(dec), l->ob_digit, len, sign, PyLong_BASE,
2192 mpd_qimport_u16(MPD(dec), l->ob_digit, len, sign, PyLong_BASE,
2198 return dec;
2206 PyObject *dec;
2214 dec = dec_from_long(type, v, CTX(context), &status);
2215 if (dec == NULL) {
2220 Py_DECREF(dec);
2224 return dec;
2233 PyObject *dec;
2243 dec = dec_from_long(type, v, &maxctx, &status);
2244 if (dec == NULL) {
2250 mpd_seterror(MPD(dec), MPD_Invalid_operation, &status);
2254 Py_DECREF(dec);
2258 return dec;
2275 PyObject *dec, *tmp;
2303 dec = PyDecType_New(type);
2304 if (dec == NULL) {
2310 mpd_setspecial(MPD(dec), MPD_POS, MPD_NAN);
2313 mpd_setspecial(MPD(dec), sign, MPD_INF);
2315 return dec;
2346 dec = PyDecType_FromLongExact(type, n, context);
2348 if (dec == NULL) {
2354 Py_DECREF(dec);
2361 Py_DECREF(dec);
2373 Py_DECREF(dec);
2378 mpd_qmul(MPD(dec), MPD(dec), d1, &maxctx, &status);
2382 Py_DECREF(dec);
2386 mpd_set_sign(MPD(dec), sign);
2387 MPD(dec)->exp = -k;
2389 return dec;
2396 PyObject *dec;
2399 dec = PyDecType_FromFloatExact(type, v, context);
2400 if (dec == NULL) {
2404 mpd_qfinalize(MPD(dec), CTX(context), &status);
2406 Py_DECREF(dec);
2410 return dec;
2417 PyObject *dec;
2425 dec = PyDecType_New(type);
2426 if (dec == NULL) {
2430 mpd_qcopy(MPD(dec), MPD(v), &status);
2432 Py_DECREF(dec);
2436 return dec;
2609 PyObject *dec;
2624 dec = PyDecType_FromCString(type, s, context);
2627 return dec;
2636 PyObject *dec;
2651 dec = PyDecType_FromCStringExact(type, s, context);
2654 return dec;
3137 dec_str(PyObject *dec)
3144 size = mpd_to_sci_size(&cp, MPD(dec), CtxCaps(context));
3157 dec_repr(PyObject *dec)
3163 cp = mpd_to_sci(MPD(dec), CtxCaps(context));
3301 dec_format(PyObject *dec, PyObject *args)
3318 mpd_t *mpd = MPD(dec);
3496 dec_as_long(PyObject *dec, PyObject *context, int round)
3506 if (mpd_isspecial(MPD(dec))) {
3507 if (mpd_isnan(MPD(dec))) {
3525 mpd_qround_to_int(x, MPD(dec), &workctx, &status);
3679 PyDec_ToIntegralValue(PyObject *dec, PyObject *args, PyObject *kwds)
3710 mpd_qround_to_int(MPD(result), MPD(dec), &workctx, &status);
3720 PyDec_ToIntegralExact(PyObject *dec, PyObject *args, PyObject *kwds)
3751 mpd_qround_to_intx(MPD(result), MPD(dec), &workctx, &status);
3761 PyDec_AsFloat(PyObject *dec)
3765 if (mpd_isnan(MPD(dec))) {
3766 if (mpd_issnan(MPD(dec))) {
3771 if (mpd_isnegative(MPD(dec))) {
3779 s = dec_str(dec);
3793 PyDec_Round(PyObject *dec, PyObject *args)
3827 mpd_qquantize(MPD(result), MPD(dec), &q, CTX(context), &status);
3836 return dec_as_long(dec, context, MPD_ROUND_HALF_EVEN);
3843 PyDec_AsTuple(PyObject *dec, PyObject *dummy UNUSED)
3855 x = mpd_qncopy(MPD(dec));
3861 sign = PyLong_FromUnsignedLong(mpd_sign(MPD(dec)));
3882 expt = PyLong_FromSsize_t(MPD(dec)->exp);
4171 nm_dec_as_long(PyObject *dec)
4176 return dec_as_long(dec, context, MPD_ROUND_DOWN);