Solve ndarray Ax=b via LU factorization with pivoting
Given an LUP factorization, this module solves for x in Ax = b. More precisely, it solves for x in LUx = Pb.
var lup =solve =ndarray =pool =var A =var b =var P =// In-place LUP factorization:// Note: repeated A tells it L and U are both stored in A// b now contains the answer x: [2,5,4,3]// A and P are unchanged and can be re-used to solve another problem
L: The n x n ndarray lower-triangular portion of the LUP factorization. The diagonal entries are implicitly assumed to be 1. Unchanged by the algorithm.
U: The n x n ndarray upper-triangular portion of the LUP factorization. Unchanged by the algorithm.
Arrayof length n containg the permutation
b: An ndarray of length n containing the righthand side of Ax = b
work: (optional) A vector used to permute the entries. If not provided, it is allocated and released into an
ndarray-scratchtyped vector pool.
true on successful completion;
If the first two arguments are identical then it's understood that both L and U are stored in a single matrix with the diagonal entries of L (all unity) omitted. Usage and behavior is otherwise identical.
(c) 2015 Ricky Reusser. MIT License