Line data Source code
1 : /** 2 : * INFO: assorted mathematical utility functions 3 : */ 4 1 : export function range(n: number): Array<number> { 5 4 : return Array.from(Array(n).keys()); 6 1 : } 7 : 8 1 : export function rep(s: Array<any>, v: any, k: number = 0) { 9 12 : if (typeof k === "undefined") k = 0; 10 12 : var n = s[k], ret = Array(n), i; 11 12 : if (k === s.length - 1) { 12 22 : for (i = n - 2; i >= 0; i -= 2) { 13 72 : ret[i + 1] = v; 14 72 : ret[i] = v; 15 22 : } 16 22 : if (i === -1) ret[0] = v; 17 22 : return ret; 18 12 : } 19 13 : for (i = n - 1; i >= 0; i--) ret[i] = rep(s, v, k + 1); 20 13 : return ret; 21 1 : } 22 : 23 : /** 24 : * Calculate the mean of an array 25 : * @param data Input data as an `Array` 26 : */ 27 1 : export function mean(data: Array<number>): number { 28 2 : var sum = 0.0; 29 2 : for (let i = 0; i < data.length; i++) { 30 10002 : sum += data[i]; 31 2 : } 32 2 : return sum / data.length; 33 1 : }