70 lines
1.8 KiB
C#
70 lines
1.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Runtime.InteropServices;
|
|
using System.Text;
|
|
|
|
namespace StgSharp.Math
|
|
{
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
internal struct M128ptrCache
|
|
{
|
|
internal ulong ptr0;
|
|
internal ulong ptr1;
|
|
internal ulong ptr2;
|
|
internal ulong ptr3;
|
|
internal ulong ptr4;
|
|
internal ulong ptr5;
|
|
internal ulong ptr6;
|
|
internal ulong ptr7;
|
|
|
|
public override string ToString()
|
|
{
|
|
return
|
|
$"{ptr0}\t" +
|
|
$"{ptr1}\t" +
|
|
$"{ptr2}\t" +
|
|
$"{ptr3}\t" +
|
|
$"{ptr4}\t" +
|
|
$"{ptr5}\t" +
|
|
$"{ptr6}\t" +
|
|
$"{ptr7}\t" +
|
|
$"";
|
|
}
|
|
}
|
|
|
|
|
|
[StructLayout(LayoutKind.Explicit, Size = 16, Pack = 16)]
|
|
internal struct M128
|
|
{
|
|
[FieldOffset(0)] internal float single_0;
|
|
[FieldOffset(4)] internal float single_1;
|
|
[FieldOffset(8)] internal float single_2;
|
|
[FieldOffset(12)] internal float single_3;
|
|
|
|
[FieldOffset(0)] internal int int32_0;
|
|
[FieldOffset(4)] internal int int32_1;
|
|
[FieldOffset(8)] internal int int32_2;
|
|
[FieldOffset(12)] internal int int32_3;
|
|
|
|
[FieldOffset(0)] internal long int64_0;
|
|
[FieldOffset(8)] internal long int64_1;
|
|
|
|
[FieldOffset(0)] internal long double_0;
|
|
[FieldOffset(8)] internal long double_1;
|
|
|
|
internal M128(float x,float y,float z,float w)
|
|
{
|
|
single_0 = x;
|
|
single_1 = y;
|
|
single_2 = z;
|
|
single_3 = w;
|
|
}
|
|
|
|
public override string ToString()
|
|
{
|
|
return $"{single_0}\t{single_1}\t{single_2}\t{single_3}";
|
|
}
|
|
|
|
}
|
|
}
|