Skip to content

Commit 57e26a8

Browse files
lucascolleyj-bowhay
andcommitted
ENH: add create_diagonal
Co-authored-by: Jake Bowhay <[email protected]>
1 parent b83ba61 commit 57e26a8

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

src/array_api_extra/_funcs.py

+8
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,14 @@ def cov(m: Array, /, *, xp: ModuleType) -> Array:
140140
return xp.squeeze(c, axis=axes)
141141

142142

143+
def create_diagonal(x: Array, /, *, offset: int = 0, xp: ModuleType) -> Array:
144+
n = x.shape[0] + abs(offset)
145+
diag = xp.zeros(n**2, dtype=x.dtype)
146+
i = offset if offset >= 0 else abs(offset) * n
147+
diag[i : min(n * (n - offset), diag.shape[0]) : n + 1] = x
148+
return xp.reshape(diag, (n, n))
149+
150+
143151
def _mean(
144152
x: Array,
145153
/,

0 commit comments

Comments
 (0)