summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/template/local2.C
blob: 51c946a5a49befd9ec198f5dc2c71bda99105754 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
template<typename T>
struct X {
    double & f (const unsigned int i,
                 const unsigned int j);
    void g (X &M);
};

template <typename T>
void X<T>::g (X &x) {
        double t14 = x.f(0,0)*x.f(1,1);
        double t15 = x.f(2,2)*x.f(3,3);
        double t17 = x.f(2,3)*x.f(3,2);
        double t19 = x.f(0,0)*x.f(2,1);
        double t20 = x.f(1,2)*x.f(3,3);
        double t22 = x.f(1,3)*x.f(3,2);
        double t24 = x.f(0,0)*x.f(3,1);
        double t25 = x.f(1,2)*x.f(2,3);
        double t27 = x.f(1,3)*x.f(2,2);
        double t29 = x.f(1,0)*x.f(0,1);
        double t32 = x.f(1,0)*x.f(2,1);
        double t33 = x.f(0,2)*x.f(3,3);
        double t35 = x.f(0,3)*x.f(3,2);
        double t37 = x.f(1,0)*x.f(3,1);
        double t38 = x.f(0,2)*x.f(2,3);
        double t40 = x.f(0,3)*x.f(2,2);
        double t42 = t14*t15-t14*t17-t19*t20+t19*t22+
                           t24*t25-t24*t27-t29*t15+t29*t17+
                           t32*t33-t32*t35-t37*t38+t37*t40;
        double t43 = x.f(2,0)*x.f(0,1);
        double t46 = x.f(2,0)*x.f(1,1);
        double t49 = x.f(2,0)*x.f(3,1);
        double t50 = x.f(0,2)*x.f(1,3);
        double t52 = x.f(0,3)*x.f(1,2);
        double t54 = x.f(3,0)*x.f(0,1);
        double t57 = x.f(3,0)*x.f(1,1);
        double t60 = x.f(3,0)*x.f(2,1);
        double t63 = t43*t20-t43*t22-t46*t33+t46*t35+
                           t49*t50-t49*t52-t54*t25+t54*t27+
                           t57*t38-t57*t40-t60*t50+t60*t52;
        double t65 = 1/(t42+t63);
        double t71 = x.f(0,2)*x.f(2,1);
        double t73 = x.f(0,3)*x.f(2,1);
        double t75 = x.f(0,2)*x.f(3,1);
        double t77 = x.f(0,3)*x.f(3,1);
        double t81 = x.f(0,1)*x.f(1,2);
        double t83 = x.f(0,1)*x.f(1,3);
        double t85 = x.f(0,2)*x.f(1,1);
        double t87 = x.f(0,3)*x.f(1,1);
        double t101 = x.f(1,0)*x.f(2,2);
        double t103 = x.f(1,0)*x.f(2,3);
        double t105 = x.f(2,0)*x.f(1,2);
        double t107 = x.f(2,0)*x.f(1,3);
        double t109 = x.f(3,0)*x.f(1,2);
        double t111 = x.f(3,0)*x.f(1,3);
        double t115 = x.f(0,0)*x.f(2,2);
        double t117 = x.f(0,0)*x.f(2,3);
        double t119 = x.f(2,0)*x.f(0,2);
        double t121 = x.f(2,0)*x.f(0,3);
}

template void X<double>::g (X<double>&);