csc-656-coding-project-2/sum_indirect.cpp
2024-10-24 18:25:36 -07:00

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