1template<typename T> 2struct X { 3 double & f (const unsigned int i, 4 const unsigned int j); 5 void g (X &M); 6}; 7 8template <typename T> 9void X<T>::g (X &x) { 10 double t14 = x.f(0,0)*x.f(1,1); 11 double t15 = x.f(2,2)*x.f(3,3); 12 double t17 = x.f(2,3)*x.f(3,2); 13 double t19 = x.f(0,0)*x.f(2,1); 14 double t20 = x.f(1,2)*x.f(3,3); 15 double t22 = x.f(1,3)*x.f(3,2); 16 double t24 = x.f(0,0)*x.f(3,1); 17 double t25 = x.f(1,2)*x.f(2,3); 18 double t27 = x.f(1,3)*x.f(2,2); 19 double t29 = x.f(1,0)*x.f(0,1); 20 double t32 = x.f(1,0)*x.f(2,1); 21 double t33 = x.f(0,2)*x.f(3,3); 22 double t35 = x.f(0,3)*x.f(3,2); 23 double t37 = x.f(1,0)*x.f(3,1); 24 double t38 = x.f(0,2)*x.f(2,3); 25 double t40 = x.f(0,3)*x.f(2,2); 26 double t42 = t14*t15-t14*t17-t19*t20+t19*t22+ 27 t24*t25-t24*t27-t29*t15+t29*t17+ 28 t32*t33-t32*t35-t37*t38+t37*t40; 29 double t43 = x.f(2,0)*x.f(0,1); 30 double t46 = x.f(2,0)*x.f(1,1); 31 double t49 = x.f(2,0)*x.f(3,1); 32 double t50 = x.f(0,2)*x.f(1,3); 33 double t52 = x.f(0,3)*x.f(1,2); 34 double t54 = x.f(3,0)*x.f(0,1); 35 double t57 = x.f(3,0)*x.f(1,1); 36 double t60 = x.f(3,0)*x.f(2,1); 37 double t63 = t43*t20-t43*t22-t46*t33+t46*t35+ 38 t49*t50-t49*t52-t54*t25+t54*t27+ 39 t57*t38-t57*t40-t60*t50+t60*t52; 40 double t65 = 1/(t42+t63); 41 double t71 = x.f(0,2)*x.f(2,1); 42 double t73 = x.f(0,3)*x.f(2,1); 43 double t75 = x.f(0,2)*x.f(3,1); 44 double t77 = x.f(0,3)*x.f(3,1); 45 double t81 = x.f(0,1)*x.f(1,2); 46 double t83 = x.f(0,1)*x.f(1,3); 47 double t85 = x.f(0,2)*x.f(1,1); 48 double t87 = x.f(0,3)*x.f(1,1); 49 double t101 = x.f(1,0)*x.f(2,2); 50 double t103 = x.f(1,0)*x.f(2,3); 51 double t105 = x.f(2,0)*x.f(1,2); 52 double t107 = x.f(2,0)*x.f(1,3); 53 double t109 = x.f(3,0)*x.f(1,2); 54 double t111 = x.f(3,0)*x.f(1,3); 55 double t115 = x.f(0,0)*x.f(2,2); 56 double t117 = x.f(0,0)*x.f(2,3); 57 double t119 = x.f(2,0)*x.f(0,2); 58 double t121 = x.f(2,0)*x.f(0,3); 59} 60 61template void X<double>::g (X<double>&); 62