-
Notifications
You must be signed in to change notification settings - Fork 5.6k
Open
Labels
Bug ReportReport bugs detected in Ivy.Report bugs detected in Ivy.
Description
Bug Explanation
> python -c "import ivy; ivy.set_backend('numpy'); print(ivy.lgamma(5)); print(ivy.lgamma(5.))"
ivy.array(3)
ivy.array(3.1780539)
> python -c "import ivy; ivy.set_backend('numpy'); print(ivy.vector_norm([1, 1])); print(ivy.vector_norm([1., 1.]))"
ivy.array(1)
ivy.array(1.4142135)
https://data-apis.org/array-api/latest/extensions/generated/array_api.linalg.vector_norm.html
According to array-api, there is no specified behavior when a non-floating point type is given for vector_norm
, but I would like to suggest, with all due respect, to stop this casting or to output an error, for the following reasons. (For lgamma
, not even defined in array-api.)
- There are very limited situations where such behavior is needed.
- It does not match the behavior of other functions in numpy;
np.sin(1)
returns0.8414709848078965
instead of0
. - This behavior can be easily achieved by
ivy.astype(ivy.lgamma(x), dtype=x.dtype)
- Package maintainers using ivy need to worry about the type of input, and casts need to be made.
Thanks for this great project anyway.
Steps to Reproduce Bug
python -c "import ivy; ivy.set_backend('numpy'); print(ivy.lgamma(5)); print(ivy.lgamma(5.))"
python -c "import ivy; ivy.set_backend('numpy'); print(ivy.vector_norm([1, 1])); print(ivy.vector_norm([1., 1.]))"
Environment
NixOS 24.05, Python 3.11
Ivy Version
1.0.0.1
Backend
- NumPy
- TensorFlow
- PyTorch
- JAX
Device
CPU
Metadata
Metadata
Assignees
Labels
Bug ReportReport bugs detected in Ivy.Report bugs detected in Ivy.