Beispiel #1
0
        public static void AddScale(float a, ReadOnlySpan <float> src, ReadOnlySpan <int> indices, Span <float> dst, int count)
        {
            Contracts.AssertNonEmpty(src);
            Contracts.Assert(0 < count && count <= src.Length);
            Contracts.AssertNonEmpty(indices);
            Contracts.Assert(count <= indices.Length);
            Contracts.AssertNonEmpty(dst);
            Contracts.Assert(count < dst.Length);

            unsafe
            {
                fixed(float *psrc = &MemoryMarshal.GetReference(src))
                fixed(int *pi     = &MemoryMarshal.GetReference(indices))
                fixed(float *pdst = &MemoryMarshal.GetReference(dst))
                Thunk.AddScaleSU(a, psrc, pi, pdst, count);
            }
        }