using System;
using System.Runtime.InteropServices;
using Il2CppInterop.Common.Attributes;
using Il2CppInterop.Runtime;
using Il2CppSystem;

namespace MTAssets.UltimateLODSystem.MeshSimplifier
{
	// Token: 0x0200067A RID: 1658
	[StructLayout(2)]
	public struct SymmetricMatrix
	{
		// Token: 0x17003914 RID: 14612
		public unsafe double this[int index]
		{
			[CallerCount(18)]
			[CachedScanResults(RefRangeStart = 656670, RefRangeEnd = 656688, XrefRangeStart = 656670, XrefRangeEnd = 656670, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			get
			{
				checked
				{
					IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
					*ptr = ref index;
					IntPtr intPtr2;
					IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(SymmetricMatrix.NativeMethodInfoPtr_get_Item_Public_get_Double_Int32_0, ref this, (void**)ptr, ref intPtr2);
					Il2CppException.RaiseExceptionIfNecessary(intPtr2);
					return *IL2CPP.il2cpp_object_unbox(intPtr);
				}
			}
		}

		// Token: 0x0600A8E4 RID: 43236 RVA: 0x002B45BC File Offset: 0x002B27BC
		[CallerCount(0)]
		public unsafe SymmetricMatrix(double c)
		{
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref c;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(SymmetricMatrix.NativeMethodInfoPtr__ctor_Public_Void_Double_0, ref this, (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x0600A8E5 RID: 43237 RVA: 0x002B4604 File Offset: 0x002B2804
		[CallerCount(0)]
		public unsafe SymmetricMatrix(double m0, double m1, double m2, double m3, double m4, double m5, double m6, double m7, double m8, double m9)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)10) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref m0;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref m1;
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref m2;
			ptr[checked(unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref m3;
			ptr[checked(unchecked((UIntPtr)4) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref m4;
			ptr[checked(unchecked((UIntPtr)5) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref m5;
			ptr[checked(unchecked((UIntPtr)6) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref m6;
			ptr[checked(unchecked((UIntPtr)7) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref m7;
			ptr[checked(unchecked((UIntPtr)8) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref m8;
			ptr[checked(unchecked((UIntPtr)9) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref m9;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(SymmetricMatrix.NativeMethodInfoPtr__ctor_Public_Void_Double_Double_Double_Double_Double_Double_Double_Double_Double_Double_0, ref this, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A8E6 RID: 43238 RVA: 0x002B46F8 File Offset: 0x002B28F8
		[CallerCount(0)]
		public unsafe SymmetricMatrix(double a, double b, double c, double d)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)4) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref a;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref b;
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref c;
			ptr[checked(unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref d;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(SymmetricMatrix.NativeMethodInfoPtr__ctor_Public_Void_Double_Double_Double_Double_0, ref this, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A8E7 RID: 43239 RVA: 0x002B4778 File Offset: 0x002B2978
		[CallerCount(0)]
		public unsafe static SymmetricMatrix operator +(SymmetricMatrix a, SymmetricMatrix b)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref a;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref b;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(SymmetricMatrix.NativeMethodInfoPtr_op_Addition_Public_Static_SymmetricMatrix_SymmetricMatrix_SymmetricMatrix_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x0600A8E8 RID: 43240 RVA: 0x002B47E0 File Offset: 0x002B29E0
		[CallerCount(0)]
		public unsafe double Determinant1()
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(SymmetricMatrix.NativeMethodInfoPtr_Determinant1_Internal_Double_0, ref this, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x0600A8E9 RID: 43241 RVA: 0x002B4824 File Offset: 0x002B2A24
		[CallerCount(0)]
		public unsafe double Determinant2()
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(SymmetricMatrix.NativeMethodInfoPtr_Determinant2_Internal_Double_0, ref this, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x0600A8EA RID: 43242 RVA: 0x002B4868 File Offset: 0x002B2A68
		[CallerCount(0)]
		public unsafe double Determinant3()
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(SymmetricMatrix.NativeMethodInfoPtr_Determinant3_Internal_Double_0, ref this, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x0600A8EB RID: 43243 RVA: 0x002B48AC File Offset: 0x002B2AAC
		[CallerCount(0)]
		public unsafe double Determinant4()
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(SymmetricMatrix.NativeMethodInfoPtr_Determinant4_Internal_Double_0, ref this, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x0600A8EC RID: 43244 RVA: 0x002B48F0 File Offset: 0x002B2AF0
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 656688, XrefRangeEnd = 656706, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe double Determinant(int a11, int a12, int a13, int a21, int a22, int a23, int a31, int a32, int a33)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)9) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref a11;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref a12;
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref a13;
			ptr[checked(unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref a21;
			ptr[checked(unchecked((UIntPtr)4) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref a22;
			ptr[checked(unchecked((UIntPtr)5) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref a23;
			ptr[checked(unchecked((UIntPtr)6) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref a31;
			ptr[checked(unchecked((UIntPtr)7) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref a32;
			ptr[checked(unchecked((UIntPtr)8) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref a33;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(SymmetricMatrix.NativeMethodInfoPtr_Determinant_Public_Double_Int32_Int32_Int32_Int32_Int32_Int32_Int32_Int32_Int32_0, ref this, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x0600A8ED RID: 43245 RVA: 0x002B49DC File Offset: 0x002B2BDC
		// Note: this type is marked as 'beforefieldinit'.
		static SymmetricMatrix()
		{
			Il2CppClassPointerStore<SymmetricMatrix>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "MTAssets.UltimateLODSystem.MeshSimplifier", "SymmetricMatrix");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<SymmetricMatrix>.NativeClassPtr);
			SymmetricMatrix.NativeFieldInfoPtr_m0 = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<SymmetricMatrix>.NativeClassPtr, "m0");
			SymmetricMatrix.NativeFieldInfoPtr_m1 = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<SymmetricMatrix>.NativeClassPtr, "m1");
			SymmetricMatrix.NativeFieldInfoPtr_m2 = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<SymmetricMatrix>.NativeClassPtr, "m2");
			SymmetricMatrix.NativeFieldInfoPtr_m3 = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<SymmetricMatrix>.NativeClassPtr, "m3");
			SymmetricMatrix.NativeFieldInfoPtr_m4 = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<SymmetricMatrix>.NativeClassPtr, "m4");
			SymmetricMatrix.NativeFieldInfoPtr_m5 = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<SymmetricMatrix>.NativeClassPtr, "m5");
			SymmetricMatrix.NativeFieldInfoPtr_m6 = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<SymmetricMatrix>.NativeClassPtr, "m6");
			SymmetricMatrix.NativeFieldInfoPtr_m7 = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<SymmetricMatrix>.NativeClassPtr, "m7");
			SymmetricMatrix.NativeFieldInfoPtr_m8 = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<SymmetricMatrix>.NativeClassPtr, "m8");
			SymmetricMatrix.NativeFieldInfoPtr_m9 = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<SymmetricMatrix>.NativeClassPtr, "m9");
			SymmetricMatrix.NativeMethodInfoPtr_get_Item_Public_get_Double_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<SymmetricMatrix>.NativeClassPtr, 100676359);
			SymmetricMatrix.NativeMethodInfoPtr__ctor_Public_Void_Double_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<SymmetricMatrix>.NativeClassPtr, 100676360);
			SymmetricMatrix.NativeMethodInfoPtr__ctor_Public_Void_Double_Double_Double_Double_Double_Double_Double_Double_Double_Double_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<SymmetricMatrix>.NativeClassPtr, 100676361);
			SymmetricMatrix.NativeMethodInfoPtr__ctor_Public_Void_Double_Double_Double_Double_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<SymmetricMatrix>.NativeClassPtr, 100676362);
			SymmetricMatrix.NativeMethodInfoPtr_op_Addition_Public_Static_SymmetricMatrix_SymmetricMatrix_SymmetricMatrix_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<SymmetricMatrix>.NativeClassPtr, 100676363);
			SymmetricMatrix.NativeMethodInfoPtr_Determinant1_Internal_Double_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<SymmetricMatrix>.NativeClassPtr, 100676364);
			SymmetricMatrix.NativeMethodInfoPtr_Determinant2_Internal_Double_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<SymmetricMatrix>.NativeClassPtr, 100676365);
			SymmetricMatrix.NativeMethodInfoPtr_Determinant3_Internal_Double_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<SymmetricMatrix>.NativeClassPtr, 100676366);
			SymmetricMatrix.NativeMethodInfoPtr_Determinant4_Internal_Double_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<SymmetricMatrix>.NativeClassPtr, 100676367);
			SymmetricMatrix.NativeMethodInfoPtr_Determinant_Public_Double_Int32_Int32_Int32_Int32_Int32_Int32_Int32_Int32_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<SymmetricMatrix>.NativeClassPtr, 100676368);
		}

		// Token: 0x0600A8EE RID: 43246 RVA: 0x002B4B9C File Offset: 0x002B2D9C
		public Object BoxIl2CppObject()
		{
			return new Object(IL2CPP.il2cpp_value_box(Il2CppClassPointerStore<SymmetricMatrix>.NativeClassPtr, ref this));
		}

		// Token: 0x04007125 RID: 28965
		private static readonly IntPtr NativeFieldInfoPtr_m0;

		// Token: 0x04007126 RID: 28966
		private static readonly IntPtr NativeFieldInfoPtr_m1;

		// Token: 0x04007127 RID: 28967
		private static readonly IntPtr NativeFieldInfoPtr_m2;

		// Token: 0x04007128 RID: 28968
		private static readonly IntPtr NativeFieldInfoPtr_m3;

		// Token: 0x04007129 RID: 28969
		private static readonly IntPtr NativeFieldInfoPtr_m4;

		// Token: 0x0400712A RID: 28970
		private static readonly IntPtr NativeFieldInfoPtr_m5;

		// Token: 0x0400712B RID: 28971
		private static readonly IntPtr NativeFieldInfoPtr_m6;

		// Token: 0x0400712C RID: 28972
		private static readonly IntPtr NativeFieldInfoPtr_m7;

		// Token: 0x0400712D RID: 28973
		private static readonly IntPtr NativeFieldInfoPtr_m8;

		// Token: 0x0400712E RID: 28974
		private static readonly IntPtr NativeFieldInfoPtr_m9;

		// Token: 0x0400712F RID: 28975
		private static readonly IntPtr NativeMethodInfoPtr_get_Item_Public_get_Double_Int32_0;

		// Token: 0x04007130 RID: 28976
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_Double_0;

		// Token: 0x04007131 RID: 28977
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_Double_Double_Double_Double_Double_Double_Double_Double_Double_Double_0;

		// Token: 0x04007132 RID: 28978
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_Double_Double_Double_Double_0;

		// Token: 0x04007133 RID: 28979
		private static readonly IntPtr NativeMethodInfoPtr_op_Addition_Public_Static_SymmetricMatrix_SymmetricMatrix_SymmetricMatrix_0;

		// Token: 0x04007134 RID: 28980
		private static readonly IntPtr NativeMethodInfoPtr_Determinant1_Internal_Double_0;

		// Token: 0x04007135 RID: 28981
		private static readonly IntPtr NativeMethodInfoPtr_Determinant2_Internal_Double_0;

		// Token: 0x04007136 RID: 28982
		private static readonly IntPtr NativeMethodInfoPtr_Determinant3_Internal_Double_0;

		// Token: 0x04007137 RID: 28983
		private static readonly IntPtr NativeMethodInfoPtr_Determinant4_Internal_Double_0;

		// Token: 0x04007138 RID: 28984
		private static readonly IntPtr NativeMethodInfoPtr_Determinant_Public_Double_Int32_Int32_Int32_Int32_Int32_Int32_Int32_Int32_Int32_0;

		// Token: 0x04007139 RID: 28985
		[FieldOffset(0)]
		public double m0;

		// Token: 0x0400713A RID: 28986
		[FieldOffset(8)]
		public double m1;

		// Token: 0x0400713B RID: 28987
		[FieldOffset(16)]
		public double m2;

		// Token: 0x0400713C RID: 28988
		[FieldOffset(24)]
		public double m3;

		// Token: 0x0400713D RID: 28989
		[FieldOffset(32)]
		public double m4;

		// Token: 0x0400713E RID: 28990
		[FieldOffset(40)]
		public double m5;

		// Token: 0x0400713F RID: 28991
		[FieldOffset(48)]
		public double m6;

		// Token: 0x04007140 RID: 28992
		[FieldOffset(56)]
		public double m7;

		// Token: 0x04007141 RID: 28993
		[FieldOffset(64)]
		public double m8;

		// Token: 0x04007142 RID: 28994
		[FieldOffset(72)]
		public double m9;
	}
}
