29 instantiations of Vector2
Microsoft.Gen.Logging.Generated.Tests (1)
LogPropertiesTests.cs (1)
106
P16 = new
Vector2
(1),
Microsoft.Maui.Graphics (11)
Matrix3x2Extensions.cs (8)
53
var sx = matrix.M12 == 0 ? Math.Abs(matrix.M11) : new
Vector2
(matrix.M11, matrix.M12).Length();
54
var sy = matrix.M21 == 0 ? Math.Abs(matrix.M22) : new
Vector2
(matrix.M21, matrix.M22).Length();
57
return new
Vector2
(sx, sy);
72
var sx = matrix.M12 == 0 ? Math.Abs(matrix.M11) : new
Vector2
(matrix.M11, matrix.M12).Length();
73
var sy = matrix.M21 == 0 ? Math.Abs(matrix.M22) : new
Vector2
(matrix.M21, matrix.M22).Length();
76
scale /= new
Vector2
(sx, sy);
167
scalex = value.M12 == 0 ? MathF.Abs(value.M11) : new
Vector2
(value.M11, value.M12).Length();
168
scaley = value.M21 == 0 ? MathF.Abs(value.M22) : new
Vector2
(value.M21, value.M22).Length();
PathF.cs (1)
1607
return new
Vector2
(point.X, point.Y);
PointF.cs (1)
128
public static explicit operator Vector2(PointF p) => new
Vector2
(p.X, p.Y);
SizeF.cs (1)
83
return new
Vector2
(size.Width, size.Height);
Microsoft.Maui.Graphics.Win2D.WinUI.Desktop (15)
src\Graphics\src\Graphics\Platforms\Windows\GraphicsExtensions.cs (12)
171
new
Vector2
(ox + controlPoint.X * fx, oy + controlPoint.Y * fy),
172
new
Vector2
(ox + endPoint.X * fx, oy + endPoint.Y * fy));
180
new
Vector2
(ox + controlPoint1.X * fx, oy + controlPoint1.Y * fy),
181
new
Vector2
(ox + controlPoint2.X * fx, oy + controlPoint2.Y * fy),
182
new
Vector2
(ox + endPoint.X * fx, oy + endPoint.Y * fy));
226
new
Vector2
(endPoint.X, endPoint.Y),
293
new
Vector2
(controlPoint.X * scale, controlPoint.Y * scale),
294
new
Vector2
(endPoint.X * scale, endPoint.Y * scale));
306
new
Vector2
(controlPoint1.X * scale, controlPoint1.Y * scale),
307
new
Vector2
(controlPoint2.X * scale, controlPoint2.Y * scale),
308
new
Vector2
(endPoint.X * scale, endPoint.Y * scale));
344
new
Vector2
(endPoint.X, endPoint.Y),
src\Graphics\src\Graphics\Platforms\Windows\PlatformCanvas.cs (2)
198
new
Vector2
(_point2.X, _point2.Y),
586
new
Vector2
(_point2.X, _point2.Y),
src\Graphics\src\Graphics\Platforms\Windows\PlatformCanvasState.cs (1)
405
ShadowOffset = new
Vector2
(offset.Width, offset.Height);
System.Drawing.Primitives (2)
System\Drawing\PointF.cs (1)
47
public Vector2 ToVector2() => new
Vector2
(x, y);
System\Drawing\SizeF.cs (1)
58
public Vector2 ToVector2() => new
Vector2
(width, height);
544 references to Vector2
Microsoft.Gen.Logging.Generated.Tests (1)
test\Generators\Microsoft.Gen.Logging\TestClasses\LogPropertiesSpecialTypesExtensions.cs (1)
33
public
Vector2
P16 { get; set; }
Microsoft.Maui.Graphics (37)
Converters\PointFTypeConverter.cs (2)
12
=> sourceType == typeof(string) || sourceType == typeof(
Vector2
);
28
if (value is
Vector2
vec)
Converters\PointTypeConverter.cs (2)
12
=> sourceType == typeof(string) || sourceType == typeof(
Vector2
);
28
if (value is
Vector2
vec)
Matrix3x2Extensions.cs (11)
51
public static
Vector2
GetScale(this in Matrix3x2 matrix)
65
public static
Vector2
GetTranslation(this in Matrix3x2 matrix)
70
public static Matrix3x2 WithScale(this Matrix3x2 matrix,
Vector2
scale)
91
return matrix.WithScale(
Vector2
.One);
96
var
t = matrix.Translation;
97
var
s = matrix.GetScale();
103
var
t = matrix.Translation;
104
var
s = matrix.GetScale();
108
public static Matrix3x2 WithTranslation(this Matrix3x2 matrix,
Vector2
translation)
129
internal static Matrix3x2 CreateMatrix3x2(
Vector2
scale, float rotation,
Vector2
translation)
PathF.cs (9)
934
_points[i] =
Vector2
.Transform((
Vector2
)_points[i], transform);
1544
var vectors = new
Vector2
[4];
1560
var
vector = GetPointAsVector(curvePoints, index + 3);
1591
private
Vector2
DeCasteljau(List<PointF> curvePoints, int index, float t)
1595
var
vector0 = s * GetPointAsVector(curvePoints, index) + t * GetPointAsVector(curvePoints, index + 1);
1596
var
vector1 = s * GetPointAsVector(curvePoints, index + 1) + t * GetPointAsVector(curvePoints, index + 2);
1597
var
vector2 = s * GetPointAsVector(curvePoints, index + 2) + t * GetPointAsVector(curvePoints, index + 3);
1604
private
Vector2
GetPointAsVector(List<PointF> curvePoints, int index)
Point.cs (2)
42
public Point(
Vector2
v)
128
public static implicit operator Point(
Vector2
v) => new Point(v);
PointF.cs (5)
36
public PointF(
Vector2
v)
74
return
Vector2
.Transform((
Vector2
)this, transform);
126
public static implicit operator PointF(
Vector2
v) => new PointF(v);
128
public static explicit operator
Vector2
(PointF p) => new Vector2(p.X, p.Y);
Size.cs (1)
27
public Size(
Vector2
vector)
SizeF.cs (5)
27
public SizeF(
Vector2
vector)
43
return (SizeF)
Vector2
.TransformNormal((
Vector2
)this, transform);
81
public static explicit operator
Vector2
(SizeF size)
86
public static explicit operator SizeF(
Vector2
size)
Microsoft.Maui.Graphics.Win2D.WinUI.Desktop (12)
src\Graphics\src\Graphics\Platforms\Windows\PlatformCanvas.cs (5)
38
private
Vector2
_point1;
39
private
Vector2
_point2;
40
private
Vector2
_linearGradientStartPoint;
41
private
Vector2
_linearGradientEndPoint;
42
private
Vector2
_radialGradientCenter;
src\Graphics\src\Graphics\Platforms\Windows\PlatformCanvasState.cs (7)
43
private
Vector2
_linearGradientStartPoint;
44
private
Vector2
_linearGradientEndPoint;
45
private
Vector2
_radialGradientCenter;
79
public
Vector2
ShadowOffset { get; private set; }
300
public void SetLinearGradient(Paint aPaint,
Vector2
startPoint,
Vector2
endPoint)
310
public void SetRadialGradient(Paint aPaint,
Vector2
center, float radius)
netstandard (1)
netstandard.cs (1)
1339
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Numerics.
Vector2
))]
System.Drawing.Common (7)
System\Drawing\Graphics.cs (4)
3219
Vector2
currentOffset = default; // Offset of current context.
3220
Vector2
totalOffset = default; // Absolute coordinate offset of top context.
3364
Vector2
translation = cumulativeTransform.Translation;
3378
Vector2
translation = cumulativeTransform.Translation;
System\Drawing\GraphicsContext.cs (1)
42
public
Vector2
TransformOffset { get; private set; }
System\Drawing\NumericsExtensions.cs (2)
13
internal static void Translate(this ref Matrix3x2 matrix,
Vector2
offset)
20
internal static bool IsEmpty(this
Vector2
vector) => vector.X == 0 && vector.Y == 0;
System.Drawing.Primitives (17)
System\Drawing\PointF.cs (8)
36
/// <see cref="System.Numerics.
Vector2
"/>.
38
public PointF(
Vector2
vector)
45
/// Creates a new <see cref="System.Numerics.
Vector2
"/> from this <see cref="System.Drawing.PointF"/>.
47
public
Vector2
ToVector2() => new Vector2(x, y);
74
/// Converts the specified <see cref="System.Drawing.PointF"/> to a <see cref="System.Numerics.
Vector2
"/>.
76
public static explicit operator
Vector2
(PointF point) => point.ToVector2();
79
/// Converts the specified <see cref="System.Numerics.
Vector2
"/> to a <see cref="System.Drawing.PointF"/>.
81
public static explicit operator PointF(
Vector2
vector) => new PointF(vector);
System\Drawing\RectangleF.cs (1)
74
/// Converts the specified <see cref="System.Numerics.
Vector2
"/> to a <see cref="System.Drawing.RectangleF"/>.
System\Drawing\SizeF.cs (8)
47
/// <see cref="System.Numerics.
Vector2
"/>.
49
public SizeF(
Vector2
vector)
56
/// Creates a new <see cref="System.Numerics.
Vector2
"/> from this <see cref="System.Drawing.SizeF"/>.
58
public
Vector2
ToVector2() => new Vector2(width, height);
70
/// Converts the specified <see cref="System.Drawing.SizeF"/> to a <see cref="System.Numerics.
Vector2
"/>.
72
public static explicit operator
Vector2
(SizeF size) => size.ToVector2();
75
/// Converts the specified <see cref="System.Numerics.
Vector2
"/> to a <see cref="System.Drawing.SizeF"/>.
77
public static explicit operator SizeF(
Vector2
vector) => new SizeF(vector);
System.Numerics (1)
System.Numerics.cs (1)
10
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Numerics.
Vector2
))]
System.Numerics.Vectors (1)
src\runtime\artifacts\obj\System.Numerics.Vectors\Release\net11.0\System.Numerics.Vectors.Forwards.cs (1)
13
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Numerics.
Vector2
))]
System.Private.CoreLib (467)
src\runtime\src\libraries\System.Private.CoreLib\src\System\Numerics\Matrix3x2.cs (77)
47
public
Vector2
X;
48
public
Vector2
Y;
49
public
Vector2
Z;
100
get => Create(
Vector2
.UnitX,
Vector2
.UnitY,
Vector2
.Zero);
112
return (impl.X ==
Vector2
.UnitX)
113
&& (impl.Y ==
Vector2
.UnitY)
114
&& (impl.Z ==
Vector2
.Zero);
120
public
Vector2
Translation
131
public
Vector2
X
142
public
Vector2
Y
153
public
Vector2
Z
166
public
Vector2
this[int row]
430
result.Z =
Vector2
.Transform(left.Z.AsVector128Unsafe(), in right).AsVector2();
512
Vector2
vector =
Vector2
.Create(value);
527
public static Matrix3x2 Create(
Vector2
value)
544
public static Matrix3x2 Create(
Vector2
x,
Vector2
y,
Vector2
z)
570
result.X =
Vector2
.Create(m11, m12);
571
result.Y =
Vector2
.Create(m21, m22);
572
result.Z =
Vector2
.Create(m31, m32);
624
result.X =
Vector2
.Create(c, s);
625
result.Y =
Vector2
.Create(-s, c);
626
result.Z =
Vector2
.Zero;
636
public static Matrix3x2 CreateRotation(float radians,
Vector2
centerPoint)
681
result.X =
Vector2
.Create(c, s);
682
result.Y =
Vector2
.Create(-s, c);
683
result.Z =
Vector2
.Create(x, y);
692
public static Matrix3x2 CreateScale(
Vector2
scales)
696
result.X =
Vector2
.CreateScalar(scales.X);
697
result.Y =
Vector2
.Create(0, scales.Y);
698
result.Z =
Vector2
.Zero;
712
result.X =
Vector2
.CreateScalar(xScale);
713
result.Y =
Vector2
.Create(0, yScale);
714
result.Z =
Vector2
.Zero;
725
public static Matrix3x2 CreateScale(float xScale, float yScale,
Vector2
centerPoint)
729
result.X =
Vector2
.CreateScalar(xScale);
730
result.Y =
Vector2
.Create(0, yScale);
731
result.Z = centerPoint * (
Vector2
.One -
Vector2
.Create(xScale, yScale));
741
public static Matrix3x2 CreateScale(
Vector2
scales,
Vector2
centerPoint)
745
result.X =
Vector2
.CreateScalar(scales.X);
746
result.Y =
Vector2
.Create(0, scales.Y);
747
result.Z = centerPoint * (
Vector2
.One - scales);
760
result.X =
Vector2
.CreateScalar(scale);
761
result.Y =
Vector2
.Create(0, scale);
762
result.Z =
Vector2
.Zero;
772
public static Matrix3x2 CreateScale(float scale,
Vector2
centerPoint)
776
result.X =
Vector2
.CreateScalar(scale);
777
result.Y =
Vector2
.Create(0, scale);
792
result.X =
Vector2
.Create(1, float.Tan(radiansY));
793
result.Y =
Vector2
.Create(float.Tan(radiansX), 1);
794
result.Z =
Vector2
.Zero;
805
public static Matrix3x2 CreateSkew(float radiansX, float radiansY,
Vector2
centerPoint)
815
result.X =
Vector2
.Create(1, yTan);
816
result.Y =
Vector2
.Create(xTan, 1);
817
result.Z =
Vector2
.Create(tx, ty);
826
public static Matrix3x2 CreateTranslation(
Vector2
position)
830
result.X =
Vector2
.UnitX;
831
result.Y =
Vector2
.UnitY;
846
result.X =
Vector2
.UnitX;
847
result.Y =
Vector2
.UnitY;
848
result.Z =
Vector2
.Create(xPosition, yPosition);
866
Vector2
vNaN =
Vector2
.NaN;
877
resultImpl.X =
Vector2
.Create(
881
resultImpl.Y =
Vector2
.Create(
885
resultImpl.Z =
Vector2
.Create(
906
result.X =
Vector2
.Lerp(left.X, right.X, amount);
907
result.Y =
Vector2
.Lerp(left.Y, right.Y, amount);
908
result.Z =
Vector2
.Lerp(left.Z, right.Z, amount);
1010
public readonly
Vector2
GetRow(int index) => this[index];
1050
public readonly Matrix3x2 WithRow(int index,
Vector2
value)
src\runtime\src\libraries\System.Private.CoreLib\src\System\Numerics\Vector2.cs (324)
18
public partial struct Vector2 : IEquatable<
Vector2
>, IFormattable
20
/// <summary>Specifies the alignment of the vector as used by the <see cref="LoadAligned(float*)" /> and <see cref="Vector.StoreAligned(
Vector2
, float*)" /> APIs.</summary>
46
/// <summary>Creates a new <see cref="
Vector2
" /> object whose two elements have the same value.</summary>
75
public static
Vector2
AllBitsSet
83
public static
Vector2
E
91
public static
Vector2
Epsilon
99
public static
Vector2
NaN
107
public static
Vector2
NegativeInfinity
115
public static
Vector2
NegativeZero
123
public static
Vector2
One
131
public static
Vector2
Pi
139
public static
Vector2
PositiveInfinity
147
public static
Vector2
Tau
156
public static
Vector2
UnitX
165
public static
Vector2
UnitY
173
public static
Vector2
Zero
202
/// <remarks>The <see cref="op_Addition" /> method defines the addition operation for <see cref="
Vector2
" /> objects.</remarks>
205
public static
Vector2
operator +(
Vector2
left,
Vector2
right) => (left.AsVector128Unsafe() + right.AsVector128Unsafe()).AsVector2();
211
/// <remarks>The <see cref="
Vector2
.op_Division" /> method defines the division operation for <see cref="
Vector2
" /> objects.</remarks>
214
public static
Vector2
operator /(
Vector2
left,
Vector2
right) => (left.AsVector128Unsafe() / right.AsVector128Unsafe()).AsVector2();
220
/// <remarks>The <see cref="
Vector2
.op_Division" /> method defines the division operation for <see cref="
Vector2
" /> objects.</remarks>
223
public static
Vector2
operator /(
Vector2
value1, float value2) => (value1.AsVector128Unsafe() / value2).AsVector2();
229
/// <remarks>Two <see cref="
Vector2
" /> objects are equal if each value in <paramref name="left" /> is equal to the corresponding value in <paramref name="right" />.</remarks>
232
public static bool operator ==(
Vector2
left,
Vector2
right) => left.AsVector128() == right.AsVector128();
240
public static bool operator !=(
Vector2
left,
Vector2
right) => left.AsVector128() != right.AsVector128();
246
/// <remarks>The <see cref="
Vector2
.op_Multiply" /> method defines the multiplication operation for <see cref="
Vector2
" /> objects.</remarks>
249
public static
Vector2
operator *(
Vector2
left,
Vector2
right) => (left.AsVector128Unsafe() * right.AsVector128Unsafe()).AsVector2();
255
/// <remarks>The <see cref="
Vector2
.op_Multiply" /> method defines the multiplication operation for <see cref="
Vector2
" /> objects.</remarks>
258
public static
Vector2
operator *(
Vector2
left, float right) => (left.AsVector128Unsafe() * right).AsVector2();
264
/// <remarks>The <see cref="
Vector2
.op_Multiply" /> method defines the multiplication operation for <see cref="
Vector2
" /> objects.</remarks>
267
public static
Vector2
operator *(float left,
Vector2
right) => (right.AsVector128Unsafe() * left).AsVector2();
273
/// <remarks>The <see cref="op_Subtraction" /> method defines the subtraction operation for <see cref="
Vector2
" /> objects.</remarks>
276
public static
Vector2
operator -(
Vector2
left,
Vector2
right) => (left.AsVector128Unsafe() - right.AsVector128Unsafe()).AsVector2();
281
/// <remarks>The <see cref="op_UnaryNegation" /> method defines the unary negation operation for <see cref="
Vector2
" /> objects.</remarks>
284
public static
Vector2
operator -(
Vector2
value) => (-value.AsVector128Unsafe()).AsVector2();
289
public static
Vector2
operator &(
Vector2
left,
Vector2
right) => (left.AsVector128Unsafe() & right.AsVector128Unsafe()).AsVector2();
294
public static
Vector2
operator |(
Vector2
left,
Vector2
right) => (left.AsVector128Unsafe() | right.AsVector128Unsafe()).AsVector2();
299
public static
Vector2
operator ^(
Vector2
left,
Vector2
right) => (left.AsVector128Unsafe() ^ right.AsVector128Unsafe()).AsVector2();
304
public static
Vector2
operator <<(
Vector2
value, int shiftAmount) => (value.AsVector128Unsafe() << shiftAmount).AsVector2();
309
public static
Vector2
operator ~(
Vector2
value) => (~value.AsVector128Unsafe()).AsVector2();
314
public static
Vector2
operator >>(
Vector2
value, int shiftAmount) => (value.AsVector128Unsafe() >> shiftAmount).AsVector2();
319
public static
Vector2
operator +(
Vector2
value) => value;
324
public static
Vector2
operator >>>(
Vector2
value, int shiftAmount) => (value.AsVector128Unsafe() >>> shiftAmount).AsVector2();
331
public static
Vector2
Abs(
Vector2
value) => Vector128.Abs(value.AsVector128Unsafe()).AsVector2();
339
public static
Vector2
Add(
Vector2
left,
Vector2
right) => (left.AsVector128Unsafe() + right.AsVector128Unsafe()).AsVector2();
344
public static bool All(
Vector2
vector, float value) => Vector128.All(vector, value);
349
public static bool AllWhereAllBitsSet(
Vector2
vector) => Vector128.AllWhereAllBitsSet(vector);
354
public static
Vector2
AndNot(
Vector2
left,
Vector2
right) => Vector128.AndNot(left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector2();
359
public static bool Any(
Vector2
vector, float value) => Vector128.Any(vector, value);
364
public static bool AnyWhereAllBitsSet(
Vector2
vector) => Vector128.AnyWhereAllBitsSet(vector);
369
public static
Vector2
BitwiseAnd(
Vector2
left,
Vector2
right) => (left.AsVector128Unsafe() & right.AsVector128Unsafe()).AsVector2();
374
public static
Vector2
BitwiseOr(
Vector2
left,
Vector2
right) => (left.AsVector128Unsafe() | right.AsVector128Unsafe()).AsVector2();
379
public static
Vector2
Clamp(
Vector2
value1,
Vector2
min,
Vector2
max) => Vector128.Clamp(value1.AsVector128Unsafe(), min.AsVector128Unsafe(), max.AsVector128Unsafe()).AsVector2();
384
public static
Vector2
ClampNative(
Vector2
value1,
Vector2
min,
Vector2
max) => Vector128.ClampNative(value1.AsVector128Unsafe(), min.AsVector128Unsafe(), max.AsVector128Unsafe()).AsVector2();
389
public static
Vector2
ConditionalSelect(
Vector2
condition,
Vector2
left,
Vector2
right) => Vector128.ConditionalSelect(condition.AsVector128Unsafe(), left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector2();
394
public static
Vector2
CopySign(
Vector2
value,
Vector2
sign) => Vector128.CopySign(value.AsVector128Unsafe(), sign.AsVector128Unsafe()).AsVector2();
398
public static
Vector2
Cos(
Vector2
vector) => Vector128.Cos(vector.AsVector128()).AsVector2();
403
public static int Count(
Vector2
vector, float value) => Vector128.Count(vector, value);
408
public static int CountWhereAllBitsSet(
Vector2
vector) => Vector128.CountWhereAllBitsSet(vector);
410
/// <summary>Creates a new <see cref="
Vector2
" /> object whose two elements have the same value.</summary>
412
/// <returns>A new <see cref="
Vector2
" /> whose two elements have the same value.</returns>
415
public static
Vector2
Create(float value) => Vector128.Create(value).AsVector2();
420
/// <returns>A new <see cref="
Vector2
" /> whose elements have the specified values.</returns>
423
public static
Vector2
Create(float x, float y) => Vector128.Create(x, y, 0.0f, 0.0f).AsVector2();
427
/// <returns>A new <see cref="
Vector2
" /> whose elements have the specified values.</returns>
430
public static
Vector2
Create(ReadOnlySpan<float> values)
436
return Unsafe.As<float,
Vector2
>(ref MemoryMarshal.GetReference(values));
441
/// <returns>A new <see cref="
Vector2
" /> with <see cref="X" /> initialized <paramref name="x" /> and the remaining elements initialized to zero.</returns>
444
public static
Vector2
CreateScalar(float x) => Vector128.CreateScalar(x).AsVector2();
448
/// <returns>A new <see cref="
Vector2
" /> with <see cref="X" /> initialized <paramref name="x" /> and the remaining elements left uninitialized.</returns>
451
public static
Vector2
CreateScalarUnsafe(float x) => Vector128.CreateScalarUnsafe(x).AsVector2();
466
public static float Cross(
Vector2
value1,
Vector2
value2)
476
public static
Vector2
DegreesToRadians(
Vector2
degrees) => Vector128.DegreesToRadians(degrees.AsVector128Unsafe()).AsVector2();
484
public static float Distance(
Vector2
value1,
Vector2
value2) => Vector128.Distance(value1.AsVector128(), value2.AsVector128());
492
public static float DistanceSquared(
Vector2
value1,
Vector2
value2) => Vector128.DistanceSquared(value1.AsVector128(), value2.AsVector128());
500
public static
Vector2
Divide(
Vector2
left,
Vector2
right) => (left.AsVector128Unsafe() / right.AsVector128Unsafe()).AsVector2();
508
public static
Vector2
Divide(
Vector2
left, float divisor) => (left.AsVector128Unsafe() / divisor).AsVector2();
516
public static float Dot(
Vector2
value1,
Vector2
value2) => Vector128.Dot(value1.AsVector128(), value2.AsVector128());
520
public static
Vector2
Exp(
Vector2
vector) => Vector128.Exp(vector.AsVector128()).AsVector2();
525
public static
Vector2
Equals(
Vector2
left,
Vector2
right) => Vector128.Equals(left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector2();
530
public static bool EqualsAll(
Vector2
left,
Vector2
right) => Vector128.EqualsAll(left.AsVector128(), right.AsVector128());
535
public static bool EqualsAny(
Vector2
left,
Vector2
right) => Vector128.EqualsAny(Vector128.Equals(left.AsVector128(), right.AsVector128()).AsInt32(), Vector128.Create(-1, -1, 0, 0));
540
public static
Vector2
FusedMultiplyAdd(
Vector2
left,
Vector2
right,
Vector2
addend) => Vector128.FusedMultiplyAdd(left.AsVector128Unsafe(), right.AsVector128Unsafe(), addend.AsVector128Unsafe()).AsVector2();
545
public static
Vector2
GreaterThan(
Vector2
left,
Vector2
right) => Vector128.GreaterThan(left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector2();
550
public static bool GreaterThanAll(
Vector2
left,
Vector2
right) => Vector128.EqualsAll(Vector128.GreaterThan(left.AsVector128(), right.AsVector128()).AsInt32(), Vector128.Create(-1, -1, 0, 0));
555
public static bool GreaterThanAny(
Vector2
left,
Vector2
right) => Vector128.EqualsAny(Vector128.GreaterThan(left.AsVector128(), right.AsVector128()).AsInt32(), Vector128.Create(-1, -1, 0, 0));
560
public static
Vector2
GreaterThanOrEqual(
Vector2
left,
Vector2
right) => Vector128.GreaterThanOrEqual(left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector2();
565
public static bool GreaterThanOrEqualAll(
Vector2
left,
Vector2
right) => Vector128.EqualsAll(Vector128.GreaterThanOrEqual(left.AsVector128(), right.AsVector128()).AsInt32(), Vector128<int>.AllBitsSet);
570
public static bool GreaterThanOrEqualAny(
Vector2
left,
Vector2
right) => Vector128.EqualsAny(Vector128.GreaterThanOrEqual(left.AsVector128(), right.AsVector128()).AsInt32(), Vector128.Create(-1, -1, 0, 0));
575
public static
Vector2
Hypot(
Vector2
x,
Vector2
y) => Vector128.Hypot(x.AsVector128Unsafe(), y.AsVector128Unsafe()).AsVector2();
580
public static int IndexOf(
Vector2
vector, float value) => Vector128.IndexOf(vector, value);
585
public static int IndexOfWhereAllBitsSet(
Vector2
vector) => Vector128.IndexOfWhereAllBitsSet(vector);
590
public static
Vector2
IsEvenInteger(
Vector2
vector) => Vector128.IsEvenInteger(vector.AsVector128Unsafe()).AsVector2();
595
public static
Vector2
IsFinite(
Vector2
vector) => Vector128.IsFinite(vector.AsVector128Unsafe()).AsVector2();
600
public static
Vector2
IsInfinity(
Vector2
vector) => Vector128.IsInfinity(vector.AsVector128Unsafe()).AsVector2();
605
public static
Vector2
IsInteger(
Vector2
vector) => Vector128.IsInteger(vector.AsVector128Unsafe()).AsVector2();
610
public static
Vector2
IsNaN(
Vector2
vector) => Vector128.IsNaN(vector.AsVector128Unsafe()).AsVector2();
615
public static
Vector2
IsNegative(
Vector2
vector) => Vector128.IsNegative(vector.AsVector128Unsafe()).AsVector2();
620
public static
Vector2
IsNegativeInfinity(
Vector2
vector) => Vector128.IsNegativeInfinity(vector.AsVector128Unsafe()).AsVector2();
625
public static
Vector2
IsNormal(
Vector2
vector) => Vector128.IsNormal(vector.AsVector128Unsafe()).AsVector2();
630
public static
Vector2
IsOddInteger(
Vector2
vector) => Vector128.IsOddInteger(vector.AsVector128Unsafe()).AsVector2();
635
public static
Vector2
IsPositive(
Vector2
vector) => Vector128.IsPositive(vector.AsVector128Unsafe()).AsVector2();
640
public static
Vector2
IsPositiveInfinity(
Vector2
vector) => Vector128.IsPositiveInfinity(vector.AsVector128Unsafe()).AsVector2();
645
public static
Vector2
IsSubnormal(
Vector2
vector) => Vector128.IsSubnormal(vector.AsVector128Unsafe()).AsVector2();
650
public static
Vector2
IsZero(
Vector2
vector) => Vector128.IsZero(vector.AsVector128Unsafe()).AsVector2();
655
public static int LastIndexOf(
Vector2
vector, float value) => Vector128.LastIndexOf(vector, value);
660
public static int LastIndexOfWhereAllBitsSet(
Vector2
vector) => Vector128.LastIndexOfWhereAllBitsSet(vector);
665
public static
Vector2
Lerp(
Vector2
value1,
Vector2
value2, float amount) => Vector128.Lerp(value1.AsVector128Unsafe(), value2.AsVector128Unsafe(), Vector128.Create(amount)).AsVector2();
670
public static
Vector2
Lerp(
Vector2
value1,
Vector2
value2,
Vector2
amount) => Vector128.Lerp(value1.AsVector128Unsafe(), value2.AsVector128Unsafe(), amount.AsVector128Unsafe()).AsVector2();
675
public static
Vector2
LessThan(
Vector2
left,
Vector2
right) => Vector128.LessThan(left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector2();
680
public static bool LessThanAll(
Vector2
left,
Vector2
right) => Vector128.EqualsAll(Vector128.LessThan(left.AsVector128(), right.AsVector128()).AsInt32(), Vector128.Create(-1, -1, 0, 0));
685
public static bool LessThanAny(
Vector2
left,
Vector2
right) => Vector128.EqualsAny(Vector128.LessThan(left.AsVector128(), right.AsVector128()).AsInt32(), Vector128.Create(-1, -1, 0, 0));
690
public static
Vector2
LessThanOrEqual(
Vector2
left,
Vector2
right) => Vector128.LessThanOrEqual(left.AsVector128Unsafe(), right.AsVector128Unsafe()).AsVector2();
695
public static bool LessThanOrEqualAll(
Vector2
left,
Vector2
right) => Vector128.EqualsAll(Vector128.LessThanOrEqual(left.AsVector128(), right.AsVector128()).AsInt32(), Vector128<int>.AllBitsSet);
700
public static bool LessThanOrEqualAny(
Vector2
left,
Vector2
right) => Vector128.EqualsAny(Vector128.LessThanOrEqual(left.AsVector128(), right.AsVector128()).AsInt32(), Vector128.Create(-1, -1, 0, 0));
706
public static unsafe
Vector2
Load(float* source) => *(
Vector2
*)source;
712
public static unsafe
Vector2
LoadAligned(float* source)
718
return *(
Vector2
*)source;
725
public static unsafe
Vector2
LoadAlignedNonTemporal(float* source) => LoadAligned(source);
730
public static
Vector2
LoadUnsafe(ref readonly float source) => Unsafe.As<float,
Vector2
>(ref Unsafe.AsRef(in source));
736
public static
Vector2
LoadUnsafe(ref readonly float source, nuint elementOffset) => Unsafe.As<float,
Vector2
>(ref Unsafe.Add(ref Unsafe.AsRef(in source), (nint)elementOffset));
740
public static
Vector2
Log(
Vector2
vector) => Vector128.Log(Vector4.Create(vector, 1.0f, 1.0f).AsVector128()).AsVector2();
744
public static
Vector2
Log2(
Vector2
vector) => Vector128.Log2(Vector4.Create(vector, 1.0f, 1.0f).AsVector128()).AsVector2();
749
public static
Vector2
Max(
Vector2
value1,
Vector2
value2) => Vector128.Max(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector2();
754
public static
Vector2
MaxMagnitude(
Vector2
value1,
Vector2
value2) => Vector128.MaxMagnitude(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector2();
759
public static
Vector2
MaxMagnitudeNumber(
Vector2
value1,
Vector2
value2) => Vector128.MaxMagnitudeNumber(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector2();
764
public static
Vector2
MaxNative(
Vector2
value1,
Vector2
value2) => Vector128.MaxNative(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector2();
769
public static
Vector2
MaxNumber(
Vector2
value1,
Vector2
value2) => Vector128.MaxNumber(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector2();
774
public static
Vector2
Min(
Vector2
value1,
Vector2
value2) => Vector128.Min(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector2();
779
public static
Vector2
MinMagnitude(
Vector2
value1,
Vector2
value2) => Vector128.MinMagnitude(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector2();
784
public static
Vector2
MinMagnitudeNumber(
Vector2
value1,
Vector2
value2) => Vector128.MinMagnitudeNumber(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector2();
789
public static
Vector2
MinNative(
Vector2
value1,
Vector2
value2) => Vector128.MinNative(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector2();
794
public static
Vector2
MinNumber(
Vector2
value1,
Vector2
value2) => Vector128.MinNumber(value1.AsVector128Unsafe(), value2.AsVector128Unsafe()).AsVector2();
802
public static
Vector2
Multiply(
Vector2
left,
Vector2
right) => (left.AsVector128Unsafe() * right.AsVector128Unsafe()).AsVector2();
810
public static
Vector2
Multiply(
Vector2
left, float right) => (left.AsVector128Unsafe() * right).AsVector2();
818
public static
Vector2
Multiply(float left,
Vector2
right) => (right.AsVector128Unsafe() * left).AsVector2();
823
public static
Vector2
MultiplyAddEstimate(
Vector2
left,
Vector2
right,
Vector2
addend) => Vector128.MultiplyAddEstimate(left.AsVector128Unsafe(), right.AsVector128Unsafe(), addend.AsVector128Unsafe()).AsVector2();
830
public static
Vector2
Negate(
Vector2
value) => (-value.AsVector128Unsafe()).AsVector2();
835
public static bool None(
Vector2
vector, float value) => Vector128.None(vector, value);
840
public static bool NoneWhereAllBitsSet(
Vector2
vector) => Vector128.NoneWhereAllBitsSet(vector);
847
public static
Vector2
Normalize(
Vector2
value) => Vector128.Normalize(value.AsVector128()).AsVector2();
852
public static
Vector2
OnesComplement(
Vector2
value) => (~value.AsVector128Unsafe()).AsVector2();
857
public static
Vector2
RadiansToDegrees(
Vector2
radians) => Vector128.RadiansToDegrees(radians.AsVector128Unsafe()).AsVector2();
864
public static
Vector2
Reflect(
Vector2
vector,
Vector2
normal)
879
public static
Vector2
Round(
Vector2
vector) => Vector128.Round(vector.AsVector128Unsafe()).AsVector2();
884
public static
Vector2
Round(
Vector2
vector, MidpointRounding mode) => Vector128.Round(vector.AsVector128Unsafe(), mode).AsVector2();
892
public static
Vector2
Shuffle(
Vector2
vector, byte xIndex, byte yIndex)
901
public static
Vector2
Sin(
Vector2
vector) => Vector128.Sin(vector.AsVector128()).AsVector2();
905
public static (
Vector2
Sin,
Vector2
Cos) SinCos(
Vector2
vector)
916
public static
Vector2
SquareRoot(
Vector2
value) => Vector128.Sqrt(value.AsVector128Unsafe()).AsVector2();
924
public static
Vector2
Subtract(
Vector2
left,
Vector2
right) => (left.AsVector128Unsafe() - right.AsVector128Unsafe()).AsVector2();
929
public static float Sum(
Vector2
value) => Vector128.Sum(value.AsVector128());
936
public static
Vector2
Transform(
Vector2
position, Matrix3x2 matrix) => Transform(position.AsVector128Unsafe(), in matrix.AsROImpl()).AsVector2();
951
public static
Vector2
Transform(
Vector2
position, Matrix4x4 matrix) => Transform(position.AsVector128Unsafe(), in matrix.AsROImpl()).AsVector2();
969
public static
Vector2
Transform(
Vector2
value, Quaternion rotation) => Vector4.Transform(value.AsVector128().WithElement(3, 1.0f), rotation.AsVector128()).AsVector2();
976
public static
Vector2
TransformNormal(
Vector2
normal, Matrix3x2 matrix) => TransformNormal(normal.AsVector128Unsafe(), in matrix.AsROImpl()).AsVector2();
991
public static
Vector2
TransformNormal(
Vector2
normal, Matrix4x4 matrix) => TransformNormal(normal.AsVector128Unsafe(), in matrix.AsROImpl()).AsVector2();
1004
public static
Vector2
Truncate(
Vector2
vector) => Vector128.Truncate(vector.AsVector128Unsafe()).AsVector2();
1009
public static
Vector2
Xor(
Vector2
left,
Vector2
right) => (left.AsVector128Unsafe() ^ right.AsVector128Unsafe()).AsVector2();
1026
Unsafe.As<float,
Vector2
>(ref array[0]) = this;
1054
Unsafe.As<float,
Vector2
>(ref array[index]) = this;
1067
Unsafe.As<float,
Vector2
>(ref MemoryMarshal.GetReference(destination)) = this;
1081
Unsafe.As<float,
Vector2
>(ref MemoryMarshal.GetReference(destination)) = this;
1088
/// <remarks>The current instance and <paramref name="obj" /> are equal if <paramref name="obj" /> is a <see cref="
Vector2
" /> object and their <see cref="X" /> and <see cref="Y" /> elements are equal.</remarks>
1089
public override readonly bool Equals([NotNullWhen(true)] object? obj) => (obj is
Vector2
other) && Equals(other);
1096
public readonly bool Equals(
Vector2
other) => this.AsVector128().Equals(other.AsVector128());
src\runtime\src\libraries\System.Private.CoreLib\src\System\Numerics\Vector2.Extensions.cs (27)
11
/// <summary>Reinterprets a <see cref="
Vector2
" /> to a new <see cref="Vector3" /> with the new elements zeroed.</summary>
14
public static Vector3 AsVector3(this
Vector2
value) => value.AsVector128().AsVector3();
16
/// <summary>Reinterprets a <see cref="
Vector2
" /> to a new <see cref="Vector3" /> with the new elements undefined.</summary>
19
public static Vector3 AsVector3Unsafe(this
Vector2
value) => value.AsVector128Unsafe().AsVector3();
21
/// <summary>Reinterprets a <see cref="
Vector2
" /> to a new <see cref="Vector4" /> with the new elements zeroed.</summary>
24
public static Vector4 AsVector4(this
Vector2
value) => value.AsVector128().AsVector4();
26
/// <summary>Reinterprets a <see cref="
Vector2
" /> to a new <see cref="Vector4" /> with the new elements undefined.</summary>
29
public static Vector4 AsVector4Unsafe(this
Vector2
value) => value.AsVector128Unsafe().AsVector4();
34
public static uint ExtractMostSignificantBits(this
Vector2
vector) => vector.AsVector128().ExtractMostSignificantBits();
38
public static float GetElement(this
Vector2
vector, int index)
40
if ((uint)index >=
Vector2
.ElementCount)
51
public static void Store(this
Vector2
source, float* destination)
53
*(
Vector2
*)destination = source;
62
public static void StoreAligned(this
Vector2
source, float* destination)
64
if (((nuint)destination % (uint)(
Vector2
.Alignment)) != 0)
68
*(
Vector2
*)destination = source;
77
public static void StoreAlignedNonTemporal(this
Vector2
source, float* destination)
79
if (((nuint)destination % (uint)(
Vector2
.Alignment)) != 0)
83
*(
Vector2
*)destination = source;
90
public static void StoreUnsafe(this
Vector2
source, ref float destination)
92
Unsafe.As<float,
Vector2
>(ref destination) = source;
101
public static void StoreUnsafe(this
Vector2
source, ref float destination, nuint elementOffset)
103
Unsafe.As<float,
Vector2
>(ref Unsafe.Add(ref destination, (nint)elementOffset)) = source;
108
public static float ToScalar(this
Vector2
vector) => vector.AsVector128Unsafe().ToScalar();
112
public static
Vector2
WithElement(this
Vector2
vector, int index, float value)
114
if ((uint)index >=
Vector2
.ElementCount)
src\runtime\src\libraries\System.Private.CoreLib\src\System\Numerics\Vector3.cs (5)
58
/// <summary>Creates a new <see cref="Vector3" /> object from the specified <see cref="
Vector2
" /> object and the specified value.</summary>
63
public Vector3(
Vector2
value, float z)
440
/// <summary>Creates a new <see cref="Vector3" /> object from the specified <see cref="
Vector2
" /> object and a Z and a W component.</summary>
443
/// <returns>A new <see cref="Vector3" /> from the specified <see cref="
Vector2
" /> object and a Z and a W component.</returns>
446
public static Vector3 Create(
Vector2
vector, float z)
src\runtime\src\libraries\System.Private.CoreLib\src\System\Numerics\Vector3.Extensions.cs (3)
11
/// <summary>Reinterprets a <see cref="Vector3" /> as a new <see cref="
Vector2
" />.</summary>
13
/// <returns><paramref name="value" /> reinterpreted as a new <see cref="
Vector2
" />.</returns>
14
public static
Vector2
AsVector2(this Vector3 value) => value.AsVector128Unsafe().AsVector2();
src\runtime\src\libraries\System.Private.CoreLib\src\System\Numerics\Vector4.cs (8)
61
/// <summary>Creates a new <see cref="Vector4" /> object from the specified <see cref="
Vector2
" /> object and a Z and a W component.</summary>
67
public Vector4(
Vector2
value, float z, float w)
475
/// <summary>Creates a new <see cref="Vector4" /> object from the specified <see cref="
Vector2
" /> object and a Z and a W component.</summary>
479
/// <returns>A new <see cref="Vector4" /> from the specified <see cref="
Vector2
" /> object and a Z and a W component.</returns>
482
public static Vector4 Create(
Vector2
vector, float z, float w)
1022
public static Vector4 Transform(
Vector2
position, Matrix4x4 matrix) =>
Vector2
.Transform(position.AsVector128Unsafe(), in matrix.AsROImpl()).AsVector4();
1029
public static Vector4 Transform(
Vector2
value, Quaternion rotation) => Transform(value.AsVector128().WithElement(3, 1.0f), rotation.AsVector128()).AsVector4();
src\runtime\src\libraries\System.Private.CoreLib\src\System\Numerics\Vector4.Extensions.cs (3)
23
/// <summary>Reinterprets a <see cref="Vector4" /> as a new <see cref="
Vector2
" />.</summary>
25
/// <returns><paramref name="value" /> reinterpreted as a new <see cref="
Vector2
" />.</returns>
26
public static
Vector2
AsVector2(this Vector4 value) => value.AsVector128().AsVector2();
src\runtime\src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\Vector128.Numerics.cs (20)
15
internal static bool All(
Vector2
vector, float value) => vector.AsVector128() ==
Vector2
.Create(value).AsVector128();
25
internal static bool AllWhereAllBitsSet(
Vector2
vector) => vector.AsVector128().AsInt32() ==
Vector2
.AllBitsSet.AsVector128().AsInt32();
35
internal static bool Any(
Vector2
vector, float value) => EqualsAny(vector.AsVector128(), Create(value, value, -1, -1));
45
internal static bool AnyWhereAllBitsSet(
Vector2
vector) => EqualsAny(vector.AsVector128().AsInt32(), Vector128<int>.AllBitsSet);
80
public static Vector128<float> AsVector128(this
Vector2
value) => Vector4.Create(value, 0, 0).AsVector128();
114
public static Vector128<float> AsVector128Unsafe(this
Vector2
value)
138
/// <summary>Reinterprets a <see langword="Vector128<Single>" /> as a new <see cref="
Vector2
" />.</summary>
140
/// <returns><paramref name="value" /> reinterpreted as a new <see cref="
Vector2
" />.</returns>
143
public static
Vector2
AsVector2(this Vector128<float> value)
146
return Unsafe.ReadUnaligned<
Vector2
>(ref address);
186
internal static int Count(
Vector2
vector, float value) => CountMatches(Equals(vector.AsVector128(), Create(value, value, -1, -1)));
196
internal static int CountWhereAllBitsSet(
Vector2
vector) => CountWhereAllBitsSet(vector.AsVector128());
224
internal static int IndexOf(
Vector2
vector, float value) => IndexOfFirstMatch(Equals(vector.AsVector128(), Create(value, value, -1, -1)));
234
internal static int IndexOfWhereAllBitsSet(
Vector2
vector) => IndexOfWhereAllBitsSet(vector.AsVector128());
244
internal static int LastIndexOf(
Vector2
vector, float value) => IndexOfLastMatch(Equals(vector.AsVector128(), Create(value, value, -1, -1)));
254
internal static int LastIndexOfWhereAllBitsSet(
Vector2
vector) => LastIndexOfWhereAllBitsSet(vector.AsVector128());
274
internal static bool None(
Vector2
vector, float value) => !EqualsAny(vector.AsVector128(), Create(value, value, -1, -1));
284
internal static bool NoneWhereAllBitsSet(
Vector2
vector) => !EqualsAny(vector.AsVector128().AsInt32(), Vector128<int>.AllBitsSet);