/** * * @param source * @param period * @param size * @returns */ export async function edecay( source: Array, period: number, size: number = source.length ) { const output: Array = [] const scale = 1.0 - 1.0 / period output.push(source[0]) for (let i = 1; i < size; ++i) { const d = output[output.length - 1] * scale output.push(source[i] > d ? source[i] : d) } return output }