code: def mag_rotation(RAW_IMU, inclination, declination):
      '''return an attitude rotation matrix that is consistent with the current mag
         vector'''
      m_body = Vector3(RAW_IMU.xmag, RAW_IMU.ymag, RAW_IMU.zmag)
      m_earth = Vector3(m_body.length(), 0, 0)
  
      r = Matrix3()
      r.from_euler(0, -radians(inclination), radians(declination))
      m_earth = r * m_earth
  
      r.from_two_vectors(m_earth, m_body)
      return f mag_rotation(RAW_IMU, inclination, declination):
      '''return an attitude rotation matrix that is consistent with the current mag
         vector'''
      m_body = Vector3(RAW_IMU.xmag, RAW_IMU.ymag, RAW_IMU.zmag)
      m_earth = Vector3(m_body.length(), 0, 0)
  
      r = Matrix3()
      r.from_euler(0, -radians(inclination), radians(declination))
      m_earth = r * m_earth
  
      r.from_two_vectors(m_earth, m_body)
      return r
docs: return an attitude rotation matrix that is consistent with the current mag
         vector