16 #ifndef dealii_householder_h 17 #define dealii_householder_h 33 template <
typename number>
78 template <
typename number>
95 template <
typename number2>
103 template <
typename number2>
117 template <
typename number2>
119 least_squares(Vector<number2> &dst,
const Vector<number2> &src)
const;
124 template <
typename number2>
133 template <
class VectorType>
141 template <
class VectorType>
166 template <
typename number>
167 template <
typename number2>
171 const size_type m = M.n_rows(), n = M.n_cols();
186 for (i = j; i < m; ++i)
193 number2 s = (
storage(j, j) < 0) ? std::sqrt(sigma) : -std::sqrt(sigma);
195 number2 beta = std::sqrt(1. / (sigma - s *
storage(j, j)));
203 for (i = j + 1; i < m; ++i)
212 for (i = j + 1; i < m; ++i)
216 for (i = j + 1; i < m; ++i)
224 template <
typename number>
225 template <
typename number2>
233 template <
typename number>
234 template <
typename number2>
237 const Vector<number2> &src)
const 247 aux->reinit(src,
true);
258 sum += static_cast<number2>(
storage(i, j)) * (*aux)(i);
262 (*aux)(i) -= sum * static_cast<number2>(
storage(i, j));
267 sum += (*aux)(i) * (*aux)(i);
273 return std::sqrt(sum);
278 template <
typename number>
279 template <
typename number2>
292 aux->reinit(src,
true);
303 sum +=
storage(i, j) * (*aux)(i);
307 (*aux)(i) -= sum *
storage(i, j);
312 sum += (*aux)(i) * (*aux)(i);
318 Vector<number2> v_dst, v_aux;
327 return std::sqrt(sum);
331 template <
typename number>
332 template <
class VectorType>
340 template <
typename number>
341 template <
class VectorType>
static ::ExceptionBase & ExcEmptyMatrix()
#define AssertDimension(dim1, dim2)
SymmetricTensor< 2, dim, Number > e(const Tensor< 2, dim, Number > &F)
void Tvmult(VectorType &dst, const VectorType &src) const
void backward(Vector< number2 > &dst, const Vector< number2 > &src) const
T sum(const T &t, const MPI_Comm &mpi_communicator)
void reinit(const TableIndices< N > &new_size, const bool omit_default_initialization=false)
#define Assert(cond, exc)
static ::ExceptionBase & ExcDimensionMismatch(std::size_t arg1, std::size_t arg2)
#define DEAL_II_NAMESPACE_CLOSE
void vmult(VectorType &dst, const VectorType &src) const
FullMatrix< double > storage
Expression fabs(const Expression &x)
unsigned int global_dof_index
std::vector< number > diagonal
void initialize(const FullMatrix< number2 > &A)
#define DEAL_II_NAMESPACE_OPEN
double least_squares(Vector< number2 > &dst, const Vector< number2 > &src) const
static ::ExceptionBase & ExcNotImplemented()
#define AssertIsFinite(number)
void fill(const FullMatrix< number2 > &src, const size_type dst_offset_i=0, const size_type dst_offset_j=0, const size_type src_offset_i=0, const size_type src_offset_j=0)