rb-gsl 1.16.0.2 → 1.16.0.3.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/ChangeLog +5 -0
  3. data/README +2 -2
  4. data/Rakefile +2 -3
  5. data/lib/gsl/version.rb +1 -1
  6. data/rdoc/alf.rdoc +5 -5
  7. data/rdoc/blas.rdoc +8 -8
  8. data/rdoc/bspline.rdoc +16 -16
  9. data/rdoc/changes.rdoc +4 -9
  10. data/rdoc/cheb.rdoc +24 -24
  11. data/rdoc/cholesky_complex.rdoc +21 -21
  12. data/rdoc/combi.rdoc +36 -36
  13. data/rdoc/complex.rdoc +21 -21
  14. data/rdoc/const.rdoc +46 -46
  15. data/rdoc/dht.rdoc +48 -48
  16. data/rdoc/diff.rdoc +41 -41
  17. data/rdoc/ehandling.rdoc +5 -5
  18. data/rdoc/eigen.rdoc +152 -152
  19. data/rdoc/fft.rdoc +145 -145
  20. data/rdoc/fit.rdoc +108 -108
  21. data/rdoc/function.rdoc +10 -10
  22. data/rdoc/graph.rdoc +16 -16
  23. data/rdoc/hist.rdoc +102 -102
  24. data/rdoc/hist2d.rdoc +41 -41
  25. data/rdoc/hist3d.rdoc +8 -8
  26. data/rdoc/index.rdoc +18 -21
  27. data/rdoc/integration.rdoc +109 -109
  28. data/rdoc/interp.rdoc +70 -70
  29. data/rdoc/intro.rdoc +6 -6
  30. data/rdoc/linalg.rdoc +187 -187
  31. data/rdoc/linalg_complex.rdoc +1 -1
  32. data/rdoc/math.rdoc +57 -57
  33. data/rdoc/matrix.rdoc +272 -272
  34. data/rdoc/min.rdoc +56 -56
  35. data/rdoc/monte.rdoc +21 -21
  36. data/rdoc/multimin.rdoc +94 -94
  37. data/rdoc/multiroot.rdoc +79 -79
  38. data/rdoc/narray.rdoc +31 -31
  39. data/rdoc/ndlinear.rdoc +53 -53
  40. data/rdoc/nonlinearfit.rdoc +99 -99
  41. data/rdoc/ntuple.rdoc +30 -30
  42. data/rdoc/odeiv.rdoc +87 -87
  43. data/rdoc/perm.rdoc +89 -89
  44. data/rdoc/poly.rdoc +65 -65
  45. data/rdoc/qrng.rdoc +20 -20
  46. data/rdoc/randist.rdoc +81 -81
  47. data/rdoc/ref.rdoc +56 -56
  48. data/rdoc/rng.rdoc +84 -84
  49. data/rdoc/roots.rdoc +56 -56
  50. data/rdoc/sf.rdoc +427 -427
  51. data/rdoc/siman.rdoc +18 -18
  52. data/rdoc/sort.rdoc +29 -29
  53. data/rdoc/start.rdoc +8 -8
  54. data/rdoc/stats.rdoc +51 -51
  55. data/rdoc/sum.rdoc +11 -11
  56. data/rdoc/tensor.rdoc +30 -30
  57. data/rdoc/tut.rdoc +1 -1
  58. data/rdoc/use.rdoc +37 -37
  59. data/rdoc/vector.rdoc +187 -187
  60. data/rdoc/vector_complex.rdoc +23 -23
  61. data/rdoc/wavelet.rdoc +46 -46
  62. metadata +17 -20
  63. data/rdoc/rngextra.rdoc +0 -11
  64. data/rdoc/screenshot.rdoc +0 -40
data/rdoc/interp.rdoc CHANGED
@@ -1,44 +1,44 @@
1
1
  #
2
2
  # = Interpolation
3
- # This chapter describes functions for performing interpolation.
4
- # The library provides a variety of interpolation methods, including
5
- # Cubic splines and Akima splines. The interpolation types are interchangeable,
6
- # allowing different methods to be used without recompiling. Interpolations can
7
- # be defined for both normal and periodic boundary conditions. Additional
8
- # functions are available for computing derivatives and integrals of
9
- # interpolating functions.
10
- #
11
- # 1. {Interpolation classes}[link:rdoc/interp_rdoc.html#1]
12
- # 1. {Initializing interpolation objects}[link:rdoc/interp_rdoc.html#2]
13
- # 1. {Index Look-up and Acceleration}[link:rdoc/interp_rdoc.html#3]
14
- # 1. {Evaluation of Interpolating Functions}[link:rdoc/interp_rdoc.html#4]
15
- # 1. {Higher level interface: GSL::Spline class}[link:rdoc/interp_rdoc.html#5]
16
- # 1. {Class initialization}[link:rdoc/interp_rdoc.html#5.1]
17
- # 1. {Evaluation}[link:rdoc/interp_rdoc.html#5.2]
18
- # 1. {Finding and acceleration}[link:rdoc/interp_rdoc.html#5.3]
19
- #
20
- # == {}[link:index.html"name="1] Interpolation Classes
3
+ # This chapter describes functions for performing interpolation.
4
+ # The library provides a variety of interpolation methods, including
5
+ # Cubic splines and Akima splines. The interpolation types are interchangeable,
6
+ # allowing different methods to be used without recompiling. Interpolations can
7
+ # be defined for both normal and periodic boundary conditions. Additional
8
+ # functions are available for computing derivatives and integrals of
9
+ # interpolating functions.
10
+ #
11
+ # 1. {Interpolation classes}[link:interp_rdoc.html#label-Interpolation+Classes]
12
+ # 1. {Initializing interpolation objects}[link:interp_rdoc.html#label-Initializing+interpolation+objects]
13
+ # 1. {Index Look-up and Acceleration}[link:interp_rdoc.html#label-Index+Look-up+and+Acceleration]
14
+ # 1. {Evaluation of Interpolating Functions}[link:interp_rdoc.html#label-Evaluation+of+Interpolating+Functions]
15
+ # 1. {Higher level interface: GSL::Spline class}[link:interp_rdoc.html#label-Higher+level+interface]
16
+ # 1. {Class initialization}[link:interp_rdoc.html#label-Class+initialization]
17
+ # 1. {Evaluation}[link:interp_rdoc.html#label-Evaluation]
18
+ # 1. {Finding and acceleration}[link:interp_rdoc.html#label-Finding+and+acceleration]
19
+ #
20
+ # == Interpolation Classes
21
21
  # * GSL
22
22
  # * Interp (class)
23
23
  # * Accel (class)
24
24
  # * Spline (class)
25
- #
26
- # == {}[link:index.html"name="2] Initializing interpolation objects
25
+ #
26
+ # == Initializing interpolation objects
27
27
  #
28
28
  # ---
29
29
  # * GSL::Interp.alloc(T, n)
30
30
  # * GSL::Interp.alloc(T, x, y)
31
31
  # * GSL::Interp.alloc(x, y)
32
32
  #
33
- # These methods create an interpolation object of type <tt>T</tt> for <tt>n</tt>
33
+ # These methods create an interpolation object of type <tt>T</tt> for <tt>n</tt>
34
34
  # data-points.
35
35
  #
36
- # The library provides six types, which are specifiled by an identifier of a
36
+ # The library provides six types, which are specifiled by an identifier of a
37
37
  # constant or a string:
38
38
  #
39
39
  # * Interp::LINEAR or "linear"
40
40
  #
41
- # Linear interpolation. This interpolation method does not require any additional memory.
41
+ # Linear interpolation. This interpolation method does not require any additional memory.
42
42
  # * Interp::POLYNOMIAL or "polynomial"
43
43
  #
44
44
  # Polynomial interpolation. This method should only be used for interpolating small numbers of points because polynomial interpolation introduces large oscillations, even for well-behaved datasets. The number of terms in the interpolating polynomial is equal to the number of points.
@@ -49,24 +49,24 @@
49
49
  # * Interp::CSPLINE_PERIODIC or "gsl_cspline_periodic" or "cspline_periodic"
50
50
  #
51
51
  # Cubic spline with periodic boundary conditions
52
- # * Interp::AKIMA or "akima"
52
+ # * Interp::AKIMA or "akima"
53
53
  #
54
54
  # Non-rounded Akima spline with natural boundary conditions. This method uses the non-rounded corner algorithm of Wodicka.
55
- # * Interp::AKIMA_PERIODIC or "akima_periodic"
55
+ # * Interp::AKIMA_PERIODIC or "akima_periodic"
56
56
  #
57
57
  # Non-rounded Akima spline with periodic boundary conditions. This method uses the non-rounded corner algorithm of Wodicka.
58
- #
58
+ #
59
59
  # * ex: For cubic spline for 10 points,
60
60
  # sp = Interp.alloc("cspline", 10)
61
61
  #
62
62
  # ---
63
63
  # * GSL::Interp#init(xa, ya)
64
64
  #
65
- # This method initializes the interpolation object interp for the data
66
- # <tt>(xa,ya)</tt> where <tt>xa</tt> and <tt>ya</tt> are vectors.
67
- # The interpolation object (<tt>GSL::Interp</tt>) does not save the data
68
- # vectors <tt>xa, ya</tt> and only stores the static state computed from the data.
69
- # The <tt>xa</tt> vector is always assumed to be strictly ordered; the behavior
65
+ # This method initializes the interpolation object interp for the data
66
+ # <tt>(xa,ya)</tt> where <tt>xa</tt> and <tt>ya</tt> are vectors.
67
+ # The interpolation object (<tt>GSL::Interp</tt>) does not save the data
68
+ # vectors <tt>xa, ya</tt> and only stores the static state computed from the data.
69
+ # The <tt>xa</tt> vector is always assumed to be strictly ordered; the behavior
70
70
  # for other arrangements is not defined.
71
71
  #
72
72
  #
@@ -80,27 +80,27 @@
80
80
  # ---
81
81
  # * GSL::Interp#min_size
82
82
  #
83
- # This returns the minimum number of points required by the interpolation
84
- # type of <tt>self</tt>. For example, Akima spline interpolation requires
83
+ # This returns the minimum number of points required by the interpolation
84
+ # type of <tt>self</tt>. For example, Akima spline interpolation requires
85
85
  # a minimum of 5 points.
86
86
  #
87
- # == {}[link:index.html"name="3] Index Look-up and Acceleration
87
+ # == Index Look-up and Acceleration
88
88
  # ---
89
89
  # * GSL::Interp.bsearch(xa, x, index_lo, index_hi)
90
90
  #
91
- # This returns the index i of the vector <tt>xa</tt> such that
92
- # <tt>xa[i] <= x < x[i+1]</tt>. The index is searched for in the range
91
+ # This returns the index i of the vector <tt>xa</tt> such that
92
+ # <tt>xa[i] <= x < x[i+1]</tt>. The index is searched for in the range
93
93
  # <tt>[index_lo,index_hi]</tt>.
94
94
  #
95
95
  #
96
96
  # ---
97
97
  # * GSL::Interp#accel
98
98
  #
99
- # In C level, the library requires a <tt>gsl_interp_accel</tt> object,
100
- # but it is hidden in Ruby/GSL. It is automatically allocated
101
- # when a <tt>GSL::Interp</tt> object is created, stored in it,
102
- # and destroyed when the <tt>Interp</tt> object
103
- # is cleaned by the Ruby GC.
99
+ # In C level, the library requires a <tt>gsl_interp_accel</tt> object,
100
+ # but it is hidden in Ruby/GSL. It is automatically allocated
101
+ # when a <tt>GSL::Interp</tt> object is created, stored in it,
102
+ # and destroyed when the <tt>Interp</tt> object
103
+ # is cleaned by the Ruby GC.
104
104
  # This method is used to access to the <tt>Interp::Accel</tt> object
105
105
  # stored in <tt>self</tt>.
106
106
  #
@@ -109,54 +109,54 @@
109
109
  # * GSL::Interp#accel_find(xa, x)
110
110
  # * GSL::Interp::Accel#find(xa, x)
111
111
  #
112
- # This method performs a lookup action on the data array <tt>xa</tt>.
113
- # This is how lookups are performed during evaluation
114
- # of an interpolation. The function returns an index <tt>i</tt> such that
112
+ # This method performs a lookup action on the data array <tt>xa</tt>.
113
+ # This is how lookups are performed during evaluation
114
+ # of an interpolation. The function returns an index <tt>i</tt> such that
115
115
  # <tt>xa[i] <= x < xa[i+1]</tt>.
116
116
  #
117
117
  #
118
- # == {}[link:index.html"name="4] Evaluation of Interpolating Functions
118
+ # == Evaluation of Interpolating Functions
119
119
  #
120
120
  # ---
121
121
  # * GSL::Interp#eval(xa, ya, x)
122
122
  # * GSL::Interp#eval_e(xa, ya, x)
123
123
  #
124
- # These methods return the interpolated value for a given point <tt>x</tt>,
124
+ # These methods return the interpolated value for a given point <tt>x</tt>,
125
125
  # using the interpolation object <tt>self</tt>, data vectors <tt>xa</tt> and <tt>ya</tt>.
126
126
  # The data <tt>x</tt> can be a <tt>Numeric, Vector, Matrix</tt> or an <tt>NArray</tt>.
127
127
  # ---
128
128
  # * GSL::Interp#eval_deriv(xa, ya, x)
129
129
  # * GSL::Interp#eval_deriv_e(xa, ya, x)
130
130
  #
131
- # These methods return the derivative of an interpolated function for a
132
- # given point <tt>x</tt>, using the interpolation object <tt>self</tt>,
131
+ # These methods return the derivative of an interpolated function for a
132
+ # given point <tt>x</tt>, using the interpolation object <tt>self</tt>,
133
133
  # data vectors <tt>xa</tt> and <tt>ya</tt>.
134
134
  #
135
135
  # ---
136
136
  # * GSL::Interp#eval_deriv2(xa, ya, x)
137
137
  # * GSL::Interp#eval_deriv2_e(xa, ya, x)
138
138
  #
139
- # These methods return the second derivative of an interpolated function
140
- # for a given point <tt>x</tt>, using the interpolation object <tt>self</tt>,
139
+ # These methods return the second derivative of an interpolated function
140
+ # for a given point <tt>x</tt>, using the interpolation object <tt>self</tt>,
141
141
  # data vectors <tt>xa</tt> and <tt>ya</tt>.
142
142
  #
143
143
  # ---
144
144
  # * GSL::Interp#eval_integ(xa, ya, a, b)
145
145
  # * GSL::Interp#eval_integ_e(xa, ya, a, b)
146
146
  #
147
- # These methods return the numerical integral result of an interpolated
148
- # function over the range <tt>[a, b]</tt>, using the interpolation object <tt>self</tt>,
147
+ # These methods return the numerical integral result of an interpolated
148
+ # function over the range <tt>[a, b]</tt>, using the interpolation object <tt>self</tt>,
149
149
  # data vectors <tt>xa</tt> and <tt>ya</tt>.
150
150
  #
151
- # == {}[link:index.html"name="5] Higher level interface: GSL::Spline class
152
- # === {}[link:index.html"name="5.1] Class initialization
151
+ # == Higher level interface
152
+ # === Class initialization
153
153
  #
154
154
  # ---
155
155
  # * GSL::Spline.alloc(T, n)
156
156
  # * GSL::Spline.alloc(T, x, y)
157
157
  # * GSL::Spline.alloc(x, y, T)
158
158
  #
159
- # This creates a <tt>GSL::Spline</tt> object of type <tt>T</tt> for <tt>n</tt>
159
+ # This creates a <tt>GSL::Spline</tt> object of type <tt>T</tt> for <tt>n</tt>
160
160
  # data-points. The type <tt>T</tt> is the same as <tt>GSL::Interp</tt> class.
161
161
  #
162
162
  # These two are equivalent.
@@ -170,8 +170,8 @@
170
170
  # ---
171
171
  # * GSL::Spline#init(xa, ya)
172
172
  #
173
- # This initializes a <tt>GSL::Spline</tt> object <tt>self</tt> for the data
174
- # (<tt>xa, ya</tt>) where <tt>xa</tt> and <tt>ya</tt> are Ruby arrays of equal sizes
173
+ # This initializes a <tt>GSL::Spline</tt> object <tt>self</tt> for the data
174
+ # (<tt>xa, ya</tt>) where <tt>xa</tt> and <tt>ya</tt> are Ruby arrays of equal sizes
175
175
  # or <tt>GSL::Vector</tt>.
176
176
  #
177
177
  # ---
@@ -179,7 +179,7 @@
179
179
  #
