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);
1124 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 (1109)
src\libraries\System.Private.CoreLib\src\System\Numerics\Matrix4x4.cs (34)
125
/// <remarks>The last two elements of <see cref="X" />, <see cref="Y" />, and <see cref="W" /> are initialized to zero; while <see cref="Z" /> is initialized to <see cref="
Vector4
.UnitZ" />.</remarks>
136
get => Create(
Vector4
.UnitX,
Vector4
.UnitY,
Vector4
.UnitZ,
Vector4
.UnitW);
144
get => (X ==
Vector4
.UnitX)
145
&& (Y ==
Vector4
.UnitY)
146
&& (Z ==
Vector4
.UnitZ)
147
&& (W ==
Vector4
.UnitW);
158
set => W =
Vector4
.Create(value, W.W);
163
public
Vector4
X
174
public
Vector4
Y
185
public
Vector4
Z
196
public
Vector4
W
209
public
Vector4
this[int row]
463
Vector4
.Transform(value1.X, value2),
464
Vector4
.Transform(value1.Y, value2),
465
Vector4
.Transform(value1.Z, value2),
466
Vector4
.Transform(value1.W, value2)
506
public static Matrix4x4 Create(float value) => Create(
Vector4
.Create(value));
511
/// <remarks>The last two elements of <see cref="X" />, <see cref="Y" />, and <see cref="W" /> are initialized to zero; while <see cref="Z" /> is initialized to <see cref="
Vector4
.UnitZ" />.</remarks>
516
Vector4
.UnitZ,
517
Vector4
.Create(value.Z, 0, 1)
524
public static Matrix4x4 Create(
Vector4
value) => Create(value, value, value, value);
533
public static Matrix4x4 Create(
Vector4
x,
Vector4
y,
Vector4
z,
Vector4
w)
568
Vector4
.Create(m11, m12, m13, m14),
569
Vector4
.Create(m21, m22, m23, m24),
570
Vector4
.Create(m31, m32, m33, m34),
571
Vector4
.Create(m41, m42, m43, m44)
1068
public readonly
Vector4
GetRow(int index) => this[index];
1106
public readonly Matrix4x4 WithRow(int index,
Vector4
value)
src\libraries\System.Private.CoreLib\src\System\Numerics\Matrix4x4.Impl.cs (172)
39
public
Vector4
X;
40
public
Vector4
Y;
41
public
Vector4
Z;
42
public
Vector4
W;
140
result.W =
Vector4
.Create(objectPosition, 1);
171
result.W =
Vector4
.Create(objectPosition, 1);
232
result.W =
Vector4
.Create(objectPosition, 1);
292
result.W =
Vector4
.Create(objectPosition, 1);
320
result.X =
Vector4
.Create(
326
result.Y =
Vector4
.Create(
332
result.Z =
Vector4
.Create(
338
result.W =
Vector4
.UnitW;
372
result.X =
Vector4
.Create(axisX, Vector3.Dot(axisX, negativeCameraPosition));
373
result.Y =
Vector4
.Create(axisY, Vector3.Dot(axisY, negativeCameraPosition));
374
result.Z =
Vector4
.Create(axisZ, Vector3.Dot(axisZ, negativeCameraPosition));
375
result.W =
Vector4
.UnitW;
390
result.X =
Vector4
.Create(2.0f / width, 0, 0, 0);
391
result.Y =
Vector4
.Create(0, 2.0f / height, 0, 0);
392
result.Z =
Vector4
.Create(0, 0, range, 0);
393
result.W =
Vector4
.Create(0, 0, range * zNearPlane, 1);
408
result.X =
Vector4
.Create(2.0f / width, 0, 0, 0);
409
result.Y =
Vector4
.Create(0, 2.0f / height, 0, 0);
410
result.Z =
Vector4
.Create(0, 0, range, 0);
411
result.W =
Vector4
.Create(0, 0, -range * zNearPlane, 1);
428
result.X =
Vector4
.Create(reciprocalWidth + reciprocalWidth, 0, 0, 0);
429
result.Y =
Vector4
.Create(0, reciprocalHeight + reciprocalHeight, 0, 0);
430
result.Z =
Vector4
.Create(0, 0, range, 0);
431
result.W =
Vector4
.Create(
453
result.X =
Vector4
.Create(reciprocalWidth + reciprocalWidth, 0, 0, 0);
454
result.Y =
Vector4
.Create(0, reciprocalHeight + reciprocalHeight, 0, 0);
455
result.Z =
Vector4
.Create(0, 0, range, 0);
456
result.W =
Vector4
.Create(
481
result.X =
Vector4
.Create(dblNearPlaneDistance / width, 0, 0, 0);
482
result.Y =
Vector4
.Create(0, dblNearPlaneDistance / height, 0, 0);
483
result.Z =
Vector4
.Create(0, 0, range, -1.0f);
484
result.W =
Vector4
.Create(0, 0, range * nearPlaneDistance, 0);
504
result.X =
Vector4
.Create(dblNearPlaneDistance / width, 0, 0, 0);
505
result.Y =
Vector4
.Create(0, dblNearPlaneDistance / height, 0, 0);
506
result.Z =
Vector4
.Create(0, 0, range, 1.0f);
507
result.W =
Vector4
.Create(0, 0, -range * nearPlaneDistance, 0);
531
result.X =
Vector4
.Create(width, 0, 0, 0);
532
result.Y =
Vector4
.Create(0, height, 0, 0);
533
result.Z =
Vector4
.Create(0, 0, range, -1.0f);
534
result.W =
Vector4
.Create(0, 0, range * nearPlaneDistance, 0);
558
result.X =
Vector4
.Create(width, 0, 0, 0);
559
result.Y =
Vector4
.Create(0, height, 0, 0);
560
result.Z =
Vector4
.Create(0, 0, range, 1.0f);
561
result.W =
Vector4
.Create(0, 0, -range * nearPlaneDistance, 0);
583
result.X =
Vector4
.Create(dblNearPlaneDistance * reciprocalWidth, 0, 0, 0);
584
result.Y =
Vector4
.Create(0, dblNearPlaneDistance * reciprocalHeight, 0, 0);
585
result.Z =
Vector4
.Create(
591
result.W =
Vector4
.Create(0, 0, range * nearPlaneDistance, 0);
613
result.X =
Vector4
.Create(dblNearPlaneDistance * reciprocalWidth, 0, 0, 0);
614
result.Y =
Vector4
.Create(0, dblNearPlaneDistance * reciprocalHeight, 0, 0);
615
result.Z =
Vector4
.Create(
621
result.W =
Vector4
.Create(0, 0, -range * nearPlaneDistance, 0);
632
Vector4
p = Plane.Normalize(value).AsVector4();
633
Vector4
s = p *
Vector4
.Create(-2.0f, -2.0f, -2.0f, 0.0f);
637
result.X =
Vector4
.MultiplyAddEstimate(
Vector4
.Create(p.X), s,
Vector4
.UnitX);
638
result.Y =
Vector4
.MultiplyAddEstimate(
Vector4
.Create(p.Y), s,
Vector4
.UnitY);
639
result.Z =
Vector4
.MultiplyAddEstimate(
Vector4
.Create(p.Z), s,
Vector4
.UnitZ);
640
result.W =
Vector4
.MultiplyAddEstimate(
Vector4
.Create(p.W), s,
Vector4
.UnitW);
657
result.X =
Vector4
.UnitX;
658
result.Y =
Vector4
.Create(0, c, s, 0);
659
result.Z =
Vector4
.Create(0, -s, c, 0);
660
result.W =
Vector4
.UnitW;
680
result.X =
Vector4
.UnitX;
681
result.Y =
Vector4
.Create(0, c, s, 0);
682
result.Z =
Vector4
.Create(0, -s, c, 0);
683
result.W =
Vector4
.Create(0, y, z, 1);
700
result.X =
Vector4
.Create(c, 0, -s, 0);
701
result.Y =
Vector4
.UnitY;
702
result.Z =
Vector4
.Create(s, 0, c, 0);
703
result.W =
Vector4
.UnitW;
723
result.X =
Vector4
.Create(c, 0, -s, 0);
724
result.Y =
Vector4
.UnitY;
725
result.Z =
Vector4
.Create(s, 0, c, 0);
726
result.W =
Vector4
.Create(x, 0, z, 1);
743
result.X =
Vector4
.Create( c, s, 0, 0);
744
result.Y =
Vector4
.Create(-s, c, 0, 0);
745
result.Z =
Vector4
.UnitZ;
746
result.W =
Vector4
.UnitW;
766
result.X =
Vector4
.Create( c, s, 0, 0);
767
result.Y =
Vector4
.Create(-s, c, 0, 0);
768
result.Z =
Vector4
.UnitZ;
769
result.W =
Vector4
.Create(x, y, 0, 1);
779
result.X =
Vector4
.Create(scaleX, 0, 0, 0);
780
result.Y =
Vector4
.Create(0, scaleY, 0, 0);
781
result.Z =
Vector4
.Create(0, 0, scaleZ, 0);
782
result.W =
Vector4
.UnitW;
792
result.X =
Vector4
.Create(scaleX, 0, 0, 0);
793
result.Y =
Vector4
.Create(0, scaleY, 0, 0);
794
result.Z =
Vector4
.Create(0, 0, scaleZ, 0);
795
result.W =
Vector4
.Create(centerPoint * (Vector3.One - Vector3.Create(scaleX, scaleY, scaleZ)), 1);
805
result.X =
Vector4
.Create(scales.X, 0, 0, 0);
806
result.Y =
Vector4
.Create(0, scales.Y, 0, 0);
807
result.Z =
Vector4
.Create(0, 0, scales.Z, 0);
808
result.W =
Vector4
.UnitW;
818
result.X =
Vector4
.Create(scales.X, 0, 0, 0);
819
result.Y =
Vector4
.Create(0, scales.Y, 0, 0);
820
result.Z =
Vector4
.Create(0, 0, scales.Z, 0);
821
result.W =
Vector4
.Create(centerPoint * (Vector3.One - scales), 1);
831
result.X =
Vector4
.Create(scale, 0, 0, 0);
832
result.Y =
Vector4
.Create(0, scale, 0, 0);
833
result.Z =
Vector4
.Create(0, 0, scale, 0);
834
result.W =
Vector4
.UnitW;
844
result.X =
Vector4
.Create(scale, 0, 0, 0);
845
result.Y =
Vector4
.Create(0, scale, 0, 0);
846
result.Z =
Vector4
.Create(0, 0, scale, 0);
847
result.W =
Vector4
.Create(centerPoint * (Vector3.One - Vector3.Create(scale)), 1);
855
Vector4
p = Plane.Normalize(plane).AsVector4();
856
Vector4
l = lightDirection.AsVector4();
857
float dot =
Vector4
.Dot(p, l);
863
result.X =
Vector4
.MultiplyAddEstimate(l,
Vector4
.Create(p.X),
Vector4
.Create(dot, 0, 0, 0));
864
result.Y =
Vector4
.MultiplyAddEstimate(l,
Vector4
.Create(p.Y),
Vector4
.Create(0, dot, 0, 0));
865
result.Z =
Vector4
.MultiplyAddEstimate(l,
Vector4
.Create(p.Z),
Vector4
.Create(0, 0, dot, 0));
866
result.W =
Vector4
.MultiplyAddEstimate(l,
Vector4
.Create(p.W),
Vector4
.Create(0, 0, 0, dot));
876
result.X =
Vector4
.UnitX;
877
result.Y =
Vector4
.UnitY;
878
result.Z =
Vector4
.UnitZ;
879
result.W =
Vector4
.Create(position, 1);
889
result.X =
Vector4
.UnitX;
890
result.Y =
Vector4
.UnitY;
891
result.Z =
Vector4
.UnitZ;
892
result.W =
Vector4
.Create(positionX, positionY, positionZ, 1);
904
result.W =
Vector4
.Create(width, height, 0f, 0f);
905
result.W *=
Vector4
.Create(0.5f, 0.5f, 0f, 0f);
907
result.X =
Vector4
.Create(result.W.X, 0f, 0f, 0f);
908
result.Y =
Vector4
.Create(0f, -result.W.Y, 0f, 0f);
909
result.Z =
Vector4
.Create(0f, 0f, minDepth - maxDepth, 0f);
910
result.W +=
Vector4
.Create(x, y, minDepth, 1f);
921
result.W =
Vector4
.Create(width, height, 0f, 0f);
922
result.W *=
Vector4
.Create(0.5f, 0.5f, 0f, 0f);
924
result.X =
Vector4
.Create(result.W.X, 0f, 0f, 0f);
925
result.Y =
Vector4
.Create(0f, -result.W.Y, 0f, 0f);
926
result.Z =
Vector4
.Create(0f, 0f, maxDepth - minDepth, 0f);
927
result.W +=
Vector4
.Create(x, y, minDepth, 1f);
944
result.W =
Vector4
.Create(position, 1);
1284
float det =
Vector4
.Dot(C0.AsVector4(), row1.AsVector4());
1289
Vector4
vNaN =
Vector4
.Create(float.NaN);
1427
Vector4
vNaN =
Vector4
.Create(float.NaN);
1482
result.X =
Vector4
.Lerp(left.X, right.X, amount);
1483
result.Y =
Vector4
.Lerp(left.Y, right.Y, amount);
1484
result.Z =
Vector4
.Lerp(left.Z, right.Z, amount);
1485
result.W =
Vector4
.Lerp(left.W, right.W, amount);
1524
result.X =
Vector4
.Create(
1530
result.Y =
Vector4
.Create(
1536
result.Z =
Vector4
.Create(
1542
result.W =
Vector4
.Create(
1596
result.X =
Vector4
.Create(matrix.X.X, matrix.Y.X, matrix.Z.X, matrix.W.X);
1597
result.Y =
Vector4
.Create(matrix.X.Y, matrix.Y.Y, matrix.Z.Y, matrix.W.Y);
1598
result.Z =
Vector4
.Create(matrix.X.Z, matrix.Y.Z, matrix.Z.Z, matrix.W.Z);
1599
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 (9)
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)
52
/// <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>
55
public static Plane Create(
Vector4
value) => value.AsPlane();
62
public static Plane Create(Vector3 normal, float d) =>
Vector4
.Create(normal, d).AsPlane();
98
public static float Dot(Plane plane,
Vector4
value) => Vector128.Dot(plane.AsVector128(), value.AsVector128());
109
return Dot(plane,
Vector4
.Create(value, 1.0f));
149
return
Vector4
.Transform(plane.AsVector4(), Matrix4x4.Transpose(inverseMatrix)).AsPlane();
158
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
public 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
.Log(
Vector4
)" />
720
public static Vector2 Log(Vector2 vector) => Vector128.Log(
Vector4
.Create(vector, 1.0f, 1.0f).AsVector128()).AsVector2();
722
/// <inheritdoc cref="
Vector4
.Log2(
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
)" />
917
public static Vector2 Transform(Vector2 position, Matrix4x4 matrix) =>
Vector4
.Transform(position, matrix).AsVector2();
924
public static Vector2 Transform(Vector2 value, Quaternion rotation) =>
Vector4
.Transform(value, rotation).AsVector2();
945
Vector4
result = matrix.X * normal.X;
946
result =
Vector4
.MultiplyAddEstimate(matrix.Y,
Vector4
.Create(normal.Y), result);
950
/// <inheritdoc cref="
Vector4
.Truncate(
Vector4
)" />
954
/// <inheritdoc cref="
Vector4
.Xor(
Vector4
,
Vector4
)" />
src\libraries\System.Private.CoreLib\src\System\Numerics\Vector2.Extensions.cs (10)
22
/// <summary>Reinterprets a <see cref="Vector2" /> to a new <see cref="
Vector4
" /> with the new elements zeroed.</summary>
24
/// <returns><paramref name="value" /> reinterpreted to a new <see cref="
Vector4
" /> with the new elements zeroed.</returns>
25
public static
Vector4
AsVector4(this Vector2 value) => value.AsVector128().AsVector4();
27
/// <summary>Reinterprets a <see cref="Vector2" /> to a new <see cref="
Vector4
" /> with the new elements undefined.</summary>
29
/// <returns><paramref name="value" /> reinterpreted to a new <see cref="
Vector4
" /> with the new elements undefined.</returns>
30
public static
Vector4
AsVector4Unsafe(this Vector2 value) => value.AsVector128Unsafe().AsVector4();
32
/// <inheritdoc cref="ExtractMostSignificantBits(
Vector4
)" />
37
/// <inheritdoc cref="GetElement(
Vector4
, int)" />
100
/// <inheritdoc cref="ToScalar(
Vector4
)" />
104
/// <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
.Log(
Vector4
)" />
753
public static Vector3 Log(Vector3 vector) => Vector128.Log(
Vector4
.Create(vector, 1.0f).AsVector128()).AsVector3();
755
/// <inheritdoc cref="
Vector4
.Log2(
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, matrix).AsVector3();
946
public static Vector3 Transform(Vector3 value, Quaternion rotation) =>
Vector4
.Transform(value, rotation).AsVector3();
955
Vector4
result = matrix.X * normal.X;
957
result =
Vector4
.MultiplyAddEstimate(matrix.Y,
Vector4
.Create(normal.Y), result);
958
result =
Vector4
.MultiplyAddEstimate(matrix.Z,
Vector4
.Create(normal.Z), result);
963
/// <inheritdoc cref="
Vector4
.Truncate(
Vector4
)" />
967
/// <inheritdoc cref="
Vector4
.Xor(
Vector4
,
Vector4
)" />
src\libraries\System.Private.CoreLib\src\System\Numerics\Vector3.Extensions.cs (10)
17
/// <summary>Converts a <see cref="Vector3" /> to a new <see cref="
Vector4
" /> with the new elements zeroed.</summary>
19
/// <returns><paramref name="value" /> converted to a new <see cref="
Vector4
" /> with the new elements zeroed.</returns>
20
public static
Vector4
AsVector4(this Vector3 value) => value.AsVector128().AsVector4();
22
/// <summary>Converts a <see cref="Vector3" /> to a new <see cref="
Vector4
" /> with the new elements undefined.</summary>
24
/// <returns><paramref name="value" /> converted to a new <see cref="
Vector4
" /> with the new elements undefined.</returns>
25
public static
Vector4
AsVector4Unsafe(this Vector3 value) => value.AsVector128Unsafe().AsVector4();
27
/// <inheritdoc cref="ExtractMostSignificantBits(
Vector4
)" />
32
/// <inheritdoc cref="GetElement(
Vector4
, int)" />
95
/// <inheritdoc cref="ToScalar(
Vector4
)" />
99
/// <inheritdoc cref="WithElement(
Vector4
, int, float)" />
src\libraries\System.Private.CoreLib\src\System\Numerics\Vector4.cs (328)
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 <see cref="
Vector4
" /> with <see cref="X" /> initialized <paramref name="x" /> and the remaining elements initialized to zero.</returns>
493
public static
Vector4
CreateScalar(float x) => Vector128.CreateScalar(x).AsVector4();
497
/// <returns>A <see cref="
Vector4
" /> with <see cref="X" /> initialized <paramref name="x" /> and the remaining elements left uninitialized.</returns>
499
public 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());
970
public static
Vector4
Transform(Vector2 position, Matrix4x4 matrix)
975
Vector4
result = matrix.X * position.X;
985
public static
Vector4
Transform(Vector2 value, Quaternion rotation) => Transform(Create(value, 0.0f, 1.0f), rotation);
992
public static
Vector4
Transform(Vector3 position, Matrix4x4 matrix)
997
Vector4
result = matrix.X * position.X;
1008
public static
Vector4
Transform(Vector3 value, Quaternion rotation) => Transform(Create(value, 1.0f), rotation);
1015
public static
Vector4
Transform(
Vector4
vector, Matrix4x4 matrix)
1020
Vector4
result = matrix.X * vector.X;
1032
public static
Vector4
Transform(
Vector4
value, Quaternion rotation)
1044
public static
Vector4
Truncate(
Vector4
vector) => Vector128.Truncate(vector.AsVector128()).AsVector4();
1048
public static
Vector4
Xor(
Vector4
left,
Vector4
right) => left ^ right;
1085
public readonly bool Equals(
Vector4
other) => this.AsVector128().Equals(other.AsVector128());
1090
/// <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>
1091
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
)" />