Files
tssc-hpcg/src/TestCG.hpp
2026-01-18 20:37:50 +08:00

46 lines
1.4 KiB
C++

//@HEADER
// ***************************************************
//
// HPCG: High Performance Conjugate Gradient Benchmark
//
// Contact:
// Michael A. Heroux ( maherou@sandia.gov)
// Jack Dongarra (dongarra@eecs.utk.edu)
// Piotr Luszczek (luszczek@eecs.utk.edu)
//
// ***************************************************
//@HEADER
/*!
@file TestCG.hpp
HPCG data structure
*/
#ifndef TESTCG_HPP
#define TESTCG_HPP
#include "CGData.hpp"
#include "SparseMatrix.hpp"
#include "Vector.hpp"
#include "hpcg.hpp"
struct TestCGData_STRUCT
{
int count_pass; //!< number of succesful tests
int count_fail; //!< number of succesful tests
int expected_niters_no_prec; //!< expected number of test CG iterations without preconditioning with diagonally
//!< dominant matrix (~12)
int expected_niters_prec; //!< expected number of test CG iterations with preconditioning and with diagonally
//!< dominant matrix (~1-2)
int niters_max_no_prec; //!< maximum number of test CG iterations without predictitioner
int niters_max_prec; //!< maximum number of test CG iterations without predictitioner
double normr; //!< residual norm achieved during test CG iterations
};
typedef struct TestCGData_STRUCT TestCGData;
extern int TestCG(SparseMatrix& A, CGData& data, Vector& b, Vector& x, TestCGData& testcg_data);
#endif // TESTCG_HPP