refactor subtraction operation
[scilab.git] / scilab / modules / ast / tests / unit_tests / subtraction.dia.ref
1 // ============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2012 - DIGITEO - Antoine ELIAS
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // ============================================================================
7 // <-- JVM NOT MANDATORY -->
8 r = 2;
9 R = [1,2;3,4];
10 R3(:,:,1) = R;
11 R3(:,:,2) = R';
12 c = 1 + 2*%i;
13 C = [1+2*%i,2+4*%i;3+6*%i,4+8*%i];
14 C3(:,:,1) = C;
15 C3(:,:,2) = C';
16 e = eye();
17 ec = (5+%i) * eye();
18 p = 1 + %s - %s**2;
19 pc = 1 + %s - %s**2 + ( 2 - 3 * %s + 4 * %s**2 ) * %i;
20 P = [2*p, -3*p;4*p,-5*p];
21 PC = [2*pc, -3*pc;4*pc,-5*pc];
22 SP = sparse([1,2;4,5;3,10],[1,2,3]);
23 SPC = sparse([1,2;4,5;3,10],[1,2,3]) * ( 1 + 4*%i);
24 i8 = int8(-8);
25 i16 = int16(-16);
26 i32 = int32(-32);
27 i64 = int64(-64);
28 ui8 = uint8(8);
29 ui16 = uint16(16);
30 ui32 = uint32(32);
31 ui64 = uint64(64);
32 I8 = int8([-8 -16 ; -24 -32]);
33 I16 = int16([-16 -32 ; -48 -64]);
34 I32 = int32([-32 -64 ; -96 -128]);
35 I64 = int64([-64 -128 ; -192 -256]);
36 UI8 = uint8([8 16 ; 24 32]);
37 UI16 = uint16([16 32 ; 48 64]);
38 UI32 = uint32([32 64 ; 96 128]);
39 UI64 = uint64([64 128 ; 192 256]);
40 //Empty
41 assert_checkequal([] - [], []);
42 assert_checkequal([] - r, -r);
43 assert_checkequal([] - R, -R);
44 assert_checkequal([] - R3, -R3);
45 assert_checkequal([] - c, -c);
46 assert_checkequal([] - C, -C);
47 assert_checkequal([] - C3, -C3);
48 assert_checkequal([] - e, -e);
49 assert_checkequal([] - ec, -ec);
50 assert_checkequal([] - p, -p);
51 assert_checkequal([] - pc, -pc);
52 assert_checkequal([] - P, -P);
53 assert_checkequal([] - PC, -PC);
54 assert_checkequal([] - SP, -SP);
55 assert_checkequal([] - SPC, -SPC);
56 assert_checkequal([] - i8, -i8);
57 assert_checkequal([] - I8, -I8);
58 assert_checkequal([] - ui8, -ui8);
59 assert_checkequal([] - UI8, -UI8);
60 assert_checkequal([] - ui16, -ui16);
61 assert_checkequal([] - UI16, -UI16);
62 assert_checkequal([] - ui16, -ui16);
63 assert_checkequal([] - UI16, -UI16);
64 assert_checkequal([] - ui32, -ui32);
65 assert_checkequal([] - UI32, -UI32);
66 assert_checkequal([] - ui32, -ui32);
67 assert_checkequal([] - UI32, -UI32);
68 assert_checkequal([] - ui64, -ui64);
69 assert_checkequal([] - UI64, -UI64);
70 assert_checkequal([] - ui64, -ui64);
71 assert_checkequal([] - UI64, -UI64);
72 //Identity
73 assert_checkequal(e - [], e);
74 assert_checkequal(ec - [], ec);
75 assert_checkequal(e - r, -1);
76 assert_checkequal(ec - r, 3+%i);
77 assert_checkequal(e - R, [0 -2;-3 -3]);
78 assert_checkequal(ec - R, [4+%i -2;-3 1+%i]);
79 assert_checkequal(e - c, -2*%i);
80 assert_checkequal(ec - c, 4 - %i);
81 assert_checkequal(e - C, [-2*%i -2-4*%i;-3-6*%i -3-8*%i]);
82 assert_checkequal(ec - C, [4-%i -2-4*%i;-3-6*%i 1-7*%i]);
83 assert_checkequal(e - e, eye() * 0);
84 assert_checkequal(ec - e, eye() * (4+%i));
85 assert_checkequal(e - ec, eye() * (-4-%i));
86 assert_checkequal(ec - ec, eye() * 0 * %i);
87 assert_checkequal(e - p, -%s+%s**2);
88 assert_checkequal(ec - p, 4-%s+%s**2 + %i);
89 assert_checkequal(e - pc, -%s+%s**2 + (-2+3*%s-4*%s**2)*%i);
90 assert_checkequal(ec - pc, 4-%s+%s**2 + (-1+3*%s-4*%s**2)*%i);
91 assert_checkequal(e - P, [-1-2*%s+2*%s**2 3+3*%s-3*%s**2;-4-4*%s+4*%s**2 6+5*%s-5*%s**2]);
92 assert_checkequal(ec - P, [3+%i-2*%s+2*%s^2,3+3*%s-3*%s^2;-4-4*%s+4*%s^2,10+%i+5*%s-5*%s^2]);
93 assert_checkequal(e - PC, [-1-%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,6+%i*10+(5-%i*15)*%s+(-5+%i*20)*%s^2]);
94 assert_checkequal(ec - PC, [3-%i*3+(-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,10+%i*11+(5-%i*15)*%s+(-5+%i*20)*%s^2]);
95 assert_checkequal(e - SP, sparse([1,1;1,2;2,2;3,3;3,10;4,4;4,5],[1;-1;1;1;-3;1;-2],[4,10]));
96 assert_checkequal(ec - SP, sparse([1,1;1,2;2,2;3,3;3,10;4,4;4,5],[ 5+%i;-1; 5+%i; 5+%i;-3; 5+%i;-2],[4,10]));
97 assert_checkequal(e - SPC, sparse([1,1;1,2;2,2;3,3;3,10;4,4;4,5],[ 1;-1-%i*4; 1; 1;-3-%i*12; 1;-2-%i*8],[4,10]));
98 assert_checkequal(ec - SPC, sparse([1,1;1,2;2,2;3,3;3,10;4,4;4,5],[ 5+%i;-1-%i*4; 5+%i; 5+%i;-3-%i*12; 5+%i;-2-%i*8],[4,10]));
99 assert_checkequal(e - i8, int8(9));
100 assert_checkequal(e - I8, int8([9 16;24 33]));
101 assert_checkequal(e - ui8, uint8(249));
102 assert_checkequal(e - UI8, uint8([249 240;232 225]));
103 assert_checkequal(e - i16, int16(17));
104 assert_checkequal(e - I16, int16([17,32;48,65]));
105 assert_checkequal(e - ui16, uint16(65521));
106 assert_checkequal(e - UI16, uint16([65521,65504;65488,65473]));
107 assert_checkequal(e - i32, int32(33));
108 assert_checkequal(e - I32, int32([33,64;96,129]));
109 assert_checkequal(e - ui32, uint32(4294967265));
110 assert_checkequal(e - UI32, uint32([4294967265,4294967232;4294967200,4294967169]));
111 assert_checkequal(e - i64, int64(65));
112 assert_checkequal(e - I64, int64([65,128;192,257]));
113 // double
114 assert_checkequal(r - [], r);
115 assert_checkequal(r - e, 1);
116 assert_checkequal(r - ec, -3-%i);
117 assert_checkequal(c - [], c);
118 assert_checkequal(c - e, 2*%i);
119 assert_checkequal(c - ec, -4+%i);
120 assert_checkequal(R - [], R);
121 assert_checkequal(R - e, [0 2; 3 3]);
122 assert_checkequal(R - ec, [-4-%i, 2; 3,-1-%i]);
123 assert_checkequal(C - [], C);
124 assert_checkequal(C - e, [%i*2, 2+%i*4; 3+%i*6, 3+%i*8]);
125 assert_checkequal(C - ec, [-4+%i, 2+%i*4; 3+%i*6,-1+%i*7]);
126 assert_checkequal(r - r, 0);
127 assert_checkequal(r - c, 1-%i*2);
128 assert_checkequal(c - r, -1+%i*2);
129 assert_checkequal(c - c, 0*%i);
130 assert_checkequal(r - R, [1,0;-1,-2]);
131 rR3ref(:,:,1) = [1,0;-1,-2];
132 rR3ref(:,:,2) = [1,-1;0,-2] ;
133 assert_checkequal(r - R3, rR3ref);
134 assert_checkequal(r - C, [ 1-%i*2,-%i*4;-1-%i*6,-2-%i*8]);
135 rC3ref(:,:,1) = [ 1-%i*2,-%i*4;-1-%i*6,-2-%i*8];
136 rC3ref(:,:,2) = [ 1+%i*2,-1+%i*6;%i*4,-2+%i*8];
137 assert_checkequal(r - C3, rC3ref);
138 assert_checkequal(c - R, [%i*2,-1+%i*2;-2+%i*2,-3+%i*2]);
139 cR3ref(:,:,1) = [%i*2,-1+%i*2;-2+%i*2,-3+%i*2];
140 cR3ref(:,:,2) = [%i*2,-2+%i*2;-1+%i*2,-3+%i*2];
141 assert_checkequal(c - R3, cR3ref);
142 assert_checkequal(c - C, [0,-1-%i*2;-2-%i*4,-3-%i*6]);
143 cC3ref(:,:,1) = [0,-1-%i*2;-2-%i*4,-3-%i*6];
144 cC3ref(:,:,2) = [%i*4,-2+%i*8;-1+%i*6,-3+%i*10];
145 assert_checkequal(c - C3, cC3ref);
146 assert_checkequal(R - r, [-1,0;1,2]);
147 R3rref(:,:,1) = [-1,0;1,2];
148 R3rref(:,:,2) = [-1,1;0,2];
149 assert_checkequal(R3 - r, R3rref);
150 assert_checkequal(R - c, [-%i*2, 1-%i*2; 2-%i*2, 3-%i*2]);
151 R3cref(:,:,1) = [-%i*2, 1-%i*2; 2-%i*2, 3-%i*2];
152 R3cref(:,:,2) = [-%i*2, 2-%i*2; 1-%i*2, 3-%i*2];
153 assert_checkequal(R3 - c, R3cref);
154 assert_checkequal(C - r, [-1+%i*2,%i*4; 1+%i*6, 2+%i*8]);
155 C3rref(:,:,1) = [-1+%i*2,%i*4; 1+%i*6, 2+%i*8];
156 C3rref(:,:,2) = [-1-%i*2, 1-%i*6;-%i*4, 2-%i*8];
157 assert_checkequal(C3 - r, C3rref);
158 assert_checkequal(C - c, [0, 1+%i*2; 2+%i*4, 3+%i*6]);
159 C3cref(:,:,1) = [0, 1+%i*2; 2+%i*4, 3+%i*6];
160 C3cref(:,:,2) = [-%i*4, 2-%i*8; 1-%i*6, 3-%i*10];
161 assert_checkequal(C3 - c, C3cref);
162 assert_checkequal(R - R, [0,0;0,0]);
163 R3R3ref(:,:,1) = [0,0;0,0];
164 R3R3ref(:,:,2) = [0,0;0,0];
165 assert_checkequal(R3 - R3, R3R3ref);
166 assert_checkequal(R - C, [-%i*2,-%i*4;-%i*6,-%i*8]);
167 R3C3ref(:,:,1) = [-%i*2,-%i*4;-%i*6,-%i*8];
168 R3C3ref(:,:,2) = [%i*2,%i*6;%i*4,%i*8];
169 assert_checkequal(R3 - C3, R3C3ref);
170 assert_checkequal(C - R, [%i*2,%i*4;%i*6,%i*8]);
171 C3R3ref(:,:,1) = [%i*2,%i*4;%i*6,%i*8];
172 C3R3ref(:,:,2) = [-%i*2,-%i*6;-%i*4,-%i*8];
173 assert_checkequal(C3 - R3, C3R3ref);
174 assert_checkequal(C - C, [0,0;0,0]*%i);
175 C3C3ref(:,:,1) = [0,0;0,0];
176 C3C3ref(:,:,2) = [0,0;0,0];
177 assert_checkequal(C3 - C3, C3C3ref*%i);
178 assert_checkequal(r - SP, [2,1,2,2,2,2,2,2,2,2;2,2,2,2,2,2,2,2,2,2;2,2,2,2,2,2,2,2,2,-1;2,2,2,2,0,2,2,2,2,2] );
179 assert_checkequal(r - SPC, [ 2, 1-%i*4, 2, 2, 2, 2, 2, 2, 2, 2; 2, 2, 2, 2, 2, 2, 2, 2, 2, 2; 2, 2, 2, 2, 2, 2, 2, 2, 2,-1-%i*12; 2, 2, 2, 2,-%i*8, 2, 2, 2, 2, 2]);
180 assert_checkequal(c - SP, [ 1+%i*2,%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2; 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+ %i*2; 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2,-2+%i*2; 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2,-1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2]);
181 assert_checkequal(c - SPC, [ 1+%i*2,-%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2;1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2; 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2,-2-%i*10; 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2,-1-%i*6, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2, 1+%i*2]);
182 // polynom
183 assert_checkequal(p - [], p);
184 assert_checkequal(p - e, %s - %s**2);
185 assert_checkequal(p - ec, -4-%i+%s-%s**2);
186 assert_checkequal(p - r, -1+%s-%s**2);
187 assert_checkequal(p - c, -%i*2+%s-%s**2);
188 assert_checkequal(p - R, [%s-%s**2,-1+%s-%s**2;-2+%s-%s**2,-3+%s-%s**2]);
189 assert_checkequal(p - C, [-%i*2+%s-%s**2,-1-%i*4+%s-%s**2;-2-%i*6+%s-%s**2,-3-%i*8+%s-%s**2]);
190 assert_checkequal(pc - [], pc);
191 assert_checkequal(pc - e, %i*2+(1-%i*3)*%s+(-1+%i*4)*%s**2);
192 assert_checkequal(pc - ec, -4+%i+(1-%i*3)*%s+(-1+%i*4)*%s**2);
193 assert_checkequal(pc - r, -1+%i*2+(1-%i*3)*%s+(-1+%i*4)*%s**2);
194 assert_checkequal(pc - c, (1-%i*3)*%s+(-1+%i*4)*%s**2);
195 assert_checkequal(pc - R, [%i*2+(1-%i*3)*%s+(-1+%i*4)*%s**2,-1+%i*2+(1-%i*3)*%s+(-1+%i*4)*%s**2;-2+%i*2+(1-%i*3)*%s+(-1+%i*4)*%s**2,-3+%i*2+(1-%i*3)*%s+(-1+%i*4)*%s**2]);
196 assert_checkequal(pc - C, [(1-%i*3)*%s+(-1+%i*4)*%s**2,-1-%i*2+(1-%i*3)*%s+(-1+%i*4)*%s**2;-2-%i*4+(1-%i*3)*%s+(-1+%i*4)*%s**2,-3-%i*6+(1-%i*3)*%s+(-1+%i*4)*%s**2]);
197 assert_checkequal(P - [], P);
198 assert_checkequal(P - e, [1+2*%s-2*%s**2,-3-3*%s+3*%s**2;4+4*%s-4*%s**2,-6-5*%s+5*%s**2] );
199 assert_checkequal(P - ec, [-3-%i+2*%s-2*%s**2,-3-3*%s+3*%s**2;4+4*%s-4*%s**2,-10-%i-5*%s+5*%s**2]);
200 assert_checkequal(P - r, [2*%s-2*%s**2,-5-3*%s+3*%s**2;2+4*%s-4*%s**2,-7-5*%s+5*%s**2]);
201 assert_checkequal(P - c, [1-%i*2+2*%s-2*%s**2,-4-%i*2-3*%s+3*%s**2;3-%i*2+4*%s-4*%s**2,-6-%i*2-5*%s+5*%s**2]);
202 assert_checkequal(P - R, [1+2*%s-2*%s**2,-5-3*%s+3*%s**2;1+4*%s-4*%s**2,-9-5*%s+5*%s**2] );
203 assert_checkequal(P - C, [1-%i*2+2*%s-2*%s**2,-5-%i*4-3*%s+3*%s**2;1-%i*6+4*%s-4*%s**2,-9-%i*8-5*%s+5*%s**2]);
204 assert_checkequal(PC - [], PC);
205 assert_checkequal(PC - e, [1+%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,-6-%i*10+(-5+%i*15)*%s+(5-%i*20)*%s**2]);
206 assert_checkequal(PC - ec, [-3+%i*3+(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,-10-%i*11+(-5+%i*15)*%s+(5-%i*20)*%s**2]);
207 assert_checkequal(PC - r, [%i*4+(2-%i*6)*%s+(-2+%i*8)*%s**2,-5-%i*6+(-3+%i*9)*%s+(3-%i*12)*%s**2;2+%i*8+(4-%i*12)*%s+(-4+%i*16)*%s**2,-7-%i*10+(-5+%i*15)*%s+(5-%i*20)*%s**2]);
208 assert_checkequal(PC - c, [1+%i*2+(2-%i*6)*%s+(-2+%i*8)*%s**2,-4-%i*8+(-3+%i*9)*%s+(3-%i*12)*%s**2;3+%i*6+(4-%i*12)*%s+(-4+%i*16)*%s**2,-6-%i*12+(-5+%i*15)*%s+(5-%i*20)*%s**2]);
209 assert_checkequal(PC - R, [1+%i*4+(2-%i*6)*%s+(-2+%i*8)*%s**2,-5-%i*6+(-3+%i*9)*%s+(3-%i*12)*%s**2;1+%i*8+(4-%i*12)*%s+(-4+%i*16)*%s**2,-9-%i*10+(-5+%i*15)*%s+(5-%i*20)*%s**2]);
210 assert_checkequal(PC - C, [1+%i*2+(2-%i*6)*%s+(-2+%i*8)*%s**2,-5-%i*10+(-3+%i*9)*%s+(3-%i*12)*%s**2;1+%i*2+(4-%i*12)*%s+(-4+%i*16)*%s**2,-9-%i*18+(-5+%i*15)*%s+(5-%i*20)*%s**2]);
211 assert_checkequal(p - p, 0*%s);
212 assert_checkequal(p - pc, -%i*2+(%i*3)*%s+(-%i*4)*%s**2);
213 assert_checkequal(p - P, [-1-%s+%s**2,4+4*%s-4*%s**2;-3-3*%s+3*%s**2,6+6*%s-6*%s**2]);
214 assert_checkequal(p - PC, [-1-%i*4+(-1+%i*6)*%s+(1-%i*8)*%s**2,4+%i*6+(4-%i*9)*%s+(-4+%i*12)*%s**2;-3-%i*8+(-3+%i*12)*%s+(3-%i*16)*%s**2,6+%i*10+(6-%i*15)*%s+(-6+%i*20)*%s**2]);
215 assert_checkequal(P - p, [1+%s-%s**2,-4-4*%s+4*%s**2;3+3*%s-3*%s**2,-6-6*%s+6*%s**2]);
216 assert_checkequal(P - pc, [1-%i*2+(1+%i*3)*%s+(-1-%i*4)*%s**2,-4-%i*2+(-4+%i*3)*%s+(4-%i*4)*%s**2;3-%i*2+(3+%i*3)*%s+(-3-%i*4)*%s**2,-6-%i*2+(-6+%i*3)*%s+(6-%i*4)*%s**2]);
217 assert_checkequal(P - P, [0*%s,0*%s;0*%s,0*%s]);
218 assert_checkequal(P - PC, [-%i*4+(%i*6)*%s+(-%i*8)*%s**2,%i*6+(-%i*9)*%s+(%i*12)*%s**2;-%i*8+(%i*12)*%s+(-%i*16)*%s**2,%i*10+(-%i*15)*%s+(%i*20)*%s**2]);
219 assert_checkequal(pc - p, %i*2+(-%i*3)*%s+(%i*4)*%s**2);
220 assert_checkequal(pc - pc, 0*%s);
221 assert_checkequal(pc - P, [-1+%i*2+(-1-%i*3)*%s+(1+%i*4)*%s**2,4+%i*2+(4-%i*3)*%s+(-4+%i*4)*%s**2;-3+%i*2+(-3-%i*3)*%s+(3+%i*4)*%s**2,6+%i*2+(6-%i*3)*%s+(-6+%i*4)*%s**2]);
222 assert_checkequal(pc - PC, [-1-%i*2+(-1+%i*3)*%s+(1-%i*4)*%s**2,4+%i*8+(4-%i*12)*%s+(-4+%i*16)*%s**2;-3-%i*6+(-3+%i*9)*%s+(3-%i*12)*%s**2,6+%i*12+(6-%i*18)*%s+(-6+%i*24)*%s**2]);
223 assert_checkequal(PC - p, [1+%i*4+(1-%i*6)*%s+(-1+%i*8)*%s**2,-4-%i*6+(-4+%i*9)*%s+(4-%i*12)*%s**2;3+%i*8+(3-%i*12)*%s+(-3+%i*16)*%s**2,-6-%i*10+(-6+%i*15)*%s+(6-%i*20)*%s**2]);
224 assert_checkequal(PC - pc, [1+%i*2+(1-%i*3)*%s+(-1+%i*4)*%s**2,-4-%i*8+(-4+%i*12)*%s+(4-%i*16)*%s**2;3+%i*6+(3-%i*9)*%s+(-3+%i*12)*%s**2,-6-%i*12+(-6+%i*18)*%s+(6-%i*24)*%s**2]);
225 assert_checkequal(PC - P, [%i*4+(-%i*6)*%s+(%i*8)*%s**2,-%i*6+(%i*9)*%s+(-%i*12)*%s**2;%i*8+(-%i*12)*%s+(%i*16)*%s**2,-%i*10+(%i*15)*%s+(-%i*20)*%s**2]);
226 assert_checkequal(PC - PC, [0*%s,0*%s;0*%s,0*%s]);
227 assert_checkequal(SP - [], SP);
228 assert_checkequal(SPC - [], SPC);
229 assert_checkequal(SP - e, sparse([1,1;1,2;2,2;3,3;3,10;4,4;4,5],[-1;1;-1;-1;3;-1;2],[4,10]));
230 assert_checkequal(SP - ec, sparse([1,1;1,2;2,2;3,3;3,10;4,4;4,5],[-5-%i; 1;-5-%i;-5-%i; 3;-5-%i; 2],[4,10]));
231 assert_checkequal(SPC - e, sparse([1,1;1,2;2,2;3,3;3,10;4,4;4,5],[-1; 1+%i*4;-1;-1; 3+%i*12;-1; 2+%i*8],[4,10]));
232 assert_checkequal(SPC - ec, sparse([1,1;1,2;2,2;3,3;3,10;4,4;4,5],[-5-%i; 1+%i*4;-5-%i;-5-%i; 3+%i*12;-5-%i; 2+%i*8],[4,10]));
233 assert_checkequal(SP - r, [-2,-1,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,1;-2,-2,-2,-2,0,-2,-2,-2,-2,-2]);
234 assert_checkequal(SP - c, [-1-%i*2,-%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2;-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2;-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2, 2-%i*2;-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2, 1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2]);
235 assert_checkequal(SPC - r, [-2,-1+%i*4,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2, 1+%i*12;-2,-2,-2,-2,%i*8,-2,-2,-2,-2,-2]);
236 assert_checkequal(SPC - c, [-1-%i*2,%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2;-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2;-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2, 2+%i*10;-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2, 1+%i*6,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2,-1-%i*2]);
237 // OPPOSITE
238 // - []
239 assert_checkequal(-[], []);
240 // - eye
241 assert_checkequal(-e, eye() * -1);
242 // - eye complex
243 assert_checkequal(-ec, (-5-%i) * eye());
244 // - double
245 assert_checkequal(-r, -2);
246 // - double complex
247 assert_checkequal(-c, - 1 - 2*%i);
248 // - DOUBLE
249 assert_checkequal(-R, [-1 -2;-3 -4]);
250 // - DOUBLE COMPLEX
251 assert_checkequal(-C, [-1-2*%i -2-4*%i;-3-6*%i -4-8*%i]);
252 // - int
253 assert_checkequal(-i8, int8(8));
254 assert_checkequal(-i16, int16(16));
255 assert_checkequal(-i32, int32(32));
256 assert_checkequal(-i64, int64(64));
257 assert_checkequal(-ui8, uint8(-8));
258 assert_checkequal(-ui16, uint16(-16));
259 assert_checkequal(-ui32, uint32(-32));
260 assert_checkequal(-ui64, uint64(-64));
261 // - INT
262 assert_checkequal(-I8, int8([8 16 ; 24 32]));
263 assert_checkequal(-I16, int16([16 32 ; 48 64]));
264 assert_checkequal(-I32, int32([32 64 ; 96 128]));
265 assert_checkequal(-I64, int64([64 128 ; 192 256]));
266 assert_checkequal(-UI8, uint8([-8 -16 ; -24 -32]));
267 assert_checkequal(-UI16, uint16([-16 -32 ; -48 -64]));
268 assert_checkequal(-UI32, uint32([-32 -64 ; -96 -128]));
269 assert_checkequal(-UI64, uint64([-64 -128 ; -192 -256]));
270 // - SPARSE
271 assert_checkequal(-SP, sparse([1,2;4,5;3,10],[-1,-2,-3]));
272 // - SPARSE COMPLEX
273 assert_checkequal(-SPC, sparse([1,2;4,5;3,10],[1,2,3]) * ( -1 - 4*%i));
274 // - polynom
275 assert_checkequal(-p, -1-%s+%s**2);
276 // - polynom complex
277 assert_checkequal(-pc, - 1 - %s + %s**2 + ( - 2 + 3 * %s - 4 * %s**2 ) * %i);
278 // - POLYNOM
279 assert_checkequal(-P, [-2-2*%s+2*%s**2 3+3*%s-3*%s**2; -4-4*%s+4*%s**2, 5+5*%s-5*%s**2]);
280 // - POLYNOM COMPLEX
281 assert_checkequal(-PC, [-2-2*%s+2*%s**2 3+3*%s-3*%s**2; -4-4*%s+4*%s**2, 5+5*%s-5*%s**2] + ([-4+6*%s-8*%s**2 6-9*%s+12*%s**2; -8+12*%s-16*%s**2 10-15*%s+20*%s**2] * %i));