Пример #1
0
static int applicable(const S *ego, const problem *p_, const planner *plnr)
{
     if (NO_BUFFERINGP(plnr)) return 0;
     if (!applicable0(ego, p_, plnr)) return 0;

     if (NO_UGLYP(plnr)) {
	  const problem_dft *p = (const problem_dft *) p_;
	  if (p->ri != p->ro) return 0;
	  if (X(toobig)(p->sz->dims[0].n)) return 0;
     }
     return 1;
}
Пример #2
0
static int applicable(const problem *p_, const S *ego, const planner *plnr)
{
     const problem_rdft2 *p;

     if (NO_BUFFERINGP(plnr)) return 0;

     if (!applicable0(p_, ego, plnr)) return 0;

     p = (const problem_rdft2 *) p_;
     if (NO_UGLYP(plnr)) {
	  if (p->r0 != p->cr) return 0;
	  if (X(toobig)(p->sz->dims[0].n)) return 0;
     }
     return 1;
}
static int applicable(const problem *p_, const planner *plnr)
{
     const problem_rdft2 *p;

     if (NO_BUFFERINGP(plnr)) return 0;

     if (!applicable0(p_, plnr)) return 0;

     p = (const problem_rdft2 *) p_;
     if (p->kind == HC2R) {
	  if (NO_UGLYP(plnr)) {
	       /* UGLY if in-place and too big, since the problem
		  could be solved via transpositions */
	       if (p->r0 == p->cr && X(toobig)(p->sz->dims[0].n)) 
		    return 0;
	  }
     } else {
	  if (NO_UGLYP(plnr)) {
	       if (p->r0 != p->cr || X(toobig)(p->sz->dims[0].n))
		    return 0;
	  }
     }
     return 1;
}
Пример #4
0
static int applicable(const S *ego, const problem *p_, const planner *plnr)
{
     const problem_rdft *p;

     if (NO_BUFFERINGP(plnr)) return 0;

     if (!applicable0(ego, p_, plnr)) return 0;

     p = (const problem_rdft *) p_;
     if (p->kind[0] == HC2R) {
	  if (NO_UGLYP(plnr)) {
	       /* UGLY if in-place and too big, since the problem
		  could be solved via transpositions */
	       if (p->I == p->O && fftwf_toobig(p->sz->dims[0].n))
		    return 0;
	  }
     } else {
	  if (NO_UGLYP(plnr)) {
	       if (p->I != p->O) return 0;
	       if (fftwf_toobig(p->sz->dims[0].n)) return 0;
	  }
     }
     return 1;
}