Exemple #1
0
/* Return true (1) iff *any* strides of sz decrease when we
   tensor_inplace_copy(k) *or* if *all* strides of sz are unchanged
   but *any* strides of vecsz decrease.  This is used in indirect.c
   to determine whether to use INPLACE_IS or INPLACE_OS.

   Note: X(tensor_strides_decrease)(sz, vecsz, INPLACE_IS)
         || X(tensor_strides_decrease)(sz, vecsz, INPLACE_OS)
         || X(tensor_inplace_strides2)(p->sz, p->vecsz)
   must always be true. */
int X(tensor_strides_decrease)(const tensor *sz, const tensor *vecsz,
			       inplace_kind k)
{
     return(tensor_strides_decrease(sz, k)
	    || (X(tensor_inplace_strides)(sz)
		&& tensor_strides_decrease(vecsz, k)));
}
/* Return true (1) iff *any* strides of sz decrease when we
   tensor_inplace_copy(k) *or* if *all* strides of sz are unchanged
   but *any* strides of vecsz decrease.  This is used in indirect.c
   to determine whether to use INPLACE_IS or INPLACE_OS.

   Note: X(tensor_strides_decrease)(sz, vecsz, INPLACE_IS)
         || X(tensor_strides_decrease)(sz, vecsz, INPLACE_OS)
         || X(tensor_inplace_strides2)(p->sz, p->vecsz)
   must always be true. */
int fftwf_tensor_strides_decrease(const tensor *sz, const tensor *vecsz,
			       inplace_kind k)
{
     return(tensor_strides_decrease(sz, k)
	    || (fftwf_tensor_inplace_strides(sz)
		&& tensor_strides_decrease(vecsz, k)));
}