Morpheus is an exciting new linear algebra package. It currently contains a dense matrix and dense vector class, but we hope to expand its features as it grows in popularity.
Okay, so Morpheus is really just a test project for an ATPESC tutorial...but at least it has a cool name!
ssh <username>@vesta.alcf.anl.govgit clone https://github.com/amklinv/morpheus.gitcd morpheusmake./runtestsruntests is a perl script which runs the three tests for you. This step generates the .gcda files.gcov *.cppcat the file). Lines that have been tested are marked by the number of times they were executed. Lines that have NOT been tested are preceeded by #####. Dashes denote lines that contain no instructions, such as blank lines or curly braces.
5: 85:bool Matrix::isSymmetric() const
-: 86:{
5: 87: if(nrows_ != ncols_)
#####: 88: return false;
-: 89:
30: 90: for(int r=0; r<nrows_; r++)
-: 91: {
150: 92: for(int c=0; c<ncols_; c++)
-: 93: {
125: 94: if(data_[r][c] != data_[c][r])
#####: 95: return false;
-: 96: }
-: 97: }
-: 98:
5: 99: return true;
-: 100:}
![$\left[\begin{array}{r}-1\\0\\0\end{array}\right]$](form_3.png)
To create the html pages you're currently looking at, all you have to do is type doxygen in the source directory. (Doxygen is already installed on Vesta.) It reads Doxyfile, which I generated with doxywizard on my workstation and checked into the repository. Alternatively, you can generate such files by hand.
lcov and doxywizard are great tools for a personal workstation, but not-so-great tools for computing clusters. I personally prefer using the GUIs, but it's important to know how to use gcov and doxygen too, since they're available on more systems. If you desperately need the HTML files generated by lcov, they are available here.
1.6.1