Skip to content

Commit e5427c0

Browse files
Merge pull request #12 from MrUnbelievable92/v2.3.5
v2.3.5
2 parents 981f38f + d3aa390 commit e5427c0

File tree

376 files changed

+38508
-9423
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

376 files changed

+38508
-9423
lines changed

Runtime/AssemblyInfo.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@
3232
// Build Number
3333
// Revision
3434
//
35-
[assembly: AssemblyVersion("2.3.0")]
36-
[assembly: AssemblyFileVersion("2.3.0")]
37-
[assembly: AssemblyInformationalVersion("2.3 Release")]
35+
[assembly: AssemblyVersion("2.3.5")]
36+
[assembly: AssemblyFileVersion("2.3.5")]
37+
[assembly: AssemblyInformationalVersion("2.3.5 Release")]
3838

3939
[assembly: SuppressMessage("Style", "IDE1006:Naming Styles", Justification = "Unity.Mathematics API consistency")]
4040
[assembly: CompilationRelaxationsAttribute(CompilationRelaxations.NoStringInterning)]

Runtime/Math Lib/Constants.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ unsafe public static partial class maxmath
1111
/// <summary> The square root 3. Approximately 1.73. This is a f64/double precision constant. </summary>
1212
public const double SQRT3_DBL = 1.73205080756887729352d;
1313

14+
/// <summary> The square root 5. Approximately 2.23. This is a f64/double precision constant. </summary>
15+
public const double SQRT5_DBL = 2.23606797749978969640d;
16+
1417
/// <summary> The cube root of 2. Approximately 1.26. This is a f64/double precision constant. </summary>
1518
public const double CBRT2_DBL = 1.25992104989487316476d;
1619

@@ -27,6 +30,9 @@ unsafe public static partial class maxmath
2730
/// <summary> The square root of 3. Approximately 1.73. </summary>
2831
public const float SQRT3 = 1.73205080f;
2932

33+
/// <summary> The square root of 5. Approximately 2.23. </summary>
34+
public const float SQRT5 = 2.23606797f;
35+
3036
/// <summary> The cube root of 2. Approximately 1.26. </summary>
3137
public const float CBRT2 = 1.25992104f;
3238

