dot-fcnnls: Internal Routine for Fast Combinatorial Nonnegative...

.fcnnlsR Documentation

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)



the coefficient matrix


the target matrix to be approximated by X K.


logical that indicates if log messages should be shown.


By default (pseudo=FALSE) the algorithm uses Gaussian elimination to solve the successive internal linear problems, using the solve function. If pseudo=TRUE the algorithm uses Moore-Penrose generalized pseudoinverse from the corpcor package instead of solve.


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:


the fitted coefficient matrix.


the set of passive constraints, as a logical matrix of the same size as K that indicates which element is positive.


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:>, <URL:>.

NMF documentation built on March 30, 2022, 1:05 a.m.