コード例 #1
0
 def test_gaussian_chi_p(self):
     self.assertTrue(
         xp.all(
             spin.gaussian_chi_p(
                 dict(chi_p=xp.linspace(-2, 2, 1001)), mu_chi_p=0.4, sigma_chi_p=0.1
             )
             == truncnorm(xp.linspace(-2, 2, 1001), mu=0.4, sigma=0.1, low=0, high=1)
         )
     )
コード例 #2
0
 def setUp(self):
     self.a_array = xp.linspace(0, 1, 1000)
     self.costilts = xp.linspace(-1, 1, 1000)
     self.test_data = dict(
         a_1=xp.einsum('i,j->ij', self.a_array, xp.ones_like(self.a_array)),
         a_2=xp.einsum('i,j->ji', self.a_array, xp.ones_like(self.a_array)),
         cos_tilt_1=xp.einsum('i,j->ij', self.costilts,
                              xp.ones_like(self.costilts)),
         cos_tilt_2=xp.einsum('i,j->ji', self.costilts,
                              xp.ones_like(self.costilts)))
     self.prior = PriorDict(
         dict(amax=Uniform(0.3, 1), alpha_chi=Uniform(1, 4),
              beta_chi=Uniform(1, 4), xi_spin=Uniform(0, 1),
              sigma_spin=Uniform(0, 4)))
     self.n_test = 100
コード例 #3
0
 def test_2d_gaussian_normalized(self):
     model = spin.GaussianChiEffChiP()
     chi_eff, chi_p = xp.meshgrid(xp.linspace(-1, 1, 501), xp.linspace(0, 1, 300))
     parameters = dict(
         mu_chi_eff=0.1,
         mu_chi_p=0.3,
         sigma_chi_eff=0.6,
         sigma_chi_p=0.5,
         spin_covariance=0.9,
     )
     prob = model(dict(chi_eff=chi_eff, chi_p=chi_p), **parameters)
     self.assertAlmostEqual(
         xp.trapz(xp.trapz(prob, xp.linspace(-1, 1, 501)), xp.linspace(0, 1, 300)),
         1,
         5,
     )
コード例 #4
0
 def test_2d_gaussian_no_covariance_matches_independent(self):
     model = spin.GaussianChiEffChiP()
     data = dict(chi_eff=xp.linspace(-2, 2, 1001),
                 chi_p=xp.linspace(0, 2, 1001))
     self.assertTrue(
         xp.all(
             spin.gaussian_chi_eff(data, mu_chi_eff=0.4, sigma_chi_eff=0.1)
             * spin.gaussian_chi_p(data, mu_chi_p=0.4, sigma_chi_p=0.1) ==
             model(
                 data,
                 mu_chi_eff=0.4,
                 mu_chi_p=0.4,
                 sigma_chi_eff=0.1,
                 sigma_chi_p=0.1,
                 spin_covariance=0.0,
             )))
コード例 #5
0
 def setUp(self):
     self.costilts = xp.linspace(-1, 1, 1000)
     self.test_data = dict(
         cos_tilt_1=xp.einsum("i,j->ij", self.costilts, xp.ones_like(self.costilts)),
         cos_tilt_2=xp.einsum("i,j->ji", self.costilts, xp.ones_like(self.costilts)),
     )
     self.prior = PriorDict(dict(xi_spin=Uniform(0, 1), sigma_spin=Uniform(0, 4)))
     self.n_test = 100
コード例 #6
0
 def test_2d_gaussian_no_covariance_matches_independent(self):
     model = spin.GaussianChiEffChiP()
     chi_eff, chi_p = xp.meshgrid(xp.linspace(-1, 1, 501), xp.linspace(0, 1, 300))
     data = dict(chi_eff=chi_eff, chi_p=chi_p)
     self.assertTrue(
         xp.all(
             spin.gaussian_chi_eff(data, mu_chi_eff=0.6, sigma_chi_eff=0.2)
             * spin.gaussian_chi_p(data, mu_chi_p=0.4, sigma_chi_p=0.1)
             == model(
                 data,
                 mu_chi_eff=0.6,
                 mu_chi_p=0.4,
                 sigma_chi_eff=0.2,
                 sigma_chi_p=0.1,
                 spin_covariance=0.0,
             )
         )
     )
コード例 #7
0
 def setUp(self):
     self.a_array = xp.linspace(0, 1, 1000)
     self.test_data = dict(
         a_1=xp.einsum("i,j->ij", self.a_array, xp.ones_like(self.a_array)),
         a_2=xp.einsum("i,j->ji", self.a_array, xp.ones_like(self.a_array)),
     )
     self.prior = PriorDict(
         dict(amax=Uniform(0.3, 1), alpha_chi=Uniform(1, 4), beta_chi=Uniform(1, 4))
     )
     self.n_test = 100
コード例 #8
0
 def __init__(self):
     self.retention_file = self.__retention_file__()
     branching_dataset = np.load(
         self.retention_file,
         allow_pickle=True,
         encoding="latin1",
     )
     self.a_1_array = xp.asarray(branching_dataset["a1"])
     self.a_2_array = xp.asarray(branching_dataset["a2"])
     self.mass_ratio_array = xp.asarray(branching_dataset["q"])
     self.retention_fraction = xp.asarray(
         branching_dataset["interpolated_retention_fraction"])
     self.mass_1s = xp.linspace(2, 200, 2000)
     self.mass_ratio_grid, self.mass_1_grid = xp.meshgrid(
         self.mass_ratio_array, self.mass_1s)
     self.first_generation_data = dict(mass_1=self.mass_1_grid,
                                       mass_ratio=self.mass_ratio_grid)
コード例 #9
0
 def setUp(self):
     model = lambda x: xp.ones_like(x['a'])
     data = dict(a=xp.linspace(0, 1, 1000), vt=2)
     self.n_test = 100
     self.vt = vt.GridVT(model, data)
コード例 #10
0
 def setUp(self):
     self.zs = xp.linspace(1e-3, 1, 1000)
     self.test_data = dict(redshift=self.zs)
     self.n_test = 100
コード例 #11
0
 def setUp(self) -> None:
     model = (lambda dataset: xp.exp(-((dataset["a"] - 0.5)**2) / 2) /
              (2 * xp.pi)**0.5)
     self.data = dict(a=xp.linspace(0, 1, 1000), prior=xp.ones(1000), vt=2)
     self.vt = vt.ResamplingVT(data=self.data, model=model, n_events=0)