Runtime/Math Lib/Functions/Arithmetic/Add-Subtract.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@ public static float2 addsub(float2 a, float2 b)
264264
{
265265
if (Sse.IsSseSupported)
266266
{
267-
return RegisterConversion.ToType<float2>(Xse.subadd_ps(RegisterConversion.ToV128(a), RegisterConversion.ToV128(b)));
267+
return RegisterConversion.ToFloat2(Xse.subadd_ps(RegisterConversion.ToV128(a), RegisterConversion.ToV128(b)));
268268
}
269269
else
270270
{
@@ -278,7 +278,7 @@ public static float3 addsub(float3 a, float3 b)
278278
{
279279
if (Sse.IsSseSupported)
280280
{
281-
return RegisterConversion.ToType<float3>(Xse.subadd_ps(RegisterConversion.ToV128(a), RegisterConversion.ToV128(b)));
281+
return RegisterConversion.ToFloat3(Xse.subadd_ps(RegisterConversion.ToV128(a), RegisterConversion.ToV128(b)));
282282
}
283283
else
284284
{
@@ -292,7 +292,7 @@ public static float4 addsub(float4 a, float4 b)
292292
{
293293
if (Sse.IsSseSupported)
294294
{
295-
return RegisterConversion.ToType<float4>(Xse.subadd_ps(RegisterConversion.ToV128(a), RegisterConversion.ToV128(b)));
295+
return RegisterConversion.ToFloat4(Xse.subadd_ps(RegisterConversion.ToV128(a), RegisterConversion.ToV128(b)));
296296
}
297297
else
298298
{
@@ -321,7 +321,7 @@ public static double2 addsub(double2 a, double2 b)
321321
{
322322
if (Sse2.IsSse2Supported)
323323
{
324-
return RegisterConversion.ToType<double2>(Xse.subadd_pd(RegisterConversion.ToV128(a), RegisterConversion.ToV128(b)));
324+
return RegisterConversion.ToDouble2(Xse.subadd_pd(RegisterConversion.ToV128(a), RegisterConversion.ToV128(b)));
325325
}
326326
else
327327
{
@@ -335,7 +335,7 @@ public static double3 addsub(double3 a, double3 b)
335335
{
336336
if (Avx.IsAvxSupported)
337337
{
338-
return RegisterConversion.ToType<double3>(Xse.mm256_subadd_pd(RegisterConversion.ToV256(a), RegisterConversion.ToV256(b)));
338+
return RegisterConversion.ToDouble3(Xse.mm256_subadd_pd(RegisterConversion.ToV256(a), RegisterConversion.ToV256(b)));
339339
}
340340
else
341341
{
@@ -349,7 +349,7 @@ public static double4 addsub(double4 a, double4 b)
349349
{
350350
if (Avx.IsAvxSupported)
351351
{
352-
return RegisterConversion.ToType<double4>(Xse.mm256_subadd_pd(RegisterConversion.ToV256(a), RegisterConversion.ToV256(b)));
352+
return RegisterConversion.ToDouble4(Xse.mm256_subadd_pd(RegisterConversion.ToV256(a), RegisterConversion.ToV256(b)));
353353
}
354354
else
355355
{
@@ -599,7 +599,7 @@ public static uint2 addsub(uint2 a, uint2 b)
599599
{
600600
if (Sse2.IsSse2Supported)
601601
{
602-
return RegisterConversion.ToType<uint2>(Xse.subadd_epi32(RegisterConversion.ToV128(a), RegisterConversion.ToV128(b), 2));
602+
return RegisterConversion.ToUInt2(Xse.subadd_epi32(RegisterConversion.ToV128(a), RegisterConversion.ToV128(b), 2));
603603
}
604604
else
605605
{
@@ -613,7 +613,7 @@ public static uint3 addsub(uint3 a, uint3 b)
613613
{
614614
if (Sse2.IsSse2Supported)
615615
{
616-
return RegisterConversion.ToType<uint3>(Xse.subadd_epi32(RegisterConversion.ToV128(a), RegisterConversion.ToV128(b), 3));
616+
return RegisterConversion.ToUInt3(Xse.subadd_epi32(RegisterConversion.ToV128(a), RegisterConversion.ToV128(b), 3));
617617
}
618618
else
619619
{
@@ -627,7 +627,7 @@ public static uint4 addsub(uint4 a, uint4 b)
627627
{
628628
if (Sse2.IsSse2Supported)
629629
{
630-
return RegisterConversion.ToType<uint4>(Xse.subadd_epi32(RegisterConversion.ToV128(a), RegisterConversion.ToV128(b), 4));
630+
return RegisterConversion.ToUInt4(Xse.subadd_epi32(RegisterConversion.ToV128(a), RegisterConversion.ToV128(b), 4));
631631
}
632632
else
633633
{

Runtime/Math Lib/Functions/Arithmetic/Average.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -811,7 +811,7 @@ public static uint2 avg(uint2 x, uint2 y, Promise noOverflow = Promise.Nothing)
811811
{
812812
if (Sse2.IsSse2Supported)
813813
{
814-
return RegisterConversion.ToType<uint2>(Xse.avg_epu32(RegisterConversion.ToV128(x), RegisterConversion.ToV128(y), noOverflow.Promises(Promise.NoOverflow)));
814+
return RegisterConversion.ToUInt2(Xse.avg_epu32(RegisterConversion.ToV128(x), RegisterConversion.ToV128(y), noOverflow.Promises(Promise.NoOverflow)));
815815
}
816816
else
817817
{
@@ -833,7 +833,7 @@ public static uint3 avg(uint3 x, uint3 y, Promise noOverflow = Promise.Nothing)
833833
{
834834
if (Sse2.IsSse2Supported)
835835
{
836-
return RegisterConversion.ToType<uint3>(Xse.avg_epu32(RegisterConversion.ToV128(x), RegisterConversion.ToV128(y), noOverflow.Promises(Promise.NoOverflow)));
836+
return RegisterConversion.ToUInt3(Xse.avg_epu32(RegisterConversion.ToV128(x), RegisterConversion.ToV128(y), noOverflow.Promises(Promise.NoOverflow)));
837837
}
838838
else
839839
{
@@ -855,7 +855,7 @@ public static uint4 avg(uint4 x, uint4 y, Promise noOverflow = Promise.Nothing)
855855
{
856856
if (Sse2.IsSse2Supported)
857857
{
858-
return RegisterConversion.ToType<uint4>(Xse.avg_epu32(RegisterConversion.ToV128(x), RegisterConversion.ToV128(y), noOverflow.Promises(Promise.NoOverflow)));
858+
return RegisterConversion.ToUInt4(Xse.avg_epu32(RegisterConversion.ToV128(x), RegisterConversion.ToV128(y), noOverflow.Promises(Promise.NoOverflow)));
859859
}
860860
else
861861
{
@@ -902,7 +902,7 @@ public static int2 avg(int2 x, int2 y, Promise noOverflow = Promise.Nothing)
902902
{
903903
if (Sse2.IsSse2Supported)
904904
{
905-
return RegisterConversion.ToType<int2>(Xse.avg_epi32(RegisterConversion.ToV128(x), RegisterConversion.ToV128(y), noOverflow.Promises(Promise.NoOverflow), 2));
905+
return RegisterConversion.ToInt2(Xse.avg_epi32(RegisterConversion.ToV128(x), RegisterConversion.ToV128(y), noOverflow.Promises(Promise.NoOverflow), 2));
906906
}
907907
else
908908
{
@@ -917,7 +917,7 @@ public static int3 avg(int3 x, int3 y, Promise noOverflow = Promise.Nothing)
917917
{
918918
if (Sse2.IsSse2Supported)
919919
{
920-
return RegisterConversion.ToType<int3>(Xse.avg_epi32(RegisterConversion.ToV128(x), RegisterConversion.ToV128(y), noOverflow.Promises(Promise.NoOverflow), 3));
920+
return RegisterConversion.ToInt3(Xse.avg_epi32(RegisterConversion.ToV128(x), RegisterConversion.ToV128(y), noOverflow.Promises(Promise.NoOverflow), 3));
921921
}
922922
else
923923
{
@@ -932,7 +932,7 @@ public static int4 avg(int4 x, int4 y, Promise noOverflow = Promise.Nothing)
932932
{
933933
if (Sse2.IsSse2Supported)
934934
{
935-
return RegisterConversion.ToType<int4>(Xse.avg_epi32(RegisterConversion.ToV128(x), RegisterConversion.ToV128(y), noOverflow.Promises(Promise.NoOverflow), 4));
935+
return RegisterConversion.ToInt4(Xse.avg_epi32(RegisterConversion.ToV128(x), RegisterConversion.ToV128(y), noOverflow.Promises(Promise.NoOverflow), 4));
936936
}
937937
else
938938
{

Runtime/Math Lib/Functions/Arithmetic/Divide With Remainder.cs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1192,8 +1192,8 @@ public static int2 divrem(int2 dividend, int2 divisor, out int2 remainder)
11921192
{
11931193
if (Sse2.IsSse2Supported)
11941194
{
1195-
int2 ret = RegisterConversion.ToType<int2>(Xse.divrem_epi32(RegisterConversion.ToV128(dividend), RegisterConversion.ToV128(divisor), out v128 rem, 2));
1196-
remainder = RegisterConversion.ToType<int2>(rem);
1195+
int2 ret = RegisterConversion.ToInt2(Xse.divrem_epi32(RegisterConversion.ToV128(dividend), RegisterConversion.ToV128(divisor), out v128 rem, 2));
1196+
remainder = RegisterConversion.ToInt2(rem);
11971197

11981198
return ret;
11991199
}
@@ -1211,8 +1211,8 @@ public static int3 divrem(int3 dividend, int3 divisor, out int3 remainder)
12111211
{
12121212
if (Sse2.IsSse2Supported)
12131213
{
1214-
int3 ret = RegisterConversion.ToType<int3>(Xse.divrem_epi32(RegisterConversion.ToV128(dividend), RegisterConversion.ToV128(divisor), out v128 rem, 3));
1215-
remainder = RegisterConversion.ToType<int3>(rem);
1214+
int3 ret = RegisterConversion.ToInt3(Xse.divrem_epi32(RegisterConversion.ToV128(dividend), RegisterConversion.ToV128(divisor), out v128 rem, 3));
1215+
remainder = RegisterConversion.ToInt3(rem);
12161216

12171217
return ret;
12181218
}
@@ -1230,8 +1230,8 @@ public static int4 divrem(int4 dividend, int4 divisor, out int4 remainder)
12301230
{
12311231
if (Sse2.IsSse2Supported)
12321232
{
1233-
int4 ret = RegisterConversion.ToType<int4>(Xse.divrem_epi32(RegisterConversion.ToV128(dividend), RegisterConversion.ToV128(divisor), out v128 rem, 4));
1234-
remainder = RegisterConversion.ToType<int4>(rem);
1233+
int4 ret = RegisterConversion.ToInt4(Xse.divrem_epi32(RegisterConversion.ToV128(dividend), RegisterConversion.ToV128(divisor), out v128 rem, 4));
1234+
remainder = RegisterConversion.ToInt4(rem);
12351235

12361236
return ret;
12371237
}
@@ -1280,8 +1280,8 @@ public static uint2 divrem(uint2 dividend, uint2 divisor, out uint2 remainder)
12801280
{
12811281
if (Sse2.IsSse2Supported)
12821282
{
1283-
uint2 ret = RegisterConversion.ToType<uint2>(Xse.divrem_epu32(RegisterConversion.ToV128(dividend), RegisterConversion.ToV128(divisor), out v128 rem, 2));
1284-
remainder = RegisterConversion.ToType<uint2>(rem);
1283+
uint2 ret = RegisterConversion.ToUInt2(Xse.divrem_epu32(RegisterConversion.ToV128(dividend), RegisterConversion.ToV128(divisor), out v128 rem, 2));
1284+
remainder = RegisterConversion.ToUInt2(rem);
12851285

12861286
return ret;
12871287
}
@@ -1299,8 +1299,8 @@ public static uint3 divrem(uint3 dividend, uint3 divisor, out uint3 remainder)
12991299
{
13001300
if (Sse2.IsSse2Supported)
13011301
{
1302-
uint3 ret = RegisterConversion.ToType<uint3>(Xse.divrem_epu32(RegisterConversion.ToV128(dividend), RegisterConversion.ToV128(divisor), out v128 rem, 3));
1303-
remainder = RegisterConversion.ToType<uint3>(rem);
1302+
uint3 ret = RegisterConversion.ToUInt3(Xse.divrem_epu32(RegisterConversion.ToV128(dividend), RegisterConversion.ToV128(divisor), out v128 rem, 3));
1303+
remainder = RegisterConversion.ToUInt3(rem);
13041304

13051305
return ret;
13061306
}
@@ -1318,8 +1318,8 @@ public static uint4 divrem(uint4 dividend, uint4 divisor, out uint4 remainder)
13181318
{
13191319
if (Sse2.IsSse2Supported)
13201320
{
1321-
uint4 ret = RegisterConversion.ToType<uint4>(Xse.divrem_epu32(RegisterConversion.ToV128(dividend), RegisterConversion.ToV128(divisor), out v128 rem, 4));
1322-
remainder = RegisterConversion.ToType<uint4>(rem);
1321+
uint4 ret = RegisterConversion.ToUInt4(Xse.divrem_epu32(RegisterConversion.ToV128(dividend), RegisterConversion.ToV128(divisor), out v128 rem, 4));
1322+
remainder = RegisterConversion.ToUInt4(rem);
13231323

13241324
return ret;
13251325
}

Runtime/Math Lib/Functions/Arithmetic/FMA/Float Divide-Add-Subtract.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public static float2 dadsub(float2 a, float2 b, float2 c, bool fast = false)
1515
{
1616
if (Sse.IsSseSupported)
1717
{
18-
return RegisterConversion.ToType<float2>(Xse.fmsubadd_ps(RegisterConversion.ToV128(a),
18+
return RegisterConversion.ToFloat2(Xse.fmsubadd_ps(RegisterConversion.ToV128(a),
1919
fast ? Sse.rcp_ps(RegisterConversion.ToV128(b)) : RegisterConversion.ToV128(math.rcp(b)),
2020
RegisterConversion.ToV128(c)));
2121
}
@@ -31,7 +31,7 @@ public static float3 dadsub(float3 a, float3 b, float3 c, bool fast = false)
3131
{
3232
if (Sse.IsSseSupported)
3333
{
34-
return RegisterConversion.ToType<float3>(Xse.fmsubadd_ps(RegisterConversion.ToV128(a),
34+
return RegisterConversion.ToFloat3(Xse.fmsubadd_ps(RegisterConversion.ToV128(a),
3535
fast ? Sse.rcp_ps(RegisterConversion.ToV128(b)) : RegisterConversion.ToV128(math.rcp(b)),
3636
RegisterConversion.ToV128(c)));
3737
}
@@ -47,7 +47,7 @@ public static float4 dadsub(float4 a, float4 b, float4 c, bool fast = false)
4747
{
4848
if (Sse.IsSseSupported)
4949
{
50-
return RegisterConversion.ToType<float4>(Xse.fmsubadd_ps(RegisterConversion.ToV128(a),
50+
return RegisterConversion.ToFloat4(Xse.fmsubadd_ps(RegisterConversion.ToV128(a),
5151
fast ? Sse.rcp_ps(RegisterConversion.ToV128(b)) : RegisterConversion.ToV128(math.rcp(b)),
5252
RegisterConversion.ToV128(c)));
5353
}
@@ -78,7 +78,7 @@ public static double2 dadsub(double2 a, double2 b, double2 c, bool fast = false)
7878
{
7979
if (Sse2.IsSse2Supported)
8080
{
81-
return RegisterConversion.ToType<double2>(Xse.fmsubadd_pd(RegisterConversion.ToV128(a),
81+
return RegisterConversion.ToDouble2(Xse.fmsubadd_pd(RegisterConversion.ToV128(a),
8282
fast ? Xse.rcp_pd(RegisterConversion.ToV128(b)) : RegisterConversion.ToV128(math.rcp(b)),
8383
RegisterConversion.ToV128(c)));
8484
}
@@ -105,7 +105,7 @@ public static double3 dadsub(double3 a, double3 b, double3 c, bool fast = false)
105105
divisor = RegisterConversion.ToV256(math.rcp(b));
106106
}
107107

108-
return RegisterConversion.ToType<double3>(Xse.mm256_fmsubadd_ps(RegisterConversion.ToV256(a), divisor, RegisterConversion.ToV256(c)));
108+
return RegisterConversion.ToDouble3(Xse.mm256_fmsubadd_ps(RegisterConversion.ToV256(a), divisor, RegisterConversion.ToV256(c)));
109109
}
110110
else
111111
{
@@ -130,7 +130,7 @@ public static double4 dadsub(double4 a, double4 b, double4 c, bool fast = false)
130130
divisor = RegisterConversion.ToV256(math.rcp(b));
131131
}
132132

133-
return RegisterConversion.ToType<double4>(Xse.mm256_fmsubadd_ps(RegisterConversion.ToV256(a), divisor, RegisterConversion.ToV256(c)));
133+
return RegisterConversion.ToDouble4(Xse.mm256_fmsubadd_ps(RegisterConversion.ToV256(a), divisor, RegisterConversion.ToV256(c)));
134134
}
135135
else
136136
{

Runtime/Math Lib/Functions/Arithmetic/FMA/Float Divide-Subtract-Add.cs.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public static float2 dsubadd(float2 a, float2 b, float2 c, bool fast = false)
1515
{
1616
if (Sse.IsSseSupported)
1717
{
18-
return RegisterConversion.ToType<float2>(Xse.fmaddsub_ps(RegisterConversion.ToV128(a),
18+
return RegisterConversion.ToFloat2(Xse.fmaddsub_ps(RegisterConversion.ToV128(a),
1919
fast ? Sse.rcp_ps(RegisterConversion.ToV128(b)) : RegisterConversion.ToV128(math.rcp(b)),
2020
RegisterConversion.ToV128(c)));
2121
}
@@ -31,7 +31,7 @@ public static float3 dsubadd(float3 a, float3 b, float3 c, bool fast = false)
3131
{
3232
if (Sse.IsSseSupported)
3333
{
34-
return RegisterConversion.ToType<float3>(Xse.fmaddsub_ps(RegisterConversion.ToV128(a),
34+
return RegisterConversion.ToFloat3(Xse.fmaddsub_ps(RegisterConversion.ToV128(a),
3535
fast ? Sse.rcp_ps(RegisterConversion.ToV128(b)) : RegisterConversion.ToV128(math.rcp(b)),
3636
RegisterConversion.ToV128(c)));
3737
}
@@ -47,7 +47,7 @@ public static float4 dsubadd(float4 a, float4 b, float4 c, bool fast = false)
4747
{
4848
if (Sse.IsSseSupported)
4949
{
50-
return RegisterConversion.ToType<float4>(Xse.fmaddsub_ps(RegisterConversion.ToV128(a),
50+
return RegisterConversion.ToFloat4(Xse.fmaddsub_ps(RegisterConversion.ToV128(a),
5151
fast ? Sse.rcp_ps(RegisterConversion.ToV128(b)) : RegisterConversion.ToV128(math.rcp(b)),
5252
RegisterConversion.ToV128(c)));
5353
}
@@ -78,7 +78,7 @@ public static double2 dsubadd(double2 a, double2 b, double2 c, bool fast = false
7878
{
7979
if (Sse2.IsSse2Supported)
8080
{
81-
return RegisterConversion.ToType<double2>(Xse.fmaddsub_pd(RegisterConversion.ToV128(a),
81+
return RegisterConversion.ToDouble2(Xse.fmaddsub_pd(RegisterConversion.ToV128(a),
8282
fast ? Xse.rcp_pd(RegisterConversion.ToV128(b)) : RegisterConversion.ToV128(math.rcp(b)),
8383
RegisterConversion.ToV128(c)));
8484
}
@@ -105,7 +105,7 @@ public static double3 dsubadd(double3 a, double3 b, double3 c, bool fast = false
105105
divisor = RegisterConversion.ToV256(math.rcp(b));
106106
}
107107

108-
return RegisterConversion.ToType<double3>(Xse.mm256_fmaddsub_ps(RegisterConversion.ToV256(a), divisor, RegisterConversion.ToV256(c)));
108+
return RegisterConversion.ToDouble3(Xse.mm256_fmaddsub_ps(RegisterConversion.ToV256(a), divisor, RegisterConversion.ToV256(c)));
109109
}
110110
else
111111
{
@@ -130,7 +130,7 @@ public static double4 dsubadd(double4 a, double4 b, double4 c, bool fast = false
130130
divisor = RegisterConversion.ToV256(math.rcp(b));
131131
}
132132

133-
return RegisterConversion.ToType<double4>(Xse.mm256_fmaddsub_ps(RegisterConversion.ToV256(a), divisor, RegisterConversion.ToV256(c)));
133+
return RegisterConversion.ToDouble4(Xse.mm256_fmaddsub_ps(RegisterConversion.ToV256(a), divisor, RegisterConversion.ToV256(c)));
134134
}
135135
else
136136
{

0 commit comments

Comments
 (0)