Mercurial > octave-nkf
annotate test/test_diag_perm.m @ 8951:5bce1357edd6
Fix conversion from PermMatrix to SparseMatrix.
From 76c98628f1943d583d5813321ec0a3c684d7ac84 Mon Sep 17 00:00:00 2001
Date: Tue, 10 Mar 2009 14:12:59 -0400
The result was transposed and missing its values. Also add a test case.
Signed-off-by: Jason Riedy <jason@acm.org>
---
liboctave/ChangeLog | 6 ++++++
liboctave/dSparse.cc | 7 +++++--
test/ChangeLog | 4 ++++
test/test_diag_perm.m | 9 +++++++++
4 files changed, 24 insertions(+), 2 deletions(-)
author | Jason Riedy <jason@acm.org> |
---|---|
date | Tue, 10 Mar 2009 15:44:11 -0400 |
parents | 42e24f4ebc8c |
children | 43aec7c168eb |
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); |
5bce1357edd6
Fix conversion from PermMatrix to SparseMatrix.
Jason Riedy <jason@acm.org>
parents:
8936
diff
changeset
|
79 |
8936
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
80 ######################################## |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
81 ## Diagonal matrices |
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 ## square row scaling |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
84 %!test |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
85 %! m = 7; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
86 %! n = 11; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
87 %! A = rand (m, n); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
88 %! scalefact = rand (m, 1); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
89 %! Dr = diag (scalefact); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
90 %! assert (Dr * A, repmat (scalefact, 1, n) .* A); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
91 %! assert (Dr \ A, A ./ repmat (scalefact, 1, n)); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
92 %! scalefact(m-1) = Inf; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
93 %! Dr(m-1, m-1) = 0; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
94 %! assert (Dr \ A, A ./ repmat (scalefact, 1, n)); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
95 |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
96 ## square column scaling |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
97 %!test |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
98 %! m = 13; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
99 %! n = 11; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
100 %! A = rand (m, n); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
101 %! scalefact = rand (1, n); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
102 %! Dc = diag (scalefact); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
103 %! assert (A * Dc, repmat (scalefact, m, 1) .* A); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
104 %! assert (A / Dc, A ./ repmat (scalefact, m, 1)); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
105 %! scalefact(n-1) = Inf; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
106 %! Dc(n-1, n-1) = 0; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
107 %! assert (A / Dc, A ./ repmat (scalefact, m, 1)); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
108 |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
109 ## arithmetic |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
110 %!test |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
111 %! m = 9; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
112 %! n = 7; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
113 %! mn = min (m, n); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
114 %! d1 = rand (mn, 1) + I () * rand (mn, 1); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
115 %! D1 = diag (d1, m, n); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
116 %! d2 = rand (mn, 1); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
117 %! D2 = diag (d2, m, n); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
118 %! D1D2 = D1 + D2; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
119 %! assert (typeinfo (D1D2), "complex diagonal matrix"); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
120 %! assert (diag (D1D2), d1 + d2); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
121 %! D1D2 = D2.' * D1; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
122 %! assert (typeinfo (D1D2), "complex diagonal matrix"); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
123 %! assert (diag (D1D2), d1 .* d2); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
124 |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
125 ## slicing |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
126 %!test |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
127 %! m = 13; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
128 %! n = 6; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
129 %! mn = min (m, n); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
130 %! d = rand (mn, 1); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
131 %! D = diag (d, m, n); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
132 %! Dslice = D (1:(m-3), 1:(n-2)); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
133 %! assert (typeinfo (Dslice), "diagonal matrix"); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
134 |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
135 ## preserve dense matrix structure |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
136 %!assert (typeinfo (rand (8) * (3 * eye (8))), "matrix"); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
137 %!assert (typeinfo ((3 * eye (8)) * rand (8)), "matrix"); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
138 |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
139 ## 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
|
140 %!test |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
141 %! n = 6; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
142 %! dr = rand (n, 1); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
143 %! Dr = diag (dr); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
144 %! dc = rand (1, n); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
145 %! Dc = diag (dc); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
146 %! A = rand (n); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
147 %! A(n, n-2) = NaN; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
148 %! A(4, 1) = Inf; |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
149 %! assert (Dr * A * Dc, A .* kron (dr, dc), eps); |
42e24f4ebc8c
add tests for diag & perm matrices.
Jason Riedy <jason@acm.org>
parents:
diff
changeset
|
150 |