首页 > 解决方案 > MathNet.Numerics 库是否支持 SIMD?

问题描述

我一直在寻找一个支持最小向量和矩阵运算的 C# 库,发现 System.Numerics 正是通过使用 SIMD 来完成的。只是出于好奇,像 MathNet.Numerics 这样的第三方数学库是否支持 SIMD?在查看github中的实现时,我发现它只使用一个数组来捆绑一些值。我从 DenseVectorStorage 类实现中摘录了以下代码。我确信他们会以某种方式使用 SIMD,但我无法从代码中找到任何使用 SIMD 的线索。

namespace MathNet.Numerics.LinearAlgebra.Storage
{
    [Serializable]
    [DataContract(Namespace = "urn:MathNet/Numerics/LinearAlgebra")]
    public class DenseVectorStorage<T> : VectorStorage<T>
        where T : struct, IEquatable<T>, IFormattable
    {
        // [ruegg] public fields are OK here

        [DataMember(Order = 1)]
        public readonly T[] Data;

        internal DenseVectorStorage(int length)
            : base(length)
        {
            Data = new T[length];
        }

        ...

标签: c#simdmathnet-numerics

解决方案


推荐阅读