private static void Scale(float a, Span <float> dst) { if (Avx.IsSupported) { AvxIntrinsics.Scale(a, dst); } else if (Sse.IsSupported) { SseIntrinsics.Scale(a, dst); } else { for (int i = 0; i < dst.Length; i++) { dst[i] *= a; } } }
public static void Scale(float value, Span <float> destination) { Contracts.AssertNonEmpty(destination); if (Avx.IsSupported) { AvxIntrinsics.Scale(value, destination); } else if (Sse.IsSupported) { SseIntrinsics.Scale(value, destination); } else { for (int i = 0; i < destination.Length; i++) { destination[i] *= value; } } }
public static void Scale(float a, Span <float> dst) { Contracts.AssertNonEmpty(dst); if (Avx.IsSupported) { AvxIntrinsics.Scale(a, dst); } else if (Sse.IsSupported) { SseIntrinsics.Scale(a, dst); } else { for (int i = 0; i < dst.Length; i++) { dst[i] *= a; } } }
public void Scale() => AvxIntrinsics.Scale(DefaultScale, new Span <float>(dst, 0, Length));