Repository: tensorflow
Issue: tf.raw_ops.ApproximateEqual/Erfinv fail support a few data types, inconsistent with the documentation
Labels: awaiting review,type:bug,comp:ops,TF 2.15

### Issue type

Bug

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

Yes

### Source

source

### TensorFlow version

2.15.0

### Custom code

Yes

### OS platform and distribution

_No response_

### Mobile device

_No response_

### Python version

_No response_

### Bazel version

_No response_

### GCC/compiler version

_No response_

### CUDA/cuDNN version

_No response_

### GPU model and memory

_No response_

### Current behavior?

Hi, I want to report two issues: both tf.raw_ops.ApproximateEqual and tf.raw_ops.Erfinv can only support float32, float64, and double and fail on other datatype with the error message `NotFoundError: Could not find device for node: {{node xxx}} = xxx[T=DT_XXX]`

These behaviors are inconsistent with related documentations of these two APIs:

https://www.tensorflow.org/api_docs/python/tf/raw_ops/ApproximateEqual
https://www.tensorflow.org/api_docs/python/tf/raw_ops/Erfinv


### Standalone code to reproduce the issue

```shell
import tensorflow as tf
import numpy as np
import warnings
warnings.filterwarnings("ignore")
dtype_list = [
    'bfloat16', 'bool', 'complex128', 'complex64',
    'double', 'float16', 'float32',
    'float64', 'half', 'int16', 'int32', 'int64', 'int8',
    'uint16', 'uint32', 'uint64', 'uint8'
]
for dtype in dtype_list:
    x = tf.constant(np.random.randint(-50, 50, ()), dtype=dtype)
    y = tf.constant(np.random.randint(-50, 50, ()), dtype=dtype)
    try:
        out = tf.raw_ops.ApproximateEqual(x=x,y=y)
        print(f"ApproximateEqual Success on dtype: {dtype}")
    except:
        print(f"ApproximateEqual Fail on dtype: {dtype}")

import tensorflow as tf
import numpy as np
import warnings
warnings.filterwarnings("ignore")
dtype_list = [
    'bfloat16', 'bool', 'complex128', 'complex64',
    'double', 'float16', 'float32',
    'float64', 'half', 'int16', 'int32', 'int64', 'int8',
    'uint16', 'uint32', 'uint64', 'uint8'
]
for dtype in dtype_list:
    x = tf.constant(np.random.randint(-50, 50, ()), dtype=dtype)
    try:
        out = tf.raw_ops.Erfinv(x=x)
        print(f"Erfinv Success on dtype: {dtype}")
    except:
        print(f"Erfinv Fail on dtype: {dtype}")
```


### Relevant log output

```shell
ApproximateEqual Fail on dtype: bfloat16
ApproximateEqual Fail on dtype: bool
ApproximateEqual Fail on dtype: complex128
ApproximateEqual Fail on dtype: complex64
ApproximateEqual Success on dtype: double
ApproximateEqual Fail on dtype: float16
ApproximateEqual Success on dtype: float32
ApproximateEqual Success on dtype: float64
ApproximateEqual Fail on dtype: half
ApproximateEqual Fail on dtype: int16
ApproximateEqual Fail on dtype: int32
ApproximateEqual Fail on dtype: int64
ApproximateEqual Fail on dtype: int8
ApproximateEqual Fail on dtype: uint16
ApproximateEqual Fail on dtype: uint32
ApproximateEqual Fail on dtype: uint64
ApproximateEqual Fail on dtype: uint8

Erfinv Fail on dtype: bfloat16
Erfinv Fail on dtype: bool
Erfinv Fail on dtype: complex128
Erfinv Fail on dtype: complex64
Erfinv Success on dtype: double
Erfinv Fail on dtype: float16
Erfinv Success on dtype: float32
Erfinv Success on dtype: float64
Erfinv Fail on dtype: half
Erfinv Fail on dtype: int16
Erfinv Fail on dtype: int32
Erfinv Fail on dtype: int64
Erfinv Fail on dtype: int8
Erfinv Fail on dtype: uint16
Erfinv Fail on dtype: uint32
Erfinv Fail on dtype: uint64
Erfinv Fail on dtype: uint8
```