当前位置: 首页>>代码示例>>C#>>正文


C# Numerics.Vector类代码示例

本文整理汇总了C#中System.Numerics.Vector的典型用法代码示例。如果您正苦于以下问题:C# Vector类的具体用法?C# Vector怎么用?C# Vector使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


Vector类属于System.Numerics命名空间,在下文中一共展示了Vector类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: HWAcceleratedGetStats

 internal static void HWAcceleratedGetStats(ushort[] input, out ushort min, out ushort max, out double average)
 {
     var simdLength = Vector<ushort>.Count;
     var vmin = new Vector<ushort>(ushort.MaxValue);
     var vmax = new Vector<ushort>(ushort.MinValue);
     var i = 0;
     ulong total = 0;
     var lastSafeVectorIndex = input.Length - simdLength;
     for (i = 0; i < lastSafeVectorIndex; i += simdLength) {
         total += input[i];
         total += input[i + 1];
         total += input[i + 2];
         total += input[i + 3];
         total += input[i + 4];
         total += input[i + 5];
         total += input[i + 6];
         total += input[i + 7];
         var vector = new Vector<ushort>(input, i);
         vmin = Vector.Min(vector, vmin);
         vmax = Vector.Max(vector, vmax);
     }
     min = ushort.MaxValue;
     max = ushort.MinValue;
     for (var j = 0; j < simdLength; ++j) {
         min = Math.Min(min, vmin[j]);
         max = Math.Max(max, vmax[j]);
     }
     for (; i < input.Length; ++i) {
         min = Math.Min(min, input[i]);
         max = Math.Max(max, input[i]);
         total += input[i];
     }
     average = total / (double)input.Length;
 }
开发者ID:eoinmullan,项目名称:SimdSpike,代码行数:34,代码来源:UShortSimdProcessor.cs

示例2: lms

            public Vector<double> lms(Vector<double> signal, Vector<double> filtered_signal, int window_size)
            {
                int signal_size = signal.Count;

                double mi = 0.07; //Współczynnik szybkości adaptacji

                Vector<double> coeff = Vector<double>.Build.Dense(window_size, 0); //Wektor z wagami filtru
                Vector<double> bufor = Vector<double>.Build.Dense(window_size, 0); //Inicjalizacja bufora sygnału wejściowego
                Vector<double> out_signal = Vector<double>.Build.Dense(signal_size, 0);

                double dest;
                double err;

                for(int i = 0; i<signal_size; i++)
                {

                    bufor.CopySubVectorTo(bufor, 0, 1, window_size - 1);
                    bufor[0] = signal[i];

                    dest = coeff * bufor;
                    err = filtered_signal[i] - dest;

                    coeff.Add(2 * mi * err * bufor,coeff);

                    //coeff = coeff + (2 * mi * err * bufor);

                    out_signal[i] = dest;

                }

                return out_signal;
            }
开发者ID:Nefarin,项目名称:DadmProject,代码行数:32,代码来源:ECG_Baseline_Alg.cs

示例3: Ray4

        public Ray4( Ray[] rays )
        {
            int l = rays.Length;
        
            float[] ox4 = new float[l], oy4 = new float[l], oz4 = new float[l];
            float[] dx4 = new float[l], dy4 = new float[l], dz4 = new float[l];
            float[] t = new float[l];
            float[] nx4 = new float[l], ny4 = new float[l], nz4 = new float[l];
            int[] objIdx = new int[l];
            int[] inside = new int[l];
        
            for (int i = 0; i < rays.Length; i++)
            {
                ox4[i] = rays[i].O.X; oy4[i] = rays[i].O.Y; oz4[i] = rays[i].O.Z;
                dx4[i] = rays[i].D.X; dy4[i] = rays[i].D.Y; dz4[i] = rays[i].D.Z;
                t[i] = rays[i].t;
                nx4[i] = rays[i].N.X; ny4[i] = rays[i].N.Y; nz4[i] = rays[i].N.Z;
                objIdx[i] = rays[i].objIdx;
                inside[i] = rays[i].inside ? 1 : 0;
            }

            Ox4 = new Vector<float>(ox4); Oy4 = new Vector<float>(oy4); Oz4 = new Vector<float>(oz4);
            Dx4 = new Vector<float>(dx4); Dy4 = new Vector<float>(dy4); Dz4 = new Vector<float>(dz4);
            t4 = new Vector<float>(t);
            Nx4 = new Vector<float>(nx4); Ny4 = new Vector<float>(ny4); Nz4 = new Vector<float>(nz4);
            objIdx4 = new Vector<int>(objIdx);
            inside4 = new Vector<int>(inside);
            returnMask = new Vector<int>(0);
        }
