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; } }