35 lines
603 B
C++
35 lines
603 B
C++
#include <algorithm>
|
|
#include <chrono>
|
|
#include <iomanip>
|
|
#include <iostream>
|
|
#include <random>
|
|
#include <vector>
|
|
#include <string.h>
|
|
|
|
int64_t sumResult;
|
|
|
|
void setup(int64_t N, uint64_t A[])
|
|
{
|
|
printf(" inside sum_indirect problem_setup, N=%lld \n", N);
|
|
sumResult = 0;
|
|
|
|
for (int64_t i = 0; i < N; i++)
|
|
{
|
|
A[i] = lrand48() % N;
|
|
}
|
|
}
|
|
|
|
int64_t
|
|
sum(int64_t N, uint64_t A[])
|
|
{
|
|
printf(" inside sum_indirect perform_sum, N=%lld \n", N);
|
|
int64_t counter = A[0];
|
|
for (int64_t i = 0; i < N; i++)
|
|
{
|
|
sumResult += counter;
|
|
counter = A[counter];
|
|
}
|
|
|
|
return sumResult;
|
|
}
|