180
180
  # This returns the name of the spline type used by <tt>self</tt>.
181
181
  #
182
- # === {}[link:index.html"name="5.2] Evaluation
182
+ # === Evaluation
183
183
  # ---
184
184
  # * GSL::Spline#eval(x)
185
185
  #
@@ -188,10 +188,10 @@
188
188
  #
189
189
  # NOTE: In a GSL-C program, a <tt>gsl_interp_accel</tt> object is required to use
190
190
  # the function <tt>gsl_spline_eval</tt>.
191
- # In Ruby/GSL, the <tt>gsl_interp_accel</tt> is hidden, it is automatically
192
- # allocated when a <tt>GSL::Spline</tt> object is created,
193
- # and also destroyed when the <tt>Spline</tt> object
194
- # is cleaned by the Ruby GC. The accel object can be accessed via the method
191
+ # In Ruby/GSL, the <tt>gsl_interp_accel</tt> is hidden, it is automatically
192
+ # allocated when a <tt>GSL::Spline</tt> object is created,
193
+ # and also destroyed when the <tt>Spline</tt> object
194
+ # is cleaned by the Ruby GC. The accel object can be accessed via the method
195
195
  # <tt>GSL::Spline#accel</tt>.
196
196
  #
197
197
  # ---
@@ -209,23 +209,23 @@
209
209
  #
210
210
  # Returns the numerical integral over the range [<tt>a, b</tt>].
211
211
  #
212
- # === {}[link:index.html"name="5.3] Finding and acceleration
212
+ # === Finding and acceleration
213
213
  # ---
214
214
  # * GSL::Spline#find(xa, x)
215
215
  # * GSL::Spline#accel_find(xa, x)
216
216
  #
217
- # This method performs a lookup action on the data array <tt>xa</tt>.
218
- # This is how lookups are performed during evaluation
219
- # of an interpolation. The function returns an index <tt>i</tt> such that
217
+ # This method performs a lookup action on the data array <tt>xa</tt>.
218
+ # This is how lookups are performed during evaluation
219
+ # of an interpolation. The function returns an index <tt>i</tt> such that
220
220
  # <tt>xa[i] <= x < xa[i+1]</tt>.
221
221
  #
222
222
  # See also the GSL manual and the examples in <tt>examples/</tt>
223
223
  #
224
- # {prev}[link:rdoc/odeiv_rdoc.html]
225
- # {next}[link:rdoc/diff_rdoc.html]
224
+ # {prev}[link:odeiv_rdoc.html]
225
+ # {next}[link:diff_rdoc.html]
226
226
  #
227
- # {Reference index}[link:rdoc/ref_rdoc.html]
227
+ # {Reference index}[link:ref_rdoc.html]
228
228
  # {top}[link:index.html]
229
229
  #
230
230
  #
231
- #
231
+ #
data/rdoc/intro.rdoc CHANGED
@@ -1,27 +1,27 @@
1
1
  #
2
2
  # = Introduction
3
3
  #
4
- # The GNU Scientific Library ({GSL}[http://sources.redhat.com/gsl/"target="_top])
4
+ # The GNU Scientific Library ({GSL}[https://gnu.org/software/gsl/])
5
5
  # is a collection of routines for numerical computing.
6
6
  # The routines have been written from scratch in C, and present a modern Applications
7
7
  # Programming Interface (API) for C programmers, allowing wrappers to be
8
8
  # written for very high level languages. The source code is distributed
9
9
  # under the GNU General Public License.
10
10
  #
11
- # {Ruby/GSL}[http://rubyforge.org/projects/rb-gsl/"target="_top] is a Ruby
11
+ # {Ruby/GSL}[https://blackwinter.github.com/rb-gsl] is a Ruby
12
12
  # extension for GSL. This provides higher-level interfaces to the GSL functions.
13
13
  #
14
- # == {}[link:index.html"name="1] Requirements
14
+ # == Requirements
15
15
  # * GSL (1.4 or later recommended)
16
16
  # * ANSI C compiler
17
17
  # * Ruby (1.8 or later recommended)
18
18
  #
19
- # == {}[link:index.html"name="2] Installation
19
+ # == Installation
20
20
  # See {here}[link:index.html].
21
21
  #
22
- # {next}[link:rdoc/use_rdoc.html]
22
+ # {next}[link:use_rdoc.html]
23
23
  #
24
- # {Reference index}[link:rdoc/ref_rdoc.html]
24
+ # {Reference index}[link:ref_rdoc.html]
25
25
  # {top}[link:index.html]
26
26
  #
27
27
  #
data/rdoc/linalg.rdoc CHANGED
@@ -2,23 +2,23 @@
2
2
  # = Linear Algebra
3
3
  #
4
4
  # Contents:
5
- # 1. {LU Decomposition}[link:rdoc/linalg_rdoc.html#1]
6
- # 1. {QR Decomposition}[link:rdoc/linalg_rdoc.html#2]
7
- # 1. {QR Decomposition with Column Pivoting}[link:rdoc/linalg_rdoc.html#3]
8
- # 1. {Singular Value Decomposition}[link:rdoc/linalg_rdoc.html#4]
9
- # 1. {Cholesky Decomposition}[link:rdoc/linalg_rdoc.html#5]
10
- # 1. {Tridiagonal Decomposition of Real Symmetric Matrices}[link:rdoc/linalg_rdoc.html#6]
11
- # 1. {Tridiagonal Decomposition of Hermitian Matrices}[link:rdoc/linalg_rdoc.html#7]
12
- # 1. {Hessenberg Decomposition of Real Matrices}[link:rdoc/linalg_rdoc.html#8]
13
- # 1. {Hessenberg-Triangular Decomposition of Real Matrices}[link:rdoc/linalg_rdoc.html#9]
14
- # 1. {Bidiagonalization}[link:rdoc/linalg_rdoc.html#10]
15
- # 1. {Householder Transformations}[link:rdoc/linalg_rdoc.html#11]
16
- # 1. {Householder solver for linear systems}[link:rdoc/linalg_rdoc.html#12]
17
- # 1. {Tridiagonal Systems}[link:rdoc/linalg_rdoc.html#13]
18
- # 1. {Balancing}[link:rdoc/linalg_rdoc.html#14]
19
- # 1. {NArray}[link:rdoc/linalg_rdoc.html#15]
20
- #
21
- # == {}[link:index.html"name="1] LU Decomposition
5
+ # 1. {LU Decomposition}[link:linalg_rdoc.html#label-LU+Decomposition]
6
+ # 1. {QR Decomposition}[link:linalg_rdoc.html#label-QR+decomposition]
7
+ # 1. {QR Decomposition with Column Pivoting}[link:linalg_rdoc.html#label-QR+Decomposition+with+Column+Pivoting]
8
+ # 1. {Singular Value Decomposition}[link:linalg_rdoc.html#label-Singular+Value+Decomposition]
9
+ # 1. {Cholesky Decomposition}[link:linalg_rdoc.html#label-Cholesky+Decomposition]
10
+ # 1. {Tridiagonal Decomposition of Real Symmetric Matrices}[link:linalg_rdoc.html#label-Tridiagonal+Decomposition+of+Real+Symmetric+Matrices]
11
+ # 1. {Tridiagonal Decomposition of Hermitian Matrices}[link:linalg_rdoc.html#label-Tridiagonal+Decomposition+of+Hermitian+Matrices]
12
+ # 1. {Hessenberg Decomposition of Real Matrices}[link:linalg_rdoc.html#label-Hessenberg+Decomposition+of+Real+Matrices]
13
+ # 1. {Hessenberg-Triangular Decomposition of Real Matrices}[link:linalg_rdoc.html#label-Hessenberg-Triangular+Decomposition+of+Real+Matrices]
14
+ # 1. {Bidiagonalization}[link:linalg_rdoc.html#label-Bidiagonalization]
15
+ # 1. {Householder Transformations}[link:linalg_rdoc.html#label-Householder+Transformations]
16
+ # 1. {Householder solver for linear systems}[link:linalg_rdoc.html#label-Householder+solver+for+linear+systems]
17
+ # 1. {Tridiagonal Systems}[link:linalg_rdoc.html#label-Tridiagonal+Systems]
18
+ # 1. {Balancing}[link:linalg_rdoc.html#label-Balancing]
19
+ # 1. {NArray}[link:linalg_rdoc.html#label-NArray]
20
+ #
21
+ # == LU Decomposition
22
22
  # ---
