BUG: Always return a real dtype from linalg.cond (gh-18304) (#29333) #29500
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Backport of #29333.
Addresses gh-18304.
The condition number of a matrix is the product of two norms, which are
always non-negative and real-valued, so the condition number itself
should be non-negative and real-valued. This commit returns the proper
real dtype from
linalg.cond
, and includes tests for the conditionnumber of a complex matrix in various norms.
The existing docstring for
linalg.cond
already states that the return value iseither a float or inf, so the function behavior is now consistent with the
docstring.
Addresses gh-18304.
The condition number of a matrix is the product of two norms, which are always non-negative and real-valued, so the condition number itself should be non-negative and real-valued. This commit returns the proper real dtype from
linalg.cond
, and includes tests for the condition number of a complex matrix in various norms.This commit addresses a reviewer comment on the blanket application of
abs(r)
. It specifically ensures the return type of complex-valued matrices will be the corresponding real type.