mirror of
https://github.com/oliverbooth/X10D
synced 2024-11-22 09:28:48 +00:00
Obsolete AdvSimd intrinsic implementations, minor improvements in certain areas
This commit is contained in:
parent
5ff7b68b37
commit
fa0ece667e
@ -226,21 +226,21 @@ public class SpanTest
|
||||
Assert.That(actual, Is.EqualTo(expected));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void PackByteInternal_AdvSimd_ShouldReturnCorrectByte_GivenReadOnlySpan_Using()
|
||||
{
|
||||
if (!AdvSimd.IsSupported)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
const byte expected = 0b00110011;
|
||||
ReadOnlySpan<bool> span = stackalloc bool[8] {true, true, false, false, true, true, false, false};
|
||||
|
||||
byte actual = span.PackByteInternal_AdvSimd();
|
||||
|
||||
Assert.That(actual, Is.EqualTo(expected));
|
||||
}
|
||||
// [Test]
|
||||
// public void PackByteInternal_AdvSimd_ShouldReturnCorrectByte_GivenReadOnlySpan_Using()
|
||||
// {
|
||||
// if (!AdvSimd.IsSupported)
|
||||
// {
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// const byte expected = 0b00110011;
|
||||
// ReadOnlySpan<bool> span = stackalloc bool[8] {true, true, false, false, true, true, false, false};
|
||||
//
|
||||
// byte actual = span.PackByteInternal_AdvSimd();
|
||||
//
|
||||
// Assert.That(actual, Is.EqualTo(expected));
|
||||
// }
|
||||
#endif
|
||||
|
||||
[Test]
|
||||
@ -345,25 +345,25 @@ public class SpanTest
|
||||
Assert.That(actual, Is.EqualTo(expected));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void PackInt32Internal_AdvSimd_ShouldReturnCorrectInt32_GivenReadOnlySpan()
|
||||
{
|
||||
if (!AdvSimd.IsSupported)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
const int expected = 0b01010101_10101010_01010101_10101010;
|
||||
ReadOnlySpan<bool> span = stackalloc bool[32]
|
||||
{
|
||||
false, true, false, true, false, true, false, true, true, false, true, false, true, false, true, false, false,
|
||||
true, false, true, false, true, false, true, true, false, true, false, true, false, true, false,
|
||||
};
|
||||
|
||||
int actual = span.PackInt32Internal_AdvSimd();
|
||||
|
||||
Assert.That(actual, Is.EqualTo(expected));
|
||||
}
|
||||
// [Test]
|
||||
// public void PackInt32Internal_AdvSimd_ShouldReturnCorrectInt32_GivenReadOnlySpan()
|
||||
// {
|
||||
// if (!AdvSimd.IsSupported)
|
||||
// {
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// const int expected = 0b01010101_10101010_01010101_10101010;
|
||||
// ReadOnlySpan<bool> span = stackalloc bool[32]
|
||||
// {
|
||||
// false, true, false, true, false, true, false, true, true, false, true, false, true, false, true, false, false,
|
||||
// true, false, true, false, true, false, true, true, false, true, false, true, false, true, false,
|
||||
// };
|
||||
//
|
||||
// int actual = span.PackInt32Internal_AdvSimd();
|
||||
//
|
||||
// Assert.That(actual, Is.EqualTo(expected));
|
||||
// }
|
||||
#endif
|
||||
|
||||
[Test]
|
||||
|
@ -23,7 +23,7 @@ public static class ByteExtensions
|
||||
/// <param name="value">The value to unpack.</param>
|
||||
/// <returns>An array of <see cref="bool" /> with length 8.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool[] Unpack(this byte value)
|
||||
{
|
||||
var buffer = new bool[Size];
|
||||
@ -38,7 +38,7 @@ public static class ByteExtensions
|
||||
/// <param name="destination">When this method returns, contains the unpacked booleans from <paramref name="value" />.</param>
|
||||
/// <exception cref="ArgumentException"><paramref name="destination" /> is not large enough to contain the result.</exception>
|
||||
[ExcludeFromCodeCoverage]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static void Unpack(this byte value, Span<bool> destination)
|
||||
{
|
||||
if (destination.Length < Size)
|
||||
@ -57,7 +57,7 @@ public static class ByteExtensions
|
||||
UnpackInternal_Fallback(value, destination);
|
||||
}
|
||||
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
internal static void UnpackInternal_Fallback(this byte value, Span<bool> destination)
|
||||
{
|
||||
for (var index = 0; index < Size; index++)
|
||||
@ -67,7 +67,7 @@ public static class ByteExtensions
|
||||
}
|
||||
|
||||
#if NETCOREAPP3_0_OR_GREATER
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
internal unsafe static void UnpackInternal_Ssse3(this byte value, Span<bool> destination)
|
||||
{
|
||||
fixed (bool* pDestination = destination)
|
||||
|
@ -23,7 +23,7 @@ public static class Int16Extensions
|
||||
/// <param name="value">The value to unpack.</param>
|
||||
/// <returns>An array of <see cref="bool" /> with length 16.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool[] Unpack(this short value)
|
||||
{
|
||||
var ret = new bool[Size];
|
||||
@ -38,7 +38,7 @@ public static class Int16Extensions
|
||||
/// <param name="destination">When this method returns, contains the unpacked booleans from <paramref name="value" />.</param>
|
||||
/// <exception cref="ArgumentException"><paramref name="destination" /> is not large enough to contain the result.</exception>
|
||||
[ExcludeFromCodeCoverage]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static void Unpack(this short value, Span<bool> destination)
|
||||
{
|
||||
if (destination.Length < Size)
|
||||
@ -57,7 +57,7 @@ public static class Int16Extensions
|
||||
UnpackInternal_Fallback(value, destination);
|
||||
}
|
||||
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
internal static void UnpackInternal_Fallback(this short value, Span<bool> destination)
|
||||
{
|
||||
for (var index = 0; index < Size; index++)
|
||||
@ -67,7 +67,7 @@ public static class Int16Extensions
|
||||
}
|
||||
|
||||
#if NETCOREAPP3_0_OR_GREATER
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
internal unsafe static void UnpackInternal_Ssse3(this short value, Span<bool> destination)
|
||||
{
|
||||
fixed (bool* pDestination = destination)
|
||||
|
@ -23,7 +23,7 @@ public static class Int32Extensions
|
||||
/// <param name="value">The value to unpack.</param>
|
||||
/// <returns>An array of <see cref="bool" /> with length 32.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool[] Unpack(this int value)
|
||||
{
|
||||
var ret = new bool[Size];
|
||||
@ -38,7 +38,7 @@ public static class Int32Extensions
|
||||
/// <param name="destination">When this method returns, contains the unpacked booleans from <paramref name="value" />.</param>
|
||||
/// <exception cref="ArgumentException"><paramref name="destination" /> is not large enough to contain the result.</exception>
|
||||
[ExcludeFromCodeCoverage]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static void Unpack(this int value, Span<bool> destination)
|
||||
{
|
||||
if (destination.Length < Size)
|
||||
@ -63,7 +63,7 @@ public static class Int32Extensions
|
||||
UnpackInternal_Fallback(value, destination);
|
||||
}
|
||||
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
internal static void UnpackInternal_Fallback(this int value, Span<bool> destination)
|
||||
{
|
||||
for (var index = 0; index < Size; index++)
|
||||
@ -73,7 +73,7 @@ public static class Int32Extensions
|
||||
}
|
||||
|
||||
#if NETCOREAPP3_0_OR_GREATER
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
internal static unsafe void UnpackInternal_Ssse3(this int value, Span<bool> destination)
|
||||
{
|
||||
fixed (bool* pDestination = destination)
|
||||
|
@ -269,20 +269,9 @@ public static class ListExtensions
|
||||
}
|
||||
#endif
|
||||
|
||||
int start = range.Start.IsFromEnd ? source.Count - range.Start.Value : range.Start.Value;
|
||||
int end = range.End.IsFromEnd ? source.Count - range.End.Value : range.End.Value;
|
||||
(int start, int length) = range.GetOffsetAndLength(source.Count);
|
||||
|
||||
if (end < start)
|
||||
{
|
||||
throw new ArgumentException(ExceptionMessages.EndIndexLessThanStartIndex);
|
||||
}
|
||||
|
||||
if (end >= source.Count)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException(nameof(range), ExceptionMessages.EndIndexGreaterThanCount);
|
||||
}
|
||||
|
||||
for (int index = end; index >= start; index--)
|
||||
for (int index = start + length; index >= start; index--)
|
||||
{
|
||||
source.RemoveAt(index);
|
||||
}
|
||||
|
@ -5,9 +5,9 @@ namespace X10D.CompilerServices;
|
||||
internal static class CompilerResources
|
||||
{
|
||||
#if NETCOREAPP3_0_OR_GREATER
|
||||
public const MethodImplOptions MethodImplOptions = System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining |
|
||||
System.Runtime.CompilerServices.MethodImplOptions.AggressiveOptimization;
|
||||
public const MethodImplOptions MaxOptimization = System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining |
|
||||
System.Runtime.CompilerServices.MethodImplOptions.AggressiveOptimization;
|
||||
#else
|
||||
public const MethodImplOptions MethodImplOptions = System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining;
|
||||
public const MethodImplOptions MaxOptimization = System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining;
|
||||
#endif
|
||||
}
|
||||
|
@ -30,7 +30,7 @@ public static class IntrinsicExtensions
|
||||
/// A <see cref="Vector64{T}"/> of <see langword="byte"/> which remapped back to 0 and 1 based on boolean truthiness.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static Vector64<byte> CorrectBoolean(this Vector64<byte> vector)
|
||||
{
|
||||
Vector64<byte> output = IntrinsicUtility.GetUninitializedVector64<byte>();
|
||||
@ -65,7 +65,7 @@ public static class IntrinsicExtensions
|
||||
/// A <see cref="Vector128{T}"/> of <see langword="byte"/> which remapped back to 0 and 1 based on boolean truthiness.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
[ExcludeFromCodeCoverage]
|
||||
public static Vector128<byte> CorrectBoolean(this Vector128<byte> vector)
|
||||
{
|
||||
@ -88,7 +88,7 @@ public static class IntrinsicExtensions
|
||||
/// A <see cref="Vector256{T}"/> of <see langword="byte"/> which remapped back to 0 and 1 based on boolean truthiness.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
[ExcludeFromCodeCoverage]
|
||||
public static Vector256<byte> CorrectBoolean(this Vector256<byte> vector)
|
||||
{
|
||||
@ -112,7 +112,7 @@ public static class IntrinsicExtensions
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[CLSCompliant(false)]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
[ExcludeFromCodeCoverage]
|
||||
public static Vector128<ulong> ReverseElements(this Vector128<ulong> vector)
|
||||
{
|
||||
@ -120,7 +120,7 @@ public static class IntrinsicExtensions
|
||||
}
|
||||
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
internal static Vector128<byte> CorrectBooleanInternal_Fallback(this Vector128<byte> vector)
|
||||
{
|
||||
Vector128<byte> output = IntrinsicUtility.GetUninitializedVector128<byte>();
|
||||
@ -135,7 +135,7 @@ public static class IntrinsicExtensions
|
||||
}
|
||||
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
internal static Vector128<byte> CorrectBooleanInternal_Sse2(this Vector128<byte> vector)
|
||||
{
|
||||
Vector128<byte> cmp = Sse2.CompareEqual(vector, Vector128<byte>.Zero);
|
||||
@ -145,7 +145,7 @@ public static class IntrinsicExtensions
|
||||
}
|
||||
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
internal static Vector256<byte> CorrectBooleanInternal_Fallback(this Vector256<byte> vector)
|
||||
{
|
||||
Vector256<byte> output = IntrinsicUtility.GetUninitializedVector256<byte>();
|
||||
@ -160,7 +160,7 @@ public static class IntrinsicExtensions
|
||||
}
|
||||
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
internal static Vector256<byte> CorrectBooleanInternal_Avx2(this Vector256<byte> vector)
|
||||
{
|
||||
Vector256<byte> cmp = Avx2.CompareEqual(vector, Vector256<byte>.Zero);
|
||||
@ -170,7 +170,7 @@ public static class IntrinsicExtensions
|
||||
}
|
||||
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
internal static Vector128<ulong> ReverseElementsInternal_Fallback(this Vector128<ulong> vector)
|
||||
{
|
||||
Vector128<ulong> output = IntrinsicUtility.GetUninitializedVector128<ulong>();
|
||||
@ -182,7 +182,7 @@ public static class IntrinsicExtensions
|
||||
}
|
||||
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
internal static Vector128<ulong> ReverseElementsInternal_Sse2(this Vector128<ulong> vector)
|
||||
{
|
||||
return Sse2.Shuffle(vector.AsDouble(), vector.AsDouble(), 0b01).AsUInt64();
|
||||
|
@ -33,7 +33,7 @@ public static class IntrinsicUtility
|
||||
/// <returns>The truncated product vector.</returns>
|
||||
[Pure]
|
||||
[CLSCompliant(false)]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
[ExcludeFromCodeCoverage]
|
||||
public static Vector128<ulong> Multiply(Vector128<ulong> left, Vector128<ulong> right)
|
||||
{
|
||||
@ -64,7 +64,7 @@ public static class IntrinsicUtility
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[CLSCompliant(false)]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
[ExcludeFromCodeCoverage]
|
||||
public static Vector256<ulong> Multiply(Vector256<ulong> lhs, Vector256<ulong> rhs)
|
||||
{
|
||||
@ -92,7 +92,7 @@ public static class IntrinsicUtility
|
||||
/// A <see cref="Vector128{T}"/> of <see langword="long"/> whose elements is 64-bit truncated product of lhs and rhs.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static Vector128<long> Multiply(Vector128<long> lhs, Vector128<long> rhs)
|
||||
{
|
||||
return Multiply(lhs.AsUInt64(), rhs.AsUInt64()).AsInt64();
|
||||
@ -116,7 +116,7 @@ public static class IntrinsicUtility
|
||||
/// A <see cref="Vector256{T}"/> of <see langword="ulong"/> whose elements is 64-bit truncated product of lhs and rhs.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static Vector256<long> Multiply(Vector256<long> lhs, Vector256<long> rhs)
|
||||
{
|
||||
return Multiply(lhs.AsUInt64(), rhs.AsUInt64()).AsInt64();
|
||||
@ -142,7 +142,7 @@ public static class IntrinsicUtility
|
||||
/// elements in lhs and rhs.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
[ExcludeFromCodeCoverage]
|
||||
public static Vector128<int> HorizontalOr(Vector128<int> left, Vector128<int> right)
|
||||
{
|
||||
@ -173,7 +173,7 @@ public static class IntrinsicUtility
|
||||
/// elements in lhs and rhs.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
[CLSCompliant(false)]
|
||||
public static Vector128<uint> HorizontalOr(Vector128<uint> left, Vector128<uint> right)
|
||||
{
|
||||
@ -181,7 +181,7 @@ public static class IntrinsicUtility
|
||||
}
|
||||
|
||||
// Helper methods
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
internal static Vector64<T> GetUninitializedVector64<T>() where T : struct
|
||||
{
|
||||
#if NET6_0_OR_GREATER
|
||||
@ -192,7 +192,7 @@ public static class IntrinsicUtility
|
||||
#endif
|
||||
}
|
||||
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
internal static Vector128<T> GetUninitializedVector128<T>() where T : struct
|
||||
{
|
||||
#if NET6_0_OR_GREATER
|
||||
@ -203,7 +203,7 @@ public static class IntrinsicUtility
|
||||
#endif
|
||||
}
|
||||
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
internal static Vector256<T> GetUninitializedVector256<T>() where T : struct
|
||||
{
|
||||
#if NET6_0_OR_GREATER
|
||||
@ -215,7 +215,7 @@ public static class IntrinsicUtility
|
||||
}
|
||||
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
internal static Vector128<int> HorizontalOr_Sse(Vector128<int> left, Vector128<int> right)
|
||||
{
|
||||
Vector128<float> leftSingle = left.AsSingle();
|
||||
@ -230,7 +230,7 @@ public static class IntrinsicUtility
|
||||
}
|
||||
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
internal static Vector128<int> HorizontalOrInternal_Fallback(Vector128<int> left, Vector128<int> right)
|
||||
{
|
||||
Vector128<int> output = GetUninitializedVector128<int>();
|
||||
@ -249,7 +249,7 @@ public static class IntrinsicUtility
|
||||
}
|
||||
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
internal static Vector128<ulong> MultiplyInternal_Fallback(Vector128<ulong> left, Vector128<ulong> right)
|
||||
{
|
||||
ulong leftInteger1 = Unsafe.As<Vector128<ulong>, ulong>(ref left);
|
||||
@ -266,7 +266,7 @@ public static class IntrinsicUtility
|
||||
}
|
||||
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
internal static Vector128<ulong> MultiplyInternal_Sse2(Vector128<ulong> left, Vector128<ulong> right)
|
||||
{
|
||||
// https://stackoverflow.com/questions/17863411/sse-multiplication-of-2-64-bit-integers
|
||||
@ -283,7 +283,7 @@ public static class IntrinsicUtility
|
||||
}
|
||||
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
internal static Vector256<ulong> MultiplyInternal_Fallback(Vector256<ulong> left, Vector256<ulong> right)
|
||||
{
|
||||
Vector256<ulong> output = GetUninitializedVector256<ulong>();
|
||||
@ -299,7 +299,7 @@ public static class IntrinsicUtility
|
||||
}
|
||||
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
internal static Vector256<ulong> MultiplyInternal_Avx2(Vector256<ulong> left, Vector256<ulong> right)
|
||||
{
|
||||
// https://stackoverflow.com/questions/17863411/sse-multiplication-of-2-64-bit-integers
|
||||
|
@ -7,7 +7,6 @@ using X10D.CompilerServices;
|
||||
#if NETCOREAPP3_0_OR_GREATER
|
||||
using System.Runtime.Intrinsics;
|
||||
using System.Runtime.Intrinsics.X86;
|
||||
using System.Runtime.Intrinsics.Arm;
|
||||
#endif
|
||||
|
||||
#if NET7_0_OR_GREATER
|
||||
@ -49,7 +48,7 @@ public static class SpanExtensions
|
||||
/// </returns>
|
||||
/// <exception cref="ArgumentException">The size of <typeparamref name="T" /> is unsupported.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool Contains<T>(this Span<T> span, T value) where T : struct, Enum
|
||||
{
|
||||
return Contains((ReadOnlySpan<T>)span, value);
|
||||
@ -68,51 +67,46 @@ public static class SpanExtensions
|
||||
/// </returns>
|
||||
/// <exception cref="ArgumentException">The size of <typeparamref name="T" /> is unsupported.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool Contains<T>(this ReadOnlySpan<T> span, T value) where T : struct, Enum
|
||||
{
|
||||
#if NET6_0_OR_GREATER
|
||||
unsafe
|
||||
switch (Unsafe.SizeOf<T>())
|
||||
{
|
||||
#pragma warning disable CS8500
|
||||
switch (sizeof(T))
|
||||
#pragma warning restore CS8500
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
ref byte enums = ref Unsafe.As<T, byte>(ref MemoryMarshal.GetReference(span));
|
||||
return MemoryMarshal.CreateSpan(ref enums, span.Length).Contains(Unsafe.As<T, byte>(ref value));
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
ref byte enums = ref Unsafe.As<T, byte>(ref MemoryMarshal.GetReference(span));
|
||||
return MemoryMarshal.CreateSpan(ref enums, span.Length).Contains(Unsafe.As<T, byte>(ref value));
|
||||
}
|
||||
|
||||
case 2:
|
||||
{
|
||||
ref ushort enums = ref Unsafe.As<T, ushort>(ref MemoryMarshal.GetReference(span));
|
||||
return MemoryMarshal.CreateSpan(ref enums, span.Length).Contains(Unsafe.As<T, ushort>(ref value));
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
ref ushort enums = ref Unsafe.As<T, ushort>(ref MemoryMarshal.GetReference(span));
|
||||
return MemoryMarshal.CreateSpan(ref enums, span.Length).Contains(Unsafe.As<T, ushort>(ref value));
|
||||
}
|
||||
|
||||
case 4:
|
||||
{
|
||||
ref uint enums = ref Unsafe.As<T, uint>(ref MemoryMarshal.GetReference(span));
|
||||
return MemoryMarshal.CreateSpan(ref enums, span.Length).Contains(Unsafe.As<T, uint>(ref value));
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
ref uint enums = ref Unsafe.As<T, uint>(ref MemoryMarshal.GetReference(span));
|
||||
return MemoryMarshal.CreateSpan(ref enums, span.Length).Contains(Unsafe.As<T, uint>(ref value));
|
||||
}
|
||||
|
||||
case 8:
|
||||
{
|
||||
ref ulong enums = ref Unsafe.As<T, ulong>(ref MemoryMarshal.GetReference(span));
|
||||
return MemoryMarshal.CreateSpan(ref enums, span.Length).Contains(Unsafe.As<T, ulong>(ref value));
|
||||
}
|
||||
case 8:
|
||||
{
|
||||
ref ulong enums = ref Unsafe.As<T, ulong>(ref MemoryMarshal.GetReference(span));
|
||||
return MemoryMarshal.CreateSpan(ref enums, span.Length).Contains(Unsafe.As<T, ulong>(ref value));
|
||||
}
|
||||
|
||||
// dotcover disable
|
||||
//NOSONAR
|
||||
default:
|
||||
// dotcover disable
|
||||
//NOSONAR
|
||||
default:
|
||||
#if NET7_0_OR_GREATER
|
||||
throw new UnreachableException(ExceptionMessages.EnumSizeIsUnexpected);
|
||||
throw new UnreachableException(string.Format(ExceptionMessages.EnumSizeIsUnexpected, Unsafe.SizeOf<T>()));
|
||||
#else
|
||||
throw new ArgumentException(ExceptionMessages.EnumSizeIsUnexpected);
|
||||
throw new ArgumentException(string.Format(ExceptionMessages.EnumSizeIsUnexpected, Unsafe.SizeOf<T>()));
|
||||
#endif
|
||||
//NOSONAR
|
||||
// dotcover enable
|
||||
}
|
||||
//NOSONAR
|
||||
// dotcover enable
|
||||
}
|
||||
#else
|
||||
foreach (var it in span)
|
||||
@ -134,7 +128,7 @@ public static class SpanExtensions
|
||||
/// <returns>An 8-bit unsigned integer containing the packed booleans.</returns>
|
||||
/// <exception cref="ArgumentException"><paramref name="source" /> contains more than 8 elements.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static byte PackByte(this Span<bool> source)
|
||||
{
|
||||
return PackByte((ReadOnlySpan<bool>)source);
|
||||
@ -147,7 +141,7 @@ public static class SpanExtensions
|
||||
/// <returns>An 8-bit unsigned integer containing the packed booleans.</returns>
|
||||
/// <exception cref="ArgumentException"><paramref name="source" /> contains more than 8 elements.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
[ExcludeFromCodeCoverage]
|
||||
public static byte PackByte(this ReadOnlySpan<bool> source)
|
||||
{
|
||||
@ -172,10 +166,10 @@ public static class SpanExtensions
|
||||
return PackByteInternal_Sse2(source);
|
||||
}
|
||||
|
||||
if (AdvSimd.IsSupported)
|
||||
{
|
||||
return PackByteInternal_AdvSimd(source);
|
||||
}
|
||||
// if (AdvSimd.IsSupported)
|
||||
// {
|
||||
// return PackByteInternal_AdvSimd(source);
|
||||
// }
|
||||
#endif
|
||||
|
||||
return PackByteInternal_Fallback(source);
|
||||
@ -201,7 +195,7 @@ public static class SpanExtensions
|
||||
/// <returns>A 16-bit signed integer containing the packed booleans.</returns>
|
||||
/// <exception cref="ArgumentException"><paramref name="source" /> contains more than 16 elements.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
[ExcludeFromCodeCoverage]
|
||||
public static short PackInt16(this ReadOnlySpan<bool> source)
|
||||
{
|
||||
@ -240,7 +234,7 @@ public static class SpanExtensions
|
||||
/// <returns>A 32-bit signed integer containing the packed booleans.</returns>
|
||||
/// <exception cref="ArgumentException"><paramref name="source" /> contains more than 32 elements.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int PackInt32(this Span<bool> source)
|
||||
{
|
||||
return PackInt32((ReadOnlySpan<bool>)source);
|
||||
@ -253,7 +247,7 @@ public static class SpanExtensions
|
||||
/// <returns>A 32-bit signed integer containing the packed booleans.</returns>
|
||||
/// <exception cref="ArgumentException"><paramref name="source" /> contains more than 32 elements.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
[ExcludeFromCodeCoverage]
|
||||
public static int PackInt32(this ReadOnlySpan<bool> source)
|
||||
{
|
||||
@ -285,10 +279,10 @@ public static class SpanExtensions
|
||||
return PackInt32Internal_Sse2(source);
|
||||
}
|
||||
|
||||
if (AdvSimd.IsSupported)
|
||||
{
|
||||
return PackInt32Internal_AdvSimd(source);
|
||||
}
|
||||
// if (AdvSimd.IsSupported)
|
||||
// {
|
||||
// return PackInt32Internal_AdvSimd(source);
|
||||
// }
|
||||
#endif
|
||||
goto default;
|
||||
|
||||
@ -304,7 +298,7 @@ public static class SpanExtensions
|
||||
/// <returns>A 64-bit signed integer containing the packed booleans.</returns>
|
||||
/// <exception cref="ArgumentException"><paramref name="source" /> contains more than 64 elements.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static long PackInt64(this Span<bool> source)
|
||||
{
|
||||
return PackInt64((ReadOnlySpan<bool>)source);
|
||||
@ -317,7 +311,7 @@ public static class SpanExtensions
|
||||
/// <returns>A 64-bit signed integer containing the packed booleans.</returns>
|
||||
/// <exception cref="ArgumentException"><paramref name="source" /> contains more than 64 elements.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static long PackInt64(this ReadOnlySpan<bool> source)
|
||||
{
|
||||
switch (source.Length)
|
||||
@ -342,7 +336,7 @@ public static class SpanExtensions
|
||||
}
|
||||
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
internal static byte PackByteInternal_Fallback(this ReadOnlySpan<bool> source)
|
||||
{
|
||||
byte result = 0;
|
||||
@ -356,7 +350,7 @@ public static class SpanExtensions
|
||||
}
|
||||
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
internal static short PackInt16Internal_Fallback(this ReadOnlySpan<bool> source)
|
||||
{
|
||||
short result = 0;
|
||||
@ -370,7 +364,7 @@ public static class SpanExtensions
|
||||
}
|
||||
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
internal static int PackInt32Internal_Fallback(this ReadOnlySpan<bool> source)
|
||||
{
|
||||
var result = 0;
|
||||
@ -385,7 +379,7 @@ public static class SpanExtensions
|
||||
|
||||
#if NETCOREAPP3_0_OR_GREATER
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
internal static byte PackByteInternal_Sse2(this ReadOnlySpan<bool> source)
|
||||
{
|
||||
unsafe
|
||||
@ -399,7 +393,7 @@ public static class SpanExtensions
|
||||
}
|
||||
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
internal static short PackInt16Internal_Sse2(this ReadOnlySpan<bool> source)
|
||||
{
|
||||
unsafe
|
||||
@ -418,35 +412,35 @@ public static class SpanExtensions
|
||||
|
||||
// dotcover disable
|
||||
//NOSONAR
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
internal static int PackInt32Internal_AdvSimd(this ReadOnlySpan<bool> source)
|
||||
{
|
||||
unsafe
|
||||
{
|
||||
fixed (bool* pSource = source)
|
||||
{
|
||||
Vector128<ulong> vector1 = AdvSimd.LoadVector128((byte*)pSource).CorrectBoolean().AsUInt64();
|
||||
Vector128<ulong> vector2 = AdvSimd.LoadVector128((byte*)(pSource + 16)).CorrectBoolean().AsUInt64();
|
||||
|
||||
Vector128<ulong> calc1 = IntrinsicUtility.Multiply(IntegerPackingMagicV128, vector1);
|
||||
Vector128<ulong> calc2 = IntrinsicUtility.Multiply(IntegerPackingMagicV128, vector2);
|
||||
|
||||
calc1 = AdvSimd.ShiftRightLogical(calc1, 56);
|
||||
calc2 = AdvSimd.ShiftRightLogical(calc2, 56);
|
||||
|
||||
Vector128<ulong> shift1 = AdvSimd.ShiftLogical(calc1, Vector128.Create(0, 8));
|
||||
Vector128<ulong> shift2 = AdvSimd.ShiftLogical(calc2, Vector128.Create(16, 24));
|
||||
|
||||
return (int)(shift1.GetElement(0) | shift1.GetElement(1) | shift2.GetElement(0) | shift2.GetElement(1));
|
||||
}
|
||||
}
|
||||
}
|
||||
// [Pure]
|
||||
// [MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
// internal static int PackInt32Internal_AdvSimd(this ReadOnlySpan<bool> source)
|
||||
// {
|
||||
// unsafe
|
||||
// {
|
||||
// fixed (bool* pSource = source)
|
||||
// {
|
||||
// Vector128<ulong> vector1 = AdvSimd.LoadVector128((byte*)pSource).CorrectBoolean().AsUInt64();
|
||||
// Vector128<ulong> vector2 = AdvSimd.LoadVector128((byte*)(pSource + 16)).CorrectBoolean().AsUInt64();
|
||||
//
|
||||
// Vector128<ulong> calc1 = IntrinsicUtility.Multiply(IntegerPackingMagicV128, vector1);
|
||||
// Vector128<ulong> calc2 = IntrinsicUtility.Multiply(IntegerPackingMagicV128, vector2);
|
||||
//
|
||||
// calc1 = AdvSimd.ShiftRightLogical(calc1, 56);
|
||||
// calc2 = AdvSimd.ShiftRightLogical(calc2, 56);
|
||||
//
|
||||
// Vector128<ulong> shift1 = AdvSimd.ShiftLogical(calc1, Vector128.Create(0, 8));
|
||||
// Vector128<ulong> shift2 = AdvSimd.ShiftLogical(calc2, Vector128.Create(16, 24));
|
||||
//
|
||||
// return (int)(shift1.GetElement(0) | shift1.GetElement(1) | shift2.GetElement(0) | shift2.GetElement(1));
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//NOSONAR
|
||||
// dotcover enable
|
||||
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
internal static int PackInt32Internal_Avx2(this ReadOnlySpan<bool> source)
|
||||
{
|
||||
unsafe
|
||||
@ -471,7 +465,7 @@ public static class SpanExtensions
|
||||
}
|
||||
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
internal static int PackInt32Internal_Sse2(this ReadOnlySpan<bool> source)
|
||||
{
|
||||
unsafe
|
||||
@ -499,24 +493,24 @@ public static class SpanExtensions
|
||||
}
|
||||
}
|
||||
|
||||
#if NET5_0_OR_GREATER
|
||||
// dotcover disable
|
||||
//NOSONAR
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
internal static byte PackByteInternal_AdvSimd(this ReadOnlySpan<bool> source)
|
||||
{
|
||||
unsafe
|
||||
{
|
||||
fixed (bool* pSource = source)
|
||||
{
|
||||
Vector64<byte> load = AdvSimd.LoadVector64((byte*)pSource);
|
||||
return unchecked((byte)(IntegerPackingMagic * load.CorrectBoolean().AsUInt64().GetElement(0) >> 56));
|
||||
}
|
||||
}
|
||||
}
|
||||
//NOSONAR
|
||||
// dotcover enable
|
||||
#endif
|
||||
// #if NET5_0_OR_GREATER
|
||||
// // dotcover disable
|
||||
// //NOSONAR
|
||||
// [Pure]
|
||||
// [MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
// internal static byte PackByteInternal_AdvSimd(this ReadOnlySpan<bool> source)
|
||||
// {
|
||||
// unsafe
|
||||
// {
|
||||
// fixed (bool* pSource = source)
|
||||
// {
|
||||
// Vector64<byte> load = AdvSimd.LoadVector64((byte*)pSource);
|
||||
// return unchecked((byte)(IntegerPackingMagic * load.CorrectBoolean().AsUInt64().GetElement(0) >> 56));
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// //NOSONAR
|
||||
// // dotcover enable
|
||||
// #endif
|
||||
#endif
|
||||
}
|
||||
|
@ -27,7 +27,7 @@ public static class ColorExtensions
|
||||
/// When this method returns, contains the <see cref="Color.B" /> component of <paramref name="color" />.
|
||||
/// </param>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static void Deconstruct(this Color color, out byte a, out byte r, out byte g, out byte b)
|
||||
{
|
||||
a = color.A;
|
||||
@ -48,7 +48,7 @@ public static class ColorExtensions
|
||||
/// When this method returns, contains the <see cref="Color.B" /> component of <paramref name="color" />.
|
||||
/// </param>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static void Deconstruct(this Color color, out byte r, out byte g, out byte b)
|
||||
{
|
||||
r = color.R;
|
||||
@ -63,7 +63,7 @@ public static class ColorExtensions
|
||||
/// <returns>The closest <see cref="ConsoleColor" />.</returns>
|
||||
/// <author>Glenn Slayden, https://stackoverflow.com/a/12340136/1467293</author>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static ConsoleColor GetClosestConsoleColor(this Color color)
|
||||
{
|
||||
ConsoleColor result = 0;
|
||||
@ -110,7 +110,7 @@ public static class ColorExtensions
|
||||
/// <param name="color">The color to invert.</param>
|
||||
/// <returns>The inverted color.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static Color Inverted(this Color color)
|
||||
{
|
||||
return Color.FromArgb(color.A, 255 - color.R, 255 - color.G, 255 - color.B);
|
||||
@ -128,7 +128,7 @@ public static class ColorExtensions
|
||||
/// <see cref="Color.A" /> component is <paramref name="a" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static Color WithA(this Color color, int a)
|
||||
{
|
||||
return Color.FromArgb(a, color.R, color.G, color.B);
|
||||
@ -146,7 +146,7 @@ public static class ColorExtensions
|
||||
/// <see cref="Color.B" /> component is <paramref name="b" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static Color WithB(this Color color, int b)
|
||||
{
|
||||
return Color.FromArgb(color.A, color.R, color.G, b);
|
||||
@ -164,7 +164,7 @@ public static class ColorExtensions
|
||||
/// <see cref="Color.G" /> component is <paramref name="g" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static Color WithG(this Color color, int g)
|
||||
{
|
||||
return Color.FromArgb(color.A, color.R, g, color.B);
|
||||
@ -182,7 +182,7 @@ public static class ColorExtensions
|
||||
/// <see cref="Color.R" /> component is <paramref name="r" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static Color WithR(this Color color, int r)
|
||||
{
|
||||
return Color.FromArgb(color.A, r, color.G, color.B);
|
||||
|
@ -21,7 +21,7 @@ public static class PointExtensions
|
||||
/// <see langword="false" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsOnLine(this Point point, LineF line)
|
||||
{
|
||||
return ((PointF)point).IsOnLine(line);
|
||||
@ -38,7 +38,7 @@ public static class PointExtensions
|
||||
/// <paramref name="end" />; otherwise <see langword="false" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsOnLine(this Point point, PointF start, PointF end)
|
||||
{
|
||||
return point.IsOnLine(new LineF(start, end));
|
||||
@ -55,7 +55,7 @@ public static class PointExtensions
|
||||
/// <paramref name="end" />; otherwise <see langword="false" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsOnLine(this Point point, Vector2 start, Vector2 end)
|
||||
{
|
||||
return point.IsOnLine(new LineF(start, end));
|
||||
@ -67,7 +67,7 @@ public static class PointExtensions
|
||||
/// <param name="point">The point to convert.</param>
|
||||
/// <returns>The resulting <see cref="Size" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static Size ToSize(this Point point)
|
||||
{
|
||||
return new Size(point.X, point.Y);
|
||||
|
@ -22,7 +22,7 @@ public static class PointFExtensions
|
||||
/// <see langword="false" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsOnLine(this PointF point, LineF line)
|
||||
{
|
||||
(float x1, float x2) = (line.Start.X, line.End.X);
|
||||
@ -42,7 +42,7 @@ public static class PointFExtensions
|
||||
/// <paramref name="end" />; otherwise <see langword="false" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsOnLine(this PointF point, PointF start, PointF end)
|
||||
{
|
||||
return point.IsOnLine(new LineF(start, end));
|
||||
@ -59,7 +59,7 @@ public static class PointFExtensions
|
||||
/// <paramref name="end" />; otherwise <see langword="false" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsOnLine(this PointF point, Vector2 start, Vector2 end)
|
||||
{
|
||||
return point.IsOnLine(new LineF(start, end));
|
||||
@ -71,7 +71,7 @@ public static class PointFExtensions
|
||||
/// <param name="point">The point whose components to round.</param>
|
||||
/// <returns>The rounded point.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static PointF Round(this PointF point)
|
||||
{
|
||||
return point.Round(1.0f);
|
||||
@ -84,7 +84,7 @@ public static class PointFExtensions
|
||||
/// <param name="nearest">The nearest multiple to which the components should be rounded.</param>
|
||||
/// <returns>The rounded point.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static PointF Round(this PointF point, float nearest)
|
||||
{
|
||||
float x = point.X.Round(nearest);
|
||||
@ -98,7 +98,7 @@ public static class PointFExtensions
|
||||
/// <param name="point">The point to convert.</param>
|
||||
/// <returns>The resulting <see cref="SizeF" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static SizeF ToSizeF(this PointF point)
|
||||
{
|
||||
return new SizeF(point.X, point.Y);
|
||||
|
@ -17,7 +17,7 @@ public static class SizeExtensions
|
||||
/// <param name="size">The size to convert.</param>
|
||||
/// <returns>The resulting <see cref="Point" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static Point ToPoint(this Size size)
|
||||
{
|
||||
return new Point(size.Width, size.Height);
|
||||
@ -29,7 +29,7 @@ public static class SizeExtensions
|
||||
/// <param name="size">The size to convert.</param>
|
||||
/// <returns>The resulting <see cref="PointF" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static PointF ToPointF(this Size size)
|
||||
{
|
||||
return new PointF(size.Width, size.Height);
|
||||
@ -41,7 +41,7 @@ public static class SizeExtensions
|
||||
/// <param name="size">The size to convert.</param>
|
||||
/// <returns>The resulting <see cref="Vector2" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static Vector2 ToVector2(this Size size)
|
||||
{
|
||||
return new Vector2(size.Width, size.Height);
|
||||
|
2
X10D/src/ExceptionMessages.Designer.cs
generated
2
X10D/src/ExceptionMessages.Designer.cs
generated
@ -150,7 +150,7 @@ namespace X10D {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to The enum has a size that is not supported..
|
||||
/// Looks up a localized string similar to Enum has unexpected size of {0} bytes..
|
||||
/// </summary>
|
||||
internal static string EnumSizeIsUnexpected {
|
||||
get {
|
||||
|
@ -145,7 +145,7 @@
|
||||
<value>Type provided must be an Enum.</value>
|
||||
</data>
|
||||
<data name="EnumSizeIsUnexpected" xml:space="preserve">
|
||||
<value>The enum has a size that is not supported.</value>
|
||||
<value>Enum has unexpected size of {0} bytes.</value>
|
||||
</data>
|
||||
<data name="ObjectIsNotAValidType" xml:space="preserve">
|
||||
<value>The specified object is not a valid type.</value>
|
||||
|
@ -36,7 +36,7 @@ public static class BigIntegerExtensions
|
||||
/// <para>For example, the digital root of 239 is 5: <c>2 + 3 + 9 = 14</c>, then <c>1 + 4 = 5</c>.</para>
|
||||
/// </remarks>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int DigitalRoot(this BigInteger value)
|
||||
{
|
||||
BigInteger root = BigInteger.Abs(value).Mod(9);
|
||||
@ -50,7 +50,7 @@ public static class BigIntegerExtensions
|
||||
/// <returns>The factorial of <paramref name="value" />.</returns>
|
||||
/// <exception cref="ArithmeticException"><paramref name="value" /> is less than 0.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static BigInteger Factorial(this BigInteger value)
|
||||
{
|
||||
if (value < 0)
|
||||
@ -79,7 +79,7 @@ public static class BigIntegerExtensions
|
||||
/// <param name="other">The second value.</param>
|
||||
/// <returns>The greatest common factor between <paramref name="value" /> and <paramref name="other" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static BigInteger GreatestCommonFactor(this BigInteger value, BigInteger other)
|
||||
{
|
||||
while (other != 0)
|
||||
@ -99,7 +99,7 @@ public static class BigIntegerExtensions
|
||||
/// otherwise.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsOdd(this BigInteger value)
|
||||
{
|
||||
return !value.IsEven;
|
||||
@ -113,7 +113,7 @@ public static class BigIntegerExtensions
|
||||
/// <see langword="true" /> if <paramref name="value" /> is prime; otherwise, <see langword="false" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsPrime(this BigInteger value)
|
||||
{
|
||||
if (value <= 1)
|
||||
@ -149,7 +149,7 @@ public static class BigIntegerExtensions
|
||||
/// <param name="other">The second value.</param>
|
||||
/// <returns>The lowest common multiple between <paramref name="value" /> and <paramref name="other" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static BigInteger LowestCommonMultiple(this BigInteger value, BigInteger other)
|
||||
{
|
||||
if (value == 0 || other == 0)
|
||||
@ -185,7 +185,7 @@ public static class BigIntegerExtensions
|
||||
/// <author>ShreevatsaR, https://stackoverflow.com/a/1082938/1467293</author>
|
||||
/// <license>CC-BY-SA 2.5</license>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static BigInteger Mod(this BigInteger dividend, BigInteger divisor)
|
||||
{
|
||||
BigInteger r = dividend % divisor;
|
||||
@ -201,7 +201,7 @@ public static class BigIntegerExtensions
|
||||
/// Multiplicative persistence is defined as the recursive digital product until that product is a single digit.
|
||||
/// </remarks>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int MultiplicativePersistence(this BigInteger value)
|
||||
{
|
||||
var persistence = 0;
|
||||
@ -246,7 +246,7 @@ public static class BigIntegerExtensions
|
||||
/// <param name="high">The exclusive upper bound.</param>
|
||||
/// <returns>The wrapped value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static BigInteger Wrap(this BigInteger value, BigInteger low, BigInteger high)
|
||||
{
|
||||
BigInteger difference = high - low;
|
||||
@ -260,7 +260,7 @@ public static class BigIntegerExtensions
|
||||
/// <param name="length">The exclusive upper bound.</param>
|
||||
/// <returns>The wrapped value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static BigInteger Wrap(this BigInteger value, BigInteger length)
|
||||
{
|
||||
return ((value % length) + length) % length;
|
||||
|
@ -35,7 +35,7 @@ public static class ByteExtensions
|
||||
/// <para>For example, the digital root of 239 is 5: <c>2 + 3 + 9 = 14</c>, then <c>1 + 4 = 5</c>.</para>
|
||||
/// </remarks>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static byte DigitalRoot(this byte value)
|
||||
{
|
||||
int root = value % 9;
|
||||
@ -48,7 +48,7 @@ public static class ByteExtensions
|
||||
/// <param name="value">The value whose factorial to compute.</param>
|
||||
/// <returns>The factorial of <paramref name="value" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static long Factorial(this byte value)
|
||||
{
|
||||
if (value == 0)
|
||||
@ -72,7 +72,7 @@ public static class ByteExtensions
|
||||
/// <param name="other">The second value.</param>
|
||||
/// <returns>The greatest common factor between <paramref name="value" /> and <paramref name="other" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static byte GreatestCommonFactor(this byte value, byte other)
|
||||
{
|
||||
return (byte)((long)value).GreatestCommonFactor(other);
|
||||
@ -87,7 +87,7 @@ public static class ByteExtensions
|
||||
/// otherwise.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsEven(this byte value)
|
||||
{
|
||||
return (value & 1) == 0;
|
||||
@ -102,7 +102,7 @@ public static class ByteExtensions
|
||||
/// otherwise.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsOdd(this byte value)
|
||||
{
|
||||
return !value.IsEven();
|
||||
@ -128,7 +128,7 @@ public static class ByteExtensions
|
||||
/// <param name="other">The second value.</param>
|
||||
/// <returns>The lowest common multiple between <paramref name="value" /> and <paramref name="other" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static byte LowestCommonMultiple(this byte value, byte other)
|
||||
{
|
||||
return (byte)((long)value).LowestCommonMultiple(other);
|
||||
@ -143,7 +143,7 @@ public static class ByteExtensions
|
||||
/// Multiplicative persistence is defined as the recursive digital product until that product is a single digit.
|
||||
/// </remarks>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int MultiplicativePersistence(this byte value)
|
||||
{
|
||||
return ((long)value).MultiplicativePersistence();
|
||||
@ -157,7 +157,7 @@ public static class ByteExtensions
|
||||
/// <param name="high">The exclusive upper bound.</param>
|
||||
/// <returns>The wrapped value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static byte Wrap(this byte value, byte low, byte high)
|
||||
{
|
||||
return (byte)((ulong)value).Wrap(low, high);
|
||||
@ -170,7 +170,7 @@ public static class ByteExtensions
|
||||
/// <param name="length">The exclusive upper bound.</param>
|
||||
/// <returns>The wrapped value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static byte Wrap(this byte value, byte length)
|
||||
{
|
||||
return (byte)((ulong)value).Wrap(length);
|
||||
|
@ -49,7 +49,7 @@ public static class ComparableExtensions
|
||||
/// </example>
|
||||
/// <exception cref="ArgumentNullException"><paramref name="value" /> is <see langword="null" />.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool Between<T1, T2, T3>(this T1 value, T2 lower, T3 upper,
|
||||
InclusiveOptions inclusiveOptions = InclusiveOptions.None)
|
||||
where T1 : IComparable<T2>, IComparable<T3>
|
||||
@ -110,7 +110,7 @@ public static class ComparableExtensions
|
||||
/// </example>
|
||||
/// <exception cref="ArgumentNullException"><paramref name="value" /> is <see langword="null" />.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static T Clamp<T>(this T value, T lower, T upper)
|
||||
where T : IComparable<T>
|
||||
{
|
||||
@ -156,7 +156,7 @@ public static class ComparableExtensions
|
||||
/// </example>
|
||||
/// <exception cref="ArgumentNullException"><paramref name="value" /> is <see langword="null" />.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool GreaterThan<T1, T2>(this T1 value, T2 other)
|
||||
where T1 : IComparable<T2>
|
||||
{
|
||||
@ -195,7 +195,7 @@ public static class ComparableExtensions
|
||||
/// </example>
|
||||
/// <exception cref="ArgumentNullException"><paramref name="value" /> is <see langword="null" />.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool GreaterThanOrEqualTo<T1, T2>(this T1 value, T2 other)
|
||||
where T1 : IComparable<T2>
|
||||
{
|
||||
@ -234,7 +234,7 @@ public static class ComparableExtensions
|
||||
/// </example>
|
||||
/// <exception cref="ArgumentNullException"><paramref name="value" /> is <see langword="null" />.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool LessThan<T1, T2>(this T1 value, T2 other)
|
||||
where T1 : IComparable<T2>
|
||||
{
|
||||
@ -273,7 +273,7 @@ public static class ComparableExtensions
|
||||
/// </example>
|
||||
/// <exception cref="ArgumentNullException"><paramref name="value" /> is <see langword="null" />.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool LessThanOrEqualTo<T1, T2>(this T1 value, T2 other)
|
||||
where T1 : IComparable<T2>
|
||||
{
|
||||
@ -311,7 +311,7 @@ public static class ComparableExtensions
|
||||
/// </example>
|
||||
/// <exception cref="ArgumentNullException"><paramref name="value" /> is <see langword="null" />.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static T Max<T>(this T value, T other)
|
||||
where T : IComparable<T>
|
||||
{
|
||||
@ -349,7 +349,7 @@ public static class ComparableExtensions
|
||||
/// </example>
|
||||
/// <exception cref="ArgumentNullException"><paramref name="value" /> is <see langword="null" />.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static T Min<T>(this T value, T other)
|
||||
where T : IComparable<T>
|
||||
{
|
||||
|
@ -16,7 +16,7 @@ public static class DecimalExtensions
|
||||
/// <param name="value">The number whose square root is to be found.</param>
|
||||
/// <returns>The square root of <paramref name="value" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static Complex ComplexSqrt(this decimal value)
|
||||
{
|
||||
return Complex.Sqrt((double)value);
|
||||
@ -31,7 +31,7 @@ public static class DecimalExtensions
|
||||
/// otherwise.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsEven(this decimal value)
|
||||
{
|
||||
return value % 2.0m == 0.0m;
|
||||
@ -46,7 +46,7 @@ public static class DecimalExtensions
|
||||
/// otherwise.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsOdd(this decimal value)
|
||||
{
|
||||
return !value.IsEven();
|
||||
@ -58,7 +58,7 @@ public static class DecimalExtensions
|
||||
/// <param name="value">The value to round.</param>
|
||||
/// <returns><paramref name="value" /> rounded to the nearest whole number.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static decimal Round(this decimal value)
|
||||
{
|
||||
return value.Round(1.0m);
|
||||
@ -71,7 +71,7 @@ public static class DecimalExtensions
|
||||
/// <param name="nearest">The nearest multiple to which <paramref name="value" /> should be rounded.</param>
|
||||
/// <returns><paramref name="value" /> rounded to the nearest multiple of <paramref name="nearest" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static decimal Round(this decimal value, decimal nearest)
|
||||
{
|
||||
return System.Math.Round(value / nearest) * nearest;
|
||||
@ -84,7 +84,7 @@ public static class DecimalExtensions
|
||||
/// <returns>The saturated value.</returns>
|
||||
/// <remarks>This method clamps <paramref name="value" /> between 0 and 1.</remarks>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static decimal Saturate(this decimal value)
|
||||
{
|
||||
return System.Math.Clamp(value, 0.0m, 1.0m);
|
||||
@ -118,7 +118,7 @@ public static class DecimalExtensions
|
||||
/// </list>
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int Sign(this decimal value)
|
||||
{
|
||||
return System.Math.Sign(value);
|
||||
@ -153,7 +153,7 @@ public static class DecimalExtensions
|
||||
/// </returns>
|
||||
/// <exception cref="ArgumentException"><paramref name="value" /> is negative.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static decimal Sqrt(this decimal value)
|
||||
{
|
||||
switch (value)
|
||||
@ -183,7 +183,7 @@ public static class DecimalExtensions
|
||||
/// <param name="high">The exclusive upper bound.</param>
|
||||
/// <returns>The wrapped value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static decimal Wrap(this decimal value, decimal low, decimal high)
|
||||
{
|
||||
decimal difference = high - low;
|
||||
@ -197,7 +197,7 @@ public static class DecimalExtensions
|
||||
/// <param name="length">The exclusive upper bound.</param>
|
||||
/// <returns>The wrapped value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static decimal Wrap(this decimal value, decimal length)
|
||||
{
|
||||
return ((value % length) + length) % length;
|
||||
|
@ -21,7 +21,7 @@ public static class DoubleExtensions
|
||||
/// is equal to <see cref="double.NaN" />, less than -1, or greater than 1, <see cref="double.NaN" /> is returned.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static double Acos(this double value)
|
||||
{
|
||||
return System.Math.Acos(value);
|
||||
@ -39,7 +39,7 @@ public static class DoubleExtensions
|
||||
/// <paramref name="value" /> is less than 1 or equal to <see cref="double.NaN" />, <see cref="double.NaN" /> is returned.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static double Acosh(this double value)
|
||||
{
|
||||
return System.Math.Acosh(value);
|
||||
@ -57,7 +57,7 @@ public static class DoubleExtensions
|
||||
/// <see cref="double.NaN" /> is returned.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static double Asin(this double value)
|
||||
{
|
||||
return System.Math.Asin(value);
|
||||
@ -75,7 +75,7 @@ public static class DoubleExtensions
|
||||
/// <see cref="double.NaN" />, <see cref="double.NaN" /> is returned.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static double Asinh(this double value)
|
||||
{
|
||||
return System.Math.Asinh(value);
|
||||
@ -92,7 +92,7 @@ public static class DoubleExtensions
|
||||
/// <paramref name="value" /> is equal to <see cref="double.NaN" />, <see cref="double.NaN" /> is returned.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static double Atan(this double value)
|
||||
{
|
||||
return System.Math.Atan(value);
|
||||
@ -111,7 +111,7 @@ public static class DoubleExtensions
|
||||
/// <see cref="double.NaN" /> is returned.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static double Atanh(this double value)
|
||||
{
|
||||
return System.Math.Atanh(value);
|
||||
@ -123,7 +123,7 @@ public static class DoubleExtensions
|
||||
/// <param name="value">The number whose square root is to be found.</param>
|
||||
/// <returns>The square root of <paramref name="value" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static Complex ComplexSqrt(this double value)
|
||||
{
|
||||
switch (value)
|
||||
@ -153,7 +153,7 @@ public static class DoubleExtensions
|
||||
/// <see cref="double.NaN" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static double Cos(this double value)
|
||||
{
|
||||
return System.Math.Cos(value);
|
||||
@ -170,7 +170,7 @@ public static class DoubleExtensions
|
||||
/// <see cref="double.NaN" />, <see cref="double.NaN" /> is returned.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static double Cosh(this double value)
|
||||
{
|
||||
return System.Math.Cosh(value);
|
||||
@ -182,7 +182,7 @@ public static class DoubleExtensions
|
||||
/// <param name="value">The angle in degrees to convert.</param>
|
||||
/// <returns>The result of π * <paramref name="value" /> / 180.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static double DegreesToRadians(this double value)
|
||||
{
|
||||
return value * (System.Math.PI / 180.0);
|
||||
@ -197,7 +197,7 @@ public static class DoubleExtensions
|
||||
/// otherwise.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsEven(this double value)
|
||||
{
|
||||
return System.Math.Abs(value % 2.0) < double.Epsilon;
|
||||
@ -212,7 +212,7 @@ public static class DoubleExtensions
|
||||
/// otherwise.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsOdd(this double value)
|
||||
{
|
||||
return !value.IsEven();
|
||||
@ -224,7 +224,7 @@ public static class DoubleExtensions
|
||||
/// <param name="value">The angle in radians to convert.</param>
|
||||
/// <returns>The result of π * <paramref name="value" /> / 180.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static double RadiansToDegrees(this double value)
|
||||
{
|
||||
return value * (180.0 / System.Math.PI);
|
||||
@ -236,7 +236,7 @@ public static class DoubleExtensions
|
||||
/// <param name="value">The value to round.</param>
|
||||
/// <returns><paramref name="value" /> rounded to the nearest whole number.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static double Round(this double value)
|
||||
{
|
||||
return value.Round(1.0);
|
||||
@ -249,7 +249,7 @@ public static class DoubleExtensions
|
||||
/// <param name="nearest">The nearest multiple to which <paramref name="value" /> should be rounded.</param>
|
||||
/// <returns><paramref name="value" /> rounded to the nearest multiple of <paramref name="nearest" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static double Round(this double value, double nearest)
|
||||
{
|
||||
return System.Math.Round(value / nearest) * nearest;
|
||||
@ -262,7 +262,7 @@ public static class DoubleExtensions
|
||||
/// <returns>The saturated value.</returns>
|
||||
/// <remarks>This method clamps <paramref name="value" /> between 0 and 1.</remarks>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static double Saturate(this double value)
|
||||
{
|
||||
return System.Math.Clamp(value, 0.0, 1.0);
|
||||
@ -278,7 +278,7 @@ public static class DoubleExtensions
|
||||
/// <see cref="double.NaN" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static double Sin(this double value)
|
||||
{
|
||||
return System.Math.Sin(value);
|
||||
@ -294,7 +294,7 @@ public static class DoubleExtensions
|
||||
/// <see cref="double.NaN" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static double Sinh(this double value)
|
||||
{
|
||||
return System.Math.Sinh(value);
|
||||
@ -329,7 +329,7 @@ public static class DoubleExtensions
|
||||
/// </returns>
|
||||
/// <exception cref="ArithmeticException"><paramref name="value" /> is equal to <see cref="double.NaN" />.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int Sign(this double value)
|
||||
{
|
||||
return System.Math.Sign(value);
|
||||
@ -365,7 +365,7 @@ public static class DoubleExtensions
|
||||
/// <author>SLenik https://stackoverflow.com/a/6755197/1467293</author>
|
||||
/// <license>CC BY-SA 3.0</license>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static double Sqrt(this double value)
|
||||
{
|
||||
switch (value)
|
||||
@ -399,7 +399,7 @@ public static class DoubleExtensions
|
||||
/// <see cref="double.NaN" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static double Tan(this double value)
|
||||
{
|
||||
return System.Math.Tan(value);
|
||||
@ -416,7 +416,7 @@ public static class DoubleExtensions
|
||||
/// <see cref="double.NaN" />, this method returns <see cref="double.NaN" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static double Tanh(this double value)
|
||||
{
|
||||
return System.Math.Tanh(value);
|
||||
@ -430,7 +430,7 @@ public static class DoubleExtensions
|
||||
/// <param name="high">The exclusive upper bound.</param>
|
||||
/// <returns>The wrapped value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static double Wrap(this double value, double low, double high)
|
||||
{
|
||||
double difference = high - low;
|
||||
@ -444,7 +444,7 @@ public static class DoubleExtensions
|
||||
/// <param name="length">The exclusive upper bound.</param>
|
||||
/// <returns>The wrapped value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static double Wrap(this double value, double length)
|
||||
{
|
||||
return ((value % length) + length) % length;
|
||||
|
@ -34,7 +34,7 @@ public static class Int16Extensions
|
||||
/// <para>For example, the digital root of 239 is 5: <c>2 + 3 + 9 = 14</c>, then <c>1 + 4 = 5</c>.</para>
|
||||
/// </remarks>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static short DigitalRoot(this short value)
|
||||
{
|
||||
short root = System.Math.Abs(value).Mod(9);
|
||||
@ -48,7 +48,7 @@ public static class Int16Extensions
|
||||
/// <returns>The factorial of <paramref name="value" />.</returns>
|
||||
/// <exception cref="ArithmeticException"><paramref name="value" /> is less than 0.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static long Factorial(this short value)
|
||||
{
|
||||
if (value < 0)
|
||||
@ -77,7 +77,7 @@ public static class Int16Extensions
|
||||
/// <param name="other">The second value.</param>
|
||||
/// <returns>The greatest common factor between <paramref name="value" /> and <paramref name="other" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static short GreatestCommonFactor(this short value, short other)
|
||||
{
|
||||
return (short)((long)value).GreatestCommonFactor(other);
|
||||
@ -92,7 +92,7 @@ public static class Int16Extensions
|
||||
/// otherwise.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsEven(this short value)
|
||||
{
|
||||
return (value & 1) == 0;
|
||||
@ -107,7 +107,7 @@ public static class Int16Extensions
|
||||
/// otherwise.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsOdd(this short value)
|
||||
{
|
||||
return !value.IsEven();
|
||||
@ -121,7 +121,7 @@ public static class Int16Extensions
|
||||
/// <see langword="true" /> if <paramref name="value" /> is prime; otherwise, <see langword="false" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsPrime(this short value)
|
||||
{
|
||||
return ((long)value).IsPrime();
|
||||
@ -134,7 +134,7 @@ public static class Int16Extensions
|
||||
/// <param name="other">The second value.</param>
|
||||
/// <returns>The lowest common multiple between <paramref name="value" /> and <paramref name="other" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static short LowestCommonMultiple(this short value, short other)
|
||||
{
|
||||
return (short)((long)value).LowestCommonMultiple(other);
|
||||
@ -155,7 +155,7 @@ public static class Int16Extensions
|
||||
/// <author>ShreevatsaR, https://stackoverflow.com/a/1082938/1467293</author>
|
||||
/// <license>CC-BY-SA 2.5</license>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static short Mod(this short dividend, short divisor)
|
||||
{
|
||||
int r = dividend % divisor;
|
||||
@ -171,7 +171,7 @@ public static class Int16Extensions
|
||||
/// Multiplicative persistence is defined as the recursive digital product until that product is a single digit.
|
||||
/// </remarks>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int MultiplicativePersistence(this short value)
|
||||
{
|
||||
return ((long)value).MultiplicativePersistence();
|
||||
@ -205,7 +205,7 @@ public static class Int16Extensions
|
||||
/// </list>
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int Sign(this short value)
|
||||
{
|
||||
return System.Math.Sign(value);
|
||||
@ -219,7 +219,7 @@ public static class Int16Extensions
|
||||
/// <param name="high">The exclusive upper bound.</param>
|
||||
/// <returns>The wrapped value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static short Wrap(this short value, short low, short high)
|
||||
{
|
||||
return (short)((long)value).Wrap(low, high);
|
||||
@ -232,7 +232,7 @@ public static class Int16Extensions
|
||||
/// <param name="length">The exclusive upper bound.</param>
|
||||
/// <returns>The wrapped value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static short Wrap(this short value, short length)
|
||||
{
|
||||
return (short)((long)value).Wrap(length);
|
||||
|
@ -34,7 +34,7 @@ public static class Int32Extensions
|
||||
/// <para>For example, the digital root of 239 is 5: <c>2 + 3 + 9 = 14</c>, then <c>1 + 4 = 5</c>.</para>
|
||||
/// </remarks>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int DigitalRoot(this int value)
|
||||
{
|
||||
int root = System.Math.Abs(value).Mod(9);
|
||||
@ -48,7 +48,7 @@ public static class Int32Extensions
|
||||
/// <returns>The factorial of <paramref name="value" />.</returns>
|
||||
/// <exception cref="ArithmeticException"><paramref name="value" /> is less than 0.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static long Factorial(this int value)
|
||||
{
|
||||
if (value < 0)
|
||||
@ -77,7 +77,7 @@ public static class Int32Extensions
|
||||
/// <param name="other">The second value.</param>
|
||||
/// <returns>The greatest common factor between <paramref name="value" /> and <paramref name="other" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int GreatestCommonFactor(this int value, int other)
|
||||
{
|
||||
return (int)((long)value).GreatestCommonFactor(other);
|
||||
@ -92,7 +92,7 @@ public static class Int32Extensions
|
||||
/// otherwise.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsEven(this int value)
|
||||
{
|
||||
return (value & 1) == 0;
|
||||
@ -107,7 +107,7 @@ public static class Int32Extensions
|
||||
/// otherwise.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsOdd(this int value)
|
||||
{
|
||||
return !value.IsEven();
|
||||
@ -121,7 +121,7 @@ public static class Int32Extensions
|
||||
/// <see langword="true" /> if <paramref name="value" /> is prime; otherwise, <see langword="false" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsPrime(this int value)
|
||||
{
|
||||
return ((long)value).IsPrime();
|
||||
@ -134,7 +134,7 @@ public static class Int32Extensions
|
||||
/// <param name="other">The second value.</param>
|
||||
/// <returns>The lowest common multiple between <paramref name="value" /> and <paramref name="other" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int LowestCommonMultiple(this int value, int other)
|
||||
{
|
||||
return (int)((long)value).LowestCommonMultiple(other);
|
||||
@ -155,7 +155,7 @@ public static class Int32Extensions
|
||||
/// <author>ShreevatsaR, https://stackoverflow.com/a/1082938/1467293</author>
|
||||
/// <license>CC-BY-SA 2.5</license>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int Mod(this int dividend, int divisor)
|
||||
{
|
||||
int r = dividend % divisor;
|
||||
@ -171,7 +171,7 @@ public static class Int32Extensions
|
||||
/// Multiplicative persistence is defined as the recursive digital product until that product is a single digit.
|
||||
/// </remarks>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int MultiplicativePersistence(this int value)
|
||||
{
|
||||
return ((long)value).MultiplicativePersistence();
|
||||
@ -205,7 +205,7 @@ public static class Int32Extensions
|
||||
/// </list>
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int Sign(this int value)
|
||||
{
|
||||
return System.Math.Sign(value);
|
||||
@ -219,7 +219,7 @@ public static class Int32Extensions
|
||||
/// <param name="high">The exclusive upper bound.</param>
|
||||
/// <returns>The wrapped value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int Wrap(this int value, int low, int high)
|
||||
{
|
||||
return (int)((long)value).Wrap(low, high);
|
||||
@ -232,7 +232,7 @@ public static class Int32Extensions
|
||||
/// <param name="length">The exclusive upper bound.</param>
|
||||
/// <returns>The wrapped value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int Wrap(this int value, int length)
|
||||
{
|
||||
return (int)((long)value).Wrap(length);
|
||||
|
@ -34,7 +34,7 @@ public static class Int64Extensions
|
||||
/// <para>For example, the digital root of 239 is 5: <c>2 + 3 + 9 = 14</c>, then <c>1 + 4 = 5</c>.</para>
|
||||
/// </remarks>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static long DigitalRoot(this long value)
|
||||
{
|
||||
long root = System.Math.Abs(value).Mod(9L);
|
||||
@ -48,7 +48,7 @@ public static class Int64Extensions
|
||||
/// <returns>The factorial of <paramref name="value" />.</returns>
|
||||
/// <exception cref="ArithmeticException"><paramref name="value" /> is less than 0.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static long Factorial(this long value)
|
||||
{
|
||||
if (value < 0)
|
||||
@ -77,7 +77,7 @@ public static class Int64Extensions
|
||||
/// <param name="other">The second value.</param>
|
||||
/// <returns>The greatest common factor between <paramref name="value" /> and <paramref name="other" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static long GreatestCommonFactor(this long value, long other)
|
||||
{
|
||||
while (other != 0)
|
||||
@ -97,7 +97,7 @@ public static class Int64Extensions
|
||||
/// otherwise.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsEven(this long value)
|
||||
{
|
||||
return (value & 1) == 0;
|
||||
@ -112,7 +112,7 @@ public static class Int64Extensions
|
||||
/// otherwise.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsOdd(this long value)
|
||||
{
|
||||
return !value.IsEven();
|
||||
@ -126,7 +126,7 @@ public static class Int64Extensions
|
||||
/// <see langword="true" /> if <paramref name="value" /> is prime; otherwise, <see langword="false" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsPrime(this long value)
|
||||
{
|
||||
switch (value)
|
||||
@ -158,7 +158,7 @@ public static class Int64Extensions
|
||||
/// <param name="other">The second value.</param>
|
||||
/// <returns>The lowest common multiple between <paramref name="value" /> and <paramref name="other" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static long LowestCommonMultiple(this long value, long other)
|
||||
{
|
||||
if (value == 0 || other == 0)
|
||||
@ -194,7 +194,7 @@ public static class Int64Extensions
|
||||
/// <author>ShreevatsaR, https://stackoverflow.com/a/1082938/1467293</author>
|
||||
/// <license>CC-BY-SA 2.5</license>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static long Mod(this long dividend, long divisor)
|
||||
{
|
||||
long r = dividend % divisor;
|
||||
@ -210,7 +210,7 @@ public static class Int64Extensions
|
||||
/// Multiplicative persistence is defined as the recursive digital product until that product is a single digit.
|
||||
/// </remarks>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int MultiplicativePersistence(this long value)
|
||||
{
|
||||
var persistence = 0;
|
||||
@ -275,7 +275,7 @@ public static class Int64Extensions
|
||||
/// </list>
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int Sign(this long value)
|
||||
{
|
||||
return System.Math.Sign(value);
|
||||
@ -289,7 +289,7 @@ public static class Int64Extensions
|
||||
/// <param name="high">The exclusive upper bound.</param>
|
||||
/// <returns>The wrapped value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static long Wrap(this long value, long low, long high)
|
||||
{
|
||||
long difference = high - low;
|
||||
@ -303,7 +303,7 @@ public static class Int64Extensions
|
||||
/// <param name="length">The exclusive upper bound.</param>
|
||||
/// <returns>The wrapped value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static long Wrap(this long value, long length)
|
||||
{
|
||||
return ((value % length) + length) % length;
|
||||
|
@ -70,7 +70,7 @@ public static class MathUtility
|
||||
/// <param name="value">The gamma-encoded value to convert. Expected range is [0, 1].</param>
|
||||
/// <returns>The linear value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static float GammaToLinear(float value)
|
||||
{
|
||||
return GammaToLinear(value, DefaultGammaF);
|
||||
@ -83,7 +83,7 @@ public static class MathUtility
|
||||
/// <param name="gamma">The gamma value to use for decoding.</param>
|
||||
/// <returns>The linear value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static float GammaToLinear(float value, float gamma)
|
||||
{
|
||||
return MathF.Pow(value, 1.0f / gamma);
|
||||
@ -95,7 +95,7 @@ public static class MathUtility
|
||||
/// <param name="value">The gamma-encoded value to convert. Expected range is [0, 1].</param>
|
||||
/// <returns>The linear value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static double GammaToLinear(double value)
|
||||
{
|
||||
return GammaToLinear(value, DefaultGamma);
|
||||
@ -108,7 +108,7 @@ public static class MathUtility
|
||||
/// <param name="gamma">The gamma value to use for decoding.</param>
|
||||
/// <returns>The linear value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static double GammaToLinear(double value, double gamma)
|
||||
{
|
||||
return System.Math.Pow(value, 1.0 / gamma);
|
||||
@ -123,7 +123,7 @@ public static class MathUtility
|
||||
/// <param name="end">The end of the range.</param>
|
||||
/// <returns>A value determined by <c>(alpha - start) / (end - start)</c>.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static float InverseLerp(float alpha, float start, float end)
|
||||
{
|
||||
if (MathF.Abs(start - end) < float.Epsilon)
|
||||
@ -143,7 +143,7 @@ public static class MathUtility
|
||||
/// <param name="end">The end of the range.</param>
|
||||
/// <returns>A value determined by <c>(alpha - start) / (end - start)</c>.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static double InverseLerp(double alpha, double start, double end)
|
||||
{
|
||||
if (System.Math.Abs(start - end) < double.Epsilon)
|
||||
@ -164,7 +164,7 @@ public static class MathUtility
|
||||
/// The interpolation result as determined by <c>(1 - alpha) * value + alpha * target</c>.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static float Lerp(float value, float target, float alpha)
|
||||
{
|
||||
// rookie mistake: a + t * (b - a)
|
||||
@ -182,7 +182,7 @@ public static class MathUtility
|
||||
/// The interpolation result as determined by <c>(1 - alpha) * value + alpha * target</c>.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static double Lerp(double value, double target, double alpha)
|
||||
{
|
||||
// rookie mistake: a + t * (b - a)
|
||||
@ -196,7 +196,7 @@ public static class MathUtility
|
||||
/// <param name="value">The linear value to convert. Expected range is [0, 1].</param>
|
||||
/// <returns>The gamma-encoded value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static float LinearToGamma(float value)
|
||||
{
|
||||
return LinearToGamma(value, DefaultGammaF);
|
||||
@ -209,7 +209,7 @@ public static class MathUtility
|
||||
/// <param name="gamma">The gamma value to use for encoding.</param>
|
||||
/// <returns>The gamma-encoded value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static float LinearToGamma(float value, float gamma)
|
||||
{
|
||||
return MathF.Pow(value, 1.0f / gamma);
|
||||
@ -221,7 +221,7 @@ public static class MathUtility
|
||||
/// <param name="value">The linear value to convert. Expected range is [0, 1].</param>
|
||||
/// <returns>The gamma-encoded value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static double LinearToGamma(double value)
|
||||
{
|
||||
return LinearToGamma(value, DefaultGamma);
|
||||
@ -234,7 +234,7 @@ public static class MathUtility
|
||||
/// <param name="gamma">The gamma value to use for encoding.</param>
|
||||
/// <returns>The gamma-encoded value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static double LinearToGamma(double value, double gamma)
|
||||
{
|
||||
return System.Math.Pow(value, 1.0 / gamma);
|
||||
@ -318,7 +318,7 @@ public static class MathUtility
|
||||
/// <param name="newMax">The new maximum value.</param>
|
||||
/// <returns>The scaled value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static float ScaleRange(float value, float oldMin, float oldMax, float newMin, float newMax)
|
||||
{
|
||||
float oldRange = oldMax - oldMin;
|
||||
@ -337,7 +337,7 @@ public static class MathUtility
|
||||
/// <param name="newMax">The new maximum value.</param>
|
||||
/// <returns>The scaled value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static double ScaleRange(double value, double oldMin, double oldMax, double newMin, double newMax)
|
||||
{
|
||||
double oldRange = oldMax - oldMin;
|
||||
|
@ -35,7 +35,7 @@ public static class SByteExtensions
|
||||
/// <para>For example, the digital root of 239 is 5: <c>2 + 3 + 9 = 14</c>, then <c>1 + 4 = 5</c>.</para>
|
||||
/// </remarks>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static sbyte DigitalRoot(this sbyte value)
|
||||
{
|
||||
int root = System.Math.Abs(value).Mod(9);
|
||||
@ -49,7 +49,7 @@ public static class SByteExtensions
|
||||
/// <returns>The factorial of <paramref name="value" />.</returns>
|
||||
/// <exception cref="ArithmeticException"><paramref name="value" /> is less than 0.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static long Factorial(this sbyte value)
|
||||
{
|
||||
if (value < 0)
|
||||
@ -78,7 +78,7 @@ public static class SByteExtensions
|
||||
/// <param name="other">The second value.</param>
|
||||
/// <returns>The greatest common factor between <paramref name="value" /> and <paramref name="other" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static sbyte GreatestCommonFactor(this sbyte value, sbyte other)
|
||||
{
|
||||
return (sbyte)((long)value).GreatestCommonFactor(other);
|
||||
@ -93,7 +93,7 @@ public static class SByteExtensions
|
||||
/// otherwise.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsEven(this sbyte value)
|
||||
{
|
||||
return (value & 1) == 0;
|
||||
@ -108,7 +108,7 @@ public static class SByteExtensions
|
||||
/// otherwise.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsOdd(this sbyte value)
|
||||
{
|
||||
return !value.IsEven();
|
||||
@ -122,7 +122,7 @@ public static class SByteExtensions
|
||||
/// <see langword="true" /> if <paramref name="value" /> is prime; otherwise, <see langword="false" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsPrime(this sbyte value)
|
||||
{
|
||||
return ((long)value).IsPrime();
|
||||
@ -135,7 +135,7 @@ public static class SByteExtensions
|
||||
/// <param name="other">The second value.</param>
|
||||
/// <returns>The lowest common multiple between <paramref name="value" /> and <paramref name="other" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static sbyte LowestCommonMultiple(this sbyte value, sbyte other)
|
||||
{
|
||||
return (sbyte)((long)value).LowestCommonMultiple(other);
|
||||
@ -156,7 +156,7 @@ public static class SByteExtensions
|
||||
/// <author>ShreevatsaR, https://stackoverflow.com/a/1082938/1467293</author>
|
||||
/// <license>CC-BY-SA 2.5</license>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static sbyte Mod(this sbyte dividend, sbyte divisor)
|
||||
{
|
||||
int r = dividend % divisor;
|
||||
@ -172,7 +172,7 @@ public static class SByteExtensions
|
||||
/// Multiplicative persistence is defined as the recursive digital product until that product is a single digit.
|
||||
/// </remarks>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int MultiplicativePersistence(this sbyte value)
|
||||
{
|
||||
return ((long)value).MultiplicativePersistence();
|
||||
@ -206,7 +206,7 @@ public static class SByteExtensions
|
||||
/// </list>
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int Sign(this sbyte value)
|
||||
{
|
||||
return System.Math.Sign(value);
|
||||
@ -220,7 +220,7 @@ public static class SByteExtensions
|
||||
/// <param name="high">The exclusive upper bound.</param>
|
||||
/// <returns>The wrapped value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static sbyte Wrap(this sbyte value, sbyte low, sbyte high)
|
||||
{
|
||||
return (sbyte)((long)value).Wrap(low, high);
|
||||
@ -233,7 +233,7 @@ public static class SByteExtensions
|
||||
/// <param name="length">The exclusive upper bound.</param>
|
||||
/// <returns>The wrapped value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static sbyte Wrap(this sbyte value, sbyte length)
|
||||
{
|
||||
return (sbyte)((long)value).Wrap(length);
|
||||
|
@ -21,7 +21,7 @@ public static class SingleExtensions
|
||||
/// is equal to <see cref="float.NaN" />, less than -1, or greater than 1, <see cref="float.NaN" /> is returned.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static float Acos(this float value)
|
||||
{
|
||||
return MathF.Acos(value);
|
||||
@ -39,7 +39,7 @@ public static class SingleExtensions
|
||||
/// <paramref name="value" /> is less than 1 or equal to <see cref="float.NaN" />, <see cref="float.NaN" /> is returned.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static float Acosh(this float value)
|
||||
{
|
||||
return MathF.Acosh(value);
|
||||
@ -57,7 +57,7 @@ public static class SingleExtensions
|
||||
/// <see cref="float.NaN" /> is returned.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static float Asin(this float value)
|
||||
{
|
||||
return MathF.Asin(value);
|
||||
@ -75,7 +75,7 @@ public static class SingleExtensions
|
||||
/// <see cref="float.NaN" />, <see cref="float.NaN" /> is returned.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static float Asinh(this float value)
|
||||
{
|
||||
return MathF.Asinh(value);
|
||||
@ -92,7 +92,7 @@ public static class SingleExtensions
|
||||
/// <paramref name="value" /> is equal to <see cref="float.NaN" />, <see cref="float.NaN" /> is returned.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static float Atan(this float value)
|
||||
{
|
||||
return MathF.Atan(value);
|
||||
@ -111,7 +111,7 @@ public static class SingleExtensions
|
||||
/// <see cref="float.NaN" /> is returned.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static float Atanh(this float value)
|
||||
{
|
||||
return MathF.Atanh(value);
|
||||
@ -123,7 +123,7 @@ public static class SingleExtensions
|
||||
/// <param name="value">The number whose square root is to be found.</param>
|
||||
/// <returns>The square root of <paramref name="value" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static Complex ComplexSqrt(this float value)
|
||||
{
|
||||
switch (value)
|
||||
@ -153,7 +153,7 @@ public static class SingleExtensions
|
||||
/// <see cref="float.NaN" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static float Cos(this float value)
|
||||
{
|
||||
return MathF.Cos(value);
|
||||
@ -170,7 +170,7 @@ public static class SingleExtensions
|
||||
/// <see cref="float.NaN" />, <see cref="double.NaN" /> is returned.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static float Cosh(this float value)
|
||||
{
|
||||
return MathF.Cosh(value);
|
||||
@ -182,7 +182,7 @@ public static class SingleExtensions
|
||||
/// <param name="value">The angle in degrees to convert.</param>
|
||||
/// <returns>The result of π * <paramref name="value" /> / 180.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static float DegreesToRadians(this float value)
|
||||
{
|
||||
return value * (MathF.PI / 180.0f);
|
||||
@ -197,7 +197,7 @@ public static class SingleExtensions
|
||||
/// otherwise.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsEven(this float value)
|
||||
{
|
||||
return value % 2 == 0;
|
||||
@ -212,7 +212,7 @@ public static class SingleExtensions
|
||||
/// otherwise.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsOdd(this float value)
|
||||
{
|
||||
return !value.IsEven();
|
||||
@ -224,7 +224,7 @@ public static class SingleExtensions
|
||||
/// <param name="value">The angle in radians to convert.</param>
|
||||
/// <returns>The result of π * <paramref name="value" /> / 180.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static float RadiansToDegrees(this float value)
|
||||
{
|
||||
return value * (180.0f / MathF.PI);
|
||||
@ -236,7 +236,7 @@ public static class SingleExtensions
|
||||
/// <param name="value">The value to round.</param>
|
||||
/// <returns><paramref name="value" /> rounded to the nearest whole number.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static float Round(this float value)
|
||||
{
|
||||
return value.Round(1.0f);
|
||||
@ -249,7 +249,7 @@ public static class SingleExtensions
|
||||
/// <param name="nearest">The nearest multiple to which <paramref name="value" /> should be rounded.</param>
|
||||
/// <returns><paramref name="value" /> rounded to the nearest multiple of <paramref name="nearest" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static float Round(this float value, float nearest)
|
||||
{
|
||||
return MathF.Round(value / nearest) * nearest;
|
||||
@ -262,7 +262,7 @@ public static class SingleExtensions
|
||||
/// <returns>The saturated value.</returns>
|
||||
/// <remarks>This method clamps <paramref name="value" /> between 0 and 1.</remarks>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static float Saturate(this float value)
|
||||
{
|
||||
return System.Math.Clamp(value, 0.0f, 1.0f);
|
||||
@ -296,7 +296,7 @@ public static class SingleExtensions
|
||||
/// </list>
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int Sign(this float value)
|
||||
{
|
||||
return MathF.Sign(value);
|
||||
@ -332,7 +332,7 @@ public static class SingleExtensions
|
||||
/// <author>SLenik https://stackoverflow.com/a/6755197/1467293</author>
|
||||
/// <license>CC BY-SA 3.0</license>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static float Sqrt(this float value)
|
||||
{
|
||||
switch (value)
|
||||
@ -366,7 +366,7 @@ public static class SingleExtensions
|
||||
/// <see cref="double.NaN" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static float Sin(this float value)
|
||||
{
|
||||
return MathF.Sin(value);
|
||||
@ -382,7 +382,7 @@ public static class SingleExtensions
|
||||
/// <see cref="float.NaN" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static float Sinh(this float value)
|
||||
{
|
||||
return MathF.Sinh(value);
|
||||
@ -398,7 +398,7 @@ public static class SingleExtensions
|
||||
/// <see cref="float.NaN" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static float Tan(this float value)
|
||||
{
|
||||
return MathF.Sin(value);
|
||||
@ -415,7 +415,7 @@ public static class SingleExtensions
|
||||
/// <see cref="float.NaN" />, this method returns <see cref="float.NaN" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static float Tanh(this float value)
|
||||
{
|
||||
return MathF.Tanh(value);
|
||||
@ -429,7 +429,7 @@ public static class SingleExtensions
|
||||
/// <param name="high">The exclusive upper bound.</param>
|
||||
/// <returns>The wrapped value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static float Wrap(this float value, float low, float high)
|
||||
{
|
||||
return (float)((double)value).Wrap(low, high);
|
||||
@ -442,7 +442,7 @@ public static class SingleExtensions
|
||||
/// <param name="length">The exclusive upper bound.</param>
|
||||
/// <returns>The wrapped value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static float Wrap(this float value, float length)
|
||||
{
|
||||
return (float)((double)value).Wrap(length);
|
||||
|
@ -35,7 +35,7 @@ public static class UInt16Extensions
|
||||
/// <para>For example, the digital root of 239 is 5: <c>2 + 3 + 9 = 14</c>, then <c>1 + 4 = 5</c>.</para>
|
||||
/// </remarks>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static ushort DigitalRoot(this ushort value)
|
||||
{
|
||||
var root = (ushort)(value % 9);
|
||||
@ -48,7 +48,7 @@ public static class UInt16Extensions
|
||||
/// <param name="value">The value whose factorial to compute.</param>
|
||||
/// <returns>The factorial of <paramref name="value" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static ulong Factorial(this ushort value)
|
||||
{
|
||||
if (value == 0)
|
||||
@ -73,7 +73,7 @@ public static class UInt16Extensions
|
||||
/// <param name="other">The second value.</param>
|
||||
/// <returns>The greatest common factor between <paramref name="value" /> and <paramref name="other" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static ushort GreatestCommonFactor(this ushort value, ushort other)
|
||||
{
|
||||
return (ushort)((long)value).GreatestCommonFactor(other);
|
||||
@ -88,7 +88,7 @@ public static class UInt16Extensions
|
||||
/// otherwise.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsEven(this ushort value)
|
||||
{
|
||||
return (value & 1) == 0;
|
||||
@ -102,7 +102,7 @@ public static class UInt16Extensions
|
||||
/// <see langword="true" /> if <paramref name="value" /> is prime; otherwise, <see langword="false" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsPrime(this ushort value)
|
||||
{
|
||||
return ((ulong)value).IsPrime();
|
||||
@ -117,7 +117,7 @@ public static class UInt16Extensions
|
||||
/// otherwise.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsOdd(this ushort value)
|
||||
{
|
||||
return !value.IsEven();
|
||||
@ -131,7 +131,7 @@ public static class UInt16Extensions
|
||||
/// <param name="other">The second value.</param>
|
||||
/// <returns>The lowest common multiple between <paramref name="value" /> and <paramref name="other" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static ushort LowestCommonMultiple(this ushort value, ushort other)
|
||||
{
|
||||
return (ushort)((ulong)value).LowestCommonMultiple(other);
|
||||
@ -146,7 +146,7 @@ public static class UInt16Extensions
|
||||
/// Multiplicative persistence is defined as the recursive digital product until that product is a single digit.
|
||||
/// </remarks>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int MultiplicativePersistence(this ushort value)
|
||||
{
|
||||
return ((ulong)value).MultiplicativePersistence();
|
||||
@ -160,7 +160,7 @@ public static class UInt16Extensions
|
||||
/// <param name="high">The exclusive upper bound.</param>
|
||||
/// <returns>The wrapped value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static ushort Wrap(this ushort value, ushort low, ushort high)
|
||||
{
|
||||
return (ushort)((ulong)value).Wrap(low, high);
|
||||
@ -173,7 +173,7 @@ public static class UInt16Extensions
|
||||
/// <param name="length">The exclusive upper bound.</param>
|
||||
/// <returns>The wrapped value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static ushort Wrap(this ushort value, ushort length)
|
||||
{
|
||||
return (ushort)((ulong)value).Wrap(length);
|
||||
|
@ -35,7 +35,7 @@ public static class UInt32Extensions
|
||||
/// <para>For example, the digital root of 239 is 5: <c>2 + 3 + 9 = 14</c>, then <c>1 + 4 = 5</c>.</para>
|
||||
/// </remarks>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static uint DigitalRoot(this uint value)
|
||||
{
|
||||
uint root = value % 9;
|
||||
@ -48,7 +48,7 @@ public static class UInt32Extensions
|
||||
/// <param name="value">The value whose factorial to compute.</param>
|
||||
/// <returns>The factorial of <paramref name="value" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static ulong Factorial(this uint value)
|
||||
{
|
||||
if (value == 0)
|
||||
@ -73,7 +73,7 @@ public static class UInt32Extensions
|
||||
/// <param name="other">The second value.</param>
|
||||
/// <returns>The greatest common factor between <paramref name="value" /> and <paramref name="other" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static uint GreatestCommonFactor(this uint value, uint other)
|
||||
{
|
||||
return (uint)((long)value).GreatestCommonFactor(other);
|
||||
@ -88,7 +88,7 @@ public static class UInt32Extensions
|
||||
/// otherwise.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsEven(this uint value)
|
||||
{
|
||||
return (value & 1) == 0;
|
||||
@ -102,7 +102,7 @@ public static class UInt32Extensions
|
||||
/// <see langword="true" /> if <paramref name="value" /> is prime; otherwise, <see langword="false" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsPrime(this uint value)
|
||||
{
|
||||
return ((ulong)value).IsPrime();
|
||||
@ -117,7 +117,7 @@ public static class UInt32Extensions
|
||||
/// otherwise.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsOdd(this uint value)
|
||||
{
|
||||
return !value.IsEven();
|
||||
@ -131,7 +131,7 @@ public static class UInt32Extensions
|
||||
/// <param name="other">The second value.</param>
|
||||
/// <returns>The lowest common multiple between <paramref name="value" /> and <paramref name="other" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static uint LowestCommonMultiple(this uint value, uint other)
|
||||
{
|
||||
return (uint)((ulong)value).LowestCommonMultiple(other);
|
||||
@ -146,7 +146,7 @@ public static class UInt32Extensions
|
||||
/// Multiplicative persistence is defined as the recursive digital product until that product is a single digit.
|
||||
/// </remarks>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int MultiplicativePersistence(this uint value)
|
||||
{
|
||||
return ((ulong)value).MultiplicativePersistence();
|
||||
@ -160,7 +160,7 @@ public static class UInt32Extensions
|
||||
/// <param name="high">The exclusive upper bound.</param>
|
||||
/// <returns>The wrapped value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static uint Wrap(this uint value, uint low, uint high)
|
||||
{
|
||||
return (uint)((ulong)value).Wrap(low, high);
|
||||
@ -173,7 +173,7 @@ public static class UInt32Extensions
|
||||
/// <param name="length">The exclusive upper bound.</param>
|
||||
/// <returns>The wrapped value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static uint Wrap(this uint value, uint length)
|
||||
{
|
||||
return (uint)((ulong)value).Wrap(length);
|
||||
|
@ -35,7 +35,7 @@ public static class UInt64Extensions
|
||||
/// <para>For example, the digital root of 239 is 5: <c>2 + 3 + 9 = 14</c>, then <c>1 + 4 = 5</c>.</para>
|
||||
/// </remarks>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static ulong DigitalRoot(this ulong value)
|
||||
{
|
||||
ulong root = value % 9;
|
||||
@ -48,7 +48,7 @@ public static class UInt64Extensions
|
||||
/// <param name="value">The value whose factorial to compute.</param>
|
||||
/// <returns>The factorial of <paramref name="value" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static ulong Factorial(this ulong value)
|
||||
{
|
||||
if (value == 0)
|
||||
@ -73,7 +73,7 @@ public static class UInt64Extensions
|
||||
/// <param name="other">The second value.</param>
|
||||
/// <returns>The greatest common factor between <paramref name="value" /> and <paramref name="other" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static ulong GreatestCommonFactor(this ulong value, ulong other)
|
||||
{
|
||||
while (other != 0)
|
||||
@ -93,7 +93,7 @@ public static class UInt64Extensions
|
||||
/// otherwise.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsEven(this ulong value)
|
||||
{
|
||||
return (value & 1) == 0;
|
||||
@ -107,7 +107,7 @@ public static class UInt64Extensions
|
||||
/// <see langword="true" /> if <paramref name="value" /> is prime; otherwise, <see langword="false" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsPrime(this ulong value)
|
||||
{
|
||||
switch (value)
|
||||
@ -141,7 +141,7 @@ public static class UInt64Extensions
|
||||
/// otherwise.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsOdd(this ulong value)
|
||||
{
|
||||
return !value.IsEven();
|
||||
@ -155,7 +155,7 @@ public static class UInt64Extensions
|
||||
/// <param name="other">The second value.</param>
|
||||
/// <returns>The lowest common multiple between <paramref name="value" /> and <paramref name="other" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static ulong LowestCommonMultiple(this ulong value, ulong other)
|
||||
{
|
||||
if (value == 0 || other == 0)
|
||||
@ -185,7 +185,7 @@ public static class UInt64Extensions
|
||||
/// Multiplicative persistence is defined as the recursive digital product until that product is a single digit.
|
||||
/// </remarks>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int MultiplicativePersistence(this ulong value)
|
||||
{
|
||||
var persistence = 0;
|
||||
@ -230,7 +230,7 @@ public static class UInt64Extensions
|
||||
/// <param name="high">The exclusive upper bound.</param>
|
||||
/// <returns>The wrapped value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static ulong Wrap(this ulong value, ulong low, ulong high)
|
||||
{
|
||||
ulong difference = high - low;
|
||||
@ -244,7 +244,7 @@ public static class UInt64Extensions
|
||||
/// <param name="length">The exclusive upper bound.</param>
|
||||
/// <returns>The wrapped value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static ulong Wrap(this ulong value, ulong length)
|
||||
{
|
||||
return ((value % length) + length) % length;
|
||||
|
@ -23,7 +23,7 @@ public static class EndPointExtensions
|
||||
/// </returns>
|
||||
/// <exception cref="ArgumentNullException"><paramref name="endPoint" /> is <see langword="null" />.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static string GetHost(this EndPoint endPoint)
|
||||
{
|
||||
#if NET6_0_OR_GREATER
|
||||
@ -56,7 +56,7 @@ public static class EndPointExtensions
|
||||
/// </returns>
|
||||
/// <exception cref="ArgumentNullException"><paramref name="endPoint" /> is <see langword="null" />.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int GetPort(this EndPoint endPoint)
|
||||
{
|
||||
#if NET6_0_OR_GREATER
|
||||
|
@ -20,7 +20,7 @@ public static class IPAddressExtensions
|
||||
/// </returns>
|
||||
/// <exception cref="ArgumentNullException"><paramref name="address" /> is <see langword="null" />.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsIPv4(this IPAddress address)
|
||||
{
|
||||
#if NET6_0_OR_GREATER
|
||||
@ -44,7 +44,7 @@ public static class IPAddressExtensions
|
||||
/// </returns>
|
||||
/// <exception cref="ArgumentNullException"><paramref name="address" /> is <see langword="null" />.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsIPv6(this IPAddress address)
|
||||
{
|
||||
#if NET6_0_OR_GREATER
|
||||
|
@ -16,7 +16,7 @@ public static class Int16Extensions
|
||||
/// <param name="value">The value to convert, expressed in host byte order.</param>
|
||||
/// <returns>An integer value, expressed in network byte order.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static short HostToNetworkOrder(this short value)
|
||||
{
|
||||
return IPAddress.HostToNetworkOrder(value);
|
||||
@ -28,7 +28,7 @@ public static class Int16Extensions
|
||||
/// <param name="value">The value to convert, expressed in network byte order.</param>
|
||||
/// <returns>An integer value, expressed in host byte order.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static short NetworkToHostOrder(this short value)
|
||||
{
|
||||
return IPAddress.NetworkToHostOrder(value);
|
||||
|
@ -16,7 +16,7 @@ public static class Int32Extensions
|
||||
/// <param name="value">The value to convert, expressed in host byte order.</param>
|
||||
/// <returns>An integer value, expressed in network byte order.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int HostToNetworkOrder(this int value)
|
||||
{
|
||||
return IPAddress.HostToNetworkOrder(value);
|
||||
@ -28,7 +28,7 @@ public static class Int32Extensions
|
||||
/// <param name="value">The value to convert, expressed in network byte order.</param>
|
||||
/// <returns>An integer value, expressed in host byte order.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int NetworkToHostOrder(this int value)
|
||||
{
|
||||
return IPAddress.NetworkToHostOrder(value);
|
||||
|
@ -16,7 +16,7 @@ public static class Int64Extensions
|
||||
/// <param name="value">The value to convert, expressed in host byte order.</param>
|
||||
/// <returns>An integer value, expressed in network byte order.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static long HostToNetworkOrder(this long value)
|
||||
{
|
||||
return IPAddress.HostToNetworkOrder(value);
|
||||
@ -28,7 +28,7 @@ public static class Int64Extensions
|
||||
/// <param name="value">The value to convert, expressed in network byte order.</param>
|
||||
/// <returns>An integer value, expressed in host byte order.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static long NetworkToHostOrder(this long value)
|
||||
{
|
||||
return IPAddress.NetworkToHostOrder(value);
|
||||
|
@ -20,7 +20,7 @@ public static class ByteExtensions
|
||||
/// <a href="https://docs.microsoft.com/en-us/dotnet/api/system.runtime.intrinsics.x86.popcnt?view=net-6.0">POPCNT</a>
|
||||
/// </remarks>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int PopCount(this byte value)
|
||||
{
|
||||
return ((uint)value).PopCount();
|
||||
@ -35,7 +35,7 @@ public static class ByteExtensions
|
||||
/// </param>
|
||||
/// <returns>The rotated value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static byte RotateLeft(this byte value, int count)
|
||||
{
|
||||
count = count.Mod(8);
|
||||
@ -51,7 +51,7 @@ public static class ByteExtensions
|
||||
/// </param>
|
||||
/// <returns>The rotated value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static byte RotateRight(this byte value, int count)
|
||||
{
|
||||
count = count.Mod(8);
|
||||
@ -67,7 +67,7 @@ public static class ByteExtensions
|
||||
/// is 0 or the result overflows.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static byte RoundUpToPowerOf2(this byte value)
|
||||
{
|
||||
return (byte)((uint)value).RoundUpToPowerOf2();
|
||||
|
@ -19,7 +19,7 @@ public static class Int16Extensions
|
||||
/// <a href="https://docs.microsoft.com/en-us/dotnet/api/system.runtime.intrinsics.x86.popcnt?view=net-6.0">POPCNT</a>
|
||||
/// </remarks>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int PopCount(this short value)
|
||||
{
|
||||
return ((uint)value).PopCount();
|
||||
@ -34,7 +34,7 @@ public static class Int16Extensions
|
||||
/// </param>
|
||||
/// <returns>The rotated value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static short RotateLeft(this short value, int count)
|
||||
{
|
||||
var unsigned = unchecked((ushort)value);
|
||||
@ -50,7 +50,7 @@ public static class Int16Extensions
|
||||
/// </param>
|
||||
/// <returns>The rotated value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static short RotateRight(this short value, int count)
|
||||
{
|
||||
var unsigned = unchecked((ushort)value);
|
||||
@ -66,7 +66,7 @@ public static class Int16Extensions
|
||||
/// is 0 or the result overflows.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static short RoundUpToPowerOf2(this short value)
|
||||
{
|
||||
return (short)((uint)value).RoundUpToPowerOf2();
|
||||
|
@ -19,7 +19,7 @@ public static class Int32Extensions
|
||||
/// <a href="https://docs.microsoft.com/en-us/dotnet/api/system.runtime.intrinsics.x86.popcnt?view=net-6.0">POPCNT</a>
|
||||
/// </remarks>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int PopCount(this int value)
|
||||
{
|
||||
return ((uint)value).PopCount();
|
||||
@ -34,7 +34,7 @@ public static class Int32Extensions
|
||||
/// </param>
|
||||
/// <returns>The rotated value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int RotateLeft(this int value, int count)
|
||||
{
|
||||
var unsigned = unchecked((uint)value);
|
||||
@ -50,7 +50,7 @@ public static class Int32Extensions
|
||||
/// </param>
|
||||
/// <returns>The rotated value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int RotateRight(this int value, int count)
|
||||
{
|
||||
var unsigned = unchecked((uint)value);
|
||||
@ -66,7 +66,7 @@ public static class Int32Extensions
|
||||
/// is 0 or the result overflows.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int RoundUpToPowerOf2(this int value)
|
||||
{
|
||||
return (int)((uint)value).RoundUpToPowerOf2();
|
||||
|
@ -19,7 +19,7 @@ public static class Int64Extensions
|
||||
/// <a href="https://docs.microsoft.com/en-us/dotnet/api/system.runtime.intrinsics.x86.popcnt?view=net-6.0">POPCNT</a>
|
||||
/// </remarks>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int PopCount(this long value)
|
||||
{
|
||||
return ((ulong)value).PopCount();
|
||||
@ -34,7 +34,7 @@ public static class Int64Extensions
|
||||
/// </param>
|
||||
/// <returns>The rotated value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static long RotateLeft(this long value, int count)
|
||||
{
|
||||
var unsigned = unchecked((ulong)value);
|
||||
@ -50,7 +50,7 @@ public static class Int64Extensions
|
||||
/// </param>
|
||||
/// <returns>The rotated value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static long RotateRight(this long value, int count)
|
||||
{
|
||||
var unsigned = unchecked((ulong)value);
|
||||
@ -66,7 +66,7 @@ public static class Int64Extensions
|
||||
/// is 0 or the result overflows.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static long RoundUpToPowerOf2(this long value)
|
||||
{
|
||||
return (long)((ulong)value).RoundUpToPowerOf2();
|
||||
|
@ -20,7 +20,7 @@ public static class SByteExtensions
|
||||
/// <a href="https://docs.microsoft.com/en-us/dotnet/api/system.runtime.intrinsics.x86.popcnt?view=net-6.0">POPCNT</a>
|
||||
/// </remarks>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int PopCount(this sbyte value)
|
||||
{
|
||||
return ((uint)value).PopCount();
|
||||
@ -35,7 +35,7 @@ public static class SByteExtensions
|
||||
/// </param>
|
||||
/// <returns>The rotated value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static sbyte RotateLeft(this sbyte value, int count)
|
||||
{
|
||||
var signed = unchecked((byte)value);
|
||||
@ -51,7 +51,7 @@ public static class SByteExtensions
|
||||
/// </param>
|
||||
/// <returns>The rotated value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static sbyte RotateRight(this sbyte value, int count)
|
||||
{
|
||||
var signed = unchecked((byte)value);
|
||||
@ -67,7 +67,7 @@ public static class SByteExtensions
|
||||
/// is 0 or the result overflows.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static sbyte RoundUpToPowerOf2(this sbyte value)
|
||||
{
|
||||
return (sbyte)((uint)value).RoundUpToPowerOf2();
|
||||
|
@ -20,7 +20,7 @@ public static class UInt16Extensions
|
||||
/// <a href="https://docs.microsoft.com/en-us/dotnet/api/system.runtime.intrinsics.x86.popcnt?view=net-6.0">POPCNT</a>
|
||||
/// </remarks>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int PopCount(this ushort value)
|
||||
{
|
||||
return ((uint)value).PopCount();
|
||||
@ -35,7 +35,7 @@ public static class UInt16Extensions
|
||||
/// </param>
|
||||
/// <returns>The rotated value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static ushort RotateLeft(this ushort value, int count)
|
||||
{
|
||||
return (ushort)((ushort)(value << count) | (ushort)(value >> (16 - count)));
|
||||
@ -50,7 +50,7 @@ public static class UInt16Extensions
|
||||
/// </param>
|
||||
/// <returns>The rotated value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static ushort RotateRight(this ushort value, int count)
|
||||
{
|
||||
return (ushort)((ushort)(value >> count) | (ushort)(value << (16 - count)));
|
||||
@ -65,7 +65,7 @@ public static class UInt16Extensions
|
||||
/// is 0 or the result overflows.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static ushort RoundUpToPowerOf2(this ushort value)
|
||||
{
|
||||
return (ushort)((uint)value).RoundUpToPowerOf2();
|
||||
|
@ -21,7 +21,7 @@ public static class UInt32Extensions
|
||||
/// <a href="https://docs.microsoft.com/en-us/dotnet/api/system.runtime.intrinsics.x86.popcnt?view=net-6.0">POPCNT</a>
|
||||
/// </remarks>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int PopCount(this uint value)
|
||||
{
|
||||
#if NETCOREAPP3_1_OR_GREATER
|
||||
@ -49,7 +49,7 @@ public static class UInt32Extensions
|
||||
/// </param>
|
||||
/// <returns>The rotated value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static uint RotateLeft(this uint value, int count)
|
||||
{
|
||||
return (value << count) | (value >> (32 - count));
|
||||
@ -64,7 +64,7 @@ public static class UInt32Extensions
|
||||
/// </param>
|
||||
/// <returns>The rotated value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static uint RotateRight(this uint value, int count)
|
||||
{
|
||||
return (value >> count) | (value << (32 - count));
|
||||
@ -79,7 +79,7 @@ public static class UInt32Extensions
|
||||
/// is 0 or the result overflows.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static uint RoundUpToPowerOf2(this uint value)
|
||||
{
|
||||
#if NET6_0_OR_GREATER
|
||||
|
@ -21,7 +21,7 @@ public static class UInt64Extensions
|
||||
/// <a href="https://docs.microsoft.com/en-us/dotnet/api/system.runtime.intrinsics.x86.popcnt?view=net-6.0">POPCNT</a>
|
||||
/// </remarks>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int PopCount(this ulong value)
|
||||
{
|
||||
#if NETCOREAPP3_1_OR_GREATER
|
||||
@ -49,7 +49,7 @@ public static class UInt64Extensions
|
||||
/// </param>
|
||||
/// <returns>The rotated value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static ulong RotateLeft(this ulong value, int count)
|
||||
{
|
||||
return (value << count) | (value >> (64 - count));
|
||||
@ -64,7 +64,7 @@ public static class UInt64Extensions
|
||||
/// </param>
|
||||
/// <returns>The rotated value.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static ulong RotateRight(this ulong value, int count)
|
||||
{
|
||||
return (value >> count) | (value << (64 - count));
|
||||
@ -79,7 +79,7 @@ public static class UInt64Extensions
|
||||
/// is 0 or the result overflows.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static ulong RoundUpToPowerOf2(this ulong value)
|
||||
{
|
||||
#if NET6_0_OR_GREATER
|
||||
|
@ -35,7 +35,7 @@ public static class Vector2Extensions
|
||||
/// <see langword="false" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsOnLine(this Vector2 point, LineF line)
|
||||
{
|
||||
(float x1, float x2) = (line.Start.X, line.End.X);
|
||||
@ -55,7 +55,7 @@ public static class Vector2Extensions
|
||||
/// <paramref name="end" />; otherwise <see langword="false" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsOnLine(this Vector2 point, PointF start, PointF end)
|
||||
{
|
||||
return point.IsOnLine(new LineF(start, end));
|
||||
@ -72,7 +72,7 @@ public static class Vector2Extensions
|
||||
/// <paramref name="end" />; otherwise <see langword="false" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsOnLine(this Vector2 point, Vector2 start, Vector2 end)
|
||||
{
|
||||
return point.IsOnLine(new LineF(start, end));
|
||||
@ -84,7 +84,7 @@ public static class Vector2Extensions
|
||||
/// <param name="vector">The vector whose components to round.</param>
|
||||
/// <returns>The rounded vector.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static Vector2 Round(this Vector2 vector)
|
||||
{
|
||||
return vector.Round(1.0f);
|
||||
@ -97,7 +97,7 @@ public static class Vector2Extensions
|
||||
/// <param name="nearest">The nearest multiple to which the components should be rounded.</param>
|
||||
/// <returns>The rounded vector.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static Vector2 Round(this Vector2 vector, float nearest)
|
||||
{
|
||||
float x = vector.X.Round(nearest);
|
||||
@ -111,7 +111,7 @@ public static class Vector2Extensions
|
||||
/// <param name="vector">The vector to convert.</param>
|
||||
/// <returns>The resulting <see cref="PointF" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static PointF ToPointF(this Vector2 vector)
|
||||
{
|
||||
return new PointF(vector.X, vector.Y);
|
||||
@ -123,7 +123,7 @@ public static class Vector2Extensions
|
||||
/// <param name="vector">The vector to convert.</param>
|
||||
/// <returns>The resulting <see cref="SizeF" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static SizeF ToSizeF(this Vector2 vector)
|
||||
{
|
||||
return new SizeF(vector.X, vector.Y);
|
||||
@ -139,7 +139,7 @@ public static class Vector2Extensions
|
||||
/// <paramref name="vector" />, and whose <see cref="Vector2.X" /> component is <paramref name="x" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static Vector2 WithX(this Vector2 vector, float x)
|
||||
{
|
||||
return vector with {X = x};
|
||||
@ -155,7 +155,7 @@ public static class Vector2Extensions
|
||||
/// <paramref name="vector" />, and whose <see cref="Vector2.Y" /> component is <paramref name="y" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static Vector2 WithY(this Vector2 vector, float y)
|
||||
{
|
||||
return vector with {Y = y};
|
||||
|
@ -31,7 +31,7 @@ public static class Vector3Extensions
|
||||
/// <param name="vector">The vector whose components to round.</param>
|
||||
/// <returns>The rounded vector.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static Vector3 Round(this Vector3 vector)
|
||||
{
|
||||
return vector.Round(1.0f);
|
||||
@ -44,7 +44,7 @@ public static class Vector3Extensions
|
||||
/// <param name="nearest">The nearest multiple to which the components should be rounded.</param>
|
||||
/// <returns>The rounded vector.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static Vector3 Round(this Vector3 vector, float nearest)
|
||||
{
|
||||
float x = vector.X.Round(nearest);
|
||||
@ -63,7 +63,7 @@ public static class Vector3Extensions
|
||||
/// the same as that of <paramref name="vector" />, and whose <see cref="Vector3.Y" /> component is <paramref name="x" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static Vector3 WithX(this Vector3 vector, float x)
|
||||
{
|
||||
return vector with {X = x};
|
||||
@ -79,7 +79,7 @@ public static class Vector3Extensions
|
||||
/// the same as that of <paramref name="vector" />, and whose <see cref="Vector3.Y" /> component is <paramref name="y" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static Vector3 WithY(this Vector3 vector, float y)
|
||||
{
|
||||
return vector with {Y = y};
|
||||
@ -95,7 +95,7 @@ public static class Vector3Extensions
|
||||
/// the same as that of <paramref name="vector" />, and whose <see cref="Vector3.Z" /> component is <paramref name="z" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static Vector3 WithZ(this Vector3 vector, float z)
|
||||
{
|
||||
return vector with {Z = z};
|
||||
|
@ -33,7 +33,7 @@ public static class Vector4Extensions
|
||||
/// <param name="vector">The vector whose components to round.</param>
|
||||
/// <returns>The rounded vector.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static Vector4 Round(this Vector4 vector)
|
||||
{
|
||||
return vector.Round(1.0f);
|
||||
@ -46,7 +46,7 @@ public static class Vector4Extensions
|
||||
/// <param name="nearest">The nearest multiple to which the components should be rounded.</param>
|
||||
/// <returns>The rounded vector.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static Vector4 Round(this Vector4 vector, float nearest)
|
||||
{
|
||||
float x = vector.X.Round(nearest);
|
||||
@ -68,7 +68,7 @@ public static class Vector4Extensions
|
||||
/// <see cref="Vector4.X" /> component is <paramref name="x" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static Vector4 WithX(this Vector4 vector, float x)
|
||||
{
|
||||
return vector with {X = x};
|
||||
@ -86,7 +86,7 @@ public static class Vector4Extensions
|
||||
/// <see cref="Vector4.Y" /> component is <paramref name="y" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static Vector4 WithY(this Vector4 vector, float y)
|
||||
{
|
||||
return vector with {Y = y};
|
||||
@ -104,7 +104,7 @@ public static class Vector4Extensions
|
||||
/// <see cref="Vector4.Z" /> component is <paramref name="z" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static Vector4 WithZ(this Vector4 vector, float z)
|
||||
{
|
||||
return vector with {Z = z};
|
||||
@ -122,7 +122,7 @@ public static class Vector4Extensions
|
||||
/// <see cref="Vector4.W" /> component is <paramref name="w" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static Vector4 WithW(this Vector4 vector, float w)
|
||||
{
|
||||
return vector with {W = w};
|
||||
|
@ -22,7 +22,7 @@ public static class MemberInfoExtensions
|
||||
/// </returns>
|
||||
/// <exception cref="ArgumentNullException"><paramref name="member" /> is <see langword="null" />.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool HasCustomAttribute<T>(this MemberInfo member)
|
||||
where T : Attribute
|
||||
{
|
||||
@ -48,7 +48,7 @@ public static class MemberInfoExtensions
|
||||
/// </returns>
|
||||
/// <exception cref="ArgumentNullException"><paramref name="member" /> is <see langword="null" />.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool HasCustomAttribute(this MemberInfo member, Type attribute)
|
||||
{
|
||||
#if NET6_0_OR_GREATER
|
||||
|
@ -18,7 +18,7 @@ public static class TypeExtensions
|
||||
/// <returns><see langword="true" /> if the current exists on the type; otherwise, <see langword="false" />.</returns>
|
||||
/// <exception cref="ArgumentNullException"><paramref name="value" /> is <see langword="null" />.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool Implements<T>(this Type value)
|
||||
{
|
||||
#if NET6_0_OR_GREATER
|
||||
@ -45,7 +45,7 @@ public static class TypeExtensions
|
||||
/// <para><paramref name="interfaceType" /> is <see langword="null" />.</para>
|
||||
/// </exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool Implements(this Type value, Type interfaceType)
|
||||
{
|
||||
#if NET6_0_OR_GREATER
|
||||
@ -86,7 +86,7 @@ public static class TypeExtensions
|
||||
/// <exception cref="ArgumentNullException"><paramref name="value" /> is <see langword="null" />.</exception>
|
||||
/// <exception cref="ArgumentException"><paramref name="value" /> is not a class.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool Inherits<T>(this Type value)
|
||||
where T : class
|
||||
{
|
||||
@ -122,7 +122,7 @@ public static class TypeExtensions
|
||||
/// <para><paramref name="type" /> is not a class.</para>
|
||||
/// </exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool Inherits(this Type value, Type type)
|
||||
{
|
||||
#if NET6_0_OR_GREATER
|
||||
|
@ -15,7 +15,7 @@ public static class CharExtensions
|
||||
/// <param name="value">The character to check.</param>
|
||||
/// <returns><see langword="true" /> if this character is an emoji; otherwise, <see langword="false" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsEmoji(this char value)
|
||||
{
|
||||
return value.ToString().IsEmoji();
|
||||
@ -30,7 +30,7 @@ public static class CharExtensions
|
||||
/// A <see cref="string" /> composed of <paramref name="value" /> repeated <paramref name="count" /> times.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static string Repeat(this char value, int count)
|
||||
{
|
||||
return count switch
|
||||
|
@ -19,7 +19,7 @@ public static class Extensions
|
||||
/// <typeparam name="T">The type of the value to convert.</typeparam>
|
||||
/// <returns>A JSON string representing the object.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static string ToJson<T>(this T value, JsonSerializerOptions? options = null)
|
||||
{
|
||||
return JsonSerializer.Serialize(value, options);
|
||||
|
@ -20,7 +20,7 @@ public static class RuneExtensions
|
||||
/// <param name="value">The rune to check.</param>
|
||||
/// <returns><see langword="true" /> if this rune is an emoji; otherwise, <see langword="false" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsEmoji(this Rune value)
|
||||
{
|
||||
return value.ToString().IsEmoji();
|
||||
@ -35,7 +35,7 @@ public static class RuneExtensions
|
||||
/// A <see cref="string" /> composed of <paramref name="value" /> repeated <paramref name="count" /> times.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static string Repeat(this Rune value, int count)
|
||||
{
|
||||
switch (count)
|
||||
|
@ -26,7 +26,7 @@ public static class StringExtensions
|
||||
/// <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
[return: NotNullIfNotNull("value")]
|
||||
public static string? AsNullIfEmpty(this string? value)
|
||||
{
|
||||
@ -43,7 +43,7 @@ public static class StringExtensions
|
||||
/// whitespace; otherwise, <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
[return: NotNullIfNotNull("value")]
|
||||
public static string? AsNullIfWhiteSpace(this string? value)
|
||||
{
|
||||
@ -57,7 +57,7 @@ public static class StringExtensions
|
||||
/// <returns>The plain text string representation of <paramref name="value" />.</returns>
|
||||
/// <exception cref="ArgumentNullException"><paramref name="value" /> is <see langword="null" />.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static string Base64Decode(this string value)
|
||||
{
|
||||
#if NET6_0_OR_GREATER
|
||||
@ -79,7 +79,7 @@ public static class StringExtensions
|
||||
/// <returns>The string representation, in base 64, of <paramref name="value" />.</returns>
|
||||
/// <exception cref="ArgumentNullException"><paramref name="value" /> is <see langword="null" />.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static string Base64Encode(this string value)
|
||||
{
|
||||
#if NET6_0_OR_GREATER
|
||||
@ -112,7 +112,7 @@ public static class StringExtensions
|
||||
/// <paramref name="destinationEncoding" /> is <see langword="null" />.
|
||||
/// </exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static string ChangeEncoding(this string value, Encoding sourceEncoding, Encoding destinationEncoding)
|
||||
{
|
||||
#if NET6_0_OR_GREATER
|
||||
@ -351,7 +351,7 @@ public static class StringExtensions
|
||||
/// (http://geekswithblogs.net/sdorman/Default.aspx).
|
||||
/// </remarks>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static T EnumParse<T>(this string value)
|
||||
where T : struct, Enum
|
||||
{
|
||||
@ -370,7 +370,7 @@ public static class StringExtensions
|
||||
/// (http://geekswithblogs.net/sdorman/Default.aspx).
|
||||
/// </remarks>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static T EnumParse<T>(this string value, bool ignoreCase)
|
||||
where T : struct, Enum
|
||||
{
|
||||
@ -417,7 +417,7 @@ public static class StringExtensions
|
||||
/// <param name="value">The string to convert.</param>
|
||||
/// <returns>Returns a <see cref="byte" />[].</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static byte[] GetBytes(this string value)
|
||||
{
|
||||
return value.GetBytes(Encoding.UTF8);
|
||||
@ -434,7 +434,7 @@ public static class StringExtensions
|
||||
/// <see langword="null" />.
|
||||
/// </exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static byte[] GetBytes(this string value, Encoding encoding)
|
||||
{
|
||||
#if NET6_0_OR_GREATER
|
||||
@ -461,7 +461,7 @@ public static class StringExtensions
|
||||
/// <param name="value">The input string.</param>
|
||||
/// <returns><see langword="true" /> if this string is an emoji; otherwise, <see langword="false" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsEmoji(this string value)
|
||||
{
|
||||
#if NET6_0_OR_GREATER
|
||||
@ -485,7 +485,7 @@ public static class StringExtensions
|
||||
/// </returns>
|
||||
/// <exception cref="ArgumentNullException"><paramref name="value" /> is <see langword="null" />.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsEmpty(this string value)
|
||||
{
|
||||
#if NET6_0_OR_GREATER
|
||||
@ -509,7 +509,7 @@ public static class StringExtensions
|
||||
/// </returns>
|
||||
/// <exception cref="ArgumentNullException"><paramref name="value" /> is <see langword="null" />.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsLower(this string value)
|
||||
{
|
||||
#if NET6_0_OR_GREATER
|
||||
@ -563,7 +563,7 @@ public static class StringExtensions
|
||||
/// <see langword="false" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsNullOrEmpty([NotNullWhen(false)] this string? value)
|
||||
{
|
||||
return string.IsNullOrEmpty(value);
|
||||
@ -579,7 +579,7 @@ public static class StringExtensions
|
||||
/// whitespace; otherwise, <see langword="false" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsNullOrWhiteSpace([NotNullWhen(false)] this string? value)
|
||||
{
|
||||
return string.IsNullOrWhiteSpace(value);
|
||||
@ -596,7 +596,7 @@ public static class StringExtensions
|
||||
/// </returns>
|
||||
/// <exception cref="ArgumentNullException"><paramref name="value" /> is <see langword="null" />.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsPalindrome(this string value)
|
||||
{
|
||||
#if NET6_0_OR_GREATER
|
||||
@ -670,7 +670,7 @@ public static class StringExtensions
|
||||
/// <see langword="true" /> if all alpha characters in this string are uppercase; otherwise, <see langword="false" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsUpper(this string value)
|
||||
{
|
||||
#if NET6_0_OR_GREATER
|
||||
@ -725,7 +725,7 @@ public static class StringExtensions
|
||||
/// </returns>
|
||||
/// <exception cref="ArgumentNullException"><paramref name="value" /> is <see langword="null" />.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsWhiteSpace(this string value)
|
||||
{
|
||||
#if NET6_0_OR_GREATER
|
||||
@ -762,7 +762,7 @@ public static class StringExtensions
|
||||
/// </returns>
|
||||
/// <exception cref="ArgumentNullException"><paramref name="value" /> is <see langword="null" />.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static string Repeat(this string value, int count)
|
||||
{
|
||||
#if NET6_0_OR_GREATER
|
||||
@ -807,7 +807,7 @@ public static class StringExtensions
|
||||
/// <exception cref="ArgumentNullException"><paramref name="source" /> is <see langword="null" />.</exception>
|
||||
/// <exception cref="ArgumentOutOfRangeException"><paramref name="length" /> is less than 0.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static string Randomize(this string source, int length, Random? random = null)
|
||||
{
|
||||
#if NET6_0_OR_GREATER
|
||||
@ -849,7 +849,7 @@ public static class StringExtensions
|
||||
/// <param name="value">The string to reverse.</param>
|
||||
/// <returns>A <see cref="string" /> whose characters are that of <paramref name="value" /> in reverse order.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static string Reverse(this string value)
|
||||
{
|
||||
#if NET6_0_OR_GREATER
|
||||
@ -887,7 +887,7 @@ public static class StringExtensions
|
||||
/// <returns>A new <see cref="string" /> containing the characters in <paramref name="value" />, rearranged.</returns>
|
||||
/// <exception cref="ArgumentNullException"><paramref name="value" /> is <see langword="null" />.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static string Shuffled(this string value, Random? random = null)
|
||||
{
|
||||
#if NET6_0_OR_GREATER
|
||||
@ -917,7 +917,7 @@ public static class StringExtensions
|
||||
/// </returns>
|
||||
/// <exception cref="ArgumentNullException"><paramref name="value" /> is <see langword="null" />.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static IEnumerable<string> Split(this string value, int chunkSize)
|
||||
{
|
||||
#if NET6_0_OR_GREATER
|
||||
@ -1029,7 +1029,7 @@ public static class StringExtensions
|
||||
/// <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
[return: NotNullIfNotNull("alternative")]
|
||||
public static string? WithEmptyAlternative(this string? value, string? alternative)
|
||||
{
|
||||
@ -1047,7 +1047,7 @@ public static class StringExtensions
|
||||
/// whitespace; otherwise, <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
[return: NotNullIfNotNull("alternative")]
|
||||
public static string? WithWhiteSpaceAlternative(this string? value, string? alternative)
|
||||
{
|
||||
|
@ -18,7 +18,7 @@ public static class ByteExtensions
|
||||
/// </returns>
|
||||
/// <exception cref="ArgumentOutOfRangeException"><paramref name="value" /> is 0.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsLeapYear(this byte value)
|
||||
{
|
||||
if (value == 0)
|
||||
@ -44,7 +44,7 @@ public static class ByteExtensions
|
||||
/// <para><paramref name="value" /> is greater than 253,402,300,799,999.</para>
|
||||
/// </exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static DateTimeOffset FromUnixTimeMilliseconds(this byte value)
|
||||
{
|
||||
return DateTimeOffset.FromUnixTimeMilliseconds(value);
|
||||
@ -65,7 +65,7 @@ public static class ByteExtensions
|
||||
/// <para><paramref name="value" /> is greater than 253,402,300,799.</para>
|
||||
/// </exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static DateTimeOffset FromUnixTimeSeconds(this byte value)
|
||||
{
|
||||
return DateTimeOffset.FromUnixTimeSeconds(value);
|
||||
@ -77,7 +77,7 @@ public static class ByteExtensions
|
||||
/// <param name="value">The duration, in ticks.</param>
|
||||
/// <returns>A <see cref="TimeSpan" /> whose <see cref="TimeSpan.Ticks" /> will equal <paramref name="value" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Ticks(this byte value)
|
||||
{
|
||||
return TimeSpan.FromTicks(value);
|
||||
@ -91,7 +91,7 @@ public static class ByteExtensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalMilliseconds" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Milliseconds(this byte value)
|
||||
{
|
||||
return TimeSpan.FromMilliseconds(value);
|
||||
@ -105,7 +105,7 @@ public static class ByteExtensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalSeconds" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Seconds(this byte value)
|
||||
{
|
||||
return TimeSpan.FromSeconds(value);
|
||||
@ -119,7 +119,7 @@ public static class ByteExtensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalMinutes" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Minutes(this byte value)
|
||||
{
|
||||
return TimeSpan.FromMinutes(value);
|
||||
@ -133,7 +133,7 @@ public static class ByteExtensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalHours" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Hours(this byte value)
|
||||
{
|
||||
return TimeSpan.FromHours(value);
|
||||
@ -145,7 +145,7 @@ public static class ByteExtensions
|
||||
/// <param name="value">The duration, in days.</param>
|
||||
/// <returns>A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalDays" /> will equal <paramref name="value" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Days(this byte value)
|
||||
{
|
||||
return TimeSpan.FromDays(value);
|
||||
@ -159,7 +159,7 @@ public static class ByteExtensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalDays" /> will equal <paramref name="value" /> × 7.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Weeks(this byte value)
|
||||
{
|
||||
return TimeSpan.FromDays(value * 7);
|
||||
|
@ -58,7 +58,7 @@ public static class CharSpanExtensions
|
||||
/// </param>
|
||||
/// <returns>A new instance of <see cref="TimeSpan" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan ToTimeSpan(this ReadOnlySpan<char> input)
|
||||
{
|
||||
return TimeSpanParser.TryParse(input, out TimeSpan result) ? result : default;
|
||||
|
@ -17,7 +17,7 @@ public static class DateOnlyExtensions
|
||||
/// <param name="value">The date from which to calculate.</param>
|
||||
/// <returns>The rounded-down integer number of years since <paramref name="value" /> as of today.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
[ExcludeFromCodeCoverage]
|
||||
public static int Age(this DateOnly value)
|
||||
{
|
||||
@ -34,7 +34,7 @@ public static class DateOnlyExtensions
|
||||
/// <paramref name="referenceDate" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int Age(this DateOnly value, DateOnly referenceDate)
|
||||
{
|
||||
return value.ToDateTime(default).Age(referenceDate.ToDateTime(default));
|
||||
@ -61,7 +61,7 @@ public static class DateOnlyExtensions
|
||||
/// <param name="dayOfWeek">The day of the week.</param>
|
||||
/// <returns>A <see cref="DateTimeOffset" /> representing the first occurence of <paramref name="dayOfWeek" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static DateOnly First(this DateOnly value, DayOfWeek dayOfWeek)
|
||||
{
|
||||
DateOnly first = value.FirstDayOfMonth();
|
||||
@ -80,7 +80,7 @@ public static class DateOnlyExtensions
|
||||
/// <param name="value">The current date.</param>
|
||||
/// <returns>A <see cref="DateTimeOffset" /> representing the first day of the current month.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static DateOnly FirstDayOfMonth(this DateOnly value)
|
||||
{
|
||||
return value.AddDays(1 - value.Day);
|
||||
@ -114,7 +114,7 @@ public static class DateOnlyExtensions
|
||||
/// <see langword="false" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsLeapYear(this DateOnly value)
|
||||
{
|
||||
return DateTime.IsLeapYear(value.Year);
|
||||
@ -127,7 +127,7 @@ public static class DateOnlyExtensions
|
||||
/// <param name="dayOfWeek">The day of the week.</param>
|
||||
/// <returns>A <see cref="DateTimeOffset" /> representing the final occurence of <paramref name="dayOfWeek" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static DateOnly Last(this DateOnly value, DayOfWeek dayOfWeek)
|
||||
{
|
||||
DateOnly last = value.LastDayOfMonth();
|
||||
@ -145,7 +145,7 @@ public static class DateOnlyExtensions
|
||||
/// <param name="value">The current date.</param>
|
||||
/// <returns>A <see cref="DateTimeOffset" /> representing the last day of the current month.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static DateOnly LastDayOfMonth(this DateOnly value)
|
||||
{
|
||||
int daysInMonth = DateTime.DaysInMonth(value.Year, value.Month);
|
||||
@ -159,7 +159,7 @@ public static class DateOnlyExtensions
|
||||
/// <param name="dayOfWeek">The day of the week.</param>
|
||||
/// <returns>A <see cref="DateTimeOffset" /> representing the next occurence of <paramref name="dayOfWeek" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static DateOnly Next(this DateOnly value, DayOfWeek dayOfWeek)
|
||||
{
|
||||
int offsetDays = dayOfWeek - value.DayOfWeek;
|
||||
@ -179,7 +179,7 @@ public static class DateOnlyExtensions
|
||||
/// <param name="time">A reference time to use with the current date.</param>
|
||||
/// <returns>The number of milliseconds that have elapsed since 1970-01-01T00:00:00.000Z.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static long ToUnixTimeMilliseconds(this DateOnly value, TimeOnly time)
|
||||
{
|
||||
return value.ToDateTime(time).ToUnixTimeMilliseconds();
|
||||
@ -192,7 +192,7 @@ public static class DateOnlyExtensions
|
||||
/// <param name="time">A reference time to use with the current date.</param>
|
||||
/// <returns>The number of seconds that have elapsed since 1970-01-01T00:00:00.000Z.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static long ToUnixTimeSeconds(this DateOnly value, TimeOnly time)
|
||||
{
|
||||
return value.ToDateTime(time).ToUnixTimeSeconds();
|
||||
|
@ -13,7 +13,7 @@ public static class DateTimeExtensions
|
||||
{
|
||||
/// <inheritdoc cref="DateTimeOffsetExtensions.Age(DateTimeOffset)" />
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
[ExcludeFromCodeCoverage]
|
||||
public static int Age(this DateTime value)
|
||||
{
|
||||
@ -22,7 +22,7 @@ public static class DateTimeExtensions
|
||||
|
||||
/// <inheritdoc cref="DateTimeOffsetExtensions.Age(DateTimeOffset, DateTimeOffset)" />
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int Age(this DateTime value, DateTime referenceDate)
|
||||
{
|
||||
return ((DateTimeOffset)value).Age(referenceDate);
|
||||
@ -31,7 +31,7 @@ public static class DateTimeExtensions
|
||||
/// <inheritdoc cref="DateTimeOffsetExtensions.First(DateTimeOffset, DayOfWeek)" />
|
||||
/// <returns>A <see cref="DateTime" /> representing the first occurence of <paramref name="dayOfWeek" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static DateTime First(this DateTime value, DayOfWeek dayOfWeek)
|
||||
{
|
||||
return ((DateTimeOffset)value).First(dayOfWeek).DateTime;
|
||||
@ -40,7 +40,7 @@ public static class DateTimeExtensions
|
||||
/// <inheritdoc cref="DateTimeOffsetExtensions.FirstDayOfMonth(DateTimeOffset)" />
|
||||
/// <returns>A <see cref="DateTime" /> representing the first day of the current month.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static DateTime FirstDayOfMonth(this DateTime value)
|
||||
{
|
||||
return ((DateTimeOffset)value).FirstDayOfMonth().DateTime;
|
||||
@ -81,7 +81,7 @@ public static class DateTimeExtensions
|
||||
/// <see langword="false" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsLeapYear(this DateTime value)
|
||||
{
|
||||
return DateTime.IsLeapYear(value.Year);
|
||||
@ -90,7 +90,7 @@ public static class DateTimeExtensions
|
||||
/// <inheritdoc cref="DateTimeOffsetExtensions.Last(DateTimeOffset, DayOfWeek)" />
|
||||
/// <returns>A <see cref="DateTimeOffset" /> representing the final occurence of <paramref name="dayOfWeek" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static DateTime Last(this DateTime value, DayOfWeek dayOfWeek)
|
||||
{
|
||||
return ((DateTimeOffset)value).Last(dayOfWeek).DateTime;
|
||||
@ -99,7 +99,7 @@ public static class DateTimeExtensions
|
||||
/// <inheritdoc cref="DateTimeOffsetExtensions.LastDayOfMonth(DateTimeOffset)" />
|
||||
/// <returns>A <see cref="DateTimeOffset" /> representing the last day of the current month.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static DateTime LastDayOfMonth(this DateTime value)
|
||||
{
|
||||
return ((DateTimeOffset)value).LastDayOfMonth().DateTime;
|
||||
@ -108,7 +108,7 @@ public static class DateTimeExtensions
|
||||
/// <inheritdoc cref="DateTimeOffsetExtensions.Next(DateTimeOffset, DayOfWeek)" />
|
||||
/// <returns>A <see cref="DateTimeOffset" /> representing the next occurence of <paramref name="dayOfWeek" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static DateTime Next(this DateTime value, DayOfWeek dayOfWeek)
|
||||
{
|
||||
return ((DateTimeOffset)value).Next(dayOfWeek).DateTime;
|
||||
@ -120,7 +120,7 @@ public static class DateTimeExtensions
|
||||
/// <param name="value">The current date.</param>
|
||||
/// <returns>The number of milliseconds that have elapsed since 1970-01-01T00:00:00.000Z.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static long ToUnixTimeMilliseconds(this DateTime value)
|
||||
{
|
||||
return ((DateTimeOffset)value).ToUnixTimeMilliseconds();
|
||||
@ -132,7 +132,7 @@ public static class DateTimeExtensions
|
||||
/// <param name="value">The current date.</param>
|
||||
/// <returns>The number of seconds that have elapsed since 1970-01-01T00:00:00.000Z.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static long ToUnixTimeSeconds(this DateTime value)
|
||||
{
|
||||
return ((DateTimeOffset)value).ToUnixTimeSeconds();
|
||||
|
@ -16,7 +16,7 @@ public static class DateTimeOffsetExtensions
|
||||
/// <param name="value">The date from which to calculate.</param>
|
||||
/// <returns>The rounded-down integer number of years since <paramref name="value" /> as of today.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
[ExcludeFromCodeCoverage]
|
||||
public static int Age(this DateTimeOffset value)
|
||||
{
|
||||
@ -33,7 +33,7 @@ public static class DateTimeOffsetExtensions
|
||||
/// <paramref name="referenceDate" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static int Age(this DateTimeOffset value, DateTimeOffset referenceDate)
|
||||
{
|
||||
return (int)(((referenceDate.Date - TimeSpan.FromDays(1) - value.Date).TotalDays + 1) / 365.2425);
|
||||
@ -46,7 +46,7 @@ public static class DateTimeOffsetExtensions
|
||||
/// <param name="dayOfWeek">The day of the week.</param>
|
||||
/// <returns>A <see cref="DateTimeOffset" /> representing the first occurence of <paramref name="dayOfWeek" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static DateTimeOffset First(this DateTimeOffset value, DayOfWeek dayOfWeek)
|
||||
{
|
||||
var first = value.FirstDayOfMonth();
|
||||
@ -65,7 +65,7 @@ public static class DateTimeOffsetExtensions
|
||||
/// <param name="value">The current date.</param>
|
||||
/// <returns>A <see cref="DateTimeOffset" /> representing the first day of the current month.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static DateTimeOffset FirstDayOfMonth(this DateTimeOffset value)
|
||||
{
|
||||
return value.AddDays(1 - value.Day);
|
||||
@ -99,7 +99,7 @@ public static class DateTimeOffsetExtensions
|
||||
/// <see langword="false" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsLeapYear(this DateTimeOffset value)
|
||||
{
|
||||
return DateTime.IsLeapYear(value.Year);
|
||||
@ -112,7 +112,7 @@ public static class DateTimeOffsetExtensions
|
||||
/// <param name="dayOfWeek">The day of the week.</param>
|
||||
/// <returns>A <see cref="DateTimeOffset" /> representing the final occurence of <paramref name="dayOfWeek" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static DateTimeOffset Last(this DateTimeOffset value, DayOfWeek dayOfWeek)
|
||||
{
|
||||
var last = value.LastDayOfMonth();
|
||||
@ -130,7 +130,7 @@ public static class DateTimeOffsetExtensions
|
||||
/// <param name="value">The current date.</param>
|
||||
/// <returns>A <see cref="DateTimeOffset" /> representing the last day of the current month.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static DateTimeOffset LastDayOfMonth(this DateTimeOffset value)
|
||||
{
|
||||
int daysInMonth = DateTime.DaysInMonth(value.Year, value.Month);
|
||||
@ -144,7 +144,7 @@ public static class DateTimeOffsetExtensions
|
||||
/// <param name="dayOfWeek">The day of the week.</param>
|
||||
/// <returns>A <see cref="DateTimeOffset" /> representing the next occurence of <paramref name="dayOfWeek" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static DateTimeOffset Next(this DateTimeOffset value, DayOfWeek dayOfWeek)
|
||||
{
|
||||
int offsetDays = dayOfWeek - value.DayOfWeek;
|
||||
|
@ -17,7 +17,7 @@ public static class DecimalExtensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalMilliseconds" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Milliseconds(this decimal value)
|
||||
{
|
||||
return TimeSpan.FromMilliseconds((double)value);
|
||||
@ -31,7 +31,7 @@ public static class DecimalExtensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalSeconds" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Seconds(this decimal value)
|
||||
{
|
||||
return TimeSpan.FromSeconds((double)value);
|
||||
@ -45,7 +45,7 @@ public static class DecimalExtensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalMinutes" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Minutes(this decimal value)
|
||||
{
|
||||
return TimeSpan.FromMinutes((double)value);
|
||||
@ -59,7 +59,7 @@ public static class DecimalExtensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalHours" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Hours(this decimal value)
|
||||
{
|
||||
return TimeSpan.FromHours((double)value);
|
||||
@ -71,7 +71,7 @@ public static class DecimalExtensions
|
||||
/// <param name="value">The duration, in days.</param>
|
||||
/// <returns>A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalDays" /> will equal <paramref name="value" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Days(this decimal value)
|
||||
{
|
||||
return TimeSpan.FromDays((double)value);
|
||||
@ -85,7 +85,7 @@ public static class DecimalExtensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalDays" /> will equal <paramref name="value" /> × 7.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Weeks(this decimal value)
|
||||
{
|
||||
return TimeSpan.FromDays((double)value * 7);
|
||||
|
@ -17,7 +17,7 @@ public static class DoubleExtensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalMilliseconds" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Milliseconds(this double value)
|
||||
{
|
||||
return TimeSpan.FromMilliseconds(value);
|
||||
@ -31,7 +31,7 @@ public static class DoubleExtensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalSeconds" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Seconds(this double value)
|
||||
{
|
||||
return TimeSpan.FromSeconds(value);
|
||||
@ -45,7 +45,7 @@ public static class DoubleExtensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalMinutes" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Minutes(this double value)
|
||||
{
|
||||
return TimeSpan.FromMinutes(value);
|
||||
@ -59,7 +59,7 @@ public static class DoubleExtensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalHours" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Hours(this double value)
|
||||
{
|
||||
return TimeSpan.FromHours(value);
|
||||
@ -71,7 +71,7 @@ public static class DoubleExtensions
|
||||
/// <param name="value">The duration, in days.</param>
|
||||
/// <returns>A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalDays" /> will equal <paramref name="value" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Days(this double value)
|
||||
{
|
||||
return TimeSpan.FromDays(value);
|
||||
@ -85,7 +85,7 @@ public static class DoubleExtensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalDays" /> will equal <paramref name="value" /> × 7.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Weeks(this double value)
|
||||
{
|
||||
return TimeSpan.FromDays(value * 7);
|
||||
|
@ -18,7 +18,7 @@ public static class HalfExtensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalMilliseconds" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Milliseconds(this Half value)
|
||||
{
|
||||
return TimeSpan.FromMilliseconds((float)value);
|
||||
@ -32,7 +32,7 @@ public static class HalfExtensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalSeconds" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Seconds(this Half value)
|
||||
{
|
||||
return TimeSpan.FromSeconds((float)value);
|
||||
@ -46,7 +46,7 @@ public static class HalfExtensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalMinutes" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Minutes(this Half value)
|
||||
{
|
||||
return TimeSpan.FromMinutes((float)value);
|
||||
@ -60,7 +60,7 @@ public static class HalfExtensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalHours" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Hours(this Half value)
|
||||
{
|
||||
return TimeSpan.FromHours((float)value);
|
||||
@ -72,7 +72,7 @@ public static class HalfExtensions
|
||||
/// <param name="value">The duration, in days.</param>
|
||||
/// <returns>A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalDays" /> will equal <paramref name="value" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Days(this Half value)
|
||||
{
|
||||
return TimeSpan.FromDays((float)value);
|
||||
@ -86,7 +86,7 @@ public static class HalfExtensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalDays" /> will equal <paramref name="value" /> × 7.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Weeks(this Half value)
|
||||
{
|
||||
return TimeSpan.FromDays((float)value * 7);
|
||||
|
@ -19,7 +19,7 @@ public static class Int16Extensions
|
||||
/// </returns>
|
||||
/// <exception cref="ArgumentOutOfRangeException"><paramref name="value" /> is 0.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsLeapYear(this short value)
|
||||
{
|
||||
if (value == 0)
|
||||
@ -50,7 +50,7 @@ public static class Int16Extensions
|
||||
/// <para><paramref name="value" /> is greater than 253,402,300,799,999.</para>
|
||||
/// </exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static DateTimeOffset FromUnixTimeMilliseconds(this short value)
|
||||
{
|
||||
return DateTimeOffset.FromUnixTimeMilliseconds(value);
|
||||
@ -71,7 +71,7 @@ public static class Int16Extensions
|
||||
/// <para><paramref name="value" /> is greater than 253,402,300,799.</para>
|
||||
/// </exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static DateTimeOffset FromUnixTimeSeconds(this short value)
|
||||
{
|
||||
return DateTimeOffset.FromUnixTimeSeconds(value);
|
||||
@ -83,7 +83,7 @@ public static class Int16Extensions
|
||||
/// <param name="value">The duration, in ticks.</param>
|
||||
/// <returns>A <see cref="TimeSpan" /> whose <see cref="TimeSpan.Ticks" /> will equal <paramref name="value" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Ticks(this short value)
|
||||
{
|
||||
return TimeSpan.FromTicks(value);
|
||||
@ -97,7 +97,7 @@ public static class Int16Extensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalMilliseconds" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Milliseconds(this short value)
|
||||
{
|
||||
return TimeSpan.FromMilliseconds(value);
|
||||
@ -111,7 +111,7 @@ public static class Int16Extensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalSeconds" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Seconds(this short value)
|
||||
{
|
||||
return TimeSpan.FromSeconds(value);
|
||||
@ -125,7 +125,7 @@ public static class Int16Extensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalMinutes" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Minutes(this short value)
|
||||
{
|
||||
return TimeSpan.FromMinutes(value);
|
||||
@ -139,7 +139,7 @@ public static class Int16Extensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalHours" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Hours(this short value)
|
||||
{
|
||||
return TimeSpan.FromHours(value);
|
||||
@ -151,7 +151,7 @@ public static class Int16Extensions
|
||||
/// <param name="value">The duration, in days.</param>
|
||||
/// <returns>A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalDays" /> will equal <paramref name="value" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Days(this short value)
|
||||
{
|
||||
return TimeSpan.FromDays(value);
|
||||
@ -165,7 +165,7 @@ public static class Int16Extensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalDays" /> will equal <paramref name="value" /> × 7.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Weeks(this short value)
|
||||
{
|
||||
return TimeSpan.FromDays(value * 7);
|
||||
|
@ -19,7 +19,7 @@ public static class Int32Extensions
|
||||
/// </returns>
|
||||
/// <exception cref="ArgumentOutOfRangeException"><paramref name="value" /> is 0.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsLeapYear(this int value)
|
||||
{
|
||||
if (value == 0)
|
||||
@ -50,7 +50,7 @@ public static class Int32Extensions
|
||||
/// <para><paramref name="value" /> is greater than 253,402,300,799,999.</para>
|
||||
/// </exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static DateTimeOffset FromUnixTimeMilliseconds(this int value)
|
||||
{
|
||||
return DateTimeOffset.FromUnixTimeMilliseconds(value);
|
||||
@ -71,7 +71,7 @@ public static class Int32Extensions
|
||||
/// <para><paramref name="value" /> is greater than 253,402,300,799.</para>
|
||||
/// </exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static DateTimeOffset FromUnixTimeSeconds(this int value)
|
||||
{
|
||||
return DateTimeOffset.FromUnixTimeSeconds(value);
|
||||
@ -83,7 +83,7 @@ public static class Int32Extensions
|
||||
/// <param name="value">The duration, in ticks.</param>
|
||||
/// <returns>A <see cref="TimeSpan" /> whose <see cref="TimeSpan.Ticks" /> will equal <paramref name="value" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Ticks(this int value)
|
||||
{
|
||||
return TimeSpan.FromTicks(value);
|
||||
@ -97,7 +97,7 @@ public static class Int32Extensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalMilliseconds" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Milliseconds(this int value)
|
||||
{
|
||||
return TimeSpan.FromMilliseconds(value);
|
||||
@ -111,7 +111,7 @@ public static class Int32Extensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalSeconds" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Seconds(this int value)
|
||||
{
|
||||
return TimeSpan.FromSeconds(value);
|
||||
@ -125,7 +125,7 @@ public static class Int32Extensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalMinutes" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Minutes(this int value)
|
||||
{
|
||||
return TimeSpan.FromMinutes(value);
|
||||
@ -139,7 +139,7 @@ public static class Int32Extensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalHours" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Hours(this int value)
|
||||
{
|
||||
return TimeSpan.FromHours(value);
|
||||
@ -151,7 +151,7 @@ public static class Int32Extensions
|
||||
/// <param name="value">The duration, in days.</param>
|
||||
/// <returns>A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalDays" /> will equal <paramref name="value" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Days(this int value)
|
||||
{
|
||||
return TimeSpan.FromDays(value);
|
||||
@ -165,7 +165,7 @@ public static class Int32Extensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalDays" /> will equal <paramref name="value" /> × 7.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Weeks(this int value)
|
||||
{
|
||||
return TimeSpan.FromDays(value * 7);
|
||||
|
@ -19,7 +19,7 @@ public static class Int64Extensions
|
||||
/// </returns>
|
||||
/// <exception cref="ArgumentOutOfRangeException"><paramref name="value" /> is 0.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsLeapYear(this long value)
|
||||
{
|
||||
if (value == 0)
|
||||
@ -50,7 +50,7 @@ public static class Int64Extensions
|
||||
/// <para><paramref name="value" /> is greater than 253,402,300,799,999.</para>
|
||||
/// </exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static DateTimeOffset FromUnixTimeMilliseconds(this long value)
|
||||
{
|
||||
return DateTimeOffset.FromUnixTimeMilliseconds(value);
|
||||
@ -71,7 +71,7 @@ public static class Int64Extensions
|
||||
/// <para><paramref name="value" /> is greater than 253,402,300,799.</para>
|
||||
/// </exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static DateTimeOffset FromUnixTimeSeconds(this long value)
|
||||
{
|
||||
return DateTimeOffset.FromUnixTimeSeconds(value);
|
||||
@ -83,7 +83,7 @@ public static class Int64Extensions
|
||||
/// <param name="value">The duration, in ticks.</param>
|
||||
/// <returns>A <see cref="TimeSpan" /> whose <see cref="TimeSpan.Ticks" /> will equal <paramref name="value" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Ticks(this long value)
|
||||
{
|
||||
return TimeSpan.FromTicks(value);
|
||||
@ -97,7 +97,7 @@ public static class Int64Extensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalMilliseconds" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Milliseconds(this long value)
|
||||
{
|
||||
return TimeSpan.FromMilliseconds(value);
|
||||
@ -111,7 +111,7 @@ public static class Int64Extensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalSeconds" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Seconds(this long value)
|
||||
{
|
||||
return TimeSpan.FromSeconds(value);
|
||||
@ -125,7 +125,7 @@ public static class Int64Extensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalMinutes" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Minutes(this long value)
|
||||
{
|
||||
return TimeSpan.FromMinutes(value);
|
||||
@ -139,7 +139,7 @@ public static class Int64Extensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalHours" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Hours(this long value)
|
||||
{
|
||||
return TimeSpan.FromHours(value);
|
||||
@ -151,7 +151,7 @@ public static class Int64Extensions
|
||||
/// <param name="value">The duration, in days.</param>
|
||||
/// <returns>A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalDays" /> will equal <paramref name="value" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Days(this long value)
|
||||
{
|
||||
return TimeSpan.FromDays(value);
|
||||
@ -165,7 +165,7 @@ public static class Int64Extensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalDays" /> will equal <paramref name="value" /> × 7.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Weeks(this long value)
|
||||
{
|
||||
return TimeSpan.FromDays(value * 7);
|
||||
|
@ -20,7 +20,7 @@ public static class SByteExtensions
|
||||
/// </returns>
|
||||
/// <exception cref="ArgumentOutOfRangeException"><paramref name="value" /> is 0.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsLeapYear(this sbyte value)
|
||||
{
|
||||
if (value == 0)
|
||||
@ -51,7 +51,7 @@ public static class SByteExtensions
|
||||
/// <para><paramref name="value" /> is greater than 253,402,300,799,999.</para>
|
||||
/// </exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static DateTimeOffset FromUnixTimeMilliseconds(this sbyte value)
|
||||
{
|
||||
return DateTimeOffset.FromUnixTimeMilliseconds(value);
|
||||
@ -72,7 +72,7 @@ public static class SByteExtensions
|
||||
/// <para><paramref name="value" /> is greater than 253,402,300,799.</para>
|
||||
/// </exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static DateTimeOffset FromUnixTimeSeconds(this sbyte value)
|
||||
{
|
||||
return DateTimeOffset.FromUnixTimeSeconds(value);
|
||||
@ -84,7 +84,7 @@ public static class SByteExtensions
|
||||
/// <param name="value">The duration, in ticks.</param>
|
||||
/// <returns>A <see cref="TimeSpan" /> whose <see cref="TimeSpan.Ticks" /> will equal <paramref name="value" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Ticks(this sbyte value)
|
||||
{
|
||||
return TimeSpan.FromTicks(value);
|
||||
@ -98,7 +98,7 @@ public static class SByteExtensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalMilliseconds" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Milliseconds(this sbyte value)
|
||||
{
|
||||
return TimeSpan.FromMilliseconds(value);
|
||||
@ -112,7 +112,7 @@ public static class SByteExtensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalSeconds" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Seconds(this sbyte value)
|
||||
{
|
||||
return TimeSpan.FromSeconds(value);
|
||||
@ -126,7 +126,7 @@ public static class SByteExtensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalMinutes" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Minutes(this sbyte value)
|
||||
{
|
||||
return TimeSpan.FromMinutes(value);
|
||||
@ -140,7 +140,7 @@ public static class SByteExtensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalHours" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Hours(this sbyte value)
|
||||
{
|
||||
return TimeSpan.FromHours(value);
|
||||
@ -152,7 +152,7 @@ public static class SByteExtensions
|
||||
/// <param name="value">The duration, in days.</param>
|
||||
/// <returns>A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalDays" /> will equal <paramref name="value" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Days(this sbyte value)
|
||||
{
|
||||
return TimeSpan.FromDays(value);
|
||||
@ -166,7 +166,7 @@ public static class SByteExtensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalDays" /> will equal <paramref name="value" /> × 7.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Weeks(this sbyte value)
|
||||
{
|
||||
return TimeSpan.FromDays(value * 7);
|
||||
|
@ -17,7 +17,7 @@ public static class SingleExtensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalMilliseconds" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Milliseconds(this float value)
|
||||
{
|
||||
return TimeSpan.FromMilliseconds(value);
|
||||
@ -31,7 +31,7 @@ public static class SingleExtensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalSeconds" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Seconds(this float value)
|
||||
{
|
||||
return TimeSpan.FromSeconds(value);
|
||||
@ -45,7 +45,7 @@ public static class SingleExtensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalMinutes" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Minutes(this float value)
|
||||
{
|
||||
return TimeSpan.FromMinutes(value);
|
||||
@ -59,7 +59,7 @@ public static class SingleExtensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalHours" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Hours(this float value)
|
||||
{
|
||||
return TimeSpan.FromHours(value);
|
||||
@ -71,7 +71,7 @@ public static class SingleExtensions
|
||||
/// <param name="value">The duration, in days.</param>
|
||||
/// <returns>A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalDays" /> will equal <paramref name="value" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Days(this float value)
|
||||
{
|
||||
return TimeSpan.FromDays(value);
|
||||
@ -85,7 +85,7 @@ public static class SingleExtensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalDays" /> will equal <paramref name="value" /> × 7.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Weeks(this float value)
|
||||
{
|
||||
return TimeSpan.FromDays(value * 7);
|
||||
|
@ -58,7 +58,7 @@ public static class StringExtensions
|
||||
/// <returns>A new instance of <see cref="TimeSpan" />.</returns>
|
||||
/// <exception cref="ArgumentNullException"><paramref name="input" /> is <see langword="null" />.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan ToTimeSpan(this string input)
|
||||
{
|
||||
#if NET6_0_OR_GREATER
|
||||
|
@ -17,7 +17,7 @@ public static class TimeSpanExtensions
|
||||
/// A <see cref="DateTime" /> that is a duration of <paramref name="value" /> in the past relative to the current time.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static DateTime Ago(this TimeSpan value)
|
||||
{
|
||||
return DateTime.Now.Subtract(value);
|
||||
@ -31,7 +31,7 @@ public static class TimeSpanExtensions
|
||||
/// A <see cref="DateTime" /> that is a duration of <paramref name="value" /> in the future relative to the current time.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static DateTime FromNow(this TimeSpan value)
|
||||
{
|
||||
return DateTime.Now.Add(value);
|
||||
|
@ -25,7 +25,7 @@ public static class UInt16Extensions
|
||||
/// <para><paramref name="value" /> is greater than 253,402,300,799,999.</para>
|
||||
/// </exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static DateTimeOffset FromUnixTimeMilliseconds(this ushort value)
|
||||
{
|
||||
return DateTimeOffset.FromUnixTimeMilliseconds(value);
|
||||
@ -46,7 +46,7 @@ public static class UInt16Extensions
|
||||
/// <para><paramref name="value" /> is greater than 253,402,300,799.</para>
|
||||
/// </exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static DateTimeOffset FromUnixTimeSeconds(this ushort value)
|
||||
{
|
||||
return DateTimeOffset.FromUnixTimeSeconds(value);
|
||||
@ -61,7 +61,7 @@ public static class UInt16Extensions
|
||||
/// </returns>
|
||||
/// <exception cref="ArgumentOutOfRangeException"><paramref name="value" /> is 0.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsLeapYear(this ushort value)
|
||||
{
|
||||
if (value == 0)
|
||||
@ -78,7 +78,7 @@ public static class UInt16Extensions
|
||||
/// <param name="value">The duration, in ticks.</param>
|
||||
/// <returns>A <see cref="TimeSpan" /> whose <see cref="TimeSpan.Ticks" /> will equal <paramref name="value" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Ticks(this ushort value)
|
||||
{
|
||||
return TimeSpan.FromTicks(value);
|
||||
@ -92,7 +92,7 @@ public static class UInt16Extensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalMilliseconds" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Milliseconds(this ushort value)
|
||||
{
|
||||
return TimeSpan.FromMilliseconds(value);
|
||||
@ -106,7 +106,7 @@ public static class UInt16Extensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalSeconds" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Seconds(this ushort value)
|
||||
{
|
||||
return TimeSpan.FromSeconds(value);
|
||||
@ -120,7 +120,7 @@ public static class UInt16Extensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalMinutes" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Minutes(this ushort value)
|
||||
{
|
||||
return TimeSpan.FromMinutes(value);
|
||||
@ -134,7 +134,7 @@ public static class UInt16Extensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalHours" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Hours(this ushort value)
|
||||
{
|
||||
return TimeSpan.FromHours(value);
|
||||
@ -146,7 +146,7 @@ public static class UInt16Extensions
|
||||
/// <param name="value">The duration, in days.</param>
|
||||
/// <returns>A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalDays" /> will equal <paramref name="value" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Days(this ushort value)
|
||||
{
|
||||
return TimeSpan.FromDays(value);
|
||||
@ -160,7 +160,7 @@ public static class UInt16Extensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalDays" /> will equal <paramref name="value" /> × 7.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Weeks(this ushort value)
|
||||
{
|
||||
return TimeSpan.FromDays(value * 7);
|
||||
|
@ -25,7 +25,7 @@ public static class UInt32Extensions
|
||||
/// <para><paramref name="value" /> is greater than 253,402,300,799,999.</para>
|
||||
/// </exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static DateTimeOffset FromUnixTimeMilliseconds(this uint value)
|
||||
{
|
||||
return DateTimeOffset.FromUnixTimeMilliseconds(value);
|
||||
@ -46,7 +46,7 @@ public static class UInt32Extensions
|
||||
/// <para><paramref name="value" /> is greater than 253,402,300,799.</para>
|
||||
/// </exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static DateTimeOffset FromUnixTimeSeconds(this uint value)
|
||||
{
|
||||
return DateTimeOffset.FromUnixTimeSeconds(value);
|
||||
@ -61,7 +61,7 @@ public static class UInt32Extensions
|
||||
/// </returns>
|
||||
/// <exception cref="ArgumentOutOfRangeException"><paramref name="value" /> is 0.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsLeapYear(this uint value)
|
||||
{
|
||||
if (value == 0)
|
||||
@ -78,7 +78,7 @@ public static class UInt32Extensions
|
||||
/// <param name="value">The duration, in ticks.</param>
|
||||
/// <returns>A <see cref="TimeSpan" /> whose <see cref="TimeSpan.Ticks" /> will equal <paramref name="value" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Ticks(this uint value)
|
||||
{
|
||||
return TimeSpan.FromTicks(value);
|
||||
@ -92,7 +92,7 @@ public static class UInt32Extensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalMilliseconds" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Milliseconds(this uint value)
|
||||
{
|
||||
return TimeSpan.FromMilliseconds(value);
|
||||
@ -106,7 +106,7 @@ public static class UInt32Extensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalSeconds" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Seconds(this uint value)
|
||||
{
|
||||
return TimeSpan.FromSeconds(value);
|
||||
@ -120,7 +120,7 @@ public static class UInt32Extensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalMinutes" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Minutes(this uint value)
|
||||
{
|
||||
return TimeSpan.FromMinutes(value);
|
||||
@ -134,7 +134,7 @@ public static class UInt32Extensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalHours" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Hours(this uint value)
|
||||
{
|
||||
return TimeSpan.FromHours(value);
|
||||
@ -146,7 +146,7 @@ public static class UInt32Extensions
|
||||
/// <param name="value">The duration, in days.</param>
|
||||
/// <returns>A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalDays" /> will equal <paramref name="value" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Days(this uint value)
|
||||
{
|
||||
return TimeSpan.FromDays(value);
|
||||
@ -160,7 +160,7 @@ public static class UInt32Extensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalDays" /> will equal <paramref name="value" /> × 7.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Weeks(this uint value)
|
||||
{
|
||||
return TimeSpan.FromDays(value * 7);
|
||||
|
@ -25,7 +25,7 @@ public static class UInt64Extensions
|
||||
/// <para><paramref name="value" /> is greater than 253,402,300,799,999.</para>
|
||||
/// </exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static DateTimeOffset FromUnixTimeMilliseconds(this ulong value)
|
||||
{
|
||||
return DateTimeOffset.FromUnixTimeMilliseconds((long)value);
|
||||
@ -46,7 +46,7 @@ public static class UInt64Extensions
|
||||
/// <para><paramref name="value" /> is greater than 253,402,300,799.</para>
|
||||
/// </exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static DateTimeOffset FromUnixTimeSeconds(this ulong value)
|
||||
{
|
||||
return DateTimeOffset.FromUnixTimeSeconds((long)value);
|
||||
@ -61,7 +61,7 @@ public static class UInt64Extensions
|
||||
/// </returns>
|
||||
/// <exception cref="ArgumentOutOfRangeException"><paramref name="value" /> is 0.</exception>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static bool IsLeapYear(this ulong value)
|
||||
{
|
||||
if (value == 0)
|
||||
@ -78,7 +78,7 @@ public static class UInt64Extensions
|
||||
/// <param name="value">The duration, in ticks.</param>
|
||||
/// <returns>A <see cref="TimeSpan" /> whose <see cref="TimeSpan.Ticks" /> will equal <paramref name="value" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Ticks(this ulong value)
|
||||
{
|
||||
return TimeSpan.FromTicks((long)value);
|
||||
@ -92,7 +92,7 @@ public static class UInt64Extensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalMilliseconds" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Milliseconds(this ulong value)
|
||||
{
|
||||
return TimeSpan.FromMilliseconds((long)value);
|
||||
@ -106,7 +106,7 @@ public static class UInt64Extensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalSeconds" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Seconds(this ulong value)
|
||||
{
|
||||
return TimeSpan.FromSeconds((long)value);
|
||||
@ -120,7 +120,7 @@ public static class UInt64Extensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalMinutes" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Minutes(this ulong value)
|
||||
{
|
||||
return TimeSpan.FromMinutes((long)value);
|
||||
@ -134,7 +134,7 @@ public static class UInt64Extensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalHours" /> will equal <paramref name="value" />.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Hours(this ulong value)
|
||||
{
|
||||
return TimeSpan.FromHours((long)value);
|
||||
@ -146,7 +146,7 @@ public static class UInt64Extensions
|
||||
/// <param name="value">The duration, in days.</param>
|
||||
/// <returns>A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalDays" /> will equal <paramref name="value" />.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Days(this ulong value)
|
||||
{
|
||||
return TimeSpan.FromDays((long)value);
|
||||
@ -160,7 +160,7 @@ public static class UInt64Extensions
|
||||
/// A <see cref="TimeSpan" /> whose <see cref="TimeSpan.TotalDays" /> will equal <paramref name="value" /> × 7.
|
||||
/// </returns>
|
||||
[Pure]
|
||||
[MethodImpl(CompilerResources.MethodImplOptions)]
|
||||
[MethodImpl(CompilerResources.MaxOptimization)]
|
||||
public static TimeSpan Weeks(this ulong value)
|
||||
{
|
||||
return TimeSpan.FromDays((long)value * 7);
|
||||
|
Loading…
Reference in New Issue
Block a user