Averages/Simple moving average: Difference between revisions

Content added Content deleted
m (→‎{{header|Phix}}: removedf a space)
(add BQN)
Line 480: Line 480:
Number = 1 SMA3 = 2 SMA5 = 3
Number = 1 SMA3 = 2 SMA5 = 3
</pre>
</pre>

=={{header|BQN}}==

<code>SMA</code> takes moving average of a list, given the whole array.

<code>SMA2</code> returns a stateful function which can be run on individual numbers of a stream.

<pre>SMA ← {(+´÷≠)¨(1↓𝕨↑↑𝕩)∾<˘𝕨↕𝕩}

v ← (⊢∾⌽)1+↕5
•Show 5 SMA v

SMA2 ← {
𝕊 size:
nums ← ⟨⟩
sum ← 0
{
nums ∾↩ 𝕩
gb ← ((≠nums)>size)◶0‿{𝕊: a←⊑nums, nums↓˜↩1, a}@
sum +↩ 𝕩 - gb
sum ÷ ≠nums
}
}

fun ← SMA2 5
Fun¨ v</pre>
<pre>⟨ 1 1.5 2 2.5 3 3.8 4.2 4.2 3.8 3 ⟩
⟨ 1 1.5 2 2.5 3 3.8 4.2 4.2 3.8 3 ⟩</pre>

[https://mlochbaum.github.io/BQN/try.html#code=U01BIOKGkCB7KCvCtMO34omgKcKoKDHihpPwnZWo4oaR4oaR8J2VqSniiL48y5jwnZWo4oaV8J2VqX0KCnYg4oaQICjiiqLiiL7ijL0pMSvihpU1CuKAolNob3cgNSBTTUEgdgoKU01BMiDihpAgewogIPCdlYogc2l6ZToKICBudW1zIOKGkCDin6jin6kKICBzdW0g4oaQIDAKICB7CiAgICBudW1zIOKIvuKGqSDwnZWpCiAgICBnYiDihpAgKCjiiaBudW1zKT5zaXplKeKXtjDigL978J2VijogYeKGkOKKkW51bXMsIG51bXPihpPLnOKGqTEsIGF9QAogICAgc3VtICvihqkg8J2VqSAtIGdiCiAgICBzdW0gw7cg4omgbnVtcwogIH0KfQoKZnVuIOKGkCBTTUEyIDUKRnVuwqggdg== Try It!]


=={{header|Bracmat}}==
=={{header|Bracmat}}==