00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include <iostream>
00021 #include <cmath>
00022
00023 #include "array.h"
00024 #include "matpackVII.h"
00025
00027 Joker joker;
00028
00029
00030
00031
00032
00033
00034 Tensor4 fill_tensor4(Index b, Index p, Index r, Index c, Index start = 1)
00035 {
00036 Tensor4 t(b, p, r, c);
00037
00038 Index fill = start;
00039
00040 for (Index i = 0; i < b; i++)
00041 for (Index j = 0; j < p; j++)
00042 for (Index k = 0; k < r; k++)
00043 for (Index l = 0; l < c; l++)
00044 t(i, j, k, l) = (Numeric)(fill++);
00045
00046 return t;
00047 }
00048
00049 Tensor5 fill_tensor5(Index s, Index b, Index p, Index r, Index c, Index start = 1)
00050 {
00051 Tensor5 t(s, b, p, r, c);
00052
00053 Index fill = start;
00054
00055 for (Index i = 0; i < s; i++)
00056 for (Index j = 0; j < b; j++)
00057 for (Index k = 0; k < p; k++)
00058 for (Index l = 0; l < r; l++)
00059 for (Index m = 0; m < c; m++)
00060 t(i, j, k, l, m) = (Numeric)(fill++);
00061
00062 return t;
00063 }
00064
00065
00066
00067
00068
00069 void test1()
00070 {
00071 cout << "Test Tensor4:\n\n";
00072
00073 Tensor4 a = fill_tensor4(2, 3, 3, 4);
00074
00075 cout << "Dimensions of tensor a:\n"
00076 << "book = " << a.nbooks() << ", page = " << a.npages()
00077 << ", row = " << a.nrows() << ", column = " << a.ncols()
00078 << '\n';
00079
00080 cout << "\nmin(a) = " << min(a)
00081 << ", max(a) = " << max(a)
00082 << "\n\na=\n" << a
00083 << "\n\n";
00084
00085 cout << "Second book:\n"
00086 << a(1, Range(joker), Range(joker), Range(joker))
00087 << "\n\n";
00088
00089 cout << "First letter of every page of every book:\n"
00090 << a(Range(joker), Range(joker), 0, 0)
00091 << "\n\n";
00092
00093 cout << "First rows of second page of every book\n"
00094 << a(Range(joker), 1, 0, Range(joker))
00095 << "\n\n";
00096
00097 cout << "Third column of third page of first book\n"
00098 << a(0, 2, Range(joker), 2)
00099 << "\n\n";
00100
00101 cout << "Substract 10 from each element of the second book:\n"
00102 << (a(1, Range(joker), Range(joker), Range(joker)) -= 10)
00103 << "\n\n";
00104
00105
00106 Tensor4View b = a(Range(joker), Range(0,2), Range(joker), Range(1,3));
00107
00108 cout << "b =\n" << b << '\n';
00109 }
00110
00111 void test2()
00112 {
00113 Tensor4 a = fill_tensor4(2, 2, 4, 5, 4);
00114
00115
00116 cout << "a =\n" << a << "\n\n";
00117
00118 transform(a, sqrt, a);
00119
00120 cout << "After taking the square-root:\n" << setprecision(3) << a << '\n';
00121 }
00122
00123 void test3()
00124 {
00125 ArrayOfTensor4 a(2);
00126 Tensor4 b(2, 2, 2, 3, 1.5);
00127
00128 a[0].resize(2, 1, 4, 5);
00129 a[0] = 3;
00130 a[1] = b;
00131
00132 cout << "a =\n" << a << '\n';
00133 }
00134
00135
00136
00137
00138
00139 void test4()
00140 {
00141 cout << "Test Tensor5:\n\n";
00142
00143 Tensor5 a = fill_tensor5(2, 2, 3, 3, 4);
00144
00145
00146
00147 cout << "Dimensions of tensor a:\n"
00148 << "shelf = " << a.nshelves()
00149 << ", book = " << a.nbooks() << ", page = " << a.npages()
00150 << ", row = " << a.nrows() << ", column = " << a.ncols()
00151 << '\n';
00152
00153 cout << "\nmin(a) = " << min(a)
00154 << ", max(a) = " << max(a)
00155 << "\n\na=\n" << a
00156 << "\n\n";
00157
00158 cout << "Second shelf:\n"
00159 << a(1, Range(joker), Range(joker), Range(joker), Range(joker))
00160 << "\n\n";
00161
00162 cout << "First rows of every second page of every book and every shelf:\n"
00163 << a(Range(joker), Range(joker), Range(0,joker,2), 0, Range(joker))
00164 << "\n\n";
00165
00166 cout << "First and second letter of third column "
00167 << "of every page and every book of first shelf:\n"
00168 << a(0, Range(joker), Range(joker), Range(0,2), 2)
00169 << "\n\n";
00170
00171 cout << "Last two letters of last row of second and third page "
00172 << "of every book and every shelf:\n"
00173 << a(Range(joker), Range(joker), Range(1,2),
00174 a.nrows() - 1, Range(a.ncols() - 2, 2))
00175 << "\n\n";
00176
00177
00178
00179 Tensor4 b(3, 2, a.nrows(), a.ncols(), 4);
00180
00181
00182 b(1, Range(joker), Range(joker), Range(joker)) =
00183 a(0, 0, Range(0,2), Range(joker), Range(joker));
00184
00185 cout << "b =\n" << b << '\n';
00186 }
00187
00188 void test5()
00189 {
00190 Tensor5 u = fill_tensor5(2, 3, 3, 2, 3);
00191 Tensor5 v = fill_tensor5(2, 3, 3, 2, 3, 5);
00192
00193
00194 cout << "u =\n" << u << "\n\nv =\n" << v << "\n\n";
00195
00196 u += v;
00197
00198 cout << "After element-vise addition with tensor v:\n"
00199 << "u =\n" << u << '\n';
00200 }
00201
00202
00203
00204
00205
00206 void fill_tensor6(Tensor6& x,
00207 Index v, Index s, Index b,
00208 Index p, Index r, Index c)
00209 {
00210
00211
00212
00213
00214
00215
00216 x.resize(v,s,b,p,r,c);
00217
00218 for (Index is = 0; is < s; is++)
00219 for (Index iv = 0; iv < v; iv++)
00220 for (Index ib = 0; ib < b; ib++)
00221 for (Index ip = 0; ip < p; ip++)
00222 for (Index ir = 0; ir < r; ir++)
00223 for (Index ic = 0; ic < c; ic++)
00224 x(iv, is, ib, ip, ir, ic)
00225 = (Numeric)(ic + ir*10 + ip*100 + ib*1000 + is*10000 + iv*100000);
00226 }
00227
00228 void test6()
00229 {
00230 cout << "Test Tensor6:\n\n";
00231
00232 Tensor6 a;
00233 fill_tensor6(a,
00234 3, 2, 2, 3, 3, 4);
00235
00236
00237
00238 cout << "Dimensions of tensor a:\n"
00239 << "vitrine = " << a.nvitrines() << "\n"
00240 << "shelf = " << a.nshelves() << "\n"
00241 << "book = " << a.nbooks() << "\n"
00242 << "page = " << a.npages() << "\n"
00243 << "row = " << a.nrows() << "\n"
00244 << "column = " << a.ncols() << "\n\n";
00245
00246 cout << "a(1,1,1,1,1,1) = " << a(1,1,1,1,1,1) << "\n\n";
00247
00248 cout << "a(1,1,1,1,Range(joker),1) = " << a(1,1,1,1,Range(joker),1) << "\n\n";
00249 }
00250
00251
00252
00253
00254
00255 void fill_tensor7(Tensor7& x,
00256 Index l,
00257 Index v, Index s, Index b,
00258 Index p, Index r, Index c)
00259 {
00260
00261
00262
00263
00264
00265
00266 x.resize(l,v,s,b,p,r,c);
00267
00268 for (Index il = 0; il < l; il++)
00269 for (Index is = 0; is < s; is++)
00270 for (Index iv = 0; iv < v; iv++)
00271 for (Index ib = 0; ib < b; ib++)
00272 for (Index ip = 0; ip < p; ip++)
00273 for (Index ir = 0; ir < r; ir++)
00274 for (Index ic = 0; ic < c; ic++)
00275 x(il, iv, is, ib, ip, ir, ic)
00276 = (Numeric)(ic + ir*10 + ip*100 + ib*1000 + is*10000 + iv*100000 + il*1000000);
00277 }
00278
00279 void test7()
00280 {
00281 cout << "Test Tensor7:\n\n";
00282
00283 Tensor7 a;
00284 fill_tensor7(a,
00285 2, 3, 2, 2, 3, 3, 4);
00286
00287
00288
00289
00290 cout << "Dimensions of tensor a:\n"
00291 << "libraries = " << a.nlibraries() << "\n"
00292 << "vitrine = " << a.nvitrines() << "\n"
00293 << "shelf = " << a.nshelves() << "\n"
00294 << "book = " << a.nbooks() << "\n"
00295 << "page = " << a.npages() << "\n"
00296 << "row = " << a.nrows() << "\n"
00297 << "column = " << a.ncols() << "\n\n";
00298
00299 cout << "a(1,1,1,1,1,1,1) = " << setprecision(10)
00300 << a(1,1,1,1,1,1,1) << "\n\n";
00301
00302 cout << "a(1,1,1,1,1,Range(joker),1) = " << setprecision(10)
00303 << a(1,1,1,1,1,Range(joker),1) << "\n\n";
00304 }
00305
00306 void test8()
00307 {
00308 cout << "Test Tensor7:\n"
00309 << "The output of this test should be all ones!\n\n";
00310
00311 Tensor7 a;
00312 fill_tensor7(a,
00313 2, 3, 2, 2, 3, 3, 4);
00314
00315
00316
00317
00318 Index I(1);
00319 Range R(1,1);
00320
00321 cout << setprecision(10) << a(I,I,I,I,I,I,I) << "\n";
00322 cout << setprecision(10) << a(I,I,I,I,I,I,R) << "\n";
00323 cout << setprecision(10) << a(I,I,I,I,I,R,I) << "\n";
00324 cout << setprecision(10) << a(I,I,I,I,I,R,R) << "\n";
00325 cout << setprecision(10) << a(I,I,I,I,R,I,I) << "\n";
00326 cout << setprecision(10) << a(I,I,I,I,R,I,R) << "\n";
00327 cout << setprecision(10) << a(I,I,I,I,R,R,I) << "\n";
00328 cout << setprecision(10) << a(I,I,I,I,R,R,R) << "\n";
00329 cout << setprecision(10) << a(I,I,I,R,I,I,I) << "\n";
00330 cout << setprecision(10) << a(I,I,I,R,I,I,R) << "\n";
00331 cout << setprecision(10) << a(I,I,I,R,I,R,I) << "\n";
00332 cout << setprecision(10) << a(I,I,I,R,I,R,R) << "\n";
00333 cout << setprecision(10) << a(I,I,I,R,R,I,I) << "\n";
00334 cout << setprecision(10) << a(I,I,I,R,R,I,R) << "\n";
00335 cout << setprecision(10) << a(I,I,I,R,R,R,I) << "\n";
00336 cout << setprecision(10) << a(I,I,I,R,R,R,R) << "\n";
00337 cout << setprecision(10) << a(I,I,R,I,I,I,I) << "\n";
00338 cout << setprecision(10) << a(I,I,R,I,I,I,R) << "\n";
00339 cout << setprecision(10) << a(I,I,R,I,I,R,I) << "\n";
00340 cout << setprecision(10) << a(I,I,R,I,I,R,R) << "\n";
00341 cout << setprecision(10) << a(I,I,R,I,R,I,I) << "\n";
00342 cout << setprecision(10) << a(I,I,R,I,R,I,R) << "\n";
00343 cout << setprecision(10) << a(I,I,R,I,R,R,I) << "\n";
00344 cout << setprecision(10) << a(I,I,R,I,R,R,R) << "\n";
00345 cout << setprecision(10) << a(I,I,R,R,I,I,I) << "\n";
00346 cout << setprecision(10) << a(I,I,R,R,I,I,R) << "\n";
00347 cout << setprecision(10) << a(I,I,R,R,I,R,I) << "\n";
00348 cout << setprecision(10) << a(I,I,R,R,I,R,R) << "\n";
00349 cout << setprecision(10) << a(I,I,R,R,R,I,I) << "\n";
00350 cout << setprecision(10) << a(I,I,R,R,R,I,R) << "\n";
00351 cout << setprecision(10) << a(I,I,R,R,R,R,I) << "\n";
00352 cout << setprecision(10) << a(I,I,R,R,R,R,R) << "\n";
00353 cout << setprecision(10) << a(I,R,I,I,I,I,I) << "\n";
00354 cout << setprecision(10) << a(I,R,I,I,I,I,R) << "\n";
00355 cout << setprecision(10) << a(I,R,I,I,I,R,I) << "\n";
00356 cout << setprecision(10) << a(I,R,I,I,I,R,R) << "\n";
00357 cout << setprecision(10) << a(I,R,I,I,R,I,I) << "\n";
00358 cout << setprecision(10) << a(I,R,I,I,R,I,R) << "\n";
00359 cout << setprecision(10) << a(I,R,I,I,R,R,I) << "\n";
00360 cout << setprecision(10) << a(I,R,I,I,R,R,R) << "\n";
00361 cout << setprecision(10) << a(I,R,I,R,I,I,I) << "\n";
00362 cout << setprecision(10) << a(I,R,I,R,I,I,R) << "\n";
00363 cout << setprecision(10) << a(I,R,I,R,I,R,I) << "\n";
00364 cout << setprecision(10) << a(I,R,I,R,I,R,R) << "\n";
00365 cout << setprecision(10) << a(I,R,I,R,R,I,I) << "\n";
00366 cout << setprecision(10) << a(I,R,I,R,R,I,R) << "\n";
00367 cout << setprecision(10) << a(I,R,I,R,R,R,I) << "\n";
00368 cout << setprecision(10) << a(I,R,I,R,R,R,R) << "\n";
00369 cout << setprecision(10) << a(I,R,R,I,I,I,I) << "\n";
00370 cout << setprecision(10) << a(I,R,R,I,I,I,R) << "\n";
00371 cout << setprecision(10) << a(I,R,R,I,I,R,I) << "\n";
00372 cout << setprecision(10) << a(I,R,R,I,I,R,R) << "\n";
00373 cout << setprecision(10) << a(I,R,R,I,R,I,I) << "\n";
00374 cout << setprecision(10) << a(I,R,R,I,R,I,R) << "\n";
00375 cout << setprecision(10) << a(I,R,R,I,R,R,I) << "\n";
00376 cout << setprecision(10) << a(I,R,R,I,R,R,R) << "\n";
00377 cout << setprecision(10) << a(I,R,R,R,I,I,I) << "\n";
00378 cout << setprecision(10) << a(I,R,R,R,I,I,R) << "\n";
00379 cout << setprecision(10) << a(I,R,R,R,I,R,I) << "\n";
00380 cout << setprecision(10) << a(I,R,R,R,I,R,R) << "\n";
00381 cout << setprecision(10) << a(I,R,R,R,R,I,I) << "\n";
00382 cout << setprecision(10) << a(I,R,R,R,R,I,R) << "\n";
00383 cout << setprecision(10) << a(I,R,R,R,R,R,I) << "\n";
00384 cout << setprecision(10) << a(I,R,R,R,R,R,R) << "\n";
00385 cout << setprecision(10) << a(R,I,I,I,I,I,I) << "\n";
00386 cout << setprecision(10) << a(R,I,I,I,I,I,R) << "\n";
00387 cout << setprecision(10) << a(R,I,I,I,I,R,I) << "\n";
00388 cout << setprecision(10) << a(R,I,I,I,I,R,R) << "\n";
00389 cout << setprecision(10) << a(R,I,I,I,R,I,I) << "\n";
00390 cout << setprecision(10) << a(R,I,I,I,R,I,R) << "\n";
00391 cout << setprecision(10) << a(R,I,I,I,R,R,I) << "\n";
00392 cout << setprecision(10) << a(R,I,I,I,R,R,R) << "\n";
00393 cout << setprecision(10) << a(R,I,I,R,I,I,I) << "\n";
00394 cout << setprecision(10) << a(R,I,I,R,I,I,R) << "\n";
00395 cout << setprecision(10) << a(R,I,I,R,I,R,I) << "\n";
00396 cout << setprecision(10) << a(R,I,I,R,I,R,R) << "\n";
00397 cout << setprecision(10) << a(R,I,I,R,R,I,I) << "\n";
00398 cout << setprecision(10) << a(R,I,I,R,R,I,R) << "\n";
00399 cout << setprecision(10) << a(R,I,I,R,R,R,I) << "\n";
00400 cout << setprecision(10) << a(R,I,I,R,R,R,R) << "\n";
00401 cout << setprecision(10) << a(R,I,R,I,I,I,I) << "\n";
00402 cout << setprecision(10) << a(R,I,R,I,I,I,R) << "\n";
00403 cout << setprecision(10) << a(R,I,R,I,I,R,I) << "\n";
00404 cout << setprecision(10) << a(R,I,R,I,I,R,R) << "\n";
00405 cout << setprecision(10) << a(R,I,R,I,R,I,I) << "\n";
00406 cout << setprecision(10) << a(R,I,R,I,R,I,R) << "\n";
00407 cout << setprecision(10) << a(R,I,R,I,R,R,I) << "\n";
00408 cout << setprecision(10) << a(R,I,R,I,R,R,R) << "\n";
00409 cout << setprecision(10) << a(R,I,R,R,I,I,I) << "\n";
00410 cout << setprecision(10) << a(R,I,R,R,I,I,R) << "\n";
00411 cout << setprecision(10) << a(R,I,R,R,I,R,I) << "\n";
00412 cout << setprecision(10) << a(R,I,R,R,I,R,R) << "\n";
00413 cout << setprecision(10) << a(R,I,R,R,R,I,I) << "\n";
00414 cout << setprecision(10) << a(R,I,R,R,R,I,R) << "\n";
00415 cout << setprecision(10) << a(R,I,R,R,R,R,I) << "\n";
00416 cout << setprecision(10) << a(R,I,R,R,R,R,R) << "\n";
00417 cout << setprecision(10) << a(R,R,I,I,I,I,I) << "\n";
00418 cout << setprecision(10) << a(R,R,I,I,I,I,R) << "\n";
00419 cout << setprecision(10) << a(R,R,I,I,I,R,I) << "\n";
00420 cout << setprecision(10) << a(R,R,I,I,I,R,R) << "\n";
00421 cout << setprecision(10) << a(R,R,I,I,R,I,I) << "\n";
00422 cout << setprecision(10) << a(R,R,I,I,R,I,R) << "\n";
00423 cout << setprecision(10) << a(R,R,I,I,R,R,I) << "\n";
00424 cout << setprecision(10) << a(R,R,I,I,R,R,R) << "\n";
00425 cout << setprecision(10) << a(R,R,I,R,I,I,I) << "\n";
00426 cout << setprecision(10) << a(R,R,I,R,I,I,R) << "\n";
00427 cout << setprecision(10) << a(R,R,I,R,I,R,I) << "\n";
00428 cout << setprecision(10) << a(R,R,I,R,I,R,R) << "\n";
00429 cout << setprecision(10) << a(R,R,I,R,R,I,I) << "\n";
00430 cout << setprecision(10) << a(R,R,I,R,R,I,R) << "\n";
00431 cout << setprecision(10) << a(R,R,I,R,R,R,I) << "\n";
00432 cout << setprecision(10) << a(R,R,I,R,R,R,R) << "\n";
00433 cout << setprecision(10) << a(R,R,R,I,I,I,I) << "\n";
00434 cout << setprecision(10) << a(R,R,R,I,I,I,R) << "\n";
00435 cout << setprecision(10) << a(R,R,R,I,I,R,I) << "\n";
00436 cout << setprecision(10) << a(R,R,R,I,I,R,R) << "\n";
00437 cout << setprecision(10) << a(R,R,R,I,R,I,I) << "\n";
00438 cout << setprecision(10) << a(R,R,R,I,R,I,R) << "\n";
00439 cout << setprecision(10) << a(R,R,R,I,R,R,I) << "\n";
00440 cout << setprecision(10) << a(R,R,R,I,R,R,R) << "\n";
00441 cout << setprecision(10) << a(R,R,R,R,I,I,I) << "\n";
00442 cout << setprecision(10) << a(R,R,R,R,I,I,R) << "\n";
00443 cout << setprecision(10) << a(R,R,R,R,I,R,I) << "\n";
00444 cout << setprecision(10) << a(R,R,R,R,I,R,R) << "\n";
00445 cout << setprecision(10) << a(R,R,R,R,R,I,I) << "\n";
00446 cout << setprecision(10) << a(R,R,R,R,R,I,R) << "\n";
00447 cout << setprecision(10) << a(R,R,R,R,R,R,I) << "\n";
00448 cout << setprecision(10) << a(R,R,R,R,R,R,R) << "\n";
00449 }
00450
00451 void test9()
00452 {
00453 cout << "Test Tensor7:\n"
00454 << "The output of this test should be 128\n\n";
00455
00456 Tensor7 a(2, 3, 2, 2, 3, 3, 4, 0.0);
00457
00458
00459
00460
00461
00462 Index I(1);
00463 Range R(1,1);
00464
00465 a(I,I,I,I,I,I,I) += 1;
00466 a(I,I,I,I,I,I,R) += 1;
00467 a(I,I,I,I,I,R,I) += 1;
00468 a(I,I,I,I,I,R,R) += 1;
00469 a(I,I,I,I,R,I,I) += 1;
00470 a(I,I,I,I,R,I,R) += 1;
00471 a(I,I,I,I,R,R,I) += 1;
00472 a(I,I,I,I,R,R,R) += 1;
00473 a(I,I,I,R,I,I,I) += 1;
00474 a(I,I,I,R,I,I,R) += 1;
00475 a(I,I,I,R,I,R,I) += 1;
00476 a(I,I,I,R,I,R,R) += 1;
00477 a(I,I,I,R,R,I,I) += 1;
00478 a(I,I,I,R,R,I,R) += 1;
00479 a(I,I,I,R,R,R,I) += 1;
00480 a(I,I,I,R,R,R,R) += 1;
00481 a(I,I,R,I,I,I,I) += 1;
00482 a(I,I,R,I,I,I,R) += 1;
00483 a(I,I,R,I,I,R,I) += 1;
00484 a(I,I,R,I,I,R,R) += 1;
00485 a(I,I,R,I,R,I,I) += 1;
00486 a(I,I,R,I,R,I,R) += 1;
00487 a(I,I,R,I,R,R,I) += 1;
00488 a(I,I,R,I,R,R,R) += 1;
00489 a(I,I,R,R,I,I,I) += 1;
00490 a(I,I,R,R,I,I,R) += 1;
00491 a(I,I,R,R,I,R,I) += 1;
00492 a(I,I,R,R,I,R,R) += 1;
00493 a(I,I,R,R,R,I,I) += 1;
00494 a(I,I,R,R,R,I,R) += 1;
00495 a(I,I,R,R,R,R,I) += 1;
00496 a(I,I,R,R,R,R,R) += 1;
00497 a(I,R,I,I,I,I,I) += 1;
00498 a(I,R,I,I,I,I,R) += 1;
00499 a(I,R,I,I,I,R,I) += 1;
00500 a(I,R,I,I,I,R,R) += 1;
00501 a(I,R,I,I,R,I,I) += 1;
00502 a(I,R,I,I,R,I,R) += 1;
00503 a(I,R,I,I,R,R,I) += 1;
00504 a(I,R,I,I,R,R,R) += 1;
00505 a(I,R,I,R,I,I,I) += 1;
00506 a(I,R,I,R,I,I,R) += 1;
00507 a(I,R,I,R,I,R,I) += 1;
00508 a(I,R,I,R,I,R,R) += 1;
00509 a(I,R,I,R,R,I,I) += 1;
00510 a(I,R,I,R,R,I,R) += 1;
00511 a(I,R,I,R,R,R,I) += 1;
00512 a(I,R,I,R,R,R,R) += 1;
00513 a(I,R,R,I,I,I,I) += 1;
00514 a(I,R,R,I,I,I,R) += 1;
00515 a(I,R,R,I,I,R,I) += 1;
00516 a(I,R,R,I,I,R,R) += 1;
00517 a(I,R,R,I,R,I,I) += 1;
00518 a(I,R,R,I,R,I,R) += 1;
00519 a(I,R,R,I,R,R,I) += 1;
00520 a(I,R,R,I,R,R,R) += 1;
00521 a(I,R,R,R,I,I,I) += 1;
00522 a(I,R,R,R,I,I,R) += 1;
00523 a(I,R,R,R,I,R,I) += 1;
00524 a(I,R,R,R,I,R,R) += 1;
00525 a(I,R,R,R,R,I,I) += 1;
00526 a(I,R,R,R,R,I,R) += 1;
00527 a(I,R,R,R,R,R,I) += 1;
00528 a(I,R,R,R,R,R,R) += 1;
00529 a(R,I,I,I,I,I,I) += 1;
00530 a(R,I,I,I,I,I,R) += 1;
00531 a(R,I,I,I,I,R,I) += 1;
00532 a(R,I,I,I,I,R,R) += 1;
00533 a(R,I,I,I,R,I,I) += 1;
00534 a(R,I,I,I,R,I,R) += 1;
00535 a(R,I,I,I,R,R,I) += 1;
00536 a(R,I,I,I,R,R,R) += 1;
00537 a(R,I,I,R,I,I,I) += 1;
00538 a(R,I,I,R,I,I,R) += 1;
00539 a(R,I,I,R,I,R,I) += 1;
00540 a(R,I,I,R,I,R,R) += 1;
00541 a(R,I,I,R,R,I,I) += 1;
00542 a(R,I,I,R,R,I,R) += 1;
00543 a(R,I,I,R,R,R,I) += 1;
00544 a(R,I,I,R,R,R,R) += 1;
00545 a(R,I,R,I,I,I,I) += 1;
00546 a(R,I,R,I,I,I,R) += 1;
00547 a(R,I,R,I,I,R,I) += 1;
00548 a(R,I,R,I,I,R,R) += 1;
00549 a(R,I,R,I,R,I,I) += 1;
00550 a(R,I,R,I,R,I,R) += 1;
00551 a(R,I,R,I,R,R,I) += 1;
00552 a(R,I,R,I,R,R,R) += 1;
00553 a(R,I,R,R,I,I,I) += 1;
00554 a(R,I,R,R,I,I,R) += 1;
00555 a(R,I,R,R,I,R,I) += 1;
00556 a(R,I,R,R,I,R,R) += 1;
00557 a(R,I,R,R,R,I,I) += 1;
00558 a(R,I,R,R,R,I,R) += 1;
00559 a(R,I,R,R,R,R,I) += 1;
00560 a(R,I,R,R,R,R,R) += 1;
00561 a(R,R,I,I,I,I,I) += 1;
00562 a(R,R,I,I,I,I,R) += 1;
00563 a(R,R,I,I,I,R,I) += 1;
00564 a(R,R,I,I,I,R,R) += 1;
00565 a(R,R,I,I,R,I,I) += 1;
00566 a(R,R,I,I,R,I,R) += 1;
00567 a(R,R,I,I,R,R,I) += 1;
00568 a(R,R,I,I,R,R,R) += 1;
00569 a(R,R,I,R,I,I,I) += 1;
00570 a(R,R,I,R,I,I,R) += 1;
00571 a(R,R,I,R,I,R,I) += 1;
00572 a(R,R,I,R,I,R,R) += 1;
00573 a(R,R,I,R,R,I,I) += 1;
00574 a(R,R,I,R,R,I,R) += 1;
00575 a(R,R,I,R,R,R,I) += 1;
00576 a(R,R,I,R,R,R,R) += 1;
00577 a(R,R,R,I,I,I,I) += 1;
00578 a(R,R,R,I,I,I,R) += 1;
00579 a(R,R,R,I,I,R,I) += 1;
00580 a(R,R,R,I,I,R,R) += 1;
00581 a(R,R,R,I,R,I,I) += 1;
00582 a(R,R,R,I,R,I,R) += 1;
00583 a(R,R,R,I,R,R,I) += 1;
00584 a(R,R,R,I,R,R,R) += 1;
00585 a(R,R,R,R,I,I,I) += 1;
00586 a(R,R,R,R,I,I,R) += 1;
00587 a(R,R,R,R,I,R,I) += 1;
00588 a(R,R,R,R,I,R,R) += 1;
00589 a(R,R,R,R,R,I,I) += 1;
00590 a(R,R,R,R,R,I,R) += 1;
00591 a(R,R,R,R,R,R,I) += 1;
00592 a(R,R,R,R,R,R,R) += 1;
00593
00594 cout << "The sum is: " << a(I,I,I,I,I,I,I) << "\n";
00595 }
00596
00597
00598 int main()
00599 {
00600 test9();
00601 return 0;
00602 }