2 instantiations of Vector4
Microsoft.Gen.Logging.Generated.Tests (1)
LogPropertiesTests.cs (1)
108
P18 = new
Vector4
(1, 2, 3, 4),
System.Drawing.Primitives (1)
System\Drawing\RectangleF.cs (1)
66
public 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)
35
public
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
"/>.
55
public RectangleF(
Vector4
vector)
64
/// Creates a new <see cref="System.Numerics.
Vector4
"/> from this <see cref="System.Drawing.RectangleF"/>.
66
public
Vector4
ToVector4() => new Vector4(x, y, width, height);
69
/// Converts the specified <see cref="System.Drawing.RectangleF"/> to a <see cref="System.Numerics.
Vector4
"/>.
71
public static explicit operator
Vector4
(RectangleF rectangle) => rectangle.ToVector4();
76
public 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)
42
public
Vector4
X;
43
public
Vector4
Y;
44
public
Vector4
Z;
45
public
Vector4
W;
53
X =
Vector4
.Create(m11, m12, m13, m14);
54
Y =
Vector4
.Create(m21, m22, m23, m24);
55
Z =
Vector4
.Create(m31, m32, m33, m34);
56
W =
Vector4
.Create(m41, m42, m43, m44);
62
X =
Vector4
.Create(value.X, 0, 0);
63
Y =
Vector4
.Create(value.Y, 0, 0);
64
Z =
Vector4
.UnitZ;
65
W =
Vector4
.Create(value.Z, 0, 1);
75
result.X =
Vector4
.UnitX;
76
result.Y =
Vector4
.UnitY;
77
result.Z =
Vector4
.UnitZ;
78
result.W =
Vector4
.UnitW;
112
return (X ==
Vector4
.UnitX)
113
&& (Y ==
Vector4
.UnitY)
114
&& (Z ==
Vector4
.UnitZ)
115
&& (W ==
Vector4
.UnitW);
127
W =
Vector4
.Create(value, W.W);
167
result.X =
Vector4
.Transform(left.X, in right);
168
result.Y =
Vector4
.Transform(left.Y, in right);
169
result.Z =
Vector4
.Transform(left.Z, in right);
170
result.W =
Vector4
.Transform(left.W, in right);
240
result.W =
Vector4
.Create(objectPosition, 1);
271
result.W =
Vector4
.Create(objectPosition, 1);
332
result.W =
Vector4
.Create(objectPosition, 1);
392
result.W =
Vector4
.Create(objectPosition, 1);
420
result.X =
Vector4
.Create(
426
result.Y =
Vector4
.Create(
432
result.Z =
Vector4
.Create(
438
result.W =
Vector4
.UnitW;
472
result.X =
Vector4
.Create(axisX, Vector3.Dot(axisX, negativeCameraPosition));
473
result.Y =
Vector4
.Create(axisY, Vector3.Dot(axisY, negativeCameraPosition));
474
result.Z =
Vector4
.Create(axisZ, Vector3.Dot(axisZ, negativeCameraPosition));
475
result.W =
Vector4
.UnitW;
490
result.X =
Vector4
.Create(2.0f / width, 0, 0, 0);
491
result.Y =
Vector4
.Create(0, 2.0f / height, 0, 0);
492
result.Z =
Vector4
.Create(0, 0, range, 0);
493
result.W =
Vector4
.Create(0, 0, range * zNearPlane, 1);
508
result.X =
Vector4
.Create(2.0f / width, 0, 0, 0);
509
result.Y =
Vector4
.Create(0, 2.0f / height, 0, 0);
510
result.Z =
Vector4
.Create(0, 0, range, 0);
511
result.W =
Vector4
.Create(0, 0, -range * zNearPlane, 1);
528
result.X =
Vector4
.Create(reciprocalWidth + reciprocalWidth, 0, 0, 0);
529
result.Y =
Vector4
.Create(0, reciprocalHeight + reciprocalHeight, 0, 0);
530
result.Z =
Vector4
.Create(0, 0, range, 0);
531
result.W =
Vector4
.Create(
553
result.X =
Vector4
.Create(reciprocalWidth + reciprocalWidth, 0, 0, 0);
554
result.Y =
Vector4
.Create(0, reciprocalHeight + reciprocalHeight, 0, 0);
555
result.Z =
Vector4
.Create(0, 0, range, 0);
556
result.W =
Vector4
.Create(
581
result.X =
Vector4
.Create(dblNearPlaneDistance / width, 0, 0, 0);
582
result.Y =
Vector4
.Create(0, dblNearPlaneDistance / height, 0, 0);
583
result.Z =
Vector4
.Create(0, 0, range, -1.0f);
584
result.W =
Vector4
.Create(0, 0, range * nearPlaneDistance, 0);
604
result.X =
Vector4
.Create(dblNearPlaneDistance / width, 0, 0, 0);
605
result.Y =
Vector4
.Create(0, dblNearPlaneDistance / height, 0, 0);
606
result.Z =
Vector4
.Create(0, 0, range, 1.0f);
607
result.W =
Vector4
.Create(0, 0, -range * nearPlaneDistance, 0);
631
result.X =
Vector4
.Create(width, 0, 0, 0);
632
result.Y =
Vector4
.Create(0, height, 0, 0);
633
result.Z =
Vector4
.Create(0, 0, range, -1.0f);
634
result.W =
Vector4
.Create(0, 0, range * nearPlaneDistance, 0);
658
result.X =
Vector4
.Create(width, 0, 0, 0);
659
result.Y =
Vector4
.Create(0, height, 0, 0);
660
result.Z =
Vector4
.Create(0, 0, range, 1.0f);
661
result.W =
Vector4
.Create(0, 0, -range * nearPlaneDistance, 0);
683
result.X =
Vector4
.Create(dblNearPlaneDistance * reciprocalWidth, 0, 0, 0);
684
result.Y =
Vector4
.Create(0, dblNearPlaneDistance * reciprocalHeight, 0, 0);
685
result.Z =
Vector4
.Create(
691
result.W =
Vector4
.Create(0, 0, range * nearPlaneDistance, 0);
713
result.X =
Vector4
.Create(dblNearPlaneDistance * reciprocalWidth, 0, 0, 0);
714
result.Y =
Vector4
.Create(0, dblNearPlaneDistance * reciprocalHeight, 0, 0);
715
result.Z =
Vector4
.Create(
721
result.W =
Vector4
.Create(0, 0, -range * nearPlaneDistance, 0);
732
Vector4
p = Plane.Normalize(value).AsVector4();
733
Vector4
s = p *
Vector4
.Create(-2.0f, -2.0f, -2.0f, 0.0f);
737
result.X =
Vector4
.MultiplyAddEstimate(
Vector4
.Create(p.X), s,
Vector4
.UnitX);
738
result.Y =
Vector4
.MultiplyAddEstimate(
Vector4
.Create(p.Y), s,
Vector4
.UnitY);
739
result.Z =
Vector4
.MultiplyAddEstimate(
Vector4
.Create(p.Z), s,
Vector4
.UnitZ);
740
result.W =
Vector4
.MultiplyAddEstimate(
Vector4
.Create(p.W), s,
Vector4
.UnitW);
757
result.X =
Vector4
.UnitX;
758
result.Y =
Vector4
.Create(0, c, s, 0);
759
result.Z =
Vector4
.Create(0, -s, c, 0);
760
result.W =
Vector4
.UnitW;
780
result.X =
Vector4
.UnitX;
781
result.Y =
Vector4
.Create(0, c, s, 0);
782
result.Z =
Vector4
.Create(0, -s, c, 0);
783
result.W =
Vector4
.Create(0, y, z, 1);
800
result.X =
Vector4
.Create(c, 0, -s, 0);
801
result.Y =
Vector4
.UnitY;
802
result.Z =
Vector4
.Create(s, 0, c, 0);
803
result.W =
Vector4
.UnitW;
823
result.X =
Vector4
.Create(c, 0, -s, 0);
824
result.Y =
Vector4
.UnitY;
825
result.Z =
Vector4
.Create(s, 0, c, 0);
826
result.W =
Vector4
.Create(x, 0, z, 1);
843
result.X =
Vector4
.Create( c, s, 0, 0);
844
result.Y =
Vector4
.Create(-s, c, 0, 0);
845
result.Z =
Vector4
.UnitZ;
846
result.W =
Vector4
.UnitW;
866
result.X =
Vector4
.Create( c, s, 0, 0);
867
result.Y =
Vector4
.Create(-s, c, 0, 0);
868
result.Z =
Vector4
.UnitZ;
869
result.W =
Vector4
.Create(x, y, 0, 1);
879
result.X =
Vector4
.Create(scaleX, 0, 0, 0);
880
result.Y =
Vector4
.Create(0, scaleY, 0, 0);
881
result.Z =
Vector4
.Create(0, 0, scaleZ, 0);
882
result.W =
Vector4
.UnitW;
892
result.X =
Vector4
.Create(scaleX, 0, 0, 0);
893
result.Y =
Vector4
.Create(0, scaleY, 0, 0);
894
result.Z =
Vector4
.Create(0, 0, scaleZ, 0);
895
result.W =
Vector4
.Create(centerPoint * (Vector3.One - Vector3.Create(scaleX, scaleY, scaleZ)), 1);
905
result.X =
Vector4
.Create(scales.X, 0, 0, 0);
906
result.Y =
Vector4
.Create(0, scales.Y, 0, 0);
907
result.Z =
Vector4
.Create(0, 0, scales.Z, 0);
908
result.W =
Vector4
.UnitW;
918
result.X =
Vector4
.Create(scales.X, 0, 0, 0);
919
result.Y =
Vector4
.Create(0, scales.Y, 0, 0);
920
result.Z =
Vector4
.Create(0, 0, scales.Z, 0);
921
result.W =
Vector4
.Create(centerPoint * (Vector3.One - scales), 1);
931
result.X =
Vector4
.Create(scale, 0, 0, 0);
932
result.Y =
Vector4
.Create(0, scale, 0, 0);
933
result.Z =
Vector4
.Create(0, 0, scale, 0);
934
result.W =
Vector4
.UnitW;
944
result.X =
Vector4
.Create(scale, 0, 0, 0);
945
result.Y =
Vector4
.Create(0, scale, 0, 0);
946
result.Z =
Vector4
.Create(0, 0, scale, 0);
947
result.W =
Vector4
.Create(centerPoint * (Vector3.One - Vector3.Create(scale)), 1);
955
Vector4
p = Plane.Normalize(plane).AsVector4();
956
Vector4
l = lightDirection.AsVector4();
957
float dot =
Vector4
.Dot(p, l);
963
result.X =
Vector4
.MultiplyAddEstimate(l,
Vector4
.Create(p.X),
Vector4
.Create(dot, 0, 0, 0));
964
result.Y =
Vector4
.MultiplyAddEstimate(l,
Vector4
.Create(p.Y),
Vector4
.Create(0, dot, 0, 0));
965
result.Z =
Vector4
.MultiplyAddEstimate(l,
Vector4
.Create(p.Z),
Vector4
.Create(0, 0, dot, 0));
966
result.W =
Vector4
.MultiplyAddEstimate(l,
Vector4
.Create(p.W),
Vector4
.Create(0, 0, 0, dot));
976
result.X =
Vector4
.UnitX;
977
result.Y =
Vector4
.UnitY;
978
result.Z =
Vector4
.UnitZ;
979
result.W =
Vector4
.Create(position, 1);
989
result.X =
Vector4
.UnitX;
990
result.Y =
Vector4
.UnitY;
991
result.Z =
Vector4
.UnitZ;
992
result.W =
Vector4
.Create(positionX, positionY, positionZ, 1);
1004
result.W =
Vector4
.Create(width, height, 0f, 0f);
1005
result.W *=
Vector4
.Create(0.5f, 0.5f, 0f, 0f);
1007
result.X =
Vector4
.Create(result.W.X, 0f, 0f, 0f);
1008
result.Y =
Vector4
.Create(0f, -result.W.Y, 0f, 0f);
1009
result.Z =
Vector4
.Create(0f, 0f, minDepth - maxDepth, 0f);
1010
result.W +=
Vector4
.Create(x, y, minDepth, 1f);
1021
result.W =
Vector4
.Create(width, height, 0f, 0f);
1022
result.W *=
Vector4
.Create(0.5f, 0.5f, 0f, 0f);
1024
result.X =
Vector4
.Create(result.W.X, 0f, 0f, 0f);
1025
result.Y =
Vector4
.Create(0f, -result.W.Y, 0f, 0f);
1026
result.Z =
Vector4
.Create(0f, 0f, maxDepth - minDepth, 0f);
1027
result.W +=
Vector4
.Create(x, y, minDepth, 1f);
1044
result.W =
Vector4
.Create(position, 1);
1384
float det =
Vector4
.Dot(C0.AsVector4(), row1.AsVector4());
1389
Vector4
vNaN =
Vector4
.Create(float.NaN);
1527
Vector4
vNaN =
Vector4
.Create(float.NaN);
1582
result.X =
Vector4
.Lerp(left.X, right.X, amount);
1583
result.Y =
Vector4
.Lerp(left.Y, right.Y, amount);
1584
result.Z =
Vector4
.Lerp(left.Z, right.Z, amount);
1585
result.W =
Vector4
.Lerp(left.W, right.W, amount);
1624
result.X =
Vector4
.Create(
1630
result.Y =
Vector4
.Create(
1636
result.Z =
Vector4
.Create(
1642
result.W =
Vector4
.Create(
1696
result.X =
Vector4
.Create(matrix.X.X, matrix.Y.X, matrix.Z.X, matrix.W.X);
1697
result.Y =
Vector4
.Create(matrix.X.Y, matrix.Y.Y, matrix.Z.Y, matrix.W.Y);
1698
result.Z =
Vector4
.Create(matrix.X.Z, matrix.Y.Z, matrix.Z.Z, matrix.W.Z);
1699
result.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>
46
public Plane(
Vector4
value)
65
internal static Plane Create(Vector3 normal, float d) =>
Vector4
.Create(normal, d).AsPlane();
92
public static float Dot(Plane plane,
Vector4
value) => Vector128.Dot(plane.AsVector128(), value.AsVector128());
103
return Dot(plane,
Vector4
.Create(value, 1.0f));
143
return
Vector4
.Transform(plane.AsVector4(), Matrix4x4.Impl.Transpose(inverseMatrix)).AsPlane();
152
public 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>
14
public static
Vector4
AsVector4(this Plane value)
19
return Unsafe.BitCast<Plane,
Vector4
>(value);
src\libraries\System.Private.CoreLib\src\System\Numerics\Quaternion.cs (3)
208
internal static Quaternion Create(Vector3 vectorPart, float scalarPart) =>
Vector4
.Create(vectorPart, scalarPart).AsQuaternion();
222
return (
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>
14
public static
Vector4
AsVector4(this Quaternion value)
19
return 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
)" />
720
public static Vector2 Log(Vector2 vector) => Vector128.Log(
Vector4
.Create(vector, 1.0f, 1.0f).AsVector128()).AsVector2();
722
/// <inheritdoc cref="
Vector4
.Log(
Vector4
)" />
724
public 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
)" />
919
public static Vector2 Transform(Vector2 position, Matrix4x4 matrix) =>
Vector4
.Transform(position, in matrix.AsImpl()).AsVector128().AsVector2();
926
public static Vector2 Transform(Vector2 value, Quaternion rotation) =>
Vector4
.Transform(value, rotation).AsVector2();
951
Vector4
result = matrix.X * normal.X;
952
result =
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>
15
public 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>
20
public 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
)" />
753
public static Vector3 Log(Vector3 vector) => Vector128.Log(
Vector4
.Create(vector, 1.0f).AsVector128()).AsVector3();
755
/// <inheritdoc cref="
Vector4
.Log(
Vector4
)" />
757
public 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
)" />
939
public static Vector3 Transform(Vector3 position, Matrix4x4 matrix) =>
Vector4
.Transform(position, in matrix.AsImpl()).AsVector128().AsVector3();
946
public static Vector3 Transform(Vector3 value, Quaternion rotation) =>
Vector4
.Transform(value, rotation).AsVector3();
958
Vector4
result = matrix.X * normal.X;
960
result =
Vector4
.MultiplyAddEstimate(matrix.Y,
Vector4
.Create(normal.Y), result);
961
result =
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>
15
public 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>
20
public 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)
17
public 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>
99
public static
Vector4
AllBitsSet
107
public static
Vector4
E
115
public static
Vector4
Epsilon
123
public static
Vector4
NaN
131
public static
Vector4
NegativeInfinity
139
public static
Vector4
NegativeZero
147
public static
Vector4
One
155
public static
Vector4
Pi
163
public static
Vector4
PositiveInfinity
171
public static
Vector4
Tau
179
public static
Vector4
UnitX
187
public static
Vector4
UnitY
195
public static
Vector4
UnitZ
203
public static
Vector4
UnitW
211
public static
Vector4
Zero
237
/// <remarks>The <see cref="op_Addition" /> method defines the addition operation for <see cref="
Vector4
" /> objects.</remarks>
240
public 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>
249
public 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>
258
public 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>
267
public static bool operator ==(
Vector4
left,
Vector4
right) => left.AsVector128() == right.AsVector128();
274
public 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>
283
public 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>
292
public 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>
300
public 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>
309
public 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>
317
public static
Vector4
operator -(
Vector4
value) => (-value.AsVector128()).AsVector4();
322
public static
Vector4
operator &(
Vector4
left,
Vector4
right) => (left.AsVector128() & right.AsVector128()).AsVector4();
327
public static
Vector4
operator |(
Vector4
left,
Vector4
right) => (left.AsVector128() | right.AsVector128()).AsVector4();
332
public static
Vector4
operator ^(
Vector4
left,
Vector4
right) => (left.AsVector128() ^ right.AsVector128()).AsVector4();
337
public static
Vector4
operator <<(
Vector4
value, int shiftAmount) => (value.AsVector128() << shiftAmount).AsVector4();
342
public static
Vector4
operator ~(
Vector4
value) => (~value.AsVector128()).AsVector4();
347
public static
Vector4
operator >>(
Vector4
value, int shiftAmount) => (value.AsVector128() >> shiftAmount).AsVector4();
352
public static
Vector4
operator +(
Vector4
value) => value;
357
public static
Vector4
operator >>>(
Vector4
value, int shiftAmount) => (value.AsVector128() >>> shiftAmount).AsVector4();
364
public static
Vector4
Abs(
Vector4
value) => Vector128.Abs(value.AsVector128()).AsVector4();
371
public static
Vector4
Add(
Vector4
left,
Vector4
right) => left + right;
376
public static bool All(
Vector4
vector, float value) => Vector128.All(vector.AsVector128(), value);
381
public static bool AllWhereAllBitsSet(
Vector4
vector) => Vector128.AllWhereAllBitsSet(vector.AsVector128());
386
public static
Vector4
AndNot(
Vector4
left,
Vector4
right) => Vector128.AndNot(left.AsVector128(), right.AsVector128()).AsVector4();
391
public static bool Any(
Vector4
vector, float value) => Vector128.Any(vector.AsVector128(), value);
396
public static bool AnyWhereAllBitsSet(
Vector4
vector) => Vector128.AnyWhereAllBitsSet(vector.AsVector128());
400
public static
Vector4
BitwiseAnd(
Vector4
left,
Vector4
right) => left & right;
404
public static
Vector4
BitwiseOr(
Vector4
left,
Vector4
right) => left | right;
409
public static
Vector4
Clamp(
Vector4
value1,
Vector4
min,
Vector4
max) => Vector128.Clamp(value1.AsVector128(), min.AsVector128(), max.AsVector128()).AsVector4();
414
public static
Vector4
ClampNative(
Vector4
value1,
Vector4
min,
Vector4
max) => Vector128.ClampNative(value1.AsVector128(), min.AsVector128(), max.AsVector128()).AsVector4();
419
public static
Vector4
ConditionalSelect(
Vector4
condition,
Vector4
left,
Vector4
right) => Vector128.ConditionalSelect(condition.AsVector128(), left.AsVector128(), right.AsVector128()).AsVector4();
424
public static
Vector4
CopySign(
Vector4
value,
Vector4
sign) => Vector128.CopySign(value.AsVector128(), sign.AsVector128()).AsVector4();
428
public static
Vector4
Cos(
Vector4
vector) => Vector128.Cos(vector.AsVector128()).AsVector4();
433
public static int Count(
Vector4
vector, float value) => Vector128.Count(vector.AsVector128(), value);
438
public 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>
444
public 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>
453
public 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>
467
public static
Vector4
Create(Vector3 vector, float w)
479
/// <returns>A new <see cref="
Vector4
" /> whose elements have the specified values.</returns>
481
public 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>
487
public 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>
493
internal 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>
499
internal 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
516
public static
Vector4
Cross(
Vector4
vector1,
Vector4
vector2)
544
public static
Vector4
DegreesToRadians(
Vector4
degrees) => Vector128.DegreesToRadians(degrees.AsVector128()).AsVector4();
551
public static float Distance(
Vector4
value1,
Vector4
value2) => float.Sqrt(DistanceSquared(value1, value2));
558
public static float DistanceSquared(
Vector4
value1,
Vector4
value2) => (value1 - value2).LengthSquared();
565
public static
Vector4
Divide(
Vector4
left,
Vector4
right) => left / right;
572
public static
Vector4
Divide(
Vector4
left, float divisor) => left / divisor;
580
public static float Dot(
Vector4
vector1,
Vector4
vector2) => Vector128.Dot(vector1.AsVector128(), vector2.AsVector128());
584
public static
Vector4
Exp(
Vector4
vector) => Vector128.Exp(vector.AsVector128()).AsVector4();
589
public static
Vector4
Equals(
Vector4
left,
Vector4
right) => Vector128.Equals(left.AsVector128(), right.AsVector128()).AsVector4();
594
public static bool EqualsAll(
Vector4
left,
Vector4
right) => Vector128.EqualsAll(left.AsVector128(), right.AsVector128());
599
public static bool EqualsAny(
Vector4
left,
Vector4
right) => Vector128.EqualsAny(left.AsVector128(), right.AsVector128());
604
public static
Vector4
FusedMultiplyAdd(
Vector4
left,
Vector4
right,
Vector4
addend) => Vector128.FusedMultiplyAdd(left.AsVector128(), right.AsVector128(), addend.AsVector128()).AsVector4();
609
public static
Vector4
GreaterThan(
Vector4
left,
Vector4
right) => Vector128.GreaterThan(left.AsVector128(), right.AsVector128()).AsVector4();
614
public static bool GreaterThanAll(
Vector4
left,
Vector4
right) => Vector128.GreaterThanAll(left.AsVector128(), right.AsVector128());
619
public static bool GreaterThanAny(
Vector4
left,
Vector4
right) => Vector128.GreaterThanAny(left.AsVector128(), right.AsVector128());
624
public static
Vector4
GreaterThanOrEqual(
Vector4
left,
Vector4
right) => Vector128.GreaterThanOrEqual(left.AsVector128(), right.AsVector128()).AsVector4();
629
public static bool GreaterThanOrEqualAll(
Vector4
left,
Vector4
right) => Vector128.GreaterThanOrEqualAll(left.AsVector128(), right.AsVector128());
634
public static bool GreaterThanOrEqualAny(
Vector4
left,
Vector4
right) => Vector128.GreaterThanOrEqualAny(left.AsVector128(), right.AsVector128());
639
public static
Vector4
Hypot(
Vector4
x,
Vector4
y) => Vector128.Hypot(x.AsVector128(), y.AsVector128()).AsVector4();
644
public static int IndexOf(
Vector4
vector, float value) => Vector128.IndexOf(vector.AsVector128(), value);
649
public static int IndexOfWhereAllBitsSet(
Vector4
vector) => Vector128.IndexOfWhereAllBitsSet(vector.AsVector128());
654
public static
Vector4
IsEvenInteger(
Vector4
vector) => Vector128.IsEvenInteger(vector.AsVector128()).AsVector4();
659
public static
Vector4
IsFinite(
Vector4
vector) => Vector128.IsFinite(vector.AsVector128()).AsVector4();
664
public static
Vector4
IsInfinity(
Vector4
vector) => Vector128.IsInfinity(vector.AsVector128()).AsVector4();
669
public static
Vector4
IsInteger(
Vector4
vector) => Vector128.IsInteger(vector.AsVector128()).AsVector4();
674
public static
Vector4
IsNaN(
Vector4
vector) => Vector128.IsNaN(vector.AsVector128()).AsVector4();
679
public static
Vector4
IsNegative(
Vector4
vector) => Vector128.IsNegative(vector.AsVector128()).AsVector4();
684
public static
Vector4
IsNegativeInfinity(
Vector4
vector) => Vector128.IsNegativeInfinity(vector.AsVector128()).AsVector4();
689
public static
Vector4
IsNormal(
Vector4
vector) => Vector128.IsNormal(vector.AsVector128()).AsVector4();
694
public static
Vector4
IsOddInteger(
Vector4
vector) => Vector128.IsOddInteger(vector.AsVector128()).AsVector4();
699
public static
Vector4
IsPositive(
Vector4
vector) => Vector128.IsPositive(vector.AsVector128()).AsVector4();
704
public static
Vector4
IsPositiveInfinity(
Vector4
vector) => Vector128.IsPositiveInfinity(vector.AsVector128()).AsVector4();
709
public static
Vector4
IsSubnormal(
Vector4
vector) => Vector128.IsSubnormal(vector.AsVector128()).AsVector4();
714
public static
Vector4
IsZero(
Vector4
vector) => Vector128.IsZero(vector.AsVector128()).AsVector4();
719
public static int LastIndexOf(
Vector4
vector, float value) => Vector128.LastIndexOf(vector.AsVector128(), value);
724
public static int LastIndexOfWhereAllBitsSet(
Vector4
vector) => Vector128.LastIndexOfWhereAllBitsSet(vector.AsVector128());
726
/// <inheritdoc cref="Lerp(
Vector4
,
Vector4
,
Vector4
)" />
732
public static
Vector4
Lerp(
Vector4
value1,
Vector4
value2, float amount) => Lerp(value1, value2, Create(amount));
737
public static
Vector4
Lerp(
Vector4
value1,
Vector4
value2,
Vector4
amount) => Vector128.Lerp(value1.AsVector128(), value2.AsVector128(), amount.AsVector128()).AsVector4();
742
public static
Vector4
LessThan(
Vector4
left,
Vector4
right) => Vector128.LessThan(left.AsVector128(), right.AsVector128()).AsVector4();
747
public static bool LessThanAll(
Vector4
left,
Vector4
right) => Vector128.LessThanAll(left.AsVector128(), right.AsVector128());
752
public static bool LessThanAny(
Vector4
left,
Vector4
right) => Vector128.LessThanAny(left.AsVector128(), right.AsVector128());
757
public static
Vector4
LessThanOrEqual(
Vector4
left,
Vector4
right) => Vector128.LessThanOrEqual(left.AsVector128(), right.AsVector128()).AsVector4();
762
public static bool LessThanOrEqualAll(
Vector4
left,
Vector4
right) => Vector128.LessThanOrEqualAll(left.AsVector128(), right.AsVector128());
767
public static bool LessThanOrEqualAny(
Vector4
left,
Vector4
right) => Vector128.LessThanOrEqualAny(left.AsVector128(), right.AsVector128());
773
public static unsafe
Vector4
Load(float* source) => Vector128.Load(source).AsVector4();
779
public static unsafe
Vector4
LoadAligned(float* source) => Vector128.LoadAligned(source).AsVector4();
785
public static unsafe
Vector4
LoadAlignedNonTemporal(float* source) => Vector128.LoadAlignedNonTemporal(source).AsVector4();
790
public static
Vector4
LoadUnsafe(ref readonly float source) => Vector128.LoadUnsafe(in source).AsVector4();
796
public static
Vector4
LoadUnsafe(ref readonly float source, nuint elementOffset) => Vector128.LoadUnsafe(in source, elementOffset).AsVector4();
800
public static
Vector4
Log(
Vector4
vector) => Vector128.Log(vector.AsVector128()).AsVector4();
804
public static
Vector4
Log2(
Vector4
vector) => Vector128.Log2(vector.AsVector128()).AsVector4();
809
public static
Vector4
Max(
Vector4
value1,
Vector4
value2) => Vector128.Max(value1.AsVector128(), value2.AsVector128()).AsVector4();
814
public static
Vector4
MaxMagnitude(
Vector4
value1,
Vector4
value2) => Vector128.MaxMagnitude(value1.AsVector128(), value2.AsVector128()).AsVector4();
819
public static
Vector4
MaxMagnitudeNumber(
Vector4
value1,
Vector4
value2) => Vector128.MaxMagnitudeNumber(value1.AsVector128(), value2.AsVector128()).AsVector4();
824
public static
Vector4
MaxNative(
Vector4
value1,
Vector4
value2) => Vector128.MaxNative(value1.AsVector128(), value2.AsVector128()).AsVector4();
829
public static
Vector4
MaxNumber(
Vector4
value1,
Vector4
value2) => Vector128.MaxNumber(value1.AsVector128(), value2.AsVector128()).AsVector4();
834
public static
Vector4
Min(
Vector4
value1,
Vector4
value2) => Vector128.Min(value1.AsVector128(), value2.AsVector128()).AsVector4();
839
public static
Vector4
MinMagnitude(
Vector4
value1,
Vector4
value2) => Vector128.MinMagnitude(value1.AsVector128(), value2.AsVector128()).AsVector4();
844
public static
Vector4
MinMagnitudeNumber(
Vector4
value1,
Vector4
value2) => Vector128.MinMagnitudeNumber(value1.AsVector128(), value2.AsVector128()).AsVector4();
849
public static
Vector4
MinNative(
Vector4
value1,
Vector4
value2) => Vector128.MinNative(value1.AsVector128(), value2.AsVector128()).AsVector4();
854
public static
Vector4
MinNumber(
Vector4
value1,
Vector4
value2) => Vector128.MinNumber(value1.AsVector128(), value2.AsVector128()).AsVector4();
861
public static
Vector4
Multiply(
Vector4
left,
Vector4
right) => left * right;
868
public static
Vector4
Multiply(
Vector4
left, float right) => left * right;
875
public static
Vector4
Multiply(float left,
Vector4
right) => left * right;
880
public static
Vector4
MultiplyAddEstimate(
Vector4
left,
Vector4
right,
Vector4
addend) => Vector128.MultiplyAddEstimate(left.AsVector128(), right.AsVector128(), addend.AsVector128()).AsVector4();
886
public static
Vector4
Negate(
Vector4
value) => -value;
891
public static bool None(
Vector4
vector, float value) => Vector128.None(vector.AsVector128(), value);
896
public static bool NoneWhereAllBitsSet(
Vector4
vector) => Vector128.NoneWhereAllBitsSet(vector.AsVector128());
902
public static
Vector4
Normalize(
Vector4
vector) => vector / vector.Length();
906
public static
Vector4
OnesComplement(
Vector4
value) => ~value;
911
public static
Vector4
RadiansToDegrees(
Vector4
radians) => Vector128.RadiansToDegrees(radians.AsVector128()).AsVector4();
915
public static
Vector4
Round(
Vector4
vector) => Vector128.Round(vector.AsVector128()).AsVector4();
919
public static
Vector4
Round(
Vector4
vector, MidpointRounding mode) => Vector128.Round(vector.AsVector128(), mode).AsVector4();
929
public static
Vector4
Shuffle(
Vector4
vector, byte xIndex, byte yIndex, byte zIndex, byte wIndex)
936
public static
Vector4
Sin(
Vector4
vector) => Vector128.Sin(vector.AsVector128()).AsVector4();
940
public static (
Vector4
Sin,
Vector4
Cos) SinCos(
Vector4
vector)
951
public static
Vector4
SquareRoot(
Vector4
value) => Vector128.Sqrt(value.AsVector128()).AsVector4();
958
public static
Vector4
Subtract(
Vector4
left,
Vector4
right) => left - right;
963
public static float Sum(
Vector4
value) => Vector128.Sum(value.AsVector128());
969
public static
Vector4
Transform(Vector2 position, Matrix4x4 matrix) => Transform(position, in matrix.AsImpl());
972
internal static
Vector4
Transform(Vector2 position, in Matrix4x4.Impl matrix)
977
Vector4
result = matrix.X * position.X;
987
public static
Vector4
Transform(Vector2 value, Quaternion rotation) => Transform(Create(value, 0.0f, 1.0f), rotation);
993
public static
Vector4
Transform(Vector3 position, Matrix4x4 matrix) => Transform(position, in matrix.AsImpl());
996
internal static
Vector4
Transform(Vector3 position, in Matrix4x4.Impl matrix)
1001
Vector4
result = matrix.X * position.X;
1012
public static
Vector4
Transform(Vector3 value, Quaternion rotation) => Transform(Create(value, 1.0f), rotation);
1018
public static
Vector4
Transform(
Vector4
vector, Matrix4x4 matrix) => Transform(vector, in matrix.AsImpl());
1021
internal static
Vector4
Transform(
Vector4
vector, in Matrix4x4.Impl matrix)
1026
Vector4
result = matrix.X * vector.X;
1038
public static
Vector4
Transform(
Vector4
value, Quaternion rotation)
1050
public static
Vector4
Truncate(
Vector4
vector) => Vector128.Truncate(vector.AsVector128()).AsVector4();
1054
public static
Vector4
Xor(
Vector4
left,
Vector4
right) => left ^ right;
1091
public 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>
1097
public 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>
15
public static Plane AsPlane(this
Vector4
value)
20
return Unsafe.BitCast<
Vector4
, Plane>(value);
24
/// <summary>Reinterprets a <see cref="
Vector4
" /> as a new <see cref="Quaternion" />.</summary>
27
public static Quaternion AsQuaternion(this
Vector4
value)
32
return Unsafe.BitCast<
Vector4
, Quaternion>(value);
36
/// <summary>Reinterprets a <see cref="
Vector4
" /> as a new <see cref="Vector2" />.</summary>
39
public static Vector2 AsVector2(this
Vector4
value) => value.AsVector128().AsVector2();
41
/// <summary>Reinterprets a <see cref="
Vector4
" /> as a new <see cref="Vector3" />.</summary>
44
public static Vector3 AsVector3(this
Vector4
value) => value.AsVector128().AsVector3();
49
public static uint ExtractMostSignificantBits(this
Vector4
vector) => vector.AsVector128().ExtractMostSignificantBits();
53
public static float GetElement(this
Vector4
vector, int index) => vector.AsVector128().GetElement(index);
59
public static void Store(this
Vector4
source, float* destination) => source.AsVector128().Store(destination);
67
public static void StoreAligned(this
Vector4
source, float* destination) => source.AsVector128().StoreAligned(destination);
75
public static void StoreAlignedNonTemporal(this
Vector4
source, float* destination) => source.AsVector128().StoreAlignedNonTemporal(destination);
81
public static void StoreUnsafe(this
Vector4
source, ref float destination) => source.AsVector128().StoreUnsafe(ref destination);
89
public static void StoreUnsafe(this
Vector4
source, ref float destination, nuint elementOffset) => source.AsVector128().StoreUnsafe(ref destination, elementOffset);
93
public static float ToScalar(this
Vector4
vector) => vector.AsVector128().ToScalar();
97
public 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
)" />
108
public static Vector128<float> AsVector128(this Vector2 value) =>
Vector4
.Create(value, 0, 0).AsVector128();
114
public static Vector128<float> AsVector128(this Vector3 value) =>
Vector4
.Create(value, 0).AsVector128();
120
public static Vector128<float> AsVector128(this
Vector4
value)
125
return Unsafe.BitCast<
Vector4
, Vector128<float>>(value);
195
/// <summary>Reinterprets a <see langword="Vector128<Single>" /> as a new <see cref="
Vector4
" />.</summary>
197
/// <returns><paramref name="value" /> reinterpreted as a new <see cref="
Vector4
" />.</returns>
199
public static
Vector4
AsVector4(this Vector128<float> value)
204
return 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
)" />