169 jassert (n == n && n ==
b.rows &&
b.isOneColumnVector());
172 const auto& A = *
this;
189 auto denominator = A (0, 0) * A (1, 1) - A (0, 1) * A (1, 0);
195 auto b0 =
x[0],
b1 =
x[1];
197 x[0] = factor * (A (1, 1) *
b0 - A (0, 1) *
b1);
198 x[1] = factor * (A (0, 0) *
b1 - A (1, 0) *
b0);
204 auto denominator = A (0, 0) * (A (1, 1) * A (2, 2) - A (1, 2) * A (2, 1))
205 + A (0, 1) * (A (1, 2) * A (2, 0) - A (1, 0) * A (2, 2))
206 + A (0, 2) * (A (1, 0) * A (2, 1) - A (1, 1) * A (2, 0));
214 x[0] = ( ( A (0, 1) * A (1, 2) - A (0, 2) * A (1, 1)) *
b2
215 + (-A (0, 1) * A (2, 2) + A (0, 2) * A (2, 1)) *
b1
216 + ( A (1, 1) * A (2, 2) - A (1, 2) * A (2, 1)) *
b0) * factor;
218 x[1] = -( ( A (0, 0) * A (1, 2) - A (0, 2) * A (1, 0)) *
b2
219 + (-A (0, 0) * A (2, 2) + A (0, 2) * A (2, 0)) *
b1
220 + ( A (1, 0) * A (2, 2) - A (1, 2) * A (2, 0)) *
b0) * factor;
222 x[2] = ( ( A (0, 0) * A (1, 1) - A (0, 1) * A (1, 0)) *
b2
223 + (-A (0, 0) * A (2, 1) + A (0, 1) * A (2, 0)) *
b1
224 + ( A (1, 0) * A (2, 1) - A (1, 1) * A (2, 0)) *
b0) * factor;
233 for (
size_t j = 0;
j < n; ++
j)
238 while (i < n &&
M (i,
j) == 0)
244 for (
size_t k = 0;
k < n; ++
k)
245 M (
j,
k) +=
M (i,
k);
250 auto t = 1 /
M (
j,
j);
252 for (
size_t k = 0;
k < n; ++
k)
257 for (
size_t k =
j + 1;
k < n; ++
k)
261 for (
size_t l = 0;
l < n; ++
l)
268 for (
int k =
static_cast<int> (n) - 2;
k >= 0; --
k)
269 for (
size_t i =
static_cast<size_t> (
k) + 1; i < n; ++i)
270 x[
k] -=
M (
static_cast<size_t> (
k), i) *
x[i];