public void GlobalSetup()
        {
            floatSlots = Vector <float> .Count;
            intSlots   = Vector <int> .Count;
            floatPi    = (float)Math.PI;

            left             = new float[ITEMS];
            leftMemory       = new ReadOnlyMemory <float>(left);
            leftInt          = new int[ITEMS];
            leftMemoryInt    = new ReadOnlyMemory <int>(leftInt);
            right            = new float[ITEMS];
            rightMemory      = new ReadOnlyMemory <float>(right);
            rightInt         = new int[ITEMS];
            rightMemoryInt   = new ReadOnlyMemory <int>(rightInt);
            results          = new float[ITEMS];
            resultsInt       = new int[ITEMS];
            resultsMemory    = new Memory <float>(results);
            resultsMemoryInt = new Memory <int>(resultsInt);
            leftUnsafe       = new UnsafeMemoryFloat(ITEMS, Vector <byte> .Count, 0);
            rightUnsafe      = new UnsafeMemoryFloat(ITEMS, Vector <byte> .Count, 0);
            resultsUnsafe    = new UnsafeMemoryFloat(ITEMS, Vector <byte> .Count, 0);
            for (int i = 0; i < ITEMS; i++)
            {
                left[i]        = i;
                right[i]       = i + floatPi;
                leftInt[i]     = i;
                rightInt[i]    = i / 2;
                leftUnsafe[i]  = i;
                rightUnsafe[i] = i + floatPi;
            }
        }
 public void GlobalCleanup()
 {
     if (leftUnsafe != null)
     {
         leftUnsafe.Dispose();
         leftUnsafe = null;
     }
     if (rightUnsafe != null)
     {
         rightUnsafe.Dispose();
         rightUnsafe = null;
     }
     if (resultsUnsafe != null)
     {
         resultsUnsafe.Dispose();
         resultsUnsafe = null;
     }
 }