Skip to content

Instantly share code, notes, and snippets.

@JosePedroDias
Created February 23, 2022 11:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save JosePedroDias/8444e6f0a2049650517bb4806058d35e to your computer and use it in GitHub Desktop.
Save JosePedroDias/8444e6f0a2049650517bb4806058d35e to your computer and use it in GitHub Desktop.
misc.js
function clamp(v, m, M) {
return v < m ? m : v > M ? M : v;
}
function average(arr) {
return arr.reduce((prev, curr) => prev + curr, 0) / arr.length;
}
// triangle m0 x l of area 1 (linear degradation)
function averageWithDegradation(arr) {
const l = arr.length;
const m0 = 2 / l;
const avg = 0;
const i = 0;
for (let v of arr) {
const r = i / l;
const m = m0 * (1 - r);
avg += m * v;
}
return avg;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment