private static double K(int l, int m) { var lpm = Functions.Factorial(l + Functions.Abs(m)); var lmm = Functions.Factorial(l - Functions.Abs(m)); return(Functions.Sqrt(((2 * l + 1) * lmm) / (4 * Constants.Pi * lpm))); }
/// <summary> /// Interpolates between two unit complex numbers, using spherical linear interpolation. /// </summary> /// <param name="start">Start complex number.</param> /// <param name="end">End complex number.</param> /// <param name="amount">Value between 0 and 1 indicating the weight of <paramref name="end"/>.</param> /// <returns>The spherical linear interpolation of the two complex numbers.</returns> /// <remarks> /// Passing <paramref name="amount"/> a value of 0 will cause <paramref name="start"/> to be returned; a value of 1 will cause <paramref name="end"/> to be returned. /// </remarks> public Complex Slerp(Complex start, Complex end, double amount) { double cosTheta = Dot(start, end); //Cannot use slerp, use lerp instead if (Functions.Abs(cosTheta) - 1.0 < double.Epsilon) { return(Lerp(start, end, amount)); } double theta = Functions.Acos(cosTheta); double sinTheta = Functions.Sin(theta); double t0 = Functions.Sin((1.0 - amount) * theta) / sinTheta; double t1 = Functions.Sin(amount * theta) / sinTheta; return(t0 * start + t1 * end); }
public static Vector2sb Abs(Vector2sb value) { return(new Vector2sb(Functions.Abs(value.X), Functions.Abs(value.Y))); }
/// <summary> /// Returns the absolute value (per element). /// </summary> /// <param name="value">A matrix.</param> /// <returns>The absolute value (per element) of value.</returns> public static Matrix3x2d Abs(Matrix3x2d value) { return(new Matrix3x2d(Functions.Abs(value.M11), Functions.Abs(value.M21), Functions.Abs(value.M31), Functions.Abs(value.M12), Functions.Abs(value.M22), Functions.Abs(value.M32))); }
/// <summary> /// Returns the absolute value (per component). /// </summary> /// <param name="value">A vector.</param> /// <returns>The absolute value (per component) of value.</returns> public static Vector8l Abs(Vector8l value) { return(new Vector8l(Functions.Abs(value.V0), Functions.Abs(value.V1), Functions.Abs(value.V2), Functions.Abs(value.V3), Functions.Abs(value.V4), Functions.Abs(value.V5), Functions.Abs(value.V6), Functions.Abs(value.V7))); }
/// <summary> /// Returns the absolute value (per element). /// </summary> /// <param name="value">A matrix.</param> /// <returns>The absolute value (per element) of value.</returns> public static Matrix4x2f Abs(Matrix4x2f value) { return(new Matrix4x2f(Functions.Abs(value.M11), Functions.Abs(value.M21), Functions.Abs(value.M31), Functions.Abs(value.M41), Functions.Abs(value.M12), Functions.Abs(value.M22), Functions.Abs(value.M32), Functions.Abs(value.M42))); }
/// <summary> /// Returns the absolute value (per element). /// </summary> /// <param name="value">A matrix.</param> /// <returns>The absolute value (per element) of value.</returns> public static Matrix2x3f Abs(Matrix2x3f value) { return(new Matrix2x3f(Functions.Abs(value.M11), Functions.Abs(value.M21), Functions.Abs(value.M12), Functions.Abs(value.M22), Functions.Abs(value.M13), Functions.Abs(value.M23))); }
/// <summary> /// Returns the absolute value (per element). /// </summary> /// <param name="value">A matrix.</param> /// <returns>The absolute value (per element) of value.</returns> public static Matrix3x4d Abs(Matrix3x4d value) { return(new Matrix3x4d(Functions.Abs(value.M11), Functions.Abs(value.M21), Functions.Abs(value.M31), Functions.Abs(value.M12), Functions.Abs(value.M22), Functions.Abs(value.M32), Functions.Abs(value.M13), Functions.Abs(value.M23), Functions.Abs(value.M33), Functions.Abs(value.M14), Functions.Abs(value.M24), Functions.Abs(value.M34))); }
public static Vector2ul Abs(Vector2ul value) { return(new Vector2ul(Functions.Abs(value.X), Functions.Abs(value.Y))); }
/// <summary> /// Returns the absolute value (per element). /// </summary> /// <param name="value">A matrix.</param> /// <returns>The absolute value (per element) of value.</returns> public static Matrix4x3d Abs(Matrix4x3d value) { return(new Matrix4x3d(Functions.Abs(value.M11), Functions.Abs(value.M21), Functions.Abs(value.M31), Functions.Abs(value.M41), Functions.Abs(value.M12), Functions.Abs(value.M22), Functions.Abs(value.M32), Functions.Abs(value.M42), Functions.Abs(value.M13), Functions.Abs(value.M23), Functions.Abs(value.M33), Functions.Abs(value.M43))); }