411 return left & ~right;
421 [CLSCompliant(
false)]
428 [CLSCompliant(
false)]
441 [CLSCompliant(
false)]
454 [CLSCompliant(
false)]
479 [CLSCompliant(
false)]
491 [CLSCompliant(
false)]
496 ushort* ptr = stackalloc ushort[
count / 2];
497 for (
int i = 0; i <
count / 2; i++)
501 ushort* ptr2 = stackalloc ushort[
count / 2];
502 for (
int j = 0; j <
count / 2; j++)
510 [CLSCompliant(
false)]
515 uint* ptr = stackalloc uint[
count / 2];
516 for (
int i = 0; i <
count / 2; i++)
520 uint* ptr2 = stackalloc uint[
count / 2];
521 for (
int j = 0; j <
count / 2; j++)
529 [CLSCompliant(
false)]
534 ulong* ptr = stackalloc ulong[
count / 2];
535 for (
int i = 0; i <
count / 2; i++)
539 ulong* ptr2 = stackalloc ulong[
count / 2];
540 for (
int j = 0; j <
count / 2; j++)
548 [CLSCompliant(
false)]
553 short* ptr = stackalloc
short[
count / 2];
554 for (
int i = 0; i <
count / 2; i++)
558 short* ptr2 = stackalloc
short[
count / 2];
559 for (
int j = 0; j <
count / 2; j++)
571 int* ptr = stackalloc
int[
count / 2];
572 for (
int i = 0; i <
count / 2; i++)
576 int* ptr2 = stackalloc
int[
count / 2];
577 for (
int j = 0; j <
count / 2; j++)
589 long* ptr = stackalloc
long[
count / 2];
590 for (
int i = 0; i <
count / 2; i++)
594 long* ptr2 = stackalloc
long[
count / 2];
595 for (
int j = 0; j <
count / 2; j++)
607 double* ptr = stackalloc
double[
count / 2];
608 for (
int i = 0; i <
count / 2; i++)
612 double* ptr2 = stackalloc
double[
count / 2];
613 for (
int j = 0; j <
count / 2; j++)
621 [CLSCompliant(
false)]
626 byte* ptr = stackalloc
byte[(int)(uint)
count];
627 for (
int i = 0; i <
count / 2; i++)
629 ptr[i] = (byte)low[i];
631 for (
int j = 0; j <
count / 2; j++)
633 ptr[j +
count / 2] = (byte)high[j];
638 [CLSCompliant(
false)]
643 ushort* ptr = stackalloc ushort[
count];
644 for (
int i = 0; i <
count / 2; i++)
646 ptr[i] = (ushort)low[i];
648 for (
int j = 0; j <
count / 2; j++)
650 ptr[j +
count / 2] = (ushort)high[j];
655 [CLSCompliant(
false)]
660 uint* ptr = stackalloc uint[
count];
661 for (
int i = 0; i <
count / 2; i++)
663 ptr[i] = (uint)low[i];
665 for (
int j = 0; j <
count / 2; j++)
667 ptr[j +
count / 2] = (uint)high[j];
672 [CLSCompliant(
false)]
677 sbyte* ptr = stackalloc sbyte[(int)(uint)
count];
678 for (
int i = 0; i <
count / 2; i++)
680 ptr[i] = (sbyte)low[i];
682 for (
int j = 0; j <
count / 2; j++)
684 ptr[j +
count / 2] = (sbyte)high[j];
693 short* ptr = stackalloc
short[
count];
694 for (
int i = 0; i <
count / 2; i++)
696 ptr[i] = (
short)low[i];
698 for (
int j = 0; j <
count / 2; j++)
709 int* ptr = stackalloc
int[
count];
710 for (
int i = 0; i <
count / 2; i++)
712 ptr[i] = (int)low[i];
714 for (
int j = 0; j <
count / 2; j++)
716 ptr[j +
count / 2] = (int)high[j];
725 float* ptr = stackalloc
float[
count];
726 for (
int i = 0; i <
count / 2; i++)
728 ptr[i] = (float)low[i];
730 for (
int j = 0; j <
count / 2; j++)
732 ptr[j +
count / 2] = (float)high[j];
741 float* ptr = stackalloc
float[
count];
742 for (
int i = 0; i <
count; i++)
749 [CLSCompliant(
false)]
754 float* ptr = stackalloc
float[
count];
755 for (
int i = 0; i <
count; i++)
766 double* ptr = stackalloc
double[
count];
767 for (
int i = 0; i <
count; i++)
774 [CLSCompliant(
false)]
779 double* ptr = stackalloc
double[
count];
780 for (
int i = 0; i <
count; i++)
791 int* ptr = stackalloc
int[
count];
792 for (
int i = 0; i <
count; i++)
794 ptr[i] = (int)
value[i];
799 [CLSCompliant(
false)]
804 uint* ptr = stackalloc uint[
count];
805 for (
int i = 0; i <
count; i++)
807 ptr[i] = (uint)
value[i];
816 long* ptr = stackalloc
long[
count];
817 for (
int i = 0; i <
count; i++)
819 ptr[i] = (long)
value[i];
824 [CLSCompliant(
false)]
829 ulong* ptr = stackalloc ulong[
count];
830 for (
int i = 0; i <
count; i++)
832 ptr[i] = (ulong)
value[i];
847 ThrowHelper.ThrowForUnsupportedNumericsVectorBaseType<TFrom>();
848 ThrowHelper.ThrowForUnsupportedNumericsVectorBaseType<TTo>();
868 ThrowHelper.ThrowForUnsupportedNumericsVectorBaseType<T>();
878 ThrowHelper.ThrowForUnsupportedNumericsVectorBaseType<T>();
888 ThrowHelper.ThrowForUnsupportedNumericsVectorBaseType<T>();
898 ThrowHelper.ThrowForUnsupportedNumericsVectorBaseType<T>();
908 ThrowHelper.ThrowForUnsupportedNumericsVectorBaseType<T>();
920 ThrowHelper.ThrowForUnsupportedNumericsVectorBaseType<T>();
922 for (nint num = 0; num <
Count; num++)
937 ThrowHelper.ThrowForUnsupportedNumericsVectorBaseType<T>();
952 ThrowHelper.ThrowForUnsupportedNumericsVectorBaseType<T>();
963 ThrowHelper.ThrowForUnsupportedNumericsVectorBaseType<T>();
979 ThrowHelper.ThrowForUnsupportedNumericsVectorBaseType<T>();
989 ThrowHelper.ThrowForUnsupportedNumericsVectorBaseType<T>();
990 if ((uint)destination.Length < (uint)
Count)
1006 ThrowHelper.ThrowForUnsupportedNumericsVectorBaseType<T>();
1023 public override readonly
bool Equals([NotNullWhen(
true)]
object?
obj)
1035 return this ==
other;
1040 ThrowHelper.ThrowForUnsupportedNumericsVectorBaseType<T>();
1042 for (nint num = 0; num <
Count; num++)
1046 return hashCode.ToHashCode();
1061 ThrowHelper.ThrowForUnsupportedNumericsVectorBaseType<T>();
1064 stringBuilder.Append(
'<');
1065 for (
int i = 0; i <
Count - 1; i++)
1068 stringBuilder.Append(numberGroupSeparator);
1069 stringBuilder.Append(
' ');
1072 stringBuilder.Append(
'>');
1073 return stringBuilder.ToString();
1078 ThrowHelper.ThrowForUnsupportedNumericsVectorBaseType<T>();
1089 ThrowHelper.ThrowForUnsupportedNumericsVectorBaseType<T>();
1090 if ((uint)destination.Length < (uint)
Count)
1102 for (nint num = 0; num <
Count; num++)
1104 result.SetElement(num,
ScalarAdd(left.GetElement(num), right.GetElement(num)));
1113 for (nint num = 0; num <
Count; num++)
1115 result.SetElement(num,
ScalarSubtract(left.GetElement(num), right.GetElement(num)));
1124 for (nint num = 0; num <
Count; num++)
1126 result.SetElement(num,
ScalarMultiply(left.GetElement(num), right.GetElement(num)));
1135 for (nint num = 0; num <
Count; num++)
1146 return value * factor;
1153 for (nint num = 0; num <
Count; num++)
1155 result.SetElement(num,
ScalarDivide(left.GetElement(num), right.GetElement(num)));
1169 ThrowHelper.ThrowForUnsupportedNumericsVectorBaseType<T>();
1171 result.register.uint64_0 = left.register.uint64_0 & right.register.uint64_0;
1172 result.register.uint64_1 = left.register.uint64_1 & right.register.uint64_1;
1179 ThrowHelper.ThrowForUnsupportedNumericsVectorBaseType<T>();
1181 result.register.uint64_0 = left.register.uint64_0 | right.register.uint64_0;
1182 result.register.uint64_1 = left.register.uint64_1 | right.register.uint64_1;
1189 ThrowHelper.ThrowForUnsupportedNumericsVectorBaseType<T>();
1191 result.register.uint64_0 = left.register.uint64_0 ^ right.register.uint64_0;
1192 result.register.uint64_1 = left.register.uint64_1 ^ right.register.uint64_1;
1206 for (nint num = 0; num <
Count; num++)
1208 if (!
ScalarEquals(left.GetElement(num), right.GetElement(num)))
1220 return !(left == right);
1226 ThrowHelper.ThrowForUnsupportedNumericsVectorBaseType<T>();
1230 [CLSCompliant(
false)]
1234 ThrowHelper.ThrowForUnsupportedNumericsVectorBaseType<T>();
1238 [CLSCompliant(
false)]
1242 ThrowHelper.ThrowForUnsupportedNumericsVectorBaseType<T>();
1249 ThrowHelper.ThrowForUnsupportedNumericsVectorBaseType<T>();
1253 [CLSCompliant(
false)]
1257 ThrowHelper.ThrowForUnsupportedNumericsVectorBaseType<T>();
1264 ThrowHelper.ThrowForUnsupportedNumericsVectorBaseType<T>();
1268 [CLSCompliant(
false)]
1272 ThrowHelper.ThrowForUnsupportedNumericsVectorBaseType<T>();
1279 ThrowHelper.ThrowForUnsupportedNumericsVectorBaseType<T>();
1286 ThrowHelper.ThrowForUnsupportedNumericsVectorBaseType<T>();
1293 ThrowHelper.ThrowForUnsupportedNumericsVectorBaseType<T>();
1297 [CLSCompliant(
false)]
1301 ThrowHelper.ThrowForUnsupportedNumericsVectorBaseType<T>();
1308 ThrowHelper.ThrowForUnsupportedNumericsVectorBaseType<T>();
1317 for (nint num = 0; num <
Count; num++)
1320 result.SetElement(num,
value);
1330 for (nint num = 0; num <
Count; num++)
1333 result.SetElement(num,
value);
1343 for (nint num = 0; num <
Count; num++)
1346 result.SetElement(num,
value);
1355 for (nint num = 0; num <
Count; num++)
1358 result.SetElement(num,
value);
1367 for (nint num = 0; num <
Count; num++)
1370 result.SetElement(num,
value);
1378 ThrowHelper.ThrowForUnsupportedNumericsVectorBaseType<T>();
1380 result.register.uint64_0 = (left.register.uint64_0 & condition.register.uint64_0) | (right.register.uint64_0 & ~condition.register.uint64_0);
1381 result.register.uint64_1 = (left.register.uint64_1 & condition.register.uint64_1) | (right.register.uint64_1 & ~condition.register.uint64_1);
1388 if (typeof(T) == typeof(
byte))
1392 if (typeof(T) == typeof(ushort))
1396 if (typeof(T) == typeof(uint))
1400 if (typeof(T) == typeof(ulong))
1404 if (typeof(T) == typeof(
UIntPtr))
1409 for (nint num = 0; num <
Count; num++)
1420 for (nint num = 0; num <
Count; num++)
1422 T
value = (
ScalarLessThan(left.GetElement(num), right.GetElement(num)) ? left.GetElement(num) : right.GetElement(num));
1423 result.SetElement(num,
value);
1432 for (nint num = 0; num <
Count; num++)
1434 T
value = (
ScalarGreaterThan(left.GetElement(num), right.GetElement(num)) ? left.GetElement(num) : right.GetElement(num));
1435 result.SetElement(num,
value);
1444 for (nint num = 0; num <
Count; num++)
1455 for (nint num = 0; num <
Count; num++)
1466 for (nint num = 0; num <
Count; num++)
1477 for (nint num = 0; num <
Count; num++)
1488 for (nint num = 0; num <
Count; num++)
1498 if (typeof(T) == typeof(
byte))
1500 return (
byte)(object)left == (
byte)(object)right;
1502 if (typeof(T) == typeof(sbyte))
1504 return (sbyte)(object)left == (sbyte)(object)right;
1506 if (typeof(T) == typeof(ushort))
1508 return (ushort)(object)left == (ushort)(object)right;
1510 if (typeof(T) == typeof(
short))
1512 return (
short)(object)left == (
short)(object)right;
1514 if (typeof(T) == typeof(uint))
1516 return (uint)(object)left == (uint)(object)right;
1518 if (typeof(T) == typeof(
int))
1520 return (
int)(object)left == (
int)(object)right;
1522 if (typeof(T) == typeof(ulong))
1524 return (ulong)(object)left == (ulong)(object)right;
1526 if (typeof(T) == typeof(
long))
1528 return (
long)(object)left == (
long)(object)right;
1530 if (typeof(T) == typeof(
float))
1532 return (
float)(object)left == (
float)(object)right;
1534 if (typeof(T) == typeof(
double))
1536 return (
double)(object)left == (
double)(object)right;
1538 if (typeof(T) == typeof(
UIntPtr))
1542 if (typeof(T) == typeof(
IntPtr))
1552 if (typeof(T) == typeof(
byte))
1554 return (
byte)(object)left < (
byte)(object)right;
1556 if (typeof(T) == typeof(sbyte))
1558 return (sbyte)(object)left < (sbyte)(object)right;
1560 if (typeof(T) == typeof(ushort))
1562 return (ushort)(object)left < (ushort)(object)right;
1564 if (typeof(T) == typeof(
short))
1566 return (
short)(object)left < (
short)(object)right;
1568 if (typeof(T) == typeof(uint))
1570 return (uint)(object)left < (uint)(object)right;
1572 if (typeof(T) == typeof(
int))
1574 return (
int)(object)left < (
int)(object)right;
1576 if (typeof(T) == typeof(ulong))
1578 return (ulong)(object)left < (ulong)(object)right;
1580 if (typeof(T) == typeof(
long))
1582 return (
long)(object)left < (
long)(object)right;
1584 if (typeof(T) == typeof(
float))
1586 return (
float)(object)left < (
float)(object)right;
1588 if (typeof(T) == typeof(
double))
1590 return (
double)(object)left < (
double)(object)right;
1592 if (typeof(T) == typeof(
UIntPtr))
1594 return (nuint)(
UIntPtr)(
object)left < (nuint)(
UIntPtr)(object)right;
1596 if (typeof(T) == typeof(
IntPtr))
1598 return (nint)(
IntPtr)(
object)left < (nint)(
IntPtr)(object)right;
1606 if (typeof(T) == typeof(
byte))
1608 return (
byte)(object)left <= (
byte)(object)right;
1610 if (typeof(T) == typeof(sbyte))
1612 return (sbyte)(object)left <= (sbyte)(object)right;
1614 if (typeof(T) == typeof(ushort))
1616 return (ushort)(object)left <= (ushort)(object)right;
1618 if (typeof(T) == typeof(
short))
1620 return (
short)(object)left <= (
short)(object)right;
1622 if (typeof(T) == typeof(uint))
1624 return (uint)(object)left <= (uint)(object)right;
1626 if (typeof(T) == typeof(
int))
1628 return (
int)(object)left <= (
int)(object)right;
1630 if (typeof(T) == typeof(ulong))
1632 return (ulong)(object)left <= (ulong)(object)right;
1634 if (typeof(T) == typeof(
long))
1636 return (
long)(object)left <= (
long)(object)right;
1638 if (typeof(T) == typeof(
float))
1640 return (
float)(object)left <= (
float)(object)right;
1642 if (typeof(T) == typeof(
double))
1644 return (
double)(object)left <= (
double)(object)right;
1646 if (typeof(T) == typeof(
UIntPtr))
1648 return (nuint)(
UIntPtr)(
object)left <= (nuint)(
UIntPtr)(object)right;
1650 if (typeof(T) == typeof(
IntPtr))
1652 return (nint)(
IntPtr)(
object)left <= (nint)(
IntPtr)(object)right;
1660 if (typeof(T) == typeof(
byte))
1662 return (
byte)(object)left > (
byte)(object)right;
1664 if (typeof(T) == typeof(sbyte))
1666 return (sbyte)(object)left > (sbyte)(object)right;
1668 if (typeof(T) == typeof(ushort))
1670 return (ushort)(object)left > (ushort)(object)right;
1672 if (typeof(T) == typeof(
short))
1674 return (
short)(object)left > (
short)(object)right;
1676 if (typeof(T) == typeof(uint))
1678 return (uint)(object)left > (uint)(object)right;
1680 if (typeof(T) == typeof(
int))
1682 return (
int)(object)left > (
int)(object)right;
1684 if (typeof(T) == typeof(ulong))
1686 return (ulong)(object)left > (ulong)(object)right;
1688 if (typeof(T) == typeof(
long))
1690 return (
long)(object)left > (
long)(object)right;
1692 if (typeof(T) == typeof(
float))
1694 return (
float)(object)left > (
float)(object)right;
1696 if (typeof(T) == typeof(
double))
1698 return (
double)(object)left > (
double)(object)right;
1700 if (typeof(T) == typeof(
UIntPtr))
1702 return (nuint)(
UIntPtr)(
object)left > (nuint)(
UIntPtr)(object)right;
1704 if (typeof(T) == typeof(
IntPtr))
1706 return (nint)(
IntPtr)(
object)left > (nint)(
IntPtr)(object)right;
1714 if (typeof(T) == typeof(
byte))
1716 return (
byte)(object)left >= (
byte)(object)right;
1718 if (typeof(T) == typeof(sbyte))
1720 return (sbyte)(object)left >= (sbyte)(object)right;
1722 if (typeof(T) == typeof(ushort))
1724 return (ushort)(object)left >= (ushort)(object)right;
1726 if (typeof(T) == typeof(
short))
1728 return (
short)(object)left >= (
short)(object)right;
1730 if (typeof(T) == typeof(uint))
1732 return (uint)(object)left >= (uint)(object)right;
1734 if (typeof(T) == typeof(
int))
1736 return (
int)(object)left >= (
int)(object)right;
1738 if (typeof(T) == typeof(ulong))
1740 return (ulong)(object)left >= (ulong)(object)right;
1742 if (typeof(T) == typeof(
long))
1744 return (
long)(object)left >= (
long)(object)right;
1746 if (typeof(T) == typeof(
float))
1748 return (
float)(object)left >= (
float)(object)right;
1750 if (typeof(T) == typeof(
double))
1752 return (
double)(object)left >= (
double)(object)right;
1754 if (typeof(T) == typeof(
UIntPtr))
1756 return (nuint)(
UIntPtr)(
object)left >= (nuint)(
UIntPtr)(object)right;
1758 if (typeof(T) == typeof(
IntPtr))
1760 return (nint)(
IntPtr)(
object)left >= (nint)(
IntPtr)(object)right;
1768 if (typeof(T) == typeof(
byte))
1770 return (T)(object)(
byte)((byte)(
object)left + (byte)(
object)right);
1772 if (typeof(T) == typeof(sbyte))
1774 return (T)(object)(sbyte)((sbyte)(
object)left + (sbyte)(
object)right);
1776 if (typeof(T) == typeof(ushort))
1778 return (T)(object)(ushort)((ushort)(
object)left + (ushort)(
object)right);
1780 if (typeof(T) == typeof(
short))
1782 return (T)(object)(
short)((
short)(
object)left + (
short)(
object)right);
1784 if (typeof(T) == typeof(uint))
1786 return (T)(object)((uint)(object)left + (uint)(object)right);
1788 if (typeof(T) == typeof(
int))
1790 return (T)(object)((
int)(object)left + (
int)(object)right);
1792 if (typeof(T) == typeof(ulong))
1794 return (T)(object)((ulong)(object)left + (ulong)(object)right);
1796 if (typeof(T) == typeof(
long))
1798 return (T)(object)((
long)(object)left + (
long)(object)right);
1800 if (typeof(T) == typeof(
float))
1802 return (T)(object)((
float)(object)left + (
float)(object)right);
1804 if (typeof(T) == typeof(
double))
1806 return (T)(object)((
double)(object)left + (
double)(object)right);
1808 if (typeof(T) == typeof(
UIntPtr))
1810 return (T)(object)(nuint)((nint)(nuint)(
UIntPtr)(
object)left + (nint)(nuint)(
UIntPtr)(
object)right);
1812 if (typeof(T) == typeof(
IntPtr))
1814 return (T)(object)((nint)(
IntPtr)(
object)left + (nint)(
IntPtr)(object)right);
1822 if (typeof(T) == typeof(
byte))
1824 return (T)(object)(
byte)((byte)(
object)left - (byte)(
object)right);
1826 if (typeof(T) == typeof(sbyte))
1828 return (T)(object)(sbyte)((sbyte)(
object)left - (sbyte)(
object)right);
1830 if (typeof(T) == typeof(ushort))
1832 return (T)(object)(ushort)((ushort)(
object)left - (ushort)(
object)right);
1834 if (typeof(T) == typeof(
short))
1836 return (T)(object)(
short)((
short)(
object)left - (
short)(
object)right);
1838 if (typeof(T) == typeof(uint))
1840 return (T)(object)((uint)(object)left - (uint)(object)right);
1842 if (typeof(T) == typeof(
int))
1844 return (T)(object)((
int)(object)left - (
int)(object)right);
1846 if (typeof(T) == typeof(ulong))
1848 return (T)(object)((ulong)(object)left - (ulong)(object)right);
1850 if (typeof(T) == typeof(
long))
1852 return (T)(object)((
long)(object)left - (
long)(object)right);
1854 if (typeof(T) == typeof(
float))
1856 return (T)(object)((
float)(object)left - (
float)(object)right);
1858 if (typeof(T) == typeof(
double))
1860 return (T)(object)((
double)(object)left - (
double)(object)right);
1862 if (typeof(T) == typeof(
UIntPtr))
1864 return (T)(object)(nuint)((nint)(nuint)(
UIntPtr)(
object)left - (nint)(nuint)(
UIntPtr)(
object)right);
1866 if (typeof(T) == typeof(
IntPtr))
1868 return (T)(object)((nint)(
IntPtr)(
object)left - (nint)(
IntPtr)(object)right);
1876 if (typeof(T) == typeof(
byte))
1878 return (T)(object)(
byte)((byte)(
object)left * (byte)(
object)right);
1880 if (typeof(T) == typeof(sbyte))
1882 return (T)(object)(sbyte)((sbyte)(
object)left * (sbyte)(
object)right);
1884 if (typeof(T) == typeof(ushort))
1886 return (T)(object)(ushort)((ushort)(
object)left * (ushort)(
object)right);
1888 if (typeof(T) == typeof(
short))
1890 return (T)(object)(
short)((
short)(
object)left * (
short)(
object)right);
1892 if (typeof(T) == typeof(uint))
1894 return (T)(object)((uint)(object)left * (uint)(object)right);
1896 if (typeof(T) == typeof(
int))
1898 return (T)(object)((
int)(object)left * (
int)(object)right);
1900 if (typeof(T) == typeof(ulong))
1902 return (T)(object)((ulong)(object)left * (ulong)(object)right);
1904 if (typeof(T) == typeof(
long))
1906 return (T)(object)((
long)(object)left * (
long)(object)right);
1908 if (typeof(T) == typeof(
float))
1910 return (T)(object)((
float)(object)left * (
float)(object)right);
1912 if (typeof(T) == typeof(
double))
1914 return (T)(object)((
double)(object)left * (
double)(object)right);
1916 if (typeof(T) == typeof(
UIntPtr))
1918 return (T)(object)(nuint)((nint)(nuint)(
UIntPtr)(
object)left * (nint)(nuint)(
UIntPtr)(
object)right);
1920 if (typeof(T) == typeof(
IntPtr))
1922 return (T)(object)((nint)(
IntPtr)(
object)left * (nint)(
IntPtr)(object)right);
1930 if (typeof(T) == typeof(
byte))
1932 return (T)(object)(
byte)((byte)(
object)left / (byte)(
object)right);
1934 if (typeof(T) == typeof(sbyte))
1936 return (T)(object)(sbyte)((sbyte)(
object)left / (sbyte)(
object)right);
1938 if (typeof(T) == typeof(ushort))
1940 return (T)(object)(ushort)((ushort)(
object)left / (ushort)(
object)right);
1942 if (typeof(T) == typeof(
short))
1944 return (T)(object)(
short)((
short)(
object)left / (
short)(
object)right);
1946 if (typeof(T) == typeof(uint))
1948 return (T)(object)((uint)(object)left / (uint)(object)right);
1950 if (typeof(T) == typeof(
int))
1952 return (T)(object)((
int)(object)left / (
int)(object)right);
1954 if (typeof(T) == typeof(ulong))
1956 return (T)(object)((ulong)(object)left / (ulong)(object)right);
1958 if (typeof(T) == typeof(
long))
1960 return (T)(object)((
long)(object)left / (
long)(object)right);
1962 if (typeof(T) == typeof(
float))
1964 return (T)(object)((
float)(object)left / (
float)(object)right);
1966 if (typeof(T) == typeof(
double))
1968 return (T)(object)((
double)(object)left / (
double)(object)right);
1970 if (typeof(T) == typeof(
UIntPtr))
1972 return (T)(object)((nuint)(
UIntPtr)(
object)left / (nuint)(
UIntPtr)(object)right);
1974 if (typeof(T) == typeof(
IntPtr))
1976 return (T)(object)((nint)(
IntPtr)(
object)left / (nint)(
IntPtr)(object)right);
1984 if (typeof(T) == typeof(
byte))
1986 return (T)(object)(
byte)1;
1988 if (typeof(T) == typeof(sbyte))
1990 return (T)(object)(sbyte)1;
1992 if (typeof(T) == typeof(ushort))
1994 return (T)(object)(ushort)1;
1996 if (typeof(T) == typeof(
short))
1998 return (T)(object)(
short)1;
2000 if (typeof(T) == typeof(uint))
2002 return (T)(object)1u;
2004 if (typeof(T) == typeof(
int))
2006 return (T)(object)1;
2008 if (typeof(T) == typeof(ulong))
2010 return (T)(object)1uL;
2012 if (typeof(T) == typeof(
long))
2014 return (T)(object)1
L;
2016 if (typeof(T) == typeof(
float))
2018 return (T)(object)1f;
2020 if (typeof(T) == typeof(
double))
2022 return (T)(object)1.0;
2024 if (typeof(T) == typeof(
UIntPtr))
2026 return (T)(object)(nuint)1u;
2028 if (typeof(T) == typeof(
IntPtr))
2030 return (T)(object)(nint)1;
2038 if (typeof(T) == typeof(
byte))
2040 return (T)(object)
byte.MaxValue;
2042 if (typeof(T) == typeof(sbyte))
2044 return (T)(object)(sbyte)(-1);
2046 if (typeof(T) == typeof(ushort))
2048 return (T)(object)ushort.MaxValue;
2050 if (typeof(T) == typeof(
short))
2052 return (T)(object)(
short)(-1);
2054 if (typeof(T) == typeof(uint))
2056 return (T)(object)uint.MaxValue;
2058 if (typeof(T) == typeof(
int))
2060 return (T)(object)(-1);
2062 if (typeof(T) == typeof(ulong))
2064 return (T)(object)ulong.MaxValue;
2066 if (typeof(T) == typeof(
long))
2068 return (T)(object)(-1
L);
2070 if (typeof(T) == typeof(
float))
2074 if (typeof(T) == typeof(
double))
2078 if (typeof(T) == typeof(
UIntPtr))
2082 if (typeof(T) == typeof(
IntPtr))
2084 return (T)(object)(nint)(-1);
2092 if (typeof(T) == typeof(sbyte))
2096 if (typeof(T) == typeof(
short))
2100 if (typeof(T) == typeof(
int))
2104 if (typeof(T) == typeof(
long))
2108 if (typeof(T) == typeof(
float))
2112 if (typeof(T) == typeof(
double))
2116 if (typeof(T) == typeof(
IntPtr))
2126 if (typeof(T) == typeof(
byte))
2128 return (T)(object)(
byte)
Math.
Sqrt((
int)(byte)(
object)
value);
2130 if (typeof(T) == typeof(sbyte))
2134 if (typeof(T) == typeof(ushort))
2136 return (T)(object)(ushort)
Math.
Sqrt((
int)(ushort)(
object)
value);
2138 if (typeof(T) == typeof(
short))
2142 if (typeof(T) == typeof(uint))
2146 if (typeof(T) == typeof(
int))
2150 if (typeof(T) == typeof(ulong))
2154 if (typeof(T) == typeof(
long))
2158 if (typeof(T) == typeof(
float))
2162 if (typeof(T) == typeof(
double))
2166 if (typeof(T) == typeof(
UIntPtr))
2170 if (typeof(T) == typeof(
IntPtr))
2180 if (typeof(T) == typeof(
float))
2184 if (typeof(T) == typeof(
double))
2194 if (typeof(T) == typeof(
float))
2198 if (typeof(T) == typeof(
double))
static unsafe float Int32BitsToSingle(int value)
static unsafe double Int64BitsToDouble(long value)
static CultureInfo CurrentCulture
static float Ceiling(float x)
static float Floor(float x)
static double Sqrt(double d)
static double Ceiling(double a)
static double Abs(double value)
static double Floor(double d)
static T ScalarAdd(T left, T right)
static unsafe Vector< sbyte > Narrow(Vector< short > low, Vector< short > high)
static Vector< long > Equals(Vector< double > left, Vector< double > right)
static Vector< T > operator/(Vector< T > left, Vector< T > right)
static Vector< T > BitwiseOr< T >(Vector< T > left, Vector< T > right)
static T ScalarSubtract(T left, T right)
static bool GreaterThanAny< T >(Vector< T > left, Vector< T > right)
static Vector< float > ConditionalSelect(Vector< int > condition, Vector< float > left, Vector< float > right)
static Vector< T > GreaterThan< T >(Vector< T > left, Vector< T > right)
static Vector< T > Max(Vector< T > left, Vector< T > right)
static T Sum(Vector< T > value)
static Vector< T > AndNot< T >(Vector< T > left, Vector< T > right)
static Vector< T > ConditionalSelect< T >(Vector< T > condition, Vector< T > left, Vector< T > right)
static Vector< T > OnesComplement< T >(Vector< T > value)
static Vector< T > operator&(Vector< T > left, Vector< T > right)
static Vector< ulong > AsVectorUInt64< T >(Vector< T > value)
static Vector< int > Equals(Vector< int > left, Vector< int > right)
static unsafe Vector< int > Narrow(Vector< long > low, Vector< long > high)
static Vector< T > GreaterThanOrEqual< T >(Vector< T > left, Vector< T > right)
static unsafe Vector< double > ConvertToDouble(Vector< ulong > value)
static Vector< T > operator*(Vector< T > left, Vector< T > right)
readonly void CopyTo(Span< T > destination)
static Vector< double > Ceiling(Vector< double > value)
static Vector< T > operator+(Vector< T > left, Vector< T > right)
static unsafe void Widen(Vector< sbyte > source, out Vector< short > low, out Vector< short > high)
static Vector< T > Equals< T >(Vector< T > left, Vector< T > right)
static Vector< float > Floor(Vector< float > value)
static Vector< T > SquareRoot< T >(Vector< T > value)
static unsafe Vector< ulong > ConvertToUInt64(Vector< double > value)
static bool ScalarGreaterThanOrEqual(T left, T right)
static Vector< T > Negate< T >(Vector< T > value)
readonly void CopyTo(Span< byte > destination)
static Vector< T > operator-(Vector< T > left, Vector< T > right)
static Vector< int > LessThanOrEqual(Vector< float > left, Vector< float > right)
static unsafe Vector< float > ConvertToSingle(Vector< uint > value)
static bool EqualsAny< T >(Vector< T > left, Vector< T > right)
static Vector< T > AllBitsSet
readonly string ToString(string? format)
readonly bool TryCopyTo(Span< T > destination)
static bool GreaterThanOrEqualAll< T >(Vector< T > left, Vector< T > right)
static Vector< long > GreaterThan(Vector< double > left, Vector< double > right)
static Vector< T > Subtract< T >(Vector< T > left, Vector< T > right)
static Vector< long > Equals(Vector< long > left, Vector< long > right)
static Vector< T > Max< T >(Vector< T > left, Vector< T > right)
static unsafe void Widen(Vector< uint > source, out Vector< ulong > low, out Vector< ulong > high)
static Vector< int > AsVectorInt32< T >(Vector< T > value)
Vector(ReadOnlySpan< byte > values)
static void ThrowInsufficientNumberOfElementsException(int requiredElementCount)
static Vector< double > ConditionalSelect(Vector< long > condition, Vector< double > left, Vector< double > right)
static Vector< T > Equals(Vector< T > left, Vector< T > right)
readonly bool TryCopyTo(Span< byte > destination)
static Vector< T > Add< T >(Vector< T > left, Vector< T > right)
static unsafe Vector< int > ConvertToInt32(Vector< float > value)
static unsafe Vector< float > ConvertToSingle(Vector< int > value)
static Vector< T > Xor< T >(Vector< T > left, Vector< T > right)
static Vector< T > Ceiling(Vector< T > value)
static Vector< T > LessThanOrEqual< T >(Vector< T > left, Vector< T > right)
static Vector< T > operator~(Vector< T > value)
static Vector< int > GreaterThan(Vector< int > left, Vector< int > right)
static T Dot(Vector< T > left, Vector< T > right)
static Vector< long > LessThanOrEqual(Vector< double > left, Vector< double > right)
static Vector< byte > AsVectorByte< T >(Vector< T > value)
static Vector< double > Floor(Vector< double > value)
static Vector< sbyte > AsVectorSByte< T >(Vector< T > value)
readonly bool Equals(Vector< T > other)
static T ScalarAbs(T value)
static Vector< int > LessThan(Vector< float > left, Vector< float > right)
static bool IsHardwareAccelerated
static Vector< long > LessThan(Vector< double > left, Vector< double > right)
readonly void CopyTo(T[] destination, int startIndex)
void SetElement(nint index, T value)
static Vector< nuint > AsVectorNUInt< T >(Vector< T > value)
static unsafe Vector< uint > ConvertToUInt32(Vector< float > value)
static bool ScalarLessThan(T left, T right)
static Vector< T > Min< T >(Vector< T > left, Vector< T > right)
static Vector< T > Multiply< T >(Vector< T > left, Vector< T > right)
static unsafe Vector< long > ConvertToInt64(Vector< double > value)
static Vector< short > AsVectorInt16< T >(Vector< T > value)
readonly T GetElement(nint index)
static unsafe Vector< double > ConvertToDouble(Vector< long > value)
static Vector< long > GreaterThan(Vector< long > left, Vector< long > right)
static Vector< ushort > AsVectorUInt16< T >(Vector< T > value)
static unsafe void Widen(Vector< ushort > source, out Vector< uint > low, out Vector< uint > high)
static unsafe void Widen(Vector< byte > source, out Vector< ushort > low, out Vector< ushort > high)
override readonly int GetHashCode()
static Vector< long > AsVectorInt64< T >(Vector< T > value)
override readonly bool Equals([NotNullWhen(true)] object? obj)
static T Sum< T >(Vector< T > value)
static T ScalarMultiply(T left, T right)
static bool LessThanOrEqualAny< T >(Vector< T > left, Vector< T > right)
static unsafe Vector< uint > Narrow(Vector< ulong > low, Vector< ulong > high)
static unsafe Vector< byte > Narrow(Vector< ushort > low, Vector< ushort > high)
readonly void CopyTo(T[] destination)
static T Dot< T >(Vector< T > left, Vector< T > right)
static Vector< T > SquareRoot(Vector< T > value)
static Vector< float > Ceiling(Vector< float > value)
Vector(ReadOnlySpan< T > values)
static bool LessThanOrEqualAll< T >(Vector< T > left, Vector< T > right)
static Vector< T > GreaterThanOrEqual(Vector< T > left, Vector< T > right)
static Vector< long > GreaterThanOrEqual(Vector< double > left, Vector< double > right)
static Vector< long > GreaterThanOrEqual(Vector< long > left, Vector< long > right)
static Vector< T > Min(Vector< T > left, Vector< T > right)
static bool ScalarEquals(T left, T right)
override readonly string ToString()
static Vector< int > LessThanOrEqual(Vector< int > left, Vector< int > right)
static bool LessThanAny< T >(Vector< T > left, Vector< T > right)
Vector(T[] values, int index)
static Vector< int > LessThan(Vector< int > left, Vector< int > right)
static Vector< T > ConditionalSelect(Vector< T > condition, Vector< T > left, Vector< T > right)
static unsafe void Widen(Vector< short > source, out Vector< int > low, out Vector< int > high)
static bool GreaterThanOrEqualAny< T >(Vector< T > left, Vector< T > right)
static Vector< T > GreaterThan(Vector< T > left, Vector< T > right)
static unsafe void Widen(Vector< int > source, out Vector< long > low, out Vector< long > high)
static Vector< T > BitwiseAnd< T >(Vector< T > left, Vector< T > right)
static bool EqualsAll< T >(Vector< T > left, Vector< T > right)
static Vector< nint > AsVectorNInt< T >(Vector< T > value)
static Vector< int > GreaterThan(Vector< float > left, Vector< float > right)
static Vector< double > AsVectorDouble< T >(Vector< T > value)
static unsafe Vector< short > Narrow(Vector< int > low, Vector< int > high)
readonly string ToString(string? format, IFormatProvider? formatProvider)
static T ScalarFloor(T value)
static T ScalarCeiling(T value)
static Vector< T > Divide< T >(Vector< T > left, Vector< T > right)
static Vector< long > LessThan(Vector< long > left, Vector< long > right)
static bool ScalarGreaterThan(T left, T right)
static Vector< T > LessThan(Vector< T > left, Vector< T > right)
static bool ScalarLessThanOrEqual(T left, T right)
static T ScalarDivide(T left, T right)
static bool GreaterThanAll< T >(Vector< T > left, Vector< T > right)
static Vector< T > Floor(Vector< T > value)
static Vector< int > Equals(Vector< float > left, Vector< float > right)
static Vector< uint > AsVectorUInt32< T >(Vector< T > value)
static bool operator!=(Vector< T > left, Vector< T > right)
static Vector< TTo > As< TFrom, TTo >(this Vector< TFrom > vector)
static Vector< int > GreaterThanOrEqual(Vector< int > left, Vector< int > right)
static Vector< T > LessThanOrEqual(Vector< T > left, Vector< T > right)
static bool LessThanAll< T >(Vector< T > left, Vector< T > right)
static unsafe void Widen(Vector< float > source, out Vector< double > low, out Vector< double > high)
static Vector< int > GreaterThanOrEqual(Vector< float > left, Vector< float > right)
static bool operator==(Vector< T > left, Vector< T > right)
static T ScalarSqrt(T value)
static Vector< T > LessThan< T >(Vector< T > left, Vector< T > right)
static T GetAllBitsSetValue()
static Vector< T > operator|(Vector< T > left, Vector< T > right)
static Vector< T > Abs< T >(Vector< T > value)
static Vector< float > AsVectorSingle< T >(Vector< T > value)
static Vector< T > Abs(Vector< T > value)
static unsafe Vector< ushort > Narrow(Vector< uint > low, Vector< uint > high)
static unsafe Vector< float > Narrow(Vector< double > low, Vector< double > high)
static Vector< long > LessThanOrEqual(Vector< long > left, Vector< long > right)
static Vector< T > operator^(Vector< T > left, Vector< T > right)
static string Arg_TypeNotSupported
static string Arg_InsufficientNumberOfElements
static string Format(string resourceFormat, object p1)
static string Arg_NullArgumentNullRef
static string Arg_ElementsInSourceIsGreaterThanDestination
static string Arg_ArgumentOutOfRangeException
static void ThrowArgumentOutOfRangeException(System.ExceptionArgument argument)
static void ThrowArgumentException_DestinationTooShort()