In DEFLATION mode the FastICA algorithm may run forever. This is because if the limit of failures is reached, the the Matlab code calls a returns, but the c++ code only breaks the current (inner) loop and since round is first decremented and then again incremented the outer loop gets stuck in the same round. A patch is attached that fixes the problem.
In addition, in order to inform the caller, the return type of the separate method was changed to bool and returns true if convergence was reached, and false otherwise.
(I posted the problem in the help forum, but nobody seems to read it. Therefore, I upload the bug without confirmation, to make it more visible to other users and package maintainers.)
Log in to post a comment.