Next: Householder solver for linear systems, Previous: Givens Rotations, Up: Linear Algebra [Index]

A Householder transformation is a rank-1 modification of the identity
matrix which can be used to zero out selected elements of a vector. A
Householder matrix *P* takes the form,

P = I - \tau v v^T

where *v* is a vector (called the *Householder vector*) and
*\tau = 2/(v^T v)*. The functions described in this section use the
rank-1 structure of the Householder matrix to create and apply
Householder transformations efficiently.

- Function:
*double***gsl_linalg_householder_transform***(gsl_vector **`w`) - Function:
*gsl_complex***gsl_linalg_complex_householder_transform***(gsl_vector_complex **`w`) This function prepares a Householder transformation

*P = I - \tau v v^T*which can be used to zero all the elements of the input vector`w`except the first. On output the Householder vector`v`is stored in`w`and the scalar*\tau*is returned. The householder vector`v`is normalized so that`v`[0] = 1, however this 1 is not stored in the output vector. Instead,`w`[0] is set to the first element of the transformed vector, so that if*u = P w*,`w`[0] =*u*[0] on output and the remainder of*u*is zero.

- Function:
*int***gsl_linalg_householder_hm***(double*`tau`, const gsl_vector *`v`, gsl_matrix *`A`) - Function:
*int***gsl_linalg_complex_householder_hm***(gsl_complex*`tau`, const gsl_vector_complex *`v`, gsl_matrix_complex *`A`) This function applies the Householder matrix

*P*defined by the scalar`tau`and the vector`v`to the left-hand side of the matrix`A`. On output the result*P A*is stored in`A`.

- Function:
*int***gsl_linalg_householder_mh***(double*`tau`, const gsl_vector *`v`, gsl_matrix *`A`) - Function:
*int***gsl_linalg_complex_householder_mh***(gsl_complex*`tau`, const gsl_vector_complex *`v`, gsl_matrix_complex *`A`) This function applies the Householder matrix

*P*defined by the scalar`tau`and the vector`v`to the right-hand side of the matrix`A`. On output the result*A P*is stored in`A`.

- Function:
*int***gsl_linalg_householder_hv***(double*`tau`, const gsl_vector *`v`, gsl_vector *`w`) - Function:
*int***gsl_linalg_complex_householder_hv***(gsl_complex*`tau`, const gsl_vector_complex *`v`, gsl_vector_complex *`w`) This function applies the Householder transformation

*P*defined by the scalar`tau`and the vector`v`to the vector`w`. On output the result*P w*is stored in`w`.

Next: Householder solver for linear systems, Previous: Givens Rotations, Up: Linear Algebra [Index]