27 using std::setprecision;
39 for (
Index i = 0; i < b; i++)
40 for (
Index j = 0; j < p; j++)
41 for (
Index k = 0; k < r; k++)
42 for (
Index l = 0; l < c; l++) t(i, j, k, l) = (
Numeric)(fill++);
53 for (
Index i = 0; i < s; i++)
54 for (
Index j = 0; j < b; j++)
55 for (
Index k = 0; k < p; k++)
56 for (
Index l = 0; l < r; l++)
57 for (
Index m = 0; m < c; m++) t(i, j, k, l, m) = (
Numeric)(fill++);
67 cout <<
"Test Tensor4:\n\n";
71 cout <<
"Dimensions of tensor a:\n"
73 <<
", row = " << a.
nrows() <<
", column = " << a.
ncols() <<
'\n';
75 cout <<
"\nmin(a) = " <<
min(a) <<
", max(a) = " <<
max(a) <<
"\n\na=\n"
78 cout <<
"Second book:\n"
81 cout <<
"First letter of every page of every book:\n"
84 cout <<
"First rows of second page of every book\n"
87 cout <<
"Third column of third page of first book\n"
90 cout <<
"Substract 10 from each element of the second book:\n"
96 cout <<
"b =\n" << b <<
'\n';
103 cout <<
"a =\n" << a <<
"\n\n";
107 cout <<
"After taking the square-root:\n" << setprecision(3) << a <<
'\n';
114 a[0].resize(2, 1, 4, 5);
118 cout <<
"a =\n" << a <<
'\n';
126 cout <<
"Test Tensor5:\n\n";
132 cout <<
"Dimensions of tensor a:\n"
134 <<
", page = " << a.
npages() <<
", row = " << a.
nrows()
135 <<
", column = " << a.
ncols() <<
'\n';
137 cout <<
"\nmin(a) = " <<
min(a) <<
", max(a) = " <<
max(a) <<
"\n\na=\n"
140 cout <<
"Second shelf:\n"
144 cout <<
"First rows of every second page of every book and every shelf:\n"
148 cout <<
"First and second letter of third column "
149 <<
"of every page and every book of first shelf:\n"
152 cout <<
"Last two letters of last row of second and third page "
153 <<
"of every book and every shelf:\n"
158 Range(a.ncols() - 2, 2))
163 Tensor4 b(3, 2, a.nrows(), a.ncols(), 4);
169 cout <<
"b =\n" << b <<
'\n';
177 cout <<
"u =\n" << u <<
"\n\nv =\n" << v <<
"\n\n";
181 cout <<
"After element-vise addition with tensor v:\n"
198 x.resize(v, s, b, p, r, c);
200 for (
Index is = 0; is < s; is++)
201 for (
Index iv = 0; iv < v; iv++)
202 for (
Index ib = 0; ib < b; ib++)
203 for (
Index ip = 0; ip < p; ip++)
204 for (
Index ir = 0; ir < r; ir++)
205 for (
Index ic = 0; ic < c; ic++)
206 x(iv, is, ib, ip, ir, ic) =
207 (
Numeric)(ic + ir * 10 + ip * 100 + ib * 1000 + is * 10000 +
212 cout <<
"Test Tensor6:\n\n";
219 cout <<
"Dimensions of tensor a:\n"
221 <<
"shelf = " << a.
nshelves() <<
"\n"
222 <<
"book = " << a.
nbooks() <<
"\n"
223 <<
"page = " << a.
npages() <<
"\n"
224 <<
"row = " << a.
nrows() <<
"\n"
225 <<
"column = " << a.
ncols() <<
"\n\n";
227 cout <<
"a(1,1,1,1,1,1) = " << a(1, 1, 1, 1, 1, 1) <<
"\n\n";
229 cout <<
"a(1,1,1,1,Range(joker),1) = " << a(1, 1, 1, 1,
Range(
joker), 1)
245 x.resize(l, v, s, b, p, r, c);
247 for (
Index il = 0; il < l; il++)
248 for (
Index is = 0; is < s; is++)
249 for (
Index iv = 0; iv < v; iv++)
250 for (
Index ib = 0; ib < b; ib++)
251 for (
Index ip = 0; ip < p; ip++)
252 for (
Index ir = 0; ir < r; ir++)
253 for (
Index ic = 0; ic < c; ic++)
254 x(il, iv, is, ib, ip, ir, ic) =
255 (
Numeric)(ic + ir * 10 + ip * 100 + ib * 1000 + is * 10000 +
256 iv * 100000 + il * 1000000);
260 cout <<
"Test Tensor7:\n\n";
268 cout <<
"Dimensions of tensor a:\n"
271 <<
"shelf = " << a.
nshelves() <<
"\n"
272 <<
"book = " << a.
nbooks() <<
"\n"
273 <<
"page = " << a.
npages() <<
"\n"
274 <<
"row = " << a.
nrows() <<
"\n"
275 <<
"column = " << a.
ncols() <<
"\n\n";
277 cout <<
"a(1,1,1,1,1,1,1) = " << setprecision(10) << a(1, 1, 1, 1, 1, 1, 1)
280 cout <<
"a(1,1,1,1,1,Range(joker),1) = " << setprecision(10)
281 << a(1, 1, 1, 1, 1,
Range(
joker), 1) <<
"\n\n";
285 cout <<
"Test Tensor7:\n"
286 <<
"The output of this test should be all ones!\n\n";
297 cout << setprecision(10) << a(I, I, I, I, I, I, I) <<
"\n";
298 cout << setprecision(10) << a(I, I, I, I, I, I, R) <<
"\n";
299 cout << setprecision(10) << a(I, I, I, I, I, R, I) <<
"\n";
300 cout << setprecision(10) << a(I, I, I, I, I, R, R) <<
"\n";
301 cout << setprecision(10) << a(I, I, I, I, R, I, I) <<
"\n";
302 cout << setprecision(10) << a(I, I, I, I, R, I, R) <<
"\n";
303 cout << setprecision(10) << a(I, I, I, I, R, R, I) <<
"\n";
304 cout << setprecision(10) << a(I, I, I, I, R, R, R) <<
"\n";
305 cout << setprecision(10) << a(I, I, I, R, I, I, I) <<
"\n";
306 cout << setprecision(10) << a(I, I, I, R, I, I, R) <<
"\n";
307 cout << setprecision(10) << a(I, I, I, R, I, R, I) <<
"\n";
308 cout << setprecision(10) << a(I, I, I, R, I, R, R) <<
"\n";
309 cout << setprecision(10) << a(I, I, I, R, R, I, I) <<
"\n";
310 cout << setprecision(10) << a(I, I, I, R, R, I, R) <<
"\n";
311 cout << setprecision(10) << a(I, I, I, R, R, R, I) <<
"\n";
312 cout << setprecision(10) << a(I, I, I, R, R, R, R) <<
"\n";
313 cout << setprecision(10) << a(I, I, R, I, I, I, I) <<
"\n";
314 cout << setprecision(10) << a(I, I, R, I, I, I, R) <<
"\n";
315 cout << setprecision(10) << a(I, I, R, I, I, R, I) <<
"\n";
316 cout << setprecision(10) << a(I, I, R, I, I, R, R) <<
"\n";
317 cout << setprecision(10) << a(I, I, R, I, R, I, I) <<
"\n";
318 cout << setprecision(10) << a(I, I, R, I, R, I, R) <<
"\n";
319 cout << setprecision(10) << a(I, I, R, I, R, R, I) <<
"\n";
320 cout << setprecision(10) << a(I, I, R, I, R, R, R) <<
"\n";
321 cout << setprecision(10) << a(I, I, R, R, I, I, I) <<
"\n";
322 cout << setprecision(10) << a(I, I, R, R, I, I, R) <<
"\n";
323 cout << setprecision(10) << a(I, I, R, R, I, R, I) <<
"\n";
324 cout << setprecision(10) << a(I, I, R, R, I, R, R) <<
"\n";
325 cout << setprecision(10) << a(I, I, R, R, R, I, I) <<
"\n";
326 cout << setprecision(10) << a(I, I, R, R, R, I, R) <<
"\n";
327 cout << setprecision(10) << a(I, I, R, R, R, R, I) <<
"\n";
328 cout << setprecision(10) << a(I, I, R, R, R, R, R) <<
"\n";
329 cout << setprecision(10) << a(I, R, I, I, I, I, I) <<
"\n";
330 cout << setprecision(10) << a(I, R, I, I, I, I, R) <<
"\n";
331 cout << setprecision(10) << a(I, R, I, I, I, R, I) <<
"\n";
332 cout << setprecision(10) << a(I, R, I, I, I, R, R) <<
"\n";
333 cout << setprecision(10) << a(I, R, I, I, R, I, I) <<
"\n";
334 cout << setprecision(10) << a(I, R, I, I, R, I, R) <<
"\n";
335 cout << setprecision(10) << a(I, R, I, I, R, R, I) <<
"\n";
336 cout << setprecision(10) << a(I, R, I, I, R, R, R) <<
"\n";
337 cout << setprecision(10) << a(I, R, I, R, I, I, I) <<
"\n";
338 cout << setprecision(10) << a(I, R, I, R, I, I, R) <<
"\n";
339 cout << setprecision(10) << a(I, R, I, R, I, R, I) <<
"\n";
340 cout << setprecision(10) << a(I, R, I, R, I, R, R) <<
"\n";
341 cout << setprecision(10) << a(I, R, I, R, R, I, I) <<
"\n";
342 cout << setprecision(10) << a(I, R, I, R, R, I, R) <<
"\n";
343 cout << setprecision(10) << a(I, R, I, R, R, R, I) <<
"\n";
344 cout << setprecision(10) << a(I, R, I, R, R, R, R) <<
"\n";
345 cout << setprecision(10) << a(I, R, R, I, I, I, I) <<
"\n";
346 cout << setprecision(10) << a(I, R, R, I, I, I, R) <<
"\n";
347 cout << setprecision(10) << a(I, R, R, I, I, R, I) <<
"\n";
348 cout << setprecision(10) << a(I, R, R, I, I, R, R) <<
"\n";
349 cout << setprecision(10) << a(I, R, R, I, R, I, I) <<
"\n";
350 cout << setprecision(10) << a(I, R, R, I, R, I, R) <<
"\n";
351 cout << setprecision(10) << a(I, R, R, I, R, R, I) <<
"\n";
352 cout << setprecision(10) << a(I, R, R, I, R, R, R) <<
"\n";
353 cout << setprecision(10) << a(I, R, R, R, I, I, I) <<
"\n";
354 cout << setprecision(10) << a(I, R, R, R, I, I, R) <<
"\n";
355 cout << setprecision(10) << a(I, R, R, R, I, R, I) <<
"\n";
356 cout << setprecision(10) << a(I, R, R, R, I, R, R) <<
"\n";
357 cout << setprecision(10) << a(I, R, R, R, R, I, I) <<
"\n";
358 cout << setprecision(10) << a(I, R, R, R, R, I, R) <<
"\n";
359 cout << setprecision(10) << a(I, R, R, R, R, R, I) <<
"\n";
360 cout << setprecision(10) << a(I, R, R, R, R, R, R) <<
"\n";
361 cout << setprecision(10) << a(R, I, I, I, I, I, I) <<
"\n";
362 cout << setprecision(10) << a(R, I, I, I, I, I, R) <<
"\n";
363 cout << setprecision(10) << a(R, I, I, I, I, R, I) <<
"\n";
364 cout << setprecision(10) << a(R, I, I, I, I, R, R) <<
"\n";
365 cout << setprecision(10) << a(R, I, I, I, R, I, I) <<
"\n";
366 cout << setprecision(10) << a(R, I, I, I, R, I, R) <<
"\n";
367 cout << setprecision(10) << a(R, I, I, I, R, R, I) <<
"\n";
368 cout << setprecision(10) << a(R, I, I, I, R, R, R) <<
"\n";
369 cout << setprecision(10) << a(R, I, I, R, I, I, I) <<
"\n";
370 cout << setprecision(10) << a(R, I, I, R, I, I, R) <<
"\n";
371 cout << setprecision(10) << a(R, I, I, R, I, R, I) <<
"\n";
372 cout << setprecision(10) << a(R, I, I, R, I, R, R) <<
"\n";
373 cout << setprecision(10) << a(R, I, I, R, R, I, I) <<
"\n";
374 cout << setprecision(10) << a(R, I, I, R, R, I, R) <<
"\n";
375 cout << setprecision(10) << a(R, I, I, R, R, R, I) <<
"\n";
376 cout << setprecision(10) << a(R, I, I, R, R, R, R) <<
"\n";
377 cout << setprecision(10) << a(R, I, R, I, I, I, I) <<
"\n";
378 cout << setprecision(10) << a(R, I, R, I, I, I, R) <<
"\n";
379 cout << setprecision(10) << a(R, I, R, I, I, R, I) <<
"\n";
380 cout << setprecision(10) << a(R, I, R, I, I, R, R) <<
"\n";
381 cout << setprecision(10) << a(R, I, R, I, R, I, I) <<
"\n";
382 cout << setprecision(10) << a(R, I, R, I, R, I, R) <<
"\n";
383 cout << setprecision(10) << a(R, I, R, I, R, R, I) <<
"\n";
384 cout << setprecision(10) << a(R, I, R, I, R, R, R) <<
"\n";
385 cout << setprecision(10) << a(R, I, R, R, I, I, I) <<
"\n";
386 cout << setprecision(10) << a(R, I, R, R, I, I, R) <<
"\n";
387 cout << setprecision(10) << a(R, I, R, R, I, R, I) <<
"\n";
388 cout << setprecision(10) << a(R, I, R, R, I, R, R) <<
"\n";
389 cout << setprecision(10) << a(R, I, R, R, R, I, I) <<
"\n";
390 cout << setprecision(10) << a(R, I, R, R, R, I, R) <<
"\n";
391 cout << setprecision(10) << a(R, I, R, R, R, R, I) <<
"\n";
392 cout << setprecision(10) << a(R, I, R, R, R, R, R) <<
"\n";
393 cout << setprecision(10) << a(R, R, I, I, I, I, I) <<
"\n";
394 cout << setprecision(10) << a(R, R, I, I, I, I, R) <<
"\n";
395 cout << setprecision(10) << a(R, R, I, I, I, R, I) <<
"\n";
396 cout << setprecision(10) << a(R, R, I, I, I, R, R) <<
"\n";
397 cout << setprecision(10) << a(R, R, I, I, R, I, I) <<
"\n";
398 cout << setprecision(10) << a(R, R, I, I, R, I, R) <<
"\n";
399 cout << setprecision(10) << a(R, R, I, I, R, R, I) <<
"\n";
400 cout << setprecision(10) << a(R, R, I, I, R, R, R) <<
"\n";
401 cout << setprecision(10) << a(R, R, I, R, I, I, I) <<
"\n";
402 cout << setprecision(10) << a(R, R, I, R, I, I, R) <<
"\n";
403 cout << setprecision(10) << a(R, R, I, R, I, R, I) <<
"\n";
404 cout << setprecision(10) << a(R, R, I, R, I, R, R) <<
"\n";
405 cout << setprecision(10) << a(R, R, I, R, R, I, I) <<
"\n";
406 cout << setprecision(10) << a(R, R, I, R, R, I, R) <<
"\n";
407 cout << setprecision(10) << a(R, R, I, R, R, R, I) <<
"\n";
408 cout << setprecision(10) << a(R, R, I, R, R, R, R) <<
"\n";
409 cout << setprecision(10) << a(R, R, R, I, I, I, I) <<
"\n";
410 cout << setprecision(10) << a(R, R, R, I, I, I, R) <<
"\n";
411 cout << setprecision(10) << a(R, R, R, I, I, R, I) <<
"\n";
412 cout << setprecision(10) << a(R, R, R, I, I, R, R) <<
"\n";
413 cout << setprecision(10) << a(R, R, R, I, R, I, I) <<
"\n";
414 cout << setprecision(10) << a(R, R, R, I, R, I, R) <<
"\n";
415 cout << setprecision(10) << a(R, R, R, I, R, R, I) <<
"\n";
416 cout << setprecision(10) << a(R, R, R, I, R, R, R) <<
"\n";
417 cout << setprecision(10) << a(R, R, R, R, I, I, I) <<
"\n";
418 cout << setprecision(10) << a(R, R, R, R, I, I, R) <<
"\n";
419 cout << setprecision(10) << a(R, R, R, R, I, R, I) <<
"\n";
420 cout << setprecision(10) << a(R, R, R, R, I, R, R) <<
"\n";
421 cout << setprecision(10) << a(R, R, R, R, R, I, I) <<
"\n";
422 cout << setprecision(10) << a(R, R, R, R, R, I, R) <<
"\n";
423 cout << setprecision(10) << a(R, R, R, R, R, R, I) <<
"\n";
424 cout << setprecision(10) << a(R, R, R, R, R, R, R) <<
"\n";
428 cout <<
"Test Tensor7:\n"
429 <<
"The output of this test should be 128\n\n";
431 Tensor7 a(2, 3, 2, 2, 3, 3, 4, 0.0);
440 a(I, I, I, I, I, I, I) += 1;
441 a(I, I, I, I, I, I, R) += 1;
442 a(I, I, I, I, I, R, I) += 1;
443 a(I, I, I, I, I, R, R) += 1;
444 a(I, I, I, I, R, I, I) += 1;
445 a(I, I, I, I, R, I, R) += 1;
446 a(I, I, I, I, R, R, I) += 1;
447 a(I, I, I, I, R, R, R) += 1;
448 a(I, I, I, R, I, I, I) += 1;
449 a(I, I, I, R, I, I, R) += 1;
450 a(I, I, I, R, I, R, I) += 1;
451 a(I, I, I, R, I, R, R) += 1;
452 a(I, I, I, R, R, I, I) += 1;
453 a(I, I, I, R, R, I, R) += 1;
454 a(I, I, I, R, R, R, I) += 1;
455 a(I, I, I, R, R, R, R) += 1;
456 a(I, I, R, I, I, I, I) += 1;
457 a(I, I, R, I, I, I, R) += 1;
458 a(I, I, R, I, I, R, I) += 1;
459 a(I, I, R, I, I, R, R) += 1;
460 a(I, I, R, I, R, I, I) += 1;
461 a(I, I, R, I, R, I, R) += 1;
462 a(I, I, R, I, R, R, I) += 1;
463 a(I, I, R, I, R, R, R) += 1;
464 a(I, I, R, R, I, I, I) += 1;
465 a(I, I, R, R, I, I, R) += 1;
466 a(I, I, R, R, I, R, I) += 1;
467 a(I, I, R, R, I, R, R) += 1;
468 a(I, I, R, R, R, I, I) += 1;
469 a(I, I, R, R, R, I, R) += 1;
470 a(I, I, R, R, R, R, I) += 1;
471 a(I, I, R, R, R, R, R) += 1;
472 a(I, R, I, I, I, I, I) += 1;
473 a(I, R, I, I, I, I, R) += 1;
474 a(I, R, I, I, I, R, I) += 1;
475 a(I, R, I, I, I, R, R) += 1;
476 a(I, R, I, I, R, I, I) += 1;
477 a(I, R, I, I, R, I, R) += 1;
478 a(I, R, I, I, R, R, I) += 1;
479 a(I, R, I, I, R, R, R) += 1;
480 a(I, R, I, R, I, I, I) += 1;
481 a(I, R, I, R, I, I, R) += 1;
482 a(I, R, I, R, I, R, I) += 1;
483 a(I, R, I, R, I, R, R) += 1;
484 a(I, R, I, R, R, I, I) += 1;
485 a(I, R, I, R, R, I, R) += 1;
486 a(I, R, I, R, R, R, I) += 1;
487 a(I, R, I, R, R, R, R) += 1;
488 a(I, R, R, I, I, I, I) += 1;
489 a(I, R, R, I, I, I, R) += 1;
490 a(I, R, R, I, I, R, I) += 1;
491 a(I, R, R, I, I, R, R) += 1;
492 a(I, R, R, I, R, I, I) += 1;
493 a(I, R, R, I, R, I, R) += 1;
494 a(I, R, R, I, R, R, I) += 1;
495 a(I, R, R, I, R, R, R) += 1;
496 a(I, R, R, R, I, I, I) += 1;
497 a(I, R, R, R, I, I, R) += 1;
498 a(I, R, R, R, I, R, I) += 1;
499 a(I, R, R, R, I, R, R) += 1;
500 a(I, R, R, R, R, I, I) += 1;
501 a(I, R, R, R, R, I, R) += 1;
502 a(I, R, R, R, R, R, I) += 1;
503 a(I, R, R, R, R, R, R) += 1;
504 a(R, I, I, I, I, I, I) += 1;
505 a(R, I, I, I, I, I, R) += 1;
506 a(R, I, I, I, I, R, I) += 1;
507 a(R, I, I, I, I, R, R) += 1;
508 a(R, I, I, I, R, I, I) += 1;
509 a(R, I, I, I, R, I, R) += 1;
510 a(R, I, I, I, R, R, I) += 1;
511 a(R, I, I, I, R, R, R) += 1;
512 a(R, I, I, R, I, I, I) += 1;
513 a(R, I, I, R, I, I, R) += 1;
514 a(R, I, I, R, I, R, I) += 1;
515 a(R, I, I, R, I, R, R) += 1;
516 a(R, I, I, R, R, I, I) += 1;
517 a(R, I, I, R, R, I, R) += 1;
518 a(R, I, I, R, R, R, I) += 1;
519 a(R, I, I, R, R, R, R) += 1;
520 a(R, I, R, I, I, I, I) += 1;
521 a(R, I, R, I, I, I, R) += 1;
522 a(R, I, R, I, I, R, I) += 1;
523 a(R, I, R, I, I, R, R) += 1;
524 a(R, I, R, I, R, I, I) += 1;
525 a(R, I, R, I, R, I, R) += 1;
526 a(R, I, R, I, R, R, I) += 1;
527 a(R, I, R, I, R, R, R) += 1;
528 a(R, I, R, R, I, I, I) += 1;
529 a(R, I, R, R, I, I, R) += 1;
530 a(R, I, R, R, I, R, I) += 1;
531 a(R, I, R, R, I, R, R) += 1;
532 a(R, I, R, R, R, I, I) += 1;
533 a(R, I, R, R, R, I, R) += 1;
534 a(R, I, R, R, R, R, I) += 1;
535 a(R, I, R, R, R, R, R) += 1;
536 a(R, R, I, I, I, I, I) += 1;
537 a(R, R, I, I, I, I, R) += 1;
538 a(R, R, I, I, I, R, I) += 1;
539 a(R, R, I, I, I, R, R) += 1;
540 a(R, R, I, I, R, I, I) += 1;
541 a(R, R, I, I, R, I, R) += 1;
542 a(R, R, I, I, R, R, I) += 1;
543 a(R, R, I, I, R, R, R) += 1;
544 a(R, R, I, R, I, I, I) += 1;
545 a(R, R, I, R, I, I, R) += 1;
546 a(R, R, I, R, I, R, I) += 1;
547 a(R, R, I, R, I, R, R) += 1;
548 a(R, R, I, R, R, I, I) += 1;
549 a(R, R, I, R, R, I, R) += 1;
550 a(R, R, I, R, R, R, I) += 1;
551 a(R, R, I, R, R, R, R) += 1;
552 a(R, R, R, I, I, I, I) += 1;
553 a(R, R, R, I, I, I, R) += 1;
554 a(R, R, R, I, I, R, I) += 1;
555 a(R, R, R, I, I, R, R) += 1;
556 a(R, R, R, I, R, I, I) += 1;
557 a(R, R, R, I, R, I, R) += 1;
558 a(R, R, R, I, R, R, I) += 1;
559 a(R, R, R, I, R, R, R) += 1;
560 a(R, R, R, R, I, I, I) += 1;
561 a(R, R, R, R, I, I, R) += 1;
562 a(R, R, R, R, I, R, I) += 1;
563 a(R, R, R, R, I, R, R) += 1;
564 a(R, R, R, R, R, I, I) += 1;
565 a(R, R, R, R, R, I, R) += 1;
566 a(R, R, R, R, R, R, I) += 1;
567 a(R, R, R, R, R, R, R) += 1;
569 cout <<
"The sum is: " << a(I, I, I, I, I, I, I) <<
"\n";