use modular initing system rather than calling Init() method.
This commit is contained in:
@@ -70,7 +70,7 @@ namespace StgSharp.HighPerformance
|
||||
|
||||
public void BroadCastFrom<T>(T value) where T: unmanaged, INumber<T>
|
||||
{
|
||||
Vec = Vector128.CreateScalarUnsafe(value).As<T, float>();
|
||||
Vec = Vector128.Create<T>(value).AsSingle();
|
||||
}
|
||||
|
||||
public override readonly bool Equals([NotNullWhen(true)] object obj)
|
||||
|
||||
@@ -52,7 +52,7 @@ namespace StgSharp.HighPerformance
|
||||
|
||||
public void BroadCastFrom<T>(T value) where T: unmanaged, INumber<T>
|
||||
{
|
||||
Vec = Vector256.CreateScalarUnsafe(value).As<T, float>();
|
||||
Vec = Vector256.Create(value).AsSingle();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
|
||||
@@ -51,7 +51,7 @@ namespace StgSharp.HighPerformance
|
||||
|
||||
public void BroadCastFrom<T>(T value) where T: unmanaged, INumber<T>
|
||||
{
|
||||
Vec = Vector512.CreateScalarUnsafe(value).As<T, float>();
|
||||
Vec = Vector512.Create(value).AsSingle();
|
||||
}
|
||||
|
||||
public ref T Member<T>(int index) where T: unmanaged, INumber<T>
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
using System.Numerics;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Runtime.Intrinsics;
|
||||
|
||||
namespace StgSharp.HighPerformance
|
||||
{
|
||||
@@ -37,6 +38,7 @@ namespace StgSharp.HighPerformance
|
||||
|
||||
[FieldOffset(0)] private fixed byte buffer[8];
|
||||
[FieldOffset(0)] private ulong value;
|
||||
[FieldOffset(0)] private Vector64<float> vec;
|
||||
|
||||
public M64()
|
||||
{
|
||||
@@ -49,12 +51,17 @@ namespace StgSharp.HighPerformance
|
||||
return ref Unsafe.As<byte, T>(ref buffer[0]);
|
||||
}
|
||||
|
||||
public void BroadCastFrom<T>(T value) where T: unmanaged, INumber<T>
|
||||
{
|
||||
vec = Vector64.Create(value).AsSingle();
|
||||
}
|
||||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
return obj is M64 m64 && this == m64;
|
||||
}
|
||||
|
||||
public override int GetHashCode()
|
||||
public override readonly int GetHashCode()
|
||||
{
|
||||
return value.GetHashCode();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user