public static Vector256 <T> AndNot <T>(Vector256 <T> left, Vector256 <T> right) where T : struct { if (typeof(T) == typeof(float)) { if (Avx.IsSupported) { return(Avx.AndNot(left.AsSingle(), right.AsSingle()).As <float, T>()); } } if (typeof(T) == typeof(double)) { if (Avx.IsSupported) { return(Avx.AndNot(left.AsDouble(), right.AsDouble()).As <double, T>()); } } if (Avx.IsSupported) { return(Avx.AndNot(left.AsSingle(), right.AsSingle()).As <float, T>()); } return(SoftwareFallbacks.AndNot_Software(left, right)); }
public static Vector128 <T> And <T>(Vector128 <T> left, Vector128 <T> right) where T : struct { if (typeof(T) == typeof(float)) { if (Sse.IsSupported) { return(Sse.And(left.AsSingle(), right.AsSingle()).As <float, T>()); } } if (typeof(T) == typeof(double)) { if (Sse2.IsSupported) { return(Sse2.And(left.AsDouble(), right.AsDouble()).As <double, T>()); } if (Sse.IsSupported) { return(Sse.And(left.AsSingle(), right.AsSingle()).As <float, T>()); } } if (Sse2.IsSupported) { return(Sse2.And(left.AsByte(), right.AsByte()).As <byte, T>()); } if (Sse.IsSupported) { return(Sse.And(left.AsSingle(), right.AsSingle()).As <float, T>()); } return(SoftwareFallbacks.And_Software(left, right)); }
public static Vector4UInt64 Or(Vector4UInt64Param1_3 left, Vector4UInt64Param1_3 right) { if (Avx2.IsSupported) { return(Avx2.Or(left, right)); } return(SoftwareFallbacks.Or_Software(left, right)); }
public static Vector4UInt32 AndNot(Vector4UInt32Param1_3 left, Vector4UInt32Param1_3 right) { if (Sse2.IsSupported) { return(Sse2.AndNot(left, right)); } return(SoftwareFallbacks.AndNot_Software(left, right)); }
public static Vector4Single AndNot(Vector4SingleParam1_3 left, Vector4SingleParam1_3 right) { if (Sse.IsSupported) { return(Sse.AndNot(left, right)); } return(SoftwareFallbacks.AndNot_Software(left, right)); }
public static Vector4F Xor(Vector4FParam1_3 left, Vector4FParam1_3 right) { if (Sse.IsSupported) { return(Sse.Xor(left, right)); } return(SoftwareFallbacks.Xor_Software(left, right)); }
public static Vector4UInt32 Not(Vector4UInt32Param1_3 vector) { if (Sse2.IsSupported) { Vector4UInt32 mask = Vector128.Create(-1, -1, -1, -1).AsUInt32(); return(Sse2.AndNot(vector, mask)); } return(SoftwareFallbacks.Not_Software(vector)); }
public static Vector4UInt64 Not(Vector4UInt64Param1_3 vector) { if (Avx2.IsSupported) { Vector4UInt64 mask = Vector256.Create(-1, -1, -1, -1).AsUInt64(); return(Avx2.AndNot(vector, mask)); } return(SoftwareFallbacks.Not_Software(vector)); }
public static Vector4Single Not(Vector4SingleParam1_3 vector) { if (Sse.IsSupported) { Vector4Single mask = Vector128.Create(-1, -1, -1, -1).AsSingle(); return(Sse.AndNot(vector, mask)); } return(SoftwareFallbacks.Not_Software(vector)); }
public static Vector128 <float> CrossProduct4D_Software(Vector128 <float> one, Vector128 <float> two, Vector128 <float> three) => SoftwareFallbacks.CrossProduct4D_Software(one, two, three);
public static Vector256 <double> CrossProduct4D(Vector256 <double> one, Vector256 <double> two, Vector256 <double> three) { // hardware return(SoftwareFallbacks.CrossProduct4D_Software(one, two, three)); }