Add the hamming window function (#3135)

This commit is contained in:
willem adnet
2026-02-17 09:56:05 +01:00
committed by GitHub
parent 3bbe87e6dc
commit 360639c2df
4 changed files with 60 additions and 0 deletions
+24
View File
@@ -1451,6 +1451,30 @@ void init_ops(nb::module_& m) {
appears only if the number of samples is odd).
)pbdoc");
m.def(
"hamming",
&mlx::core::hamming,
"M"_a,
nb::kw_only(),
"stream"_a = nb::none(),
nb::sig(
"def hamming(M: int, *, stream: Union[None, Stream, Device] = None) -> array"),
R"pbdoc(
Return the Hamming window.
The Hamming window is a taper formed by using a weighted cosine.
.. math::
w(n) = 0.54 - 0.46 \cos\left(\frac{2\pi n}{M-1}\right)
\qquad 0 \le n \le M-1
Args:
M (int): Number of points in the output window.
Returns:
array: The window, with the maximum value normalized to one (the value one
appears only if the number of samples is odd).
)pbdoc");
m.def(
"linspace",
[](Scalar start,
Scalar stop,