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