internlm/SWE-Fixer-Train-110K huggingface dataset:
Repository: ivy-llc/ivy

Issue:
from_dlpack



Discussion:

Resolving patch:
diff --git a/ivy/functional/frontends/jax/numpy/creation.py b/ivy/functional/frontends/jax/numpy/creation.py
--- a/ivy/functional/frontends/jax/numpy/creation.py
+++ b/ivy/functional/frontends/jax/numpy/creation.py
@@ -112,6 +112,11 @@ def eye(N, M=None, k=0, dtype=None):
     return Array(ivy.eye(N, M, k=k, dtype=dtype))
 
 
+@to_ivy_arrays_and_back
+def from_dlpack(x):
+    return ivy.from_dlpack(x)
+
+
 @to_ivy_arrays_and_back
 def frombuffer(buffer, dtype="float", count=-1, offset=0):
     return ivy.frombuffer(buffer, dtype, count, offset)


Test patch:
diff --git a/ivy_tests/test_ivy/test_frontends/test_jax/test_numpy/test_creation.py b/ivy_tests/test_ivy/test_frontends/test_jax/test_numpy/test_creation.py
--- a/ivy_tests/test_ivy/test_frontends/test_jax/test_numpy/test_creation.py
+++ b/ivy_tests/test_ivy/test_frontends/test_jax/test_numpy/test_creation.py
@@ -772,6 +772,34 @@ def test_jax_ndim(
     )
 
 
