static PyObject * quaternion_arrtype_new(PyTypeObject *type, PyObject *args, PyObject *kwds) { quaternion q; if (!PyArg_ParseTuple(args, "dddd", &q.w, &q.x, &q.y, &q.z)) return NULL; return PyArray_Scalar(&q, quaternion_descr, NULL); }
static PyObject * half_arrtype_new(PyTypeObject *type, PyObject *args, PyObject *kwds) { PyObject *obj = NULL; npy_half value = 0; if (!PyArg_ParseTuple(args, "|O", &obj)) { return NULL; } if (obj != NULL) { value = MyPyFloat_AsHalf(obj); } return PyArray_Scalar(&value, half_descr, NULL); }
/* contains optimization for 1-d arrays */ NPY_NO_EXPORT PyObject * array_item_nice(PyArrayObject *self, Py_ssize_t i) { if (self->nd == 1) { char *item; if ((item = index2ptr(self, i)) == NULL) { return NULL; } return PyArray_Scalar(item, self->descr, (PyObject *)self); } else { return PyArray_Return( (PyArrayObject *) array_big_item(self, (intp) i)); } }