mkl_fft
mkl_fft copied to clipboard
result discrepancy of `mkl_fft.irfftn_numpy` integer data types and float data types
For the following case, when input arrays data type is float
, correct result is returned while for integer
data type, result is incorrect.
import numpy, mkl_fft
from numpy.testing import assert_allclose
a_int = numpy.array([[[5, 7, 6, 5],
[4, 6, 4, 8],
[9, 3, 7, 5]],
[[5, 9, 0, 0],
[0, 8, 7, 8],
[9, 7, 4, 7]]], dtype=numpy.int32)
a = numpy.array(a_int, dtype=numpy.float32)
r1 = mkl_fft.irfftn_numpy(a, s=None, axes=None)
r2 = mkl_fft.irfftn_numpy(a_int, s=None, axes=None)
assert_allclose(r1, r2)
# AssertionError:
# Not equal to tolerance rtol=1e-07, atol=0
# Mismatched elements: 34 / 36 (94.4%)
# Max absolute difference among violations: 0.58333357
# Max relative difference among violations: 2.66666679
# ACTUAL: array([[[ 5.583334, 0.305556, -0.083333, -0.694444, -0.083333,
# 0.305556],
# [-0.333333, 0.472222, -0.25 , -0.277778, -0.25 ,...
# DESIRED: array([[[ 5. , 0.333333, 0. , -0.666667, 0. ,
# 0.333333],
# [-0.166667, 0.166667, -0.166667, 0.166667, -0.166667,...