public OptimizableVector(IMTLDevice device, MPSVectorDescriptor descriptor, float initialValue) { VectorLength = (int)descriptor.Length; VectorByteSize = descriptor.GetByteSize(); VectorDescriptor = descriptor; Value = Vector(device, descriptor, initialValue); Momentum = Vector(device, descriptor, 0.0f); Velocity = Vector(device, descriptor, 0.0f); ValuePointer = Value.Data.Contents; }