As reported by Lingfeng Cheng at Cornell, input data cannot have NaN values even if the corresponding values are masked with weights=0. Normally masked data (weights=0) are effectively ignored via line 247:
b = A.T.dot( w*b )
But if any of the data in b are NaN, this results in a NaN output, not a 0 output for that element even if w (=weights) is 0. This results in an error like:
ValueError: On entry to DGELSD parameter number 6 had an illegal value
At minimum, catch NaNs in the input and report as a meaningful error. Explore whether masked NaNs can be ignored without requiring rewriting or recopying the input array.
As reported by Lingfeng Cheng at Cornell, input data cannot have NaN values even if the corresponding values are masked with weights=0. Normally masked data (weights=0) are effectively ignored via line 247:
But if any of the data in
b
are NaN, this results in a NaN output, not a 0 output for that element even if w (=weights) is 0. This results in an error like:At minimum, catch NaNs in the input and report as a meaningful error. Explore whether masked NaNs can be ignored without requiring rewriting or recopying the input array.