    # File lib/facets/more/quaternion.rb, line 265
      def Quaternion::polar(m,t1=0,t2=0,t3=0)
        # q=
        #   m*cos(t1)
        #   +m*sin(t1)cos(t2)i
        #   +m*sin(t1)sin(t2)cos(t3)j
        #   +m*sin(t1)sin(t2)sin(t3)k
        # m is known as the magnitude,
        # t1 is the amplitude(or angle) of the quaternion,
        # t2 and t3 are the latitude (or co-latitude) and longitude respectively.
        if m.kind_of?(Array) and (m.size==4); t1=m[1]; t2=m[2]; t3=m[3]; m=m[0]; end;
        s=m
        r_part=s*Math.cos(t1); s=s*Math.sin(t1)
        i_part=s*Math.cos(t2); s=s*Math.sin(t2)
        j_part=s*Math.cos(t3); k_part=s*Math.sin(t3)
        new(r_part, i_part, j_part, k_part)
      end