MCPcopy Create free account
hub / github.com/numpy/numpy / Dragon4_Positional

Function Dragon4_Positional

numpy/core/src/multiarray/dragon4.c:3153–3194  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3151#undef make_dragon4_typefuncs_inner
3152
3153PyObject *
3154Dragon4_Positional(PyObject *obj, DigitMode digit_mode, CutoffMode cutoff_mode,
3155 int precision, int min_digits, int sign, TrimMode trim,
3156 int pad_left, int pad_right)
3157{
3158 npy_double val;
3159 Dragon4_Options opt;
3160
3161 opt.scientific = 0;
3162 opt.digit_mode = digit_mode;
3163 opt.cutoff_mode = cutoff_mode;
3164 opt.precision = precision;
3165 opt.min_digits = min_digits;
3166 opt.sign = sign;
3167 opt.trim_mode = trim;
3168 opt.digits_left = pad_left;
3169 opt.digits_right = pad_right;
3170 opt.exp_digits = -1;
3171
3172 if (PyArray_IsScalar(obj, Half)) {
3173 npy_half x = PyArrayScalar_VAL(obj, Half);
3174 return Dragon4_Positional_Half_opt(&x, &opt);
3175 }
3176 else if (PyArray_IsScalar(obj, Float)) {
3177 npy_float x = PyArrayScalar_VAL(obj, Float);
3178 return Dragon4_Positional_Float_opt(&x, &opt);
3179 }
3180 else if (PyArray_IsScalar(obj, Double)) {
3181 npy_double x = PyArrayScalar_VAL(obj, Double);
3182 return Dragon4_Positional_Double_opt(&x, &opt);
3183 }
3184 else if (PyArray_IsScalar(obj, LongDouble)) {
3185 npy_longdouble x = PyArrayScalar_VAL(obj, LongDouble);
3186 return Dragon4_Positional_LongDouble_opt(&x, &opt);
3187 }
3188
3189 val = PyFloat_AsDouble(obj);
3190 if (PyErr_Occurred()) {
3191 return NULL;
3192 }
3193 return Dragon4_Positional_Double_opt(&val, &opt);
3194}
3195
3196PyObject *
3197Dragon4_Scientific(PyObject *obj, DigitMode digit_mode, int precision,

Callers 1

dragon4_positionalFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected