//(Значимый тип) - float без квадратного корня public float PointDistanceShortFloat(PointStruct pointOne, PointStruct pointTwo) { float x = pointOne.X - pointTwo.X; float y = pointOne.Y - pointTwo.Y; return((x * x) + (y * y)); }
//(Значимый тип) - double с квадратный корнем public double PointDistanceShortDoubleWithSqrt(PointStruct pointOne, PointStruct pointTwo) { double xD = pointOne.Xd - pointTwo.Xd; double yD = pointOne.Yd - pointTwo.Yd; return(Math.Sqrt((xD * xD) + (yD * yD))); }
public void BenchmarkOfPointDistanceShortFloat() { for (int i = 0; i <= 1500; i++) { var pointOneStrFloat = new PointStruct() { X = rnd.Next(200), Y = rnd.Next(200) }; var pointTwoStrFloat = new PointStruct() { X = rnd.Next(345), Y = rnd.Next(345) }; PointDistanceShortFloat(pointOneStrFloat, pointTwoStrFloat); } }
public void BenchmarkOfPointDistanceShortDoubleWithSqrt() { for (int i = 0; i <= 1500; i++) { var pointOneStrDouble = new PointStruct() { Xd = rnd.Next(200), Yd = rnd.Next(200) }; var pointTwoStrDouble = new PointStruct() { Xd = rnd.Next(345), Yd = rnd.Next(345) }; PointDistanceShortDoubleWithSqrt(pointOneStrDouble, pointTwoStrDouble); } }