Skip to content

Commit 6d589b7

Browse files
authored
Simplify TensorPrimitive's AbsoluteOperator (#92577)
Vector{128/256/512} all provide Abs; no need to do this manually.
1 parent 3b6142c commit 6d589b7

File tree

2 files changed

+4
-28
lines changed

2 files changed

+4
-28
lines changed

src/libraries/System.Numerics.Tensors/src/System/Numerics/Tensors/TensorPrimitives.netcore.cs

Lines changed: 3 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1256,28 +1256,10 @@ public static float Invoke(Vector512<float> x)
12561256
private readonly struct AbsoluteOperator : IUnaryOperator
12571257
{
12581258
public static float Invoke(float x) => MathF.Abs(x);
1259-
1260-
public static Vector128<float> Invoke(Vector128<float> x)
1261-
{
1262-
Vector128<uint> raw = x.AsUInt32();
1263-
Vector128<uint> mask = Vector128.Create((uint)0x7FFFFFFF);
1264-
return (raw & mask).AsSingle();
1265-
}
1266-
1267-
public static Vector256<float> Invoke(Vector256<float> x)
1268-
{
1269-
Vector256<uint> raw = x.AsUInt32();
1270-
Vector256<uint> mask = Vector256.Create((uint)0x7FFFFFFF);
1271-
return (raw & mask).AsSingle();
1272-
}
1273-
1259+
public static Vector128<float> Invoke(Vector128<float> x) => Vector128.Abs(x);
1260+
public static Vector256<float> Invoke(Vector256<float> x) => Vector256.Abs(x);
12741261
#if NET8_0_OR_GREATER
1275-
public static Vector512<float> Invoke(Vector512<float> x)
1276-
{
1277-
Vector512<uint> raw = x.AsUInt32();
1278-
Vector512<uint> mask = Vector512.Create((uint)0x7FFFFFFF);
1279-
return (raw & mask).AsSingle();
1280-
}
1262+
public static Vector512<float> Invoke(Vector512<float> x) => Vector512.Abs(x);
12811263
#endif
12821264
}
12831265

src/libraries/System.Numerics.Tensors/src/System/Numerics/Tensors/TensorPrimitives.netstandard.cs

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -572,13 +572,7 @@ public Vector<float> Invoke(Vector<float> x, Vector<float> y)
572572
private readonly struct AbsoluteOperator : IUnaryOperator
573573
{
574574
public float Invoke(float x) => MathF.Abs(x);
575-
576-
public Vector<float> Invoke(Vector<float> x)
577-
{
578-
Vector<uint> raw = Vector.AsVectorUInt32(x);
579-
Vector<uint> mask = new Vector<uint>(0x7FFFFFFF);
580-
return Vector.AsVectorSingle(raw & mask);
581-
}
575+
public Vector<float> Invoke(Vector<float> x) => Vector.Abs(x);
582576
}
583577

584578
private interface IUnaryOperator

0 commit comments

Comments
 (0)