#include #include #include #include #include #include #include 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; }