23
23
  # * GSL::Linalg::LU.decomp(A)
24
24
  # * GSL::Matrix#LU_decomp
@@ -31,9 +31,9 @@
31
31
  # 1. Singleton method of the <tt>GSL::Linalg::LU</tt> module
32
32
  #
33
33
  # >> m = Matrix[1..9, 3, 3]
34
- # => GSL::Matrix:
35
- # [ 1.000e+00 2.000e+00 3.000e+00
36
- # 4.000e+00 5.000e+00 6.000e+00
34
+ # => GSL::Matrix:
35
+ # [ 1.000e+00 2.000e+00 3.000e+00
36
+ # 4.000e+00 5.000e+00 6.000e+00
37
37
  # 7.000e+00 8.000e+00 9.000e+00 ]
38
38
  # >> lu, perm, sign = Linalg::LU.decomp(m)
39
39
  #
@@ -47,7 +47,7 @@
47
47
  # * GSL::Matrix#LU_solve(b)
48
48
  # * GSL::Linalg::LUMatrix#solve(perm, b)
49
49
  #
50
- # The following is an example to solve a linear system
50
+ # The following is an example to solve a linear system
51
51
  #
52
52
  # A x = b, b = [1, 2, 3, 4]
53
53
  #
@@ -57,20 +57,20 @@
57
57
  #
58
58
  # A = Matrix[[0.18, 0.60, 0.57, 0.96], [0.41, 0.24, 0.99, 0.58],
59
59
  # [0.14, 0.30, 0.97, 0.66], [0.51, 0.13, 0.19, 0.85]]
60
- # lu, perm, sign = A.LU_decomp
60
+ # lu, perm, sign = A.LU_decomp
61
61
  # b = Vector[1, 2, 3, 4]
62
- # x = Linalg::LU.solve(lu, perm, b)
62
+ # x = Linalg::LU.solve(lu, perm, b)
63
63
  #
64
64
  # 1. Instance method of <tt>GSL::Linalg::LUMatrix</tt> class
65
65
  #
66
66
  # lu, perm, sign = A.LU_decomp # lu is an instance of Linalg::LUMatrix class
67
67
  # b = Vector[1, 2, 3, 4]
68
- # x = lu.solve(perm, b)
68
+ # x = lu.solve(perm, b)
69
69
  #
70
70
  # 1. Solve directly
71
71
  #
72
72
  # x = Linalg::LU.solve(A, b) # LU decomposition is calculated internally (A is not modified)
73
- #
73
+ #
74
74
  # ---
75
75
  # * GSL::Linalg::LU.svx(A, b)
76
76
  # * GSL::Linalg::LU.svx(lu, perm, b)
@@ -83,7 +83,7 @@
83
83
  # ---
84
84
  # * GSL::Linalg::LU.refine(A, lu, perm, b, x)
85
85
  #
86
- # This method applys an iterative improvement to <tt>x</tt>,
86
+ # This method applys an iterative improvement to <tt>x</tt>,
87
87
  # the solution of <tt>A x = b</tt>, using the LU decomposition of <tt>A</tt>.
88
88
  #
89
89
  # ---
@@ -102,9 +102,9 @@
102
102
  #
103
103
  # These methods return the determinant of the matrix.
104
104
  #
105
- # === {}[link:index.html"name="1.1] {Complex LU decomposition}[link:rdoc/linalg_complex_rdoc.html]
105
+ # === {Complex LU decomposition}[link:linalg_complex_rdoc.html]
106
106
  #
107
- # == {}[link:index.html"name="2] QR decomposition
107
+ # == QR decomposition
108
108
  #
109
109
  # ---
110
110
  # * GSL::Linalg::QR_decomp(A)
@@ -142,7 +142,7 @@
142
142
  # * Ex4:
143
143
  # qr, tau = m.QR_decomp
144
144
  # x = qr.solve(tau, b)
145
- #
145
+ #
146
146
  # ---
147
147
  # * GSL::Linalg::QR.svx(A, x)
148
148
  # * GSL::Linalg::QR.svx(QR, tau, x)
@@ -161,26 +161,26 @@
161
161
  #
162
162
  # Ex:
163
163
  # >> m = Matrix[1..9, 3, 3]
164
- # => GSL::Matrix:
165
- # [ 1.000e+00 2.000e+00 3.000e+00
166
- # 4.000e+00 5.000e+00 6.000e+00
164
+ # => GSL::Matrix:
165
+ # [ 1.000e+00 2.000e+00 3.000e+00
166
+ # 4.000e+00 5.000e+00 6.000e+00
167
167
  # 7.000e+00 8.000e+00 9.000e+00 ]
168
168
  # >> qr, tau = m.QR_decomp
169
- # >> q, r = qr.unpack(tau)
169
+ # >> q, r = qr.unpack(tau)
170
170
  # >> q*r # Reconstruct the metrix m
171
- # => GSL::Matrix:
172
- # [ 1.000e+00 2.000e+00 3.000e+00
173
- # 4.000e+00 5.000e+00 6.000e+00
171
+ # => GSL::Matrix:
172
+ # [ 1.000e+00 2.000e+00 3.000e+00
173
+ # 4.000e+00 5.000e+00 6.000e+00
174
174
  # 7.000e+00 8.000e+00 9.000e+00 ]
175
175
  #
176
176
  # ---
177
177
  # * GSL::Linalg::QR.QRsolve(Q, R, tau)
178
178
  #
179
- # This method solves the system <tt>R x = Q^T b</tt> for <tt>x</tt>.
180
- # It can be used when the QR decomposition of a matrix is available
179
+ # This method solves the system <tt>R x = Q^T b</tt> for <tt>x</tt>.
180
+ # It can be used when the QR decomposition of a matrix is available
181
181
  # in unpacked form as <tt>Q,R</tt>.
182
182
  #
183
- # == {}[link:index.html"name="3] QR Decomposition with Column Pivoting
183
+ # == QR Decomposition with Column Pivoting
184
184
  # ---
185
185
  # * GSL::Linalg::QRPT.decomp(A)
186
186
  # * GSL::Matrix#QRPT_decomp
@@ -214,7 +214,7 @@
214
214
  # * GSL::Matrix#QRPT_solve(A, b)
215
215
  # * GSL::Linalg::QRPQMatrix#solve(qr, tau, perm, b)
216
216
  #
217
- # These methods solve the system <tt>A x = b</tt> using the QRP^T decomposition of
217
+ # These methods solve the system <tt>A x = b</tt> using the QRP^T decomposition of
218
218
  # <tt>A</tt> into <tt>QR, tau, perm</tt>. The solution <tt>x</tt> is returned as a Vector.
219
219
  #
220
220
  # * Ex1:
@@ -234,15 +234,15 @@
234
234
  # * GSL::Linalg::QRPT.svx(qr, tau, perm, b)
235
235
  # * GSL::Matrix#QRPT_svx(A, b)
236
236
  #
237
- # These methods solve the system <tt>A x = b</tt> using the QRP^T decomposition of
237
+ # These methods solve the system <tt>A x = b</tt> using the QRP^T decomposition of
238
238
  # <tt>A</tt> into <tt>QR, tau, perm</tt>. The input <tt>b</tt> is overwritten by the solution
239
239
  # <tt>x</tt>.
240
240
  #
241
241
  # ---
242
242
  # * GSL::Linalg::QRPT.QRsolve(q, r, tau, perm, b)
243
243
  #
244
- # This method solves the system <tt>R P^T x = Q^T b</tt> for x.
245
- # It can be used when the QR decomposition of a matrix is available in
244
+ # This method solves the system <tt>R P^T x = Q^T b</tt> for x.
245
+ # It can be used when the QR decomposition of a matrix is available in
246
246
  # unpacked form as <tt>q, r</tt> obtained by the method <tt>decomp2</tt>.
247
247
  #
248
248
  # * Ex:
@@ -257,51 +257,51 @@
257
257
  # * GSL::Linalg::QRPTMatrix#Rsvx(perm, b)
258
258
  #
259
259
  #
260
- # == {}[link:index.html"name="4] Singular Value Decomposition
260
+ # == Singular Value Decomposition
261
261
  # ---
262
262
  # * GSL::Linalg::SV.decomp(A[, work])
263
- # * GSL::Matrix#SV_decomp([work])
263
+ # * \GSL::Matrix#SV_decomp([work])
264
264
  #
