Internal Routine for Fast Combinatorial Nonnegative Least-Squares
This is the workhorse function for the higher-level
function fcnnls
, which implements the fast
nonnegative least-square algorithm for multiple
right-hand-sides from Van Benthem et al. (2004) to
solve the following problem:
min ||Y - X K||_F, s.t. K>=0
where Y and X are two real matrices of dimension n x p and n x r respectively, and |.|_F is the Frobenius norm.
The algorithm is very fast compared to other approaches, as it is optimised for handling multiple right-hand sides.
.fcnnls(x, y, verbose = FALSE, pseudo = FALSE, eps = 0)
x |
the coefficient matrix |
y |
the target matrix to be approximated by X K. |
verbose |
logical that indicates if log messages should be shown. |
pseudo |
By default ( |
eps |
threshold for considering entries as nonnegative. This is an experimental parameter, and it is recommended to leave it at 0. |
A list with the following elements:
coef |
the fitted coefficient matrix. |
Pset |
the set of passive constraints, as a logical
matrix of the same size as |
Van Benthem M and Keenan MR (2004). "Fast algorithm for the solution of large-scale non-negativity-constrained least squares problems." _Journal of Chemometrics_, *18*(10), pp. 441-450. ISSN 0886-9383, <URL: http://dx.doi.org/10.1002/cem.889>, <URL: http://doi.wiley.com/10.1002/cem.889>.
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.