| 466 | |
| 467 | |
| 468 | void SolveTransFromLU (SliceMatrix<double> A, FlatArray<int> p, SliceMatrix<double,ColMajor> X) |
| 469 | { |
| 470 | TriangularSolve<LowerLeft> (Trans(A).Bare(), X); |
| 471 | TriangularSolve<UpperRight,Normalized> (Trans(A).Bare(), X); |
| 472 | |
| 473 | size_t n = X.Height(); |
| 474 | |
| 475 | VectorMem<100,double> hv(n); |
| 476 | for (size_t i = 0; i < X.Width(); i++) |
| 477 | { |
| 478 | auto coli = X.Col(i); |
| 479 | hv = coli; |
| 480 | for (size_t j = 0; j < n; j++) |
| 481 | coli(p[j]) = hv(j); |
| 482 | } |
| 483 | |
| 484 | } |
| 485 | |
| 486 | |
| 487 |