开发者ID:Dutchman97,项目名称:ConcurrencyPracticum3,代码行数:29,代码来源:ray.cs

示例4: Main

 static int Main(string[] args)
 {
     {
         var a = new Vector<uint>(1000000);
         var b = new Vector<uint>(0);
         var c = new Vector<uint>(1);
         var d = b - c;
         var e = d / a;
         if (e[0] != 4294)
         {
             return 0;
         }
     }
     {
         var a = new Vector<int>(1000000);
         var b = new Vector<int>(0);
         var c = new Vector<int>(1);
         var d = b - c;
         var e = d / a;
         if (e[0] != 0)
         {
             return 0;
         }
     }
     return 100;
 }
开发者ID:l1183479157,项目名称:coreclr,代码行数:26,代码来源:DivSignedUnsignedTest.cs

示例5: ContainsPossibly

        public static bool ContainsPossibly(byte[] buffer, int index, int end, ref Vector<byte> value)
        {
            if (!Vector.IsHardwareAccelerated || index + Vector<byte>.Count >= end || index + Vector<byte>.Count >= buffer.Length)
                return true;

            return !Vector.Equals(new Vector<byte>(buffer, index), value).Equals(Vector<byte>.Zero);
        }
开发者ID:evest,项目名称:Netling,代码行数:7,代码来源:ByteHelpers.cs

示例6: VectorizedSceneUpdateNodesTests

        public VectorizedSceneUpdateNodesTests()
        {
            Width = 20;
            Height = 20;
            Length = 1f;

            Grid = new PackedHexagonalGrid(Width, Height, Padding, Length);
            NodesX = Grid.VerticesX.ToArray();
            NodesY = Grid.VerticesY.ToArray();

            var random = new Random();
            Func<float> randomFloat = () => (float)random.NextDouble();

            VelocitiesX = Enumerable.Range(0, NodesX.Length).Select(_ => randomFloat()).ToArray();
            VelocitiesY = Enumerable.Range(0, NodesY.Length).Select(_ => randomFloat()).ToArray();

            const float dt = 0.01f;
            Dt = new Vector<float>(dt);

            UpdateNodesReferenceImplementation(dt, NodesX, NodesY, VelocitiesX, VelocitiesY);
            ReferenceNodesX = NodesX.ToArray();
            ReferenceNodesY = NodesY.ToArray();

            RestoreNodes();

            JitMethods();
        }
开发者ID:Jorenkv,项目名称:Tearing,代码行数:27,代码来源:VectorizedSceneUpdateNodesTests.cs

示例7: Plane

	public Plane( Vector3 ABC, float D )
	{
		Nx = new Vector<float>(ABC.X);
        Ny = new Vector<float>(ABC.Y);
        Nz = new Vector<float>(ABC.Z);
        d = new Vector<float>(D);
	}
开发者ID:Dutchman97,项目名称:ConcurrencyPracticum3,代码行数:7,代码来源:geometry.cs

示例8: Approximate

        /// <summary>
        /// Approximates the solution to the matrix equation <b>Ax = b</b>.
        /// </summary>
        /// <param name="rhs">The right hand side vector.</param>
        /// <param name="lhs">The left hand side vector. Also known as the result vector.</param>
        public void Approximate(Vector rhs, Vector lhs)
        {
            if (rhs == null)
            {
                throw new ArgumentNullException("rhs");
            }

            if (lhs == null)
            {
                throw new ArgumentNullException("lhs");
            }

            if (_inverseDiagonals == null)
            {
                throw new ArgumentException(Resources.ArgumentMatrixDoesNotExist);
            }

            if ((lhs.Count != rhs.Count) || (lhs.Count != _inverseDiagonals.Length))
            {
                throw new ArgumentException(Resources.ArgumentVectorsSameLength, "rhs");
            }

            for (var i = 0; i < _inverseDiagonals.Length; i++)
            {
                lhs[i] = rhs[i] * _inverseDiagonals[i];
            }
        }
开发者ID:KeithVanderzanden,项目名称:mmbot,代码行数:32,代码来源:Diagonal.cs

示例9: Multiply_SIMD_2

        public static double[] Multiply_SIMD_2(Matrix A, Matrix B)
        {
            // Abour 50% fateser when matrix size >= 8x8

            var vecSize = Vector<double>.Count;
            var bRemainer = B.Columns % Vector<double>.Count;
            if (B.Columns % Vector<double>.Count != 0)
            {
                B.AddColumns(bRemainer);
            }

            var C = new double[A.Rows * B.Columns];

            for (int i = 0; i < A.Rows; i++)
            {
                for (int k = 0; k < A.Columns; k++)
                {
                    for (int j = 0; j < B.Columns; j += vecSize)
                    {
                        var vC = new Vector<double>(C, i * A.Rows + j);
                        var vB = new Vector<double>(B.internalArray, k * B.Columns + j);
                        var vA = new Vector<double>(A.internalArray[i * A.Columns + k]);
                        vC += vA * vB;
                        vC.CopyTo(C, i * A.Rows + j);
                    }
                }
            }

            return C.ToArray();
        }
开发者ID:MathFerret1013,项目名称:Linear-Algebra,代码行数:30,代码来源:Class1.cs

示例10: DenseVector

 /// <summary>
 /// Initializes a new instance of the <see cref="DenseVector"/> class by
 /// copying the values from another.
 /// </summary>
 /// <param name="other">
 /// The vector to create the new vector from.
 /// </param>
 public DenseVector(Vector<Complex> other) : this(other.Count)
 {
         CommonParallel.For(
             0, 
             Data.Length, 
             index => this[index] = other[index]);
 }
开发者ID:bstrausser,项目名称:mathnet-numerics,代码行数:14,代码来源:DenseVector.cs

示例11: SeekWorksAcrossBlocks

        public void SeekWorksAcrossBlocks()
        {
            Console.WriteLine($"Vector.IsHardwareAccelerated == {Vector.IsHardwareAccelerated}");
            Console.WriteLine($"Vector<byte>.Count == {Vector<byte>.Count}");

            using (var pool = new MemoryPool2())
            {
                var block1 = pool.Lease(256);
                var block2 = block1.Next = pool.Lease(256);
                var block3 = block2.Next = pool.Lease(256);

                foreach (var ch in Enumerable.Range(0, 34).Select(x => (byte)x))
                {
                    block1.Array[block1.End++] = ch;
                }
                foreach (var ch in Enumerable.Range(34, 25).Select(x => (byte)x))
                {
                    block2.Array[block2.End++] = ch;
                }
                foreach (var ch in Enumerable.Range(59, 197).Select(x => (byte)x))
                {
                    block3.Array[block3.End++] = ch;
                }

                var vectorMaxValues = new Vector<byte>(byte.MaxValue);

                var iterator = block1.GetIterator();
                foreach (var ch in Enumerable.Range(0, 256).Select(x => (byte)x))
                {
                    var vectorCh = new Vector<byte>(ch);

                    var hit = iterator;
                    hit.Seek(ref vectorCh);
                    Assert.Equal(ch, iterator.GetLength(hit));

                    hit = iterator;
                    hit.Seek(ref vectorCh, ref vectorMaxValues);
                    Assert.Equal(ch, iterator.GetLength(hit));

                    hit = iterator;
                    hit.Seek(ref vectorMaxValues, ref vectorCh);
                    Assert.Equal(ch, iterator.GetLength(hit));

                    hit = iterator;
                    hit.Seek(ref vectorCh, ref vectorMaxValues, ref vectorMaxValues);
                    Assert.Equal(ch, iterator.GetLength(hit));

                    hit = iterator;
                    hit.Seek(ref vectorMaxValues, ref vectorCh, ref vectorMaxValues);
                    Assert.Equal(ch, iterator.GetLength(hit));

                    hit = iterator;
                    hit.Seek(ref vectorMaxValues, ref vectorMaxValues, ref vectorCh);
                    Assert.Equal(ch, iterator.GetLength(hit));
                }
            }
        }
