#include #include #include double min(double, double); double dotvec2_sse(Point2, Point2); double dotvec2_sse4(Point2, Point2); double dotvec2_avx(Point2, Point2); double dotvec3_sse4(Point3, Point3); double dotvec3_avx(Point3, Point3); Point2 Pt2b(double, double, double); Point3 crossvec3_sse(Point3, Point3); double hsubpd(double, double); double fma(double, double, double); Point2 addpt2_sse(Point2, Point2); Point2 addpt2_avx(Point2, Point2); Point3 addpt3_avx(Point3, Point3); void addsub_sse(double*,double*); double round(double); void addsub(double *a, double *b) { b[0] = b[0]-a[0]; b[1] = b[1]+a[1]; } double fmin(double a, double b) { return a