Beispiel #1
0
        /// <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));
 }
Beispiel #3
0
 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));