Итератор подсчета тяги внутри функции - PullRequest
0 голосов
/ 21 сентября 2011

Большое спасибо за ответы на Пользовательская функция Cuda Thrust

И последнее, что я хотел бы передать другому вектору для копирования таких значений, как этот?

for (i=0;i<n;i++)
        for (j=0;j<n;j++)
            y[i*n+j]=h1[i]*a1[pos*n+j];

Мне до сих пор не ясно, как передавать значения в созданную функцию. Спасибо!

1 Ответ

1 голос
/ 01 октября 2011
thrust::transform(
    thrust::make_permutation_iterator(h1.begin(),
        thrust::make_transform_iterator(thrust::make_counting_iterator(0),
            IndexDivFunctor(n))),
    thrust::make_permutation_iterator(h1.begin(),
        thrust::make_transform_iterator(thrust::make_counting_iterator(0),
            IndexDivFunctor(n))) + n * n,
    thrust::make_permutation_iterator(a1.begin(),
        thrust::make_transform_iterator(thrust::make_counting_iterator(0),
            Indexa1Functor(n, pos))),
    y.begin(),
    thrust::multiplies<double>());
...