示例#1
0
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);
}
示例#2
0
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);
}
示例#3
0
/* 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));
    }
}