dispatch_apply GCD для «для цикла»

Может ли кто-нибудь помочь мне, отформатировав следующий тип цикла для GCD dispatch_apply запрос?

for (y = a; y + b < h - c; y += d)
{
// body independent of y
*m++ = *n++ - *p++;
}

где *m, *n а также *p являются поплавковыми указателями

API dispatch_apply имеет следующее описание:

dispatch_apply(<#size_t iterations#>, <#dispatch_queue_t queue#>, <#^(size_t)block#>)

Это может быть больше математической загадкой, но любая помощь будет отличной!

Благодарю.

РЕДАКТИРОВАТЬ: Моя работа заключается в следующем:

dispatch_apply((h-c-b-a)/d + 1, someQueue, ^(size_t blkId){
m[blkId] = n[blkId] - p[blkId];
});

1

Решение

dispatch_apply((h - c - b - a + d - 1)/d, dispatch_main(), ^(blkId) {
m[blkId] = n[blkId] - p[blkId]
});

ОБНОВЛЕНИЕ: следующий должен иметь тот же результат

dispatch_apply(ceil((double)(h - c - b - a) / d ), dispatch_main(), ^(blkId) {
m[blkId] = n[blkId] - p[blkId]
});

в первом варианте я использовал это (int)ceil( x / y ) == (int)( x + y - 1 / y )

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]