265
- # These methods factorize the M-by-N matrix <tt>A</tt> into the singular value
265
+ # These methods factorize the M-by-N matrix <tt>A</tt> into the singular value
266
266
  # decomposition <tt>A = U S V^T</tt> using the Golub-Reinsch SVD algorithm,
267
267
  # and return an array <tt>[U, V, S]</tt>.
268
268
  #
269
- # Ex:
269
+ # Ex:
270
270
  # >> m = Matrix[[3, 5, 2], [5, 1, 4], [7, 6, 3]]
271
- # => GSL::Matrix:
272
- # [ 3.000e+00 5.000e+00 2.000e+00
273
- # 5.000e+00 1.000e+00 4.000e+00
271
+ # => GSL::Matrix:
272
+ # [ 3.000e+00 5.000e+00 2.000e+00
273
+ # 5.000e+00 1.000e+00 4.000e+00
274
274
  # 7.000e+00 6.000e+00 3.000e+00 ]
275
275
  # >> u, v, s = m.SV_decomp # u, v: Matrix, s: Vector (singular values)
276
276
  # >> u*u.trans # u is orthnormal
277
- # => GSL::Matrix:
278
- # [ 1.000e+00 2.452e-17 -4.083e-16
279
- # 2.452e-17 1.000e+00 -3.245e-16
277
+ # => GSL::Matrix:
278
+ # [ 1.000e+00 2.452e-17 -4.083e-16
279
+ # 2.452e-17 1.000e+00 -3.245e-16
280
280
  # -4.083e-16 -3.245e-16 1.000e+00 ]
281
281
  # >> v*v.trans # v is also orthnormal
282
- # => GSL::Matrix:
283
- # [ 1.000e+00 3.555e-17 -1.867e-16
284
- # 3.555e-17 1.000e+00 -1.403e-16
282
+ # => GSL::Matrix:
283
+ # [ 1.000e+00 3.555e-17 -1.867e-16
284
+ # 3.555e-17 1.000e+00 -1.403e-16
285
285
  # -1.867e-16 -1.403e-16 1.000e+00 ]
286
286
  # >> u*Matrix.diagonal(s)*v.trans # Reconstruct the matrix
287
- # => GSL::Matrix:
288
- # [ 3.000e+00 5.000e+00 2.000e+00
289
- # 5.000e+00 1.000e+00 4.000e+00
287
+ # => GSL::Matrix:
288
+ # [ 3.000e+00 5.000e+00 2.000e+00
289
+ # 5.000e+00 1.000e+00 4.000e+00
290
290
  # 7.000e+00 6.000e+00 3.000e+00 ]
291
291
  #
292
292
  # ---
293
293
  # * GSL::Linalg::SV.decomp_mod(A)
294
294
  # * GSL::Matrix#SV_decomp_mod
295
295
  #
296
- # These compute the SVD using the modified Golub-Reinsch algorithm,
296
+ # These compute the SVD using the modified Golub-Reinsch algorithm,
297
297
  # which is faster for M>>N.
298
298
  #
299
299
  # ---
300
300
  # * GSL::Linalg::SV.decomp_jacobi(A)
301
301
  # * GSL::Matrix#SV_decomp_jacobi
302
302
  #
303
- # These compute the SVD using one-sided Jacobi orthogonalization.
304
- # The Jacobi method can compute singular values to higher relative accuracy
303
+ # These compute the SVD using one-sided Jacobi orthogonalization.
304
+ # The Jacobi method can compute singular values to higher relative accuracy
305
305
  # than Golub-Reinsch algorithms.
306
306
  #
307
307
  # ---
@@ -309,7 +309,7 @@
309
309
  # * GSL::Linalg::SV.solve(U, V, S, b)
310
310
  # * GSL::Matrix#SV_solve(b)
311
311
  #
312
- # These methods solve the system <tt>A x = b</tt> using the singular value
312
+ # These methods solve the system <tt>A x = b</tt> using the singular value
313
313
  # decomposition <tt>U, S, V</tt> of <tt>A</tt>.
314
314
  #
315
315
  # * Ex1:
@@ -322,39 +322,39 @@
322
322
  # * Ex3:
323
323
  # x = m.SV_solve(b)
324
324
  #
325
- # == {}[link:index.html"name="6] Cholesky Decomposition
326
- # A symmetric, positive definite square matrix <tt>A</tt> has a Cholesky decomposition
327
- # into a product of a lower triangular matrix L and its transpose L^T,
328
- # as <tt>A = L L^T</tt>. This is sometimes referred to as taking the square-root of a
329
- # matrix. The Cholesky decomposition can only be carried out when all the eigenvalues
330
- # of the matrix are positive. This decomposition can be used to convert the linear
331
- # system <tt>A x = b</tt> into a pair of triangular systems (<tt>L y = b, L^T x = y</tt>),
325
+ # == Cholesky Decomposition
326
+ # A symmetric, positive definite square matrix <tt>A</tt> has a Cholesky decomposition
327
+ # into a product of a lower triangular matrix L and its transpose L^T,
328
+ # as <tt>A = L L^T</tt>. This is sometimes referred to as taking the square-root of a
329
+ # matrix. The Cholesky decomposition can only be carried out when all the eigenvalues
330
+ # of the matrix are positive. This decomposition can be used to convert the linear
331
+ # system <tt>A x = b</tt> into a pair of triangular systems (<tt>L y = b, L^T x = y</tt>),
332
332
  # which can be solved by forward and back-substitution.
333
333
  #
334
334
  # ---
335
335
  # * GSL::Linalg::Cholesky.decomp(A)
336
336
  #
337
- # This method factorizes the positive-definite square matrix <tt>A</tt>
338
- # into the Cholesky decomposition <tt>A = L L^T</tt>.
339
- # The upper triangular part of the matrix returned contains L^T, the diagonal terms
340
- # being identical for both L and L^T. If the matrix is not positive-definite
337
+ # This method factorizes the positive-definite square matrix <tt>A</tt>
338
+ # into the Cholesky decomposition <tt>A = L L^T</tt>.
339
+ # The upper triangular part of the matrix returned contains L^T, the diagonal terms
340
+ # being identical for both L and L^T. If the matrix is not positive-definite
341
341
  # then the decomposition will fail.
342
342
  #
343
- # Ex:
343
+ # Ex:
344
344
  # >> m = Matrix.pascal(3)
345
345
  # => GSL::Matrix
346
- # [ 1.000e+00 1.000e+00 1.000e+00
347
- # 1.000e+00 2.000e+00 3.000e+00
346
+ # [ 1.000e+00 1.000e+00 1.000e+00
347
+ # 1.000e+00 2.000e+00 3.000e+00
348
348
  # 1.000e+00 3.000e+00 6.000e+00 ]
349
349
  # >> c = Linalg::Cholesky.decomp(m)
350
350
  # => GSL::Linalg::Cholesky::CholeskyMatrix
351
- # [ 1.000e+00 1.000e+00 1.000e+00
352
- # 1.000e+00 1.000e+00 2.000e+00
351
+ # [ 1.000e+00 1.000e+00 1.000e+00
352
+ # 1.000e+00 1.000e+00 2.000e+00
353
353
  # 1.000e+00 2.000e+00 1.000e+00 ]
354
354
  # >> l = c.lower
355
355
  # => GSL::Matrix
356
- # [ 1.000e+00 0.000e+00 0.000e+00
357
- # 1.000e+00 1.000e+00 0.000e+00
356
+ # [ 1.000e+00 0.000e+00 0.000e+00
357
+ # 1.000e+00 1.000e+00 0.000e+00
358
358
  # 1.000e+00 2.000e+00 1.000e+00 ]
359
359
  # >> (l*l.trans) == m
360
360
  # => true
@@ -363,122 +363,122 @@
363
363
  # * GSL::Linalg::Cholesky.solve(cholesky, b)
364
364
  # * GSL::Linalg::Cholesky.svx(cholesky, x)
365
365
  #
366
- # These methods solve the system <tt>A x = b</tt> using the Cholesky decomposition
366
+ # These methods solve the system <tt>A x = b</tt> using the Cholesky decomposition
367
367
  # of <tt>A</tt> into the matrix <tt>cholesky</tt> given by <tt>GSL::Linalg::Cholesky.decomp</tt>.
368
368
  #
369
- # === {}[link:index.html"name="5.1] {Complex Cholesky decomposition}[link:rdoc/cholesky_complex_rdoc.html]
369
+ # === {Complex Cholesky decomposition}[link:cholesky_complex_rdoc.html]
370
370
  #
