I am writing a general geometric algebra library (dealing exclusively with euclidean bases) for Clojure to gain a better understanding on the topic, but how to invert a general multivector continues to cause me trouble.
In the first answer to Calculating the inverse of a multivector the formula for the inverse of a general multivector $B$ is stated to be
$$ B^{-1}= \frac{B^\dagger}{BB^\dagger}. $$
If this is the case, then that indicates that $BB^\dagger$ must evaluate to a non-zero scalar for $B$ to be invertible, correct? Otherwise it appears as though the definition of an inverse must be recursive.
Expanding $BB^\dagger$ given $B = a + be_1 + ce_2 + de_1e_2$ in $G_2$ results in the equation
$$ BB^\dagger = a^2 + b^2 + c^2 + d^2 + 2(ab + cd)e_1 + 2(ac - bd)e_2. $$
Given the assumption that $BB^\dagger$ must be scalar for $B$ to have an inverse, it follows that $ ab = -cd, $ and $ ac = bd $.
Is it the case that the general multivector $B$ is only invertible when the above identities between the components hold? Or is there a more general way to derive the inverse of a multivector which works in all cases given a euclidean set of basis vectors?