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);
}