summaryrefslogtreecommitdiff
path: root/modules/overloading/tests/unit_tests/rational.dia.ref
blob: a703a7acaa798ba5325e645f6f65d8d37f88a17b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
// =============================================================================
// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
// Copyright (C) 2009 - DIGITEO
//
//  This file is distributed under the same license as the Scilab package.
// =============================================================================
// <-- CLI SHELL MODE -->
s=poly(0,'s');
z = s^0;
h=1/(2*s);
assert_checkequal(size(h), [1 1]);
assert_checkequal(h.num, 1*z);
assert_checkequal(h.den, 2*s);
//basic operations with 2D matrices
H=[h h];
assert_checkequal(H.num, [1 1].*z);
assert_checkequal(H.den, [2*s 2*s]);
H=[h;h];
assert_checkequal(H.num, [1;1].*z);
assert_checkequal(H.den, [2*s;2*s]);
H=[h 3];
assert_checkequal(H.num, [1*z 3]);
assert_checkequal(H.den, [2*s 1]);
H=[h;5];
assert_checkequal(H.num, [1*z;5]);
assert_checkequal(H.den, [2*s;1]);
H=[3 h];
assert_checkequal(H.num, [3 1*z]);
assert_checkequal(H.den, [1 2*s]);
H=[5;h];
assert_checkequal(H.num, [5;1*z]);
assert_checkequal(H.den, [1;2*s]);
H=[3 h;s 2];
assert_checkequal(H(1,1), rlist(3,1));
assert_checkequal(H(1,2), h);
assert_checkequal(H(1, [2 1]), [h rlist(3,1)]);
assert_checkequal(H(1, [2 2]), [h h]);
assert_checkequal(H(1,:), [rlist(3,1) h]);
assert_checkequal(H(:,1), [rlist(3,1); s]);
assert_checkequal(H([2 1], :), [s rlist(2,1);rlist(3,1) h]);
assert_checkequal(H([1 1], :), [rlist(3,1) h;rlist(3,1) h]);
assert_checkequal(matrix(H, -1, 1), [3*z;s;h;2*z]);
H=h;H(1,3)=1/s;
assert_checkequal(H.num, [1 0 1].*z);
assert_checkequal(H.den, [2*s 1 s]);
H=h;H(3,1)=1/s;
assert_checkequal(H.num, [1 0 1]'.*z);
assert_checkequal(H.den, [2*s 1 s]');
H=h;H(1,3)=1.5;
assert_checkequal(H.num, [1 0 1.5].*z);
assert_checkequal(H.den, [2*s 1 1]);
H=h;H(3,1)=1.5;
assert_checkequal(H.num, [1 0 1.5]'.*z);
assert_checkequal(H.den, [2*s 1 1]');
H=1.5;H(1,3)=1/s;
assert_checkequal(H.num, [1.5 0 1].*z);
assert_checkequal(H.den, [1 1 s]);
H=1.5;H(3,1)=1/s;
assert_checkequal(H.num, [1.5 0 1]'.*z);
assert_checkequal(H.den, [1 1 s]');
H=[h s;1 h];H(:,1)=[];
assert_checkequal(H, [s;h]);
H=[h s;1 h];H(2,:)=[];
assert_checkequal(H, [h s]);
H=h+h;c=coeff(H.den,1);
assert_checkequal(H.num/c, 1*z);
assert_checkequal(H.den/c, s);
H=h+1;
assert_checkequal(H.num, 1+2*s);
assert_checkequal(H.den, 2*s);
H=1+h;
assert_checkequal(H.num, 1+2*s);
assert_checkequal(H.den, 2*s);
H=h+[];
assert_checkequal(H, h);
H=[]+h;
assert_checkequal(H, h);
H=h+s;
assert_checkequal(H.num, 1+2*s^2);
assert_checkequal(H.den, 2*s);
H=s+h;
assert_checkequal(H.num, 1+2*s^2);
assert_checkequal(H.den, 2*s);
H=h-h;
assert_checkequal(H.num, 0*z);
assert_checkequal(H.den, 1*s^0);
H=h-1;
assert_checkequal(H.num, 1-2*s);
assert_checkequal(H.den, 2*s);
H=1-h;
assert_checkequal(H.num, -1+2*s);
assert_checkequal(H.den, 2*s);
H=[h h+1]-1;
assert_checkequal(H(1,1), h-1);
assert_checkequal(H(1,2), h);
H=[h h+1]-2*h;
assert_checkequal(H.num, [-2 -2+4*s]);
assert_checkequal(H.den, [4*s 4*s]);
H=-2*h+[h h+1];
assert_checkequal(H.num, [-2 -2+4*s]);
assert_checkequal(H.den, [4*s 4*s]);
// *
H=h*h;
assert_checkequal(H.num, 1*z);
assert_checkequal(H.den, 4*s^2);
H=h*2;
assert_checkequal(H.num, 2*z);
assert_checkequal(H.den, 2*s);
H=2*h;
assert_checkequal(H.num, 2*z);
assert_checkequal(H.den, 2*s);
H=h*s;
assert_checkequal(H.num, 1*z);
assert_checkequal(H.den, 2*z);
H=s*h;
assert_checkequal(H.num, 1*z);
assert_checkequal(H.den, 2*z);
H=[h h+1]*h;
assert_checkequal(H, [h*h (h+1)*h]);
H=h*[h h+1];
assert_checkequal(H, [h*h, (h+1)*h]);
H=[h h+1]*2;
assert_checkequal(H, [h*2, (h+1)*2]);
H=2*[h h+1];
assert_checkequal(H, [h*2, (h+1)*2]);
H=[h h+1]*s;
assert_checkequal(H, [h*s, (h+1)*s]);
H=s*[h h+1];
assert_checkequal(H, [h*s, (h+1)*s]);
H=[h 1;s 3]*[1;h];
assert_checkequal(H, [h+h;s+3*h]);
H=[h 1]*[h 1;s 3];
assert_checkequal(H, [h*h+s, h+3]);
H=[h 1;s 3]*[1;2];
assert_checkequal(H, [h+2;s+6]);
H=[2 1]*[h 1;s 3];
assert_checkequal(H, [2*h+s, 2+3]);
// .*
H=h.*h;
assert_checkequal(H.num, 1*z);
assert_checkequal(H.den, 4*s^2);
H=h.*2;
assert_checkequal(H.num, 2*z);
assert_checkequal(H.den, 2*s);
H=2 .*h;
assert_checkequal(H.num, 2*z);
assert_checkequal(H.den, 2*s);
H=h.*s;
assert_checkequal(H.num, 1*z);
assert_checkequal(H.den, 2*z);
H=s.*h;
assert_checkequal(H.num, 1*z);
assert_checkequal(H.den, 2*z);
H=[h h+1].*h;
assert_checkequal(H, [h*h (h+1)*h]);
H=h.*[h h+1];
assert_checkequal(H, [h*h (h+1)*h]);
H=[h h+1].*2;
assert_checkequal(H, [h*2, (h+1)*2]);
H=2 .*[h h+1];
assert_checkequal(H, [h*2, (h+1)*2]);
H=[h h+1].*s;
assert_checkequal(H, [h*s, (h+1)*s]);
H=s.*[h h+1];
assert_checkequal(H, [h*s, (h+1)*s]);
H=[3 h;s 2].*[3 h;s 2];
assert_checkequal(H, [9 h*h; s*s 4]);
// /
H=h/2;
assert_checkequal(H.num, 0.5*z);
assert_checkequal(H.den, 2*s);
H=h/s;
assert_checkequal(H.num, 1*z);
assert_checkequal(H.den, 2*s^2);
H=h/(h+1);
assert_checkequal(H.num, 2*z);
assert_checkequal(H.den, 2+4*s);
H=[h h-1]/2;
assert_checkequal(H, [h/2 (h-1)/2]);
H=[h h-1]/s;
assert_checkequal(H, [h/s (h-1)/s]);
H=1/h;
assert_checkequal(H.num, 2*s);
assert_checkequal(H.den, 1*z);
H=[1 2]/h;
assert_checkequal(H, [1/h 2/h]);
H=[s+1 s-2]/h;
assert_checkequal(H, [(s+1)/h (s-2)/h]);
H=[h+1 (h+1)*(h-1)]/h;
assert_checkequal(H, [(h+1)/h ((h+1)*(h-1))/h]);
H=(eye(2,2)/[3 h;s 2])*[3 h;s 2];
assert_checkequal(coeff(H.num)./(coeff(H.den, 0) + coeff(H.den, 2)), eye(2,2));
// ./
H=h./2;
assert_checkequal(H.num, 0.5*z);
assert_checkequal(H.den, 2*s);
H=h./s;
assert_checkequal(H.num, 1*z);
assert_checkequal(H.den, 2*s^2);
H=h./(h+1);
assert_checkequal(H.num, 2*z);
assert_checkequal(H.den, 2+4*s);
H=[h h-1]./2;
assert_checkequal(H, [h/2 (h-1)/2]);
H=[h h-1]./s;
assert_checkequal(H, [h/s (h-1)/s]);
H=1 ./h;
assert_checkequal(H.num, 2*s);
assert_checkequal(H.den, 1*z);
H=[1 2]./h;
assert_checkequal(H, [1/h 2/h]);
H=[s+1 s-2]./h;
assert_checkequal(H, [(s+1)/h (s-2)/h]);
H=[h+1 (h+1)*(h-1)]./h;
assert_checkequal(H, [(h+1)/h ((h+1)*(h-1))/h]);
H=[3 h;s 2]./[3 h;s 2];
assert_checkequal(coeff(H.num)./coeff(H.den), ones(2,2));
// .\
H=2 .\h;
assert_checkequal(H.num, 0.5*z);
assert_checkequal(H.den, 2*s);
H=s.\h;
assert_checkequal(H.num, 1*z);
assert_checkequal(H.den, 2*s^2);
H=(h+1).\h;
assert_checkequal(H.num, 2*z);
assert_checkequal(H.den, 2+4*s);
H=2 .\[h h-1];
assert_checkequal(H, [h/2 (h-1)/2]);
H=s.\[h h-1];
assert_checkequal(H, [h/s (h-1)/s]);
H=1 ./h;
assert_checkequal(H.num, 2*s);
assert_checkequal(H.den, 1*z);
H=h.\[1 2];
assert_checkequal(H, [1/h 2/h]);
H=h.\[s+1 s-2];
assert_checkequal(H, [(s+1)/h (s-2)/h]);
H=h.\[h+1 (h+1)*(h-1)];
assert_checkequal(H, [(h+1)/h ((h+1)*(h-1))/h]);
H=[3 h;s 2]./[3 h;s 2];
assert_checkequal(coeff(H.num)./coeff(H.den), ones(2,2));
// hypermatrices of rationnals
clear H;H(1,1,2)=h;
assert_checkequal(H(1,1,1), rlist(0, 1, []));
assert_checkequal(H(1,1,2), h);
H(2,1,2)=h+1;
assert_checkequal(size(H), [2 1 2]);
assert_checkequal(H(:,1,1), rlist([0; 0], [1; 1]));
assert_checkequal(H([2 2], 1, 2), [h+1;h+1]);
clear H;H(1,1,2)=h;H(2,1,1)=1;
assert_checkequal(H(:,1,1), rlist([0; 1], [1; 1]));
assert_checkequal(H(:,1,2), [h;0]);
clear H;H(1,1,2)=h;H(1,1,:)=3;
assert_checkequal(H(1,1,1), rlist(3,1));
assert_checkequal(H(1,1,2), rlist(3,1));
clear H;H(1,1,2)=h;H(1:2,1,1)=%s;
assert_checkequal(H(1:2,1,1), rlist([%s;%s], [1;1]));
clear H;H(2,2,2)=s;H(2,1,1)=h;
assert_checkequal(H(:,:,1), [0 0;h 0]);
assert_checkequal(H(:,:,2), rlist([0 0;0 s], [1 1;1 1]));
clear H;H(2,2,2)=8;H(2,1,1)=h;
assert_checkequal(H(:,:,1), [0 0;h 0]);
assert_checkequal(H(:,:,2), rlist([0 0;0 8], [1 1;1 1]));
clear H;H(2,2,2)=8;H(2,1,1)=h;
H(:,:,1)=[];
assert_checkequal(H, rlist([0 0;0 8], [1 1;1 1]));
clear H;H(2,2,2)=8;H(2,1,1)=h;
H2=H(2,:,:);H(1,:,:)=[];
assert_checkequal(H, H2);
clear H;H(2,2,2)=8;H(2,1,1)=h;
H2=H(:,2,:);H(:,1,:)=[];
assert_checkequal(H, H2);
clear H;H(2,2,2)=h;H=H+1;
assert_checkequal(H(:,:,1), rlist([1 1;1 1], [1 1;1 1]));
assert_checkequal(H(:,:,2), [1 1;1 h+1]);
clear H;H(2,2,2)=h;H=1+H;
assert_checkequal(H(:,:,1), rlist([1 1;1 1], [1 1;1 1]));
assert_checkequal(H(:,:,2), [1 1;1 h+1]);
clear H;H(2,2,2)=h;H=H+s;
assert_checkequal(H(:,:,1), rlist([s s;s s], [1 1;1 1]));
assert_checkequal(H(:,:,2), [s s;s h+s]);
clear H;H(2,2,2)=h;H=s+H;
assert_checkequal(H(:,:,1), rlist([s s; s s], [1 1;1 1]));
assert_checkequal(H(:,:,2), [s s;s h+s]);
clear H;H(2,2,2)=h;H=H-1;
assert_checkequal(H(:,:,1), -1*rlist([1 1;1 1], [1 1;1 1]));
assert_checkequal(H(:,:,2), [-1 -1;-1 h-1]);
clear H;H(2,2,2)=h;H=1-H;
assert_checkequal(H(:,:,1), rlist([1 1;1 1], [1 1;1 1]));
assert_checkequal(H(:,:,2), [1 1;1 1-h]);
clear H;H(2,2,2)=h;H=H-s;
assert_checkequal(H(:,:,1), rlist([-s -s;-s -s], [1 1;1 1]));
assert_checkequal(H(:,:,2), [-s -s;-s h-s]);
clear H;H(2,2,2)=h;H=s-H;
assert_checkequal(H(:,:,1), rlist([s s;s s], [1 1;1 1]));
assert_checkequal(H(:,:,2), [s s;s -h+s]);
clear H;H(2,2,2)=s;H(2,1,1)=h;H=H+H;
assert_checkequal(H(:,:,1), [0 0;h+h 0]);
assert_checkequal(H(:,:,2), rlist([0 0;0 s+s], [1 1;1 1]));
clear H;H(2,2,2)=s;H(2,1,1)=h;H=H-H;
assert_checkequal(H(:,:,1), [0 0;h-h 0]);
assert_checkequal(H(:,:,2), rlist([0 0;0 0], [1 1;1 1]));
// *
clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=H*h;
assert_checkequal(H(:,:,1), [s*h;s*h]);
assert_checkequal(H(:,:,2), [h*h; 0/1]);
clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=H*2;
assert_checkequal(H(:,:,1), rlist([s*2;s*2], [1;1]));
assert_checkequal(H(:,:,2), [h*2;0]);
clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=2*H;
assert_checkequal(H(:,:,1), rlist([s*2;s*2], [1;1]));
assert_checkequal(H(:,:,2), [h*2;0]);
clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=H*s;
assert_checkequal(H(:,:,1), rlist([s*s;s*s], [1;1]));
assert_checkequal(H(:,:,2), [h*s;0]);
clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=s*H;
assert_checkequal(H(:,:,1), rlist([s*s;s*s], [1;1]));
assert_checkequal(H(:,:,2), [h*s;0]);
// .*
clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=H.*h;
assert_checkequal(H(:,:,1), [s*h;s*h]);
assert_checkequal(H(:,:,2), [h*h;0/1]);
clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=h.*H;
assert_checkequal(H(:,:,1), [s*h;s*h]);
assert_checkequal(H(:,:,2), [h*h;0/1]);
clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=H.*2;
assert_checkequal(H(:,:,1), rlist([s*2;s*2], [1;1]));
assert_checkequal(H(:,:,2), [h*2;0]);
clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=2 .*H;
assert_checkequal(H(:,:,1), rlist([s*2;s*2], [1;1]));
assert_checkequal(H(:,:,2), [h*2;0]);
clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=H.*s;
assert_checkequal(H(:,:,1), rlist([s*s;s*s], [1;1]));
assert_checkequal(H(:,:,2), [h*s;0]);
clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=s.*H;
assert_checkequal(H(:,:,1), rlist([s*s;s*s], [1;1]));
assert_checkequal(H(:,:,2), [h*s;0]);
clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=H.*H;
assert_checkequal(H(:,:,1), rlist([s*s;s*s], [1;1]));
assert_checkequal(H(:,:,2), [h*h;0]);