371
- # == {}[link:index.html"name="6] Tridiagonal Decomposition of Real Symmetric Matrices
371
+ # == Tridiagonal Decomposition of Real Symmetric Matrices
372
372
  # ---
373
373
  # * GSL::Linalg::Symmtd::decomp(A)
374
374
  #
375
- # Factorizes the symmetric square matrix <tt>A</tt> into the symmetric
375
+ # Factorizes the symmetric square matrix <tt>A</tt> into the symmetric
376
376
  # tridiagonal decomposition Q T Q^T, and returns the results
377
- # <tt>(A', tau)</tt>. On output the diagonal and subdiagonal part of the
378
- # matrix <tt>A'</tt> contain the tridiagonal matrix <tt>T</tt>.
379
- # The remaining lower triangular part of the matrix <tt>A'</tt> contains
380
- # the Householder vectors which, together with the Householder
381
- # coefficients <tt>tau</tt>, encode the orthogonal matrix <tt>Q</tt>.
382
- # This storage scheme is the same as used by LAPACK.
383
- # The upper triangular part of <tt>A</tt> is not referenced.
377
+ # <tt>(A', tau)</tt>. On output the diagonal and subdiagonal part of the
378
+ # matrix <tt>A'</tt> contain the tridiagonal matrix <tt>T</tt>.
379
+ # The remaining lower triangular part of the matrix <tt>A'</tt> contains
380
+ # the Householder vectors which, together with the Householder
381
+ # coefficients <tt>tau</tt>, encode the orthogonal matrix <tt>Q</tt>.
382
+ # This storage scheme is the same as used by LAPACK.
383
+ # The upper triangular part of <tt>A</tt> is not referenced.
384
384
  # ---
385
385
  # * GSL::Linalg::Symmtd::unpack(A', tau)
386
386
  #
387
- # Unpacks the encoded symmetric tridiagonal decomposition <tt>(A', tau)</tt>
388
- # obtained from <tt>GSL::Linalg::Symmtd::decomp</tt> into the orthogonal
389
- # matrix <tt>Q</tt>, the vector of diagonal elements <tt>diag</tt>
390
- # and the vector of subdiagonal elements <tt>subdiag</tt>.
387
+ # Unpacks the encoded symmetric tridiagonal decomposition <tt>(A', tau)</tt>
388
+ # obtained from <tt>GSL::Linalg::Symmtd::decomp</tt> into the orthogonal
389
+ # matrix <tt>Q</tt>, the vector of diagonal elements <tt>diag</tt>
390
+ # and the vector of subdiagonal elements <tt>subdiag</tt>.
391
391
  # ---
392
392
  # * GSL::Linalg::Symmtd::unpack_T(A', tau)
393
393
  #
394
- # Unpacks the diagonal and subdiagonal of the encoded symmetric tridiagonal
395
- # decomposition <tt>(A', tau)</tt> obtained from
396
- # <tt>GSL::Linalg::Symmtd::decomp</tt> into the vectors
397
- # <tt>diag</tt> and <tt>subdiag</tt>.
394
+ # Unpacks the diagonal and subdiagonal of the encoded symmetric tridiagonal
395
+ # decomposition <tt>(A', tau)</tt> obtained from
396
+ # <tt>GSL::Linalg::Symmtd::decomp</tt> into the vectors
397
+ # <tt>diag</tt> and <tt>subdiag</tt>.
398
398
  #
399
- # == {}[link:index.html"name="7] Tridiagonal Decomposition of Hermitian Matrices
399
+ # == Tridiagonal Decomposition of Hermitian Matrices
400
400
  # ---
401
401
  # * GSL::Linalg::Hermtd::decomp(A)
402
402
  #
403
- # Factorizes the hermitian matrix <tt>A</tt> into the symmetric tridiagonal
404
- # decomposition U T U^T, and returns the result as <tt>(A', tau)</tt>.
403
+ # Factorizes the hermitian matrix <tt>A</tt> into the symmetric tridiagonal
404
+ # decomposition U T U^T, and returns the result as <tt>(A', tau)</tt>.
405
405
  # On output the real parts of the diagonal and subdiagonal part of the
406
- # matrix <tt>A'</tt> contain the tridiagonal matrix <tt>T</tt>.
407
- # The remaining lower triangular part of the matrix <tt>A'</tt> contains
408
- # the Householder vectors which, together with the Householder
409
- # coefficients <tt>tau</tt>, encode the orthogonal matrix <tt>Q</tt>.
410
- # This storage scheme is the same as used by LAPACK.
411
- # The upper triangular part of <tt>A</tt> and imaginary parts of the diagonal
412
- # are not referenced.
406
+ # matrix <tt>A'</tt> contain the tridiagonal matrix <tt>T</tt>.
407
+ # The remaining lower triangular part of the matrix <tt>A'</tt> contains
408
+ # the Householder vectors which, together with the Householder
409
+ # coefficients <tt>tau</tt>, encode the orthogonal matrix <tt>Q</tt>.
410
+ # This storage scheme is the same as used by LAPACK.
411
+ # The upper triangular part of <tt>A</tt> and imaginary parts of the diagonal
412
+ # are not referenced.
413
413
  #
414
414
  # ---
415
415
  # * GSL::Linalg::Hermtd::unpack(A', tau)
416
416
  #
417
- # Unpacks the encoded tridiagonal decomposition <tt>(A', tau)</tt>
418
- # obtained from <tt>GSL::Linalg::Hermtd::decomp</tt> into the unitary matrix
419
- # <tt>U</tt>, the real vector of diagonal elements <tt>diag</tt> and
420
- # the real vector of subdiagonal elements <tt>subdiag</tt>.
417
+ # Unpacks the encoded tridiagonal decomposition <tt>(A', tau)</tt>
418
+ # obtained from <tt>GSL::Linalg::Hermtd::decomp</tt> into the unitary matrix
419
+ # <tt>U</tt>, the real vector of diagonal elements <tt>diag</tt> and
420
+ # the real vector of subdiagonal elements <tt>subdiag</tt>.
421
421
  #
422
422
  # ---
423
423
  # * GSL::Linalg::Hermtd::unpack_T(A', tau)
424
424
  #
425
- # Unpacks the diagonal and subdiagonal of the encoded tridiagonal
426
- # decomposition <tt>(A, tau)</tt> obtained from the
427
- # <tt>GSL::Linalg::Hermtd::decomp</tt>
428
- # into the real vectors <tt>diag</tt> and <tt>subdiag</tt>.
425
+ # Unpacks the diagonal and subdiagonal of the encoded tridiagonal
426
+ # decomposition <tt>(A, tau)</tt> obtained from the
427
+ # <tt>GSL::Linalg::Hermtd::decomp</tt>
428
+ # into the real vectors <tt>diag</tt> and <tt>subdiag</tt>.
429
429
  #
430
- # == {}[link:index.html"name="8] Hessenberg Decomposition of Real Matrices
430
+ # == Hessenberg Decomposition of Real Matrices
431
431
  # ---
432
432
  # * GSL::Linalg::Hessenberg::decomp(A)
433
433
  # * GSL::Linalg::hessenberg_decomp(A)
434
434
  #
435
- # Computes the Hessenberg decomposition of the matrix <tt>A</tt>
435
+ # Computes the Hessenberg decomposition of the matrix <tt>A</tt>
436
436
  # by applying the similarity transformation <tt>H = U^T A U</tt>, and returns
437
- # the result as <tt>(A', tau</tt>. On output, <tt>H</tt> is stored in the upper
438
- # portion of <tt>A'</tt>. The information required to construct the matrix
439
- # <tt>U</tt> is stored in the lower triangular portion of <tt>A'</tt>.
440
- # <tt>U</tt> is a product of N - 2 Householder matrices.
441
- # The Householder vectors are stored in the lower portion of <tt>A'</tt>
442
- # (below the subdiagonal) and the Householder coefficients are stored
437
+ # the result as <tt>(A', tau</tt>. On output, <tt>H</tt> is stored in the upper
438
+ # portion of <tt>A'</tt>. The information required to construct the matrix
439
+ # <tt>U</tt> is stored in the lower triangular portion of <tt>A'</tt>.
440
+ # <tt>U</tt> is a product of N - 2 Householder matrices.
441
+ # The Householder vectors are stored in the lower portion of <tt>A'</tt>
442
+ # (below the subdiagonal) and the Householder coefficients are stored
443
443
  # in the vector <tt>tau</tt>.
