if (elements.Length != (row * column))\r
{\r
throw new ArgumentException(\r
- "The Length of 'elements' is inconsistent with 'row' and 'column'");\r
+ "The length of 'elements' is inconsistent with 'row' and 'column'");\r
}\r
int i = 0;\r
for (int r = 0; r < row; ++r)\r
T zero = Operator<T>.Zero;\r
T[][] inv = new T[row][];\r
T[][] rows = new T[row][];\r
- if (!new T().Equals(zero))\r
+\r
+ for (int r = 0; r < row; ++r)\r
{\r
- for (int r = 0; r < row; ++r)\r
+ T[] vector = new T[col];\r
+ if (!new T().Equals(zero))\r
{\r
- T[] vector = new T[col];\r
for (int c = 0; c < col; ++c)\r
{\r
vector[c] = zero;\r
}\r
- vector[r] = one;\r
- inv[r] = vector;\r
- rows[r] = (T[])this[r];\r
- }\r
- }\r
- else\r
- {\r
- for (int r = 0; r < row; ++r)\r
- {\r
- T[] vector = new T[col];\r
- vector[r] = one;\r
- inv[r] = vector;\r
- rows[r] = (T[])this[r];\r
}\r
+ vector[r] = one;\r
+ inv[r] = vector;\r
+ rows[r] = (T[])this[r].Clone();\r
}\r
\r
+\r
for (int i = 0; i < row; ++i)\r
{\r
int pivotIndex = i;\r