开发者ID:leloulight,项目名称:KestrelHttpServer,代码行数:57,代码来源:MemoryPoolBlock2Tests.cs

示例12: ConvertToString

        public static string ConvertToString(BigInteger n, bool escape, int radix)
        {
            if (radix == -1)
            {
                radix = (int)Runtime.GetDynamic(Symbols.PrintBase);
            }

            if (radix == -1)
            {
                radix = 10;
            }
            else if (radix < 2 || radix > 36)
            {
                throw new LispException("Invalid number base: {0}", radix);
            }

            if (n == 0)
            {
                return "0";
            }

            var sign = (n >= 0) ? "" : "-";
            n = (n >= 0) ? n : -n;
            var stk = new Vector();
            while (n != 0)
            {
                var d = (int)(n % radix);
                if (d <= 9)
                {
                    stk.Add((char)(d + '0'));
                }
                else {
                    stk.Add((char)(d - 10 + 'a'));
                }
                n = n / radix;
            }
            stk.Reverse();
            if (escape)
            {
                switch (radix)
                {
                    case 10:
                        return sign + Runtime.MakeString(stk.ToArray());
                    case 16:
                        return sign + "0x" + Runtime.MakeString(stk.ToArray());
                    case 8:
                        return sign + "0" + Runtime.MakeString(stk.ToArray());
                    case 2:
                        return "#b" + sign + Runtime.MakeString(stk.ToArray());
                    default:
                        return "#" + radix + "r" + sign + Runtime.MakeString(stk.ToArray());
                }
            }
            else {
                return sign + Runtime.MakeString(stk.ToArray());
            }
        }
开发者ID:jantolenaar,项目名称:kiezellisp,代码行数:57,代码来源:number.cs

示例13: BoundingBoxWide

 public unsafe BoundingBoxWide(BoundingBox* boundingBoxes, Vector<int>[] masks)
 {
     Min = new Vector3Wide(ref boundingBoxes[0].Min);
     Max = new Vector3Wide(ref boundingBoxes[0].Max);
     for (int i = 1; i < Vector<float>.Count; ++i)
     {
         BoundingBoxWide wide = new BoundingBoxWide(ref boundingBoxes[i]);
         ConditionalSelect(ref masks[i], ref wide, ref this, out this);
     }
 }
开发者ID:RossNordby,项目名称:scratchpad,代码行数:10,代码来源:BoundingBox.cs

示例14: CheckResult

        protected override void CheckResult(IPreConditioner<Complex> preconditioner, SparseMatrix matrix, Vector<Complex> vector, Vector<Complex> result)
        {
            Assert.AreEqual(typeof(UnitPreconditioner), preconditioner.GetType(), "#01");

            // Unit preconditioner is doing nothing. Vector and result should be equal

            for (var i = 0; i < vector.Count; i++)
            {
                Assert.IsTrue(vector[i] == result[i], "#02-" + i);
            }
        }
开发者ID:xmap2008,项目名称:mathnet-numerics,代码行数:11,代码来源:UnitPreconditionerTest.cs

示例15: Cosine4

 static public Vector<float> Cosine4(Vector<float> alpha)
 {
     Vector<float> result = Vector<float>.One, lastTerm = Vector<float>.One;
     Vector<float> alpha2 = alpha * alpha;
     for (int i = 1; i < TERMS; i++)
     {
         lastTerm = Vector.Negate(lastTerm * alpha2);
         result += lastTerm / factorials[i * 2];
     }
     return result;
 }
开发者ID:Dutchman97,项目名称:ConcurrencyPracticum3,代码行数:11,代码来源:rttools.cs


注:本文中的System.Numerics.Vector类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。