Example #1
0
lref_t lport_set_translate_mode(lref_t port, lref_t mode)
{
     if (!TEXT_PORTP(port))
          vmerror_wrong_type_n(1, port);

     if (!BOOLP(mode))
          vmerror_wrong_type_n(2, mode);

     lflush_port(port);

     bool old_translate_mode = PORT_TEXT_INFO(port)->translate;

     PORT_TEXT_INFO(port)->translate = TRUEP(mode);

     return boolcons(old_translate_mode);
}
Example #2
0
static PyObject*
particles_set_cell(particles_t *self, PyObject *args)
{
  PyObject *Abox_obj, *pbc_obj = NULL;
  PyArrayObject *Abox_arr;
  PyArrayObject *pbc_arr = NULL;
  double *Abox;
  npy_bool *pbc;
  BOOL pbc_for[3];
  int ierror = ERROR_NONE;

  if (!PyArg_ParseTuple(args, "O|O", &Abox_obj, &pbc_obj))
    return NULL;

  Abox_arr = (PyArrayObject *) PyArray_FROMANY(Abox_obj, NPY_DOUBLE, 2, 2,
                                               NPY_C_CONTIGUOUS);
  if (!Abox_arr)
    return NULL;
  Abox = DOUBLEP(Abox_arr);

  pbc_for[0] = 1;
  pbc_for[1] = 1;
  pbc_for[2] = 1;
  if (pbc_obj) {
    pbc_arr = (PyArrayObject *) PyArray_FROMANY(pbc_obj, NPY_BOOL, 1, 1,
                                                NPY_C_CONTIGUOUS);
    if (!pbc_arr)
      return NULL;
    pbc = (npy_bool *) BOOLP(pbc_arr);

    pbc_for[0] = pbc[0];
    pbc_for[1] = pbc[1];
    pbc_for[2] = pbc[2];
  }

#ifdef DEBUG
  printf("[particles_set_cell] pbc_for %i, %i, %i\n", pbc_for[0], pbc_for[1],
	 pbc_for[2]);
#endif
  f_particles_set_cell(self->f90obj, Abox, pbc_for, &ierror);
  if (error_to_py(ierror))
    return NULL;

  Py_RETURN_NONE;
}