daily update on 20230813 by nitload youmu, weritting matrix algs

This commit is contained in:
Nitload
2023-08-13 22:45:22 +08:00
parent f9f339405e
commit 969406c4e4
212 changed files with 14880 additions and 13745 deletions
+30 -1
View File
@@ -2,6 +2,7 @@
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
@@ -12,8 +13,13 @@ namespace StgSharp
{
[DllImport("StgSharpGraphic.dll", EntryPoint = "load",
CallingConvention = CallingConvention.Cdecl)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static extern IntPtr load_internal(float x,float y, float z, float w);
[DllImport("StgSharpGraphic.dll",EntryPoint = "load_matmap",
CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr load_mat(IntPtr c0, IntPtr c1, IntPtr c2, IntPtr c3);
[DllImport("StgSharpGraphic.dll", EntryPoint = "load_cpy",
CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr load_cpy_internal(IntPtr ptr);
@@ -46,17 +52,40 @@ namespace StgSharp
CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr divps_const_internal(IntPtr ptr, float value);
[DllImport("StgSharpGraphic.dll", EntryPoint = "sqrtss_const",
CallingConvention = CallingConvention.Cdecl)]
internal static extern float sqrtss_const_internal(float a);
[DllImport("StgSharpGraphic.dll",EntryPoint = "test_addps_mat",
CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr addps_mat_internal_test(IntPtr ptr1, IntPtr ptr2);
[DllImport("StgSharpGraphic.dll", EntryPoint = "set_m128ptr_default",
CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr set_m128ptr_default_internal();
[DllImport("StgSharpGraphic.dll", EntryPoint = "transpose_ssemat_2",
CallingConvention = CallingConvention.Cdecl)]
internal static extern ref M128matMap transpose_ssemat2_internal(ref M128matMap matMap);
[DllImport("StgSharpGraphic.dll",EntryPoint = "transpose_ssemat_3",
CallingConvention = CallingConvention.Cdecl)]
internal static extern ref M128matMap transpose_ssemat3_internal(ref M128matMap matMap);
[DllImport("StgSharpGraphic.dll", EntryPoint = "deinitM128",
CallingConvention = CallingConvention.Cdecl)]
internal static extern void deinitM128_internal(IntPtr M128Ptr);
internal static extern void deinitM128_internal(IntPtr M128Ptr);
[DllImport("StgSharpGraphic.dll", EntryPoint = "deinit_matmap_sse",
CallingConvention = CallingConvention.Cdecl)]
internal static extern void deinitMatmap_sse_internal(ref M128matMap mapPtr);
}
}
+19
View File
@@ -6,8 +6,27 @@ using System.Text;
namespace StgSharp.Math
{
[StructLayout(LayoutKind.Explicit)]
internal struct MatSize
{
[FieldOffset(0)]
internal ushort sizePair;
[FieldOffset(0)]
internal byte width;
[FieldOffset(1)]
internal byte height;
}
public static unsafe partial class SSE
{
internal static IntPtr defaultM128Ptr =
internalIO.set_m128ptr_default_internal();
internal static IntPtr defaultM256Ptr;
public enum Registor : byte
{
XMM0 = 0,
+18 -20
View File
@@ -6,29 +6,24 @@ using System.Text;
namespace StgSharp.Math
{
[StructLayout(LayoutKind.Sequential)]
internal struct M128ptrCache
internal struct M128matMap
{
internal ulong ptr0;
internal ulong ptr1;
internal ulong ptr2;
internal ulong ptr3;
internal ulong ptr4;
internal ulong ptr5;
internal ulong ptr6;
internal ulong ptr7;
internal IntPtr colum0Ptr;
internal IntPtr colum1Ptr;
internal IntPtr colum2Ptr;
internal IntPtr colum3Ptr;
public override string ToString()
internal M128matMap(
IntPtr c0ptr,
IntPtr c1ptr,
IntPtr c2ptr,
IntPtr c3ptr
)
{
return
$"{ptr0}\t" +
$"{ptr1}\t" +
$"{ptr2}\t" +
$"{ptr3}\t" +
$"{ptr4}\t" +
$"{ptr5}\t" +
$"{ptr6}\t" +
$"{ptr7}\t" +
$"";
colum0Ptr = c0ptr;
colum1Ptr = c1ptr;
colum2Ptr = c2ptr;
colum3Ptr = c3ptr;
}
}
@@ -49,6 +44,9 @@ namespace StgSharp.Math
[FieldOffset(0)] internal long int64_0;
[FieldOffset(8)] internal long int64_1;
[FieldOffset(0)] internal IntPtr ptr_0;
[FieldOffset(8)] internal IntPtr ptr_1;
[FieldOffset(0)] internal long double_0;
[FieldOffset(8)] internal long double_1;
+35
View File
@@ -0,0 +1,35 @@
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Text;
namespace StgSharp.Math
{
[StructLayout(LayoutKind.Explicit, Size = 32, Pack = 32)]
internal struct M256
{
[FieldOffset(0)] public float single_0;
[FieldOffset(4)] public float single_1;
[FieldOffset(8)] public float single_2;
[FieldOffset(12)] public float single_3;
[FieldOffset(16)] public float single_4;
[FieldOffset(20)] public float single_5;
[FieldOffset(24)] public float single_6;
[FieldOffset(28)] public float single_7;
[FieldOffset(0)] public long uint64_0;
[FieldOffset(8)] public long uint64_1;
[FieldOffset(16)] public long uint64_2;
[FieldOffset(24)] public long uint64_3;
[FieldOffset(0)] public double double_0;
[FieldOffset(8)] public double double_1;
[FieldOffset(16)] public double double_2;
[FieldOffset(24)] public double double_3;
[FieldOffset(0)] public IntPtr ptr_0;
[FieldOffset(8)] public IntPtr ptr_1;
[FieldOffset(16)] public IntPtr ptr_2;
[FieldOffset(24)] public IntPtr ptr_3;
}
}