Example #1
0
static bool evalfrontforward(const GtSeqabstract *useq,
                             const GtSeqabstract *vseq,
                             GtFrontResource *ftres,
                             const GtFrontspec *prevfspec,
                             const GtFrontspec *fspec,
                             GtWord r)
{
  GtWord k;
  bool defined = false;
  GtFrontvalue *fval;

  for (fval = ftres->frontspace + fspec->offset, k = fspec->left;
       k < fspec->left + fspec->width; k++, fval++)
  {
    if (r <= 0 || k <= -r || k >= r)
    {
      evalentryforward(useq,vseq,ftres,fval,prevfspec,k);
      if (GT_FRONT_ROWVALUE(fval) >= 0)
      {
        defined = true;
      }
#ifdef SKDEBUG
      printf("store front[k="GT_WD"]="GT_WD" ",k,GT_FRONT_ROWVALUE(fval));
      printf("at index "GT_WD"\n",(GtWord) (fval-ftres->frontspace));
#endif
    } else
    {
#ifdef SKDEBUG
      printf("store front[k="GT_WD"]=GT_FRONT_MINUSINFINITY ",k);
      printf("at index "GT_WD"\n",(GtWord) (fval-ftres->frontspace));
#endif
      GT_FRONT_STORE(ftres,GT_FRONT_ROWVALUE(fval),
                     GT_FRONT_MINUSINFINITY(ftres));
    }
  }
#ifdef SKDEBUG
  printf("frontvalues[r="GT_WD"]=",r);
  showfront(ftres,fspec,r);
#endif
  return defined;
}
Example #2
0
static bool evalfrontforward(FrontResource *gl,
                             const Frontspec *prevfspec,
                             const Frontspec *fspec,
                             long r)
{
  long k;
  bool defined = false;
  Frontvalue *fval;

  for (fval = gl->frontspace + fspec->offset, k = fspec->left;
       k < fspec->left + fspec->width; k++, fval++)
  {
    if (r <= 0 || k <= -r || k >= r)
    {
      evalentryforward(gl,fval,prevfspec,k);
      if (ROWVALUE(fval) >= 0)
      {
        defined = true;
      }
#ifdef SKDEBUG
      printf("store front[k=%ld]=%ld ",k,ROWVALUE(fval));
      printf("at index %ld\n",(long) (fval-gl->frontspace));
#endif
    } else
    {
#ifdef SKDEBUG
      printf("store front[k=%ld]=MINUSINFINITYFRONT ",k);
      printf("at index %ld\n",(long) (fval-gl->frontspace));
#endif
      STOREFRONT(gl,ROWVALUE(fval),MINUSINFINITYFRONT(gl));
    }
  }
#ifdef SKDEBUG
  printf("frontvalues[r=%ld]=",r);
  showfront(gl,fspec,r);
#endif
  return defined;
}