From 39610cd3b63e412258add46377039bfa0bd50575 Mon Sep 17 00:00:00 2001 From: Stephen Toub Date: Thu, 1 Feb 2024 21:10:26 -0500 Subject: [PATCH] Enable Sigmoid vectorization for double Now that ExpOperator is vectorized for double, we can enable Sigmoid --- .../System/Numerics/Tensors/netcore/TensorPrimitives.netcore.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libraries/System.Numerics.Tensors/src/System/Numerics/Tensors/netcore/TensorPrimitives.netcore.cs b/src/libraries/System.Numerics.Tensors/src/System/Numerics/Tensors/netcore/TensorPrimitives.netcore.cs index adcf52563bebc3..6eeb3b8f0b7dcf 100644 --- a/src/libraries/System.Numerics.Tensors/src/System/Numerics/Tensors/netcore/TensorPrimitives.netcore.cs +++ b/src/libraries/System.Numerics.Tensors/src/System/Numerics/Tensors/netcore/TensorPrimitives.netcore.cs @@ -14722,7 +14722,7 @@ private static Vector512 ElementWiseSelect(Vector512 mask, Vector512 /// 1 / (1 + T.Exp(-x)) internal readonly struct SigmoidOperator : IUnaryOperator where T : IExponentialFunctions { - public static bool Vectorizable => typeof(T) == typeof(float); + public static bool Vectorizable => ExpOperator.Vectorizable; public static T Invoke(T x) => T.One / (T.One + T.Exp(-x)); public static Vector128 Invoke(Vector128 x) => Vector128.Create(T.One) / (Vector128.Create(T.One) + ExpOperator.Invoke(-x)); public static Vector256 Invoke(Vector256 x) => Vector256.Create(T.One) / (Vector256.Create(T.One) + ExpOperator.Invoke(-x));