many things
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="ElementType"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
// AuthorGroup: Nitload
|
||||
// Copyright (c) Nitload. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -25,15 +25,52 @@
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
#pragma warning disable CA1028
|
||||
namespace StgSharp.Mathematics.Numeric
|
||||
{
|
||||
public enum MatrixElementType : int
|
||||
[StructLayout(LayoutKind.Explicit, Size = 4)]
|
||||
public struct MatrixElementType
|
||||
{
|
||||
|
||||
F32 = 0,
|
||||
F64 = 1,
|
||||
I32 = 2,
|
||||
I64 = 3,
|
||||
public static readonly MatrixElementType F32 = new(0x03000004);
|
||||
public static readonly MatrixElementType F64 = new(0x03000008);
|
||||
public static readonly MatrixElementType I08 = new(0x0100001);
|
||||
public static readonly MatrixElementType I16 = new(0x0100002);
|
||||
public static readonly MatrixElementType I32 = new(0x0100004);
|
||||
public static readonly MatrixElementType I64 = new(0x0100008);
|
||||
public static readonly MatrixElementType U08 = new(0x0200001);
|
||||
public static readonly MatrixElementType U16 = new(0x0200002);
|
||||
public static readonly MatrixElementType U32 = new(0x0200004);
|
||||
public static readonly MatrixElementType U64 = new(0x0200008);
|
||||
|
||||
[FieldOffset(0)] internal readonly int Mask;
|
||||
[FieldOffset(3)] public readonly MatrixElementTypeGroup Group;
|
||||
|
||||
[FieldOffset(0)] public readonly ushort Size;
|
||||
|
||||
private MatrixElementType(
|
||||
int mask
|
||||
)
|
||||
{
|
||||
Unsafe.SkipInit(out this);
|
||||
Unsafe.SkipInit(out Size);
|
||||
Unsafe.SkipInit(out Group);
|
||||
this.Mask = mask;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public enum MatrixElementTypeGroup : byte
|
||||
{
|
||||
|
||||
None = 0,
|
||||
Singed = 1,
|
||||
Unsigned = 2,
|
||||
Float = 3,
|
||||
|
||||
}
|
||||
}
|
||||
#pragma warning restore CA1028
|
||||
|
||||
Reference in New Issue
Block a user