#include <iostream>
static size_t dimension = 4 * 1024;
static const int maxIter = 10;
static const int sparsityFactor = 7;
void setupInputs()
{
A = A * ((A % sparsityFactor) == 0) / 1000;
std::cout << "Sparsity of A = "
<< "%" << std::endl;
std::cout << "Memory Usage of A = "
<< A.
bytes() / (1024.f * 1024.f)
<< " MB" << std::endl;
std::cout << "Memory Usage of spA = "
<< " MB" << std::endl;
}
void sparseConjugateGradient(void)
{
for (int i = 0; i < maxIter; ++i) {
array alpha = alpha_num/alpha_den;
array beta = beta_num/alpha_num;
}
}
void denseConjugateGradient(void)
{
for (int i = 0; i < maxIter; ++i) {
array alpha = alpha_num/alpha_den;
array beta = beta_num/alpha_num;
}
}
void checkConjugateGradient(
const af::array in)
{
for (int i = 0; i < maxIter; ++i) {
array alpha = alpha_num/alpha_den;
array beta = beta_num/alpha_num;
}
std::cout<<"Final difference in solutions:\n";
}
int main(int argc, char *argv[])
{
setupInputs();
std::cout << "Verifying Dense Conjugate Gradient:" << std::endl;
checkConjugateGradient(A);
std::cout << "Verifying Sparse Conjugate Gradient:" << std::endl;
checkConjugateGradient(spA);
std::cout << "Dense Conjugate Gradient Time: "
<<
timeit(denseConjugateGradient) * 1000
<< "ms" << std::endl;
std::cout << "Sparse Conjugate Gradient Time: "
<<
timeit(sparseConjugateGradient) * 1000
<< "ms" << std::endl;
return 0;
}