code: function() {
  
        // Q^-1 := Q' / |Q|^2
        //       = [w / (w^2 + |v|^2), -v / (w^2 + |v|^2)]
  
        // Proof:
        // Q * Q^-1 = [w, v] * [w / (w^2 + |v|^2), -v / (w^2 + |v|^2)]
        //          = [1, 0]
        // Q^-1 * Q = [w / (w^2 + |v|^2), -v / (w^2 + |v|^2)] * [w, v]
        //          = [1, 0].
  
        var w = this['w'];
        var x = this['x'];
        var y = this['y'];
        var z = this['z'];
  
        var normSq = w * w + x * x + y * y + z * z;
  
        if (normSq === 0) {
          return Quaternion['ZERO']; // TODO: Is the result zero or one when the norm is zero?
        }
  
        normSq = 1 / normSq;
  
        return new Quaternion(w * normSq, -x * normSq, -y * normSq, -z * normSq);
      }
docs: Calculates the inverse of a quat for non-normalized quats such that
  Q^-1 * Q = 1 and Q * Q^-1 = 1
  
  @returns {Quaternion}