-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathMatrix_5x5.txt
108 lines (103 loc) · 6.43 KB
/
Matrix_5x5.txt
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
var A3434 = m.m33 * m.m44 - m.m34 * m.m43 ;
var A2434 = m.m32 * m.m44 - m.m34 * m.m42 ;
var A2334 = m.m32 * m.m43 - m.m33 * m.m42 ;
var A1434 = m.m31 * m.m44 - m.m34 * m.m41 ;
var A1334 = m.m31 * m.m43 - m.m33 * m.m41 ;
var A1234 = m.m31 * m.m42 - m.m32 * m.m41 ;
var A0434 = m.m30 * m.m44 - m.m34 * m.m40 ;
var A0334 = m.m30 * m.m43 - m.m33 * m.m40 ;
var A0234 = m.m30 * m.m42 - m.m32 * m.m40 ;
var A0134 = m.m30 * m.m41 - m.m31 * m.m40 ;
var A3424 = m.m23 * m.m44 - m.m24 * m.m43 ;
var A2424 = m.m22 * m.m44 - m.m24 * m.m42 ;
var A2324 = m.m22 * m.m43 - m.m23 * m.m42 ;
var A1424 = m.m21 * m.m44 - m.m24 * m.m41 ;
var A1324 = m.m21 * m.m43 - m.m23 * m.m41 ;
var A1224 = m.m21 * m.m42 - m.m22 * m.m41 ;
var A3423 = m.m23 * m.m34 - m.m24 * m.m33 ;
var A2423 = m.m22 * m.m34 - m.m24 * m.m32 ;
var A2323 = m.m22 * m.m33 - m.m23 * m.m32 ;
var A1423 = m.m21 * m.m34 - m.m24 * m.m31 ;
var A1323 = m.m21 * m.m33 - m.m23 * m.m31 ;
var A1223 = m.m21 * m.m32 - m.m22 * m.m31 ;
var A0424 = m.m20 * m.m44 - m.m24 * m.m40 ;
var A0324 = m.m20 * m.m43 - m.m23 * m.m40 ;
var A0224 = m.m20 * m.m42 - m.m22 * m.m40 ;
var A0423 = m.m20 * m.m34 - m.m24 * m.m30 ;
var A0323 = m.m20 * m.m33 - m.m23 * m.m30 ;
var A0223 = m.m20 * m.m32 - m.m22 * m.m30 ;
var A0124 = m.m20 * m.m41 - m.m21 * m.m40 ;
var A0123 = m.m20 * m.m31 - m.m21 * m.m30 ;
var B234234 = m.m22 * A3434 - m.m23 * A2434 + m.m24 * A2334 ;
var B134234 = m.m21 * A3434 - m.m23 * A1434 + m.m24 * A1334 ;
var B124234 = m.m21 * A2434 - m.m22 * A1434 + m.m24 * A1234 ;
var B123234 = m.m21 * A2334 - m.m22 * A1334 + m.m23 * A1234 ;
var B034234 = m.m20 * A3434 - m.m23 * A0434 + m.m24 * A0334 ;
var B024234 = m.m20 * A2434 - m.m22 * A0434 + m.m24 * A0234 ;
var B023234 = m.m20 * A2334 - m.m22 * A0334 + m.m23 * A0234 ;
var B014234 = m.m20 * A1434 - m.m21 * A0434 + m.m24 * A0134 ;
var B013234 = m.m20 * A1334 - m.m21 * A0334 + m.m23 * A0134 ;
var B012234 = m.m20 * A1234 - m.m21 * A0234 + m.m22 * A0134 ;
var B234134 = m.m12 * A3434 - m.m13 * A2434 + m.m14 * A2334 ;
var B134134 = m.m11 * A3434 - m.m13 * A1434 + m.m14 * A1334 ;
var B124134 = m.m11 * A2434 - m.m12 * A1434 + m.m14 * A1234 ;
var B123134 = m.m11 * A2334 - m.m12 * A1334 + m.m13 * A1234 ;
var B234124 = m.m12 * A3424 - m.m13 * A2424 + m.m14 * A2324 ;
var B134124 = m.m11 * A3424 - m.m13 * A1424 + m.m14 * A1324 ;
var B124124 = m.m11 * A2424 - m.m12 * A1424 + m.m14 * A1224 ;
var B123124 = m.m11 * A2324 - m.m12 * A1324 + m.m13 * A1224 ;
var B234123 = m.m12 * A3423 - m.m13 * A2423 + m.m14 * A2323 ;
var B134123 = m.m11 * A3423 - m.m13 * A1423 + m.m14 * A1323 ;
var B124123 = m.m11 * A2423 - m.m12 * A1423 + m.m14 * A1223 ;
var B123123 = m.m11 * A2323 - m.m12 * A1323 + m.m13 * A1223 ;
var B034134 = m.m10 * A3434 - m.m13 * A0434 + m.m14 * A0334 ;
var B024134 = m.m10 * A2434 - m.m12 * A0434 + m.m14 * A0234 ;
var B023134 = m.m10 * A2334 - m.m12 * A0334 + m.m13 * A0234 ;
var B034124 = m.m10 * A3424 - m.m13 * A0424 + m.m14 * A0324 ;
var B024124 = m.m10 * A2424 - m.m12 * A0424 + m.m14 * A0224 ;
var B023124 = m.m10 * A2324 - m.m12 * A0324 + m.m13 * A0224 ;
var B034123 = m.m10 * A3423 - m.m13 * A0423 + m.m14 * A0323 ;
var B024123 = m.m10 * A2423 - m.m12 * A0423 + m.m14 * A0223 ;
var B023123 = m.m10 * A2323 - m.m12 * A0323 + m.m13 * A0223 ;
var B014134 = m.m10 * A1434 - m.m11 * A0434 + m.m14 * A0134 ;
var B013134 = m.m10 * A1334 - m.m11 * A0334 + m.m13 * A0134 ;
var B014124 = m.m10 * A1424 - m.m11 * A0424 + m.m14 * A0124 ;
var B013124 = m.m10 * A1324 - m.m11 * A0324 + m.m13 * A0124 ;
var B014123 = m.m10 * A1423 - m.m11 * A0423 + m.m14 * A0123 ;
var B013123 = m.m10 * A1323 - m.m11 * A0323 + m.m13 * A0123 ;
var B012134 = m.m10 * A1234 - m.m11 * A0234 + m.m12 * A0134 ;
var B012124 = m.m10 * A1224 - m.m11 * A0224 + m.m12 * A0124 ;
var B012123 = m.m10 * A1223 - m.m11 * A0223 + m.m12 * A0123 ;
var det = m.m00 * ( m.m11 * B234234 - m.m12 * B134234 + m.m13 * B124234 - m.m14 * B123234 )
- m.m01 * ( m.m10 * B234234 - m.m12 * B034234 + m.m13 * B024234 - m.m14 * B023234 )
+ m.m02 * ( m.m10 * B134234 - m.m11 * B034234 + m.m13 * B014234 - m.m14 * B013234 )
- m.m03 * ( m.m10 * B124234 - m.m11 * B024234 + m.m12 * B014234 - m.m14 * B012234 )
+ m.m04 * ( m.m10 * B123234 - m.m11 * B023234 + m.m12 * B013234 - m.m13 * B012234 ) ;
det = 1 / det;
return new Matrix5x5() {
m00 = det * ( m.m11 * B234234 - m.m12 * B134234 + m.m13 * B124234 - m.m14 * B123234 ),
m01 = det * - ( m.m01 * B234234 - m.m02 * B134234 + m.m03 * B124234 - m.m04 * B123234 ),
m02 = det * ( m.m01 * B234134 - m.m02 * B134134 + m.m03 * B124134 - m.m04 * B123134 ),
m03 = det * - ( m.m01 * B234124 - m.m02 * B134124 + m.m03 * B124124 - m.m04 * B123124 ),
m04 = det * ( m.m01 * B234123 - m.m02 * B134123 + m.m03 * B124123 - m.m04 * B123123 ),
m10 = det * - ( m.m10 * B234234 - m.m12 * B034234 + m.m13 * B024234 - m.m14 * B023234 ),
m11 = det * ( m.m00 * B234234 - m.m02 * B034234 + m.m03 * B024234 - m.m04 * B023234 ),
m12 = det * - ( m.m00 * B234134 - m.m02 * B034134 + m.m03 * B024134 - m.m04 * B023134 ),
m13 = det * ( m.m00 * B234124 - m.m02 * B034124 + m.m03 * B024124 - m.m04 * B023124 ),
m14 = det * - ( m.m00 * B234123 - m.m02 * B034123 + m.m03 * B024123 - m.m04 * B023123 ),
m20 = det * ( m.m10 * B134234 - m.m11 * B034234 + m.m13 * B014234 - m.m14 * B013234 ),
m21 = det * - ( m.m00 * B134234 - m.m01 * B034234 + m.m03 * B014234 - m.m04 * B013234 ),
m22 = det * ( m.m00 * B134134 - m.m01 * B034134 + m.m03 * B014134 - m.m04 * B013134 ),
m23 = det * - ( m.m00 * B134124 - m.m01 * B034124 + m.m03 * B014124 - m.m04 * B013124 ),
m24 = det * ( m.m00 * B134123 - m.m01 * B034123 + m.m03 * B014123 - m.m04 * B013123 ),
m30 = det * - ( m.m10 * B124234 - m.m11 * B024234 + m.m12 * B014234 - m.m14 * B012234 ),
m31 = det * ( m.m00 * B124234 - m.m01 * B024234 + m.m02 * B014234 - m.m04 * B012234 ),
m32 = det * - ( m.m00 * B124134 - m.m01 * B024134 + m.m02 * B014134 - m.m04 * B012134 ),
m33 = det * ( m.m00 * B124124 - m.m01 * B024124 + m.m02 * B014124 - m.m04 * B012124 ),
m34 = det * - ( m.m00 * B124123 - m.m01 * B024123 + m.m02 * B014123 - m.m04 * B012123 ),
m40 = det * ( m.m10 * B123234 - m.m11 * B023234 + m.m12 * B013234 - m.m13 * B012234 ),
m41 = det * - ( m.m00 * B123234 - m.m01 * B023234 + m.m02 * B013234 - m.m03 * B012234 ),
m42 = det * ( m.m00 * B123134 - m.m01 * B023134 + m.m02 * B013134 - m.m03 * B012134 ),
m43 = det * - ( m.m00 * B123124 - m.m01 * B023124 + m.m02 * B013124 - m.m03 * B012124 ),
m44 = det * ( m.m00 * B123123 - m.m01 * B023123 + m.m02 * B013123 - m.m03 * B012123 ),
};