dot divide
[scilab.git] / scilab / modules / ast / tests / unit_tests / dotdivide.dia.ref
1 // ============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2014 - Scilab Enterprises - Sylvain GENIN
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // ============================================================================
7 // <-- JVM NOT MANDATORY -->
8 s = %s;
9 empty = [];
10 r = 2;
11 R = [1,2;3,4];
12 R3(:,:,1) = R;
13 R3(:,:,2) = R';
14 c = 1 + 2*%i;
15 C = [1+2*%i,2+4*%i;3+6*%i,4+8*%i];
16 C3(:,:,1) = C;
17 C3(:,:,2) = C';
18 e = eye();
19 ec = (5+%i) * eye();
20 p = 1 + %s - %s**2;
21 pc = 1 + %s - %s**2 + ( 2 - 3 * %s + 4 * %s**2 ) * %i;
22 P = [2*p, -3*p;4*p,-5*p];
23 PC = [2*pc, -3*pc;4*pc,-5*pc];
24 SP = sparse([1,2;4,5;3,10],[1,2,3]);
25 SPC = sparse([1,2;4,5;3,10],[1,2,3]) * ( 1 + 4*%i);
26 SP1 = sparse([1,1],[10]);
27 SPC1 = sparse([1,1],[1]) * ( 2 + 6*%i);
28 i8 = int8(-8);
29 ui8 = uint8(8);
30 I8 = int8([-8 -16 ; -24 -32]);
31 UI8 = uint8([8 16 ; 24 32]);
32 I16 = int16([-16 -32 ; -48 -64]);
33 UI16 = uint16([16 32 ; 48 64]);
34 i16 = int16(-16);
35 ui16 = uint16(16);
36 i32 = int32(-32);
37 ui32 = uint32(32);
38 I32 = int32([-32 -64 ; -96 -128]);
39 UI32 = uint32([32 64 ; 96 128]);
40 assert_checkequal(empty .\empty, []);
41 assert_checkequal(empty .\r, []);
42 assert_checkequal(empty .\c, []);
43 assert_checkequal(empty .\R, []);
44 assert_checkequal(empty .\C, []);
45 assert_checkequal(empty .\e, []);
46 assert_checkequal(empty .\ec, []);
47 assert_checkequal(empty .\p, []);
48 assert_checkequal(empty .\pc, []);
49 assert_checkequal(empty .\P, []);
50 assert_checkequal(empty .\PC, []);
51 assert_checkequal(empty .\SP, []);
52 assert_checkequal(empty .\SPC, []);
53 assert_checkequal(empty .\SP1, []);
54 assert_checkequal(empty .\SPC1, []);
55 assert_checkequal(r .\empty, []);
56 assert_checkequal(r .\r,  1);
57 assert_checkequal(r .\c,  0.5+%i);
58 assert_checkequal(r .\R, [ 0.5, 1; 1.5, 2]);
59 assert_checkequal(r .\C, [ 0.5+%i, 1+%i* 2; 1.5+%i* 3, 2+%i* 4]);
60 assert_checkequal(r .\e, ( 0.5)*eye());
61 assert_checkequal(r .\ec, ( 2.5+%i* 0.5)*eye());
62 assert_checkequal(r .\p, 0.5+(0.5)*s+(- 0.5)*s^ 2);
63 assert_checkequal(r .\pc, 0.5+%i+(0.5-%i* 1.5)*s+(- 0.5+%i* 2)*s^ 2);
64 assert_checkequal(r .\P, [1+(1)*s+(- 1)*s^ 2,- 1.5+(- 1.5)*s+(1.5)*s^ 2;2+(2)*s+(- 2)*s^ 2,- 2.5+(- 2.5)*s+(2.5)*s^ 2]);
65 assert_checkequal(r .\PC, [1+%i* 2+(1-%i* 3)*s+(- 1+%i* 4)*s^ 2,- 1.5-%i* 3+(- 1.5+%i* 4.5)*s+(1.5-%i* 6)*s^ 2;2+%i* 4+(2-%i* 6)*s+(- 2+%i* 8)*s^ 2,- 2.5-%i* 5+(- 2.5+%i* 7.5)*s+(2.5-%i* 10)*s^ 2]);
66 assert_checkequal(r .\SP, sparse([ 1, 2; 3, 10; 4, 5],[ 0.5; 1.5; 1],[ 4, 10]));
67 assert_checkequal(r .\SPC, sparse([ 1, 2; 3, 10; 4, 5],[ 0.5+%i* 2; 1.5+%i* 6; 1+%i* 4],[ 4, 10]));
68 assert_checkequal(r .\SP1, sparse([ 1, 1], 5,[ 1, 1]));
69 assert_checkequal(r .\SPC1, sparse([ 1, 1], 1+%i* 3,[ 1, 1]));
70 assert_checkequal(r .\i8, int8( - 4));
71 assert_checkequal(r .\I8, int8([ - 4, - 8; - 12, - 16]));
72 assert_checkequal(r .\ui8, uint8( 4));
73 assert_checkequal(r .\UI8, uint8([ 4, 8; 12, 16]));
74 assert_checkequal(r .\i16, int16( - 8));
75 assert_checkequal(r .\I16, int16([ - 8, - 16; - 24, - 32]));
76 assert_checkequal(r .\ui16, uint16( 8));
77 assert_checkequal(r .\UI16, uint16([ 8, 16; 24, 32]));
78 assert_checkequal(r .\i32, int32( - 16));
79 assert_checkequal(r .\I32, int32([ - 16, - 32; - 48, - 64]));
80 assert_checkequal(r .\ui32, uint32( 16));
81 assert_checkequal(r .\UI32, uint32([ 16, 32; 48, 64]));
82 assert_checkequal(c .\empty, []);
83 assert_checkequal(c .\r,  0.4-%i* 0.8);
84 assert_checkequal(c .\c,  1+%i*0);
85 assert_checkequal(c .\R, [ 0.2-%i* 0.4, 0.4-%i* 0.8; 0.6-%i* 1.2, 0.8-%i* 1.6]);
86 assert_checkequal(c .\C, [ 1, 2; 3, 4]+%i*0);
87 assert_checkequal(c .\e, ( 1+%i* 2)*eye());
88 assert_checkequal(c .\ec, ( 1.4-%i* 1.8)*eye());
89 assert_checkequal(c .\p, 0.2-%i* 0.08+(0.2-%i* 0.08)*s+(- 0.2+%i* 0.08)*s^ 2);
90 assert_checkequal(c .\pc, 1+(- 1-%i)*s+(1.4+%i* 1.2)*s^ 2);
91 assert_checkequal(c .\P, [0.4-%i* 0.16+(0.4-%i* 0.16)*s+(- 0.4+%i* 0.16)*s^ 2,- 0.6+%i* 0.24+(- 0.6+%i* 0.24)*s+(0.6-%i* 0.24)*s^ 2;0.8-%i* 0.32+(0.8-%i* 0.32)*s+(- 0.8+%i* 0.32)*s^ 2,- 1+%i* 0.4+(- 1+%i* 0.4)*s+(1-%i* 0.4)*s^ 2]);
92 assert_checkequal(c .\PC, [2+(- 2-%i* 2)*s+(2.8+%i* 2.4)*s^ 2,- 3+(3+%i* 3)*s+(- 4.2-%i* 3.6)*s^ 2;4+(- 4-%i* 4)*s+(5.6+%i* 4.8)*s^ 2,- 5+(5+%i* 5)*s+(- 7-%i* 6)*s^ 2]);
93 assert_checkequal(c .\SP, sparse([ 1, 2; 3, 10; 4, 5],[ 0.2-%i* 0.4; 0.6-%i* 1.2; 0.4-%i* 0.8],[ 4, 10]));
94 assert_checkequal(c .\SPC, sparse([ 1, 2; 3, 10; 4, 5],[ 1.8+%i* 0.4; 5.4+%i* 1.2; 3.6+%i* 0.8],[ 4, 10]));
95 assert_checkequal(c .\SP1, sparse([ 1, 1], 2-%i* 4,[ 1, 1]));
96 assert_checkequal(c .\SPC1, sparse([ 1, 1], 2.8+%i* 0.4,[ 1, 1]));
97 assert_checkequal(R .\empty, []);
98 assert_checkequal(R .\r, [ 2, 1; (2/3), 0.5]);
99 assert_checkequal(R .\c,  0.2-%i* 0.4);
100 assert_checkequal(R .\R, [ 1, 1; 1, 1]);
101 assert_checkequal(R .\C, [ 1+%i* 2, 1+%i* 2; 1+%i* 2, 1+%i* 2]);
102 assert_checkequal(R .\p, [1+(1)*s+(- 1)*s^ 2,0.5+(0.5)*s+(- 0.5)*s^ 2;(1/3)+(1/3)*s+(- (1/3))*s^ 2,0.25+(0.25)*s+(- 0.25)*s^ 2]);
103 assert_checkequal(R .\pc, [1+%i* 2+(1-%i* 3)*s+(- 1+%i* 4)*s^ 2,0.5+%i+(0.5-%i* 1.5)*s+(- 0.5+%i* 2)*s^ 2;(1/3)+%i* (2/3)+((1/3)-%i)*s+(- (1/3)+%i* (1+1/3))*s^ 2,0.25+%i* 0.5+(0.25-%i* 0.75)*s+(- 0.25+%i)*s^ 2]);
104 assert_checkequal(R .\P, [2+(2)*s+(- 2)*s^ 2,- 1.5+(- 1.5)*s+(1.5)*s^ 2;(1+1/3)+(1+1/3)*s+(- (1+1/3))*s^ 2,- 1.25+(- 1.25)*s+(1.25)*s^ 2]);
105 assert_checkequal(R .\PC, [2+%i* 4+(2-%i* 6)*s+(- 2+%i* 8)*s^ 2,- 1.5-%i* 3+(- 1.5+%i* 4.5)*s+(1.5-%i* 6)*s^ 2;(1+1/3)+%i* (2+2/3)+((1+1/3)-%i* 4)*s+(- (1+1/3)+%i* (5+1/3))*s^ 2,- 1.25-%i* 2.5+(- 1.25+%i* 3.75)*s+(1.25-%i* 5)*s^ 2]);
106 assert_checkequal(R .\SPC1,  0.05-%i* 0.15);
107 assert_checkequal(R .\i8, int8([ - 8, - 4; - 2, - 2]));
108 assert_checkequal(R .\I8, int8([ - 8, - 8; - 8, - 8]));
109 assert_checkequal(R .\ui8, uint8([ 8, 4; 2, 2]));
110 assert_checkequal(R .\UI8, uint8([ 8, 8; 8, 8]));
111 assert_checkequal(R .\i16, int16([ - 16, - 8; - 5, - 4]));
112 assert_checkequal(R .\I16, int16([ - 16, - 16; - 16, - 16]));
113 assert_checkequal(R .\ui16, uint16([ 16, 8; 5, 4]));
114 assert_checkequal(R .\UI16, uint16([ 16, 16; 16, 16]));
115 assert_checkequal(R .\i32, int32([ - 32, - 16; - 10, - 8]));
116 assert_checkequal(R .\I32, int32([ - 32, - 32; - 32, - 32]));
117 assert_checkequal(R .\ui32, uint32([ 32, 16; 10, 8]));
118 assert_checkequal(R .\UI32, uint32([ 32, 32; 32, 32]));
119 assert_checkequal(C .\empty, []);
120 assert_checkequal(C .\r, [ 0.4-%i* 0.8, 0.2-%i* 0.4; 2/15-%i* 4/15, 0.1-%i* 0.2]);
121 assert_checkequal(C .\c, [ 1, 0.5; (1/3), 0.25]+%i*0);
122 assert_checkequal(C .\R, [ 0.2-%i* 0.4, 0.2-%i* 0.4; 0.2-%i* 0.4, 0.2-%i* 0.4]);
123 assert_checkequal(C .\C, [ 1, 1; 1, 1]+%i*0);
124 assert_checkequal(C .\p, [0.2-%i* 0.4+(0.2-%i* 0.4)*s+(- 0.2+%i* 0.4)*s^ 2,0.1-%i* 0.2+(0.1-%i* 0.2)*s+(- 0.1+%i* 0.2)*s^ 2;1/15-%i* 2/15+(1/15-%i* 2/15)*s+(- 1/15+%i* 2/15)*s^ 2,0.05-%i* 0.1+(0.05-%i* 0.1)*s+(- 0.05+%i* 0.1)*s^ 2]);
125 assert_checkequal(C .\pc, [1+(- 1-%i)*s+(1.4+%i* 1.2)*s^ 2,0.5+(- 0.5-%i* 0.5)*s+(0.7+%i* 0.6)*s^ 2;(1/3)+(- (1/3)-%i* (1/3))*s+(7/15+%i* 0.4)*s^ 2,0.25+(- 0.25-%i* 0.25)*s+(0.35+%i* 0.3)*s^ 2]);
126 assert_checkequal(C .\P, [0.4-%i* 0.8+(0.4-%i* 0.8)*s+(- 0.4+%i* 0.8)*s^ 2,- 0.3+%i* 0.6+(- 0.3+%i* 0.6)*s+(0.3-%i* 0.6)*s^ 2;4/15-%i* 8/15+(4/15-%i* 8/15)*s+(- 4/15+%i* 8/15)*s^ 2,- 0.25+%i* 0.5+(- 0.25+%i* 0.5)*s+(0.25-%i* 0.5)*s^ 2]);
127 assert_checkequal(C .\PC, [2+(- 2-%i* 2)*s+(2.8+%i* 2.4)*s^ 2,- 1.5+(1.5+%i* 1.5)*s+(- 2.1-%i* 1.8)*s^ 2;(1+1/3)+(- (1+1/3)-%i* (1+1/3))*s+(28/15+%i* 1.6)*s^ 2,- 1.25+(1.25+%i* 1.25)*s+(- 1.75-%i* 1.5)*s^ 2]);
128 assert_checkequal(C .\SPC1, [ 2.8+%i* 0.4, 1.4+%i* 0.2; 14/15+%i* 2/15, 0.7+%i* 0.1]);
129 assert_checkequal(e .\empty, []);
130 assert_checkequal(e .\r, ( 2)*eye());
131 assert_checkequal(e .\c, ( 1+%i* 2)*eye());
132 assert_checkequal(e .\e, ( 1)*eye());
133 assert_checkequal(e .\ec, ( 5+%i)*eye());
134 assert_checkequal(e .\SP1, ( 10)*eye());
135 assert_checkequal(e .\SPC1, ( 2+%i* 6)*eye());
136 assert_checkequal(e .\i8, int8(( - 8)*eye()));
137 assert_checkequal(e .\ui8, uint8(( 8)*eye()));
138 assert_checkequal(e .\i16, int16(( - 16)*eye()));
139 assert_checkequal(e .\ui16, uint16(( 16)*eye()));
140 assert_checkequal(e .\i32, int32(( - 32)*eye()));
141 assert_checkequal(e .\ui32, uint32(( 32)*eye()));
142 assert_checkequal(ec .\empty, []);
143 assert_checkequal(ec .\r, ( 10/26-%i* 1/13)*eye());
144 assert_checkequal(ec .\c, ( 7/26+%i* 9/26)*eye());
145 assert_checkequal(ec .\e, ( 5/26-%i* 1/26)*eye());
146 assert_checkequal(ec .\ec, ( 1+%i*0)*eye());
147 assert_checkequal(p .\empty, []);
148 test = p .\r;
149 assert_checkequal(test(2), 2);
150 assert_checkequal(test(3), 1+(1)*s+(- 1)*s^ 2);
151 test = p .\c;
152 assert_checkequal(test(2), 1+%i* 2);
153 assert_checkequal(test(3), 1+(1)*s+(- 1)*s^ 2);
154 test = p .\R;
155 assert_checkequal(test(2), [ 1, 2; 3, 4]);
156 assert_checkequal(test(3),[1+(1)*s+(- 1)*s^ 2,1+(1)*s+(- 1)*s^ 2;1+(1)*s+(- 1)*s^ 2,1+(1)*s+(- 1)*s^ 2]);
157 test = p .\C;
158 assert_checkequal(test(2), [ 1+%i* 2, 2+%i* 4; 3+%i* 6, 4+%i* 8]);
159 assert_checkequal(test(3),[1+(1)*s+(- 1)*s^ 2,1+(1)*s+(- 1)*s^ 2;1+(1)*s+(- 1)*s^ 2,1+(1)*s+(- 1)*s^ 2]);
160 test = p .\p;
161 assert_checkequal(test(2), 1+s*0);
162 assert_checkequal(test(3), 1+s*0);
163 test = p .\pc;
164 assert_checkequal(test(2), (1+%i*2) + (1-%i*3)*s + (-1+%i*4)*s^2  );
165 assert_checkequal(test(3), 1+s-s^2);
166 test = p .\P;
167 assert_checkequal(test(2), [ 1, 1; 1, 1]+s*0);
168 assert_checkequal(test(3),[0.5, - (1/3) ; 0.25 , -0.2]+s*0);
169 test = p .\PC;
170 assert_checkequal(test(2), [ (2+%i*4)+(2-%i*6)*s+(-2+%i*8)*s^2 , (-3-%i*6)+(-3+%i*9)*s+(3-%i*12)*s^2 ; (4+%i*8)+(4-%i*12)*s+(-4+%i*16)*s^2 , (-5-%i*10)+(-5+%i*15)*s+(5-%i*20)*s^2 ]);
171 assert_checkequal(test(3),[1+(1)*s+(- 1)*s^ 2,1+(1)*s+(- 1)*s^ 2;1+(1)*s+(- 1)*s^ 2,1+(1)*s+(- 1)*s^ 2]);
172 assert_checkequal(pc .\empty, []);
173 test = pc .\r;
174 assert_checkequal(test(2), 2);
175 assert_checkequal(test(3), 1+%i* 2+(1-%i* 3)*s+(- 1+%i* 4)*s^ 2);
176 test = pc .\c;
177 assert_checkequal(test(2), 1+%i* 2);
178 assert_checkequal(test(3), 1+%i* 2+(1-%i* 3)*s+(- 1+%i* 4)*s^ 2);
179 test = pc .\R;
180 assert_checkequal(test(2), [ 1, 2; 3, 4]);
181 assert_checkequal(test(3),[1+%i* 2+(1-%i* 3)*s+(- 1+%i* 4)*s^ 2,1+%i* 2+(1-%i* 3)*s+(- 1+%i* 4)*s^ 2;1+%i* 2+(1-%i* 3)*s+(- 1+%i* 4)*s^ 2,1+%i* 2+(1-%i* 3)*s+(- 1+%i* 4)*s^ 2]);
182 test = pc .\C;
183 assert_checkequal(test(2), [ 1+%i* 2, 2+%i* 4; 3+%i* 6, 4+%i* 8]);
184 assert_checkequal(test(3),[1+%i* 2+(1-%i* 3)*s+(- 1+%i* 4)*s^ 2,1+%i* 2+(1-%i* 3)*s+(- 1+%i* 4)*s^ 2;1+%i* 2+(1-%i* 3)*s+(- 1+%i* 4)*s^ 2,1+%i* 2+(1-%i* 3)*s+(- 1+%i* 4)*s^ 2]);
185 test = pc .\p;
186 assert_checkequal(test(2), 1+s-s^2);
187 assert_checkequal(test(3), 1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2);
188 test = pc .\pc;
189 assert_checkequal(test(2), 1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2);
190 assert_checkequal(test(3), 1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2);
191 test = pc .\P;
192 assert_checkequal(test(2), [2+2*s-2*s^2,-3-3*s+3*s^2;4+4*s-4*s^2,-5-5*s+5*s^2]);
193 assert_checkequal(test(3),[1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2,1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2;1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2,1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2]);
194 test = pc .\PC;
195 assert_checkequal(test(2), [2+%i*4+(2-%i*6)*s+(-2+%i*8)*s^2,-3-%i*6+(-3+%i*9)*s+(3-%i*12)*s^2;4+%i*8+(4-%i*12)*s+(-4+%i*16)*s^2,-5-%i*10+(-5+%i*15)*s+(5-%i*20)*s^2]);
196 assert_checkequal(test(3), [1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2,1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2;1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2,1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2]);
197 assert_checkequal(P .\empty, []);
198 test = P .\r;
199 assert_checkequal(test(2), [ 2, 2; 2, 2]);
200 assert_checkequal(test(3), [2+(2)*s+(- 2)*s^ 2,- 3+(- 3)*s+(3)*s^ 2;4+(4)*s+(- 4)*s^ 2,- 5+(- 5)*s+(5)*s^ 2]);
201 test = P .\c;
202 assert_checkequal(test(2), [ 1+%i* 2, 1+%i* 2; 1+%i* 2, 1+%i* 2]);
203 assert_checkequal(test(3), [2+(2)*s+(- 2)*s^ 2,- 3+(- 3)*s+(3)*s^ 2;4+(4)*s+(- 4)*s^ 2,- 5+(- 5)*s+(5)*s^ 2]);
204 test = P .\R;
205 assert_checkequal(test(2), [ 1, 2; 3, 4]);
206 assert_checkequal(test(3),[2+(2)*s+(- 2)*s^ 2,- 3+(- 3)*s+(3)*s^ 2;4+(4)*s+(- 4)*s^ 2,- 5+(- 5)*s+(5)*s^ 2]);
207 test = P .\C;
208 assert_checkequal(test(2), [ 1+%i* 2, 2+%i* 4; 3+%i* 6, 4+%i* 8]);
209 assert_checkequal(test(3),[2+(2)*s+(- 2)*s^ 2,- 3+(- 3)*s+(3)*s^ 2;4+(4)*s+(- 4)*s^ 2,- 5+(- 5)*s+(5)*s^ 2]);
210 test = P .\p;
211 assert_checkequal(test(2), [1,1;1,1]+s*0);
212 assert_checkequal(test(3), [2,-3;4,-5]+s*0);
213 test = P .\pc;
214 assert_checkequal(test(2), [1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2,1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2;1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2,1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2]);
215 assert_checkequal(test(3), [2+2*s-2*s^2,-3-3*s+3*s^2;4+4*s-4*s^2,-5-5*s+5*s^2]);
216 test = P .\P;
217 assert_checkequal(test(2), [1,1;1,1]+s*0);
218 assert_checkequal(test(3),[1,1;1,1]+s*0);
219 test = P .\PC;
220 assert_checkequal(test(2), [2+%i*4+(2-%i*6)*s+(-2+%i*8)*s^2,-3-%i*6+(-3+%i*9)*s+(3-%i*12)*s^2;4+%i*8+(4-%i*12)*s+(-4+%i*16)*s^2,-5-%i*10+(-5+%i*15)*s+(5-%i*20)*s^2]);
221 assert_checkequal(test(3),[2+2*s-2*s^2,-3-3*s+3*s^2;4+4*s-4*s^2,-5-5*s+5*s^2]);
222 assert_checkequal(PC .\empty, []);
223 test = PC .\r;
224 assert_checkequal(test(2), [ 2, 2; 2, 2]);
225 assert_checkequal(test(3), [2+%i* 4+(2-%i* 6)*s+(- 2+%i* 8)*s^ 2,- 3-%i* 6+(- 3+%i* 9)*s+(3-%i* 12)*s^ 2;4+%i* 8+(4-%i* 12)*s+(- 4+%i* 16)*s^ 2,- 5-%i* 10+(- 5+%i* 15)*s+(5-%i* 20)*s^ 2]);
226 test = PC .\c;
227 assert_checkequal(test(2), [ 1+%i* 2, 1+%i* 2; 1+%i* 2, 1+%i* 2]);
228 assert_checkequal(test(3), [2+%i* 4+(2-%i* 6)*s+(- 2+%i* 8)*s^ 2,- 3-%i* 6+(- 3+%i* 9)*s+(3-%i* 12)*s^ 2;4+%i* 8+(4-%i* 12)*s+(- 4+%i* 16)*s^ 2,- 5-%i* 10+(- 5+%i* 15)*s+(5-%i* 20)*s^ 2]);
229 test = PC .\R;
230 assert_checkequal(test(2), [ 1, 2; 3, 4]);
231 assert_checkequal(test(3),[2+%i* 4+(2-%i* 6)*s+(- 2+%i* 8)*s^ 2,- 3-%i* 6+(- 3+%i* 9)*s+(3-%i* 12)*s^ 2;4+%i* 8+(4-%i* 12)*s+(- 4+%i* 16)*s^ 2,- 5-%i* 10+(- 5+%i* 15)*s+(5-%i* 20)*s^ 2]);
232 test = PC .\C;
233 assert_checkequal(test(2), [ 1+%i* 2, 2+%i* 4; 3+%i* 6, 4+%i* 8]);
234 assert_checkequal(test(3),[2+%i* 4+(2-%i* 6)*s+(- 2+%i* 8)*s^ 2,- 3-%i* 6+(- 3+%i* 9)*s+(3-%i* 12)*s^ 2;4+%i* 8+(4-%i* 12)*s+(- 4+%i* 16)*s^ 2,- 5-%i* 10+(- 5+%i* 15)*s+(5-%i* 20)*s^ 2]);
235 test = PC .\p;
236 assert_checkequal(test(2), [1+s-s^2,1+s-s^2;1+s-s^2,1+s-s^2]);
237 assert_checkequal(test(3), [2+%i*4+(2-%i*6)*s+(-2+%i*8)*s^2,-3-%i*6+(-3+%i*9)*s+(3-%i*12)*s^2;4+%i*8+(4-%i*12)*s+(-4+%i*16)*s^2,-5-%i*10+(-5+%i*15)*s+(5-%i*20)*s^2]);
238 test = PC .\pc;
239 assert_checkequal(test(2), [1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2,1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2;1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2,1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2]);
240 assert_checkequal(test(3), [2+%i*4+(2-%i*6)*s+(-2+%i*8)*s^2,-3-%i*6+(-3+%i*9)*s+(3-%i*12)*s^2;4+%i*8+(4-%i*12)*s+(-4+%i*16)*s^2,-5-%i*10+(-5+%i*15)*s+(5-%i*20)*s^2]);
241 test = PC .\P;
242 assert_checkequal(test(2), [2+2*s-2*s^2,-3-3*s+3*s^2;4+4*s-4*s^2,-5-5*s+5*s^2]);
243 assert_checkequal(test(3),[2+%i*4+(2-%i*6)*s+(-2+%i*8)*s^2,-3-%i*6+(-3+%i*9)*s+(3-%i*12)*s^2;4+%i*8+(4-%i*12)*s+(-4+%i*16)*s^2,-5-%i*10+(-5+%i*15)*s+(5-%i*20)*s^2]);
244 test = PC .\PC;
245 assert_checkequal(test(2), [2+%i*4+(2-%i*6)*s+(-2+%i*8)*s^2,-3-%i*6+(-3+%i*9)*s+(3-%i*12)*s^2;4+%i*8+(4-%i*12)*s+(-4+%i*16)*s^2,-5-%i*10+(-5+%i*15)*s+(5-%i*20)*s^2]);
246 assert_checkequal(test(3), [2+%i*4+(2-%i*6)*s+(-2+%i*8)*s^2,-3-%i*6+(-3+%i*9)*s+(3-%i*12)*s^2;4+%i*8+(4-%i*12)*s+(-4+%i*16)*s^2,-5-%i*10+(-5+%i*15)*s+(5-%i*20)*s^2]);
247 assert_checkequal(SP .\empty, []);
248 assert_checkequal(SP .\r, sparse([ 1, 2; 3, 10; 4, 5],[ 2; (2/3); 1],[ 4, 10]));
249 assert_checkequal(SP .\c, sparse([ 1, 2; 3, 10; 4, 5],[ 1+%i* 2; (1/3)+%i* (2/3); 0.5+%i],[ 4, 10]));
250 assert_checkequal(SP .\SP, sparse([ 1, 2; 3, 10; 4, 5],[ 1; 1; 1],[ 4, 10]));
251 assert_checkequal(SP .\SPC, sparse([ 1, 2; 3, 10; 4, 5],[ 1+%i* 4; 1+%i* 4; 1+%i* 4],[ 4, 10]));
252 assert_checkequal(SP .\SP1, sparse([ 1, 2; 3, 10; 4, 5],[ 10; (3+1/3); 5],[ 4, 10]));
253 assert_checkequal(SP .\SPC1, sparse([ 1, 2; 3, 10; 4, 5],[ 2+%i* 6; (2/3)+%i* 2; 1+%i* 3],[ 4, 10]));
254 assert_checkequal(SPC .\empty, []);
255 assert_checkequal(SPC .\r, sparse([ 1, 2; 3, 10; 4, 5],[ 2/17-%i* 8/17; 2/51-%i* 8/51; 1/17-%i* 4/17],[ 4, 10]));
256 assert_checkequal(SPC .\c, sparse([ 1, 2; 3, 10; 4, 5],[ 9/17-%i* 2/17; 3/17-%i* 2/51; 9/34-%i* 1/17],[ 4, 10]));
257 assert_checkequal(SPC .\SP, sparse([ 1, 2; 3, 10; 4, 5],[ 1/17-%i* 4/17; 1/17-%i* 4/17; 1/17-%i* 4/17],[ 4, 10]));
258 assert_checkequal(SPC .\SPC, sparse([ 1, 2; 3, 10; 4, 5],[ 1; 1; 1],[ 4, 10]));
259 assert_checkequal(SPC .\SP1, sparse([ 1, 2; 3, 10; 4, 5],[ 10/17-%i* 40/17; 10/51-%i* 40/51; 10/34-%i* 20/17],[ 4, 10]));
260 assert_checkequal(SPC .\SPC1, sparse([ 1, 2; 3, 10; 4, 5],[ 26/17-%i* 2/17; 26/51-%i* 2/51; 13/17-%i* 1/17],[ 4, 10]));
261 assert_checkequal(SP1 .\empty, []);
262 assert_checkequal(SP1 .\r, sparse([ 1, 1], 0.2,[ 1, 1]));
263 assert_checkequal(SP1 .\c, sparse([ 1, 1], 0.1+%i* 0.2,[ 1, 1]));
264 assert_checkequal(SP1 .\R, [ 0.1, 0.2; 0.3, 0.4]);
265 assert_checkequal(SP1 .\C, [ 0.1+%i* 0.2, 0.2+%i* 0.4; 0.3+%i* 0.6, 0.4+%i* 0.8]);
266 assert_checkequal(SP1 .\SP, sparse([ 1, 2; 3, 10; 4, 5],[ 0.1; 0.3; 0.2],[ 4, 10]));
267 assert_checkequal(SP1 .\SPC, sparse([ 1, 2; 3, 10; 4, 5],[ 0.1+%i* 0.4; 0.3+%i* 1.2; 0.2+%i* 0.8],[ 4, 10]));
268 assert_checkequal(SP1 .\SP1, sparse([ 1, 1], 1,[ 1, 1]));
269 assert_checkequal(SP1 .\SPC1, sparse([ 1, 1], 0.2+%i* 0.6,[ 1, 1]));
270 assert_checkequal(SPC1 .\empty, []);
271 assert_checkalmostequal(SPC1 .\r, sparse([ 1, 1], 0.1-%i* 0.3,[ 1, 1]));
272 assert_checkalmostequal(SPC1 .\c, sparse([ 1, 1], 0.35-%i* 0.05,[ 1, 1]));
273 assert_checkequal(SPC1 .\R, [ 0.05-%i* 0.15, 0.1-%i* 0.3; 0.15-%i* 0.45, 0.2-%i* 0.6]);
274 assert_checkequal(SPC1 .\C, [ 0.35-%i* 0.05, 0.7-%i* 0.1; 1.05-%i* 0.15, 1.4-%i* 0.2]);
275 assert_checkalmostequal(SPC1 .\SP, sparse([ 1, 2; 3, 10; 4, 5],[ 0.05-%i* 0.15; 0.15-%i* 0.45; 0.1-%i* 0.3],[ 4, 10]));
276 assert_checkalmostequal(SPC1 .\SPC, sparse([ 1, 2; 3, 10; 4, 5],[ 0.65+%i* 0.05; 1.95+%i* 0.15; 1.3+%i* 0.1],[ 4, 10]));
277 assert_checkalmostequal(SPC1 .\SP1, sparse([ 1, 1], 0.5-%i* 1.5,[ 1, 1]));
278 assert_checkequal(SPC1 .\SPC1, sparse([ 1, 1], 1,[ 1, 1]));
279 assert_checkequal(i8 .\r, int8( 0));
280 assert_checkequal(i8 .\R, int8([ 0, 0; 0, 0]));
281 assert_checkequal(i8 .\i8, int8( 1));
282 assert_checkequal(i8 .\I8, int8([ 1, 2; 3, 4]));
283 assert_checkequal(i8 .\ui8, uint8( 0));
284 assert_checkequal(i8 .\UI8, uint8([ 0, 0; 0, 0]));
285 assert_checkequal(i8 .\i16, int16( 2));
286 assert_checkequal(i8 .\I16, int16([ 2, 4; 6, 8]));
287 assert_checkequal(i8 .\ui16, uint16( 0));
288 assert_checkequal(i8 .\UI16, uint16([ 0, 0; 0, 0]));
289 assert_checkequal(i8 .\i32, int32( 4));
290 assert_checkequal(i8 .\I32, int32([ 4, 8; 12, 16]));
291 assert_checkequal(i8 .\ui32, uint32( 0));
292 assert_checkequal(i8 .\UI32, uint32([ 0, 0; 0, 0]));
293 assert_checkequal(I8 .\r, int8([ 0, 0; 0, 0]));
294 assert_checkequal(I8 .\R, int8([ 0, 0; 0, 0]));
295 assert_checkequal(I8 .\i8, int8([ 1, 0; 0, 0]));
296 assert_checkequal(I8 .\I8, int8([ 1, 1; 1, 1]));
297 assert_checkequal(I8 .\ui8, uint8([ 0, 0; 0, 0]));
298 assert_checkequal(I8 .\UI8, uint8([ 0, 0; 0, 0]));
299 assert_checkequal(I8 .\i16, int16([ 2, 1; 0, 0]));
300 assert_checkequal(I8 .\I16, int16([ 2, 2; 2, 2]));
301 assert_checkequal(I8 .\ui16, uint16([ 0, 0; 0, 0]));
302 assert_checkequal(I8 .\UI16, uint16([ 0, 0; 0, 0]));
303 assert_checkequal(I8 .\i32, int32([ 4, 2; 1, 1]));
304 assert_checkequal(I8 .\I32, int32([ 4, 4; 4, 4]));
305 assert_checkequal(I8 .\ui32, uint32([ 0, 0; 0, 0]));
306 assert_checkequal(I8 .\UI32, uint32([ 0, 0; 0, 0]));
307 assert_checkequal(ui8 .\r, uint8( 0));
308 assert_checkequal(ui8 .\R, uint8([ 0, 0; 0, 0]));
309 assert_checkequal(ui8 .\i8, uint8( 31));
310 assert_checkequal(ui8 .\I8, uint8([ 31, 30; 29, 28]));
311 assert_checkequal(ui8 .\ui8, uint8( 1));
312 assert_checkequal(ui8 .\UI8, uint8([ 1, 2; 3, 4]));
313 assert_checkequal(ui8 .\i16, uint16( 8190));
314 assert_checkequal(ui8 .\I16, uint16([ 8190, 8188; 8186, 8184]));
315 assert_checkequal(ui8 .\ui16, uint16( 2));
316 assert_checkequal(ui8 .\UI16, uint16([ 2, 4; 6, 8]));
317 assert_checkequal(ui8 .\i32, uint32( 536870908));
318 assert_checkequal(ui8 .\I32, uint32([ 536870908, 536870904; 536870900, 536870896]));
319 assert_checkequal(ui8 .\ui32, uint32( 4));
320 assert_checkequal(ui8 .\UI32, uint32([ 4, 8; 12, 16]));
321 assert_checkequal(UI8 .\r, uint8([ 0, 0; 0, 0]));
322 assert_checkequal(UI8 .\R, uint8([ 0, 0; 0, 0]));
323 assert_checkequal(UI8 .\i8, uint8([ 31, 15; 10, 7]));
324 assert_checkequal(UI8 .\I8, uint8([ 31, 15; 9, 7]));
325 assert_checkequal(UI8 .\ui8, uint8([ 1, 0; 0, 0]));
326 assert_checkequal(UI8 .\UI8, uint8([ 1, 1; 1, 1]));
327 assert_checkequal(UI8 .\i16, uint16([ 8190, 4095; 2730, 2047]));
328 assert_checkequal(UI8 .\I16, uint16([ 8190, 4094; 2728, 2046]));
329 assert_checkequal(UI8 .\ui16, uint16([ 2, 1; 0, 0]));
330 assert_checkequal(UI8 .\UI16, uint16([ 2, 2; 2, 2]));
331 assert_checkequal(UI8 .\i32, uint32([ 536870908, 268435454; 178956969, 134217727]));
332 assert_checkequal(UI8 .\I32, uint32([ 536870908, 268435452; 178956966, 134217724]));
333 assert_checkequal(UI8 .\ui32, uint32([ 4, 2; 1, 1]));
334 assert_checkequal(UI8 .\UI32, uint32([ 4, 4; 4, 4]));
335 assert_checkequal(i16 .\r, int16( 0));
336 assert_checkequal(i16 .\R, int16([ 0, 0; 0, 0]));
337 assert_checkequal(i16 .\i8, int16( 0));
338 assert_checkequal(i16 .\I8, int16([ 0, 1; 1, 2]));
339 assert_checkequal(i16 .\ui8, uint16( 0));
340 assert_checkequal(i16 .\UI8, uint16([ 0, 0; 0, 0]));
341 assert_checkequal(i16 .\i16, int16( 1));
342 assert_checkequal(i16 .\I16, int16([ 1, 2; 3, 4]));
343 assert_checkequal(i16 .\ui16, uint16( 0));
344 assert_checkequal(i16 .\UI16, uint16([ 0, 0; 0, 0]));
345 assert_checkequal(i16 .\i32, int32( 2));
346 assert_checkequal(i16 .\I32, int32([ 2, 4; 6, 8]));
347 assert_checkequal(i16 .\ui32, uint32( 0));
348 assert_checkequal(i16 .\UI32, uint32([ 0, 0; 0, 0]));
349 assert_checkequal(I16 .\r, int16([ 0, 0; 0, 0]));
350 assert_checkequal(I16 .\R, int16([ 0, 0; 0, 0]));
351 assert_checkequal(I16 .\i8, int16([ 0, 0; 0, 0]));
352 assert_checkequal(I16 .\I8, int16([ 0, 0; 0, 0]));
353 assert_checkequal(I16 .\ui8, uint16([ 0, 0; 0, 0]));
354 assert_checkequal(I16 .\UI8, uint16([ 0, 0; 0, 0]));
355 assert_checkequal(I16 .\i16, int16([ 1, 0; 0, 0]));
356 assert_checkequal(I16 .\I16, int16([ 1, 1; 1, 1]));
357 assert_checkequal(I16 .\ui16, uint16([ 0, 0; 0, 0]));
358 assert_checkequal(I16 .\UI16, uint16([ 0, 0; 0, 0]));
359 assert_checkequal(I16 .\i32, int32([ 2, 1; 0, 0]));
360 assert_checkequal(I16 .\I32, int32([ 2, 2; 2, 2]));
361 assert_checkequal(I16 .\ui32, uint32([ 0, 0; 0, 0]));
362 assert_checkequal(I16 .\UI32, uint32([ 0, 0; 0, 0]));
363 assert_checkequal(ui16 .\r, uint16( 0));
364 assert_checkequal(ui16 .\R, uint16([ 0, 0; 0, 0]));
365 assert_checkequal(ui16 .\i8, uint16( 4095));
366 assert_checkequal(ui16 .\I8, uint16([ 4095, 4095; 4094, 4094]));
367 assert_checkequal(ui16 .\ui8, uint16( 0));
368 assert_checkequal(ui16 .\UI8, uint16([ 0, 1; 1, 2]));
369 assert_checkequal(ui16 .\i16, uint16( 4095));
370 assert_checkequal(ui16 .\I16, uint16([ 4095, 4094; 4093, 4092]));
371 assert_checkequal(ui16 .\ui16, uint16( 1));
372 assert_checkequal(ui16 .\UI16, uint16([ 1, 2; 3, 4]));
373 assert_checkequal(ui16 .\i32, uint32( 268435454));
374 assert_checkequal(ui16 .\I32, uint32([ 268435454, 268435452; 268435450, 268435448]));
375 assert_checkequal(ui16 .\ui32, uint32( 2));
376 assert_checkequal(ui16 .\UI32, uint32([ 2, 4; 6, 8]));
377 assert_checkequal(UI16 .\r, uint16([ 0, 0; 0, 0]));
378 assert_checkequal(UI16 .\R, uint16([ 0, 0; 0, 0]));
379 assert_checkequal(UI16 .\i8, uint16([ 4095, 2047; 1365, 1023]));
380 assert_checkequal(UI16 .\I8, uint16([ 4095, 2047; 1364, 1023]));
381 assert_checkequal(UI16 .\ui8, uint16([ 0, 0; 0, 0]));
382 assert_checkequal(UI16 .\UI8, uint16([ 0, 0; 0, 0]));
383 assert_checkequal(UI16 .\i16, uint16([ 4095, 2047; 1365, 1023]));
384 assert_checkequal(UI16 .\I16, uint16([ 4095, 2047; 1364, 1023]));
385 assert_checkequal(UI16 .\ui16, uint16([ 1, 0; 0, 0]));
386 assert_checkequal(UI16 .\UI16, uint16([ 1, 1; 1, 1]));
387 assert_checkequal(UI16 .\i32, uint32([ 268435454, 134217727; 89478484, 67108863]));
388 assert_checkequal(UI16 .\I32, uint32([ 268435454, 134217726; 89478483, 67108862]));
389 assert_checkequal(UI16 .\ui32, uint32([ 2, 1; 0, 0]));
390 assert_checkequal(UI16 .\UI32, uint32([ 2, 2; 2, 2]));
391 assert_checkequal(i32 .\r, int32( 0));
392 assert_checkequal(i32 .\R, int32([ 0, 0; 0, 0]));
393 assert_checkequal(i32 .\i8, int32( 0));
394 assert_checkequal(i32 .\I8, int32([ 0, 0; 0, 1]));
395 assert_checkequal(i32 .\ui8, uint32( 0));
396 assert_checkequal(i32 .\UI8, uint32([ 0, 0; 0, 0]));
397 assert_checkequal(i32 .\i16, int32( 0));
398 assert_checkequal(i32 .\I16, int32([ 0, 1; 1, 2]));
399 assert_checkequal(i32 .\ui16, uint32( 0));
400 assert_checkequal(i32 .\UI16, uint32([ 0, 0; 0, 0]));
401 assert_checkequal(i32 .\i32, int32( 1));
402 assert_checkequal(i32 .\I32, int32([ 1, 2; 3, 4]));
403 assert_checkequal(i32 .\ui32, uint32( 0));
404 assert_checkequal(i32 .\UI32, uint32([ 0, 0; 0, 0]));
405 assert_checkequal(I32 .\r, int32([ 0, 0; 0, 0]));
406 assert_checkequal(I32 .\R, int32([ 0, 0; 0, 0]));
407 assert_checkequal(I32 .\i8, int32([ 0, 0; 0, 0]));
408 assert_checkequal(I32 .\I8, int32([ 0, 0; 0, 0]));
409 assert_checkequal(I32 .\ui8, uint32([ 0, 0; 0, 0]));
410 assert_checkequal(I32 .\UI8, uint32([ 0, 0; 0, 0]));
411 assert_checkequal(I32 .\i16, int32([ 0, 0; 0, 0]));
412 assert_checkequal(I32 .\I16, int32([ 0, 0; 0, 0]));
413 assert_checkequal(I32 .\ui16, uint32([ 0, 0; 0, 0]));
414 assert_checkequal(I32 .\UI16, uint32([ 0, 0; 0, 0]));
415 assert_checkequal(I32 .\i32, int32([ 1, 0; 0, 0]));
416 assert_checkequal(I32 .\I32, int32([ 1, 1; 1, 1]));
417 assert_checkequal(I32 .\ui32, uint32([ 0, 0; 0, 0]));
418 assert_checkequal(I32 .\UI32, uint32([ 0, 0; 0, 0]));
419 assert_checkequal(ui32 .\r, uint32( 0));
420 assert_checkequal(ui32 .\R, uint32([ 0, 0; 0, 0]));
421 assert_checkequal(ui32 .\i8, uint32( 134217727));
422 assert_checkequal(ui32 .\I8, uint32([ 134217727, 134217727; 134217727, 134217727]));
423 assert_checkequal(ui32 .\ui8, uint32( 0));
424 assert_checkequal(ui32 .\UI8, uint32([ 0, 0; 0, 1]));
425 assert_checkequal(ui32 .\i16, uint32( 134217727));
426 assert_checkequal(ui32 .\I16, uint32([ 134217727, 134217727; 134217726, 134217726]));
427 assert_checkequal(ui32 .\ui16, uint32( 0));
428 assert_checkequal(ui32 .\UI16, uint32([ 0, 1; 1, 2]));
429 assert_checkequal(ui32 .\i32, uint32( 134217727));
430 assert_checkequal(ui32 .\I32, uint32([ 134217727, 134217726; 134217725, 134217724]));
431 assert_checkequal(ui32 .\ui32, uint32( 1));
432 assert_checkequal(ui32 .\UI32, uint32([ 1, 2; 3, 4]));
433 assert_checkequal(UI32 .\r, uint32([ 0, 0; 0, 0]));
434 assert_checkequal(UI32 .\R, uint32([ 0, 0; 0, 0]));
435 assert_checkequal(UI32 .\i8, uint32([ 134217727, 67108863; 44739242, 33554431]));
436 assert_checkequal(UI32 .\I8, uint32([ 134217727, 67108863; 44739242, 33554431]));
437 assert_checkequal(UI32 .\ui8, uint32([ 0, 0; 0, 0]));
438 assert_checkequal(UI32 .\UI8, uint32([ 0, 0; 0, 0]));
439 assert_checkequal(UI32 .\i16, uint32([ 134217727, 67108863; 44739242, 33554431]));
440 assert_checkequal(UI32 .\I16, uint32([ 134217727, 67108863; 44739242, 33554431]));
441 assert_checkequal(UI32 .\ui16, uint32([ 0, 0; 0, 0]));
442 assert_checkequal(UI32 .\UI16, uint32([ 0, 0; 0, 0]));
443 assert_checkequal(UI32 .\i32, uint32([ 134217727, 67108863; 44739242, 33554431]));
444 assert_checkequal(UI32 .\I32, uint32([ 134217727, 67108863; 44739241, 33554431]));
445 assert_checkequal(UI32 .\ui32, uint32([ 1, 0; 0, 0]));
446 assert_checkequal(UI32 .\UI32, uint32([ 1, 1; 1, 1]));
447 assert_checkequal(empty ./ empty, []);
448 assert_checkequal(empty ./ r, []);
449 assert_checkequal(empty ./ c, []);
450 assert_checkequal(empty ./ R, []);
451 assert_checkequal(empty ./ C, []);
452 assert_checkequal(empty ./ e, []);
453 assert_checkequal(empty ./ ec, []);
454 assert_checkequal(empty ./ p, []);
455 assert_checkequal(empty ./ pc, []);
456 assert_checkequal(empty ./ P, []);
457 assert_checkequal(empty ./ PC, []);
458 assert_checkequal(empty ./ SP, []);
459 assert_checkequal(empty ./ SPC, []);
460 assert_checkequal(empty ./ SP1, []);
461 assert_checkequal(empty ./ SPC1, []);
462 assert_checkequal(r ./ empty, []);
463 assert_checkequal(r ./ r,  1);
464 assert_checkequal(r ./ c,  0.4-%i* 0.8);
465 assert_checkequal(r ./ R, [ 2, 1; (2/3), 0.5]);
466 assert_checkequal(r ./ C, [ 0.4-%i* 0.8, 0.2-%i* 0.4; 2/15-%i* 4/15, 0.1-%i* 0.2]);
467 assert_checkequal(r ./ e, ( 2)*eye());
468 assert_checkalmostequal(r ./ ec, ( 1/2.6-%i* 1/13)*eye());
469 test = r ./ p;
470 assert_checkequal(test(2), 2+0*%s);
471 assert_checkequal(test(3), 1+(1)*s+(- 1)*s^ 2);
472 test = r ./ pc;
473 assert_checkequal(test(2), 2+0*%s);
474 assert_checkequal(test(3), 1+%i* 2+(1-%i* 3)*s+(- 1+%i* 4)*s^ 2);
475 test = r ./ P;
476 assert_checkequal(test(2), [2,2;2,2]+0*%s);
477 assert_checkequal(test(3),[2+(2)*s+(- 2)*s^ 2,- 3+(- 3)*s+(3)*s^ 2;4+(4)*s+(- 4)*s^ 2,- 5+(- 5)*s+(5)*s^ 2]);
478 test = r ./ PC;
479 assert_checkequal(test(2), [2,2;2,2]+0*%s);
480 assert_checkequal(test(3),[2+%i* 4+(2-%i* 6)*s+(- 2+%i* 8)*s^ 2,- 3-%i* 6+(- 3+%i* 9)*s+(3-%i* 12)*s^ 2;4+%i* 8+(4-%i* 12)*s+(- 4+%i* 16)*s^ 2,- 5-%i* 10+(- 5+%i* 15)*s+(5-%i* 20)*s^ 2]);
481 assert_checkequal(r ./ SP, sparse([ 1, 2; 3, 10; 4, 5],[ 2; (2/3); 1],[ 4, 10]));
482 assert_checkequal(r ./ SPC, sparse([ 1, 2; 3, 10; 4, 5],[ 2/17-%i* 8/17; 2/51-%i* 8/51; 1/17-%i* 4/17],[ 4, 10]));
483 assert_checkequal(r ./ SP1, sparse([ 1, 1], 0.2,[ 1, 1]));
484 assert_checkalmostequal(r ./ SPC1, sparse([ 1, 1], 0.1-%i* 0.3,[ 1, 1]));
485 assert_checkequal(r ./ i8, int8( 0));
486 assert_checkequal(r ./ I8, int8([ 0, 0; 0, 0]));
487 assert_checkequal(r ./ ui8, uint8( 0));
488 assert_checkequal(r ./ UI8, uint8([ 0, 0; 0, 0]));
489 assert_checkequal(r ./ i16, int16( 0));
490 assert_checkequal(r ./ I16, int16([ 0, 0; 0, 0]));
491 assert_checkequal(r ./ ui16, uint16( 0));
492 assert_checkequal(r ./ UI16, uint16([ 0, 0; 0, 0]));
493 assert_checkequal(r ./ i32, int32( 0));
494 assert_checkequal(r ./ I32, int32([ 0, 0; 0, 0]));
495 assert_checkequal(r ./ ui32, uint32( 0));
496 assert_checkequal(r ./ UI32, uint32([ 0, 0; 0, 0]));
497 assert_checkequal(c ./ empty, []);
498 assert_checkequal(c ./ r,  0.5+%i);
499 assert_checkequal(c ./ c,  1+%i*0);
500 assert_checkequal(c ./ R,  0.2-%i* 0.4);
501 assert_checkequal(c ./ C, [ 1, 0.5; (1/3), 0.25]+%i*0);
502 assert_checkequal(c ./ e, ( 1+%i* 2)*eye());
503 assert_checkequal(c ./ ec, ( 7/26+%i* 9/26)*eye());
504 test = c ./ p;
505 assert_checkequal(test(2), 1+%i*2+0*%s);
506 assert_checkequal(test(3), 1+(1)*s+(- 1)*s^ 2);
507 test = c ./ pc;
508 assert_checkequal(test(2), 1+%i*2+0*%s);
509 assert_checkequal(test(3), 1+%i* 2+(1-%i* 3)*s+(- 1+%i* 4)*s^ 2);
510 test = c ./ P;
511 assert_checkequal(test(2), [1,1;1,1]*(1+%i*2)+0*%s);
512 assert_checkequal(test(3),[2+(2)*s+(- 2)*s^ 2,- 3+(- 3)*s+(3)*s^ 2;4+(4)*s+(- 4)*s^ 2,- 5+(- 5)*s+(5)*s^ 2]);
513 test = c ./ PC;
514 assert_checkequal(test(2), [1,1;1,1]*(1+%i*2)+0*%s);
515 assert_checkequal(test(3),[2+%i* 4+(2-%i* 6)*s+(- 2+%i* 8)*s^ 2,- 3-%i* 6+(- 3+%i* 9)*s+(3-%i* 12)*s^ 2;4+%i* 8+(4-%i* 12)*s+(- 4+%i* 16)*s^ 2,- 5-%i* 10+(- 5+%i* 15)*s+(5-%i* 20)*s^ 2]);
516 assert_checkequal(c ./ SP, sparse([ 1, 2; 3, 10; 4, 5],[ 1+%i* 2; (1/3)+%i* (2/3); 0.5+%i],[ 4, 10]));
517 assert_checkequal(c ./ SPC, sparse([ 1, 2; 3, 10; 4, 5],[ 9/17-%i* 2/17; 3/17-%i* 2/51; 9/34-%i* 1/17],[ 4, 10]));
518 assert_checkequal(c ./ SP1, sparse([ 1, 1], 0.1+%i* 0.2,[ 1, 1]));
519 assert_checkalmostequal(c ./ SPC1, sparse([ 1, 1], 0.35-%i* 0.05,[ 1, 1]));
520 assert_checkequal(R ./ empty, []);
521 assert_checkequal(R ./ r, [ 0.5, 1; 1.5, 2]);
522 assert_checkequal(R ./ c, [ 0.2-%i* 0.4, 0.4-%i* 0.8; 0.6-%i* 1.2, 0.8-%i* 1.60]);
523 assert_checkequal(R ./ R, [ 1, 1; 1, 1]);
524 assert_checkequal(R ./ C, [ 0.2-%i* 0.4, 0.2-%i* 0.4; 0.2-%i* 0.4, 0.2-%i* 0.4]);
525 test = R ./ p;
526 assert_checkequal(test(2), [1,2;3,4]+0*%s);
527 assert_checkequal(test(3), [1+(1)*s+(- 1)*s^ 2,1+(1)*s+(- 1)*s^ 2;1+(1)*s+(- 1)*s^ 2,1+(1)*s+(- 1)*s^ 2]);
528 test = R ./ pc;
529 assert_checkequal(test(2), [1,2;3,4]+0*%s);
530 assert_checkequal(test(3), [1+%i* 2+(1-%i* 3)*s+(- 1+%i* 4)*s^ 2,1+%i* 2+(1-%i* 3)*s+(- 1+%i* 4)*s^ 2;1+%i* 2+(1-%i* 3)*s+(- 1+%i* 4)*s^ 2,1+%i* 2+(1-%i* 3)*s+(- 1+%i* 4)*s^ 2]);
531 test = R ./ P;
532 assert_checkequal(test(2), [1,2;3,4]+0*%s);
533 assert_checkequal(test(3),[2+(2)*s+(- 2)*s^ 2,- 3+(- 3)*s+(3)*s^ 2;4+(4)*s+(- 4)*s^ 2,- 5+(- 5)*s+(5)*s^ 2]);
534 test = R ./ PC;
535 assert_checkequal(test(2), [1,2;3,4]+0*%s);
536 assert_checkequal(test(3),[2+%i* 4+(2-%i* 6)*s+(- 2+%i* 8)*s^ 2,- 3-%i* 6+(- 3+%i* 9)*s+(3-%i* 12)*s^ 2;4+%i* 8+(4-%i* 12)*s+(- 4+%i* 16)*s^ 2,- 5-%i* 10+(- 5+%i* 15)*s+(5-%i* 20)*s^ 2]);
537 assert_checkequal(R ./ SP1, [ 0.1 ,0.2;0.3,0.4]);
538 assert_checkequal(R ./ SPC1, [ 0.05-%i* 0.15, 0.1-%i* 0.3; 0.15-%i* 0.45, 0.2-%i* 0.6]);
539 assert_checkequal(R ./ i8, int8([ 0, 0; 0, 0]));
540 assert_checkequal(R ./ I8, int8([ 0, 0; 0, 0]));
541 assert_checkequal(R ./ ui8, uint8([ 0, 0; 0, 0]));
542 assert_checkequal(R ./ UI8, uint8([ 0, 0; 0, 0]));
543 assert_checkequal(R ./ i16, int16([ 0, 0; 0, 0]));
544 assert_checkequal(R ./ I16, int16([ 0, 0; 0, 0]));
545 assert_checkequal(R ./ ui16, uint16([ 0, 0; 0, 0]));
546 assert_checkequal(R ./ UI16, uint16([ 0, 0; 0, 0]));
547 assert_checkequal(R ./ i32, int32([ 0, 0; 0, 0]));
548 assert_checkequal(R ./ I32, int32([ 0, 0; 0, 0]));
549 assert_checkequal(R ./ ui32, uint32([ 0, 0; 0, 0]));
550 assert_checkequal(R ./ UI32, uint32([ 0, 0; 0, 0]));
551 assert_checkequal(C ./ empty, []);
552 assert_checkequal(C ./ r, [ 0.5+%i, 1+%i* 2; 1.5+%i* 3, 2+%i* 4]);
553 assert_checkequal(C ./ c, [ 1, 2; 3, 4]+%i*0);
554 assert_checkequal(C ./ R, [ 1+%i* 2, 1+%i* 2; 1+%i* 2, 1+%i* 2]);
555 assert_checkequal(C ./ C, [ 1, 1; 1, 1]+%i*0);
556 test = C ./ p;
557 assert_checkequal(test(2), [1+%i* 2,2+%i* 4;3+%i* 6,4+%i* 8]+0*%s);
558 assert_checkequal(test(3), [1+(1)*s+(- 1)*s^ 2,1+(1)*s+(- 1)*s^ 2;1+(1)*s+(- 1)*s^ 2,1+(1)*s+(- 1)*s^ 2]);
559 test = C ./ pc;
560 assert_checkequal(test(2), [1+%i* 2,2+%i* 4;3+%i* 6,4+%i* 8]+0*%s);
561 assert_checkequal(test(3), [1+%i* 2+(1-%i* 3)*s+(- 1+%i* 4)*s^ 2,1+%i* 2+(1-%i* 3)*s+(- 1+%i* 4)*s^ 2;1+%i* 2+(1-%i* 3)*s+(- 1+%i* 4)*s^ 2,1+%i* 2+(1-%i* 3)*s+(- 1+%i* 4)*s^ 2]);
562 test = C ./ P;
563 assert_checkequal(test(2), [1+%i* 2,2+%i* 4;3+%i* 6,4+%i* 8]+0*%s);
564 assert_checkequal(test(3),[2+(2)*s+(- 2)*s^ 2,- 3+(- 3)*s+(3)*s^ 2;4+(4)*s+(- 4)*s^ 2,- 5+(- 5)*s+(5)*s^ 2]);
565 test = C ./ PC;
566 assert_checkequal(test(2), [1+%i* 2,2+%i* 4;3+%i* 6,4+%i* 8]+0*%s);
567 assert_checkequal(test(3),[2+%i* 4+(2-%i* 6)*s+(- 2+%i* 8)*s^ 2,- 3-%i* 6+(- 3+%i* 9)*s+(3-%i* 12)*s^ 2;4+%i* 8+(4-%i* 12)*s+(- 4+%i* 16)*s^ 2,- 5-%i* 10+(- 5+%i* 15)*s+(5-%i* 20)*s^ 2]);
568 assert_checkequal(C ./ SP1, [ 0.1+0.2*%i,0.2+0.4*%i;0.3+0.6*%i,0.4+0.8*%i]);
569 assert_checkequal(C ./ SPC1, [ 0.35-%i* 0.05, 0.7-%i* 0.1; 1.05-%i* 0.15, 1.4-%i* 0.2]);
570 assert_checkequal(e ./ empty, []);
571 assert_checkequal(e ./ r, ( 0.5)*eye());
572 assert_checkequal(e ./ c, ( 1+%i* 2)*eye());
573 assert_checkequal(e ./ e, ( 1)*eye());
574 assert_checkequal(e ./ ec, ( 5/26-%i* 1/26)*eye());
575 assert_checkequal(e ./ SP1, ( 0.1)*eye());
576 assert_checkequal(e ./ SPC1, ( 2+%i* 6)*eye());
577 assert_checkequal(e ./ i8, int8(( 0)*eye()));
578 assert_checkequal(e ./ ui8, uint8(( 0)*eye()));
579 assert_checkequal(e ./ i16, int16(( 0)*eye()));
580 assert_checkequal(e ./ ui16, uint16(( 0)*eye()));
581 assert_checkequal(e ./ i32, int32(( 0)*eye()));
582 assert_checkequal(e ./ ui32, uint32(( 0)*eye()));
583 assert_checkequal(ec ./ empty, []);
584 assert_checkequal(ec ./ r, ( 2.5+%i* 0.5)*eye());
585 assert_checkequal(ec ./ c, ( 1.4-%i* 1.8)*eye());
586 assert_checkequal(ec ./ e, ( 5+%i)*eye());
587 assert_checkequal(ec ./ ec, ( 1+%i*0)*eye());
588 assert_checkequal(p ./ empty, []);
589 assert_checkequal(p ./ r, 0.5+(0.5)*s+(- 0.5)*s^ 2);
590 assert_checkequal(p ./ c, 0.2-%i* 0.08+(0.2-%i* 0.08)*s+(- 0.2+%i* 0.08)*s^ 2);
591 assert_checkequal(p ./ R, [1+(1)*s+(- 1)*s^ 2,0.5+(0.5)*s+(- 0.5)*s^ 2;(1/3)+((1/3))*s+(- (1/3))*s^ 2,0.25+(0.25)*s+(- 0.25)*s^ 2]);
592 assert_checkequal(p ./ C, [0.2-%i* 0.4+(0.2-%i* 0.4)*s+(- 0.2+%i* 0.4)*s^ 2,0.1-%i* 0.2+(0.1-%i* 0.2)*s+(- 0.1+%i* 0.2)*s^ 2;1/15-%i* 2/15+(1/15-%i* 2/15)*s+(- 1/15+%i* 2/15)*s^ 2,0.05-%i* 0.1+(0.05-%i* 0.1)*s+(- 0.05+%i* 0.1)*s^ 2]);
593 test = p ./ p;
594 assert_checkequal(test(2), 1+s*0);
595 assert_checkequal(test(3), 1+s*0);
596 test = p ./ pc;
597 assert_checkequal(test(2), 1+s-s^2);
598 assert_checkequal(test(3), 1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2);
599 test = p ./ P;
600 assert_checkequal(test(2), [0.5,-(1/3);0.25,-0.2]+s*0);
601 assert_checkequal(test(3), [1,1;1,1]+s*0);
602 test = p ./ PC;
603 assert_checkequal(test(2), [1+s-s^2,1+s-s^2;1+s-s^2,1+s-s^2]);
604 assert_checkequal(test(3), [2+%i*4+(2-%i*6)*s+(-2+%i*8)*s^2,-3-%i*6+(-3+%i*9)*s+(3-%i*12)*s^2;4+%i*8+(4-%i*12)*s+(-4+%i*16)*s^2,-5-%i*10+(-5+%i*15)*s+(5-%i*20)*s^2]);
605 assert_checkequal(pc ./ empty, []);
606 assert_checkequal(pc ./ r, 0.5+%i+(0.5-%i* 1.5)*s+(- 0.5+%i* 2)*s^ 2);
607 assert_checkequal(pc ./ c, 1+(- 1-%i)*s+(1.4+%i* 1.2)*s^ 2);
608 assert_checkequal(pc ./ R, [1+%i* 2+(1-%i* 3)*s+(- 1+%i* 4)*s^ 2,0.5+%i+(0.5-%i* 1.5)*s+(- 0.5+%i* 2)*s^ 2;(1/3)+%i* (2/3)+((1/3)-%i)*s+(- (1/3)+%i* (1+1/3))*s^ 2,0.25+%i* 0.5+(0.25-%i* 0.75)*s+(- 0.25+%i)*s^ 2]);
609 assert_checkequal(pc ./ C, [1+(- 1-%i)*s+(1.4+%i* 1.2)*s^ 2,0.5+(- 0.5-%i* 0.5)*s+(0.7+%i* 0.6)*s^ 2;(1/3)+(- (1/3)-%i* (1/3))*s+(7/15+%i* 0.4)*s^ 2,0.25+(- 0.25-%i* 0.25)*s+(0.35+%i* 0.3)*s^ 2]);
610 test = pc ./ p;
611 assert_checkequal(test(2), 1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2);
612 assert_checkequal(test(3), 1+s-s^2);
613 test = pc ./ pc;
614 assert_checkequal(test(2), 1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2);
615 assert_checkequal(test(3), 1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2);
616 test = pc ./ P;
617 assert_checkequal(test(2), [1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2,1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2;1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2,1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2]);
618 assert_checkequal(test(3), [2+2*s-2*s^2,-3-3*s+3*s^2;4+4*s-4*s^2,-5-5*s+5*s^2]);
619 test = pc ./ PC;
620 assert_checkequal(test(2), [1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2,1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2;1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2,1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2]);
621 assert_checkequal(test(3), [2+%i*4+(2-%i*6)*s+(-2+%i*8)*s^2,-3-%i*6+(-3+%i*9)*s+(3-%i*12)*s^2;4+%i*8+(4-%i*12)*s+(-4+%i*16)*s^2,-5-%i*10+(-5+%i*15)*s+(5-%i*20)*s^2]);
622 assert_checkequal(P ./ empty, []);
623 assert_checkequal(P ./ r, [1+(1)*s+(- 1)*s^ 2,- 1.5+(- 1.5)*s+(1.5)*s^ 2;2+(2)*s+(- 2)*s^ 2,- 2.5+(- 2.5)*s+(2.5)*s^ 2]);
624 assert_checkequal(P ./ c, [0.4-%i* 0.16+(0.4-%i* 0.16)*s+(- 0.4+%i* 0.16)*s^ 2,- 0.6+%i* 0.24+(- 0.6+%i* 0.24)*s+(0.6-%i* 0.24)*s^ 2;0.8-%i* 0.32+(0.8-%i* 0.32)*s+(- 0.8+%i* 0.32)*s^ 2,- 1+%i* 0.4+(- 1+%i* 0.4)*s+(1-%i* 0.4)*s^ 2]);
625 assert_checkequal(P ./ R, [2+(2)*s+(- 2)*s^ 2,- 1.5+(- 1.5)*s+(1.5)*s^ 2;(1+1/3)+((1+1/3))*s+(- (1+1/3))*s^ 2,- 1.25+(- 1.25)*s+(1.25)*s^ 2]);
626 assert_checkequal(P ./ C, [0.4-%i* 0.8+(0.4-%i* 0.8)*s+(- 0.4+%i* 0.8)*s^ 2,- 0.3+%i* 0.6+(- 0.3+%i* 0.6)*s+(0.3-%i* 0.6)*s^ 2;4/15-%i* 8/15+(4/15-%i* 8/15)*s+(- 4/15+%i* 8/15)*s^ 2,- 0.25+%i* 0.5+(- 0.25+%i* 0.5)*s+(0.25-%i* 0.5)*s^ 2]);
627 test = P ./ p;
628 assert_checkequal(test(2), [2,-3;4,-5]+s*0);
629 assert_checkequal(test(3), [1,1;1,1]+s*0);
630 test = P ./ pc;
631 assert_checkequal(test(2), [2+2*s-2*s^2,-3-3*s+3*s^2;4+4*s-4*s^2,-5-5*s+5*s^2]);
632 assert_checkequal(test(3), [1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2,1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2;1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2,1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2]);
633 test = P ./ P;
634 assert_checkequal(test(2), [1,1;1,1]+s*0);
635 assert_checkequal(test(3), [1,1;1,1]+%s*0);
636 test = P ./ PC;
637 assert_checkequal(test(2), [2+2*s-2*s^2,-3-3*s+3*s^2;4+4*s-4*s^2,-5-5*s+5*s^2]);
638 assert_checkequal(test(3), [2+%i*4+(2-%i*6)*s+(-2+%i*8)*s^2,-3-%i*6+(-3+%i*9)*s+(3-%i*12)*s^2;4+%i*8+(4-%i*12)*s+(-4+%i*16)*s^2,-5-%i*10+(-5+%i*15)*s+(5-%i*20)*s^2]);
639 assert_checkequal(PC ./ empty, []);
640 assert_checkequal(PC ./ r, [1+%i* 2+(1-%i* 3)*s+(- 1+%i* 4)*s^ 2,- 1.5-%i* 3+(- 1.5+%i* 4.5)*s+(1.5-%i* 6)*s^ 2;2+%i* 4+(2-%i* 6)*s+(- 2+%i* 8)*s^ 2,- 2.5-%i* 5+(- 2.5+%i* 7.5)*s+(2.5-%i* 10)*s^ 2]);
641 assert_checkequal(PC ./ c, [2+(- 2-%i* 2)*s+(2.8+%i* 2.4)*s^ 2,- 3+(3+%i* 3)*s+(- 4.2-%i* 3.6)*s^ 2;4+(- 4-%i* 4)*s+(5.6+%i* 4.8)*s^ 2,- 5+(5+%i* 5)*s+(- 7-%i* 6)*s^ 2]);
642 assert_checkequal(PC ./ R, [2+%i* 4+(2-%i* 6)*s+(- 2+%i* 8)*s^ 2,- 1.5-%i* 3+(- 1.5+%i* 4.5)*s+(1.5-%i* 6)*s^ 2;(1+1/3)+%i* 8/3+((1+1/3)-%i* 4)*s+(- (1+1/3)+%i* 16/3)*s^ 2,- 1.25-%i* 2.5+(- 1.25+%i* 3.75)*s+(1.25-%i* 5)*s^ 2]);
643 assert_checkequal(PC ./ C, [2+(- 2-%i* 2)*s+(2.8+%i* 2.4)*s^ 2,- 1.5+(1.5+%i* 1.5)*s+(- 2.1-%i* 1.8)*s^ 2;(1+1/3)+(- (1+1/3)-%i* (1+1/3))*s+(28/15+%i* 1.6)*s^ 2,- 1.25+(1.25+%i* 1.25)*s+(- 1.75-%i* 1.5)*s^ 2]);
644 test = PC ./ p;
645 assert_checkequal(test(2), [2+%i*4+(2-%i*6)*s+(-2+%i*8)*s^2,-3-%i*6+(-3+%i*9)*s+(3-%i*12)*s^2;4+%i*8+(4-%i*12)*s+(-4+%i*16)*s^2,-5-%i*10+(-5+%i*15)*s+(5-%i*20)*s^2]);
646 assert_checkequal(test(3), [1+s-s^2,1+s-s^2;1+s-s^2,1+s-s^2]);
647 test = PC ./ pc;
648 assert_checkequal(test(2), [2+%i*4+(2-%i*6)*s+(-2+%i*8)*s^2,-3-%i*6+(-3+%i*9)*s+(3-%i*12)*s^2;4+%i*8+(4-%i*12)*s+(-4+%i*16)*s^2,-5-%i*10+(-5+%i*15)*s+(5-%i*20)*s^2]);
649 assert_checkequal(test(3), [1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2,1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2;1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2,1+%i*2+(1-%i*3)*s+(-1+%i*4)*s^2]);
650 test = PC ./ P;
651 assert_checkequal(test(2), [2+%i*4+(2-%i*6)*s+(-2+%i*8)*s^2,-3-%i*6+(-3+%i*9)*s+(3-%i*12)*s^2;4+%i*8+(4-%i*12)*s+(-4+%i*16)*s^2,-5-%i*10+(-5+%i*15)*s+(5-%i*20)*s^2]);
652 assert_checkequal(test(3), [2+2*s-2*s^2,-3-3*s+3*s^2;4+4*s-4*s^2,-5-5*s+5*s^2]);
653 test = PC ./ PC;
654 assert_checkequal(test(2), [2+%i*4+(2-%i*6)*s+(-2+%i*8)*s^2,-3-%i*6+(-3+%i*9)*s+(3-%i*12)*s^2;4+%i*8+(4-%i*12)*s+(-4+%i*16)*s^2,-5-%i*10+(-5+%i*15)*s+(5-%i*20)*s^2]);
655 assert_checkequal(test(3), [2+%i*4+(2-%i*6)*s+(-2+%i*8)*s^2,-3-%i*6+(-3+%i*9)*s+(3-%i*12)*s^2;4+%i*8+(4-%i*12)*s+(-4+%i*16)*s^2,-5-%i*10+(-5+%i*15)*s+(5-%i*20)*s^2]);
656 assert_checkequal(SP ./ empty, []);
657 assert_checkequal(SP ./ r, sparse([ 1, 2; 3, 10; 4, 5],[ 0.5; 1.5; 1],[ 4, 10]));
658 assert_checkequal(SP ./ c, sparse([ 1, 2; 3, 10; 4, 5],[ 0.2-%i* 0.4; 0.6-%i* 1.2; 0.4-%i* 0.8],[ 4, 10]));
659 assert_checkequal(SP ./ SP, sparse([ 1, 2; 3, 10; 4, 5],[ 1; 1; 1],[ 4, 10]));
660 assert_checkequal(SP ./ SPC, sparse([ 1, 2; 3, 10; 4, 5],[ 1/17-%i* 4/17; 1/17-%i* 4/17; 1/17-%i* 4/17],[ 4, 10]));
661 assert_checkequal(SP ./ SP1, sparse([ 1, 2; 3, 10; 4, 5],[ 0.1; 0.3; 0.2],[ 4, 10]));
662 assert_checkalmostequal(SP ./ SPC1, sparse([ 1, 2; 3, 10; 4, 5],[ 0.05-%i* 0.15; 0.15-%i* 0.45; 0.1-%i* 0.3],[ 4, 10]));
663 assert_checkequal(SPC ./ empty, []);
664 assert_checkequal(SPC ./ r, sparse([ 1, 2; 3, 10; 4, 5],[ 0.5+%i* 2; 1.5+%i* 6; 1+%i* 4],[ 4, 10]));
665 assert_checkequal(SPC ./ c, sparse([ 1, 2; 3, 10; 4, 5],[ 1.8+%i* 0.4; 5.4+%i* 1.2; 3.6+%i* 0.8],[ 4, 10]));
666 assert_checkequal(SPC ./ SP, sparse([ 1, 2; 3, 10; 4, 5],[ 1+%i* 4; 1+%i* 4; 1+%i* 4],[ 4, 10]));
667 assert_checkequal(SPC ./ SPC, sparse([ 1, 2; 3, 10; 4, 5],[ 1; 1; 1],[ 4, 10]));
668 assert_checkequal(SPC ./ SP1, sparse([ 1, 2; 3, 10; 4, 5],[ 0.1+%i* 0.4; 0.3+%i* 1.2; 0.2+%i* 0.8],[ 4, 10]));
669 assert_checkalmostequal(SPC ./ SPC1, sparse([ 1, 2; 3, 10; 4, 5],[ 0.65+%i* 0.05; 1.95+%i* 0.15; 1.3+%i* 0.1],[ 4, 10]));
670 assert_checkequal(SP1 ./ empty, []);
671 assert_checkequal(SP1 ./ r, sparse([ 1, 1], 5,[ 1, 1]));
672 assert_checkequal(SP1 ./ c, sparse([ 1, 1], 2-%i* 4,[ 1, 1]));
673 assert_checkequal(SP1 ./ R, [ 10, 5; (3+1/3), 2.5]);
674 assert_checkequal(SP1 ./ C, [ 2-%i* 4, 1-%i* 2; (2/3)-%i* (1+1/3), 0.5-%i]);
675 assert_checkequal(SP1 ./ SP, sparse([ 1, 2; 3, 10; 4, 5],[ 10; (3+1/3); 5],[ 4, 10]));
676 assert_checkequal(SP1 ./ SPC, sparse([ 1, 2; 3, 10; 4, 5],[ 10/17-%i* 40/17; 10/51-%i* 40/51; 10/34-%i* 20/17],[ 4, 10]));
677 assert_checkequal(SP1 ./ SP1, sparse([ 1, 1], 1,[ 1, 1]));
678 assert_checkalmostequal(SP1 ./ SPC1, sparse([ 1, 1], 0.5-%i* 1.5,[ 1, 1]));
679 assert_checkequal(SPC1 ./ empty, []);
680 assert_checkequal(SPC1 ./ r, sparse([ 1, 1], 1+%i* 3,[ 1, 1]));
681 assert_checkequal(SPC1 ./ c, sparse([ 1, 1], 2.8+%i* 0.4,[ 1, 1]));
682 assert_checkequal(SPC1 ./ R,  0.05-%i* 0.15);
683 assert_checkequal(SPC1 ./ C, [ 2.8+%i* 0.4, 1.4+%i* 0.2; 14/15+%i* 2/15, 0.7+%i* 0.1]);
684 assert_checkequal(SPC1 ./ SP, sparse([ 1, 2; 3, 10; 4, 5],[ 2+%i* 6; (2/3)+%i* 2; 1+%i* 3],[ 4, 10]));
685 assert_checkequal(SPC1 ./ SPC, sparse([ 1, 2; 3, 10; 4, 5],[ 26/17-%i* 2/17; 26/51-%i* 2/51; 13/17-%i* 1/17],[ 4, 10]));
686 assert_checkequal(SPC1 ./ SP1, sparse([ 1, 1], 0.2+%i* 0.6,[ 1, 1]));
687 assert_checkequal(SPC1 ./ SPC1, sparse([ 1, 1], 1,[ 1, 1]));
688 assert_checkequal(i8 ./ r, int8( - 4));
689 assert_checkequal(i8 ./ R, int8([ - 8, - 4; - 2, - 2]));
690 assert_checkequal(i8 ./ i8, int8( 1));
691 assert_checkequal(i8 ./ I8, int8([ 1, 0; 0, 0]));
692 assert_checkequal(i8 ./ ui8, uint8( 31));
693 assert_checkequal(i8 ./ UI8, uint8([ 31, 15; 10, 7]));
694 assert_checkequal(i8 ./ i16, int16( 0));
695 assert_checkequal(i8 ./ I16, int16([ 0, 0; 0, 0]));
696 assert_checkequal(i8 ./ ui16, uint16( 4095));
697 assert_checkequal(i8 ./ UI16, uint16([ 4095, 2047; 1365, 1023]));
698 assert_checkequal(i8 ./ i32, int32( 0));
699 assert_checkequal(i8 ./ I32, int32([ 0, 0; 0, 0]));
700 assert_checkequal(i8 ./ ui32, uint32( 134217727));
701 assert_checkequal(i8 ./ UI32, uint32([ 134217727, 67108863; 44739242, 33554431]));
702 assert_checkequal(I8 ./ r, int8([ - 4, - 8; - 12, - 16]));
703 assert_checkequal(I8 ./ R, int8([ - 8, - 8; - 8, - 8]));
704 assert_checkequal(I8 ./ i8, int8([ 1, 2; 3, 4]));
705 assert_checkequal(I8 ./ I8, int8([ 1, 1; 1, 1]));
706 assert_checkequal(I8 ./ ui8, uint8([ 31, 30; 29, 28]));
707 assert_checkequal(I8 ./ UI8, uint8([ 31, 15; 9, 7]));
708 assert_checkequal(I8 ./ i16, int16([ 0, 1; 1, 2]));
709 assert_checkequal(I8 ./ I16, int16([ 0, 0; 0, 0]));
710 assert_checkequal(I8 ./ ui16, uint16([ 4095, 4095; 4094, 4094]));
711 assert_checkequal(I8 ./ UI16, uint16([ 4095, 2047; 1364, 1023]));
712 assert_checkequal(I8 ./ i32, int32([ 0, 0; 0, 1]));
713 assert_checkequal(I8 ./ I32, int32([ 0, 0; 0, 0]));
714 assert_checkequal(I8 ./ ui32, uint32([ 134217727, 134217727; 134217727, 134217727]));
715 assert_checkequal(I8 ./ UI32, uint32([ 134217727, 67108863; 44739242, 33554431]));
716 assert_checkequal(ui8 ./ r, uint8( 4));
717 assert_checkequal(ui8 ./ R, uint8([ 8, 4; 2, 2]));
718 assert_checkequal(ui8 ./ i8, uint8( 0));
719 assert_checkequal(ui8 ./ I8, uint8([ 0, 0; 0, 0]));
720 assert_checkequal(ui8 ./ ui8, uint8( 1));
721 assert_checkequal(ui8 ./ UI8, uint8([ 1, 0; 0, 0]));
722 assert_checkequal(ui8 ./ i16, uint16( 0));
723 assert_checkequal(ui8 ./ I16, uint16([ 0, 0; 0, 0]));
724 assert_checkequal(ui8 ./ ui16, uint16( 0));
725 assert_checkequal(ui8 ./ UI16, uint16([ 0, 0; 0, 0]));
726 assert_checkequal(ui8 ./ i32, uint32( 0));
727 assert_checkequal(ui8 ./ I32, uint32([ 0, 0; 0, 0]));
728 assert_checkequal(ui8 ./ ui32, uint32( 0));
729 assert_checkequal(ui8 ./ UI32, uint32([ 0, 0; 0, 0]));
730 assert_checkequal(UI8 ./ r, uint8([ 4, 8; 12, 16]));
731 assert_checkequal(UI8 ./ R, uint8([ 8, 8; 8, 8]));
732 assert_checkequal(UI8 ./ i8, uint8([ 0, 0; 0, 0]));
733 assert_checkequal(UI8 ./ I8, uint8([ 0, 0; 0, 0]));
734 assert_checkequal(UI8 ./ ui8, uint8([ 1, 2; 3, 4]));
735 assert_checkequal(UI8 ./ UI8, uint8([ 1, 1; 1, 1]));
736 assert_checkequal(UI8 ./ i16, uint16([ 0, 0; 0, 0]));
737 assert_checkequal(UI8 ./ I16, uint16([ 0, 0; 0, 0]));
738 assert_checkequal(UI8 ./ ui16, uint16([ 0, 1; 1, 2]));
739 assert_checkequal(UI8 ./ UI16, uint16([ 0, 0; 0, 0]));
740 assert_checkequal(UI8 ./ i32, uint32([ 0, 0; 0, 0]));
741 assert_checkequal(UI8 ./ I32, uint32([ 0, 0; 0, 0]));
742 assert_checkequal(UI8 ./ ui32, uint32([ 0, 0; 0, 1]));
743 assert_checkequal(UI8 ./ UI32, uint32([ 0, 0; 0, 0]));
744 assert_checkequal(i16 ./ r, int16( - 8));
745 assert_checkequal(i16 ./ R, int16([ - 16, - 8; - 5, - 4]));
746 assert_checkequal(i16 ./ i8, int16( 2));
747 assert_checkequal(i16 ./ I8, int16([ 2, 1; 0, 0]));
748 assert_checkequal(i16 ./ ui8, uint16( 8190));
749 assert_checkequal(i16 ./ UI8, uint16([ 8190, 4095; 2730, 2047]));
750 assert_checkequal(i16 ./ i16, int16( 1));
751 assert_checkequal(i16 ./ I16, int16([ 1, 0; 0, 0]));
752 assert_checkequal(i16 ./ ui16, uint16( 4095));
753 assert_checkequal(i16 ./ UI16, uint16([ 4095, 2047; 1365, 1023]));
754 assert_checkequal(i16 ./ i32, int32( 0));
755 assert_checkequal(i16 ./ I32, int32([ 0, 0; 0, 0]));
756 assert_checkequal(i16 ./ ui32, uint32( 134217727));
757 assert_checkequal(i16 ./ UI32, uint32([ 134217727, 67108863; 44739242, 33554431]));
758 assert_checkequal(I16 ./ r, int16([ - 8, - 16; - 24, - 32]));
759 assert_checkequal(I16 ./ R, int16([ - 16, - 16; - 16, - 16]));
760 assert_checkequal(I16 ./ i8, int16([ 2, 4; 6, 8]));
761 assert_checkequal(I16 ./ I8, int16([ 2, 2; 2, 2]));
762 assert_checkequal(I16 ./ ui8, uint16([ 8190, 8188; 8186, 8184]));
763 assert_checkequal(I16 ./ UI8, uint16([ 8190, 4094; 2728, 2046]));
764 assert_checkequal(I16 ./ i16, int16([ 1, 2; 3, 4]));
765 assert_checkequal(I16 ./ I16, int16([ 1, 1; 1, 1]));
766 assert_checkequal(I16 ./ ui16, uint16([ 4095, 4094; 4093, 4092]));
767 assert_checkequal(I16 ./ UI16, uint16([ 4095, 2047; 1364, 1023]));
768 assert_checkequal(I16 ./ i32, int32([ 0, 1; 1, 2]));
769 assert_checkequal(I16 ./ I32, int32([ 0, 0; 0, 0]));
770 assert_checkequal(I16 ./ ui32, uint32([ 134217727, 134217727; 134217726, 134217726]));
771 assert_checkequal(I16 ./ UI32, uint32([ 134217727, 67108863; 44739242, 33554431]));
772 assert_checkequal(ui16 ./ r, uint16( 8));
773 assert_checkequal(ui16 ./ R, uint16([ 16, 8; 5, 4]));
774 assert_checkequal(ui16 ./ i8, uint16( 0));
775 assert_checkequal(ui16 ./ I8, uint16([ 0, 0; 0, 0]));
776 assert_checkequal(ui16 ./ ui8, uint16( 2));
777 assert_checkequal(ui16 ./ UI8, uint16([ 2, 1; 0, 0]));
778 assert_checkequal(ui16 ./ i16, uint16( 0));
779 assert_checkequal(ui16 ./ I16, uint16([ 0, 0; 0, 0]));
780 assert_checkequal(ui16 ./ ui16, uint16( 1));
781 assert_checkequal(ui16 ./ UI16, uint16([ 1, 0; 0, 0]));
782 assert_checkequal(ui16 ./ i32, uint32( 0));
783 assert_checkequal(ui16 ./ I32, uint32([ 0, 0; 0, 0]));
784 assert_checkequal(ui16 ./ ui32, uint32( 0));
785 assert_checkequal(ui16 ./ UI32, uint32([ 0, 0; 0, 0]));
786 assert_checkequal(UI16 ./ r, uint16([ 8, 16; 24, 32]));
787 assert_checkequal(UI16 ./ R, uint16([ 16, 16; 16, 16]));
788 assert_checkequal(UI16 ./ i8, uint16([ 0, 0; 0, 0]));
789 assert_checkequal(UI16 ./ I8, uint16([ 0, 0; 0, 0]));
790 assert_checkequal(UI16 ./ ui8, uint16([ 2, 4; 6, 8]));
791 assert_checkequal(UI16 ./ UI8, uint16([ 2, 2; 2, 2]));
792 assert_checkequal(UI16 ./ i16, uint16([ 0, 0; 0, 0]));
793 assert_checkequal(UI16 ./ I16, uint16([ 0, 0; 0, 0]));
794 assert_checkequal(UI16 ./ ui16, uint16([ 1, 2; 3, 4]));
795 assert_checkequal(UI16 ./ UI16, uint16([ 1, 1; 1, 1]));
796 assert_checkequal(UI16 ./ i32, uint32([ 0, 0; 0, 0]));
797 assert_checkequal(UI16 ./ I32, uint32([ 0, 0; 0, 0]));
798 assert_checkequal(UI16 ./ ui32, uint32([ 0, 1; 1, 2]));
799 assert_checkequal(UI16 ./ UI32, uint32([ 0, 0; 0, 0]));
800 assert_checkequal(i32 ./ r, int32( - 16));
801 assert_checkequal(i32 ./ R, int32([ - 32, - 16; - 10, - 8]));
802 assert_checkequal(i32 ./ i8, int32( 4));
803 assert_checkequal(i32 ./ I8, int32([ 4, 2; 1, 1]));
804 assert_checkequal(i32 ./ ui8, uint32( 536870908));
805 assert_checkequal(i32 ./ UI8, uint32([ 536870908, 268435454; 178956969, 134217727]));
806 assert_checkequal(i32 ./ i16, int32( 2));
807 assert_checkequal(i32 ./ I16, int32([ 2, 1; 0, 0]));
808 assert_checkequal(i32 ./ ui16, uint32( 268435454));
809 assert_checkequal(i32 ./ UI16, uint32([ 268435454, 134217727; 89478484, 67108863]));
810 assert_checkequal(i32 ./ i32, int32( 1));
811 assert_checkequal(i32 ./ I32, int32([ 1, 0; 0, 0]));
812 assert_checkequal(i32 ./ ui32, uint32( 134217727));
813 assert_checkequal(i32 ./ UI32, uint32([ 134217727, 67108863; 44739242, 33554431]));
814 assert_checkequal(I32 ./ r, int32([ - 16, - 32; - 48, - 64]));
815 assert_checkequal(I32 ./ R, int32([ - 32, - 32; - 32, - 32]));
816 assert_checkequal(I32 ./ i8, int32([ 4, 8; 12, 16]));
817 assert_checkequal(I32 ./ I8, int32([ 4, 4; 4, 4]));
818 assert_checkequal(I32 ./ ui8, uint32([ 536870908, 536870904; 536870900, 536870896]));
819 assert_checkequal(I32 ./ UI8, uint32([ 536870908, 268435452; 178956966, 134217724]));
820 assert_checkequal(I32 ./ i16, int32([ 2, 4; 6, 8]));
821 assert_checkequal(I32 ./ I16, int32([ 2, 2; 2, 2]));
822 assert_checkequal(I32 ./ ui16, uint32([ 268435454, 268435452; 268435450, 268435448]));
823 assert_checkequal(I32 ./ UI16, uint32([ 268435454, 134217726; 89478483, 67108862]));
824 assert_checkequal(I32 ./ i32, int32([ 1, 2; 3, 4]));
825 assert_checkequal(I32 ./ I32, int32([ 1, 1; 1, 1]));
826 assert_checkequal(I32 ./ ui32, uint32([ 134217727, 134217726; 134217725, 134217724]));
827 assert_checkequal(I32 ./ UI32, uint32([ 134217727, 67108863; 44739241, 33554431]));
828 assert_checkequal(ui32 ./ r, uint32( 16));
829 assert_checkequal(ui32 ./ R, uint32([ 32, 16; 10, 8]));
830 assert_checkequal(ui32 ./ i8, uint32( 0));
831 assert_checkequal(ui32 ./ I8, uint32([ 0, 0; 0, 0]));
832 assert_checkequal(ui32 ./ ui8, uint32( 4));
833 assert_checkequal(ui32 ./ UI8, uint32([ 4, 2; 1, 1]));
834 assert_checkequal(ui32 ./ i16, uint32( 0));
835 assert_checkequal(ui32 ./ I16, uint32([ 0, 0; 0, 0]));
836 assert_checkequal(ui32 ./ ui16, uint32( 2));
837 assert_checkequal(ui32 ./ UI16, uint32([ 2, 1; 0, 0]));
838 assert_checkequal(ui32 ./ i32, uint32( 0));
839 assert_checkequal(ui32 ./ I32, uint32([ 0, 0; 0, 0]));
840 assert_checkequal(ui32 ./ ui32, uint32( 1));
841 assert_checkequal(ui32 ./ UI32, uint32([ 1, 0; 0, 0]));
842 assert_checkequal(UI32 ./ r, uint32([ 16, 32; 48, 64]));
843 assert_checkequal(UI32 ./ R, uint32([ 32, 32; 32, 32]));
844 assert_checkequal(UI32 ./ i8, uint32([ 0, 0; 0, 0]));
845 assert_checkequal(UI32 ./ I8, uint32([ 0, 0; 0, 0]));
846 assert_checkequal(UI32 ./ ui8, uint32([ 4, 8; 12, 16]));
847 assert_checkequal(UI32 ./ UI8, uint32([ 4, 4; 4, 4]));
848 assert_checkequal(UI32 ./ i16, uint32([ 0, 0; 0, 0]));
849 assert_checkequal(UI32 ./ I16, uint32([ 0, 0; 0, 0]));
850 assert_checkequal(UI32 ./ ui16, uint32([ 2, 4; 6, 8]));
851 assert_checkequal(UI32 ./ UI16, uint32([ 2, 2; 2, 2]));
852 assert_checkequal(UI32 ./ i32, uint32([ 0, 0; 0, 0]));
853 assert_checkequal(UI32 ./ I32, uint32([ 0, 0; 0, 0]));
854 assert_checkequal(UI32 ./ ui32, uint32([ 1, 2; 3, 4]));
855 assert_checkequal(UI32 ./ UI32, uint32([ 1, 1; 1, 1]));