コード例 #1
0
static int applicable0(const solver *ego_, const problem *p_, int *dp)
{
     if (RDFT2P(p_)) {
          const S *ego = (const S *) ego_;
          const problem_rdft2 *p = (const problem_rdft2 *) p_;
	  if (FINITE_RNK(p->vecsz->rnk)
	      && p->vecsz->rnk > 0
	      && pickdim(ego, p->vecsz, 
			 p->r != p->rio && p->r != p->iio, dp)) {
	       if (p->r != p->rio && p->r != p->iio)
		    return 1;  /* can always operate out-of-place */

	       return(X(rdft2_inplace_strides)(p, *dp));
	  }
     }

     return 0;
}
コード例 #2
0
ファイル: nop2.c プロジェクト: OS2World/MM-SOUND-PM123
static int applicable(const solver *ego_, const problem *p_)
{
     UNUSED(ego_);
     if (RDFT2P(p_)) {
          const problem_rdft2 *p = (const problem_rdft2 *) p_;
          return( 
		 /* case 1 : -infty vector rank */
		    (p->vecsz->rnk == RNK_MINFTY)
		 
		 /* case 2 : rank-0 in-place HC2R rdft */
		 || ( 
		        p->kind == HC2R
		     && p->sz->rnk == 0
		     && FINITE_RNK(p->vecsz->rnk)
		     && (p->r == p->rio || p->r == p->iio)
		     && X(rdft2_inplace_strides)(p, RNK_MINFTY)
		      ));
     }
     return 0;
}