I was looking for a C# library that supports minimal vector and matrix operations and found that System.Numerics just do exactly that by using SIMD. Just for curiosity, does 3rd party math library like MathNet.Numerics support SIMD? While looking into the implementation in github, I found that it only uses an array to bundle up some values. I excerpted this code below from DenseVectorStorage class implementation. I'm certain that they would utilize SIMD in some ways but I couldn't find any clues of using SIMD from the code.
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];
}
...