Mercurial > octave-libgccjit
annotate test/test_diag_perm.m @ 8952:43aec7c168eb
test_diag_per.m: additional assert for sparse conversion test
author | Jason Riedy <jason@acm.org> |
---|---|
date | Tue, 10 Mar 2009 16:14:35 -0400 |
parents | 5bce1357edd6 |
children | f4f4d65faaa0 |
rev | line source |
---|---|
8936
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
1 ## Copyright (C) 2009 E. Jason Riedy |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
2 ## |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
3 ## This file is part of Octave. |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
4 ## |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
5 ## Octave is free software; you can redistribute it and/or modify it |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
6 ## under the terms of the GNU General Public License as published by |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
7 ## the Free Software Foundation; either version 3 of the License, or (at |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
8 ## your option) any later version. |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
9 ## |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
10 ## Octave is distributed in the hope that it will be useful, but |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
13 ## General Public License for more details. |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
14 ## |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
15 ## You should have received a copy of the GNU General Public License |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
16 ## along with Octave; see the file COPYING. If not, see |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
17 ## <http://www.gnu.org/licenses/>. |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
18 |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
19 ######################################## |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
20 ## Permutation matrices |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
21 |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
22 ## row permutation |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
23 %!test |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
24 %! n = 5; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
25 %! A = rand (n); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
26 %! perm = randperm (n); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
27 %! Prow = eye (n) (perm, :); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
28 %! assert (A(perm, :), Prow * A); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
29 %! invperm(perm) = 1:n; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
30 %! assert (Prow \ A, A(invperm, :)); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
31 %! assert (Prow' * A, A(invperm, :)); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
32 |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
33 ## column permutation |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
34 %!test |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
35 %! n = 7; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
36 %! A = rand (n); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
37 %! perm = randperm (n); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
38 %! Pcol = eye (n) (:, perm); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
39 %! assert (A(:, perm), A * Pcol); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
40 %! invperm(perm) = 1:n; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
41 %! assert (A / Pcol, A(:, invperm)); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
42 %! assert (A * Pcol.', A(:, invperm)); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
43 |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
44 ## fall back to a matrix in addition |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
45 %!test |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
46 %! n = 4; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
47 %! P1 = eye (n) (:, randperm (n)); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
48 %! A = zeros (n) + P1; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
49 %! assert (sum (A), ones (1, n)); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
50 %! assert (sum (A, 2), ones (n, 1)); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
51 |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
52 ## preserve dense matrix structure |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
53 %!test |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
54 %! n = 7; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
55 %! Pc = eye (n) (:, randperm (n)); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
56 %! Pr = eye (n) (randperm (n), :); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
57 %! assert (typeinfo (rand (n) * Pc), "matrix"); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
58 %! assert (typeinfo (Pr * rand (n)), "matrix"); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
59 |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
60 ## permuting a matrix with exceptional values does not introduce new ones. |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
61 %!test |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
62 %! n = 5; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
63 %! pc = randperm (n); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
64 %! Pc = eye (n) (:, pc); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
65 %! pr = randperm (n); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
66 %! Pr = eye (n) (pr, :); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
67 %! A = rand (n); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
68 %! A(n, n-2) = NaN; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
69 %! A(3, 1) = Inf; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
70 %! assert (Pr * A * Pc, A(pr, pc)); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
71 |
8951
5bce1357edd6
Fix conversion from PermMatrix to SparseMatrix.
Jason Riedy <jason@acm.org>
parents:
8936
diff
changeset
|
72 ## conversion to sparse form |
5bce1357edd6
Fix conversion from PermMatrix to SparseMatrix.
Jason Riedy <jason@acm.org>
parents:
8936
diff
changeset
|
73 %!test |
5bce1357edd6
Fix conversion from PermMatrix to SparseMatrix.
Jason Riedy <jason@acm.org>
parents:
8936
diff
changeset
|
74 %! n = 7; |
5bce1357edd6
Fix conversion from PermMatrix to SparseMatrix.
Jason Riedy <jason@acm.org>
parents:
8936
diff
changeset
|
75 %! P = eye (n) (:, randperm (n)); |
5bce1357edd6
Fix conversion from PermMatrix to SparseMatrix.
Jason Riedy <jason@acm.org>
parents:
8936
diff
changeset
|
76 %! sP = sparse (P); |
5bce1357edd6
Fix conversion from PermMatrix to SparseMatrix.
Jason Riedy <jason@acm.org>
parents:
8936
diff
changeset
|
77 %! assert (full (sP), full (P)); |
5bce1357edd6
Fix conversion from PermMatrix to SparseMatrix.
Jason Riedy <jason@acm.org>
parents:
8936
diff
changeset
|
78 %! assert (size (find (sP), 1), n); |
8952
43aec7c168eb
test_diag_per.m: additional assert for sparse conversion test
Jason Riedy <jason@acm.org>
parents:
8951
diff
changeset
|
79 %! [I, J, V] = find (sP); |
43aec7c168eb
test_diag_per.m: additional assert for sparse conversion test
Jason Riedy <jason@acm.org>
parents:
8951
diff
changeset
|
80 %! assert (all (V == 1)); |
8951
5bce1357edd6
Fix conversion from PermMatrix to SparseMatrix.
Jason Riedy <jason@acm.org>
parents:
8936
diff
changeset
|
81 |
8936
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
82 ######################################## |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
83 ## Diagonal matrices |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
84 |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
85 ## square row scaling |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
86 %!test |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
87 %! m = 7; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
88 %! n = 11; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
89 %! A = rand (m, n); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
90 %! scalefact = rand (m, 1); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
91 %! Dr = diag (scalefact); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
92 %! assert (Dr * A, repmat (scalefact, 1, n) .* A); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
93 %! assert (Dr \ A, A ./ repmat (scalefact, 1, n)); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
94 %! scalefact(m-1) = Inf; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
95 %! Dr(m-1, m-1) = 0; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
96 %! assert (Dr \ A, A ./ repmat (scalefact, 1, n)); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
97 |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
98 ## square column scaling |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
99 %!test |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
100 %! m = 13; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
101 %! n = 11; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
102 %! A = rand (m, n); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
103 %! scalefact = rand (1, n); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
104 %! Dc = diag (scalefact); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
105 %! assert (A * Dc, repmat (scalefact, m, 1) .* A); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
106 %! assert (A / Dc, A ./ repmat (scalefact, m, 1)); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
107 %! scalefact(n-1) = Inf; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
108 %! Dc(n-1, n-1) = 0; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
109 %! assert (A / Dc, A ./ repmat (scalefact, m, 1)); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
110 |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
111 ## arithmetic |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
112 %!test |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
113 %! m = 9; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
114 %! n = 7; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
115 %! mn = min (m, n); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
116 %! d1 = rand (mn, 1) + I () * rand (mn, 1); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
117 %! D1 = diag (d1, m, n); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
118 %! d2 = rand (mn, 1); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
119 %! D2 = diag (d2, m, n); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
120 %! D1D2 = D1 + D2; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
121 %! assert (typeinfo (D1D2), "complex diagonal matrix"); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
122 %! assert (diag (D1D2), d1 + d2); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
123 %! D1D2 = D2.' * D1; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
124 %! assert (typeinfo (D1D2), "complex diagonal matrix"); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
125 %! assert (diag (D1D2), d1 .* d2); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
126 |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
127 ## slicing |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
128 %!test |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
129 %! m = 13; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
130 %! n = 6; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
131 %! mn = min (m, n); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
132 %! d = rand (mn, 1); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
133 %! D = diag (d, m, n); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
134 %! Dslice = D (1:(m-3), 1:(n-2)); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
135 %! assert (typeinfo (Dslice), "diagonal matrix"); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
136 |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
137 ## preserve dense matrix structure |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
138 %!assert (typeinfo (rand (8) * (3 * eye (8))), "matrix"); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
139 %!assert (typeinfo ((3 * eye (8)) * rand (8)), "matrix"); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
140 |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
141 ## scaling a matrix with exceptional values does not introduce new ones. |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
142 %!test |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
143 %! n = 6; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
144 %! dr = rand (n, 1); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
145 %! Dr = diag (dr); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
146 %! dc = rand (1, n); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
147 %! Dc = diag (dc); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
148 %! A = rand (n); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
149 %! A(n, n-2) = NaN; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
150 %! A(4, 1) = Inf; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
151 %! assert (Dr * A * Dc, A .* kron (dr, dc), eps); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
152 |