www.pudn.com > Tensor_demo.zip > TensorTest.cpp
/* TensorTest.cpp Version from 05/05/01 17:07PM */ /* Contents ----------------------------------------------------------------** ** ** ** Tensor Tests ** ** ** **--------------------------------------------------------------------------** ** ** ** COPYRIGHT (C) 1997 by Melnikov Mike. All rights reserved. ** ** For any comments or suggestions mailto:zmike@andnow.ru ** ** ** ** -------------------------------------------------------------------------*/ #include "stdafx.h" #include "Tensor.h" #includeint main(int argc, char* argv[]) { Tensor2 result1,result2(2),result3(2),result4(2),result5(2),result6(2); Tensor2 t1(2); t1[0][0] = 1.0; t1[1][0] = 2.0; t1[0][1] = 3.0; t1[1][1] = 4.0; Tensor2 t2(2); t2[0][0] = 5.0; t2[1][0] = 6.0; t2[0][1] = 7.0; t2[1][1] = 8.0; Tensor1 t3(2); t3[0] = 1.0; t3[1] = 2.0; convolution(result1["11"],t1["ij"],t2["ji"]); // 69 assert((double)(TensorElement<>&)result1["11"]==69); convolution(result2["11"],t1["ij"],t2["ij"]); // 70 assert((double)(TensorElement<>&)result2["11"]==70); convolution(result4["11"],t1["2j"],t2["j1"]); // 34 assert((double)(TensorElement<>&)result4["11"]==34); convolution(result5["1i"],t3["1"],t2["i1"]); result5["1j"].printf(std::cout); // 5 , 6 convolution(result6["ij"],t1["ja"],t2["ai"]); result6["ab"].printf(std::cout); //23 34 //31 46 result3 = t1 + t2*2; result3["ij"].printf(std::cout); // 11 17 // 14 20 ~(result3); result3["ij"].printf(std::cout); // 00 00 // 00 00 Tensor4 t4(3); for(int i=0;i<3;i++) for(int j=0;j<3;j++) for(int k=0;k<3;k++) for(int l=0;l<3;l++) { t4[i][j][k][l] = i*3*3*3+j*3*3+k*3+l; } std::cout << "press any key to continue"; getchar(); t4["ijkl"].printf(std::cout); std::cout << "press any key to continue"; getchar(); // Tensor2 t[2]; // double q[2]; //t2.averaging(&t[0],q,2); Tensor4 ti(2),t5(2); { for(int i=0;i<2;i++) for(int j=0;j<2;j++) for(int k=0;k<2;k++) for(int l=0;l<2;l++) { t5[i][j][k][l] = i*2*2*2+j*2*2+k*2+l; } } inverse(t5)["ijkl"].printf(std::cout); std::cout << "press any key to continue"; getchar(); return 0; }