File: Householder-Transformations.html

package info (click to toggle)
gsl-ref-html 2.3-1
  • links: PTS
  • area: non-free
  • in suites: bullseye, buster, sid
  • size: 6,876 kB
  • ctags: 4,574
  • sloc: makefile: 35
file content (137 lines) | stat: -rw-r--r-- 8,181 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 The GSL Team.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being "GNU General Public License" and "Free Software
Needs Free Documentation", the Front-Cover text being "A GNU Manual",
and with the Back-Cover Text being (a) (see below). A copy of the
license is included in the section entitled "GNU Free Documentation
License".

(a) The Back-Cover Text is: "You have the freedom to copy and modify this
GNU Manual." -->
<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>GNU Scientific Library &ndash; Reference Manual: Householder Transformations</title>

<meta name="description" content="GNU Scientific Library &ndash; Reference Manual: Householder Transformations">
<meta name="keywords" content="GNU Scientific Library &ndash; Reference Manual: Householder Transformations">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Function-Index.html#Function-Index" rel="index" title="Function Index">
<link href="Linear-Algebra.html#Linear-Algebra" rel="up" title="Linear Algebra">
<link href="Householder-solver-for-linear-systems.html#Householder-solver-for-linear-systems" rel="next" title="Householder solver for linear systems">
<link href="Givens-Rotations.html#Givens-Rotations" rel="previous" title="Givens Rotations">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Householder-Transformations"></a>
<div class="header">
<p>
Next: <a href="Householder-solver-for-linear-systems.html#Householder-solver-for-linear-systems" accesskey="n" rel="next">Householder solver for linear systems</a>, Previous: <a href="Givens-Rotations.html#Givens-Rotations" accesskey="p" rel="previous">Givens Rotations</a>, Up: <a href="Linear-Algebra.html#Linear-Algebra" accesskey="u" rel="up">Linear Algebra</a> &nbsp; [<a href="Function-Index.html#Function-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Householder-Transformations-1"></a>
<h3 class="section">14.15 Householder Transformations</h3>
<a name="index-Householder-matrix"></a>
<a name="index-Householder-transformation"></a>
<a name="index-transformation_002c-Householder"></a>

<p>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 <em>P</em> takes the form,
</p>
<div class="example">
<pre class="example">P = I - \tau v v^T
</pre></div>

<p>where <em>v</em> is a vector (called the <em>Householder vector</em>) and
<em>\tau = 2/(v^T v)</em>. The functions described in this section use the
rank-1 structure of the Householder matrix to create and apply
Householder transformations efficiently.
</p>
<dl>
<dt><a name="index-gsl_005flinalg_005fhouseholder_005ftransform"></a>Function: <em>double</em> <strong>gsl_linalg_householder_transform</strong> <em>(gsl_vector * <var>w</var>)</em></dt>
<dt><a name="index-gsl_005flinalg_005fcomplex_005fhouseholder_005ftransform"></a>Function: <em>gsl_complex</em> <strong>gsl_linalg_complex_householder_transform</strong> <em>(gsl_vector_complex * <var>w</var>)</em></dt>
<dd><p>This function prepares a Householder transformation <em>P = I - \tau v
v^T</em> which can be used to zero all the elements of the input vector <var>w</var>
except the first. On output the Householder vector <var>v</var> is stored in
<var>w</var> and the scalar <em>\tau</em> is returned. The householder vector
<var>v</var> is normalized so that <var>v</var>[0] = 1, however this 1 is not
stored in the output vector. Instead, <var>w</var>[0] is set to
the first element of the transformed vector, so that if
<em>u = P w</em>, <var>w</var>[0] = <em>u</em>[0] on output and the remainder
of <em>u</em> is zero.
</p></dd></dl>

<dl>
<dt><a name="index-gsl_005flinalg_005fhouseholder_005fhm"></a>Function: <em>int</em> <strong>gsl_linalg_householder_hm</strong> <em>(double <var>tau</var>, const gsl_vector * <var>v</var>, gsl_matrix * <var>A</var>)</em></dt>
<dt><a name="index-gsl_005flinalg_005fcomplex_005fhouseholder_005fhm"></a>Function: <em>int</em> <strong>gsl_linalg_complex_householder_hm</strong> <em>(gsl_complex <var>tau</var>, const gsl_vector_complex * <var>v</var>, gsl_matrix_complex * <var>A</var>)</em></dt>
<dd><p>This function applies the Householder matrix <em>P</em> defined by the
scalar <var>tau</var> and the vector <var>v</var> to the left-hand side of the
matrix <var>A</var>. On output the result <em>P A</em> is stored in <var>A</var>.
</p></dd></dl>

<dl>
<dt><a name="index-gsl_005flinalg_005fhouseholder_005fmh"></a>Function: <em>int</em> <strong>gsl_linalg_householder_mh</strong> <em>(double <var>tau</var>, const gsl_vector * <var>v</var>, gsl_matrix * <var>A</var>)</em></dt>
<dt><a name="index-gsl_005flinalg_005fcomplex_005fhouseholder_005fmh"></a>Function: <em>int</em> <strong>gsl_linalg_complex_householder_mh</strong> <em>(gsl_complex <var>tau</var>, const gsl_vector_complex * <var>v</var>, gsl_matrix_complex * <var>A</var>)</em></dt>
<dd><p>This function applies the Householder matrix <em>P</em> defined by the
scalar <var>tau</var> and the vector <var>v</var> to the right-hand side of the
matrix <var>A</var>. On output the result <em>A P</em> is stored in <var>A</var>.
</p></dd></dl>

<dl>
<dt><a name="index-gsl_005flinalg_005fhouseholder_005fhv"></a>Function: <em>int</em> <strong>gsl_linalg_householder_hv</strong> <em>(double <var>tau</var>, const gsl_vector * <var>v</var>, gsl_vector * <var>w</var>)</em></dt>
<dt><a name="index-gsl_005flinalg_005fcomplex_005fhouseholder_005fhv"></a>Function: <em>int</em> <strong>gsl_linalg_complex_householder_hv</strong> <em>(gsl_complex <var>tau</var>, const gsl_vector_complex * <var>v</var>, gsl_vector_complex * <var>w</var>)</em></dt>
<dd><p>This function applies the Householder transformation <em>P</em> defined by
the scalar <var>tau</var> and the vector <var>v</var> to the vector <var>w</var>.  On
output the result <em>P w</em> is stored in <var>w</var>.
</p></dd></dl>


<hr>
<div class="header">
<p>
Next: <a href="Householder-solver-for-linear-systems.html#Householder-solver-for-linear-systems" accesskey="n" rel="next">Householder solver for linear systems</a>, Previous: <a href="Givens-Rotations.html#Givens-Rotations" accesskey="p" rel="previous">Givens Rotations</a>, Up: <a href="Linear-Algebra.html#Linear-Algebra" accesskey="u" rel="up">Linear Algebra</a> &nbsp; [<a href="Function-Index.html#Function-Index" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>