コード例 #1
0
ファイル: KimNeighborNEIGHPUREH.cpp プロジェクト: auag92/n2dm
int KimNeighborNEIGHPUREH::GetNeighbors(int n, int *neighbors, Vec *diffs, double *diffs2,
                                        int& size, double r /* = -1.0 */ ) const
{
  int currentAtom;
  int number;
  int *rawneighbors;
  double *Rij;  // Not used in this KIM neighborlist mode.
  int ier = KIM_API_get_neigh((void*)pkim, nbmode, check_iterator(n),
      &currentAtom, &number, &rawneighbors, &Rij);
  if (KIM_STATUS_OK != ier)
    throw AsapError("KIM_API_get_neigh failed ") << __FILE__ << ":" << __LINE__;
  assert(currentAtom == n);
  // Now construct the list of distance vectors
  const Vec *pos = atoms->GetPositions();
  const Vec *thispos = pos + n;
  int numnb = 0;
  double rcut2 = this->rcut2;
  if (r > 0)
    rcut2 = r*r;
  for (int i = 0; i < number; i++)
    {
      const Vec *otherpos = pos + rawneighbors[i];
      diffs[numnb] = *otherpos - *thispos;
      diffs2[numnb] = diffs[numnb] * diffs[numnb];
      if (diffs2[numnb] <= rcut2)
        {
          neighbors[numnb] = rawneighbors[i];
          numnb++;
        }
    }
  assert(numnb <= size);
  size -= numnb;
  return numnb;
}
コード例 #2
0
gboolean
gtk_text_region_iterator_is_end (GtkTextRegionIterator *iter)
{
	GtkTextRegionIteratorReal *real;

	g_return_val_if_fail (iter != NULL, FALSE);

	real = (GtkTextRegionIteratorReal *)iter;
	g_return_val_if_fail (check_iterator (real), FALSE);

	return (real->subregions == NULL);
}
コード例 #3
0
ファイル: unit_test.c プロジェクト: eroullit/net-toolbox
static void test_backend(enum coll_eng engine, enum hash_alg hash_alg)
{
	fputs("\tcheck insert ... ", stdout); fflush(stdout);
	check_insert(engine, hash_alg);

	fputs("\tcheck remove ... ", stdout); fflush(stdout);
	check_remove(engine, hash_alg);

	fputs("\tcheck get/remove ... ", stdout); fflush(stdout);
	check_get_remove(engine, hash_alg);

	fputs("\tcheck iterator... ", stdout); fflush(stdout);
	check_iterator(engine, hash_alg);
}
コード例 #4
0
gboolean
gtk_text_region_iterator_next (GtkTextRegionIterator *iter)
{
	GtkTextRegionIteratorReal *real;

	g_return_val_if_fail (iter != NULL, FALSE);

	real = (GtkTextRegionIteratorReal *)iter;
	g_return_val_if_fail (check_iterator (real), FALSE);

	if (real->subregions != NULL) {
		real->subregions = g_list_next (real->subregions);
		return TRUE;
	}
	else
		return FALSE;
}
コード例 #5
0
void
gtk_text_region_iterator_get_subregion (GtkTextRegionIterator *iter,
					GtkTextIter           *start,
					GtkTextIter           *end)
{
	GtkTextRegionIteratorReal *real;
	Subregion *sr;

	g_return_if_fail (iter != NULL);

	real = (GtkTextRegionIteratorReal *)iter;
	g_return_if_fail (check_iterator (real));
	g_return_if_fail (real->subregions != NULL);

	sr = (Subregion*)real->subregions->data;
	g_return_if_fail (sr != NULL);

	if (start)
		gtk_text_buffer_get_iter_at_mark (real->region->buffer, start, sr->start);
	if (end)
		gtk_text_buffer_get_iter_at_mark (real->region->buffer, end, sr->end);
}