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" 
 
#include  
 
int 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; 
}