canvasEnd = {
const height= 400
const context = DOM.context2d(width, height);
context.fillStyle = "black";
context.fillRect(0, 0, width, height);
const pts = generatePoints('2');
const pts2 = generatePoints('7');
const distances = tf.pow(tf.div(pDist(pts, pts2),0.01), 2);
console.log('distances:', distances)
const [P, f, g] = await Sinkhorn(distances, 0, 20)
context.fillStyle = "white";
const s = context.canvas.height*0.6
const dotSize = 3
pts.map(([x, y])=> {
context.beginPath();
context.arc(context.canvas.width/(2*window.devicePixelRatio) + x*s,
context.canvas.height/(2*window.devicePixelRatio) + y * s, dotSize, 0, 2 * Math.PI);
context.fill();
});
return context.canvas;
}