Beispiel #1
0
static PyObject *breakup_list(PyObject *self, PyObject *args)
{
    PyObject* source_list;
    PyObject* iter;
    PyObject* item;
    PyObject* ngram_list;
    long min, max;
    Py_ssize_t n;

    if (!PyArg_ParseTuple(args, "Oll:breakup_list", &source_list, &min,
                &max)) {
        return NULL;
    }

    iter = PyObject_GetIter(source_list);
    if(!iter) return NULL;

    ngram_list = PyList_New(0);
    if(!ngram_list) return NULL;


    while ((item = PyIter_Next(iter))) {
        for(n=min; n <= max; n++) {
            if(one_pass(ngram_list, item, n) < 0) {
                Py_DECREF(item);
                Py_DECREF(iter);
                Py_DECREF(ngram_list);
                return NULL;
            }
        }
        Py_DECREF(item);
    }


    Py_DECREF(iter);

    return ngram_list;
}
Beispiel #2
0
static PyObject *breakup_word(PyObject *self, PyObject *args)
{
    PyObject* source_string;
    PyObject* ngram_list;
    long min, max;
    Py_ssize_t n;

    if (!PyArg_ParseTuple(args, "Oll:breakup_list", &source_string, &min,
                &max)) {
        return NULL;
    }

    ngram_list = PyList_New(0);
    if(!ngram_list) return NULL;

    for(n=min; n <= max; n++) {
        if(one_pass(ngram_list, source_string, n) < 0) {
            Py_DECREF(ngram_list);
            return NULL;
        }
    }

    return ngram_list;
}
Beispiel #3
0
int main()
{
  printf("One pass: variance = %f\n", one_pass(measurements, 6));
  printf("Two pass: variance = %f\n", two_pass(measurements, 6));
}