/// <summary> /// Adds a value to a destination. /// </summary> /// <param name="value">The value to add.</param> /// <param name="destination">The destination to add the value to.</param> public static void Add(float value, Span <float> destination) { Contracts.AssertNonEmpty(destination); if (Avx.IsSupported) { AvxIntrinsics.AddScalarU(value, destination); } else if (Sse.IsSupported) { SseIntrinsics.AddScalarU(value, destination); } else { for (int i = 0; i < destination.Length; i++) { destination[i] += value; } } }
public void ManagedAddScalarUPerf() { SseIntrinsics.AddScalarU(DEFAULT_SCALE, new Span <float>(dst, 0, LEN)); }
public void AddScalarU() => SseIntrinsics.AddScalarU(DefaultScale, new Span <float>(dst, 0, Length));
public void AddScalarU() => SseIntrinsics.AddScalarU(DEFAULT_SCALE, new Span <float>(dst, 0, LEN));