JSFiddle - React, Tailwind, and code Playground

by evgkch

JavaScript

function test(length, fn){
	const points = Array.from({ length }, (v, k) => random());
	const weights = Array.from({ length }, (v, k) => random());
	const center1 = fn(scalar(points, weights) / weights.reduce((a, b) => a + b));
  const center2 = scalar(points.map(fn), weights) / weights.reduce((a, b) => a + b);
  
  console.log(center1, center2);
}

function random(){
	return Math.random();
}

function scalar(v1, v2){
	let sum = 0;
	for (let i = 0; i < v1.length; i++)
  {
  	sum += v1[i] * v2[i];
  }
  return sum;
}

test(10000, (x) => ((x - 0.5) ** 4));