# File lib/facets/more/quaternion.rb, line 511
  def tan
    vec=self.vector; v=vec.abs; if v==0; return Quaternion(Math::tan(@re)); end
    u = vec/v; e=Math::exp(v); er=1/e; c=e+er; s=e-er
    co=Math::cos(@re); si=Math::sin(@re);  (si*c+u*co*s)/(co*c-u*si*s)
  end