444
444
  #
445
445
  # ---
446
446
  # * GSL::Linalg::Hessenberg::unpack(A', tau)
447
447
  # * GSL::Linalg::hessenberg_unpack(A', tau)
448
448
  #
449
- # Constructs the orthogonal matrix <tt>U</tt> and returns it
450
- # from the information stored in the Hessenberg matrix <tt>A'</tt>
451
- # along with the vector <tt>tau</tt>. <tt>A'</tt> and <tt>tau</tt>
449
+ # Constructs the orthogonal matrix <tt>U</tt> and returns it
450
+ # from the information stored in the Hessenberg matrix <tt>A'</tt>
451
+ # along with the vector <tt>tau</tt>. <tt>A'</tt> and <tt>tau</tt>
452
452
  # are outputs from <tt>GSL::Linalg::Hessenberg::decomp</tt>.
453
453
  #
454
454
  # ---
455
455
  # * GSL::Linalg::Hessenberg::unpack_accum(A', tau, V = I)
456
456
  # * GSL::Linalg::hessenberg_unpack_accum(A', tau, V = I)
457
457
  #
458
- # This method is similar to <tt>GSL::Linalg::Hessenberg::unpack</tt>,
459
- # except it accumulates the matrix <tt>U</tt> into <tt>V</tt>, so that
460
- # <tt>V' = VU</tt>, and returns <tt>V</tt>. Setting V to the identity matrix
461
- # provides the same result <tt>GSL::Linalg::Hessenberg::unpack</tt>.
458
+ # This method is similar to <tt>GSL::Linalg::Hessenberg::unpack</tt>,
459
+ # except it accumulates the matrix <tt>U</tt> into <tt>V</tt>, so that
460
+ # <tt>V' = VU</tt>, and returns <tt>V</tt>. Setting V to the identity matrix
461
+ # provides the same result <tt>GSL::Linalg::Hessenberg::unpack</tt>.
462
462
  #
463
463
  # ---
464
464
  # * GSL::Linalg::Hessenberg::set_zero(A')
465
465
  # * GSL::Linalg::hessenberg_set_zero(A')
466
466
  #
467
- # Sets the lower triangular portion of <tt>A'</tt>, below the subdiagonal,
468
- # to zero.
469
- # It is useful for clearing out the Householder vectors after calling
467
+ # Sets the lower triangular portion of <tt>A'</tt>, below the subdiagonal,
468
+ # to zero.
469
+ # It is useful for clearing out the Householder vectors after calling
470
470
  # <tt>GSL::Linalg::Hessenberg::decomp</tt>.
471
471
  #
472
- # == {}[link:index.html"name="9] Hessenberg-Triangular Decomposition of Real Matrices
472
+ # == Hessenberg-Triangular Decomposition of Real Matrices
473
473
  # ---
474
474
  # * GSL::Linalg::hesstri_decomp(A, B)
475
475
  # * GSL::Linalg::hesstri_decomp(A, B, work)
476
476
  # * GSL::Linalg::hesstri_decomp(A, B, U, V)
477
477
  # * GSL::Linalg::hesstri_decomp(A, B, U, V, work)
478
478
  #
479
- # Compute the Hessenberg-Triangular decomposition of the matrix pair
479
+ # Compute the Hessenberg-Triangular decomposition of the matrix pair
480
480
  # <tt>(A, B)</tt>, and return <tt>(H, R</tt>.
481
- # If U and V are provided (they may be null), the similarity
481
+ # If U and V are provided (they may be null), the similarity
482
482
  # transformations are stored in them. <tt>work</tt> is an additional workspace
483
483
  # of length <tt>N</tt>.
484
484
  #
@@ -488,14 +488,14 @@
488
488
  # * GSL::Linalg::hesstri_decomp!(A, B, U, V)
489
489
  # * GSL::Linalg::hesstri_decomp!(A, B, U, V, work)
490
490
  #
491
- # Compute the Hessenberg-Triangular decomposition of the matrix pair
492
- # <tt>(A, B)</tt>. On output, <tt>H</tt> is stored in <tt>A</tt>,
491
+ # Compute the Hessenberg-Triangular decomposition of the matrix pair
492
+ # <tt>(A, B)</tt>. On output, <tt>H</tt> is stored in <tt>A</tt>,
493
493
  # and <tt>R</tt> is stored in <tt>B</tt>.
494
- # If U and V are provided (they may be null), the similarity
494
+ # If U and V are provided (they may be null), the similarity
495
495
  # transformations are stored in them. <tt>work</tt> is an additional workspace
496
496
  # of length <tt>N</tt>.
497
497
  #
498
- # == {}[link:index.html"name="10] Bidiagonalization
498
+ # == Bidiagonalization
499
499
  # ---
500
500
  # * GSL::Linalg::Bidiag::decomp!(A)
501
501
  # * GSL::Linalg::bidiag_decomp!(A)
@@ -512,71 +512,71 @@
512
512
  # * GSL::Linalg::bidiag_unpack_B
513
513
  #
514
514
  #
515
- # == {}[link:index.html"name="11] Householder Transformations
515
+ # == Householder Transformations
516
516
  # ---
517
517
  # * GSL::Linalg::Householder::transform(v)
518
518
  # * GSL::Linalg::HH::transform(v)
519
519
  # * GSL::Vector#householder_transform
520
520
  #
521
- # These methods prepare a Householder transformation P = I - tau v v^T
522
- # which can be used to zero all the elements of the input vector except the first.
523
- # On output the transformation is stored in the vector <tt>v</tt>
521
+ # These methods prepare a Householder transformation P = I - tau v v^T
522
+ # which can be used to zero all the elements of the input vector except the first.
523
+ # On output the transformation is stored in the vector <tt>v</tt>
524
524
  # and the scalar tau is returned.
525
525
  #
526
526
  # ---
527
527
  # * GSL::Linalg::Householder::hm(tau, v, A)
528
528
  # * GSL::Linalg::HH::hm(tau, v, A)
529
529
  #
530
- # These methods apply the Householder matrix P defined by the scalar
531
- # <tt>tau</tt> and the vector <tt>v</tt> to the left-hand side of the matrix <tt>A</tt>.
530
+ # These methods apply the Householder matrix P defined by the scalar
531
+ # <tt>tau</tt> and the vector <tt>v</tt> to the left-hand side of the matrix <tt>A</tt>.
532
532
  # On output the result P A is stored in <tt>A</tt>.
533
533
  #
534
534
  # ---
535
535
  # * GSL::Linalg::Householder::mh(tau, v, A)
536
536
  # * GSL::Linalg::HH::mh(tau, v, A)
537
537
  #
538
- # These methods apply the Householder matrix P defined by the scalar <tt>tau</tt>
539
- # and the vector <tt>v</tt> to the right-hand side of the matrix <tt>A</tt>.
538
+ # These methods apply the Householder matrix P defined by the scalar <tt>tau</tt>
539
+ # and the vector <tt>v</tt> to the right-hand side of the matrix <tt>A</tt>.
540
540
  # On output the result A P is stored in <tt>A</tt>.
541
541
  #
542
542
  # ---
543
543
  # * GSL::Linalg::Householder::hv(tau, v, w)
544
544
  # * GSL::Linalg::HH::hv(tau, v, w)
545
545
  #
546
- # These methods apply the Householder transformation P defined by the scalar
547
- # <tt>tau</tt> and the vector <tt>v</tt> to the vector <tt>w</tt>.
546
+ # These methods apply the Householder transformation P defined by the scalar
547
+ # <tt>tau</tt> and the vector <tt>v</tt> to the vector <tt>w</tt>.
548
548
  # On output the result P w is stored in <tt>w</tt>.
549
549
  #
550
- # == {}[link:index.html"name="12] Householder solver for linear systems
550
+ # == Householder solver for linear systems
551
551
  # ---
552
552
  # * GSL::Linalg::HH.solve(A, b)
553
553
  # * GSL::Matrix#HH_solve(b)
554
554
  #
555
- # These methods solve the system <tt>A x = b</tt> directly using Householder
555
+ # These methods solve the system <tt>A x = b</tt> directly using Householder
556
556
  # transformations. The matrix <tt>A</tt> is not modified.
557
557
  # ---
558
558
  # * GSL::Linalg::HH.solve!(A, b)
