123456789101112131415161718192021222324252627282930313233343536373839 |
- /**
- * Some useful Maths methods.
- */
- export class PSMath {
- public static log(base: number, x: number): number {
- return Math.log(x) / Math.log(base);
- }
- public static log10(x: number): number {
- return PSMath.log(10, x);
- }
- public static meanSimple(values: number[]): number {
- let sum: number = 0;
- for (let i: number = 0; i < values.length; i++) {
- sum += values[i];
- }
- return sum / values.length;
- }
- public static meanWeighted(values: number[], weights: number[]): number {
- if (values.length !== weights.length || values.length === 0) {
- return 0;
- }
- let sumWeigtedValues: number = 0;
- let sumWeights: number = 0;
- for (let i: number = 0; i < values.length; i++) {
- const weight: number = weights[i];
- sumWeigtedValues += values[i] * weight;
- sumWeights += weight;
- }
- return <number>(sumWeigtedValues / sumWeights);
- }
- }
|