bppnnls: Block Principal Pivoted Non-Negative Least Squares
Description
Use the BPP algorithm to get the nonnegative least squares solution. Regular
NNLS problem is described as optimizing \(\min_{x\ge0}||CX - B||_F^2\)
where \(C\) and \(B\) are given and \(X\) is to be solved.
bppnnls takes \(C\) and \(B\) as input. bppnnls_prod takes
\(C^\mathsf{T}C\) and \(C^\mathsf{T}B\) as
input to directly go for the intermediate step of BPP algorithm. This can be
useful when the dimensionality of \(C\) and \(B\) is large while
pre-calculating \(C^\mathsf{T}C\) and \(C^\mathsf{T}B\) is cheap.
Usage
bppnnls(C, B, nCores = 2L)
bppnnls_prod(CtC, CtB, nCores = 2L)
Value
The calculated solution matrix in dense form.
Arguments
C
Input dense \(C\) matrix
B
Input \(B\) matrix of either dense or sparse form
nCores
The number of parallel tasks that will be spawned.
Default 2