Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
8fedb5c
first implementation with redshift-dependent cofactors
AlexGKim Jun 27, 2024
5517ade
whatever
AlexGKim Jun 28, 2024
21df48f
Modification of generation routines
corentinravoux Jul 16, 2024
5d8bbdd
updating old models
corentinravoux Jul 16, 2024
c809691
modification of contraction to account for redshift dependency
corentinravoux Jul 16, 2024
f0fd3b0
implementation of new model Rosseli, Carreres, Ravoux, Kim
corentinravoux Jul 16, 2024
e8bcbe8
Implementation for fisher
corentinravoux Jul 16, 2024
1ef62bf
Updating other fisher models
corentinravoux Jul 16, 2024
ee8d69d
fix the outer product
corentinravoux Jul 22, 2024
95e232c
fix of the outer term
corentinravoux Jul 22, 2024
57741e8
Merge branch 'add_z_dep' into zdep
AlexGKim Jul 22, 2024
cf84d63
Om-gamma parameterization gives a reasonable answer. Is it correct????
AlexGKim Jul 22, 2024
d770b2e
Delete flip/covariance/agkim24 directory
AlexGKim Jul 22, 2024
8c8cdad
editing to make consistent with upstream
AlexGKim Jul 22, 2024
aea36cc
works and should match upstream
AlexGKim Jul 22, 2024
d7a7c13
implementation of Om0-gamma model. The output looks reasonable.
AlexGKim Jul 24, 2024
a830aa3
calculate derivatives with wolfram.
AlexGKim Jul 24, 2024
933fbd4
implement fs8 fisher
AlexGKim Jul 25, 2024
319ad0f
confirmed first order (1-a) using wolfram
AlexGKim Jul 25, 2024
f6c98a3
more debug code.
AlexGKim Jul 26, 2024
344f63b
Merge pull request #33 from AlexGKim/add_z_dep
corentinravoux Jul 26, 2024
540654a
making things consistent between models
corentinravoux Jul 26, 2024
d8f9244
formatting
corentinravoux Jul 26, 2024
89f2f64
Merge pull request #34 from corentinravoux/main
corentinravoux Jul 26, 2024
6266023
fixing power spectrum script
corentinravoux Jul 31, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions flip/covariance/adamsblake17plane/coefficients.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ def get_coefficients(
model_type,
parameter_values_dict,
variant=None,
redshift_dict=None,
power_spectrum_amplitude_function=None,
):
coefficients_dict = {}
if model_type in ["density", "full", "density_velocity"]:
Expand Down
2 changes: 2 additions & 0 deletions flip/covariance/adamsblake17plane/fisher_terms.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ def get_partial_derivative_coefficients(
model_type,
parameter_values_dict,
variant=None,
redshift_dict=None,
power_spectrum_amplitude_function=None,
):
if model_type == "density":
return get_partial_derivative_coefficients_density(
Expand Down
1 change: 1 addition & 0 deletions flip/covariance/adamsblake17plane/flip_terms.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,3 +57,4 @@ def N_vv_0_2_0(theta, phi):
"vv_0_2": 1,
}
multi_index_model = False
redshift_dependent_model = False
10 changes: 8 additions & 2 deletions flip/covariance/adamsblake17plane/generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -253,5 +253,11 @@ def generate_covariance(
)

los_definition = "bisector"

