Home | History | Annotate | Download | only in Modules

Lines Matching refs:po

3049     permutationsobject *po;
3097 po = (permutationsobject *)type->tp_alloc(type, 0);
3098 if (po == NULL)
3101 po->pool = pool;
3102 po->indices = indices;
3103 po->cycles = cycles;
3104 po->result = NULL;
3105 po->r = r;
3106 po->stopped = r > n ? 1 : 0;
3108 return (PyObject *)po;
3120 permutations_dealloc(permutationsobject *po)
3122 PyObject_GC_UnTrack(po);
3123 Py_XDECREF(po->pool);
3124 Py_XDECREF(po->result);
3125 PyMem_Free(po->indices);
3126 PyMem_Free(po->cycles);
3127 Py_TYPE(po)->tp_free(po);
3131 permutations_sizeof(permutationsobject *po, void *unused)
3135 res = _PyObject_SIZE(Py_TYPE(po));
3136 res += PyTuple_GET_SIZE(po->pool) * sizeof(Py_ssize_t);
3137 res += po->r * sizeof(Py_ssize_t);
3142 permutations_traverse(permutationsobject *po, visitproc visit, void *arg)
3144 Py_VISIT(po->pool);
3145 Py_VISIT(po->result);
3150 po)
3154 PyObject *pool = po->pool;
3155 Py_ssize_t *indices = po->indices;
3156 Py_ssize_t *cycles = po->cycles;
3157 PyObject *result = po->result;
3159 Py_ssize_t r = po->r;
3162 if (po->stopped)
3170 po->result = result;
3187 po->result = result;
3236 po->stopped = 1;
3241 permutations_reduce(permutationsobject *po)
3243 if (po->result == NULL) {
3244 return Py_BuildValue("O(On)", Py_TYPE(po), po->pool, po->r);
3245 } else if (po->stopped) {
3246 return Py_BuildValue("O(()n)", Py_TYPE(po), po->r);
3252 n = PyTuple_GET_SIZE(po->pool);
3257 PyObject* index = PyLong_FromSsize_t(po->indices[i]);
3263 cycles = PyTuple_New(po->r);
3266 for (i=0 ; i<po->r ; i++) {
3267 PyObject* index = PyLong_FromSsize_t(po->cycles[i]);
3272 return Py_BuildValue("O(On)(NN)", Py_TYPE(po),
3273 po->pool, po->r,
3283 permutations_setstate(permutationsobject *po, PyObject *state)
3298 n = PyTuple_GET_SIZE(po->pool);
3299 if (PyTuple_GET_SIZE(indices) != n || PyTuple_GET_SIZE(cycles) != po->r) {
3314 po->indices[i] = index;
3317 for (i=0; i<po->r; i++) {
3326 po->cycles[i] = index;
3328 result = PyTuple_New(po->r);
3331 for (i=0; i<po->r; i++) {
3332 PyObject *element = PyTuple_GET_ITEM(po->pool, po->indices[i]);
3336 Py_XSETREF(po->result, result);