class_docstr: Quaternion(w=1, x=0, y=0, z=0, normalize=True)
  
  A quaternion is a mathematically convenient way to
  describe rotations.
class_docstr_tok: ["Quaternion","(","w=1",",","x=0",",","y=0",",","z=0",",","normalize=True",")","A","quaternion","is","a","mathematically","convenient","way","to","describe","rotations","."]
docstr: Returns the natural logarithm of the quaternion. 
  (not tested)
docstr_tok: ["Returns","the","natural","logarithm","of","the","quaternion",".","(","not","tested",")"]
code: def log(self):
      """Returns the natural logarithm of the quaternion.
      (not tested)
      """
      # Init
      norm = self.norm()
      vecNorm = self.x**2 + self.y**2 + self.z**2
      tmp = self.w / norm
      q = Quaternion()
  
      # Calculate
      q.w = np.log(norm)
      q.x = np.log(norm) * self.x * np.arccos(tmp) / vecNorm
      q.y = np.log(norm) * self.y * np.arccos(tmp) / vecNorm
      q.z = np.log(norm) * self.z * np.arccos(tmp) / vecNorm
  
      return q
  
imports: import numpy
label_desc: Use image node_id 10 for calling the Quaternion obj's underlying member method code with example usage: obj.log() and returns: q