tf.raw_ops.ApproximateEqual/Erfinv fail support a few data types, inconsistent with the documentation
@SuryanarayanaY I was able to replicate the issue reported here in TF [v2.15](https://colab.research.google.com/gist/sushreebarsa/e47de13ce3d7ab964df87812d20dbbf6/64256-2-15.ipynb) and [nightly](https://colab.research.google.com/gist/sushreebarsa/fc9c337ff30691104e65d46be9b7434c/64256-tf-nightly.ipynb). Thank you! Hi @drewshark ,

I can see the Op `ApproximateEqual` is registered for number types but kernel not built for same. Will propose a probable fix for same.

https://github.com/tensorflow/tensorflow/blob/dadeddbce13b7d422c73ed872e386c56dd41a478/tensorflow/core/ops/math_ops.cc#L786

 The Op `Erfinv` is registered for  `bfloat16, half, float32, float64` but fails with `half` and `bfloat16`. Other int and complex types not supported hence it will fail. 

For `Erfinv`  Op `half` and `bfloat16` needs to be added of not working. Thanks! I think the fix for `Erfinv` should be done at Eigen repo.
### 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
```