559
559
  # * GSL::Matrix#HH_solve!(b)
560
560
  #
561
- # These methods solve the system <tt>A x = b</tt> directly using Householder
562
- # transformations. The matrix <tt>A</tt> is destroyed by the
561
+ # These methods solve the system <tt>A x = b</tt> directly using Householder
562
+ # transformations. The matrix <tt>A</tt> is destroyed by the
563
563
  # Householder transformations.
564
564
  #
565
565
  # ---
566
566
  # * GSL::Linalg::HH.svx(A, b)
567
567
  # * GSL::Matrix#HH_svx(b)
568
568
  #
569
- # These methods solve the system <tt>A x = b</tt> in-place directly using Householder
569
+ # These methods solve the system <tt>A x = b</tt> in-place directly using Householder
570
570
  # transformations. The input vector <tt>b</tt> is replaced by the solution.
571
571
  #
572
- # == {}[link:index.html"name="13] Tridiagonal Systems
572
+ # == Tridiagonal Systems
573
573
  # ---
574
574
  # * GSL::Linglg::solve_tridiag(diag, e, f, b)
575
575
  # * GSL::Linglg::Tridiag::solve(diag, e, f, b)
576
576
  #
577
- # These methods solve the general N-by-N system A x = b where <tt>A</tt>
578
- # is tridiagonal ( N >= 2). The super-diagonal and sub-diagonal vectors <tt>e</tt>
579
- # and <tt>f</tt> must be one element shorter than the diagonal vector <tt>diag</tt>.
577
+ # These methods solve the general N-by-N system A x = b where <tt>A</tt>
578
+ # is tridiagonal ( N >= 2). The super-diagonal and sub-diagonal vectors <tt>e</tt>
579
+ # and <tt>f</tt> must be one element shorter than the diagonal vector <tt>diag</tt>.
580
580
  # The form of <tt>A</tt> for the 4-by-4 case is shown below,
581
581
  # A = ( d_0 e_0 0 0 )
582
582
  # ( f_0 d_1 e_1 0 )
@@ -587,9 +587,9 @@
587
587
  # * GSL::Linglg::solve_symm_tridiag(diag, e, b)
588
588
  # * GSL::Linglg::Tridiag::solve_symm(diag, e, b)
589
589
  #
590
- # These methods solve the general N-by-N system A x = b where <tt>A</tt> is
591
- # symmetric tridiagonal ( N >= 2). The off-diagonal vector <tt>e</tt> must
592
- # be one element shorter than the diagonal vector <tt>diag</tt>.
590
+ # These methods solve the general N-by-N system A x = b where <tt>A</tt> is
591
+ # symmetric tridiagonal ( N >= 2). The off-diagonal vector <tt>e</tt> must
592
+ # be one element shorter than the diagonal vector <tt>diag</tt>.
593
593
  # The form of <tt>A</tt> for the 4-by-4 case is shown below,
594
594
  # A = ( d_0 e_0 0 0 )
595
595
  # ( e_0 d_1 e_1 0 )
@@ -600,9 +600,9 @@
600
600
  # * GSL::Linglg::solve_cyc_tridiag(diag, e, f, b)
601
601
  # * GSL::Linglg::Tridiag::solve_cyc(diag, e, f, b)
602
602
  #
603
- # These methods solve the general N-by-N system A x = b where <tt>A</tt> is
604
- # cyclic tridiagonal ( N >= 3). The cyclic super-diagonal and sub-diagonal
605
- # vectors <tt>e</tt> and <tt>f</tt> must have the same number of elements as the
603
+ # These methods solve the general N-by-N system A x = b where <tt>A</tt> is
604
+ # cyclic tridiagonal ( N >= 3). The cyclic super-diagonal and sub-diagonal
605
+ # vectors <tt>e</tt> and <tt>f</tt> must have the same number of elements as the
606
606
  # diagonal vector <tt>diag</tt>. The form of <tt>A</tt> for the 4-by-4 case is shown below,
607
607
  # A = ( d_0 e_0 0 f_3 )
608
608
  # ( f_0 d_1 e_1 0 )
@@ -613,40 +613,40 @@
613
613
  # * GSL::Linglg::solve_symm_cyc_tridiag(diag, e, b)
614
614
  # * GSL::Linglg::Tridiag::solve_symm_cyc(diag, e, b)
615
615
  #
616
- # These methods solve the general N-by-N system A x = b where <tt>A</tt>
617
- # is symmetric cyclic tridiagonal ( N >= 3). The cyclic off-diagonal vector <tt>e</tt>
618
- # must have the same number of elements as the diagonal vector <tt>diag</tt>.
616
+ # These methods solve the general N-by-N system A x = b where <tt>A</tt>
617
+ # is symmetric cyclic tridiagonal ( N >= 3). The cyclic off-diagonal vector <tt>e</tt>
618
+ # must have the same number of elements as the diagonal vector <tt>diag</tt>.
619
619
  # The form of <tt>A</tt> for the 4-by-4 case is shown below,
620
620
  # A = ( d_0 e_0 0 e_3 )
621
621
  # ( e_0 d_1 e_1 0 )
622
622
  # ( 0 e_1 d_2 e_2 )
623
623
  # ( e_3 0 e_2 d_3 )
624
624
  #
625
- # == {}[link:index.html"name="14] Balancing
626
- # The process of balancing a matrix applies similarity transformations to
627
- # make the rows and columns have comparable norms. This is useful,
628
- # for example, to reduce roundoff errors in the solution of eigenvalue problems.
629
- # Balancing a matrix <tt>A</tt> consists of replacing <tt>A</tt> with a similar matrix
630
- # where <tt>D</tt> is a diagonal matrix whose entries are powers of the floating
631
- # point radix.
625
+ # == Balancing
626
+ # The process of balancing a matrix applies similarity transformations to
627
+ # make the rows and columns have comparable norms. This is useful,
628
+ # for example, to reduce roundoff errors in the solution of eigenvalue problems.
629
+ # Balancing a matrix <tt>A</tt> consists of replacing <tt>A</tt> with a similar matrix
630
+ # where <tt>D</tt> is a diagonal matrix whose entries are powers of the floating
631
+ # point radix.
632
632
  #
633
633
  # ---
634
634
  # * GSL::Linalg::balance(A)
635
635
  # * GSL::Linalg::balance(A, D)
636
636
  #
637
- # Calculates the balanced counterpart of <tt>A</tt> and the diagonal elements
637
+ # Calculates the balanced counterpart of <tt>A</tt> and the diagonal elements
638
638
  # of the similarity transformation. The result is returned as <tt>(A', D)</tt>.
639
639
  #
640
640
  # ---
641
641
  # * GSL::Linalg::balance!(A)
642
642
  # * GSL::Linalg::balance!(A, D)
643
643
  #
644
- # Replaces the matrix <tt>A</tt> with its balanced counterpart and
645
- # stores the diagonal elements of the similarity transformation into
646
- # the vector <tt>D</tt>.
644
+ # Replaces the matrix <tt>A</tt> with its balanced counterpart and
645
+ # stores the diagonal elements of the similarity transformation into
646
+ # the vector <tt>D</tt>.
647
647
  #
648
648
  #
649
- # == {}[link:index.html"name="15] NArray
649
+ # == NArray
650
650
  # The following Linalg methods can handle NArray objects:
651
651
  # * GSL::Linalg::
652
652
  # * LU::
@@ -658,7 +658,7 @@
658
658
  # * LU.invert(lu, perm)
659
659
  # * QR::
660
660
  # * QR.decomp(m)
661
- # * QR.solve(qr, tau, b)
661
+ # * QR.solve(qr, tau, b)
662
662
  # * QR.svx(qr, tau, bx)
663
663
  # * SV::
664
664
  # * SV.decomp(m)
@@ -672,10 +672,10 @@
672
672
  # * HH.solve(m, b)
673
673
  # * HH.svx(m, bx)
674
674
  #
675
- # {prev}[link:rdoc/blas_rdoc.html]
676
- # {next}[link:rdoc/eigen_rdoc.html]
675
+ # {prev}[link:blas_rdoc.html]
676
+ # {next}[link:eigen_rdoc.html]
677
677
  #
678
- # {Reference index}[link:rdoc/ref_rdoc.html]
678
+ # {Reference index}[link:ref_rdoc.html]
679
679
  # {top}[link:index.html]
680
680
  #
681
681
  #