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.gov
git clone https://github.com/amklinv/morpheus.git
cd morpheus
make
./runtests
runtests
is a perl script which runs the three tests for you. This step generates the .gcda files.gcov *.cpp
cat
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:}
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.