return covariance_dict, number_densities, number_velocities, los_definition
redshift_dict = None
return (
covariance_dict,
number_densities,
number_velocities,
los_definition,
redshift_dict,
)
2 changes: 2 additions & 0 deletions flip/covariance/adamsblake20/coefficients.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ def get_coefficients(
model_type,
parameter_values_dict,
variant=None,
redshift_dict=None,
power_spectrum_amplitude_function=None,
):
coefficients_dict = {}
if model_type in ["density", "full", "density_velocity"]:
Expand Down
2 changes: 2 additions & 0 deletions flip/covariance/adamsblake20/fisher_terms.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ def get_partial_derivative_coefficients(
model_type,
parameter_values_dict,
variant=None,
redshift_dict=None,
power_spectrum_amplitude_function=None,
):
if model_type == "density":
return get_partial_derivative_coefficients_density(
Expand Down
7 changes: 2 additions & 5 deletions flip/covariance/adamsblake20/flip_terms.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,11 +72,7 @@ def M_gg_1_2_0(sig_g):
def func(k):
return (
-5 * np.exp(-(k**2) * sig_g**2) / (k**2 * sig_g**2)
- 5
/ 4
* np.sqrt(np.pi)
* scipy.special.erf(k * sig_g)
/ (k**3 * sig_g**3)
- 5 / 4 * np.sqrt(np.pi) * scipy.special.erf(k * sig_g) / (k**3 * sig_g**3)
- 45 / 4 * np.exp(-(k**2) * sig_g**2) / (k**4 * sig_g**4)
+ (45 / 8)
* np.sqrt(np.pi)
Expand Down Expand Up @@ -359,3 +355,4 @@ def N_vv_0_2_0(theta, phi):
"vv_0_2": 1,
}
multi_index_model = False
redshift_dependent_model = False
2 changes: 2 additions & 0 deletions flip/covariance/carreres23/coefficients.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ def get_coefficients(
model_type,
parameter_values_dict,
variant=None,
redshift_dict=None,
power_spectrum_amplitude_function=None,
):
coefficients_dict = {}
coefficients_dict["vv"] = [parameter_values_dict["fs8"] ** 2]
Expand Down
2 changes: 2 additions & 0 deletions flip/covariance/carreres23/fisher_terms.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ def get_partial_derivative_coefficients(
model_type,
parameter_values_dict,
variant=None,
redshift_dict=None,
power_spectrum_amplitude_function=None,
):
if variant == "growth_index":
partial_coefficients_dict = {
Expand Down
1 change: 1 addition & 0 deletions flip/covariance/carreres23/flip_terms.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,4 @@ def N_vv_0_2_0(theta, phi):
dictionary_lmax = {"vv": [2]}
dictionary_subterms = {"vv_0_0": 1, "vv_0_1": 0, "vv_0_2": 1}
multi_index_model = False
redshift_dependent_model = False
2 changes: 2 additions & 0 deletions flip/covariance/carreres23/generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -121,10 +121,12 @@ def generate_covariance(
)

los_definition = "bisector"
redshift_dict = None

return (
{"vv": np.array([cov_vv])},
number_densities,
number_velocities,
los_definition,
redshift_dict,
)
24 changes: 21 additions & 3 deletions flip/covariance/contraction.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ def __init__(
coordinates_dict=None,
basis_definition=None,
endpoint_los_definition=None,
redshift_dict=None,
power_spectrum_amplitude_function=None,
variant=None,
):
self.model_name = model_name
Expand All @@ -25,6 +27,8 @@ def __init__(
self.coordinates_dict = coordinates_dict
self.basis_definition = basis_definition
self.endpoint_los_definition = endpoint_los_definition
self.redshift_dict = redshift_dict
self.power_spectrum_amplitude_function = power_spectrum_amplitude_function
self.variant = variant

@classmethod
Expand All @@ -41,12 +45,15 @@ def init_from_flip(
additional_parameters_values=None,
basis_definition="bisector",
endpoint_los_definition="bisector",
redshift=None,
power_spectrum_amplitude_function=None,
variant=None,
**kwargs,
):
(
contraction_dict,
coordinates_dict,
redshift_dict,
) = contract_covariance(
model_name,
model_type,
Expand All @@ -59,6 +66,7 @@ def init_from_flip(
additional_parameters_values=additional_parameters_values,
basis_definition=basis_definition,
endpoint_los_definition=endpoint_los_definition,
redshift=redshift,
**kwargs,
)

Expand All @@ -69,6 +77,8 @@ def init_from_flip(
coordinates_dict=coordinates_dict,
basis_definition=basis_definition,
endpoint_los_definition=endpoint_los_definition,
redshift_dict=redshift_dict,
power_spectrum_amplitude_function=power_spectrum_amplitude_function,
variant=variant,
)

Expand Down Expand Up @@ -125,7 +135,9 @@ def compute_contraction_sum(
coefficients_dict = coefficients.get_coefficients(
self.model_type,
parameter_values_dict,
self.variant,
variant=self.variant,
redshift_dict=self.redshift_dict,
power_spectrum_amplitude_function=self.power_spectrum_amplitude_function,
)
contraction_covariance_sum_dict = {}
if self.model_type == "density":
Expand Down Expand Up @@ -293,6 +305,7 @@ def contract_covariance(
additional_parameters_values=None,
basis_definition="bisector",
endpoint_los_definition="bisector",
redshift=None,
number_worker=8,
hankel=True,
):
Expand Down Expand Up @@ -339,5 +352,10 @@ def contract_covariance(
number_worker=number_worker,
hankel=hankel,
)[:, 1:].reshape(-1, len(coord_1), len(coord_2))

return contraction_dict, coordinates_dict
redshift_dict = generator_flip.generate_redshift_dict(
model_name,
model_type,
redshift_velocity=redshift,
redshift_density=redshift,
)
return contraction_dict, coordinates_dict, redshift_dict
14 changes: 14 additions & 0 deletions flip/covariance/covariance.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ def __init__(
full_matrix=False,
number_densities=None,
number_velocities=None,
redshift_dict=None,
power_spectrum_amplitude_function=None,
variant=None,
):
"""
Expand Down Expand Up @@ -49,6 +51,8 @@ def __init__(
self.full_matrix = full_matrix
self.number_densities = number_densities
self.number_velocities = number_velocities
self.redshift_dict = redshift_dict
self.power_spectrum_amplitude_function = power_spectrum_amplitude_function
self.variant = variant

@classmethod
Expand All @@ -61,6 +65,7 @@ def init_from_flip(
coordinates_velocity=None,
additional_parameters_values=None,
los_definition="bisector",
power_spectrum_amplitude_function=None,
variant=None,
**kwargs,
):
Expand Down Expand Up @@ -93,6 +98,7 @@ def init_from_flip(
covariance_dict,
number_densities,
number_velocities,
redshift_dict,
) = generator_flip.generate_covariance(
model_name,
model_type,
Expand All @@ -115,6 +121,8 @@ def init_from_flip(
full_matrix=False,
number_densities=number_densities,
number_velocities=number_velocities,
redshift_dict=redshift_dict,
power_spectrum_amplitude_function=power_spectrum_amplitude_function,
variant=variant,
)

Expand All @@ -127,6 +135,7 @@ def init_from_generator(
coordinates_velocity=None,
coordinates_density=None,
additional_parameters_values=None,
power_spectrum_amplitude_function=None,
variant=None,
**kwargs,
):
Expand Down Expand Up @@ -162,6 +171,7 @@ def init_from_generator(
number_densities,
number_velocities,
los_definition,
redshift_dict,
) = generator.generate_covariance(
model_type,
power_spectrum_dict,
Expand All @@ -181,6 +191,8 @@ def init_from_generator(
full_matrix=False,
number_densities=number_densities,
number_velocities=number_velocities,
redshift_dict=redshift_dict,
power_spectrum_amplitude_function=power_spectrum_amplitude_function,
variant=variant,
)

Expand Down Expand Up @@ -299,6 +311,8 @@ def compute_covariance_sum(
self.model_type,
parameter_values_dict,
variant=self.variant,
redshift_dict=self.redshift_dict,
power_spectrum_amplitude_function=self.power_spectrum_amplitude_function,
)
coefficients_dict_diagonal = coefficients.get_diagonal_coefficients(
self.model_type,
Expand Down
60 changes: 55 additions & 5 deletions flip/covariance/generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
from flip.covariance.adamsblake20 import flip_terms as flip_terms_adamsblake20
from flip.covariance.carreres23 import flip_terms as flip_terms_carreres23
from flip.covariance.lai22 import flip_terms as flip_terms_lai22
from flip.covariance.rcrk24 import flip_terms as flip_terms_rcrk24
from flip.covariance.ravouxcarreres import flip_terms as flip_terms_ravouxcarreres
from flip.utils import create_log

Expand All @@ -22,6 +23,7 @@
"lai22",
"carreres23",
"ravouxcarreres",
"rcrk24",
]


Expand All @@ -45,10 +47,7 @@ def correlation_integration(l, r, k, integrand):
"""
kr = np.outer(k, r)
integrand = (
(-1) ** (l // 2)
* (k**2 / (2 * np.pi**2))
* integrand
* spherical_jn(l, kr).T
(-1) ** (l // 2) * (k**2 / (2 * np.pi**2)) * integrand * spherical_jn(l, kr).T
)
return (-1) ** (l % 2) * integrate.simps(integrand, x=k)

Expand Down Expand Up @@ -409,6 +408,49 @@ def compute_cov(
return covariance


def generate_redshift_dict(
model_name,
model_type,
redshift_velocity=None,
redshift_density=None,
coordinates_velocity=None,
coordinates_density=None,
):
redshift_dependent_model = eval(f"flip_terms_{model_name}.redshift_dependent_model")
if redshift_dependent_model:
redshift_dict = {}
else:
return None

if model_type in ["density", "full", "density_velocity"]:
if redshift_dependent_model:
if redshift_density is not None:
redshift_dict["g"] = redshift_density
else:
if len(coordinates_density) < 4:
raise ValueError(
"You are using a model which is redshift dependent."
"Please provide redshifts as the fourth field"
"of the coordinates_density value"
)
else:
redshift_dict["g"] = coordinates_density[3]
if model_type in ["velocity", "full", "density_velocity"]:
if redshift_dependent_model:
if redshift_velocity is not None:
redshift_dict["v"] = redshift_velocity
else:
if len(coordinates_velocity) < 4:
raise ValueError(
"You are using a model which is redshift dependent."
"Please provide redshifts as the fourth field"
"of the coordinates_velocity value"
)
else:
redshift_dict["v"] = coordinates_velocity[3]
return redshift_dict


def generate_covariance(
model_name,
model_type,
Expand Down Expand Up @@ -446,6 +488,7 @@ def generate_covariance(
coordinates_velocity,
)
covariance_dict = {}

if model_type in ["density", "full", "density_velocity"]:
covariance_dict["gg"] = compute_cov(
model_name,
Expand Down Expand Up @@ -493,4 +536,11 @@ def generate_covariance(
hankel=hankel,
los_definition=los_definition,
)
return covariance_dict, number_densities, number_velocities

redshift_dict = generate_redshift_dict(
model_name,
model_type,
coordinates_velocity=coordinates_velocity,
coordinates_density=coordinates_density,
)
return covariance_dict, number_densities, number_velocities, redshift_dict
2 changes: 2 additions & 0 deletions flip/covariance/lai22/coefficients.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ def get_coefficients(
model_type,
parameter_values_dict,
variant=None,
redshift_dict=None,
power_spectrum_amplitude_function=None,
):
coefficients_dict = {}
if model_type in ["density", "full", "density_velocity"]:
Expand Down
2 changes: 2 additions & 0 deletions flip/covariance/lai22/fisher_terms.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ def get_partial_derivative_coefficients(
model_type,
parameter_values_dict,
variant=None,
redshift_dict=None,
power_spectrum_amplitude_function=None,
):
if model_type == "density":
return get_partial_derivative_coefficients_density(
Expand Down
1 change: 1 addition & 0 deletions flip/covariance/lai22/flip_terms.py
Original file line number Diff line number Diff line change
Expand Up @@ -15984,3 +15984,4 @@ def N_vv_0_0_2_0(theta, phi):
"vv_0_0_2": 1,
}
multi_index_model = True
redshift_dependent_model = False
Loading