docstr: Check that `so3_rotation_angle(R, cos_angle=False).cos()`
  is the same as `so3_rotation_angle(R, cos_angle=True)` for
  a batch of randomly generated rotation matrices `R`.
docstr_tok: ["Check","that","`","so3_rotation_angle","(","R",",","cos_angle=False",")",".cos","(",")","`","is","the","same","as","`","so3_rotation_angle","(","R",",","cos_angle=True",")","`","for","a","batch","of","randomly","generated","rotation","matrices","`","R","`","."]
code: def test_so3_cos_angle(self, batch_size: int = 100):
      """
      Check that `so3_rotation_angle(R, cos_angle=False).cos()`
      is the same as `so3_rotation_angle(R, cos_angle=True)` for
      a batch of randomly generated rotation matrices `R`.
      """
      rot = TestSO3.init_rot(batch_size=batch_size)
      angles = so3_rotation_angle(rot, cos_angle=False).cos()
      angles_ = so3_rotation_angle(rot, cos_angle=True)
      self.assertClose(angles, angles_, atol=1e-4)
  
imports: import math
  import unittest
  from distutils.version import LooseVersion
  import numpy
  import torch
  from pytorch3d.transforms.so3 import hat, so3_exp_map, so3_log_map, so3_relative_angle, so3_rotation_angle
  from .common_testing import TestCaseMixin
label_desc: Use image node_id 13 for calling the TestSO3 obj's underlying member method code with example usage: obj.test_so3_cos_angle(batch_size) without return types