flipcosmo 1.2.1__py3-none-any.whl → 1.2.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- flip/__init__.py +1 -1
- flip/data_vector/__init__.py +1 -1
- flip/data_vector/basic.py +115 -80
- flip/data_vector/galaxypv_vectors.py +131 -126
- flip/data_vector/snia_vectors.py +64 -65
- {flipcosmo-1.2.1.dist-info → flipcosmo-1.2.2.dist-info}/METADATA +2 -2
- {flipcosmo-1.2.1.dist-info → flipcosmo-1.2.2.dist-info}/RECORD +11 -11
- /flip/{data → data_vector}/gridding.py +0 -0
- {flipcosmo-1.2.1.dist-info → flipcosmo-1.2.2.dist-info}/WHEEL +0 -0
- {flipcosmo-1.2.1.dist-info → flipcosmo-1.2.2.dist-info}/licenses/LICENSE +0 -0
- {flipcosmo-1.2.1.dist-info → flipcosmo-1.2.2.dist-info}/top_level.txt +0 -0
flip/__init__.py
CHANGED
flip/data_vector/__init__.py
CHANGED
flip/data_vector/basic.py
CHANGED
|
@@ -43,8 +43,11 @@ class DataVector(abc.ABC):
|
|
|
43
43
|
_kind (str): One of "velocity", "density" or "cross".
|
|
44
44
|
"""
|
|
45
45
|
|
|
46
|
-
_free_par = []
|
|
47
46
|
_kind = "" # 'velocity', 'density' or 'cross'
|
|
47
|
+
_needed_keys = []
|
|
48
|
+
_free_par = []
|
|
49
|
+
_number_dimension_observation_covariance = 0
|
|
50
|
+
_parameters_observation_covariance = []
|
|
48
51
|
|
|
49
52
|
@property
|
|
50
53
|
def conditional_free_par(self):
|
|
@@ -109,16 +112,6 @@ class DataVector(abc.ABC):
|
|
|
109
112
|
"""
|
|
110
113
|
pass
|
|
111
114
|
|
|
112
|
-
def _check_keys(self, data):
|
|
113
|
-
"""Validate that `data` contains all required keys.
|
|
114
|
-
|
|
115
|
-
Raises:
|
|
116
|
-
ValueError: When a required key is missing.
|
|
117
|
-
"""
|
|
118
|
-
for k in self.needed_keys:
|
|
119
|
-
if k not in data:
|
|
120
|
-
raise ValueError(f"{k} field is needed in data")
|
|
121
|
-
|
|
122
115
|
def __init__(self, data, covariance_observation=None, **kwargs):
|
|
123
116
|
"""Initialize data vector with data and optional observation covariance.
|
|
124
117
|
|
|
@@ -129,6 +122,8 @@ class DataVector(abc.ABC):
|
|
|
129
122
|
"""
|
|
130
123
|
self._covariance_observation = covariance_observation
|
|
131
124
|
self._check_keys(data)
|
|
125
|
+
self._number_datapoints = len(data[self.needed_keys[0]])
|
|
126
|
+
self.check_covariance_observation()
|
|
132
127
|
self._data = copy.copy(data)
|
|
133
128
|
self._kwargs = kwargs
|
|
134
129
|
|
|
@@ -138,6 +133,31 @@ class DataVector(abc.ABC):
|
|
|
138
133
|
if jax_installed:
|
|
139
134
|
self.give_data_and_variance_jit = jit(self.give_data_and_variance)
|
|
140
135
|
|
|
136
|
+
def check_covariance_observation(self):
|
|
137
|
+
if self._covariance_observation is not None:
|
|
138
|
+
if self._covariance_observation.shape != (
|
|
139
|
+
self._number_dimension_observation_covariance * self._number_datapoints,
|
|
140
|
+
self._number_dimension_observation_covariance * self._number_datapoints,
|
|
141
|
+
):
|
|
142
|
+
raise ValueError(
|
|
143
|
+
f"Observation covariance matrix should be {self._number_dimension_observation_covariance}N "
|
|
144
|
+
f"x {self._number_dimension_observation_covariance}N"
|
|
145
|
+
)
|
|
146
|
+
log.add(
|
|
147
|
+
f"Loading observation covariance matrix, "
|
|
148
|
+
f"expecting {self._parameters_observation_covariance} parameters."
|
|
149
|
+
)
|
|
150
|
+
|
|
151
|
+
def _check_keys(self, data):
|
|
152
|
+
"""Validate that `data` contains all required keys.
|
|
153
|
+
|
|
154
|
+
Raises:
|
|
155
|
+
ValueError: When a required key is missing.
|
|
156
|
+
"""
|
|
157
|
+
for k in self.needed_keys:
|
|
158
|
+
if k not in data:
|
|
159
|
+
raise ValueError(f"{k} field is needed in data")
|
|
160
|
+
|
|
141
161
|
def get_masked_data_and_cov(self, bool_mask):
|
|
142
162
|
"""Return masked data and corresponding masked observation covariance.
|
|
143
163
|
|
|
@@ -189,6 +209,9 @@ class DataVector(abc.ABC):
|
|
|
189
209
|
class Dens(DataVector):
|
|
190
210
|
_kind = "density"
|
|
191
211
|
_needed_keys = ["density", "density_error"]
|
|
212
|
+
_free_par = []
|
|
213
|
+
_number_dimension_observation_covariance = 1
|
|
214
|
+
_parameters_observation_covariance = ["density"]
|
|
192
215
|
|
|
193
216
|
def give_data_and_variance(self, *args):
|
|
194
217
|
"""Return density data and diagonal variance from `density_error`.
|
|
@@ -196,12 +219,21 @@ class Dens(DataVector):
|
|
|
196
219
|
Returns:
|
|
197
220
|
tuple: (density, density_error^2).
|
|
198
221
|
"""
|
|
222
|
+
|
|
223
|
+
if self._covariance_observation is not None:
|
|
224
|
+
return self._data["density"], self._covariance_observation
|
|
199
225
|
return self._data["density"], self._data["density_error"] ** 2
|
|
200
226
|
|
|
227
|
+
def __init__(self, data, covariance_observation=None):
|
|
228
|
+
super().__init__(data, covariance_observation=covariance_observation)
|
|
229
|
+
|
|
201
230
|
|
|
202
231
|
class DirectVel(DataVector):
|
|
203
232
|
_kind = "velocity"
|
|
204
233
|
_needed_keys = ["velocity"]
|
|
234
|
+
_free_par = []
|
|
235
|
+
_number_dimension_observation_covariance = 1
|
|
236
|
+
_parameters_observation_covariance = ["velocity"]
|
|
205
237
|
|
|
206
238
|
@property
|
|
207
239
|
def conditional_needed_keys(self):
|
|
@@ -253,66 +285,12 @@ class DirectVel(DataVector):
|
|
|
253
285
|
self._covariance_observation = velocity_variance
|
|
254
286
|
|
|
255
287
|
|
|
256
|
-
class DensVel(DataVector):
|
|
257
|
-
_kind = "cross"
|
|
258
|
-
|
|
259
|
-
@property
|
|
260
|
-
def needed_keys(self):
|
|
261
|
-
return self.densities.needed_keys + self.velocities.needed_keys
|
|
262
|
-
|
|
263
|
-
@property
|
|
264
|
-
def free_par(self):
|
|
265
|
-
return self.densities.free_par + self.velocities.free_par
|
|
266
|
-
|
|
267
|
-
def give_data_and_variance(self, *args):
|
|
268
|
-
data_density, density_variance = self.densities.give_data_and_variance(*args)
|
|
269
|
-
data_velocity, velocity_variance = self.velocities.give_data_and_variance(*args)
|
|
270
|
-
data = jnp.hstack((data_density, data_velocity))
|
|
271
|
-
variance = jnp.hstack((density_variance, velocity_variance))
|
|
272
|
-
return data, variance
|
|
273
|
-
|
|
274
|
-
def __init__(self, density_vector, velocity_vector):
|
|
275
|
-
self.densities = density_vector
|
|
276
|
-
self.velocities = velocity_vector
|
|
277
|
-
|
|
278
|
-
if self.velocities._covariance_observation is not None:
|
|
279
|
-
raise NotImplementedError(
|
|
280
|
-
"Velocity with observed covariance + density not implemented yet"
|
|
281
|
-
)
|
|
282
|
-
|
|
283
|
-
if jax_installed:
|
|
284
|
-
self.give_data_and_variance_jit = jit(self.give_data_and_variance)
|
|
285
|
-
|
|
286
|
-
def compute_covariance(self, model, power_spectrum_dict, **kwargs):
|
|
287
|
-
|
|
288
|
-
coords_dens = np.vstack(
|
|
289
|
-
(
|
|
290
|
-
self.densities.data["ra"],
|
|
291
|
-
self.densities.data["dec"],
|
|
292
|
-
self.densities.data["rcom_zobs"],
|
|
293
|
-
)
|
|
294
|
-
)
|
|
295
|
-
|
|
296
|
-
coords_vel = np.vstack(
|
|
297
|
-
(
|
|
298
|
-
self.velocities.data["ra"],
|
|
299
|
-
self.velocities.data["dec"],
|
|
300
|
-
self.velocities.data["rcom_zobs"],
|
|
301
|
-
)
|
|
302
|
-
)
|
|
303
|
-
return CovMatrix.init_from_flip(
|
|
304
|
-
model,
|
|
305
|
-
"full",
|
|
306
|
-
power_spectrum_dict,
|
|
307
|
-
coordinates_density=coords_dens,
|
|
308
|
-
coordinates_velocity=coords_vel,
|
|
309
|
-
**kwargs,
|
|
310
|
-
)
|
|
311
|
-
|
|
312
|
-
|
|
313
288
|
class VelFromHDres(DataVector):
|
|
289
|
+
_kind = "velocity"
|
|
314
290
|
_needed_keys = ["dmu", "zobs"]
|
|
315
291
|
_free_par = ["M_0"]
|
|
292
|
+
_number_dimension_observation_covariance = 1
|
|
293
|
+
_parameters_observation_covariance = ["dmu"]
|
|
316
294
|
|
|
317
295
|
@property
|
|
318
296
|
def conditional_needed_keys(self):
|
|
@@ -331,25 +309,23 @@ class VelFromHDres(DataVector):
|
|
|
331
309
|
distance_modulus_difference_to_velocity * self._data["dmu"]
|
|
332
310
|
- distance_modulus_difference_to_velocity * parameter_values_dict["M_0"]
|
|
333
311
|
)
|
|
334
|
-
if self._covariance_observation is None and "dmu_error" in self._data:
|
|
335
|
-
velocity_error = (
|
|
336
|
-
distance_modulus_difference_to_velocity * self._data["dmu_error"]
|
|
337
|
-
)
|
|
338
|
-
return velocity, velocity_error**2
|
|
339
312
|
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
313
|
+
if self._covariance_observation is None:
|
|
314
|
+
velocity_variance = (
|
|
315
|
+
distance_modulus_difference_to_velocity * self._data["dmu_error"]
|
|
316
|
+
) ** 2
|
|
344
317
|
else:
|
|
345
|
-
|
|
346
|
-
|
|
318
|
+
conversion_matrix = jnp.diag(distance_modulus_difference_to_velocity)
|
|
319
|
+
|
|
320
|
+
velocity_variance = (
|
|
321
|
+
conversion_matrix @ self._covariance_observation @ conversion_matrix.T
|
|
347
322
|
)
|
|
348
323
|
|
|
324
|
+
return velocity, velocity_variance
|
|
325
|
+
|
|
349
326
|
def __init__(
|
|
350
327
|
self, data, covariance_observation=None, velocity_estimator="full", **kwargs
|
|
351
328
|
):
|
|
352
|
-
# Compute conversion using provided input data, not uninitialized self._data
|
|
353
329
|
|
|
354
330
|
self.velocity_estimator = velocity_estimator
|
|
355
331
|
|
|
@@ -360,6 +336,8 @@ class VelFromIntrinsicScatter(DataVector):
|
|
|
360
336
|
_kind = "velocity"
|
|
361
337
|
_needed_keys = ["zobs"]
|
|
362
338
|
_free_par = ["sigma_M"]
|
|
339
|
+
_number_dimension_observation_covariance = 0
|
|
340
|
+
_parameters_observation_covariance = []
|
|
363
341
|
|
|
364
342
|
def give_data_and_variance(self, parameter_values_dict):
|
|
365
343
|
distance_modulus_difference_to_velocity = (
|
|
@@ -389,3 +367,60 @@ class VelFromIntrinsicScatter(DataVector):
|
|
|
389
367
|
def __init__(self, data, velocity_estimator="full"):
|
|
390
368
|
super().__init__(data)
|
|
391
369
|
self.velocity_estimator = velocity_estimator
|
|
370
|
+
|
|
371
|
+
|
|
372
|
+
class DensVel(DataVector):
|
|
373
|
+
_kind = "cross"
|
|
374
|
+
|
|
375
|
+
@property
|
|
376
|
+
def needed_keys(self):
|
|
377
|
+
return self.densities.needed_keys + self.velocities.needed_keys
|
|
378
|
+
|
|
379
|
+
@property
|
|
380
|
+
def free_par(self):
|
|
381
|
+
return self.densities.free_par + self.velocities.free_par
|
|
382
|
+
|
|
383
|
+
def give_data_and_variance(self, *args):
|
|
384
|
+
data_density, density_variance = self.densities.give_data_and_variance(*args)
|
|
385
|
+
data_velocity, velocity_variance = self.velocities.give_data_and_variance(*args)
|
|
386
|
+
data = jnp.hstack((data_density, data_velocity))
|
|
387
|
+
variance = jnp.hstack((density_variance, velocity_variance))
|
|
388
|
+
return data, variance
|
|
389
|
+
|
|
390
|
+
def __init__(self, density_vector, velocity_vector):
|
|
391
|
+
self.densities = density_vector
|
|
392
|
+
self.velocities = velocity_vector
|
|
393
|
+
|
|
394
|
+
if self.velocities._covariance_observation is not None:
|
|
395
|
+
raise NotImplementedError(
|
|
396
|
+
"Velocity with observed covariance + density not implemented yet"
|
|
397
|
+
)
|
|
398
|
+
|
|
399
|
+
if jax_installed:
|
|
400
|
+
self.give_data_and_variance_jit = jit(self.give_data_and_variance)
|
|
401
|
+
|
|
402
|
+
def compute_covariance(self, model, power_spectrum_dict, **kwargs):
|
|
403
|
+
|
|
404
|
+
coords_dens = np.vstack(
|
|
405
|
+
(
|
|
406
|
+
self.densities.data["ra"],
|
|
407
|
+
self.densities.data["dec"],
|
|
408
|
+
self.densities.data["rcom_zobs"],
|
|
409
|
+
)
|
|
410
|
+
)
|
|
411
|
+
|
|
412
|
+
coords_vel = np.vstack(
|
|
413
|
+
(
|
|
414
|
+
self.velocities.data["ra"],
|
|
415
|
+
self.velocities.data["dec"],
|
|
416
|
+
self.velocities.data["rcom_zobs"],
|
|
417
|
+
)
|
|
418
|
+
)
|
|
419
|
+
return CovMatrix.init_from_flip(
|
|
420
|
+
model,
|
|
421
|
+
"full",
|
|
422
|
+
power_spectrum_dict,
|
|
423
|
+
coordinates_density=coords_dens,
|
|
424
|
+
coordinates_velocity=coords_vel,
|
|
425
|
+
**kwargs,
|
|
426
|
+
)
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
from flip.utils import create_log
|
|
2
|
+
|
|
1
3
|
from .._config import __use_jax__
|
|
2
4
|
from . import vector_utils
|
|
3
5
|
from .basic import DataVector
|
|
@@ -19,10 +21,15 @@ else:
|
|
|
19
21
|
|
|
20
22
|
jax_installed = False
|
|
21
23
|
|
|
24
|
+
log = create_log()
|
|
25
|
+
|
|
22
26
|
|
|
23
27
|
class VelFromLogDist(DataVector):
|
|
24
28
|
_kind = "velocity"
|
|
25
29
|
_needed_keys = ["eta"]
|
|
30
|
+
_free_par = []
|
|
31
|
+
_number_dimension_observation_covariance = 1
|
|
32
|
+
_parameters_observation_covariance = ["eta"]
|
|
26
33
|
|
|
27
34
|
@property
|
|
28
35
|
def conditional_needed_keys(self):
|
|
@@ -36,6 +43,22 @@ class VelFromLogDist(DataVector):
|
|
|
36
43
|
cond_keys += ["eta_error"]
|
|
37
44
|
return self._needed_keys + cond_keys
|
|
38
45
|
|
|
46
|
+
def __init__(
|
|
47
|
+
self,
|
|
48
|
+
data,
|
|
49
|
+
covariance_observation=None,
|
|
50
|
+
velocity_estimator="full",
|
|
51
|
+
):
|
|
52
|
+
"""Initialize velocity from log-distance `eta`.
|
|
53
|
+
|
|
54
|
+
Args:
|
|
55
|
+
data (dict): Must include `eta` and optionally `eta_error`.
|
|
56
|
+
covariance_observation (ndarray|None): Observed covariance.
|
|
57
|
+
velocity_estimator (str): Estimator name, default `"full"`.
|
|
58
|
+
"""
|
|
59
|
+
self.velocity_estimator = velocity_estimator
|
|
60
|
+
super().__init__(data, covariance_observation=covariance_observation)
|
|
61
|
+
|
|
39
62
|
def give_data_and_variance(self, parameter_values_dict, *args):
|
|
40
63
|
"""Return velocity and variance for log-distance based estimator.
|
|
41
64
|
|
|
@@ -53,31 +76,19 @@ class VelFromLogDist(DataVector):
|
|
|
53
76
|
|
|
54
77
|
velocity = log_distance_to_velocity * self._data["eta"]
|
|
55
78
|
|
|
56
|
-
if self._covariance_observation is
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
79
|
+
if self._covariance_observation is None:
|
|
80
|
+
velocity_variance = (
|
|
81
|
+
log_distance_to_velocity * self._data["eta_error"]
|
|
82
|
+
) ** 2
|
|
60
83
|
|
|
61
|
-
|
|
84
|
+
else:
|
|
85
|
+
conversion_matrix = jnp.diag(log_distance_to_velocity)
|
|
62
86
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
covariance_observation=None,
|
|
67
|
-
velocity_estimator="full",
|
|
68
|
-
):
|
|
69
|
-
"""Initialize velocity from log-distance `eta`.
|
|
87
|
+
velocity_variance = (
|
|
88
|
+
conversion_matrix @ self._covariance_observation @ conversion_matrix.T
|
|
89
|
+
)
|
|
70
90
|
|
|
71
|
-
|
|
72
|
-
data (dict): Must include `eta` and optionally `eta_error`.
|
|
73
|
-
covariance_observation (ndarray|None): Observed covariance.
|
|
74
|
-
velocity_estimator (str): Estimator name, default `"full"`.
|
|
75
|
-
"""
|
|
76
|
-
self.velocity_estimator = velocity_estimator
|
|
77
|
-
super().__init__(
|
|
78
|
-
data,
|
|
79
|
-
covariance_observation=covariance_observation,
|
|
80
|
-
)
|
|
91
|
+
return velocity, velocity_variance
|
|
81
92
|
|
|
82
93
|
|
|
83
94
|
class VelFromTullyFisher(DataVector):
|
|
@@ -85,6 +96,8 @@ class VelFromTullyFisher(DataVector):
|
|
|
85
96
|
_kind = "velocity"
|
|
86
97
|
_needed_keys = ["zobs", "logW", "m_mean", "rcom_zobs"]
|
|
87
98
|
_free_par = ["a", "b"]
|
|
99
|
+
_number_dimension_observation_covariance = 2
|
|
100
|
+
_parameters_observation_covariance = ["logW", "m_mean"]
|
|
88
101
|
|
|
89
102
|
@property
|
|
90
103
|
def conditional_needed_keys(self):
|
|
@@ -98,6 +111,39 @@ class VelFromTullyFisher(DataVector):
|
|
|
98
111
|
cond_keys += ["e_logW", "e_m_mean"]
|
|
99
112
|
return cond_keys
|
|
100
113
|
|
|
114
|
+
def __init__(
|
|
115
|
+
self,
|
|
116
|
+
data,
|
|
117
|
+
h,
|
|
118
|
+
covariance_observation=None,
|
|
119
|
+
velocity_estimator="full",
|
|
120
|
+
):
|
|
121
|
+
"""Initialize Tully–Fisher velocity vector.
|
|
122
|
+
|
|
123
|
+
Args:
|
|
124
|
+
data (dict): Includes `logW`, `m_mean`, redshifts and distances.
|
|
125
|
+
h (float): Little-h scaling for distances.
|
|
126
|
+
covariance_observation (ndarray|None): Optional observation covariance.
|
|
127
|
+
velocity_estimator (str): Estimator name.
|
|
128
|
+
|
|
129
|
+
Raises:
|
|
130
|
+
ValueError: If covariance shape is not `2N x 2N` when provided.
|
|
131
|
+
"""
|
|
132
|
+
super().__init__(data, covariance_observation=covariance_observation)
|
|
133
|
+
self.velocity_estimator = velocity_estimator
|
|
134
|
+
self.h = h
|
|
135
|
+
self._host_matrix = None
|
|
136
|
+
|
|
137
|
+
if "host_group_id" in data:
|
|
138
|
+
self._host_matrix, self._data_to_group_mapping = (
|
|
139
|
+
vector_utils.compute_host_matrix(self._data["host_group_id"])
|
|
140
|
+
)
|
|
141
|
+
self._data = vector_utils.format_data_multiple_host(
|
|
142
|
+
self._data, self._host_matrix
|
|
143
|
+
)
|
|
144
|
+
if jax_installed:
|
|
145
|
+
self._host_matrix = BCOO.from_scipy_sparse(self._host_matrix)
|
|
146
|
+
|
|
101
147
|
def compute_observed_distance_modulus(self, parameter_values_dict):
|
|
102
148
|
"""Compute observed distance modulus from Tully–Fisher relation.
|
|
103
149
|
|
|
@@ -159,11 +205,23 @@ class VelFromTullyFisher(DataVector):
|
|
|
159
205
|
)
|
|
160
206
|
variance_distance_modulus += parameter_values_dict["sigma_M"] ** 2
|
|
161
207
|
else:
|
|
208
|
+
weights_observation_covariance = jnp.array(
|
|
209
|
+
[
|
|
210
|
+
1.0,
|
|
211
|
+
parameter_values_dict["a"],
|
|
212
|
+
]
|
|
213
|
+
)
|
|
214
|
+
jacobian = jnp.kron(
|
|
215
|
+
weights_observation_covariance,
|
|
216
|
+
jnp.eye(self._number_datapoints),
|
|
217
|
+
)
|
|
162
218
|
variance_distance_modulus = (
|
|
163
|
-
self._covariance_observation
|
|
164
|
-
|
|
165
|
-
|
|
219
|
+
jacobian @ self._covariance_observation @ jacobian.T
|
|
220
|
+
)
|
|
221
|
+
variance_distance_modulus += (
|
|
222
|
+
jnp.eye(self._number_datapoints) * parameter_values_dict["sigma_M"] ** 2
|
|
166
223
|
)
|
|
224
|
+
|
|
167
225
|
return variance_distance_modulus
|
|
168
226
|
|
|
169
227
|
def give_data_and_variance(self, parameter_values_dict):
|
|
@@ -190,10 +248,13 @@ class VelFromTullyFisher(DataVector):
|
|
|
190
248
|
* distance_modulus_difference_to_velocity**2
|
|
191
249
|
)
|
|
192
250
|
else:
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
251
|
+
conversion_matrix = jnp.diag(distance_modulus_difference_to_velocity)
|
|
252
|
+
|
|
253
|
+
velocity_variance = (
|
|
254
|
+
conversion_matrix
|
|
255
|
+
@ observed_distance_modulus_variance
|
|
256
|
+
@ conversion_matrix.T
|
|
257
|
+
)
|
|
197
258
|
|
|
198
259
|
velocities = (
|
|
199
260
|
distance_modulus_difference_to_velocity
|
|
@@ -207,18 +268,25 @@ class VelFromTullyFisher(DataVector):
|
|
|
207
268
|
|
|
208
269
|
return velocities, velocity_variance
|
|
209
270
|
|
|
210
|
-
|
|
211
|
-
|
|
271
|
+
|
|
272
|
+
class VelFromFundamentalPlane(DataVector):
|
|
273
|
+
_kind = "velocity"
|
|
274
|
+
_needed_keys = ["zobs", "logRe", "logsig", "logI", "rcom_zobs"]
|
|
275
|
+
_free_par = ["a", "b", "c"]
|
|
276
|
+
_number_dimension_observation_covariance = 3
|
|
277
|
+
_parameters_observation_covariance = ["logRe", "logsig", "logI"]
|
|
278
|
+
|
|
279
|
+
@property
|
|
280
|
+
def conditional_needed_keys(self):
|
|
281
|
+
"""Conditionally required keys when covariance is absent.
|
|
212
282
|
|
|
213
283
|
Returns:
|
|
214
|
-
|
|
284
|
+
list[str]: Includes `e_logRe`, `e_logsig`, `e_logI` when needed.
|
|
215
285
|
"""
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
A[k][ij[1] == 2 * ij[0] + k] = 1
|
|
221
|
-
return A
|
|
286
|
+
cond_keys = []
|
|
287
|
+
if self._covariance_observation is None:
|
|
288
|
+
cond_keys += ["e_logRe", "e_logsig", "e_logI"]
|
|
289
|
+
return cond_keys
|
|
222
290
|
|
|
223
291
|
def __init__(
|
|
224
292
|
self,
|
|
@@ -227,21 +295,20 @@ class VelFromTullyFisher(DataVector):
|
|
|
227
295
|
covariance_observation=None,
|
|
228
296
|
velocity_estimator="full",
|
|
229
297
|
):
|
|
230
|
-
"""Initialize
|
|
298
|
+
"""Initialize Fundamental Plane velocity vector.
|
|
231
299
|
|
|
232
300
|
Args:
|
|
233
|
-
data (dict): Includes `
|
|
301
|
+
data (dict): Includes `logRe`, `logsig`, `logI`, redshifts and distances.
|
|
234
302
|
h (float): Little-h scaling for distances.
|
|
235
303
|
covariance_observation (ndarray|None): Optional observation covariance.
|
|
236
304
|
velocity_estimator (str): Estimator name.
|
|
237
305
|
|
|
238
306
|
Raises:
|
|
239
|
-
ValueError: If covariance shape is not `
|
|
307
|
+
ValueError: If covariance shape is not `3N x 3N` when provided.
|
|
240
308
|
"""
|
|
241
309
|
super().__init__(data, covariance_observation=covariance_observation)
|
|
242
310
|
self.velocity_estimator = velocity_estimator
|
|
243
311
|
self.h = h
|
|
244
|
-
self._A = None
|
|
245
312
|
self._host_matrix = None
|
|
246
313
|
|
|
247
314
|
if "host_group_id" in data:
|
|
@@ -254,29 +321,6 @@ class VelFromTullyFisher(DataVector):
|
|
|
254
321
|
if jax_installed:
|
|
255
322
|
self._host_matrix = BCOO.from_scipy_sparse(self._host_matrix)
|
|
256
323
|
|
|
257
|
-
if self._covariance_observation is not None:
|
|
258
|
-
if self._covariance_observation.shape != (2 * len(data), 2 * len(data)):
|
|
259
|
-
raise ValueError("Cov should be 2N x 2N")
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
class VelFromFundamentalPlane(DataVector):
|
|
263
|
-
|
|
264
|
-
_kind = "velocity"
|
|
265
|
-
_needed_keys = ["zobs", "logRe", "logsig", "logI", "rcom_zobs"]
|
|
266
|
-
_free_par = ["a", "b", "c"]
|
|
267
|
-
|
|
268
|
-
@property
|
|
269
|
-
def conditional_needed_keys(self):
|
|
270
|
-
"""Conditionally required keys when covariance is absent.
|
|
271
|
-
|
|
272
|
-
Returns:
|
|
273
|
-
list[str]: Includes `e_logRe`, `e_logsig`, `e_logI` when needed.
|
|
274
|
-
"""
|
|
275
|
-
cond_keys = []
|
|
276
|
-
if self._covariance_observation is None:
|
|
277
|
-
cond_keys += ["e_logRe", "e_logsig", "e_logI"]
|
|
278
|
-
return cond_keys
|
|
279
|
-
|
|
280
324
|
def compute_observed_distance_modulus(self, parameter_values_dict):
|
|
281
325
|
"""Compute observed distance modulus from Fundamental Plane relation.
|
|
282
326
|
|
|
@@ -340,11 +384,24 @@ class VelFromFundamentalPlane(DataVector):
|
|
|
340
384
|
)
|
|
341
385
|
variance_distance_modulus += parameter_values_dict["sigma_M"] ** 2
|
|
342
386
|
else:
|
|
387
|
+
weights_observation_covariance = jnp.array(
|
|
388
|
+
[
|
|
389
|
+
1.0,
|
|
390
|
+
parameter_values_dict["a"],
|
|
391
|
+
parameter_values_dict["b"],
|
|
392
|
+
]
|
|
393
|
+
)
|
|
394
|
+
jacobian = jnp.kron(
|
|
395
|
+
weights_observation_covariance,
|
|
396
|
+
jnp.eye(self._number_datapoints),
|
|
397
|
+
)
|
|
343
398
|
variance_distance_modulus = (
|
|
344
|
-
self._covariance_observation
|
|
345
|
-
+ jnp.eye(self._covariance_observation.shape[0])
|
|
346
|
-
* parameter_values_dict["sigma_M"] ** 2
|
|
399
|
+
jacobian @ self._covariance_observation @ jacobian.T
|
|
347
400
|
)
|
|
401
|
+
variance_distance_modulus += (
|
|
402
|
+
jnp.eye(self._number_datapoints) * parameter_values_dict["sigma_M"] ** 2
|
|
403
|
+
)
|
|
404
|
+
|
|
348
405
|
return variance_distance_modulus
|
|
349
406
|
|
|
350
407
|
def give_data_and_variance(self, parameter_values_dict):
|
|
@@ -371,14 +428,13 @@ class VelFromFundamentalPlane(DataVector):
|
|
|
371
428
|
* distance_modulus_difference_to_velocity**2
|
|
372
429
|
)
|
|
373
430
|
else:
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
431
|
+
conversion_matrix = jnp.diag(distance_modulus_difference_to_velocity)
|
|
432
|
+
|
|
433
|
+
velocity_variance = (
|
|
434
|
+
conversion_matrix
|
|
435
|
+
@ observed_distance_modulus_variance
|
|
436
|
+
@ conversion_matrix.T
|
|
379
437
|
)
|
|
380
|
-
J = jnp.diag(distance_modulus_difference_to_velocity) @ J
|
|
381
|
-
velocity_variance = J @ observed_distance_modulus_variance @ J.T
|
|
382
438
|
|
|
383
439
|
velocities = (
|
|
384
440
|
distance_modulus_difference_to_velocity
|
|
@@ -391,54 +447,3 @@ class VelFromFundamentalPlane(DataVector):
|
|
|
391
447
|
)
|
|
392
448
|
|
|
393
449
|
return velocities, velocity_variance
|
|
394
|
-
|
|
395
|
-
def _init_A(self):
|
|
396
|
-
"""Initialize design matrices for linear propagation with covariance.
|
|
397
|
-
|
|
398
|
-
Returns:
|
|
399
|
-
ndarray: Matrix A blocks.
|
|
400
|
-
"""
|
|
401
|
-
N = len(self._data)
|
|
402
|
-
A = jnp.ones((3, N, 3 * N))
|
|
403
|
-
ij = jnp.ogrid[:N, : 3 * N]
|
|
404
|
-
for k in range(3):
|
|
405
|
-
A[k][ij[1] == 3 * ij[0] + k] = 1
|
|
406
|
-
return A
|
|
407
|
-
|
|
408
|
-
def __init__(
|
|
409
|
-
self,
|
|
410
|
-
data,
|
|
411
|
-
h,
|
|
412
|
-
covariance_observation=None,
|
|
413
|
-
velocity_estimator="full",
|
|
414
|
-
):
|
|
415
|
-
"""Initialize Fundamental Plane velocity vector.
|
|
416
|
-
|
|
417
|
-
Args:
|
|
418
|
-
data (dict): Includes `logRe`, `logsig`, `logI`, redshifts and distances.
|
|
419
|
-
h (float): Little-h scaling for distances.
|
|
420
|
-
covariance_observation (ndarray|None): Optional observation covariance.
|
|
421
|
-
velocity_estimator (str): Estimator name.
|
|
422
|
-
|
|
423
|
-
Raises:
|
|
424
|
-
ValueError: If covariance shape is not `3N x 3N` when provided.
|
|
425
|
-
"""
|
|
426
|
-
super().__init__(data, covariance_observation=covariance_observation)
|
|
427
|
-
self.velocity_estimator = velocity_estimator
|
|
428
|
-
self.h = h
|
|
429
|
-
self._A = None
|
|
430
|
-
self._host_matrix = None
|
|
431
|
-
|
|
432
|
-
if "host_group_id" in data:
|
|
433
|
-
self._host_matrix, self._data_to_group_mapping = (
|
|
434
|
-
vector_utils.compute_host_matrix(self._data["host_group_id"])
|
|
435
|
-
)
|
|
436
|
-
self._data = vector_utils.format_data_multiple_host(
|
|
437
|
-
self._data, self._host_matrix
|
|
438
|
-
)
|
|
439
|
-
if jax_installed:
|
|
440
|
-
self._host_matrix = BCOO.from_scipy_sparse(self._host_matrix)
|
|
441
|
-
|
|
442
|
-
if self._covariance_observation is not None:
|
|
443
|
-
if self._covariance_observation.shape != (3 * len(data), 3 * len(data)):
|
|
444
|
-
raise ValueError("Cov should be 3N x 3N")
|
flip/data_vector/snia_vectors.py
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
from flip.utils import create_log
|
|
2
|
+
|
|
1
3
|
from .._config import __use_jax__
|
|
2
4
|
from . import vector_utils
|
|
3
5
|
from .basic import DataVector
|
|
@@ -19,11 +21,15 @@ else:
|
|
|
19
21
|
|
|
20
22
|
jax_installed = False
|
|
21
23
|
|
|
24
|
+
log = create_log()
|
|
25
|
+
|
|
22
26
|
|
|
23
27
|
class VelFromSALTfit(DataVector):
|
|
24
28
|
_kind = "velocity"
|
|
25
29
|
_needed_keys = ["zobs", "mb", "x1", "c", "rcom_zobs"]
|
|
26
30
|
_free_par = ["alpha", "beta", "M_0", "sigma_M"]
|
|
31
|
+
_number_dimension_observation_covariance = 3
|
|
32
|
+
_parameters_observation_covariance = ["mb", "x1", "c"]
|
|
27
33
|
|
|
28
34
|
@property
|
|
29
35
|
def conditional_needed_keys(self):
|
|
@@ -49,6 +55,42 @@ class VelFromSALTfit(DataVector):
|
|
|
49
55
|
_cond_fpar += ["gamma"]
|
|
50
56
|
return _cond_fpar
|
|
51
57
|
|
|
58
|
+
def __init__(
|
|
59
|
+
self,
|
|
60
|
+
data,
|
|
61
|
+
h,
|
|
62
|
+
covariance_observation=None,
|
|
63
|
+
velocity_estimator="full",
|
|
64
|
+
mass_step=10,
|
|
65
|
+
):
|
|
66
|
+
"""Initialize SN Ia velocity vector from SALT2 fits.
|
|
67
|
+
|
|
68
|
+
Args:
|
|
69
|
+
data (dict): Includes SALT2 parameters and cosmology fields.
|
|
70
|
+
h (float): Little-h scaling for distances.
|
|
71
|
+
covariance_observation (ndarray|None): Optional observation covariance.
|
|
72
|
+
velocity_estimator (str): Estimator name.
|
|
73
|
+
mass_step (float): Threshold for host mass step correction.
|
|
74
|
+
|
|
75
|
+
Raises:
|
|
76
|
+
ValueError: If covariance shape is not adapted
|
|
77
|
+
"""
|
|
78
|
+
super().__init__(data, covariance_observation=covariance_observation)
|
|
79
|
+
self.velocity_estimator = velocity_estimator
|
|
80
|
+
self.h = h
|
|
81
|
+
self._host_matrix = None
|
|
82
|
+
self._mass_step = mass_step
|
|
83
|
+
|
|
84
|
+
if "host_group_id" in data:
|
|
85
|
+
self._host_matrix, self._data_to_group_mapping = (
|
|
86
|
+
vector_utils.compute_host_matrix(self._data["host_group_id"])
|
|
87
|
+
)
|
|
88
|
+
self._data = vector_utils.format_data_multiple_host(
|
|
89
|
+
self._data, self._host_matrix
|
|
90
|
+
)
|
|
91
|
+
if jax_installed:
|
|
92
|
+
self._host_matrix = BCOO.from_scipy_sparse(self._host_matrix)
|
|
93
|
+
|
|
52
94
|
def compute_observed_distance_modulus(self, parameter_values_dict):
|
|
53
95
|
"""Compute observed distance modulus from SALT2 fit parameters.
|
|
54
96
|
|
|
@@ -122,11 +164,24 @@ class VelFromSALTfit(DataVector):
|
|
|
122
164
|
)
|
|
123
165
|
variance_distance_modulus += parameter_values_dict["sigma_M"] ** 2
|
|
124
166
|
else:
|
|
167
|
+
weights_observation_covariance = jnp.array(
|
|
168
|
+
[
|
|
169
|
+
1.0,
|
|
170
|
+
parameter_values_dict["alpha"],
|
|
171
|
+
-parameter_values_dict["beta"],
|
|
172
|
+
]
|
|
173
|
+
)
|
|
174
|
+
jacobian = jnp.kron(
|
|
175
|
+
weights_observation_covariance,
|
|
176
|
+
jnp.eye(self._number_datapoints),
|
|
177
|
+
)
|
|
125
178
|
variance_distance_modulus = (
|
|
126
|
-
self._covariance_observation
|
|
127
|
-
+ jnp.eye(self._covariance_observation.shape[0])
|
|
128
|
-
* parameter_values_dict["sigma_M"] ** 2
|
|
179
|
+
jacobian @ self._covariance_observation @ jacobian.T
|
|
129
180
|
)
|
|
181
|
+
variance_distance_modulus += (
|
|
182
|
+
jnp.eye(self._number_datapoints) * parameter_values_dict["sigma_M"] ** 2
|
|
183
|
+
)
|
|
184
|
+
|
|
130
185
|
return variance_distance_modulus
|
|
131
186
|
|
|
132
187
|
def give_data_and_variance(self, parameter_values_dict):
|
|
@@ -152,14 +207,13 @@ class VelFromSALTfit(DataVector):
|
|
|
152
207
|
* distance_modulus_difference_to_velocity**2
|
|
153
208
|
)
|
|
154
209
|
else:
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
210
|
+
conversion_matrix = jnp.diag(distance_modulus_difference_to_velocity)
|
|
211
|
+
|
|
212
|
+
velocity_variance = (
|
|
213
|
+
conversion_matrix
|
|
214
|
+
@ observed_distance_modulus_variance
|
|
215
|
+
@ conversion_matrix.T
|
|
160
216
|
)
|
|
161
|
-
J = jnp.diag(distance_modulus_difference_to_velocity) @ J
|
|
162
|
-
velocity_variance = J @ observed_distance_modulus_variance @ J.T
|
|
163
217
|
|
|
164
218
|
velocities = (
|
|
165
219
|
distance_modulus_difference_to_velocity
|
|
@@ -172,58 +226,3 @@ class VelFromSALTfit(DataVector):
|
|
|
172
226
|
)
|
|
173
227
|
|
|
174
228
|
return velocities, velocity_variance
|
|
175
|
-
|
|
176
|
-
def _init_A(self):
|
|
177
|
-
"""Initialize design matrices for linear covariance propagation.
|
|
178
|
-
|
|
179
|
-
Returns:
|
|
180
|
-
ndarray: Matrix A blocks.
|
|
181
|
-
"""
|
|
182
|
-
N = len(self._data)
|
|
183
|
-
A = jnp.ones((3, N, 3 * N))
|
|
184
|
-
ij = jnp.ogrid[:N, : 3 * N]
|
|
185
|
-
for k in range(3):
|
|
186
|
-
A[k][ij[1] == 3 * ij[0] + k] = 1
|
|
187
|
-
return A
|
|
188
|
-
|
|
189
|
-
def __init__(
|
|
190
|
-
self,
|
|
191
|
-
data,
|
|
192
|
-
h,
|
|
193
|
-
covariance_observation=None,
|
|
194
|
-
velocity_estimator="full",
|
|
195
|
-
mass_step=10,
|
|
196
|
-
):
|
|
197
|
-
"""Initialize SN Ia velocity vector from SALT2 fits.
|
|
198
|
-
|
|
199
|
-
Args:
|
|
200
|
-
data (dict): Includes SALT2 parameters and cosmology fields.
|
|
201
|
-
h (float): Little-h scaling for distances.
|
|
202
|
-
covariance_observation (ndarray|None): Optional observation covariance.
|
|
203
|
-
velocity_estimator (str): Estimator name.
|
|
204
|
-
mass_step (float): Threshold for host mass step correction.
|
|
205
|
-
|
|
206
|
-
Raises:
|
|
207
|
-
ValueError: If covariance shape is not `3N x 3N` when provided.
|
|
208
|
-
"""
|
|
209
|
-
super().__init__(data, covariance_observation=covariance_observation)
|
|
210
|
-
self.velocity_estimator = velocity_estimator
|
|
211
|
-
self.h = h
|
|
212
|
-
self._A = None
|
|
213
|
-
self._host_matrix = None
|
|
214
|
-
self._mass_step = mass_step
|
|
215
|
-
|
|
216
|
-
if "host_group_id" in data:
|
|
217
|
-
self._host_matrix, self._data_to_group_mapping = (
|
|
218
|
-
vector_utils.compute_host_matrix(self._data["host_group_id"])
|
|
219
|
-
)
|
|
220
|
-
self._data = vector_utils.format_data_multiple_host(
|
|
221
|
-
self._data, self._host_matrix
|
|
222
|
-
)
|
|
223
|
-
if jax_installed:
|
|
224
|
-
self._host_matrix = BCOO.from_scipy_sparse(self._host_matrix)
|
|
225
|
-
|
|
226
|
-
if self._covariance_observation is not None:
|
|
227
|
-
if self._covariance_observation.shape != (3 * len(data), 3 * len(data)):
|
|
228
|
-
raise ValueError("Cov should be 3N x 3N")
|
|
229
|
-
self._A = self._init_A()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: flipcosmo
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.2
|
|
4
4
|
Summary: Field Level Inference Package
|
|
5
5
|
Author-email: Corentin Ravoux <corentin.ravoux.research@gmail.com>, Bastien Carreres <bastien.carreres@duke.edu>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -30,7 +30,7 @@ Requires-Dist: sphinx-tabs; extra == "docs"
|
|
|
30
30
|
Requires-Dist: sphinx-autoapi; extra == "docs"
|
|
31
31
|
Dynamic: license-file
|
|
32
32
|
|
|
33
|
-
<img src="docs/_static/flip_logo.webp" width=350>
|
|
33
|
+
<img src="https://github.com/corentinravoux/flip/blob/main/docs/_static/flip_logo.webp?raw=true" width=350>
|
|
34
34
|
|
|
35
35
|
# flip: Field Level Inference Package
|
|
36
36
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
docs/conf.py,sha256=oQH2FVsFdgs7Z2z0qyORgjUz1Wn35TS-oyd3GaQ8Uos,4694
|
|
2
|
-
flip/__init__.py,sha256=
|
|
2
|
+
flip/__init__.py,sha256=FAXygNnmz1DnB-Y4vBQgjDolJ3I8sLUxgWgXORWGbrE,419
|
|
3
3
|
flip/_config.py,sha256=wf09C_i7q-G8v3ADk63WtrSEZyXQhy4zNzQ9AY3Qq9U,19
|
|
4
4
|
flip/utils.py,sha256=mkLEW-qDWYRSpycnF6MxWUtTOAqogKZb708I8ys14p0,5462
|
|
5
5
|
flip/covariance/__init__.py,sha256=bzxPuQOFUX7YfFb5WmoWE-ykQWK7sLh_zQHyRuvF2ng,233
|
|
@@ -64,7 +64,6 @@ flip/data/__init__.py,sha256=8OBjUqbJBny0jMSCxCyKVi4-MNjR6vg3ZTGCGX8Vgf4,72
|
|
|
64
64
|
flip/data/data_density.parquet,sha256=_156O6Q05FQDqQj9QaStQBpiS1eWngTHN_QdBsfos2M,14061
|
|
65
65
|
flip/data/data_velocity.parquet,sha256=m5WkL3LRzwHKl-AgxMVnhn_8IaB5extm1Fipo3fKR1c,181039
|
|
66
66
|
flip/data/data_window_density.parquet,sha256=vSF7GGJzIkzGNTnhksFa-zJlEs9i5THugEzUl52si2o,40372
|
|
67
|
-
flip/data/gridding.py,sha256=_3PHazY-KbxQyHKWxQguB4LGJ1yU-uHNcQqzQSk5O8c,30864
|
|
68
67
|
flip/data/load_data_test.py,sha256=DmHn3gJTDtGqJCGObnpvhKm0YDGlhTM8kJuHIZUxZ9Q,2871
|
|
69
68
|
flip/data/power_spectrum_mm.txt,sha256=TltaM8gxTnyUR3eLM1GHf6HCctRA1F6cHmuhjRYkj8M,50085
|
|
70
69
|
flip/data/power_spectrum_mt.txt,sha256=S9fuSnNoW9qwJL7xuRUoVSz_EzmgEJENy3td8u9FkXU,50085
|
|
@@ -72,11 +71,12 @@ flip/data/power_spectrum_tt.txt,sha256=Ws3b8XtzZJ0aNKT7g3PRb0NQWDtvpFBTU6nCi0G5Z
|
|
|
72
71
|
flip/data/style.mplstyle,sha256=2og3sSZU3SqBBB1Jm4alodk3jJF-PMyf7XZqCvItwdA,2341
|
|
73
72
|
flip/data/test_covariance_reference_values.json,sha256=O6Z-QeDBMjWQUKpLqbhwilGfO-fQaGGRjAdfHuq_WvQ,3360
|
|
74
73
|
flip/data/test_e2e_reference_values.json,sha256=qfqJDGL2CCiR4xiiYW6SX4_FdzawXQLodFXQREmT_Y0,256
|
|
75
|
-
flip/data_vector/__init__.py,sha256=
|
|
76
|
-
flip/data_vector/basic.py,sha256=
|
|
74
|
+
flip/data_vector/__init__.py,sha256=RINRUs2aQF4-erLqSxb9AvdnixbuVPWLhAw5VAlrfgE,153
|
|
75
|
+
flip/data_vector/basic.py,sha256=L4ZN3PUMLLoAjBW1SNq-Pa_y-4OMRnzvcIKxhjI6TP0,13792
|
|
77
76
|
flip/data_vector/cosmo_utils.py,sha256=WvrQmWM0lPkdy1Ak8NMe3IzauRcBV9bubAQ3YGCdqQo,624
|
|
78
|
-
flip/data_vector/galaxypv_vectors.py,sha256=
|
|
79
|
-
flip/data_vector/
|
|
77
|
+
flip/data_vector/galaxypv_vectors.py,sha256=apwCslFNU6Xa2IJ00M5QlzORmXUFptod4Qdd1Ic5NgE,14958
|
|
78
|
+
flip/data_vector/gridding.py,sha256=_3PHazY-KbxQyHKWxQguB4LGJ1yU-uHNcQqzQSk5O8c,30864
|
|
79
|
+
flip/data_vector/snia_vectors.py,sha256=-RrIqUJMulsYy9U29wSR1S-DUc1TR8uazKy8Xsk056s,7857
|
|
80
80
|
flip/data_vector/vector_utils.py,sha256=P0AfdyYUU5F6ClgrhyASmqs3ai6PsKmB_o_KnHlWVJY,6715
|
|
81
81
|
flip/power_spectra/__init__.py,sha256=9XDOGCo4YFXg0QdQ6gEC66oVaB1Q_NtCmqMn8PZs30w,118
|
|
82
82
|
flip/power_spectra/class_engine.py,sha256=MWKvSFKOK242JRpc4wNxbT_1ldH9c00umVW75A4px-A,5964
|
|
@@ -85,7 +85,7 @@ flip/power_spectra/generator.py,sha256=X6AAsuiYWXNjfJDdYGd0Pna1wgXH0_eNEZefGNcxZ
|
|
|
85
85
|
flip/power_spectra/models.py,sha256=bRR5lIQHyoRtE0lqQKjiPxCdQNqwK1ZG5zrjMPQmzoo,3544
|
|
86
86
|
flip/power_spectra/pyccl_engine.py,sha256=D8PTQaB43L6A0VhiQs55kuk8t6uOcDIxwLNW6i8Ja6w,3527
|
|
87
87
|
flip/simulation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
88
|
-
flipcosmo-1.2.
|
|
88
|
+
flipcosmo-1.2.2.dist-info/licenses/LICENSE,sha256=jQfEFGXoNPb52M0jMfnWZtz8reTMYXItOx9-wevuHWg,1071
|
|
89
89
|
scripts/flip_compute_correlation_model.py,sha256=9IhGD2rctHIuE_FeOuTze22EEqGVWUqFzoTle1HNQ6k,1710
|
|
90
90
|
scripts/flip_compute_power_spectra.py,sha256=Ez36BS8bmxPs0iSeHVGIhzXcohlRb8BG6NxsioN7S0Y,1298
|
|
91
91
|
scripts/flip_fisher_forecast_velocity.py,sha256=coQ_YdsSouq-4AGXExwojr1fIC_tO0wz4-3HU9ZYTco,1838
|
|
@@ -103,7 +103,7 @@ test/test_e2e_density.py,sha256=vVaRphhfGdHxKknzVOYbH3YMGma7BUk7o2PCqebHSr0,1833
|
|
|
103
103
|
test/test_e2e_joint.py,sha256=GfQkm2_NGPXiZWRxmbk1xX0Q8JXtfue59klDD6tHOBE,2386
|
|
104
104
|
test/test_e2e_velocity.py,sha256=FebMsWwzqvfhkest5kkXTdkW6Me-q1gTypcU6Qc4Kh4,1796
|
|
105
105
|
test/test_likelihood_inversions.py,sha256=RE2IiCtBPKJzlvEaFQysYh1nht9wTQo2Bfsfa0hChaY,830
|
|
106
|
-
flipcosmo-1.2.
|
|
107
|
-
flipcosmo-1.2.
|
|
108
|
-
flipcosmo-1.2.
|
|
109
|
-
flipcosmo-1.2.
|
|
106
|
+
flipcosmo-1.2.2.dist-info/METADATA,sha256=Z6Q7Fxv9C7H8oXHxO4bTu8ejeHGQEb4aOMlqtH35HS4,3674
|
|
107
|
+
flipcosmo-1.2.2.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
108
|
+
flipcosmo-1.2.2.dist-info/top_level.txt,sha256=9MRA5iw3NarUSIfyQLBZB_b_44iHdvuTW9CjqvMi8_4,44
|
|
109
|
+
flipcosmo-1.2.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|