I recently wrote some code that used the sparse matrix container of glas. I noticed two interesting things:
1) The (reference) documentation for the sparse matrix container is very well written and seems to be complete.
2) Even so all I had to do was include "glas/sparse/compressed.hpp" (respectively "glas/sparse/coordinate.hpp", as I learned from the reference documentation), I still wondered why there exists both "glas/container/compressed_sparse_matrix.hpp" and "glas/sparse/container/compressed_sparse_structure.hpp" (respectively "glas/container/coordinate_sparse_matrix.hpp" and "glas/sparse/container/coordinate_sparse_structure.hpp"). Is this because of backward compatibility? I even took a look inside these files, and found out that both define the class glas::compressed_sparse_structure, but the definitions are not completely identical. To be honest, I would try to remove "compressed_sparse_matrix.hpp" (respectively "compressed_sparse_matrix.hpp"), because the file name is different from the name of the class defined in that file, and even collides with the class defined in "compressed_sparse_structure.hpp".
"Der Pessimist behauptet, dass alles schon so schlimm ist,
dass es gar nicht mehr schlimmer sein könnte.
Worauf der Optimist erwidert: Oh doch!"
- Vladimir Bukowsky