Skip to content

result discrepancy of mkl_fft.irfftn integer data types and float data types #116

Closed
@vtavana

Description

@vtavana

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(a, s=None, axes=None)
r2 = mkl_fft.irfftn(a_int, s=None, axes=None)

assert_allclose(r1, r2, atol=1e-6)
# 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,...

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions