Может ли кто-нибудь помочь мне, отформатировав следующий тип цикла для 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];
});
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 )
Других решений пока нет …