Пример #1
0
 def test_log_2d_radial_symmetry(self):
     mu_angle = np.random.uniform(0, RIGHT_ANGLE)
     mu = angle_to_vector(mu_angle)
     kappa = 0.5
     max_angle = min(acos(mu[0]), RIGHT_ANGLE - acos(mu[0]))
     angle_perturb = np.random.uniform(0, max_angle)
     angle_1 = max_angle + angle_perturb
     angle_2 = max_angle - angle_perturb
     x1 = np.array([cos(angle_1), sin(angle_1)])
     x2 = np.array([cos(angle_2), sin(angle_2)])
     print(mu_angle, max_angle, angle_perturb, angle_1, angle_2)
     self.assertAlmostEqual(vmf_log_pdf(x1, mu, kappa), vmf_log_pdf(x2, mu, kappa), delta=0.1) # There can be a high delta here due to numerical error
Пример #2
0
 def test_log_2d_radial_symmetry(self):
     mu_angle = np.random.uniform(0, RIGHT_ANGLE)
     mu = angle_to_vector(mu_angle)
     kappa = 0.5
     max_angle = min(acos(mu[0]), RIGHT_ANGLE - acos(mu[0]))
     angle_perturb = np.random.uniform(0, max_angle)
     angle_1 = max_angle + angle_perturb
     angle_2 = max_angle - angle_perturb
     x1 = np.array([cos(angle_1), sin(angle_1)])
     x2 = np.array([cos(angle_2), sin(angle_2)])
     print(mu_angle, max_angle, angle_perturb, angle_1, angle_2)
     self.assertAlmostEqual(
         vmf_log_pdf(x1, mu, kappa), vmf_log_pdf(x2, mu, kappa),
         delta=0.1)  # There can be a high delta here due to numerical error
Пример #3
0
 def test_3d_log_radial_symmetry(self):
     kappa = 0.5
     mu = np.array([1, 0, 0])
     x1 = np.array([0, 1, 0])
     x2 = np.array([0, 0, 1])
     self.assertAlmostEqual(vmf_log_pdf(x1, mu, kappa), vmf_log_pdf(x2, mu, kappa), delta=0.01)
     self.assertAlmostEqual(vmf_log_pdf(-x1, mu, kappa), vmf_log_pdf(-x2, mu, kappa), delta=0.01)
     self.assertAlmostEqual(vmf_log_pdf(-x1, mu, kappa), vmf_log_pdf(x2, mu, kappa), delta=0.01)
Пример #4
0
 def test_3d_log_radial_symmetry(self):
     kappa = 0.5
     mu = np.array([1, 0, 0])
     x1 = np.array([0, 1, 0])
     x2 = np.array([0, 0, 1])
     self.assertAlmostEqual(vmf_log_pdf(x1, mu, kappa),
                            vmf_log_pdf(x2, mu, kappa),
                            delta=0.01)
     self.assertAlmostEqual(vmf_log_pdf(-x1, mu, kappa),
                            vmf_log_pdf(-x2, mu, kappa),
                            delta=0.01)
     self.assertAlmostEqual(vmf_log_pdf(-x1, mu, kappa),
                            vmf_log_pdf(x2, mu, kappa),
                            delta=0.01)