gridloop1; loop with memory management

  for (i = 0; i < nx; i++) {
    for (j = 0; j < ny; j++) {
      a_ij = (double *)(a->data + i*a->strides[0] + j*a->strides[1]);
      x_i = (double *)(xcoor->data + i*xcoor->strides[0]);
      y_j = (double *)(ycoor->data + j*ycoor->strides[0]);

      /* call Python function pointed to by func1: */
      arglist = Py_BuildValue("(dd)", *x_i, *y_j);
      result = PyEval_CallObject(func1, arglist);
      Py_DECREF(arglist);
      if (result == NULL) return NULL; /* exception in func1 */
      *a_ij = PyFloat_AS_DOUBLE(result);
      Py_DECREF(result); 
    }
  }

previousnexttable of contents