linalg.svd - complex64 - NaN - bug
there are similar issues #8905 #26842 @sachinprasadhs I was able to replicate the issue reported [here](https://colab.research.google.com/gist/sushreebarsa/0782f8b41efbbf02e9b2a45c2b764fa5/61955.ipynb). Thank you! As per the comment from one of the linked issues, it looks like an issue from Eigen. 
@cantonios , Could you please take a look into this issue. Thanks! @yhao-z,
I tried to execute the mentioned code on the tf-nightly and observed that the output of executed code is intended and changed from the earlier output. Kindly find the gist of it [here](https://colab.research.google.com/gist/tilakrayal/963f9337ef41e6403219cf7bf045eae3/untitled1888.ipynb).
 
**Output:**
```python
False
[0.01783315 0.00682789 0.00398225 0.00252413 0.0014872  0.00082805
 0.00066117 0.00051815 0.00050564]
False
False
False
[0.01783314 0.00682789 0.00398224 0.00252413 0.0014872  0.00082805
 0.00066117 0.00051815 0.00050564]
False
False
False
```

Thank you! Yes, the error will not occur in the nightly version. Perhaps my previous expression in the '**Note**' was not clear enough; I would like to restate the declaration in the '**Note**' here.
- Under the Linux system, both version 2.9 and 2.13 will encounter errors, just as @sushreebarsa has reproduced.
- Under the Linux system, the nightly version will not experience NaN errors.
- Under the Windows system, version 2.9 will also not encounter NaN errors.
- Considering the inconsistencies observed across different versions and systems, I believe it might be a bug.

Therefore, it might be possible to inspect the differences between the nightly and 2.13 versions to pinpoint the bug, or alternatively, comparing the behavior of version 2.9 under Windows with that under Linux could also help in localization. > Yes, the error will not occur in the nightly version. Perhaps my previous expression in the '**Note**' was not clear enough; I would like to restate the declaration in the '**Note**' here.
> 
> * Under the Linux system, both version 2.9 and 2.13 will encounter errors, just as @sushreebarsa has reproduced.
> * Under the Linux system, the nightly version will not experience NaN errors.
> * Under the Windows system, version 2.9 will also not encounter NaN errors.
> * Considering the inconsistencies observed across different versions and systems, I believe it might be a bug.
> 
> Therefore, it might be possible to inspect the differences between the nightly and 2.13 versions to pinpoint the bug, or alternatively, comparing the behavior of version 2.9 under Windows with that under Linux could also help in localization.

We don't backport fixes unless they are high-priority security vulnerabilities.  So in this case the bug is now fixed in the latest version. Are you satisfied with the resolution of your issue?
<a href="https://docs.google.com/forms/d/e/1FAIpQLSfaP12TRhd9xSxjXZjcZFNXPGk4kc1-qMdv3gc6bEP90vY1ew/viewform?entry.85265664=Yes&entry.2137816233=https://github.com/tensorflow/tensorflow/issues/61955">Yes</a>
<a href="https://docs.google.com/forms/d/e/1FAIpQLSfaP12TRhd9xSxjXZjcZFNXPGk4kc1-qMdv3gc6bEP90vY1ew/viewform?entry.85265664=No&entry.2137816233=https://github.com/tensorflow/tensorflow/issues/61955">No</a>

### Issue type

Bug

### Have you reproduced the bug with TensorFlow Nightly?

Yes

### Source

source

### TensorFlow version

tf nightly, 2.13, 2.9 using docker container

### Custom code

Yes

### OS platform and distribution

Linux Ubuntu 20.04 with Docker

### Python version

3.9

### Current behavior?

For a special matrix, as I tested, a `tf.complex64` matrix without **NaN**, the `tf.linalg.svd` gives the singular values with **NaN**, and the singular vector `u` and `v` also have **NaN**. However, numpy does not give any NaN. The tiny code and its output have provided, and u can also download it from [my github repo](https://github.com/yhao-z/tensorflow-svd-NaN).

**Notes:**
- i test this code in docker container, which is created from the offical images released by tensorflow.
- this code is normal in nightly edition of Linux Docker and 2.9 of Windows.
- the code encounter error in 2.9 and 2.13 editions of Linux Docker.
- based on the conflict results for different platform and editions, i think this issue may be a bug.


### Standalone code to reproduce the issue

```shell
import tensorflow as tf
import numpy as np

M = np.load('NaN_matrix.npy')
print(tf.reduce_any(tf.math.is_nan(tf.abs(M))).numpy()) # False, no nan in M

# tensorflow svd
[s,u,v] = tf.linalg.svd(M)

print(s.numpy()[0:9]) # [nan 0.01783315 0.00682789 0.00398225 0.00252413 0.0014872 0.00082805 0.00066117 0.00051815]
print(tf.reduce_any(tf.math.is_nan(s)).numpy())         # True, nan in s
print(tf.reduce_any(tf.math.is_nan(tf.abs(u))).numpy()) # True, nan in u
print(tf.reduce_any(tf.math.is_nan(tf.abs(v))).numpy()) # True, nan in v

# numpy svd
[u,s,v] = np.linalg.svd(M)

print(s[0:9]) # [0.01783314 0.00682789 0.00398224 0.00252413 0.0014872 0.00082805 0.00066117 0.00051815 0.00050564]
print(np.isnan(s).any()) # False, no nan in s
print(np.isnan(u).any()) # False, no nan in u
print(np.isnan(v).any()) # False, no nan in v
```
