/// <summary> /// Computes versor inverse of <paramref name="A"/>. /// </summary> /// <param name="A">Multivector to be inverted.</param> /// <param name="M">The metric to be used for the inverse.</param> /// <returns>Inverse of versor <paramref name="A"/></returns> /// <remarks>Computed using the versor inverse method, so <paramref name="A"/>must be a versor or a blade.</remarks> public static Multivector VersorInverse(Multivector A, Metric M) { Multivector R = A.Reverse(); Multivector s = scp(A, R, M); return VersorInverseInternal(R, s); }
/// <summary> /// Computes versor inverse of <paramref name="A"/>. /// </summary> /// <param name="A">Multivector to be inverted.</param> /// <param name="m">The metric to be used for the inverse.</param> /// <returns>Inverse of versor <paramref name="A"/>.</returns> /// <remarks>Computed using the versor inverse method, so <paramref name="A"/>must be a versor or a blade.</remarks> public static Multivector VersorInverse(Multivector A, double[] m) { Multivector R = A.Reverse(); Multivector s = scp(A, R, m); return VersorInverseInternal(R, s); }