+# from_dlpack
+@handle_frontend_test(
+    fn_tree="jax.numpy.from_dlpack",
+    dtype_and_x=helpers.dtype_and_values(
+        available_dtypes=helpers.get_dtypes("numeric")
+    ),
+)
+def test_jax_numpy_from_dlpack(
+    *,
+    dtype_and_x,
+    on_device,
+    fn_tree,
+    frontend,
+    test_flags,
+    backend_fw,
+):
+    input_dtype, x = dtype_and_x
+    helpers.test_frontend_function(
+        x=x[0],
+        backend_to_test=backend_fw,
+        input_dtypes=input_dtype,
+        frontend=frontend,
+        test_flags=test_flags,
+        fn_tree=fn_tree,
+        on_device=on_device,
+    )
+
+
 @handle_frontend_test(
     fn_tree="jax.numpy.frombuffer",
     dtype_buffer_count_offset=_get_dtype_buffer_count_offset(),
Repository: ivy-llc/ivy

Issue:
ifftn



Discussion:

Resolving patch:
diff --git a/ivy/functional/frontends/paddle/fft.py b/ivy/functional/frontends/paddle/fft.py
--- a/ivy/functional/frontends/paddle/fft.py
+++ b/ivy/functional/frontends/paddle/fft.py
@@ -78,6 +78,16 @@ def ifft(x, n=None, axis=-1.0, norm="backward", name=None):
     return ivy.astype(ret, x.dtype)
 
 
+@with_supported_dtypes(
+    {"2.5.1 and below": ("complex64", "complex128")},
+    "paddle",
+)
+@to_ivy_arrays_and_back
+def ifftn(x, s=None, axes=None, norm="backward", name=None):
+    ret = ivy.ifftn(ivy.astype(x, "complex128"), s=s, axes=axes, norm=norm)
+    return ivy.astype(ret, x.dtype)
+
+
 @with_supported_dtypes(
     {
         "2.5.1 and below": (


Test patch:
diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_fft.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_fft.py
--- a/ivy_tests/test_ivy/test_frontends/test_paddle/test_fft.py
+++ b/ivy_tests/test_ivy/test_frontends/test_paddle/test_fft.py
@@ -4,6 +4,9 @@
 # local
 import ivy_tests.test_ivy.helpers as helpers
 from ivy_tests.test_ivy.helpers import handle_frontend_test
+from ivy_tests.test_ivy.test_functional.test_experimental.test_nn.test_layers import (
+    _x_and_ifftn,
+)
 
 
 @handle_frontend_test(
@@ -147,6 +150,32 @@ def test_paddle_ifft(
     )
 
 
+# ifftn
+@handle_frontend_test(
+    fn_tree="paddle.fft.ifftn",
+    dtype_and_x=_x_and_ifftn(),
+)
+def test_paddle_ifftn(
+    dtype_and_x,
+    frontend,
+    backend_fw,
+    test_flags,
+    fn_tree,
+):
+    dtype, x, s, axes, norm = dtype_and_x
+    helpers.test_frontend_function(
+        input_dtypes=dtype,
+        frontend=frontend,
+        backend_to_test=backend_fw,
+        test_flags=test_flags,
+        fn_tree=fn_tree,
+        x=x,
+        s=s,
+        axes=axes,
+        norm=norm,
+    )
+
+
 @handle_frontend_test(
     fn_tree="paddle.fft.ifftshift",
     dtype_x_axis=helpers.dtype_values_axis(
Repository: ivy-llc/ivy

Issue:
put_along_axis



Discussion:

Resolving patch:
diff --git a/ivy/functional/frontends/paddle/manipulation.py b/ivy/functional/frontends/paddle/manipulation.py
--- a/ivy/functional/frontends/paddle/manipulation.py
+++ b/ivy/functional/frontends/paddle/manipulation.py
@@ -178,3 +178,9 @@ def unstack(x, axis=0, name=None):
 
 
 absolute = abs
+
+
+@to_ivy_arrays_and_back
+def put_along_axis(arr, indices, values, axis, reduce='assign'):
+    result = ivy.put_along_axis(arr, indices, values, axis)
+    return result


Test patch:
Repository: ivy-llc/ivy

Issue:
subtract_
Subtask of https://github.com/unifyai/ivy/issues/15039


Discussion:

Resolving patch:
diff --git a/ivy/functional/frontends/paddle/tensor/math.py b/ivy/functional/frontends/paddle/tensor/math.py
--- a/ivy/functional/frontends/paddle/tensor/math.py
+++ b/ivy/functional/frontends/paddle/tensor/math.py
@@ -48,3 +48,9 @@ def rsqrt_(x, name=None):
 @to_ivy_arrays_and_back
 def sqrt_(x, name=None):
     return ivy.inplace_update(x, sqrt(x))
+
+
+@with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle")
+@to_ivy_arrays_and_back
+def subtract_(x, y, name=None):
+    return ivy.inplace_update(x, subtract(x, y))


Test patch:
diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_math.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_math.py
--- a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_math.py
+++ b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_math.py
@@ -206,3 +206,38 @@ def test_paddle_sqrt_(
         on_device=on_device,
         x=x[0],
     )
+
+
+# subtract_
+@handle_frontend_test(
+    fn_tree="paddle.tensor.math.subtract_",
+    dtype_and_x=helpers.dtype_and_values(
+        available_dtypes=helpers.get_dtypes("valid"),
+        num_arrays=2,
+        allow_inf=False,
+        large_abs_safety_factor=2,
+        small_abs_safety_factor=2,
+        safety_factor_scale="log",
+        shared_dtype=True,
+    ),
+)
+def test_paddle_subtract_(
+    *,
+    dtype_and_x,
+    on_device,
+    fn_tree,
+    frontend,
+    test_flags,
+    backend_fw,
+):
+    input_dtype, x = dtype_and_x
+    helpers.test_frontend_function(
+        input_dtypes=input_dtype,
+        backend_to_test=backend_fw,
+        frontend=frontend,
+        fn_tree=fn_tree,
+        test_flags=test_flags,
+        on_device=on_device,
+        x=x[0],
+        y=x[1],
+    )
Repository: ivy-llc/ivy

Issue:
dtype



Discussion:

Resolving patch:
diff --git a/ivy/data_classes/array/data_type.py b/ivy/data_classes/array/data_type.py
--- a/ivy/data_classes/array/data_type.py
+++ b/ivy/data_classes/array/data_type.py
@@ -180,12 +180,34 @@ def dtype(
         self: ivy.Array, as_native: bool = False
     ) -> Union[ivy.Dtype, ivy.NativeDtype]:
         """
-        Examples
+        `ivy.Array` instance method variant of `ivy.dtype`. This method helps to get the
+        data type of the array.
+
+        Parameters
+        ----------
+        self
+            The input array.
+        as_native
+            Whether to return the native data type of the array.
+            If True, returns the native data type. Default is False.
+
+        Returns
         -------
+        ret
+            The data type of the array. If as_native is True,
+            returns the native data type.
+
+        Examples
+        --------
         >>> x = ivy.array([1, 2, 3])
         >>> y = x.dtype()
         >>> print(y)
         int32
+
+        >>> x= ivy.array([1.0, 2.0, 3.0], dtype=ivy.float64)
+        >>> y = x.dtype(as_native=True)
+        >>> print(y)
+        float64
         """
         return ivy.dtype(self._data, as_native=as_native)
 


Test patch:
Repository: ivy-llc/ivy

Issue:
prod



Discussion:

Resolving patch:
diff --git a/ivy/functional/frontends/paddle/tensor/tensor.py b/ivy/functional/frontends/paddle/tensor/tensor.py
--- a/ivy/functional/frontends/paddle/tensor/tensor.py
+++ b/ivy/functional/frontends/paddle/tensor/tensor.py
@@ -704,6 +704,14 @@ def min(self, axis=None, keepdim=False, name=None):
     def pow(self, y, name=None):
         return paddle_frontend.Tensor(ivy.pow(self._ivy_array, _to_ivy_array(y)))
 
+    @with_supported_dtypes(
+        {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle"
+    )
+    def prod(self, axis=None, keepdim=False, dtype=None, name=None):
+        return paddle_frontend.Tensor(
+            ivy.prod(self._ivy_array, axis=axis, keepdims=keepdim, dtype=dtype)
+        )
+
     @with_supported_dtypes({"2.5.1 and below": ("float32", "float64")}, "paddle")
     def atan(self, name=None):
         return ivy.atan(self._ivy_array)


Test patch:
diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_tensor.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_tensor.py
--- a/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_tensor.py
+++ b/ivy_tests/test_ivy/test_frontends/test_paddle/test_tensor/test_tensor.py
@@ -2723,6 +2723,51 @@ def test_paddle_tensor_pow(
     )
 
 
+# prod
+@handle_frontend_method(
+    class_tree=CLASS_TREE,
+    init_tree="paddle.to_tensor",
+    method_name="prod",
+    dtype_x_axis=helpers.dtype_values_axis(
+        available_dtypes=helpers.get_dtypes("valid"),
+        min_num_dims=1,
+        min_value=-5,
+        max_value=5,
+        valid_axis=True,
+        force_int_axis=True,
+        allow_inf=False,
+    ),
+    keep_dims=st.booleans(),
+)
+def test_paddle_tensor_prod(
+    dtype_x_axis,
+    keep_dims,
+    frontend_method_data,
+    init_flags,
+    method_flags,
+    frontend,
+    on_device,
+    backend_fw,
+):
+    input_dtype, x, axis = dtype_x_axis
+    helpers.test_frontend_method(
+        init_input_dtypes=input_dtype,
+        backend_to_test=backend_fw,
+        init_all_as_kwargs_np={"data": x[0]},
+        method_input_dtypes=input_dtype,
+        method_all_as_kwargs_np={
+            "axis": axis,
+            "keepdim": keep_dims,
+            "dtype": x[0].dtype,
+        },
+        frontend_method_data=frontend_method_data,
+        init_flags=init_flags,
+        method_flags=method_flags,
+        frontend=frontend,
+        on_device=on_device,
+    )
+
+
 # rad2deg
 @handle_frontend_method(
     class_tree=CLASS_TREE,
Repository: ivy-llc/ivy

Issue:
mod



Discussion:

Resolving patch:
diff --git a/ivy/functional/frontends/tensorflow/math.py b/ivy/functional/frontends/tensorflow/math.py
--- a/ivy/functional/frontends/tensorflow/math.py
+++ b/ivy/functional/frontends/tensorflow/math.py
@@ -446,6 +446,13 @@ def minimum(x, y, name=None):
     return ivy.minimum(x, y)
 
 
+@to_ivy_arrays_and_back
+@with_unsupported_dtypes({"2.5.1 and below": ("bfloat16",)}, "paddle")
+def mod(x, y, name=None):
+    x, y = check_tensorflow_casting(x, y)
+    return ivy.remainder(x, y)
+
+
 @to_ivy_arrays_and_back
 def multiply(x, y, name=None):
     x, y = check_tensorflow_casting(x, y)


Test patch:
diff --git a/ivy_tests/test_ivy/test_frontends/test_tensorflow/test_math.py b/ivy_tests/test_ivy/test_frontends/test_tensorflow/test_math.py
--- a/ivy_tests/test_ivy/test_frontends/test_tensorflow/test_math.py
+++ b/ivy_tests/test_ivy/test_frontends/test_tensorflow/test_math.py
@@ -1791,6 +1791,40 @@ def test_tensorflow_minimum(
     )
 
 
+# mod
+@handle_frontend_test(
+    fn_tree="tensorflow.math.mod",
+    dtype_and_x=helpers.dtype_and_values(
+        available_dtypes=helpers.get_dtypes("numeric"),
+        num_arrays=2,
+        shared_dtype=True,
+    ),
+    test_with_out=st.just(False),
+)
+def test_tensorflow_mod(
+    *,
+    dtype_and_x,
+    frontend,
+    test_flags,
+    fn_tree,
+    backend_fw,
+    on_device,
+):
+    input_dtype, x = dtype_and_x
+    assume(not np.any(np.isclose(x[0], 0)))
+    assume(not np.any(np.isclose(x[1], 0)))
+    helpers.test_frontend_function(
+        input_dtypes=input_dtype,
+        frontend=frontend,
+        backend_to_test=backend_fw,
+        test_flags=test_flags,
+        fn_tree=fn_tree,
+        on_device=on_device,
+        x=x[0],
+        y=x[1],
+    )
+
+
 # multiply
 @handle_frontend_test(
     fn_tree="tensorflow.math.multiply",
Repository: ivy-llc/ivy

Issue:
index_sample



Discussion:

Resolving patch:
diff --git a/ivy/functional/frontends/paddle/search.py b/ivy/functional/frontends/paddle/search.py
--- a/ivy/functional/frontends/paddle/search.py
+++ b/ivy/functional/frontends/paddle/search.py
@@ -33,6 +33,15 @@ def argsort(x, /, *, axis=-1, descending=False, name=None):
     return ivy.argsort(x, axis=axis, descending=descending)
 
 
+@with_supported_dtypes(
+    {"2.5.1 and below": ("int32", "int64", "float32", "float64")},
+    "paddle",
+)
+@to_ivy_arrays_and_back
+def index_sample(x, index):
+    return x[ivy.arange(x.shape[0])[:, None], index]
+
+
 @with_supported_dtypes(
     {"2.5.1 and below": ("float32", "float64", "int32", "int64")},
     "paddle",


Test patch:
diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_search.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_search.py
--- a/ivy_tests/test_ivy/test_frontends/test_paddle/test_search.py
+++ b/ivy_tests/test_ivy/test_frontends/test_paddle/test_search.py
@@ -148,6 +148,37 @@ def test_paddle_argsort(
     )
 
 
+@handle_frontend_test(
+    fn_tree="paddle.index_sample",
+    array_indices_axis=helpers.array_indices_axis(
+        array_dtypes=helpers.get_dtypes("valid"),
+        indices_dtypes=helpers.get_dtypes("integer"),
+        min_num_dims=2,
+        max_num_dims=2,
+        disable_random_axis=True,
+    ),
+)
+def test_paddle_index_sample(
+    *,
+    array_indices_axis,
+    frontend,
+    test_flags,
+    fn_tree,
+    backend_fw,
+):
+    dtype, x, index = array_indices_axis
+    if index.ndim == 2 and index.shape[0] == x.shape[0]:
+        helpers.test_frontend_function(
+            input_dtypes=dtype,
+            backend_to_test=backend_fw,
+            frontend=frontend,
+            test_flags=test_flags,
+            fn_tree=fn_tree,
+            x=x,
+            index=index,
+        )
+
+
 @handle_frontend_test(
     fn_tree="paddle.masked_select",
     dtype_input_mask=_dtypes_input_mask(),
Repository: ivy-llc/ivy

Issue:
broadcast_shape



Discussion:

Resolving patch:
diff --git a/ivy/functional/frontends/paddle/math.py b/ivy/functional/frontends/paddle/math.py
--- a/ivy/functional/frontends/paddle/math.py
+++ b/ivy/functional/frontends/paddle/math.py
@@ -128,6 +128,12 @@ def atanh(x, name=None):
     return ivy.atanh(x)
 
 
+@with_supported_dtypes({"2.5.1 and below": ("int32", "int64")}, "paddle")
+@to_ivy_arrays_and_back
+def broadcast_shape(x_shape, y_shape):
+    return ivy.broadcast_shapes(x_shape, y_shape)
+
+
 @with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle")
 @to_ivy_arrays_and_back
 def ceil(x, name=None):
diff --git a/ivy/functional/frontends/torch/comparison_ops.py b/ivy/functional/frontends/torch/comparison_ops.py
--- a/ivy/functional/frontends/torch/comparison_ops.py
+++ b/ivy/functional/frontends/torch/comparison_ops.py
@@ -292,7 +292,7 @@ def topk(input, k, dim=None, largest=True, sorted=True, *, out=None):
 
 
 gt = greater
+ne = not_equal
 ge = greater_equal
 le = less_equal
 lt = less
-ne = not_equal


Test patch:
diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_math.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_math.py
--- a/ivy_tests/test_ivy/test_frontends/test_paddle/test_math.py
+++ b/ivy_tests/test_ivy/test_frontends/test_paddle/test_math.py
@@ -1,5 +1,6 @@
 # global
 from hypothesis import strategies as st
+import hypothesis.extra.numpy as nph
 
 # local
 import ivy_tests.test_ivy.helpers as helpers
@@ -536,6 +537,34 @@ def test_paddle_atanh(
     )
 
 
+# broadcast_shape
+@handle_frontend_test(
+    fn_tree="paddle.broadcast_shape",
+    input_shapes_x=nph.mutually_broadcastable_shapes(
+        num_shapes=2, min_dims=1, max_dims=5, min_side=1, max_side=5
+    ),
+)
+def test_paddle_broadcast_shape(
+    *,
+    input_shapes_x,
+    on_device,
+    fn_tree,
+    frontend,
+    backend_fw,
+    test_flags,
+):
+    helpers.test_frontend_function(
+        input_dtypes=["int32", "int64"],
+        frontend=frontend,
+        backend_to_test=backend_fw,
+        test_flags=test_flags,
+        fn_tree=fn_tree,
+        on_device=on_device,
+        x_shape=input_shapes_x[0][0],
+        y_shape=input_shapes_x[0][1],
+    )
+
+
 # ceil
 @handle_frontend_test(
     fn_tree="paddle.ceil",
Repository: ivy-llc/ivy

Issue:
Fix stat.test_paddle_nanmedian
|   |   |
|---|---|
|numpy|<a href="https://github.com/unifyai/ivy/actions/runs/6230808265/job/16911378107"><img src=https://img.shields.io/badge/-failure-red></a>
|jax|<a href="https://github.com/unifyai/ivy/actions/runs/6230808265/job/16911378107"><img src=https://img.shields.io/badge/-failure-red></a>
|tensorflow|<a href="https://github.com/unifyai/ivy/actions/runs/6230808265/job/16911378107"><img src=https://img.shields.io/badge/-failure-red></a>
|torch|<a href="https://github.com/unifyai/ivy/actions/runs/6230808265/job/16911378107"><img src=https://img.shields.io/badge/-failure-red></a>
|paddle|<a href="https://github.com/unifyai/ivy/actions/runs/6230808265/job/16911378107"><img src=https://img.shields.io/badge/-failure-red></a>



Discussion:

Resolving patch:
diff --git a/ivy/functional/frontends/paddle/stat.py b/ivy/functional/frontends/paddle/stat.py
--- a/ivy/functional/frontends/paddle/stat.py
+++ b/ivy/functional/frontends/paddle/stat.py
@@ -28,17 +28,12 @@ def median(x, axis=None, keepdim=False, name=None):
 
 
 @with_supported_dtypes(
-    {"2.5.0 and below": ("float16", "float32", "float64", "uint16")},
+    {"2.5.0 and below": ("float16", "float32", "float64", "int32", "int64")},
     "paddle",
 )
 @to_ivy_arrays_and_back
 def nanmedian(x, axis=None, keepdim=True, name=None):
-    x = (
-        ivy.astype(x, ivy.float64)
-        if ivy.dtype(x) == "float64"
-        else ivy.astype(x, ivy.float32)
-    )
-    return ivy.median(x, axis=axis, keepdims=keepdim)
+    return ivy.nanmedian(x, axis=axis, keepdims=keepdim)
 
 
 @with_unsupported_dtypes({"2.5.1 and below": ("complex", "int8")}, "paddle")


Test patch:
Repository: ivy-llc/ivy

Issue:
cumsum



Discussion:

Resolving patch:
diff --git a/ivy/functional/frontends/paddle/math.py b/ivy/functional/frontends/paddle/math.py
--- a/ivy/functional/frontends/paddle/math.py
+++ b/ivy/functional/frontends/paddle/math.py
@@ -152,6 +152,14 @@ def cumprod(x, dim=None, dtype=None, name=None):
     return ivy.cumprod(x, axis=dim, dtype=dtype)
 
 
+@with_supported_dtypes(
+    {"2.5.1 and below": ("float32", "float64", "int32", "int64")}, "paddle"
+)
+@to_ivy_arrays_and_back
+def cumsum(x, axis=None, dtype=None, name=None):
+    return ivy.cumsum(x, axis=axis, dtype=dtype)
+
+
 @with_unsupported_dtypes({"2.5.1 and below": ("float16", "bfloat16")}, "paddle")
 @to_ivy_arrays_and_back
 def deg2rad(x, name=None):


Test patch:
diff --git a/ivy_tests/test_ivy/test_frontends/test_paddle/test_math.py b/ivy_tests/test_ivy/test_frontends/test_paddle/test_math.py
--- a/ivy_tests/test_ivy/test_frontends/test_paddle/test_math.py
+++ b/ivy_tests/test_ivy/test_frontends/test_paddle/test_math.py
@@ -620,6 +620,41 @@ def test_paddle_cumprod(
     )
 
 
+@handle_frontend_test(
+    fn_tree="paddle.cumsum",
+    dtype_and_x=helpers.dtype_values_axis(
+        available_dtypes=helpers.get_dtypes("valid"),
+        valid_axis=True,
+        force_int_axis=True,
+        min_num_dims=1,
+        min_value=-5,
+        max_value=5,
+    ),
+)
+def test_paddle_cumsum(
+    *,
+    dtype_and_x,
+    on_device,
+    fn_tree,
+    frontend,
+    backend_fw,
+    test_flags,
+):
+    input_dtype, x, axis = dtype_and_x
+    helpers.test_frontend_function(
+        input_dtypes=input_dtype,
+        frontend=frontend,
+        backend_to_test=backend_fw,
+        test_flags=test_flags,
+        fn_tree=fn_tree,
+        on_device=on_device,
+        x=x[0],
+        axis=axis,
+        # rtol=1e-04,
+        # atol=1e-04,
+    )
+
+
 # deg2rad
 @handle_frontend_test(
     fn_tree="paddle.deg2rad",
Repository: ivy-llc/ivy

Issue:
 ifft2



Discussion:

Resolving patch:
diff --git a/ivy/functional/frontends/jax/numpy/fft.py b/ivy/functional/frontends/jax/numpy/fft.py
--- a/ivy/functional/frontends/jax/numpy/fft.py
+++ b/ivy/functional/frontends/jax/numpy/fft.py
@@ -41,3 +41,10 @@ def ifft(a, n=None, axis=-1, norm=None):
     if norm is None:
         norm = "backward"
     return ivy.ifft(a, axis, norm=norm, n=n)
+
+
+@to_ivy_arrays_and_back
+def ifft2(a, s=None, axes=(-2, -1), norm=None):
+    if norm is None:
+        norm = "backward"
+    return ivy.array(ivy.ifft2(a, s=s, dim=axes, norm=norm), dtype=ivy.dtype(a))


Test patch:
diff --git a/ivy_tests/test_ivy/test_frontends/test_jax/test_numpy/test_fft.py b/ivy_tests/test_ivy/test_frontends/test_jax/test_numpy/test_fft.py
--- a/ivy_tests/test_ivy/test_frontends/test_jax/test_numpy/test_fft.py
+++ b/ivy_tests/test_ivy/test_frontends/test_jax/test_numpy/test_fft.py
@@ -163,3 +163,54 @@ def test_jax_numpy_ifft(
         atol=1e-02,
         rtol=1e-02,
     )
+
+
+# ifft2
+@handle_frontend_test(
+    fn_tree="jax.numpy.fft.ifft2",
+    dtype_values=helpers.dtype_and_values(
+        available_dtypes=helpers.get_dtypes("valid"),
+        num_arrays=1,
+        min_value=-1e5,
+        max_value=1e5,
+        min_num_dims=2,
+        max_num_dims=5,
+        min_dim_size=2,
+        max_dim_size=5,
+        allow_inf=False,
+        large_abs_safety_factor=2.5,
+        small_abs_safety_factor=2.5,
+        safety_factor_scale="log",
+    ),
+    axes=st.sampled_from([(0, 1), (-1, -2), (1, 0)]),
+    s=st.tuples(
+        st.integers(min_value=2, max_value=256), st.integers(min_value=2, max_value=256)
+    ),
+    norm=st.sampled_from(["backward", "ortho", "forward", None]),
+)
+def test_jax_numpy_ifft2(
+    dtype_values,
+    s,
+    axes,
+    norm,
+    frontend,
+    backend_fw,
+    test_flags,
+    fn_tree,
+    on_device,
+):
+    dtype, values = dtype_values
+    helpers.test_frontend_function(
+        input_dtypes=dtype,
+        frontend=frontend,
+        backend_to_test=backend_fw,
+        test_flags=test_flags,
+        fn_tree=fn_tree,
+        on_device=on_device,
+        a=values[0],
+        s=s,
+        axes=axes,
+        norm=norm,
+        atol=1e-02,
+        rtol=1e-02,
+    )