An Example, for Reactions:



newfp = dt_fp_allocfp(size);
mols = dt_stream(reaction, TYP_MOLECULE);
while (NULL_OB != (mol = dt_next(mols)))
  {
    tempfp = dt_fp_generatefp(mol, minsteps, maxsteps, size);
    str = dt_stringvalue(&lens, tempfp);
    switch (dt_getrole(mol, reaction))
      {
        case ROLE_PRODUCT:
          dt_fp_setrange(newfp, 0, dt_fp_nbits(newfp), lens, str, 0,
                         DX_FP_OR);
          break;
        case ROLE_REACTANT:
          dt_fp_setrange(newfp, 0, dt_fp_nbits(newfp) - 1, lens, str, 1,
                         DX_FP_OR);
          dt_fp_setrange(newfp, dt_fp_nbits(newfp) - 1, 1, lens, str, 0,
                         DX_FP_OR);
          break;
      }
    dt_dealloc(tempfp);
  }

prev