We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
generalized_normal


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `ivy/functional/frontends/jax/random.py`
Content:
```
1 # local
2 import ivy
3 from ivy.func_wrapper import with_unsupported_dtypes
4 from ivy.functional.frontends.jax.func_wrapper import (
5     to_ivy_arrays_and_back,
6     handle_jax_dtype,
7 )
8 
9 
10 @to_ivy_arrays_and_back
11 def PRNGKey(seed):
12     return ivy.array([0, seed % 4294967295 - (seed // 4294967295)], dtype=ivy.int64)
13 
14 
15 @handle_jax_dtype
16 @to_ivy_arrays_and_back
17 def uniform(key, shape=(), dtype=None, minval=0.0, maxval=1.0):
18     return ivy.random_uniform(
19         low=minval, high=maxval, shape=shape, dtype=dtype, seed=ivy.to_scalar(key[1])
20     )
21 
22 
23 @handle_jax_dtype
24 @to_ivy_arrays_and_back
25 def normal(key, shape=(), dtype=None):
26     return ivy.random_normal(shape=shape, dtype=dtype, seed=ivy.to_scalar(key[1]))
27 
28 
29 def _get_seed(key):
30     key1, key2 = int(key[0]), int(key[1])
31     return ivy.to_scalar(int("".join(map(str, [key1, key2]))))
32 
33 
34 @handle_jax_dtype
35 @to_ivy_arrays_and_back
36 @with_unsupported_dtypes(
37     {
38         "0.3.14 and below": (
39             "float16",
40             "bfloat16",
41         )
42     },
43     "jax",
44 )
45 def beta(key, a, b, shape=None, dtype=None):
46     seed = _get_seed(key)
47     return ivy.beta(a, b, shape=shape, dtype=dtype, seed=seed)
48 
49 
50 @handle_jax_dtype
51 @to_ivy_arrays_and_back
52 @with_unsupported_dtypes(
53     {
54         "0.3.14 and below": (
55             "float16",
56             "bfloat16",
57         )
58     },
59     "jax",
60 )
61 def dirichlet(key, alpha, shape=None, dtype="float32"):
62     seed = _get_seed(key)
63     alpha = ivy.astype(alpha, dtype)
64     return ivy.dirichlet(alpha, size=shape, dtype=dtype, seed=seed)
65 
66 
67 @handle_jax_dtype
68 @to_ivy_arrays_and_back
69 @with_unsupported_dtypes(
70     {"0.3.14 and below": ("unsigned", "int8", "int16")},
71     "jax",
72 )
73 def poisson(key, lam, shape=None, dtype=None):
74     seed = _get_seed(key)
75     return ivy.poisson(lam, shape=shape, dtype=dtype, seed=seed)
76 
77 
78 @handle_jax_dtype
79 @to_ivy_arrays_and_back
80 @with_unsupported_dtypes(
81     {
82         "0.3.14 and below": (
83             "float16",
84             "bfloat16",
85         )
86     },
87     "jax",
88 )
89 def gamma(key, a, shape=None, dtype="float64"):
90     seed = _get_seed(key)
91     return ivy.gamma(a, 1.0, shape=shape, dtype=dtype, seed=seed)
92 
93 
94 @handle_jax_dtype
95 @to_ivy_arrays_and_back
96 @with_unsupported_dtypes(
97     {
98         "0.3.14 and below": (
99             "float16",
100             "bfloat16",
101         )
102     },
103     "jax",
104 )
105 def gumbel(key, shape=(), dtype="float64"):
106     seed = _get_seed(key)
107     uniform_x = ivy.random_uniform(
108         low=0.0,
109         high=1.0,
110         shape=shape,
111         dtype=dtype,
112         seed=seed,
113     )
114     return -ivy.log(-ivy.log(uniform_x))
115 
116 
117 @handle_jax_dtype
118 @to_ivy_arrays_and_back
119 @with_unsupported_dtypes(
120     {
121         "0.3.14 and below": (
122             "float16",
123             "bfloat16",
124         )
125     },
126     "jax",
127 )
128 def t(key, df, shape=(), dtype="float64"):
129     seed = _get_seed(key)
130     n = ivy.random_normal(shape=shape, dtype=dtype, seed=seed)
131     half_df = df / 2.0
132     g = ivy.gamma(half_df, 1.0, shape=shape, dtype=dtype, seed=seed)
133     return n * ivy.sqrt(ivy.divide(half_df, g))
134
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/ivy/functional/frontends/jax/random.py b/ivy/functional/frontends/jax/random.py
--- a/ivy/functional/frontends/jax/random.py
+++ b/ivy/functional/frontends/jax/random.py
@@ -125,6 +125,14 @@
     },
     "jax",
 )
+def generalized_normal(key, p, shape=(), dtype="float64"):
+    seed = _get_seed(key)
+    g = ivy.gamma(1 / p, 1.0, shape=shape, dtype=dtype, seed=seed)
+    b = ivy.bernoulli(ivy.array([0.5]), shape=shape, dtype=dtype, seed=seed)
+    r = 2 * b - 1
+    return r * g ** (1 / p)
+
+
 def t(key, df, shape=(), dtype="float64"):
     seed = _get_seed(key)
     n = ivy.random_normal(shape=shape, dtype=dtype, seed=seed)

{"golden_diff": "diff --git a/ivy/functional/frontends/jax/random.py b/ivy/functional/frontends/jax/random.py\n--- a/ivy/functional/frontends/jax/random.py\n+++ b/ivy/functional/frontends/jax/random.py\n@@ -125,6 +125,14 @@\n     },\n     \"jax\",\n )\n+def generalized_normal(key, p, shape=(), dtype=\"float64\"):\n+    seed = _get_seed(key)\n+    g = ivy.gamma(1 / p, 1.0, shape=shape, dtype=dtype, seed=seed)\n+    b = ivy.bernoulli(ivy.array([0.5]), shape=shape, dtype=dtype, seed=seed)\n+    r = 2 * b - 1\n+    return r * g ** (1 / p)\n+\n+\n def t(key, df, shape=(), dtype=\"float64\"):\n     seed = _get_seed(key)\n     n = ivy.random_normal(shape=shape, dtype=dtype, seed=seed)\n", "issue": "generalized_normal\n\n", "before_files": [{"content": "# local\nimport ivy\nfrom ivy.func_wrapper import with_unsupported_dtypes\nfrom ivy.functional.frontends.jax.func_wrapper import (\n    to_ivy_arrays_and_back,\n    handle_jax_dtype,\n)\n\n\n@to_ivy_arrays_and_back\ndef PRNGKey(seed):\n    return ivy.array([0, seed % 4294967295 - (seed // 4294967295)], dtype=ivy.int64)\n\n\n@handle_jax_dtype\n@to_ivy_arrays_and_back\ndef uniform(key, shape=(), dtype=None, minval=0.0, maxval=1.0):\n    return ivy.random_uniform(\n        low=minval, high=maxval, shape=shape, dtype=dtype, seed=ivy.to_scalar(key[1])\n    )\n\n\n@handle_jax_dtype\n@to_ivy_arrays_and_back\ndef normal(key, shape=(), dtype=None):\n    return ivy.random_normal(shape=shape, dtype=dtype, seed=ivy.to_scalar(key[1]))\n\n\ndef _get_seed(key):\n    key1, key2 = int(key[0]), int(key[1])\n    return ivy.to_scalar(int(\"\".join(map(str, [key1, key2]))))\n\n\n@handle_jax_dtype\n@to_ivy_arrays_and_back\n@with_unsupported_dtypes(\n    {\n        \"0.3.14 and below\": (\n            \"float16\",\n            \"bfloat16\",\n        )\n    },\n    \"jax\",\n)\ndef beta(key, a, b, shape=None, dtype=None):\n    seed = _get_seed(key)\n    return ivy.beta(a, b, shape=shape, dtype=dtype, seed=seed)\n\n\n@handle_jax_dtype\n@to_ivy_arrays_and_back\n@with_unsupported_dtypes(\n    {\n        \"0.3.14 and below\": (\n            \"float16\",\n            \"bfloat16\",\n        )\n    },\n    \"jax\",\n)\ndef dirichlet(key, alpha, shape=None, dtype=\"float32\"):\n    seed = _get_seed(key)\n    alpha = ivy.astype(alpha, dtype)\n    return ivy.dirichlet(alpha, size=shape, dtype=dtype, seed=seed)\n\n\n@handle_jax_dtype\n@to_ivy_arrays_and_back\n@with_unsupported_dtypes(\n    {\"0.3.14 and below\": (\"unsigned\", \"int8\", \"int16\")},\n    \"jax\",\n)\ndef poisson(key, lam, shape=None, dtype=None):\n    seed = _get_seed(key)\n    return ivy.poisson(lam, shape=shape, dtype=dtype, seed=seed)\n\n\n@handle_jax_dtype\n@to_ivy_arrays_and_back\n@with_unsupported_dtypes(\n    {\n        \"0.3.14 and below\": (\n            \"float16\",\n            \"bfloat16\",\n        )\n    },\n    \"jax\",\n)\ndef gamma(key, a, shape=None, dtype=\"float64\"):\n    seed = _get_seed(key)\n    return ivy.gamma(a, 1.0, shape=shape, dtype=dtype, seed=seed)\n\n\n@handle_jax_dtype\n@to_ivy_arrays_and_back\n@with_unsupported_dtypes(\n    {\n        \"0.3.14 and below\": (\n            \"float16\",\n            \"bfloat16\",\n        )\n    },\n    \"jax\",\n)\ndef gumbel(key, shape=(), dtype=\"float64\"):\n    seed = _get_seed(key)\n    uniform_x = ivy.random_uniform(\n        low=0.0,\n        high=1.0,\n        shape=shape,\n        dtype=dtype,\n        seed=seed,\n    )\n    return -ivy.log(-ivy.log(uniform_x))\n\n\n@handle_jax_dtype\n@to_ivy_arrays_and_back\n@with_unsupported_dtypes(\n    {\n        \"0.3.14 and below\": (\n            \"float16\",\n            \"bfloat16\",\n        )\n    },\n    \"jax\",\n)\ndef t(key, df, shape=(), dtype=\"float64\"):\n    seed = _get_seed(key)\n    n = ivy.random_normal(shape=shape, dtype=dtype, seed=seed)\n    half_df = df / 2.0\n    g = ivy.gamma(half_df, 1.0, shape=shape, dtype=dtype, seed=seed)\n    return n * ivy.sqrt(ivy.divide(half_df, g))\n", "path": "ivy/functional/frontends/jax/random.py"}], "after_files": [{"content": "# local\nimport ivy\nfrom ivy.func_wrapper import with_unsupported_dtypes\nfrom ivy.functional.frontends.jax.func_wrapper import (\n    to_ivy_arrays_and_back,\n    handle_jax_dtype,\n)\n\n\n@to_ivy_arrays_and_back\ndef PRNGKey(seed):\n    return ivy.array([0, seed % 4294967295 - (seed // 4294967295)], dtype=ivy.int64)\n\n\n@handle_jax_dtype\n@to_ivy_arrays_and_back\ndef uniform(key, shape=(), dtype=None, minval=0.0, maxval=1.0):\n    return ivy.random_uniform(\n        low=minval, high=maxval, shape=shape, dtype=dtype, seed=ivy.to_scalar(key[1])\n    )\n\n\n@handle_jax_dtype\n@to_ivy_arrays_and_back\ndef normal(key, shape=(), dtype=None):\n    return ivy.random_normal(shape=shape, dtype=dtype, seed=ivy.to_scalar(key[1]))\n\n\ndef _get_seed(key):\n    key1, key2 = int(key[0]), int(key[1])\n    return ivy.to_scalar(int(\"\".join(map(str, [key1, key2]))))\n\n\n@handle_jax_dtype\n@to_ivy_arrays_and_back\n@with_unsupported_dtypes(\n    {\n        \"0.3.14 and below\": (\n            \"float16\",\n            \"bfloat16\",\n        )\n    },\n    \"jax\",\n)\ndef beta(key, a, b, shape=None, dtype=None):\n    seed = _get_seed(key)\n    return ivy.beta(a, b, shape=shape, dtype=dtype, seed=seed)\n\n\n@handle_jax_dtype\n@to_ivy_arrays_and_back\n@with_unsupported_dtypes(\n    {\n        \"0.3.14 and below\": (\n            \"float16\",\n            \"bfloat16\",\n        )\n    },\n    \"jax\",\n)\ndef dirichlet(key, alpha, shape=None, dtype=\"float32\"):\n    seed = _get_seed(key)\n    alpha = ivy.astype(alpha, dtype)\n    return ivy.dirichlet(alpha, size=shape, dtype=dtype, seed=seed)\n\n\n@handle_jax_dtype\n@to_ivy_arrays_and_back\n@with_unsupported_dtypes(\n    {\"0.3.14 and below\": (\"unsigned\", \"int8\", \"int16\")},\n    \"jax\",\n)\ndef poisson(key, lam, shape=None, dtype=None):\n    seed = _get_seed(key)\n    return ivy.poisson(lam, shape=shape, dtype=dtype, seed=seed)\n\n\n@handle_jax_dtype\n@to_ivy_arrays_and_back\n@with_unsupported_dtypes(\n    {\n        \"0.3.14 and below\": (\n            \"float16\",\n            \"bfloat16\",\n        )\n    },\n    \"jax\",\n)\ndef gamma(key, a, shape=None, dtype=\"float64\"):\n    seed = _get_seed(key)\n    return ivy.gamma(a, 1.0, shape=shape, dtype=dtype, seed=seed)\n\n\n@handle_jax_dtype\n@to_ivy_arrays_and_back\n@with_unsupported_dtypes(\n    {\n        \"0.3.14 and below\": (\n            \"float16\",\n            \"bfloat16\",\n        )\n    },\n    \"jax\",\n)\ndef gumbel(key, shape=(), dtype=\"float64\"):\n    seed = _get_seed(key)\n    uniform_x = ivy.random_uniform(\n        low=0.0,\n        high=1.0,\n        shape=shape,\n        dtype=dtype,\n        seed=seed,\n    )\n    return -ivy.log(-ivy.log(uniform_x))\n\n\n@handle_jax_dtype\n@to_ivy_arrays_and_back\n@with_unsupported_dtypes(\n    {\n        \"0.3.14 and below\": (\n            \"float16\",\n            \"bfloat16\",\n        )\n    },\n    \"jax\",\n)\ndef generalized_normal(key, p, shape=(), dtype=\"float64\"):\n    seed = _get_seed(key)\n    g = ivy.gamma(1 / p, 1.0, shape=shape, dtype=dtype, seed=seed)\n    b = ivy.bernoulli(ivy.array([0.5]), shape=shape, dtype=dtype, seed=seed)\n    r = 2 * b - 1\n    return r * g ** (1 / p)\n\n\ndef t(key, df, shape=(), dtype=\"float64\"):\n    seed = _get_seed(key)\n    n = ivy.random_normal(shape=shape, dtype=dtype, seed=seed)\n    half_df = df / 2.0\n    g = ivy.gamma(half_df, 1.0, shape=shape, dtype=dtype, seed=seed)\n    return n * ivy.sqrt(ivy.divide(half_df, g))\n", "path": "ivy/functional/frontends/jax/random.py"}]}