public static float Pow(float x, float y) { if (x < 0.0F) { throw new ArgumentOutOfRangeException(nameof(x)); } if (x == 0.0F) { if (y <= 0.0F) { throw new ArgumentOutOfRangeException(nameof(y)); } return(0.0F); } return(MathV.Exp2(MathV.Log2(x) * y)); }
public static Vector128 <float> Pow(Vector128 <float> x, Vector128 <float> y) { return(MathV.Exp2(Avx.Multiply(MathV.Log2(x), y))); }
public static float Log10(float value) { return(MathV.Log2ToLog10 * MathV.Log2(value)); }
public unsafe static Vector128 <float> Log10(Vector128 <float> value) { return(Avx.Multiply(AvxExtensions.BroadcastScalarToVector128(MathV.Log2ToLog10), MathV.Log2(value))); }
public static float Ln(float value) { return(MathV.Log2ToNaturalLog * MathV.Log2(value)); }