I am actually trying to rewrite some nnls routine in c# using as much as lapack routines so it can be as fast as possible. I tried to implement nnls from "SOLVING LEAST SQUARES PROBLEMS" by Charles L. Lawson and Richard J. Hanson, as described on page 161 but solution converges very slowly to a non optimal solution.
As the authors say, there may be some round-off errors leading to mistakes in the algorithm. So I tired to implement the proposals they give to get rid off these errors, but the algorithm doesn't converge any better.
I found in some places their algorithm in fortran ( for example : http://hesperia.gsfc.nasa.gov/~schmahl/nnls/nnls.f90) but I am not a fortran expert ! Plus the fact they introduce sub routines such as house-holder decomposition but I want to use lapack routines instead.
So, have you heard about nnls algorithm using explicitly lapack routines (algorithm coded in c# would be great, but here I am dreaming!)
If anyone has a clue so that I can go further in my project, that would be very kind of you !
Best regards, Eric