%
\section{Linear Algebra}

This directory contains files related to linear algebra operations.  Files such as NekMatrix, BlockMatrix and NekLinearSystem are fundamental to many of the operations we do within {\nek}.
These files represent our attempt to encapsulate linear algebra operations in a way that make sense from the programmer perspective but for which we do not loose efficiency.  As can be seen in these
routines and throughout the code, we rely heavily on BLAS (Basic Linear Algebra Subroutines).

\begin{center}
\begin{tabular}{|c | c | c |} \hline
Arpack.hpp &	blas.cpp & Blas.hpp \\ \hline
BlasArray.hpp	& BlockMatrix.cpp & BlockMatrix.hpp \\ \hline
CanGetRawPtr.hpp & ExplicitInstantiation.h & Lapack.hpp \\ \hline
MatrixBase.cpp	& MatrixBase.hpp	 & MatrixFuncs.cpp	\\ \hline
MatrixFuncs.h	& MatrixOperations.cpp & MatrixOperations.hpp \\ \hline
MatrixStorageType.h & MatrixType.h & MatrixVectorMultiplication.cpp	\\ \hline
NekLinAlgAlgorithms.hpp	& NekLinSys.hpp	& NekLinSysIter.cpp \\ \hline
NekLinSysIter.h &  NekLinSysIterCG.cpp & NekLinSysIterCG.h \\ \hline
NekLinSysIterGMRES.cpp & NekLinSysIterGMRES.h & NekMatrix.hpp \\ \hline
NekMatrixFwd.hpp & NekNonlinSys.cpp & NekNonlinSys.h \\ \hline
NekNonlinSysNewton.cpp & NekNonlinSysNewton.h & NekPoint.hpp \\ \hline
NekTypeDefs.hpp &  NekVector.cpp & NekVector.hpp \\ \hline
NekVectorFwd.hpp & NistSparseDescriptors.hpp & PointerWrapper.h \\ \hline
ScaledMatrix.cpp & ScaledMatrix.hpp & SparseDiagBlkMatrix.cpp \\ \hline
SparseDiagBlkMatrix.hpp & SparseMatrix.cpp & SparseMatrix.hpp \\ \hline
SparseMatrixFwd.hpp & SparseUtils.cpp & SparseUtils.hpp \\ \hline
StandardMatrix.cpp & StandardMatrix.hpp & StorageSmvBsr.cpp \\ \hline
StorageSmvBsr.hpp & TransF77.hpp & \\ \hline
\end{tabular}
\end{center}
