2 instantiations of Vector4
Microsoft.Gen.Logging.Generated.Tests (1)
LogPropertiesTests.cs (1)
108P18 = new Vector4(1, 2, 3, 4),
System.Drawing.Primitives (1)
System\Drawing\RectangleF.cs (1)
66public Vector4 ToVector4() => new Vector4(x, y, width, height);
1113 references to Vector4
Microsoft.Gen.Logging.Generated.Tests (1)
test\Generators\Microsoft.Gen.Logging\TestClasses\LogPropertiesSpecialTypesExtensions.cs (1)
35public Vector4 P18 { get; set; }
Microsoft.Maui.Graphics (4)
Color.cs (2)
77 public Color(Vector4 color) 1042 public static implicit operator Color(Vector4 color) => new Color(color);
Converters\ColorTypeConverter.cs (2)
13 if (fromValue is Vector4 vec) 189 => sourceType == typeof(string) || sourceType == typeof(Vector4);
netstandard (1)
netstandard.cs (1)
1341[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Numerics.Vector4))]
System.Drawing.Primitives (7)
System\Drawing\RectangleF.cs (7)
53/// <see cref="System.Numerics.Vector4"/>. 55public RectangleF(Vector4 vector) 64/// Creates a new <see cref="System.Numerics.Vector4"/> from this <see cref="System.Drawing.RectangleF"/>. 66public Vector4 ToVector4() => new Vector4(x, y, width, height); 69/// Converts the specified <see cref="System.Drawing.RectangleF"/> to a <see cref="System.Numerics.Vector4"/>. 71public static explicit operator Vector4(RectangleF rectangle) => rectangle.ToVector4(); 76public static explicit operator RectangleF(Vector4 vector) => new RectangleF(vector);
System.Numerics (1)
System.Numerics.cs (1)
12[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Numerics.Vector4))]
System.Numerics.Vectors (1)
artifacts\obj\System.Numerics.Vectors\Debug\net10.0\System.Numerics.Vectors.Forwards.cs (1)
11[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Numerics.Vector4))]
System.Private.CoreLib (1098)
src\libraries\System.Private.CoreLib\src\System\Numerics\Matrix4x4.Impl.cs (193)
42public Vector4 X; 43public Vector4 Y; 44public Vector4 Z; 45public Vector4 W; 53X = Vector4.Create(m11, m12, m13, m14); 54Y = Vector4.Create(m21, m22, m23, m24); 55Z = Vector4.Create(m31, m32, m33, m34); 56W = Vector4.Create(m41, m42, m43, m44); 62X = Vector4.Create(value.X, 0, 0); 63Y = Vector4.Create(value.Y, 0, 0); 64Z = Vector4.UnitZ; 65W = Vector4.Create(value.Z, 0, 1); 75result.X = Vector4.UnitX; 76result.Y = Vector4.UnitY; 77result.Z = Vector4.UnitZ; 78result.W = Vector4.UnitW; 112return (X == Vector4.UnitX) 113&& (Y == Vector4.UnitY) 114&& (Z == Vector4.UnitZ) 115&& (W == Vector4.UnitW); 127W = Vector4.Create(value, W.W); 167result.X = Vector4.Transform(left.X, in right); 168result.Y = Vector4.Transform(left.Y, in right); 169result.Z = Vector4.Transform(left.Z, in right); 170result.W = Vector4.Transform(left.W, in right); 240result.W = Vector4.Create(objectPosition, 1); 271result.W = Vector4.Create(objectPosition, 1); 332result.W = Vector4.Create(objectPosition, 1); 392result.W = Vector4.Create(objectPosition, 1); 420result.X = Vector4.Create( 426result.Y = Vector4.Create( 432result.Z = Vector4.Create( 438result.W = Vector4.UnitW; 472result.X = Vector4.Create(axisX, Vector3.Dot(axisX, negativeCameraPosition)); 473result.Y = Vector4.Create(axisY, Vector3.Dot(axisY, negativeCameraPosition)); 474result.Z = Vector4.Create(axisZ, Vector3.Dot(axisZ, negativeCameraPosition)); 475result.W = Vector4.UnitW; 490result.X = Vector4.Create(2.0f / width, 0, 0, 0); 491result.Y = Vector4.Create(0, 2.0f / height, 0, 0); 492result.Z = Vector4.Create(0, 0, range, 0); 493result.W = Vector4.Create(0, 0, range * zNearPlane, 1); 508result.X = Vector4.Create(2.0f / width, 0, 0, 0); 509result.Y = Vector4.Create(0, 2.0f / height, 0, 0); 510result.Z = Vector4.Create(0, 0, range, 0); 511result.W = Vector4.Create(0, 0, -range * zNearPlane, 1); 528result.X = Vector4.Create(reciprocalWidth + reciprocalWidth, 0, 0, 0); 529result.Y = Vector4.Create(0, reciprocalHeight + reciprocalHeight, 0, 0); 530result.Z = Vector4.Create(0, 0, range, 0); 531result.W = Vector4.Create( 553result.X = Vector4.Create(reciprocalWidth + reciprocalWidth, 0, 0, 0); 554result.Y = Vector4.Create(0, reciprocalHeight + reciprocalHeight, 0, 0); 555result.Z = Vector4.Create(0, 0, range, 0); 556result.W = Vector4.Create( 581result.X = Vector4.Create(dblNearPlaneDistance / width, 0, 0, 0); 582result.Y = Vector4.Create(0, dblNearPlaneDistance / height, 0, 0); 583result.Z = Vector4.Create(0, 0, range, -1.0f); 584result.W = Vector4.Create(0, 0, range * nearPlaneDistance, 0); 604result.X = Vector4.Create(dblNearPlaneDistance / width, 0, 0, 0); 605result.Y = Vector4.Create(0, dblNearPlaneDistance / height, 0, 0); 606result.Z = Vector4.Create(0, 0, range, 1.0f); 607result.W = Vector4.Create(0, 0, -range * nearPlaneDistance, 0); 631result.X = Vector4.Create(width, 0, 0, 0); 632result.Y = Vector4.Create(0, height, 0, 0); 633result.Z = Vector4.Create(0, 0, range, -1.0f); 634result.W = Vector4.Create(0, 0, range * nearPlaneDistance, 0); 658result.X = Vector4.Create(width, 0, 0, 0); 659result.Y = Vector4.Create(0, height, 0, 0); 660result.Z = Vector4.Create(0, 0, range, 1.0f); 661result.W = Vector4.Create(0, 0, -range * nearPlaneDistance, 0); 683result.X = Vector4.Create(dblNearPlaneDistance * reciprocalWidth, 0, 0, 0); 684result.Y = Vector4.Create(0, dblNearPlaneDistance * reciprocalHeight, 0, 0); 685result.Z = Vector4.Create( 691result.W = Vector4.Create(0, 0, range * nearPlaneDistance, 0); 713result.X = Vector4.Create(dblNearPlaneDistance * reciprocalWidth, 0, 0, 0); 714result.Y = Vector4.Create(0, dblNearPlaneDistance * reciprocalHeight, 0, 0); 715result.Z = Vector4.Create( 721result.W = Vector4.Create(0, 0, -range * nearPlaneDistance, 0); 732Vector4 p = Plane.Normalize(value).AsVector4(); 733Vector4 s = p * Vector4.Create(-2.0f, -2.0f, -2.0f, 0.0f); 737result.X = Vector4.MultiplyAddEstimate(Vector4.Create(p.X), s, Vector4.UnitX); 738result.Y = Vector4.MultiplyAddEstimate(Vector4.Create(p.Y), s, Vector4.UnitY); 739result.Z = Vector4.MultiplyAddEstimate(Vector4.Create(p.Z), s, Vector4.UnitZ); 740result.W = Vector4.MultiplyAddEstimate(Vector4.Create(p.W), s, Vector4.UnitW); 757result.X = Vector4.UnitX; 758result.Y = Vector4.Create(0, c, s, 0); 759result.Z = Vector4.Create(0, -s, c, 0); 760result.W = Vector4.UnitW; 780result.X = Vector4.UnitX; 781result.Y = Vector4.Create(0, c, s, 0); 782result.Z = Vector4.Create(0, -s, c, 0); 783result.W = Vector4.Create(0, y, z, 1); 800result.X = Vector4.Create(c, 0, -s, 0); 801result.Y = Vector4.UnitY; 802result.Z = Vector4.Create(s, 0, c, 0); 803result.W = Vector4.UnitW; 823result.X = Vector4.Create(c, 0, -s, 0); 824result.Y = Vector4.UnitY; 825result.Z = Vector4.Create(s, 0, c, 0); 826result.W = Vector4.Create(x, 0, z, 1); 843result.X = Vector4.Create( c, s, 0, 0); 844result.Y = Vector4.Create(-s, c, 0, 0); 845result.Z = Vector4.UnitZ; 846result.W = Vector4.UnitW; 866result.X = Vector4.Create( c, s, 0, 0); 867result.Y = Vector4.Create(-s, c, 0, 0); 868result.Z = Vector4.UnitZ; 869result.W = Vector4.Create(x, y, 0, 1); 879result.X = Vector4.Create(scaleX, 0, 0, 0); 880result.Y = Vector4.Create(0, scaleY, 0, 0); 881result.Z = Vector4.Create(0, 0, scaleZ, 0); 882result.W = Vector4.UnitW; 892result.X = Vector4.Create(scaleX, 0, 0, 0); 893result.Y = Vector4.Create(0, scaleY, 0, 0); 894result.Z = Vector4.Create(0, 0, scaleZ, 0); 895result.W = Vector4.Create(centerPoint * (Vector3.One - Vector3.Create(scaleX, scaleY, scaleZ)), 1); 905result.X = Vector4.Create(scales.X, 0, 0, 0); 906result.Y = Vector4.Create(0, scales.Y, 0, 0); 907result.Z = Vector4.Create(0, 0, scales.Z, 0); 908result.W = Vector4.UnitW; 918result.X = Vector4.Create(scales.X, 0, 0, 0); 919result.Y = Vector4.Create(0, scales.Y, 0, 0); 920result.Z = Vector4.Create(0, 0, scales.Z, 0); 921result.W = Vector4.Create(centerPoint * (Vector3.One - scales), 1); 931result.X = Vector4.Create(scale, 0, 0, 0); 932result.Y = Vector4.Create(0, scale, 0, 0); 933result.Z = Vector4.Create(0, 0, scale, 0); 934result.W = Vector4.UnitW; 944result.X = Vector4.Create(scale, 0, 0, 0); 945result.Y = Vector4.Create(0, scale, 0, 0); 946result.Z = Vector4.Create(0, 0, scale, 0); 947result.W = Vector4.Create(centerPoint * (Vector3.One - Vector3.Create(scale)), 1); 955Vector4 p = Plane.Normalize(plane).AsVector4(); 956Vector4 l = lightDirection.AsVector4(); 957float dot = Vector4.Dot(p, l); 963result.X = Vector4.MultiplyAddEstimate(l, Vector4.Create(p.X), Vector4.Create(dot, 0, 0, 0)); 964result.Y = Vector4.MultiplyAddEstimate(l, Vector4.Create(p.Y), Vector4.Create(0, dot, 0, 0)); 965result.Z = Vector4.MultiplyAddEstimate(l, Vector4.Create(p.Z), Vector4.Create(0, 0, dot, 0)); 966result.W = Vector4.MultiplyAddEstimate(l, Vector4.Create(p.W), Vector4.Create(0, 0, 0, dot)); 976result.X = Vector4.UnitX; 977result.Y = Vector4.UnitY; 978result.Z = Vector4.UnitZ; 979result.W = Vector4.Create(position, 1); 989result.X = Vector4.UnitX; 990result.Y = Vector4.UnitY; 991result.Z = Vector4.UnitZ; 992result.W = Vector4.Create(positionX, positionY, positionZ, 1); 1004result.W = Vector4.Create(width, height, 0f, 0f); 1005result.W *= Vector4.Create(0.5f, 0.5f, 0f, 0f); 1007result.X = Vector4.Create(result.W.X, 0f, 0f, 0f); 1008result.Y = Vector4.Create(0f, -result.W.Y, 0f, 0f); 1009result.Z = Vector4.Create(0f, 0f, minDepth - maxDepth, 0f); 1010result.W += Vector4.Create(x, y, minDepth, 1f); 1021result.W = Vector4.Create(width, height, 0f, 0f); 1022result.W *= Vector4.Create(0.5f, 0.5f, 0f, 0f); 1024result.X = Vector4.Create(result.W.X, 0f, 0f, 0f); 1025result.Y = Vector4.Create(0f, -result.W.Y, 0f, 0f); 1026result.Z = Vector4.Create(0f, 0f, maxDepth - minDepth, 0f); 1027result.W += Vector4.Create(x, y, minDepth, 1f); 1044result.W = Vector4.Create(position, 1); 1384float det = Vector4.Dot(C0.AsVector4(), row1.AsVector4()); 1389Vector4 vNaN = Vector4.Create(float.NaN); 1527Vector4 vNaN = Vector4.Create(float.NaN); 1582result.X = Vector4.Lerp(left.X, right.X, amount); 1583result.Y = Vector4.Lerp(left.Y, right.Y, amount); 1584result.Z = Vector4.Lerp(left.Z, right.Z, amount); 1585result.W = Vector4.Lerp(left.W, right.W, amount); 1624result.X = Vector4.Create( 1630result.Y = Vector4.Create( 1636result.Z = Vector4.Create( 1642result.W = Vector4.Create( 1696result.X = Vector4.Create(matrix.X.X, matrix.Y.X, matrix.Z.X, matrix.W.X); 1697result.Y = Vector4.Create(matrix.X.Y, matrix.Y.Y, matrix.Z.Y, matrix.W.Y); 1698result.Z = Vector4.Create(matrix.X.Z, matrix.Y.Z, matrix.Z.Z, matrix.W.Z); 1699result.W = Vector4.Create(matrix.X.W, matrix.Y.W, matrix.Z.W, matrix.W.W);
src\libraries\System.Private.CoreLib\src\System\Numerics\Plane.cs (7)
44/// <param name="value">A vector whose first three elements describe the normal vector, and whose <see cref="Vector4.W" /> defines the distance along that normal from the origin.</param> 46public Plane(Vector4 value) 65internal static Plane Create(Vector3 normal, float d) => Vector4.Create(normal, d).AsPlane(); 92public static float Dot(Plane plane, Vector4 value) => Vector128.Dot(plane.AsVector128(), value.AsVector128()); 103return Dot(plane, Vector4.Create(value, 1.0f)); 143return Vector4.Transform(plane.AsVector4(), Matrix4x4.Impl.Transpose(inverseMatrix)).AsPlane(); 152public static Plane Transform(Plane plane, Quaternion rotation) => Vector4.Transform(plane.AsVector4(), rotation).AsPlane();
src\libraries\System.Private.CoreLib\src\System\Numerics\Plane.Extensions.cs (4)
10/// <summary>Reinterprets a <see cref="Plane" /> as a new <see cref="Vector4" />.</summary> 12/// <returns><paramref name="value" /> reinterpreted as a new <see cref="Vector4" />.</returns> 14public static Vector4 AsVector4(this Plane value) 19return Unsafe.BitCast<Plane, Vector4>(value);
src\libraries\System.Private.CoreLib\src\System\Numerics\Quaternion.cs (3)
208internal static Quaternion Create(Vector3 vectorPart, float scalarPart) => Vector4.Create(vectorPart, scalarPart).AsQuaternion(); 222return (Vector4.Create(axis, 1) * Vector4.Create(Vector3.Create(s), c)).AsQuaternion();
src\libraries\System.Private.CoreLib\src\System\Numerics\Quaternion.Extensions.cs (3)
10/// <summary>Reinterprets a <see cref="Quaternion" /> as a new <see cref="Vector4" />.</summary> 14public static Vector4 AsVector4(this Quaternion value) 19return Unsafe.BitCast<Quaternion, Vector4>(value);
src\libraries\System.Private.CoreLib\src\System\Numerics\Vector2.cs (229)
71/// <inheritdoc cref="Vector4.AllBitsSet" /> 78/// <inheritdoc cref="Vector4.E" /> 85/// <inheritdoc cref="Vector4.Epsilon" /> 92/// <inheritdoc cref="Vector4.NaN" /> 99/// <inheritdoc cref="Vector4.NegativeInfinity" /> 106/// <inheritdoc cref="Vector4.NegativeZero" /> 113/// <inheritdoc cref="Vector4.One" /> 120/// <inheritdoc cref="Vector4.Pi" /> 127/// <inheritdoc cref="Vector4.PositiveInfinity" /> 134/// <inheritdoc cref="Vector4.Tau" /> 157/// <inheritdoc cref="Vector4.Zero" /> 266/// <inheritdoc cref="Vector4.op_BitwiseAnd(Vector4, Vector4)" /> 271/// <inheritdoc cref="Vector4.op_BitwiseOr(Vector4, Vector4)" /> 276/// <inheritdoc cref="Vector4.op_ExclusiveOr(Vector4, Vector4)" /> 281/// <inheritdoc cref="Vector4.op_LeftShift(Vector4, int)" /> 286/// <inheritdoc cref="Vector4.op_OnesComplement(Vector4)" /> 291/// <inheritdoc cref="Vector4.op_RightShift(Vector4, int)" /> 296/// <inheritdoc cref="Vector4.op_UnaryPlus(Vector4)" /> 301/// <inheritdoc cref="Vector4.op_UnsignedRightShift(Vector4, int)" /> 320/// <inheritdoc cref="Vector4.All(Vector4, float)" /> 325/// <inheritdoc cref="Vector4.AllWhereAllBitsSet(Vector4)" /> 330/// <inheritdoc cref="Vector4.AndNot(Vector4, Vector4)" /> 335/// <inheritdoc cref="Vector4.Any(Vector4, float)" /> 340/// <inheritdoc cref="Vector4.AnyWhereAllBitsSet(Vector4)" /> 345/// <inheritdoc cref="Vector4.BitwiseAnd(Vector4, Vector4)" /> 349/// <inheritdoc cref="Vector4.BitwiseOr(Vector4, Vector4)" /> 353/// <inheritdoc cref="Vector4.Clamp(Vector4, Vector4, Vector4)" /> 358/// <inheritdoc cref="Vector4.ClampNative(Vector4, Vector4, Vector4)" /> 363/// <inheritdoc cref="Vector4.ConditionalSelect(Vector4, Vector4, Vector4)" /> 368/// <inheritdoc cref="Vector4.CopySign(Vector4, Vector4)" /> 373/// <inheritdoc cref="Vector4.Cos(Vector4)" /> 377/// <inheritdoc cref="Vector4.Count(Vector4, float)" /> 382/// <inheritdoc cref="Vector4.CountWhereAllBitsSet(Vector4)" /> 450/// <inheritdoc cref="Vector4.DegreesToRadians(Vector4)" /> 491/// <inheritdoc cref="Vector4.Exp(Vector4)" /> 495/// <inheritdoc cref="Vector4.Equals(Vector4, Vector4)" /> 500/// <inheritdoc cref="Vector4.EqualsAll(Vector4, Vector4)" /> 505/// <inheritdoc cref="Vector4.EqualsAny(Vector4, Vector4)" /> 515/// <inheritdoc cref="Vector4.GreaterThan(Vector4, Vector4)" /> 520/// <inheritdoc cref="Vector4.GreaterThanAll(Vector4, Vector4)" /> 525/// <inheritdoc cref="Vector4.GreaterThanAny(Vector4, Vector4)" /> 530/// <inheritdoc cref="Vector4.GreaterThanOrEqual(Vector4, Vector4)" /> 535/// <inheritdoc cref="Vector4.GreaterThanOrEqualAll(Vector4, Vector4)" /> 540/// <inheritdoc cref="Vector4.GreaterThanOrEqualAny(Vector4, Vector4)" /> 545/// <inheritdoc cref="Vector4.Hypot(Vector4, Vector4)" /> 550/// <inheritdoc cref="Vector4.IndexOf(Vector4, float)" /> 555/// <inheritdoc cref="Vector4.IndexOfWhereAllBitsSet(Vector4)" /> 560/// <inheritdoc cref="Vector4.IsEvenInteger(Vector4)" /> 565/// <inheritdoc cref="Vector4.IsFinite(Vector4)" /> 570/// <inheritdoc cref="Vector4.IsInfinity(Vector4)" /> 575/// <inheritdoc cref="Vector4.IsInteger(Vector4)" /> 580/// <inheritdoc cref="Vector4.IsNaN(Vector4)" /> 585/// <inheritdoc cref="Vector4.IsNegative(Vector4)" /> 590/// <inheritdoc cref="Vector4.IsNegativeInfinity(Vector4)" /> 595/// <inheritdoc cref="Vector4.IsNormal(Vector4)" /> 600/// <inheritdoc cref="Vector4.IsOddInteger(Vector4)" /> 605/// <inheritdoc cref="Vector4.IsPositive(Vector4)" /> 610/// <inheritdoc cref="Vector4.IsPositiveInfinity(Vector4)" /> 615/// <inheritdoc cref="Vector4.IsSubnormal(Vector4)" /> 620/// <inheritdoc cref="Vector4.IsZero(Vector4)" /> 625/// <inheritdoc cref="Vector4.LastIndexOf(Vector4, float)" /> 630/// <inheritdoc cref="Vector4.LastIndexOfWhereAllBitsSet(Vector4)" /> 635/// <inheritdoc cref="Vector4.Lerp(Vector4, Vector4, float)" /> 640/// <inheritdoc cref="Vector4.Lerp(Vector4, Vector4, Vector4)" /> 645/// <inheritdoc cref="Vector4.LessThan(Vector4, Vector4)" /> 650/// <inheritdoc cref="Vector4.LessThanAll(Vector4, Vector4)" /> 655/// <inheritdoc cref="Vector4.LessThanAny(Vector4, Vector4)" /> 660/// <inheritdoc cref="Vector4.LessThanOrEqual(Vector4, Vector4)" /> 665/// <inheritdoc cref="Vector4.LessThanOrEqualAll(Vector4, Vector4)" /> 670/// <inheritdoc cref="Vector4.LessThanOrEqualAny(Vector4, Vector4)" /> 675/// <inheritdoc cref="Vector4.Load(float*)" /> 680/// <inheritdoc cref="Vector4.LoadAligned(float*)" /> 694/// <inheritdoc cref="Vector4.LoadAlignedNonTemporal(float*)" /> 708/// <inheritdoc cref="Vector4.LoadUnsafe(ref readonly float, nuint)" /> 718/// <inheritdoc cref="Vector4.Log2(Vector4)" /> 720public static Vector2 Log(Vector2 vector) => Vector128.Log(Vector4.Create(vector, 1.0f, 1.0f).AsVector128()).AsVector2(); 722/// <inheritdoc cref="Vector4.Log(Vector4)" /> 724public static Vector2 Log2(Vector2 vector) => Vector128.Log2(Vector4.Create(vector, 1.0f, 1.0f).AsVector128()).AsVector2(); 726/// <inheritdoc cref="Vector4.Max(Vector4, Vector4)" /> 731/// <inheritdoc cref="Vector4.MaxMagnitude(Vector4, Vector4)" /> 736/// <inheritdoc cref="Vector4.MaxMagnitudeNumber(Vector4, Vector4)" /> 741/// <inheritdoc cref="Vector4.MaxNative(Vector4, Vector4)" /> 746/// <inheritdoc cref="Vector4.MaxNumber(Vector4, Vector4)" /> 751/// <inheritdoc cref="Vector4.Min(Vector4, Vector4)" /> 756/// <inheritdoc cref="Vector4.MinMagnitude(Vector4, Vector4)" /> 761/// <inheritdoc cref="Vector4.MinMagnitudeNumber(Vector4, Vector4)" /> 766/// <inheritdoc cref="Vector4.MinNative(Vector4, Vector4)" /> 771/// <inheritdoc cref="Vector4.MinNumber(Vector4, Vector4)" /> 808/// <inheritdoc cref="Vector4.None(Vector4, float)" /> 813/// <inheritdoc cref="Vector4.NoneWhereAllBitsSet(Vector4)" /> 824/// <inheritdoc cref="Vector4.OnesComplement(Vector4)" /> 828/// <inheritdoc cref="Vector4.RadiansToDegrees(Vector4)" /> 848/// <inheritdoc cref="Vector4.Round(Vector4)" /> 852/// <inheritdoc cref="Vector4.Round(Vector4, MidpointRounding)" /> 869/// <inheritdoc cref="Vector4.Sin(Vector4)" /> 873/// <inheritdoc cref="Vector4.SinCos(Vector4)" /> 895/// <inheritdoc cref="Vector4.Sum(Vector4)" /> 919public static Vector2 Transform(Vector2 position, Matrix4x4 matrix) => Vector4.Transform(position, in matrix.AsImpl()).AsVector128().AsVector2(); 926public static Vector2 Transform(Vector2 value, Quaternion rotation) => Vector4.Transform(value, rotation).AsVector2(); 951Vector4 result = matrix.X * normal.X; 952result = Vector4.MultiplyAddEstimate(matrix.Y, Vector4.Create(normal.Y), result); 956/// <inheritdoc cref="Vector4.Truncate(Vector4)" /> 960/// <inheritdoc cref="Vector4.Xor(Vector4, Vector4)" />
src\libraries\System.Private.CoreLib\src\System\Numerics\Vector2.Extensions.cs (10)
12/// <summary>Reinterprets a <see cref="Vector2" /> to a new <see cref="Vector4" /> with the new elements zeroed.</summary> 14/// <returns><paramref name="value" /> reinterpreted to a new <see cref="Vector4" /> with the new elements zeroed.</returns> 15public static Vector4 AsVector4(this Vector2 value) => value.AsVector128().AsVector4(); 17/// <summary>Reinterprets a <see cref="Vector2" /> to a new <see cref="Vector4" /> with the new elements undefined.</summary> 19/// <returns><paramref name="value" /> reinterpreted to a new <see cref="Vector4" /> with the new elements undefined.</returns> 20public static Vector4 AsVector4Unsafe(this Vector2 value) => value.AsVector128Unsafe().AsVector4(); 22/// <inheritdoc cref="ExtractMostSignificantBits(Vector4)" /> 27/// <inheritdoc cref="GetElement(Vector4, int)" /> 90/// <inheritdoc cref="ToScalar(Vector4)" /> 94/// <inheritdoc cref="WithElement(Vector4, int, float)" />
src\libraries\System.Private.CoreLib\src\System\Numerics\Vector3.cs (231)
84/// <inheritdoc cref="Vector4.AllBitsSet" /> 91/// <inheritdoc cref="Vector4.E" /> 98/// <inheritdoc cref="Vector4.Epsilon" /> 105/// <inheritdoc cref="Vector4.NaN" /> 112/// <inheritdoc cref="Vector4.NegativeInfinity" /> 119/// <inheritdoc cref="Vector4.NegativeZero" /> 126/// <inheritdoc cref="Vector4.One" /> 133/// <inheritdoc cref="Vector4.Pi" /> 140/// <inheritdoc cref="Vector4.PositiveInfinity" /> 147/// <inheritdoc cref="Vector4.Tau" /> 178/// <inheritdoc cref="Vector4.Zero" /> 287/// <inheritdoc cref="Vector4.op_BitwiseAnd(Vector4, Vector4)" /> 292/// <inheritdoc cref="Vector4.op_BitwiseOr(Vector4, Vector4)" /> 297/// <inheritdoc cref="Vector4.op_ExclusiveOr(Vector4, Vector4)" /> 302/// <inheritdoc cref="Vector4.op_LeftShift(Vector4, int)" /> 307/// <inheritdoc cref="Vector4.op_OnesComplement(Vector4)" /> 312/// <inheritdoc cref="Vector4.op_RightShift(Vector4, int)" /> 317/// <inheritdoc cref="Vector4.op_UnaryPlus(Vector4)" /> 322/// <inheritdoc cref="Vector4.op_UnsignedRightShift(Vector4, int)" /> 341/// <inheritdoc cref="Vector4.All(Vector4, float)" /> 346/// <inheritdoc cref="Vector4.AllWhereAllBitsSet(Vector4)" /> 351/// <inheritdoc cref="Vector4.AndNot(Vector4, Vector4)" /> 356/// <inheritdoc cref="Vector4.Any(Vector4, float)" /> 361/// <inheritdoc cref="Vector4.AnyWhereAllBitsSet(Vector4)" /> 366/// <inheritdoc cref="Vector4.BitwiseAnd(Vector4, Vector4)" /> 370/// <inheritdoc cref="Vector4.BitwiseOr(Vector4, Vector4)" /> 374/// <inheritdoc cref="Vector4.Clamp(Vector4, Vector4, Vector4)" /> 379/// <inheritdoc cref="Vector4.ClampNative(Vector4, Vector4, Vector4)" /> 384/// <inheritdoc cref="Vector4.ConditionalSelect(Vector4, Vector4, Vector4)" /> 389/// <inheritdoc cref="Vector4.CopySign(Vector4, Vector4)" /> 394/// <inheritdoc cref="Vector4.Cos(Vector4)" /> 398/// <inheritdoc cref="Vector4.Count(Vector4, float)" /> 403/// <inheritdoc cref="Vector4.CountWhereAllBitsSet(Vector4)" /> 483/// <inheritdoc cref="Vector4.DegreesToRadians(Vector4)" /> 524/// <inheritdoc cref="Vector4.Exp(Vector4)" /> 528/// <inheritdoc cref="Vector4.Equals(Vector4, Vector4)" /> 533/// <inheritdoc cref="Vector4.EqualsAll(Vector4, Vector4)" /> 538/// <inheritdoc cref="Vector4.EqualsAny(Vector4, Vector4)" /> 548/// <inheritdoc cref="Vector4.GreaterThan(Vector4, Vector4)" /> 553/// <inheritdoc cref="Vector4.GreaterThanAll(Vector4, Vector4)" /> 558/// <inheritdoc cref="Vector4.GreaterThanAny(Vector4, Vector4)" /> 563/// <inheritdoc cref="Vector4.GreaterThanOrEqual(Vector4, Vector4)" /> 568/// <inheritdoc cref="Vector4.GreaterThanOrEqualAll(Vector4, Vector4)" /> 573/// <inheritdoc cref="Vector4.GreaterThanOrEqualAny(Vector4, Vector4)" /> 578/// <inheritdoc cref="Vector4.Hypot(Vector4, Vector4)" /> 583/// <inheritdoc cref="Vector4.IndexOf(Vector4, float)" /> 588/// <inheritdoc cref="Vector4.IndexOfWhereAllBitsSet(Vector4)" /> 593/// <inheritdoc cref="Vector4.IsEvenInteger(Vector4)" /> 598/// <inheritdoc cref="Vector4.IsFinite(Vector4)" /> 603/// <inheritdoc cref="Vector4.IsInfinity(Vector4)" /> 608/// <inheritdoc cref="Vector4.IsInteger(Vector4)" /> 613/// <inheritdoc cref="Vector4.IsNaN(Vector4)" /> 618/// <inheritdoc cref="Vector4.IsNegative(Vector4)" /> 623/// <inheritdoc cref="Vector4.IsNegativeInfinity(Vector4)" /> 628/// <inheritdoc cref="Vector4.IsNormal(Vector4)" /> 633/// <inheritdoc cref="Vector4.IsOddInteger(Vector4)" /> 638/// <inheritdoc cref="Vector4.IsPositive(Vector4)" /> 643/// <inheritdoc cref="Vector4.IsPositiveInfinity(Vector4)" /> 648/// <inheritdoc cref="Vector4.IsSubnormal(Vector4)" /> 653/// <inheritdoc cref="Vector4.IsZero(Vector4)" /> 658/// <inheritdoc cref="Vector4.LastIndexOf(Vector4, float)" /> 663/// <inheritdoc cref="Vector4.LastIndexOfWhereAllBitsSet(Vector4)" /> 668/// <inheritdoc cref="Vector4.Lerp(Vector4, Vector4, float)" /> 673/// <inheritdoc cref="Vector4.Lerp(Vector4, Vector4, Vector4)" /> 678/// <inheritdoc cref="Vector4.LessThan(Vector4, Vector4)" /> 683/// <inheritdoc cref="Vector4.LessThanAll(Vector4, Vector4)" /> 688/// <inheritdoc cref="Vector4.LessThanAny(Vector4, Vector4)" /> 693/// <inheritdoc cref="Vector4.LessThanOrEqual(Vector4, Vector4)" /> 698/// <inheritdoc cref="Vector4.LessThanOrEqualAll(Vector4, Vector4)" /> 703/// <inheritdoc cref="Vector4.LessThanOrEqualAny(Vector4, Vector4)" /> 708/// <inheritdoc cref="Vector4.Load(float*)" /> 713/// <inheritdoc cref="Vector4.LoadAligned(float*)" /> 727/// <inheritdoc cref="Vector4.LoadAlignedNonTemporal(float*)" /> 741/// <inheritdoc cref="Vector4.LoadUnsafe(ref readonly float, nuint)" /> 751/// <inheritdoc cref="Vector4.Log2(Vector4)" /> 753public static Vector3 Log(Vector3 vector) => Vector128.Log(Vector4.Create(vector, 1.0f).AsVector128()).AsVector3(); 755/// <inheritdoc cref="Vector4.Log(Vector4)" /> 757public static Vector3 Log2(Vector3 vector) => Vector128.Log2(Vector4.Create(vector, 1.0f).AsVector128()).AsVector3(); 759/// <inheritdoc cref="Vector4.Max(Vector4, Vector4)" /> 764/// <inheritdoc cref="Vector4.MaxMagnitude(Vector4, Vector4)" /> 769/// <inheritdoc cref="Vector4.MaxMagnitudeNumber(Vector4, Vector4)" /> 774/// <inheritdoc cref="Vector4.MaxNative(Vector4, Vector4)" /> 779/// <inheritdoc cref="Vector4.MaxNumber(Vector4, Vector4)" /> 784/// <inheritdoc cref="Vector4.Min(Vector4, Vector4)" /> 789/// <inheritdoc cref="Vector4.MinMagnitude(Vector4, Vector4)" /> 794/// <inheritdoc cref="Vector4.MinMagnitudeNumber(Vector4, Vector4)" /> 799/// <inheritdoc cref="Vector4.MinNative(Vector4, Vector4)" /> 804/// <inheritdoc cref="Vector4.MinNumber(Vector4, Vector4)" /> 841/// <inheritdoc cref="Vector4.None(Vector4, float)" /> 846/// <inheritdoc cref="Vector4.NoneWhereAllBitsSet(Vector4)" /> 857/// <inheritdoc cref="Vector4.OnesComplement(Vector4)" /> 861/// <inheritdoc cref="Vector4.RadiansToDegrees(Vector4)" /> 881/// <inheritdoc cref="Vector4.Round(Vector4)" /> 885/// <inheritdoc cref="Vector4.Round(Vector4, MidpointRounding)" /> 903/// <inheritdoc cref="Vector4.Sin(Vector4)" /> 907/// <inheritdoc cref="Vector4.SinCos(Vector4)" /> 929/// <inheritdoc cref="Vector4.Sum(Vector4)" /> 939public static Vector3 Transform(Vector3 position, Matrix4x4 matrix) => Vector4.Transform(position, in matrix.AsImpl()).AsVector128().AsVector3(); 946public static Vector3 Transform(Vector3 value, Quaternion rotation) => Vector4.Transform(value, rotation).AsVector3(); 958Vector4 result = matrix.X * normal.X; 960result = Vector4.MultiplyAddEstimate(matrix.Y, Vector4.Create(normal.Y), result); 961result = Vector4.MultiplyAddEstimate(matrix.Z, Vector4.Create(normal.Z), result); 966/// <inheritdoc cref="Vector4.Truncate(Vector4)" /> 970/// <inheritdoc cref="Vector4.Xor(Vector4, Vector4)" />
src\libraries\System.Private.CoreLib\src\System\Numerics\Vector3.Extensions.cs (10)
12/// <summary>Converts a <see cref="Vector3" /> to a new <see cref="Vector4" /> with the new elements zeroed.</summary> 14/// <returns><paramref name="value" /> converted to a new <see cref="Vector4" /> with the new elements zeroed.</returns> 15public static Vector4 AsVector4(this Vector3 value) => value.AsVector128().AsVector4(); 17/// <summary>Converts a <see cref="Vector3" /> to a new <see cref="Vector4" /> with the new elements undefined.</summary> 19/// <returns><paramref name="value" /> converted to a new <see cref="Vector4" /> with the new elements undefined.</returns> 20public static Vector4 AsVector4Unsafe(this Vector3 value) => value.AsVector128Unsafe().AsVector4(); 22/// <inheritdoc cref="ExtractMostSignificantBits(Vector4)" /> 27/// <inheritdoc cref="GetElement(Vector4, int)" /> 90/// <inheritdoc cref="ToScalar(Vector4)" /> 94/// <inheritdoc cref="WithElement(Vector4, int, float)" />
src\libraries\System.Private.CoreLib\src\System\Numerics\Vector4.cs (332)
17public partial struct Vector4 : IEquatable<Vector4>, IFormattable 19/// <summary>Specifies the alignment of the vector as used by the <see cref="LoadAligned(float*)" /> and <see cref="Vector.StoreAligned(Vector4, float*)" /> APIs.</summary> 51/// <summary>Creates a new <see cref="Vector4" /> object whose four elements have the same value.</summary> 59/// <summary>Creates a new <see cref="Vector4" /> object from the specified <see cref="Vector2" /> object and a Z and a W component.</summary> 69/// <summary>Constructs a new <see cref="Vector4" /> object from the specified <see cref="Vector3" /> object and a W component.</summary> 99public static Vector4 AllBitsSet 107public static Vector4 E 115public static Vector4 Epsilon 123public static Vector4 NaN 131public static Vector4 NegativeInfinity 139public static Vector4 NegativeZero 147public static Vector4 One 155public static Vector4 Pi 163public static Vector4 PositiveInfinity 171public static Vector4 Tau 179public static Vector4 UnitX 187public static Vector4 UnitY 195public static Vector4 UnitZ 203public static Vector4 UnitW 211public static Vector4 Zero 237/// <remarks>The <see cref="op_Addition" /> method defines the addition operation for <see cref="Vector4" /> objects.</remarks> 240public static Vector4 operator +(Vector4 left, Vector4 right) => (left.AsVector128() + right.AsVector128()).AsVector4(); 246/// <remarks>The <see cref="Vector4.op_Division" /> method defines the division operation for <see cref="Vector4" /> objects.</remarks> 249public static Vector4 operator /(Vector4 left, Vector4 right) => (left.AsVector128() / right.AsVector128()).AsVector4(); 255/// <remarks>The <see cref="Vector4.op_Division" /> method defines the division operation for <see cref="Vector4" /> objects.</remarks> 258public static Vector4 operator /(Vector4 value1, float value2) => (value1.AsVector128() / value2).AsVector4(); 264/// <remarks>Two <see cref="Vector4" /> objects are equal if each element in <paramref name="left" /> is equal to the corresponding element in <paramref name="right" />.</remarks> 267public static bool operator ==(Vector4 left, Vector4 right) => left.AsVector128() == right.AsVector128(); 274public static bool operator !=(Vector4 left, Vector4 right) => !(left == right); 280/// <remarks>The <see cref="Vector4.op_Multiply" /> method defines the multiplication operation for <see cref="Vector4" /> objects.</remarks> 283public static Vector4 operator *(Vector4 left, Vector4 right) => (left.AsVector128() * right.AsVector128()).AsVector4(); 289/// <remarks>The <see cref="Vector4.op_Multiply" /> method defines the multiplication operation for <see cref="Vector4" /> objects.</remarks> 292public static Vector4 operator *(Vector4 left, float right) => (left.AsVector128() * right).AsVector4(); 298/// <remarks>The <see cref="Vector4.op_Multiply" /> method defines the multiplication operation for <see cref="Vector4" /> objects.</remarks> 300public static Vector4 operator *(float left, Vector4 right) => right * left; 306/// <remarks>The <see cref="op_Subtraction" /> method defines the subtraction operation for <see cref="Vector4" /> objects.</remarks> 309public static Vector4 operator -(Vector4 left, Vector4 right) => (left.AsVector128() - right.AsVector128()).AsVector4(); 314/// <remarks>The <see cref="op_UnaryNegation" /> method defines the unary negation operation for <see cref="Vector4" /> objects.</remarks> 317public static Vector4 operator -(Vector4 value) => (-value.AsVector128()).AsVector4(); 322public static Vector4 operator &(Vector4 left, Vector4 right) => (left.AsVector128() & right.AsVector128()).AsVector4(); 327public static Vector4 operator |(Vector4 left, Vector4 right) => (left.AsVector128() | right.AsVector128()).AsVector4(); 332public static Vector4 operator ^(Vector4 left, Vector4 right) => (left.AsVector128() ^ right.AsVector128()).AsVector4(); 337public static Vector4 operator <<(Vector4 value, int shiftAmount) => (value.AsVector128() << shiftAmount).AsVector4(); 342public static Vector4 operator ~(Vector4 value) => (~value.AsVector128()).AsVector4(); 347public static Vector4 operator >>(Vector4 value, int shiftAmount) => (value.AsVector128() >> shiftAmount).AsVector4(); 352public static Vector4 operator +(Vector4 value) => value; 357public static Vector4 operator >>>(Vector4 value, int shiftAmount) => (value.AsVector128() >>> shiftAmount).AsVector4(); 364public static Vector4 Abs(Vector4 value) => Vector128.Abs(value.AsVector128()).AsVector4(); 371public static Vector4 Add(Vector4 left, Vector4 right) => left + right; 376public static bool All(Vector4 vector, float value) => Vector128.All(vector.AsVector128(), value); 381public static bool AllWhereAllBitsSet(Vector4 vector) => Vector128.AllWhereAllBitsSet(vector.AsVector128()); 386public static Vector4 AndNot(Vector4 left, Vector4 right) => Vector128.AndNot(left.AsVector128(), right.AsVector128()).AsVector4(); 391public static bool Any(Vector4 vector, float value) => Vector128.Any(vector.AsVector128(), value); 396public static bool AnyWhereAllBitsSet(Vector4 vector) => Vector128.AnyWhereAllBitsSet(vector.AsVector128()); 400public static Vector4 BitwiseAnd(Vector4 left, Vector4 right) => left & right; 404public static Vector4 BitwiseOr(Vector4 left, Vector4 right) => left | right; 409public static Vector4 Clamp(Vector4 value1, Vector4 min, Vector4 max) => Vector128.Clamp(value1.AsVector128(), min.AsVector128(), max.AsVector128()).AsVector4(); 414public static Vector4 ClampNative(Vector4 value1, Vector4 min, Vector4 max) => Vector128.ClampNative(value1.AsVector128(), min.AsVector128(), max.AsVector128()).AsVector4(); 419public static Vector4 ConditionalSelect(Vector4 condition, Vector4 left, Vector4 right) => Vector128.ConditionalSelect(condition.AsVector128(), left.AsVector128(), right.AsVector128()).AsVector4(); 424public static Vector4 CopySign(Vector4 value, Vector4 sign) => Vector128.CopySign(value.AsVector128(), sign.AsVector128()).AsVector4(); 428public static Vector4 Cos(Vector4 vector) => Vector128.Cos(vector.AsVector128()).AsVector4(); 433public static int Count(Vector4 vector, float value) => Vector128.Count(vector.AsVector128(), value); 438public static int CountWhereAllBitsSet(Vector4 vector) => Vector128.CountWhereAllBitsSet(vector.AsVector128()); 440/// <summary>Creates a new <see cref="Vector4" /> object whose four elements have the same value.</summary> 442/// <returns>A new <see cref="Vector4" /> whose four elements have the same value.</returns> 444public static Vector4 Create(float value) => Vector128.Create(value).AsVector4(); 446/// <summary>Creates a new <see cref="Vector4" /> object from the specified <see cref="Vector2" /> object and a Z and a W component.</summary> 450/// <returns>A new <see cref="Vector4" /> from the specified <see cref="Vector2" /> object and a Z and a W component.</returns> 453public static Vector4 Create(Vector2 vector, float z, float w) 461/// <summary>Constructs a new <see cref="Vector4" /> object from the specified <see cref="Vector3" /> object and a W component.</summary> 464/// <returns>A new <see cref="Vector4" /> from the specified <see cref="Vector3" /> object and a W component.</returns> 467public static Vector4 Create(Vector3 vector, float w) 479/// <returns>A new <see cref="Vector4" /> whose elements have the specified values.</returns> 481public static Vector4 Create(float x, float y, float z, float w) => Vector128.Create(x, y, z, w).AsVector4(); 485/// <returns>A new <see cref="Vector4" /> whose elements have the specified values.</returns> 487public static Vector4 Create(ReadOnlySpan<float> values) => Vector128.Create(values).AsVector4(); 491/// <returns>A new <see cref="Vector4" /> with <see cref="X" /> initialized <paramref name="x" /> and the remaining elements initialized to zero.</returns> 493internal static Vector4 CreateScalar(float x) => Vector128.CreateScalar(x).AsVector4(); 497/// <returns>A new <see cref="Vector4" /> with <see cref="X" /> initialized <paramref name="x" /> and the remaining elements left uninitialized.</returns> 499internal static Vector4 CreateScalarUnsafe(float x) => Vector128.CreateScalarUnsafe(x).AsVector4(); 509/// The proposed Cross function for <see cref="Vector4"/> is nearly the same as that for 516public static Vector4 Cross(Vector4 vector1, Vector4 vector2) 544public static Vector4 DegreesToRadians(Vector4 degrees) => Vector128.DegreesToRadians(degrees.AsVector128()).AsVector4(); 551public static float Distance(Vector4 value1, Vector4 value2) => float.Sqrt(DistanceSquared(value1, value2)); 558public static float DistanceSquared(Vector4 value1, Vector4 value2) => (value1 - value2).LengthSquared(); 565public static Vector4 Divide(Vector4 left, Vector4 right) => left / right; 572public static Vector4 Divide(Vector4 left, float divisor) => left / divisor; 580public static float Dot(Vector4 vector1, Vector4 vector2) => Vector128.Dot(vector1.AsVector128(), vector2.AsVector128()); 584public static Vector4 Exp(Vector4 vector) => Vector128.Exp(vector.AsVector128()).AsVector4(); 589public static Vector4 Equals(Vector4 left, Vector4 right) => Vector128.Equals(left.AsVector128(), right.AsVector128()).AsVector4(); 594public static bool EqualsAll(Vector4 left, Vector4 right) => Vector128.EqualsAll(left.AsVector128(), right.AsVector128()); 599public static bool EqualsAny(Vector4 left, Vector4 right) => Vector128.EqualsAny(left.AsVector128(), right.AsVector128()); 604public static Vector4 FusedMultiplyAdd(Vector4 left, Vector4 right, Vector4 addend) => Vector128.FusedMultiplyAdd(left.AsVector128(), right.AsVector128(), addend.AsVector128()).AsVector4(); 609public static Vector4 GreaterThan(Vector4 left, Vector4 right) => Vector128.GreaterThan(left.AsVector128(), right.AsVector128()).AsVector4(); 614public static bool GreaterThanAll(Vector4 left, Vector4 right) => Vector128.GreaterThanAll(left.AsVector128(), right.AsVector128()); 619public static bool GreaterThanAny(Vector4 left, Vector4 right) => Vector128.GreaterThanAny(left.AsVector128(), right.AsVector128()); 624public static Vector4 GreaterThanOrEqual(Vector4 left, Vector4 right) => Vector128.GreaterThanOrEqual(left.AsVector128(), right.AsVector128()).AsVector4(); 629public static bool GreaterThanOrEqualAll(Vector4 left, Vector4 right) => Vector128.GreaterThanOrEqualAll(left.AsVector128(), right.AsVector128()); 634public static bool GreaterThanOrEqualAny(Vector4 left, Vector4 right) => Vector128.GreaterThanOrEqualAny(left.AsVector128(), right.AsVector128()); 639public static Vector4 Hypot(Vector4 x, Vector4 y) => Vector128.Hypot(x.AsVector128(), y.AsVector128()).AsVector4(); 644public static int IndexOf(Vector4 vector, float value) => Vector128.IndexOf(vector.AsVector128(), value); 649public static int IndexOfWhereAllBitsSet(Vector4 vector) => Vector128.IndexOfWhereAllBitsSet(vector.AsVector128()); 654public static Vector4 IsEvenInteger(Vector4 vector) => Vector128.IsEvenInteger(vector.AsVector128()).AsVector4(); 659public static Vector4 IsFinite(Vector4 vector) => Vector128.IsFinite(vector.AsVector128()).AsVector4(); 664public static Vector4 IsInfinity(Vector4 vector) => Vector128.IsInfinity(vector.AsVector128()).AsVector4(); 669public static Vector4 IsInteger(Vector4 vector) => Vector128.IsInteger(vector.AsVector128()).AsVector4(); 674public static Vector4 IsNaN(Vector4 vector) => Vector128.IsNaN(vector.AsVector128()).AsVector4(); 679public static Vector4 IsNegative(Vector4 vector) => Vector128.IsNegative(vector.AsVector128()).AsVector4(); 684public static Vector4 IsNegativeInfinity(Vector4 vector) => Vector128.IsNegativeInfinity(vector.AsVector128()).AsVector4(); 689public static Vector4 IsNormal(Vector4 vector) => Vector128.IsNormal(vector.AsVector128()).AsVector4(); 694public static Vector4 IsOddInteger(Vector4 vector) => Vector128.IsOddInteger(vector.AsVector128()).AsVector4(); 699public static Vector4 IsPositive(Vector4 vector) => Vector128.IsPositive(vector.AsVector128()).AsVector4(); 704public static Vector4 IsPositiveInfinity(Vector4 vector) => Vector128.IsPositiveInfinity(vector.AsVector128()).AsVector4(); 709public static Vector4 IsSubnormal(Vector4 vector) => Vector128.IsSubnormal(vector.AsVector128()).AsVector4(); 714public static Vector4 IsZero(Vector4 vector) => Vector128.IsZero(vector.AsVector128()).AsVector4(); 719public static int LastIndexOf(Vector4 vector, float value) => Vector128.LastIndexOf(vector.AsVector128(), value); 724public static int LastIndexOfWhereAllBitsSet(Vector4 vector) => Vector128.LastIndexOfWhereAllBitsSet(vector.AsVector128()); 726/// <inheritdoc cref="Lerp(Vector4, Vector4, Vector4)" /> 732public static Vector4 Lerp(Vector4 value1, Vector4 value2, float amount) => Lerp(value1, value2, Create(amount)); 737public static Vector4 Lerp(Vector4 value1, Vector4 value2, Vector4 amount) => Vector128.Lerp(value1.AsVector128(), value2.AsVector128(), amount.AsVector128()).AsVector4(); 742public static Vector4 LessThan(Vector4 left, Vector4 right) => Vector128.LessThan(left.AsVector128(), right.AsVector128()).AsVector4(); 747public static bool LessThanAll(Vector4 left, Vector4 right) => Vector128.LessThanAll(left.AsVector128(), right.AsVector128()); 752public static bool LessThanAny(Vector4 left, Vector4 right) => Vector128.LessThanAny(left.AsVector128(), right.AsVector128()); 757public static Vector4 LessThanOrEqual(Vector4 left, Vector4 right) => Vector128.LessThanOrEqual(left.AsVector128(), right.AsVector128()).AsVector4(); 762public static bool LessThanOrEqualAll(Vector4 left, Vector4 right) => Vector128.LessThanOrEqualAll(left.AsVector128(), right.AsVector128()); 767public static bool LessThanOrEqualAny(Vector4 left, Vector4 right) => Vector128.LessThanOrEqualAny(left.AsVector128(), right.AsVector128()); 773public static unsafe Vector4 Load(float* source) => Vector128.Load(source).AsVector4(); 779public static unsafe Vector4 LoadAligned(float* source) => Vector128.LoadAligned(source).AsVector4(); 785public static unsafe Vector4 LoadAlignedNonTemporal(float* source) => Vector128.LoadAlignedNonTemporal(source).AsVector4(); 790public static Vector4 LoadUnsafe(ref readonly float source) => Vector128.LoadUnsafe(in source).AsVector4(); 796public static Vector4 LoadUnsafe(ref readonly float source, nuint elementOffset) => Vector128.LoadUnsafe(in source, elementOffset).AsVector4(); 800public static Vector4 Log(Vector4 vector) => Vector128.Log(vector.AsVector128()).AsVector4(); 804public static Vector4 Log2(Vector4 vector) => Vector128.Log2(vector.AsVector128()).AsVector4(); 809public static Vector4 Max(Vector4 value1, Vector4 value2) => Vector128.Max(value1.AsVector128(), value2.AsVector128()).AsVector4(); 814public static Vector4 MaxMagnitude(Vector4 value1, Vector4 value2) => Vector128.MaxMagnitude(value1.AsVector128(), value2.AsVector128()).AsVector4(); 819public static Vector4 MaxMagnitudeNumber(Vector4 value1, Vector4 value2) => Vector128.MaxMagnitudeNumber(value1.AsVector128(), value2.AsVector128()).AsVector4(); 824public static Vector4 MaxNative(Vector4 value1, Vector4 value2) => Vector128.MaxNative(value1.AsVector128(), value2.AsVector128()).AsVector4(); 829public static Vector4 MaxNumber(Vector4 value1, Vector4 value2) => Vector128.MaxNumber(value1.AsVector128(), value2.AsVector128()).AsVector4(); 834public static Vector4 Min(Vector4 value1, Vector4 value2) => Vector128.Min(value1.AsVector128(), value2.AsVector128()).AsVector4(); 839public static Vector4 MinMagnitude(Vector4 value1, Vector4 value2) => Vector128.MinMagnitude(value1.AsVector128(), value2.AsVector128()).AsVector4(); 844public static Vector4 MinMagnitudeNumber(Vector4 value1, Vector4 value2) => Vector128.MinMagnitudeNumber(value1.AsVector128(), value2.AsVector128()).AsVector4(); 849public static Vector4 MinNative(Vector4 value1, Vector4 value2) => Vector128.MinNative(value1.AsVector128(), value2.AsVector128()).AsVector4(); 854public static Vector4 MinNumber(Vector4 value1, Vector4 value2) => Vector128.MinNumber(value1.AsVector128(), value2.AsVector128()).AsVector4(); 861public static Vector4 Multiply(Vector4 left, Vector4 right) => left * right; 868public static Vector4 Multiply(Vector4 left, float right) => left * right; 875public static Vector4 Multiply(float left, Vector4 right) => left * right; 880public static Vector4 MultiplyAddEstimate(Vector4 left, Vector4 right, Vector4 addend) => Vector128.MultiplyAddEstimate(left.AsVector128(), right.AsVector128(), addend.AsVector128()).AsVector4(); 886public static Vector4 Negate(Vector4 value) => -value; 891public static bool None(Vector4 vector, float value) => Vector128.None(vector.AsVector128(), value); 896public static bool NoneWhereAllBitsSet(Vector4 vector) => Vector128.NoneWhereAllBitsSet(vector.AsVector128()); 902public static Vector4 Normalize(Vector4 vector) => vector / vector.Length(); 906public static Vector4 OnesComplement(Vector4 value) => ~value; 911public static Vector4 RadiansToDegrees(Vector4 radians) => Vector128.RadiansToDegrees(radians.AsVector128()).AsVector4(); 915public static Vector4 Round(Vector4 vector) => Vector128.Round(vector.AsVector128()).AsVector4(); 919public static Vector4 Round(Vector4 vector, MidpointRounding mode) => Vector128.Round(vector.AsVector128(), mode).AsVector4(); 929public static Vector4 Shuffle(Vector4 vector, byte xIndex, byte yIndex, byte zIndex, byte wIndex) 936public static Vector4 Sin(Vector4 vector) => Vector128.Sin(vector.AsVector128()).AsVector4(); 940public static (Vector4 Sin, Vector4 Cos) SinCos(Vector4 vector) 951public static Vector4 SquareRoot(Vector4 value) => Vector128.Sqrt(value.AsVector128()).AsVector4(); 958public static Vector4 Subtract(Vector4 left, Vector4 right) => left - right; 963public static float Sum(Vector4 value) => Vector128.Sum(value.AsVector128()); 969public static Vector4 Transform(Vector2 position, Matrix4x4 matrix) => Transform(position, in matrix.AsImpl()); 972internal static Vector4 Transform(Vector2 position, in Matrix4x4.Impl matrix) 977Vector4 result = matrix.X * position.X; 987public static Vector4 Transform(Vector2 value, Quaternion rotation) => Transform(Create(value, 0.0f, 1.0f), rotation); 993public static Vector4 Transform(Vector3 position, Matrix4x4 matrix) => Transform(position, in matrix.AsImpl()); 996internal static Vector4 Transform(Vector3 position, in Matrix4x4.Impl matrix) 1001Vector4 result = matrix.X * position.X; 1012public static Vector4 Transform(Vector3 value, Quaternion rotation) => Transform(Create(value, 1.0f), rotation); 1018public static Vector4 Transform(Vector4 vector, Matrix4x4 matrix) => Transform(vector, in matrix.AsImpl()); 1021internal static Vector4 Transform(Vector4 vector, in Matrix4x4.Impl matrix) 1026Vector4 result = matrix.X * vector.X; 1038public static Vector4 Transform(Vector4 value, Quaternion rotation) 1050public static Vector4 Truncate(Vector4 vector) => Vector128.Truncate(vector.AsVector128()).AsVector4(); 1054public static Vector4 Xor(Vector4 left, Vector4 right) => left ^ right; 1091public readonly bool Equals(Vector4 other) => this.AsVector128().Equals(other.AsVector128()); 1096/// <remarks>The current instance and <paramref name="obj" /> are equal if <paramref name="obj" /> is a <see cref="Vector4" /> object and their corresponding elements are equal.</remarks> 1097public override readonly bool Equals([NotNullWhen(true)] object? obj) => (obj is Vector4 other) && Equals(other);
src\libraries\System.Private.CoreLib\src\System\Numerics\Vector4.Extensions.cs (20)
12/// <summary>Reinterprets a <see cref="Vector4" /> as a new <see cref="Plane" />.</summary> 15public static Plane AsPlane(this Vector4 value) 20return Unsafe.BitCast<Vector4, Plane>(value); 24/// <summary>Reinterprets a <see cref="Vector4" /> as a new <see cref="Quaternion" />.</summary> 27public static Quaternion AsQuaternion(this Vector4 value) 32return Unsafe.BitCast<Vector4, Quaternion>(value); 36/// <summary>Reinterprets a <see cref="Vector4" /> as a new <see cref="Vector2" />.</summary> 39public static Vector2 AsVector2(this Vector4 value) => value.AsVector128().AsVector2(); 41/// <summary>Reinterprets a <see cref="Vector4" /> as a new <see cref="Vector3" />.</summary> 44public static Vector3 AsVector3(this Vector4 value) => value.AsVector128().AsVector3(); 49public static uint ExtractMostSignificantBits(this Vector4 vector) => vector.AsVector128().ExtractMostSignificantBits(); 53public static float GetElement(this Vector4 vector, int index) => vector.AsVector128().GetElement(index); 59public static void Store(this Vector4 source, float* destination) => source.AsVector128().Store(destination); 67public static void StoreAligned(this Vector4 source, float* destination) => source.AsVector128().StoreAligned(destination); 75public static void StoreAlignedNonTemporal(this Vector4 source, float* destination) => source.AsVector128().StoreAlignedNonTemporal(destination); 81public static void StoreUnsafe(this Vector4 source, ref float destination) => source.AsVector128().StoreUnsafe(ref destination); 89public static void StoreUnsafe(this Vector4 source, ref float destination, nuint elementOffset) => source.AsVector128().StoreUnsafe(ref destination, elementOffset); 93public static float ToScalar(this Vector4 vector) => vector.AsVector128().ToScalar(); 97public static Vector4 WithElement(this Vector4 vector, int index, float value) => vector.AsVector128().WithElement(index, value).AsVector4();
src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\Vector128.Numerics.cs (56)
12/// <inheritdoc cref="Vector4.All(Vector4, float)" /> 17/// <inheritdoc cref="Vector4.All(Vector4, float)" /> 22/// <inheritdoc cref="Vector4.AllWhereAllBitsSet(Vector4)" /> 27/// <inheritdoc cref="Vector4.AllWhereAllBitsSet(Vector4)" /> 32/// <inheritdoc cref="Vector4.Any(Vector4, float)" /> 37/// <inheritdoc cref="Vector4.Any(Vector4, float)" /> 42/// <inheritdoc cref="Vector4.AnyWhereAllBitsSet(Vector4)" /> 47/// <inheritdoc cref="Vector4.AnyWhereAllBitsSet(Vector4)" /> 108public static Vector128<float> AsVector128(this Vector2 value) => Vector4.Create(value, 0, 0).AsVector128(); 114public static Vector128<float> AsVector128(this Vector3 value) => Vector4.Create(value, 0).AsVector128(); 120public static Vector128<float> AsVector128(this Vector4 value) 125return Unsafe.BitCast<Vector4, Vector128<float>>(value); 195/// <summary>Reinterprets a <see langword="Vector128&lt;Single&gt;" /> as a new <see cref="Vector4" />.</summary> 197/// <returns><paramref name="value" /> reinterpreted as a new <see cref="Vector4" />.</returns> 199public static Vector4 AsVector4(this Vector128<float> value) 204return Unsafe.BitCast<Vector128<float>, Vector4>(value); 225/// <inheritdoc cref="Vector4.Count(Vector4, float)" /> 230/// <inheritdoc cref="Vector4.Count(Vector4, float)" /> 235/// <inheritdoc cref="Vector4.CountWhereAllBitsSet(Vector4)" /> 240/// <inheritdoc cref="Vector4.CountWhereAllBitsSet(Vector4)" /> 245/// <inheritdoc cref="Vector4.IndexOf(Vector4, float)" /> 254/// <inheritdoc cref="Vector4.IndexOf(Vector4, float)" /> 263/// <inheritdoc cref="Vector4.IndexOfWhereAllBitsSet(Vector4)" /> 272/// <inheritdoc cref="Vector4.IndexOfWhereAllBitsSet(Vector4)" /> 281/// <inheritdoc cref="Vector4.LastIndexOf(Vector4, float)" /> 286/// <inheritdoc cref="Vector4.LastIndexOf(Vector4, float)" /> 291/// <inheritdoc cref="Vector4.LastIndexOfWhereAllBitsSet(Vector4)" /> 296/// <inheritdoc cref="Vector4.LastIndexOfWhereAllBitsSet(Vector4)" /> 301/// <inheritdoc cref="Vector4.None(Vector4, float)" /> 306/// <inheritdoc cref="Vector4.None(Vector4, float)" /> 311/// <inheritdoc cref="Vector4.NoneWhereAllBitsSet(Vector4)" /> 316/// <inheritdoc cref="Vector4.NoneWhereAllBitsSet(Vector4)" />