5590
|
1 %% Automatically generated from DejaGNU files |
|
2 |
|
3 %% test/octave.test/linalg/cond-1.m |
|
4 %!assert(abs (cond ([1, 2; 2, 1]) - 3) < sqrt (eps)); |
|
5 |
|
6 %% test/octave.test/linalg/cond-2.m |
|
7 %!assert(cond ([1, 2, 3; 4, 5, 6; 7, 8, 9]) > 1.0e+16); |
|
8 |
|
9 %% test/octave.test/linalg/cond-3.m |
|
10 %!error cond (); |
|
11 |
|
12 %% test/octave.test/linalg/cond-4.m |
|
13 %!error cond (1, 2); |
|
14 |
|
15 %% test/octave.test/linalg/det-1.m |
|
16 %!assert(det ([1, 2; 3, 4]) == -2); |
|
17 |
|
18 %% test/octave.test/linalg/det-2.m |
5751
|
19 %!error <Invalid call to det.*> det (); |
5590
|
20 |
|
21 %% test/octave.test/linalg/det-3.m |
5751
|
22 %!error <Invalid call to det.*> det (1, 2); |
5590
|
23 |
|
24 %% test/octave.test/linalg/det-4.m |
|
25 %!error det ([1, 2; 3, 4; 5, 6]); |
|
26 |
|
27 %% test/octave.test/linalg/eig-1.m |
|
28 %!assert(all (abs (eig ([1, 2; 2, 1]) - [-1; 3]) < sqrt (eps))); |
|
29 |
|
30 %% test/octave.test/linalg/eig-2.m |
|
31 %!test |
|
32 %! [v, d] = eig ([1, 2; 2, 1]); |
|
33 %! x = 1 / sqrt (2); |
|
34 %! assert(((abs (d - [-1, 0; 0, 3]) < sqrt (eps)) |
|
35 %! && (abs (v - [-x, x; x, x]) < sqrt (eps)))); |
|
36 |
|
37 %% test/octave.test/linalg/eig-3.m |
5751
|
38 %!error <Invalid call to eig.*> eig (); |
5590
|
39 |
|
40 %% test/octave.test/linalg/eig-4.m |
5751
|
41 %!error <Invalid call to eig.*> eig ([1, 2; 3, 4], 2); |
5590
|
42 |
|
43 %% test/octave.test/linalg/eig-5.m |
|
44 %!error eig ([1, 2; 3, 4; 5, 6]); |
|
45 |
|
46 %% test/octave.test/linalg/expm-1.m |
|
47 %!test |
|
48 %! arg = [-49, 24; -64, 31]; |
|
49 %! result = [-0.735758758144742, 0.551819099658089; |
|
50 %! -1.471517599088239, 1.103638240715556]; |
|
51 %! assert(all (all (abs (expm (arg) - result) < 128*eps))); |
|
52 |
|
53 %% test/octave.test/linalg/expm-2.m |
|
54 %!test |
|
55 %! arg = [1, 1; 0, 1]; |
|
56 %! result = [2.718281828459045, 2.718281828459045; |
|
57 %! 0.000000000000000, 2.718281828459045]; |
|
58 %! assert(all (all (abs (expm (arg) - result) < 4*eps))); |
|
59 |
|
60 %% test/octave.test/linalg/expm-3.m |
|
61 %!test |
|
62 %! arg = diag ([6, 6, 6], 1); |
|
63 %! result = [1, 6, 18, 36; |
|
64 %! 0, 1, 6, 18; |
|
65 %! 0, 0, 1, 6; |
|
66 %! 0, 0, 0, 1]; |
|
67 %! assert(all (all (expm (arg) == result))); |
|
68 |
|
69 %% test/octave.test/linalg/expm-4.m |
5751
|
70 %!error <Invalid call to expm.*> expm(); |
5590
|
71 |
|
72 %% test/octave.test/linalg/expm-5.m |
5751
|
73 %!error <Invalid call to expm.*> expm(1,2); |
5590
|
74 |
|
75 %% test/octave.test/linalg/expm-6.m |
|
76 %% test/octave.test/linalg/inv-1.m |
|
77 %!assert(all (all (abs (inv ([1, 2; 3, 4]) - [-2, 1; 1.5, -0.5]) < sqrt (eps)))); |
|
78 |
|
79 %% test/octave.test/linalg/inv-2.m |
5751
|
80 %!error <Invalid call to inv.*> inv (); |
5590
|
81 |
|
82 %% test/octave.test/linalg/inv-3.m |
5751
|
83 %!error <Invalid call to inv.*> inv ([1, 2; 3, 4], 2); |
5590
|
84 |
|
85 %% test/octave.test/linalg/inv-4.m |
|
86 %!error inv ([1, 2; 3, 4; 5, 6]); |
|
87 |
|
88 %% test/octave.test/linalg/trace-1.m |
|
89 %!assert(trace ([1, 2; 3, 4]) == 5); |
|
90 |
|
91 %% test/octave.test/linalg/trace-2.m |
|
92 %!assert(trace ([1, 2; 3, 4; 5, 6]) == 5); |
|
93 |
|
94 %% test/octave.test/linalg/trace-3.m |
|
95 %!assert(trace ([1, 3, 5; 2, 4, 6]) == 5); |
|
96 |
|
97 %% test/octave.test/linalg/trace-4.m |
|
98 %!error trace (); |
|
99 |
|
100 %% test/octave.test/linalg/trace-5.m |
|
101 %!error trace (1, 2); |
|
102 |
|
103 %% test/octave.test/linalg/chol-1.m |
|
104 %!test |
|
105 %! rt2 = sqrt (2); |
|
106 %! assert(all (all (abs (chol ([2, 1; 1, 1]) - [rt2, 1/rt2; 0, 1/rt2]) < sqrt (eps)))); |
|
107 |
|
108 %% test/octave.test/linalg/chol-2.m |
|
109 %!error chol ([1, 2; 3, 4]); |
|
110 |
|
111 %% test/octave.test/linalg/chol-3.m |
|
112 %!error chol ([1, 2; 3, 4; 5, 6]); |
|
113 |
|
114 %% test/octave.test/linalg/chol-4.m |
5751
|
115 %!error <Invalid call to chol.*> chol (); |
5590
|
116 |
|
117 %% test/octave.test/linalg/chol-5.m |
5751
|
118 %!error <Invalid call to chol.*> chol (1, 2); |
5590
|
119 |
|
120 %% test/octave.test/linalg/hess-1.m |
|
121 %!test |
|
122 %! a = [1, 2, 3; 5, 4, 6; 8, 7, 9]; |
|
123 %! [p, h] = hess (a); |
|
124 %! assert(size (p) == [3, 3] && size (h) == [3, 3] && abs (a - p * h * p') < sqrt (eps)); |
|
125 |
|
126 %% test/octave.test/linalg/hess-2.m |
5751
|
127 %!error <Invalid call to hess.*> hess (); |
5590
|
128 |
|
129 %% test/octave.test/linalg/hess-3.m |
5751
|
130 %!error <Invalid call to hess.*> hess ([1, 2; 3, 4], 2); |
5590
|
131 |
|
132 %% test/octave.test/linalg/hess-4.m |
|
133 %!error hess ([1, 2; 3, 4; 5, 6]); |
|
134 |
|
135 %% test/octave.test/linalg/lu-1.m |
|
136 %!assert(all (all (lu ([1, 2; 3, 4]) - [1/3, 1; 1, 0] < eps))); |
|
137 |
|
138 %% test/octave.test/linalg/lu-2.m |
|
139 %!test |
|
140 %! [l, u] = lu ([1, 2; 3, 4]); |
|
141 %! assert(((abs (l - [1/3, 1; 1, 0]) < sqrt (eps)) |
|
142 %! && abs (u - [3, 4; 0, 2/3]) < sqrt (eps))); |
|
143 |
|
144 %% test/octave.test/linalg/lu-3.m |
|
145 %!test |
|
146 %! [l, u, p] = lu ([1, 2; 3, 4]); |
|
147 %! assert((abs (l - [1, 0; 1/3, 1]) < sqrt (eps) |
|
148 %! && abs (u - [3, 4; 0, 2/3]) < sqrt (eps) |
|
149 %! && abs (p - [0, 1; 1, 0]) < sqrt (eps))); |
|
150 |
|
151 %% test/octave.test/linalg/lu-4.m |
5751
|
152 %!error <Invalid call to lu.*> lu (); |
5590
|
153 |
|
154 %% test/octave.test/linalg/lu-5.m |
5751
|
155 %!error <Invalid call to lu.*> lu ([1, 2; 3, 4], 2); |
5590
|
156 |
|
157 %% test/octave.test/linalg/lu-6.m |
|
158 %!test |
|
159 %! [l u p] = lu ([1, 2; 3, 4; 5, 6]); |
|
160 %! assert((abs (l - [1, 0; 1/5, 1; 3/5, 1/2]) < sqrt (eps) |
|
161 %! && abs (u - [5, 6; 0, 4/5]) < sqrt (eps) |
|
162 %! && abs (p - [0, 0, 1; 1, 0, 0; 0 1 0]) < sqrt (eps))); |
|
163 |
|
164 %% test/octave.test/linalg/qr-1.m |
|
165 %!test |
|
166 %! a = [0, 2, 1; 2, 1, 2]; |
|
167 %! |
|
168 %! [q, r] = qr (a); |
|
169 %! |
|
170 %! [qe, re] = qr (a, 0); |
|
171 %! |
|
172 %! assert((size (q) == [2, 2] && size (r) == [2, 3] |
|
173 %! && abs (q * r - a) < sqrt (eps) |
|
174 %! && size (qe) == [2, 2] && size (re) == [2, 3] |
|
175 %! && abs (qe * re - a) < sqrt (eps))); |
|
176 |
|
177 %% test/octave.test/linalg/qr-2.m |
|
178 %!test |
|
179 %! a = [0, 2, 1; 2, 1, 2]; |
|
180 %! |
5775
|
181 %! [q, r, p] = qr (a); # not giving right dimensions. FIXME |
5590
|
182 %! |
|
183 %! [qe, re, pe] = qr (a, 0); |
|
184 %! |
|
185 %! assert((size (q) == [2, 2] && size (r) == [2, 3] && size (p) == [3, 3] |
|
186 %! && abs (q * r - a * p) < sqrt (eps) |
|
187 %! && size (qe) == [2, 2] && size (re) == [2, 3] && size (pe) == [1, 3] |
|
188 %! && abs (qe * re - a(:,pe)) < sqrt (eps))); |
|
189 |
|
190 %% test/octave.test/linalg/qr-3.m |
|
191 %!test |
|
192 %! a = [0, 2; 2, 1; 1, 2]; |
|
193 %! |
|
194 %! [q, r] = qr (a); |
|
195 %! |
|
196 %! [qe, re] = qr (a, 0); |
|
197 %! |
|
198 %! assert((size (q) == [3, 3] && size (r) == [3, 2] |
|
199 %! && abs (a - q * r) < sqrt (eps) |
|
200 %! && size (qe) == [3, 2] && size (re) == [2, 2] |
|
201 %! && abs (a - qe * re) < sqrt (eps))); |
|
202 |
|
203 %% test/octave.test/linalg/qr-4.m |
|
204 %!test |
|
205 %! a = [0, 2; 2, 1; 1, 2]; |
|
206 %! |
|
207 %! [q, r, p] = qr (a); |
|
208 %! |
|
209 %! [qe, re, pe] = qr (a, 0); |
|
210 %! |
|
211 %! assert((size (q) == [3, 3] && size (r) == [3, 2] && size (p) == [2, 2] |
|
212 %! && abs (a * p - q * r) < sqrt (eps) |
|
213 %! && size (qe) == [3, 2] && size (re) == [2, 2] && size (pe) == [1, 2] |
|
214 %! && abs (a(:,pe) - qe * re) < sqrt (eps))); |
|
215 |
|
216 %% test/octave.test/linalg/qr-5.m |
5751
|
217 %!error <Invalid call to qr.*> qr (); |
5590
|
218 |
|
219 %% test/octave.test/linalg/qr-6.m |
5751
|
220 %!error <Invalid call to qr.*> qr ([1, 2; 3, 4], 0, 2); |
5590
|
221 |
|
222 %% test/octave.test/linalg/qr-7.m |
|
223 %!function retval = testqr (q, r, a, p) |
|
224 %! tol = 10*eps; |
|
225 %! retval = 0; |
|
226 %! if (nargin == 3) |
|
227 %! n1 = norm (q*r-a); |
|
228 %! n2 = norm (q'*q-eye(columns(q))); |
|
229 %! retval = (n1 < tol && n2 < tol); |
|
230 %! else |
|
231 %! n1 = norm (q'*q-eye(columns(q))); |
|
232 %! retval = (n1 < tol); |
|
233 %! if (isvector (p)) |
|
234 %! n2 = norm (q*r-a(:,p)); |
|
235 %! retval = (retval && n2 < tol); |
|
236 %! else |
|
237 %! n2 = norm (q*r - a*p); |
|
238 %! retval = (retval && n2 < tol); |
|
239 %! endif |
|
240 %! endif |
|
241 %!test |
|
242 %! |
|
243 %! t = ones (24, 1); |
|
244 %! j = 1; |
|
245 %! |
|
246 %! if 0 # eliminate big matrix tests |
|
247 %! a = rand(5000,20); |
|
248 %! [q,r]=qr(a,0); t(j++) = testqr(q,r,a); |
|
249 %! [q,r]=qr(a',0); t(j++) = testqr(q,r,a'); |
|
250 %! [q,r,p]=qr(a,0); t(j++) = testqr(q,r,a,p); |
|
251 %! [q,r,p]=qr(a',0); t(j++) = testqr(q,r,a',p); |
|
252 %! |
|
253 %! a = a+1i*eps; |
|
254 %! [q,r]=qr(a,0); t(j++) = testqr(q,r,a); |
|
255 %! [q,r]=qr(a',0); t(j++) = testqr(q,r,a'); |
|
256 %! [q,r,p]=qr(a,0); t(j++) = testqr(q,r,a,p); |
|
257 %! [q,r,p]=qr(a',0); t(j++) = testqr(q,r,a',p); |
|
258 %! endif |
|
259 %! |
|
260 %! a = [ ones(1,15); sqrt(eps)*eye(15) ]; |
|
261 %! [q,r]=qr(a); t(j++) = testqr(q,r,a); |
|
262 %! [q,r]=qr(a'); t(j++) = testqr(q,r,a'); |
|
263 %! [q,r,p]=qr(a); t(j++) = testqr(q,r,a,p); |
|
264 %! [q,r,p]=qr(a'); t(j++) = testqr(q,r,a',p); |
|
265 %! |
|
266 %! a = a+1i*eps; |
|
267 %! [q,r]=qr(a); t(j++) = testqr(q,r,a); |
|
268 %! [q,r]=qr(a'); t(j++) = testqr(q,r,a'); |
|
269 %! [q,r,p]=qr(a); t(j++) = testqr(q,r,a,p); |
|
270 %! [q,r,p]=qr(a'); t(j++) = testqr(q,r,a',p); |
|
271 %! |
|
272 %! a = [ ones(1,15); sqrt(eps)*eye(15) ]; |
|
273 %! [q,r]=qr(a,0); t(j++) = testqr(q,r,a); |
|
274 %! [q,r]=qr(a',0); t(j++) = testqr(q,r,a'); |
|
275 %! [q,r,p]=qr(a,0); t(j++) = testqr(q,r,a,p); |
|
276 %! [q,r,p]=qr(a',0); t(j++) = testqr(q,r,a',p); |
|
277 %! |
|
278 %! a = a+1i*eps; |
|
279 %! [q,r]=qr(a,0); t(j++) = testqr(q,r,a); |
|
280 %! [q,r]=qr(a',0); t(j++) = testqr(q,r,a'); |
|
281 %! [q,r,p]=qr(a,0); t(j++) = testqr(q,r,a,p); |
|
282 %! [q,r,p]=qr(a',0); t(j++) = testqr(q,r,a',p); |
|
283 %! |
|
284 %! a = [ |
|
285 %! 611 196 -192 407 -8 -52 -49 29 |
|
286 %! 196 899 113 -192 -71 -43 -8 -44 |
|
287 %! -192 113 899 196 61 49 8 52 |
|
288 %! 407 -192 196 611 8 44 59 -23 |
|
289 %! -8 -71 61 8 411 -599 208 208 |
|
290 %! -52 -43 49 44 -599 411 208 208 |
|
291 %! -49 -8 8 59 208 208 99 -911 |
|
292 %! 29 -44 52 -23 208 208 -911 99 |
|
293 %! ]; |
|
294 %! [q,r] = qr(a); |
|
295 %! |
|
296 %! assert(all (t) && norm(q*r-a) < 5000*eps); |
|
297 |
|
298 %% test/octave.test/linalg/schur-1.m |
|
299 %!test |
|
300 %! a = [1, 2, 3; 4, 5, 9; 7, 8, 6]; |
|
301 %! [u, s] = schur (a); |
|
302 %! assert(size (u) == [3, 3] && size (s) == [3, 3] && abs (s - u' * a * u) < sqrt (eps)); |
|
303 |
|
304 %% test/octave.test/linalg/schur-2.m |
5751
|
305 %!error <Invalid call to schur.*> schur (); |
5590
|
306 |
|
307 %% test/octave.test/linalg/schur-3.m |
|
308 %!test |
|
309 %! warn_num_to_str = 1; |
|
310 %! fail("schur ([1, 2; 3, 4], 2)","warning"); |
|
311 |
|
312 %% test/octave.test/linalg/schur-4.m |
|
313 %!error schur ([1, 2, 3; 4, 5, 6]); |
|
314 |
|
315 %% test/octave.test/linalg/svd-1.m |
|
316 %!assert(all (abs (svd ([1, 2; 2, 1]) - [3; 1]) < sqrt (eps))); |
|
317 |
|
318 %% test/octave.test/linalg/svd-2.m |
|
319 %!test |
|
320 %! [u, s, v] = svd ([1, 2; 2, 1]); |
|
321 %! x = 1 / sqrt (2); |
|
322 %! assert(((abs (u - [-x, -x; -x, x]) < sqrt (eps)) |
|
323 %! && (abs (s - [3, 0; 0, 1]) < sqrt (eps)) |
|
324 %! && (abs (v - [-x, x; -x, -x]) < sqrt (eps)))); |
|
325 |
|
326 %% test/octave.test/linalg/svd-3.m |
|
327 %!test |
|
328 %! a = [1, 2, 3; 4, 5, 6]; |
|
329 %! [u, s, v] = svd (a); |
|
330 %! assert((size (u) == [2, 2] && size (s) == [2, 3] && size (v) == [3, 3] |
|
331 %! && abs (a - u * s * v') < sqrt (eps))); |
|
332 |
|
333 %% test/octave.test/linalg/svd-4.m |
|
334 %!test |
|
335 %! a = [1, 2; 3, 4; 5, 6]; |
|
336 %! [u, s, v] = svd (a); |
|
337 %! assert((size (u) == [3, 3] && size (s) == [3, 2] && size (v) == [2, 2] |
|
338 %! && abs (a - u * s * v') < sqrt (eps))); |
|
339 |
|
340 %% test/octave.test/linalg/svd-5.m |
|
341 %!test |
|
342 %! a = [1, 2, 3; 4, 5, 6]; |
|
343 %! [u, s, v] = svd (a, 1); |
|
344 %! assert((size (u) == [2, 2] && size (s) == [2, 2] && size (v) == [3, 2] |
|
345 %! && abs (a - u * s * v') < sqrt (eps))); |
|
346 |
|
347 %% test/octave.test/linalg/svd-6.m |
|
348 %!test |
|
349 %! a = [1, 2; 3, 4; 5, 6]; |
|
350 %! [u, s, v] = svd (a, 1); |
|
351 %! assert((size (u) == [3, 2] && size (s) == [2, 2] && size (v) == [2, 2] |
|
352 %! && abs (a - u * s * v') < sqrt (eps))); |
|
353 |
|
354 %% test/octave.test/linalg/svd-7.m |
5751
|
355 %!error <Invalid call to svd.*> svd (); |
5590
|
356 |
|
357 %% test/octave.test/linalg/svd-8.m |
5751
|
358 %!error <Invalid call to svd.*> svd ([1, 2; 4, 5], 2, 3); |
5590
|
359 |
|
360 %% test/octave.test/linalg/svd-9.m |
5751
|
361 %!error <Invalid call to svd.*> [u, v] = svd ([1, 2; 3, 4]); |
5590
|
362 |
|
363 %% test/octave.test/linalg/syl-1.m |
|
364 %!test |
|
365 %! x = syl ([1, 2; 3, 4], [5, 6; 7, 8], [9, 10; 11, 12]); |
|
366 %! assert(all (all (abs (x - [-1/2, -2/3; -2/3, -1/2]) < sqrt (eps)))); |
|
367 |
|
368 %% test/octave.test/linalg/syl-2.m |
5751
|
369 %!error <Invalid call to syl.*> syl (); |
5590
|
370 |
|
371 %% test/octave.test/linalg/syl-3.m |
5751
|
372 %!error <Invalid call to syl.*> syl (1, 2, 3, 4); |
5590
|
373 |
|
374 %% test/octave.test/linalg/syl-4.m |
|
375 %!error syl ([1, 2; 3, 4], [1, 2, 3; 4, 5, 6], [4, 3]); |
|
376 |