19int main(
int argc,
char* argv[])
23 cout <<
"Don't forget to pass the input file name" << endl;
25 ifstream input(argv[1]);
26 string rhsmatrix = string(
"restrict_T_") + string(argv[1]);
27 string diagonal = string(
"diag_") + string(argv[1]);
28 string nondiagmat = string(
"offdiag_") + string(argv[1]);
30 ofstream rhsout(rhsmatrix.c_str());
31 ofstream diagout(diagonal.c_str());
32 ofstream matout(nondiagmat.c_str());
35 input >> m >> n >> nnz;
37 iota(perm.begin(), perm.end(), 1);
38 random_shuffle(perm.begin(), perm.end());
42 rhsout << m <<
"\t" << (half+1) <<
"\t" << m << endl;
44 rhsout << m <<
"\t" << half <<
"\t" << m << endl;
47 for(
int i=0; i< half; ++i)
49 rhsout << perm[2*i] <<
"\t" << (i+1) <<
"\t" << one << endl;
50 rhsout << perm[2*i+1] <<
"\t" << (i+1) <<
"\t" << one << endl;
54 rhsout << perm.back() <<
"\t" << (half+1) <<
"\t" << one << endl;
61 diagout << m <<
"\t" << one <<
"\t" << zero << endl;
62 matout << m <<
"\t" << n <<
"\t" << zero << endl;
65 input >> row >> column >> value;
69 diagout << row <<
"\t" << one <<
"\t" << value << endl;
74 matout << row <<
"\t" << column <<
"\t" << value << endl;
78 cout <<
"Diagonal nnz: " << diagnnz << endl;
79 cout <<
"Off-diagonal nnz: " << nondiagnnz << endl;