#include #include "2dmath.h" double norm2(XY v) { return(hypot(v.x,v.y)); } XY add2(XY a, XY b) { return((XY){.x=a.x+b.x,.y=a.y+b.y}); } XY sub2(XY a, XY b) { return((XY){.x=a.x-b.x,.y=a.y-b.y}); } XY scale2(XY v, double f) { return((XY){.x=v.x*f,.y=v.y*f}); } XY rot90(XY v) { return((XY){.x=-v.y,.y=v.x}); }