36 #ifndef NEKTAR_LIB_UTILITIES_LINEAR_ALGEBRA_NEK_LIN_ALG_ALGORITHMS_HPP 
   37 #define NEKTAR_LIB_UTILITIES_LINEAR_ALGEBRA_NEK_LIN_ALG_ALGORITHMS_HPP 
   52     template<
typename DataType>
 
   53     std::vector<NekVector<DataType> > 
 
   60         unsigned int dim = x[0].GetDimension();
 
   61         std::vector<VectorType> q(x.size(), VectorType());
 
   66         MatrixType r(dim, dim);
 
   67         r(0,0) = x[0].L2Norm();
 
   69         if( r(0,0) == DataType(0) )
 
   76         for(
unsigned int j = 1; j < x.size(); ++j)
 
   78             for(
unsigned int i = 0; i <= j-1; ++i)
 
   80                 r(i,j) = q[i].Dot(x[j]);
 
   84             for(
unsigned int i = 0; i <= j-1; ++i)
 
   90             if( r(j,j) == DataType(0) )
 
  102 #endif //NEKTAR_LIB_UTILITIES_LINEAR_ALGEBRA_NEK_LIN_ALG_ALGORITHMS_HPP 
std::vector< NekVector< DataType > > GramSchmidtOrthogonalization(const std::vector< NekVector< DataType > > &x)
Calculates the orthogonal, normalized vectors from linearly independent input.