//private static void TestKMeans()
        //{
        //    SharpPhysicsEngine.K_Means.KMeans engine = new SharpPhysicsEngine.K_Means.KMeans();

        //    //var points = new Vector3[] {
        //    //    new Vector3(1.0,1.0,0.0),
        //    //    new Vector3(1.5,2.0,0.0),
        //    //    new Vector3(3.0,4.0,0.0),
        //    //    new Vector3(5.0,7.0,0.0),
        //    //    new Vector3(3.5,5.0,0.0),
        //    //    new Vector3(4.5,5.0,0.0),
        //    //    new Vector3(3.5,4.5,0.0),
        //    //};

        //    var points = new Vector3[] {
        //        new Vector3(5.0,5.0,0.0),
        //        new Vector3(9,8.0,0.0),
        //        new Vector3(13.0,7.0,0.0),
        //        new Vector3(5.0,12.0,0.0),
        //        new Vector3(10,16.0,0.0),
        //        new Vector3(15,11.0,0.0),
        //        new Vector3(34,22,0.0),
        //        new Vector3(39,21,0.0),
        //        new Vector3(31,27,0.0),
        //        new Vector3(36,26,0.0),
        //        new Vector3(42,27,0.0),
        //        new Vector3(32,30,0.0),
        //        new Vector3(37,30,0.0),
        //        new Vector3(16,30,0.0),
        //        new Vector3(17,28,0.0),
        //        new Vector3(15,31,0.0),
        //        new Vector3(18,32,0.0),
        //        new Vector3(14,25,0.0),
        //    };

        //    var output = engine.Execute(points, 3);

        //}

        private static void Test()
        {
            Stopwatch stopwatch = new Stopwatch();

            int nvalue = 38000000;

            Random rnd = new Random();

            SharpEngineMathUtility.Vector3d[] testVector1 = new SharpEngineMathUtility.Vector3d[nvalue];

            for (int i = 0; i < nvalue; i++)
            {
                testVector1[i] = new SharpEngineMathUtility.Vector3d(rnd.NextDouble(), rnd.NextDouble(), rnd.NextDouble());
            }

            stopwatch.Reset();
            stopwatch.Start();

            double test1 = 0.0;

            for (int i = 0; i < nvalue; i++)
            {
                test1 = SharpEngineMathUtility.Vector3d.Dot(testVector1[i], testVector1[i]);
            }

            stopwatch.Stop();
            Console.WriteLine("Engine Elapsed={0}", stopwatch.ElapsedMilliseconds);

            //stopwatch.Reset();
            //stopwatch.Start();

            //for (int i = 0; i < nvalue; i++)
            //    test1 = SharpEngineMathUtility.Vector3.SimdDot(testVector1[i], testVector1[i]);

            //stopwatch.Stop();
            //Console.WriteLine("Engine Elapsed={0}", stopwatch.ElapsedMilliseconds);

            Console.ReadLine();
        }