コード例 #1
0
 private static void Add(float a, Span <float> dst)
 {
     if (Avx.IsSupported)
     {
         AvxIntrinsics.AddScalarU(a, dst);
     }
     else if (Sse.IsSupported)
     {
         SseIntrinsics.AddScalarU(a, dst);
     }
     else
     {
         for (int i = 0; i < dst.Length; i++)
         {
             dst[i] += a;
         }
     }
 }
コード例 #2
0
        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;
                }
            }
        }
コード例 #3
0
        public static void Add(float a, Span <float> dst)
        {
            Contracts.AssertNonEmpty(dst);

            if (Avx.IsSupported)
            {
                AvxIntrinsics.AddScalarU(a, dst);
            }
            else if (Sse.IsSupported)
            {
                SseIntrinsics.AddScalarU(a, dst);
            }
            else
            {
                for (int i = 0; i < dst.Length; i++)
                {
                    dst[i] += a;
                }
            }
        }
コード例 #4
0
 public void AddScalarU()
 => AvxIntrinsics.AddScalarU(DefaultScale, new Span <float>(dst, 0, Length));
コード例 #5
0
 public void ManagedAddScalarUPerf()
 {
     AvxIntrinsics.AddScalarU(DEFAULT_SCALE, new Span <float>(dst, 0, LEN));
 }
コード例 #6
0
 public void AddScalarU()
 => AvxIntrinsics.AddScalarU(DEFAULT_SCALE, new Span <float>(dst, 0, LEN));