Closed ghbrown closed 5 months ago
In many of the MATLAB routines, we don't check for errors like this because it decreases performance for very large tensors and thus other codes that don't include this check look like they are getting better performance. Just an FYI. I think it's okay if there's some onus on the user to check that their inputs are reasonable.
If the input to
cp_als()
contains NaNs they silently propagate into nearly every output variable.I consider this a bug, partially because the output contains no useful information, unlike calling
numpy.linalg.solve()
on an input containing NaNs. For what it's worth, I personally don't like this behavior from numpy, but the output ofsolve()
may contain very few NaNs depending on where they occur.